HNHacker News
TopNewBestAskShowJobs

fanf2

44,337 karma · joined August 9, 2010

dot@dotat.at

https://dotat.at (home page)

https://dotat.at/@/ (blog)

https://dotat.at/:/ (links)

erstwhile fanf@isc.org hostmaster@cam.ac.uk postmaster@cam.ac.uk fanf@exim.org fanf@apache.org

submissionscomments
fanf2··on How to slow down a program and why it can be useful
They care about exact slowdown factors, and they don’t like the instructions that use any of the CPU’s execution resources because the program’s real work interferes with the slowdown factor making it harder to control.

The NOPs in effect use up a small fraction of the instruction decode bandwidth, and if they insert enough NOPs they can reduce the number of real instructions that are issued per cycle and slow down the program with a fine degree of precision.

fanf2··on SSL certificate requirements are becoming obnoxious
Apache has had mod_md since 2018 https://httpd.apache.org/docs/2.4/mod/mod_md.html
fanf2··on SSL certificate requirements are becoming obnoxious
Put a reverse proxy in front of it. Write a script. Use RPA for the really obnoxious ones. There are lots of workarounds.
fanf2··on SSL certificate requirements are becoming obnoxious
Use the self-signed cert between the proxy and the problem device; everything else talks to the proxy.
fanf2··on SSL certificate requirements are becoming obnoxious
CRL distribution at web scale is now possible thanks to work by John Schanck at Mozilla https://hacks.mozilla.org/2025/08/crlite-fast-private-and-co...

But CRL sizes are also partly controlled by expiry time, shorter lifetimes produce smaller CRLs.

fanf2··on Study finds gaps in evidence for air-cleaning technologies to prevent infections
That’s a myth https://onlinelibrary.wiley.com/doi/abs/10.1111/j.1540-6237....
fanf2··on Google's Liquid Cooling
15 years ago IBM installed a supercomputer at ETH Zurich that used 60C hot water as its coolant, with a heat exchanger to the building’s hot water system (which is typically somewhat less than 60C) https://en.m.wikipedia.org/wiki/Aquasar
fanf2··on Everything I know about good API design
> It comes from the 1940's originally

Really?! That’s amazingly early. There were barely even subroutine libraries at that time. I’d love to see an example of "Application Programming Interface" from that time.

(I don’t remember seeing the term until Microsoft started using it when talking about Windows in the 1990s; before then it was things like library functions or supervisor calls - but I didn’t have much experience at that point so I was probably missing some of the more collar-and-tie programmer lingo.)

fanf2··on Linear scan register allocation on SSA
Most x86 instructions only support one memory operand so you can’t completely avoid register allocation. It isn’t a full-on hardcore CISC like 68k or VAX.
fanf2··on "Email is Easy" email address quiz
Canonically postmaster is valid without a domain in SMTP. Traditionally mail messages can be composed to local users without writing domains in their addressses, and the message submission service will add domains where necessary.
fanf2··on "Email is Easy" email address quiz
Some notes:

* Single-label domains are problematic in several ways. Traditionally they are used as local abbreviations on the assumption that TLDs can’t be mail domains – tho that’s false, because several ccTLDs have had MX records at one time or another. Still, mail software can vary in whether it might treat single-label domains as abbreviations or TLDs or both. And there’s the historical anomaly that RFC 2821’s syntax disallows single-label domains; this was a drafting mistake not an intentional change.

* Spaces around local parts are valid or not depending on which spec you are following, so question 7 is badly framed. You need to be clear whether you are parsing a mail address as in the SMTP envelope, or an address and display name as in a message header.

* Similarly, comments are not valid in SMTP so the questions about comments are also poorly framed.

* And the syntax of domain literals / address literals is specified by SMTP, so question 16 and 18 are based on not reading enough of the RFCs.

fanf2··on African Union joins calls to end use of Mercator map that shrinks Africa's size
They will have to come up with a standard replacement for Web Mercator and update lots of GIS software to use the new standard, if they want to make a practical dent in how much Mercator is used.
fanf2··on OpenIndiana: Community-Driven Illumos Distribution
Like https://www.usenix.org/conference/usenixsecurity23/presentat... ?
fanf2··on Which colors are primary?
There’s more to colour perception than the cone cells in the retina. There’s also the opponent process in the visual cortex, which is where preschool primary colours come from. https://en.wikipedia.org/wiki/Opponent_process
fanf2··on The /o in Ruby regex stands for "oh the humanity "
This is one of the features that Ruby cribbed directly from Perl. The Ruby documentation seems really bad, in particular “interpolation mode” is grievously misleading.

Perl’s documentation is far more clear about the consequences:

(https://perldoc.perl.org/perlop#Regexp-Quote-Like-Operators)

   o   Compile pattern only once.

  […]

  PATTERN may contain variables, which will be
  interpolated every time the pattern search is
  evaluated, except for when the delimiter is a
  single quote. […] Perl will not recompile the
  pattern unless an interpolated variable that
  it contains changes. You can force Perl to skip
  the test and never recompile by adding a /o
  (which stands for "once") after the trailing
  delimiter. Once upon a time, Perl would recompile
  regular expressions unnecessarily, and this
  modifier was useful to tell it not to do so,
  in the interests of speed. But now, the only
  reasons to use /o are one of:

  [reasons]

  The bottom line is that using /o is almost
  never a good idea.
In the days before Perl automatically memoized the compilation of regexes with interpolation, even back in the 1990s, it said,

  However, mentioning /o constitutes a promise
  that you won't change the variables in the
  pattern. If you change them, Perl won't even
  notice.
Perl 4’s documentation is briefer. It says,

(https://github.com/Perl/perl5/blob/perl-4.0.00/perl.man#L272...)

  PATTERN may contain references to scalar
  variables, which will be interpolated
  (and the pattern recompiled) every time the
  pattern search is evaluated. […] If you want
  such a pattern to be compiled only once, add
  an “o” after the trailing delimiter. This
  avoids expensive run-time recompilations, and
  is useful when the value you are interpolating
  won't change over the life of the script.
fanf2··on QUIC for the kernel
The OSI is not a useful guide to how layering works in the Internet.
fanf2··on Hijacking Trust? Bitvise Under Fire for Controlling Domain of FOSS Project PuTTY
Bitvise are “passing off” which is a tort in English law https://harperjames.co.uk/article/passing-off/
fanf2··on Mira Murati’s AI startup Thinking Machines valued at $12B in early-stage funding
A a supercomputer with 65536 processors and a 16 dimensional hypercube interconnect, in a black monolithic enclosure with red blinkenlights.
fanf2··on C3 solved memory lifetimes with scopes
> What the C3 solution DOES to provide a way to detect at runtime when already freed temporary allocation is used.

I looked at the allocator source code and there’s no use-after-free protection beyond zeroing on free, and that is in no way sufficient. Many UAF security exploits work by using a stale pointer to mutate a new allocation that re-uses memory that has been freed, and zeroing on free does nothing to stop these exploits.

fanf2··on Aeron: Efficient reliable UDP unicast, UDP multicast, and IPC message transport
TCP begs to differ.

https://web.mit.edu/Saltzer/www/publications/endtoend/endtoe...

fanf2··on New Date("wtf") – How well do you know JavaScript's Date class?
JavaScript’s Date class is a fairly straight port from Java, including most of the WAT in this quiz https://docs.oracle.com/en/java/javase/21/docs/api/java.base...
fanf2··on Phrase origin: Why do we "call" functions?
[Wilkes, Wheeler, Gill](https://archive.org/details/programsforelect00wilk) [1951] uses the phrase “call in” to invoke a subroutine.

Page 31 has:

> … if, as a result of some error on the part of the programmer, the order Z F does not get overwritten, the machine will stop at once. This could happen if the subroutine were not called in correctly.

> It will be noted that a closed subroutine can be called in from any part of the program, without restriction. In particular, one subroutine can call in another subroutine.

See also the program on page 33.

The Internet Archive has the 1957 edition of the book, so I wasn’t sure if this wording had changed since the 1951 edition. I couldn’t find a paper about EDSAC from 1950ish that’s easily available to read, but [here’s a presentation with many pictures of artefacts from EDSAC’s early years](https://chiphack.org/talks/edsac-part-2.pdf). It has a couple of pages from the 1950 “report on the preparation of programmes for the EDSAC and the use of the library of subroutines” which shows a subroutine listing with a comment saying “call in auxiliary sub-routine”.

fanf2··on Microsoft Office migration from Source Depot to Git
CVS was called the “concurrent version system” because it did not lock files on checkout. Nor did svn. Perforce does.
fanf2··on Walkers' Sensations Poppadoms vs. HMRC: The Chip of Theseus
There’s a similar thing with chocolate: cooking chocolate is zero-rated, but VAT is due on eating chocolate. They are basically the same products: the main differences are the packaging (presence or absence of cooking instructions) and where they are shelved (with the cake ingredients or with the sweets).
fanf2··on Why I no longer have an old-school cert on my HTTPS site
Tedious and pedantic note:

You can’t mindlessly compare the bytes of the host name: you have to know that it’s the presentation format of the name, not the DNS wire format; you have to deal with ASCII case insensitivity; you have to guess what to do about trailing dots (because that isn’t specified); you have to deal with wildcards (being careful to note that PKIX wildcard matching is different from DNS wildcard matching).

It’s not as easy as it should be!

fanf2··on Finland announces migration of its rail network to international gauge
Third rail lines south of London often run at 90mph and up to 100mph in places. BART’s top speed is 80mph.
fanf2··on Don't Use ISO/IEC 14977:1996 Extended Backus-Naur Form (EBNF) (2023)
Yeah

For the horrible tedious details, see the “Policy for the distribution of ISO publications and the protection of ISO’s copyright” aka ISO POCOSA 2012.

https://archive.org/details/iso-pocosa

fanf2··on Teal – A statically-typed dialect of Lua
Strings are indexed from 1 as well, which can be pretty annoying. When I was splitting strings into even-sized pieces it was annoying that I kept having to work with odd numbers.
fanf2··on Why not object capability languages?
CHERI
fanf2··on Reservoir Sampling
That paper says “Algorithm R (which is a reservoir algorithm due to Alan Waterman)” but it doesn’t have a citation. Vitter’s previous paper https://dl.acm.org/doi/10.1145/358105.893 cites Knuth TAOCP vol 2. Knuth doesn’t have a citation.
← PreviousPage 3 of 34Next →