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
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
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
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
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
Shortly after the development of the JPEG image format around 1991, an organization named the Independent JPEG Group (IJG) released an open source software package to help people use the format. While the software included a few utilities, such as cjpeg and djpeg, the important part of it was its C library. The library became … Continue reading What is the name of libjpeg?
When was the Earth formed? Modern estimates are that it formed by accretion, 4.54ish billion years ago. But I'm not going to worry about its absolute age; what I'm wondering is where we choose to draw the line between Earth-not-quite-formed and Earth-now-formed. We don't really know how long it took for the Earth to form. … Continue reading When was the Earth formed?
Certain types of people like to ask the question "Why is a progressive tax fair?" The inevitable answer given is "marginal utility!" The theory is that if a rich person and a poor person both have to pay an extra 50 spacebucks (or whatever currency is used in your realm) in taxes, it doesn't reduce … Continue reading Why is a ______ tax fair?
One of the old compression methods for ZIP format is named "Shrink". In the process of writing my own Shrink decompressor, I came across a problem with the Info-ZIP UnZip software. It's triggered by a small percentage of Shrink-compressed files. As an example, I'll use the file that you can download here: BLING.WAV. Now, in … Continue reading Investigating an UnZip decompression bug
Many scientifically-minded people believe in the evolutionary concept of group selection, without knowing that the thing they believe in has a name, or that it is, at best, disputed. Standard disclaimer: Just because I may suggest that something is scientifically true or natural, does not mean that I consider it to be morally good. So, … Continue reading Are you a group selectionist?