<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: alnsn</title><link>https://news.ycombinator.com/user?id=alnsn</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 29 Oct 2026 20:39:13 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=alnsn" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by alnsn in "NetBSD adds a new text editor called atto"]]></title><description><![CDATA[
<p>You can ask Claude to cross-complie, prepare an image (aka install) and run an emulator. I tried exactly this yesterday and in about an hour I could attach to tmux and run tests on emulated riscv64 board.</p>
]]></description><pubDate>Thu, 29 Oct 2026 13:04:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=50288315</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=50288315</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50288315</guid></item><item><title><![CDATA[New comment by alnsn in "Why is there a tiny hole in the airplane window? (2023)"]]></title><description><![CDATA[
<p>Related: Why there are holes in bicycle rims: <a href="https://youtu.be/yppBwvPciBo?t=8m7s" rel="nofollow">https://youtu.be/yppBwvPciBo?t=8m7s</a></p>
]]></description><pubDate>Fri, 09 Jan 2026 15:33:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=46554937</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=46554937</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46554937</guid></item><item><title><![CDATA[New comment by alnsn in "Long division verified via Hoare logic"]]></title><description><![CDATA[
<p>Related: <a href="https://toccata.gitlabpages.inria.fr/toccata/gallery/division.en.html" rel="nofollow">https://toccata.gitlabpages.inria.fr/toccata/gallery/divisio...</a></p>
]]></description><pubDate>Thu, 27 Feb 2025 11:15:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=43193318</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=43193318</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43193318</guid></item><item><title><![CDATA[New comment by alnsn in "Use perfect hashing, instead of binary search, for keyword lookup"]]></title><description><![CDATA[
<p>Space optimal isn’t necessarily the fastest.<p>Note that PostgreSQL code uses 2-graph instead of a more compact 3-graph version. The latter is noticeably more compact: 1.25 vs 2.1 factor.</p>
]]></description><pubDate>Fri, 11 Jan 2019 11:00:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=18882546</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=18882546</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18882546</guid></item><item><title><![CDATA[New comment by alnsn in "Use perfect hashing, instead of binary search, for keyword lookup"]]></title><description><![CDATA[
<p>It’s down to a quality of implementation. I can give you some hints on improving it if you’re interested.<p>A tiny JIT code generator inside cdb would definitely bring performance on par with a generated C code but it’s probably an overkill.</p>
]]></description><pubDate>Fri, 11 Jan 2019 10:48:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=18882481</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=18882481</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18882481</guid></item><item><title><![CDATA[New comment by alnsn in "Use perfect hashing, instead of binary search, for keyword lookup"]]></title><description><![CDATA[
<p>Not sure that scares you, code generation or a choice of scripting language?<p>If you want to avoid a code generation, you can generate a .cdb (constant database) file with the cdbw(3) C API and read it  using the cdbr(3) C API.<p>cdbw(3) <a href="http://netbsd.gw.com/cgi-bin/man-cgi?cdbw+3+NetBSD-current" rel="nofollow">http://netbsd.gw.com/cgi-bin/man-cgi?cdbw+3+NetBSD-current</a>
cdbr(3) <a href="http://netbsd.gw.com/cgi-bin/man-cgi?cdbr+3+NetBSD-current" rel="nofollow">http://netbsd.gw.com/cgi-bin/man-cgi?cdbr+3+NetBSD-current</a><p>Some examples of .cdb files on NetBSD:<p>/usr/share/misc/terminfo.cdb
/var/db/services.cdb<p>If you don't like a particular choice of a scripting language, you can adapt my Lua script:<p><a href="https://gist.github.com/alnsn/68f599bc9358fcee122d6175392d779f" rel="nofollow">https://gist.github.com/alnsn/68f599bc9358fcee122d6175392d77...</a><p>Building and peeling a graph should be identical but the assign step is different. I use non-minimal not order preserving BDZ scheme while Joerg's code is based on the original CHM scheme.<p>Given keys A, B, C and D, CHM always maps them to values 0, 1, 2 and 3. BDZ, on the other hand, can generate values in a range [0, 2.1 * 4) and it doesn't preserve an order. For instance, one possible mapping in the BDZ scheme is 7, 2, 5, 1.<p>Alex</p>
]]></description><pubDate>Fri, 11 Jan 2019 01:09:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=18880160</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=18880160</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18880160</guid></item><item><title><![CDATA[New comment by alnsn in "Rust bare metal on ARM microcontroller"]]></title><description><![CDATA[
<p>This is going to be interesting. Rust on top of rumprun bare-metal unikernel
<a href="https://twitter.com/gandro23/status/645734117699624960" rel="nofollow">https://twitter.com/gandro23/status/645734117699624960</a></p>
]]></description><pubDate>Tue, 22 Sep 2015 18:14:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=10260468</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=10260468</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=10260468</guid></item><item><title><![CDATA[New comment by alnsn in "Reproducible builds in Debian: preventing compiler backdoors"]]></title><description><![CDATA[
<p>> Many other free software projects, including FreeBSD, NetBSD, and OpenWrt, are moving in the same direction.<p>I might be wrong (I'm away from my NetBSD boxes) but build.sh script in NetBSD has a buildseed option which can be used to create identical builds of the base system.</p>
]]></description><pubDate>Mon, 07 Sep 2015 15:54:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=10181887</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=10181887</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=10181887</guid></item><item><title><![CDATA[New comment by alnsn in "Intel Architecture Code Analyzer"]]></title><description><![CDATA[
<p>I spent about an hour looking at the tool. They say that only very few instructions aren't supported (and thus ignored by the tool) but a very popular imul instruction can be ignored.<p>PS I noticed that gcc with -march=corei7-avx generates more cycles compared to a generic amd64 compilation for an unrolled integer(4) to char[4] conversion.</p>
]]></description><pubDate>Sun, 06 Sep 2015 11:03:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=10177333</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=10177333</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=10177333</guid></item><item><title><![CDATA[New comment by alnsn in "Looking for new LuaJIT maintainers"]]></title><description><![CDATA[
<p>You can start from here <a href="http://lambda-the-ultimate.org/node/3851#comment-57805" rel="nofollow">http://lambda-the-ultimate.org/node/3851#comment-57805</a> or read the whole thread.</p>
]]></description><pubDate>Fri, 31 Jul 2015 20:36:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=9984305</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=9984305</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9984305</guid></item><item><title><![CDATA[New comment by alnsn in "Fast Approximate Logarithms, Part I: The Basics"]]></title><description><![CDATA[
<p>This one?
#include <boost/math/tools/remez.hpp><p>I used some bits from it to help me in building my own log approximation but I didn't have time to dig into it.<p>I ended up doing Chebyshev approximation over [1, 2) interval but I extended the interval slightly to make sure that an error term at 1.0 is minimal (you can also minimise an error term at 2.0 if you want some smoothness between [1, 2) and [2, 4) intervals).<p>It's easy to calculate new interval values for Chebyshev approximation and it shouldn't be a problem to modify Remez but I couldn't find any Remez implementation that would let me do what I needed.<p>Usually, interval ends in Remez algorithm are fixed, while internal points can be moved by the algorithm. I needed a way to to fix one or two internal points (1.0 and optionally 2.0) but let the algorithm move interval ends within certian limits.<p>If anyone knows of any tool that let me do it, I'd be happy to play with it and publish my code. My approach is a bit similar to [1] but I'd more likely use Intel assembly or DynASM.<p>[1] <a href="http://gallium.inria.fr/blog/fast-vectorizable-math-approx/" rel="nofollow">http://gallium.inria.fr/blog/fast-vectorizable-math-approx/</a><p>PS The author of [1] uses remez from e Sollya tool but it doesn't let me fix internal points. I looked at the implementation but it's more obscure than boost/remez.<p>UPDATE: it's not clear from the above what my objectives were. I wanted to to produce exact values for integer powers of 2 including log2(1). This approach also gives a small relative error around x=1.</p>
]]></description><pubDate>Sun, 10 May 2015 11:39:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=9519613</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=9519613</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9519613</guid></item><item><title><![CDATA[New comment by alnsn in "Mysterious Planes Over Baltimore Spark Surveillance Suspicions"]]></title><description><![CDATA[
<p>I once spotted a plane going circles over North London.<p><a href="https://mobile.twitter.com/nasonov/status/484027620993273857/photo/1" rel="nofollow">https://mobile.twitter.com/nasonov/status/484027620993273857...</a></p>
]]></description><pubDate>Thu, 07 May 2015 20:29:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=9508056</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=9508056</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9508056</guid></item><item><title><![CDATA[New comment by alnsn in "Ex-Goldman Programmer Found Guilty"]]></title><description><![CDATA[
<p>Indeed, it has been discussed many times. But I don't remember any discussion on attribution rights. If GS replaced GPL text with their own header they presumably deleted names of the original authors. I wonder if those authors could (collectively perhaps) send a complaint to GS and ask to restore the attributions?</p>
]]></description><pubDate>Fri, 01 May 2015 20:19:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=9474243</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=9474243</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9474243</guid></item><item><title><![CDATA[New comment by alnsn in "OpenBSD's new file(1) is now priv-separated"]]></title><description><![CDATA[
<p>It depends on how much effort you put in making sure your parser is robust. I ran AFL tests for several days trying to find bugs in Lua parser but AFL kept discovering a way to load a binary chunk. After that, it didn't take to crash on a malformed binary chunk.
Priv separation is a good idea even if you trust your parser.</p>
]]></description><pubDate>Tue, 28 Apr 2015 22:17:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=9455439</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=9455439</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9455439</guid></item><item><title><![CDATA[New comment by alnsn in "How to generate a double-precision floating-point number in [0, 1] (2014)"]]></title><description><![CDATA[
<p>Why [0, 1] interval is so popular in random number generators? It's one of the worst intervals possible imo because it includes subnormal numbers. The interval [1, 2] is much nicer. Some implementations generate random numbers in [1, 2] and subtract 1.0: <a href="http://permalink.gmane.org/gmane.comp.lang.lua.luajit/3051" rel="nofollow">http://permalink.gmane.org/gmane.comp.lang.lua.luajit/3051</a></p>
]]></description><pubDate>Sun, 15 Mar 2015 17:16:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=9207203</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=9207203</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9207203</guid></item><item><title><![CDATA[New comment by alnsn in "C99 tricks"]]></title><description><![CDATA[
<p>I use lengthof for lengths of string literals.</p>
]]></description><pubDate>Sun, 15 Feb 2015 10:09:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=9052231</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=9052231</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9052231</guid></item><item><title><![CDATA[New comment by alnsn in "Unofficial DynASM Documentation"]]></title><description><![CDATA[
<p>Hi Luke,
Take a look at bpfjit in NetBSD. It uses bsd licensed sljit library to generate code for multiple platforms. The library has some slight overhead over hand-written assembly but it gives you a single codebase for all platforms. At the very least, you can borrow some optimisations from my code.
<a href="http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/net/bpfjit.c?only_with_tag=MAIN" rel="nofollow">http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/net/bpfjit.c?onl...</a>
PS I can't work on sponsored projects.
Alex</p>
]]></description><pubDate>Wed, 18 Jun 2014 10:15:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=7909288</link><dc:creator>alnsn</dc:creator><comments>https://news.ycombinator.com/item?id=7909288</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=7909288</guid></item></channel></rss>