News for hackers. Stuff that matters.

xen0

I wonder if he tells these stories to people outside of the blog.

There are a few events in my life that merit the story being told to people; friends at the pub, during conversations with colleagues at lunch, etc, because they're amusing or unbelievable or whatever.

After a while, you may not remember the event so much, but you do remember the story.

Re:EA is shutting down BioWare on Wednesday October 21, 2026 @03:30PM (#50186292)
Much of ME2's story is terrible (some of the side character stuff is delightful, but the 'main quest' is a train wreck).

My point was that ME3 was doomed because ME2 utterly failed at bridging the gap between the strong start of an epic that was ME1 and what should have been the conclusion in ME3.

In fact 'fail' may be generous. I don't think it even 'tried'.

Re:EA is shutting down BioWare on Wednesday October 21, 2026 @02:44PM (#50185628)
To be fair, ME3's ending was doomed before that game started.

I'd place it around the start of ME2.

Thanks to modern playback technology, you can pause it and resume play later at your convenience.
Re:Sick leave: Germany rising but not the worst in Europe on Saturday July 04, 2026 @02:14PM (#48787499)
The reported average of 20 days is likely skewed by a small number of long leaves and I suspect* is nowhere near typical for the median worker (it's nearly taking a day off every two weeks).

Longer leave already requires a doctor's approval so the proposal to require that for all leave is unlikely to change much other than drown doctors in more busy work.

*I can't find much for the 'median' amount of leave taken per year.

And yet I would still stop and wait before walking out. The law will not save me against 1.5 tons of metal hitting me by accident.
Re:Cheating at Tetris on Sunday April 26, 2026 @08:54AM (#47909934)
Indeed, at 3 pieces per second (I don't have a good sense of how fast good tetris players play, but I've seen some videos and it looks like they can average more than one a second), it's 10 hours of constant play.

Playing at such a speed for 10 hours is kind of insane. Playing it without error is not human.

> Also: in Europe everybody normally takes paracetamol and not FANS as a first reach to minimize adverse effects. So this article looks like very US centric.

This is not my experience. After moving to Germany from the UK, I feel like people take and expect Ibuprofen far more often than Paracetamol. It seems like the first port of call for colds and general headaches, with Paracetamol being treated with some suspicion, despite it being far more effective in my experience for certain things (I've taken a lot of Ibuprofen and other NSAIDs in my time so am quite familiar with how they affect me).

Re:The Fencing Visualization System on Tuesday April 21, 2026 @04:36AM (#47846178)
As a fencer watching these, I've never felt like I've not known where the blades are. Just from the hand positions and knowing what people do. So I find the constant lights a little distracting.

But I can imagine non-fencers don't have that sense.

What I would like is clarity of when blades meet; this is crucial when determing who scores in foil and sabre and it's often muddied or lost during recordings.

Re:Visualizing Ukkonen's Suffix Tree Algorithm on Thursday March 12, 2026 @07:07AM (#47349062)
I've never grokkeed suffix trees, but isn't possible for them to be O(n) in space (n total length of all strings)? Is there just an unacceptable constant factor overhead? I can imagine the pointer overhead being painful.
Re:How many options fit into a boolean? on Wednesday March 11, 2026 @05:58AM (#47333617)
That is... amazing.

I think my favourite part is the fact that '1' isn't even one of the supported values.

As an Englishman that has been transplanted to another country, I find myself making them more in Germany than I ever made them back home.

But that's because my wife requests it.

It would never occur to me to up the egg ratio so high to reach into that void though. My wife manages to mess up the proportions every time though, so maybe we'll unwittingly explore that region one day.

Re:Trunk Based Development on Saturday February 21, 2026 @08:11AM (#47100519)
I am not a fan of Github's interface.

But my point is, is that I believe the important thing to preserve in history is whatever your unit of review is. If you could stack PRs and each were subject to the individual review, I would not combine and squash those (just the individual commits within each PR).

Re:Trunk Based Development on Saturday February 21, 2026 @06:06AM (#47099630)
I want every commit to represent a buildable state in which I have confidence automated tests pass. Bisecting is made unnecessarily difficult otherwise, and it's nice to be able checkout any commit and just build something for testing.

This constraint is usually enforced by code review.

On Github, the unit of code review is the PR.

Therefore, I prefer squashing.

Re:The C3 Programming Language on Monday January 05, 2026 @03:59PM (#46504873)
Thanks for pointing out what I was missing.

Please consider a variable `List{int}[3] x`, this is an array of 3 List{int} containing List{int}. If we do `x[1]` we will get an element of List{int}, from the middle element in the array. If we then further index this with [5], like `x[1][5]` we will get the 5th element of that list.

I get that motivation. In C++ it's an odd case that where `std::vector<int> x[4]` is "reversed" in a sense compared to `int x[4][100]`. And this quirk is shared with other languages (Java, C#).

But in my experience, mixing generic datatypes like this with arrays is quite rare, and multi-dimensional array like structures with these types is often specified via nesting (`std::vector<std::vector>>`) which avoids confusion.

The argument re. pointers is more convincing though.

Re:The C3 Programming Language on Sunday January 04, 2026 @10:28AM (#46488850)
The closed intervals for slices caught my eye as well, but I simply filed that under 'that's a weird quirk' rather than 'wtf?'.

It would require more thinking on my end to change that to either 'this is an acceptable choice' or 'this is a terrible idea'.

But the array indices being reversed on declaration? I cannot think of an upside to that at all.

Re:The C3 Programming Language on Sunday January 04, 2026 @09:56AM (#46488532)
Reading through, something small caught me by surprise.

https://c3-lang.org/language-common/arrays/#fixed-size-multi...

Multi dimensional arrays are not declared in the same way they are accessed; the order of dimensions is reversed.

Accessing the multi-dimensional fixed array has inverted array index order to when the array was declared.

That is, the last element of 'int[3][10] x = {...}' is accessed with 'x[9][2]'.

This seems bizarre to me. What am I missing? Are there other languages that do this?

Re:Italians celebrate village's first baby in 30 years on Sunday December 28, 2025 @10:21AM (#46411679)
Looking at those in my extended family that have reached retirement, this does not appear to be a given.

End of life care* is highly variable in duration and costs and many people do not adequately prepare for expensive endings.

* this is true of more than just care post retirement

Re:Italians celebrate village's first baby in 30 years on Sunday December 28, 2025 @10:12AM (#46411621)
An unfortunate reality is that you're never going to have such services until there are children for them to service.

Decline like this is difficult to reverse, but that doesn't mean we shouldn't try.

Re:Pre-commit hooks are fundamentally broken on Saturday December 27, 2025 @07:45AM (#46401466)
Your real commit history is irrelevant. I don't care too much about how you came to a particular state.

The overall project history though, the clarity of changes made, and that bisecting reliably works are important to me.

Or another way; the important unit is whatever your unit of code review is. If you're not reviewing and checking individual commits, they're just noise in the history; the commit messages are not clear and I cannot reliably bisect on them (since nobody is checking that things build).

Re:A “frozen” dictionary for Python on Thursday December 11, 2025 @02:08PM (#46235706)
I work on a build system (Bazel), so perhaps I care more than most.

But maybe it does all just come down to equality comparisons. Just not always within your own code.

Re:A “frozen” dictionary for Python on Thursday December 11, 2025 @01:34PM (#46235136)
It's sometimes nice to be deterministic.

I don't often care about a specific order, only that I get the same order every time.

Re:Migrating to Bazel Symbolic Macros on Tuesday November 25, 2025 @03:42AM (#46043711)
Open source projects? Maybe less so.

But there are definitely companies that use Bazel in a major way.

Re:French ex-president Sarkozy begins jail sentence on Wednesday October 22, 2025 @01:25PM (#45672326)
At least in British English usage, there is no distinction between Jail, Gaol, and Prison other than at least one of these is a dated word.

I believe only the US has a strong distinction between Prison and Jail.

Re:Life, Work, Death and the Peasant, Part V: Life in Cycles on Saturday October 18, 2025 @01:36PM (#45629030)
Part 4c (this is quite a long series) goes into some detail here. https://acoup.blog/2025/09/12/collections-life-work-death-an...

My own interpretation is that it's difficult to precisely compare how peasants were exploited to modern taxation regimes in the developed world. Perhaps more as an unfavorable relationship with the only employer in town?

Re:My Deus Ex lipsyncing fix mod on Friday September 26, 2025 @01:55PM (#45389207)
This may be because the 'headshot' multiplier is lower than the regular multiplier (1x vs 2x) for the prod and baton. For most weapons the headshot multiplier is 8x (or something).

So torso hits from behind are the way to go.

Erm, yes. Yes it is...
Those are not the same; one is a bit less than an hour, another is 3 and a half days.

A microcentury is 100 nanoyears if you prefer that.

Set comprehensions are normal in mathematics and, barring very long complex ones, I find them the easiest to parse because they are so natural.

They're just a tad more verbose in Python than mathematics because it uses words like 'for' and 'in' instead of symbols.

Re:I have made the decision to disband Hindenburg Research on Thursday January 16, 2025 @01:48PM (#42729233)
Feels weird to call it a 'bet against' when the other side can (potentially) benefit from the tighter spread you offer.

But yes, the market maker doesn't run the risk of trading with someone with knowledge and a lot of capital to apply it.

Older »