Freedom {of,from} Choice

Freedom of choice and freedom from choice lay on a spectrum. And, in technology, it’s no coincidence that more choice tends to be messier and complex, less choice tends to be cleaner and simple. It’s a trade-off between what you choose and what you leave up to an expert.

Continue reading

Developing Open Web Apps: First, get it onto the web

I’ve been interested in developing open web apps (aka the single-page app) for years. But, it feels like the space is really on fire now, since the advent of HTML5 tech and the recent moves by Mozilla and Google toward truly “appifying” these things to compete with offerings from iOS and Android. Lots of pieces have come into alignment, and great things are coming togethernever mind what the folks at Facebook say.

So, I think I’m going to build a simple app and blog about it. And, these days, the first thing I think about when starting a web app is: How do I get it onto the web?

Continue reading

On the other end of a self-imposed death march project

So, I’m a couple of weeks back from a well-deserved vacation taken after the launch of a project well over 18 months in the making. I kind of overworked myself, voluntarily, and that needs to change.

Continue reading

Did you look under the couch?

Earth had been a great home to us. But, the Sun was revving up to devour the inner planets, so we figured it was about time we pack the whole place up and archive it. No danger to the human species: We’d scattered ourselves across the galactic plane. There was no getting rid of us now, short of obliterating the whole Milky Way.

Continue reading

Aerostats, Base Stations, and the Cloud

In my thinking about things IndieWeb and user-supported cloud infrastructure, I’ve had a couple of notions bouncing around in my head that might help clarify some “products” I’d like to build if and when I have time. I guess this would be good to blog about, so maybe someone else can steal my ideas (if they’re any good). Because, after all, much of this is sourced from material I’ve stolen from guys like Dave Winer. Continue reading

In praise of dumb pipes – or, ISPs: please don’t get smart with me!

Something I’m having trouble finding these days is a dumb pipe. I just want a dumb pipe to the internet going to my house, and to the computer in my pocket. Let me give you money for bandwidth, and then butt out. Continue reading

Half-formed thoughts about Twitter, social silos, web APIs, and mashups

TL;DR: Turns out, the way to derive value from web APIs is to let your community run off and do free research and development. Harvest the results, and profit. We were never promised participation, but it felt like it was a 2-way street. Silly us. Where do we go from here?

Continue reading

Mercury must be in retrograde

It’s shaping up to be this kind of day.

Continue reading

Note to self File a bug to get…

Note to self: File a bug to get the Mozilla tag feed here added to Planet Mozilla

How webdev has been getting better

So, in the last thing I posted, I wrote about how fixing problems on live web sites feels like fixing space robots. At Mozilla, though, things have been getting steadily better and more interesting:

There’s still the sysadmin-as-remote-pair-of-hands-driven-by-trouble-tickets thing going on, but less so every day. More and more, we’re getting into continuous deployment. Our sysadmins are really smart cookies: They’re steadily replacing themselves with scripts of varying sizes. That way, they can get on to more interesting things. In fact, just recently, they gave us a great Big Red Button that deploys code from a git repository to the live site on demand. And, for some reason, I’m one of the people who got a key to it.

Okay, maybe not that exact button, but ours is very keen. Of course, when it broke once, I felt like the Pakled on the right (and not Geordi):

But, the Big Red Button hasn’t broken very often. So, I’d rather be a Pakled some of the time than pretend to be a rocket scientist all of the time.

Oh yeah, and we’re using GitHub a lot these days. It’s crazypants awesome for collaboration, and it fits right in with our style because we want to do everything in the open anyway. We’ve even somehow lured people who don’t normally code into submitting Pull Requests. And, it’s amazingly powerful to refer to specific lines of code and commits by URL in IRC or email.

I’ve also been getting a lot better at building development environments, using Puppet and Vagrant and Amazon EC2. I haven’t quite gotten to the point where I can borrow IT’s Puppet manifests directly – ie. those scripts with which sysadmins are replacing themselves.

But, we are maintaining the recipes for spinning up dev servers right alongside the code. Our READMEs are shrinking, rather than growing – and yet we’re still adding more services and dependencies. I no longer really fear totally jack-knifing my dev rig, because I can just toss it and conjure up another in the time it takes me to run to lunch.

Let’s see, what else? I’m sure I’ll think of something. Until then, SHIP IT. (The post, I mean.)

How webdev is like space exploration

This isn’t so much a complaint as a set of observations: Sometimes, as a webdev, diagnosing and fixing issues on a live site in production gives me sympathy for NASA scientists dealing with remote space probes. And, that’s because I generally don’t have direct access to the servers. Instead, my access is mediated through sysadmins whose primary communication channel is trouble tickets. (Occasionally, I’ll be lucky enough to have someone I can pester more directly, but that’s a privilege that I try really hard not to abuse.)

So, I build my own replicas of production sites, as best as I can. I deploy exploratory rovers into those environments, and try to account for what could happen based on everything I know up to this point. Once I’ve done all I can to prepare, I fire up the comms dish and beam out a request to the distant probe. This takes time because I have to wait until the receiver is in alignment, and there’s a transmission & reply delay due to distance. (In other words, I file a bug and wait for someone to pick it up. That takes awhile, because we’re all busy people, and I’m a telecommuter who can’t just go tap someone on the shoulder.)

I cross my fingers and hope I’ve built up a good-enough model of the remote environment, and maybe I’ll find that my hypothesis will be validated. If not, well, then I at least hope I haven’t broken anything, and hope that there’s new information in the reply that I can assimilate into my replica environment here back at home for an improved next attempt.

But, I’m not entirely sure how to improve this situation. If I had direct access to production servers, I’d be able to do more. However, if I had that access, I’d be expected to do more. You know, like wear a pager and wake up at 4am to fix an alarm condition. I’ve done that job in the past, and I don’t envy anyone who has it now.

There are also, I imagine, trust and confidentiality issues: even though I write the code, I’m not necessarily qualified to be in contact with certain kinds of sensitive data on a daily basis. (And by not qualified, I mean not bound by a certain class of contractual or legal obligations and not subject to certain kinds of training. I’ll say you can trust me, but trust is sometimes a formalized thing.)

Still, some days I like to imagine that what I’m doing is trying to debug the behavior of a robot in orbit around Mars. It keeps me from putting too many dents into my desk with my forehead.

Biospheric Xenophobia

“Have you ever seen one of them?”

Continue reading

And just to make my more than twitter…

And, just to make my more-than-twitter-less-than-essay blogging faster, I’m going to try out the P2 theme. This seems right up my alley.

Blogging Like a Blogger

So, I read about Blogging Like a Hacker a few years ago. It sounded like a neat idea. A little over a year ago, after much procrastination, I switched to Jekyll and Disqus for blogging and comments.

Well, guess what? Though the process was novel, I didn’t blog with any more frequency than I have over the past couple of years. I think I’ve discovered this about myself: I like hacking like a hacker, and I might even like writing a book like a hacker using AsciiDoc and git-scribe. But, those are things which tend to demand deliberation and attention to detail.

But for blogging? Forget all that fuss. At least, not the way I want to blog. I usually want to spew things that are longer than a tweet, but shorter than a formal essay. I might iterate by reviewing & revising a few times, because I can’t resist. But, then, I’ll move on.

And, for that kind of writing, the process of using git & jekyll just throws too much friction into my brain:

  • I have to create a text file with a filename of proper form,
  • edit the text with whatever’s floating in my brain stew,
  • start up jekyll for a preview, wait, Ctrl-C after a few minutes,
  • make sure I don’t have my other 1001 posts in the way because generating things takes ffoorreevveerr. (Tools like Marked help here, quite a lot.)
  • start up jekyll again and load the new post in a browser
  • repeat a few times

Oh, and then once I’m happy with the post, I get to:

  • compose a commit message,
  • push to my web server and github for good measure
  • wander off while a post-receive hook regenerates my site on my server

And then, very recently, I decided to check out WordPress again. I almost forgot how stupidly quick & simple it was to set up. Things like that make me want to hack PHP again.

In WordPress, my process is this:

  • visit my blog in my browser, create a new post;
  • go tappy-tappy like a monkey writing Shakespeare, watch the preview pane;
  • hit publish

If I’m feeling frisky, I can update a few more times and also hit some buttons to light up Facebook and Twitter with my new brain vomit.

In my brain, this process makes it feel like so much less of a pain, lame as that might sound. And it’s still self-hosted. And I can still do weird things, if I even care about that anymore. Which I don’t, at least not as much as I did back in 2002.

As it turns out, a pile of static HTML generated from text files kept in git is a great way to archive & mothball a site. And, I’ve been wanting to do more things on http://lmorchard.com — because http://decafbad.com isn’t my name, and there are surprisingly many decafbad’s on the net.

So, now’s as good a time as any. End of an era, and all that.

Oh, and also: WordPress is really easy to update, once I set up an FTP server. It scared me a little to try it the first time, but it just worked. And then it worked again. I never had to ssh into my server, just click buttons in my browser. And that’s about my speed when I’m in a lazy blogging state of mind.

Whew. This was a long post, given all I just said up there. So, I think it’s time to hit the publish button.

Today is Rush Day

The new Rush album, Clockwork Angels, is out today. Anyone who knows me, knows I’m a Rush fanatic. I have all the albums so far on CD – except for the latest, which I’m listening to on Spotify. It’ll be in my hands eventually, though.

This is a band that’s been around, still making music, for most of the past 40 years. They’ve shifted styles for each decade, never going on hiatus, never doing a “comeback” tour.

Well, there was one major hiatus, and I think they had a good excuse: The drummer, Neil Peart, lost his daughter to a car accident and his wife to cancer, both within a year. He retired from the band, and took a mostly-solo tour on a motorcycle 55,000 miles around the Americas to collect himself, and wrote a book about it. If that’s not a bad-ass, Joseph-Campbellian response to personal tragedy, I don’t know what is. Though that epic trek, he found a new wife, reconnected with himself and family, and came back to the band.

And if that weren’t enough, he came back better than ever and the band blew the roof off Vapor Trails with the first track, One Little Victory:

So, today is Rush day.