Blog Index - Blog archive

Sam Trenholme’s blog

Grab bag

July 19, 2026

Some quick thoughts.

Writing code in 2026

A blog titled Why write code in 2026 has come out. I am glad I retired from writing code just before human programmers were replaced with AIs; I get to concentrate on interacting with people instead of machines today and have a lot more deep meaningful friendships than I had when I was making a lot of money writing code for countless companies, most of whom are failed and forgotten today.

I still write code the old-fashioned way, by hand, here in 2026, but, I do use AI to answer programming questions which I used to have to dig through Stack Overflow arguments to find the answer to.

Daylight savings time

There is a bill running through congress right now to make daylight savings time be year-round; people in the US would no longer have the annoyance of “spring forward” and “fall back”.

Mexico used to follow daylight savings time, having their clocks change time when they did in the United States, but stopped observing DST in 2022. So now central Mexico is, depending on the time of year, in Mountain Daylight Time (during the summer) or Central Standard Time (during the winter); should this bill pass the senate, then central Mexico will always be in Mountain Daylight Time, which means its hour will not shift relative to the US depending on the time of year.

People’s economic future

Well over one generation ago, I worked at a gas station (today’s blog picture is a picture of me from this era). It was a lot of work, and I had to work graveyard two nights a week (making doing anything during the day, such as going to college, impossible), but I kept doing it because I knew once I saved up enough for a car, I would be able to get out of the trap and start a career path. And, indeed, that is exactly what happened.

In today’s generation, that does not appear to be viable anymore. Back when I was working at the gas station, the exit path was clear: Since I was very talented with computers and the then emerging Internet, I just needed to start working in Silicon Valley. And that’s exactly what I did.

AI has greatly reduced the number of jobs in tech, so the exit path I had so many years ago is no longer viable. Indeed, I know people under crippling student loan debt who just cannot make enough money to chip away at their debt or even own a car, much less start a family.

Go to: Top - Index

Re-watching Terminator 2

July 11, 2026

I re-watched Terminator 2 today.

Rewatching Terminator 2

I saw “Terminator 2” when it first came out, and just re-watched it in light of the fact that AI is now real. In the movie, they were about 25 years more optimistic about AI becoming real than what happened in the real world; AI was viable in 1997 in the movie, but in real life it didn’t become viable until 2023 or 2024, when people starting using ChatGPT as a free therapist.

Also, AI was developed by the military in the movie,1 but while the military has helped fund AI development, it has been created by and funded in the private sector.

Yes, this movie describes one risk of AI: It may decide to kill us. Whether or not that is a real risk is still up in the air, but what has happened is that AI is causing massive economic damage, completely destroying the tech industry and highly paid computer programmers.

I remember being a kid working at a gas station, slowly saving up enough money to buy a car, and being on the internet for hours every night, learning computers and technology to get out of the trap of only being able to work in a gas station. Finally, I saved up enough to buy an old car, had a friend of a friend who worked for a place that was hiring, and got my foot in the door by working as tech support for the then nascent internet industry in Silicon Valley. From there, I slowly became a highly paid software developer.

With AI taking over everything, people these days no longer have that opportunity. AI is eating away at the middle class, and today’s generation of talented artists, musicians, and computer programmers are having their jobs being taken away from them by AI agents, forcing them to stay in low paying service positions.

Picture credits

The picture for this blog is a waxwork of the Terminator at Madame Tussauds, London. The picture was taken by Daniel Jurena from Prague, Czech Republic. The picture has been altered (resized and cropped), and is CC-BY-SA 2.0 licensed.

Footnote

1: The details are more complicated, but in the interest in having no spoilers, this is a reasonable description of how Skynet was created.

Go to: Top - Index

Grab bag

July 9, 2026

Some thoughts I have had these last few days.

The Motte

I have decided to no longer contribute to The Motte. Like DailyKos and a lot of other online spaces, it has become a place where people think it’s OK to be rude to other people and not have basic respect and dignity.

Its problem is this: The Motte suffers from the “Nazi Bar” problem that Twitter (X) also suffers from. Since The Motte is an online space that allows racists and other bigots to post “reasonable” arguments, the place has become dominated by right wing shills.

People not having basic kindness and decency in anonymous forums has been a long standing issue in the technical community; Slashdot, while not being racist, had had issues with kindness two decades ago and they are prevalent to this day.

Fortunately, I have a network of friends who do have kindness, love, and decency.

The Motte’s server code

While The Motte doesn’t link to this anywhere on their website, The Motte’s server code is available online as open source software. The code is, as is typical for 2026, a lot of AI-generated slop, but the code is out there and other people are free to make their own version of “The Motte” for Reddit-style discussions.

GitHub is having issues deploying pages

It’s well known in the hacker community that GitHub has reliability issues. The issue I am dealing with is this: GitHub pages. While the servers that serve the static pages are rock solid reliable, the GitHub actions which convert Git code in to a static web page is very unreliable.

GitHub pages are OK for pages which aren’t updated very frequently, such as the MaraDNS home page or my blog archive, but they are not OK for pages which update frequently, such as my current blog.

That in mind, I will self-host my current blog, and use GitHub for the archive.

djbdns no longer compiles

With the post-C23 changes to the C specification, djbdns 1.05 (its final release) no longer even compiles. Considering that, two decades ago, djbdns advocates were well known online for being obnoxious loud mouthed people, it’s telling that not one of them is actively maintaining djbdns here in the 2020s.

I, on the other hand, am actively maintaining djbdns. My own fork of a fork of djbdns, ndjbdns, does compile, but one needs to type in this incantation to compile it:

export CC="c99 -D_DEFAULT_SOURCE"
./configure
make

The cc command these days, by default, tries to compile C23, which is a distinctly different language than the C which djbdns (and, yes, my own MaraDNS when I was starting it) was written in. The above command, for now, instructs GCC/LLVM to compile the program as if it’s using the current-for-2001 (i.e. the year the final version of djbdns came out, as well as the initial version of MaraDNS) revision of the C specification.

MaraDNS: Compiles as C23 code

I have updated MaraDNS to be C23 compatible code so it will still be able to compile should C compilers ever stop supporting the C99 specification, even though I don’t think losing C99 will be an issue: As I type this, not only do both gcc and clang support the C99 specification, they also support the C90 spec that is now some 36 years old.

The MaraDNS authoritative server, the Deadwood recursive server, as well as the Lua/Lunacy-scripted coLunacyDNS servers all compile without warning using a C23 compiler.

Lunacy standalone still emits warnings (but does compile) when compiled as a C23 program, so my next project is to have Lunacy compile without warning in a modern C23 compiler.

Go to: Top - Index

Lunacy 2026-07-05 released

July 5, 2026

I have released Lunacy 2026-07-05 today, and have done some updates to MaraDNS.

Lunacy 2026-07-05

Lunacy is a scripting language I use in MaraDNS (both to process DNS queries with the coLunacyDNS server and to generate the documents); it is a security hardened fork of Lua 5.1.

The last time I bumped the version number was in late 2022 with the 2022-12-06 release of Lunacy. The 2026-07-05 release is by and large unchanged; the only changes are:

The code is available on the Lunacy webpage.

Post 3.5.0038 MaraDNS updates

I have also updated MaraDNS so she generates no warnings when compiled with:

Since MaraDNS here in 2026 compiles with no warnings, even when -Wall is set, and since MarsDNS uses the -std=c99 flag when compiling programs, should MaraDNS not compile in the future, it is almost certainly a bug in the compiler toolchain and not a bug in MaraDNS.

The code is available on GitHub as well as other repos.

Go to: Top - Index

MaraDNS 3.5.0038 released

July 4, 2026

In celebration of the 250th anniversary of the United States being created, I have released MaraDNS 3.5.0038. The main changes, compared to MaraDNS 3.5.0037, is that MaraDNS now cleanly compiles.

Cleanly compiles

As I talked about extensively yesterday, MaraDNS now cleanly compiles, and its build process has been altered to ensure that MaraDNS will continue to compile for the foreseeable future.

Tests updated

Since compilers have gotten more picky since I last ran the test suite with MaraDNS, I have updated the test suite to run again. The OS I currently use to run the test suite is a Docker container with Alpine 3.24; all tests pass in that environment.

MaraDNS’s future

MaraDNS is in deep freeze: The only changes I make at this point are credible security updates (with the deluge of AI-assisted security “reports” these days, I’m very picky about what makes a real security issue) and updates to make sure MaraDNS continues to compile and run.

The 3.5.0037 release fixed a minor security issue; MaraDNS 3.5.0038 cleans things up and fixes issues found by newer and more picky compilers.

As I get older—keep in mind MaraDNS has now existed for over 25 years—I change my outlook on life. Seeing my first wife and both my parents die has made me think about my own mortality. While I hope to live for many many more years, I am now thinking about what legacy I will leave after I die. Yes, I do have a child, and yes I have a legacy there, but I also want to have MaraDNS be something which outlives me.

This is why I have, by and large, moved MaraDNS from my personal domain over to GitHub—my personal domains will go down when I’m no longer in this world and no longer babysit my servers and domain registrations, but GitHub should outlive me, hopefully for a very long time. This is why MaraDNS is on multiple public Git repos, so MaraDNS should still be online if some Git repos go offline.

MaraDNS has been a lot of work, and it’s unfortunate I was never able to effectively monetize MaraDNS to make a living from this program, but it’s work which I believe will have an enduring and lasting legacy.

Go to: Top - Index

MaraDNS and POSIX

July 3, 2026

I made a 2026-07-03 tag for MaraDNS today. I will go over the changes since yesterday. MaraDNS can now be compiled on a C99 and POSIX 2008 compatible system.

MaraDNS and POSIX

Since there have been issues where code which compiled without warning when -Wall is set no longer compiling with newer versions of the same compilers, I have finally made MaraDNS have the option to be compiled using fully standards compliant code:

To compile MaraDNS in strict conformance with C99 and POSIX 2008:

./configure --strict-posix
CC=cc
export CC
make
cd coLunacyDNS
make clean
make -f Makefile.strict

However, in the interests of security, MaraDNS by default uses two functions which are not part of the POSIX 2008 standard. Most of the time, this is the correct way to compile MaraDNS:

./configure --strict-posix
CC=cc
export CC
make
cd coLunacyDNS
make -f Makefile.default

chroot

MaraDNS uses the chroot system call to, in case of a security issue which allows MaraDNS to give an attacker a remote shell, restrict that shell’s access to the underlying filesystem. While there has, as of 2026, never been a remote shell exploit found in MaraDNS—even though MaraDNS has been around for over 25 years— chroot minimizes the impact should such a bug be found in the future.

MaraDNS will run without chroot, but the security implications would be more significant should someone ever be able to get a remote shell with MaraDNS.

chroot is not defined in POSIX because “it was not useful to portable applications” (page 258) since there isn’t a way to make a usable chroot environment in the POSIX spec.

The POSIX developers failed to consider the case of using chroot as a portable and widely implemented way of putting an application in a sandbox—there is no need to have an “environment in which an application could run” in said sandbox, since MaraDNS is started and loads configuration files before entering the chroot jail.

setgroups

The setgroups call is also used to sandbox MaraDNS. Like chroot, this minimizes the impact should one be able to get a remote root shell via a security hole in MaraDNS (again, as of 2026, no security hole with remote shell access has ever been found in MaraDNS, and it has been over 25 years).

setgroups is not defined in POSIX because it requires elevated privileges to run.

Both of these calls are standard UNIX calls

Both chroot and setgroups, while not formally part of the POSIX standard, have been used by MaraDNS for decades. chroot and setgroups have been used, with their API unchanged, by MaraDNS without issue since 2001—some 25 years ago. Considering these two function calls haven’t changed in 25 years, it is highly doubtful they will change in the future.

The chroot call used to be part of the POSIX standard back when it was called the “single UNIX specification”, and setgroups conforms to SVr4 and 4.3BSD. These calls are included with Linux, BSD, and pretty much any UNIX that exists (with rare exceptions; there was a time when QNX didn’t support chroot, although it does now, and the Win32 API doesn’t have chroot either).

That in mind, MaraDNS will continue to support chroot and setgroups unless one asks MaraDNS to compile in strict conformance with POSIX 2008.

Looking forward

MaraDNS is now using the C99 standard to compile all programs, and POSIX 2008 for all system calls, except for chroot and setgroups (the Win32 port of MaraDNS uses Windows specific calls, but Windows—despite its imperfections—has a rock solid unchanging API).

That in mind, if MaraDNS doesn’t compile in the future, it is most likely a bug with the compiler and/or libc library, and probably not a bug with MaraDNS.

MaraDNS is now more future proof—it is now very unlikely a future compiler change will stop MaraDNS from compiling, especially since MaraDNS sets the flag (-std=c99) to compile the code using the C99 standard.

Go to: Top - Index

MaraDNS snapshot

July 2, 2026

I have made a 2026-07-02 tag of MaraDNS today. I will go over the post 3.5.0037 changes.

MaraDNS 3.5.0037

MaraDNS 3.5.0037 was a security only update; it fixed an issue with DNS-over-TCP in Deadwood, where a trusted client authorized to perform TCP DNS queries could disable DNS-over-TCP with a denial of service attack. Note that DNS-over-TCP enabled is a configuration Deadwood does not enable by default, and no example dwood3rc files supplied with MaraDNS have DNS-over-TCP enabled.

This was the first update since MaraDNS 3.5.0036, a 2023 security bugfix, where a remote “packet of death” could disable the MaraDNS authoritative server.

Post 3.5.0037

The changes I have made post 3.5.0037 are changes I am making, not because MaraDNS’s code was broken, but because GCC (and to a lesser extent, LLVM) decided to “update” their compilers to throw errors with C code which could previously compile.

Most of the fixes are minor fixes, such as some minor changes to how signal handlers are written. Yes, it only took me an afternoon to update the code, but these are updates I would not have had to make if GCC no longer updated their code. A C compiler should not be a moving target.

Indeed, Joerg Schilling who is no longer with us made a lot of updates to the code which generates ISO images to burn in CD players. I maintain a fork of that code which mainly fixes gross bugs; and I had to do a whole bunch of hacking to get the code to compile again in 2026, again because of GCC’s changes to the compiler.

What I have done is comb through the code and removed all warnings in clang 20 and clang 21, and made sure all of the code can compile in GCC 15 and GCC 16—and without warnings in GCC 16 (at least in Cygwin) to boot. So, right now in 2026, MaraDNS compiles just fine in GCC, and compiles with no warnings, even when -Wall is set, in clang 20.

Compiling to the C99 standard

In addition, to minimize changes to compilers breaking code which compiles without warning here in 2026, I have gone to the effort to compile all of the code with -std=c99 to make sure the compiler conforms to the 1999 C standard (i.e. the version of C which existed when I started writing MaraDNS back in 2001).

Since some files use system calls which are not part of the C99 standard, the current workaround is to, for those files, compile it with the incantation -std=c99 -D_POSIX_C_SOURCE -D_DEFAULT_SOURCE . Today, I have gone through the MaraDNS and Deadwood code, and made sure that the only programs which get the -D_POSIX_C_SOURCE -D_DEFAULT_SOURCE incantation are programs which otherwise do not compile if -std=c99 is set.

Everything now compiles, in Cygwin, in Ubuntu 26.04, and in a recent release of Alpine Linux (I use Alpine because it uses a very different userspace than Ubuntu).

Looking ahead

The next project is to minimize the number of files in the coLunacyDNS sub-tree which are compiled with the -D_POSIX_C_SOURCE -D_DEFAULT_SOURCE incantation.

But that’s for another day.

Go to: Top - Index

Blog index

Grab bag (2026-07-19)
Re-watching Terminator 2 (2026-07-11)
Grab bag (2026-07-09)
Lunacy 2026-07-05 released (2026-07-05)
MaraDNS 3.5.0038 released (2026-07-04)
MaraDNS and POSIX (2026-07-03)
MaraDNS snapshot (2026-07-02)
Round up (2026-07-01)
MaraDNS in the age of AI (2026-06-12)
A new chess variant; etc. (2026-05-03)
Chess writings (2026-04-10)
Sam’s Micro Repertoire (2026-03-31)
The Grand Prix Attack (2026-03-30)
Kasparov vs. Topalov (2026-03-21)
Sam T. vs. NN (2026-03-06)
Chess Cancun: A public domain font (2026-02-11)
Capa720: A Chess Variant proposal (2026-02-07)
The liberation of Venezuela (2026-01-04)
New Capablanca Setup (2025-12-31)
2025 in summary (2025-12-28)
New album released (2025-12-18)
Last night’s special election (2025-12-03)
Happy birthday, Marina (2025-11-30)
The 80/20 sex partner myth (2025-11-29)
Facebook is changing for the worse (2025-11-22)
Life in México (2025-11-19)
Lack of empathy for men (2025-11-17)
Lies about Orwell (2025-11-13)
1984: Great fiction (2025-11-10)
The Tea app: R.I.P. (2025-10-24)
The marital obligation to have sex (2025-10-23)
Escaping the Twitter sinkhole (2025-10-21)
Feminization is not bad (2025-10-18)
Waffles! (2025-10-11)
Some Lua stuff (2025-10-09)
Diane Goodstein (2025-10-06)
Font stacks: No more (2025-10-03)
Left wing bullying (2025-10-01)
Reddit lies (2025-09-22)
Are H1B Visas no more? (2025-09-20)
HTMLDOC and Unicode (2025-09-19)
Factoring Jimmy Kimmel (2025-09-18)
Lua primes; etc. (2025-09-17)
2020’s Cancel culture (2025-09-16)
Lua sorting again (2025-09-14)
Lua Table sorter, etc. (2025-09-13)
Lack of empathy (2025-09-11)
Left-wing lies (2025-09-10)
Thoughts (2025-09-08)
Incel myths (2025-09-06)
Remembering Marshall (2025-08-25)
Moving to México (2025-07-31)
Lua table iterator (2025-03-09)
Free ebook (2024-05-15)
February 2023 (2023-02-28)
New music released (2023-01-28)
MaraDNS 3.5.0035 (2022-12-28)
MaraDNS updates (2022-11-29)
The midterms (2022-11-18)
MaraDNS 3.5.0025 (2022-11-02)
Angela Lansbury (2022-10-11)
MaraDNS work (2022-10-09)
A eulogy for djbdns (2022-09-25)
Chess on 9/11 (2022-09-11)
Baseless accusations (2022-09-06)
Democracy (2022-09-02)
Round-up (2022-08-11)
MaraDNS security update (2022-08-01)
J. Polgar v. Carlsen 2022 (2022-07-15)
Why I’m pro-choice (2022-06-25)
Republicans are dying (2022-06-24)
Remembering Vangelis (2022-05-19)
Star Wars (2022-05-04)
Happy Easter! (2022-04-17)
MaraDNS updates & more (2022-03-29)
Slackware 15 (2022-02-05)
Nexuiz: Beer and pretzels (2022-01-29)
Variable optical size (2022-01-09)
MaraDNS support update (2021-12-19)
1980s songs: Part two (2021-11-07)
1980s songs: Part one (2021-10-21)
AIDS and COVID-19 (2021-09-26)
Jerry Pournelle (2021-09-14)
9/11 20 years later (2021-09-11)
Afghanistan (2021-08-17)
Delta surge (2021-07-31)
MaraDNS and DKIM (2021-07-16)
My Karen Story (2021-06-06)
Pride Month (2021-06-02)
The Drumhead (2021-06-01)
Dan Kaminsky (2021-05-02)
The one true language (2021-04-01)
Remembering Fry’s (2021-03-08)
Online Chess (2021-02-23)
Insurrection (2021-01-16)
Moving to Ubuntu (2020-12-12)
November round-up (2020-11-28)
More predictions (2020-11-02)
2020 election prediction #5 (2020-11-01)
Grab bag: October 2020 (2020-10-25)
Election prediction #3 (2020-10-04)
Ginsburg’s passing (2020-09-18)
Election prediction #2 (2020-09-02)
MaraDNS 3.5.0015 (2020-08-29)
PNY CS900 review (2020-08-20)
MaraDNS 3.5.0012 (2020-08-12)
MaraDNS; SipHash (2020-08-11)
MaraDNS 3.5.0008 (2020-07-25)
COVID-19 Website (2020-07-14)
Harper’s Letter (2020-07-09)
Crime, Police, and Chicago (2020-07-06)
COVID-19 growth by state (2020-07-03)
Election prediction (2020-07-02)
COVID-19 growth (2020-06-30)
Grab bag (2020-06-23)
Juneteenth (2020-06-19)
Cancel Culture (2020-06-16)
COVID-19 and CHAZ (2020-06-13)
Empathy (2020-06-12)
Let’s keep the Police (2020-06-10)
Monday grab bag (2020-06-08)
Masculinity, etc. (2020-06-06)
June round-up (2020-06-01)
Goodbye, OpenVZ (2020-05-29)
May update (2020-05-11)
MaraDNS updates (2020-04-27)
COVID-19: Update (2020-04-11)
COVID-19: Good news (2020-03-22)
Stay home! (2020-03-16)
Sanders should quit (2020-03-11)
Bernie Bro myths (2020-03-05)
Body for Life (2020-02-01)
MaraDNS 3.5.0001 (2020-01-25)
MaraDNS 3.4.02 released (2020-01-17)
2020s: Looking forward (2020-01-09)
The 2010s: A retrospective (2019-12-12)
Richard Feynman (2019-11-16)
November round up (2019-11-04)
October roundup #2 (2019-10-24)
October round-up (2019-10-05)
September 11 (2019-09-12)
July round-up (2019-07-27)
New album coming out (2019-05-30)
Deadwood 3.3.03 released (2019-04-30)
March 2019 round up (2019-03-23)
Deadwood 3.3.02 (2019-02-23)
MaraDNS update (2019-02-11)
MaraDNS 2.0.17 released (2019-01-20)
Hello 2019! (2019-01-19)
ACA ruled unconstitutional (2018-12-14)
Remembering the first Bush (2018-12-01)
Deadwood 3.2.13 released (2018-11-11)
Healthcare is here to stay (2018-11-07)
The 5 best 1990s songs (2018-10-07)
Landing on the moon (2018-09-22)
MaraDNS 2.0.16 released (2018-08-16)
Password security (2018-08-04)
Mango Naked Juice (2018-07-07)
On Résumés (2018-06-02)
Configuration files (2018-05-05)
My new job (2018-04-10)
Phasing out email (2018-03-10)
Nolan Bushnell; MaraDNS (2018-02-10)
The ThinkPad T480 (2018-01-04)
Font Update (2017-12-01)
November 2017 round up (2017-11-11)
Round up: October 2017 (2017-10-26)
The night I found love (2017-09-12)
August 2017 round-up (2017-08-12)
My job search (2017-07-08)
MaraDNS 2.0.14 release (2017-06-10)
RIP Robert Miles (2017-05-10)
Trumpcare’s defeat (2017-04-03)
Cakewalk Sonar (2017-03-11)
Jobs (2017-02-23)
Pioneer DEH-X1900UB (2017-01-17)
“Ocean Path” album released (2016-12-06)
Why the polls were wrong (2016-11-14)
Trump is toast (2016-10-08)
Album: Almost done (2016-09-19)
Christianity and bigotry (2016-08-26)
New single released (2016-07-21)
The primary is over (2016-06-08)
Making music (2016-05-01)
RIP Prince and George Martin (2016-04-21)
Super Tuesday (2016-03-04)
Bernie Bro award (2016-02-28)
Winter NAMM 2016 (2016-01-29)
Removing MaraDNS’ ads (2015-12-07)
Round up (2015-11-30)
MaraDNS update, making music (2015-10-08)
Welcome to September (2015-09-01)
MaraDNS 2.0.12 (2015-08-19)
God is Not a Bigot (2015-07-24)
MaraDNS 1 plans (2015-06-12)
MaraDNS, GPG, and trust (2015-05-27)
The Roland TB-303 (2015-04-14)
Love live the Netbook (2015-03-22)
More King v. Burwell & Star Trek (2015-03-17)
King v. Burwell; Star Trek (2015-03-06)
King v. Burwell: Vogon Logic (2015-02-28)
Superfish (2015-02-24)
Thinkpad mouse buttons (2015-02-15)
Don’t mix CNAMES (2015-02-11)
Goodbye Radio Shack (2015-02-06)
MaraDNS hotfix (2015-01-29)
MaraDNS security update (2015-01-25)
MaraDNS update (2014-12-14)
The 2014 midterms (2014-11-05)
MaraDNS support update (2014-10-25)
Best 80s Music (2014-09-25)
People like the ACA (2014-08-07)
Women against feminism (2014-07-31)
PT Sans and PT Serif (2014-07-19)
Bitstream Charter and more (2014-07-04)
The best open-source fonts (2014-06-21)
Fonts in 2014 (2014-06-11)
Miguel: In Memorandum (2014-05-24)
MaraDNS Update (2014-04-27)
Alpine in CentOS (2014-04-23)
The “Heartbleed” bug (2014-04-12)
Postfix + Mailman in CentOS 6 (2014-03-23)
Gravity: A review (2014-03-14)
MaraDNS security update (2014-02-12)
MaraDNS on GitHub (2014-02-05)
Returning to Fresno (2014-01-28)
Microblogs January 2014 (2014-01-22)
MaraDNS 2.0.08 (2014-01-14)
Microblogs 2013-2014 (2014-01-08)
2014 goals (2014-01-01)
2013 in review (20131231)
Deadwood 3.2.04 released (20131220)
New Cousine/MSYS font (20131215)
More font updates (20131214)
Better fonts for MSYS (20131213)
MaraDNS Update (20131212)
Using Crissic (20131211)
Interactive Fiction (20131210)
The OnceTV update (20131206)
Deadwood updates (20131203)
MaraDNS security update (20131202)
MaraDNS RPM files (20131127)
Deadwood Update (20131124)
Living in poverty (20131123)
Root server change (20131119)
RadioGatún[64], etc. (20131118)
An ode to Netbooks (20131117)
Deadwood Update (20131113)
TinyVZ update (20131112)
Forum will be down (20131108)
MaraDNS and DOS attacks (20131022)
October MaraDNS Updates (20131020)
More on SipHash (20131012)
My SipHash implementation (20131006)
SipHash (20131004)
MaraDNS 2.0.07c (20130920)
IPv6 update (20130915)
Mailbag (20130912)
Forum spammers (20130904)
MaraDNS support (20130903)
I now have a forum (20130902)
MaraDNS webpage update (20130829)
maradns.samiam.org (20130828)
VirtualBox’s host-only adapter (20130826)
MaraDNS: All looks good (20130820)
Microblogs August 2013 (20130818)
RSS and Zealots (20130731)
Microblogs June-July 2013 (20130728)
La Tempestad: A review (20130721)
MaraDNS testing release (20130720)
UltraDNS vs. Deadwood (20130713)
Deadwood Update (20130706)
MaraDNS Update (20130622)
Deadwood Update (20130621)
Alternate Pitfall maps (20130617)
More on Pitfall’s polynomial (20130616)
Pitfall’s polynomial (20130612)
Pitfall redux (20130608)
A 4096-byte jungle (20130606)
Microblogs May 2013 (20130604)
MaraDNS and Deadwood update (20130523)
Microblogs April-May 2013 (20130505)
MaraDNS and the Wikipedia (20130420)
Microblogs April 2013 week 2 (20130415)
Microblogs April 2013 week 1 (20130407)
March 2013 Microblogs (20130330)
Tweets March 2013 (20130329)
Deadwood update (20130320)
Why I need Masculism (20130316)
Creeper cards (20130307)
Twitter wrap-up (20130301)
Deadwood update (20130222)
Netbooks in 2013 (20130217)
Applebee's and God (20130205)
Web font rendering (20130203)
Thank you, Virginia (20130131)
BuyVM: All is now good (20130124)
A brief look at systemd (20130121)
MaraDNS update (20130120)
samiam.org on IPv6 (20130106)
Minor Civ4 update (20130105)
Finally, I have BuyVM (20130101)
2012 wrap-up (20121231)
MaraDNS 1.3 end-of-life (20121221)
Deadwood 3.2.03 released (20121220)
How many squares? (20121219)
Round-up (20121212)
Blog meta-index (20121201)
Adios, Gopher (20121130)
Deadwood update (20121124)
Let's not secede (20121114)
Obama: Looking forward (20121107)
Post-election thoughts (20121106)
Final election prediction (20121104)
Saturday election prediction (20121103)
Deadwood and SHA-3 (20121102)
Keccak: The best choice (20121101)
Deadwood update (20121028)
Saturday election prediction (20121027)
Friday election prediction (20121026)
Saturday election prediction (20121020)
Thursday election prediction (20121018)
Wednesday election prediction (20121017)
Tonight's election prediction (20121016)
Predicting the election (20121015)
Why use MaraDNS? (20121006)
Why is Git still using SHA-1 (20121004)
Slashdot: A final look (20120929)
MaraDNS update (20120922)
Web typography (20120918)
Remembering September 11 (20120911)
Multi Master fonts (20120908)
Slashdot and more (20120907)
Slashdot (20120903)
No more politics (20120901)
MaraDNS update (20120827)
MaraDNS update (20120823)
The great recession (20120818)
Server Fault Fail (20120815)
Objective truth is going away (20120814)
Adding Facebook comments (20120806)
George Orwell and the truth (20120802)
Oracle Linux: Now free (20120731)
I no longer accept patches (20120723)
Deadwood update (20120721)
Finally, a CVE-2012-1911 patch (20120711)
Deadwood update (20120623)
MaraDNS 1 End-of-life (20120621)
Legends of Ancient Arabia (20120611)
MaraDNS update (20120521)
On Civilization IV (20120510)
Inspiron 14z sound problem (20120508)
EasyDNS and truncation (20120424)
Groundhog Day (20120408)
Getting DNSSEC for MaraDNS (20120403)
Humility (20120402)
MaraDNS now has funding (20120401)
The mythical $15/year VPS (20120327)
MaraDNS: No DNSSEC (20120326)
A thought (20120325)
New MaraDNS CVE: 2012-1570 (20120322)
DNS security comparison (20120321)
Deadwood update (20120320)
MaraDNS 1 update (20120317)
The ghost domain bug (20120314)
MaraDNS 2.0.06 and 1.4.11 (20120311)
On Anne Frank (20120307)
Remembering 1992 (20120306)
Geomyidae is stable (20120305)
On fundamentalist reasoning (20120304)
MaraDNS 1 has limited support (20120303)
MaraDNS donations (20120302)
Deadwood 3.2.02 released (20120229)
Deadwood update (20120228)
Deadwood update; etc. (20120226)
Fundamentalism & Christianity (20120225)
Bulk polyhedral dice (20120218)
Classic X11 fonts for Windows (20120216)
RedHat extended support (20120215)
Happy Valentine's Day (20120214)
On Ghost Domains (20120213)
MaraDNS 2.0.05 released (20120212)
Deadwood update (20120211)
My Gopher server (20120206)
A brief review of my VPS hosts (20120205)
Adios cripperz.sg (20120203)
Having a spiritual experience (20120130)
Deadwood update (20120128)
Deadwood update (20120125)
I oppose SOPA (20120119)
Deadwood update (20120117)
MaraDNS 1 update (20120113)
New Deadwood snapshot (20120106)
Deadwood bug fixed (20120104)
Welcome to 2012 (20120101)
MaraDNS 1 update (20111230)
MaraDNS 1 update (20111229)
2011 Wrap-up (20111224)
Wrapping up the web design (20111223)
I miss killfiles (20111222)
Deadwood 3.1.03 released (20111221)
Looking at Celery (20111220)
Deadwood update (20111218)
Round Up (20111217)
Round-up (20111216)
Dillo CSS hacks (20111213)
Deadwood update (20111211)
ObHack 007.3 (20111210)
Web page design update (20111209)
MaraDNS and Paypal (20111207)
MaraDNS funding ; etc. (20111201)
New Deadwood snapshot (20111130)
Deadwood update (20111129)
MaraDNS can redirect domains (20111128)
Deadwood 3.1.01 released (20111127)
Thanksgiving thoughts (20111123)
New Deadwood snapshot (20111119)
Deadwood snapshot (20111113)
MaraDNS 2.0.04 (20111112)
MaraDNS update (20111111)
Deadwood 3.0.05 released (20111110)
On Flattr (20111109)
Call for donations (20111108)
The Galileo 7 (20111105)
Logic riddles (20111104)
Deadwood 3.0.04 (20111101)
Deadwood hacking (20111027)
RMS on Jobs; Raspberry Pi (20111023)
Dennis Ritchie RIP (20111013)
Web site plans (20111012)
On web site design (20111010)
MaraDNS update (20111009)
MaraDNS update (20111008)
RIP Steve Jobs (20111006)
MaraDNS update (20111005)
Cloak of Darkness (20111002)
Deadwood update (20110912)
Open-source IMAP clients (20110910)
Deadwood update (20110905)
Random map templates (20110901)
Global warming denial (20110827)
On Apple products (20110826)
TinyVZ security update (20110823)
TinyVZ 0.7 released (20110820)
TinyVZ update (20110816)
Tiny OpenVZ template (20110815)
Keeping CentOS secure (20110809)
MaraDNS 2.0.03 released (20110805)
Deadwood 3.0.03 released (20110722)
Web typography (20110719)
Scientific Linux 6 on a S10-3 (20110716)
Deadwood bug (20110714)
GOG HOMM3 Multiplayer (20110710)
MaraDNS update (20110708)
Updating the ads (20110703)
Tuning nginx + php-fastcgi (20110702)
Samiam.org now has ads (20110628)
Deadwood update (20110624)
Linux: Desktop fail (20110623)
Lenovo S-100; Feedback (20110622)
IE8 @font-face bug (20110619)
Dirt cheap Linux hosting (20110614)
MaraDNS update (20110610)
x120e getting replaced? (20110609)
Round-up (20110607)
Webkit @font-face bug (20110606)
Web page touch-up (20110604)
I made LXer (20110603)
Computex 2011 (20110601)
Linux is only for bachelors (20110529)
Embedding web fonts (20110528)
MaraDNS; the PROTECT act (20110527)
Beware: O'Reilly reviews (20110526)
App Inventor (20110525)
T40E: Atom killer (20110523)
The Rapture (20110521)
Atom Supercomputer (20110520)
The Thinkpad X1 (20110519)
Android SDK on a Netbook (20110518)
Web page redesign (20110517)
Low-end Netbooks (20110516)
Facebook viruses (20110515)
Mobile browsers (20110514)
MaraDNS update (20110513)
Internet loudmouths (20110512)
Poor man's Widelux (20110503)
Firefox and Javascript (20110501)
New MaraDNS snapshot (20110429)
E-350 redux (20110426)
New ObHack release (20110425)
On NXDOMAIN (20110423)
The AMD E-350 (20110422)
IE6 end of life (20110417)
MaraDNS & Deadwood update (20110415)
du for Windows (20110410)
On Xonotic (20110409)
Another Deadwood bug (20110325)
MaraDNS updates (20110324)
Bitcoin (20110323)
Scientific Linux (20110319)
New MaraDNS snapshot (20110318)
Prosperity 7 puzzle #17 (20110316)
On nuclear power (20110315)
Prosperity 7 puzzle #16 (20110309)
Automating the blog (20110306)
Prosperity 7 puzzle #15 (20110305)
Deadwood 2.3.07 released (20110304)
Prosperity 7 puzzle #14 (20110228)
Prosperity 7 puzzle #13 (20110227)
New MaraDNS snapshot (20110218)
Deadwood now installs (20110217)
New MaraDNS snapshot (20110215)
Prosperity 7 puzzle #12 (20110213)
New MaraDNS snapshot (20110212)
Prosperity 7 puzzle #11 (20110211)
Public domain Bibles (20110210)
Prosperity 7 puzzle #10 (20110208)
MaraDNS outstanding bugs (20110207)
Prosperity 7 puzzle #9 (20110206)
MaraDNS 2.0.02 released (20110205)
Prosperity 7 puzzle #8 (20110201)
On the US Constitution (20110130)
MaraDNS & Deadwood update (20110129)
Goodbye MySpace (20110126)
Prosperity 7 puzzle #7 (20110124)
Prosperity 7 puzzle #6 (20110123)
Win32 Deadwood build (20110122)
Prosperity 7 puzzle #5 (20110121)
Prosperity 7 puzzle #4 (20110120)
Prosperity 7 puzzle #3 (20110119)
Prosperity 7 puzzle #2 (20110118)
Prosperity 7 puzzle (20110117)
Deadwood snapshot update (20110116)
Deadwood update (20110115)
Usenet (20110111)
Deadwood & ObHack updated (20110109)
ObHack 007.1 released (20110104)
djbdns 1.05: False security (20110103)
Final 2010 post; NIV update (20101225)
Windows on ARM chips (20101224)