HNHacker News
TopNewBestAskShowJobs

LukeShu

7,084 karma · joined May 5, 2011

https://lukeshu.com/

[ my public key: https://keybase.io/lukeshu; my proof: https://keybase.io/lukeshu/sigs/HnTgaX1Qhui0yhjc6P-GRCJqUfJlk_xU09_TFpQKk0U ]

submissionscomments
LukeShu··on Optimizing Ruby's JSON, Part 4
Very glad to see the work that byroot is doing as the new ruby-json maintainer!

Since I was mentioned by name in part 3, perhaps I can provide some interesting commentary:

> All this code had recently been rewritten pretty much from scratch by Luke Shumaker ... While this code is very clean and generic, with a good separation of the multiple levels of abstractions, such as bytes and codepoints, that would make it very easy to extend the escaping logic, it isn’t taking advantage of many assumptions convert_UTF8_to_JSON could make to take shortcuts.

My rewritten version was already slightly faster than the original version, so I didn't feel the need to spend more time optimizing it, at least until the simple version got merged; which I had no idea when that'd be because of silence from the then-maintainer. Every optimization would be an opportunity for more pain when rebasing away merge-conflicts; which was already painful enough the 2 times I had to do it while waiting for a reply.

> One of these for instance is that there’s no point validating the UTF-8 encoding because Ruby did it for us and it’s impossible to end up inside convert_UTF8_to_JSON with invalid UTF-8.

I don't care to dig through the history to see exactly what changed when, but: At the time I wrote it, the unit tests told me that wasn't true; if I omitted the checks for invalid UTF-8, then the tests failed.

> Another is that there are only two multi-byte characters we care about, and both start with the same 0xE2 byte, so the decoding into codepoints is a bit superfluous. ... we can re-use Mame’s lookup table, but with a twist.

I noted in the original PR description that I thought a lookup table would be faster than my decoder. I didn't use a lookup table myself (1) to keep the initial version simple to make code-review simple to increase likelihood that it got merged, and (2) the old proprietary CVTUTF code used a lookup table, and because I was so familiar with the CVTUTF code, I didn't feel comfortable being the one to to re-add a lookup table. Glad to see that my suspicion was correct and that someone else did the work!

LukeShu··on Will that hub or dock slow your SSDs, or even make them faster?
Western Digital themselves are literally calling the WD_BLACK line their gaming line[1], and their page for the SN850X in particular is dripping with "gaming"[2].

Maybe that doesn't make it a bad comparison, but the SN850X is def intended to be a gaming part.

[1]: https://www.westerndigital.com/brand/wd-black

[2]: https://www.westerndigital.com/en-in/products/internal-drive...

LukeShu··on OpenERV
Counter-flow heat exchangers. A parallel-flow heat exchanger would result in the average, as you say; but a counter-flow exchanger means that as the formerly-warm air gets progressively cooler, it is exposed to progressively colder air.
LukeShu··on OpenERV
Counter-flow heat exchangers can be very efficient, without a heater or cooler attached. That said, I don't think I've seen a commercial ERV claim to be more than 80% efficient, so I'm skeptical of the 90% measurement.

(I've seen ERVs with heaters attached; but for the purpose of avoiding frost buildup when it's below freezing outside.)

LukeShu··on OpenERV
Fairly standard language for describing what an ERV does.

Low-CO2 outdoor air vs high-CO2 indoor air, if you prefer. Important for how air-tight modern energy-efficient construction is.

LukeShu··on The Pentium FDIV bug, reverse-engineered
Microcode updates came the very next generation with the Pentium Pro.
LukeShu··on The zoology and biochemistry of xenomorphs from the Alien franchise
> They were not actually created by the "engineers," as Shaw from Prometheus called the space jockey guys. They were created by David, the first synthetic sentient android created by Weyland, when he and Shaw hijacked an engineer ship.

We see the skull of one on the predators' ship in Predator 2 (set in 1997). And Alien vs. Predator was set in 2004.

The whole business with David wasn't until 2091 or so.

LukeShu··on Tsugaru OS – A New Free FM-Towns OS
For those missing context: "Towns OS" was an operating system made by Fujitsu in 1989 (with the last release in 1995) for their "FM Towns" line of PCs. This is a Free clone of Towns OS, so that one can run Towns OS applications without infringing on Fujitsu's copyright, akin to ReactOS or DOSBox.
LukeShu··on Weird Lexical Syntax
"$((" arithmetic expansion is POSIX (XCU 2.6.4 "Arithmetic Expansion").

But if I'm not mistaken, it originated in csh.

LukeShu··on UTF-8 characters that behave oddly when the case is changed
This doesn't include the oddest of all: sigma.

When lowercasing Σ (U+03A3 Greek capital letter sigma) it is context-sensitive (on whether it is at the end of a word) whether it becomes σ (U+03C3 Greek small letter sigma) or ς (U+03C2 Greek small letter final sigma).

LukeShu··on Maker Pipe – Structural Pipe Fittings for DIY Builders
" is imperial inches, ' is imperial feet.
LukeShu··on The Tao of Unicode Sparklines (2021)
Sixel graphics on the vt220 (1983) worked by defining a custom font of 10x10 px characters (9x10 in high-resolution mode), which you could then switch to for any given character.

As far as I know, there is no terminal emulator that supports this flavor if sixel graphics.

LukeShu··on Mpv – A free, open-source, and cross-platform media player
By default, mpv has vertical-scroll bound to volume and horizontal-scroll bound to scrubbing.
LukeShu··on AI crawlers need to be more respectful
I don't.

Just 3 AI spiders put more load on our servers than all search engine spiders and all human traffic combined.

Some numbers I have handy from before I blocked the bots:

ClaudeBot drove more requests through our Redmine in a month than it saw in the combined 5 years prior to ClaudeBot.

Bytespider accounted for 59% of the total traffic to our Git server.

Amazonbot accounted for 21% of the total traffic to our Git server.

Google has never even been close to breaking out of the single-digit-percentages of any metric.

LukeShu··on Our website is closed on Sundays
Sticker Mule is one of the major internet-order small-batch/on-demand custom sticker/T-shirt/swag suppliers. You may know them from "unixstickers".

Following Trump getting shot, Sticker Mule send out a marketing email to customers encouraging them to buy a T-shirt that "shows you support Trump."

This has caused many Sticker Mule customers to seek alternatives. Sticker Ninja has benefited greatly from this (they are "slammed", as TFA says). Sticker Ninja hasn't done anything political here, and that's sort of the point; they haven't while Sticker Mule has.

LukeShu··on A brief interview with Awk creator Dr. Brian Kernighan (2022)
I'm not sure what you're thinking of, but there at least 3 prominent and still-relevant awk implementations:

nawk (One True Awk / AT&T awk / BWK awk): the original awk, still maintained; is used by macOS, FreeBSD, OpenBSD, and NetBSD https://github.com/onetrueawk/awk

mawk (Mike's awk): the default awk on Debian https://invisible-island.net/mawk/

gawk (GNU awk): the default awk in lots of other places https://www.gnu.org/software/gawk/

LukeShu··on Building the Bell System
But that doesn't refute the parent's point, does it? (If it has been edited since you wrote that, the version I see is "Unix's involvement with the development of the Internet was mainly through BSD, which was a UC Berkeley joint, not Bell Labs.")

They were responding to the statement:

> "why can't we [Kernighan, Ritchie, Thompson, other folks at Bell Labs] work on the the future of a global inter-net? Why do we have to hide it [Unix] as a text processing system?"

Whether or not the BSD TCP/IP implementation was the first or most influential, the point is that it wasn't the Bell Labs Unix folks driving Unix networking forward. UNET was from 3Com.

LukeShu··on Modifying the OG Xbox to have 256M of RAM [video]
As far as I know, there were only 5 PPro computers that could take >4GB: Axil Northbridge NX801, Data General AV8600, HP NetServer LXr Pro8, NCR Worldmark 4380, or Unisys XR/6

Interestingly, while the Intel 450GX chipset was designed to daisy-chain DRAM controllers (1 controller chip per 4GB of RAM), none of the boards that actually could take >4GB used that, instead building their own solutions. Presumably that meant that there was a bug in the chipset.

Anyway, each of those 5 computers would have run you at least $500k in 1998.

(I've been on-and-off trying to acquire one of those boxes for a few years now.)

LukeShu··on Userland rootkits are lame (2022)
Some uses of LD_PRELOAD off the top of my head:

- GNU stdbuf (BSDs use an env-var instead of hijacking libc)

- fakeroot

- gprofng's data collector

- For a long time it was necessary to use LD_PRELOADto hack around a bug in flashplayer because flashplayer used memcpy when it should have used memmove.

LukeShu··on GNU Justified Public License
> In this talk—and with this talk—I presented BoVeX, a new computer typesetting system that finally solves the AI alignment problem. It follows the tradition of Knuth's TeX, but with modern amenities such as requiring 128 gigabytes of RAM.
LukeShu··on GNU Justified Public License
This should not have "(2007)" in the title; 2007 is the date of the GPL v3, which this is a 2024 mimicry of (as explained in https://www.youtube.com/watch?v=Y65FRxE7uMc).
LukeShu··on Mobifree – An open-source mobile ecosystem
> Fdroid still has the privileged extension

Not on modern versions of Android.

LukeShu··on The CompCert C Compiler
There is a well-maintained in-VCS less-disgusting version of Xpdf. It's called Poppler, and Apple chooses to not use it.
LukeShu··on Reverse engineering ESP32 Wi-Fi driver: the road ahead
There are no newer-than-803.11n cards that are usable with a Linux-libre kernel (which doesn't load binary blobs).
LukeShu··on Reflections on our Responsible Scaling Policy
You know what would be responsible scaling? Not DOSing random servers with ClaudeBot as you scale up.
LukeShu··on GNU LibreJS: blocks JavaScript traps
In addition to the documented+recommended format, it also supports a few others. But yeah, it's pretty picky about how the license statement is formatted.
LukeShu··on 500 Byte Images: The Haiku Vector Icon Format (2016)
Many of us look at https://github.githubassets.com/favicons/favicon.svg at 16x16 every day, and wouldn't call it a blurry mess.
LukeShu··on Arc Browser for Windows, now generally available
> “What’s Windows 1.0?”

It's a desktop environment for DOS that was released in 1985 :)

LukeShu··on "So that a truncated partial download doesn't end up executing half a script"
The most obvious answer is `curl | sh`. But also perhaps a network blip interrupting curl/wget, but the user failing to notice and going ahead and executing the file anyway.
LukeShu··on Jeff Geerling: Corporate Open Source Is Dead
Without a separate CLA or copyright assignment, the contributor retains the copyright to their code, and licenses it to the project under the terms of the GPL (or whatever license).

The license is basically a legally-binding promise not to sue, as long as you follow the rules in the license. So the general consensus is that they can't terminate the license unless you violate the license. (Though there are dissenting opinions on that.)

← PreviousPage 3 of 34Next →