Dented Reality

Stroll in the Park

It is now 12:04am, and I just got back from a walk.

There are a few things about this walk to make it notable:

  1. I got up from my desk at 11:35pm and headed out for a brisk walk, mainly so that I could try to get over 6,000 steps today.
  2. I measured my steps using a Fitbit, and had the specific target because it’s part of an internal fitness challenge Automattic is hosting through Keas.
  3. I took the chance to compare Fitbit to RunKeeper for measuring walking (mainly looking at distance accuracy, but also at calorie burn).
  4. A guy (probably high) most definitely lined me up to attempt to mug me, he even tried to walk with me/talk/engage to distract me and get me to stop, but I out-walked him and he kind of gave up.

So; fun stuff all around. Here’s the data, from RunKeeper:

and for the same time period from Fitbit:

What’s interesting here?

  • FB reports that I burned 163 over RK’s 126; that’s a 23% difference.
  • FB reports that I covered 1.22 miles, while RK reports only 0.76 miles. Almost 40% difference.
  • Pace is barely even worth comparing when distance is so differently recorded. Time even shows as 40 seconds different, although I’ll give FB the benefit of the doubt and assume it’s rounding.
  • You can actually see the part where the guy approached me, because I sped up. If you look at the map from RK, it was on Larkin St, between Broadway and Pacific. He tried to “walk with me” so that he could get me to stop, but instead I just walked faster. I topped out right there at 14.4 minutes per mile according to RK (just over 4 miles per hour).
  • If I hadn’t been trying to meet a daily fitness goal, I wouldn’t have been walking around at midnight, making myself a target for getting mugged :)

Maybe I should run instead of walking, since high/homeless/whatever people are even less likely to give chase?

Closing a Window in JavaScript

If you’re having trouble closing a window using JavaScript, this might help. I’ve had this problem sometimes in Chrome in particular when I open a window, then follow through a bunch of redirects or something. It seems to lose track of the fact that I “control” this window object, so it doesn’t allow me to close it. This fixes that:

window.open('', '_self', '');
window.close();

Basically it reopens the window on itself, then immediately closes itself. Neat. Haven’t had any problems with it not working in other browsers, but I also haven’t super-widely tested it.

WordPress Authentication Framework: Keyring

Keyring: An authentication framework for your plugins

Quite a while ago (like, in at least 2009), I started thinking about regaining control of all the content I was producing online. I was posting photos to Flickr, saving bookmarks to Delicious. I started Tweeting. I was checking in. All fun and games, and all of those services offer great tools for interacting with them (let’s face it, tools that are much better than WordPress’, because they are focussed on one thing). So I figured, why not write importers for these services and pull my content back over to my WordPress. And keep doing it periodically, so that I could keep using those tools. I want WordPress to be my “home on the web”, my digital hub, but I want to use these neat tools with their fancy apps and what-have-you.

Very quickly, I realized that if I was going to do anything useful on most web services, I’d need to be able to authenticate with them. No biggie, right? I know my username and password… Oh. Right. OAuth. Turns out that most web services use OAuth (or something similar) to authenticate, and it turns out that that’s actually a bit of a bear to implement, when all you want to do is write a simple little Twitter importer. And then again for a Foursquare importer. And a Flickr importer.

What I needed was a shared, generic authentication framework that would do all the heavy lifting for me. I would tell it I wanted a connection to specific service, and if it didn’t have one, it’d walk the user through the process of getting one. It’d give me a standardized format of authentication credentials and abstract out all the complexity of making authenticated requests against those services. Then it would make me a coffee*. What I needed, was Keyring.
Read the rest of this post…

Timbuk2 Command: Probably the Best Messenger Bag. Ever.

Timbuk2 Command

I’ve had or tried a bunch of different messenger-style bags in my time, but I may have come across the Perfect Bag™. The Timbuk2 Command has all sorts of neat features and extras that make it suit me absolutely perfectly. Here are a few highlights: Read the rest of this post…

A Random Idea Around Small-Group Collaboration

I use CloudApp a lot, and recently saw mention of Dropmark. That got me to thinking of a relatively simple, WordPress-powered application for small-group-collaboration which I thought I’d throw out here in case anyone wanted to build it.

  • A WordPress installation, with a group of people who all have accounts
  • A small Mac/Windows app that lived on your desktop/menu-bar/somewhere easy to get at. Let’s call it… Guppy.
  • All users download a copy of Guppy and configure it to point to the same WordPress install.
  • Guppy now sits on their computer, waiting for them to interact with it.
  • When they drop files on this copy of Guppy, it does some magic
    • Images will be uploaded and inserted into a Post, or set as a gallery (if there’s more than one),
    • Text files will be uploaded and rendered as pre-formatted text,
    • Other will be uploaded and attached to a Post,
  • Double-clicking/clicking Guppy would open a small window where they could type in some text (and perhaps also drop files into that window and have them appear as “objects” within their text)
  • Right-clicking Guppy would allow you to change options, jump to the configured website (like you didn’t already have it open in a browser tab!), create a new instance of Guppy, maybe some other stuff.
  • All of this content is published as Posts on the connected WordPress install, and is automatically formatted beautifully (perhaps via an optional theme that’s geared heavily towards collaboration?). Comments are enabled, so you can discuss things on that site, right there while you’re looking at it.

In essence this is just a streamlined, simplified, beautiful WordPress client. There is nothing stopping someone from creating this today. There you go internet, 1 more free idea.

First Siren Net Checkin

In October 2010, as part of my NERT training, I attended a “HAM Cram” class here in SF and gained my FCC HAM license. I picked up a Yaesu VX-7R radio and then tinkered around a bit, but never really got into HAM too much more than it just being a fun idea. Since then I’ve listened on and off to the weekly Siren Net that happens in SF, but I’ve never actually called in and reported what I was hearing.

Today I had my first check-in (from home), and it was fun. It also felt good to know that I was helping the city keep track an emergency system that might save lives at some point. I checked in via the repeater at 443.100+ tone 114.8 and had a bit of interference, but it was clear enough for the net control to hear/understand me after a clarification. ”KJ6LFV, back to net control” :)

Camping on Angel Island

Over the Thanksgiving break, some friends and I went camping over on Angel Island, in the San Francisco Bay. It’s quite a unique experience, camping in amongst so much city/so many people, yet being so isolated. We caught a ferry from SF over to Tiburon*, and then another from there to Angel Island. Once on the island we checked in with the ranger, then backpacked (via North Ridge Trail) over to our spot (campsite #3, on the East Bay side of the island).

We were greeted with a pretty amazing view out over the East Bay, which continued all night as it remained clear and cold. The lights were thoroughly impressive and provided enough light for us to night-hike up to the top of Mt. Livermore (once our eyes had adjusted). The view from there was even more impressive, providing complete 360° views of the entire bay area.

Not having a fire there was pretty rough (only charcoal fires and camp stoves are allowed, due to fire hazard), so we had to have a nip of whiskey to keep us warm instead. We also got to see a few pretty big shooting stars while we were sitting out chatting at night.

In the morning we took our time to get up, enjoy some breakfast (more Thanksgiving leftovers!) and then hiked back down to Ayala Cover, where you catch the ferry. 2 ferry rides later and we were back in the city again.

*Note: During summer it would be much easier to just catch a ferry direct to Angel Island, but because it was off-season and the day after Thanksgiving, the ferries were running on holiday schedules, so we had to do it this way.

Mounting Remote Filesystems in OSX

       

Most of my work for Automattic is done on a remote sandbox machine, somewhere in Texas. I’ll often jump in and make smaller edits over SSH via vi, but when I’m doing something bigger I much prefer to work locally, using TextMate (I’m on a Mac, obviously). To do that, I need to be able to access files as if they were local, which means either duplicating them to my machine (lame, annoying) or mounting them directly.

I’ve been doing that via one of the following options, and I’m wondering if anyone out there has a better solution.

I’ve tried both for a while now. They both work. Except for when they don’t. Here’s what I’d found:

  • Transmit seems more responsive, when it’s working
  • Macfusion often crashes Finder the first time I access a newly connected filesystem (and is then reasonably stable)
  • Transmit much more randomly just stops working and gives no indication, I just can’t browse any more and have to disconnect/reconnect
  • Macfusion allows you to easily customize a neat icon for each filesystem
  • Transmit seems to have more aggressive caching (or a longer TTL on it) of filesystem details (part of what makes it feel more responsive)

So, have you used one of the following methods? Is there a configuration option I’m missing? How do you go about solving this problem?

UPDATE: I should have mentioned that I need to be able to do this over the open internet (securely), where I’m not connected directly to the same network as the server.

On Internet Addiction and Connectivity Bubbles

If there’s one thing that travel has done for me lately, it’s made me recognize and accept how addicted and reliant I am upon my smart phone (in my case, an iPhone).

When you travel (internationally), you have to make a hard choice — do I shell out big $$$ to AT&T to get an international data plan, do I shell out even bigger $$$ to use roaming data, or do I sever the umbilical and disable roaming data. Roll the dice on being able to get wifi. Or worse yet — don’t use the internet at all. Gasp.

Traveling with others, I get this feeling that some people who don’t get an international plan are hopping from connectivity bubble to connectivity bubble, holding their breath in between and hoping they make it to the next one alive. There’s a sense of relief when they can get back online. Check Twitter. Check email. Check in. Check a map. OK, now hold your breath and hope we can find somewhere else with wifi before it’s too late!

I’ve found myself more and more often opting to not get any data access at all, and to actually relish the experience of not having connectivity for the most part. When I was in Chile, it was rough at first, not having access to maps, Google, etc. But I got used to it. It was like taking a step back in time. I talked to people. I used a paper map. It wasn’t so bad. It turns out that not having connectivity to the world wide web forces you to live in… the world right in front of you.

That’s not a bad thing. Try it.

Wakemate vs Fitbit: Sleep monitoring and the quantified self

A while back, I got a Wakemate and was pretty gung-ho about it being a great device for monitoring your sleep and helping you feel a bit more refreshed when you wake up. I recently picked up a Fitbit as well, so as a bit of fun, I thought I’d compare the 2 devices for sleep monitoring and write up a bit of a review. Here we go.

Read the rest of this post…