My experience in becoming a FirefoxOS contributor

Back in September, I wrote that I wasn’t leaving MDN. And, I’m not, really. But, it turns out that FirefoxOS needs some help to reach its first release milestones. So, some of us webdevs from around Mozilla are temporarily switching our daily efforts over to slay bugs on Gaia. That’s the layer of FirefoxOS which provides the overall system UI and core apps.

Continue reading

Privacy and Social Media

Somewhat apropos of what I posted recently about freedoms, there’s been a kerfuffle about Facebook and privacy (again). A particular post I just read kind of set me off, so I decided to expand on a comment I left there.

Continue reading

Freedom to Change Your Mind

I posted a few days ago about freedom of and from choice, but I think there’s something orthogonal to that spectrum: The freedom to change your mind, both figuratively and literally.

Continue reading

Things I learned from my High School science teacher

That’s not actually me in this picture: It’s something I found in an archive of a defunct GeoCities page, from who knows when. (Though, apparently, it was forged in the era of the Counting Crows.)

But, anyway, that’s Mr. Sabo there in the middle. He was my High School science teacher, and nearly every day I remember something that he taught me. Let’s see if I can come up with a few off the top of my head…

Continue reading

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.