News for hackers. Stuff that matters.

foresterre

How do you use it with i18n and theming and templates? Do you define all of these outside of typst and (e.g.) add a shadow file to the typst compiler?

Asking because I've recenly been doing something similar, but since my typst files are templates, which with the same inputs can differ and may need different translations as well, I've written a small i18n library in typst (but I guess you could require a set of translations to be present with a given typst file as well).

Re:Switzerland proposes banning profiling-based ads to minors on Wednesday October 14, 2026 @10:37AM (#50088404)
While I agree with the sentiment, any answer would likely be vague (unless it is only interests based) since the models used to choose specific ads to be displayed can be rather complex.
Re:Walking Men on Tuesday September 29, 2026 @01:06PM (#49896568)
Fun!

I always like to see one off designs, like this one in The Netherlands of Miffy (1) or Det in Mainz in Germany (2), or in Akureyri (3).

(1) https://www.atlasobscura.com/places/miffy-traffic-light-utre...

(2) https://www.atlasobscura.com/places/mainzelmaenchen-ampel-tr...

(3) https://www.atlasobscura.com/places/akureyri-heart-shaped-tr...

I'm not trying to suggest that reviewing (code) can't feel (more) mentally demanding. The thing with at least reviews is that if you have worked through the problem yourself, you will also hit certain walls where stuff didn't work or wasn't as beautiful as you wanted (ie trial and error), and you have to activate your brain to think of other solutions, ie really think a problem through multiple times with active feedback. As a reviewer you don't get the active feedback usually.

Now this i think applies in lesser degree to the comment I was replying to. With maths, and some comp sci problems, you often can check an answer much faster than actually solving it, eg by using simple substitution for simple math problems. That is a useful skill, but a different one from solving the problem yourself. It employs different types of skills.

I've been in uni classes which used this concept (about 10 years ago though). It also requires that content is given in the right size and complexity each week, otherwise there will also be people coming to class who did do their homework but didn't understand it properly and just like the people who didn't read it need full explanations.

I also felt having multiple explanations (in a regular class where you could also read the book in advance) from regular lecturers helped me in gaining understanding because having something explained in multiple ways made sure there would be at least one way, or a combination, which made it 'click'.

I always liked the regular lectures where you would be required to do some pre class reading and a smaller set of exercises the most, as you would be engaged in the class itself and would be getting repetition with different explanations.

This sounds like it would come at the cost of the honest students who don't want to use LLM's and train their own understanding.

Reviewing is just not the same as working through a problem yourself. You often can take shortcuts when checking answers for correctness, which generation (with mind or LLM) of the solution can't take. This isn't limited to Math but equally true for programming and many other skills.

I find I still use the paid IDE's (RustRover and WebStorm), even when using LLM's for reviewing code and applying corrections. It's often just faster to do that, especially with an IDE which allows for quick non linear navigation through the files (following functions etc.). I think this is where JetBrain's IDE's excel. I can live with the high startup cost as long as it is quick afterwards.

I do feel however they have been neglecting anything non-AI for a while now. I in particular loved their auto complete, and with the new guesswork AI auto complete it's just not the same. I want deterministic behaviour from my IDE.

On the LLM side, I couldn't use the Anthropic subscription with their offerings, so I just use it from a harness outside the IDE, and switch to the IDE for review. This may not be JB's fault, but it still makes their offering useless to me.

I may be one of the few remaining but I also still program myself sometimes (I weigh it based on the task). The IDE has been pushing so much AI it has been getting in my way sometimes, and it is definitely using more resources for stuff I don't use.

I too am on the fence on whether I'll resume my subscription. Luckily for JB I dearly dislike VSCode's code navigation and interface, and would severely miss their debugging tools integration.

Just because something is publicly accessible doesn't mean you can use it for free, or that it gives you rights to do whatever you want with it.

I can access a public park, but that doesn't necessarily give me the right to also bike on its sidewalks, or walk on the grass, or take some of the plants home with me.

> ... or has been obtained illegally

Similarly, content that is _accessible_ publicly may be illegal to _obtain_, these aren't mutually exclusive.

On the internet, you'll find there are terms of services and licenses. These restrict how you can use even publicly accessible material. Public availability doesn't give you a license to use it however you want.

Re:One Year of Sponsored Servo Development on Thursday September 17, 2026 @04:49AM (#49738076)
Regardless of actual use as an (embedded) browser, it is useful in the sense that it can be used to provide (another) source of validation about whether specs and WPT [1] tests are properly and clearly defined. That helps for long term browser compatibility.

[1] https://wpt.fyi/results/?label=experimental&label=master&pro...

Re:Elevated Errors for Multiple Models on Thursday September 03, 2026 @10:40AM (#49550532)
Far more likely Ireland, like it is for AWS. Could also be Paris, London, Amsterdam, etc.
Re:Fastpotify on Tuesday September 01, 2026 @10:43AM (#49522672)
> - Under a playlist you get a list of suggested songs, the UI element looks like a "regular song", but unlike every other "song" element the user has been trained to recognize, the "swipe right to queue" does not apply to these elements. For some reason.

There's a ton of these inconsistencies. For example, the new releases albums where songs become available over time also do not have it. It's infuriating how inconsistent the UI is sometimes.

Not so long ago they also had two versions of the "swipe right to queue" UI, one with long swipe (the current one), and one with a much shorter one. I preferred the shorter (with the hard break) one because it is much clearer when a song actually gets added to the queue. What often happens when you're adding multiple songs to the queue, if you only swipe a little bit, it is unclear if it was enough to add it to the queue. With one song this isn't a problem because a message with "added to queue" is shown, but for multiple songs, the messages are shown on top of each other.

Re:What's New in Flutter 3.47 on Thursday August 13, 2026 @04:17AM (#49283080)
Not saying that LLM development isn't fast, but doing a re-implementation of something you know in-and-out is almost always going to be faster, as you skip the probably most time intensive step of product research and requirement engineering.
Re:The Valley of Webhooks on Wednesday August 05, 2026 @04:45PM (#49188753)
I had this almost exact discussion today. Adyen (the payment provider) provides merchants with webhooks so they can update a local modal of payment and payment modification data (checkout).

But there is no way (for a merchant) to get the latest 'true' state as held by Adyen. So you better hope your data is exactly in sync with the notifications you got from the webhook (which it never exactly is, because there are so so many points of failures, and unlike what this author says, the docs aren't thát well presented to hold the same model as the PSP does. It is often close enough though, but you are constantly gardening your implementation, because the model also changes on their end with little information in the changelogs).

The "latest state" data exists though! If you open the customer portal it is presented to you without problem.

I don't think the article tries to argue against the good sides.

In my opinion it asks us to not just look at individual gain of using LLM's (which can be powerful), but also place it in context how we as humans built long-term sustainable societies. Most societies are currently ignoring that part for the most part, because they fear missing out.

Probably the hardest problem of LLM's is their ethics. As the author put it:

> Modern multi-billion parameter AI models are scaffolded on and made possible by the largest heist in human history: theft of everything that could be scraped from every corner of the digital spaces we share. Without prevention of and justice for this damage caused by current models, their use is highly fraught, ethically. We, as human beings, have developed complex social forms of intelligence when it comes to dealing with things like credit and provenance, two things that modern models are incapable of.

No one currently seems to have serious solution for this. Solving it the right way would be choosing the hard path. While some artists or writers are fighting for their rights, us programmers are collectively ignoring the issue. It is funny how most companies (and some individuals) only want to use LLM's of they don't train on their code. But is just fine to use some 40 years of collective open-source without any compensation or even acknowledgement.

This side of the story doesn't make LLM's less technically impressive, nor does it make the tools themselves less powerful. But unlike the industrial revolution, which some like to compare the AI boom to, during the industrial revolution humans built stronger productivity solely on innovation without strip mining all intellectual property in human existence.

I can see the benefits of LLM's, enjoy the technical capabilities and be impressed by the technology, and at the same time find these tools wholly unethical in their current form.

Re:Interrail: 6,379Km and 13 Countries over 7 weeks on Monday July 13, 2026 @05:59AM (#48890281)
In addition, there's about 2x year a 25% sale and you have a year to activate the passes.

The in southern Europe (e.g. France, Spain, Italy), required seat reservation is most common and most expensive.

I don't mind requiring seat reservations, but that it is separate from the ticket price and significant (eg 15€/seat reservation in Italy), feels like price gouging. It also feels different from say the optional (and way lower priced seat reservations in German ICE's (high speed rail)). I rather pay for a "high speed rail supplement" instead of seat reservation haha :).

I interrailed last year through Germany, Austria, Slovenia, Italy and Switzerland.

In Germany I was lucky, I only had a small delay on the way back.

Austria was exceptional in everything. On time, modern trains and facilities. I guess the food on the train was expensive and bland, but I've never seen a train where that's different.

Slovenia was the weirdest and had the most delays. Train cars for which I had seat reservations consistently didn't exist or arrive. They use old stock, but that also made it kind of fun and there were great views. I couldn't rely on the time table though.

Italy has lots of high speed rail, but required (paid) seat reservations. The problem is that for almost any medium-long distance there's no slower speed alternative. The normal speed stock is fine (can be taken to go to smaller cities) and was generally on time.

Trains in Switzerland are exceptional too. Funnily enough, I did have fairly significant delays 2/5 times.

Re:Fintech Engineering Handbook on Saturday June 27, 2026 @11:21AM (#48699035)
As a general rule, you always include the currency code (EUR, SEK, USD etc.) and if possible also the amount of decimals, when using minor units.

Currency codes can be found in ISO 4217.

Re:Hyundai buys Boston Dynamics on Friday June 19, 2026 @08:02PM (#48604785)
What's a problem though is that while it includes a reference, its distillation from the source, or worse, from the combination of sources, is often plain wrong. I check them regularly, and it made me very distrustful of Claude's capacity to faithfully summarise or explain from a source.

When asked to give specific links, it's usually even worse.

Re:Why stdx is not on crates.io on Wednesday June 17, 2026 @11:28AM (#48571847)
> stdx is a monorepo of, as of today, 64 crates

It's quite an, ahem, interesting mix of libraries, including three csv libraries, hyper_utils (but not hyper itself), and a ton of copied crates from other maintainers.

I hope the author has a good way of updating these with upstream fixes (some look out-of-date already), otherwise you may replace one security issue with another.

And the name stdx has been taken on crates.io, more than 11 years ago which can also be equally confusing.

This and PEP-783 do remind me a bit of the story of watt (1) and serde_derive, where the latter was published containing a to WebAssembly compiled proc macro with the former as WebAssembly runtime (2).

It tried amonst others to improve isolation and long compile times in a fairly foundational Rust library which can be found in many dependency trees. I found it a cool proof of concept at the time.

Having a WebAssembly binary embedded in a library was relatively unpopular in the Rust community (3). serde_derive 1.0.184 restored the uncompiled source version, but the release notes mention they hope that crates.io (Rust equivalent of PyPi) will add WebAssembly support in the future.

One of the reasons why this wasn't very popular was that WebAssembly is much harder to inspect than Rust source code (4).

I'm not a PyPi expert. The PEP itself seems to permit adding WebAssembly to a wheel (a python package). The PEP literally mentions "There are no security implications in this PEP" (security for whom?). In 2022 the supply chain attack surface was notably smaller since powerful enough LLM's didn't exist yet, yet it was for many a concern to include WebAssembly to package s in another ecosystem back then.

I do think other forms of binaries were already permitted, such as precompiled C/C++ libraries, so if that's true, then this is indeed relatively not that big of a security concern, but _no_ security implications seems to be a bit much.

I do see the added advantage to reduce friction of loading pre-compiled webassembly from PyPi directly instead of going through alternative packaging registries though.

(1) https://crates.io/crates/watt

(2) https://github.com/serde-rs/serde/commit/1afae183b06ffe47d05...

(3) https://github.com/serde-rs/serde/issues/2538

(4) https://old.reddit.com/r/rust/comments/15wx2xe/precompiled_b...

(5) https://peps.python.org/pep-0783/

Their strategy always was "buy company" and "instantly lay off about everyone" to save costs and rapidly increase subscription pricing (1).

So far they've been relatively soft (for their doing) on Komoot, which I too am most anxious off.

Bikepacking.com has a good read about Komoot; it was probably unsustainable in the long run before bending spoons took over anyways (2), yet I much rather had they stayed a sort of indie company driven by their passion. I will cancel my long standing Komoot subscription the day enshittification news breaks.

(1) https://www.dcrainmaker.com/2025/03/komoot-acquired-history-... (2) https://bikepacking.com/plog/when-we-get-komooted/

The "local" company is already UK owned though, so at most "European", not national or EU.

What I find strange is that the Dutch government does have its own datacenters, e.g. ODC-Noord (1), but they're still looking to outsource the hosting even after the current contract ends in 2027.

(1) https://www.odc-noord.nl/

Re:MAI-Thinking-1 on Tuesday June 02, 2026 @06:07PM (#48376996)
Almost all licenses have requirements to redistribute copies of the work, or derivatives thereof. Even permissive licenses do. It's very little to ask when open source dev's provided thousands of hours of free work.

For example, the Apache 2.0 license requires in just 4.c:

  You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works;
Just because they're tokenized and transformed into a probabilistic mapping, doesn't suddenly mean that they weren't copied.

I find it morally unethical that they (likely) just ingest IP of all open source repo's without asking, but also importantly without any attribution.

Let me also note that I'm not against LLM's in general. But I do think training on open source must be opt-in, and I look forward to a world with actually ethical, and traceable (i.e. on what they were trained on, like a bill of materials (BOM)), models.

Re:Gmail thinks I'm stupid, so I left on Tuesday June 02, 2026 @05:53PM (#48376859)
I've used Fastmail for years but a year ago switched to Proton. For me the only reason to switch to Proton was that its hosted within the European continent, while Fastmail is hosted in

I would say that Fastmail is the "Ferrari of e-mail" services. It does everything well, or extremely well, especially if you have more advanced setups like wildcard domains.

In particularly, I miss being able to send from wildcard domains. While proton has a thing called simplelogin, it only works kind of seamlessly if you get an e-mail on a wildcard address and want to reply to that same address. Sending from any * domain requires you to make the address via the simplelogin page and isn't nearly as seamless. While you can make some sending addresses (i.e. regular aliases) in the protonmail interface, that's a trap, because once you've made an alias, you can't delete it unless there's no mail related to it in your mailbox anymore (even if you have a catch-all setup; I wonder if it has anything to do with how the encryption keys are setup, but it still sucks).

I also miss both snoozing and pinning mail. Officially, the proton mail apps (1) do support snoozing, but that requires "conversation view" to be enabled. I think the conversation view over groups e-mails too aggressively, and don't really understand why snoozing without conversation view isn't possible. It's utterly annoying. As far as I know, pinning e-mails isn't a thing in the proton apps. There are "stars" but these could have been labels (which also exist). They don't pin the e-mail to the top.

The proton mobile apps also lack various settings which are in the web interface, like access to sieves. The apps are sometimes a bit laggy, especially if you have a lot of e-mails, although there seem to have been some improvement on this end. I also still get double "fingerprint to unlock" requests sometimes.

Then there's theming, which I can imagine is (even) more of an opinion, but I liked the Fastmail interface more than the proton interface. I think its cleaner. Not a particular fan of any of the themes of protonmail.

I left Fastmail just as it added offline access. This was originally my biggest gripe. I might have stayed longer if they added it just before I left.

For Proton, they have been releasing a lot of new services lately. I hope they will spend a year or more, just polishing what they currently have. They did say they will spend some time on polish in a blogpost recently, but haven't really seen the fruits from this yet (or I care about different things than they do?). And I hope I will one day be able to add more domains to my account. Even with Visionary, you only get 6 domains for 6 users, and no way to add more.

I sincerely hope Proton will never add any of the AI nagging , the OP was talking about. If they do, I'll leave the instant.

(1) https://proton.me/support/snooze-emails

Re:MAI-Thinking-1 on Tuesday June 02, 2026 @05:20PM (#48376475)
I would really like to see what "appropriately licensed data" means. Cannot imagine they didn't copy all open repo's on GitHub, and can't imagine they asked for permission, or are reproducing license texts from these repo's now. It sounds hand wavy.

P.S. A fairly basic website otherwise, but it unfortunately seems to be hacking scroll for no good reason.

Re:Bitburner, programming-based incremental game on Friday May 29, 2026 @08:27AM (#48322225)
I've played both Factorio and Bitburner extensively (both >1000h, but that's unfair wrt bitburner, because you let it run in the background sometimes), but I don't find they compare that well. Factorio can be played without any optimization and completely mechanically if you wanted (i.e. no "programming" of circuits). It's visual style also makes interfacing with the game more like most games you encounter.

In bitburner, you literally have sort of editor (or terminal), which is also the world (you can use an external editor though). The whole game is about programming your way to destroy a BitNode.

I guess they're comparable because they are both about optimization of bottlenecks. In my experience though, having played Factorio for hundreds of hours with software engineer friends, BitBurner with its text only interface is far more niche, and only the thought of playing it reminds some of them of work (so they don't try) ;).

Re:How Claude Code works in large codebases on Friday May 15, 2026 @02:31AM (#48145238)
The first link states literally

"AI will take over almost all the work of software engineers (SWEs) end - to - end in just 6 - 12 months!"

What you describe is >50% of the job of SWEs, even when they write all code by hand.

Are you saying that "for many start-ups", this isn't done by SWE's but by some other career type or are you implying that it's just the code written (and first review) is replaced by AI?

Re:Rust but Lisp on Sunday May 10, 2026 @07:00AM (#48082814)
And if you like Lisp and ownership, there's also Carp [1]. It doesn't mimic Rust's features and naming schemes though.

Carp is about 10 years old and has some cool demo's (like SDL for gamedev).

> The key features of Carp are the following:

> * Automatic and deterministic memory management (no garbage collector or VM)

> * Inferred static types for great speed and reliability

> * Ownership tracking enables a functional programming style while still using mutation of cache-friendly data structures under the hood

> * No hidden performance penalties – allocation and copying are explicit > * Straightforward integration with existing C code

> * Lisp macros, compile time scripting and a helpful REPL

[1]: https://github.com/carp-lang/Carp

Re:Bun is being ported from Zig to Rust on Tuesday May 05, 2026 @12:47AM (#48018153)
There are other reasons why a project like Zig might not want to accept LLM generated contributions.

Zig, as programming language, has a multiplier codebase. A bug may affect a significant larger portion of users than most libraries or binaries will, as it's a fundamental building block of everything that uses Zig. Just that could be worth the extra scrutiny on every individual commit.

There's also the usual arguments: copyright ethics, environmental ethics and maintainer burden.

Re:Box to Save Memory in Rust on Monday April 27, 2026 @07:06AM (#47920054)
The Try trait (representing the ? the operation) is super cool though! I wish it was marked stable so you could implement it for types without using the nightly compiler.

Note that both Option and Result implement that same trait.

Perhaps if try blocks ever become a thing... we can finally use it for our own types ;)

https://doc.rust-lang.org/std/ops/trait.Try.html

Re:Framework Laptop 13 Pro on Tuesday April 21, 2026 @04:04PM (#47853822)
Finally! Glad they will now offer something which doesn't have a bending frame.

... but I wish they would make something with a bit more screen estate without being heavy and bulky. Their 16" is just too big. I really like the Dell XPS 14 and MBP 14", which I think is the right trade-off between screen size and portability.

Older »