Zipit Z2 New Kernel Update!

The short story: The flash worked and I’ve got everything working that worked before. The long story?

wireless+x image running on the z2
[Read more →]

Wallclock 2.0

After a power out blanked my wallclock’s memory, I was not eager to go searching through ten year old websites looking for a new terminal emulator. Luckily I found a ten year old NES emulator that loads fine! Behold wallclock 2.0, NES edition! Also be sure to peep the ancient medical tablet that is pulling duty as my new serial terminal. Fun!

My new wallclock at work ;)

wallclock

10 year old HP Jornada Windows CE 3.0 device - 15$

Serial extension cable - 1$

Shell script to display network and system statistics - 0$

Using Linux - Priceless.

Save Game Saver - Backup and Retrieve your Save Games from Gmail

Save Game Saver Screensot A couple of months ago, Mark and I were playing some wormux on the PC. I had all my characters and teams set up, and all my macros just the way I liked them. The next day my computer crashed and lost everything. To prevent this from happening again, we sat down and wrote this python program, “Save Game Saver”. Basically you set up a profile for a game (location of save game), then it allows you to upload those saves to gmail. Each upload is versioned in gmail, so you can store and retrieve multiple saves you uploaded on any day for any game. Considering Steam and Xbox are both moving towards this internally, this would be kind of a stepping stone till game developers get off their asses and figure it out. Mark and I both found it really useful though, so go ahead and download it or alter the source. As usual, it’s GPLv2.0.

Download Save Game Saver here

Don’t Panic! The REAL HitchHikers Guide is here TODAY

As it turns out, with a little bit of effort you can put together a cheap (50$), handheld, wireless, graphical wikipedia browser ala the HitchHiker’s Guide.

Don’t panic!  A real guide to everything (Wikipedia)

Prerequisites:
Install Linux (wifi), Xfbdev (x11) and Dillo (browser) on your Zipit Z2 as described here.

DilloRC:
Here’s the custom part. After launching dillo for the first time, you’ll have a ~/dillo/dillorc file in your home directory. Open that up, and customize the layout to your liking. Personally, I just enable “fullscreen mode” at startup and it hides all the buttons. Then head on down to the “search url” and enter in:

"http://google.com/search?btnI=1&q=en.wikipedia.org +%s"

This tells dillo to use google’s “I’m feeling lucky” search on wikipedia for the search term. This allows for instant wikipedia browsing over wireless ala the hitchhiker’s guide. All for under 50$ nice!

Dosbox for Zipit Z2!

Pools of Radiance

It turns out that with a bit of source code modification, you can get dosbox running quite well on your zipit z2!! This is HUGE for me, as I’m currently reliving my youth with a Pools of Radiance campaign on my z2! For those impatient to try it out, DL the openembedded ipkg and modified source files at the end of this post.

Enabling Swap
Follow the directions here for adding a swap file. I recommend a good 64 meg chunk. This will keep dosbox from segfaulting when it searches for available memory.

Modifying Sources
Head into your dosbox source directory (or the dosbox/src directory in your OE bitbake tree) and do a
"grep -r "640" ./* ".
This will return all the source files containing video mode switches. You’re going to want to change all the SDL function calls from 640,480 to 320,240.

Installing Dosbox
Bitbake your new dosbox and install prerequisites. You’re going to need a whole mess of SDL libraries like sdl-net sdl-image sdl-x11 etc. My usual routine is:
(bitbake host) bitbake (package name) && bitbake package-index
(z2) ipkg update && ipkg install dosbox
if #2 complains, replace (package name) in #1 with missing package


Editing Dosbox config and startup

By default dosbox will enable a number of options that are not conducive to use on the zipit z2. Luckily you can pass the dosbox config file location to it on startup. I start dosbox straight from the command prompt, as opposed to from an xterm window. It saves about 1/2 meg memory, and every little bit helps. I start dosbox with the standard xfbdev script ala:
export DISPLAY=:0.0
Xfbdev -screen 240x320@90 -hide-cursor -br &
dosbox -conf ./.dosboxconf

My dosbox.conf is attached with the code below, but at minimum you’ll need to set the following option to enable the arrow keys:
usescancodes=false

And that should get you going. The initial dosbox window will be larger than your display, and the cursor may be scrolled off screen. This will be resolved when you start a game, but I like to add the game start commands to the dosboxconf as below:

[autoexec]
# Lines in this section will be run at startup.
mount c /home/root/
c:
cd poolrad
start

And that’s that! You can download the updated source code and ipkg files here.
dosbox modified sources and configs

Zipit Z2 - A Wireless TOR and Privoxy router in the palm of your hand

So I’ve got a new pet project, the zipit z2. If you don’t know this 50$ handheld is actually a moderately powerful computer. 32 megs of ram, a 2g sd card, and a 300mhz arm processor means I can do quite a bit of interesting stuff (we’ve certainly worked with less!). After doing the prerequisite install of Angstrom linux, I decided to see what it would take to run tor and privoxy on it.

Zipit Z2

Turns out, not much.

I’ll be posting quite a bit more on this in the future, but for those enterprising zipit hackers out there who need an anonymous connection to the outside world, look no further than this post.

Changes required for tor:
If you attempt to bitbake tor, you’ll receive c++ build errors about duplicate declarations of a couple of functions. This is due to unnecessary forward declarations of these functions in the .h files. Simply open the .h files mentioned by the errors, and delete the offending line. Tor will then compile fine.

Changes required for privoxy:
If you attempt to bitbake privoxy, you’ll receive an error from the configuration script about your build environment. Luckily, it’s harmless. Browse into the source tree and open up the ‘configure’ script. Search for the “incorrect host” (or whichever particular message you received) and delete the if/fi codeblock surrounding it. Do this 3 more times (its in there multiple times) and privoxy will compile fine.

And that’s it. Just set your /etc/privoxy/config to forward to socks port 9050 (standard privoxy config) and you’re secret squirrel!

Calorie Counter for Game Boy Advance and Nintendo DS

Ok,

So having lost 30lbs since I wrote the python calorie counter, I’m a big proponent of counting calories. It WORKS. Not only that it’s easy, and it appeals to the chewy mathematics center of my brain. All is well and good, and I’ve got a nice phone that supports python scripts so I’m set. There are some instances though, where a phone is just too much bulk to carry around and I really just need something smaller.

As luck would have it, I came across a game boy micro.Game Boy Micro This little devil is TINY, and fits right in a shirt pocket no troubles. Plus you can get one for 30$ used at gamestop, bonus! However there was one tiny snag, there’s no python interpreter for GBA!

So I wrote a version of the calorie counter application for the game boy advance. It uses the savegame sram to store your current calories and calorie goal. It’ll work in any gba emulator, flash cart, or the nintendo ds gba slot. Even better, most flash carts allow you to use it for your startup game so the time to start is around 2-4 seconds. Very reasonable! Anyway, it’s pretty simple stuff and gplv3 so feel free to give it a try or even modify it. Note, you’ll need the excellent HAM gba library to recompile.

You can download it here: GBA Calorie Counter

Gba Calorie Counter - In Action

Halloween 2008 - King Me

Ok so here’s a hilarious photo from Halloween 2008. If you like it as much as I did, feel free to buy a mug at my cafepress store. I make no profit from anything sold, just the thought of that photo being out there is hilarity itself. King Me!

The Live For Free Philosophy — http://liveforfree.net/

So I’ve started a new website. Live For Free Originally I had planned for these articles to go into a book, but after 20 or so articles it became clear that the scope of a book is not great enough to encompass all that I have learned, or would like to learn.