<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: TOGoS</title><link>https://news.ycombinator.com/user?id=TOGoS</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 15 Apr 2026 00:51:39 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=TOGoS" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by TOGoS in "Mental Models (2018)"]]></title><description><![CDATA[
<p>My mental model of a website that replaces the content with some 'sign up now' stuff while I'm trying to read it is that it deserves to get closed and never looked-at again.</p>
]]></description><pubDate>Fri, 23 Jan 2026 21:55:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=46738481</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=46738481</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46738481</guid></item><item><title><![CDATA[New comment by TOGoS in "Ask HN: Share your personal website"]]></title><description><![CDATA[
<p><a href="http://www.nuke24.net/" rel="nofollow">http://www.nuke24.net/</a><p>Most interesting pages are probably `music/` and `plog/`.<p>Optionally HTTPS, though some of the features don't work right due to links to files on personal servers that I haven't yet got around to the HTTPS rigamarole (they are running like 15-year-old Ubuntu and can't run Certbot; it's such a pain).</p>
]]></description><pubDate>Thu, 15 Jan 2026 19:16:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=46637655</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=46637655</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46637655</guid></item><item><title><![CDATA[New comment by TOGoS in "Avoid Mini-Frameworks"]]></title><description><![CDATA[
<p>I have never really grokked Ruby on Rails and I passionately hate all the frameworks that try to adapt it to some other language.<p>That said, I suspect that Ruby on Rails itself occupies kind of a special space where the magic is acceptable because people who write Ruby are used to having very very sharp tools and have learned to wield them carefully.  Give that magic to a PHP or Java programmer and there is immediately gallons of blood on the floor.<p>(says former Rubyist who was put off by the RoR stuff because I'm apparently more of a Haskeller at heart.)</p>
]]></description><pubDate>Thu, 25 Dec 2025 07:50:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=46382900</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=46382900</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46382900</guid></item><item><title><![CDATA[New comment by TOGoS in "Avoid Mini-Frameworks"]]></title><description><![CDATA[
<p>> inadvertently leaky<p>I think this is the main problem.<p>I don't mind layers of abstraction <i>when they work well and their components compose nicely</i>.  Like a well-designed programming language.  These can actually be quite fun to work with.<p>Layers of abstraction where the boundaries between that layer and those around it are fuzzy to non-existent and where certain cases magically work and everything else is a janky mess because it was never designed to work are what give me headaches and want to throw my work laptop out the window on a regular basis.</p>
]]></description><pubDate>Wed, 24 Dec 2025 19:47:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46378598</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=46378598</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46378598</guid></item><item><title><![CDATA[New comment by TOGoS in "I'm returning my Framework 16"]]></title><description><![CDATA[
<p>I'd return my Framework laptop if that was still an option.  First they sent me bad RAM, and left me on my own to sort it out with Crucial, which never went anywhere.  The mainboard has some weird power issue that prevents the modular ports, which are otherwise a cool idea, from working properly, and I went back and forth with support about that for two years before they finally told me it was out of warranty so I was SoL.<p>Then there's the screen that falls backwards.<p>Should've bought an old Thinkpad, instead.</p>
]]></description><pubDate>Wed, 24 Dec 2025 17:29:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=46377445</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=46377445</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46377445</guid></item><item><title><![CDATA[New comment by TOGoS in "The Polyglot NixOS"]]></title><description><![CDATA[
<p>> I thought this would bring some space savings, because files that are not binary code should be largely the same.<p>Those ternary blobs tend to be cross-platform, I hear.</p>
]]></description><pubDate>Tue, 23 Dec 2025 08:30:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=46363528</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=46363528</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46363528</guid></item><item><title><![CDATA[New comment by TOGoS in "OpenSCAD is kinda neat"]]></title><description><![CDATA[
<p>An example of an OpenSCAD design written this way: <a href="https://github.com/TOGoS/OpenSCADDesigns/blob/master/2023/experimental/Threads2.scad" rel="nofollow">https://github.com/TOGoS/OpenSCADDesigns/blob/master/2023/ex...</a><p>I wrote about the approach a little bit in this Reddit post: <a href="https://www.reddit.com/r/openscad/comments/186b54r/interpreter_pattern_to_work_around_lack_of/" rel="nofollow">https://www.reddit.com/r/openscad/comments/186b54r/interpret...</a><p>The interpreter itself is just a single module: <a href="https://github.com/TOGoS/OpenSCADDesigns/blob/master/2023/lib/TOGMod1.scad" rel="nofollow">https://github.com/TOGoS/OpenSCADDesigns/blob/master/2023/li...</a></p>
]]></description><pubDate>Sun, 21 Dec 2025 16:22:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46345912</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=46345912</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46345912</guid></item><item><title><![CDATA[New comment by TOGoS in "OpenSCAD is kinda neat"]]></title><description><![CDATA[
<p>> The awful thing about OpenSCAD is that what one can model in 3D is limited by one's ability to mathematically stretch, rotate, and/or arrange spheres, cylinders, and cubes in 3D.<p>Not at all.  You can build any polyhedron you want using the polyhedron command.<p>Which would be an enormous pain to write out by hand every time, but I wrote a function once upon a time to generate a polyhedron from a stack of layers, each of which is a list of points, and haven't had to mess with old cubes and spheres since.<p>One annoying thing is that the default way of writing programs in OpenSCAD uses 'modules', which are a bit limited compared to functions (you can't store them as values to to functions or other modules).  I worked around that by writing a module that interprets arrays (think S-expressions) that representing the shape, and then just build up that S-expression-like thing with functions and whatever.<p>Once you've built your own programming language inside OpenSCAD it's perfectly usable.  :-)<p>This might sound like sarcasm but I actually do prefer this to dealing with Python's mutable state jungle / package management nightmare.</p>
]]></description><pubDate>Sun, 21 Dec 2025 06:47:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46342805</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=46342805</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46342805</guid></item><item><title><![CDATA[New comment by TOGoS in "Programmers and software developers lost the plot on naming their tools"]]></title><description><![CDATA[
<p>Maybe, and I would definitely prefer this to the random-generic-word practice.  "illuminate" is some part of Laravel, but I can't remember what it is, just that "that's not even a noun; they just picked that word for $whatever_crappy_subsystem because it sounds nice" and being even more annoyed at the whole thing because of it.</p>
]]></description><pubDate>Thu, 11 Dec 2025 18:53:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=46235446</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=46235446</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46235446</guid></item><item><title><![CDATA[New comment by TOGoS in "Paris had a moving sidewalk in 1900, and a Thomas Edison film captured it (2020)"]]></title><description><![CDATA[
<p>1900s MPEG compression was pretty intense.</p>
]]></description><pubDate>Sun, 02 Nov 2025 22:17:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=45793923</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=45793923</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45793923</guid></item><item><title><![CDATA[New comment by TOGoS in "Ruby Blocks"]]></title><description><![CDATA[
<p>`5.times` is not so outlandish, though it would seem better for that to be in a `Loop` library or something (`Loop.times(5) { do some stuff }`).<p>The `5.days` example that was posted somewhere else in this thread might be a better example.  It is not, as far as I can tell, part of Ruby's core library, thank goodness, but it is the kind of thing the methods-as-hacks-for-syntax culture seems to encourage.  My question being "why the heck should the number 5 know anything about days?   What does 5.days even mean, given that there are various ways to interpret 'a day'?"<p>This kind of bad design has made its way all over the place.  The Java mocking libraries that my coworkers like to use are full of it.  Long chains of method calls that appear like they're trying to 'look like English' but make no damn sense, so you have to dig into each method call and what kind of thing it returns to understand what this chain actually means.</p>
]]></description><pubDate>Sat, 18 Oct 2025 16:53:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=45628693</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=45628693</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45628693</guid></item><item><title><![CDATA[New comment by TOGoS in "Ridley Scott's Prometheus and Alien: Covenant – Contemporary Horror of AI (2020)"]]></title><description><![CDATA[
<p>> adding a queen to the Borg destroyed the Borg<p>Agreed.  The Borg used to be scary because they seemed unbeatable.  They were like grey goo that could adapt to whatever you threw at them.[1]<p>Having a queen gives them a single point of failure.  Suddenly they are a lot less scary.<p>[1] I kind of felt the same way about the Boogieman from Ghost Busters when I was a kid.  Teleports between closets and the regular ghost trap doodad doesn't work on him!  Shit!</p>
]]></description><pubDate>Sun, 12 Oct 2025 20:36:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45561662</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=45561662</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45561662</guid></item><item><title><![CDATA[New comment by TOGoS in "Show HN: A store that generates products from anything you type in search"]]></title><description><![CDATA[
<p>I had about as much luck trying to find a countersinking router bit for 5/16" holes on this site as I did elsewhere.  There are results, but they don't look like they'd work very well: <a href="https://anycrap.shop/product/5-16-inch-fluted-router-bit-with-countersink-cutter-1-2-inch-shank" rel="nofollow">https://anycrap.shop/product/5-16-inch-fluted-router-bit-wit...</a></p>
]]></description><pubDate>Sat, 13 Sep 2025 14:50:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=45232539</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=45232539</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45232539</guid></item><item><title><![CDATA[New comment by TOGoS in "PYX: The next step in Python packaging"]]></title><description><![CDATA[
<p>Same "easy to run" benefit, but Deno has the advantage that it caches everything and won't mess screw your computer unless you `--allow-write` or whatever.</p>
]]></description><pubDate>Mon, 25 Aug 2025 00:33:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=45009103</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=45009103</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45009103</guid></item><item><title><![CDATA[New comment by TOGoS in "Math Not Required (2023)"]]></title><description><![CDATA[
<p>Being a good programmer requires thinking about things that, whether you realize it or not, are math problems.  Things like managing complexity, or analyzing a program to understand what it even does.  You can get pretty far just with a strong intuition, but stripped of all the syntax and culture around programming, what you're dealing with is, like, graph theory, and combinatorics, and stuff.  If you recognize the concepts then you can reason about systems at a higher level and save yourself a lot of trial and error.<p>Or: You don't necessarily have to take math classes to be a good programmer, but the skills that differentiate a good software engineer from an LLM (previously 'code monkey') happen to correspond to things that mathemeticians would recognize and could give you a word for.  This CoRecursive episode comes to mind: <a href="https://corecursive.com/050-sam-ritchie-portal-abstractions-2/" rel="nofollow">https://corecursive.com/050-sam-ritchie-portal-abstractions-...</a></p>
]]></description><pubDate>Sun, 24 Aug 2025 23:46:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=45008847</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=45008847</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45008847</guid></item><item><title><![CDATA[New comment by TOGoS in "PYX: The next step in Python packaging"]]></title><description><![CDATA[
<p>I'm a fan of Deno's<p><pre><code>  deno run http://uri.of.the/dang.program.ts</code></pre></p>
]]></description><pubDate>Wed, 13 Aug 2025 21:28:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=44894087</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=44894087</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44894087</guid></item><item><title><![CDATA[New comment by TOGoS in "Abogen – Generate audiobooks from EPUBs, PDFs and text"]]></title><description><![CDATA[
<p>The demo video doesn't seem to have any audio in it!  At least none that either ffmpeg or whatever Firefox uses can recognize.</p>
]]></description><pubDate>Sun, 10 Aug 2025 07:08:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=44853344</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=44853344</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44853344</guid></item><item><title><![CDATA[New comment by TOGoS in "How to safely escape JSON inside HTML SCRIPT elements"]]></title><description><![CDATA[
<p>As per the 'special parsing rules for script tags', browsers don't actually treat it as what you'd expect it means.<p><pre><code>  <script>console.log("<![CDATA[Hello, this string content in a CDATA section!]]]]><![CDATA[>");</script>
</code></pre>
Results in this being output to the console:<p><pre><code>  <![CDATA[Hello, this string content in a CDATA section!]]]]><![CDATA[>
</code></pre>
Browsers don't do what you intend if you wrap the whole script in CDATA, either.  They treat the "<![CDATA[" sequence as literally part of the script!  Which of course throws a syntax error.<p>I tend to use them anyway, as sort of a HTML/XHTML polyglot thing, because deep in my heart I still think HTML should be valid XML:<p><pre><code>  <script>/* <![CDATA[ */
     // my script here, and you *still* need to be careful not
     // to include close-script or close-cdata sequences
  /* ]]]]><![CDATA[> */</script>
</code></pre>
In summary, the 'special parsing rules for script tags' add a great amount of complexity not just to the parsing code, but for anybody who has to emit markup, especially if different parsers disagree on what kind of escaping rules are active within a given section.  Yes, the HTML5 spec codified the neurotypical "I would rather make you guess what I mean than just use the proper words to say it clearly" behavior, so at least browsers agree on it, but it's a mess and a pain to deal with because now you have to remember 1000 exceptions to what would have been simple rules.</p>
]]></description><pubDate>Sat, 09 Aug 2025 15:18:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=44847200</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=44847200</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44847200</guid></item><item><title><![CDATA[New comment by TOGoS in "How to safely escape JSON inside HTML SCRIPT elements"]]></title><description><![CDATA[
<p>> Not so fast, things are about to get messy<p>That ship sailed several paragraphs ago, when <script> got special treatment by the HTML parser.  Too bad we couldn't all agree to parse <![CDATA[...]]]]><![CDATA[> consistently, or, you know, just &-escape the text like we do /everywhere else/ in HTML.</p>
]]></description><pubDate>Sat, 09 Aug 2025 05:40:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=44844290</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=44844290</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44844290</guid></item><item><title><![CDATA[New comment by TOGoS in "Rethinking DOM from first principles"]]></title><description><![CDATA[
<p>> We have <!doctype html> but why not add other doc types as time goes on<p>We do have older ones!<p><pre><code>  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
</code></pre>
and<p><pre><code>  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
</code></pre>
Unfortunately the "be liberal in what you accept" principle, in combination with general incompetence and anti-competitive practices by certain browser vendors, meant that all the browsers kind of ignored it and treated everything as quasi-structured tag soup regardless of the doctype, which is why WHATWG tried to codify what the browsers were already doing and decided we should all just <!doctype html>.<p>Have we collectively learned the lesson?  If so maybe we could have a new doctype for [X]HTML 6.  I won't be holding my breath for it.</p>
]]></description><pubDate>Fri, 08 Aug 2025 15:06:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=44837895</link><dc:creator>TOGoS</dc:creator><comments>https://news.ycombinator.com/item?id=44837895</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44837895</guid></item></channel></rss>