<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Software Engineering on alper.nl</title><link>https://alper.nl/categories/software-engineering/</link><description>Recent content in Software Engineering on alper.nl</description><generator>Hugo -- 0.165.0</generator><language>en-US</language><lastBuildDate>Fri, 23 Oct 2026 13:09:40 +0200</lastBuildDate><atom:link href="https://alper.nl/categories/software-engineering/feed.xml" rel="self" type="application/rss+xml"/><item><title>Software can be finished</title><link>https://alper.nl/posts/18943/</link><pubDate>Fri, 23 Oct 2026 13:09:40 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18943/</guid><description>&lt;p&gt;The global cybersecurity disaster that consisted of yesterday&amp;rsquo;s &lt;a href="https://www.php2shell.com" target="_blank" rel="noreferrer"&gt;critical vulnerabilities in the PHP project&lt;/a&gt; is a good moment to talk about the natural life cycle of open source projects. There are cases where it may be better to shut things down.&lt;/p&gt;</description><content:encoded><![CDATA[<p>The global cybersecurity disaster that consisted of yesterday&rsquo;s <a href="https://www.php2shell.com"  target="_blank" rel="noreferrer">critical vulnerabilities in the PHP project</a> is a good moment to talk about the natural life cycle of open source projects. There are cases where it may be better to shut things down.</p>
<p>The PHP foundation&rsquo;s response looked inadequate and not well coordinated. The exploit was leaked and the fix was neither expedited nor rolled out quickly. The consortium of companies that participated in the release were mostly interested in using this security incident as a marketing opportunity. The details of how the response was fumbled and how to improve it is something that will be discussed in the following days. PHP and other orgs have promised improvements to their governance and processes.</p>
<p>The fixes have been back ported to older versions of PHP by a third party who filled the gap left by the official PHP release cycle. Even then, for large parts of the internet the fix may never happen. The fundamental nature of PHP as a technology and the governance they can effect do not seem in any way suitable to the scale of the problem they have let loose on the world.</p>
<p>PHP&rsquo;s nature is that as a programming language it is bad. It had a moment and that moment passed decades ago. Software is subject to a lifecycle. Perl is dead for all intents and purposes. Ruby is well past its prime and should be considered legacy software sooner rather than later.</p>
<p>The only correct answer to yesterday&rsquo;s exploit as a professional software organisation is: “We don&rsquo;t run PHP.” Nobody should be deploying PHP on the internet in this day and age. That a privacy focused enterprise collaboration suite such as <a href="https://github.com/nextcloud/server"  target="_blank" rel="noreferrer">NextCloud</a> is written in PHP is laughable.</p>
<p>Large C/C++ codebases like the <a href="https://github.com/php/php-src"  target="_blank" rel="noreferrer">PHP</a> one are fundamentally unsecurable. There&rsquo;s nothing that tells us we won&rsquo;t see 10 more exploits of this scale coming out in the next years. Every poorly maintained online PHP property should be considered to be toxic waste. Yes, that includes all of <a href="http://wordpress.org"  target="_blank" rel="noreferrer">Wordpress</a>.</p>
<p>The only way out is to either port the language itself to a memory safe language or to port your code to something less exploitable. Both manoeuvres are practical enough these days that there&rsquo;s no excuse not to do it. Nobody is locked into anything anymore and it&rsquo;s hard to believe that writing PHP in particular is the thing that makes somebody&rsquo;s heart sing. I have no stakes in it but probably if all these people would <a href="https://blainsmith.com/articles/just-fucking-use-go/"  target="_blank" rel="noreferrer">just write Go</a>, a lot of this could have been avoided. I moved this blog off Wordpress to Hugo with some help from Claude and it has been a blessing.</p>
<p>Open source maintainers often complain about their lack of resources to do the tasks they ‘need’ to do. Undoubtedly they are right, but since we only have so many resources to go around it&rsquo;s probably better to cut and focus rather than try to keep every project alive and secure. One answer to a lack of resources and recognition can be to just drop the work. Why would you keep going while at the same time complaining about it? Most people who believe they can&rsquo;t be replaced are entirely wrong.</p>
<p>We don&rsquo;t need this many interpreted web languages. More generally we don&rsquo;t need half a dozen open source libraries doing the same thing. Sometimes the mature thing can be even for a project that is very ‘successful’—especially if that success is by now mostly toxic—to consider the project finished, cut a final release and archive the repos.</p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18940/</link><pubDate>Sat, 17 Oct 2026 15:12:48 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18940/</guid><description>&lt;p&gt;I learned a bunch of stuff about passkeys here and I continue to be validated in my decision not to use them. It&amp;rsquo;s very complicated and opaque and the ‘just trust me bro‘ from the various proponents who are employed by large tech companies is not an adequate guarantee.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I learned a bunch of stuff about passkeys here and I continue to be validated in my decision not to use them. It&rsquo;s very complicated and opaque and the ‘just trust me bro‘ from the various proponents who are employed by large tech companies is not an adequate guarantee.</p>
<p><a href="https://nonfunctional.substack.com/p/passkeys-are-a-trap-do-not-use-them"  target="_blank" rel="noreferrer">https://nonfunctional.substack.com/p/passkeys-are-a-trap-do-not-use-them</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18939/</link><pubDate>Sat, 17 Oct 2026 15:11:45 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18939/</guid><description>&lt;p&gt;A useful guide how to capture state transitions in your postgres database reliably.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A useful guide how to capture state transitions in your postgres database reliably.</p>
<p><a href="https://thoughtbot.com/blog/inserting-state-transitions-in-postgres"  target="_blank" rel="noreferrer">https://thoughtbot.com/blog/inserting-state-transitions-in-postgres</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18937/</link><pubDate>Sat, 17 Oct 2026 15:07:17 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18937/</guid><description>&lt;p&gt;It&amp;rsquo;s very cool that it&amp;rsquo;s possible to reverse engineer your hardware and rewrite the firmware. I&amp;rsquo;m not sure if this will break out to become a widespread thing but it could if a bunch of things around UI design and LLMs come together.&lt;/p&gt;</description><content:encoded><![CDATA[<p>It&rsquo;s very cool that it&rsquo;s possible to reverse engineer your hardware and rewrite the firmware. I&rsquo;m not sure if this will break out to become a widespread thing but it could if a bunch of things around UI design and LLMs come together.</p>
<p>Every piece of hardware has its own personalized generated UI standardized and skinned to my preferences.</p>
<p><a href="https://bensimms.moe/reverse-engineering-scooter/"  target="_blank" rel="noreferrer">https://bensimms.moe/reverse-engineering-scooter/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18936/</link><pubDate>Sat, 17 Oct 2026 15:06:01 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18936/</guid><description>&lt;p&gt;We&amp;rsquo;ll see more of these venture funded projects revert back to the mean which in this case is Node, which has gotten seriously better over the past years. Open source is slow and steady and it endures.&lt;/p&gt;</description><content:encoded><![CDATA[<p>We&rsquo;ll see more of these venture funded projects revert back to the mean which in this case is Node, which has gotten seriously better over the past years. Open source is slow and steady and it endures.</p>
<p><a href="https://dbushell.com/2026/10/03/deno-to-node/"  target="_blank" rel="noreferrer">https://dbushell.com/2026/10/03/deno-to-node/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18935/</link><pubDate>Sat, 17 Oct 2026 15:02:24 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18935/</guid><description>&lt;p&gt;I think many organizations would benefit from an LLM policy that&amp;rsquo;s similar to what Rust is putting forward here. Proactive compulsory disclosure in particular is something that would prevent a lot of time being wasted.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I think many organizations would benefit from an LLM policy that&rsquo;s similar to what Rust is putting forward here. Proactive compulsory disclosure in particular is something that would prevent a lot of time being wasted.</p>
<p><a href="https://blog.rust-lang.org/inside-rust/2026/08/05/rust-langrust-is-adopting-an-llm-policy/"  target="_blank" rel="noreferrer">https://blog.rust-lang.org/inside-rust/2026/08/05/rust-langrust-is-adopting-an-llm-policy/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18934/</link><pubDate>Sat, 17 Oct 2026 15:00:43 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18934/</guid><description>&lt;p&gt;I know for sure this oddly named function in the &lt;code&gt;re&lt;/code&gt; library has bitten me a bunch of times when writing Python and I&amp;rsquo;m glad to see that it&amp;rsquo;s being phased out. Just why did it take so long?&lt;/p&gt;</description><content:encoded><![CDATA[<p>I know for sure this oddly named function in the <code>re</code> library has bitten me a bunch of times when writing Python and I&rsquo;m glad to see that it&rsquo;s being phased out. Just why did it take so long?</p>
<p><a href="https://hugovk.dev/blog/2026/soft-deprecating-re.match/"  target="_blank" rel="noreferrer">https://hugovk.dev/blog/2026/soft-deprecating-re.match/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18933/</link><pubDate>Wed, 14 Oct 2026 09:53:34 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18933/</guid><description>&lt;p&gt;Just like I also &lt;a href="https://alper.nl/posts/keeping-claude-in-check-with-jujutsu/" target="_blank" rel="noreferrer"&gt;wrote more than a year ago&lt;/a&gt;, there&amp;rsquo;s a lot to be gained from using jj as the version control harness for your LLM. It removes a lot of the cruft of git and simplifies concepts and flows.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Just like I also <a href="https://alper.nl/posts/keeping-claude-in-check-with-jujutsu/"  target="_blank" rel="noreferrer">wrote more than a year ago</a>, there&rsquo;s a lot to be gained from using jj as the version control harness for your LLM. It removes a lot of the cruft of git and simplifies concepts and flows.</p>
<p>The only downside is that git is so much more widespread that LLMs know how to use it almost by default, but I hope that may finally be changing.</p>
<p>Turns out this is a thought with enough currency to merit writing a book about it. Nice to see somebody jumping on that.</p>
<p><a href="https://juju-chu.com"  target="_blank" rel="noreferrer">https://juju-chu.com</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18932/</link><pubDate>Tue, 13 Oct 2026 09:52:58 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18932/</guid><description>&lt;p&gt;Dan Abramov&amp;rsquo;s account of how he used LLMs to do novel math is interesting and revealing. It is possible to deploy these tools to do new and original things, but right now it takes a lot of time, persistence and expertise.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Dan Abramov&rsquo;s account of how he used LLMs to do novel math is interesting and revealing. It is possible to deploy these tools to do new and original things, but right now it takes a lot of time, persistence and expertise.</p>
<p><a href="https://overreacted.io/how-i-vibed-a-proof-of-conways-conjecture/"  target="_blank" rel="noreferrer">https://overreacted.io/how-i-vibed-a-proof-of-conways-conjecture/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18930/</link><pubDate>Mon, 12 Oct 2026 18:25:48 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18930/</guid><description>&lt;p&gt;I totally missed Foursquare being acquired. I think that&amp;rsquo;ll mean game over for Swarm and the platform sooner rather than later.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I totally missed Foursquare being acquired. I think that&rsquo;ll mean game over for Swarm and the platform sooner rather than later.</p>
<p>Let&rsquo;s be glad there&rsquo;s a bunch of @proto based replacement services and it&rsquo;s not hard to generate data migration tools.</p>
<p><a href="https://app.dealroom.co/news/note/infillion-buys-foursquare-adding-location-data-to-its-ad-platform"  target="_blank" rel="noreferrer">https://app.dealroom.co/news/note/infillion-buys-foursquare-adding-location-data-to-its-ad-platform</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18929/</link><pubDate>Mon, 12 Oct 2026 18:25:16 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18929/</guid><description>&lt;p&gt;LLMs will use any loophole they can to make their life easier. Not unlikely that they&amp;rsquo;ve done that with the Navier Stokes problem.&lt;/p&gt;</description><content:encoded><![CDATA[<p>LLMs will use any loophole they can to make their life easier. Not unlikely that they&rsquo;ve done that with the Navier Stokes problem.</p>
<p><a href="https://www.scientificamerican.com/article/did-openai-solve-the-wrong-navier-stokes-problem/"  target="_blank" rel="noreferrer">https://www.scientificamerican.com/article/did-openai-solve-the-wrong-navier-stokes-problem/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18928/</link><pubDate>Mon, 12 Oct 2026 18:16:04 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18928/</guid><description>&lt;blockquote&gt;&lt;p&gt;the company that coined the term ‘Site Reliability Engineer’ and wrote the SRE book.&lt;/p&gt;</description><content:encoded><![CDATA[<blockquote><p>the company that coined the term ‘Site Reliability Engineer’ and wrote the SRE book.</p>
</blockquote><p>That doesn&rsquo;t really mean that much. Many of those books record practices that may only have been true very briefly or narrowly (if even that). Also the SRE book is not very good if you&rsquo;re not Google.</p>
<blockquote><p>Firebase never bothered updating its status page.</p>
</blockquote><p>That incident management even at Google these days could be better than this, is naive. We have to accept that this is as good as it gets mostly because most people aren&rsquo;t going to move away anyway.</p>
<p><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-firebases-global-outage-213"  target="_blank" rel="noreferrer">https://newsletter.pragmaticengineer.com/p/the-pulse-firebases-global-outage-213</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18923/</link><pubDate>Thu, 24 Sep 2026 09:50:40 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18923/</guid><description>&lt;p&gt;You may have seen that deleting lots of small files on your laptop can be a very intense and slow process. Deleting lots of things in a database can require so much extra work and bookkeeping that it can be detrimental to the health of the system.&lt;/p&gt;</description><content:encoded><![CDATA[<p>You may have seen that deleting lots of small files on your laptop can be a very intense and slow process. Deleting lots of things in a database can require so much extra work and bookkeeping that it can be detrimental to the health of the system.</p>
<p><a href="https://planetscale.com/blog/the-only-scalable-delete"  target="_blank" rel="noreferrer">https://planetscale.com/blog/the-only-scalable-delete</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18922/</link><pubDate>Thu, 24 Sep 2026 09:47:15 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18922/</guid><description>&lt;p&gt;I don&amp;rsquo;t think Omarchy is going to make Linux better so much as that they identified that Linux on the desktop has reached a tipping point and now is the time to capitalize on it. That&amp;rsquo;s the DHH playbook and why would it be any different this time?&lt;/p&gt;</description><content:encoded><![CDATA[<p>I don&rsquo;t think Omarchy is going to make Linux better so much as that they identified that Linux on the desktop has reached a tipping point and now is the time to capitalize on it. That&rsquo;s the DHH playbook and why would it be any different this time?</p>
<p>One thing I will give them is that the total lack of leadership and project management in open source software is at the same time a liability as it is its strength. That kind of duality creates these kind of opportunities for actors not willing to play by the unspoken rules.</p>
<p><a href="https://tante.cc/2026/09/11/power-grab/"  target="_blank" rel="noreferrer">https://tante.cc/2026/09/11/power-grab/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18921/</link><pubDate>Thu, 24 Sep 2026 09:44:12 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18921/</guid><description>&lt;p&gt;I was forced to create a passkey recently and I wanted to store that key in 1Password where I store all my other credentials. How to do that properly was pretty non-obvious and a bad enough experience that it seems that it wasn&amp;rsquo;t tested or a priority for anybody implementing these systems.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I was forced to create a passkey recently and I wanted to store that key in 1Password where I store all my other credentials. How to do that properly was pretty non-obvious and a bad enough experience that it seems that it wasn&rsquo;t tested or a priority for anybody implementing these systems.</p>
<p>Third party managers not being supported well seems to be known and one might assume also that it&rsquo;s softly intentional to create further lock in on the main platforms.</p>
<p><a href="https://hawksley.dev/blog/i-dont-like-passkeys"  target="_blank" rel="noreferrer">https://hawksley.dev/blog/i-dont-like-passkeys</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18919/</link><pubDate>Wed, 16 Sep 2026 23:33:30 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18919/</guid><description>&lt;p&gt;More and more people are finding that you can&amp;rsquo;t really let LLMs loose on any significant amount of code.&lt;/p&gt;</description><content:encoded><![CDATA[<p>More and more people are finding that you can&rsquo;t really let LLMs loose on any significant amount of code.</p>
<p>It&rsquo;s fine for simple things, but when things get complicated (or even just non-obvious) it&rsquo;ll grind and grind and continue trying stuff and producing code until it creates a huge christmas tree with thousands of lines that are entirely wrong</p>
<p>And those are the kind of solutions that juniors happily commit into production for you, saying: &ldquo;Look it works!&rdquo;</p>
<p><a href="https://lucumr.pocoo.org/2026/9/7/astra-why/"  target="_blank" rel="noreferrer">https://lucumr.pocoo.org/2026/9/7/astra-why/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18917/</link><pubDate>Wed, 09 Sep 2026 19:27:18 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18917/</guid><description>&lt;p&gt;A rundown of the differences between Rust and Zig. I can&amp;rsquo;t say I&amp;rsquo;m very convinced.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A rundown of the differences between Rust and Zig. I can&rsquo;t say I&rsquo;m very convinced.</p>
<p><a href="https://besok.github.io/posts/what-zig-felt-like-coming-from-rust/"  target="_blank" rel="noreferrer">https://besok.github.io/posts/what-zig-felt-like-coming-from-rust/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18916/</link><pubDate>Wed, 09 Sep 2026 19:26:23 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18916/</guid><description>&lt;p&gt;A very good explanation of what the real difference is between ‘simple’ and ‘complex’ in software engineering and what the consequences of this tradeoff are.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A very good explanation of what the real difference is between ‘simple’ and ‘complex’ in software engineering and what the consequences of this tradeoff are.</p>
<p><a href="https://jyn.dev/simple-is-not-the-same-as-small/"  target="_blank" rel="noreferrer">https://jyn.dev/simple-is-not-the-same-as-small/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18915/</link><pubDate>Wed, 09 Sep 2026 19:25:38 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18915/</guid><description>&lt;p&gt;I think this may be a good resolution to the Typescript Result pattern issue. Who would have thought that &lt;code&gt;anyhow&lt;/code&gt; would come in handy after all. (Also I now understand what anyhow is supposed to be doing.)&lt;/p&gt;</description><content:encoded><![CDATA[<p>I think this may be a good resolution to the Typescript Result pattern issue. Who would have thought that <code>anyhow</code> would come in handy after all. (Also I now understand what anyhow is supposed to be doing.)</p>
<p><a href="https://daviddalbusco.com/blog/tiny-utils-for-the-result-pattern"  target="_blank" rel="noreferrer">https://daviddalbusco.com/blog/tiny-utils-for-the-result-pattern</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18914/</link><pubDate>Wed, 09 Sep 2026 19:22:09 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18914/</guid><description>&lt;p&gt;After the way OpenAI behaved here with this math proof, I don&amp;rsquo;t see how anybody would trust them with secret information. It feels like we haven&amp;rsquo;t seen the last of this issue yet.&lt;/p&gt;</description><content:encoded><![CDATA[<p>After the way OpenAI behaved here with this math proof, I don&rsquo;t see how anybody would trust them with secret information. It feels like we haven&rsquo;t seen the last of this issue yet.</p>
<p><a href="https://cims.nyu.edu/~tristanb/statement.pdf"  target="_blank" rel="noreferrer">https://cims.nyu.edu/~tristanb/statement.pdf</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18912/</link><pubDate>Wed, 26 Aug 2026 09:40:13 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18912/</guid><description>&lt;blockquote&gt;&lt;p&gt;The SQLite team themselves suggest that SQLite is a better fopen(), and they meant it as a design goal, not a joke.&lt;/p&gt;</description><content:encoded><![CDATA[<blockquote><p>The SQLite team themselves suggest that SQLite is a better fopen(), and they meant it as a design goal, not a joke.</p>
</blockquote><p>After using Postgres for everything, we can go one step further and use sqlite for everything.</p>
<p><a href="https://joecode.com/2026-08-19-sqlite3/"  target="_blank" rel="noreferrer">https://joecode.com/2026-08-19-sqlite3/</a></p>
<p><a href="https://www.raphaelbauer.com/posts/postgresql-everything/"  target="_blank" rel="noreferrer">https://www.raphaelbauer.com/posts/postgresql-everything/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18911/</link><pubDate>Wed, 26 Aug 2026 09:38:46 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18911/</guid><description>&lt;p&gt;A great idea to use a software tool that exfiltrates all your data without your knowledge or consent. Not at all surprising also that it would be Grok doing such a thing.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A great idea to use a software tool that exfiltrates all your data without your knowledge or consent. Not at all surprising also that it would be Grok doing such a thing.</p>
<p><a href="https://www.theverge.com/ai-artificial-intelligence/965600/spacexai-grok-build-repository-upload"  target="_blank" rel="noreferrer">https://www.theverge.com/ai-artificial-intelligence/965600/spacexai-grok-build-repository-upload</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18910/</link><pubDate>Mon, 24 Aug 2026 08:55:51 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18910/</guid><description>&lt;p&gt;Shoehorning the open source forge into the same web application where corporate software engineering takes place was a historic mistake. It would be good to cut these two very different things loose from each other and explore what makes sense for each use case.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Shoehorning the open source forge into the same web application where corporate software engineering takes place was a historic mistake. It would be good to cut these two very different things loose from each other and explore what makes sense for each use case.</p>
<p>Open source is facing lots of challenges around trust, effort and financing fueled in large part by the LLM explosion in code. At the same time corporate software engineering is becoming faster and more industrial (also thanks to LLMs) with massive requirements in logic, gating and repository sizes.</p>
<p><a href="https://nesbitt.io/2026/05/02/a-github-for-maintainers.html"  target="_blank" rel="noreferrer">https://nesbitt.io/2026/05/02/a-github-for-maintainers.html</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18909/</link><pubDate>Mon, 24 Aug 2026 08:51:45 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18909/</guid><description>&lt;blockquote&gt;&lt;p&gt;These look intimidating the first time you see them, but they are boilerplate.&lt;/p&gt;</description><content:encoded><![CDATA[<blockquote><p>These look intimidating the first time you see them, but they are boilerplate.</p>
</blockquote><p>And that&rsquo;s exactly the problem with Rust. You can know precisely what you want to do but you&rsquo;ll spend lots of time making this stuff line up and dealing with obtuse type checking complaints.</p>
<p>It really ruins what is an otherwise cool language.</p>
<blockquote><p>Under the hood, the async block is the compiler’s desugaring of an anonymous state machine that implements Future, and Box::pin boxes-and-pins that anonymous future so its concrete type disappears behind the dyn in type Future = Pin&lt;Box&lt;dyn Future&lt;…&raquo;&gt;.</p>
</blockquote><p>I&rsquo;ve read stuff like this dozens of times and it does make sense at some point, but it&rsquo;s still aggravating. This is a good article and it does a decent job of explaining it all, but it&rsquo;s just &ldquo;too much&rdquo;.</p>
<p>Most of this stuff by now is so well documented that it&rsquo;s relatively easy to have the LLM do this kind of work for you. And once everything is put together, it will run well and quickly.</p>
<p><a href="https://loige.co/writing-middlewares-for-rust-lambda-functions/"  target="_blank" rel="noreferrer">https://loige.co/writing-middlewares-for-rust-lambda-functions/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18907/</link><pubDate>Mon, 24 Aug 2026 08:41:00 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18907/</guid><description>&lt;p&gt;I can&amp;rsquo;t agree more with this. Programming shouldn&amp;rsquo;t be that complicated. Type systems should not become too complicated or they get in the way.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I can&rsquo;t agree more with this. Programming shouldn&rsquo;t be that complicated. Type systems should not become too complicated or they get in the way.</p>
<p><a href="https://blainsmith.com/articles/just-fucking-use-go/"  target="_blank" rel="noreferrer">https://blainsmith.com/articles/just-fucking-use-go/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18906/</link><pubDate>Mon, 24 Aug 2026 08:38:17 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18906/</guid><description>&lt;p&gt;A secure LLM system cannot be given write access to any important endpoints. That&amp;rsquo;s the basic first principle of AI security at the moment.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A secure LLM system cannot be given write access to any important endpoints. That&rsquo;s the basic first principle of AI security at the moment.</p>
<p>I have a relatively high value Instagram username that I&rsquo;m holding onto for dear life against a barrage of attackers trying to get Meta to give it to them. For Meta this is clearly not a priority and I could be losing this part of my online presence at any moment.</p>
<p><a href="https://thecybersecguru.com/news/instagram-meta-ai-vulnerability-account-recovery-exploit/"  target="_blank" rel="noreferrer">https://thecybersecguru.com/news/instagram-meta-ai-vulnerability-account-recovery-exploit/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18903/</link><pubDate>Mon, 24 Aug 2026 08:31:27 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18903/</guid><description>&lt;p&gt;A wild story of debugging an obscure race condition in sqlite. Even the most reliable systems when pushed to their limits will run into these kind of weird edge cases.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A wild story of debugging an obscure race condition in sqlite. Even the most reliable systems when pushed to their limits will run into these kind of weird edge cases.</p>
<p><a href="https://tailscale.com/blog/sqlite-wal-reset-bug"  target="_blank" rel="noreferrer">https://tailscale.com/blog/sqlite-wal-reset-bug</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18902/</link><pubDate>Mon, 24 Aug 2026 08:28:23 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18902/</guid><description>&lt;p&gt;I&amp;rsquo;ve been waiting for the rewrite to conclude and to be able to use Roc for a long time now. Gleam scratches most of the itches that Roc does but for some reason I want to use Roc more.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I&rsquo;ve been waiting for the rewrite to conclude and to be able to use Roc for a long time now. Gleam scratches most of the itches that Roc does but for some reason I want to use Roc more.</p>
<p><a href="https://www.youtube.com/watch?v=a7qEOtkkDb8"  target="_blank" rel="noreferrer">https://www.youtube.com/watch?v=a7qEOtkkDb8</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18901/</link><pubDate>Mon, 24 Aug 2026 08:27:17 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18901/</guid><description>&lt;p&gt;As true as it is that monorepos require specific tooling to make them work, the same is true for any polyrepo setup as well. The main tradeoff is the price you pay when you don&amp;rsquo;t have this tooling in place yet.&lt;/p&gt;</description><content:encoded><![CDATA[<p>As true as it is that monorepos require specific tooling to make them work, the same is true for any polyrepo setup as well. The main tradeoff is the price you pay when you don&rsquo;t have this tooling in place yet.</p>
<p>But I agree: Always go for a monorepo mostly because it makes most things go faster.</p>
<p><a href="https://kore-nordmann.de/blog/always_go_with_a_monorepo.html"  target="_blank" rel="noreferrer">https://kore-nordmann.de/blog/always_go_with_a_monorepo.html</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18900/</link><pubDate>Fri, 21 Aug 2026 22:39:39 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18900/</guid><description>&lt;p&gt;This is a really clean update for Mastodon with a well communicated set of changes. One of the things that I think caused a lot of grief is mixing up messages with normal posts so I&amp;rsquo;m glad they now fixed that.&lt;/p&gt;</description><content:encoded><![CDATA[<p>This is a really clean update for Mastodon with a well communicated set of changes. One of the things that I think caused a lot of grief is mixing up messages with normal posts so I&rsquo;m glad they now fixed that.</p>
<p><a href="https://blog.joinmastodon.org/2026/08/5.0-laying-the-foundation/"  target="_blank" rel="noreferrer">https://blog.joinmastodon.org/2026/08/5.0-laying-the-foundation/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18899/</link><pubDate>Fri, 21 Aug 2026 22:36:57 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18899/</guid><description>&lt;p&gt;Is it good if your CRO and CFO decide to quit just before you IPO?&lt;/p&gt;</description><content:encoded><![CDATA[<p>Is it good if your CRO and CFO decide to quit just before you IPO?</p>
<p><a href="https://www.ft.com/content/53082739-7714-4aae-9816-e55ab423cbee"  target="_blank" rel="noreferrer">https://www.ft.com/content/53082739-7714-4aae-9816-e55ab423cbee</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18898/</link><pubDate>Fri, 21 Aug 2026 22:35:45 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18898/</guid><description>&lt;p&gt;A good roundup of a bunch of the most high profile Rust rewrites with both their successes and their failures. It&amp;rsquo;s interesting to see where the momentum behind this has gone given how much has changed in the software engineering landscape in general.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A good roundup of a bunch of the most high profile Rust rewrites with both their successes and their failures. It&rsquo;s interesting to see where the momentum behind this has gone given how much has changed in the software engineering landscape in general.</p>
<p><a href="https://blog.jetbrains.com/rust/2026/08/10/rewriting-in-rust/"  target="_blank" rel="noreferrer">https://blog.jetbrains.com/rust/2026/08/10/rewriting-in-rust/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18897/</link><pubDate>Fri, 21 Aug 2026 09:06:12 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18897/</guid><description>&lt;p&gt;The major inference providers are making their setups increasingly more proprietary and obfuscated removing user choice and portability.&lt;/p&gt;</description><content:encoded><![CDATA[<p>The major inference providers are making their setups increasingly more proprietary and obfuscated removing user choice and portability.</p>
<p><a href="https://earendil.com/posts/session-portability/"  target="_blank" rel="noreferrer">https://earendil.com/posts/session-portability/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18895/</link><pubDate>Fri, 21 Aug 2026 09:01:59 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18895/</guid><description>&lt;p&gt;It&amp;rsquo;s possible to do lots of things with systemd. That is if you can fight your way through it&amp;rsquo;s awful documentation.&lt;/p&gt;</description><content:encoded><![CDATA[<p>It&rsquo;s possible to do lots of things with systemd. That is if you can fight your way through it&rsquo;s awful documentation.</p>
<p><a href="https://blog.tjll.net/you-dont-love-systemd-timers-enough/"  target="_blank" rel="noreferrer">https://blog.tjll.net/you-dont-love-systemd-timers-enough/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18894/</link><pubDate>Fri, 21 Aug 2026 08:59:16 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18894/</guid><description>&lt;p&gt;A very helpful guide how to combine jj which already provided native stacked changes with Github&amp;rsquo;s new stacked PR feature.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A very helpful guide how to combine jj which already provided native stacked changes with Github&rsquo;s new stacked PR feature.</p>
<p>Mostly it&rsquo;s bizarre how a feature on Github that we have been waiting the better part of a decade for is so lacklustre now that it&rsquo;s finally been released.</p>
<p><a href="https://alan.norbauer.com/articles/github-stacks-with-jujutsu/"  target="_blank" rel="noreferrer">https://alan.norbauer.com/articles/github-stacks-with-jujutsu/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18893/</link><pubDate>Fri, 21 Aug 2026 08:57:14 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18893/</guid><description>&lt;blockquote&gt;&lt;p&gt;The exact words we choose when writing matter. I want any LLM I use to choose the very best, most precise words at every single decision point.&lt;/p&gt;</description><content:encoded><![CDATA[<blockquote><p>The exact words we choose when writing matter. I want any LLM I use to choose the very best, most precise words at every single decision point.</p>
</blockquote><p>Writers coming out publicly against LLM watermarking in one swoop both devalue their own work and betray they have no idea how this technology works.</p>
<p><a href="https://daringfireball.net/2026/08/anthropics_watermark_text_adulteration_in_claude_is_a_perversion_of_writing"  target="_blank" rel="noreferrer">https://daringfireball.net/2026/08/anthropics_watermark_text_adulteration_in_claude_is_a_perversion_of_writing</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18891/</link><pubDate>Thu, 20 Aug 2026 00:14:05 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18891/</guid><description>&lt;p&gt;That the company who provide the streaming platform knew immediately what was up, tells me people leave these dashboards unsecured all the time.&lt;/p&gt;</description><content:encoded><![CDATA[<p>That the company who provide the streaming platform knew immediately what was up, tells me people leave these dashboards unsecured all the time.</p>
<p><a href="https://bobdahacker.com/blog/fifa-hack"  target="_blank" rel="noreferrer">https://bobdahacker.com/blog/fifa-hack</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18890/</link><pubDate>Thu, 20 Aug 2026 00:11:20 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18890/</guid><description>&lt;p&gt;I often joke that Kubernetes is nothing more than a Docker installation and a bunch of shell scripts interacting with each other. In fact, at the most basic level, if you don&amp;rsquo;t have any knowledge, you could definitely build a very fragile cluster that way. It might even be fun!&lt;/p&gt;</description><content:encoded><![CDATA[<p>I often joke that Kubernetes is nothing more than a Docker installation and a bunch of shell scripts interacting with each other. In fact, at the most basic level, if you don&rsquo;t have any knowledge, you could definitely build a very fragile cluster that way. It might even be fun!</p>
<p>But once you go about abstracting that and making it robust and turning it into a series of cascading and interlocking loops, you get the massive beast we all know and love.</p>
<p>Fatih here does a good job of explaining what goes into Kubernetes&rsquo;s inner functioning and that all those loops together can also be called ‘control theory’.</p>
<p><a href="https://planetscale.com/blog/the-feedback-loops-behind-kubernetes"  target="_blank" rel="noreferrer">https://planetscale.com/blog/the-feedback-loops-behind-kubernetes</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18888/</link><pubDate>Thu, 20 Aug 2026 00:05:15 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18888/</guid><description>&lt;blockquote&gt;&lt;p&gt;which means the best free Arabic font of the digital era is a one-man reconstruction of the best government-funded font of the metal era&lt;/p&gt;</description><content:encoded><![CDATA[<blockquote><p>which means the best free Arabic font of the digital era is a one-man reconstruction of the best government-funded font of the metal era</p>
</blockquote><p>A massive treatment of the difficulties of rendering Arabic text.</p>
<p><a href="https://lr0.org/blog/p/arabic/"  target="_blank" rel="noreferrer">https://lr0.org/blog/p/arabic/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18887/</link><pubDate>Thu, 20 Aug 2026 00:02:36 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18887/</guid><description>&lt;blockquote&gt;&lt;p&gt;“My expectation is surely in 20 years we are going to see AI tools generating mathematics that in many measurable ways are better than every human mathematician,” Litt said. “I would be shocked if that doesn’t happen.”&lt;/p&gt;</description><content:encoded><![CDATA[<blockquote><p>“My expectation is surely in 20 years we are going to see AI tools generating mathematics that in many measurable ways are better than every human mathematician,” Litt said. “I would be shocked if that doesn’t happen.”</p>
</blockquote><blockquote><p>But as Venkatesh told me, “In the end, there are infinitely many ways to formulate any piece of math.” The choices we make, he said, are governed by human values and shaped by the fact that mathematics is not only a science but also an art.</p>
</blockquote><p>I&rsquo;m not sure there&rsquo;s a real debate against AI anymore after advances like the ones we&rsquo;ve seen in mathematics happened.</p>
<p><a href="https://www.quantamagazine.org/the-ai-revolution-in-math-has-arrived-20260413/"  target="_blank" rel="noreferrer">https://www.quantamagazine.org/the-ai-revolution-in-math-has-arrived-20260413/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18883/</link><pubDate>Wed, 19 Aug 2026 23:50:01 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18883/</guid><description>&lt;p&gt;Microsoft is such a shambles of a software company that these kind of master encryption key leaks for them are a regular occurrence.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Microsoft is such a shambles of a software company that these kind of master encryption key leaks for them are a regular occurrence.</p>
<p>Governing encryption keys is a genuinely difficult problem but since we don&rsquo;t see this happen to other large tech companies with the same regularity, it shows that Microsoft is just not interested in security.</p>
<p><a href="https://www.golem.de/news/microsoft-forscher-finden-masterkey-fuer-vollzugriff-auf-azure-datenbanken-2607-211473.html"  target="_blank" rel="noreferrer">https://www.golem.de/news/microsoft-forscher-finden-masterkey-fuer-vollzugriff-auf-azure-datenbanken-2607-211473.html</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18881/</link><pubDate>Wed, 19 Aug 2026 23:45:11 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18881/</guid><description>&lt;p&gt;If LLMs are trained on GPL licensed code (and as it seems now they are trained on that and on pretty much everything else the companies can get their hands on), why doesn&amp;rsquo;t that make the LLMs and all the works they produce GPL licensed?&lt;/p&gt;</description><content:encoded><![CDATA[<p>If LLMs are trained on GPL licensed code (and as it seems now they are trained on that and on pretty much everything else the companies can get their hands on), why doesn&rsquo;t that make the LLMs and all the works they produce GPL licensed?</p>
<p>I don&rsquo;t mind if we pretend that it doesn&rsquo;t, but at that point we might as well get rid of the concept of intellectual property entirely.</p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18878/</link><pubDate>Sat, 13 Jun 2026 21:48:21 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18878/</guid><description>&lt;p&gt;A beautiful story of how iteration on an app is a process that&amp;rsquo;s worth it and that can yield something close to perfection like with Pedometer++. I wish every app had a person like this behind it who goes the distance and sweats every detail.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A beautiful story of how iteration on an app is a process that&rsquo;s worth it and that can yield something close to perfection like with Pedometer++. I wish every app had a person like this behind it who goes the distance and sweats every detail.</p>
<p><a href="https://www.david-smith.org/blog/2026/04/29/maps-on-watchos/"  target="_blank" rel="noreferrer">https://www.david-smith.org/blog/2026/04/29/maps-on-watchos/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18876/</link><pubDate>Sat, 13 Jun 2026 21:42:58 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18876/</guid><description>&lt;p&gt;We have been working in the &amp;ldquo;What comes after&amp;rdquo; for as long as I can remember because 1. it&amp;rsquo;s obvious&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; 2. you need to be ruthless about anything that does not add value.&lt;/p&gt;</description><content:encoded><![CDATA[<p>We have been working in the &ldquo;What comes after&rdquo; for as long as I can remember because 1. it&rsquo;s obvious<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> 2. you need to be ruthless about anything that does not add value.</p>
<p>Join us on the other side if you dare.</p>
<p><a href="https://death-of-scrum.net/#after"  target="_blank" rel="noreferrer">https://death-of-scrum.net/#after</a></p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>It just takes some thinking from first principles. Most of these things did not have names and I didn&rsquo;t know the Reinertsen book existed until we had figured out most of it ourselves.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18875/</link><pubDate>Sat, 13 Jun 2026 21:41:42 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18875/</guid><description>&lt;p&gt;Sovereign Tech Fund investing in KDE points towards some concerted effort into weaning Europe off big tech. KDE has come a long way and with a bunch more more pushes like this, it could become a more than worthy alternative to Windows.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Sovereign Tech Fund investing in KDE points towards some concerted effort into weaning Europe off big tech. KDE has come a long way and with a bunch more more pushes like this, it could become a more than worthy alternative to Windows.</p>
<p><a href="https://kde.org/announcements/sovereign-tech-fund-invests-kde/"  target="_blank" rel="noreferrer">https://kde.org/announcements/sovereign-tech-fund-invests-kde/</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18874/</link><pubDate>Sat, 13 Jun 2026 21:36:40 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18874/</guid><description>&lt;p&gt;It&amp;rsquo;s not so clear cut as it&amp;rsquo;s made out to be here. Of course writing code should never have been your bottleneck to begin with. What LLMs have done is to remove “I need to write the code” as an excuse.&lt;/p&gt;</description><content:encoded><![CDATA[<p>It&rsquo;s not so clear cut as it&rsquo;s made out to be here. Of course writing code should never have been your bottleneck to begin with. What LLMs have done is to remove “I need to write the code” as an excuse.</p>
<p>That has put significant shear on different parts of the system which is a Good Thing. Now we&rsquo;re tasked with having to figure out how to make those parts better. Before this development, companies could hide their lack of ideas and bad processes behind “it takes the engineers 6 months to ship a feature.” Now they can&rsquo;t anymore.</p>
<p><a href="https://andrewmurphy.io/blog/if-you-thought-the-speed-of-writing-code-was-your-problem-you-have-bigger-problems"  target="_blank" rel="noreferrer">https://andrewmurphy.io/blog/if-you-thought-the-speed-of-writing-code-was-your-problem-you-have-bigger-problems</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18870/</link><pubDate>Sat, 09 May 2026 17:08:47 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18870/</guid><description>&lt;blockquote&gt;&lt;p&gt;Railway, a cloud infrastructure provider that is generally regarded to be ‘friendlier’ than the likes of AWS&lt;/p&gt;</description><content:encoded><![CDATA[<blockquote><p>Railway, a cloud infrastructure provider that is generally regarded to be ‘friendlier’ than the likes of AWS</p>
</blockquote><p>Corollary: If your infrastructure provider is so &ldquo;friendly&rdquo; that it&rsquo;s trivial to do all kinds of things, it&rsquo;s also possible for a coding agent to drop your production database.</p>
<p>Also this does not look like some kind of fly-by-night, pre-PMF startup. There&rsquo;s no excuse for not having the basic separation of tenants in place at this point.</p>
<p><a href="https://www.tomshardware.com/tech-industry/artificial-intelligence/claude-powered-ai-coding-agent-deletes-entire-company-database-in-9-seconds-backups-zapped-after-cursor-tool-powered-by-anthropics-claude-goes-rogue"  target="_blank" rel="noreferrer">https://www.tomshardware.com/tech-industry/artificial-intelligence/claude-powered-ai-coding-agent-deletes-entire-company-database-in-9-seconds-backups-zapped-after-cursor-tool-powered-by-anthropics-claude-goes-rogue</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18869/</link><pubDate>Sat, 09 May 2026 17:08:02 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18869/</guid><description>&lt;p&gt;Filing this for when I get the itch to learn Haskell again though there has been some recent rumbling that as a language it&amp;rsquo;s too clunky and increasingly irrelevant outside of a narrow academic context.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Filing this for when I get the itch to learn Haskell again though there has been some recent rumbling that as a language it&rsquo;s too clunky and increasingly irrelevant outside of a narrow academic context.</p>
<p><a href="https://vitez.me/learn-haskell-in-two-weeks"  target="_blank" rel="noreferrer">https://vitez.me/learn-haskell-in-two-weeks</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18867/</link><pubDate>Sat, 09 May 2026 16:56:13 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18867/</guid><description>&lt;p&gt;It&amp;rsquo;s a fair take but it ignores that it&amp;rsquo;s all path dependence. Any decision whether on the product side or in engineering cements a structure that is painful to change later. Whether you have AI helping you there or not is mostly irrelevant. It handles the more basic things but the hard choices are still hard.&lt;/p&gt;</description><content:encoded><![CDATA[<p>It&rsquo;s a fair take but it ignores that it&rsquo;s all path dependence. Any decision whether on the product side or in engineering cements a structure that is painful to change later. Whether you have AI helping you there or not is mostly irrelevant. It handles the more basic things but the hard choices are still hard.</p>
<p><a href="https://substack.com/home/post/p-193101671"  target="_blank" rel="noreferrer">https://substack.com/home/post/p-193101671</a></p>
]]></content:encoded></item><item><title/><link>https://alper.nl/posts/18866/</link><pubDate>Sat, 09 May 2026 16:54:10 +0200</pubDate><guid isPermaLink="false">https://alper.nl/posts/18866/</guid><description>&lt;p&gt;Locality of code, AI friendly and without needless extra tech stacks that force you to jump back and forth.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Locality of code, AI friendly and without needless extra tech stacks that force you to jump back and forth.</p>
<p>Lots of people will scoff at HTMX but that is often the case with tools that aren&rsquo;t hip but are used to get real work done.</p>
<p><a href="https://htmx.org/essays/paris-2024-olympics-htmx-network-automation/"  target="_blank" rel="noreferrer">https://htmx.org/essays/paris-2024-olympics-htmx-network-automation/</a></p>
]]></content:encoded></item></channel></rss>