Busy days here, which is not really anything new. I have found in my spare time that I have been quite happy to work on my growing catalog of toddler photos and spend lots of time biking and jogging — summer has come to 7,000 feet and it’s time to soak up the outdoors.

But there have been a bunch of bits and pieces bubbling along that I have wanted to share. Here are a few of them.

Here’s a Drafts action that sends entries to Day One along with a tag for my son’s name. This one is for capturing and saving bits and pieces of things he says and moments that catch me off-guard — which, as he gets more remarkable, are most days. Replace TAG twice in this to use it with a different tag; nothing complicated here, but I had to tweak it a bit to get what I wanted (specifically, to get the right urlencoded newline strings so that Day One would handle the tag correctly.

drafts://x-callback-url/import_action?type=URL&name=Day%20One%20%23TAG&url=dayone%3A%2F%2Fpost%3Fentry%3D%5B%5Bdraft%5D%5D%250A%250A%23TAG

My friend Alice has started up a podcast called Educating [Geeks], with the premise that, “At some point in our lives, we’ve all been on the receiving of the incredulous shock and horror when a superfan realizes that you’re not a member of the club.” They find inspiration in this great XKCD strip that celebrates bringing people into the things we love and excited or fascinated by. I’ve been stewing on a longer post about this and some perhaps interesting thinking, but just can’t seem to get it out the door, so check out the podcast in the meantime. I think you might enjoy it. It’s fun.

Here’s a guy who has really thought about notebooks (among other things; Sean has a great set of outliner based pages about all kinds of things that are interesting).

The National Day of Civic Hacking looks cool, much more practical than a lot of change-the-world-with-technology enthusiasm. I missed the actual event this year but will watch to see what comes of it.

I dusted off and started to update my data from The Setup this weekend. Here’s a plot of some selected text editors that people discuss over the past few years. I’ve cut the 2013 data because there’s not much information there, yet, and it makes it appear as if the frequencies of all the editor mentions go way down.

{:id: .center}

For all the noise about fancy new-generation editors, respondents at The Setup seem to hew old school, or at least talk old school, as the data reflects mentions rather than actual use. (Seriously, this is just about as unscientific as it gets. But it’s fun.) Will TextMate return to prominence in 2013, or will Emacs continue its ascent? Can Sublime Text outpace vim? Time will tell.

Bonus update, mobile devices. I was having fun, so I updated to include a swing at mobile devices. This may be an incomplete count of the various Android devices. Rather than filter out the devices with just a single count, I included them to show some of the variety (which also tends to highlight just how dominant the iOS devices are).

{:id: .center}

You may be saying, “hey, what about Windows Phone?” Well, here are the current counts:

Mobile Devices:
---------------
iPhones:        190
iPads:          132
Androids:       72
Windows Phone:  1

Now you know.

The fitbit folks have improved their dashboard quite a bit. The new display has moveable tiles and is pretty nice, but the most substantial improvement is that the data displays don’t require Flash any longer. Finally, that information is usable on iOS.

And they revamped their sleep record to be much more useful:

{:id: .center}

Looks familiar!

Previously, on Arrested Development

This was a labor of love:

{:id: .center}

(Updated March 23, 2014)

An annual exercise challenge rolled around again at my workplace, so naturally I found a project in it: Wondering if I could hook Runkeeper up to my Day One journal. The result: The Runkeeper plugin for Slogger

Getting up and running with the Runkeeper API was tricky; I never quite got the hang of passing parameters to it, which still puzzles me. When I figured it out, I put together a quick walkthrough for the API startup and posted it as a gist (Also embedded at the bottom of the post). The gist provides some instructions, but users new to Slogger plugins and working with API authentication may also want to check out Sven’s writeup that uses this method and includes a couple of additional screenshots.1

{:id: .center}

One note about configuring your Runkeeper application: The Runkeeper folks don’t want to appear to endorse any applications or have them potentially be confused for official Runkeeper services, so avoid identifying your app with anything that uses “Runkeeper” or “Health Graph” in its name or description to save yourself from receiving a polite email requesting you to make a change.

I built the Runkeeper plugin for Slogger with a fun option to save its data additionally to a text file. I plan to do some stats or plots or something with that data, perhaps akin to my fitbit visualization, one of these days.

Enjoy!


  1. Note that per this long thread it’s still not always straightforward to figure out the last step in the API setup. [return]

“What do you think about the name we’ve been using? It’s called Pinterest.”

The future is extremely hard to see through the lens of the present. It’s very easy to unconsciously dismiss the first versions of something as frivolous or useless. Or as stupid ideas.

Calexico covers Highway to the Danger Zone

Eighties bombast soundtrack reclaimed as moody southwest indie rock. I love Calexico, and this is fun.

Generational: Blogging Platforms with Bob VanderClay

Fun and interesting conversation on Generational about blog platforms and static blog systems. Discusses hosts, editing and practically solving some of the “how-do-I” problems writers may face.

I know I’m going on and on, but I’m enthused. I use Slogger to save entries from twitter, last.fm, app.net and fitbit activity to Day One. Just as with the build tool for my blog here, mover.io helps remove the laptop from the workflow. See, I don’t have have a dedicated old machine to run as a server for my Mac stuff, so the standard method of running slogger via a daily scheduled task doesn’t work so well for me. I set a reminder.

It was a lot of fun to port my static blog workflow to a server-based build tool that relies on the mover.io API. Since then I’ve been tinkering with more general-purpose tools to play with mover. As an exercise, I put together a ruby-based widget I could use at the command line to simply finding and getting things from a connector attached to my mover.io account.

The gist is embedded below. This is intended for command line use; the script I’ve integrated with my blog build tool uses many of these mechanics but does a bit more work to diff the remote (Dropbox) directory with the local one and then cycle through downloads of the new files to my server, where the builder can do its business and publish to my dev and then public web locations. I’ll post the rest of that as soon as the code is a little bit less embarrassing.

The possibilities posed by this kind of integration are really cool, and I’ve had lots of fun developing this capability so far.

Jim Ray on Twitter Music

The #NowPlaying pane gets to the heart of what’s really wrong with the app and, may I suggest, Twitter circa 2013. In order for this 25% of the app to be useful, the people I trust and follow must also auto-tweet what they’re listening to, complete with hashtag detritus (or trolls). Perhaps I’m just too far past what Twitter considers cool, but a stream littered with #NowPlaying refuse (or Vines or Foursqure check-ins, for that matter) is a sign that I need to spend some quality time with the unfollow button. Twitter has built an app that requires users to abuse their timelines and followers with machine tags without any meaningful way of tuning out that noise.

I use Rdio and I think they’ve got social done pretty well — it’s external to existing social networks but easily connects to them, so I can choose to engage with it when I want and otherwise keep it out of the way. (So it’s interesting/odd that Rdio now also hooks to Twitter Music.)

MG Siegler Recommends 30-minutes:

30-minute meetings are so much sweeter. As long as you make the length clear at the beginning of the meeting, I find that everyone (again, myself included) gets right to the point and cuts out a lot of the filler and padding that makes up a ridiculous amount of every conversation.

I know that may sound a bit crass. But pay attention to the next conversation you have — how much of it is filled with things that really don’t need to be said? A lot.

My workplace is a pretty meeting-heavy one, too, and also very social, but I’ve gotten better at getting through meetings without using the calendar-application-default of an hour. Shared expectations are key, and so is an agenda, so that all participants can see exactly when the conversation is done.

Time was, I took a lot of photos. I spent a lot of time in Lightroom working them up, tuning them, cataloguing them. I found great delight in learning more, improving my technique and exploring my creativity. There was nerdery, too: an annual year in Lightroom stats blog post that was lots of fun. Along the way I made myself a collection of handsome prime lenses and used them almost exclusively. (At the time, nobody had a cool set of pancake primes like Pentax; to date, some of my favorite photos are with the little 21mm.)

As my son got older, the amount of time I could spend working up shots in LR started to approach zero, and I used the big DSLR less and less often, replacing it with snaps from my phone – photos that I could tweak, upload and share without the multi-step process of transferring and working up on the laptop. This trend intensified until recently, when our now-toddler got a little more independent and a little more routine. So I find myself getting that itch, to spend a little more time with my photography again – and with equipment that may still lighten the post-processing load.

With a fast-moving toddler, I also want something that autofocuses quickly and performs well with relatively low light, and on this score both the workhorse Pentax and the iPhone tend to fall short. Again, post-processing can make a lot of difference – Lightroom 4’s noise reduction in particular is fantastic – but it adds to the mental overhead of just using the photos that I made.

I’m not sure where to start looking for this fun new camera. I’m pretty sure the big DSLR isn’t my bag anymore, as much as I don’t want to leave behind this nice stack of glass. So where does one start these days? Mirrorless 43 cameras are intriguing (e.g. Shawn Blanc’s review of the E-PL5); for the price, both the E-PL5 and NEX-6 look pretty hot, though there’s something about a really good non-interchangeable lense that I find appealing: No race to accumulate different focal lengths, just a single frame to get really tight with.

And now that I start to read around a little, I see things like Zack Arias’ review of the Fuji X100s. My, but that’s a pretty beast.

At the less flushed-cheeks end of things, but still attractive, are high-quality zooms like the Fuji X20 or Pentax MX1 (I do admit I still have a Pentax soft spot; my very first digital camera was an EI-200, and my second was a Fuji F10, so I feel like I could be keeping it in the family either way). For a grundle less cash something like these might fit the sweet spot for toddler-tracking, portability, and image quality that could feed my latent creativity.

{:id: .center}

I do have the benefit of not really being in a hurry — mostly; my boy does keep growing and doing more wonderful things most days — while the options just keep getting better.

So I built this little hobby blog engine and had a good time with it, but one of its limitations as a writing tool was that it required me to sit down with the laptop to actually publish: Although the whole thing lives in a Dropbox folder, I needed my trusty MacBook Pro to run the Ruby to build and then deploy the site to my web server. I could write at the coffee shop on my iPad or iPhone with my favorite Dropbox-compatible tools (like iA Writer), but couldn’t publish directly from iOS.

Until now. A couple of weeks ago I tested out the Ruby engine itself on my server at TextDrive and found that it worked with just a couple of small modifications. But my content still lived in Dropbox. How would I bridge the Dropbox-server divide?

Enter mover.io, my new favorite technology crush. Its API lets me download from Dropbox directly to my server. I repeat, it’s awesome. So here’s the toolchain: Write in iOS, hop into Prompt to run the deploy script on the server, and boom, published blog goodness.

I started and finished this very post, zapped it to my server and ran the build, checked its rendering and then deployed to production – sounds fancy, right? – all from my iPhone. It’s pretty much the new hotness for me.

I’ll write up some of the technical details later. This was lots of fun to learn, and I have more cool ideas for putting mover.io to use.

The internet has been full of interesting things to read and think on, lately. Here are a few of my favorites from recent bookmarks.

Day One Uses

The Day One folks keep a nice list of applications to which they and others are putting the tool. I don’t write as much as I think I should, but I have been trying to put at least a photo every couple-few days into my Day One journal. Additionally, I use Slogger to record twitter, app.net, fitbit, and last.fm activity.

Howell Creek Radio: Quarters

My friend Joel has a fine podcast about thinking about things and writing about things – among other things. This short meditation on found and stolen moments really got me.

Felix Salmon on the Bitcoin Bubble

In a previous career I was an academic, and I studied the project of local currencies in the United States. Bitcoin shares a lot with local currencies, but departs significantly in implementation, not the least of which is its speculative nature – which was at the core of this week’s over-the-cliff drop in value.

NRA: God Bless You, Dr. Rosenzweig

I’ve been reading Slacktivist for years, and its author, Fred Clark, is consistently one of the most thoughtful writers around. His long-term opus, a walkthrough annotation of the Left Behind series, is a deep exploration of his faith and the departures from it taken by a paranoid religious right (among others). He’s also funny and frequently moving, and enjoys Buffy the Vampire Slayer. What alicublog is for the culture wars, Slacktivist is for excoriating the nonsense prophets of the right.

Casey Johnston spends some time with Dwarf Fortress:

I went into Dwarf Fortress knowing the barrier to entry was dizzyingly high, but I consider (or considered) problem-solving, iterative experimentation, and quick learning to be among my personal strengths. In Dwarf Fortress, I feel like I’m trying to build a skyscraper by banging two rocks together.

I’d like to think I’m not the problem here. Dwarf Fortress wants to be understood about as much as the average teenager. The more it confuses you, the more accomplished it feels. Perhaps that’s too harsh an assessment. It is possible to tinker, after all. But tinkering is endless instead of productive, and there are so many ways to go wrong.

The depth of narrative that some players find in their games of Dwarf Fortress is seriously intriguing, but every time I think “Hey, maybe I’ll try it”, I read something like Casey’s great write-up. It’s not a game that rewards “hey, maybe” players.

Notch provides a pretty slick and fun set of visualizations based on data from fitbit and/or runkeeper. Right now they’re focused on some fun run graphics, but I’m not much of a runner, so I’m hoping for some good bike ride visualizations in the future. Here’s a snapshot of the “Kodachrome” steps calendar.

I’ve alluded a few times to project at work gaining steam. We recently completed it, a big one, one I’ve been working on for nearly two years but that has been on the roadmap for my team for a very long time – since well before I was on the team at all. Feels good to have completed it, even this first phase of it with much left to do. Check that, it feels tremendous.

Big milestones like that seem far apart for me, but they come every day for our toddler. Our little guy is still pre-pre-school, but his wonderful school is part of the school district, so he has long holiday breaks at Christmas, springtime, and summer (mercifully, they offer a summer session so we only need to plan for a couple of weeks of true summer vacation). Today we wrap up the latest, a week of spring break, and it seems like he’s turned a corner, learned something new, or otherwise astonished us nearly every day.

The recent discussion of retro gaming on Accidental Tech Podcast was an enjoyable trip through many years of my own gaming and computing history. I do sometimes imagine Siracusa (I think he and I are roughly in the same college cohort) wondering how he got paired with these know-it-all youngsters whose first computer was a 486.

In no particular order, here are a few of the memories sparked by their conversation:

  • My first modem was a 1200bps Everex, a Christmas gift from my uncle when I was in the fifth grade. My connectivity progression after that was to 2400 (oddly, I don’t remember this brand; it was an internal, I installed it myself, and I had to fiddle with jumpers. Now it’s really bothering me that I don’t remember the model), 14.4 (Supra, ca 1992), 28.8 (Supra, ca 1994), a mix of ethernet and 28.8 through the remainder of college, then 56k (USR and others) circa 1998, until landing with cable in 2002-ish.
  • I was already into computers in the fifth grade, but it’s fair to say that that first modem substantially shaped the course of the rest of my life.
  • My freshman college dorm was a converted house, about half empty, and we ran long phone cords from empty rooms, through windows and up stairwells, to plug into our modems and play multiplayer Doom. Hot stuff. Not a lot of girls visited that dorm, as it was on the far end of campus.
  • The first multiplayer, non-BBS door game, that I recall playing was Modem Wars. I loved that game.
  • I also loved Wing Commander. The cinematic sequences and music were a revelation. I had an Ad-Lib card and a huge expansion card full of 4MB of RAM that I installed in a Compaq DeskPro 386sx/16. As they described on the podcast, I had to swap config.sys files to turn on expanded memory when I wanted to play. The Compaq had heavy, loud power switches.
  • I got Wing Commander as a Christmas gift. I had asked for some nonsense called Tunnels of Armageddon. Man am I glad the Software Plus guy steered my mom and dad away from that one.
  • Playing games meant I had to shut down the WWIV BBS that I ran throughout high school.
  • My first PC was an IBM PC.
  • First “laptop” was an Everex Tempo, I think a 286. I used to run Turbo C on it to mod and compile the BBS. It was a small tank, and I took it to study abroad in Rome in 1997. Later I took it to grad school and it was stolen from my crappy rental house in 2000. I wish I still had it; it had a ton of text files on it and contained basically the history of my computer use up to that time.
  • Good lord did I ever spend a lot of time trying to get a PCMCIA wifi card working on linux.
  • Troubleshooting SCSI CD-ROM drives was a nightmare.
  • I brought a DX4/100 to college. It was the fastest thing in the house, but also the most temperamental (see above).

Good times.

Several months ago I spent some time looking into alternatives to Posterous for a private family blog that I use mostly to share stories, photos and videos of my toddler. At the time this search was driven by the desire to use a paid platform, rather than a free one, in line with my goal of using services whose business model is based on making money rather than “monetizing” users. Nothing quite met my needs, and the transition was not imperative, so I let the search fade amid plenty of other things to keep me busy.

With the recent announcement of the closure of Posterous by twitter, I started looking again. Turns out that what Posterous does, it does very well, its strengths line up quit well with my requirements for a family-blog, and most of the alternatives are not a very good match.

Here’s what Posterous does well:

  • Post by email
  • Password protection of entire site, without user accounts or user-specific logins
  • Support for video
  • Easy presentation of photo galleries

I’m quite happy to be able to say that, as of my import to it this morning, Posthaven accomplishes three of the four of those strengths – no surprise, of course, as Posthaven is meant specifically as a sustainable (ie non-free) refuge for Posterous users.

Posthaven is open for business but not quite 100%: you can import multimedia posts (and my galleries and video came over flawlessly, unlike with any other premium service that I tried, Squarespace I’m looking pointedly at you, here) but not yet create them; post by email is not yet there; and a post I wrote up using Safari on the iPad didn’t format paragraphs correctly, instead flowing everything into a single one that I had to re-edit once I got back to my MacBook. But custom domains work great and site-wide privacy from launch is exactly what I needed out of the gate. I think it’s going to be a great replacement and I wish them lots of success, so that I don’t have to go looking again.

Update March 19, 2013: The posthaven post interface now includes an ‘upload images’ button, so creating media posts now seems to be available.

Springtime in my southwest mountain town, a foot of snow on Friday – commerce and schools come to a screeching halt, but not before I put in most of a great work day on a new system – brilliant sunny sky today. We went sledding this morning, and this afternoon the entire world is melting, streets clearing and dry pavement showing through in many places. Beautiful.

The Power of Excel:

But while Excel the program is reasonably robust, the spreadsheets that people create with Excel are incredibly fragile. There is no way to trace where your data come from, there’s no audit trail (so you can overtype numbers and not know it), and there’s no easy way to test spreadsheets, for starters. The biggest problem is that anyone can create Excel spreadsheets—badly. Because it’s so easy to use, the creation of even important spreadsheets is not restricted to people who understand programming and do it in a methodical, well-documented way.

When traders pose for press photos it’s always in front of wildly-sophisticated looking visualizations, but the secret layer of MS Excel-based analysis puts the lie to that pretension of rigor.

I came out to my refuge coffee + book shop as I sometimes do on afternoons when the toddler is asleep or occupied enough that he and his mom won’t need me for a little while. Yesterday it was a snow storm that turned into a whiteout on my short drive. I thought to read and write and do productive non-work creative things, but found I mostly watched the snow fall, with my mind quiet. It was quite fine.

Like so many, I picked up a Fitbit last month. I thought it would be a fun way to gain some insight into my activity and help me stay a little more active. Generally, I really like the little fella, though my activity has been hampered by a round of flu in the household, a few very cold weeks of wintertime weather, and a lot of busy, long days. (I wonder what activity best represents using a standing desk; Fitbit seems to think I’m mostly lethargic during the work day, but I think I should get some points for standing there.)

Fitbit offers a premium tier that provides extra reports and the ability to download one’s data for $50 per year. I’m not particularly interested in most of the features that come with premium membership, but I am a data guy, so the Fitbit API offers, albeit with some work, a way to get my data out of their system.

Working directly with the data yields plenty of benefits. Currently the charts on the fitbit web site all require Flash, so as a Click to Flash user I have a lot of clicking to do, all to view a relatively simple bar plot that doesn’t tell me that much. Sleep is a great example. The built-in chart of sleep at Fitbit doesn’t offer much information, and all its variants are simply more bar plots. There’s a nightly activity chart that shows times awake or stirring, but not a view that compares that activity against other nights or shows relative sleep-wake times.

Well, we can fix that.

I’m using the Fitbit plugin from Slogger, modified to run by itself on a server and grab my daily data. It saves the data I’m looking for, via the Fitbit API, to a text file that I can grab and process with R and ggplot2 to make some more useful and attractive plots for myself. Here’s what I’ve come up with for sleep.


There’s a lot more data here, in what I think is a much more interesting and attractive visualization: Relative times to sleep and wake, plus display of two variants of nighttime activity, fully awake and partially awake or stirring. (The Fitbit nightly graph shows them as a single category of wakefulness). Unlike the built-in graphic, this one shows comparative times across days, which is particularly useful for figuring out just why I’m dragging my feet so much this morning – of course, it’s because I’ve been up by 5:30 at the latest all week while pushing my bedtime further and further from its sweet spot.

Additional refinements might include adding the total sleep time to each bar, for more easy to read comparison. (This is basically all you get from the over-time graph that Fitbit provides by default.)

Data is fun and the programming, for both the data extraction via API and the manipulation and plotting in R, is enjoyable learning and pastime for me. I’ll continue to play with the Fitbit activity data for steps and overall activity and see what else I can come up with.

Rain here at high altitude since Friday, which is very unusual for wintertime. The landscape has melted and we can see our sodden backyard once again.

Cooped up, I turned to extra cups of coffee and playing with Alfred 2 workflows.

A few years ago I worked up a system using Alfred 1 to add items to a task list that gets displayed on my desktop with Geektool. The list itself is a Taskpaper compatible text file, and I use a TextMate bundle that I put together (derived from the Tasks bundle along with it.

With Alfred 2 it was fun to recreate and add to the functionality of my old script using workflows. I invoke the workflow with “do something” to add something to the top of my task list; later, “done something” will mark that item as completed and add a timestamp: Alfred uses the query you specify to find matching entries in the todo file, and acts on the one you select from that list of matches.

Here’s a quick tour. Adding an item via Alfred 2 and viewing the new entry in TextMate:


Then using Alfred 2 to find the same item and mark it as completed. You get a confirmation via growl and can see the updated item in TextMate:



I have some ideas to clean up and improve this workflow but do plan to release it. If you’re interested in seeing it now in all its ugly works-for-me state, just let me know.

So far it’s been lots of fun to work with the Alfred 2. If you’re an Alfred user considering the upgrade, I recommend checking it out!