A transit of Venus

(or how I learned to stop worrying and love the Sun)

This is going to be a longish post, the ravings of an obsessive-compulsive mind. So here’s the tl;dr… I took a picture using a telescope (indirectly). It’s Venus transiting across the Sun. It took some frantic last-minute work, but it was worth it because it won’t happen again for 105 years. Here is my picture:

The black dot is Venus. The whitish circle is the Sun. Behold, the glory of orbital mechanics!

OK, most of you can safely skip the rest of this post. Geek stuff follows…

The story begins 16 days ago. The annular eclipse of May 20th 2012. These are relatively infrequent (every 2 or 3 years), but what was special about this event was that the optimal centerline-path of the eclipse was only about a 3-hour drive away. So I packed up my gear and hit the road. Yes, I also took a picture then:

I learned a few things from this event. The first was that — damn — these things sneak up on you fast. I’m a science/astronomy geek, and knew this thing was going to happen, but it wasn’t until a few days prior to the event that some random news article reminded me that is was going to happen omgnow. So I had to scramble. The second lesson was that it really helps to do a few dry-runs for your observation. I was prepared with a pinhole projector and pinhead mirror for observing the eclipse, but I built (!) both of them the day of the eclipse and was in a rush. It turned out ok, but I glitched the math on my pinhead mirror focal length and so the image was more blurry than I had been hoping for. No big deal for the eclipse, though, since most of the experience was more atmospheric (pardon the pun)… The relaxing drive, the slowly darkening skies, and the unexpected sights along the way. The saying that “the journey is the reward” was spot-on.

Taking these lessons to heart, I decided to be more prepared for the then-upcoming Transit of Venus. After much armchair research, I figured that the absolute best viewing experience would be with a specialty telescope fitted with an H-alpha filter. The views are astounding, as is the price — it jumps into the $thousands before you can even blink.

So after careful deliberation (especially given the once-in-a-lifetime opportunity), I did what had to be done. Yep. I got a $10 #14 welder’s filter and $5 pair of eclipse glasses. (Looking at others’ expensive pictures? Priceless.) I do have a decent conventional telescope, but it’s a pain to lug around and I was thinking I wouldn’t really need it.

But I found that the eclipse glasses seemed useless for a transit — the naked-eye diameter of the Sun is surprisingly small, and the tiny dot that is Venus would be challenging to see. I also did a test shot of the Sun with my camera thought the #14 filter, and scaled a shot of the 2004 Venus Transit to that size to create a mockup of what I might be able to capture on Transit Day:

Unimpressive. Venus would be about 4 pixels — at best. I’d get better results with a longer zoom lens on my camera (Lumix GF3, 20mm); but I tend to prefer wide-angle shots, thus spending $hundreds for a lens I might not use very often was unappealing. And so I basically left it at that, figuring whatever I might manage to record would be just fine as a token momento. After all, NASA and professional astronomers would capture the event in stunning detail, so why bother trying, right?

Timeline: Tuesday June 5th. 10:30am.

I started off my morning with a weekly meeting with my boss, Johnath. I don’t recall exactly how we got to the topic of astrophotography and Venus, but we did. And something (read: Johnath’s nefarious plan) sparked my brain into thinking that surely it couldn’t be that hard to something with my telescope for the transit. And from that point on I knew my day would have one, intensive, singular focus.

The ideal way to view the Sun through a telescope is with a special H-alpha filter (expensive, as noted) or much cheaper general solar filter. Both basically block 99-point-lots-of-9s of the light entering the telescope, making it safe to look through directly with your eye. Alas, I had neither of these filters. (See above, re: prepare and practice.) Instead I fell back to an idea I had heard about, which involves physically blocking most of the telescope’s aperture except for a small opening. This would reduce, in my case, the light-gathering power of an 8″-diameter Schmidt–Cassegrain ‘scope — which is normally great for viewing dim galaxies and faint nebulae — to a much smaller opening. Say, a half-inch to 2 inches.

First step — measure twice, cut once. I was very precisely cutting a form from foam board (say that four times fast), because I wanted to ensure that it fit snugly and didn’t leak light. A full-aperture telescope pointed directly at the Sun has an overwhelming tendency to do things like cause blindness, burn things, and damage delicate optics. That would be bad. On top of the first foamboard layer would be a sheet of foil (because foamboard isn’t very opaque to light), and then a second layer of foamboard to help protect the foil and sit flush with the outer lip of the telescope body. A little bit of gray fleece on the back and flat-black paint helped cut down on reflections. Ta-da, done.

I also built a holder for the #14 welding glass I have, but didn’t end up using it. It’s too dark to use for projection, and viewing through an eyepiece just didn’t seem to work as well as projecting. I also ended up entirely skipping the creation of some kludgey adapter to attach my camera to the telescope (I have a camera fitting, but it’s for the ancient Pentax-K mount).

Finally, after all that, I set up everything to see if it worked. I got the sun projecting onto a small piece of foamboard, and my first thought was to wonder what I has screwed up to get such a big black dot in the image. Oh, wait. Right. That’s Venus. I wasn’t watching the time, and the transit was already underway. Hooray, it works!

After this I couldn’t directly see the sun from my patio any more, so I headed off to a park near work with an open view of the sky. Matt and Jared helped out with moving equipment and holding the projection surface (again, formboard) while I fiddled with the telescope. This is how we were set up for capturing the photo at the top of this post:

Afterwards, just for fun I took an image from NASA’s SDO satellite and scaled it down to compare with my own contrast-stretched shot. I will be the first to admit their $850 million toy captures a far superior image, but I’m still pleased with my own result. (To be clear, mine is on the left. :)

And that’s how I spent most of Tuesday.

Posted in PlanetMozilla | 8 Comments

Boom goes the dynamite

This weekend bug 758812 landed on mozilla-central. So begins a long, slow process of splitting up browser.js into smaller pieces.

“What’s the deal with browser.js, anyway?”

It’s big. Too damn big. For those unfamiliar with it, browser.js basically contains a bunch of the code for driving the UI in a Firefox window. Anything you click or see changing as you browse probably involves this code. A browser needs to do a surprising amount of stuff to work, and over time browser.js has become an eclectic collection of code. About 13K lines of code, in fact. That’s a lot, and leads to a number of problems… It’s a daunting behemoth for those new to the Mozilla code base. It’s haphazardly organized (at best), so it’s hard to find things unless you already know what you’re looking for. And looking at Mercurial’s history for the whole file doesn’t really give you a clear picture of how specific pieces evolve.

“So what are you going to do about it, punk?”

Break it up! The first step landed, which is just spinning out a few big chunks of related code into #included files (about 2K lines). As time goes on (and we see how changes work out), we’ll likely spin out even more. Some of these pieces may also end up evolving into JSMs, which has modest benefits for improving memory usage and startup time. We might even be able to share some of this code across products (Firefox, Fennec, B2G).

“And the bad news?”

Well, there really isn’t any. If you’re a Firefox user, you won’t see anything change. If you’re an add-on developer, you’re unlikely to be affected by these changes. The cleaving of browser.js is currently just a source-tree change with #includes, so the resulting browser.js that ships in Firefox is mostly the same. Future changes to move code into JSMs will have some impact, but we’ll try to keep change small and approachable. Really, it’s only Firefox front-end developers who are likely to notice the changes, patches to certain code in browser.js may now need to patch code in browser-foo.js instead.

“I’m not seeing any cats in this post so far.”

I am never one to disappoint. Here is my cat wearing a tiara.

Posted in Firefox, PlanetFirefox, PlanetMozilla | 9 Comments

Too long for Twitter

“Far out in the uncharted backwaters of the unfashionable end of the western spiral arm of the Galaxy lies a small unregarded yellow sun. Orbiting this at a distance of roughly ninety-two million miles is an utterly insignificant little blue green planet whose ape-descended life forms are so amazingly primitive that they still think digital photo filters are a pretty neat idea.”

Posted in PlanetFirefox, PlanetMozilla, Technology | 4 Comments

Unowned Reviews

I was feeling a little bit ornery today, and decided to take a look at unowned reviews in Bugzilla (aka patches with a review request “to the wind”, instead of requesting review from some specific person).

After a bit of head scratching to figure out _how_ to get a list of such bugs through the search form, I gave up and use Teh Googlez to get my search query.

When I started there were ~130 requests (in ~110 bugs) across all of Bugzilla. Surprisingly, many of the requests (maybe 2/3rds?) were in bugs that were already resolved fixed/invalid/dupe/wfm, and were thus easily cleared out — along with a comment to take action if there was some non-obvious reason to keep the patch active. (And I use the word “active” loosely as most of these patches were _years_ old.)

For the patches in bugs which were still open, I generally assigned to a reviewer I knew was active in that area (to either close the bug out, perform a review, or reassign to someone else). In a few cases, where patches were really ancient (e.g. 6+ years waiting for a review!) I cleared the review and asked that the patch be updated or bug closed. Reviews of that vintage are simply not useful, and stand in the way of driving this list of reviews to Zarro.

Currently, there are now ~35 unassigned review requests (in ~25 bugs). Most of those are in in Rhino/Tamarin or addons.mozilla.org, and I wasn’t sure what to do with them. I’ll ask around this week.


Posted in Firefox, PlanetFirefox, PlanetMozilla | 9 Comments

Firefox flowers

I was at IKEA the other day (for the first time ever!), and juuust as I was about to make it out the door with minimal expense I saw their assortment of fake flowers, and knew what had to be done.

Adds some nice color to my desk at work, when I get bored of it I’ll probably move it so some conference room. :)

Make your own!

19 SNÄRTIG flowers (5 blue, 1 yellow, 3 yellow-orange, 7 orange, 3 red).
1 red SMYCKA flower.

I had the red and black filler sitting around from some other store, but it’s easily available. (Note symbolism in Firefox being anchored in the rock of Mozilla.)

My cat, Munchkin, is not available for sale. Sorry.

(…i can haz flowers?)

Posted in Firefox, Fuzzy Friends, PlanetFirefox, PlanetMozilla | 2 Comments

An experiment in Firefox bug triage

If you’ve been around Mozilla for a while, you probably know that Bugzilla’s “Firefox :: General” component has a bad reputation; a place where bugs languish and die without attention. It’s not entirely true — over the last year we’ve fixed 220 bugs there, closed 7500, and triaged and commented on many as well. But it’s true enough.

Part of the problem (and there are oh so many parts!) is that Firefox::General serves two very different purposes. One is as the default bucket for bugs from new users, or for when someone’s not sure where to file a bug. This is a real firehose. I don’t know how to get exact numbers from Bugzilla, but it’s easily thousands of bugmails per month (including the initial report, and following discussion to determine the problem and proper component). The second purpose is as a catch-all component for code without its own dedicated bugzilla components. The volume of bugs around this purpose is far more sedate, though it’s again hard to get numbers. It’s like trying to find a leak in a firehose by peeking into it. :)

So it’s time for a simple experiment.

We’re creating a new Firefox::Untriaged component (see bug 713163), which will serve as the new “inbox” for bugs from new or unsure users. Firefox::General will remain, and focus on being a good home for bugs without a more suitable component. (There is currently no plan to move the existing backlog of 6000+ open Firefox::General bugs over to Firefox::Untriaged. Maybe we should?)

The idea is that bugs filed into Firefox::Untriaged should end up moving elsewhere (or be closed, if appropriate), lingering only long enough for gathering enough info to move/close it. Firefox::General then becomes manageable as place for real bugs, just as any other component should be.

There are still many problems with our inability to effectively triage all incoming bugs (as fine contributors like Tyler Downer have often blogged about), and this won’t solve that. But it is a small step towards better stewardship of one piece of the problem.

Posted in PlanetMozilla | 3 Comments

Speaking of Community

In my last post I mentioned how super satisfying it is to be part of a community working together to make Firefox better.

This morning someone new dropped into #fx-team on IRC, asking about a reproducible problem and how to submit a patch. Normally #fx-team is a fairly busy channel, but since we were all at the Mozilla All-Hands last week, people were traveling and recovering… So it was 12 hours of dead silence before anyone replied. Not great, but also pretty rare. :-(

Anyway, the awesome part was that in that time this person managed to grab the source code, diagnose the problem with gdb, fix the problem, and then blog about it — check it out. That’s pretty awesome! (Oops, I already said awesome once. Still deserving of a 2nd ‘awesome’. :-)

The timing couldn’t have been better. At the All Hands, I went to one of the talks by Ubuntu’s Jono Bacon on Growing and Maintaining Community. It was pretty awesome (3rd time, yes I know). Obviously Ubuntu has a large community, but I was hadn’t realized just how much thoughtful effort has gone into improving it… TONS of fantastic ideas and practices that I hope Mozilla can also make use of. The one downside, though, was that I came away feeling a little bummed at how much work need to do to reach the high level of wide-ranging, effective engagement Bacon et al have developed. So it was really splendid timing to have a new community member pop out and have a good experience.

Today was a good day.

Posted in Firefox, PlanetFirefox, PlanetMozilla | 6 Comments

Community participation

(First, let me note that there will be no flame-farting robots in this post.)

Now that’s out of the way, let me refer you to this post by Notch, creator of the wildly-successful indy game Minecraft.

Someone tweeted me about a joking campaign to add 3d modeled snouts to the pigs in Minecraft, so I did.

I think this is one of my favorite parts of working on Firefox. “Hey, let’s fix that” … “*bam* Fixed”. That’s not to say every community suggestion or known bug is simple to fix, but when it is it’s super satisfying.

Posted in Firefox, PlanetFirefox, PlanetMozilla | Comments Off on Community participation

What’s hot for Android?

The correct answer, of course, is Firefox Mobile. :-) But what _other_ apps are must-have for Android?

Some context: I got a Motorola Atrix phone a few months ago, it was my first Android device. I’ll probably blog more about it sometime, but the short version is that the hardware is good-to-ok, Android (currently Gingerbread) is a disaster, and I (honestly) really really really like Firefox Mobile on it. It’s my first mobile device (iPhone included) that I actually enjoy browsing on. Even for an extended period, as opposed to “let me look up X real quick.”

I’ve now got a Galaxy Tab 10.1 tablet, and am giving it a whirl. I will _definitely_ have things to say about it soon. But in the interim, I’m wondering what other excellent Android apps are worthy to try out?

My current — and rather short — list includes:

  • Firefox Mobile (duh)
  • Angry Birds (who doesn’t)
  • Twitter (also mandatory, official client or not)
  • Evernote (really liking the desktop app, so a natural fit)

Johnath was raving about Tasker, which I’ll install as soon as I figure out how to enable the “Buy” button in Android Market.

Posted in PlanetMozilla | 9 Comments

Seven Things

“Seven Things” is the hip new, err, thing that all the kids are doing these days. I got pinged, so here’s my 7. Hey, let’s do this David Letterman style.



7. Has a cat!

Hmm. Kinda off to a bland start, but then I never found Letterman to be very funny.

Anyway, yes. I haz a cat. I saw her hanging around as a stray, and began to leave some cat food outside for her. Then, after a couple rainy nights of her stopping by to eat (as well as look sad and lonely), I opened up my door to put out new food… She ran inside (!) and I realized I had just been adopted. :-3 She’s a fairly small cat (and was starved when she found me), so I named her “Munchkin”. We’re snuggle buddies, and she’s so sweet and well-behaved it’s ridiculous. _Ridiculous._

I have pictures from when I first got her, as well as some more recent shots. Oh, and she’s Kind Of A Big Deal, as the header on the URL-shortening side icanhas.com.

6. Built a Firefox logo from LEGO!

I’ve previously blogged about this. It’s awesome enough to mention again, I’m quite pleased with how it turned out.

5. Is a hueg space history nerd!

I’m keenly interested in NASA’s (and other countries’) space programs, both past and present. I first got hooked after reading an article in the newspaper on the 25th anniversary of the Apollo Program, when I read that we had landed (men) on the moon not just once, but actually 6 times. I was stunned that that I had never learned that before, and was determined to know more.

I particularly enjoy the nitty-gritty, engineering details of programs. It can be hard to find — mass market books don’t want to get too technical, and NASA’s own outreach is mainly for school kids — but there are gems like this book, and NASA’s Apollo Surface Journal, or Apollo Flight Journal. NASA now has lots of very high-res photos from recent Shuttle and ISS missions, which you’ll see as wallpapers on my desktop at work. They’re fun to zoom into and examine for little details.

4. Can do software _and_ hardware!

I do software for a living, but I also love to dabble with simple electronics on the side. I can fairly claim geek points for knowing how to solder (fine-pitch SMT, at that!), doing design and etching of my own boards, reading datasheets for fun, and hoarding components that will be “useful someday”. All self-taught, but also not very good at it. :-( They say software guys shouldn’t do hardware, and vice-versa — it’s probably true. But it pleases me, and I think it’s more about the journey than the destination.

My first serious interest came after reading about a neat “forever flasher” project on alt.hackers, back in the day… It was just a little LED blinking circuit (solar powered, with supercap for storage), but the clever part was that it was hooked up with fine magnet wire and permanently cast in the center of a clear acrylic block. From there I graduated to building a beer-keg monitoring system with a DalSemi TINI kit. My hardware was flaky, but it did have a web interface. And I get bonus points for writing a GIF encoder in Java, mostly from scratch.These days I’ve been tinkering with an Arduino board I got from SparkFun’s first Free Day promo, as well as TI’s nice little MSP430 LaunchPad kit (just $4.30!).

3. Loves Beer!

Did I just mention beer? I think I did. Yes, I’m a bit of a beer snob… Ok, ok, I’m a big beer snob and huge hop-head. I’m in heaven with the amazing beer variety available on the west coast. If someone could please move Belgium over here too, I’d appreciate it.

Instead of a long monologue on how much I enjoy all things brewed, I’ll just plug BeerAdvocate here. Subscribe, it’s just $15 cheap!

2. He’s an international fugitive from the CIA and NSA!

I miiiight be stretching the truth here slightly. :-) But back in 1997, I helped out with the DESCHALL Project, a massive, distributed effort to brute-force a message encrypted with DES. (Purely white-hat, it was a contest sponsored by RSA Security.) After 3 months and tens of thousands of participating systems, a 200Mhz Pentium-90 owned by some guy in Utah stumbled across the correct key, and we won. (The secret message was “Strong cryptography makes the world a safer place.”)

This was the first known successful brute-force attack against DES. We got some press (page A3 of the Wall Street Journal!), I later cowrote a USENIX article, and overall it felt good to play a tiny role in the crypto wars of the 1990s… Back when the government considered cryptography to be munition and still tried to tightly control its export. Coincidentally, we won just days before the US Government gave Netscape permission to export 128-bit crypto (instead of the ridiculously limited 40-bit limitation it required before).

I didn’t write any of the crypto code for DESCHALL, but I did help with organizing the project, wrote a proxy to tunnel its UDP client/server control traffic over TCP, made a graph server for people to track their progress, and (most fun of all) made an export-control download page that did a reverse-IP lookup of the user, then a WHOIS lookup on that domain, and finally scraped out an address to see if they were likely in the US. Oh, and I ran the DESCHALL client on about 200 systems at Ohio State University… Over the 3 months, they tested an 100 trillion DES keys — or about 0.1% of the problem space. One year later, the EFF built Deep Crack, which could crack a DES key in just a couple of days.

Eventually I should file a FOIA request to see what the US Government knew about the project and us. :-)

1. Starting his 6th year at Mozilla!

Last but not least.

My first day working for Mozilla was August 7th, 2006. 5 full years ago, nearly to the day. Wow. Looking back, I am concurrently full of things to say and speechless. I’ll just say it’s been an amazing experience that never gets old — every day, when the office elevator doors slide open and I see “Mozilla” on the wall, I feel awed and humbled.

I can’t wait for what the next 5 years will bring!

And that’s tonight’s Top 7 list!

*throws card through fake window*

Good night, ladies and gentlemen!

Posted in Firefox, PlanetFirefox, PlanetMozilla | 5 Comments