Tagged “Meta”

Let's Begin Again

At the ripe old age of 12 I started messing around with computers. I've been hooked ever since. I've also read everything I could get my hands on about business, hoping to some day be able to start my own. However, I took the well-worn path of college, then into industry where I lucked into a series of great jobs.

Today, I'm finally striking out on my own. Today I'm throwing open the doors to my software development consultancy.

Blog Relocation

After a lot of thought and deliberation I've decided to retire bugsplat.info as my blog address. It's served me well for about six years, but the word "bugsplat" has recently gained some other unrelated connotations, the latter being the most unsavory. The other big reason is that at this point I would like people to associate my work with my actual name, not some other name that you would only know was related if you knew me already.

That said, any @bugsplat.info email addresses you have will continue to work. Any links to bugsplat.info will also continue to work through the magic of HTTP 301 Moved Permanently. Read on to see how I set that up, because it's kind of interesting.

New Blog Design

For the past three years this blog has has featured the same basic design. Header, sidebar, content, footer. Simple, classic, kind of ... homely. Today I decided to give a new design a whirl, and if you're reading this on the website you can see what's changed.

Increasing the Encryption Noise Floor

Inspired by Tim Bray's recent post about encrypting his website, I decided to enable and force HTTPS for bugsplat.info. The process was straightforward and, turns out, completely free. Read on to find out how and why.

Full Text Search with Whistlepig

Yesterday I suddenly developed the intense need to add search to this site. Among the problems with this is that the site is kind of a weird hybrid between static and dynamic, and it has no database backend. If posts were stored in Postgres this would be a trivial matter, but they're just markdown files on disk. After flailing around for awhile I came across a library named Whistlepig which purported to do in-memory full text indexing with a full query language.

November 5, 2013: I've removed search because nobody used it and this way the site can be 100% static.

On-the-fly Markdown Conversion to PDF and Docx

Today I added PDF, Docx, and Markdown download links to the bottom of every post here on Bugsplat. Scroll down to the bottom to see them, the scroll back up here to read how it works.

Yet Another (not very) Static Blog Generator

The very first post on this blog was about how I wanted a completely static blog and how it'll be great and wonderful and boy howdy was it ever. Over 500 lines of rather dense perl plus almost 20 separate template files because the kind-of-mustache that I decided to implement can't handle inlined templates for loops so I have to do everything as partials.

Needless to say, it isn't very fun to work on. It mostly does what I want but adding new things is pretty painful, as is changing any of the templates. Yesterday I decided that I would see what a Sinatra port would look like. Why Sinatra? It's fun, that's why. Ruby and Sinatra make writing new webapps easy and fun.

Blog Generator Updates

I've made some small changes to the way bugsplat.info is generated. First, I refactored publish.pl quite extensively. Instead of being a huge mess of spaghetti-perl, it's nicely factored out into functions, each one doing as little as possible. It got a little longer, but I think it's worth the tradeoff in readability.

Adding RSS and Other Things

Someone at work today demanded that I add an RSS feed, so here you go: [atom][1]. It didn't take very much to [hack it in][6]. Basically, all I had to do was install a few more CPAN modules, specifically [DateTime::Format::Natural][2], [DateTime::Format::W3CDTF][3], and finally [XML::Atom::SimpleFeed][4]. The first two are so I can put natural-looking dates in my entries and still be able to get full-fledged DateTime objects out of them, and the second is to save me the pain of writing out the Atom format's preferred datetime format. Also, I get neat date formatting in blog entires almost for free with the CLDR syntax.

Yet Another Static HTML Blog

I'm a strict believer in learning by doing. It's how I learn best. In the spirit of learning, then, here's how I built the engine that powers this blog.

Right away I decided that there's no point in having a database to back this thing. The only useful thing that a database brings to the table is comments, and those are way more hassle than they're worth. Better to leave the comments at reddit or hacker news, where they already know how to deal with spam. Not having to worry about a database freed me up to worry about more important things, like how to put text on the screen. I'm most familiar with perl at the moment so I decided that the best way to build it would be a client-side script that generates some static html.