The Value of Face-time

Standard

At some point I inevitably hit a wall and need to bounce ideas off someone. IRC and other forms of chat work great. I can ping someone and get a quick answer, or at least get a RTFM or RTFW.

blank face with a question mark

Often times, though, the quick answer or linkification doesn’t make things abundantly clear, and the solution to my problem is still rather fuzzy — and not the good fuzzy — the bad fuzzy, like hangover fuzzy.

So Google doesn’t hold the answer, or at least not in a form I can understand. The server guys who know everything have no idea wtf I’m talking about, so I’m stuck. What I need is a whiteboard, pens of different colors, and a 12-step program from someone in the project who knows what the hell is going on.

It’s a part of working with a team. You learn and build off of your teammates for certain things, and you help them grow in other areas as well. It’s complimenting strengths and weaknesses that can make the whole greater than its parts. The whiteboard discussions, and the shorter pen-and-paper talks can remove the bad fuzziness and replace it with clarity.

In addition to providing a solution, these discussions (usually, anyway) form great relationships between team members and can help open new paths of communication. They can also lead to healthy tangets and the inevitable brainstorming that follows.

In a way, all this sounds like what friends might do. Sounds great, right? Well, hold on. I have a point here somewhere…

Whiteboard or pen-and-paper discussions don’t always happen for people who work together on open source projects. They take place in cyberspace, and assume many forms, but don’t ever match up to face-time. As a result, I believe projects can really suffer without face-to-face interaction between contributors.

So we are left with technology to fill the gaps between us. The first problem with this is the waiting — five, ten minutes — maybe hours, maybe days. In the meantime our problem ferments and makes us dream code or leads us to beer as an escape (yay!). The problem isn’t solved right away, if ever, and progress hiccups.

The second problem is more about human interaction. You simply can’t build rich and complex relationships between people through IRC, newsgroups, AIM or emails. Sooner or later you have to take the extra step to meet these IRC handles, emails or nicknames and place a face on them. Why? Because great projects are fueled by great face-to-face relationships.

This brings us to what I’m doing right now. All of my current projects are done remotely in collaboration with people who are mostly in a different time zone and sometimes on a different continent. December has been an eye-opening month for me because I’ve gained an appreciation for how many people are actually out there.

Over time you start to get used to the email or IRC buzz. Names are all over the place, and sometimes you lose touch with the “who” and concentrate more on the “what” and “when”. So having the chance to visit Mountain View and meet almost everyone I’ve talked to about anything regarding Mozilla and heading over to Tucson to meet the Kuali team has meant a lot to me.

It’s more than the warm fuzzy (the good fuzzy) feeling I get from meeting everyone in person and hang out for a bit after work. The positive vibe is also reflected in terms of productivity. We get that chance to voice our concerns and know that everyone is listening. We get time to sit in front of the whiteboard and hammer things out. We take wild tangents, have great discussions, get pissed, laugh it off, come up with a plan or solution, and feel great. And oh yeah – we all get a chance to listen a lot, too. 🙂

My second week on the road is quickly coming to an end. When I get back home I will have driven a total of 2200 miles and flown for 600 miles. Getting to meet everyone, listen and learn from them, and work on building a plan for the future of our projects was well worth the trip.

You can’t send a human being through a wire.

Me? Happy? Yeah.

Standard

At times I am Rob Gordon, speaking into the camera at every pivotal point trying to make sense of it all. Except I guess the camera is in my head — some Freudian messed-up camera pointing at myself as I watch this idiot fumble through life’s tribulations and pitfalls. Maybe you understand what I mean, maybe not.

Either way, after the last few months, the red light is on but I have nothing to say. Instead I just sit here and smile.

Sometimes you just have to wait and see where life takes you.

Mozilla in Da House

Standard

mozilla on the billboard

At the Firefox Summit, most of us headed out for a San Jose Sharks hockey game that Thursday night. Just so happened we saw a Mozilla welcome message on the billboard. The game was against the Florida Panthers, and it must have been a sign — the Sharks won 6-2.

Big Words Don’t Belong in Tech

Standard

Some of you are pretty smart. So you understand the difference between simple and complicated, right? So why complicate things for the sake of complication?
just say no to big words

My Dad used to say that habit is a five-letter word that can dictate your life. Indeed, it does — especially in technical professions. It’s why most things are almost impossible to describe to the layman. Poor layman, nobody remembers to fill him in. Or is it a layperson? You get the point.

Imagine spending 50+ hours a week speaking in latin medical terms, Java acronyms or Linux system jargon. Now imagine turning around and telling a 5th grader what you did at work that week. Not so easy, is it?

You’re used to your dialect. It’s burned into your head. But that doesn’t mean you can’t escape it in order to reach the middle ground with people who aren’t up to their necks in the same sort of shit you always find yourself in.

Pull yourself out of the muck for a while and remember how to speak like a normal person. Leave out the big words, particularly in technical discussions that don’t have room for a thesaurus or world almanac. Use simple metaphors. Explain things using real-world examples.

People don’t need to hear your completely misplaced word-of-the-day exercises in order to understand your point. And if you can’t explain it in simple terms, then maybe you don’t understand what you’re trying to explain after all?

Eschew obfuscation, assface.

Pulling Things Together

Standard

Firefox 1.5 was released along with many changes to back-end services many people outside the developer community aren’t aware of. So instead of blogging about changes in this release I thought I’d take some time to stop and take a look at what went on with web services that support it.

Addons

Safe to say, without the great work of the Mozilla sysadmin team the release wouldn’t have gone very well. polvi and justdave worked very hard throughout the release to make sure everything stayed afloat — and I think we all owe them a debt of gratitude for their excellent work.

Seeing the overwhelming traffic to addons.mozilla.org (AMO) was pretty cool — until it started to bring down the application. 🙂 But not to worry, Dave and Alex were able to add more LVS nodes to the mix and the site is running well at this point.

On the marketing side of things, Rebron and Beltzner managed to work out the new look for AMO. They did a great job organizing content geared towards the correct audience, and I think the new look and content really hits the spot as far as addressing our main userbase — non-technical users who want to get things done!

We did manage, however, to hit MozDev pretty hard (just overall, not just from AMO). Thanks to shaver for helping us fix the search-engine page and relieve some of the pressure on MozDev.

AUS

On the AUS side of things, Chase has continued his dominance over the impossible by pushing out the new builds using the now cumbersome Bouncer 1.0 interface (one-at-a-time — more on this later) while managing to fix AUS problems caused by the disk issue on stage in the last week of November. I think we all owe Chase a bottle of port, or maybe at least a Guinness and a pat on the back.

Bouncer

Bouncer handled things pretty well during the release. So well, in fact, that Netcraft wrote an article on its performance. I thought that was pretty cool.

That said, Bouncer still needs a lot of love. Lars and I finally hashed out some of the blockers for Bouncer 2.0 and we should be able to help Chase out by providing the upload utility for adding multiple builds via a sum file. It’ll save him a lot of time before releases.

We also plan on releasing Bouncer (finally) to the public and opening it up for improvements. A community site is also in the works, once we have time to do it (weekend project!).

One of the cooler things I saw was Lars writing a conversion script to sync up the Bouncer 2.0 dev database with the Bouncer 1.0 production database in about 20 minutes. Lars, you’re a madman.

So… anyway…

It was an eventful week. The release was a success, and I was reminded of a few things that makes it all worth it:

  • A focused community can accomplish so much in a short period of time
  • Firefox is huge
  • There are so many more opportunities to make things even better

So thanks to everyone who played a part in this release. It was once again a tremendous experience.

The whole is greater than the sum of its lesser parts.

Happy Birthday Firefox

Standard

OSL Group Photo

This year, working on projects like Bouncer, AMO and AUS have been great experiences. They have opened doors for me and have helped me grow as a programmer and person. I am grateful for Firefox and the great people surrounding it — developers, testers, sysadmins, users. This coming year will hold more challenges and hopefully a lot more triumphs for all of us. Here’s to a bright future. 🙂

One person can accomplish a lot in a year. Multiply that by hundreds of millions and now you’ve got something really special.

Mozilla in the Air at Oregon State

Standard

It felt like a normal Saturday in Corvallis. I woke up — sort of — got my caffeine injection, and hopped online. Just like last night, before me sits a small terminal running Vim. White on black, Line 1, “ReviewFest Agenda”.

I review. I edit. I rewrite.

firefox one crowd

Later that morning, Firefox-one was set loose upon the sky. Polvi and the OSULUG put together a pretty cool event along with the Oregon Space Grant Consortium. We talked, we laughed, the balloon was off, we blinked, and we left smiling.

I waddled over to the Penguin’s Nest to get ready. In time, the agenda was on the board, I had our TODO list, accounts were set up, and I waited.

Soon enough people trickled in, and suprisingly the room was filled with volunteers at 2pm. I introduced myself, talked about the history of addons.mozilla.org (AMO), my involvement, how the community contributes, etc. — basically how it’s kept itself running over the last year or so.

firefox one crowd

While I was speaking about the project, I started to realize how much of AMO depends on the community. The initial site developers, all of the reviewers, the enthusiastic addons developers and proud users of Mozilla products all contribute in many ways to this project. Saturday was no exception.

Around 15 OSU students donated 3+ hours of their Saturday afternoon to help the project, moving the queue from 157 pending addons to 67, and reducing pending comments from 330+ to about 80.

Much like the Firefox-one launch, the ReviewFest showed me how much a small group of people can accomplish in a small amount of time.

But it doesn’t just work out that way; you need a catalyst. Mozilla has served as a catalyst for community production — funding infrastructure, development, project management and marketing.

Polvi has been a great catalyst locally, organizing the Firefox-one project, the sidewalk chalk incedent, and he has been great at getting people involved and excited about Linux and open source.

In many ways, the OSU Open Source Lab (OSL) serves as a catalyst by providing hosting services and spreading the word about open source by sponsoring conferences like Goscon. It’s so fun to work at the OSL and be a part of it.

My point is that in some way, someone gets the ball rolling. They get people interested, pumped up, willing to participate. It helps people realize that, “hey, we can do this!”

And once you have the initial buy-in, things start to fall into place. Focused, excited volunteers can accomplish so much — it’s beautiful. Mozilla products benefit from thousands of contributors who test, code, discuss and reinvent on a daily basis. Their token of appreciation? A great product, an itch scratched, and sometimes a little thanks and recognition.

Speaking of which, I’d like to thank the OSULUG for helping set up the ReviewFest. More importantly, along the same lines, I’d like to thank the hundreds of volunteer reviewers who have been working hard to review and test AMO submissions. Together they work hard beind the seens, and are a main reason why addons.mozilla.org is still functional.

People Who Kick Ass

Reviews Name
1117 Wolf
1062 Alan Starr
924 Mel Reyes
751 Chris Blore
300 Daniel Steinbrook
290 Mike Kroger
219 Pontus Freyhult
200 Ed Hume
191 Giorgio Maone
187 Georges-Etienne Legendre
176 Jed Brown
141 Scott Kveton
127 Jan Dittmer
123 Cameron
123 Gabe
116 Jon Stritar
113 Toronto
112 Aggro
99 Kevin Freitas
85 Sethnakht
84 Mark Bokil
78 Doug Bromley
75 Felix Ritter
72 Roman Mironenko
70 Aronnax
69 George Topouria
68 Darren B.
65 Jeremy Gillick
65 Captain Caveman
64 Arthur Wiebe
61 JaGx
60 Davide Ficano
60 Chris Thomas

So, if you’re still reading this, first I’d like to say – WOW, you must be bored! Also, I want you to know there is still a lot of work left to do (as always!). If you’d like to help review addons or help code for the site, drop into IRC (#umo@irc.mozilla.org) or see our wiki page and reviewer’s guide for more information.

Thanks again to everyone who has contributed to AMO over the last year. It’s been awesome to be a part of it.

I’ve got a good feeling this year will be better than the last.

Favicons Stand Tall in the Tabbed World

Standard

I have found myself thinking many times about how to fit the meaning of a website into a small square about the size of push-pin. For a long time, this was just me being picky and wanting to put the finishing touch on a website. Now, it’s more about identity and ease-of-use than it ever has been.

With the increased popularity of tabbed browsing brought about by Firefox (and, common sense, in my opinion) favicon stock has gone up dramatically.

When I made my first site (the now defunct odinweb.net) I learned CSS and HTML over a spring break in 1999 mostly from w3schools and webmonkey. A part of that journey was a small article about favicons that I took rather seriously at the time, given its relatively unimportant role in a site’s design (mostly ornamental).

So if IE 5 saw this at the webroot it’d put an icon next to the bookmark for the page. Big fricking deal, right?

a bunch of tabs

Enter Firefox, Opera, Safari. Out with 90 windows open, or maybe even just 5 if you’re using some online manual reference while you’re coding. We all pretty much agree that tabs are the way to minimize wasted screen space both in desktop applications as well as in web pages themselves.

So what happens when you have more than a few pages open? Your tabs get smaller and smaller until you can’t see what the hell you have open, right? The main identity of each open page now becomes their favicon and the first couple of letters in their <title> tag.

When I was browsing today I realized how much the Mozilla favicon sticks out, in its bright red, and how much my own favicon completely marks my own pages. It really makes a significant difference.

So if you are planning on making a website with a lot of return visitors that might be using tabbed browsing, think about the lowly favicon and how it can actually be king of the tab it sits on.

Some Favicon Resources

These stupid favicons are probably responsible for 50% of all 404’s.

Do you like DAGs? Yea, I like DAGs.

Standard
snatch
© 2000 Screen Gems

Thanks to a lot of hard work by Chase and the Firefox team, Software Update was recently upgraded to support partial patches.

The mechanism uses the much-improved update UI developed by the Firefox team to process much smaller binary diffs. It provides a great alternative to downloading an entire installer just to update a relatively small amount of code — which is what most minor revisions end up being.

Aside from the bandwidth/time benefits, there are other advantages to handling updates in this fashion:

  • Less headaches for nightly testers upgrading to newer versions.
  • Ability to jump from one build to another pretty easily.
  • Now you can really “set it and forget it”.

example dag

Generally, the new functionality utilizes bsdiff to determine the differences between complete patches to make mini-patches, or partial patches, that define the shortest point between one build and another.

Due to Chase’s hard work and Jedi-like mastery of the build systems, this all adds up and provides a Directed Acyclic Graph (DAG) that serves as a map between builds. This obviously means build-hopping will be the new teenage craze, and will sweep through high-schools around the world.

Well, okay, maybe not. But it is pretty damn cool, and is the next big thing for software update.

Software Update warnings: Batteries not included. Side effects include security fixes, feature additions, general updates, uncontrollable joy and excitement or dry-mouth.