Welcome! I am an engineer, programmer, designer, and gentleman. You may be interested in some of my electrical and mechanical projects. Take everything you read here with a grain of salt and remember to wear your safety glasses.

DIY Paracord Bootlaces

Six years ago I walked into an Army-Navy surplus store and bought a pair of Hi-Tec hiking boots for something like 30 dollars. They're sturdy and very comfortable, have given me good service in all sorts of places and conditions, and are likely to keep doing so for years to come. The laces, however, were beginning to show their age and experience; the anglets had come off and the inner core of the laces had retreated into the outer sheath. I had an opportunity, therefore, to replace them with a much stronger and more useful type of bootlace: mil-spec 550 parachute cord.

Black never goes out of style

This fits into the trend of survival experts and EDC enthusiasts carrying miles of paracord on their persons at all times, usually by tightly weaving it into something like a watch band or key chain. I'm impressed by their techniques but I'm far from being a serious student of wilderness survival—I only sniff around the edges of that community—but I enjoy hiking now and again and I'm very much a fan of preparedness and capability in all aspects of life.

Upgrading to Mediatemple VE

This site, and some of my other projects as well, have been hosted for about a year now on Mediatemple's DV (Dedicated Virtual) service. My particular DV installation was somewhat custom since I had ordered it without Plesk and did all my administration tasks on the command line. Mediatemple recently informed me that this product was being end-of-life'd and so I made yet another migration, this time to their VE hosting, which seems like a better fit for my brand of linux geekery. It's quite a bit cheaper per month as well!

Regular guests, please let me know if anything's broken from the move. Thanks for your attention.

Tilt Sensor Demonstration Toy

I've finally created a page for this fun little tilt-sensing toy I made using a MEMS accelerometer, some LEDs, and the LM3914 bar-graph driver. It was knocked together in an afternoon in 2002, so don't look too closely at the somewhat crude construction techniques in this one!

An Update on the Pipe Crawler

I'm thrilled that Make magazine has featured our 2003 senior design project, the Pipe Crawler, on its blog. I thank Sean Ragan for taking an interest and for writing the post; visitors from Make are very welcome indeed. I've taken this as prompting to update the site a bit; prior readers may notice that I've added links to an RSS feed of this blog; please subscribe if you're so inclined. Using my new and very precariously assembled light tent (details of which are for a later post); I've also updated some of the photos of the pipe crawler; and finally, I've restored the link to the original paper my team gave to our professors at the end of the class, although I cringe to read it today—hopefully I've learned a thing or two in the years since!

Javascript Syntax Highlighting

I occasionally post samples of source code in a handful of languages on this site; to present these in the most readable form I started looking for client-side syntax highlighting scripts, always with an eye towards matching the behavior of emacs and its major modes. I made attempts with the most popular choices in this area, but was disappointed with them for various reasons:

  • google-code-prettify did not highlight C correctly; it marked types (char, for example) as keywords sometimes, and it's not actually hosted on the google CDN, which I would think is one of the major reasons to use a google project for something like this.
  • highlight.js relies on a mysterious process of automatically "detecting" the language used in a particular code block, which failed in my test case when it mismarked C as perl. Despite that, it comes with some nice color themes and, unlike google-code-prettify, is hosted externally, although I would be more comfortable if it was hosted on a major CDN like google's.
  • SyntaxHighlighter has extensive language support and uses an autoloader to load only the scripts necessary for highlighting the languages contained in the current page, a significant point in its favor. However, the html produced by this script is heavy with non-semantic <div>'s (one for each line!) and wraps every highlighted token in its own <code> tags. I prefer client-side scripts not to throw semantics out the window when possible; one <span> with appropriate class names for each token should be sufficient.

But just as I was about to turn away from this project and put syntax highlighting on the shelf for awhile, I found another script: Rainbow, by Craig Campbell. This library makes heavy use of regular expressions, which I'm fond of, and seems to have been designed from the beginning for ease of extensibility. It's also hosted on GitHub, and I've already taken advantage of that to make some small contributions to the project. Rainbow is relatively young and doesn't support very many languages as yet, it's true, but this script is so easy to extend that I don't anticipate that will be much of a problem—I'll probably just write a new mode myself if I need one.

Archives: