<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: thu</title><link>https://news.ycombinator.com/user?id=thu</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 10 Sep 2026 02:52:02 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=thu" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by thu in "Typing 118 WPM broke my brain in the right ways"]]></title><description><![CDATA[
<p>I've started to learn touch typing many times, but don't use it. The main problem is that as soon as I want to touch type while working (e.g. coding), I only know the letters, but not the symbols, numbers or even uppercase letters. I think I can force keybr to add those, but they are not part of real world examples, while the words are natural enough. Is there any progressive way to introduce those just like keybr introduces 1 letter at a time ?</p>
]]></description><pubDate>Mon, 02 Jun 2025 20:39:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=44162786</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=44162786</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44162786</guid></item><item><title><![CDATA[New comment by thu in "German parliament votes as a Git contribution graph"]]></title><description><![CDATA[
<p>I maintain a web site where I re-render to HTML a scrapped version of the (consolidated version of) the Official Belgian Journal[0].<p>One of the nice thing about having an underlying structured representation of those texts is that I can also render them to e.g. Markdown[1].<p>I've experimented about generating the Markdown files corresponding to multiple versions (archives) of a given text and committing them to the same Git repository to be able to see diffs or blames[2].<p>I would like to assign the proper dates to each commit, but given there are texts in e.g. 1791, it's not possible.<p>0: <a href="https://refli.be/fr/lex" rel="nofollow">https://refli.be/fr/lex</a>
1: <a href="https://github.com/hypered/iterata-md" rel="nofollow">https://github.com/hypered/iterata-md</a>
2: <a href="https://github.com/hypered/iterata-archive" rel="nofollow">https://github.com/hypered/iterata-archive</a></p>
]]></description><pubDate>Tue, 25 Mar 2025 08:58:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=43469237</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=43469237</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43469237</guid></item><item><title><![CDATA[New comment by thu in "Rewriting my website in plain HTML and CSS"]]></title><description><![CDATA[
<p>> you must copy and paste content<p>I've started the Slab templating language[0] to be able to define reusable HTML fragments. It means using a dedicated tool but hopefully not needing to resort to a real programming language.<p>0: <a href="https://slab-lang.org/" rel="nofollow">https://slab-lang.org/</a></p>
]]></description><pubDate>Wed, 15 Jan 2025 11:30:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=42709761</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=42709761</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42709761</guid></item><item><title><![CDATA[New comment by thu in "Git and Jujutsu: In Miniature"]]></title><description><![CDATA[
<p>What do you mean by "jj clone" ? I assumed it was possible to start using jj on an existing Git repository, and continue using Git (and jj) afterwards. Isn't this the case ?</p>
]]></description><pubDate>Tue, 12 Nov 2024 09:15:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=42113969</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=42113969</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42113969</guid></item><item><title><![CDATA[New comment by thu in "Show HN: Slab – A programmable markup language for generating HTML"]]></title><description><![CDATA[
<p>(OP here.) This is true to a good extend but a library such as blaze-html can't offer at least two things I've in mind. One is the very lightweight syntax. You can for instance have a look at the reference page source code[1]. Writing that in blaze-html is a lot more verbose.<p>Two, although it's possible to introspect a blaze-html -generated tree, you can't easily have tooling to, say, list HTML fragments, where they are used, which one are full HTML documents (i.e. starting with a doctype)... One of my goal with Slab is to have a "refactorable" language to write "large" HTML code bases (I'm mainly thinking of design systems reference implementations). Having a tool that can "see" the tree structure, the fragment calls, the list of files, ... opens new tooling opportunities.<p>I'm one of those people that says syntax doesn't matter; we should talk about semantic instead (and thus just adopt s-expressions for syntax). Yet, in this case, I think that a very lightweight syntax that maps clearly to HTML, in particular for non-programmers (e.g. designers), is very valuable.<p>Note also that I make available a statically-linked `slab` binary that makes super easy to start using Slab. You don't need a programming environment with a compiler and so on. (I'd like to try to create a Cosmopolitan[2] binary in the future.)<p>The `slab` binary also has a "watch" feature that rebuilds pages and reload the browse as you edit `.slab` files. I guess I mean that having an integrated tool can offer a very good developer (or designer ?) experience.<p>[1]: <a href="https://github.com/hypered/slab/blob/main/content/reference.slab">https://github.com/hypered/slab/blob/main/content/reference....</a><p>[2]: <a href="https://github.com/jart/cosmopolitan">https://github.com/jart/cosmopolitan</a></p>
]]></description><pubDate>Fri, 26 Jul 2024 20:50:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=41082171</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=41082171</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41082171</guid></item><item><title><![CDATA[New comment by thu in "Show HN: Slab – A programmable markup language for generating HTML"]]></title><description><![CDATA[
<p>(OP here.) Indeed, Slab is a templating language, just like Pug or Haml are. Slab was initially a reimplementation of Pug, but it evolved a bit.<p>In particular, I tried to respect a principle often found in programming languages: user-defined elements (fragments) are no different than builtin ones. For example notice how `page` (which is user-defined) is used in the same way as as `body` (which is builtin) in the first code snippet of the introduction[1].<p>(In the future, I hope that instead of providing builtins, Slab will instead use libraries of  elements. There is an undocumented feature to define elements[2].)<p>In Pug, to reuse bits of HTML, you can define mixins, but they are called with a `+` sign in front of their name. I also believe mixins can have expression arguments, but not other blocks of HTML. To pass blocks of HTML as "arguments", Pug provides the `extends` keyword, but I think it can only be used at the toplevel of a template. In Slab, the concept of fragments is a bit more uniform: a fragment can be used with expression arguments, <i>and</i> block arguments.<p>[1]: <a href="https://slab-lang.org/reference.html#introduction" rel="nofollow">https://slab-lang.org/reference.html#introduction</a><p>[2]: <a href="https://github.com/hypered/slab/blob/main/examples/el.slab">https://github.com/hypered/slab/blob/main/examples/el.slab</a></p>
]]></description><pubDate>Wed, 24 Jul 2024 06:30:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=41054159</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=41054159</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41054159</guid></item><item><title><![CDATA[Show HN: Slab – A programmable markup language for generating HTML]]></title><description><![CDATA[
<p>Article URL: <a href="https://slab-lang.org/">https://slab-lang.org/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41047502">https://news.ycombinator.com/item?id=41047502</a></p>
<p>Points: 39</p>
<p># Comments: 8</p>
]]></description><pubDate>Tue, 23 Jul 2024 16:02:31 +0000</pubDate><link>https://slab-lang.org/</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=41047502</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41047502</guid></item><item><title><![CDATA[New comment by thu in "Ask HN: Freelancer? Seeking freelancer? (July 2024)"]]></title><description><![CDATA[
<p>SEEKING WORK | Belgium | Remote & On-Site in Belgium<p>+15 years of professional experience mainly with Python<p>+4 years of hands-on technical leadership<p>I'd love to work with Haskell and Nix (my side projects use them), although I've been using Python professionally for about 10 years. I like to get my hands dirty and have always worked with things like CI/CD pipelines, provisioning VMs, and so on (for example, I've been using Docker since 2013). I'm used to complicated code bases that need serious improvement.<p>I've got a lot of side projects visible on GitHub at <a href="https://github.com/noteed/">https://github.com/noteed/</a> and <a href="https://github.com/hypered/">https://github.com/hypered/</a>. One of them is <a href="https://slab-lang.org/" rel="nofollow">https://slab-lang.org/</a>.<p>Please contact me at noteed at gmail.com.</p>
]]></description><pubDate>Mon, 01 Jul 2024 18:21:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=40848697</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=40848697</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40848697</guid></item><item><title><![CDATA[tbls, a CI-friendly database documentation tool written in Go]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/k1LoW/tbls">https://github.com/k1LoW/tbls</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=40583072">https://news.ycombinator.com/item?id=40583072</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 05 Jun 2024 09:41:19 +0000</pubDate><link>https://github.com/k1LoW/tbls</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=40583072</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40583072</guid></item><item><title><![CDATA[New comment by thu in "The Shunting-Yard Algorithm (2011)"]]></title><description><![CDATA[
<p>I've used that algorithm and extended it to handle distfix expressions[1]. For instance it can parse the expression<p><pre><code>    1 + if true then 1 else a b + c
</code></pre>
as (represented as an s-expr using some weird angle brackets):<p><pre><code>    ⟨+ 1 ⟨if␣then␣else␣ true 1 ⟨+ ⟨a b⟩ c⟩⟩⟩
</code></pre>
I thought it was cool and could be useful to a lot of simple use cases.<p>[1]: <a href="https://github.com/noteed/syntactical">https://github.com/noteed/syntactical</a></p>
]]></description><pubDate>Fri, 08 Dec 2023 10:29:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=38567391</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=38567391</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38567391</guid></item><item><title><![CDATA[New comment by thu in "A Functional Introduction To Computer Science"]]></title><description><![CDATA[
<p>Maybe you did while it was still called PLT Scheme (supported in DrScheme), although it's called Racket since 13 years.</p>
]]></description><pubDate>Sun, 02 Jul 2023 10:34:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=36560151</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=36560151</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36560151</guid></item><item><title><![CDATA[New comment by thu in "The Belgian Official Journal"]]></title><description><![CDATA[
<p>20 years ago, on December 24, 2002, it was decided to replace the paper version of the Belgian official journal by its online version, starting in 2003. Here is how Belgian citizens can access theirs laws and other official texts: <a href="http://www.ejustice.just.fgov.be" rel="nofollow">http://www.ejustice.just.fgov.be</a>. (It's also available in HTTPS.)<p>I believe it looks exactly the same since 1997, when that site was originally introduced, and wanted to share it. The text can be searched using a form where you have to first click the "Search" button, then the "List" button to actually go to the result page. On a given result, you can download its PDF version by clicking the "Image" button.<p>It looks like the site is a bunch of Perl CGI scripts but I have no idea how documents are authored, or how the PDF generation is done.<p>It's available only in French, Dutch, and German. While German is an official language in Belgium, the German version is only a translation, not an official text.</p>
]]></description><pubDate>Sat, 24 Dec 2022 10:09:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=34115516</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=34115516</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34115516</guid></item><item><title><![CDATA[The Belgian Official Journal]]></title><description><![CDATA[
<p>Article URL: <a href="http://www.ejustice.just.fgov.be/cgi/welcome.pl">http://www.ejustice.just.fgov.be/cgi/welcome.pl</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=34115515">https://news.ycombinator.com/item?id=34115515</a></p>
<p>Points: 1</p>
<p># Comments: 1</p>
]]></description><pubDate>Sat, 24 Dec 2022 10:09:25 +0000</pubDate><link>http://www.ejustice.just.fgov.be/cgi/welcome.pl</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=34115515</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34115515</guid></item><item><title><![CDATA[New comment by thu in "Marktext – Elegant Markdown Editor for Linux, macOS, Windows"]]></title><description><![CDATA[
<p>I'm looking for a Markdown editor that can save directly to GitHub, with the ability to make drafts (feature branches and possibly PRs) and reviews (accept the PR or merge to main) directly from the editor and hide as much as possible the complexity of Git. The idea is this could be used by non-technical persons to edit Markdown files in a Git repository that is turned into a static site by whatever means technical people could come up with (Jekyll, Pandoc, whatever).</p>
]]></description><pubDate>Sun, 26 Dec 2021 08:48:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=29690790</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=29690790</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29690790</guid></item><item><title><![CDATA[New comment by thu in "Another World: Genesis"]]></title><description><![CDATA[
<p>I have started to write some notes[1], and even some code to try to better understand how the game was created (I'm pretty sure I've made some mistakes though). I have listed some additional references there if you like this.<p>What prompted me to do so was that the Wikipedia page in french mentioned a VM running multiple threads, which I thought was very interesting for 1989.<p>[1]: <a href="https://github.com/noteed/exploring" rel="nofollow">https://github.com/noteed/exploring</a></p>
]]></description><pubDate>Sat, 05 Jun 2021 19:08:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=27407708</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=27407708</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27407708</guid></item><item><title><![CDATA[New comment by thu in "Launch HN: Kitemaker (YC W21) – Fast alternative to Jira, built for remote teams"]]></title><description><![CDATA[
<p>Thanks a lot for your answer!</p>
]]></description><pubDate>Thu, 25 Mar 2021 05:19:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=26576825</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=26576825</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26576825</guid></item><item><title><![CDATA[New comment by thu in "Launch HN: Kitemaker (YC W21) – Fast alternative to Jira, built for remote teams"]]></title><description><![CDATA[
<p>May I ask why you want to switch out of zendesk ? I'm reluctant to use it where I am (we have so many badly integrated third party software already...) but some people are pushing a lot for it.</p>
]]></description><pubDate>Mon, 22 Mar 2021 20:00:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=26546049</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=26546049</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26546049</guid></item><item><title><![CDATA[New comment by thu in "Jonesforth Port to RISC-V"]]></title><description><![CDATA[
<p>BTW, thanks a lot for writing jonesforth.S, it's a joy to read !<p>I read it a year or two ago, and I was revisiting it these days, hoping to write some RISC-V assembly when I found the repository you just submitted.</p>
]]></description><pubDate>Sat, 26 Dec 2020 12:24:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=25543032</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=25543032</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25543032</guid></item><item><title><![CDATA[New comment by thu in "Jonesforth Port to RISC-V"]]></title><description><![CDATA[
<p>What a coincidence, I was trying to compile it yesterday but for instance, the `fp` register is not recognized. I can rename it to `s0` (a synonym) but I'm wondering what should I do to avoid this error:<p><pre><code>    jonesforth.S:540: Error: illegal operands `addi fp,fp,-8'
</code></pre>
Any idea?<p>For those interested, I'm using the nixpkgs cross-toolchain. Some documentation is here[0]. Here is a possible `shell.nix` file content:<p><pre><code>    { pkgs ? import <nixpkgs> {} }:
    let
      riscv64-pkgs = import <nixpkgs> {
        crossSystem = (import <nixpkgs/lib>).systems.examples.riscv64;
      };
    in
    {
      riscv64 = riscv64-pkgs.mkShell {
        buildInputs = [
        ];
        nativeBuildInputs = [
          riscv64-pkgs.buildPackages.gdb
        ];
      };
    }
</code></pre>
This works well enough to compile my hello-world example (available here[1]) but I'd like to use that `fp` register naming...<p>[0]: <a href="https://nixos.wiki/wiki/Cross_Compiling" rel="nofollow">https://nixos.wiki/wiki/Cross_Compiling</a><p>[1]: <a href="https://github.com/noteed/riscv-hello-asm" rel="nofollow">https://github.com/noteed/riscv-hello-asm</a></p>
]]></description><pubDate>Sat, 26 Dec 2020 11:52:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=25542887</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=25542887</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25542887</guid></item><item><title><![CDATA[New comment by thu in "Making the GPL more scary"]]></title><description><![CDATA[
<p>Wouldn't it be possible for an entity such as Amazon to establish a separate legal entity and thus circumvent MongoDB's Server Side Public License ?<p>The separate entity would provide the "raw" service (where there wouldn't be much to open source) to Amazon, possibly running MongoDB directly on their infrastructure, then Amazon would turn it into a full-fledged SaaS offer.</p>
]]></description><pubDate>Thu, 01 Nov 2018 12:06:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=18353132</link><dc:creator>thu</dc:creator><comments>https://news.ycombinator.com/item?id=18353132</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18353132</guid></item></channel></rss>