Gravit universal binary released for Mac OS X

Gravit is an Open Source gravity simulator I started writing in 2003 and worked on it in my spare time until about 2005. It’s written in C and uses OpenGL, SDL and Lua.

Even though Gravit has worked on Mac OS X for a while, I didn’t get around to actually making a bundled application for it until now. Normally you would have had to compile it from source, usually with some tinkering of the source code and build settings.

The UI needs some more work to make it more like an OS X application, but I don’t have time for it at the moment. For now, here is the gravit-0.5.0.dmg universal binary and a quick tutorial on using it. Don’t forget to hold down the fn key when dealing with function keys, and if you have any problems please tweet them at me. Enjoy!

What is the longest word you can type with one hand?

I was looking for random, useless facts on the Internet the other day and found one that said:

“Skepticisms is the longest word that alternates hands when typing.”

This turned out wrong. A friend convinced me to write an application to work it out, and I decided to make it do more…

The application uses the UNIX words file to scan for words. Granted, not all the words actually are real, but it is a good indication.

To cut to the chase, the longest words with one hand on the QWERTY keyboard layout are 12 letters long:

aftereffects, desegregated, desegregates, reverberated, reverberates, stewardesses

These are all left handed words. In fact, there are 57 longer words that can be typed than the longest right handed word. The longest right handed word is “polyphony” with 9 letters. I found this a bit unusual so I decided to graph it (below). With alternating key strokes, the longest words are:

authenticity, enchantment, entitlement, proficiency, shantytowns

These are 12 letters for authenticity and 11 for the rest.

Here are the graphs for QWERTY with left vs right vs alternating sides:

I recall that the Dvorak Simplified Keyboard was designed with alternating hand key strokes in mind. With alternating sides, the highest word count is 14–slightly more than QWERTY’s 12. These words are:

overemphasized, overemphasizes, unpremeditated, verisimilitude

Interestingly enough, the Dvorak layout has very few words that have multiple key presses on the same side of the keyboard. The left side is the most popular with the longest words, at 6 letters, being:

kookie, opaque, papaya, upkeep, yippee, yuppie

The right side has a lowly score of 3 letters, one isn’t even a word:
brr, nth

Here is the Dvorak graph:

Well, come to your own conclusions from this data! I was just curious and slightly bored…

The graphs are made with Google Charts API using the pygooglechart module. If there’s enough interest I’ll throw the code up on github.

Wireless Heatmap

Update: WiFi Heat is available on the Google Play Store! For more information, see

I wrote an application to generate a wireless (802.11) heat map based on signal strength. The reason for it was to find the best place/area (for my laptop) to be with the highest signal strength. Below is a screenshot of the application (with the ESSID and BSSID removed for security reasons).

This heat map has about 100 samples in it, which are shown as white dots. There is a balcony at the top of the image and the common office area on the right, which was drawn by hand (hence the waviness). As you can see it has pinpointed the location of the access point in the red area.

Continue reading Wireless Heatmap

Python Google Chart 0.2.0

I released pygooglechart 0.2.0 this afternoon after several months of patches coming in to add features and fix bugs. The main addition to pygooglechart is automatic data scaling, which is turned on by default. You can also specify the scale range manually:

chart = SimpleLineChart(width, height, x_range=(0, 100), y_range=(0, 100))

Other features are the new API chart types and options. There are 3 new chart types: Map, Google-o-Meter and Radar. Here is an example of using the Map chart type:

import pygooglechart as gc

chart = gc.MapChart(440, 220)
chart.set_colours(('AAAAAA', '30A030', 'A0C030'))
chart.set_codes(['AU', 'US', 'CA', 'BR', 'NZ'])
chart.add_data([1, 0.5, 0.7, 0.3, 0.1])'map.png')

Produces the URL:×220&chd=s:9frSG&chco=AAAAAA,30A030,A0C030&chtm=world&chld=AUUSCABRNZ

And the image:

The Google-o-meter has a funny name. Here is an example of its usage:

import pygooglechart as gc

chart = gc.GoogleOMeterChart(440, 220, y_range=(0, 10))

It produces this URL:×220&chd=s:x&chl=Awesome

And the image:

Well, have fun. Please tweet me for any bugs, patches or feature requests you have.