🌿 Budding noteworthy

Blogtimes: A trip down memory lane

planted on in: PHP, Blogtimes and Wayback Machine.
~1,077 words, about a 6 min read.

blogtimes.png, a histogram view of blog posts by hours of the day over the past 30 days

Many years ago, during a previous incarnation of this website I displayed the above histogram representation of blogs posted by hour of the day over the past thirty days. I was reminded of this recently when the topic of blogging came up in conversation. I could remember originally getting the idea from Matt Mullenweg's blog over a decade ago but not the exact timeframe, nor could I remember what the code was named.

In doing so I had nerd sniped myself! So began a short trip down a deep rabbit hole!

Remembering that I did at some point host my own version of this histogram I searched month by month within the Wayback Machine's archive of my blog before finding it on a page from 2006.

At this point, I should have dug my way out of the rabbit hole and continued with my day, but that is not how nerd sniping works. I needed to find out more about the code behind the graph. I now knew the graph the code produced was called blogtimes.png and from this I assumed the code behind it was called Blogtimes. With that knowledge in hand I then turned to Matt Mullenweg's present day website ma.tt and knowing it's WordPress added ?s=blogtimes to the url to search his archive for what I was looking for.

Fortunately Matt has kept an archive of all his old posts, this helped me quickly find his short post from January 2003 titled PHP Blogtimes for b2. Unfortunately the sands of time have resulted in two out of the three links now going nowhere with the third surprisingly being cafelog.com: the home page for b2.

Returning to the Wayback Machine, I was eventually able to retrieve the project page for the original version of Blogtimes written by Nilesh Chaudhari for MovableType. In addition, I also found Nilesh's blog post which contains a number of interesting to read comments from the blogging community.

To my upmost surprise and delight the Wayback Machine also stored a copy of the mtblogtimes-1.0.zip [1] linked from the aforementioned project page and so for the first time in over a decade I had the perl source code to something that has been itching away in the back of my mind for almost as long!

Alas, this wasn't the bottom of the rabbit hole. My original goal was to find the PHP version that Matt mentioned and which I had myself used all those years ago. I had to keep digging, the Wayback Machine had been incredible help, but now I needed to search the internet.

Having discovered from the zip archive that the perl source file is called blogtimes.pl I did a quick search for blogtimes.php and the first result landed me on the archive page for a mailing list showing messages from 2007:


The top line from the above got me excited and after reading a little further down I saw:

      * Plugin that offers blogtimes for current blog
      * Original Author: Matt Mullenweg http://photomatt.net

Unfortunately however, this was just a mailing list and the code snippets displayed are simply svn patch format.

Having spent a good number of hours on this escapade[2] I noticed the sun had begun setting. This could only mean one thing, I needed to stop digging and make myself some coffee. One shouldn't go digging around the internet without some form of sustenance.

While brewing a pot of coffee it struck me that the svn patch was for a project called LifeType and as soon as my coffee had brewed I returned to my desk, mug in hand, and began my search for that project.

LifeType appears to have been a blogging engine last updated in 2013; some digging uncovered the last version 1.12.11 of LifeType available on SourceForge. It felt like I was getting close to my answer however browsing the plugins directory resulted in disappointment. Of course, it wouldn't be bundled with the main application, it's a plugin!

The next problem now was where to find a list of the available plugins from? The projects' website lifetype.net was now long since dead, fortunately the Wayback Machine is a thing and thanks to its archive I quickly discovered the projects' development page and on it the structure of their svn repository (copied below,) that I recognised from the mailing list post (which at the time was hosted at devel.lifetype.net.)


It is fortunate that Lifetype's svn repository was published using Apache Subversion because that resulted in a somewhat complete copy of Lifetypes's entire svn repository tree being available from the Wayback Machine!

Excitedly I navigated to /plugins/branches/lifetype-1.2 within the archived svn listing and could see blogtimes listed. Finally, a "quick" afternoon search that had dragged into the late evening had an end in sight, light at the end of the tunnel, land ahoy! Clicking the blogtimes link would take me to the original source, the holy grail of this nerd sniped deep dive, except: Hrm. The Wayback Machine has not archived that URL. My heart sunk, the coffee pot brewed, somewhere off in the distance foxes screamed in the moon lit darkness.

Not to be dissuaded I returned to SourceForge and had a bit of a more detailed poke around. I am glad that I did because after a while I found they had all the plugins listed in their svn respository zipped up and available for download from here!

With that I downloaded 1.2_blogtimes.zip[3] my quest was complete. This wasn't the original WordPress plugin by Matt but the pluginblogtimes.class.php within seems to largely be Matts code.

My coffee mug empty, 1.2_blogtimes.zip safely in my download folder and my curiosity finally satisfied I headed to bed. I'll discuss unpacking pluginblogtimes.class.php and porting it to JavaScript for use with 11ty in a future post.

  1. Mirrored copy of mtblogtimes-1.0.zip ↩︎

  2. an act or incident involving excitement, daring, or adventure. - Oxford English Dictionary ↩︎

  3. Mirrored copy of 1.2_blogtimes.zip. ↩︎

Page History

This page was first added to the repository on August 31, 2022 in commit 49193c09 and has since been amended twice. View the source on GitHub.

  1. refactor(#304): move files into src folder
  2. feat(#199): tag all posts that reference internet archive
  3. feat: publish part one of my blogtimes retrospective