Dwarf Fortress OS: Security through Insanity?

I want to design a new operating system whose entire user interface is based on navigating through an instance of Dwarf Fortress, you know just for fun. It would be like bringing back Norton Commander, but with a user experience designed by George R.R. Martin. If you wanted access to my data, you must be prepared to go on a quest!

Update: apparently someone on Reddit has already begun this critical work!

The goal of course, would be to make it that much more fun for people who want to inspect your laptop at border crossings and other powerless zones within 100 miles of a border.
When asked by an inspecting officer of some kind “What the hell is this?!”, you can then spout bardic verses such as these when describing how to navigate to your sensitive email, documents, contacts and other magical treasure:

“Of easy passage to the prize, I did not promise,” said the stranger. “Through haunted woods we must go, there to find the elf princess to join our quest, then through the savage plains to the dwarf fortress, to find the dwarf champion and learn the location of the final prize. The path will be fraught with danger, for we cannot make this journey alone.”


The Droid's Dharma: Supporting the Tibetan Language on Android

DISCLAIMER: I am by no means an expert in this issue – I am just an an enthusiastic hacker with a dream. Also I don’t read Tibetan, but I enjoy looking at it!

Thanks to the open-source movement and the hard work of many Tibet supporters and typography experts, I am happy to announce that  rendering of Tibetan characters is now supported on the most fantastic of mobile smartphones, Google Android!!!

Tendor’s Yarlung Raging blog viewed on a T-Mobile myTouch3G Android Phone

While it only has a small alphabet of characters, the Tibetan language has been notoriously difficult to support on Mac, Windows and Linux due to some complexities in how one character can modify the next. Dedicated academics, volunteers and software engineers have stayed focused on solving this and the most recent versions of all major operating systems are able to render Tibetan and provide Tibetan character input tools. Google Android is based on Linux, and fortunately is able to support the use of the GPL-licensed Tibet Machine Unicode font.


However, by default Android only has a small number of fonts built-in, and doesn’t support the easy addition of new fonts or locales. It does however have something called the “fallback” font, which is used to render any encoded text it comes across that it doesn’t quite know what to do with.

What I realized is that you could replace this font with a Tibetan unicode font compatible with Linux, and that this would then enable Tibetan support in all applications on Android, including the web browser, email apps, instant messaging, and short messaging (SMS), among others.

The steps below outline the technical how to for Android users.

WARNING: This is not for novices. However, it isn’t rocket science either. Your average neighborhood mobile phone enthusiast should be able to figure out how to do this, and potentially help their friends do it too. Down the road, I hope we can make this process easier and/or Google will allow for the addition of any font to the system.

Step 1: Get Root on your Android device. You don’t need to mod your phone with a custom firmware, you just need root access to change system fonts. Here’s some places to start looking on how to (this changes weekly, btw, and differs for each type of Android phone):

Step 2: Download Tibet Machine Unicode font. You can learn more about the variety of Tibetan fonts available here.

Step 3: Make the system font folder writeable and backup the existing font
This can be done using desktop ‘adb’ tool from the SDK or the Android terminal app on the device

# su
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
# chmod 777 /system/fonts
# cd /system/fonts
# mv DroidSansFallback.ttf DroidSansFallback.ttf.bak
# exit

Step 4: Write the Tibetan unicode font as the new fallback font:
Using ADB Desktop tool with Android connected via USB

adb push TibMachUni-1.901b.ttf /system/fonts/DroidSansFallback.ttf

Using on-device terminal app:

#cd /system/fonts
#wget -o DroidSansFallback.ttf http://tinyurl.com/tibfont /system/fonts/DroidSansFallback.ttf

Step 5: Reboot your Android phone

Step 6: Point your Android browser at http://yarlungraging.blogspot.com, http://lobsangmonlam.org/ or http://tb.tibet.cn to verify the Tibetan font support is properly installed.

What’s Next

Two big steps from here… this is a call to action for Android developers out there:

  • Develop a one-click app that can install Tibetan (or any other third-party language) font for any rooted device
  • Port an existing Java-based Tibetan input utility into Android as an Input Method Editor so that you can have a way to write Tibetan character emails, SMS messages and blog posts.

Many thanks to the authors and developer behind the following posts upon whose work this effort was based:
karuppuswamy.com: How to change fonts in Android?
karuppuswamy.com: Mounting /system partition in read-write mode in Android
android-devs.com: Adding Additional Language Fonts to Android

Externally Visualizing TwitterVoteReport.com

You might have seen a previous post about the VoteReport for Android I developed. This was done as part of the twittervotereport.com effort, which is aiming to use a variety of communication tools (sms, iphones, g1’s, plain old phone lines) along with open standards and mashup technologies to create an effective tool for tracking problems (and successes!) at the polls on November 4th.

One of the exciting aspects of this project is that the primary visionaries, architects and developers committed early on to opening up the data they are collecting, providing a variety of feeds to access the incoming reports:

Here are the various ways that you can access the data collected by Twitter Vote Report, as detailed by our Andrew Turner:

* OpenSearch – http://votereport.us/opensearch.xml
This is the OpenSearch description document that outlines all of the feeds and various filters that you can use when getting to the data.
* KML – http://votereport.us/reports.kml
Getting the reports.kml will give a Network Link – this is useful for GoogleEarth and other KML clients to automatically update every 60 seconds with new reports.
* GeoRSS-Atom – http://votereport.us/reports.atom
Just want to subscribe to the feed in your RSS reader, this feed is useful for getting updates.
* GeoJSON – http://votereport.us/reports.json
JSON is super nice for doing client-side mashups and visualization. This is what the Vote Report Map itself is using. It includes a lot of information for each report, including reporter, icon, location

I haven’t been involved in the backend development of the TVR system because a) I couldn’t fully commit to the herculean effort they’ve made and b) much of it is implemented in Ruby on Rails, a platform which I am not that familiar with. However, I had a few hours today and decided to become a consumer of the data feeds (specifically GeoJSON) they have provided to implement a service using Java/JSP. My aim was to provide an alternate system for browsing the reports and visualizing them, as well, and perhaps just act as a backup repository.

Thus, I’ve created TVR on OpenIdeals – the same data as what you’ll get on the main twittervotereport site, but with some different tools for looking through it and for sharing it on your blog.

TwitterVoteReport on OpenIdeals

I also wanted to provide some other options for creating widgets out of the data. Here’s an example of a dynamically updating widget you can create that displays the last 25 reports from Virginia:

Here’s a view of anyone having a bad experience at the pools:

That’s about it. Check out the site and please tomorrow make sure you 1) VOTE and 2) report how your vote went using the TVR Reporting Tools.

VoteReport for Android 0.9.4

I hate calling things 1.0, so I didn’t – VoteReport for Android 0.9.4 is released and available in the Android Marketplace (like the iPhone App Store). If you have a T-Mobile G1, just open the Market application and search for “votereport” or simply browse under the Productivity category. You can also download it direct at: http://openideals.com/android/VoteReport.apk (and you don’t even have to jailbreak anything!).

Splash screenFilling out the formSubmitting the reportLatest reports from the web
view full set slideshow

The application is free to download, obviously. The code will be shortly, as well. All in all the entire effort took < 10 hours, albeit with lots of prep and design inherited from the iPhone app effort.

What is this mysterious TwitterVoteReport project? Read on…

Twitter Vote Report is an all-volunteer network of software developers, designers, and other collaborators have teamed up with the award-winning blog techPresident to launch this effort. The only resources contributed to this project are the participants’ time and expertise!

Millions of Americans will be voting this Election Day. Many of these voters will have terrific experiences and we’d love to hear about those. But many voters will experience voting problems that we have been hearing about for years: long lines, broken machines, and registered voters who can’t vote because their names aren’t showing up on the registration rolls.

Using Twitter Vote Report, voters will be able to share their experiences and resources with one another to solve problems quickly (e.g. “don’t come now, the line is too long”). These messages will then be aggregated and mapped so that we can “see” voting problems around the country in real-time.

I am hoping to make some improvements on it in the coming day or two, but know there are more important tasks at hand, and just wanted to makes sure the core functionality was out there.

Now get out there and let’s keep this election clean!

Attack of the "Mad Men" Twitter-Bots

I experienced an interesting phenomenon this morning using Twitter, and I have to believe some sort of automated twitterbot marketing network is behind it.

It all begin with an innocent tweet about how I spent the weekend: “MC and I were sick all weekend, so we watched the entire first season of “Mad Men”…. time to start wearing my fedora again!”. My wife Micaela and I have been avidly watching the second season of AMC’s Mad Men, and took the $20 plunge on iTunes to catch up on the first season.

A few minutes later I received an email notification from Twitter that bettydraper was now following me. I laughed, and thought it was cute that some person out there loved “Mad Men” enough to a) impersonate one of the main characters, b) notice my tweet and c) actually then follow my feed. I followed Betty in return, and noticing she referenced @don_draper in a recent tweet, I followed him as well.

Now, I quickly realized this must be some sort of viral marketing campaign, or at the least an obsessed group of fans, role playing and recreating these characters in Twitter, hoping to tap into some of the magic of infamous twitterers such as DarthVader or Fake Steve Jobs. Then, however, something strange began…

Within minutes, I was also being followed by jane_segel, Ken_Cosgrove, and harrycrane, all characters from the show. Not that intrusive, but obviously my twitter account was being glommed onto by more make believe twits… how many more should I expect? The whole Mad Men crew?!

What to make of this? Well, considering the timing, either there is a dedicated staff of trained twitter monkeys, or someone has built a bot engine using some combination of Twitter Search and the Twitter API. Nothing mind blowing here, but interesting to come across it in the wild and to see how multiple twitter identities are weaved together to create, or perhaps recreate, the relationships of the show in this online environment.

What did bother me, was the speed at which I was picked up and followed by all of these other characters… just because I was interested in Betty and Don’s tweets, doesn’t mean I want to also know that Cosgrove and Harry Crane are out there, too. Now that they’ve got me hooked, perhaps the bots could monitor the frequency at which I mention Mad Men, and follow me, draw me into, their twitterweb over time. That would be more natural, and reveal the truth of itself in a much less obvious way.

The obvious irony is that this whole post is about viral marketing for a show that is all about the greatest era of marketing that ever existed… the era that created much of how we think about mass marketing and advertising. While digital campaigns such as this pique my imagination for a few moments, they unfortunately don’t have the staying power of an Oscar Meyer weiner tune.