HNHacker News
TopNewBestAskShowJobs

scj

910 karma · joined July 13, 2009

submissionscomments
scj··on Non-thoughts on the Open Source Initiative (2020)
The OSI becoming a conduit for money would probably produce more criticism than code.
scj··on The elite's war on remote work has nothing to do with productivity
Most WFH experiences at the moment are during the height of the pandemic. When people were told to limit contact with others outside their household.

That's not really representative of what it could be.

scj··on Let's Talk About Open Source
I kind of want to call these "wedge licenses".

If anyone were to actually use them, they'd wedge the open source community into a group that can basically treat it as open source, and those who can't. I dread to think about what happens if any wedged licensed program becomes a widely used dependency. In that regard, these types of license should be thought of as a contaminate.

The divisive element is what's driving the visceral reaction, and if anything, I think it's healthy. It shows people care.

id Software serves as a good example of what should be done. They released their no longer profitable previous-generation game engines as plain open source. That's more respectful of community norms.

scj··on The Development of the C Language (1993)
In terms of C functions _typically_ being globally defined, mostly unique identifiers are a good thing in terms of code readability.

Of course, C functions can be passed as variables. Or in a wider scope they might be inline, macros, or ifdef'd to different functions. But those cases are _typically_ recognized as undesirable and avoided.

Java's a bit of a different story, which I can't figure out a good way to explain. It's hard to explain problems in large code bases, as a quick example rarely suffices. I've seen more than one bug caused because foo.bar(qux) called a different method of bar than the original programmer intended (both because foo's bar was overwritten and qux was a different type than expected).

Don't get me wrong, I would use operator overloading in a heartbeat if I was writing code for a math-y CS coding assignment. It's fine for code that will have a lifepsan measured in weeks / months with probably only 2 or 3 people ever looking at it.

Saying what you mean, as clearly and directly as possible, has it's perks in certain applications (large code bases, life critical code bases, code bases that will last for decades with dozens of programmers). Otherwise stated, cases where code is going to be read many times more than written.

To answer your question more directly: User definable functions aren't a problem. Re-definable functions are!

scj··on How can we compare expressive power between two Turing-complete languages?
This would be in line with my thoughts.

Of course, my off-hand comment is just an exercise rather than an objective measurement. It'd only suffice for trivial examples (say, where X is a strict subset of Y).

scj··on How can we compare expressive power between two Turing-complete languages?
Have language X implement language Y and vice-versa?
scj··on Seriously, Don't Sign a CLA
IANAL...

A CLA should specify that the copyright assigned will always be under a license approved by the FSF and OSI.

The "and" is important, as it's probably possible for one of those organizations to go off the rails, but not both.

scj··on Racket: Lisp for the modern day
I had the same prof for several courses. His exams were pretty straight forward, but always contained a "tough question".

In order to get that tough question, you could carefully read the book, read his assignment solutions, and pay close attention to his caveat warnings in lectures... One of the three would typically contain the tough question.

Or, you could just read the book, do the assignments, and accept ~95% on the final exam as a maximum grade.

A ~95% cap, for a lot less work, is a good deal. Taking the deal is probably the right call for most people.

That being said, the thing I wish someone explained well is how amazing lambdas can be. I understood the benefits of list/array/stream processing on first glance, but it took a few years before I really understood the practical application of lambdas.

scj··on Red Hat cutting back RHEL source availability
https://lwn.net/2001/0301/a/rms-ov-license.php3
scj··on John Carmack on shorter work weeks (2016)
At the same time, to my knowledge he's set the agenda while working on passion projects for much of his career. That makes long hours easier.

To extend your metaphor, there's a big difference between doing 10k in a swamp vs. 20k on a track.

scj··on Canada’s Big Flex in Space
From the episode synopsis, it's a Mike from Canmore sketch...

Next up from the walrus: An expose of strange comments from the Honourable Member of Parliament for Kicking Horse Pass.

scj··on Apple’s Vision Pro Is a $3,500 Ticket to Nowhere
I keep thinking about the Newton as a distant ancestor of the iPhone. The germ of the idea was there, but the use cases and tech (specifically networking) weren't even close.

How close to prime time is AR?

It's hard to judge that without hands on experience.

Close or not, unlike the mid-90s, Apple can likely afford to burn money for a while on a big gamble. Trying to open up a new product category that plays to Apple's strengths is probably the correct strategy, so long as there isn't a better viable product.

I doubt this will storm the world the same way the iPhone did, so it'll likely be a while before it can be judged as a success or failure.

scj··on Software licenses masquerading as open source
https://polyformproject.org/what-is-polyform/

"PolyForm is not… Open source or free software."

scj··on Controversial bill to regulate online streaming becomes law in Canada
Weird Al hosted a Muchmusic special in the 90s and had to resolve a "CanCon Alarm" by inserting himself into an Alanis Morsette music video.

EDIT: https://archive.org/details/al-music/AL+Music+3.mp4 at 49:51

scj··on Automakers are starting to admit that drivers hate touchscreens
Planes have the nice feature that 99% of the time there's nothing but air around you. With the exception of features used in a critical moment (takeoff, landing, etc), the UI of planes can afford to be far worse than a car!
scj··on British Columbia's New Powers to Silence Dissenting Physicians
To add further skepticism, "Brian Peckford, former Premier of Newfoundland, disagrees. He is the last surviving member of the group that drew up Canada's Charter of Rights." is a massive red flag.

1. Chretien was much more instrumental to the authorship of the Charter, and is checks CBC as he's kind of old still alive.

2. That "qualification" is meaningless. It's trying to imply Canadian constitutionalism has original intent, which it doesn't (we use a living document philosophy). So a non-applicable appeal to authority.

scj··on Make Something Wonderful – Steve Jobs in his own words
Steve Jobs made products for himself. He just subsidized costs by selling to the rest of us.
scj··on ChatGPT's Chess Elo is 1400
If a two year old had an ELO of 1400 but sometimes took a nap halfway through a game, it'd be a prodigy.

It's not like an AI making silly mistakes when driving a car.

scj··on U.S. military shoots down suspected Chinese surveillance balloon
I was thinking about various Kings during the War of the Roses when I wrote that.

But a better comparison would be the "election" of a Pope. It's only among Cardinals, who tend to vote for a Cardinal to become Pope. Even though a vote is taking place, we are not talking about a democracy.

As to which is closest to an ideal democracy in practice: America, Vatican City, or China, the contest in my mind is who is in second and third place, not first.

scj··on U.S. military shoots down suspected Chinese surveillance balloon
I agree, it's more akin to saying a King is elected by nobles...

Power sharing agreements between the powerful who are not accountable to the people isn't something I'd classify as "democratic".

I'd consider term limits to be anti-democratic anyway. A functioning democracy has the ability to boot politicians out, and the people within the democracy, not the law should be trusted to make that decision.

scj··on Programmer salaries in the age of LLMs
What I want is an AI that can do static analysis of code and report defects that traditional static analysis couldn't hope to detect.

I suspect that detecting errors that way will be a part of training non-terrible code generators. But with the added benefit of being useful to human programmers as well.

scj··on The expanding dark forest and generative AI
In the future, you'll get 15 minutes of human interaction... And it'll feel like an eternity!
scj··on Who knew the first AI battles would be fought by artists?
I believe the current generation of AI would be better suited to augmenting human understanding of code (through static analysis tools and the like), rather than generating it.

On an infinite timeline humans will no longer be needed in the generation of code (we hopefully will still study and appreciate it for leisure), but I doubt we're there yet.

scj··on Memory Safe Languages in Android 13
Perhaps the problem is with the term "memory safe".

No language can prevent a person from allocating a writable buffer, then reusing it without cleaning it. Do that on a server, and you have step 1 to a security vulnerability.

If requests to allocate memory come faster than the garbage can be collected.

Or a data container holding many/large references that will never be used. The difference between that and a lost pointer in C are moot in a practical sense.

All of these _can_ be prevented. But it's programmer care, rather than the language, that prevents them. Hence, the term "memory safe" is inaccurate. "Memory safer" would be more accurate, but far less catchy.

scj··on NSA guidance on how to protect against software memory safety issues [pdf]
The term "memory safe language" (also used in the "Securing Open Source Software Act") is a misnomer. The report kind of acknowledges this "Even with a memory safe language, memory management is not entirely memory safe" but then presses on with the term anyway.

I think they're trying to combine the concepts of languages that have GCs and prevent buffer overflows into a catch-all term, but "memory safe language" isn't a good choice. Non-programmers might take the term at face value.

It's kind of like using the term "safe flame thrower", except no one would be lulled into a false sense of security with that one.

Don't get me wrong, I'd rather use a "safer flame thrower" than a "flame thrower", but I also wouldn't trust anyone selling me a "safe flame thrower".

The above is my best Dijkstra impersonation.

scj··on AI Bill of Rights
For data privacy / security, I think a simple rule would be effective provided it had teeth:

Any organization that holds personal data can be sued if such data is misused or exposed (even if hacked). Further, ensure that people cannot revoke their right to sue. Nor can they agree to any damage reduction in advance.

Otherwise stated, make every CTO committed to collecting / storing the minimum amount of data.

scj··on What the Securing Open Source Software Act does and what it misses
What are the odds that because of this bill, some government contractor will be denied use of a non-trivial open source library and roll their own... To hilarious and horrifying consequences?

Whatever framework they establish should make it clear that it is not intended to encourage NIH.

scj··on Building the Future of the Command Line
The intent is that standard tools would output alternative formats.
scj··on Building the Future of the Command Line
I've always wondered about expanding stdin, stdout, stderr. Say, stdjson that doesn't get visually displayed, but can be piped (and would only be generated if it is needed on the pipe stream).

ls | cat </dev/stdjson | string_proc_the_json_for_some_reason

With the direct ability to process in line:

ls -a | json.files[0].last_modified

I'd probably want multiple output formats (including s-expressions).

scj··on We Are Changing the License for Akka
More like putting an elevator in a building then cutting power when someone is in it.
← PreviousPage 3 of 12Next →