logo

ACME Updates

What's new at ACME Laboratories!


15Nov2022 e-1.04 released:
This is a formatting-only release. Back in the Long Long Ago, there was a program called ctags which indexed source code. It was kind of dumb and required function names to be at the beginning of the line. I never once used ctags even back then, and certainly don't [...]
--Read More--

10Sep2022 No Inertia:
I updated ACME's maps to Leaflet version 1.8.0 this morning. I immediately noticed there was a problem with panning inertia. That's the feature where when you move the map, it keeps moving for a little bit. Well, it was moving by a lot. Like, a slight flick of [...]
--Read More--

24Aug2022 e - tiny EMACS-like text editor:
Back in late May, possibly due to pandemic boredom, I started writing an Emacs-like text editor. I chronicled the development process in a Twitter thread. Today, after three months of work, the first release is ready. e - tiny EMACS-like text editor
--Read More--

20Aug2022 .tar.gz issue:
A few people have reported that when they download a .tar.gz file from acme.com, their browser "helpfully" gunzips it but leaves the filename the same. So they have a .tar.gz file that is not gzipped, which is confusing and annoying. My own browser does not do this, [...]
--Read More--

19Aug2022 leakfinder released:
I wrote this simple memory leak detector years ago, dusted it off for a current project, and decided to prettify and package it up for release. So: leakfinder.
--Read More--

09Apr2020 Caption Maker improved:
I added a bunch of improvements to the Caption Maker from a few days ago, including a popup color picker. Which is itself available as a JavaScript widget.
--Read More--

02Apr2020 Caption Maker:
Shelter-in-place boredom prompted me to write a little widget that creates simple text captions, styled as you like, which you can then screencap and use. ACME Caption Maker
--Read More--

13Oct2019 Outgoing Email:
Sonic did some config change a week ago that made my outgoing email stop working. That's ok, I was doing it the wrong way anyway - I was trying to send mail directly, while Sonic wants customers to relay through their server for better spam protection. Fine. But [...]
--Read More--

01Oct2019 Internet Outage:
ACME's Sonic fiber internet was down from 12:15am to 1am. When it came back, we had a new DHCP IP number, so that took a while to propagate through DNS. Traffic got back to normal levels after about half a day.
--Read More--

17Apr2019 GeoRSS Date Picker:
I added a date selection feature to my GeoRSS viewer. One problem with this idea is that standard GeoRSS does not include a date in the items. However, regular old RSS does include a date, and GeoRSS is based on RSS, so I decided it was ok to use RSS's <pubDate> [...]
--Read More--

10mar2019 Unicode in JavaScript:
I was doing some Unicode stuff in JavaScript today. I needed to extract the code points from a string. You might think that the way to get the code point at a given position in a string is: cp = str.codePointAt( i ); Hah hah, no. That only works for points in [...]
--Read More--

26feb2019 ACME Mapper photos bugfix:
Fixed a super annoying bug in Mapper's Flickr photos feature. The first time in each Mapper session that you changed the number of photos, you would lose all your option settings! Now your settings are safe again.
--Read More--

20dec2018 Map Cursor Changes:
I made a minor change in the mouse cursors on all ACME maps. Under Google Maps API, the mouse cursor is an arrow and changes to a hand when dragging. In Leaflet, the cursor is the hand and when dragging changes to a pointing hand. I figured out how to make Leaflet's [...]
--Read More--

11nov2018 Brain Transplant:
Acme's main server froze around 2am, and when I woke up it remained unresponsive. I had a spare motherboard on hand because this model is known to die after a few years of uptime. I swapped in the new one and things seem to be fine now.
--Read More--

26oct2018 New version of mini_httpd:
I stored out version 1.30 of mini_httpd. This includes an important security fix. Prior versions allowed remote users to read arbitrary files in some circumstances. This version plugs the hole. I checked all my other web servers and they do not have the same bug.
--Read More--

26sep2018 Geocoding:
So after converting all my map pages from Google to Leaflet, I was still using Google for geocoding (converting addresses into coordinates). The level of geocoding requests on my big map averaged just a little under Google's new $200/month free allowance, so I [...]
--Read More--

27aug2018 More Map Changes:
Got an email from Mapbox this morning saying "Hi there, It looks like your Mapbox account has used 100% of the free services included with your plan." Ok, not a big deal, I'm probably just barely over for the month. Checking... No, actually I went over the free limit [...]
--Read More--

13aug2018 Converting *Your* Google Maps to Leaflet:
If you have a Google Maps API page that is suddenly costing you real money, and you want to switch to Leaflet like I did, here's how! First, go to the Leaflet.js page and bookmark it. You will be referencing it a lot. The Leaflet page has a section called Tutorials, [...]
--Read More--

09aug2018 ACME Mapper Options Updated:
I have finished updating Mapper's Options popup. Some things to note: The layers control can be set to be always open, instead of opening on hover. Some folks have asked for this, and now they have it. The scale widget can be set to show meters/kilometers, feet/miles, [...]
--Read More--

07aug2018 ACME Mapper Options Changing:
I have been doing some work on the options system. It has mostly been behind the scenes with no user-visible changes so far. However today's change means some of your saved options got reset to the default values. Don't panic, just set them back the way you like [...]
--Read More--

04aug2018 Photo Markers:
A long time ago, ACME Mapper could be used to display Flickr photos taken in the area shown. That capability broke when Google switched their map API from version 2 to version 3, and I never got around to fixing it. Well I just got it working in the new Leaflet version. [...]
--Read More--

03aug2018 New Maps:
I have finished converting all twenty-two ACME maps from Google Maps API to Leaflet.js. Let me know if you run into any problems. To recap: on 15 July, Google raised prices on the Maps API by 14x, and lowered the free allowance by 30x. This means my cost for [...]
--Read More--

18jul2018 Maps:
Google recently made some changes to their Maps API, which ACME uses on many pages. They switched from having a free level of service to charging for everything but giving a $200/month credit. By itself that would be no big deal. However they also raised the effective [...]
--Read More--

29jun2018 FIBER!:
ACME Labs is now on the net via gigabit fiber from Sonic. A thousand times the bandwidth for 1/5th the cost. Woo hoo! The install happened a month earlier than I had scheduled, which is good. It also took 8.5 hours, which is not so good. But it works great now. Lots of [...]
--Read More--

27May2018 handle more HTTP methods:
I have stored out new versions of thttpd, mini_httpd, http_get, and oauth_sign. The change is the same in all of them: handle more HTTP methods besides the usual GET/HEAD/POST. This was necessary because of one new call in the Twitter API that requires HTTP DELETE, for [...]
--Read More--

23apr2018 Flickr and SmugMug:
Flickr was recently bought by SmugMug. Hurrah! Flickr is a photo sharing site that has been around since 2004. I've been using it every day since a month after it launched, and love it dearly. It has gone through a lot of changes, getting bought by Yahoo!, [...]
--Read More--

04feb2018 new versions of thttpd/mini_httpd:
I have released thttpd 2.28 and mini_httpd 1.28. They both include a fix to a buffer overrun bug in htpasswd, reported by Alessio Santoru as CVE-2017-17663. If you are just using htpasswd to set up your own web auth files locally, there is no security implication [...]
--Read More--

12Aug2017 Comments Weblet:
I updated the ACME Comments Weblet to reasonably modern technology - JavaScript, CSS, and a JSON API. The old version, written in 2005, used <iframe>s. Remember <iframe>s? I didn't!
--Read More--

26nov2016 mini_httpd 1.26:
This fixes a long-standing bug on FreeBSD using http but not https. Files were getting truncated at 1MB. This was due to improper usage of sendfile(2), and not testing the http path since I only use mini_httpd for https. Since Linux has a completely different [...]
--Read More--

21Jun2016 Space War:
Back in 2007 I wrote a version of the classic Space War game in JavaScript. It used sprites for graphics, which worked ok but was complicated and inflexible. Since then, web browsers have gotten good support for HTML5 Canvas, a way to draw arbitrary graphics on [...]
--Read More--

11jun2016 Zoom5:
Google's map API folks decided to get rid of the slider-style zoom control. I thought about re-implementing it, and actually made a pretty good prototype, but then I had a different idea. How about in addition to the standard +/- buttons, an extra pair of +5/-5 [...]
--Read More--

10May2016 mini_httpd 1.24 released:
New version of mini_httpd to fix an obvious and serious bug in binary POST request reading.
--Read More--

09Mar2016 DROWN:
Stored out new versions of all my SSL-capable programs - mini_httpd, http_get, http_post, http_ping, xmlrpc - with SSLv2 disabled to prevent the "DROWN" attack. SSLv3 had already been disabled in February 2015 to prevent the "POODLE" attack.
--Read More--

28Dec2015 mini_httpd 1.23 released:
I made a new version of mini_httpd to fix CVE-2015-1548, a buffer overflow via snprintf.
--Read More--

20Oct2015 self-overlapping strcpy():
I recently got a bug report about mini_sendmail involving some string corruption. The reporter had done an excellent job of tracking down the likely cause: using strcpy() on two strings that overlap. Turns out this is undefined. See the C89/ANSI C standard, section [...]
--Read More--

16feb2015 Precedence Day:
Merry Precedence Day!
--Read More--

12feb2015 All The Milters:
I updated all my "milter" mail filtering plugins for ACME's new OS: graymilter blackmilter sfcmilter spfmilter samplemilter The changes include conforming to the current milter API, updating the FreeBSD rc.conf startup scripts to modern standards, and a new data structure [...]
--Read More--

06feb2015 new hardware:
ACME is now running on new hardware, a nifty eight-core Atom C2750 machine that I built myself. There are still some glitches to solve internally but external web and mail service seems to be working just fine. Here's a table showing the evolution of ACME's hardware: [...]
--Read More--

26jan2015 newmail:
While setting up my new server (news on that soon), I noticed that I no longer had source for the "newmail" program. This was a simple mailbox watcher that was included in the "elm" mail client from back in the 1980s. Rather than edit my .login to use a different [...]
--Read More--

16sep2014 Three Foot Passing Law:
Some Q & A about California's new Three Foot Passing Law, CVC 21760, which goes into effect today, September 16th. Q. Where is the three feet measured from? The centerline of the bicycle? A. It's from any part of the bicycle or rider to any part of the motor vehicle. So [...]
--Read More--

14aug2014 More Clangification:
I pushed out new versions of all but one of my C/C++ packages. A few more clang-related fixes and cleanup in every package. The exception was pbmplus, I've still got a few minor fixes to make there.
--Read More--

24jul2014 Fixr:
I've written a Flickr API app that includes a couple different fixes to inadequacies in Flickr. You can pick and choose which ones you want to enable. Current offerings: Geotag Interoperation Standard geotags look like this: geotagged geo:lat=37.88185 geo:lon=-122.29556 [...]
--Read More--

19jul2014 ChuMaker Update:
I took a break from clangification to do a little update to the ACME ChuMaker. Now the images are 60% larger.
--Read More--

16jul2014 Clangification:
After three weeks or so I'm getting down to the short strokes on my clangification project. Out of an initial couple of hundred packages I'm down to five. mini_httpd and thttpd - these are ready, but I still need to install them here and do some testing since [...]
--Read More--

25jun2014 FreeBSD 10.0:
I am finishing off my first FreeBSD 10.0 install, on my new desktop machine. I thought I'd post some notes here. The hardware is an HP Pavilion 23 "all in one". Nice big screen, four core CPU, 500GB disk. $500. The first problem I ran into was that it wouldn't boot [...]
--Read More--

24may2014 countdown:
I added a new little program to the ACME freeware collection. It counts down a specified time interval. I use it mainly as an egg timer. countdown
--Read More--

13may2014 Overheated:
We had a heat wave predicted for today. It didn't actually get that hot - except inside acme.com. I got home at 9pm and a motherboard alert tone was going. Opened up the case and the problem was obvious - a wire had gotten caught in the CPU fan and stopped it. I moved [...]
--Read More--

22nov2013 New Map Versions:
I have installed new versions of all the ACME maps. This was necessary because Google finally retired version 2 of their Maps API, so I had to switch everything to version 3. I resisted switching as long as possible because version 3 seems much slower, but the time has [...]
--Read More--

26jun2012 Denial of Service:
Some of you ACME fans may have noticed poor response times on the web site for a couple weeks. You were not imagining it, and it wasn't just you. Acme.com was undergoing a denial of service attack. It started early in June and lasted two weeks, on and off. The [...]
--Read More--

01apr2012 Ok, ok.:
Hah hah, April Fool. I'll turn the color back on now. Actually I needed to re-make all the photos anyway, because I increased the size of the images from 576 pixels to 640 pixels. So I did it twice instead of once. Took over five hours each time!
--Read More--

01apr2012 New image-processing algorithm:
Flickr deploying the Atkinson Dither today got me interested in the subject of image-processing algorithms. I read about another nifty technique called Floyd-Steinberg Error Diffusion, and immediately applied it to all my photographs. The results are amazing! Check [...]
--Read More--

06feb2012 Welcome Back AdSense:
Last week I blogged about how Google AdSense had cut me off, sending two form letters with no specifics. I appealed, and they denied the appeal. I had no idea what was going on, and AdSense wasn't saying. People had a bunch of theories for why AdSense disabled me. My site [...]
--Read More--

30jan2012 Goodbye AdSense:
I have been using Google's AdSense web advertising system since it opened to the public, eight and a half years ago. Aside from one quickly-resolved incident eight years ago, Google and I have been very happy with each other and have made a lot of money for each [...]
--Read More--

14dec2011 photo calendar:
Each year I make a photo calendar for friends & family. The photo for each month was taken in that month the previous year (well, I cheat on December). I haven't offered the calendar for sale before but it's easy enough to do so let's see what happens. $19.99 + [...]
--Read More--

10oct2011 xml2c:
I wrote a little tool to convert XML files into static C structs. It's called xml2c.
--Read More--

02jul2010 oauth_sign:
Twitter is turning off Basic Authentication soon, and switching to the OAuth three-party authorization protocol. I have a few simple command-line twitter clients that I use when I'm on my antique H19 terminal instead of a pee cee, and those programs would stop working [...]
--Read More--

22jan2010 SecurePage:
SecurePage is a little tool that lets you generate self-decrypting web pages. That is, you give it a regular HTML file and it makes a new HTML file that is encrypted by a passphrase. If you have the passphrase then the file will decrypt itself back to the original [...]
--Read More--

29dec2009 New topo map tiles:
I switched ACME Mapper's topo map mode from using Terraserver to using MyTopo.com. Service should be faster and more reliable now.
--Read More--

30nov2009 Two Maps One Scale:
I made a simple Google Maps app called Two Maps One Scale. It shows two locations at the same zoom level, so you can visually compare sizes. See for example San Francisco and Paris.
--Read More--

25sep2009 Panoramio pix in ACME Mapper:
And now ACME Mapper shows geotagged photos from Panoramio as well as from flickr.
--Read More--

23sep2009 flickr pix in ACME Mapper:
I made a minor update to ACME Mapper, adding an option to show geotagged photos from flickr. To try it, first click Options then click the flickr checkbox.
--Read More--

22apr2009 ChuMaker:
Added a little toy I call the ChuMaker. It creates imitation Frank Chu protest signs.
--Read More--

09apr2009 Discussr:
Ok, here's the app that I needed db for: Discussr. It's an alternate front-end for flickr's group discussions.
--Read More--

14mar2009 db:
I'm working on a web app whose database is a little too big for tab-separated ASCII files but not big enough to merit a full-fleged SQL database. It would be nice if there was a mid-range option, say a command-line interface to the dbopen(3) library routines. So I [...]
--Read More--

17feb2008 ACME Annotator:
Another new AJAXy page: the Annotator. It lets you add notes to any image on the web.
--Read More--

22jan2008 ACME Chartmaker:
The latest product from ACME Labs is a front-end for Google's graphing system which makes it much easier to use. Check it out.
--Read More--

20jan2008 Power Failure:
Unexplained power failure this evening. I don't know when it started, but it ended at 10:05pm, just 15 minutes after my UPS ran down. "Ooo so close."
--Read More--

02jun2007 Power Failure:
Berkeley lost electricity for 2.5 hours due to someone's mylar graduation balloons hitting a power line. ACME stayed up.
--Read More--

14feb2007 googrep:
I wrote a little program that combines Unix grep-style text searching with Google-style pattern syntax. It's called googrep.
--Read More--

12jun2006 Mapper Updates:
I made two small upgrades to ACME Mapper: There's now a NEXRAD map type, showing weather radar. Geocoding is now done using Google's service instead of Yahoo!'s, since Google has much wider coverage.
--Read More--

24may2006 Outage:
We had a 9.5 hour power failure yesterday afternoon/evening. The UPS kept things going for 3 hours, so ACME was down for 6.5 hours.
--Read More--

16may2006 Outage:
ACME's SDSL line was out from 3pm 15may to 11am 16may.
--Read More--

10apr2006 ACME Mapper 2.0:
I have been working on a new version of my map page. The old one was an improved front-end for TerraServer. The new version is based on the Google Maps API, so it has a much nicer user interface. Check it out: Mapper 2.0.
--Read More--

15feb2006 Hearts:
As usual, Valentine's Day was busy for acme.com because of the Heartmaker - 1.2 million hits. In fact the only busier day I've had was last June when my mail filtering tutorial got slashdotted for 1.6 million hits. Here's a graph of this week's traffic:
--Read More--

12dec2005 micro_httpd:
I stored out a new version of my tiny web server, micro_httpd. It has a better directory lister, and it now handles filenames with spaces in them. This puts it over 200 lines of code, but that's still pretty small.
--Read More--

18nov2005 Golden Gate Sunsets map:
For my first map based on the ACME GeoRSS Map Viewer, I plotted out all the spots from which you can see the sun setting right in the middle of the Golden Gate.
--Read More--

12nov2005 ACME GeoRSS Map Viewer:
I made a page that displays GeoRSS map files as a Google map. This lets people make nice pretty maps very easily.
--Read More--

12oct2005 Hot Springs:
Yet another Google Maps app: USA Hot Springs. This one is a good example of how to present thousands of data points, way more than the Google Maps API can normally support.
--Read More--

18sep2005 Planimeter:
I remembered the name of the doohickey used to measure areas on a map, so I changed the name of the Areometer to the Planimeter. Links using the old name will continue to work.
--Read More--

14sep2005 Areometer:
Inspired by the Gmaps Pedometer, I made a map that computes the area enclosed by a given path: the Google Areometer. Actually there already was at least one other map that does this, but it only does a planar approximation. My version uses completely accurate spherical [...]
--Read More--

18aug2005 Metro:
I made a Google Maps version of the Paris Metro map. And it does route-finding! It's very slick.
--Read More--

29jul2005 BART:
I made a Google Maps version of the BART schedule.
--Read More--

26jul2005 js_httpd:
I wrote yet another tiny web server, but this one is in JavaScript. Why? People tend to think of JavaScript as a crippled Java, but it's really more like awk on steroids, and not in the bad way that perl went. The version of the language I'm using for this has some [...]
--Read More--

09jun2005 /.:
The mail filtering pages got slashdotted yesterday. The server handled the load pretty well, except that there were a lot of packet collisions on the two-foot ethernet segment between the server and the DSL box.
--Read More--

05jun2005 ipizer:
First release of ipizer, a filter to improve sendmail log files so they are easier to analyze.
--Read More--

03jun2005 Outage:
Had a two-hour power outage this evening. The server stayed up, on UPS. My workstation lasted less than an hour on its smaller UPS, so I read a book while waiting.
--Read More--

25may2005 Filtering:
The new ACME Labs Mail Filtering Tutorial is now open to the public.
--Read More--

18mar2005 Prints:
I added an "Order Prints" button to all of my photos. This uploads the picture to smugmug if necessary, and then redirects you there. You can also order stuff besides prints, such as t-shirts, coffee mugs, and jigsaw puzzles.
--Read More--

16mar2005 xmlrpc:
I wrote a simple command-line XML-RPC client, xmlrpc.
--Read More--

11mar2005 Mapper:
I added geocoding to the ACME Mapper. This means you can type in a street address and it will find the coordinates. It does this by making an HTTP request to Google Local and parsing the results.
--Read More--

11feb2005 sfcmilter:
I did some work on sfcmilter to make it a little less susceptible to false positives.
--Read More--

10feb2005 stat:
Trivial new program available - stat. It displays info on a file, like "ls", but in programmer-level detail. I've actually had this kicking around my personal src dir for years, but never got around to publishing it.
--Read More--

02feb2005 graymilter:
New version of graymilter available - now it has an optional initial whitelist.
--Read More--

24jan2005 Missile Defense:
Found an amusing editorial cartoon on the net - ACME Missile Defense, by Bruce Plante from the Chattanooga Times Free Press by way of Slate and 12thharmonic.
--Read More--

22jan2005 Comments:
I wrote a little web-comments widget and added it to my blogs and photo pages.
--Read More--

21jan2005 texttohtml:
Minor tweak to texttohtml to better handle files with CRs as well as newlines.
--Read More--

18jan2005 Outage:
Another power outage this morning. The UPS battery lasted for three and a half hours! Too bad the outage lasted four hours. Oh well.
--Read More--

12jan2005 RSS:
My political page hail-to-the-thief.org is now RSSified too.
--Read More--

11jan2005 RSS:
This page now has an RSS feed, by way of some trivial blogging shell scripts that I might release at some point. I also recently added RSS to my photos page, using a more specialized set of scripts.
--Read More--

03jan2005 file_date:
Added a trivial program to display a formatted date for a given file: file_date.
--Read More--

21dec2004 Outage:
We were off the net for an hour again this morning while SBC and Covad switched in a new phone line.
--Read More--

20dec2004 XIP:
Another XIP tweak, to throw an exception for one more type of malformed XML file.
--Read More--

19dec2004 XIP:
Trivial fix to XIP; the header file was missing a couple of consts it should have had.
--Read More--

17dec2004 Outage:
acme.com was off the net from 10am on Thursday the 16th until 1pm today - 27 hours! There was a real three-way clusterfsck going on between Speakeasy, SBC, and Covad. The SBC guy showed up promptly, checked the line, and said there was a short-circuit in Covad's [...]
--Read More--

14dec2004 date_parse:
A couple of minor enhancements to the timegraph program in the date_parse package.
--Read More--

05dec2004 copy_exif:
First release of copy_exif, a little utility program for copying EXIF data from one JPEG file to another.
--Read More--

02dec2004 Outage:
We had an hour-long power outage this morning, but the system stayed up due to the massive UPS I installed this spring. It's an APC Back-UPS RS1500 ($227) plus an RS/XS auxillary battery pack ($123). Very nice.
--Read More--

28nov2004 graymilter:
First release of graymilter, a very simple graylisting milter.
--Read More--

27nov2004 Hi-Res Images:
TerraServer has added hi-resolution color images for some urban areas, so I added them to the ACME Mapper.
--Read More--

24sep2004 Digicams:
Added sensor size, sensor type, and pixel pitch to the digital camera database. Also, we passed 400 camera listings!
--Read More--

14sep2004 sfcmilter:
First release of sfcmilter, designed to work alongside spfmilter and plug a hole in the design of SPF.
--Read More--

28may2004 spfmilter:
Another new milter released: spfmilter, which implements the SPF mail-forgery prevention protocol.
--Read More--

18may2004 blackmilter:
First (very beta) release of blackmilter, a mail filtering module for blacklisting large numbers of IP addresses.
--Read More--

14may2004 sample_milter:
Wrote sample_milter, an example of a sendmail mail filtering module.
--Read More--

06may2004 Clam AV:
Acme.com is now running Clam AV, an anti-worm/virus mail filter. Before installing this we were getting about three worms per second, using up about 1/4 of the DSL line's bandwidth. Clam AV rejects them earlier in the mail transaction, saving some CPU cycles and [...]
--Read More--

01may2004 New Server:
Acme.com has switched to the real new server, still running over a DSL line to my office. Details on the hardware page.
--Read More--

17mar2004 Temporary Server:
Acme.com has switched to a temporary new server running over a DSL line to my office. Details on the hardware page.
--Read More--

16feb2004 Precedence Day:
In honor of Precedence Day, I made an HTML version of this table.
--Read More--

19dec2003 mini_httpd/thttpd:
Released version 1.19 of mini_httpd and 2.25 of thttpd.
--Read More--

26oct2003 mini_httpd/thttpd:
Released new versions of mini_httpd and thttpd.
--Read More--

18aug2003 Digicams:
The digital camera database passed 300 listings today.
--Read More--

21mar2003 Boardfinder:
And 1000 boards today!
--Read More--

18mar2003 Boardfinder:
Boardfinder passed 900 boards today.
--Read More--

12oct2002 Digicams:
Finished the initial data entry for the digital camera database. 189 cameras listed!
--Read More--

05oct2002 Digicams:
Opened up a new database for digital cameras. Only 19 entries so far but I'll add more soon.
--Read More--

15aug2002 Boardfinder:
Boardfinder reached 800 boards today.
--Read More--

23jul2002 date_parse:
Added a date_merge program to the date_parse package.
--Read More--

26may2002 mini_httpd/thttpd:
Released new beta versions of mini_httpd and thttpd.
--Read More--

25may2002 Build-A-PC:
Completely updated the Build-A-PC page. I'm particularly happy with the redone memory page. Also the Boardfinder is now up to 582 boards.
--Read More--

17apr2002 Mapper:
Added a few new features to the ACME Mapper: it remembers your previous settings and start location; you can mark a location and get the distance and direction from there; the Save Map page displays the "World File" parameters of the map; and you can turn the little [...]
--Read More--

26mar2002 phoon:
Updated phoon to use the latest verison of date_parse.
--Read More--

18mar2002 http_get:
Added a new feature to http_get - now the exit status reflects the HTTP response code.
--Read More--

04jan2002 date_parse:
Minor update to date_parse.
--Read More--

04jan2002 IPv6:
Updated all my network software to be IPv6-ready.
--Read More--

02jan2002 Label Maker:
Added 18 fonts to the Label Maker.
--Read More--

19dec2001 HTTPS:
We are now serving our entire web tree via HTTPS as well as regular HTTP. Same content, slower but more secure service.
--Read More--

07dec2001 Firewalls:
Updated the FreeBSD firewall tutorial to reflect FreeBSD 4.x and IPv6.
--Read More--

04dec2001 Boardfinder:
Rewrote some of the Boardfinder's shell scripts in C for speed. Now searching is basically instant.
--Read More--

29nov2001 Boardfinder:
Updated the Boardfinder with about seventy new boards, cleaned up broken links, and added AGP Pro.
--Read More--

14nov2001 http_load:
New version of http_load with a bunch of new features - settable timeout, HTTP response-code histogram, random source-IP, SSL cipher specification.
--Read More--

12nov2001 mini_httpd/thttpd:
Released new beta versions of mini_httpd and thttpd.
--Read More--

09nov2001 mini_sendmail:
Minor update to mini_sendmail.
--Read More--

26aug2001 Email:
Added email capability to the Label Maker, License Maker, and Heart Maker. You can mail yourself the images you make.
--Read More--

14aug2001 New IP:
Had to reboot to change IP addresses.
--Read More--

10aug2001 Mapper:
The ACME Mapper is open for business. This is a topographic & photographic mapping system based on Terraserver, with some significant improvements.
--Read More--

09aug2001 coords:
Released coords, a set of geographical coordinate conversion routines.
--Read More--

01aug2001 Photos:
I finished a total re-write of my photography web pages & scripts. Now it's completely database-driven. The system currently has 1650 photos, using 329 MB.
--Read More--

16jul2001 Boardfinder:
Added a few more boards to Boardfinder, bringing the total to 405. Also sped up the searching, which was getting a little slow with that many boards.
--Read More--

15jul2001 mini_sendmail:
mini_sendmail updated.
--Read More--

20jun2001 Creeks:
A geographic / photographic database of Berkeley Creeks.
--Read More--

12may2001 revpar:
Released revpar, to reverse files by paragraphs.
--Read More--

11may2001 http_ping:
Released http_ping, a little program to measure HTTP latency.
--Read More--

09may2001 Zippo:
The folks at watches.acme.com sent me a free Zippo lighter engraved with "ACME LABS"! It's very nice.
--Read More--

08may2001 Outage:
A rolling blackout hit explosive.net, and due to a loose power cable the battery backup had much less capacity than planned. We were down for about half an hour.
--Read More--

23apr2001 thttpd:
thttpd version 2.21b released - had to do a quick fix to a problem that was causing the server to hang.
--Read More--

20apr2001 thttpd:
thttpd version 2.21 released.
--Read More--

02apr2001 Domains:
Added to the ACME family of vanity domain names: longpork.com and poskanzer.org. Also I officially enabled the free email systems on all the domains.
--Read More--

01apr2001 Ads:
The first month of ads from Aaddzz ended up bringing in $504.52, which is not bad. The distribution was uneven - there were many days with only a few bucks, and then there were a few days with more than $60. Anyway, I'll keep them for now. The donations page [...]
--Read More--

14mar2001 Donate:
ACME Labs received a $200 donation from Maniacal Contributor Arvind Ghanekar. Woo hoo!
--Read More--

06mar2001 Ads:
Looks like that first $30 day at Aaddzz was some sort of fluke. $5/day is more like it. Oh well, that's acceptable. I'm making more off direct donations though.
--Read More--

05mar2001 Ads:
The first ACME Labs banner ad is up and running on Aaddzz. I made it using pbmplus and the labelmaker. It's not beautiful but it gets the message across.
--Read More--

04mar2001 Outage:
www.acme.com was down most of today due to a power plug being not completely plugged in at explosive. Oh well, I guess they're not perfect.
--Read More--

02mar2001 Ads:
We have started running banner ads from Aaddzz. They seem like a pretty good broker. For example, they let publishers set options like maximum ad size in bytes, and whether to disallow animated ads. First day's commissions were about $30, or $900/month, which [...]
--Read More--

23feb2001 Outage:
Explosive moved their operation tonight, including this machine. About 3.5 hours downtime, no apparent problems.
--Read More--

21feb2001 All Your Candy:
All your candy are belong to us.
--Read More--

20feb2001 Heart Maker:
The Heart Maker was made Cruel Site of the Day. Another 10000 visitors!
--Read More--

15feb2001 Heart Maker:
The Heart Maker got mentioned in memepool.com. Even though it was a day after Valentine's, it brought in over 6000 visitors.
--Read More--

07feb2001 Outage:
We were down for five hours today due to a car crashing into a utility pole down the street from my ISP.
--Read More--

06feb2001 License Maker:
The License Maker got mentioned in memepool, bringing in about 3000 visitors.
--Read More--

28jan2001 Donate:
I started a trial run of this - voluntary $5 donations to support the site. We shall see if anyone goes for it.
--Read More--

18jan2001 Outage:
The California energy/finance crisis hit us yesterday - our co-location ISP explosive.net got blacked out for 90 minutes. Fortunately they have two hours of battery backup installed, and it worked flawlessly, so we stayed on the air.
--Read More--

06jan2001 Dates:
I noticed this morning that the short 06jan01 date format I like to use is now ambiguous. Furthermore, it will remain ambiguous for the next thirty years! Y2K wasn't enough to make me switch to four-digit dates, but this is.
--Read More--

25dec2000 Boardfinder:
Boardfinder passed 300 boards.
--Read More--

11dec2000 Thief:
Added hail-to-the-thief.org to the ACME Labs family of web pages.
--Read More--

01dec2000 Boardfinder:
Added 13 more boards to the Boardfinder, including the first Pentium-4 boards. Since the only current chipset for the P4 requires the use of RAMBUS memory, I had to add that into the system too, which is unfortunate cause it sucks.
--Read More--

01dec2000 /.:
We got Slashdotted yesterday and I didn't even notice! It was for this amusing palindromic C program that I grabbed off the net years ago. Not even my own code. Traffic approximately doubled for about ten hours - not too big a deal.
--Read More--

30nov2000 Boardfinder:
Added 33 new boards to the ACME Boardfinder, including ten with DDR memory.
--Read More--

27oct2000 Build-A-PC:
Updated the Build-A-PC page. Actually it's now pages, I split it up into separate files by topic. Memory prices have been falling a lot, down by almost 50% since the previous update five weeks prior.
--Read More--

19oct2000 License Maker:
Finally got around to adding all the historic license plates to the License Maker.
--Read More--

08oct2000 select:
Added -all flag to select, and fixed a bug with schema-mode databases.
--Read More--

05oct2000 Ciphers:
Added the AES and RC6 cryptosystems to the Acme.Crypto Java package. AES is the just-announced Advanced Encryption Standard, and was formerly known as Rijndael. RC6 was a candidate for the AES and didn't win the competition, but is still quite good.
--Read More--

30sep2000 select:
Added ignore-case flag to select.
--Read More--

27sep2000 thttpd:
thttpd 2.20 released.
--Read More--

24sep2000 Boardfinder:
Added name searching to the ACME Boardfinder.
--Read More--

13sep2000 http_load:
New version of http_load with a couple of enhancements and bug fixes - max & min timings, SSL random-number seeding fix, proxy support, timer improvements.
--Read More--

06sep2000 RSA:
Two weeks before their patent was to expire, RSA has released their public key encryption algorithm into the public domain. This means I can add actual RSA programs to the bigint package, instead of just including directions for performing it with the bic calculator.
--Read More--

06sep2000 Updates:
Started the ACME Updates file.
--Read More--

04sep2000 Build-A-PC:
Medium-sized update to the Build-A-PC guide. The sample Athlon design changed from Slot-A to Socket-A. The sample dual-Pentium design changed from Slot-1 to FC-370. The sample compute-server design changed from a Celeron to a Duron.
--Read More--

23aug2000 Boardfinder:
I added a motherboard database to the Build-A-PC page.
--Read More--

11aug2000 select:
select, a little ASCII-database program.
--Read More--

27jul2000 bigint:
bigint, a new large integer math package.
--Read More--

18jun2000 closest_fractions:
closest_fractions, a little program to find the rational numbers closest to a given real number.
--Read More--

18may2000 Testbed:
I've been working on a gigabit ethernet testbed.
--Read More--

09may2000 Colormap:
A colormap sampler.
--Read More--

21mar2000 Build-A-PC:
Wrote a Build-A-PC guide.
--Read More--

28jan2000 thttpd:
Added referer-checking to thttpd, to deter bandwidth parasites.
--Read More--

25jan2000 thttpd:
thttpd now supports IPv6. It's the first Unix web server to do so out of the box, without patching.
--Read More--

18jan2000 Calendar:
The ACME Calendar.
--Read More--

31dec1999 http_post:
http_post, a little program to do HTTP POST requests and return the results. Same idea as http_get.
--Read More--

16dec1999 BlueLight:
K-Mart's web site BlueLight.com went on the air, powered by thttpd.
--Read More--

10dec1999 mini_httpd:
mini_httpd now handles SSL/HTTPS. It is almost certainly the smallest/simplest web server to do so.
--Read More--

25nov1999 New Server:
www.acme.com is now running on a 450 MHz K6-2 box co-located at explosive.net. Here's a rundown of the changes: Old setup New setup ISP Best.com Explosive.net OS FreeBSD 2.2.8 FreeBSD [...]
--Read More--

24nov1999 weblog_parse:
weblog_parse, a program to parse and extract data from standard web log files.
--Read More--

27oct1999 Privacy:
ACME Labs now has a privacy policy. This is intensely boring, but apparently necessary if you want to carry any ads from IBM.
--Read More--

17sep1999 mini_httpd:
Released mini_httpd. This is an old-fashioned forking web server, making a new process for each request, just like the first version of NCSA before they invented pre-forking. It's intended as a simple testbed for trying out things like SSL. It's surprisingly fast, [...]
--Read More--

12sep1999 License Maker:
The ACME License Maker.
--Read More--

05sep1999 http_load:
Added SSL to http_load.
--Read More--

16mar1999 micro_proxy:
micro_proxy - the world's smallest web proxy?
--Read More--

15mar1999 micro_httpd:
micro_httpd - the world's smallest web server?
--Read More--

15nov1998 Outage:
ACME Labs was mostly off the net for the last week because some moron at Network Solutions let a host registration for www.acme.com go through.
--Read More--

24jun1998 Benchmarks:
Some web server benchmarks.
--Read More--

23jun1998 thttpd:
thttpd 2.00 released.
--Read More--

27nov1997 Serve:
Acme.Serve won a Byte Editor's Choice Award of Distinction. JavaSoft's JWS (the server formerly known as Jeeves) won the same award.
--Read More--

28sep1997 ECLI:
Experimental Command Line Interface.
--Read More--

07feb1997 Label Maker:
The ACME Label Maker.
--Read More--

20dec1996 Nnrpd:
First release of Acme.Nnrpd, a netnews reading daemon in Java.
--Read More--

27nov1996 Widgets:
First release of Acme.Widgets, a few Java GUI utility classes.
--Read More--

18aug1996 Under Construction:
The Under Construction page.
--Read More--

10aug1996 Serve:
First release of Acme.Serve, a tiny Servlet engine.
--Read More--

11jun1996 Psg:
Released Acme.Psg, a Postscript-like graphics package for Java.
--Read More--

25mar1996 Stats:
Started producing daily web stats reports.
--Read More--

03nov1995 On The Air:
www.acme.com goes on the air, hosted at best.com.
--Read More--

19oct1995 thttpd:
First beta version of thttpd released.
--Read More--

07jul1994 First:
My first web page, at ftp://ftp.netcom.com/pub/jef/web/jef.html
--Read More--

17apr1991 Registered:
Registered acme.com domain name.
--Read More--

Back to ACME Labs.
address