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
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
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?
I wanted to know exactly what versions of the old PKZIP compression software were publicly released for MS-DOS, and some basic characteristics about them, particularly what compression methods they used when compressing files. Sure, Wikipedia has a list, but it wasn't quite what I wanted, and it omitted at least one version I was pretty … Continue reading Survey of PKZIP versions for MS-DOS
I've been researching the version history of PKZIP, the once-popular compression software that gave us the still-popular ZIP file format. There are two important MS-DOS versions of it: v1.10, released in March 1990, which was the latest official version for more than 2.5 years, until v2.04c(?) was released in December 1992.v2.04g, released February 1993, which … Continue reading Will the real PKZ110.EXE please stand up?
Remember the Great TLS Certificate Serial Number Brouhaha of March, 2019? Millions of website certificates have been mis-issued! Everything is insecure! The sky is falling! Revoke and replace, ASAP! I barely do, but I remember thinking it was a really stupid overreaction. Now I've gone back and reviewed what happened, and I'll try to explain … Continue reading The 2019 TLS certificate serial number mess
In a previous post, I summarized the character encodings used by Windows console mode programs. This is a short post about a not-very-good mitigation technique for some of the resulting problems. In a future post, I'll go over some better solutions. [Edit 2020-05: Unfortunately, I've had to walk back the advice in this post a … Continue reading Win32 I/O character encoding part 2: chcp 65001
SHA-1 is a cryptographic hash function. You give it a computer file, and it produces a 160-bit hash that is completely determined by the input file, but not in any obvious way. In early 2017, a group of researchers, using advanced mathematics and 6500 CPU-years of computer searching, found the first ever SHA-1 collision: two … Continue reading Examining the SHA-1 collision files
This post is about programming a Windows Win32 application, mainly one that uses the console (command line). It summarizes the results of some tests I performed. Maybe you ported a Unix utility to Windows, but you find that it doesn't work with filenames that contain Japanese characters. This information may help, though specific recommendations will … Continue reading Summary of some Win32 I/O character encoding behavior
Or: Why IPv6 failed (This post is about Internet Protocol, the communications protocol that the Internet runs on.) (Rant alert! I'm trying to be nice on this blog, but I can't seem to make this post much less mean than it is.) The successor to IPv4 is not IPv6. It might be IPv7, or it … Continue reading IPv6.001