HN user

jolux

6,504 karma

she/her

Interests:

- programming languages, especially functional programming and static type systems

- operations research and logistics

- policy analysis, especially around urban land use and mass transit

- business strategy

Formerly at the MBTA, currently building transit operations software at Swiftly (opinions my own).

Shoot me an email: hn@klebe.dev

Posts21
Comments2,414
View on HN
pup-e.com 10mo ago

Ruby Central's Attack on RubyGems [pdf]

jolux
710pts249
www.netcraft.com 2y ago

Pre-DMA alternative iOS app stores are already riddled with malware

jolux
3pts0
support.apple.com 3y ago

About Rapid Security Responses for iOS, iPadOS, and macOS

jolux
3pts0
tldp.org 3y ago

Advanced Bash-Scripting Guide (2014)

jolux
172pts78
www.stateml.org 4y ago

StateML: A language for authoring state machines

jolux
5pts0
twitter.com 5y ago

Over a dozen Basecamp employees have resigned

jolux
36pts12
docs.microsoft.com 5y ago

Blazor: client-side UI programming with C#, .NET, and optionally WebAssembly

jolux
1pts0
twitter.com 7y ago

Passport gender change language altered to say “sex change” instead

jolux
2pts2
www.motherjones.com 8y ago

“I desperately wanted to show them how capable I was as a scientist.”

jolux
1pts0
www.motherjones.com 8y ago

“I desperately wanted to show them how capable I was as a scientist.”

jolux
5pts0
boingboing.net 10y ago

Pokémon Go EULA Locks You in to Binding Arbitration

jolux
1pts0
www.buzzfeed.com 10y ago

Here Is the Powerful Letter the Stanford Victim Read Aloud to Her Attacker

jolux
2pts0
www.fosspatents.com 10y ago

Google knew it was infringing Sun/Oracle's IP

jolux
4pts1
benklebe.github.io 10y ago

Show HN: Vigènere Cipher with Emojis

jolux
3pts1
www.jetbrains.com 10y ago

JetBrains Cookie Notice

jolux
1pts0
preshing.com 10y ago

Xkcd Password Generator

jolux
24pts19
cleancoders.com 10y ago

The Last Programming Language

jolux
1pts0
www.gradolabs.com 10y ago

Grado Labs – SR325e

jolux
2pts0
news.ycombinator.com 10y ago

JetBrains Installers Are Specific to Every Language

jolux
2pts1
practicaltypography.com 10y ago

Triplicate Coding Font

jolux
2pts0
klebe.posthaven.com 10y ago

The Eternal Ephemerality of Software

jolux
2pts0

They probably should rewrite it in Rust, but also, I think the Bun guy wanted to rewrite it in Rust because he thinks Rust is a better choice for Bun, independent of Bun being used by Claude Code.

Love the new site!

Minor typo in the Erlang card:

“Elixir also excels at IoT, distributed systems, and everything the Erlang is renowned for”

should probably be “everything the Erlang VM is known for” or “everything Erlang is known for.”

I am not really sure how much yet another post complaining about async/await that ends with “thread-per-core is the way to go” adds to this discussion. Granted I’m both an Erlang programmer and a big fan of Tokio and Rust’s async/await implementation in general and I think this post and many others like it betray a fundamental misunderstanding of these technologies so I am probably biased.

My experience with non-Apple Thunderbolt products has been pretty dicey across the board. My ASUS motherboard has a port and theoretically works with it but across several firmware, BIOS, and driver upgrades, I’ve never actually got it to successfully recognize my TS4 as a Thunderbolt device, only USB.

I think I said named branches, but that is definitely what I mean

I think I misread you, because you were talking about git vs svn in a way that made it sound like jj was a step backward from git as regards branching, and I got confused.

I often work on something and then switch away to something else. it might be a week before i get back to it, and the name of the branch is a clue as to what the heck I was doing.

Right, but you can still name your branches with bookmarks, you’re just not required to. Personally, I tend to use commit descriptions more than bookmarks to keep track of what I’m working on, but this is a personal choice.

Other people often need to check out a branch I'm working on to help. How does anonymous branching help anyone except a solo developer?

It’s just nicer as a local workflow, to me at least? I can create throwaway branches without having to come up with a name for them. I end up creating many, many more branches than I did in git as a result, which helps me keep my work better organized and my changes more focused when I submit them for others to review (which at least on GitHub, requires a bookmark of course). This is ultimately psychological because obviously I could just make up a name for the git branch, right? But it makes a big difference for me!

Totally fair :) personally I used to be a git wizard and I am relieved at how much about it I’ve been able to forget since learning jj, but I understand not everyone has the same experience.

Yes, that describes me at both jobs I’ve had since learning jj. Hence why I asked for specifics: I’m genuinely curious what other people struggle with, partially because I’d like to help them if I can, and partially because it gives me a better understanding of common pitfalls which helps when teaching other people.

I assume you mean named branches (bookmarks in jj)? Because anonymous branches in jj are trivial: you just `jj new <parent_change_id>` and you have a new branch.

Bookmarks aren’t that bad either IMO, especially with the recent addition of `jj bookmark advance`. Curious if you can say more about the particular difficulties you found keeping them up to date?

Rust originally came with a green thread library as part of its primary concurrency story but it was removed pre-1.0 because it imposed unacceptable constraints on code that didn’t use it (it’s very much not a zero cost abstraction).

As an Elixir + Erlang developer I agree it’s a great programming model for many applications, it just wasn’t right for the Rust stdlib.

This is in part because those countries have been historically reliant on the US for their national defense…

No point. Claude Code with skills and subagents is plenty. If they would stop breaking it constantly it would be fine.

The bottleneck has not been how quickly you can generate reasonable code for a good while now. It’s how quickly you can integrate and deploy it and how much operational toil it causes. On any team > 1, that’s going to rely on getting a lot of people to work together effectively too, and it turns out that’s a completely different problem with different solutions.

It's not just for security, it's also for maintainability. Frankly being able to reflect across package boundaries has always seemed like a misfeature for maintainability to me. The code you have that is broken by Java 9 was already badly behaved, the JVM was just lenient about it.

Ah, it was written in Groovy last time I looked at it I believe. In any case here’s how to install a default java:

`mise ls-remote java` to show all vendors and versions, or just `mise latest java@temurin` (or any other vendor) to get the latest version string

`mise use -g java@<version>` to install it and set it as a default