Best Memorial Day Mattress Deals: Helix, Saatva (2026)
It’s one of the best times of the year to buy a mattress, and deals on our favorite models are in full swing. ⌘ Read more
The Worlds Left to Conquer
Article URL: https://ludic.mataroa.blog/blog/the-worlds-left-to-conquer/
Comments URL: https://news.ycombinator.com/item?id=48256192
Points: 4
# Comments: 1 ⌘ Read more
Why Is Vivado 2026.1 Dropping Linux Support for Free Tier?
Article URL: https://adaptivesupport.amd.com/s/question/0D5Pd00001YQLdMKAX/why-is-vivado-20261-dropping-linux-support-for-free-tier-?language=en_US
Comments URL: [https://news.ycombinator.com/item?id=48254309](https://news.ycombinator.com/ … ⌘ Read more
ICE Awards $25M Iris-Scanning Contract to Bi2 Technologies
Article URL: https://www.projectsaltbox.com/p/ice-awards-25-million-iris-scanning
Comments URL: https://news.ycombinator.com/item?id=48252720
Points: 17
# Comments: 1 ⌘ Read more
Don’t Roll Your Own
Article URL: https://susam.net/do-not-roll-your-own.html
Comments URL: https://news.ycombinator.com/item?id=48252192
Points: 6
# Comments: 1 ⌘ Read more
CC-Wiki: Turn Claude Code sessions into a shareable knowledge base wiki
Article URL: https://github.com/tejpalv/cc-wiki
Comments URL: https://news.ycombinator.com/item?id=48250126
Points: 4
# Comments: 1 ⌘ Read more
Reverse engineering circuitry in a Spacelab computer from 1980
Article URL: https://www.righto.com/2026/05/reverse-engineering-spacelab-computer.html
Comments URL: https://news.ycombinator.com/item?id=48248954
Points: 9
# Comments: 1 ⌘ Read more
Italy Cancels Boeing Pegasus Order, Shifting to Airbus A330 MRTT
Article URL: https://www.euronews.com/my-europe/2026/05/21/italy-moves-to-airbus-a330-tankers-in-major-nato-aligned-shift
Comments URL: https://news.ycombinator.com/item?id=48248775
Points: 15
# Comments: 1 ⌘ Read more
On The
Article URL: https://benmyers.dev/blog/on-the-dl/
Comments URL: https://news.ycombinator.com/item?id=48247325
Points: 16
# Comments: 1 ⌘ Read more
I should have changed the key binding from Print to Shift+Print a long time ago to launch import and upload the screenshot to my server. I was constantly hitting that stupid key on accident when I actually wanted to press [AltGr].
If I only could map a key binding to slap these damn ThinkPad T15 keyboard layout designers at Lenovo remotely in the face. Seriously, who in their right mind puts Print (in German Druck) between AltGr and Ctrl at the bottom row to begin with?! Exactly. Nobody. What a horrible location.
Best Memorial Day Deals: Garmin, Birdfy, Branch (2026)
Memorial Day isn’t until Monday, but sales on our favorite gear are going on all weekend. ⌘ Read more
Best Early Memorial Day Mattress Deals: Helix, Saatva (2026)
It’s one of the best times of the year to buy a mattress, and deals on our favorite models are in full swing. ⌘ Read more
Is AI Profitable Yet?
Article URL: https://isaiprofitable.com/
Comments URL: https://news.ycombinator.com/item?id=48243863
Points: 4
# Comments: 1 ⌘ Read more
Shipping a Laptop to a Refugee Camp in Uganda
Article URL: https://notesbylex.com/shipping-a-laptop-to-a-refugee-camp-in-uganda
Comments URL: https://news.ycombinator.com/item?id=48241997
Points: 7
# Comments: 1 ⌘ Read more
Memorial Day Tech Deals: Sony, Apple, Beats (2026)
Lots of our most-recommended headphones, power banks, and other gadgets are on sale for Memorial Day. ⌘ Read more
Show HN: ShadowCat – file transfer through QR Codes in a Browser
Article URL: https://github.com/unprovable/ShadowCat
Comments URL: https://news.ycombinator.com/item?id=48234287
Points: 6
# Comments: 1 ⌘ Read more
30% Off Samsung Promo Code | May 2026
Save 30% or 10% with Samsung coupon codes, up to $1,000 on appliances, plus limited-time deals on the Galaxy Z Fold7, Flip7, and S25. ⌘ Read more
‘Creepy’ Listening Tool for Targeted Ads Didn’t Actually Work, FTC Says
Three firms will pay nearly $1 million for selling “Active Listening” technology that they claimed tapped people’s phones for advertising. The FTC alleges the “tech” was just pricey email lists. ⌘ Read more
AOC displays drinking water contaminated by data center
Article URL: https://bsky.app/profile/did:plc:iu4j537hox5huj4bwnwgub4z/post/3mmeysgcjbs2j
Comments URL: https://news.ycombinator.com/item?id=48227773
Points: 12
# Comments: 1 ⌘ Read more
11 Best Meal Delivery Services, Tested by an Ex-Restaurant Critic
Here are the best meal kits in 2026, including Martha Stewart’s delivery box, a GLP-1–supportive plan, and a budget-friendly option. ⌘ Read more
Hulu Promo Codes & Discounts: 20% Off in May
Students can get a Hulu plan for $1.99 per month. Get more details on this and other great deals below. ⌘ Read more
LG Promo Codes and Coupons for May 2026
Save 20% with an LG promo code today, plus up to $1,000 off appliances, 40% off bestselling TVs and monitors. ⌘ Read more
7.1-rc4: mainline
Version:7.1-rc4 (mainline)Released:2026-05-17Source:linux-7.1-rc4.tar.gzPatch:full ( incremental) ⌘ Read more
6.1.173: longterm
Version:6.1.173 (longterm)Released:2026-05-15Source:linux-6.1.173.tar.xzPGP Signature:linux-6.1.173.tar.signPatch:full ⌘ Read more
I just wanted to look up 9V block battery prices online and these automatically generated descriptions are getting dumber by the minute:
Datum der Erzeugung: Verfallsdatum minus 7 Jahre
(Date of manufacturing: expiration date minus 7 years)
Or look at this one:
Die leistungsstarke 9 V-Block E Batterie, auch 6LR61 genannt, eignet sich besonders gut für Taschenlampen, Radio oder Kinderspielzeug, die einen gleichbleibenden Strombedarf haben. Ihre max. Spannung beträgt 1,5 V.
(The high performance 9 V block E battery, also known as 6LR61, is particularly suitable for torches, radio or child’s toys, which have a steady power demand. Its max. voltage is 1.5 V.)
The battery is best suited for… devices where it fits. No shit, Sherlock! Has anyboy ever come across 9V block torches? O_o I haven’t.
20% Off LG Promo Code & Coupons | May 2026
Save 20% with an LG promo code today, plus up to $1,000 off appliances, 40% off bestselling TVs and monitors. ⌘ Read more
Some Women Are Obsessively Testing Their Vaginas to Optimize Them
Biohacker Bryan Johnson recently bragged about his girlfriend’s “top 1%” vagina as the at-home vaginal microbiome test industry is thriving. But experts are skeptical. ⌘ Read more
30% Off Samsung Promo Code | May 2026
Save 30% or 10% with Samsung coupon codes, up to $1,000 on appliances, plus limited-time deals on the Galaxy Z Fold7, Flip7, and S25. ⌘ Read more
30% Off Canon Promo Codes | May 2026
Save an extra 10% or 30% with Canon coupon codes, plus up to $1,600 on cameras, printers, and more this May. ⌘ Read more
7.1-rc3: mainline
Version:7.1-rc3 (mainline)Released:2026-05-10Source:linux-7.1-rc3.tar.gzPatch:full ( incremental) ⌘ Read more
6.1.172: longterm
Version:6.1.172 (longterm)Released:2026-05-08Source:linux-6.1.172.tar.xzPGP Signature:linux-6.1.172.tar.signPatch:full ( incremental)ChangeLog:ChangeLog-6.1.172 ⌘ Read more
6.1.171: longterm
Version:6.1.171 (longterm)Released:2026-05-08Source:linux-6.1.171.tar.xzPGP Signature:linux-6.1.171.tar.signPatch:full ⌘ Read more
Focal Mu-So Hekla Soundbar Review: Dolby Atmos With 1 Speaker
The Focal Mu-so Hekla can almost replace a multi-speaker surround-sound setup. ⌘ Read more
7.1-rc2: mainline
Version:7.1-rc2 (mainline)Released:2026-05-03Source:linux-7.1-rc2.tar.gzPatch:full ( incremental) ⌘ Read more
Just missed the 15th anniversary of the Linux installation on my laptop:
$ head -n 1 /var/log/pacman.log
[2011-04-27 11:38] installed filesystem (2011.04-1)
30% Off Canon Promo Codes | May 2026
Save an extra 10% or 30% with Canon coupon codes, plus up to $1,600 on cameras, printers, and more this May. ⌘ Read more
20% Off LG Promo Code & Coupons | May 2026
Save 20% with an LG promo code today, plus up to $1,000 off appliances, 40% off bestselling TVs and monitors. ⌘ Read more
UAE To Exit OPEC After Nearly 60 Years
On May 1, the United Arab Emirates will end its a 59-year membership in the oil consortium, allowing it to raise output during one of the most volatile energy markets in years. ⌘ Read more
Hulu Promo Codes & Discounts: 20% Off in April
Students can get a Hulu plan for $1.99 per month. Get more details on this and other great deals below. ⌘ Read more
7.1-rc1: mainline
Version:7.1-rc1 (mainline)Released:2026-04-26Source:linux-7.1-rc1.tar.gzPatch:full ⌘ Read more
@bender@twtxt.net Well I’m open to ideas of course 😅 My goal here was to build something like a Civ-1 inspired game that’s playable online and multiplayer. Do you remember this old bad boy that was played on PC(s) on MS-DOS ?! 😅
Apple’s Next CEO Needs to Launch a Killer AI Product
Tim Cook was a great CEO, but he didn’t crack AI. It’s job number 1 for John Ternus. ⌘ Read more
v0.1 desenhada, com letras e números. É especial conseguir desenhar um tipo de letra apenas com o teclado e um editor de texto
These New Smart Glasses From Ex-OnePlus Engineers Have a Hidden Cost
The Kickstarter-funded glasses from L’Atitude 52°N have AI features bundled for 1 year, but the company doesn’t know yet how much it will charge for access after that. ⌘ Read more
NASA shuts down Voyager 1 science instrument to conserve power
The most distant man-manned object in the universe is still going - but it needs a bit of help to stay functional. Launched in 1977, both Voyager 1 an… ⌘ Read more
As an enjoyer of delightfully bad graphic design, found on most Czech village center cork boards, I’m sad to see the stolen clipart and badly cropped watermarked stock images, gradually replaced with AI slop.
This is far from a serious rant, but generating images of my kind being telepathically hit with sharp rocks, surely gives me a right to complain.

So far these seem the most prominent slop categories, seem to be…
Architecture slop:
- find a sketch of what an old building looked like

- generate an AI version, without correcting any of the perspective errors - this one is diagonally levitating

- generate a recreation of the buildings demise - after going through the AI, for the second time, it is now a completely different building

Moralizing slop:


History slop:

WA wine industry warns of impact of Containers for Change expansion
A newly formed West Australian wine group warns that bottles of wine produced in the state could increase by $1.25 if the expansion of the Containers for Change scheme goes ahead. ⌘ Read more
@movq@www.uninformativ.de LOL. I think I get the idea. I am concerned about AI too. Managers starting with “I don’t know anything about this, but here is what says”. Infuriating.
I came across this one today, here is a gift link: https://www.nytimes.com/2026/04/15/opinion/art-artificial-intelligence.html?unlocked_article_code=1.bFA.XNiu.ZukFfdNl3Al1&smid=nytcore-ios-share
6.1.168: longterm
Version:6.1.168 (longterm)Released:2026-04-11Source:linux-6.1.168.tar.xzPGP Signature:linux-6.1.168.tar.signPatch:full ( incremental)ChangeLog:ChangeLog-6.1.168 ⌘ Read more
@lyse@lyse.isobeef.org AI result ahead, feel free to ignore.
I “asked” the AI at work the same question out of morbid curiousity. It “said” that SQLite converts that integer to floating point internally on overflows and then, when converting back, the x86 instruction cvttsd2si will turn it into 0x8000000000000000, even if the actual floating point value is outside of that range. So, yes, it allegedly actually saturates, as a side effect of the type conversion.
I couldn’t find anything about that automatic conversion in SQLite’s manual, yet, but an experiment looks like it might be true:
sqlite> select typeof(1 << 63);
╭─────────────────╮
│ typeof(1 << 63) │
╞═════════════════╡
│ integer │
╰─────────────────╯
sqlite> select typeof((1 << 63) - 1);
╭──────────────────────╮
│ typeof((1 << 63) ... │
╞══════════════════════╡
│ real │
╰──────────────────────╯
As for cvttsd2si, this source confirms the handling of 0x8000000000000000 on range errors: https://www.felixcloutier.com/x86/cvttsd2si
The following C program also confirms it (run through gdb to see cvttsd2si in action):
<a href="https://txt.sour.is/search?q=%23include">#include</a> <stdint.h>
<a href="https://txt.sour.is/search?q=%23include">#include</a> <stdio.h>
int
main()
{
int64_t i;
double d;
/* -3000 instead of -1, because `double` can’t represent a
* difference of -1 at this scale. */
d = -9223372036854775808.0 - 3000;
i = d;
printf("%lf, 0x%lx, %ld\n", d, i, i);
return 0;
}
(Remark about AI usage: Fine, I got an answer and maybe it’s even correct. But doing this completely ruined it for me. It would have been much more satisfying to figure this out myself. I actually suspected some floating point stuff going on here, but instead of verifying this myself I reached for the unethical tool and denied myself a little bit of fun at the weekend. Won’t do that again.)
Disclaimer: Can’t guarantee that I’m fully awake and I’m being trained at work not to use my brain anymore, so maybe this is complete bullshit. 😪🧟♀️
It says here that SQLite uses signed integers:
https://sqlite.org/datatype3.html
In pure bits, 1 << 63 would be 0x8000000000000000, but as a signed value, it gets interpreted as -9223372036854775808. Subtracting 1 yields -9223372036854775809 – but that doesn’t fit in 64 bits anymore. It’s possible that SQLite doesn’t want to wrap around but instead saturates? Haven’t checked. 🤔
With 62 bits, there is enough room.
With 1 << 64, I have no idea how SQLite wants to handle this, because this should immediately trigger a warning, because it doesn’t fit right away. Maybe it gets truncated to 0?
sqlite> select printf('0x%x', 2 * (1 << 64));
╭──────────────────────╮
│ printf('0x%x', 2 ... │
╞══════════════════════╡
│ 0x0 │
╰──────────────────────╯
sqlite> select printf('0x%x', 0 - 1);
╭──────────────────────╮
│ printf('0x%x', 0 ... │
╞══════════════════════╡
│ 0xffffffffffffffff │
╰──────────────────────╯
sqlite> select printf('0x%x', 0 - 2);
╭──────────────────────╮
│ printf('0x%x', 0 ... │
╞══════════════════════╡
│ 0xfffffffffffffffe │
╰──────────────────────╯
Major fire destroys huge toilet paper supply warehouse in California
An unexpected disaster has managed to destroy a 1.2 million-square-foot toilet roll storage facility. Eyebrows were raised along the West Coast this w… ⌘ Read more
@lyse@lyse.isobeef.org 1, 3, and 22 are my picks on this very reduced set. Our bird is King/Queen, and that stop on the roof is their spot! 🥰
When I discover pagination starts at 0 on the backend and 1 on the frontend ⌘ Read more
6.1.167: longterm
Version:6.1.167 (longterm)Released:2026-03-25Source:linux-6.1.167.tar.xzPGP Signature:linux-6.1.167.tar.signPatch:full ( incremental)ChangeLog:ChangeLog-6.1.167 ⌘ Read more
Astronomers discover completely new category of extrasolar planet
This distant world, known as L98-59d, offers a literal interpretation of the phrase ‘the floor is lava’. At approximately 1.6 times the size of the E… ⌘ Read more
Woman spends 70 days counting out loud to reach 1,070,000
A woman from Nigeria has achieved a new Guinness World Record by counting out loud for several weeks straight. Imagine doing nothing at all with your … ⌘ Read more
6.1.166: longterm
Version:6.1.166 (longterm)Released:2026-03-05Source:linux-6.1.166.tar.xzPGP Signature:linux-6.1.166.tar.signPatch:full ( incremental)ChangeLog:ChangeLog-6.1.166 ⌘ Read more
v2 branch and @doesnm.p.psf.lt has been incredibly helpful so far. Be great ot have a few more folks to join us, some of the v2 highlights include:
@bender@twtxt.net Here is a properly formatted version of your message:
Not yet — but that’s probably a good idea.
Instructions:
- Clone the repository
git clone https://git.mills.io/saltyim/saltyim.git
cd saltyim
- Check out the
v2branch
git checkout v2
- Build and install the CLI/TUI
make DESTDIR=$HOME/bin install
After installation, run:
salty-chat
お知らせ:JPCERT/CC Eyes「JSAC2026 開催レポート~DAY 1~」 ⌘ Read more
Undersea cables could serve as a tsunami early warning system
There are roughly 1.5 million kilometers of cables currently stretching across the world’s ocean floors. Marc-Andre Gutscher: Forecasting earthquakes … ⌘ Read more
6.19.2: stable
Version:6.19.2 (stable)Released:2026-02-16Source:linux-6.19.2.tar.xzPGP Signature:linux-6.19.2.tar.signPatch:full ( incremental)ChangeLog:ChangeLog-6.19.2 ⌘ Read more
6.19.1: stable
Version:6.19.1 (stable)Released:2026-02-16Source:linux-6.19.1.tar.xzPGP Signature:linux-6.19.1.tar.signPatch:fullChangeLog:ChangeLog-6.19.1 ⌘ Read more
** Snakes snakes snakes, a week note **
I’ve been working on an ill advised project. This project will have to be done in many parts. Part one of many is done, and I’m debating if I should share it, or if I should wait to get the whole thing done. But now, a smash cut…I started this post off as a normal post, but now that it is an RSS sickos only post…
Check this shit out! I recently read about the $1 unistroke recognizer, and predictably, had to try to [implement my … ⌘ Read more
お知らせ:JPCERT/CC Eyes「Windowsのイベントログ分析トレーニング用コンテンツの公開」 ⌘ Read more
SpaceX proposes orbital data center made up of 1 million satellites
Elon Musk’s space firm is seeking regularity approval to develop a satellite constellation of unprecedented scale. If you thought the current array of… ⌘ Read more
6.1.161: longterm
Version:6.1.161 (longterm)Released:2026-01-17Source:linux-6.1.161.tar.xzPGP Signature:linux-6.1.161.tar.signPatch:full ( incremental)ChangeLog:ChangeLog-6.1.161 ⌘ Read more
Long-running SETI project hones in on final 100 ‘signals of interest’
A crowd-sourced effort to analyze astronomical data for signs of intelligent alien civilizations is nearing completion. Launched all the way back in 1… ⌘ Read more
Amanhã vou rolar uma demo de Tidalcycles no primeiro meetup de livecoding do Porto :szterminal:
I’m trying to implement configurable key bindings in tt. Boy, is parsing the key names into tcell.EventKeys a horrible thing. This type consists of three information:
- maybe a predefined compound key sequence, like Ctrl+A
- maybe some modifiers, such as Shift, Ctrl, etc.
- maybe a rune if neither modifiers are present nor a predefined compound key exists
It’s hardcoded usage results in code like this:
func (t *TreeView[T]) InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
switch event.Key() {
case tcell.KeyUp:
t.moveUp()
case tcell.KeyDown:
t.moveDown()
case tcell.KeyHome:
t.moveTop()
case tcell.KeyEnd:
t.moveBottom()
case tcell.KeyCtrlE:
t.moveScrollOffsetDown()
case tcell.KeyCtrlY:
t.moveScrollOffsetUp()
case tcell.KeyTab, tcell.KeyBacktab:
if t.finished != nil {
t.finished(event.Key())
}
case tcell.KeyRune:
if event.Modifiers() == tcell.ModNone {
switch event.Rune() {
case 'k':
t.moveUp()
case 'j':
t.moveDown()
case 'g':
t.moveTop()
case 'G':
t.moveBottom()
}
}
}
})
}
This data structure is just awful to handle and especially initialize in my opinion. Some compound tcell.Keys are mapped to human-readable names in tcell.KeyNames. However, these names always use - to join modifiers, e.g. resulting in Ctrl-A, whereas tcell.EventKey.Name() produces +-delimited strings, e.g. Ctrl+A. Gnaarf, why this asymmetry!? O_o
I just checked k9s and they’re extending tcell.KeyNames with their own tcell.Key definitions like crazy: https://github.com/derailed/k9s/blob/master/internal/ui/key.go Then, they convert an original tcell.EventKey to tcell.Key: https://github.com/derailed/k9s/blob/b53f3091ca2d9ab963913b0d5e59376aea3f3e51/internal/ui/app.go#L287 This must be used when actually handling keyboard input: https://github.com/derailed/k9s/blob/e55083ba271eed6fc4014674890f70c5ed6c70e0/internal/ui/tree.go#L101
This seems to be much nicer to use. However, I fear this will break eventually. And it’s more fragile in general, because it’s rather easy to forget the conversion or one can get confused whether a certain key at hand is now an original tcell.Key coming from the library or an “extended” one.
I will see if I can find some other programs that provide configurable tcell key bindings.
@eldersnake@we.loveprivacy.club
Steps to world domination:
- “Invent” “AI” (by using other people’s data).
- Get people hyped about it and ideally hooked on it.
- Only provide it as a cloud service. But hey, if you want to, you can run it locally!
- Buy all hardware available on the market, so that nobody but you can build more systems.
- All PCs of consumers and competitors are too weak now and can’t be upgraded anymore.
- Everybody depends on your cloud service! Win!
All of that is possible because corporations don’t have a “conscience” in capitalism. Nobody forces the RAM manufacturers to sell all their stuff to just one or two buyers, but since the only goal of that manufacturer is to make money, they do it.
Nice! 😊 Here are the startup latencies for the simplest Mu (µ) program. println("Hello World"):
- Interpreter: ~5ms
- Native Code: ~1.5ms
Hmmm 🤔
Excluding merges, 1 author has pushed 171 commits to main and 175 commits to all branches. On main, 294 files have changed and there have been 52880 additions and 18269 deletions.
From the Mu (µ) Gitea Activity Tab
@movq@www.uninformativ.de Well, just a very limited subset thereof:
- inline and multiline code blocks using single/double/triple backticks (but no code blocks with just indentation)
- markdown links using using
[text](url)
- markdown media links using

And that’s it. No bold, italics, lists, quotes, headlines, etc.
Just like mentions, plain URLs, markdown links and markdown media URLs are highlighted and available in the URLs View. They’re also colored differently, similarly to code segments.
I definitely should write some documentation and provide screenshots.
I assume you made the thing load quickly, didn’t you?
That’s the problem with Python. If you have a couple of files to import, it will take time.
I want this to be reasonably fast on my old Intel NUC from 2016 (Celeron N3050 @ 1.60GHz) and I already notice that the program startup takes about 95 ms (or 125 ms when there are no .pyc files yet). That’s still fine, but it shows that I’ll have to be careful and keep this thing very small …
Python 3.14 will bring lazy imports, maybe that can help in some cases.
The tt URLs View now automatically selects the first URL that I probably are going to open. In decreasing order, the URL types are:
- markdown media URLs (images, videos, etc.)
- markdown or plaintext URLs
- subjects
- mentions
I might differentiate between mentions of subscribed and unsubscribed feeds in the future. The odds of opening a new feed over an already existing one are higher.
Whoo! I fixed one of the hardest bugs in mu (µ) I think I’ve had to figure out. Took me several days in fact to figure it out. The basic problem was, println(1, 2) was bring printed as 1 2 in the bytecode VM and 1 nil when natively compiled to machine code on macOS. In the end it turned out the machine code being generated / emitted meant that the list pointers for the rest... of the variadic arguments was being slot into a register that was being clobbered by the mu_retain and mu_release calls and effectively getting freed up on first use by the RC (reference counting) garbage collector 🤦♂️
6.18.2: stable
Version:6.18.2 (stable)Released:2025-12-18Source:linux-6.18.2.tar.xzPGP Signature:linux-6.18.2.tar.signPatch:full ( incremental)ChangeLog:ChangeLog-6.18.2 ⌘ Read more
I rewrote all my solutions in Rust (except for day 10 part 2) and these are the runtimes on my i7-3770 from 2013 (this measures CLOCK_PROCESS_CPUTIME_ID, not wallclock):
day01/1 [ 00.000501311] Result: 1066
day01/2 [ 00.000400298] Result: 6223
day02/1 [ 00.000358848] Result: 12586854255
day02/2 [ 00.000750711] Result: 17298174201
day03/1 [ 00.000106537] Result: 17405
day03/2 [ 00.000404632] Result: 171990312704598
day04/1 [ 00.000257517] Result: 1626
day04/2 [ 00.007495342] Result: 9173
day05/1 [ 00.000237212] Result: 505
day05/2 [ 00.000142731] Result: 344423158480189
day06/1 [ 00.000229629] Result: 4076006202939
day06/2 [ 00.000279552] Result: 7903168391557
day07/1 [ 00.000204422] Result: 1622
day07/2 [ 00.000283816] Result: 10357305916520
day08/1 [ 00.029427421] Result: 84968
day08/2 [ 00.028089859] Result: 8663467782
day09/1 [ 00.000310304] Result: 4764078684
day09/2 [ 00.015512554] Result: 1652344888
day10/1 [ 00.000796663] Result: 375
day10/2 [ --.---------] Result: 15377 (Z3)
day11/1 [ 00.000416804] Result: 753
day11/2 [ 00.000660528] Result: 450854305019580
day12/1 [ 00.000336081] Result: 577
day12/2 [ 00.000000695] Result: no part 2
A little under 90 ms total.
On my Samsung NC10 netbook from 2011 with its Intel Atom N455 at 1.6 GHz:
day01/1 [ 00.003771326] Result: 1066
day01/2 [ 00.003267317] Result: 6223
day02/1 [ 00.003902698] Result: 12586854255
day02/2 [ 00.006659479] Result: 17298174201
day03/1 [ 00.000747544] Result: 17405
day03/2 [ 00.002737587] Result: 171990312704598
day04/1 [ 00.001263892] Result: 1626
day04/2 [ 00.044985301] Result: 9173
day05/1 [ 00.001696761] Result: 505
day05/2 [ 00.000978962] Result: 344423158480189
day06/1 [ 00.001387660] Result: 4076006202939
day06/2 [ 00.001734248] Result: 7903168391557
day07/1 [ 00.001295528] Result: 1622
day07/2 [ 00.001809659] Result: 10357305916520
day08/1 [ 00.277251443] Result: 84968
day08/2 [ 00.284359332] Result: 8663467782
day09/1 [ 00.003152407] Result: 4764078684
day09/2 [ 00.071123459] Result: 1652344888
day10/1 [ 00.005279527] Result: 375
day10/2 [ --.---------] Result: 15377 (Z3)
day11/1 [ 00.003273342] Result: 753
day11/2 [ 00.005139719] Result: 450854305019580
day12/1 [ 00.002857552] Result: 577
day12/2 [ 00.000004421] Result: no part 2
A little over 700 ms total.
I like this. You get performance that’s more or less in the ballpark of C, but without the footguns.
If your very popular project with lots of stars on GitHub is over 10 years old, and you’re still at a pre-1.0 version because you’re using SemVer and a 1.0 would mean making some kind of commitment and that’s somehow not desirable for you, then I think you’re doing something wrong. 🤔
I cleaned up all my of AoC (Advent of Code) 2025 solutions, refactored many of the utilities I had to write as reusable libraries, re-tested Day 1 (but nothing else). here it is if you’re curious! This is written in mu, my own language I built as a self-hosted minimal compiler/vm with very few types and builtins.
I’m having to write my own functions like this in mu just to solve AoC puzzles :D
fn pow10(k) {
p := 1
i := 0
while i < k {
p = p * 10
i = i + 1
}
return p
}
I just completed “Secret Entrance” - Day 1 - Advent of Code 2025 #AdventOfCode https://adventofcode.com/2025/day/1 — However I did it in my own toy programming language called mu, which I had to build first 🤣
Come back from my trip, run my AoC 2025 Day 1 solution in my own language (mu) and find it didn’t run correctly 🤣 Ooops!
$ ./bin/mu examples/aoc2025/day1.mu
closure[0x140001544e0]
Alright, Advent of Code is over:
https://www.uninformativ.de/blog/postings/2025-12-12/0/POSTING-en.html
It’s been quite the time sink, especially with the DOS games on top, but it was fun. 🥳
In case you’re wondering: All puzzles (except for part 2 of day 10) were doable in Python 1 on SuSE Linux 6.4 and ran in a finite time on the Pentium 133. Puzzle 10/2 might have been doable as well if I had better education. 🤣
6.18.1: stable
Version:6.18.1 (stable)Released:2025-12-12Source:linux-6.18.1.tar.xzPGP Signature:linux-6.18.1.tar.signPatch:fullChangeLog:ChangeLog-6.18.1 ⌘ Read more
@prologic@twtxt.net No beak, no feathers, … looks suspicious! That’s probably a weird mammal!!1! 😅🤣
Gootosocial to a Pleroma one. While GTS is kinda cute (lightweight and easy to manage) of a software, the inability to fetch/scroll through people's past toots when visiting a profile or having access to a federated timeline and a proper search functionality ...etc felt like handicap for the past N months.
@bender@twtxt.net yeah, I’ve been reading through the documentation last night and it felt overwhelming for a minute… +1 point goes to GTS’s docs. but hey, I’ll be taking the easy route: podman-compose up -d they provide both a container image and an example compose file in a separate git repo but I’m wondering why that is not mentioned anywhere in the docs, (unless it is and I haven’t seen it yet)
Day 2 was pretty tough on my old hardware. Part 1 originally took 16 minutes, then I got it down to 9 seconds – only to realize later that my solution abused some properties of my particular input. A correct solution will probably take about 30 seconds. 🫤
Part 2 took 29 minutes this morning. I wrote an optimized version but haven’t tested it yet. I hope it’ll be under a minute.
Python 1 feels really slow, even compared to Java 1. And these first puzzles weren’t even computationally intensive. We’ll see how far I’ll make it …
AoC Day #1 solution (mu): https://gist.mills.io/prologic/d3c22bcbc22949939b715a850fe63131
Thinking about doing Advent of Code in my own tiny language mu this year.
mu is:
- Dynamically typed
- Lexically scoped with closures
- Has a Go-like curly-brace syntax
- Built around lists, maps, and first-class functions
Key syntax:
- Functions use
fnand braces:
fn add(a, b) {
return a + b
}
- Variables use
:=for declaration and=for assignment:
x := 10
x = x + 1
- Control flow includes
if/elseandwhile:
if x > 5 {
println("big")
} else {
println("small")
}
while x < 10 {
x = x + 1
}
- Lists and maps:
nums := [1, 2, 3]
nums[1] = 42
ages := {"alice": 30, "bob": 25}
ages["bob"] = ages["bob"] + 1
Supported types:
int
bool
string
list
map
fn
nil
mu feels like a tiny little Go-ish, Python-ish language — curious to see how far I can get with it for Advent of Code this year. 🎄
Day 1 was surprisingly finnicky. A lot of people got it wrong, apparently. Me too. 🤣
Advent of Code 2025 starts tomorrow. 🥳🎄
This year, I’m going to use Python 1 on SuSE Linux 6.4, writing the code on my trusty old Pentium 133 with its 64 MB of RAM. No idea if that old version of Python will be fast enough for later puzzles. We’ll see.
@lyse@lyse.isobeef.org Damn. That was stupid of me. I should have posted examples using 2026-03-01 as cutoff date. 😂
In my actual test suite, everything uses 2027-01-01 and then I have this, hoping that that’s good enough. 🥴
def test_rollover():
d = jenny.HASHV2_CUTOFF_DATE
assert len(jenny.make_twt_hash(URL, d - timedelta(days=7), TEXT)) == 7
assert len(jenny.make_twt_hash(URL, d - timedelta(seconds=3), TEXT)) == 7
assert len(jenny.make_twt_hash(URL, d - timedelta(seconds=2), TEXT)) == 7
assert len(jenny.make_twt_hash(URL, d - timedelta(seconds=1), TEXT)) == 7
assert len(jenny.make_twt_hash(URL, d, TEXT)) == 12
assert len(jenny.make_twt_hash(URL, d + timedelta(seconds=1), TEXT)) == 12
assert len(jenny.make_twt_hash(URL, d + timedelta(seconds=2), TEXT)) == 12
assert len(jenny.make_twt_hash(URL, d + timedelta(seconds=3), TEXT)) == 12
assert len(jenny.make_twt_hash(URL, d + timedelta(days=7), TEXT)) == 12
(In other words, I don’t care as long as it’s before 2027-01-01. 😏😅)
Avi Loeb accepts skeptic’s $1,000 wager over alien visitation by 2030
The Harvard astronomer is so sure that we will find evidence of aliens that he has decided to stake money on it. Loeb, who seems adamant that there is… ⌘ Read more
@prologic@twtxt.net Your gitea thinks the LICENSE file in the yarn repository is SSPL-1.0 instead of GNU AGPL 3.0,
and I can’t help but giggle at that
Tired to re-enable the Ege route to git.mills.io today (after finishing work) and this is what I found 🤯 Tehse asshole/cunts are still at it !!! 🤬 – So let’s instead see if this works:
$ host git.mills.io 1.1.1.1
Using domain server:
Name: 1.1.1.1
Address: 1.1.1.1#53
Aliases:
git.mills.io is an alias for fuckoff.mills.io.
fuckoff.mills.io has address 127.0.0.1


PS: Would anyone be interested if I started a massive global class action suit against companies that do this kind of abusive web crawling behavior, violate/disregards robots.txt and whatever else standards that are set in stone by the W3C? 🤔
This caveman is getting too old for the Internet… 😅 It took me 1 hrs and 50 mins to catch up with what’s been going on my feed.
@lyse@lyse.isobeef.org Probably wouldn’t help, since almost every request comes from a different IP address. These are the hits on those weird /projects URLs since Sunday:
1 IP has 5 hits
1 IP has 4 hits
13 IPs have 3 hits
280 IPs have 2 hits
25543 IPs have 1 hit
The total number of hits has decreased now. Maybe the botnet has moved on …
Fark me 🤦♂️ I woke up quite late today (after a long night helping/assisting with a Mainframe migration last night fork work) to abusive traffic and my alerts going off. The impact? My pod (twtxt.net) was being hammered by something at a request rate of 30 req/s (there are global rate limits in place, but still…). The culprit? Turned out to be a particular IP 43.134.51.191 and after looking into who own s that IP I discovered it was yet-another-bad-customer-or-whatever from Tencent, so that entire network (ASN) is now blocked from my Edge:
+# Who: Tentcent
+# Why: Bad Bots
+132203
Total damage?
$ caddy-log-formatter twtxt.net.log | cut -f 1 -d ' ' | sort | uniq -c | sort -r -n -k 1 | head -n 5
61371 43.134.51.191
402 159.196.9.199
121 45.77.238.240
8 106.200.1.116
6 104.250.53.138
61k reqs over an hour or so (before I noticed), bunch of CPU time burned, and useless waste of my fucking time.