Showcasing the Console + Inspector, preview of the Canvas Debugger, JS Debugger and Shader Editor.
I was fortunate to be able to attend the Game Developers Conference in San Francisco this year. Thanks to our organizers and IT staff for all the hard work they put into making everything run so smoothly.
This was the first year Mozilla had an actual booth on the show floor and we put it to good use demoing our Developer Tools alongside some fun games. We showed off our new Canvas Debugger (should be landing next week!), the Shader Editor as well as our Debugger and our other inspection tools. People were really receptive to the Canvas tool. The Shader Editor got a fair number of positive comments as well. I was also able to show off our Network panel as a temporary solution for inspecting game assets like textures.
Another well-received demo was a setup where I paused my desktop JS Debugger when receiving a device orientation event on my phone. I loaded the three.js DeviceOrientation demo on my phone’s browser (Firefox for Android). I then connected the phone via USB to my laptop and launched our remote tools via the “connect” option. Opening the Events panel, I was able to pick “deviceorientation” as a category and selecting that caused execution on the phone to immediately pause with my desktop debugger showing the exact location.
Debugging device events is easy to do on a mobile device. I was also able to demo our Shader Editor running on mobile which was pretty cool. Editing shaders in real-time running on a remote device is some real science fiction level stuff.
Having the kind of immediate feedback for WebGL (and soon WebAudio) that our tools provide is kind of a big deal for people who aren’t used to living in a dynamic environment like a web browser. There is lots of opportunity in this space to make tools for game developers that are fun to use and interactive. You can literally program your game while playing it.
This feels like a tipping point for games on the web. There are now multiple engine developers offering the Web as a bona fide deployment target. Three big engines have reduced their pricing models to the point of being effectively free for most developers and that happened just this week. This is a big deal and I think we’re going to start seeing a lot of game publishers shipping games to the web very soon.
We also weren’t the only booth showing off HTML5-related game technology. Nintendo is shipping a “Web Framework” around a bundled WebKit shell for deployment on the WiiU and had a pretty sizeable installation to show it off. Unity is also making that a deployment target. Various other booths were demoing HTML5 games and tech.
In the emerging technology department, head-mounted displays were in full-evidence. Sony just announced a new piece of head-gear for the PS4 and there were some other vendors kicking around similar technologies. At this point, it seems obvious that head-displays are going to be very real, very soon. The lines of people at Oculus’ displays were a constant stream of humanity.
Cmd-Alt-K on OS X or Ctrl-Shift-K on Linux or Windows will now always focus the console input line. It will no longer close the entire toolbox and you’ll have to use one of the other global toolbox commands, Cmd-Alt-i (or Ctrl-Shift-i) or F12.
They are the bane of Firefox Developer Tools engineers. Ask us in #devtools for a new keyboard shortcut to do X and you will be greeted by a chorus of groans. There just aren’t enough keys on a keyboard for everything we need to use them for.
I added a recent change to automatically focus the Console’s input line when clicking anywhere in the console’s output area (bug 960695). This spawned a series of follow-ups.
The first of these was the addition of Page Up and Page Down controls on the input line. (bug 962531). Now when the input line is focused, it will scroll the output area with page up and page down keys. If the autocomplete popup is active, it’ll scroll too. It’s a little thing that’s nice to have when you’re flipping through all of the completions for, say, the global window object.
The most important change we landed this weekend is a change to the Console’s main Keyboard Shortcut, Cmd-Alt-K on OS X or Ctrl-Shift-K if you’re on Linux or Windows. This key will now always focus the console input line. It will no longer close the entire toolbox and you’ll have to use one of the other global toolbox commands, Cmd-Alt-i (or Ctrl-Shift-I) or F12. (see bug 612253 for details and history)
And there’s still more to do. I filed bug 967044 to make the Home and End keys do the right thing in the Console’s input line. We have this “metabug” tracking all of the open shortcut bugs in Firefox Devtools. Are we missing any? Let us know!
(This post is not really Mozilla-related, so if you’re not interested in open source flight-controllers and software, you can stop reading here. There are some parallels though and I draw a connection later on, so I did decide to push this to planet.mozilla.org.)
A few weeks ago, a friend said, “hey, 3D Robotics has a sale on two of their drones right now.” This is exactly the kind of thing friends shouldn’t say to friends who are of a certain disposition – a highly-suggestible technology geek with a love of flying things and photography.
So I did a little research. And a little more research. And then a little more research… I did a lot of research and ultimately decided that the drone I wanted was not one of the two drones 3DR had on sale. The deal was a free GoPro Hero 3+ Black camera or 200 dollars off, I think. I looked hard at the Y6, but being a multicopter noob, it was a bit intimidating as a first vehicle. The drone I wanted was the IRIS which was still in “Developer Preview” mode but shipped ready to fly and promised to be a good platform to learn on. They’ve since closed orders on the machine and are shipping the consumer version sometime in December.
That weekend I bought a Heli-max 1SQ Vcam and proceeded to begin crashing it around inside the house. I nearly lost it after an exhilarating 10 minute flight around the park that terminated in crashing into a tree.
— Rob Campbell (@robcee) November 3, 2013
I was totally hooked.
I ordered my IRIS that Sunday night. Astoundingly, it arrived direct from the assembly plant in Tijuana that Thursday. I was all set for a 2-4 week waiting period, but was denied the wait. Unfortunately, the weather would force me to wait before I could take it out for its maiden flight. Since getting my quadcopter, I’ve become even more obsessed with the weather and frequently ping Billy Bishop airport for METAR weather codes since they’re nearby.
First flight happened on a blustery Wednesday afternoon. We went to Woodbine park in some pretty windy conditions, but I was dying to get some airtime with this thing. I did a few quick test launches before boxing everything back up and hurrying to the car because of the wind. First flight was a success!
That weekend the weather cleared and we had a really nice day on Saturday. That’s when I did my first real test flight.
The one thing you really have to do before you can make use of autopilot is calibrate your compass! Mine was still carrying the calibration from the factory in Tijuana.
If you watch the first video above, I go onto autopilot around the 56 second mark and it has a hard time hitting the waypoint (I later learned that you need to set a reasonable acceptance radius on each waypoint in the flight planning software). At 2:45 it flew out of bounds over some trees. At 4:50 it did a slingshot spiral out over the pumping station which was pretty spectacular. Each time I was able to cancel autopilot and manually control it back to ground.
So that was educational. I spent the rest of the weekend calibrating and then recalibrating. The onboard flight software is particularly sensitive to this calibration and if you do it incorrectly as I did the first time, it won’t even let you arm the craft for take off and will just flash a yellow warning light at you. The documentation is not exactly helpful in figuring out what the problem is, so I had to go back to initial configuration to guess what had gone wrong. Since calibrating it properly, control has improved and waypointing works flawlessly.
I’ve also learned a bit about using a GoPro camera. The Hero 3+ now has a “protune” option for video that drastically improves stability and rolling shutter. It takes pretty excellent video now. I’ve posted a couple of other videos showing my first successful auto-piloted flights including landing.
This stuff is a lot of fun, and I’m experiencing some of the “developer preview” speed bumps along the way which I’m more than happy to absorb. I find the documentation is pretty good, though the flight planning software screenshots (either Mission Planner on Windows or APM Planner on Mac) rarely match what’s in the instructions.
I also experienced a bit of deja vu trying to figure out which site to find the right documentation on. Feels a lot like Mozilla in some ways where you have a bunch of inputs and a bunch of outputs and its up to the user to figure out how it all fits together. Programming the radios and PIDs is still a bit of a mystery though the presets the IRIS came with are excellent right out of the box.
The other gem in all of this is the Android flight planning software. There are two of them, but I’ve been running Droid Planner and am pretty happy with it. The other option is called AndroPilot. They both seem to have different capabilities and are both on github.
I still have a lot of learning to do to optimize the controls to my liking. Fortunately, the software is all open source. Now if the wind would just die down I can go out for a flight.
This week, we are proud to add Brandon Benvie, Brian Grinstead, Patrick Brosset and J. Ryan Stinnett as peers of the Developer Tools Module.
Brandon Benvie of es-discuss fame has been tackling difficult problems such as remoting our Scratchpad and making things use protocols they were never designed to use. In addition to that, he knows a thing or two about generators and promises that just might scare your hair white. He can review Scratchpad and Variable View patches and is pretty capable with Debug Protocol stuff. And Promises.
Brian Grinstead, recently-famous for his excellent Edit as HTML feature in the Inspector is working on the Devtools Content Team. He has been described as being “very thorough” so you should send him reviews for the Inspector, Style Inspector and anything else you want reviewed. Thoroughly.
Patrick Brosset completed the recently-added doorhangers on colors and image previews in the inspector. Little did he realize he would have to contend with the mysteries of the XUL Panel element when he set out on this noble path. He is also the creator of this neat thing. You should probably send him some Inspector and Style Inspector reviews. Also, feel free to ask him how he feels about mustard.
J. Ryan Stinnett (or jryans as he is called in IRC) has been busily adding support for the Manifest Editor in the App Manager. For a second trick, he’s been working on adding support so our JS Debugger can finally debug itself. Yo dawg. You should send him requests to review your App Manager patches.
Congratulations and happy code reviewing!
201 bugs found.
Yo, I heard you like pumpkin waffles on your Canksgiving. Well, I’m here to help you.
Here’s a recipe that will make you about 10 delicious, pumpkiney waffles.
- 1 tsp sugar
- 1 tsp dry yeast
- 1 cup canned pumpkin puree
- 2 cups warm milk
- ¼ cup honey
- 1 stick (4 oz) unsalted butter, melted
- 2 cups all-purpose flour
- 1 tsp ground cinnamon
- ½ tsp ground nutmeg
- ½ tsp ground ginger
- 2 tsp pure vanilla extract
- ½ tsp sea salt
- 2 large eggs, at room temperature
- ¼ tsp baking soda (optional?)
♣ About 8 hours before cooking, combine the dry ingredients (minus the salt) into a large mixing bowl. Melt that stick of butter in a pot then add the honey, vanilla extract and milk. When that’s warm (don’t boil it!) stir in the pumpkin sauce until it dissolves. Let that cool for a bit and when it’s just a little warm, stir it into the dry mixture.
Cover the batter and let sit overnight.
♣ In the morning when you’re ready to get your waffle on, add your salt to the batter and separate two eggs. Drop the yolks into the batter and mix ‘em in. The batter should be nice and fluffy from the yeast activity during the night.
Turn on your waffle iron and get it heating. Add some canola oil or butter to the grids if they need it. Turn on your oven to 200°F and put in a cookie tin with a drying rack over it. These’ll keep your cooked waffles warm and crispy until you’re ready to eat.
In a chilled metal bowl (I put mine in the freezer for 10 minutes), whisk the egg whites until peaky. Fold this gently into the waffle batter. It should run through the all the batter, but still retain some airy egg white bubbles.
Cook ‘em up as per your waffle iron’s recommended method and Enjoy!
- Bittman’s, “How to Cook Everything”, “Overnight Waffles” recipe.
- Baking Obsession’s “Pumpkin Maple Yeast Belgian Waffles“
Note, that I neglected to include the Baking Soda because Bittman didn’t call for it. I expect adding that will make the batter even poofier in the morning. Up to you.
PS, recovering from post waffle coma. They’re a little denser than the standard waffle. Delicious. Taste like pumpkin pie. Oh god halp.
(it’s a working title)
Autumn. A time of color-changing leaves. A time for reflection and denouement. A time for elaborate dining rituals and familial obligations.
This year, Canksgiving (or Canucksgiving or even Thanksgiving) falls on the weekend of the 11th of October — the weekend containing the second Sunday of this month. This means, many Canadians will be taking time off of work to travel to far-flung places like, New Brunswick and Ontario. Maybe even The Yukon.
These migrating humans will congregate around their ancestral homesteads to sit around watching sporting events on their “televisions” — a kind of late 20th century entertainment medium. Most families will be watching such sports as “hockey” or even “football”. They may consume fermented malt and grape beverages. There might even be a humorous pumpkin-flavored varietal that the imbibers will insist is the best of its type they’ve ever tasted. They will be lying.
On Sunday, and/or maybe Monday as family tradition and configuration dictates, the Feast will occur. The family will arrange itself around the table festooned with all manner of riches and a hilarious centre-piece. There may be a special satellite table set a short distance away from the main sitting area for the children and at least one teenager who will not look very happy.
There will be turkey and stuffings. Potatoes and yams. Squashes and carrots. Maybe grandma will bring her cheesy cauliflower concoction. There will be cranberry sauce which will make children and child-like adults giggle when it makes the noise cranberry sauce makes when it emerges from its tin. Some people will make their own special cranberry sauce. It is essential. There will also be wine.
If you know know someone who may be from Canada, cut them a little slack this weekend. They are wrestling with powerful ancestral memories. Wish them luck.