<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: laladrik</title><link>https://news.ycombinator.com/user?id=laladrik</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Apr 2026 09:29:57 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=laladrik" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by laladrik in "Vim 9.2"]]></title><description><![CDATA[
<p>You know, that new inline Vim's diff algorithm looks really tempting.  I wish I had it in my Neovim</p>
]]></description><pubDate>Sun, 15 Feb 2026 12:12:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47023084</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=47023084</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47023084</guid></item><item><title><![CDATA[New comment by laladrik in "What Every Programmer Should Know About Memory [pdf] (2007)"]]></title><description><![CDATA[
<p>Well, the article is old, but it's good enough to deserve one more link to it :)</p>
]]></description><pubDate>Mon, 09 Feb 2026 18:13:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=46948702</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=46948702</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46948702</guid></item><item><title><![CDATA[New comment by laladrik in "Ask HN: What are you working on? (February 2026)"]]></title><description><![CDATA[
<p>Keep working on a GUI calendar for Linux which would CLI users happy to use <a href="https://semana.alexmarkov.xyz/" rel="nofollow">https://semana.alexmarkov.xyz/</a>.  Just recently I've shaped the architecture a bit.</p>
]]></description><pubDate>Mon, 09 Feb 2026 17:50:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=46948370</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=46948370</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46948370</guid></item><item><title><![CDATA[New comment by laladrik in "RustToolsGDB"]]></title><description><![CDATA[
<p>During the last couple of years working on Rust programs I collected a number of GDB scripts.  Eventually, they  evolved into the project. Also, I wrote an article about how I came up with each of the scripts <a href="https://alexmarkov.xyz/blog/rustToolsGdb.html" rel="nofollow">https://alexmarkov.xyz/blog/rustToolsGdb.html</a></p>
]]></description><pubDate>Thu, 25 Dec 2025 17:21:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46385724</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=46385724</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46385724</guid></item><item><title><![CDATA[RustToolsGDB]]></title><description><![CDATA[
<p>Article URL: <a href="https://codeberg.org/laladrik/RustToolsGDB">https://codeberg.org/laladrik/RustToolsGDB</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46385723">https://news.ycombinator.com/item?id=46385723</a></p>
<p>Points: 1</p>
<p># Comments: 1</p>
]]></description><pubDate>Thu, 25 Dec 2025 17:21:17 +0000</pubDate><link>https://codeberg.org/laladrik/RustToolsGDB</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=46385723</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46385723</guid></item><item><title><![CDATA[New comment by laladrik in "Understanding your Linux graphics driver stack"]]></title><description><![CDATA[
<p>That's a good introduction.  There is a video which I'd say complements the article.  It's called "Getting pixels on screen on Linux: introduction to Kernel Mode Setting" [1]<p>1. <a href="https://www.youtube.com/watch?v=haes4_Xnc5Q&list=PLz9LbZJP-TZ0pG5t9TWma9KzetXmXeJ54" rel="nofollow">https://www.youtube.com/watch?v=haes4_Xnc5Q&list=PLz9LbZJP-T...</a></p>
]]></description><pubDate>Mon, 22 Dec 2025 14:19:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=46354303</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=46354303</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46354303</guid></item><item><title><![CDATA[New comment by laladrik in "Ask HN: What are you working on? (Dec 2025)"]]></title><description><![CDATA[
<p>Recently Khal [1] released JSON interface.  In short, Khal is a Linux CLI calendar application.  I'm working on a proof-of-concept GUI[2] for the interface.  I expect to implement typical views for a calendar application:  daily, weekly, monthly.<p>1. <a href="https://github.com/pimutils/khal" rel="nofollow">https://github.com/pimutils/khal</a><p>2. <a href="https://codeberg.org/laladrik/Semana" rel="nofollow">https://codeberg.org/laladrik/Semana</a></p>
]]></description><pubDate>Sun, 07 Dec 2025 22:48:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=46186103</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=46186103</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46186103</guid></item><item><title><![CDATA[New comment by laladrik in "Go is portable, until it isn't"]]></title><description><![CDATA[
<p>The conclusion of the article says that it's not the language problem either.  Under the title "So, is Go the problem?"  Or do you mean something else here?</p>
]]></description><pubDate>Sun, 07 Dec 2025 22:43:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46186069</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=46186069</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46186069</guid></item><item><title><![CDATA[New comment by laladrik in "Why is Zig so cool?"]]></title><description><![CDATA[
<p>Yeah, that's a pity that D didn't gain the popularity.  It brought some features which were borrowed to mainstream languages.  However, the features didn't help D to become popular.  I have a hunch that templates from D were the inspiration for the comptime in Zig.  Also, Reading D is almost easy as reading Zig. I remember I couldn't get my head around async/await from Python 3.5.  I knew it was based on generators.  However, the stack switch was absolutely mysterious to me.  I understood it only from the implementation of fibers from the D's standard library.</p>
]]></description><pubDate>Mon, 10 Nov 2025 22:04:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=45881557</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=45881557</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45881557</guid></item><item><title><![CDATA[New comment by laladrik in "My First Complete Game"]]></title><description><![CDATA[
<p>Hello everyone,  I started programming because I wanted to make games.  However, I got a chance to bring the food to the table making on web sites.  A few months ago I came across a list of challenges for a programmer.  One of challenges was creating a clone of Space Invaders.  I created a clone of the game and wrote the article. In the article I wrote about the challenges related to gamedev which I faced.  With gamedev background I wouldn't have them, I guess.  However, for me as for a backend programmer, they were something.  I hope the article is good enough to inspire other programmers like me to complete their first games.</p>
]]></description><pubDate>Tue, 30 Sep 2025 20:09:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=45430596</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=45430596</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45430596</guid></item><item><title><![CDATA[My First Complete Game]]></title><description><![CDATA[
<p>Article URL: <a href="https://laladrik.xyz/blog/myFirstCompleteGame/">https://laladrik.xyz/blog/myFirstCompleteGame/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45430595">https://news.ycombinator.com/item?id=45430595</a></p>
<p>Points: 6</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 30 Sep 2025 20:09:23 +0000</pubDate><link>https://laladrik.xyz/blog/myFirstCompleteGame/</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=45430595</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45430595</guid></item><item><title><![CDATA[New comment by laladrik in "Enhanced document symbol menu for Zig"]]></title><description><![CDATA[
<p>Hello, I've been playing with Zig the last couple of months.  The navigation between document symbols in Neovim is a bit complicated the document has symbols with the same name.  I improved it adding the path to every symbol.  For example you have two structures:<p><pre><code>    const App = struct {
        fn init() @This() { return .{} }
    };

    const Connection = struct {
        fn init() @This() { return .{} }
    };
</code></pre>
You get the following items in the navigation list:<p><pre><code>    App::init
    Connection::init
</code></pre>
Essentially, it's a configuration of Telescope and Nvim-Treesitter.  You can take the file from here <a href="https://laladrik.xyz/zig_document_symbols.lua" rel="nofollow">https://laladrik.xyz/zig_document_symbols.lua</a>.  However, if you curious about the process of creating a custom Telescope menu and inspection of the source code with Tree-sitter, checkout the entire article.<p>Also, while I working on it, I found that LuaJIT 2.1 compares strings as fast as integers.  Eventually, I did a little research about it and published the results here <a href="https://laladrik.xyz/blog/luaStringComparison/" rel="nofollow">https://laladrik.xyz/blog/luaStringComparison/</a></p>
]]></description><pubDate>Tue, 22 Apr 2025 16:47:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=43764085</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=43764085</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43764085</guid></item><item><title><![CDATA[Enhanced document symbol menu for Zig]]></title><description><![CDATA[
<p>Article URL: <a href="https://laladrik.xyz/blog/enhancedDocumentSymbolMenuInNeovim/">https://laladrik.xyz/blog/enhancedDocumentSymbolMenuInNeovim/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43764084">https://news.ycombinator.com/item?id=43764084</a></p>
<p>Points: 3</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 22 Apr 2025 16:47:10 +0000</pubDate><link>https://laladrik.xyz/blog/enhancedDocumentSymbolMenuInNeovim/</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=43764084</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43764084</guid></item><item><title><![CDATA[New comment by laladrik in "Navtive FlameGraphViewer"]]></title><description><![CDATA[
<p>I fail to see the reference to be honest.  I remember the term from OpenGL, when I rendered something to a framebuffer (actually its attachmets) and then applied to the current framebuffer.  It helped me to do effects like night vision.  Does using offscreen rendering imply using OpenGL?<p>Does GPU rendering mean that I have to involve OpenGL/Vulkan?</p>
]]></description><pubDate>Thu, 09 Jan 2025 23:29:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=42650926</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=42650926</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42650926</guid></item><item><title><![CDATA[New comment by laladrik in "Navtive FlameGraphViewer"]]></title><description><![CDATA[
<p>A clear.  I hid it in my mind.  I haven't tried the approach with indices, because... well, I was lazy to do it.  However, I agree that this approach would be better, then the current one.<p>> You describe that attempt in detail.<p>I appreciate if you put a quote, because I fail to find the description of the attempt in detail.  In fact, instead of assuming that a vector is pinned I wrote this "I realized that the problem is related to the fact that vectors of children move in the memory if they don't have enough space to extend."<p>> The code you ended up with is still dangerous code, because your boxes are still not guaranteed to remain pinned in memory.<p>You are right, boxes are not pinned, but the data, which the point to, is pinned, isn't it?  My pointers point to that part of memory.</p>
]]></description><pubDate>Sat, 28 Dec 2024 15:00:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=42531467</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=42531467</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42531467</guid></item><item><title><![CDATA[New comment by laladrik in "Navtive FlameGraphViewer"]]></title><description><![CDATA[
<p>Ok, now I remember what was the deal with Hotspot. It makes it possible to work with a flamegraph of mine. However, it takes almost half a minute to load my perf.data. However! I totally recommend Hotspot over my hack in case when you need to have a comprehensive view of the data. In particular, I love to see the off-CPU load, which my FlameGraphViewer doesn't show.</p>
]]></description><pubDate>Sat, 28 Dec 2024 14:45:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=42531361</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=42531361</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42531361</guid></item><item><title><![CDATA[New comment by laladrik in "Navtive FlameGraphViewer"]]></title><description><![CDATA[
<p>> The author isn’t talking about implementing an ECS or b-tree here.<p>Do you mean that b-tree might work here better?<p>> They’re just populating an array from a file when the program launches, then freeing the whole thing when the program terminates. It’s really not rocket science.<p>That's exactly why I consider indices.<p>> since they assumed memory allocated by vec would be pinned (it isn’t)<p>Could you tell me, please, where you read in the article that I assume it?  I wrote in the article "I realized that the problem is related to the fact that vectors of children move in the memory if they don't have enough space to extend." and even made an animation for clarity <a href="https://laladrik.xyz/VectorMove.webm" rel="nofollow">https://laladrik.xyz/VectorMove.webm</a>.  However, if you see the assumption in the article, please, let me know.  I correct it or elaborate.</p>
]]></description><pubDate>Fri, 27 Dec 2024 16:23:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=42523449</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=42523449</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42523449</guid></item><item><title><![CDATA[New comment by laladrik in "Navtive FlameGraphViewer"]]></title><description><![CDATA[
<p>> please just let Xlib die<p>I don't have arguments against the point about Xlib.  However, I struggle to use its alternative XCB.  XCB doesn't have enough documentation to understand how to use it.  In fact, I even looked at the source code of Qt and GTK, but the usage doesn't explain the XCB API.  I'd really appreciate if you share with me the data you have.  The only thing which I found recently is the wrapper from System76 <a href="https://pop-os.github.io/libcosmic/tiny_xlib/index.html" rel="nofollow">https://pop-os.github.io/libcosmic/tiny_xlib/index.html</a>.  However, it's not a documentation still.  I just hope to find some usages of the wrapper and communicate with the original API.<p>> if you ignore the existence of Wayland<p>How did you conclude it?  I even mentioned it in the article.  I don't use it - it's true.  However, I can't wait to do it.  I've been trying for a couple of years now.  Regrettably, I experience various technical difficulties every time.   As a result, I still use my i3.<p>>  For something like fast visualizations, you should really go with something that does offscreen rendering and then blits the result.<p>Do you mean double buffering?<p>> though obviously modern tools should use GPU rendering<p>Would you mind elaborating on it?</p>
]]></description><pubDate>Fri, 27 Dec 2024 16:10:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=42523324</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=42523324</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42523324</guid></item><item><title><![CDATA[New comment by laladrik in "Navtive FlameGraphViewer"]]></title><description><![CDATA[
<p>Unfortunately, I can't find the original perf file I get the flamegraph <a href="https://laladrik.xyz/img/pic.svg" rel="nofollow">https://laladrik.xyz/img/pic.svg</a> out of.  However, I can create with a similar bunch of data and provide it soon.</p>
]]></description><pubDate>Fri, 27 Dec 2024 15:48:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=42523115</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=42523115</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42523115</guid></item><item><title><![CDATA[New comment by laladrik in "Navtive FlameGraphViewer"]]></title><description><![CDATA[
<p>I love pprof.  I used it so many times to profile my Go applications.  However, as you wrote, the visualization is in a browser, which I found incapable to render the flamegraphs I had to work with.</p>
]]></description><pubDate>Fri, 27 Dec 2024 15:46:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=42523100</link><dc:creator>laladrik</dc:creator><comments>https://news.ycombinator.com/item?id=42523100</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42523100</guid></item></channel></rss>