Smash and grab

About a month ago I got notice that the hosting company I was using got bought by GoDaddy, which sucks. I was also due to pay for another year of service so I decided to move on (I’d transferred my domains out of GoDaddy years before). For the last 14 years, my blog has been self-hosted WordPress. I haven’t had any major issues over the years, but I don’t think I’m actually a sysadmin or could keep the blog together for another 14. I’ve moved to paid hosting on It has built-in backups and 2FA, two technologies that should keep this blog fairly resilient. In an evening I exported all of posts from my self-hosted install and imported them into the .com. The importer did not like the javascript embed wrapper Flickr currently uses for embeds (the majority of my photos). My blog also predates the built in image uploading for WordPress so many of my self-hosted images broke. I’ve imported all of the images though and have been fixing posts as I find them, starting with the ones stats tell me people actually view. Thank you for continuing to follow my blog and reading all the way to the end of this post I’m using to test the RSS feeds.


Pseudo-VPN using CocTunnel + Network Beacon on OSX

Network Beacon
I started working in an office again last Fall and found myself wanting to access my home machine often. It was time to finally set up some sort of VPN. My home machine is a Mac mini attached to a projector and a Drobo. I have an iPad, phone, and work laptop, but that’s the extent of the computing devices I use at home. I use the mac mini essentially headless, accessing it via OSX’s built in Screen Sharing and file sharing. I wanted to recreate that experience remotely. Continue reading

Software 10 billion bug

This weekend @SanMo (original post) started freaking out and reposting the same tweets over and over again. Code superstar Chris Finke wasn’t available to help me track down the issue so I reanimated Chris Nelson for assistance. My initial thought was that Twitter had changed the way it served mentions. stores the status_id of each status it retweets in a sqlite database so it doesn’t repeat itself. Browsing the database, I noticed that the two tweets it was repeating were the first with ids above 10 billion (a recent milestone). Chris pointed out that running sqlite> SELECT MAX(status_id) FROM retweets; Returned the id ‘9663742534’ and not the true maximum. The table that creates has two text columns, one for status_id and one for the timestamp. Changing the status_id column to integer causes MAX() to work properly (I’m not sure what the technical reason behind this failure is). To get running again, I did the following (via Chris) from the command line:

# sqlite3 sanmo.sqlite
sqlite> CREATE TABLE retweets2 (status_id INTEGER PRIMARY KEY, timestamp TEXT);
sqlite> INSERT INTO retweets2 SELECT * FROM retweets;
sqlite> DROP TABLE retweets;
sqlite> ALTER TABLE retweets2 RENAME TO retweets;
sqlite> .quit

That will shift all the old data into a new table. The initial database creation routine needs to be fixed in and will probably be in version 1.3. The fix above works for me but your mileage may vary.


SSH over HTTP proxy

This is a fun little trick I learned while traveling this weekend. When I’m not on my home network, I often use ssh -D to dynamically forward all of my traffic via SOCKS proxy to a remote server. This weekend though, I found myself trapped in a network with only an HTTP proxy to access the internet, so I couldn’t even check my email via HTTPS. The solution was to use connect.c to relay SSH through the HTTP proxy. I temporarily added two lines to my SSH config that proxied all host connections through the HTTP proxy.

Host *
ProxyCommand connect -H %h %p

Then I set up my SSH SOCKS proxy as usual.

ssh -ND 8822

I used connect.c, but a friend had success with corkscrew.


Goozex, game/DVD trading

Goozex is a videogame and DVD trading service I’ve been using and I’m quite happy with it. Each game or DVD has a point value based on the age and demand. You earn points by giving items and spend points to receive items. Each trade costs the receiver 1 dollar. Points can be purchased 100 for $5. New games usually enter the market at 1000 points and age in 50 point increments.

Continue reading


Open Terminal Here and LSelect

I came to OSX from a Linux environment so there are often times when I’m using Finder and thinking, “Damnit, this would be faster with a command line.” I thought I’d share two tools that I’ve found alleviate some GUI pain. The first is Marc Liyanage’s Open Terminal Here which drops you into a shell in the current folder. In my experience, command line mplayer is the least crashy/clunky media player on OSX for playing odd codecs, so I just open terminal here when I find the file(s) I want to play. The second tool is Jim DeVona’s LSelect which lets you select files using shell style globbing just like you would with ls. It’s much faster than the GUI for even the simplest of tasks like selecting just one file type. I’m using both of these with Henrik Nyh’s fine icons. I hope you find these tools useful.



Shareaholic is a browser addon that streamlines the process of using bookmarking services. When it originally debuted, I wasn’t using Digg or delicious that often. I’ve recently accumulated a lot of bookmarklets that I use fairly frequently and decided to give Shareaholic another go. These are the services I’m using Shareaholic for:

  • – When I want to share a link on Twitter, is my goto. It shortens and gives you free stat pr0n.
  • Google Reader – I’ve got a fun group of people on Reader and this makes it easy to inject stories into my shared items.
  • Instapaper – I’m guessing I’d get more mileage out of this if I was an iPhone user.
  • Tumblr – Used most often for adding posts to Fucking Curated.
  • WordPress – For posting here.
  • Amazon Universal Wish List – I always wanted to make more use of this and Shareaholic makes it easy.
  • Gmail – Sending links via Gmail was all I every used Mozilla’s Ubiquity for.

I installed the extension on Firefox and now that the dev channel of Chrome for Mac has extensions I’ve got it there too.