Of dogfood and web making

One of the things I'm currently doing is helping the Mozilla Foundation figure out how to evolve and grow the Webmaker project.  Mark has been writing about the plan for 2013.  I'm mainly thinking about ideas for tools, products, and how to do work like this at the scale of Mozilla, especially when it comes to large scale community involvement.

One of the ideas I've been presenting to the team is that in order for our tools to get better, and in order for a lot of people to not only want to use them, but love using them, we have to use them ourselves--we have to dogfood them.  To that end, I've been working on using some of our tools these past two weeks.

Today I decided to try and build something that Mark's been discussing a lot: Popcorn-powered slideshows that tell a story in time using images.  Popcorn Maker is capable of doing something like that, but capable isn't the same as appropriate.  Yesterday I noticed a post on reddit about the images sent with the Voyager spacecraft into deep space.

Here was a perfect opportunity to test Mark's theory.  What if, instead of a page of static images you scroll through, I made a visual slide-show using audio and video?  I'll skip to the end and share the final product with you, before discussing what the dogfood tasted like.

Overall, I'm pleased with how it turned out.  I think it does something more than a web album can--I get teary watching it, to be honest.  I also think it was harder than it needed to be.

In our planning meetings, I've said many times that our tools need to level-up.  When I say this, it seems to get some people's backs up.  On one level I understand that--doesn't it mean you're attacking me if you say what I made isn't good enough?  On the other hand, I'm so used to this way of working from my time developing in the Mozilla and Firefox communities, where we all know that our code has bugs, lacks features, needs to get better, that I've stopped being offended when someone offers a critique like this: "File a bug."  It shouldn't be personal.

So to prove that I mean no disrespect, and that I can dish it and take it, allow me to tell you how much work there is to do on Popcorn Maker, which I just spent a good part of a year building:

  • There's no way to specify that I want to cover the entire video area with an image or colour.  For my purposes, I wanted to black out the video at a certain point, and was forced to put a Text plugin, with black text, black background, and have it fill the entire video area.  Hacky.
  • There's no way to say, "Use this list of images" and have Popcorn Maker uniformly spread them over a time period.  I had to manually calculate how long to show each image in order for all 116 to fit in the time I had.  It's finicky to do with the mouse, laborious when entering time codes manually.  I had to do both.
  • When you've arranged a whole bunch of equal-spaced images, there's no easy way to go back and say "Let's show all these for 1s instead of 1.6s each."  We sort of support multi-select, but doing it on 116 images over 4 minutes is impossible.  I'd like some way to operate on that group.  Maybe the super scrollbar can give me some better elastic-band style highlighting?
  • I really wanted a way to be able to drag a plugin to a new start time, then enter a duration vs. an end-time, that is, be able to say "+1.6" and have it figure out what that end time is.
  • I wished I could have lengthened the duration of the fade in/out, as I needed a slower pace for the affect I was trying to get.
  • Having to set the exact same settings each time I drop a new plugin on the timeline is annoying.  Why not use the same font, colour, sizing, placement, etc. as I did a second ago on the last one?
  • When I tried to remix what I'd made, and swap in a new video, all my quotes and double-quotes had been turned into HTML escape sequences.  Annoying.
    I could go on.  These are all bugs or feature requests, and I simply need to file them.  However, they are bugs and feature-gaps I'm now aware we have in our tool.  That's a really humbling, and important realization for a developer.

"How do we know if something's better?" is another question I'm hearing a lot.  Well, in my case, one real data-point that we could measure here is how long it takes to make something like this.  I think it took me about 3-4 hours to make this with Popcorn Maker.  That's not terrible, and it's not ideal.  "Can we make it easier, faster to build a web-based slide show?" is a question I'm asking right now.  I think 'yes'.  For one thing, we should look into automatically connecting a bunch of images to a timeline, perhaps without having to actually position each one.  What if you specified that the slide show was going to occupy a certain time, and let the tool figure out which image gets shown when, and for how long?  I would have loved that here!

Dogfood doesn't taste great.  In fact it's easy to let that foul taste keep you from doing it at all.  Nor does it feel good when someone else tries to use your thing and finds it lacking in a whole bunch of ways.  However, if you want to get to the point where your software is fun to use, you have to admit that it has issues, make plans for improving things, and then execute on that plan.

I'm really pleased that I was able to use nothing but the web to build this.  I think there's still a bunch of things to do to make it better, but it's nice to not be starting at zero.  I'm looking forward to improving all our tools, and bringing more web makers into Webmaker.