February 04, 2012
Asa Dotzler -- John Battelle: What Commons Do We Wish For
John Battelle has a very thoughtful and thought provoking article on the future of the Web that outlines a plan for ensuring that the Internet continues to be a commons and that it not devolve into a collection of walled gardens.
At Mozilla, we're working to build that "open" and "independent" Web platform and commons. We have a lot more to do to make the open Web the first choice for users and application developers -- especially for the mobile environment, but I have no doubt that we can do it and I believe we can do it *this year*.

Photo by Flickr user I dream of Nici, used under a creative commons license
Mozilla will be publishing a series of 2012 strategy and roadmap documents in the next few days that will describe how we get from where we are now to an experience for users and developers that can rival and in many cases beat, the walled gardens and proprietary mobile platforms. Stay tuned.
February 04, 2012 06:52 PM
Bing and WebM
I know this isn't news, but it makes me happy every time I see it (Yes, I'm a web geek.) Those of you who use Bing or have looked at it more than once know that they put beautiful background images on their search page. Those images have little highlighted nodes with information and trivia about the image. But every once in a while Bing puts a video background in, like they did a few days ago with this one:
Sorry, your browser doesn't support embedded videos. Try Firefox
And what I love about that is that they serve WebM video to Firefox. A few years ago, this would have been Flash and today it's an open format that I can easily hotlink right here in my blog :D (You can click the video to view it full-sized.)
February 04, 2012 06:18 PM
February 02, 2012
Robert O'Callahan -- The Problem With Counting Browser Features
css3test.com is doing the rounds. I get almost exactly the same results in Firefox trunk and Chrome Nightly (64% vs 63%). This gives me a chance to explain why this sort of testing tends to be bad for the Web, without sounding whiny and bitter :-).
The root of the problem is very simple, and explained right at the top of the page:
Caution: This test checks which CSS3 features the browser recognizes, not whether they are implemented correctly.
Thanks for the disclaimer, but it doesn't eliminate the problem. The problem is that whenever someone counts the number of features supported by a browser and reports that as a nice easy-to-read score, without doing much testing of how well the features work, they encourage browser developers to increase their score by shipping some kind of support for each tested feature. Because we have limited resources, that effectively discourages fixing bugs in existing features and making sure that new features are thoroughly specced, implemented and tested. I think this is bad for Web developers and bad for the Web itself.
If Web authors reward Web browsers for superficial but broken support for features, that's what they'll get.
Instead, I would like to see broad and deep test suites that really test the functionality of features, and people comparing the results of those test suites across browsers. Microsoft does this, but of course they tend to only publish tests that IE passes. We need test suites with lots of tests from multiple vendors, and Web authors too. (Why haven't cross-browser test results for the official W3C CSS 2.1 test suite been widely published?)
I don't want to come across as harsh on css3test.com. The site is lovely, it has that disclaimer, and it goes a lot further than, say, html5test.com in terms of testing the depth of support for a feature. So it actually represents good progress :-).
February 02, 2012 10:18 PM
Asa Dotzler -- Windows Phone 8
Hot on the heels of rumors of a Windows Phone NDK comes this nugget from The Verge
Synergy between the phone and the PC / tablet is going to be a big one. Not only will Windows Phone 8 share the same Metro style user interface as Windows 8 for tablets and PCs, but developers can reuse the same code for both operating systems. Additionally, the Zune Desktop is being scrapped in favor of a sync relationship with a companion app and the Xbox companion app will have a partner client on both Windows 8 and Windows Phone 8. Similar to Windows 8, seamless SkyDrive integration will also play a big role with cloud syncing. And then there's NFC: in addition to providing that aforementioned "wallet experience" it will allow for tap-to-share capabilities between hardware-supported phones, tablets, and PCs.
I mentioned in an earlier post that I thought we'd start to see this kind of convergence that was more than the skin deep (Metro Style) bits we've seen so far. I hope it continues.
Why all the interest in Windows Phone you ask? Well, I'm hoping that Microsoft can pull off the pivot they're entering with an entirely new and fresh version of Windows. This is the biggest experience overhaul since Windows 95, in my opinion, and I want it to be successful because I don't want to look up in a few years and see that the only two viable operating systems are a locked down iOS and Android. I also think Metro is the most compelling new computer experience to arrive since Mac OS X and that kind of innovation isn't rewarded often enough in this industry.
update: And I was right, it seems, in speculating that Windows Phone would adopt the NT kernel. Paul Thurrot has more.
February 02, 2012 08:49 PM
Surprisingly Candid
From Danny Sullivan at Marketing Land comes news of a surprisingly candid Microsoft explanation of why services on the Web give you things for free.
Google is in the process of making some unpopular changes to some of their most popular products. Those changes, cloaked in language like "transparency," "simplicity" and "consistency," are really about one thing: making it easier for Google to connect the dots between everything you search, send, say or stream while using one of their services.Now, Microsoft is basically right here. And they acknowledge that it's not "wrong" but that different services can make different bets and different trade-offs. I went to Bing Search more than two years ago because I liked their trade-offs better. They didn't connect the your Live Mail account information with your Bing Search information, for example. As Google connects more and more, I'm increasingly happy that I made the move.But, the way they're doing it is making it harder for you to maintain control of your personal information. Why are they so interested in doing this that they would risk this kind of backlash? One logical reason: Every data point they collect and connect to you increases how valuable you are to an advertiser.
To be clear, there's nothing inherently wrong with wanting to improve the quality of an advertising product. But, that effort needs to be balanced with continuing to meet the needs and interests of users. Every business finds its own balance and attracts users who share those priorities. Google's new changes have upset that balance, with users' priorities being de-prioritized. Thats why people are concerned and looking for alternatives.
If these changes rub you the wrong way, please consider using our portfolio of award-winning products and services....
Google likes to say that alternatives are just a click away but that's not really true. It takes a while to extricate yourself from Google's services and to learn and train new services. I took me a while to get used to Bing but once I learned how to talk to Bing (think about it, you've been learning what Google search wants to hear for years) I started getting really good results. I never used Gmail for anything but a throw-away account but I'm still stuck using their office apps because my colleagues do. Anyway, my plan was never to become invisible to Google, just to try to keep them from knowing everything about me. They still surveil me with their ad networks and their analytics probes and their various youtube and maps embeds and whatnot, but connecting that web-wide surveillance up to my daily interests is now a bit harder for them because I've distributed myself across several service providers instead of just one.
February 02, 2012 01:33 AM
February 01, 2012
Postbox Team -- WiseStamp Add-On for Postbox
We’re excited to announce a new Add-On for Postbox: WiseStamp.
WiseStamp transforms email signatures into powerful self-expression and promotional tools. You can choose from a variety of productive and social Email Apps that adds dynamic content to each outgoing email, such as your latest eBay item, Twitter and Facebook status, recent blog post, or important cause to promote.

WiseStamp was declared best Social Media Gadget 2009 in Mashable’s Open Web Awards. Since its launch, over a quarter of a billion emails have been sent using WiseStamp.
Download WiseStamp today, and be sure to check out the other great Add-Ons available for Postbox!
February 01, 2012 07:00 AM
January 29, 2012
Robert O'Callahan -- Mozilla Tree Adventures
Last week we had a few overseas Mozillians stop by the office on their way back from linux.conf.au. We took the opportunity to hold our annual Mozilla Auckland outdoors event, which for only the second time ever did not involve volcanoes. Instead we went to Tree Adventures out in Woodhill Forest. Basically you strap on safety gear, climb ladders into the trees (up to 14 metres above the ground) and conquer a variety of obstacle courses on wires from tree to tree. Flying foxes are also involved. It's tons of fun, unless you have a fear of heights as I do, in which case it's tons of fun mixed with just as much sheer terror. I was glad to be able to overcome my instincts and keep going; that sort of mental discipline is worth practising. I just hope none of my colleagues noticed me whimpering.
We followed up with a nice lunch at Hallertau.


January 29, 2012 03:40 AM
January 27, 2012
Asa Dotzler -- End of Firefox Support for Windows 2000
For a number of years we've held off on updating our Windows toolchain to a newer version of Visual Studio, and in so doing preserved support for Windows 2000 and Windows XP RTM and SP1. Firefox developers and the 99.6% of our Windows users have paid a price for this support, though. Our developers have not been able to take advantage of new compiler features and have had to struggle to keep valuable optimizations from breaking -- including having had to back out and ultimately delay some important new features like SPDY. Our users have have suffered a slower Firefox than would be possible as both direct and indirect results of moving to a more modern compiler.
So this week, after a few months of discussion and evaluation of the latest Firefox user numbers and the pros and cons of moving our tools forward, I've called for Mozilla to begin the process for ending support on those older Windows version. Next Tuesday or Wednesday, after Firefox 12 moves to Aurora, the Mozilla Release Engineering team will begin upgrading our Windows build systems to Visual Studio 2010. With VS2010, we will no longer be able to build a Firefox that runs on Windows 2000, Windows XP RTM, and Windows Service Pack 1.
It's always a difficult decision to leave some users behind. The number of Firefox users on those OS versions -- less than one half of one percent of our Windows Firefox users, and the benefits to our development process and the hundreds of millions of Firefox users on XP SP2 and above, however, compel us to look forward rather than back.
If you are a Windows 2000 user, Firefox 12, which will be supported until June 5th, will be the final supported Firefox release. After that, your options are limited. Switching to Opera is probably the best path forward.
If you're a Windows XP user still on RTM or Service Pack 1, I strongly urge you to install the free Windows Service Pack updates.
And finally, for Enterprises adopting the ESR, these older Windows versions will be supported for the length of the first ESR of Firefox. That works out to an extra 6 months or so before these Windows versions become unsupported.
January 27, 2012 11:20 PM
January 24, 2012
Asa Dotzler -- Firefox in 2012
The first public version of the browser called "Firefox" -- a 0.8 release, came out 8 years ago. With that release and the 1.0 release later that same year, we showed the world that browsers mattered.
Innovative new features like tabbed browsing, pop-up blocking, spell-checking, integrated search, and browser add-ons, re-invigorated not just the browser market, but the entire Web. We put users in control of that mess of windows, and the horrible pop-ups from advertisers and malware makers. We made it simple for users to customize their experience and to find what they were looking for without jumping through a bunch of hoops.
In addition to those awesome new user-facing features, Firefox delivered great performance, stability, compatibility, and security at a time when Internet Explorer was falling down on most of those fronts. It wasn't enough to offer great user features, the integrity and quality of the product had to be top notch and it was.
Today, there are more compelling browser choices than ever before and all of the major browser vendors are delivering high-quality products with innovative new features, even Microsoft :-) This is good for users and good for the Web.
But browsers are not all the same. Each of the major vendors, Microsoft, Google, Apple, and Mozilla are building Web browsers for very different reasons. They may resemble each other on the surface, but everything from the features they offer to users and to Web developers, to the myriad of user interface design considerations, to the distribution models, exist to serve very different interests.
Only Mozilla, a non-profit organization, produces a Web browser designed, first and foremost, to put users in control of their online experience.
The desktop browser is not the only part of the Web that impacts user control, security, and privacy, though, so in 2012 Mozilla is expanding its efforts and will be delivering a new standards-based Web Apps ecosystem, a user-centric identity system for the Web, and a cross-device strategy built around user empowerment.
Desktop Firefox in 2012 is going to do again what we did in 2004. We're going to deliver innovative features that put users in control. And we're going to give users the speed, stability, and compatibility that the modern Web demands. We're going further this year, though. We're going to help launch powerful new Mozilla products like Apps, Identity, and mobile.
There are a lot of pieces that will have to come together to make that vision a reality and in the coming days I'll be sharing more specifics here and in the Mozilla wiki. Stay tuned.
January 24, 2012 05:30 PM
January 23, 2012
Asa Dotzler -- Personal Data is the Currency
Personal data is the currency of today's digital market, and like any currency, it needs stability and trust. Only if consumers can 'trust' that their data is well protected, will they continue to entrust businesses and authorities with it, buy online, and accept new services.
That's from EU Commissioner Viviane Reding, speaking at the DLD Conference in Munich.
I think the final sentence there takes an optimistic view on users' understanding of the issue, but I hope that we can build a Web where something like that will be obviously true to everyone.
Ms. Reding's proposal for new regulations on that front has three main components.
First, people need to be informed about the processing of their data in simple and clear language. Internet users must be told which data is collected, for what purposes and how long it will be stored. They need to know how it might be used by third parties. They must know their rights and which authority to address if those rights are violated.The first bit, explaining to users that their data is being collected and for what purposes, does happen some today but not always "in simple and clear language" and very often not in a context the user is likely to understand or actively participate in. The second part, that it must be opt in, also may be in common use today with all the click-through TOS, though even I don't read those so I don't know if that's the case.Second, whenever users give their agreement to the processing of their data, it has to be meaningful. In short, people's consent needs to be specific and given explicitly.
Thirdly, the reform will give individuals better control over their own data. I will include easier access to one's own data in the new rules. People must be able to easily take their data to another provider or have it deleted if they no longer want it to be used.
But it's the third part that I think is really novel and important. Users have a right to be forgotten. I should be able to pull my data back out of a system, and not only the data I actively submitted, but any additional data that's been collected as a result of my use of the system. For example, Google lets me kill my Docs account and pull that content, but they don't let me see, much less manage, the targeted advertising profile of me that they build based on my "use" of Google services like AdSense, DoubleClick, Analytics, and the various other Google surveillance tools I happen across when I'm surfing the Web.
How user data is managed is going to be one of the next big challenges we face on the Web. Europe may set the pace but it's up to all of us to be a part of any solutions.
January 23, 2012 06:18 PM
January 20, 2012
Asa Dotzler -- Join Us
Tim Taubert recently posted on how he got involved with Mozilla. I intend to post about my experience at some point in the not too distant future but for now I wanted to highlight something from Tim's post:
I loved this feature but noticed that it was in an early stage and needed some fixes. I set up a Firefox build environment, went through Bugzilla to find open bugs, nagged people on IRC and was totally overwhelmed by the warm welcome and the appreciation of my work. This was something I did not at all experience when trying to contribute to other open source projects.Some areas are more or less difficult and some volunteers are more or less motivated, but if you love what we're doing with Firefox and want to be a part of it, there are a lot of us that would love to help you get onboard. If you're trying to get connected and don't have a starting point, please use me. I'm asa@mozilla.org and either "Asa" or "asadotzler" on IRC. Also, we're hiring.
January 20, 2012 02:45 AM
Are You Building Add-ons That Include C++?
Are you an add-on author that uses C++ in your add-on(s)? If so, can you take a look over this discussion and comment there if you think it would help you maintain your add-on(s)? We're trying to balance moving as quickly as we can to improve Firefox and Gecko with maintaining add-on and Web compatibility and this approach looks somewhat promising for at least some add-on authors. Please post comments to that thread and not here. Thanks.
January 20, 2012 02:24 AM
January 18, 2012
Asa Dotzler -- Protesting PIPA and SOPA
Today, Mozilla will be taking part in a protest the U.S. SOPA and PIPA legislation. You can read more about this from:
Mozilla's Chairman, Mitchell Baker
Mozilla's CEO, Gary Kovacs
Mozilla's Privacy and Public Policy Lead, Alex Fowler
Our sites will go black and offer information and links to help folks understand this issue. In addition to www.mozilla.org and www.mozilla.com, hundreds of millions of Firefox users will see a blacked out Firefox Start page with a small note under the big search box pointing to more information.
(Note: All users will still be able to receive security updates and access our technical support website.)
January 18, 2012 09:05 AM
Robert O'Callahan -- You Know You're In Australia When...
... you take a short walk after dinner and encounter a tribe of kangaroos.

January 18, 2012 12:46 AM
January 17, 2012
Robert O'Callahan -- MediaStreams Processing Demos
I'm at linux.conf.au at the moment (until Wednesday) and yesterday I attended the browsers miniconf. It went well, better than I expected. I had a slot to talk about the MediaStreams Processing API proposal to enable advanced audio effects (and much more!) in browsers, which has been my main project for the last several months (see my earlier post here. I worked frantically up to last minute to create demos of some of the most interesting features of the API, and get my implementation into a state where it can run the demos. By the grace of God I was successful :-). Even more graciously, the audio in the conference room worked and even played my stereo effects properly!
I have made available experimental Windows and Mac Firefox builds with most of the MediaStreams Processing API supported. (But the Mac builds are completely untested!) The demos are here. Please try them out! I hope people view the source, modify the demos and play with the API to see what can be done. Comments on the API should go to me or to the W3C Audio Working Group.
I must apologise for the uninspired visual design and extraordinarily naive audio processing algorithms. Audio professionals who view the source of my worker code will just laugh --- and hopefully be inspired to write better replacements :-). Making that easy for anyone to do is one of my goals.
Some of the things I like about this API:
- First-class support for JS-based processing. In particular, JS processing off the main thread,using Workers. This lets people build whatever effects they want and get reasonable performance. Soon we'll have something like Intel's River Trail in browsers and then JS users will be able to get incredible performance.
- Leverages MediaStreams. Ongoing work on WebRTC and elsewhere is introducing MediaStreams as an abstraction of real-time media, and linking them to sources and sinks to form a media graph. I don't think we need another real-time media graph in the Web platform.
- Allows processing of various media types. MediaStreams currently carry both audio and video tracks. At the moment the API only supports processing of the audio because we don't have graphics APIs available in Workers to enable effective video processing, but that will change. Applications will definitely want to process video in real time (e.g. QR code recognizer, motion detection and other "augmented reality" applications). Soon we'll want Kinect depth data and other kinds of real-time sensor data.
- First-class synchronization. Some sources and effects have unbounded latency. We want to make surewe maintain A/V sync in the face of latency or dynamic graph changes. This should be automatic so authors don't have to worry about it.
- Support for streams with different audio sample rates and channel configurations in the same graph. This is important for efficient processing when you have a mix of rates and some of them are low. (All inputs to a ProcessedMediaStream are automatically resampled to the same rate and number of chnanels to simplify effect implementations.)
- No explicit graph or context object. It's not needed.
Most of the features in the proposed spec are implemented. Notable limitations:
- "blockInput" and "blockOutput" are not implemented; there is no way for streams to opt out of being synchronized. For example it would be nice to be able to pipe a media resource into a processing node and if the resource pauses (e.g. due to a network delay), the processing node doesn't block but just treats the paused input as silence. This is probably the trickiest feature not yet implemented.
- No support for "live" streams. Similar to above, if a stream feeds into an output node that is blocked, we sometimes don't want to buffer the input stream. E.g. if the input is a live webcam you often (but not always) want to throw away buffered data so that when the output unblocks it immediately gets the latest video frames.
- There has been very little tuning to optimize throughput and latency, especially across a range of devices. This will be a lot of work.
- In general the API is very lightly tested. I'm sure there are lots of bugs.
- Video elements don't play in sync with streams captured from them. In my demos I worked around this by hiding the source video elements and creating new video elements to play the video via the stream. Fixing this bug would simplify the demos a bit.
- Canvas video sources are not implemented.
- The built in audio resampler is stupendously naive and needs to be replaced.
- Add support multiple audio and video tracks and the MediaStream track API.
- ProcessedMediaStreams using JS workers need to add checks ensuring that all upstream media sources are same-origin.
- The biggest limitation is that it's not shipping in Firefox yet. My giant patch is messy and a lot of cleanup needs to be done. I have a plan to split the patch up, clean up the pieces and land them piecemeal. In particular I need to get some of the infrastructure landed ASAP to help the WebRTC team make progress. (When we ship it, much or all of the API will probably be disabled by default, behind a hidden pref, until the standards situation is resolved.)
Update Updated the build links to point to new builds with improved performance (faster JS execution in workers due to type inference being turned on; fewer control loop wakeups due to more intelligent buffering decisions for ProcessedMediaStreams).
January 17, 2012 12:01 AM
January 16, 2012
Asa Dotzler -- Microsoft Still Has a Monopoly with Windows
In his most recent column, Ed Bott said something, mostly unrelated to the rest of the rant, that got me thinking. He said, "In the general-purpose PC segment, where small vestiges of Microsoft's one-time monopoly still exist..."
What I think he's trying to say here is that Microsoft doesn't really have monopoly market power any more in PC operating systems. Or maybe Ed thinks it's possible to have a tiny little bit -- "small vestiges," of monopoly market power. That doesn't really make any sense to me. It's kind of like saying someone is "a little bit pregnant." You either have monopoly market power or you don't.
Here's what I think.
Microsoft absolutely does still possess monopoly market power for PC operating systems.
Microsoft Windows has somewhere between 90% and 92% of the worldwide PC installed base and Windows PC sales accounted for somewhere between 93% and 95% of total PC sales in 2011. (Mac sales were about 4.75% of total PC sales in 2011 -- 16.73 million Macs out of a total of 352.4 million PC shipments)
Microsoft Windows is just as much the overwhelming dominant PC operating system power today as it was back in 1999 when it was declared a monopoly.
"Yeah. Sure. But what about the rise of the smartphone and the tablet?" I hear you saying. Well, those are not PC operating systems. Those belong to different and fairly competitive markets. PC operating systems installed base and current sales market share are still very much dominated by Microsoft.
January 16, 2012 09:45 PM
January 14, 2012
Asa Dotzler -- User Sovereignty
Mitchell Baker has just posted about a very important issue, user sovereignty over our data. Please go give her post a read.
User Sovereignty for our Data
January 14, 2012 03:01 AM
January 10, 2012
Robert O'Callahan -- "Cut The Rope" and HTML5 Audio
Microsoft released an HTML5 version of Cut The Rope which is pretty cool. Unfortunately they use Flash audio by default for Firefox users because, they say, "some Firefox users could have run into an audio problem but will notice we fall back to a flash plugin to ensure that sound effects and music will work." They don't mention specific Firefox bugs (although they do for Chrome), and when I try the HTML5 audio version it works fine for me. So, please try the HTML5 version in Firefox (release or nightly), and if it doesn't work let me know and file bugs! Thanks!
January 10, 2012 08:19 PM
January 08, 2012
Asa Dotzler -- Where are the Firefox Channels Today?
Firefox releases keep on coming. We just shipped Firefox 9 with the killer-fast JavaScript Type Inference work and Firefox 10, with add-ons defaulting to compatible is just around the corner.
| June 21, 2011 | August 16th, 2011 | September 27, 2011 | November 8, 2011 | December 20, 2011 | January 31, 2012 | March 13, 2012 | April 24, 2012 | June 5, 2012 | July 17, 2012 | August 28, 2012 |
|---|---|---|---|---|---|---|---|---|---|---|
| Firefox 8 on m-c | Firefox 9 on m-c | Firefox 10 on m-c | Firefox 11 on m-c | Firefox 12 on m-c | Firefox 13 on m-c | Firefox 14 on m-c | Firefox 15 on m-c | Firefox 16 on m-c | Firefox 17 on m-c | Firefox 18 on m-c |
| Firefox 7 on Aurora | Firefox 8 on Aurora | Firefox 9 on Aurora | Firefox 10 on Aurora | Firefox 11 on Aurora | Firefox 12 on Aurora | Firefox 13 on Aurora | Firefox 14 on Aurora | Firefox 15 on Aurora | Firefox 16 on Aurora | Firefox 17 on Aurora |
| Firefox 6 on Beta | Firefox 7 on Beta | Firefox 8 on Beta | Firefox 9 on Beta | Firefox 10 on Beta | Firefox 11 on Beta | Firefox 12 on Beta | Firefox 13 on Beta | Firefox 14 on Beta | Firefox 15 on Beta | Firefox 16 on Beta |
| Firefox 5 on Release | Firefox 6 on Release | Firefox 7 on Release | Firefox 8 on Release | Firefox 9 on Release | Firefox 10 on Release | Firefox 11 on Release | Firefox 12 on Release | Firefox 13 on Release | Firefox 14 on Release | Firefox 15 on Release |
Firefox 11, which is in Aurora today, makes an awesome leap forward in developer tools. If you're a Web dev, you really should be checking those out. Firefox 12, currently on the Nightly channel, has killed the Windows UAC dialog, so there's one less annoyance on updating.
January 08, 2012 07:03 PM
January 07, 2012
Robert O'Callahan -- Risk Tolerance
John McGlashan principal Michael Corkery said: "He was doing what every kid should be doing, playing with his friends in a river."
Everybody had done everything right, but Dion still died.
"It was just a tragedy, and tragedies happen. Life sometimes deals out bad luck but we have to get on with it. We'll never forget him."
Too often, people respond to a child's tragic death by setting up a pressure group, foundation or new law to Make Sure This Never Happens Again.
January 07, 2012 04:21 AM
December 28, 2011
Asa Dotzler -- What's Next for Windows Phone
After a leaked Windows Phone roadmap, there are a few blogs speculating about what a Windows "Superphone" means and whether or not it's necessary.
Here's my take. I think Microsoft wants to unify their operating systems.
Windows Phone was the first "Metro" experience, but it runs on an old CE kernel and the stack above that is Silverlight (and XNA). Metro is huge. It's the first really new user interface Microsoft's shipped since Windows 95. Metro makes classic Windows and even iPhone and Android feel ancient -- the same old square icons on a desktop we've all been using for the last several decades.
Windows 8 brings Metro to the desktop, laptop, and tablet world. This world, though, is built on the NT kernel, with the WinRT API above that. Sure, you can build Silverlight-like apps in Windows 8 Metro, it might even be trivial to port your WP app to Windows 8 Metro, but you can't easily go the other way.
So, what can Microsoft do about this? Well, it's easy, move Windows Phone onto the NT kernel, and carry over the bulk of the WinRT API. This would make developing your Windows app for any form factor, from desktops to phones, a very easy task. Throw in some nice Visual Studio and Blend templates for re-shaping your app to fit the various form factors, and you've got something really compelling.
The problem with that? Well, today's Windows Phone hardware probably isn't sufficient to drive an NT+WinRT OS. Enter "Superphones."
Superphones, I'm guessing, are the first generation of Windows Phone that run on the NT kernel and support the WinRT (or at least enough of it for most apps.) Note the Apollo release timing is not far from the expected Windows 8 release. Put that together with the recent news that the Windows Phone chief was put in charge of a "a new role working for me on a time-critical opportunity focused on driving maximum impact in 2012 with Windows Phone and Windows 8", and there might be something to this.
So, what do you all think. Am I crazy? Would "same API" across all devices be a worthy Microsoft goal? An achievable one? And what about X-box? Could Microsoft pull off the hat-trick, and unify all of their major platforms under a Metro front end? No doubt that's a tall order, and there are three CPU architectures to deal with. But Microsoft is a big and wealthy company.
December 28, 2011 08:57 PM
December 27, 2011
Robert O'Callahan -- A Case For Non-Fatal Assertions
Jeff Walden is doing awesome work on the foundations of Gecko to unify the lowest-level infrastructure used by JS and the rest of Gecko and to rebase it on modern C/C++ standards. But there is a controversy about whether non-fatal assertions should be part of that infrastructure. This issue came up before, not long ago.
I strongly believe that non-fatal assertions are valuable when used to report the presence of a bug that is not as severe as a browser crash. An example I just pulled out of nsBlockFrame::Reflow:
ReflowBullet(state, metrics, lineTop);
NS_ASSERTION(!BulletIsEmpty() || metrics.height == 0,
"empty bullet took up space");
If this assertion fails, then we have detected a Gecko bug which should be reported and eventually fixed. If the assertion failure is a regression, and we detect it in time, we will try very hard to fix it before the patch ships in a browser release. (If the regression is triggered by our layout reftest test suite, we will almost certainly detect it on checkin since reftests go orange on new non-fatal assertion failures.) However, if this assertion failure is the only thing that goes wrong, there will almost certainly be no ill-effects beyond the page having a slightly incorrect layout --- maybe. Some pages might trigger the assertion but appear to render correctly. Even if the bug causes a detectable test failure, the assertion helps to narrow down the cause and understand the code.
Using a fatal assertion here would have the same benefits but additional costs. A test run hitting the assertion would abort the suite, meaning we lose the results for the rest of the tests in the suite. This makes fixing test failures slower and more painful than necessary since more runs of the suite will often be required. (It's similar to a compiler always aborting after the first syntax error in a compilation unit.) Another cost is that if you are using a debug build for some reason and you hit this bug while trying to work on something else, your work will be unnecessarily blocked.
At this point some will say "Ah! But assertion failures should always just be fixed. Since non-fatal assertions are more ignorable, they encourage you to leave bugs unfixed."
That statement ignores the reality of bug priorities. An assertion failure is just a bug and needs to be prioritized along with other bugs. If our assertion infrastructure and associated project rules forced us to always prioritize some rare list bullet spacing bug above all bugs that don't trigger assertions, then that infrastructure would be actively damaging our project. We would have to respond by simply removing a lot of our assertions and losing their benefits. It is crucial to be able to ignore unimportant bugs.
Having said all that, fatal assertions certainly have their place. I imagine that in the JS engine almost any bug will lead to a crash sooner or later, so it makes sense for fatal assertions to prevail there because the downside is minimal; you were going to crash anyway, and crashing later might just be confusing.
Addendum: an objection to non-fatal assertions is that libc "assert" and some other assertion mechanisms are fatal, so to call something non-fatal an "assertion" is confusing. That may be true for some people, but it's cultural. The culture in Gecko is that NS_ASSERTION is non-fatal. Maybe renaming our non-fatal assertion mechanism would end up being a net win by some point in the future, but I'm dubious. Although I wouldn't actually mind too much; I just want non-fatal assertions, whatever we call them.
December 27, 2011 11:50 PM
Asa Dotzler -- A Simple Google News Search
I keep an eye on Google News results for "firefox". Today I noticed that the URL for that search was crazy long.
https://www.google.com/search?&hl;=en≷=us&tbm;=nws&btnmeta;_news_search=1&q;=firefox#q=firefox&hl;=en&safe;=off≷=us&tbas;=0&tbm;=nws&source;=lnt&tbs;=sbd:1&sa;=X&ei;=fwP6TprKDcariALLtpiTDQ&ved;=0CCAQpwUoAQ&bav;=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp;=2758f09f54f048c8&biw;=1366&bih;=664After a couple of seconds of playing around with it, I determined that the actually useful to me bits made a much smaller string.
https://www.google.com/search?q=firefox&tbm;=nws&tbs;=sbd:1That is, trimming the URL down to the shorter string returned the same search results as the longer string. So, there are only tree pieces of information, three parameters required to get me the results I'm after. There's the search term, that it's a news search, and the sort order. The language and geography and safe browsing setting are obvious (though they don't impact the results, so why carry them,) but what are the rest of these parameters?
btnmeta_news_search=1If you're a Google News developer and you've got a minute, maybe you can satisfy my curiosity.
tbas=0
source=lnt
sa=X
ei=fwP6TprKDcariALLtpiTDQ
ved=0CCAQpwUoAQ
bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb
fp=2758f09f54f048c8
biw=1366
bih=664
December 27, 2011 05:52 PM
Robert O'Callahan -- Revelation
Saw this Penn Jillette quote:
There is no god and that’s the simple truth. If every trace of any single religion died out and nothing were passed on, it would never be created exactly that way again. There might be some other nonsense in its place, but not that exact nonsense. If all of science were wiped out, it would still be true and someone would find a way to figure it all out again.
Well, yeah. Christianity (and some other major religions) unabashedly depend on revelation, the idea that God is so transcendent that humans can't figure out much about him on their own, so he has to tell us. And most of that telling doesn't come to us individually, it has to be passed on to us. Annihilate the revelation and we're in the dark again. So ignoring the pejorative language, and apart from the first sentence, there isn't much for a Christian to disagree with in that quote.
December 27, 2011 06:16 AM
December 26, 2011
Asa Dotzler -- Twitter & Facebook Fail, Google Gets It Right
It's 2011 and the Web is a really powerful platform. JS/HTML/CSS menus are all across the Web. Why is it that we still have such basic usability failings from some of the biggest players in the business. Is it really that hard to recognize that your menu is going to be cut off and flip it the other direction like any other sane app in the world?
Here's a Facebook menu just dumbly cropped by the edge of the Window.

And here's a Twitter menu demonstrating the same idiocy.

Now, here's Google getting it right.

Because the menu would have been clipped by the edge of the window, Google flipped it up the other direction. They're actually even better than that, though. They first try to shift it up a bit to get it onscreen. If that doesn't work, they flip the direction.
This is basic stuff, people. It's clearly possible and Google gets it mostly right to prove that. Why are you still falling down on these kinds of basics?
December 26, 2011 08:14 PM
December 25, 2011
Asa Dotzler -- It's A Wonderul Life
The TV looks pretty small. It's the fire place that's large -- about 8 feet wide.

I guess we need a bigger TV :-)
On another note, "It's a Wonderful Life" was not a success in it day and didn't become a Christmas classic until its copyright expired and television stations could play it for free. Yeah, sometimes the value of art isn't recognized because of copyright. Sometimes, a public good isn't valued until it's shared.
December 25, 2011 10:53 PM
Firefox and Google - "Traffic Acquisition Costs"
There are a number of articles around the web this week making all kinds of guesses and predictions about the Google and Firefox search relationship. I realize that this is mostly inside baseball, but I'd expect those covering this as "news" to be a little more familiar with how this stuff all works. Apparently they don't so here's a quick tutorial on "the economics of the Web".
The economic model that's driven the Web for most of its existence is advertising. Back in the day it was banners and pop-ups. Today it's AdWords and AdSense.
The model works a lot like the previous era of television or newspapers. Advertisers pay content providers to include ads alongside their content. Content providers make most of their money from advertisers. Users get a "free" service.
Google is one of the most successful companies on the Web because they were the first to figure out and sell highly effective ads on the Web. Their innovation was highly context sensitive ads that are more likely to get clicks than the previous generation of ads. When you search for something, Google knows precisely what it is you're after and they can serve ads to you based on your search input (and anything else they know about you from your other Google interactions.)
Google started out as a search company. But that's not what they are today. Google's primary business is advertising. From their SEC filing on the nature of their operations, "We generate revenue primarily by delivering relevant, cost-effective online advertising."
Google brought in $9.7B in revenues in Q3'11. 96% of that revenue was from ad sales. They bundle those ads with some great "free" products like Google Search, YouTube, Gmail, etc. so I'm not complaining here. It's a good deal for lots of users. I use some of Google's services and I visit lots of sites that depend on AdSense to pay the bills and keep publishing great content and providing valuable services.
Not all traffic to Google ads is "organic" though. To help drive ad sales, Google pays for traffic to their ads. They paid out $2.21 billion, or 24% of their ad revenues in "Traffic Acquisition Costs". That money goes to revenue shares with their AdSense partners and to "distribution partners" -- presumably browser makers, PC OEMs, and mobile OEMs and operators.
This is Google's business. They sell ads alongside "free" content, and they buy additional traffic to make those ads more valuable.
For years, many in the tech press have presumed that Google is "donating" money to Mozilla. They're not. They're no more donating to Mozilla than they are to Opera or Apple, both of which derive significant revenue by sending search traffic to Google. For Opera, that appears to be about $50M in the last 12 months. (Apple doesn't disclose the details of their arrangements with Google.) They're no more donating to Mozilla than they are to the handset makers and carriers they pay to distribute Android. It's a simple business deal. They sell ads and they do what they can to put eyes in front of those ads.
Now, and again, I'm not saying there's anything wrong with that. It's a fine model and it's the model that most of the Web depends on today. Take it away and we would certainly have fewer of the great things we all love about the Web and we'd be paying subscriptions for what remained. But Google is not a philanthropist "donating" money to Mozilla or any other "traffic acquisition" partner.
December 25, 2011 07:14 PM
December 20, 2011
Asa Dotzler -- Sustainability at Mozilla: Firefox Desktop Search and Google
I know some of you all have been reading crazy press articles about how Google's going to quit paying Mozilla for Firefox search traffic and I understand that's been unsettling to folks.
This is just a quick note to say that you don't need to worry. Google loves Firefox search traffic and Mozilla gets a really solid revenue stream from that. Because it's such a good relationship for both parties, Mozilla and Google have come together for a great new 3+ year agreement that keeps Google as the Firefox desktop default search service in most geographies and ensures that Mozilla's going to have the income to make even stronger investments in the Open Web going forward.
You can read the official Mozilla Blog post here: Mozilla and Google Sign New Agreement for Default Search in Firefox
December 20, 2011 07:19 PM
December 11, 2011
Robert O'Callahan -- Television
I haven't watched much broadcast television since I started graduate school. In the first few years in Pittsburgh we didn't have a TV in the house and I fell out of the habit. About ten years ago my wife and I started buying or borrowing DVDs and working through particular shows that I'd heard were good. The first was Mad About You, followed by Buffy The Vampire Slayer, 24 (season 1 only; my wife found the cliffhanger endings intolerable), Fawlty Towers, Band Of Brothers, Angel, new Doctor Who, new Battlestar Galactica, The Wire, and a couple of Hong Kong kung-fu shows that I can't explain. We started a few other shows and then abandoned them after discovering that my wife or I didn't like them.
Most of those shows are very good. The Wire is exceptional. Lots of other people have written about it more eloquently than I can. I can understand why the mayor of Reykjavik semi-seriously demanded his allies watch all five seasons. Anyone interested in politics or social institutions should watch it.
However, the best of the lot is Buffy The Vampire Slayer. It starts as silly fun --- and remains so --- but as it progresses, it constantly reveals new levels of creative genius. The imagination, writing, execution are staggering. It's not flawless, but it's the only show I seriously consider watching again. It's not for everyone, but it is undoubtedly great art.
December 11, 2011 06:15 AM
December 10, 2011
Robert O'Callahan -- Love
Our family went to "Christmas In The Park" tonight at the Auckland Domain. Overall it was pretty fun but the choices of songs to cover were not entirely to my taste. There were too many insipid pop songs about "love", a genre I detest. Who writes this stuff? I appreciate the need to sell music to teenagers, who may think "love" is a fleeting obsession with another person, but celebrating that is just dumb. What is that compared to real, long-lasting love, that is based on self-sacrifice, not just in moments but over the long haul? Down with angsty superficial "love" songs!
December 10, 2011 12:15 PM
Last updated: February 08, 2012 07:00 AM

