<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: lyall</title><link>https://news.ycombinator.com/user?id=lyall</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 12 Sep 2026 07:25:15 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=lyall" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by lyall in "Hepburn Romanization: How to Read Japanese in the Latin Alphabet"]]></title><description><![CDATA[
<p>I'm surprised that articles like this that are pretty clearly AI-generated get any sort of traction here. Is it because people think the topic is interesting but don't actually care about the content?<p>> Three Japanese words, three Hepburn transcriptions. The letters you already know, telling you what they sound like.<p>I mean come on.</p>
]]></description><pubDate>Sat, 12 Sep 2026 00:24:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=49667251</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=49667251</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49667251</guid></item><item><title><![CDATA[New comment by lyall in "What's the best programming language for coding agents?"]]></title><description><![CDATA[
<p>> Go to restaurant<p>> Order food<p>> Food comes out as raw, unprepared ingredients<p>> Complain to chef<p>> Tells me to go cook it myself<p>> wtf, I'm not here to do work for free<p>> "Is doing something for yourself really working for free?"</p>
]]></description><pubDate>Tue, 11 Aug 2026 01:30:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=49252250</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=49252250</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49252250</guid></item><item><title><![CDATA[PrintingFilms.com]]></title><description><![CDATA[
<p>Article URL: <a href="https://printingfilms.com">https://printingfilms.com</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49242279">https://news.ycombinator.com/item?id=49242279</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 10 Aug 2026 11:32:19 +0000</pubDate><link>https://printingfilms.com</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=49242279</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49242279</guid></item><item><title><![CDATA[New comment by lyall in "Code mode yields a 99.2% cost reduction in our systems"]]></title><description><![CDATA[
<p>There might be something valuable in this article, but if the you couldn't be bothered to write it yourself, why should we be bothered to read it?</p>
]]></description><pubDate>Thu, 23 Jul 2026 11:41:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=49019997</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=49019997</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49019997</guid></item><item><title><![CDATA[New comment by lyall in "Show HN: Justif – Knuth-Plass justification and microtypography for the web"]]></title><description><![CDATA[
<p>Good call. I've updated to release script to always include the SRI hash in the README sample.</p>
]]></description><pubDate>Wed, 22 Jul 2026 14:05:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=49007057</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=49007057</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49007057</guid></item><item><title><![CDATA[New comment by lyall in "Show HN: Justif – Knuth-Plass justification and microtypography for the web"]]></title><description><![CDATA[
<p>Yes! Just added support for them today after another HN user’s request: <a href="https://github.com/lyallcooper/justif/issues/3" rel="nofollow">https://github.com/lyallcooper/justif/issues/3</a></p>
]]></description><pubDate>Wed, 22 Jul 2026 12:37:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=49005802</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=49005802</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49005802</guid></item><item><title><![CDATA[New comment by lyall in "Show HN: Justif – Knuth-Plass justification and microtypography for the web"]]></title><description><![CDATA[
<p>Good eye! The space in "No. 12" would traditionally get a thin space [0] in professionally typeset documents, which is smaller than the standard space used for inter-word and inter-sentence spacing.<p>The solution here is to fix the sample text itself to use U+202F (NARROW NO-BREAK SPACE, &#8239;). As opposed to the standard width no-break space it currently has for "No. 12" and "Fig. 7".<p>0: <a href="https://en.wikipedia.org/wiki/Thin_space" rel="nofollow">https://en.wikipedia.org/wiki/Thin_space</a></p>
]]></description><pubDate>Wed, 22 Jul 2026 10:06:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=49004305</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=49004305</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49004305</guid></item><item><title><![CDATA[New comment by lyall in "Show HN: Justif – Knuth-Plass justification and microtypography for the web"]]></title><description><![CDATA[
<p>It should be when the screen width is less than 456 css px with the current configuration.</p>
]]></description><pubDate>Wed, 22 Jul 2026 06:22:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=49002551</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=49002551</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49002551</guid></item><item><title><![CDATA[New comment by lyall in "Show HN: Justif – Knuth-Plass justification and microtypography for the web"]]></title><description><![CDATA[
<p>Thankfully the unit it operates on is a paragraph, not the whole body of text. Also thankfully computers are very fast these days!<p>I added the “Alice in Wonderland (long)” text sample to the demo as a stress test, but its paragraphs are still relatively short. I should add a sample that’s one really long paragraph and see what happens. I may need to add a bail-out after X items option if it calls for it.</p>
]]></description><pubDate>Wed, 22 Jul 2026 06:15:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=49002509</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=49002509</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49002509</guid></item><item><title><![CDATA[New comment by lyall in "Show HN: Justif – Knuth-Plass justification and microtypography for the web"]]></title><description><![CDATA[
<p>The layout is done entirely in DOM. The layout engine calculates the line breaks, tracking, expansion, etc. then applies the layout using HTML spans with the appropriate attributes applied. There’s generally one span per line, but that can change for more complicated lines! I invite you to inspect the demo page in your browser’s dev console if you’re particularly curious.<p>And yes, I did use LLMs for the implementation, both Fable 5 and 5.6 Sol specifically. I would not have been able to achieve anywhere close to the current result unaided. My patience and expertise would’ve been exhausted long before getting anywhere especially interesting.<p>My philosophy with LLMs is to try to use them to achieve levels of quality and polish that would’ve been previously unreasonable. I hope this project is a demonstration of that.</p>
]]></description><pubDate>Wed, 22 Jul 2026 06:03:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=49002419</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=49002419</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49002419</guid></item><item><title><![CDATA[New comment by lyall in "Show HN: Justif – Knuth-Plass justification and microtypography for the web"]]></title><description><![CDATA[
<p>That's not something justif supports directly right now. It currently targets rectangular blocks, not arbitrary edge shapes. But the underlying line-breaking approach could accommodate per-line widths, so it would be plausible to add I think.<p>Feel free to make a GitHub issue with details and I can take a look at supporting it. For now the workaround would be falling back to native justification by excluding the paragraph from justif, and using css float/shape-outside to get the desired edge.</p>
]]></description><pubDate>Wed, 22 Jul 2026 00:20:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=49000205</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=49000205</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49000205</guid></item><item><title><![CDATA[New comment by lyall in "Show HN: Justif – Knuth-Plass justification and microtypography for the web"]]></title><description><![CDATA[
<p>It is the default if you open the demo on a narrow screen! It has a more striking difference between browser and justif layouts at narrow widths than the Alice sample. But maybe you’re right and it should be the default for everyone.</p>
]]></description><pubDate>Tue, 21 Jul 2026 23:11:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=48999613</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=48999613</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48999613</guid></item><item><title><![CDATA[New comment by lyall in "Show HN: Justif – Knuth-Plass justification and microtypography for the web"]]></title><description><![CDATA[
<p>Hyphenation: yes, justif does its own hyphenation. It ships with TeX’s hyphenation dictionaries for a bunch of languages, but supports custom dictionaries as well! See <a href="https://github.com/lyallcooper/justif#hyphenation" rel="nofollow">https://github.com/lyallcooper/justif#hyphenation</a><p>Narrow columns: open up the controls on the demo and try adjusting the width slider :)<p>Long documents: try the “Alice in Wonderland (long)” sample text in the demo to get a feel for how it handles long documents. In general it performs well enough I think, though Safari is a little slower than other platforms. It doesn’t do it incrementally (not sure that’s possible), but I spent quite a while trying to make sure it was fast enough to re-layout in real time even on long documents.<p>I haven’t thought about coexisting. I’m not sure how that could work but I’m open to ideas.</p>
]]></description><pubDate>Tue, 21 Jul 2026 23:09:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48999585</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=48999585</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48999585</guid></item><item><title><![CDATA[New comment by lyall in "Credit Card Points Are a Transfer from the Broke to the Comfortable"]]></title><description><![CDATA[
<p>Yes, there is something to be said for this argument. Debit card and cash users pay slightly higher prices than they might otherwise, which do subsidize the rewards of credit card users. But this is distinct from the argument presented in the article, which is that poor people's credit card debt funds rich people's airline miles.<p>But there factors that counteract this. Merchants pay different average fees depending on the mix of cards that they accept. A dollar store probably sees fewer Chase Sapphire Reserved or Amex Platinum cards than a Gucci store does. Accordingly, the average interchange fee they pay is probably lower. [0]<p>Also fee surcharging is becoming more common in the US these days, and is already common is some other countries. Visa et al. still don't allow merchants to pass on the <i>actual</i> interchange they'll pay, but merchants can charge a fee to credit card transactions that they don't on debit or cash.<p>But my original point is that giving rich people credit card rewards are not a transfer from the poor to the rich. It's a rational business decision by card companies that does not require any outside funding source, from poor people or otherwise, to make work financially.<p>0: There are some other factors that complicate this, such as the risk profile of the business. Riskier generally means higher fees.</p>
]]></description><pubDate>Sat, 18 Jul 2026 04:14:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=48955165</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=48955165</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48955165</guid></item><item><title><![CDATA[New comment by lyall in "Credit Card Points Are a Transfer from the Broke to the Comfortable"]]></title><description><![CDATA[
<p>You hear this argument pretty often, but it's not true.<p>Credit card companies do make a lot of money off of interest. But they also make a lot of money off of interchange fees.<p>Businesses want wealthy customers because they spend more money, so they're willing to pay a higher interchange fee to access those customers. Higher interchange fees mean card companies can offer better rewards, which in turn attract more wealthy customers to their cards.<p>So even if credit card debt was not a thing, it would still be incredibly profitable for card companies to sell access to their rich cardholder clientele, and to in turn provide rewards to those cardholders.</p>
]]></description><pubDate>Sat, 18 Jul 2026 01:01:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=48954075</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=48954075</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48954075</guid></item><item><title><![CDATA[New comment by lyall in "Show HN: Justif – Knuth-Plass justification and microtypography for the web"]]></title><description><![CDATA[
<p>Thank you! And yes by default TeX doesn't do tracking or expansion, but the microtype [0] package does.<p>And I did struggle a bit with deciding how best to do the comparison to native browser rendering. I wanted it to be an apples-to-apples comparison, but also didn't want to unfairly handicap the browser by disabling something like hyphenation. It's already bad enough as is...<p>0: <a href="https://ctan.org/pkg/microtype" rel="nofollow">https://ctan.org/pkg/microtype</a></p>
]]></description><pubDate>Fri, 17 Jul 2026 13:37:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=48947264</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=48947264</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48947264</guid></item><item><title><![CDATA[Show HN: Justif – Knuth-Plass justification and microtypography for the web]]></title><description><![CDATA[
<p>Justif is a drop-in JavaScript library that progressively enhances web pages to TeX-level text justification. Installation is a single <script> line, standard text and accessibility affordances are unchanged, and users with JS disabled get native browser rendering.<p>I made justif because I've long been a fan of justified text. I think it looks clean and elegant, and makes reading more enjoyable. But bad justification is the opposite, with gaping spaces that distract me to the point of making the text near unreadable.<p>Browsers have got better recently at handling justified text [0][1], but still use suboptimal greedy algorithms for the most part, and are not near that TeX/InDesign level of quality that I crave. `text-wrap: pretty` exists but is far from a panacea, as you can see for yourself in the demo.<p>Justif also has the benefit of providing more consistent text layout across browsers. Blink (Chrome), Gecko (Firefox) and WebKit (Safari) all justify text differently, so normally what the user sees depends on what browser they use.<p>Take a look at the demo, play around with it, see if you can break anything. I'm open to improvements of the API design as well, so please let me know your thoughts.<p>For more details, see the README: <a href="https://github.com/lyallcooper/justif" rel="nofollow">https://github.com/lyallcooper/justif</a><p>0: <a href="https://cloudfour.com/thinks/justified-text-better-than-expected/" rel="nofollow">https://cloudfour.com/thinks/justified-text-better-than-expe...</a><p>1: <a href="https://owickstrom.github.io/the-proportional-web/" rel="nofollow">https://owickstrom.github.io/the-proportional-web/</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48946738">https://news.ycombinator.com/item?id=48946738</a></p>
<p>Points: 198</p>
<p># Comments: 40</p>
]]></description><pubDate>Fri, 17 Jul 2026 12:47:20 +0000</pubDate><link>https://justif.lyall.co/</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=48946738</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48946738</guid></item><item><title><![CDATA[Show HN: Justif – publication-grade text justification for the web]]></title><description><![CDATA[
<p>I've long been a fan of justified text. I think it looks clean and elegant. But I've always been disappointed by how browsers render it, with gaping spaces that distract me to the point of making the text near unreadable.<p>Browsers have got better recently at handling justified text [0], but still are not near that TeX/InDesign level of quality that I crave.<p>Inspired by running headfirst into disappointment with how text justification looked on a recent project site of mine, and by Oskar Wickström's "Proportional Web" [1], I decided to make a drop in js library that justifies text at least as well as TeX can, all with a single <script> import.<p>Justif also has the benefit of providing consistent text layout across browsers. Blink (Chrome), Gecko (Firefox) and WebKit (Safari) all justify text differently, so normally what the user sees depends on what browser they use.<p>Take a look at the demo, play around with it, try some different browsers. Constructive feedback is always welcome.<p>0: <a href="https://cloudfour.com/thinks/justified-text-better-than-expected/" rel="nofollow">https://cloudfour.com/thinks/justified-text-better-than-expe...</a><p>1: <a href="https://owickstrom.github.io/the-proportional-web/" rel="nofollow">https://owickstrom.github.io/the-proportional-web/</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48941987">https://news.ycombinator.com/item?id=48941987</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 17 Jul 2026 00:19:16 +0000</pubDate><link>https://justif.lyall.co/</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=48941987</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48941987</guid></item><item><title><![CDATA[New comment by lyall in "Actegories"]]></title><description><![CDATA[
<p>If you saw TFA and thought "hmmm yes, I know some of those words", then I can recommend the author's own lecture series on YouTube [0]. It's an intro to and overview of category theory aimed at programmers, with the requisite context and motivation for why anyone should care. It's long but worth the time investment IMHO.<p>0: <a href="http://www.youtube.com/playlist?list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_" rel="nofollow">http://www.youtube.com/playlist?list=PLbgaMIhjbmEnaH_LTkxLI7...</a></p>
]]></description><pubDate>Tue, 14 Jul 2026 13:13:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48906348</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=48906348</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48906348</guid></item><item><title><![CDATA[Toto: From Toilets to E-Chucks [video]]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.youtube.com/watch?v=CIB49e_r1OI">https://www.youtube.com/watch?v=CIB49e_r1OI</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48719220">https://news.ycombinator.com/item?id=48719220</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 29 Jun 2026 13:44:33 +0000</pubDate><link>https://www.youtube.com/watch?v=CIB49e_r1OI</link><dc:creator>lyall</dc:creator><comments>https://news.ycombinator.com/item?id=48719220</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48719220</guid></item></channel></rss>