Phantogram Blew My Mind

I just got back from seeing Phantogram play at the Ogden Theater here in Denver, CO, and they blew my mind. It was definitely one of the stand out shows that I’ve seen recently, which was extra impressive for a Monday night, at a venue I can walk to from my apartment, for $25.

Their set was super tight, and flowed really well. Instruments were switching constantly, and the four of them wove guitar, drums, keys, bass and samples together flawlessly. The two core members, Josh and Sarah, switched vocals every few tracks to provide a balance and variety that kept things interesting, while one of the best-executed light shows I’ve seen played on around them. Their stage presence was dramatic, powerful and engaging, when it wasn’t intimate and personal, depending on the track.

If you get the chance, go and see them, you won’t regret it.

I was moved enough to buy a shirt as a memento, which I almost never do at live shows.

* Header image from Wikipedia entry.

Why JavaScript Is The Next (or first) Programming Language You Should Learn

I’ve been asked a few times recently what programming language I’d learn if I was just starting out. Right now, the answer is definitely JavaScript, and here’s why:

Easiest Development Environment

I believe one of the biggest hurdles for people to get into programming is actually all of the other stuff around just writing code. Anything you can do to get to the point where you’re writing code faster (at least while you’re learning) is a win in my mind. Everyone has access to a web browser, which means everyone now has access to a simple development environment. If you’re using Chrome on a Mac, press cmd-opt-j. Welcome to the console, you’re now able to start writing JavaScript to manipulate the page you’re looking at. That’s pretty awesome. There are also a bunch of online editors and tools like CodePen, JSFiddle which allow you to dive into a more complete development/testing/prototyping environment right in your browser.

Simple

JavaScript makes it really easy to write simple code when you’re getting started, which is perfectly valid. Define a function, call it. Make a loop. Ignore the DOM (in fact, ignore the web almost entirely) and focus on simple logic and code. Start building objects and arrays. The OO-model in JS can be a little weird (especially around classes and inheritance), but that’s OK, you’re going to need to be flexible if you’re going to be a developer anyway. Once you get the basics figured out, you can start diving deeper and discover the full power of JavaScript.

Flexible

The flip side of the previous argument is that JavaScript is also super flexible (arguably too much so!). Once you move on from a few functions embedded directly in script tags in your page to manipulate an image or a menu, you can quickly move towards a fully-architected web application with many files, larger object/class-style structures, complex single-page-applications and a whole lot more. JavaScript actually scales up quite nicely to handle bigger challenges, and is ideally suited to web applications, since it’s so tightly integrated with the DOM and the browser.

Web-native

As much as native mobile app developers would have you believe that apps are the future, I still think that open web technologies are the key to the future. Give it a little time, and we’ll mostly be writing all of our mobile apps in HTML/JS, and deploying them in wrapper-apps to our phones. I consider this basically inevitable. Learning to develop for the web is super important. You’ll need to know it basically regardless of what main language you’re working with, because despite our best efforts, you will still end up manipulating CSS, tweaking some HTML tags, etc. That’s not going to go away any time soon I don’t think.

Inevitable

This is pretty far down the list, but that’s mainly because of a thought progression more than anything else. I actually see this as a really important reason for why you should learn JavaScript. Here’s the deal — if you want to develop things for the web, you will end up writing JavaScript. There’s no avoiding it. There’s only so much you can do with a server-side language (PHP, Python, Ruby). At some point, your payload is delivered to a browser, and if you want to do anything remotely interesting there, you have to do it in JavaScript. So if you’re going to have to learn it anyway, why not optimize that process (and perhaps use JS in more places, rather than less?).

Portable (browser/server/native)

Now that we have things like Node.js, JavaScript has moved beyond the browser. Not only can you write server-side JS (so you can build the front and back-end of your web application in JS), you can also use something like node-webkit to bundle it up into a distributable desktop application, or use PhoneGap to package it as a mobile app for any platform. No other language can match that portability right now.

Toolchain

If all of the above wasn’t enough, the exploding JavaScript community has really come a long way in the last few years as far as the developer’s toolchain goes. While we might not have the integrated, one-stop-shop approach of something like XCode for Mac developers, we have tools like Grunt and Gulp which allow us to build our own asset pipelines. Every code editor known to man has support for JavaScript syntax highlighting and linting, and we don’t need a build process like other languages, so we’re lighter on our feet anyway. There’s also a bunch of tools for testing; everything from unit tests to functional tests, to fully automated simulations of users-in-browsers.

So anyway — there’s never been a better time to get started with coding, and if you’re going to do it, I suggest starting with JavaScript. Start small, work your way up. View Source. Get on Github. Go nuts.

Personal Location Tracking

I’ve been pretty fascinated with the idea of recording my own location for a while now. I started using Foursquare at SXSW in 2009 and have mostly continued to do so since then (I have over 3,700 check-ins). You can see my check-ins being syndicated back to this website (using Keyring Social Importers), and if you scroll back through the history of the main page, you’ll get maps aggregating a few check-ins at a time.

TripIt helps me keep track of all (most) of my travels, and provides back some data (via API), which I also import into this site. Here are all of my trips since March, 2008.

In February last year, I started using Moves, and quickly came to love its simplicity. It’s a background app that runs on your phone and keeps track of your location. Using server-side data processing, they crunch the raw location information to figure out when you were walking, running, riding, or on some form of transit, then give you back a timeline and a map showing what you’ve been up to. It’s a really nice “set and forget” way of keeping up with how many steps (roughly) you’re doing each day, plus your other forms of exercise. The app has continued to make small improvements, and then on April 24, Facebook bought them. I can’t say I’m stoked about the acquisition, but regardless, it’s a cool app, and it collects some fantastic data.

Since it’s all data, and there’s a growing sphere of location/movement-related data services out there, shuffling your data around is just a matter of a little programming. As I mentioned, I’m importing my Foursquare data into my blog already. I also have a Moves importer that’s currently creating a text-only summary of my information. I’ll probably add simple maps to it at some point. Moves-Export is a pretty neat service that will automatically import your Moves data and can give you a better breakdown of things, plus auto-post to Runkeeper and Foursquare (if you like) when activities are over certain thresholds (e.g. riding for more than 15 minutes). Pretty awesome.

Today, Chris Messina tipped me off to Move-o-scope, an awesome web app that will slurp in your Moves data, and give you back a rich visualization of it all. It lets you toggle things on and off, pan around the globe and see what you’ve been up to. It’s fascinating. Here are some places I’ve been since last February!

It’s fun to turn on the “Transit” layer (orange/brown, seen in the last picture above and the first one in the post), and follow the lines around the globe to see where you’ve been, then turn it off and zoom in to get a feel for what ground you covered while you were there.

Automattic, 5 Years In

On May 11 (today) in 2009, I started full time at Automattic. I’ve written about my experiences over the years, and marked the occasion each year in some small way. Let’s continue the tradition.

automattic-logo

This year has actually been a particularly big year. Probably the headliner happened only a week ago; Automattic raised $160 million, on a valuation of $1 billion. That’s a lot of money. That’s a large valuation, and it feels kind of weird to be employee #35 of a company of that scale. We’re now at 247 employees, and we span 30[1] different countries. Whoah.

Other than that, this year we: had a pretty large secondary fund-raising ($75m, via Tiger Capital), made some exciting acquisitions: Cloudup, Scrollkit, Longreads, had another successful WordCamp San Francisco (where I spoke, and organized the Contributor Day again), launched WordPress.com Connect, transitioned to a new CEO (Matt Mullenweg, our founder), and a bunch of other interesting things both internally and externally.

On a more direct/personal note, I feel like I’ve settled into my role as a team lead, and my team and I continue to evolve our development practices towards a modern, iterative workflow, heavy with JavaScript, Sass, and the like. Shout-outs to Allen, Gary, Jennifer and Kevin (my team) for working with me as we continue to make it all up as we go.

 In my sixth year as an Automattician, I’ll be relocating to Denver (my second relocation since I started, capitalizing on working for a completely distributed company). I look forward to new adventures there, and continued adventures with Automattic. It continues to be an inspiring and challenging company to work for, full of interesting and impressively-smart people.

Thanks everyone for continuing to make Automattic home, it’s the best job I’ve ever had, and it would be hard to ever top.

[1]: Argentina, Australia, Austria, Brazil, Bulgaria, Canada, Denmark, Finland, France, Hungary, Iceland, India, Ireland, Israel, Italy, Japan, Lithuania, Luxembourg, Malta, Portugal, Russia, Scotland, South Africa, Spain, Sri Lanka, Sweden, Switzerland, United Kingdom, United States, Uruguay.

The Year Without Pants

Today is kind of exciting, although it’s been a long time coming so it’s not much of a surprise for me :) Today Scott Berkun, the author of books such as The Myths of Innovation, and Confessions of a Public Speaker, releases his latest book, The Year Without Pants: WordPress.com and the Future of Work.

The book gives an inside look at what it’s like to work at Automattic, and to work on something like WordPress.com. Scott was my direct team lead (of the team that I now lead) while he was at Automattic, so the book contains a lot of personal interaction with yours truly. It also happens to be a fun read with a bunch of interesting insights into distributed teams, management, and the open-source-based culture we have at Automattic, and which may well be the future of many more companies.

I’ve read versions all the way back to some of the first drafts, and am right now reading the “final” version which I received in hard copy. You should go get it and read it as well.

4 years on Automattic

On this day, 4 years ago, I started full time with Automattic. This is my 4th Automattiversary.

I had already been on trial for 5 months by that point (since January), and had a good feel for the company and the other Automatticians. I knew it was where I wanted to be. So I accepted the offer, and became a fully-fledged member of a relatively small team (I was employee number 35) that was bringing blogging to the people (amongst other things).

In the four years since then, a lot has happened and changed.

(more…)

I Want to Love My Pebble

It’s true, I really want to love the Pebble that I got from being a Kickstarter backer. I want to, but right now I can’t. I can only like it. And I can like it a lot — there’s a lot to like!

  • I have a computer on my arm!
  • I can read text messages without taking my phone out
  • I can control music that’s playing on my phone
  • WordPress notifications on my wrist? Yep.
  • Calendar alerts? Got ‘em.
  • The form-factor is slick: it’s slim, super lightweight and IMHO, looks pretty darned cool.
  • Nice backlight, which I can activate by shaking my wrist or tapping the watch
  • It’s waterproof! (although I’m too nervous to actively put that to the test)

So why can’t I love it? Let me count the ways (biggest reasons first): (more…)

Technology Startups As Military Special Forces

Anyone who works in a remotely corporate environment has no doubt heard a bunch of (often ridiculous) military metaphors describing business-as-usual. We’re divided into “squads” and talk about “strategic thinking” and “tactical mistakes”. We develop “mission statements” (more about that later) and managers demand that we “go in for the kill”, all the while referring to their top executives as their “Generals” and modeling the hierarchy of their companies around the command structures seen in the military. While a lot of this is just the strange glorification of business (and war), it turns out that some of it makes a lot of sense (on a very metaphorical level), and might just be evolving right along with military tactics. John Robb has done some amazing work analyzing the application of open source concepts to warfare, I’m going to do something like the opposite and look at applying special forces operating concepts to technology startups.

I recently finished reading Spec Ops: Case Studies in Special Operations Warfare: Theory and Practice, by (Vice Admiral) William H. McRaven, who credited as organizing and executing the mission that brought down Osama bin Laden. He is now the Commander of US Special Operations Command, so he’s somewhat of an authority on the subject. While reading the book (which is a really interesting read in its own right, I highly recommend it), I couldn’t help but notice a lot of corollaries between what I was reading and the structure and function of tech startups (and perhaps smaller units within larger technology companies). Let’s look at how Special Operations Warfare compares to working at a startup.

(more…)

Exploring a Neighborhood Like an Engineer

When I moved to Brooklyn in June, I decided that I wanted to get to know my new neighborhood reasonably well, reasonably quickly. Being an engineer, I figured a methodical approach was the best solution, so I got a map and got to work.

Based on a rough understanding of what was where, and letting the nearby Prospect Park somewhat dictate the area I wanted to cover, I drew out a grid with my new home roughly at the center, covering the bulk of the surrounding area that was of interest. The grid looked like this: (more…)

Ready Player One — Ernest Cline (Book Review)

NOTE: I am fully aware that at times in the review below, I sound like a ridiculous book-critic or something. I do not care. Also, links to Amazon contain my affiliate id.

Ready Player One

A few weeks ago I attended the New York TimesTimesOpen Open Source Science Fair on behalf of Automattic/WordPress.com. As part of my “thank you” bag, I got a copy of Ready Player One, by Ernest Cline. I left it on my bedside table in a stack of other books which I’d thus far neglected to start, let alone finish (not to mention all the unopened titles on my Kindle).

(more…)

TimesOpen Hack Day/Readtrack

On Saturday, I attended the 2012 New Times/TimesOpen Hack Day. It was a long day, but I had a lot of fun. I sat in on an intro session to Arduino which was pretty cool, and also a session on the EchoNest API, which I ended up using in my project. You can find out all about my project on the Readtrack project page.

It’s a bookmarklet-powered little app that analyzes the page you’re looking at (using the AlchemyAPI) and then tries to find related music (using the EchoNest API) which it then plays back to you in your browser (using rdio). I got a “runner up”/honorable mention prize :)

One of the most visually-polished projects was “Story Arc”, which showed a visual representation of the frequency of mentions of keywords over the NYT archives. Probably the most fun one was a set of drivers for a DDR pad, hooked up to commands for things like deploying code!

Hurricane Sandy Aftermath

Right now, I am considering myself very lucky. I’ve just lived through not only my first ever, but the most intense hurricane in New York’s history. Hurricane Sandy.

Within less than a few miles in 3 directions (North, South, West) homes are destroyed, roads are flooded, power is out. Right where I am (Park Slope) we have a lot of leaves on the ground, a few branches down and some minor damage on buildings. It’s pretty amazing how little impact we’ve directly had. It’s definitely not completely over, but we’ved fared a lot better than folks very nearby. Now we see how long it takes for NYC to get back on its feet and get things running again.

Subways are still all out of commission. 7 tunnels between Brooklyn and Manhattan are flooded. Buses will hopefully start coming online later today. What’s left of Lower Manhattan is a mess. It will be a long time before things are “back to normal” for everyone. Here’s how it looked from my perspective:

(more…)

Where is Your Digital Hub/Home?

I’ve been using WordPress to power my own website for a while now, and working with it in some way or another for even longer. Over the years, I’ve developed the belief that it’s a pretty perfect platform for people to build their own “digital home on the web”, considering the range of plugins and themes available, the flexibility of the publishing options it offers, and the fact that it’s completely open source, so you can do whatever you want with it.

That last bit is important in more ways than you might immediately think. Apart from just being able to write my own plugins or tweak my themes, this also means that I own my own data. I think in this MySpace/Facebook generation, people are all too loose with the data trails they create — giving up ownership of their digital self at the drop of a hat. In case you didn’t realize, when you use something like Facebook, it is not the product, you and your data are the product.

(more…)

Standing Desk, The 6’4″ Edition

I’m pretty tall — 6 ft 4 inches (193cm) when I’m not stooping. I’d been wanting to try a switch to a standing desk for a while, and a recent move to New York meant I needed a new desk anyway, so it was the perfect opportunity. I had a few requirements for my new office-space:

  • Must be able to support an Apple Thunderbolt Display (23.5 lbs or 10.8 kg)
  • Need some space (didn’t have a specific lower bound, but saw a bunch that were too small)
  • Adjustable workspace height, of primary concern being that I could put the main one at (my personally determined height of) 47 inches (119 cm)
  • Storage space for random “desk stuff” that I’d prefer wasn’t on my actual desk, but would like nearby.
  • Not crazy expensive.

(more…)

New Wheels on the Road

I moved to Brooklyn recently, and I got a new bike, which I’m loving. Brooklyn (especially Park Slope) is pretty bike friendly, with bike paths/lanes (site powered by WP!) all over the place.

It’s a Cannondale Bad Boy 9. It’s a hybrid, which is new for me (I’ve only ever really ridden mountain bikes, and used to ride downhill a bit). I’m getting used to a fully rigid frame, and feeling every bump in the often-times-pot-hole-filled-roads around here. Disc brakes are neat, and having a thin, hard wheel means you can go really fast with much less effort. Fun :)

I went for a nice ride last week around the park that’s right near my new apartment. I rode reasonably hard for the first half or so (once I got inside the park), and then tailed someone else who was going a good pace for the rest. It looked like this on RunKeeper:

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?

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” :)