Software Tinkerer

Remote
Joined July 2007
Alex Pătrănescu retweeted
Part of the LLM-assisted work here is that Fable+Sol put together a test suite of over 400 cases that are bare shell scripts plus a harness that runs Kitty and Ghostty GUIs and captures their full pty stream AND screenshots (multiple, for animations). For the pty stream we assert byte equality. So Ghostty's success and error messages and field order of responses (its k=v) directly matches Kitty byte for byte. For screenshots, we can't do pixel-identical comparisons because the way Kitty and Ghostty calculate grids and do alpha blending doesn't match. But, LLMs are pretty good now at "do they look the same" PLUS I went through all the screenshots myself in the end. Super helpful AI assist. It allowed me to focus a lot of my brain energy and time on reading the spec, reading/writing the implementation, reviewing a lot of code, considering the right shape of things, the performance implications, etc. while I had a couple very good interns in the background doing work like this. I plan on open sourcing this validation set and harness, with the full disclaimer that it is 100% AI written. But, I think its a perfect example of something that SHOULD be. The way I had Fable+Sol work together here: 1. Sol put together the harness. 2. Fable + Sol (two separate agents) in parallel would write test cases and output them on disk in their own folders. These two are just in a ralph loop. 3. Sol + Fable (reversed) with an adversarial prompt would judge the others work by picking up the changes on disk that step 2 wrote. They would determine how accurate/worthwhile it is to keep. They'd put it in another folder. 4. Sol finally woke up for changes to this final folder and would determine if its a dup or not and then add it to the final repo. Then I'd pick up the bug reports, validate them myself, and either fix them myself or kick off new agents manually, just Codex app or Claude app. Finally, re-ran both agents once against the full test suite to verify what I saw myself: everything passed, all images look the same.
Ghostty (and libghostty!) now has a 100% complete implementation of the Kitty Graphics Protocol. We support every feature, every option. We are the first terminal beyond Kitty to do this. Most terminals stop at basic image placements, then give up on the long tail of other features. Ghostty covers all of them: - Unicode placeholders (so it works in tmux) - Relative placements (so images can be positioned relative to other images) - Animation - Scroll region handling (so images scroll properly with terminal scroll regions) - All transport mediums: shared memory, temp files, etc. - etc... All of these features don't impact steady-state use (CPU or memory, besides raw code size). And for libghostty consumers, you can use the compile-time features flags to disable them completely. I read the spec myself a hundred times. I read Kitty's source code to validate behaviors (our implementation is markedly different, so no GPL violation). I also utilized agents, primarily for validation. I spun Fable and Sol in a loop for 3 weeks (pausing only when their dedicated subs exhausted limits) with a prompt to find mismatches between the spec, Kitty's reference implementation, and Ghostty. And now we're done. Ghostty is the most compliant Kitty Graphics implementation (ignoring Kitty itself of course). And, this is all in libghostty, so now everyone can be perfectly compliant.
30
19
7
824
120,922
Wow, @wizzair, you went a long way since few years ago when you were not even accepting Revolut cards for in-flight payments. Look at you now, promoting @RevolutApp, nice!
7
1
895
Alex Pătrănescu retweeted
17. The future of AI Assisted coding
4
19
9
205
31,545
Human genome is a very large codebase with very low quality. It includes high amounts of duplication and way too much dead code and bugs. This is how code evolves naturally without developers and architects. This is how AI generated code will look without software engineers.
2
1
5
554
I know "low quality" is a negative trait. But also the "low cost" is a positive trait, as no engineering work is required. We just have to make sure we don't use such code in critical operations where reliability is important.
1
81
Alex Pătrănescu retweeted
🥳 PHP 8.3 Released! In this new release, we have: ⌨️ Typed Class Constants 🏛️ Dynamic Class Content Fetch ♻️ A New [#Override] Attribute ➕ …and more! 👓 Read all about it on: php.net/releases/8.3/en.php 🔗 php.net/ChangeLog-8#8.3.0 📦 php.net/downloads
66
1,058
156
3,135
406,535
Probably an increasingly popular opinion over time: By default, all classes should be readonly.
2
66
Alex Pătrănescu retweeted
Starting today, the curl man page clearly explains - for all 248 curl options - what happens if you specify options multiple times. Check it out at curl.se/docs/manpage.html Now at 5666 lines.
3
8
55
It's my #Twitterversary! I have been on Twitter for 15 years, since 3 Jul 2007 (via @twi_age).
2
Alex Pătrănescu retweeted
New @BBCRealityCheck piece investigating doubts which have emerged about the positive Covid test @DjokerNole used to enter Australia earlier this month. Fantastic research by BBC Serbia's @Popravljam and charts by @Danict89 Thread on our findings 👇 bbc.co.uk/news/59999541
5
8
20
Alex Pătrănescu retweeted
🥳 PHP 8.1 is released! 🔗 Read all about it at: php.net/archive/2021.php#202… ♻️ Migration Guide: php.net/migration81 🐘 Many thanks to the contributors for everything they implemented, and the RMs to get this amazing new version released! ❓ What's your favourite new feature?
27
597
73
1,301
Alex Pătrănescu retweeted
It seems like a relatively rare language-level opportunity to help people improve their codebases. The vote is tight, but I'd encourage people to vote "yes".
1
2
18
Alex Pătrănescu retweeted
PHPStan 1.0 is going to be released on 2021-11-01! I’m happy with the number of 1s in that date so that’s why 😁
13
69
6
322
Alex Pătrănescu retweeted
New blog post: How opcache works npopov.com/2021/10/13/How-op…
2
86
1
223
Alex Pătrănescu retweeted
Akamai is experiencing a service disruption. We are actively investigating the issue and will provide an update in 30 minutes.
95
796
340
1,324