<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: alurm</title><link>https://news.ycombinator.com/user?id=alurm</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 03 May 2026 09:54:40 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=alurm" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by alurm in "Solod: Go can be a better C"]]></title><description><![CDATA[
<p>Making a strict subset of some existing language (Go) be a "better C" is quite an interesting idea compared to others (D, Zig, Hare, C3, D, ...), haven't seen it elsewhere. No new syntax. And Go seems to be a pretty good choice for this. Not sure if it's gonna fly though.</p>
]]></description><pubDate>Sun, 22 Mar 2026 07:37:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47475301</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=47475301</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47475301</guid></item><item><title><![CDATA[New comment by alurm in "Json2dir: a JSON-to-directory converter, a fast alternative to home-manager"]]></title><description><![CDATA[
<p>Yes, but you can generate JSON with other tools easily. home.md describes how you can do it with Nix, but just as easily you can use Cue or something else.<p>Edit: mentioned this in the README explicitly. Thanks!</p>
]]></description><pubDate>Sat, 09 Aug 2025 00:58:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=44843187</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=44843187</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44843187</guid></item><item><title><![CDATA[New comment by alurm in "Json2dir: a JSON-to-directory converter, a fast alternative to home-manager"]]></title><description><![CDATA[
<p>Yeah, in general (a bit of a tangent), ideas from Plan 9 are really powerful. For example, the Acme text editor exposes it's API as a file system (it's represented via Unix sockets in plan9port, but FUSE is available as well there). It's easy to write scripts to manipulate the editor, and quite fun.</p>
]]></description><pubDate>Fri, 08 Aug 2025 20:02:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=44841072</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=44841072</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44841072</guid></item><item><title><![CDATA[New comment by alurm in "Json2dir: a JSON-to-directory converter, a fast alternative to home-manager"]]></title><description><![CDATA[
<p>Well, if you're generating JSON with Nix, you don't have to put everything inside of one file. It would be a better idea to split it up into multiple. You can also use builtins.readFile for reading config files which don't have to be generated in a complex manner. It's up to you to choose, I just kept everything inside of one file since it makes for a simpler example.<p>Edit: I have updated the documentation to mention this explicitly, thanks!</p>
]]></description><pubDate>Fri, 08 Aug 2025 19:45:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=44840912</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=44840912</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44840912</guid></item><item><title><![CDATA[Json2dir: a JSON-to-directory converter, a fast alternative to home-manager]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/alurm/json2dir">https://github.com/alurm/json2dir</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44840307">https://news.ycombinator.com/item?id=44840307</a></p>
<p>Points: 51</p>
<p># Comments: 20</p>
]]></description><pubDate>Fri, 08 Aug 2025 18:46:11 +0000</pubDate><link>https://github.com/alurm/json2dir</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=44840307</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44840307</guid></item><item><title><![CDATA[New comment by alurm in "Moreshell tricks: first class lists, jq, and the es shell"]]></title><description><![CDATA[
<p>YSH looks very nice here, thanks. I thought to mention YSH, but have no experience with it, so I hoped you would comment.<p>(I guess we're duplicating threads at this point :D)</p>
]]></description><pubDate>Thu, 07 Aug 2025 19:48:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=44829461</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=44829461</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44829461</guid></item><item><title><![CDATA[New comment by alurm in "Moreshell tricks: first class lists, jq, and the es shell"]]></title><description><![CDATA[
<p>Sure.<p>I have tried Bash namerefs. I found them to be kinda awkward, since you need to name them uniquely. So, you have to pretend that they are global variables, even though they are declared inside a function, which makes their usage verbose.<p>Here, this could look like:<p><pre><code>  split_by_double_dash() {
    declare -n split_by_double_dash_before=$1
    declare -n split_by_double_dash_after=$2
    
    split_by_double_dash_before=()
    split_by_double_dash_after=()

    ...
  }</code></pre></p>
]]></description><pubDate>Thu, 07 Aug 2025 18:00:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=44828052</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=44828052</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44828052</guid></item><item><title><![CDATA[New comment by alurm in "Moreshell tricks: first class lists, jq, and the es shell"]]></title><description><![CDATA[
<p>Yeah, PowerShell and nushell are pretty cool, I hope they gain more adoption.</p>
]]></description><pubDate>Thu, 07 Aug 2025 17:33:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=44827587</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=44827587</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44827587</guid></item><item><title><![CDATA[Moreshell tricks: first class lists, jq, and the es shell]]></title><description><![CDATA[
<p>Article URL: <a href="https://alurm.github.io/blog/2025-08-07-first-class-lists-in-shells.html">https://alurm.github.io/blog/2025-08-07-first-class-lists-in-shells.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44825175">https://news.ycombinator.com/item?id=44825175</a></p>
<p>Points: 41</p>
<p># Comments: 14</p>
]]></description><pubDate>Thu, 07 Aug 2025 14:46:14 +0000</pubDate><link>https://alurm.github.io/blog/2025-08-07-first-class-lists-in-shells.html</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=44825175</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44825175</guid></item><item><title><![CDATA[New comment by alurm in "Ask HN: Who wants to be hired? (August 2025)"]]></title><description><![CDATA[
<p>Location: Yerevan, Armenia.<p>Remote: yes.<p>Willing to relocate: yes.<p>Technologies: Rust, C/C++, Bash, Go, Linux, Nix.<p>Résumé/CV: <a href="https://alurm.github.io/resume/alan-urmancheev.html" rel="nofollow">https://alurm.github.io/resume/alan-urmancheev.html</a> (or .pdf for a PDF).<p>Email: alan.urman@gmail.com.<p>A systems programmer. Prefer US opportunities.</p>
]]></description><pubDate>Fri, 01 Aug 2025 18:29:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=44760581</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=44760581</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44760581</guid></item><item><title><![CDATA[New comment by alurm in "I made a tiny library for switches and sum types in Lua"]]></title><description><![CDATA[
<p>I like your approach.<p>(Implicitly) using [1] instead of [false] as a default is less typing for sure (but maybe a bit more confusing?).<p>Also, objects being switched on really have to be tables in my version anyway (since overriding __call for builtin types seems harsh to me), so having a tag field right in them as opposed to creating a metatable should be more efficient.<p>For my version I'll add a value-weak map of  metatables to dedup them, should work as well.<p>In terms of functions, yeah, I don't think you can get rid of them, but (in the example) you can avoid (r) and (s) params if you assume that the functions lexically close over shape.</p>
]]></description><pubDate>Thu, 02 Jan 2025 01:18:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=42570776</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=42570776</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42570776</guid></item><item><title><![CDATA[New comment by alurm in "I made a tiny library for switches and sum types in Lua"]]></title><description><![CDATA[
<p>Honestly, not much.<p>I found it nice how it's possible to emulate switches in Lua with so little code, without the result looking too ugly. You may find this pattern useful. That's it.<p>The catch is that, unlike with normal switches or with a series of "if"s, there's a whole bunch of indirection added via functions, so it's not very efficient.<p>Perhaps LuaJIT can inline these functions, but I haven't tested it.</p>
]]></description><pubDate>Tue, 31 Dec 2024 06:41:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=42556931</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=42556931</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42556931</guid></item><item><title><![CDATA[New comment by alurm in "I made a tiny library for switches and sum types in Lua"]]></title><description><![CDATA[
<p>Thanks, fixed.</p>
]]></description><pubDate>Tue, 31 Dec 2024 02:30:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=42555801</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=42555801</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42555801</guid></item><item><title><![CDATA[I made a tiny library for switches and sum types in Lua]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/alurm/lua-match">https://github.com/alurm/lua-match</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42547208">https://news.ycombinator.com/item?id=42547208</a></p>
<p>Points: 83</p>
<p># Comments: 7</p>
]]></description><pubDate>Mon, 30 Dec 2024 07:08:03 +0000</pubDate><link>https://github.com/alurm/lua-match</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=42547208</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42547208</guid></item><item><title><![CDATA[New comment by alurm in "OCaml Syntax Sucks (2016)"]]></title><description><![CDATA[
<p>https doesn't make content trust worthy.</p>
]]></description><pubDate>Fri, 06 Dec 2024 03:01:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=42335822</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=42335822</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42335822</guid></item><item><title><![CDATA[New comment by alurm in "Hcreate(3)"]]></title><description><![CDATA[
<p>In this case it doesn't matter much I think. I suppose the api existed for ages.<p>But I prefer openbsd or man7 pages, sure.</p>
]]></description><pubDate>Wed, 21 Aug 2024 09:25:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=41308407</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=41308407</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41308407</guid></item><item><title><![CDATA[New comment by alurm in "Desktop Linux is an Untapped Gold Mine"]]></title><description><![CDATA[
<p>Pretty sure it's fake.</p>
]]></description><pubDate>Fri, 07 Jun 2024 08:37:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=40606600</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=40606600</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40606600</guid></item><item><title><![CDATA[New comment by alurm in "Nintendo blitzes GitHub with over 8k emulator-related DMCA takedowns"]]></title><description><![CDATA[
<p>As I understand, Bittorrent is not a persistent data structure. Git and IPFS are. Radicle is another interesting approach. They used IPFS but switched to a custom protocol, as I understand, for performance.</p>
]]></description><pubDate>Sat, 04 May 2024 19:14:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=40259670</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=40259670</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40259670</guid></item><item><title><![CDATA[New comment by alurm in "I used to not worry about climate change. Now I do [video]"]]></title><description><![CDATA[
<p>This is very funny.</p>
]]></description><pubDate>Sun, 28 Jan 2024 14:21:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=39166032</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=39166032</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39166032</guid></item><item><title><![CDATA[New comment by alurm in "Plane got to top spot in project management on GitHub in less than a year"]]></title><description><![CDATA[
<p>Click bait hacker news title.</p>
]]></description><pubDate>Wed, 13 Dec 2023 12:10:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=38626206</link><dc:creator>alurm</dc:creator><comments>https://news.ycombinator.com/item?id=38626206</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38626206</guid></item></channel></rss>