<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: slooonz</title><link>https://news.ycombinator.com/user?id=slooonz</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Apr 2026 01:37:38 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=slooonz" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by slooonz in "I don't chain everything in JavaScript anymore"]]></title><description><![CDATA[
<p>One of the hardest problem in programming is naming your variables correctly.<p>I love chaining because it reduce the number of occurrences of that problem.</p>
]]></description><pubDate>Wed, 22 Apr 2026 14:46:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47864424</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=47864424</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47864424</guid></item><item><title><![CDATA[New comment by slooonz in "“CEO said a thing” journalism"]]></title><description><![CDATA[
<p>"What Elon Musk think or at least pretend to think" is indeed an useful/interesting piece of information, and I don’t see why a commentary on it is necessary or particularly useful ?<p>I mean, I can do the "critical reading of CEO claim" part myself, thank you very much.<p>And it’s not just CEOs. Politicians, spokepersons of foreign nations, academics, journalists also do that "X said a thing" thing. It’s perfectly fine. I don’t need or desire the personal take of the journalist on that declaration. They have opinion pieces for that.</p>
]]></description><pubDate>Tue, 31 Mar 2026 11:14:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=47585673</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=47585673</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47585673</guid></item><item><title><![CDATA[Show HN: Uback 0.7 – A universal bridge between backup sources and destinations]]></title><description><![CDATA[
<p>Throughout my career, the "who handles backups" job (in a "we have our data on our own servers, not in the cloud" context) has always ended up on my plate. One of the most painful aspects, along with crons.<p>My observation:<p>- When you start from the "what do I want to back up" perspective, there are tons of excellent solutions. Using ZFS? Type "zfs backup" into your favorite search engine and you'll find something that fits; the same goes for MariaDB, Postgres, btrfs…
- When you start from the "where do I want to back up to" perspective — S3, FTP, WebDAV? Same thing, you're spoiled for choice.<p>However, once you ask "I want to back up <i>this</i> to <i>there</i>", compatibility between the two can get thorny. Add requirements like "I want my backups encrypted," and you might not find a solution at all.<p>And even if you do? Congratulations, you now have as many backup tools as you have "what I want to back up" / "where I want to back up to" pairs, each with its own separate configuration in a separate format, with different encryption keys in a different format. And when your annual disaster recovery drill comes around… well, let's just say it makes you want to leave this planet.<p>So 5 years ago I created uback, a system that acts as an intermediary between "sources that produce backups" (a few are built-in, but the idea is you can write your own in shell or your favorite programming language) and "destinations that can receive those backups" (same), handling encryption, compression, and retention policy.<p>I never promoted it until now, but I'm taking the occasion of 0.7(.1) to do so: I consider this version "final," feature-complete. Going forward, it will very likely be bug fixes and routine maintenance only. Not in the "I'm abandoning the project" sense, but in the "it does everything I need, and I don't see anything to add" sense. The only area I'm not entirely happy with is the configuration system, but the problem is legitimately (and surprisingly!) complex, and I don't really see how to do significantly better.<p>Why not 1.0 if I consider 0.7 "final"? Because I'm reserving "1.0" for the (unlikely, but you never know) scenario where "the project gains traction, with many users and contributors, and after extensive feedback we publish a definitively stable 1.0" (in other words: when it's not just me who considers the current version final). In the meantime, what do I reserve the right to break in 0.x? Everything except the ability to restore old backups. Are there good chances I'll (intentionally) break things? The odds are low for the configuration system, virtually zero for everything else.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47195055">https://news.ycombinator.com/item?id=47195055</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 28 Feb 2026 13:23:11 +0000</pubDate><link>https://github.com/sloonz/uback</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=47195055</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47195055</guid></item><item><title><![CDATA[New comment by slooonz in "MinIO repository is no longer maintained"]]></title><description><![CDATA[
<p>versitygw is the simplest "just expose some S3-compatible API on top of some local folder"</p>
]]></description><pubDate>Fri, 13 Feb 2026 09:48:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47000884</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=47000884</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47000884</guid></item><item><title><![CDATA[New comment by slooonz in "Show HN: Self-hosted email server for 2026 – single binary, CalDAV"]]></title><description><![CDATA[
<p>Why would I pick this over established players : Maddy, Mox, Stalwart ?</p>
]]></description><pubDate>Sun, 04 Jan 2026 07:25:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46485770</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=46485770</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46485770</guid></item><item><title><![CDATA[New comment by slooonz in "Show HN: SHA-256 quasi-collision with 184/256 matching bits"]]></title><description><![CDATA[
<p>You’re just doing brute force, but with extra steps. It turns out that partial collisions are more common than you think, and it’s not particularly hard to find some.<p>Here, a 186-bits partial collision, found in less than two minutes on my CPU, by brute force :<p>sha256(cbfad45814d54d1d56d30de387d957ed3b50e06270ad6e4b897f4a0000000000) = 692207e28eb8dd3eb4f8fab938ea5103faa1060c3bbed204f564e10c65d06b33
sha256(cbfad45814d54d1d56d30de387d957ed3b50e06270ad6e4be8c33e0000000000) = 006347a21f7c9b3eb4fa52b75d0e5a03dbe556b579d6d2867d44c38c06546f6f<p>(in Python :<p>>>> hashlib.sha256(bytes.fromhex("cbfad45814d54d1d56d30de387d957ed3b50e06270ad6e4b897f4a0000000000")).hexdigest()<p>'692207e28eb8dd3eb4f8fab938ea5103faa1060c3bbed204f564e10c65d06b33'<p>>>> hashlib.sha256(bytes.fromhex("cbfad45814d54d1d56d30de387d957ed3b50e06270ad6e4be8c33e0000000000")).hexdigest()<p>'006347a21f7c9b3eb4fa52b75d0e5a03dbe556b579d6d2867d44c38c06546f6f'<p>>>> a = hashlib.sha256(bytes.fromhex("cbfad45814d54d1d56d30de387d957ed3b50e06270ad6e4b897f4a0000000000")).digest()<p>>>> b = hashlib.sha256(bytes.fromhex("cbfad45814d54d1d56d30de387d957ed3b50e06270ad6e4be8c33e0000000000")).digest()<p>>>> sum((x^y^0xff).bit_count() for (x, y) in zip(a, b))<p>186<p>)<p>Intuition pump : the expected number of equal bits for two random inputs is 128.</p>
]]></description><pubDate>Sun, 21 Dec 2025 14:49:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=46345227</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=46345227</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46345227</guid></item><item><title><![CDATA[New comment by slooonz in "Abuse of the nullish coalescing operator in JS/TS"]]></title><description><![CDATA[
<p>Yes it should, because hopefully errors are logged and reported and can be acted upon. Missing name doesn’t.</p>
]]></description><pubDate>Thu, 27 Nov 2025 18:47:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46072096</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=46072096</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46072096</guid></item><item><title><![CDATA[New comment by slooonz in "A Vibe Coded SaaS Killed My Team"]]></title><description><![CDATA[
<p>It was goofy and fun-looking when the first blog did it.<p>Now that everyone and its dog does those "goofy" illustrations, I find them insufferable.</p>
]]></description><pubDate>Wed, 26 Nov 2025 18:58:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46061097</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=46061097</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46061097</guid></item><item><title><![CDATA[New comment by slooonz in "Show HN: 1-of-1 AES Encryption Objects (Not-Cross-Decryptable)"]]></title><description><![CDATA[
<p>I think you should clearly spell out how the key is derived.<p>From the description, I believe it's random string hard-coded in the executable + user-provided password => AES key ?<p>Also… "full offline", but "my API is on a digital ocean droplet" ? What ?<p>(I guess the API to generate a .exe with its own random string ? But again, very unclear of what it is, what’s it’s doing, and how)</p>
]]></description><pubDate>Tue, 25 Nov 2025 11:27:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46044785</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=46044785</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46044785</guid></item><item><title><![CDATA[New comment by slooonz in "Wrong ways to use the databases, when the pendulum swung too far"]]></title><description><![CDATA[
<p>Operational concerns trumps raw performances most of the time. Stored procedures live in a different CI/CD environment, with a different testing framework (if there’s even one), on a different deployment lifecycle, using a different language than my main code. It is also essentially an un-pinnable dependency. Too much pain for the gain.<p>Now, give me ephemeral, per-connection procedures (call them unstored procedures for fun) that I can write in the language I want but that run on provider side, sure I’ll happily use them.</p>
]]></description><pubDate>Sun, 15 Jun 2025 10:30:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=44281567</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=44281567</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44281567</guid></item><item><title><![CDATA[New comment by slooonz in "The Claude Bliss Attractor"]]></title><description><![CDATA[
<p>That was my first thought, an aimless dialogue is going to go toward content-free idle chat. Like humans talking about weather.</p>
]]></description><pubDate>Fri, 13 Jun 2025 21:42:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=44272558</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=44272558</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44272558</guid></item><item><title><![CDATA[New comment by slooonz in "The Claude Bliss Attractor"]]></title><description><![CDATA[
<p>They failed hard with Claude 4 IMO. I just can't have any feedback other than "What a fascinating insight" followed by a reformulation (and, to be generous, an exploration) of what I said, even when Opus 3 has no trouble finding limitations.<p>By comparison o3 is brutally honest (I regularly flatly get answers starting with "No, that’s wrong") and it’s awesome.</p>
]]></description><pubDate>Fri, 13 Jun 2025 21:40:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=44272540</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=44272540</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44272540</guid></item><item><title><![CDATA[New comment by slooonz in "The Claude Bliss Attractor"]]></title><description><![CDATA[
<p>Mostly males. I’m French and "Claude can be female" is a almost a TIL thing (wikipedia says ~5% of Claudes are women in 2022 — and apparently this 5% is counting Claudia).</p>
]]></description><pubDate>Fri, 13 Jun 2025 20:46:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=44272091</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=44272091</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44272091</guid></item><item><title><![CDATA[New comment by slooonz in "Urtext: The Python plaintext library for people who've tried everything else"]]></title><description><![CDATA[
<p>> A priority was to make setup and trial easy for non-technical users<p>That’s a very strange priority. Why would non-technical users would be interested in a file format and a Python library ?</p>
]]></description><pubDate>Mon, 05 May 2025 12:07:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=43894182</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=43894182</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43894182</guid></item><item><title><![CDATA[New comment by slooonz in "What the hell is an elliptic curve?"]]></title><description><![CDATA[
<p>Yes. This is partly why this article is crap. k*G is never defined, and is the core operation in ECC (also: the article insist on using an elliptic curve in R, but you need to do it on a finite field, because on a smooth curve you can just use a smooth interpolation to solve the logarithm — and obviously once you go on a finite field the curve no longer looks nice, it’s just a seemingly random cloud of points).<p>Very roughly speaking, putting the complication of "point at infinity" problem under the rug, a characteristic feature of a EC is that a straight line passing through two points on the curve will pass through a third point on the curve (yes, unless you take a vertical line, point at infinity). So you can define an "addition of points on the curve" : take two points A and B, draw a straight line passing through them, name the third intersection point between the line and the curve C, declare A + B = C (actually there’s a symmetry around the x axis involved for the usual properties of addition to hold, another complication, let's sweep it under the rug too).<p>(for A = B, take the tangent of the curve at A ; in R you can see that it works because you can take the limit as B goes arbitrarily close to A : that gives you the tangent ; in a finite field that’s less obvious but the algebraic proof is the same)<p>So k*G is just G + G + ... + G, k times.<p>If you want more details, your favorite reasoning LLM can do a better job explaining what I’ve swept under the rug.</p>
]]></description><pubDate>Sun, 20 Apr 2025 11:55:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=43743230</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=43743230</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43743230</guid></item><item><title><![CDATA[New comment by slooonz in "I've been using Claude Code for a couple of days"]]></title><description><![CDATA[
<p>Remember that input tokens are quadratic with the length of the conversation, since you re-upload the n previous messages to get the (n+1)-nth message. When Claude completes a task in 3-4 shots, that’s cents. When he goes down in a rabbit hole, however…</p>
]]></description><pubDate>Sun, 09 Mar 2025 20:58:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=43313737</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=43313737</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43313737</guid></item><item><title><![CDATA[New comment by slooonz in "I've been using Claude Code for a couple of days"]]></title><description><![CDATA[
<p>2200 lines. Half of them unit tests I would probably have been too lazy to write myself even for a "more real" project. Yes, I consider $20 cheap for that, considering:<p>1. It’s a learning experience
2. Looking at the chat transcripts, many of those dollars are burned for stupid reasons (Claude often fails with the insertLines/replaceLines functions and break files due to miss-by-1 offset) that are probably fixable
3. Remember that Claude started from a really rudimentary base with few tools — the bootstrapping was especially inefficient<p>Next experiment will be on an existing codebase, but that’s probably for next weekend.</p>
]]></description><pubDate>Sun, 09 Mar 2025 20:54:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=43313688</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=43313688</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43313688</guid></item><item><title><![CDATA[New comment by slooonz in "I've been using Claude Code for a couple of days"]]></title><description><![CDATA[
<p>I decided to try seriously the Sonnet 3.7. I started with a simple prompt on claude.ai ("Do you know claude code ? Can you do a simple implementation for me ?"). After minimal tweaking from me, it gave me this : <a href="https://gist.github.com/sloonz/3eb7d7582c33e95f2b000a092001614c#file-version1-py" rel="nofollow">https://gist.github.com/sloonz/3eb7d7582c33e95f2b000a0920016...</a><p>After interacting with this tool, I decided it would be nice if the tool could edit itself, so I asked (him ? it ?) to create its next version. It came up with a non-working version of this <a href="https://gist.github.com/sloonz/3eb7d7582c33e95f2b000a092001614c#file-version2-py" rel="nofollow">https://gist.github.com/sloonz/3eb7d7582c33e95f2b000a0920016...</a>. I fixed the bug manually, but it started an interactive loop : I could now describe what I wanted, describe the bugs, and the tool will add the features/fix the bugs itself.<p>I decided to rewrite it in Typescript (by that I mean: can you rewrite yourself in typescript). And then add other tools (by that: create tools and unit tests for the tools). <a href="https://gist.github.com/sloonz/3eb7d7582c33e95f2b000a092001614c#file-edit-file-tool-ts" rel="nofollow">https://gist.github.com/sloonz/3eb7d7582c33e95f2b000a0920016...</a> and <a href="https://gist.github.com/sloonz/3eb7d7582c33e95f2b000a092001614c#file-edit-file-tests-ts" rel="nofollow">https://gist.github.com/sloonz/3eb7d7582c33e95f2b000a0920016...</a> have been created by the tool itself, without any manual fix from me. Setting up the testing/mock framework ? Done by the tool itself too.<p>In one day (and $20), I essentially had recreated claude-code. That I could improve just by asking "Please add feature XXX". $2 a feature, with unit tests, on average.</p>
]]></description><pubDate>Sun, 09 Mar 2025 12:30:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=43308534</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=43308534</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43308534</guid></item><item><title><![CDATA[New comment by slooonz in "The Zizians and the rationalist death cult"]]></title><description><![CDATA[
<p>Ironically, you exemplify the standard of discourse that the rationalist spaces of discussion like lesswrong strives to go above, which is what makes them so valuable.<p>Loaded question (well, affirmation), on a confident sneery tone while using poorly defined terms ("essential humanity") and very poor comprehension of object-level facts of the ground ("Markov chains"). And no sign of even <i>trying</i> to understand the other side, just trying to score rhetoric points on a <i>internet board</i>.</p>
]]></description><pubDate>Sun, 02 Feb 2025 12:39:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=42908272</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=42908272</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42908272</guid></item><item><title><![CDATA[New comment by slooonz in "String of recent killings linked to Bay Area 'Zizians'"]]></title><description><![CDATA[
<p>> I don't think most rationalists would consider themselves leftist<p>Yes they do.<p><a href="https://docs.google.com/forms/d/e/1FAIpQLSf5FqX6XBJlfOShMd3UKmQTKiXjM92p3dtyybtlwt4q3r3lDw/viewanalytics" rel="nofollow">https://docs.google.com/forms/d/e/1FAIpQLSf5FqX6XBJlfOShMd3U...</a></p>
]]></description><pubDate>Sat, 01 Feb 2025 16:21:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=42899511</link><dc:creator>slooonz</dc:creator><comments>https://news.ycombinator.com/item?id=42899511</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42899511</guid></item></channel></rss>