HNHacker News
TopNewBestAskShowJobs

chrismorgan

26,924 karma · joined September 13, 2012

https://chrismorgan.info/, me@chrismorgan.info

I’m available for hire for consulting, training and mentoring in Rust, everything web, performance and more: https://chrismorgan.info/hire-me/

[ my public key: https://keybase.io/chrismorgan; my proof: https://keybase.io/chrismorgan/sigs/rEm41-0pghG3ITW8S5HeuFLA9TznvPSlg9NKgXXRXqQ ]

submissionscomments
chrismorgan··on Anthropic says Alibaba illicitly extracted Claude AI model capabilities
> because Microsoft gives out windows isos for free,

… with a license that only allows you to use it for certain purposes, subject to certain restrictions.

> and the seller is really selling a random 25 character string, which can hardly be copyrighted.

1. Copyright is about creative works. It is possible to have a meaningful creative work no more than 25 characters long (or equivalent). Music is particularly good at this.

2. The key itself is not copyrighted (it’s not a creative work), but is reasonably interpreted as a copyright circumvention device. See also https://en.wikipedia.org/wiki/Illegal_number.

chrismorgan··on Show HN: Bible as RAG Database
“Source code” is not at all the correct term. It’s more like the documentation.
chrismorgan··on The CAPTCHA arms race: from distorted text to browser identity
Proof-of-work is bad rate limiting: https://news.ycombinator.com/item?id=44093918. The playing field is wildly unbalanced. Even naive attackers tend to have a lot more computing power available than a lot of your normal users, and where it’s SHA-256 (which is almost the worst choice imaginable for a proof of work scheme, yet which every single service that I know of has used), an intelligent attacker goes from being hundreds of times as powerful to millions of times as powerful.
chrismorgan··on Epidurals are a miracle technology
I confirmed with my wife, a squatting delivery after epidural is not in the bed.
chrismorgan··on Epidurals are a miracle technology
It’s funny, because Paul criticised such thought in Colossians 2:23:

> These have indeed an appearance of wisdom in promoting rigour of devotion and self-abasement and severity to the body, but they are of no value in checking the indulgence of the flesh.

Meaning: sure, looks good, but doesn’t actually help if the suffering itself is your goal.

(Notwithstanding this, Acts 5:41. A lot, in such topics, depends on exactly how you present things.)

chrismorgan··on Epidurals are a miracle technology
My wife works at a leading private maternity hospital in India. I can’t yet report from personal experience, but my wife says that epidurals are normal procedure, and per the hospital’s published statistics, about 90% choosing to give birth propped up or squatting (this figure excludes C-sections, water births, and complicated cases), which implies not being in a bed for at least the last part.
chrismorgan··on Lossless GIF recompression via exhaustive search
> didn't realize there was a usecase for single frame GIFs anymore

If the purpose is supporting NCSA Mosaic… I’m content to say that there isn’t. Definitely not “anymore”.

chrismorgan··on Why Drawing Tablet Brands Won't Collaborate on Linux Floss Drivers
It seems to be very popular in the US to take offence on behalf of others. For example: one hears of US people getting upset about “cultural appropriation” on behalf of others, when said others are actually actively happy about their culture being shown and appreciated. You can definitely take things too far in either direction.
chrismorgan··on Why Drawing Tablet Brands Won't Collaborate on Linux Floss Drivers
When I started using a graphics tablet, long ago, I was confused about why all this stuff was labelled Wacom, and whether it was applicable to me or not, when using a device of another brand. Some parts of it seemed to be, and other parts didn’t? It was very confusing, and a genuine confusion that made me uncertain even in purchasing. (It would be less confusing now because user-facing parts don’t touch the “Wacom” name as much any more.)

Whereas the “master” thing was transparent linguistic nonsense and a strictly-US cultural thing that a few people foisted on the rest of the world because they decided to get offended on behalf of a hypothetical group.

chrismorgan··on window.showDirectoryPicker opens up a whole new world
You say “mainly missing Safari and Firefox”, but the better way to look at it is “only Chromium”. There is only one implementation, and the other two major implementers have explicitly rejected it. And we don’t standardise things without at least two implementations.
chrismorgan··on A tale of two path separators
PowerShell didn’t quite exist back then!
chrismorgan··on A tale of two path separators
And you need `cd /d` to switch drives. This was how I rendered a Windows computer non-bootable for the first time. Ran Command Prompt as admin (because I was logged in as a user that didn’t have write access to D:\backups), and it starts in a rather important directory, then:

  C:\WINDOWS\system32>cd D:\backups\some-huge-directory
  C:\WINDOWS\system32>del /s *
Oops. I learned to look twice before running a big dangerous command. And to use /d.
chrismorgan··on Big Tech is borrowing like never before
You almost make me hope, that the web can be saved.
chrismorgan··on I Stored a Website in a Favicon
Regular expressions? Ugh. Encode it properly as XML in the correct namespace, load it so, and take it from that.

Or just serve the SVG file and use <foreignObject> to embed the HTML, and include <link rel="icon" href=""> inside it. In theory you should be able to define a <view id="icon"> and use <link rel="icon" href="#icon">, but in practice neither Firefox nor Chromium seems to be handling that properly in a favicon, which is disappointing.

chrismorgan··on Egyptian Fractions (2006)
We’ve grown used to a full-decimal system, but all kinds of weird stuff has existed in the past.

Telugu (a language of southern India) has an interesting traditional numeric system: base ten for integers, and base four for fractions.

   U+0C78 "౸" TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR
   U+0C79 "౹" TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR
   U+0C7A "౺" TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR
   U+0C7B "౻" TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR
  (U+0C66 "౦" TELUGU DIGIT ZERO is used for even powers of four too)
   U+0C7C "౼" TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR
   U+0C7D "౽" TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR
   U+0C7E "౾" TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
Seems complicated at first, but in practice it’s roughly just: circle for zero, and tally marks for one, two and three, alternating vertical and horizontal.

Few Telugu speakers even know about this any more—no one can read even the traditional integers (౦౧౨౩౪౫౬౭౮౯), because 0123456789 have replaced them. (This is the case in most but not all Indian languages. Bengali’s traditional digits are still common, so you can enjoy ৪ being four and ৭ seven.)

A couple of articles and discussions about it:

• https://www.unicode.org/wg2/docs/n3156.pdf is the best public resource I know of (Unicode proposals and related papers are often delightful for information on obscure written stuff, because they had to write down and publish the details to get the characters encoded). One tid-bit: NYSE used a similar decimal/quaternary system until early 2001.

• https://blog.plover.com/math/telugu.html from the same site as the current article, discussed in https://news.ycombinator.com/item?id=14683767 nine years ago.

chrismorgan··on What was nice about the UI of Windows 2000
Last time I used Windows 11, maybe late last year, there was no way of doing that… though they had finally allowed you to turn off the source of ads (“widgets”) which they put in the corner instead.
chrismorgan··on What was nice about the UI of Windows 2000
> you had to make a fake mustache out of cat hairs to solve a puzzle

It’s worse than that: the guy you have to do this to impersonate doesn’t have a moustache, so you then also have to draw one on his ID card with a marker.

chrismorgan··on Show HN: Are You in the Weights?
It’s funny, seeing the block (rather than line) cursor in the text box, my fingers itched to press i to enter Insert mode before typing my name.
chrismorgan··on The Australian Government to Require SMS/MMS Sender ID Registraion
As an Australian who moved to India a couple of years ago: I’ve found India’s Do Not Call Register significantly less effective than Australia’s, because telco, ISP, TRAI and other government offices keep on sending spam, a lot of it stuff that will train people to be phished, and if you report them as DND violations, they declare them service-related. And for telco/ISP, they commingle with actual service-related and important transactional messages, so you can’t just block the shortcodes.

In Australia, I don’t remember ever really getting spam SMSes. Emails from the bank, yes, but that’s easier to filter if desired. When you get the same old spam messages time after time, you can filter them in email, but text message apps are often not up to that sort of thing.

The really stupid thing is that more than half of the spam is about blocking spam. At least once a month, AD-TRAIND-G sends:

> స్పామర్లపై చర్య కోసం స్పామ్ను రిపోర్ట్ చెయ్యండి. అయితే, ఫోన్ కాలింగ్ యాప్లో స్పామర్ను బ్లాక్ చేయడం వల్ల స్పామర్పై చర్య తీసుకోబడదు. స్పామ్ను TRAI DND యాప్ లేదా సర్వీస్ ప్రొవైడర్ యాప్ లేదా 1909 లో రిపోర్ట్ చెయ్యండి. TRAI DND యాప్లో రిపోర్ట్ చేయడం సులభం మరియు వేగవంతం, ఈరోజే ఇన్స్టాల్ చేసుకోండి.

And AD-AIRDOT-S just sends a random message from a pool of half a dozen or so, mostly English but one or two Telugu, sometimes every few days, sometimes every few weeks. Such as:

> Alert: On receiving unwanted SMS , please complain by calling 1909 or send SMS to 1909 in format 'SMS Content, Sender No, dd/mm/yy' or visit bit.ly/2qBK0vp to report through Airtel Thanks App.

(Huh, that link is now broken. Used to work. Makes it even more dumb.)

I should automate reporting all of this stuff, deliberately to waste their time, and maybe, just maybe, make someone think, “maybe we should stop sending this stuff”.

There was also RCS… I turned that off after a bit, because it was being used purely for spam and undesirable stuff, and you couldn’t complain in the same channels. RCS is dead like this.

chrismorgan··on RFC 10008: The new HTTP Query Method
See https://github.com/whatwg/html/issues/12594.
chrismorgan··on Ryanair dark UX patterns summer 2026 refresher
> The dark patterns took me about 10min to click through.

I find that difficult to believe. Ten minutes is a long time.

chrismorgan··on Removing 'um' from a recording is harder than it sounds
Um… no. Quite different vowel sounds.

(Also, in case it wasn’t clear: I was quoting from the start of the article in that sentence.)

chrismorgan··on Removing 'um' from a recording is harder than it sounds
I think the “What it won’t touch” section shows why the entire concept is unsound. Here it is with a different first sentence, and (other than the third sentence no longer matching erm’s reality) it’s perfectly coherent:

> It leaves um, uh, er and elongated versions (ummmm, uhhhhh) alone. Those sound like fillers but they’re doing real work in the sentence, and cutting them automatically would change what someone said. The rule erm follows: only remove things that are sound, not language.

> It also doesn’t touch repeated words, false starts, or long thinking pauses. Those aren’t noise on top of the speech; they are the speech, just messier than the speaker would like. Cleaning them up is an editorial decision about which take to keep, and erm doesn’t have an opinion about that.

Think about it. Cleaning these things-that-can-be-just-sounds-but-can-also-very-much-be-load-bearing up is an editorial decision. At the very least, you need to judge based on the surrounding content whether the removal of an um would change the meaning at all; and I don’t think text alone is adequate for that.

chrismorgan··on Show HN: FablePool – pool money behind a prompt, and Fable builds it in public
It’s a lot more like giving a hungry Hindu a gift card to a specific non-veg restaurant. Maybe they’ll use and enjoy it, maybe they’re vegetarian and will be insulted; either way that restaurant benefits. Especially if the hungry person exceeds the value of the gift card.
chrismorgan··on World Capitals Voronoi
I find zooming on this world capitals one to be quite slow for some reason, mostly well below 10fps, and it’s rendering all frames rather than skipping to keep up (the wrong decision, I reckon). Panning is excellent; and zooming is fine on /maps/voronoi/, which has only a dozen or so points, which I guess must be few enough not to slow it down. I’m curious what’s going on, but not enough to delve into the code myself.

Actually, even /maps/voronoi/ lags if you zoom in really far, and in a way that can break the scroll capture—I presume the code is non-passively watching scroll events and calling preventDefault(), but once it’s lagging hard enough the browser takes matters into its own hands and says you didn’t act fast enough.

chrismorgan··on HTML is a native image format, hear me out
In case you missed it—I’m not showing regular SVG, I’m showing using HTML as an image, via an SVG container. This has worked fine in browsers for more than ten years (around twenty, other than IE/Edge).
chrismorgan··on HTML is a native image format, hear me out
I’ll engage with the editorialised title (which will probably be changed soon), “HTML is a native image format, hear me out”:

  data:image/svg+xml,
  <svg xmlns="http://www.w3.org/2000/svg">
    <foreignObject width="100%25" height="100%25">
      <div xmlns="http://www.w3.org/1999/xhtml">
        Behold!
      </div>
    </foreignObject>
  </svg>
chrismorgan··on CSS: Unavoidable Bad Parts
Poor choice of words there; it would have been better as “Bad: responsive breakpoints”.
chrismorgan··on I'm building a parallel internet, and it's called The Thinnernet
Your concept is an extension of what I call the pure-canvas approach. Less bad than current pure-canvas, but a lot of the problems of pure-canvas will persist.

Google Docs is not pure-canvas. If it were, it would be horrible. As it is, it’s… meh, fine I guess, merely somewhat worse than before it started using canvas at all (incorrect keyboard behaviours, worse performance, terrible latency and jitter, though still not as bad as whatever Microsoft call their version of Word that runs in a web browser).

Figma only uses canvas for its canvas, which pretty obviously should indeed be canvas; all UI is DOM, and it would be much worse if it were not.

In a web browser, Flutter is horrible. I loathe, detest and abominate it with vitriol befitting sulphuric acid.

(I’ve written about all of these before. https://news.ycombinator.com/item?id=42253177 is a fair starting point.)

chrismorgan··on I'm building a parallel internet, and it's called The Thinnernet
And that concept was bonkers, proof conclusive that he had lost the plot—if his involvement with and endorsement of canvas-only Flutter wasn’t proof enough—and should be ignored completely until he comes to his senses.

The obvious benchmark would be: can you implement an HTML/CSS/JS browser inside this environment and have it behave identically to the browser’s own HTML/CSS/JS? And the answer is: not a chance. WASM + WebGPU + ARIA + WebHID is simply not enough. Browsers provide a lot of functionality in ways that web content cannot see or interact with. Some of it could be mapped, other parts of it never can be, for security/privacy reasons. And the more you want to map, the bigger your spec gets, until you’ve added every diverse feature from every OS to the web’s API surface—and then you stop browsers from adding new functionality, too.

Some examples of things that can’t be implemented in web content (most fundamentally, one or two merely currently): Native text rendering in this WebGPU world. Links with all their functionality. Native font preferences. Text selection and its interactions with native platform functionality (including things like context menus). Native scrolling behaviour. The browser as a compositor (important for things like scrolling and video performance). Browser extensions (the user agency part of that first scathing comment).

← PreviousPage 7 of 34Next →