Software and Resources

You are here: Andrew Ho > Software

Atmel NGW100 Notes

The Atmel NGW100 is a tiny single-board computer with embedded Linux, two ethernet jacks, an SD card slot, general purpose I/O pins, and a USB type B plug—a fantastic little toy computer! I've collected some NGW100 notes, including instructions on building packages for the NGW100, and in particular, running Guile Scheme on the NGW100.


My first Perl module on the CPAN was Benchmark::Timer, an object oriented way to do easy high-resolution profiling of your Perl code running over multiple trials. You can download Benchmark::Timer from CPAN or download a local copy. However, note that I no longer maintain this module; David Coppit took over its maintenance in 2004.


If you want to do ad hoc interfacing to your computer from the outside world, using a joystick port or parallel port has traditionally been the answer. Sys::PortIO provides Perl glue to the OS-dependent functions (on Unix-like systems, inb() and outb()) that let you do this. download Sys::PortIO from CPAN or from my local server.

Make Google Groups Your Default Newsreader

I like to use Google Groups to read Usenet news with, instead of a dedicated Windows client. It took me a little while to figure out how to set IE to handle news URLs with Google Groups. It involves writing a short JScript script to be run by Windows Scripting Host, and then specifying that script in bunch of Windows Registry keys.

Patch GNU Nano to Add Bracket Flashing

Powerful programmers' text editors like Emacs or Vim generally include a feature where when you type a close bracket (like a close parenthesis), the corresonding open bracket is briefly highlighted. This is indispensible when writing code, which often involves lots of balanced delimiters. The GNU Nano editor lacks this feature, so I've written a patch to add bracket flashing capability to GNU Nano.

Miscellaneous Homebrew Software

I've collected some useful Perl scripts and some useful C programs over the years. You may also be interested in the hacks I apply to my Windows desktop which make my life as a programmer more efficient and enjoyable. Share and enjoy, but please give me credit and let me know if you use them.

Scheme Resources

Scheme is a really fun language to play with, and also an exceptional language for teaching basic programming concepts with. During my work at Tellme, I had a chance to use Guile, the GNU version of Scheme, as a web template programming language. I distribute a high quality PDF format version of the Revised5 Report on the Algorithmic Language Scheme.

Perl Compatible Regular Expressions

PCRE is the Perl Compatible Regular Expressions library. I am a big fan of Perl regular expression semantics, so I appreciate this library which implements a regular expression engine that supports them as a C library. It's used in lots of existing freeware software. My only connection is that I maintain the official PCRE website.

Windows Em Dash Keyboard Shortcut

Typing an em dash (—) on Mac OS X is pretty easy (Shift+Option+hyphen). On Windows, in contrast, it is super arduous: you need a numeric keypad, and then you can hold down the Alt key and enter code 0151 on the numeric keypad. Ugh!

I used AutoHotkey to create a stand-alone program to enable a Windows em dash keyboard shortcut. Run the program, and you can either use Ctrl+Alt+hyphen or Shift+Alt+hyphen to type an em dash.

Andrew Ho (