10
Mar 10

Developer Tools in Firefox

jk5854/flickr cc

Web developers make the open web go.

For Mozilla, that means that if we want to see the open web succeed, we need to help web developers build it. When we talk to them about building for the web, most of what they want to talk about is web featuresCSS improvements, new HTML5 goodness, content magic like geolocation and orientation events. We invest a lot in making those things awesome, but they are only part of the answer.

The other thing that web developers talk about is tools. Specifically, when we talk to them about tools they ask for two things:

  1. Mozilla should invest in Firebug. The Firebug and Firefox communities should be working together to fix bugs, not working around them. Firefox releases should ship with a compatible Firebug out of the gate, not weeks or months later.
  2. Mozilla should be leading in developer tools. Before Firebug, View Source and DOM Inspector were the state of the art. Now other browsers are copying Firebug and shipping their tools by default, and the question is where the tools are going to go next. We should be a strong voice there, and back it up with code.

For #1: got it. Loud and clear. Firefox 3.6 shipped with a compatible Firebug from day 1, due in no small part to the contributions of Mozilla employees paid to work on Firebug. Jan “Honza” Odvarko has been fixing bugs and building out features left and right, and Rob Campbell has helped drive the project, and made sure that Firefox dependencies get attention. We don’t want to try to take Firebug over; it has its own, healthy community. We are much more active participants than we used to be, though.

#2 is harder. What tools do web developers need that don’t yet exist? Which tools would be broadly useful, and which ones niche? What can Mozilla bring to the table, as the developer of a browser, to make the design & development experience better/easier/faster/funner? We’re trying to figure that out, we’re working on some early ideas that I’ll write about in subsequent posts, but I’d also like to hear what you think is missing.

Building developer tools into Firefox will mean a lot of exploration, and a lot of new code – that’s scary, but the benefits are huge. In the short term, this work will rekindle the conversation about developer tools, and get us all thinking outside of the existing boxes for a few minutes. In the long term, it should make life better for web devs and tool authors; everybody wins.

Web devs are smart, it’s no coincidence that #1 and #2 above pull in the same direction: make Firefox the best platform for web development and tool building. We all want web authors to have an awesome, empowered experience and I think working together in this way is the best play we have for continuing to build that.


16
Feb 10

A Letter For My Daughter

babyLily,

There’s a lot you don’t know about how you came into this world, little girl, and I plan to tell you all about it. I’m not holding on to details too well right now, though, so I thought I’d write some of it down, just in case.

First – the practical stuff. You were born at 5:44pm, February 13th. You weighed 8lbs, 6oz, which is on the heavy side of normal, and measured 22″ long which is on the long side of normal. Your head was 37cm in circumference, which is on the big side of normal, and it took Mommy 24 hours of labour to deliver you (your love for consistency held fast: this, too, is normal, but longish). You were positioned face up (“sunny side up,” said your doctor) which is normal, though more difficult. You needed some vacuum help (normal, though more difficult) and then some forceps (normal, though more difficult). You had a bit of jaundice which kept us at the hospital for another day (normal, though more difficult). In every way that you could, you tried to tell us that you were bigger than life, and you were right.

There’s more you don’t know, though. You don’t know that daddy cried when you were born or that he’s thinking about crying now as he writes this. You don’t know that we’ve been working on you since 2007. You don’t know about your mommy and daddy beating a regular path to the fertility clinic before work most mornings; mommy getting bloodwork and ultrasounds on day 3, 10, 12, 14, 15 and 16 of every month – for nearly 2 years; or that the month you did show up was the one month we had no treatments at all, because mommy’s body needed a break. You don’t know that you weren’t our first positive pregnancy test.

But you’re here now, and we are happier than we’ve ever been. We can barely stay awake, we jump every time you make a noise, but we are awfully smitten with you. We haven’t had many visitors because it’s all still a bit overwhelming, but when visitors do show up, we are the proudest parents, showing you off. We barely recognize your daddy any more – he impulse buys onesies with dinosaurs on the front, and today he boiled nipples.

I can’t wait to tell you all about the world, and about your arrival, and about what an amazing woman your mommy is. I can’t wait to introduce you to the incredible village that has risen up around you and supported us three since the beginning. I can’t wait, but I’m going to try because I don’t want this to go any faster than it has to.

I love you, Lily Margaret.

Daddy


11
Feb 10

Interview with a 419 Scammer

For those who haven’t seen it, scam-detectives.co.uk has a really interesting 3-part interview with a former Nigerian scammer.

Scam-Detective: A reader has asked me to talk to you about face to face scams. Were you ever involved in meeting a victim, or was all of your contact by email?

John: I never met a victim, but I was involved in a couple of Wash-Wash scams.

Scam-Detective: Wash Wash scams? What does that involve?

John: We would tell the victim that we had a trunk full of money, millions of dollars. One victim met some of my associates in a hotel in Amsterdam, where he was shown a box full of black paper. He was told that the money had been dyed black to get through customs, and that it could be cleaned with a special chemical that was very expensive. My associates showed him how this worked with a couple of $100 bills from the top of the box, which they rinsed with some liquid to remove the black dye. Of course the rest of the bills were only black paper, but the victim saw real money. He handed over $27,000 (about £17,000) to buy the chemicals and was told to return to the hotel later that day to pick up the cash. Of course when he came back, there was nobody there. He couldn’t report it to anybody because if it had been real it would have been illegal, so he would have gotten himself into trouble.

Part 1, Part 2, Part 3.

We build tools in Firefox like stale-plugin warnings and malware blocking to help protect our users, to neuter the technological attacks they may encounter on the web. But we also try, and need to keep trying, to build tools that inform our users so that they can make better decisions. Our phishing warnings and certificate errors try to do this, but mostly by scaring users away from specific attack situations. I hope we’ll continue to build tools like Larry which try to give people some affirmative context as well, to lend some nuance to their sense of place online. I want us to help our users know when they’re on Main Street, and when they’re in an alley.

I know: People get conned in the real world, too, and certainly no browser UI is going to save you from an email-based scam. Stories like this, though, are just specific instances of what I believe to be a more universal principle:

the biggest security risk most people face is misplaced trust

John: Some of the blame has to go to the victims. They wanted the money too because they were greedy. Lots of times I would get emails telling me that they wanted more money than I was offering because of the money they were having to send. They could afford to lose the money.

Scam-Detective: John, I think you have been basically honest with me so far. Please don’t stop that now. You know as well as I do that not all of your victims were motivated by greed. I have seen plenty of scam emails that talk about dying widows who want to give their money to charity, or young people who are in refugee camps and need help to get out. You targetted vulnerable, charitable people as well as greedy businessmen, didn’t you? You didn’t care whether they could afford it or not, did you?

John: Ok, you are right. I am not proud of it but I had to feed my family.

If you have ideas for how we can help users place their trust online more deliberately and carefully: please comment here, or build an addon, or file a bug.


04
Feb 10

Bugzilla for Humans

Bugzilla is the devil we know. It’s more complicated than we’d like it to be (albeit mostly by our own hand), it’s pretty intimidating to new users (though I recognize the efforts to improve that), and adding the features we want can be a slog (I’m looking at you, multi-state flags).

It’s also essential to the way we manage our project at scale, though, and enough of our project’s history and daily activity lives there that understanding it is not really optional. Certain edge cases aside, you can’t really be effective in the Mozilla project without at least a passing ability to wade through Bugzilla.

I put together this video to help people who don’t really live in Bugzilla learn how to at least manage themselves. If you’re inclined to thank me for it, thank Deb and Dan instead – they’re the ones that actually made me sit down and finish the job.

Until wordpress stops eating my video tags, you can get the open-web, flash-free, unencumbered-codec goodness here.

If you’re using a browser that doesn’t understand ogg, I’ve put a copy on Vimeo as well:


29
Jan 10

Mozilla’s EU Browser Choice Submission

And so it came to pass, after months of watching and opining and speculating, that in mid-December we got the letter from Microsoft’s attorneys. The European Commission had adopted a decision settling its current tying case with Microsoft. Among other things, this decision introduced a mandatory browser choice screen for Microsoft Windows users. Would we like to participate?

(Yes, we would.)

Our deliverables had to be submitted by January 15. Others in our (amazing, amazing) community did all the real work, but since I was asked to pick up the coordination and delivery of those pieces, I wanted to talk about them a little.

In broad strokes, Microsoft asked us for 3 things: Continue reading →


14
Dec 09

4 More Hacks

Last week was a Mozilla Corporation all-hands, which is typically an exhaustingly generative time. Some of these bits fell out, in the interstices between working and sleeping; the drinking times.

Bugzilla History Jetpack

I put together a jetpack to annotate show_bug output with the bug’s activity, so that you can track flag changes, state changes, reviews, &c. The idea was all beltzner‘s originally, but I’ll take credit for the half-assed implementation, anyhow.

If you don’t yet have the jetpack engine installed, go get that first. Once you’ve got that, you can grab the bugzilla jetpack itself.

[N.B. Since that’s just my generic bugzilla tweaks jetpack, you will get, for no extra charge, the one-liner that removes “Bug ” from the start of bug titles, so that the bug number fits better in your tab strip. At some point I’ll probably add it to the jetpack gallery without the ride along, but you want it NOW.]

Flic.kr Jetpack

I also fixed flickr so that photo pages which have a flic.kr shortform URL have that URL added just below the photo, for easy copying. It’s also a jetpack. This one I actually added to the gallery, grab it here.

EXIF in Flickr

One more jetpack. I wanted to play with flickr’s awesome, awesome API, and I want EXIF data for flickr photos without a separate page load and I didn’t want it to look very nice. Presto.

Jury-rigged IRC

On the flight home, we had an adhoc wifi network running, which enables 1-on-1 iChat but is no good for multi-party. None of us had an ircd kicking around, so I knocked this together. It mostly works, but I bet you can offer improvements. (yes, nc would have worked here too, but ncat is neat, and does SSL).

Server:
tail -f log1 | ncat -lk 2000 >> log1

Client:
cat - | sed -l "s/^/[`date +%H:%M`] < @johnath> /" | ncat 2000

Extra Credit

  1. Before making the history jetpack, I had it mostly working as a bookmarklet in 498 characters. Can you make it tweetable (140 chars)?
  2. The history jetpack is scraping the show_activity content instead of using the new REST API. Patches accepted?
  3. The EXIF jetpack should do a nicer job of highlighting what matters.
  4. Local echo on the chatroom was kind of annoying, we ended up opening two “clients” each – one for typing into, and the other for seeing the unmunged chat stream. Got a better one liner?

29
Nov 09

NSID 2009

This is not a drill.

For 11 months of every year, we all live our lives integrated– embedded, if you will– with our fellow citizens, hewing to their customs; blending in. For 11 months of the year we rarely even speak of the movement. But not this month.

It’s time for NSID operatives to go live.

First, remember our history. In 2007 I first spoke publicly of the cause, and in 2008 our numbers exploded. No Shaving In December has participants on at least 4 continents, participants of both sexes, and participants of all ages and stations in life. In fact, a recent survey I just made up confirms that every LinkedIn user is, at most, 3 hops away from an NSID participant.

Second, remember our cause. NSID’s not a political movement. It’s a silly, awesome getting-together of people who sort of like to see how they look when they stop shaving for a month. It’s permission to try something different and in that sense, our cause is freedom. Look at the flickr pool; it’s incredible. I love looking at these people I know to be cleanshaven getting all rustic and funky. How could you not want to be a part of this?

Third, remember your strength. Your job too important or high-visibility to stop shaving for a month? Bullshit – John Lilly did interviews with the LA Times mid-NSID like a champ. Your face doesn’t grow a proper beard? Hogwash – Claire‘s been doing NSID 3 years running, and Gavin soldiers through “patchiness issues” because his follicles don’t tell him how to live his life, he tells them how to live theirs.

No shaving. 31 days. We tweet using the #nsid hashtag, we document our progress in the flickr pool, and we aggregate it on noshavingindecember.org. I’m proud of all of you – I love this time of year. Are you in?
Continue reading →


11
Nov 09

Three Stupid Scripts I Find Useful

SATTAP

If I told you you could have one-click mac screenshots with automatic scp to a host of your choice and it could have a reasonably bad user experience and no keyboard bindings, well you’d just be all over that, wouldn’t you?

Yes, I know about grabup (and their recent departure), and tinygrab, and all the rest. I’ve used several of them, in fact. What can I say, I wrote this way back when, and still find it gets the job done. If you don’t want to hitch your cart to someone else’s image hosting horse (and associated ad spam/image expiry blah), you’re welcome to it.

It’s a shell script. It takes the screencap, does the scp, and then puts the URL on your clipboard. You’ll need to edit some bits. I find it irksome to run from the command line, so I wrapped it in a 1-liner applescript (do shell script "~/bin/sattap") that I can just click from the dock.

Rob wrote one of these, too. [UPDATE: And now catlee has “ported” sattap to linux.]

Migrate.app

My macbook has the irksome habit, when I disconnect it from the external display and then reconnect it, of leaving all my windows on the tiny little 13″ display and not the hulking 24″ display I just connected, presumably for displaying things.

I borrowed a script from Dudehey on macosxhints to do the heavy lifting and then tweaked it to my particular preferences about which windows stay where. You will disagree with me, and hate this script; in fact, it won’t even work for you. But maybe you can make it work for you, if you care to?

Here it is. Open this in Script Editor – change it however you like, and then Save it somewhere as an Application, throw it on the dock, and hooray.

Rotate Page Bookmarklet

Okay, I don’t actually find this one useful, but it amuses. And you need some amusement.

javascript:document.body.style.MozTransform="rotate(90deg)";void(0);

Go on, try it. (Yes, in Firefox.)