Creating a BBS in 2015

posted on apr 2nd, 2015 with tags retrocomputing and ruby, and last updated on mar 28th, 2015

Although it fooled nobody, yesterday for April Fools’ Day, Lobsters users that normally saw a boring list of story titles and links were greeted with a BBS-style interface to the site complete with story and comment browsing, private message reading and sending, and a multi-user chat area.

The BBS remains active at https://lobste.rs/bbs (you can login as “guest”).

screenshot of lobsters BBS login terminal

Continue reading 2,816 words...

Remotely Installing OpenBSD on a Headless Linux Server

posted on sep 12th, 2014 with tags linux and openbsd

I recently activated a new dedicated server that came preinstalled with Linux, as the hosting provider didn’t support OpenBSD. Since they also didn’t provide an IP-based KVM without purchasing a dedicated hardware module (though most of the IP-KVMs I’ve used recently require interfacing with some terrible Java-based monstrosity anyway), I needed a way to remotely install OpenBSD over the running Linux server.

Continue reading 988 words...

Adventures in Toronto

posted on jun 9th, 2013 with tags openbsd and travel

I spent a week in Toronto, Canada attending the OpenBSD t2k13 hackathon hosted at the University of Toronto. While these events are put on every year in random places, I have not attended one since c2k7 in Calgary back in 2007. I tried to go to the Portugal hackathon last year but my travel plans got all screwed up.

I wrote about the technical details of what I accomplished at this event at the OpenBSD Journal so I won’t duplicate it here, but it was a fairly productive week for me. I remember at c2k7 I didn’t really have much to work on and felt out of place but this time I had more things to do than I had time.

Continue reading 723 words...

An Update on Pushover

posted on sep 23rd, 2012 with tags android, ios, iphone, pushover, and superblock

It’s been a little over 6 months since I released Pushover, the notification service with Android and iOS apps. I’ve been asked to post an update on how things have been going since then.

Shortly after the initial release, I received some great feedback from Chad Etzel, one of the creators of Notifo, the notification service that I used until it was shut down (which prompted me to create Pushover in the first place). Chad asked for Pushover to support sending messages with URLs that can open external apps, and Pushover soon gained supplementary URL support which required changes in the API and on both Android and iOS apps.

Continue reading 1,758 words...

Hellbanned from Hacker News

posted on jun 13th, 2012 with tags drama

Yesterday I submitted a post on Hacker News out of frustration at moderators pedantically changing post titles. After quickly rising to the number two spot on the front page with 482 points and 37 comments, the post was deleted by a moderator, presumably the operator of the site, Paul Graham.

Continue reading 816 words...

Counting Pull-ups

posted on apr 25th, 2012 with tags fitbit, openbsd, and ruby

I’m a big fan of my Fitbit pedometer because it does most of its work without any interaction. I clip it onto my pocket and it counts my steps and flights of stairs as I walk throughout the day, then automatically, wirelessly uploads the data to Fitbit’s website whenever I’m within range of its USB dongle plugged into one of my computers. The whole thing works without having to think about it or plug anything in. The battery lasts for about a week, and when it finally runs low, my low battery notifier sends a message to my phone through Pushover telling me to put it on its charger for a few hours.

To add to my step data, I got a Withings scale last year which logs my weight and BMI on Withings’ website automatically every time I step on the scale. Fitbit’s website syncs this data from Withings, so now I’m able to track my steps, flights of stairs, weight, and BMI, all automatically, all on Fitbit’s website. I use this data mainly as a motivation to walk more and not get fat, just as my Wii Fit motivated me to exercise every day by tracking all of the data. When I know my Fitbit is counting my steps, I’ll avoid hopping on the bus or train to get home and just walk. A few times I’ve left the house and upon noticing my Fitbit wasn’t there, walked all the way back and got it just so the steps I was going to take that day would “count”.

Continue reading 876 words...

Building Pushover

posted on mar 16th, 2012 with tags android, ios, iphone, pushover, and ruby

On March 7th, 2012, I announced the launch of Pushover, a simple mobile notification service with device clients available for Android and iOS. I kept some notes during the development process, which mostly occurred in the evenings and weekends around my other work.

I had been using Notifo for a year or so to receive push notifications on my phone from my custom network monitor, but last year the free service announced it was shutting down. When I switched back to my Android phone a few months ago, I was unable to download Notifo’s Android app which never made it out of beta.

Continue reading 4,266 words...

On Android

posted on nov 20th, 2011 with tags android and blandroid

The source code to Android 4.0, nicknamed Ice Cream Sandwich, was made available last Monday. For developers of Android ROMs like my Blandroid project, these source code releases enable us to release our own modified versions of Android to users that prefer to use our software on their phones. The source code to the previous major version, Android 3.0, was not made available1 and was only given to certain tablet manufacturers like Motorola.

Continue reading 2,815 words...

An Ecobee Automation Hack

posted on aug 29th, 2011 with tags apple, ecobee, and ruby

I’ve had an Ecobee thermostat in my house and now in my apartment for a number of years. It’s a touchscreen thermostat equipped with 802.11 wireless that can be remotely adjusted and monitored from Ecobee’s website as well as iPhone and Android applications. While the expected use case might be monitoring the temperature of one’s home while at work, I often lazily use the phone applications while at home when I’m too cold to get out of bed to turn the heat up. With some Ruby code and SNMP, I am now able to automatically detect when I am home and when I leave the apartment, and adjust the temperature automatically.

ecobee thermostat mounted on wall

Continue reading 1,089 words...

On Tinfoil Hats

posted on mar 23rd, 2011 with tags security

Some time in 2010, Google, Adobe, and “dozens of other high-profile companies” were hacked by the Chinese government. The attack was done through a previously unknown vulnerability in Internet Explorer and considered to be highly sophisticated. The attackers copied intellectual property of these companies and accessed Gmail accounts of human rights activists.

Rather than directly hack into the accounts of those activists, the entire e-mail provider was compromised.

Continue reading 1,427 words...

Pipe Event Plugin for Adium

posted on dec 27th, 2010 with tags adium, macos, and pidgin

Back when I used OpenBSD on my laptop and Pidgin for instant messaging, I wrote a D-Bus script to watch incoming messages and forward any to my cell phone that were received while my screen was locked. The script forwarded messages to Prowl’s web API, which would forward them to my iPhone using push notifications.

The last time I switched back to a Mac desktop, I had to switch back to Adium and lost the ability to selectively forward messages. While Adium does have an event action to run an AppleScript, there’s no way of passing the actual event text to the script, so it has to talk back to Adium and try to find the newest message. The only option was to generate Growl notifications for all messages and then configure Growl to forward them to Prowl. I got fed up with that pretty quickly, so I modified Adium to create a new event type for “messages received while away”. That way I could have the Growl notification only on that event, so I would only get messages forwarded while away. That worked better, but it prevented me from being able to go away while still at my computer without getting a bunch of messages queued up on my phone.

Continue reading 552 words...

Properly stopping a SIP flood

posted on apr 11th, 2010 with tags asterisk, networking, openbsd, ruby, security, and voip

At about 9am yesterday morning, I noticed on my server monitor that the CPU utilization of one of my servers was abnormally high, in addition to a sustained 1mbit/sec of inbound traffic and 2mbits/sec of outbound traffic. syslog messages from Asterisk showed it to be a SIP brute force attack, so I dropped the offending IP (an Amazon EC2 instance IP) into /etc/idiots to block it and went back to my work.

A while later, I noticed the traffic still hadn’t died down, so I reported the incident to Amazon and my server’s network provider. No luck on either front; Amazon just sent back a form reply stating the incident was forwarded to the EC2 instance’s owner (yeah, seriously) and the network provider said they wouldn’t bother adding an ACL to their border equipment unless it was needed to protect their entire network. With the IP blocked on my server, the CPU utilization had died down and it was no longer sending out reply traffic, but I was worried about the inbound garbage traffic counting towards the server’s monthly bandwidth cap.

Continue reading 832 words...

Restoring Case-sensitive HFS+ Volumes with Time Machine

posted on nov 11th, 2009 with tags macos

I’ve always formatted my Mac OS partitions with case sensitivity enabled, which usually means formatting a new system and re-installing Mac OS X as soon as I get it. After installing the 10.6.2 update, I lost my system menu bar icons and was forced to restore from a 10.6.1 backup made the day before.

Following Apple’s instructions, I booted to the Snow Leopard installation DVD, chose the “Restore System from Backup” option and thought I was on my way. About 50% into the recovery, the recovery application crashed:

Continue reading 820 words...