(featured on BoingBoing!)

Twittjr is a system that allows an IBM PCjr to search the public timeline on Twitter. In case you weren't aware, the IBM PCjr is a personal computer introduced in 1984 and has a 4.77MHz processor, 128KB of RAM, and uses 360KB floppy disks for storage.

It seemed like a good idea at the time.


(click to enlarge)

How does it work?

You have a PCjr hooked up to an external dial-up modem, which is connected to a phone line. Elsewhere, you have a modern internet-connected computer (call it the "server") with another dial-up modem, connected to another phone line. The PCjr calls the server and establishes a modem connection, which it uses to send a request for whatever search term the user enters. The server uses the Twitter Search API to download the three most recent posts on the public timeline that match the search, and shoves them back over the phone line to the PCjr, which displays them on the screen in glorious 16-color ASCII-vision. In the absence of user interaction, the PCjr refreshes the search results every minute or so, providing a sort-of-live feed.

What is it written in?

The PCjr software is in Cartridge BASIC, a PCjr-specific flavor of IBM BASIC. It's the best of the three forms of BASIC that can be used on the PCjr (the others are Disk BASIC and Cassette BASIC), because the interpreter doesn't take up system memory, it runs almost as fast as compiled code, and you can save your programs to disk. It does, however, require that you have A) the actual Cartridge BASIC cartridge, and B) a DOS disk to boot from.

The "server" software is a small Ruby script that uses only built-in libraries. It should work on any platform that can run Ruby, but I’ve only tested it on Linux.

Why Twitter on a PCjr?

In my second year at RIT ('08-'09), I discovered a fully-functional PCjr gathering dust on a shelf in one of the Computer Science House common rooms. Noticing that it used BASIC, which I was familiar with from my high school days, I figured I could write some eye-catching application that would attract people to our tables at ImagineRIT 2009. Lots of CSHers had been joining Twitter recently, and someone who saw me fiddling with the PCjr jokingly suggested putting Twitter on it. Several weeks later, the first version of Twittjr was serving up tweets to curious open-house visitors.

Source Code

Source code is freely available on GitHub at https://github.com/grantovich/Twittjr. Check the README for instructions on setting up Twittjr with your own PCjr, if you have one.