News for hackers. Stuff that matters.

robsws

Re:Reading Neuromancer for the first time in 2025 on Sunday July 13, 2025 @06:41AM (#44549246)
Maybe I should read the book again making notes like the author did. I finished it understanding how novel this would have been when it was released and impressed with how much worldbuilding was fit into a relatively short book, but ultimately pretty disappointed by the plot itself. Without giving away too much, I feel that there were a few segments that fell pretty flat for me (to be specific, with minor spoilers: the new recruit around the middle of the book and the hacking subplot towards the end).
Re:The Ultimate Guide to Error Handling in Python on Thursday October 10, 2024 @12:27PM (#41800494)
As much as I understand that checked exceptions (the general term for the 'throws' feature) can lead to a bit of a maintenance nightmare and doesn't necessarily scale well with deeper call stacks, I have found python documentation extremely lacking in this area too.

I think what I've come to understand is that you can treat errors you don't know about as non-recoverable, because that's most likely what they are anyway if they aren't readily documented. Let them bubble up basically, and handle them at the top level if necessary to prevent crashes in prod/make sure they are logged correctly and so on.

Re:Software component names should be whimsical and cryptic on Tuesday September 13, 2022 @11:25AM (#32825527)
I can just about tolerate this for brand names, as there's an additional set of requirements there, but for everything else, it's just gatekeeping and unnecessary obfuscation. If the purpose of something changes, fork it off into something new or just rename it if possible. Apache TinkerPop Gremlin might be fun for the creators, but not for anyone trying to understand what it does.
Re:Please do not use Python for tooling on Wednesday August 17, 2022 @05:08AM (#32493977)
I'm not saying other languages don't have the same problems, but this just hasn't been as much of an issue in my experience when working with other languages.

C# for example - I had some compatibility issues between versions 2 and 3.1 of .NET Core, but at least the .csproj tells me what version it's supposed to be built with, and the LangVersion property indicates the version of C#.

Re:Please do not use Python for tooling on Tuesday August 16, 2022 @10:39AM (#32483338)
The article is kind of hyperbolic, but I feel like it echoes how I am beginning to feel about Python.

Just last week, I spent a whole afternoon getting a particular repository of Python code running on my laptop, even with the help of virtualenv and pyenv. requirements.txt doesn't tell me which version of Python the code was developed with, and several libraries are only available on certain versions, so I have to play the guessing game first of all. Then, some of the modules don't have binaries available for M1, and I can't build them from source because I don't have x, y, and z tools installed. Then there's always some issue with PYTHONPATH. I ended up having to build the whole Ubuntu docker container and develop inside that.

I love Python, it's not always like this, and it's certainly not only Python, but that experience is something I dread anyway coming in to every new Python project. It feels like DLL hell all over again. I have had a much better experience personally with C# and Rust, but admittedly I had much more solo control over those projects.

Re:Crimes with Python's pattern matching on Tuesday August 02, 2022 @05:27AM (#32316675)
I agree thoroughly with this - it's fantastic for building something quickly. If I need a quick script to do one-off data processing there's nothing better. My biggest problems with it IMO with respect to maintainable software are:

- The syntax required to build libraries feels like messing with the internals of the language. Defining various methods with reserved names that have 4 underscores each doesn't really feel like something you are supposed to do. The code becomes harder to read and messy IMO.

- Runtime type checking is great for iterating quickly, but bad for stable software.

- Encapsulation is only enforced through external tools, so if you aren't using those religiously you end up with problems with tightly coupled modules.

- Dependency management is not a good experience. Understanding the different rules about where python pulls modules from is hard. Venv makes things a bit better, but even then it's still a bit opaque. It means that I often spend more time on getting external dependencies aligned properly than writing any python when working on a python codebase locally.

Re:Phrases in computing that might need retiring on Friday July 29, 2022 @05:41AM (#32274882)
Hard agree on AI, hard disagree on Tech Debt. The sheer force of opinion saturated into so few words made me smile :) My highlights:

- OOP 'modules, but using the word class'

- Agile 'It used to mean “not waterfall” and now means “waterfall with a status meeting every day and an internal demo every two weeks'

- AI 'an algorithm pushed to production by a programmer who doesn’t understand it'

Re:WeatherKit on Sunday July 03, 2022 @05:46AM (#31966427)
I don't really know Swift, but does the following line from that site make any sense?

"And with Swift concurrency, it’s easy to request weather data with just a few lines of code."

Re:The Unix Game on Saturday May 29, 2021 @04:42AM (#27323893)
I figured that was just a convenient way to avoid all the security problems that come with exposing a shell online whilst also limiting the inputs, although I'm sure there's other ways to do that. Might be nice to have the option I guess.
Re:Icecream: Never use print() to debug again in Python on Tuesday March 30, 2021 @06:46AM (#26633078)
This looks cool and all, but why is it called Icecream? I know naming abstract stuff is hard but it feels like this lends itself to a more descriptive name. "ic()" tells me nothing about what the function does.
Re:Peter Norvig's “pytudes” for Advent of Code 2020 on Friday January 08, 2021 @10:38AM (#25685706)
Interesting he thought it was tedious - I thought this one was actually the closest to being like a real world software engineering task! No mathematical tricks or lateral thinking, just a gnarly problem that requires planning and breaking down into more manageable pieces. I actually really enjoyed it for that.
Re:Time for a WTF MySQL Moment on Tuesday October 06, 2020 @01:03PM (#24700017)
The MySQL documentation suggests using it to store a time interval:

"The hours part may be so large because the TIME type can be used not only to represent a time of day (which must be less than 24 hours), but also elapsed time or a time interval between two events (which may be much greater than 24 hours, or even negative)." [1]

How is the author's usage incorrect? Sure there's a documented allowed range, but it seems to me that the complaint is about the poor size of the range relative to other SQL technologies.

[1] https://dev.mysql.com/doc/refman/5.7/en/time.html

Re:How Zoom works [slides] on Thursday June 25, 2020 @06:36AM (#23639048)
I was surprised they didn't mention that after clicking 'Leave Meeting', a popup comes up with a 'Leave Meeting' button in it, that actually leaves the meeting. This inevitably means in every single Zoom meeting that everyone says goodbye and then spends a few awkward seconds actually leaving the meeting.
Re:Python should not be taught as a foundational language on Wednesday June 24, 2020 @12:32PM (#23630097)
It is dynamically typed, because the typing is checked at runtime. Unlike a lot of other dynamically typed languages though it is strongly typed, because it does enforce type rules as you pointed out. That's not to say there's not a whole heap of other issues with this article though.
Re:Python should not be taught as a foundational language on Wednesday June 24, 2020 @09:32AM (#23627665)
An array by definition is fixed length and contiguous in memory. A list is variable length and not necessarily contiguous in memory.