<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: knlb</title><link>https://news.ycombinator.com/user?id=knlb</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 25 Apr 2026 02:03:02 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=knlb" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Experiments in building bespoke tools with AI]]></title><description><![CDATA[
<p>Article URL: <a href="https://knlb.dev/essays/djn">https://knlb.dev/essays/djn</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46940264">https://news.ycombinator.com/item?id=46940264</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 09 Feb 2026 00:50:29 +0000</pubDate><link>https://knlb.dev/essays/djn</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=46940264</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46940264</guid></item><item><title><![CDATA[New comment by knlb in "Ask HN: Share your personal website"]]></title><description><![CDATA[
<p><a href="https://knlb.dev" rel="nofollow">https://knlb.dev</a> -- new digital garden; <a href="https://explog.in" rel="nofollow">https://explog.in</a> -- previous blog, leaving it as is for now though I expect I'll slowly absorb it into the garden.</p>
]]></description><pubDate>Wed, 14 Jan 2026 21:42:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46624011</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=46624011</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46624011</guid></item><item><title><![CDATA[New comment by knlb in "Nerd: A language for LLMs, not humans"]]></title><description><![CDATA[
<p>> Do you debug JVM bytecode? V8's internals? No. You debug at your abstraction layer<p>In the fullness of time, you end up having to. Or at least I have. Which is why I always dislike additional layers and transforms at this point.<p>(eg. when I think about react native on android, I hear "now I'll have to be excellent at react/javascript and android/java/kotlin and C++ to be able to debug the bridge; not that "I can get away with just javascript".)</p>
]]></description><pubDate>Thu, 01 Jan 2026 01:33:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=46450370</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=46450370</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46450370</guid></item><item><title><![CDATA[New comment by knlb in "Turning an old Amazon Kindle into a eInk development platform (2021)"]]></title><description><![CDATA[
<p>I've never really had the patience to fiddle a lot of with the hardware but have always wanted to use e-ink screens for working, specially on the move. (Tried the hacks for remarkable pro with a friend's recommendations, ultimately never kept using it).<p>The boox palma with android + (obsidian | termux + tailscale) when I need it has actually worked out well for me for writing | programming with a portable keyboard (nuphy). I even did this year's Advent of Code on it. (<a href="https://knlb.dev/logs/aoc25" rel="nofollow">https://knlb.dev/logs/aoc25</a> has some photos)</p>
]]></description><pubDate>Tue, 30 Dec 2025 17:16:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46435499</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=46435499</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46435499</guid></item><item><title><![CDATA[AI Industry Interview Prep Guide]]></title><description><![CDATA[
<p>Article URL: <a href="https://twopug.com/interview-prep/">https://twopug.com/interview-prep/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46095969">https://news.ycombinator.com/item?id=46095969</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 30 Nov 2025 12:07:21 +0000</pubDate><link>https://twopug.com/interview-prep/</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=46095969</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46095969</guid></item><item><title><![CDATA[New comment by knlb in "Awk Technical Notes (2023)"]]></title><description><![CDATA[
<p>I used to be scared of Awk, and then I read through the appendix / chapters of "More Programming Pearls" (<a href="https://www.amazon.com/More-Programming-Pearls-Confessions-Coder/dp/0201118890" rel="nofollow">https://www.amazon.com/More-Programming-Pearls-Confessions-C...</a>) and it became a much easier to reason about language.<p>The structure can be a bit confusing if you've only seen one liners because it has a lot of defaults that kick in when not specified.<p>The pleasant surprise from learning to use awk was that bpftrace suddenly became much more understandable and easier to write as well, because it's partially inspired by awk.</p>
]]></description><pubDate>Fri, 14 Nov 2025 22:03:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=45932701</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=45932701</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45932701</guid></item><item><title><![CDATA[New comment by knlb in "Deepnote, a Jupyter alternative, is going open source"]]></title><description><![CDATA[
<p>The whole post feels like it was edited/modified by ChatGPT; `What we opened — in English, not a changelog`, `Why it matters (no fluff):`, `We are big believers in notebooks — full stop` are patterns that always make me feel like an LLM wrote it (sentence followed by a marketing qualifier).<p>I really liked Deepnote the product when I last used it, but the post definitely feels off.</p>
]]></description><pubDate>Tue, 04 Nov 2025 20:25:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45815499</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=45815499</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45815499</guid></item><item><title><![CDATA[New comment by knlb in "Perfetto: Swiss army knife for Linux client tracing"]]></title><description><![CDATA[
<p>Perfetto is definitely one of my favorite tools to use ever, thank you for working on it!<p>My personal favorite tool I've built this year is to dynamically generate a trace from a sql query, and allow quickly combining queries. Something like `SELECT timestamp, track, name, ` etc. where column names get transformed to packets automatically.<p>That way I can overlay multiple py-spy traces and instrumentation into a dynamically implemented generated perfetto trace, loaded into a perfetto iframe using the ping/pong mechanism at <a href="https://perfetto.dev/docs/visualization/deep-linking-to-perfetto-ui" rel="nofollow">https://perfetto.dev/docs/visualization/deep-linking-to-perf...</a>.</p>
]]></description><pubDate>Fri, 31 Oct 2025 19:40:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=45775886</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=45775886</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45775886</guid></item><item><title><![CDATA[New comment by knlb in "Continuous Nvidia CUDA Profiling in Production"]]></title><description><![CDATA[
<p>Thanks for the post, this is pretty cool!<p>I feel like I've seen Cupti have fairly high overhead depending on the cuda version, but I'm not very confident -- did you happen to benchmark different workloads with cupti on/off?<p>---<p>If you're taking feature requests: a way to subscribe to -- and get tracebacks for -- cuda context creation would be very useful; I've definitely been surprised by finding processes on the wrong gpu and being easily able to figure out where they came from would be great.<p>I did a hack by using LD_PRELOAD to subscribe/publish the event, but never really followed through on getting the python stack trace.</p>
]]></description><pubDate>Wed, 29 Oct 2025 14:17:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45747171</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=45747171</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45747171</guid></item><item><title><![CDATA[New comment by knlb in "Thoughts on Mechanical Keyboards and the ZSA Moonlander"]]></title><description><![CDATA[
<p>Another vote for the Glove 80: I used the Kinesis Advantage 2 for 10 years (after a few initial signs of finger pain developing), then tried the new 360; and recently got the glove 80 so I could easily travel with it and fell in love with the keyboard.<p>It definitely doesn't feel as solid as the Kinesis or ergodox (which I used intermittently as well) but is the most comfortable keyboard I've used, the LEDs are actually useful (for showing battery life and bluetooth connections), and there are enough keys (including function keys); I don't like having to reason about layers at all, I want to be able to smoothly transition to my laptop's keyboard in a pinch).</p>
]]></description><pubDate>Fri, 26 Sep 2025 23:48:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=45392189</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=45392189</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45392189</guid></item><item><title><![CDATA[New comment by knlb in "Static sites with Python, uv, Caddy, and Docker"]]></title><description><![CDATA[
<p>Not the latest one just yet, I still want to play with it a lot more / bake in some more features -- but it's also terribly simple and doesn't do much at the moment.<p>The org mode one is at <a href="https://explog.in/config.html" rel="nofollow">https://explog.in/config.html</a>.</p>
]]></description><pubDate>Sun, 24 Aug 2025 15:15:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=45004858</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=45004858</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45004858</guid></item><item><title><![CDATA[New comment by knlb in "Static sites with Python, uv, Caddy, and Docker"]]></title><description><![CDATA[
<p>My current personal site (<a href="https://knlb.dev" rel="nofollow">https://knlb.dev</a>) is built with a single 500 line python file that starts with<p><pre><code>  #!/usr/bin/env -S uv run --script
  # -*- mode: python -*-
  #
  # /// script
  # requires-python = ">=3.12"
  # dependencies = [
  #    "pyyaml", "flask", "markdown-it-py",
  #    "linkify-it-py", "mdit-py-plugins"
  # ]
  # ///
</code></pre>
The HTML templates & CSS are baked into the file which is why it's so long. flask so that I can have a live view locally while writing new notes.<p>uv's easy dependency definition really made it much easier to manage these. My previous site was org exported to html and took much more effort.<p>(With the conceit that the website is a "notebook" I call this file "bind").</p>
]]></description><pubDate>Sat, 23 Aug 2025 23:28:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=44999933</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=44999933</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44999933</guid></item><item><title><![CDATA[New comment by knlb in "How I use my terminal"]]></title><description><![CDATA[
<p>My similar trick is to rely on the tmux scrollback and pipe tokenized output into fzf so I can easily autocomplete in zsh against anything on the visible tmux screen<p><a href="https://www.threads.com/@kunalb_/post/C6ZQIOVpwMd" rel="nofollow">https://www.threads.com/@kunalb_/post/C6ZQIOVpwMd</a>
<a href="https://gist.github.com/kunalb/abfe5757e89ffba1cf3959c9543d9ac0" rel="nofollow">https://gist.github.com/kunalb/abfe5757e89ffba1cf3959c9543d9...</a><p>which has been really useful.</p>
]]></description><pubDate>Tue, 24 Jun 2025 00:05:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=44361502</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=44361502</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44361502</guid></item><item><title><![CDATA[New comment by knlb in "Debugging: Indispensable rules for finding even the most elusive problems (2004)"]]></title><description><![CDATA[
<p>I wrote a fairly similar take on this a few years ago (without having read the original book mentioned here) -- <a href="https://explog.in/notes/debugging.html" rel="nofollow">https://explog.in/notes/debugging.html</a><p>Julia Evans also has a very nice zine on debugging: <a href="https://wizardzines.com/zines/debugging-guide/" rel="nofollow">https://wizardzines.com/zines/debugging-guide/</a></p>
]]></description><pubDate>Mon, 13 Jan 2025 12:50:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=42682868</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=42682868</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42682868</guid></item><item><title><![CDATA[New comment by knlb in "Hy 1.0.0, the Lisp dialect for Python, has been released"]]></title><description><![CDATA[
<p>Congratulations -- and thank you! I've been playing with Hy on and off (tried to do transformers with it, and then released <a href="https://github.com/kunalb/orphism">https://github.com/kunalb/orphism</a> written in hy). Time to pick it up again and take it for a spin</p>
]]></description><pubDate>Sun, 22 Sep 2024 15:50:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=41617867</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=41617867</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41617867</guid></item><item><title><![CDATA[New comment by knlb in "The Tao of Unicode Sparklines (2021)"]]></title><description><![CDATA[
<p>I have a small python (hy) package which extends the idea to horizon charts <a href="https://github.com/kunalb/orphism">https://github.com/kunalb/orphism</a></p>
]]></description><pubDate>Tue, 27 Aug 2024 02:41:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=41364152</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=41364152</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41364152</guid></item><item><title><![CDATA[New comment by knlb in "Ask HN: Which scifi authors to interview about immortality?"]]></title><description><![CDATA[
<p>Iain M Banks, the culture series touches on immortality and choosing / not choosing it. [edit: didn't read carefully enough. Sadly, he won't be available for interviewing]</p>
]]></description><pubDate>Mon, 25 Sep 2017 16:19:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=15331657</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=15331657</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15331657</guid></item><item><title><![CDATA[New comment by knlb in "Ask HN: Learning to code, without a computer?"]]></title><description><![CDATA[
<p>Also the little schemer series, which just expect you to work things out by hand.</p>
]]></description><pubDate>Sat, 08 Oct 2016 17:11:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=12667689</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=12667689</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12667689</guid></item><item><title><![CDATA[New comment by knlb in "Static Website Generators"]]></title><description><![CDATA[
<p>I just use emacs + org mode -> org-publish to generate my site [1] from org-mode with some customizations; it's been the most flexible and fun way to build a site I've had across all my attempts so far, particularly given that I can go meta and also publish the htmlized raw org files at the same time [2].<p>[1] Publishing config: <a href="http://explog.in/config.html" rel="nofollow">http://explog.in/config.html</a>
[2] Org Source: <a href="http://explog.in/config.org.html" rel="nofollow">http://explog.in/config.org.html</a></p>
]]></description><pubDate>Mon, 19 Sep 2016 04:09:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=12528817</link><dc:creator>knlb</dc:creator><comments>https://news.ycombinator.com/item?id=12528817</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12528817</guid></item></channel></rss>