<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: djm_</title><link>https://news.ycombinator.com/user?id=djm_</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 16 Apr 2026 18:43:23 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=djm_" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by djm_ in "LLM code generation may lead to an erosion of trust"]]></title><description><![CDATA[
<p>You could do with using an LLM to make your site work on mobile.</p>
]]></description><pubDate>Thu, 26 Jun 2025 06:47:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=44384827</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=44384827</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44384827</guid></item><item><title><![CDATA[Rippling's suit against Deel is wild]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.cautiousoptimism.news/p/ripplings-suit-against-deel-is-wild">https://www.cautiousoptimism.news/p/ripplings-suit-against-deel-is-wild</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43396726">https://news.ycombinator.com/item?id=43396726</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 18 Mar 2025 07:56:13 +0000</pubDate><link>https://www.cautiousoptimism.news/p/ripplings-suit-against-deel-is-wild</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=43396726</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43396726</guid></item><item><title><![CDATA[New comment by djm_ in "Tell HN: Heroku crashes for new deploys"]]></title><description><![CDATA[
<p>Same over here, we're down due to a deploy. Heroku Status green as grass.<p>Edit: Good Twitter thread with some support replies [1]<p><a href="https://twitter.com/nunotomas/status/1663642609527431168" rel="nofollow">https://twitter.com/nunotomas/status/1663642609527431168</a></p>
]]></description><pubDate>Tue, 30 May 2023 20:16:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=36130102</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=36130102</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36130102</guid></item><item><title><![CDATA[New comment by djm_ in "SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a Postgres Queue"]]></title><description><![CDATA[
<p>This is so important if you want to avoid incredibly gnarly race conditions. In particular for us: jobs being run even before the transaction has been fully committed to the database.<p>We utilise a decorator for our job addition to external queues, such that the function that does the addition gets attached to Django's "on transaction commit" signal and thus don't actually get run until the outer database transaction for that request has been committed.</p>
]]></description><pubDate>Tue, 11 Apr 2023 19:54:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=35530587</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=35530587</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35530587</guid></item><item><title><![CDATA[New comment by djm_ in "Building GitHub with Ruby on Rails"]]></title><description><![CDATA[
<p>Dependabot is based on releases from the various package repositories; running of main is pre-release - hence they’re probably using GitHub Actions to pin their Gemfile-defined Rails version to a commit hash.</p>
]]></description><pubDate>Fri, 07 Apr 2023 23:47:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=35488672</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=35488672</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35488672</guid></item><item><title><![CDATA[New comment by djm_ in "What is the minimal possible UK address?"]]></title><description><![CDATA[
<p>Correct. Which means if you’re taking deliveries it’s probably better to have a house number as you get validated more frequently.</p>
]]></description><pubDate>Thu, 02 Mar 2023 14:12:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=34995846</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=34995846</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34995846</guid></item><item><title><![CDATA[New comment by djm_ in "What is the minimal possible UK address?"]]></title><description><![CDATA[
<p>I remember working with SagePay as a payment provider back in 2008 (before we knew of Stripe!) and finding it interesting that card address validation was only done on the numbers in a full address.<p>For example, from "20 Windsor Road, London, SE1 6JH" it would extract 2016 and validate that against the banks details.<p>I thought that was quite a smart way as UK addresses can come in all forms, shapes and sizes (as the post shows) – but the minimal bits required to be correct are indeed the numbers as all postcodes have them and an incorrect number would mean a incorrect postcode.<p>Edit: the funny bit was that they made you work this out and send it along with the request rather than just handling it internally :)</p>
]]></description><pubDate>Thu, 02 Mar 2023 13:53:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=34995605</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=34995605</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34995605</guid></item><item><title><![CDATA[New comment by djm_ in "A Docker footgun led to a vandal deleting NewsBlur's MongoDB database (2021)"]]></title><description><![CDATA[
<p>Fantastic write-up.<p>This seems to me like a combination of multiple foot-guns, first being the Docker one - followed by the fact Mongo was not configured to authenticate the connection.<p>Heroku by default run PostgreSQL open to the world (which is problematic for other reasons) but they get away with it by relying on PG's decent authentication.<p>My default is to prefer to build systems with multiple layers of security, such that there is no reliance on a single issue like this.</p>
]]></description><pubDate>Sun, 19 Feb 2023 19:57:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=34861211</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=34861211</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34861211</guid></item><item><title><![CDATA[New comment by djm_ in "Zero to Nix, an unofficial, opinionated, gentle introduction to Nix"]]></title><description><![CDATA[
<p>Yes! And it’s actually not either/or for us, we still use Docker Compose to run our services (Redis, PostgreSQL, etc) that don’t require file syncing with the host. It’s good at that.</p>
]]></description><pubDate>Mon, 23 Jan 2023 23:07:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=34496408</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=34496408</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34496408</guid></item><item><title><![CDATA[New comment by djm_ in "Zero to Nix, an unofficial, opinionated, gentle introduction to Nix"]]></title><description><![CDATA[
<p>As a Mac-using Python shop, we had serious file-sync performance issues when mounting our codebase inside a container via docker-compose. Nix completely freed us from them and allowed us to develop with Python natively speedily and without all the serious faff & headaches that usually comes with getting reproducible builds on everyone machines.<p>If you'd like to know more, I spoke at DjangoCon Europe late last year [1] on our setup; it's still paying serious dividends for us!<p>Happy to answer more.<p>[1] <a href="https://www.youtube.com/watch?v=Mx3yiE_CJOY">https://www.youtube.com/watch?v=Mx3yiE_CJOY</a></p>
]]></description><pubDate>Mon, 23 Jan 2023 19:08:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=34493443</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=34493443</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34493443</guid></item><item><title><![CDATA[New comment by djm_ in "Owl: A toolkit for writing command-line user interfaces in Elixir"]]></title><description><![CDATA[
<p>This looks great!<p>If you're building CLI tooling in Elixir, you may also be interested in TableRex, my ASCII-table drawing library. [1]<p>[1] <a href="https://github.com/djm/table_rex">https://github.com/djm/table_rex</a></p>
]]></description><pubDate>Sun, 08 Jan 2023 22:34:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=34304033</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=34304033</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34304033</guid></item><item><title><![CDATA[New comment by djm_ in "My students cheated... a lot"]]></title><description><![CDATA[
<p>Did you miss the whole pandemic bit or are you too “disconnected from reality”?</p>
]]></description><pubDate>Sun, 29 May 2022 11:11:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=31548192</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=31548192</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31548192</guid></item><item><title><![CDATA[New comment by djm_ in "CORS is not meant to secure an API endpoint"]]></title><description><![CDATA[
<p>From experience, I can tell you that many people simply refer to this entire domain as CORS despite that S standing for Sharing. The Same Origin Policy is treated verbally more like the default state of CORS in some circles.<p>It is very confusing and I’m not entirely sure how it ended up like that.</p>
]]></description><pubDate>Sun, 13 Feb 2022 11:29:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=30320993</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=30320993</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30320993</guid></item><item><title><![CDATA[New comment by djm_ in "Offline First"]]></title><description><![CDATA[
<p>There is a lot of movement in the offline-first/multiplayer space at the moment, after apps like Linear [1] & Figma [2] have pushed the paradigms.<p>[1]: <a href="https://linear.app" rel="nofollow">https://linear.app</a>  
[2]: <a href="https://figma.com" rel="nofollow">https://figma.com</a><p>Some other projects which will help you implement the pattern that are worth checking out:<p>Replicache [3] - real-time sync for any backend. Works via simple push and pull end points and is built by a small team of 3 devs with decent browser xp (Greasemonkey, Chrome, etc)<p>Logux [4] - a client/server framework for collaborative apps. From Evil Martians, well known for: postcss, autoprefixer, browserlist etc.<p>[3]: <a href="https://replicache.dev" rel="nofollow">https://replicache.dev</a>  
[4]: <a href="https://logux.io" rel="nofollow">https://logux.io</a><p>RoomService also used to be in the space but recently left it to pivot to something else.<p>The largest problem you’ll end up solving is conflict resolution so having a good understanding of the tradeoffs involved with your (or the underlying) implementation is key.</p>
]]></description><pubDate>Wed, 29 Sep 2021 07:49:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=28691263</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=28691263</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28691263</guid></item><item><title><![CDATA[New comment by djm_ in "Gleam 0.15"]]></title><description><![CDATA[
<p>A solid set of changes and incredibly well presented for digesting what changed and why - congrats on the release!</p>
]]></description><pubDate>Thu, 06 May 2021 11:16:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=27061552</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=27061552</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27061552</guid></item><item><title><![CDATA[Automerge: A TodoMVC multiplayer demo featuring document compression]]></title><description><![CDATA[
<p>Article URL: <a href="https://inkandswitch.github.io/automerge-rs/post/interop-demo/">https://inkandswitch.github.io/automerge-rs/post/interop-demo/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=26002304">https://news.ycombinator.com/item?id=26002304</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 02 Feb 2021 15:44:49 +0000</pubDate><link>https://inkandswitch.github.io/automerge-rs/post/interop-demo/</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=26002304</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26002304</guid></item><item><title><![CDATA[New comment by djm_ in "Building DigitalOcean's API Gateway"]]></title><description><![CDATA[
<p>The post is about how they built their own internal API Gateway; it's not a product Digital Ocean offer (yet?).</p>
]]></description><pubDate>Sat, 16 Jan 2021 11:33:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=25801616</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=25801616</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25801616</guid></item><item><title><![CDATA[New comment by djm_ in "On Repl-Driven Programming"]]></title><description><![CDATA[
<p>Yes, running pytest with the --pdb flag will drop you into the debugger on an unhandled exception which gets a comparable workflow but it's not quite the same as, a) writing tests to file first is not repl-driven development, and b) you generally have to think about doing it first.<p>In an ideal repl-driven world you could write the test in the repl entirely and commit it to disk once you're ready.</p>
]]></description><pubDate>Sun, 03 Jan 2021 10:30:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=25620935</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=25620935</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25620935</guid></item><item><title><![CDATA[New comment by djm_ in "CRDTs are the future"]]></title><description><![CDATA[
<p>Followed you in case you ever do! I'm a big fan of Jackbox and I'd love to read about where CRDTs fit in your stack.</p>
]]></description><pubDate>Mon, 28 Sep 2020 21:20:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=24621344</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=24621344</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24621344</guid></item><item><title><![CDATA[New comment by djm_ in "An update on our security incident"]]></title><description><![CDATA[
<p>Generally if a service was to keep them it would be to keep a history of passwords you may not use ever again. They wouldn't be available for use in authentication.<p>Obviously this is very implementation specific though, and can't be considered a rule.</p>
]]></description><pubDate>Sat, 18 Jul 2020 09:11:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=23880127</link><dc:creator>djm_</dc:creator><comments>https://news.ycombinator.com/item?id=23880127</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23880127</guid></item></channel></rss>