<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: MattJ100</title><link>https://news.ycombinator.com/user?id=MattJ100</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 23 Oct 2026 13:40:46 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=MattJ100" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by MattJ100 in "ArchiveBox v0.9 released with new native apps and 50 new plugins"]]></title><description><![CDATA[
<p>Congrats on the release! I enjoyed ArchiveBox while I used it, but had to stop using it because the bundled Chromium would get stuck almost daily, bringing my laptop to a crawl. It was a known bug, but it looks like it has been fixed! ( <a href="https://github.com/ArchiveBox/ArchiveBox/issues/1714" rel="nofollow">https://github.com/ArchiveBox/ArchiveBox/issues/1714</a> )<p>I'm looking forward to updating and trying out the new features as well :)</p>
]]></description><pubDate>Wed, 23 Sep 2026 07:16:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=49812705</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=49812705</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49812705</guid></item><item><title><![CDATA[New comment by MattJ100 in "Jabber/XMPP: How Do We Gain Traction?"]]></title><description><![CDATA[
<p>XMPP also leverages the push infrastructure, because otherwise there is no way it would work on many modern mobile platforms.</p>
]]></description><pubDate>Mon, 14 Sep 2026 20:26:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=49703428</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=49703428</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49703428</guid></item><item><title><![CDATA[New comment by MattJ100 in "Jabber/XMPP: How Do We Gain Traction?"]]></title><description><![CDATA[
<p>Pidgin 2.x (latest stable branch) is unfortunately over a decade behind at this point. The developers are working on a big rewrite (3.x) but it's nowhere near complete or ready for use yet.<p>In short, I wouldn't recommend Pidgin for someone who wants a modern messaging app.</p>
]]></description><pubDate>Mon, 14 Sep 2026 20:25:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=49703412</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=49703412</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49703412</guid></item><item><title><![CDATA[New comment by MattJ100 in "Jabber/XMPP: How Do We Gain Traction?"]]></title><description><![CDATA[
<p>Yes, XMPP server implementations typically give admins full control over data retention. Different use cases demand different settings, so it's quite adaptable to whatever needs you have.<p>I'm not sure what you mean by not handling encrypted messages fully, it handles encrypted messages fine.</p>
]]></description><pubDate>Mon, 14 Sep 2026 20:23:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=49703394</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=49703394</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49703394</guid></item><item><title><![CDATA[New comment by MattJ100 in "Jabber/XMPP: How Do We Gain Traction?"]]></title><description><![CDATA[
<p>FWIW I'm the founder of both the Snikket and Prosody projects. If you're a FreeBSD user, or even an experienced hands-on Linux sysadmin, I'd probably recommend going with Prosody, unless docker is your thing.<p>Snikket aimed to fill the gap for people who wanted an "out of the box" XMPP distribution kind of thing, and it's good at that. But shipping a bunch of software components with opinionated configurations doesn't really mesh well with distribution-level package management, and only really works with a container kind of ecosystem.<p>Both routes exist and are equally viable. Prosody has ports available for all the popular BSDs, and installing it should be a breeze. Just be prepared to then also set up a TURN server if you want calls, and potentially some web server stuff to if you want some of those features. After installing Prosody you can run 'prosodyctl check features' and it will tell you if you're missing any of the common stuff people want in a modern messaging app.<p>Hope this helps :)</p>
]]></description><pubDate>Mon, 14 Sep 2026 20:20:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=49703360</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=49703360</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49703360</guid></item><item><title><![CDATA[New comment by MattJ100 in "ESP32 Bit Pirate Hardware Hacking Kit with Web Tools That Speaks Every Protocol"]]></title><description><![CDATA[
<p>I can lend a hand, after spending a painful 10s on the website (which really needs some thought put into it if this is a serious project).<p>If you have any moderate experience with hardware hacking, you would be aware of a handy little hardware device called the Bus Pirate, which has been around in various forms for many years. It is designed to be like a Swiss army knife for connecting to devices and inspecting and debugging them. For example, it can decode/encode various common (and uncommon) digital protocols that are used by chips and hardware devices to communicate with each other.<p>This project... it appears that someone has (with a significant amount of AI-assistance, if the website is anything to go by) produced firmware for ESP32 devices which aims to replicate the functionality of a Bus Pirate. This is notable because ESP32 boards are much cheaper and widely available.<p>Without looking much into it though, my instinct tells me that it would be significantly more limited than the purpose-built Bus Pirate hardware.</p>
]]></description><pubDate>Thu, 10 Sep 2026 09:08:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=49640693</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=49640693</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49640693</guid></item><item><title><![CDATA[New comment by MattJ100 in "SQLite is all you need for durable workflows"]]></title><description><![CDATA[
<p>You can do big data in SQLite. Concurrent writes, sure, I'd recommend something else.<p>If you think the <i>majority</i> of systems require massively concurrent writes, I think you need to look a bit harder. SQLite is, after all, the most widely deployed database system, ever.</p>
]]></description><pubDate>Fri, 29 May 2026 22:06:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48329938</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=48329938</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48329938</guid></item><item><title><![CDATA[New comment by MattJ100 in "The Eternal Sloptember"]]></title><description><![CDATA[
<p>It's a reference to Eternal September, the name applied to the cultural shift of the internet as the general public started gaining access to it en masse in the 90s.<p>Sloptember is clearly a reference to this - the similarity being that masses of AI generated content, from social media posts to open source contributions are replacing the human internet. In a way this is related to the "dead internet theory", an idea I previously found hard to believe, but these days could easily be true.<p>If the history of the internet interests you, both these are worth looking up.</p>
]]></description><pubDate>Mon, 25 May 2026 07:07:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=48264224</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=48264224</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48264224</guid></item><item><title><![CDATA[New comment by MattJ100 in "Mercurial, 20 years and counting: how are we still alive and kicking? [video]"]]></title><description><![CDATA[
<p>Each commit should build and pass tests, yes. When I say "partial commits", I don't mean that the commits are arbitrary - each commit should be as small as possible to implement a specific fix/feature. I've also heard it described as the smallest unit that you may want to revert.<p>For example, if you are working on something, but it requires adding an API to some module, then the first commit 1 is to add the new API (+ tests), and the second commit is the new code that uses that API.<p>Unfortunately many developers I have worked with would just combine these (and more) into a single commit (because they are part of the same work task). However this makes review, bisect, blame and revert harder (if you need to revert commit 2, you don't want to also revert the API you added if that was tested and bug-free).</p>
]]></description><pubDate>Mon, 18 May 2026 19:52:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=48184668</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=48184668</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48184668</guid></item><item><title><![CDATA[New comment by MattJ100 in "Mercurial, 20 years and counting: how are we still alive and kicking? [video]"]]></title><description><![CDATA[
<p>Yes, Mercurial has a very advanced history editing system via "evolution": <a href="https://wiki.mercurial-scm.org/ChangesetEvolution" rel="nofollow">https://wiki.mercurial-scm.org/ChangesetEvolution</a><p>A good way of thinking about it is that every commit is itself version-controlled, allowing unlimited edits. This even allows two people in an evolve-enabled repo to make changes to history at the same time, and Mercurial will resolve any conflicts. It makes it trivial to commit (and even share) a "WIP" commit which you can later amend/split/whatever. It's different from git where you basically can't edit history after pushing (in Mercurial this only becomes true if you push to a non-evolvution or "publishing" repo, where everything then gets squashed for public consumption).</p>
]]></description><pubDate>Mon, 18 May 2026 08:20:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=48176775</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=48176775</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48176775</guid></item><item><title><![CDATA[New comment by MattJ100 in "Mercurial, 20 years and counting: how are we still alive and kicking? [video]"]]></title><description><![CDATA[
<p>To be clear, Mercurial does not have a staging area, but it does have allow selective commits (and selective uncommits) via prompt-based or interactive UI selection of hunks. Disagreeing with the need for a staging area is not the same as saying selective commits are unnecessary (I use Mercurial more than git and I rarely commit everything in my working directory in a single commit - I like small commits).</p>
]]></description><pubDate>Mon, 18 May 2026 08:08:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48176707</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=48176707</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48176707</guid></item><item><title><![CDATA[New comment by MattJ100 in "The West forgot how to make things, now it’s forgetting how to code"]]></title><description><![CDATA[
<p>We see this in our open-source community. We've had a community channel for over two decades, where community members help newcomers and each other solve problems and answer questions.<p>Increasingly we have people join who tell us they've been struggling with a problem "for days". Per routine, we ask for their configuration, and it turns out they've been asking ChatGPT, Claude or some other LLM for assistance and their configuration is a total mess.<p>Something about this feels really broken, when a channel full of domain experts are willing to lend a hand (within reason) for free. But instead, people increasingly turn to the machines which are well-known to hallucinate. They just don't think it will hallucinate for them.<p>In fact I see this pattern a lot. People use LLMs for stuff within their domain of expertise, or just ask them questions about washing cars, and they laugh at how incompetent and illogical they are. Then, hours later, they will happily query ChatGPT for mortgage advice, or whatever. If they don't have the knowledge to verify it themselves then they seem more willing to believe it is accurate, where in fact they should be even more careful.</p>
]]></description><pubDate>Sun, 26 Apr 2026 10:07:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47909007</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=47909007</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47909007</guid></item><item><title><![CDATA[New comment by MattJ100 in "It is incorrect to "normalize" // in HTTP URL paths"]]></title><description><![CDATA[
<p>URL parsing/normalisation/escaping/unescaping is a minefield. There are many edge cases where every implementation does things differently. This is a perfect example.<p>It gets worse if you are mapping URLs to a filesystem (e.g. for serving files). Even though they look similar, URL paths have different capabilities and rules than filesystems, and different filesystems also vary. This is also an example of that (I don't think most filesystems support empty directory names).</p>
]]></description><pubDate>Sat, 18 Apr 2026 07:59:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47814083</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=47814083</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47814083</guid></item><item><title><![CDATA[New comment by MattJ100 in "ChatGPT won't let you type until Cloudflare reads your React state"]]></title><description><![CDATA[
<p>Yes, it is. The worst offenders hammer us (and others) with thousands upon thousands of requests, and each request uses unique IP addresses making all per-IP limits useless.<p>We implemented an anti-bot challenge and it helped for a while. Then our server collapsed again recently. The perf command showed that the actual TLS handshakes inside nginx were using over 50% of our server's CPU, starving other stuff on the machine.<p>It's a DDoS.</p>
]]></description><pubDate>Mon, 30 Mar 2026 06:57:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47571250</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=47571250</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47571250</guid></item><item><title><![CDATA[New comment by MattJ100 in "Running My Own XMPP Server"]]></title><description><![CDATA[
<p>Yes, definitely. To me, the idea of a chat server that doesn't federate is as absurd as setting up an email server that doesn't federate. I understand that <i>today</i> people know more contacts with email addresses than XMPP addresses, but if we ever want to free ourselves from the current walled gardens, we need to stop treating chat as something that only happens in walled gardens.<p>Some people get worried about the idea of "federation", thinking that it somehow means their server is less private, and their data is being spread across a mesh of servers, and stuff like that. That's true in some decentralized/distributed chat protocols, but not in XMPP. Connections between servers only happen on-demand, similar how when you send email between different email providers, they will connect to each other to deliver the messages.<p>However we do have a feature which allows disabling federation access for specific accounts, for example to prevent kids from communicating with anyone outside their own Snikket server. This is a feature I want to expand on, so that you can permit communication with a limited number of approved contacts on other servers.</p>
]]></description><pubDate>Tue, 17 Feb 2026 12:21:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=47046728</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=47046728</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47046728</guid></item><item><title><![CDATA[New comment by MattJ100 in "Running My Own XMPP Server"]]></title><description><![CDATA[
<p>You're welcome!<p>I'm still experimenting with the messaging on the Snikket website. However my general approach with the site was to pitch Snikket to people who don't know what XMPP is, which is, frankly, the majority of people. Instead, I wanted to focus on explaining features it enables rather than protocol details. But I'm aware it has caused a lot of head-scratching among people who already know Snikket uses XMPP :)<p>I see Snikket as kind of a gateway into the XMPP ecosystem for people who are unfamiliar with it. After all, if you're already familiar with XMPP then the chances are you'll probably be happier with Prosody or ejabberd, and you'll already have opinions about which clients you want to use (e.g. the upstreams of Snikket).</p>
]]></description><pubDate>Mon, 16 Feb 2026 20:01:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47039555</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=47039555</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47039555</guid></item><item><title><![CDATA[New comment by MattJ100 in "Running My Own XMPP Server"]]></title><description><![CDATA[
<p>Yeah, iOS is definitely a weaker spot and we're aware of it. Monal is currently working on an overhaul of their UI (they have a grant allocated for it: <a href="https://nlnet.nl/project/Monal-IM-UI/" rel="nofollow">https://nlnet.nl/project/Monal-IM-UI/</a> ).<p>There is also a new app in the works between Cheogram and Snikket. There is a beta available, but it's still young (and we won't apply any Snikket branding until E2EE is complete).<p>Thanks for sharing your experience!</p>
]]></description><pubDate>Mon, 16 Feb 2026 17:07:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=47037491</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=47037491</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47037491</guid></item><item><title><![CDATA[New comment by MattJ100 in "Running My Own XMPP Server"]]></title><description><![CDATA[
<p>Be aware that this post has known issues that the author is not interested in fixing. In their own words (in response to clarifications by one of the OMEMO folk):<p>"I'll make an edit later about the protocol version thing, but I'm not interested in having questions answered. My entire horse in this race is for evangelists to f** off and leave me alone. That's it. That's all I want." [censorship of profanity mine]<p>You won't find this quote in the article with Ctrl+F, it's in the screenshot, where they omitted the original constructive comment by one of the OMEMO contributors that they chose to moderate, which you can find here: <a href="https://www.moparisthebest.com/tim-henkes-omemo-response.txt" rel="nofollow">https://www.moparisthebest.com/tim-henkes-omemo-response.txt</a><p>So, by all means, read the blog post. But just be aware that its ultimate goal was not to be an unbiased accurate technical article.</p>
]]></description><pubDate>Mon, 16 Feb 2026 17:02:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47037422</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=47037422</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47037422</guid></item><item><title><![CDATA[New comment by MattJ100 in "Running My Own XMPP Server"]]></title><description><![CDATA[
<p>I'm the founder of both the Prosody and Snikket projects. Sorry about triggering alarms :) I can try to explain...<p>Prosody is a popular choice of XMPP server software. It's used for all kinds of stuff, from self-hosted chat servers to powering Jitsi Meet, to Internet-of-Things applications.<p>Prosody is extremely flexible, and has a bunch of configuration options that allow you to adapt it and extend it however you want. For some people, this is ideal. Those people should continue using Prosody.<p>Snikket has a different scope. It is <i>specifically</i> an answer to a question like "How can I easily make a self-hosted WhatsApp/Signal for my family/friends using open-source software?"<p>- Snikket contains Prosody, for the core chat part. But it's Prosody with a very specific configuration, and the configuration is part of the project, it's not intended to be modified by the person deploying Snikket. They only need to provide the domain name.<p>- Snikket also includes additional components that a modern chat service needs. For example, it includes a STUN/TURN server to ensure that audio/video calls work reliably (again, preconfigured).<p>- Snikket provides its own apps, which are tested and developed in sync with each other and with the server. This avoids the common problem of incompatibilities that occur when you have an open ecosystem such as XMPP, where different open-source project developers may develop features at different paces, leaving users to figure out which ones support which feature. It also solves the discoverability and decision fatigue for users (searching "Snikket" on an app store will get you an app that you know is compatible with your Snikket server, you don't have to go through a list of XMPP clients and figure out which one is suitable).<p>- Snikket servers are not designed to be open public servers (these are an administrative nightmare). Instead, your server is closed and private by default. As the admin, you choose who signs up to your server by sending invitation links. The invitations also serve to simplify the account setup process - no need to prompt users to "choose a server", etc. They just need to provide a username.<p>Projects such as Conversations differ by running a single public server (conversations.im) and guiding people to sign up on that server, or choose one of a long list of free public XMPP providers. In some cases that's all what you want. But onboarding a group of people that way is not fun (for example, they all have to share their addresses with the group add each other to their contact lists one-by-one - Snikket makes discovery of contacts within the same server automatic).<p>Beyond these things, Snikket is all open-source and XMPP. But there is a focus on making a good polished and secure "product", if you like, rather than supporting the entire diverse XMPP ecosystem which includes a range of software of varying quality (weekend projects and more recently, 100% vibe-coded clients). For example, Snikket servers require certain security and authentication features which some older codebases that have fallen far behind modern XMPP standards (think Pidgin, etc.) simply don't support today.<p>> it’s actually all based on prosody and conversations?<p>As mentioned, I develop Prosody. I also collaborate with the Conversations developer and other XMPP projects. There's nothing shady here. The goal is just to make a best-in-class XMPP project that solves one particular use case (and it was primarily my own use case to begin with of course - I wanted to move my family off WhatsApp).</p>
]]></description><pubDate>Mon, 16 Feb 2026 16:47:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47037214</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=47037214</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47037214</guid></item><item><title><![CDATA[New comment by MattJ100 in "Upcoming changes to Let's Encrypt and how they affect XMPP server operators"]]></title><description><![CDATA[
<p>As the founder of both projects, explaining the difference between the two projects is roughly 20% of my working day (okay, not quite 20% but sometimes it feels that way).<p>Your description is great :)</p>
]]></description><pubDate>Tue, 10 Feb 2026 23:21:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=46968469</link><dc:creator>MattJ100</dc:creator><comments>https://news.ycombinator.com/item?id=46968469</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46968469</guid></item></channel></rss>