How does one prove that there are more real numbers than integers? There are an infinite number of each, but the infinity of the real numbers is, in a strict sense, larger than the infinity of the integers. In math terminology, the set of reals has a larger cardinality. Roughly speaking, it's equivalent to saying … Continue reading Alternative to Cantor’s diagonalization argument
Thoughts on timestamps of computer files
Computer files can have a number of different kinds of timestamps. Some of them are stored in the file's external metadata, alongside the file's name -- I'll call these external timestamps. Others are stored inside the file itself -- I'll call these internal timestamps. I use the term "timestamp" loosely. When something called a "timestamp" … Continue reading Thoughts on timestamps of computer files
Win32 I/O character encoding supplement 1 – A Cygwin issue
A while back, I wrote a series of posts about using Unicode in Windows console mode programs: Part 1Part 2Part 3 In Part 2, I said that programmers should probably not be changing the console code page to UTF-8 (65001). And that if they must, they should change it back when they're done. But now … Continue reading Win32 I/O character encoding supplement 1 – A Cygwin issue
The recent discovery of an ancient bilaterian fossil
In March 2020, researchers in Australia announced the discovery of a 555 million-year-old fossil of a bilaterian animal, which they named Ikaria wariootia. The way that journalists presented this discovery made it clear that it is significant for… something. But it seemed to be difficult for them to pin down precisely what is significant about … Continue reading The recent discovery of an ancient bilaterian fossil
The World Chess Championship is kinda not so great
As I write this, the chess Candidates Tournament is still expected to be held as scheduled, starting March 17, 2020, in Yekaterinburg, Russia. The tournament is between eight of the top chess players who aren't currently the World Champion. The winner of the tournament will earn the right to play a match against the current … Continue reading The World Chess Championship is kinda not so great
PKZIP Implode bug #3
I've already written about two PKZIP bugs related to the "Implode" compression method. Now I've come across another one, so I guess I'll investigate it as well. Here are the first two: Bug #1 (MML)Bug #2 (v1.01 literal tree issue) There's an old collection of files called the Pier 1 Shareware CDROM (#1). On it … Continue reading PKZIP Implode bug #3
Notes on WinHelp format, part 3
This post is part of a series about WinHelp file format. Please read the other parts first: Part 1Part 2 With what we learned previously, we can decompress the TOPIC blocks, locate the TOPICLINKs, and stitch each TOPICLINK's fragments together to make each TOPICLINK a contiguous blob of bytes: A defragmented TOPICLINK is composed of … Continue reading Notes on WinHelp format, part 3
Notes on WinHelp format, part 2
This post is part of a series about WinHelp file format. Part 1 - Read this first.Part 3 The internal TOPIC file (named "|TOPIC") is the business part of the HLP file. It contains the text, and other information. To read the TOPIC file, you need to know the TOPIC "block size", which will be … Continue reading Notes on WinHelp format, part 2
Another Implode bug in old PKZIP software
In a previous post, I discussed an old PKZIP bug related to the compression method named "Implode". I'll call that bug the "MML bug", for "Minimum Match Length". [See also a later post: Bug #3.] In this post, I'll discuss another old PKZIP bug related to Implode compression, mainly just to distinguish it from that … Continue reading Another Implode bug in old PKZIP software
Notes on WinHelp format, part 1
I wanted to write a program to extract the text from WinHelp .HLP files. HLP format was the standard Microsoft Windows help/documentation file format from around 1990 (the start of the Windows 3.x era), through the early 2000s. There are countless old Windows applications that come with an HLP file, but starting with Vista, Windows … Continue reading Notes on WinHelp format, part 1