HNHacker News
TopNewBestAskShowJobs

eesmith

8,928 karma · joined July 3, 2017

submissionscomments
eesmith··on Show HN: Pre Python 3.15 PEP 661 compat-sentinel
Nice! I've a sentinel for my own project, but it's a simple

  class Default:
    def __repr__(self):
      return "<use default>")
  default = Default()
so I need to do:

  def f(a: Union[int, None, Default] = default):
    if a is default:
      ..
to get the typing right, from 3.10 onward.

Why I saw the info about the new sentinel, I wondered how they could manage using a '|default' with simply the sentinel. I see from your code's _union() that it's a bit tricky to make 3.10 even support Union[int, None, default].

Thanks for pointing to the project!

eesmith··on Apple/macOS removed from official Unix registry
I regard "traditional Unix" as the 1970s era. There were no sublicensees. You bought the source code from AT&T. That was the only option.

You then likely hacked the source code to make it work on your machine.

I can understand that others might include the commercialization of the 1980s and the Unix wars as part of "traditional Unix", but even then, my IRIX system ca. 1990 supported end-user kernel extensions, to handle new types of devices. Our imaging hardware was not "connected with well-defined text-based interfaces".

eesmith··on Apple/macOS removed from official Unix registry
No?

As jeremyjh wrote at https://news.ycombinator.com/item?id=50032733 , "A system that the hardware owner cannot modify is not really on the same wavelength as traditional UNIX.". Since traditional Unix was source-available, with the expectation that people would hack on the source, I fully agree with jeremyjh's characterization.

I think you are talking about a later era in Unix history? The early Unix licensees were educational institutions and commercial sites, not vendors or resellers.

Every one of those academic and commercial end users got the source code.

From https://en.wikipedia.org/wiki/History_of_Unix :

> "In 1973, AT&T released Version 5 Unix and licensed it to educational institutions, and licensed 1975's Version 6 to companies for the first time, ... Anyone could purchase a license, but the terms were very restrictive; licensees only received the source code, on an as-is basis. ... Unix was entirely unsupported by AT&T"

From the same link, "Perkin-Elmer began distributing Wollongong Unix for Interdata as Perkin-Elmer Edition 7, the first version supported by a computer company". That was in 1980.

So while yes, "Traditional UNIX was entirely proprietary" and could not be redistributed to non-licensees, it was also provided with "full user control and manipulation of the OS", and not merely "connected with well-defined text-based interfaces", quoting jdiff at https://news.ycombinator.com/item?id=50033080.

eesmith··on C for Rust programmers
I .... okay, my mind is blown. It absolutely says that, and https://en.cppreference.com/cpp/language/types adds "this allows the extreme case in which bytes are sized 64 bits, all types (including char) are 64 bits wide, and sizeof returns 1 for every type."

So that scaling factor is placed into CHAR_BIT, and would be 64 on that DSP compiler.

> An object shall have its stored value accessed only by an lvalue that has one of the following types:

Yes, my confusion comes down to my confusion of what "byte" means in the C spec.

Thank you for your time in pointing this out.

eesmith··on C for Rust programmers
How is it then that my stock KUbuntu system won't let me allocate 50,000,000,000 bytes?

  $ uname -a
  Linux boxcar 7.0.0-31-generic #31~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Aug 10 09:38:02 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
  $ cat tmp.c
  #include <stdio.h>
  #include <stdlib.h>
  
  int main() {
  char *s = malloc(50000000000ULL);
    if (s == NULL) {
      printf("Boo, hoo!\n");
    } else {
      printf("Look at all that memory!\n");
    }
    return 0;
  }
  $ cc tmp.c
  $ ./a.out
  Boo, hoo!
As to the lack of robustness of most software, that's a fact. But, for example, Daniel Stenberg of curl fame is a developer of robust software who does not appreciate how Rust handles out-of-memory errors makes it impossible to implement libcurl in the way he expects a library to work. See https://www.youtube.com/watch?v=HFH2vZRTKrA&t=2080s from 4.5 years ago as an example.

To get back to the essay, I can easily understand why someone who has Rust as their first-and-only systems language, and therefore expects abort-when-out-of-memory, will not immediately consider how C allows a different approach to how to handle that condition, but instead will try to replicate Rust's behavior in C.

"I can program FORTRAN in any language." :)

eesmith··on C for Rust programmers
The linked-to essay points out that char is only "at least 8 bits", and links to https://cppreference.com/c/language/arithmetic_types which confirms that point.

https://smd.hu/Data/Analog/DSP/SHARC/C&C++%20Compiler%20&%20... says the cc21k compiler for ADSP-21xxx DSP systems has char as 32 bits signed, and that the compiler handles ANSI/ISO standard C.

So I don't believe your statement "sizeof(char) is guaranteed to always be 1" is correct.

> chars are also how you access the byte-level representation of objects in C

Where does the spec say that a char can be used to address any point in an object?

There's all sorts of oddities like tagged architectures which the C spec handles which I know essentially nothing about, but which break common expectations about how C works. I believe this is one of them.

I believe the following is undefined behavior in C, even though your compiler may let you do it, at least sometimes, and on modern desktop hardware:

  int i = 12345;
  char *s = ((char *)&i) + 1;
  char c = *s;
I believe the following is the correct (or less incorrect) way to do it:

  char tmp[sizeof(int)];
  memcpy(tmp, &i, sizeof(int));
  char c = tmp[1];
eesmith··on How to head into VR without wearing a headset
https://en.wikipedia.org/wiki/Cave_automatic_virtual_environ...

Over 9,000 matches for ""Cave automatic virtual environment" on Google Scholar, with over 400 from this year.

eesmith··on How to head into VR without wearing a headset
Are you sure you aren't thinking of this project?

The second paragraph starts "In a paper published July 19, 2026", which was almost 3 months ago.

eesmith··on How to head into VR without wearing a headset
It wasn't SGI. It came out of the University of Illinois, Chicago Electronic Visualization Laboratory. https://en.wikipedia.org/wiki/Cave_automatic_virtual_environ...

The original design used two projector screens, one for each wall, alternating with left- and right- eye views, with the user wearing shutter glasses keeping the vision in sync, while wearing a head tracker. They did use 7 SGIs (6 VGX workstations and a Personal Iris) for the system.

Full details at https://dl.acm.org/doi/epdf/10.1145/129888.129892 .

Later designs included displays on 4 walls plus floor for near immersive VR.

eesmith··on C for Rust programmers
Agreed.

I think it's because the new_uninit_slice call Rust will trigger a panic? Or abort? With little-to-no chance for recovery? (I know little about Rust.)

If so, I can see why someone that someone coming from Rust might consider exit() to be the appropriate solution for C, even for library code which should never be in charge of deciding how a program should exit.

I think the essay could be improved by highlighting the different worldviews.

I'm also old enough that

    // Allocate enough room for the string and its null terminator.
    char* reversed = malloc(len + 1);
makes me nervous. Even for char -- I've never been on a system where sizeof(char) != 1 -- I want to see the sizeof included in the calculation, like:

    char* reversed = malloc((len + 1) * sizeof(*reversed))
so I don't have to think about sizeof(char) being special.

As long as I'm here, I'm a bit confused about the purpose of the "char* error_message" in the proposed Result. Why a char* vs a const char * or even better, an int with an error code? Who sees the message? Do we expect they know English, or will they be localized? Will the error message text be frozen forever, or might it change in the future?

eesmith··on Apple/macOS removed from official Unix registry
Traditional UNIX was entirely proprietary, with source you're intended to tinker with.

AT&T was forbidden by its consent decree from productizing Unix. Licensees received the source code, on an as-is basis, with no official support from AT&T.

eesmith··on Part of a police code for describing suspects
The paper is available at https://www.tandfonline.com/doi/full/10.1080/01611194.2025.2... from Cryptologia v50, 2026.

A PDF of Bellovin's paper (marked "draft") is available from the author at https://www.cs.columbia.edu/~smb/papers/codebooks.pdf .

A "preliminary version" of the same paper is available at https://www.cs.columbia.edu/~CS4HS/talks/codebooks.pdf .

The "International Police Telegraph code" is available at https://discovery.nationalarchives.gov.uk/details/r/C210621 ; registration required.

eesmith··on AI Film Submmitted for Best Animated Feature Oscar
All I see is that the author of the tweet wrote "Submitting for Best Animated".

And ... so what? Any (appropriate) member of the Academy can nominate a film.

Even for reasons which have nothing to do with the quality of the film.

(How do I know the tweet author is a member of the Academy, and not just someone simply BS'ing on the internet? The account is from 'Primetime Emmy winning Oculus/Pixar/AI team', so it could be a PR team pushing their tech.)

eesmith··on Opus 5.5 agents discover two room-temperature magnetic semiconductor candidates
These are two different substitutions.

The box, as described by vidarh, would turn "Dyke" into "Gay".

The "penis" one refers to a joke told by Mary Tyler Moore on Letterman back in 1993, https://youtu.be/vhAv8Aowb9w?t=413 .

eesmith··on Opus 5.5 agents discover two room-temperature magnetic semiconductor candidates
How old do you think he was when he first heard "Penis Van Lesbian"?

(https://en.wikipedia.org/wiki/Dyke_(slang) says the term "was used as a derogatory term for lesbians by straight people" by the 1950s, and is in a 1942 slang dictionary at https://archive.org/details/bwb_T5-BCF-927/page/374/mode/2up... . Since he was born in 1925, it seems possible that he encountered that term before he turned 18 in 1943.)

eesmith··on SF $192 fine for teaching tennis to his own children
"Dystopian"? Really?

Paid instruction is not allowed on public courts without a permit.

And you think it's a form of dystopia that the authorities check that the rules are being followed?

How are the authorities supposed to know?

Do you also think that when the fish&game officer checks that a weekend sport fisherman has a valid fishing permit then that's some sort of oppressive police state?

eesmith··on SF $192 fine for teaching tennis to his own children
Article from when this happened in August.

https://sfstandard.com/2026/08/01/san-francisco-tennis-court...

> The rangers said he needed a permit to teach tennis. They relented after the kids pointed out that Dogen is their dad, not a coach.

> He could have been fined $192, one of the rangers told him. ...

> A spokesperson for the Recreation and Park Department said rangers are on the lookout for commercial operations in public spaces.

“This was a routine interaction,” Tamara Aparton said by email. “Because paid instruction is not allowed on public courts without a permit, rangers will sometimes ask questions to determine whether someone is providing commercial instruction or simply using the courts for personal recreation or coaching their kids.”

In other words, bilsbie, no, there was no $192 find for teaching tennis to his own children.

eesmith··on Improper redaction reveals Google Data Center water and electricity usage
This data center is in Nebraska, not California, and motionlessveloc's comment that I replied to wasn't even limited to the US as there are local protests against data center water use in other countries.

Yes, water rights law is complicated. California's access to water from the Colorado River is due to the Colorado River Compact, which exists because state disagreed on the details of how water "goes back out into the environment".

That said, I was under the impression that many data centers use municipal water, which is more subject to market price, and not water allocated by property rights. While certainly some do, it isn't always so.

eesmith··on Improper redaction reveals Google Data Center water and electricity usage
Your use of "into the environment" is too broad.

If you pump water out of one watershed into another, perhaps via evaporation and wind transport, then you better expect the downstream users, deprived of their water, to complain.

For example, the upstream users of water from the Colorado use so much that Colorado River Delta is nearly always dry. Or read about the California water wars.

Further, increased competition for surface water raises prices, which encourages additional aquifer extraction.

eesmith··on Google's first orbital data center is in orbit
It's a Sun-synchronous orbit, https://en.wikipedia.org/wiki/Sun-synchronous_orbit . There is no time when the Earth comes between the craft and the Sun.

The "can" in the phrase "An orbital data centre can be effectively in your line of sight and it can be relatively close" is doing a lot of work. It's a polar orbit, and over half the time will be over an ocean, and not over anyone at all.

At https://en.wikipedia.org/wiki/MetOp#/media/File:Ground_track... you can see the ground track for MetOp-B, in Sun-synchronous orbit at 817 km elevation, so a bit higher. It also shows the line-of-sight in the egg-shaped white outlined region.

A ground station will need to be within that region (which is large), or a satellite will need to relay via another satellite (adding more distance). In either case, the average latency will increase.

Since consumer devices don't support ground-to-orbit laser communications, there will need to be ground stations. How many are needed to get the latency low enough? Why not replace the ground stations with a compute center?

eesmith··on So, Gutenberg Didn't Invent Printing as We Know It
To be extremely pedantic, manual pressing is still pressing.

Similar to how "The earliest wine press was probably the human foot or hand, crushing and squeezing grapes into a bag or container where the contents would ferment" - https://en.wikipedia.org/wiki/History_of_the_wine_press .

To be clear, people use "printing press" as metonymy for the broad set of methods Gutenberg developed (and its descendants), which includes not just the screw-powered printing press, but also type cases, appropriate oil-based ink, the composing stick, and other inventions that various internet sources tell me were created.

Which highlights another aspect of my irritation with the linked-to piece:

'''During a study of Gutenberg’s lettering techniques, computer programmer Blaise Agṻera y Arcas pointed out how strange this is: “The idea that a technology emerges fully formed at the beginning is nuts. Anyone who does technology knows that’s not how it works.”'''

That links to something in the Financial Times, which I assume is an editorial. Its inclusion is very odd since Gutenberg's printing isn't "a technology" but many different technologies, each with its own history. Oil-based inks were already used in the art worlds. Creating alloys appropriate for casting and subsequent use were already known. And of course the screw press was already known.

So when the author writes "Nonetheless, it is possible that printing technology spread from East to West", we must ask which printing technology? There is no evidence of a culture of printing advancements along the way from Korea to the Free City of Mainz, so the idea is supposed to be that Gutenberg (and I assume his workers) somehow came up with all these other inventions, but wasn't clever enough to come up with moveable type?

eesmith··on So, Gutenberg Didn't Invent Printing as We Know It
As the article characterizes it:

"Eventually, early capitalists in Europe invested in Johannes Gutenberg’s business venture—the one that combined technology quite like the movable type innovated by Choe Yun-ui with a screw-threaded spiral mechanism from a wine or olive press to ratchet up printing to commercial speeds."

where

"Choe came up with an alternative. Building on earlier Chinese attempts to create movable type, he adapted a method that had been used for minting bronze coins to cast 3-dimensional characters in metal. Then he arranged these pieces in a frame, coated them with ink, and used them to press sheets of paper. When he was done, he could reorganize the metal characters, eliminating the need to persistently chisel blocks."

When viewed through a pedant's lens, where do you set the line which says something is the first printing press?

As the article points out, Jikji ("Anthology of Great Buddhist Priests' Zen Teachings") was printed on metal movable type long before Gutenberg, and yes, using a method different than Gutenberg. How does the lack of a screw make it not a printing press?

(I tried looking for more details about how that press worked, but failed, with most people referring to the Wikipedia page, and the academic publications behind paywalls.)

But really, my comment is centered on "The printing press is often said to have been created by Gutenberg ... this is how the story is rendered in most books".

I, perhaps naively, though that most books mention that printing presses existed before Gutenberg, but Gutenberg greatly transformed it capabilities. Indeed, the author specially says that "The Lost Gutenberg" does not claim that Gutenberg created the printing press and mentions the earlier efforts, albeit in passing.

I really do not like the comment "The fantastical idea that Gutenberg alone invented the printing press ignores an entire continent and several centuries of relevant efforts and makes no effort to understand how or why technology might have spread". It sounds like a a diffusionist argument to say there must be a connection when we know many examples of multiple independent inventions - as I recall from a history podcast, Needham started his studies when he learned that grafting plants in China was done differently than he learned it in England.

Oh, and "the scholar Tsien Tsuen-Hsien wrote in Science and Civilization in China in 1985" is the author of the book from the Needham series I linked to.

eesmith··on So, Gutenberg Didn't Invent Printing as We Know It
"Rather, key innovations in what would become revolutionary printing technology began in east Asia ... The printing press is often said to have been created by Gutenberg in Mainz, Germany, around 1440 AD ... At least, this is how the story is rendered in most books ..."

I didn't realize that most books still render it this way.

https://en.wikipedia.org/wiki/Movable_type , for example, has "The world's first movable type printing technology for paper books was made of porcelain materials and was invented around 1040 AD in China during the Northern Song dynasty by the inventor Bi Sheng"

As I understand it, Joseph Needham did a lot of work to make Europeans aware of the long history of Chinese science and technology, predating European use.

Ahh, volume 5, part 1 ("Paper and Printing") of his magnum opus "Science and Civilisation in China", 1985 - https://archive.org/details/sciencecivilisat0005need_pt01/pa... .

eesmith··on U.S. Strategic Petroleum Reserve Falls to Lowest Level Since 1982
The other 30,000 square miles -- 3/4th of it -- is still available for farming. And it isn't like solar panels can only be placed on existing farmland. I've seen a lot of rooftop and backyard solar installed around where I live.

If there is a global supply chain collapse, then the price of fossil fuels will likely go through the roof, placing a greater demand for substitutes like ethanol, which will raise the price of food and feed crops as farmers switch to produce the more profitable fuel crops. Or if the government orders the farmers to only produce corn for livestock and people, then there's no effective fuel substitute.

What keeps the land fertile is not the corn monoculture of places like Iowa, but rather a massive amount of fertilizer. As we know from the US war with Iran, fertilizer availability is subject to a global supply chain collapse because the current production methods require a lot of fossil fuel for power.

If you want to reduce your dependency on the global fertilizer supply chain, you'll need a lot of cheap local power to make things like anhydrous ammonia locally.

The experience with agrivoltaics shows that solar power and agriculture can coexist profitably on the same land. At the very least it's not simply a one-or-the-other option, or as you characterized it, "is gone".

If you really want to keeps millions of acres land fertile to handle a possible future economic crisis, you should want severe limits on building new urban and low-density residential development on farmland. If you turn farmland into a suburb, that farmland is far more "gone", for agricultural purposes, than setting up solar panels.

The paper at https://farmlandinfo.org/wp-content/uploads/sites/2/2022/06/... estimates well over 10 million acres of agricultural land lost that way by 2040, which at 15,000+ square miles is far more than the quoted 10,000 square miles needed to get rid of most oil use.

So it seems to me that for your goal of making the US less affected by a global supply chain collapse, you should want to have a lot more PV farms.

eesmith··on U.S. Strategic Petroleum Reserve Falls to Lowest Level Since 1982
It's only about 1/6th the area of US lawns.

More directly, the US uses over 30 million acres to grow corn for biofuels. That's over 40,000 square miles, if I did my math right.

As https://en.wikipedia.org/wiki/Corn_ethanol points out, "Growing corn to fuel internal combustion vehicles is a highly inefficient use of land. A solar farm generating electricity to power an electric vehicle would power around 85 times as much distance as corn ethanol grown on the same area."

eesmith··on A searchable library of forgotten public-domain film clips from 1915 onward
SF in 1906, "Trip Down Market Street Before the Fire", at https://archive.org/details/TripDown1905 and better copy at http://www.archive.org/details/TripDownMarketStreetrBeforeTh... .
eesmith··on In Sweden, Organized Election Fraud, "Clan Voting"
Your [1], [2], and [3] are all the same story, by the same authors, concerning a TikTok video. Repeating a rumor does not make it true. Your [3] even notes "The California Post was unable to independently verify the claims made in the videos."

You can see the authors are trying to create a boogieman by scaremongering how "thousands of homeless voters were registered to shelters where they didn’t live", without pointing out that many states, including California, let homeless people register a shelter as their mailing address.

I see no reason to not assume that your comments of "now daily reports of new voting fraud" are as equally pulled out of the mire as your comment about a US election.

The US experience is that for months after an election there will be many, if not daily, reports of new voting fraud, and with an very high certainty these claims end up unfounded.

So, sure, there can be plenty of claims. There's certainly not enough cause to start throwing bigotry grenades like "Mosque voting" - doesn't Sweden has an entire political party based on "Christian voting"?

eesmith··on International observers to investigate Swedish election fraud
In the US there were 185 reported cases of non-citizens voting in Nevada, selected by Department of Homeland Security from a list of nearly 16,000 potential illegal voters.

Turns out, every single one of those 185 reported cases concerned US citizens ho voted legally.

Also in the US, anti-Catholic bigotry caused people to distrust all Catholics, due to the potential influence of the Catholic Church, run out of the independent city-state of Vatican City, with the Pope in control over the bishops and priests who can tell their members how to vote.

"Prominent Protestant spokesmen, led by Billy Graham and Norman Vincent Peale, organized Protestant ministers [against the presidential candidate John F. Kennedy] by warning them that the pope would be giving orders to a Kennedy White House." "Catholics mobilized and gave Kennedy from 75 to 80 percent of their votes." - https://en.wikipedia.org/wiki/Anti-Catholicism_in_the_United...

So I think you'll understand why I, coming from a US perspective, can easily interpret the reported facts as arising from xenophobia in Sweden, which I understand is another threat against Swedish democracy.

eesmith··on Don't be the out of touch Kung Fu master
It's the difference between "Paul McCartney is not opposed to food" and "Paul McCartney is opposed to eating meat."

Here's a paragraph from p45 of my paperback edition of "The AI Con" on the Luddites:

"But Luddites were not against technology. Some Luddites, weavers in particular, were into technologies that helped evaluate the quality of their work, for instance, being able to count the number of threads per inch, such that they could fetch a higher prices at the market. Luddites were instead against technologies of control and coercion, and concerned about the loss of jobs, health, and community."

I do not think your assessment of my statement is correct.

eesmith··on Don't be the out of touch Kung Fu master
Quoting the Wikipedia link you gave:

"Luddites were not opposed to the use of machines per se (many were skilled operators in the textile industry); they attacked manufacturers who were trying to circumvent standard labour practices of the time".

How is that meaningfully different than what I wrote?

← PreviousPage 4 of 34Next →