HNHacker News
TopNewBestAskShowJobs

pxc

6,499 karma · joined November 17, 2015

submissionscomments
pxc··on ICE Is Going on a Surveillance Shopping Spree
Deportation isn't prevention. It's inherently reactive. Securing a border has to be done at a border (as opposed to, for instance, at people's homes, churches, and schools).
pxc··on Minneapolis driver shot and killed by ICE
The victim of the shooting today was a woman married to a woman, as well.
pxc··on Minneapolis driver shot and killed by ICE
> I don’t remember hearing that non-Nazis were loudly opposing the Nazis.

They definitely did.

> I don’t know German history very well

It's worth revisiting. _The Nazi Seizure of Power_ by William Sherman Allen is available in a variety of formats and may be an accessible starting point for this. It does directly contain examples of resistance and opposition to Nazis, before, during, and after their seizure of power (albeit in just one town that the book focuses on).

pxc··on Brave overhauled its Rust adblock engine with FlatBuffers, cutting memory 75%
Geez, thank you.
pxc··on Brave overhauled its Rust adblock engine with FlatBuffers, cutting memory 75%
open-source ≠ gratis binaries

Rules that require the distribution of source code don't require the distribution of binaries.

pxc··on Brave overhauled its Rust adblock engine with FlatBuffers, cutting memory 75%
Edit: I misremembered a Rust crates capability (pre- and post-install hooks), so my comment was useless and misleading.
pxc··on Jank Lang Hit Alpha
As a dialect of Clojure, it's a dynamically typed language. But its designer has expressed interest in eventually adding static type checks via a gradual typing system¹:

> I mentioned that a native Clojure is the first step toward my dream language. Indeed, it doesn't stop there. jank will always be a Clojure dialect, but it will also optionally support more. Features like gradual typing (maybe linear typing), more explicit memory management, value-based errors, and stronger pattern matching, to name a few, improve upon Clojure. This will allow another axis of control, where some parts of the program can remain entirely dynamic and garbage collected while others are thoroughly controlled and better optimized. That’s exactly the control I want when programming.

--

1: https://jank-lang.org/blog/2025-01-10-i-quit-my-job/

pxc··on Jank Lang Hit Alpha
Cool! I'm still reading, but when I'm done I'll open a PR for the few small issues I've seen.

Thanks for your work on jank! I hope the Alpha brings you lots of new users, useful bug reports, and some contributors. :)

pxc··on Jank Lang Hit Alpha
Hi! I'm excited about jank and so I'm excitedly reading through the book you just linked. I noticed some grammatical errors. Will you consider PRs to the `book` section of the code, or would you prefer feedback in some other format in order to better maintain your authorial voice?
pxc··on Matz 2/2: The trajectory of Ruby's growth, Open-Source Software today etc.
> there's obviously value in having your company/team use well-known languages and tools

Sure. I never said this desire on the part of management is generally irrational.

It's just that this (often rational) preference for "safe bets" leads to ossification and repetition. It's self-reinforcing and eventually becomes disconnected from the inherent virtues or vices involved in the thing chosen.

If you enjoy participating in this network effect as a hiring manager or tech lead or whatever, or feel it's part of your duty as an ROI-maximizer, that's fine. You're probably right.

It just seems clear that when such feedback loops are strong and risk aversion is high, it leaves little room for new languages to break into the "market" by competing on their intrinsic merits. So when that happens, it'll coincide with times and places of relatively high industry optimism and developer freedom.

> Same as using open standards

Open standards are about interoperability and user freedom, and don't really have anything to do with novelty or popularity.

> Same as using [...] well-known design patterns

A common pattern in designs of solutions for common problems that is counterproductive, or even just not very effective, is called an "anti-pattern". The honorific "design pattern" is reserved for patterns that are Actually Good™ in some way that would hold true even if no one knew them.

Consequently, "this design pattern isn't well known" just means "this solution is highly effective for addressing a common problem, but isn't very famous".

"Use well-known design patterns" is at least as much about choosing things because they're elegant, composable, flexible, performant, etc., as it is about choosing them because they're famous— hopefully much more so.

pxc··on Matz 2/2: The trajectory of Ruby's growth, Open-Source Software today etc.
What does "merge with Crystal" mean, when Ruby is a deeply dynamic language and Crystal is statically typed? Write/endorse a Ruby implementation in Crystal? Create frameworks for various kinds of applications that let you easily use Ruby for some components and Crystal for others? Other general work on interop?
pxc··on Matz 2/2: The trajectory of Ruby's growth, Open-Source Software today etc.
At my place of employment, we use Python for everything by default because "everyone knows Python" (which hasn't really been true of our small team where multiple members have far more experience in other languages than Python).

It grows, in my opinion, out of a desire for programmers to be interchangeable code extruders. The idea that a company might have to train anyone, or that a new hire might have to gradually adjust to a team's chosen languages and idioms, is antithetical to the dream of programmers as cheaply replaceable cogs in the machine.

This is a chicken-and-egg problem, and I suspect it can only really be solved when the labor market for programmers heavily favors workers. It's only then that large numbers of professional programmers significantly weigh aesthetics of language in their choices of job. It's also then that startups, which might have cultures that are more opinionated and/or less risk averse when it comes to language choice, are abundant and thriving. The rise of Python at Google worked on that same basis, didn't it?

I don't know that anyone can control the fate of a programming language like this. Maybe all you can do is make sure it's a lovely, useful language and the rest is up to fate.

pxc··on Go away Python
> Not when I want to have installable utility scripts usable from all my shells at any time or location.

Can't you just have the thing on your PATH be a wrapper that invokes the tool via its venv?

pxc··on The sword-wielding man hired to kick squatters out of empty Oakland homes
> The article alleges that squatting is an organized crime activity.

No, it doesn't. It extensively quotes its primary interview subject, who at one point makes a (fairly vague) insinuation along those lines. His words were "more like organized crime", and they're rendered in the article within quotation marks.

> Do gangs really do this, or is it just renaming the activities of homeless individuals as organized crime?

My guess would be the latter.

pxc··on Ask HN: Anti-AI Open Source License?
Agreed on all points, unfortunately. :(
pxc··on Ask HN: Anti-AI Open Source License?
> Any license that discriminates based on use case would not qualify as open source under the Open Source Initiative definition, nor as free software under the FSF definition.

Freedom 0 is about the freedom to run the software "for any purpose", not "use" the software for any purpose. Training an LLM on source code isn't running the software. (Not sure about the OSD and don't feel like reviewing it.)

Anyway, you could probably have a license that explicitly requires AIs trained on a work to be licensed under a compatible free software license or something like that. Conditions like that are comparable to the AGPL or something, adding requirements but still respecting freedom 0.

But that's not an "anti-AI" license so much as one that tries to avert AI-based copyright laundering.

pxc··on How uv got so fast
whoops. That's right
pxc··on How uv got so fast
Ugh. Thank you for the correction. :(
pxc··on How uv got so fast
> updating a dependency via poetry would take on the order of ~5-30m. God forbid after 30 minutes something didn’t resolve and you had to wait another 30 minutes to see if the change you made fixed the problem

I'd characterize that as unusable, for sure.

pxc··on How uv got so fast
In Python's case, as the article describes quite clearly, the issue is that the design of "working software" (particularly setup.py) was bad to the point of insane (in much the same way as the NPM characteristics that enabled the recent Shai Hulud supply chain attacks, but even worse). At some point, compatibility with insanity has got to go.

Helpfully, though, uv retains compatibility with newer (but still well-established) standards in the Python community that don't share this insanity!

pxc··on Package managers keep using Git as a database, it never works out
> It’s possible to imagine some kind of cached-deltas scheme to get faster/smaller updates

I think the snix¹ folks are working on something like this for the binary caches— the greater granularity of the content-addressing offers morally the same kind of optimization as delta RPMs: you can download less of what you don't need to re-download.

But I'm not aware of any current efforts to let people download the Nixpkgs tree itself more efficiently. Somehow caching Git deltas would be cool. But I'd expect that kind of optimization to come from a company that runs a Git forge, if it's generally viable, and to benefit many projects other than Nix and Nixpkgs.

--

1: https://snix.dev/

pxc··on How uv got so fast
Succinctly, perhaps with some loss of detail:

"Rewrite" is important as "Rust".

pxc··on Package managers keep using Git as a database, it never works out
That it supports fetching via Git as well as various via forge-specific tarballs, even for flakes, is pretty nice. It means that if your org uses Nix, you can fall back to distribution via Git as a solution that doesn't require you to stand up any new infra or tie you to any particular vendor, but once you get rolling it's an easy optimization to switch to downloading snapshots.

The most pain probably just becomes from the hugeness of Nixpkgs, but I remain an advocate for the huge monorepo of build recipes.

pxc··on Package managers keep using Git as a database, it never works out
Loved this article. Just enough detail to make the broad scope compatible with a reasonable length, and well-argued.

I feel sometimes like package management is a relatively second-class topic in computer science (or at least among many working programmers). But a package manager's behavior can be the difference between a grotesque, repulsive experience and a delightful, beautiful one. And there aren't quite yet any package managers that do well everything that we collectively have learned how to do well, which makes it an interesting space imo.

Re: Nixpkgs, interestingly, pre-flakes Nix distributes all of the needed Nix expressions as tarballs, which does play nice with CDNs. It also distributes an index of the tree as a SQLite database to obviate some of the "too many files/directories" problem with enumerating files. (In the meantime, Nixpkgs has also started bucketing package directories by name prefix, too.) So maybe there was a lesson learned here that would be useful to re-learn.

On the other hand, IIRC if you use the GitHub fetcher rather than the Git one, including for fetching flakes, Nix will download tarballs from GitHub instead of doing clones. Regardless, downloading and unpacking Nixpkgs has become kinda slow. :-\

pxc··on Ruby 4.0.0
> Why ever use Ruby when there’s a virtually identical system [...] with a bigger community.

There was a time in the history of Python when people who chose Python did so primarily because they found it beautiful or pleasant to work with. These are reasonable factors in choosing a language, and they continue to be popular reasons for choosing relatively unpopular languages today.

A related essay has made the rounds on HN before. It might be worth revisiting if this question is on your mind: https://www.johndcook.com/blog/2011/10/26/python-is-a-volunt...

pxc··on The Going Dark initiative or ProtectEU is a Chat Control 3.0 attempt
> Most people don’t even have an internal monologue

Is there any scientific indication that whether private thoughts are automatically verbalized actually has an impact on cognitive activity or function?

Also where do you get this idea that most people lack an internal monologue? Afaik research indicates that totally lacking verbal thinking is very rare.

pxc··on Privacy doesn't mean anything anymore, anonymity does
Because you can't mail cash? Or it won't be delivered without a return address
pxc··on Privacy doesn't mean anything anymore, anonymity does
You can pay with an envelope of cash, so they don't need your banking data to begin with.
pxc··on Privacy doesn't mean anything anymore, anonymity does
Indeed, the whole thing reads like it was written by an LLM.
pxc··on Valve is running Apple's playbook in reverse
They're in the gradual process of open-sourcing their driver stack by moving the bits they want to keep proprietary into the firmware and hardware, much like AMD did many years ago.

It takes a long time to become mature, but it's a good strategy. NVIDIA GPUs will probably have pretty usable open-source community drivers in 5 years or so.

← PreviousPage 7 of 34Next →