More Challenging Puzzle for the Devtools Job

Yesterday, I posted about the Developer Tools Engineer position we’re hiring for at Mozilla. The response to my little puzzle has been terrific, but “it’s too easy” was a common refrain. So, I decided to add two more little puzzles that follow the first. The puzzles are not intended to be time consuming, but they do use a couple of modern browser features.

Give it a whirl and say hi if you make it all the way through. One person completed it last night after I put it up but before I had a chance to write this blog post.

Update: it looks like this may only work in Firefox at the moment, and possibly only Firefox 4.

Work With Me at Mozilla! Solve the Puzzle

My first two years at Mozilla have been great fun and an amazingly positive experience. This year promises to be even more fun, where I define fun as going after some ambitious goals. This year, we’re going to be building some very cool tools and setting the stage to push the boundaries of web developer tools even farther in 2012.

Now is your chance to get in on the ground floor of this work. Be a part of the open web and help us make better tools. It doesn’t matter where you’re located… if you’re an amazing web developer or have deep developer tools knowledge, I want to talk to you.

There are two ways to apply:

  1. Read the job posting and apply normally
  2. Solve the puzzle for extra credit

I hope to hear from you!

Paver Is Now on GitHub, Thanks to Almad

Paver, the project scripting tool for Python, has just moved to GitHub thanks to Almad. Almad has stepped forward and offered to properly bring Paver into the second decade of the 21st century (doesn’t have the same ring to it as bringing something into the 21st century, does it? :)

Seriously, though, Paver reached the point where it was good enough for me and did what I wanted (and, apparently, a good number of other people wanted as well). Almad has some thoughts and where the project should go next and I’m looking forward to hearing more about them. Sign up for the googlegroup to see where Paver is going next.

Paver: Project That Works, Has Users, Needs a Leader

Paver is a Python project scripting tool that I initially created in 2007 to automate a whole bunch of tasks around projects that I was working on. It knows about setuptools and distutils, it has some ideas on handling documentation with example code. It also has users who occasionally like to send in patches. The latest release has had more than 3700 downloads on PyPI.

Paver hasn’t needed a lot of work, because it does what it says on the tin: helps you automate project tasks. Sure, there’s always more that one could do. But, there isn’t more that’s required for it to be a useful tool, day-to-day.

Here’s the point of my post: Paver is in danger of being abandoned. At this point, everything significant that I am doing is in JavaScript, not Python. The email and patch traffic is low, but it’s still too much for someone that’s not even actively using the tool any more.

If you’re a Paver user and either:

1. want to take the project in fanciful new directions or,

2. want to keep the project humming along with a new .x release every now and then

please let me know.

The Point of Diminishing Features

Making software products is a great business. You release version 1 and start selling, followed by new major versions from time to time that generate further upgrade revenue. A good product can give you a nice ongoing business.

It seems like a lot of products, and not just software products, are really exciting when they first come out. People go gaga over the product and buy it by the truckload. Then comes the next version, and it’s got some huge improvements and people happily snap it up. The next version really puts the polish on, and again is a hit. In fact, I think I’ve seen it said that Microsoft products don’t really hit their stride until 3.0.
But I think that’s precisely where the “point of diminishing features” is reached. The product went from intriguing to great to “use all the time”. The improvements made after that might entice some new customers but no longer really shine for the existing customers.
Let me make that more concrete: Microsoft Office hit that point a long time ago. Or, more specifically, Word, PowerPoint and Excel. The only useful features Microsoft could add were features that were useful and exciting to a very small subset of their audience. Upgrades to those products simply wouldn’t be exciting enough for most people. And, major UI reshufflings just annoy people, rather than making them want to upgrade.
In the case of Office, since almost everyone buys it as a bundle, Microsoft had the option of creating entirely new products like OneNote and then making it seem like a no-brainer to just buy the upgraded suite.
Watching the Apple “Back to the Mac” keynote, it really felt like iLife had hit the point of diminishing features. Watching Steve Jobs, I didn’t get the impression that even he was truly excited about iLife ‘11. He seemed most excited when he introduced the new MacBook Air.
I wanted to be excited by iLife ‘11. There were features there that were “kinda neat”, but nothing that made me want to grab the credit card and head out to the store.
What’s the cure? “Think different”. Try to come up with fundamentally new ways for the customer to do things and use that type of product, or create features that take something that you frequently want to do and turn it into a quick, fun task. Making trailers looks like fun in iLife ‘11, but I don’t actually want to make trailers. I’ll be curious to see how many of those things show up on YouTube.
Mac OS Lion seems like it will be way more interesting than iLife ‘11, because Apple is bringing a bunch of unusual new ways to work with a full computer in from the iOS world. And, you can bet that we’ve only seen a piece of Lion.
I think iWork has the potential to be exciting, just because so many features are still missing from Numbers and Pages. iWork doesn’t feel like it has reached “3.0” yet.
I’ll end this line of thinking with a product that ran for a good number of years before hitting the point of diminishing features: the iPod. The iPod had a good run of big new features because Apple was willing to take major moves like drop the best-selling mini in favor of the new and untried nano.
If you’re working on a product and find yourself unable to be truly excited by the features coming in the next rev, maybe it’s time to go back to the drawing board and rethink some fundamental aspects of it.

Next Steps for Mozilla Developer Tools

I’m going to use this opportunity to make a couple of observations about Mozilla and planning. If you really just want to know about what we’re thinking of doing next in Mozilla’s developer tools group, you can take a look at the current draft of what we’ve got in mind for later this quarter. There are links in that document to join the dev-apps-firefox list or to email me. If you have feedback, let me know.

Now, for some thoughts on planning at Mozilla. I started working at Mozilla as part of Mozilla Labs. In Labs, we would often let an idea bake a little bit before turning it loose on the world. We wanted to have enough of an expression of the project available to show people what the truly idea is before they pass judgment on it. Open Web Apps was like that. A couple months back, an early take on some of that code was in a project called “vapour” on github. But, there are a lot of pieces involved in creating a coherent open web app ecosystem and getting a coherent picture together before starting the public conversation around it seems like a good approach to me.

Working on Firefox, however, is different. Firefox is an established project with a huge and active community. There have been a couple of times since I joined the Firefox team where I was discussing something with someone who then said “this discussion should really be in some public forum”. I think that’s fantastic. Firefox development is a public project from the first kernels of new ideas, as those ideas grow, when they ship and beyond. Firefox 4’s Panorama feature was like that. Ditto for Personas, which started out in Labs and eventually became a core, and very popular, part of Firefox.

Working on open source software is great, because it makes it possible for people to add to the project in so many ways. Collaborating with other projects both complementary and similar is much less formal (and risky!) than the kinds of partnerships that form between closed companies.

On the flip side, software projects get messy at times and, with Firefox and other Mozilla projects, that mess is out in the public to see. I’ve seen a handful of articles over the past few months written by people that didn’t really get this. Every company has dates that slip, features that are dropped, etc. With Mozilla projects, you get to see this happening as it happens. With closed software projects, you just see the final result.

I did some work with a company a few years back where one of their mottos was “plan is a verb”. Sure, plan is also a noun… but, in their world, planning is something that happens all the time and a plan is just a snapshot of the planning that’s going on. Any plans you see me post should definitely be viewed in that light.

We want Firefox to have the best developer tools of any web browser, and we want to push dev tools for the open web in new directions. You can help through ideas, code, tutorials, etc. Join us on the dev-apps-firefox mailing list/newsgroup, join the Firebug project or email me directly if you want to help.

And, in case you’ve read this far, here’s a link again to the current snapshot of our planning.

The Open Web App Prototype

For some time, I’ve thought that many applications written as native applications for many different platforms could be done just as well as cross-platform web applications. I understand why people would make a unit conversion sort of application as a native iOS app, to give one example, but I’ve thought it’s a shame.

Some others within Mozilla gathered up a lot of opinions, put in a bunch of thought and then put together a prototype which they’ve announced today: Prototype of an Open Web App Ecosystem.

This is really cool. They’ve come up with a good solution that is truly open along every axis. Anyone can build apps and sell them through any channel (including their own!). This is the way apps should work.

Most “app store” designs lock people into a platform. It’s great to see an alternative ecosystem without the lock in.

UNIXy/VPSTree’s $0.99 VPS

A $0.99 per month VPS?

Yes, it is here and ROCKING! For USD$0.99 per month, you can get your own virtual private server (VPS) for LIFE

Only 5GB disk space and 20GB of data transfer, but it’s $12 a year! Holy cow. Not sure how much you can stuff into 64MB of RAM, but I’d imagine you could fit a cute little node app in that.

Generosity in Marketing and Open Source

Seth Godin has written a number of times about being generous, most recently differentiating between “free samples” and “generous gifts”. Seth himself has given generously and benefitted handsomely. For one, just look at his great blog to which he has posted wonderful ideas, free for the taking. Another interesting example: recently, I received a copy of The Mesh:

Apparently, I received this book because I had bought Seth’s Linchpin. Which, by the way, I received by donating to the Acumen Fund and not giving the money directly to Seth. Oh, and I think they sent me two copies instead of one.

I’ve seen a lot of “internet marketing gurus” work the “free sample” angle that Seth is talking about. They give you an ebook for free, get you on their mailing list and then try to sell you lots of random internet marketing-related crap.

Seth undoubtedly knows that all of these things that he does get people talking about him and his ideas. Ultimately, he wins (Linchpin is currently in the top 800 sellers on Amazon, nearly a year after its release). But the way he approaches things feels generous. Donating to the Acumen Fund both made me feel generous and receiving the books in exchange made me feel like Seth was generous as well. How’s that for a promotion?

Over the past decade, I’ve read a good deal about marketing and I think that Seth Godin is the most positive force in marketing today. Read his books, read his blog.

In the title, I promised to relate all of this back to open source. One thing I love about open source software is the generosity that I see there. People make open source software for all sorts of reasons. Some people kick it off specifically to support a commercial venture – a variation of the “free sample” that Seth writes about. Others just sort of toss it over the wall as if to say “hey, I’ve got this thing, maybe you’ll find it useful…”.

But, I’ve also seen quite a few open source projects where people are just trying to make the world a better place through their software. They’re not just tossing it over the wall. Instead, they’re sending a prized creation into the world and continue to nurture and support it. That takes a lot of energy and work, and it often seems like a thankless task at the time. But, you know what? I think for a great many of those projects it actually works out okay in the end. In one form or another, the people behind many of these projects find their careers heading in new, unplanned directions as a result of the work they gave freely.

Blobastorus: Free Storage for Client Side JS Apps

blobastor.us is a free data storage service that is optimized for HTML5 web applications. The service is designed to be interfaced from javascript in the browser and to eliminate the need for a server component for most little HTML5 apps. Twitter is used to provide authentication and user identity.   

Lloyd amped up an idea that Atul put forth just a few days back. 20K per user per domain of free storage for JSON blobs. Basically zero effort to store a little bit of data for purely client driven apps. Makes serverless coding in the cloud seem a little more reasonable, no?