Continuous Integration

Release Schedule

May 2020
S M T W T F S
« Nov    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Branches

Twitter

Simply ship. Every time.

Tids and Bits

12/02/2006

Finished up some fixes to my NOAA Metar Microsummary tonight, including:

  • Fixing the wind parsing code to handle AUTOmated and CORRected METAR reports
  • Munging the visibility parser to handle fractional visiblities (i.e. “1/2SM”) correctly
  • Parsing (and removing) variable wind direction reports (i.e. “12315KT 300V340 4SM”)
  • Reformatting the reporting of visibility to be “vN” over “NSM”, saving valuable toolbar space

New version is available here.
Sadly, the ugly webpage remains.
Myk was kind enough to review my microsummary and noticed that the auto-installing code on the webpage had a bug in the Javascript, so if you couldn’t get it to work before, click the link above and give it a try that way, if you’re interested.
This new version is much better anyway.

***

Speaking of microsummaries, Shawn Wilsher commented
Here I was hoping that NOAA had microsummaries. Sadly, the METAR reports are a bit much for me.

I heard that sentiment a few times, actually.
(Possibly?) unsurprisingly, much of the National Weather Service’s live ground weather data comes from these encoded METAR reports. Since airports have to do them, it’s an easy way to get predictable weather data every hour from all over the country, observed by trained weather spotters (aka “air traffic controllers.”)
Point is: we all use this data all the time; most of us are just unaccustomed to seeing it in this format.
The good news is the munging the microsummary does to save space on your toolbar actually makes it much easier to read; I replied to Shawn with a crash course on METAR reading.
If all you want to know is “How windy is it, how cloudy is it, and is the visibility obstructed by anything like haze or rain showers or ice pellets or volcanic ash,” this gets you like… 100% of the way there.
And let’s face it: who wouldn’t want to know when their visibility is going to be restricted by volcanic ash.

***

I’ve had no less than two people comment on the fact that in my VCS Shootout post, the last picture looks like Mercurial is getting pummeled by ClearCase.
I don’t know how people are thinking that, since there are clearly numerous little red spiky… thingies being shot at ClearCase… who is on the floor… getting hit by them.
Besides, as I mentioned, this was merely a screenshot from that round of fighting. We all know Mercurial could kick ClearCase’s ass any day of the week. I honestly don’t even know why we even bothered with that matchup.
(And of course you missed it Shaver; we all knew that round was such a joke, so you left to get us all beer. Remember?!)

“And that includes me…”

12/01/2006

I’ve been suffering from a bunch of thinkos1 today, and I was trying to explain to rhelmer what that was all about.
I eventually just broke down and just showed him the “Winnebago Man” video2, which my friends and I have used for some time now to explain when we’re having a… thinko-filled day.3
Watching it with Rob and Jay, I mused:”Is this the ray of sunshine build and QA can be like on release days?”
Either way, I certainly feel about bugs on code freeze day the way this guy feels about flies.
___________________
1 Kind of like typos, only with… thinking.
2 Caution: not work or little-ears safe.
3 “God, I can’t f$#@!ng make my mind work…”

Version Control System Shootout Redux

11/27/2006

At the Firefox Summit last week, we convened a session death match to discuss which version control system the Mozilla Project would use going forward.

There had been some initial work1 to specify our requirements for a new system, but now with work for Mozilla 2.0 looming, it was time to get everyone in a room and make a final decision.

I’ve been asked a few times about the outcome of the discussion.

For those that didn’t catch the Pay-per-view broadcast, here’s a review of the event and decisions, complete with screencaps:

Read More

“Ah-ha gotcha” moments

11/25/2006

I’ve been realizing lately that a number of cool features in both Firefox and Thunderbird are “ah ha… gotcha” features.

These are features that even though you hear or read about them, and maybe even see them, they don’t really come across and hit you until you’re able to experience them in a way that resonates.

Extensions, I think, fall into this “gotcha” trap. There are some many extensions that people often don’t know where to start… and sometimes they install extensions that aren’t useful to them, so they don’t get the full value of the feature. But when they find that one extension they can’t live without, watch out. Thunderbird’s “Saved Search Virtual Folders” feature is another one down there in the pit.

And, despite the relatively simple concept, so, too, are microsummaries.

When I first heard about microsummaries, I thought “Oh, Live Bookmarks. Yeah, yeah… I had heard of this before. Cool idea. Stock prices. eBay auctions. Word of the Day. Yeah, yeah… got it.”

Of course, I don’t really own any stock and I don’t do eBay and I’m proud of the fact that I know only 268 words. So microsummaries didn’t really “click” with me… until I was sitting at my desk one day, wondering what the weather out at the airport was like.

Enter the NOAA METAR Microsummary!2

It pretty much does what you’d expect from a METAR microsummary, with some niceties thrown in to save space on your toolbar.

Over the last couple of days, I’ve been enjoying getting weather updates right to my search box throughout the day.

I think my secret plan was to install this microsummary at work, so I could know when it was getting nice enough that I should take a couple-hour “coffee break” to run a couple of laps around the pattern. “Hey, I just do what the microsummary tells me to!”

Seriously though, this specific use of the (microsummary) feature was what resonated with me enough to really grok how useful microsummaries are… and that’s always a fun experience.

It amazes me that I’ve been involved for some time now and I still learn about new features I didn’t know about, or new ways to use those features.

It’s pretty neat that, as a community, we still manage to create features in our products with “ah ha, gotcha”-factor so consistently.

_____________
1 Although, with so much [entirely appropriate] emphasis placed on them in the 2.0 release marketing push, that’s becoming less the case, I think.
2 Yes, that webpage is ugly as sin. But… “Dammit Jim, I’m a build/release engineer, not a web designer!”

Sixty Second Summit Summary

11/20/2006

While at dinner last week, I realized that one of the most useful parts of these yearly Firefox Summits is that it forces all of us to get together, face to face, and just slow down for a couple of evenings.
The days are full of lots of lively, boisterous discussion—as is always the case in the community—but with the added benefit of seeing the other person you’re talking to.
It definitely changes the tone of the discourse.
As I looked over the group, some chatting with each other, some just experiencing a meal together, others relaxing over a beer, it really hit home that our community has the honor of hosting some of the people who are the most knowledgable about CSS, Javascript, browser security, rendering engines, email protocols, IT infrastructure, software testing, and open source leadership in the world.
Not in the state. Not in the country. In the world.
Sometimes, around the 200th comment in a bug on how many pixels wide a button should be or how long we take to run tests, get the bits for a particular release, or get a webserver configuration pushed, I think we can forget that.
I know I have. It’s a really easy trap to fall into.
Fortunately, we have the opportunity to hold these types of events, to help us all avoid falling into that particular trap. I feel privileged to have met new friends, experienced and enjoyed the week with you all.
It was a blast.

“I’ll have a build with barbacoa, guacamole, and no sour cream, please.”

11/11/2006

A new Chipotle that just happens to be equidistant between my house and work recently opened. This is extremely dangerous, because I love Chipotle.
If you’ve never been to one, it’s much like a Subway or ToGo’s in that they have a few “base items” you can order and then you talk directly to the person making your food and watch as they adorn your meal with sour cream, cheese, guacamole, or whatever.
While waiting in line last week, watching them make my burrito, I begin thinking about a blog I read1 relating Starbucks’ operations to asynchronous message handling patterns.
As I asked for guacamole, I thought to myself “Chipotle is kinda like open source.” No, seriously!
At a “regular” restaurant, your don’t get to see your food being made, and you don’t get to talk to the chef. So, you have no real clue of what your options are. Maybe you’d have more of the salsa that plainly has those delicious habaneros you love.
Or maybe you you’d take less of the garlic pesto, because you can’t stand garlic. Maybe you want extra cheese. There are a hundred little customizations that you can confirm get done while you watch the person make your food. It’s opportunity to correct “issues” before they occur and help guide a successful outcome.
This is much better than pulling to the side of the drive thru, ripping out that burger you expressly said “No mayonnaise” four times for, taking off the bun, and cursing the fact that, yup, it has mayonnaise. Again.2
The analogy is particularly timely, because Coop just finished work on bug 337362: “Tracking bug to move tinderbox configurations into the public repo.”
One of the first things I worked on was getting all of the mozconfigs and tinder-config.pls under version control. Many of the Tinderboxen had mozconfig.20051120 and mozconfig.pre-coop in them. Not only was this a mess to keep track of, it made it difficult to figure out what the settings had been for builds we shipped even a single release ago.
I originally put them into private CVS because I was in a hurry. That turned out to not be the best solution, since people (quite reasonable) wanting information about what might have changed between two releases had to ask one of us for the information. Coop has fixed that now.
They won’t be entirely useful immediately, since the release configs for previous releases weren’t moved out of the private repo, but as we march forward, people will be able to diff the options used between various releases, find out what changed, and re-produce their own versions of what we shipped.3
Coop also did a tremendous amount of work getting the Build:Farm page up to date, to include which tags to pull from mozilla/tools/tinderbox-configs/, if you’re interested.4
The next steps I’d like to work on is standardizing the format of all the various configs, and working through how we manage making it easier for developers to commit nightly build config changes directly to the build system.
________________________
1 (Yes, this was one of the entries in The Best Software Writing.
2 I do not mean to imply that open source software analogizes particular accurately with only fast-food. The same analogy could, I suppose, be made for a sushi restaurant, at the bar, vs. some four-star hotel restaurant.
3 Ahhhh… reproducibility. As Martha says, it’s a good thing.
4 The tags may initially seem confusing. But there is a structure to them. Note to self: write up a wiki page, explaining the structure.

The Cynical Electorate

11/08/2006

As John mentioned, today was Election Day in the states.
Over the past couple of weeks, there’s been growing buzz about close races and how power could be shifting. For me, that’s not nearly as interesting as the lack of “buzz,” nay of public outcry about the pathetic state of voting machines and processes in this country.
I’ve registered as an absentee voter since 2000, not so much because I’m actually absent or can’t make it down to a polling place. Rather, an absentee ballot was the only way I could figure out how to avoid the whole argument I would want to have about not wanting to use an electronic voting machine on Election Day. By its very nature, an absentee ballot must be on paper, and therefore an artifact of my vote exists.
So, for every election, I’ve wandered down to my polling place—and for a bit of Americana, how’s this: it’s in a bowling alley—and dropped my [paper] absentee ballot in this antiquated little box/bag thingy.
I honestly don’t know what happens to it after that. I’ve often wondered if that’s any better than just sucking it up and using the electronic machines.
The cynic in me says the county doesn’t even bother counting my paper ballot anyway, presumably because it would require disgusting things like ripping open an envelope and putting it in some scanner thingy… or (god forbid!) having to count my pen squiggles with eyes! (How positively… Ew! That’s not even Web 1.0… that’s like… 19th century… Democracy 1.0!)
But, it makes me feel better to go through this dance every election… and even if it’s not counted, it’s probably better than just not exercising my right to vote at all.
Even still… the “greatest democracy in the world” can do better. A lot better.
One need only perform a quick GooTube search to find out how true that really is.1

***

All-in-all, a lot of changes to blue across the country.2
Locally, most of the people and issues I voted for won, with some stinging defeats.
Exactly as it should be in a democracy.
___________________
1 I happened to see the last ten minutes of this at a friend’s house, and the most conflicted scene for me was this polling worker crying after seeing how easy it was to hack a vote when using Diebold’s machine. Part of me wanted to smack her and go “Well, what the hell did you expect?” Part of me was just disappointed that that’s all we have in us: shock and disbelief and sadness. But, election after election, we don’t do anything about it.
2 Which by no means was expected, but neither was it entirely surprising.

A Collection of Blogmarks

11/02/2006

I just finished reading Joel’s—yes, that Joel’sThe Best Software Writing I.
It’s a collection of blog posts from 2003/2004ish, along with commentary-laden introductories from Spolsky.1
It’s a thought-provoking, if not enjoyable read. Also made for great line- and waiting room-reading.
A few of my favorites, from his collection of favorites:

  • Ken Arnolds’ Style is Substance: I’ve only been “in the industry” for… four years now? But at every software shop I’ve worked, I’ve had to have the “let’s use a style guide for our code”-series of meetings.
    They’re always painful.
    The fact that I, some “pissant, just-out-of-college” junior developer, has had to bring up discussing whether or not it matters what the code looks like is something our industry… should be ashamed of.
    Arnolds’ solution is tempting.2
  • Rory Blyth’s Excel as a Database: I couldn’t keep from giggling every time I read this. All I could think of were the… “non-technical people” at VMware, who used to kill the mail server3 by sending each other and clients .vmdk‘s—you know, the gigabyte-sized virtual machine disks—as attachments.
  • Ron Jeffries’ Passion: We talk a lot in The Community ™ about what makes Mozilla special and why people are engaged and interact with each other in the way they do. Jefferies’ explanation of passion really captures that idea, at least for me. It’s also provoking, because it’s made me think about areas for personal improvement on some of the aspects which he uses to define “passion.”
  • ea_spouse’s EA: The Human Story: this made a big splash in the blogosphere back when it was written; even traditional media4 picked it up. Times are, I’ve heard, different at EA. Admittedly, any correlation, what with being a publicly traded video game company, are muddled.
    Just the same, I’ve heard similar sentiments expressed by ea_spouse from close friends and this notion of “mild” crunches and “pre-crunches” and “heavy duty crunches,” a veritable endless crunch-treadmill that won’t ever slow down is… disturbingly familiar.
  • Eric Lippert’s How many Microsoft employees does it take to change a light bulb?: Another familiar sentiment.
    No, we don’t have that many development steps (nor that many levels of management), but I have been stared at with blank faces when trying to explain that “Adding this five-minute feature to Tinderbox5 or installing this little upgraded utility on that machine is problematic, because we use Tinderbox for releases, and it will have an effect on releases, or we can’t change that machine’s configuration now.”
    The cost is never five minutes.
  • Rick Schaut’s Mac Word 6.0: An interesting [set of] anecdotes about how you can make what seems like the 100% correct technical and architectural decisions at the time, but twelve or eighteen months later when you ship, the product is just a piece of garbage.
    Secondarily, an interesting set of anecdotes about how telling your customers that all the right technical and architectural decisions were made, doesn’t make the product any less a piece of garbage.6.
  • Eric Sink’s The Hazard’s of Hiring: my last couple of experiences have been joining a company on the beginning of growth curve. Since that typically translates to “lots of hiring,” I’ve been thinking about the subject, in both global and localized contexts, lately, so reading this added some good fodder for introspection.7
  • John Gruber’s The Location Field Is the New Command Line: An admittedly rehashed8 treatment of The Web as Application Platform and Its Impacts on Desktop Software, but what I find interesting of the treatment is that it questions the value of the “Browser War,” under the predication that Microsoft won. I’m not one for all the squeeing over the “Browser” “Wars,” but it’s interesting that the argument is premised on a point I’m not sure is valid.
    Many of these discussions of this nature seemed to be premised upon this [incorrect or debatable] point.

Since all of the content in the book is on teh Intarnets, the only real value here is Spolky’s commentary. And the increased portability of paper.
Both are worth it.
_________________________
1 And a crapload of footnotes with nothing but URLs, since that’s what you have to do when you translate the web to book-form!
2 But mostly for the ticket sales opportunities he mentions.
3 Which wasn’t that hard to do, since it was Exchange.
4 Soooo Web 0.5
5 Mostly because adding anything to Tinderbox takes much more than five minutes…
6 At least in their eyes…
7 This, which just received a facelift, too.
8 But maybe just for this audience?

A way to spend an afternoon [and a personal first!]

10/30/2006

For some reason1, a friend and I had this ongoing joke about flying to beautiful, beautiful Modesto together.
This weekend, we finally got around to doing it.
It was an interesting flight.
On the way out, visibility was all over the map in the central valley, as there was a forest fire… “somewhere.”2 We were about four DME from the field, and I still couldn’t find it visually. Our saving grace was the fact that MOD has a VOR at the field, so my friend’s GPS track of the flight3 shows a fairly… obvious 70-degree turn to get into the pattern.
Modesto-the-airport was amusing, too. I think the best scene was the arrivals/departures board, which had nothing but “one” for the gate number. Dealing with “the TSA” was also… interesting.
The journey home treated us to a fortuitous landing on SJC’s runway 30L.
If you’ve ever flown commercially into San Jose, you’ll get one of the three-zeros4. They seldom give it to general aviation aircraft, but I guess we arrived during a slow period, and there was enough haze that giving us the runway with the full instrument approach lighting system was worth it, I guess?5
I didn’t notice at the time, but my friend shot some video of the trip; it’s a bit long, but the sunset he captured was beautiful6, and if you’ve ever wondered what it looks like landing in San Jose from the front7, be sure to take a gander. There’s some great footage of the general area where MoCo lives, too, from about 1500 feet.
The time of night for those last couple landings8 and takeoffs are hands down my favorite time to fly.
Last night, it was overcast at 1900 feet in Mountain View, so I gotta enjoy it while I can.

***

And since this is a Mozilla-related blog, I’ll note: some of you may have noticed a new machine on the Firefox Tinderbox page, fx-win32-tbox.
I put it into production last week, as a replacement for gaius[-vm]. It’s based on the new VC8 reference platform, and astute Tinderbox readers will notice that its cycle time is almost half that of gaius-vm!
I’ll likely switch it to be the nightly Tinderbox this week after checking with Vlad and Stuart.
___________________
1 Now long forgotten…
2 And yes, that’s a direct quote from the Flight Service Station: “We’re still trying to figure it out.”
3 I specifically took up an old school ™ plane, because I wanted some challenge navigating on this flight… GPS makes us so lazy…
4 And now, since 30R is closed for some construction on the ramp, you’ll always get the left.
5And it was, since we had a bit of trouble finding San Jose, too… of course, I could have always cheated there since they, too, have a VOR at the field.
6 About two minutes in.
7 About three minutes in.
8 About six minutes in.

On 0xf minutes of [ZOMG blogosphere!!1] fame

10/24/2006

Last night, my blog became a bit of a lightning rod1, as readers from Slashdot poured in to tell us exactly what they think of how we release software.
I just finished reviewing the hundred-some comments2, and I think I’ve realized four things:

  1. People who have managed and worked with large releases of open source software, involving millions of people, and tens-to-hundreds of partner mirrors seemed to understand the complex set of issues that accompany such a process, and were sympathetic. Those that hadn’t… well… added mostly a lot of noise.
  2. Most people missed the point.
    As Beltzner’s comment points out, the real problem we’re trying to address are news sites, articles, and the like reporting “OMGSquee Firefox 2 is released, go get it here!” when that’s just flatly wrong. For sites that have editors, it’s irresponsible journalism, because it’s just false. And they need to know that it’s both irresponsible and incorrect.
    For those that don’t, users need to know the effect of all their “diggin’” and “reddit’ing,” and hopefully “the community” will do the right thing.
    In both cases, many of Slashdot’s core users are not what we’re so worried about. When they notice others getting automatic Firefox updates that they may not be getting, they’ll probably take the time to figure out why. They’ll upgrade themselves, because not all 38 of their Firefox extensions didn’t work with 2.0 yet. They’ll find the en-US build, because they know how to chop apart URLs, and go trolling through the FTP tree for the right locale (and for Linux builds3).
    Where it especially causes problems is when geeks see it, and download it for their girlfriends’ computers.
    Or boyfriends’.
    Or parents’.
    Or Liberal Arts major roommates’.
    Those people are going to start up Firefox 2, and find 404′d startup pages. The online help won’t be there. Or if it is, maybe it won’t be localized for their language yet.
    They may be using the wrong locale for their needs4. Heck, they may get an unsupported locale5.
    These are the people it really hurts.
    It tarnishes all the hard work that a community of hundreds put months of their time into, because some couldn’t wait.
  3. Yeah, this is open source software… and everything we do is in a fishbowl.
    That’s the great part of open source software: you all get to see what the developers do, and what QA does, and what Build/Release does… and you get to call us stupid when we tell you the pan is hot, and you shouldn’t touch it [yet]. But at the end of the day, you get heed the warnings and suggetions—or not—and make the decision about what’s best for you and your needs.
    What I did find surprising was reading a comment that said “You can’t appeal to people’s good nature, when there are millions everywhere around the world waiting for the new version.”
    Firefox and Mozilla have always relied on “people’s good nature” to help each other out, do the right thing, and work together to produce great software and make the web a better place. Open source itself is founded upon this general principle.
    Firefox is unique, in that it’s a very end-user facing application.
    I guess that sentiment tells me we’ve all got some work to do to help acclimate people to the idea of a community driven software development model, where taking down someone’s Internet connection in Europe or Asia who’s volunteered to host bits closer to you really isn’t OK.
  4. Finally, while going through the comment moderation queue, it’s clear why a lot of you want Firefox 2 the second you can get it: the new inline spell-check feature for submission forms ;-)

Having said all that… Firefox 2 is now released.
And I’m off to take a nap now6.
___________________________
1 Which… eh… not the first time
2 Not all of which were posted… but neither were just positive, back-patting comments posted.
3 It amuses me to no end that such a large open source site linked directly to Win32 builds
4 en-GB vs. en-US, for instance. Or es-AR vs. es-ES.
5 Where “unsupported” is defined as “won’t get automatic updates, and remain secure on the web,” which is like… a huge reason to use Firefox in the first place.
6 After having a piece of MS Cake 2006, Service Pack 27 of course!
7 “Giving new meaning to dumping core.”

Newer Posts
Older Posts