Sometimes you need to pretend to be in another country.
VPN’s are great for this, but one novel approach is Unblock-Us which changes the location of your DNS server, instead. You use your IP, but you make DNS requests against in-country DNS servers, thus directing you to the application servers supporting that country. There is no anonymity, but you don’t have to worry about bandwidth caps, and it’s worked for every service I’ve tried it on.
I use this when I need to access video that is region limited. However, changing your DNS servers through the Mac settings app is a pain when you have to do it over and over again. On Windows they have an app to download which can manage the change for you.
So what I did on my Mac was create a script to use the built in networksetup command to change my DNS as needed.
networksetup -setdnsservers "Wi-Fi" 208.122.23.23 208.122.23.22
And one to un-set it.
networksetup -setdnsservers "Wi-Fi" "Empty"
To top it off, I built a simple Alfred workflow, making it even quicker and cleaner.

You can download that here: Unblock-Us Alfred Workflow.
Note that if you are using a wired network interface, you’ll need to change the service name from “Wi-Fi” to, well, whatever it is you are using.
I use Campfire in my browser, and I often run multiple rooms side by side. This gets crowded in each browser window, so I made a bookmarklet to easily trim out the extra UI. It drops the sidebar and header, and widens the remaining elements. You loose some functionality, but I find I don’t really need it. A refresh will restore it to normal.
javascript: (function () {
document.getElementById('Header').style.display = 'none';
document.getElementById('corner_logo').style.display = 'none';
document.getElementById('launchbar').style.display = 'none';
document.getElementById('Sidebar').style.display = 'none';
document.getElementsByClassName('Left')[0].style.width = 'auto';
document.getElementsByClassName('speak')[0].style.width = '100%';
}());


You can add this to your bookmarks bar by dragging this link to the bar: ThinFire
I had previously rooted my Droid2, but it was broken when the OTA Gingerbread came down. I don’t really use root for much now that I don’t really develop for Android anymore, but I found a need today, so I decided to re-root.
I found a nicely packaged exploit on rootzwiki, but when I ran it I hit a snag.
* daemon started successfully *
* Running exploit [part 3 of 3]...
remount succeeded
5524 KB/s (1867568 bytes in 0.330s)
651 KB/s (26264 bytes in 0.039s)
5928 KB/s (196521 bytes in 0.032s)
pkg: /data/local/tmp/Superuser.apk
Failure [INSTALL_FAILED_ALREADY_EXISTS]
link failed File exists
My old root was blocking my new root. Lame.
Easy to fix after poking around on the file system.
Essentially it boils down to this:
- Manually remove old Superuser.apk
- Clean up Superuser.apk data files
- Install new super user apk
- Link up new su
Details below, but as always YMMV.
Manually remove old Superuser.apk
Make sure you know the full namespace before you delete this file, you will need it later (i.e. com.noshufou.android.su)
[email protected]:~/root$ ./adb.linux shell
# cd /system/app
# rm Superuser.apk
Clean up Superuser.apk data files
[email protected]:~/root$ ./adb.linux uninstall com.noshufou.android.su
Success
Install new super user apk
From here on out you are essentially just finishing up the root script that got skipped.
[email protected]:~/root$ ./adb.linux install Superuser.apk
3217 KB/s (196521 bytes in 0.059s)
pkg: /data/local/tmp/Superuser.apk
Success
Link up new su
[email protected]:~/root$ ./adb.linux shell
# cd /system/bin
# mv su su.orig
# ln -s /system/xbin/su /system/bin/su
All done! You should be rooted again.
I’ve used a lot of twitter clients over the years, I even wrote one back in ’08. TweetDeck is pretty good, but Air is shoddy on 64-bit Linux, and so it didn’t integrate well and would crash.
I rejected Gwibber and Choqok, just not my style. My old web standby Brizzly seems pretty lame these days too. Then I found Hotot. It’s awesome. It’s like a Linux native TweetDeck, but with a friendlier, more welcoming feel.
If you are looking for a Linux twitter client, you have got to give Hotot a try.

The Ruby gem for Qt4 bindings, appropriately called qtbindings, do not build by default with brew installed Qt4 libs.
There is a quick fix, but it’s hidden in the issues on github. Essentially you just need to symlink the brew headers to an expected location.
$ for DIR in /usr/local/Cellar/qt/4.7.1/lib/*.framework; do ln -s $DIR/Headers ${DIR%%/lib/*}/include/$(basename $DIR .framework); done
After that is run, gem install qtbindings runs like a champ.