Categories
Mozilla

Acid3

The Acid3 test is out. Ironic that this one comes towards the end of a Gecko development cycle (just like Acid2), meaning it will likely be a while (Mozilla2, the basis of what will likely be Firefox 4.0) until Acid3 compliance is met.

Seems like the WebKit guys are well on their way.

By the time Acid3 complaint browsers are the norm, web applications will have a very nice platform of features that they can depend on. These tests really do help coordinate browser vendors to focus on certain issues by providing a good test case that they can all compare (and compete) against.

Categories
Apple Mozilla

Apple’s API Advantage

Vlad wrote about his work on improving Mac OS X performance (which is awesome by the way), and his findings from looking at WebKit code. To summarize WebKit utilizes some undocumented API’s (ironically from the same company that makes Mac OS X πŸ˜• ) that give it an advantage over other software which can’t use them. This is pretty anti-competitive, and Microsoft-like in behavior. For a company that built it’s modern OS on an open source core, and it’s flagship browser (which is key to their mobile initiative) on an open source rendering engine (KHTML), you would think they would be a little more understanding about crippling platforms. Then again, look at the iPhone controversy regarding it being a closed platform (though that’s supposed to change next week, and I’ll be sure to blog about that).

Robert O’Callahan’s got a got a great blog post on some of his observations of things Mozilla would likely make good use of. He also mentions one thing worth quoting:

It’s worth reflecting that if Microsoft was doing this, they’d likely be hauled before a judge, in the EU if not the US. In fact I can’t recall Microsoft ever pulling off an undocumented-API-fest of this magnitude.

This is a very valid point which I 100% agree with. Microsoft wouldn’t get away with this.

Safari developer David Hyatt (former Mozilla developer from when Lizards roamed the earth) commented about this issue. Essentially he justifies the decision based on it not being a good practice to use some of these methods, and other aren’t even used anymore. This of course raises the question: Should Apple be deciding what other software developers can do, when they themselves can’t follow the same standards? I’d say that if WebKit feels it has to use it, there’s likely others out there in the same situation regardless of “best practice”.

See, I’m not too much of an Apple fanboy to criticize them πŸ˜‰ .

Categories
Mozilla Web Development

Meta Stupidity

As Robert O’Callahan, John Resig, Anne van Kesteren all point out, this idea of using a meta tag to select a rendering engine is bad. Here are my personal thoughts on the issue. Not as a browser developer but as a web developer.

Essentially the argument by the IE team is this: Rather than fix the problem, lets create a larger problem so the smaller one isn’t very noticeable.

Yea, that’s how I parsed the blog post. For anyone who disagrees, perhaps I interpreted it wrong because they didn’t select the correct parser because they didn’t include the following:

<meta http-equiv="X-UA-Compatible" content="IE=8;FF=3;raccettura=serious;OtherUA=4" />

All joking aside it’s an insane idea guaranteed to set things back.

Categories
Mozilla Open Source

Open Source And Recessions

There’s an interesting blog post on Open Source and recessions worth reading. Essentially the question is this: Does a recession have a negative impact on open source?

I’d say the answer is somewhat more complex than a simple yes/no. There are many different types of projects out there with entirely different circumstances. However I suspect a projects impact could be gaged on a few key aspects of it’s operation:

Purpose – The purpose of the project is likely the most critical aspect. For example, I don’t think there would be any significant impact on projects like the Linux kernel which is essential to many products out there including server infrastructure that powers much of the web and many companies computer systems. Then you have consumer products like TiVo, Google Android etc. Because it’s purpose is so broad there are enough people with a financial interest in seeing development continue. WebKit, Mozilla, Apache, are good examples of this. They have broad usage by many. Something specific to a more obscure task would have more trouble due to it’s more limited market.

Development Team – Of course for a project to succeed it needs one or more developers. During a recession one could theorize that many would be less inclined to participate. This may not necessarily so. First of all, quite a bit of open source development is loosely sponsored. Several projects have actual staff, paid employees who write open source code. For example Apple employees people to work on WebKit. Mozilla has staff working on Firefox. There are people paid to work on Linux (Red Hat, IBM, Novell, etc.) and many other open source projects. There are also companies who contribute some code that would be of strategic value to them. There’s also those who are simply willing to sponsor some work they want to see happen. All of which fund developers of larger open source projects. But would developers who aren’t sponsored or employed to code still participate? I theorize most still would as they don’t depend on it for income during good times, presumably a job during a recession wouldn’t generally prohibit participation and more than a job during years of economic growth. There’s also the impact of college students who participate partially for the educational aspect. The early 2000’s was a recession and still showed a fair amount of growth of open source. In fact many of todays stars really started to take shape during that period. For example:

Funding – Somewhat obvious: Funding is key. Who pays the developers (partially the last aspect I discussed)? Who pays for the projects needs (servers, etc.)? Many of the more popular projects (almost all of the above) have either an organization of for-profit company around built around it. That company often sponsors the needs of the project. Unless the needs of that companies product/service is no longer needed during the recession, funding likely remains. That’s partially the first aspect I discussed.

It’s my belief the larger and more popular open source projects would feel a minimal impact during a recession. I think history has shown this, and common sense agrees. They are mostly low development cost, adequately funded (often from diverse sources), stable, and have a broad team of developers. The projects that are in trouble are the ones who have very few or only 1 developer, even worse if they share the same sponsor, even worse if there is little community around the project. Most projects would generally experience a slight slowdown in development the degree would depend on the above. A few may go dormant for a period of time. Thanks to things like GPL licensing, another developer can pick up should there be a market in the open source ecosystem.

Overall I don’t think open source would be nearly as impacted as most businesses during a recession. The model is very different. Open source when successful has a community and many different sponsors. The diversity allows the project to survive even when recession causes some sponsors to need to reduce or eliminate involvement. Open Source also by definition is used to this type of environment. It’s used to developing on a budget, soliciting sponsors to help cover costs, etc.

The interesting thing about recession is that it impacts everyone, but the degree to which someone is impacted varies. For example construction and housing are generally harder hit than other industries. People tend to cut back on new home purchases before they cut back on other things. Each of those industries has computing needs, sometimes met by open source. This all feeds into the open source ecosystem.

I’d suggest that all of the projects I have mentioned here will do ok during a recession. Many with a slowdown, but all will still continue as long as they provide value. A notable situation is Mozilla’s income comes largely from Google which is based on ad revenue. During a recession and bubble bursting this would likely dramatically reduce the revenue brought in. This isn’t being ignored. As the 2006 Financial FAQ states:

First, the cash reserve is of course a form of insurance against the loss of income. We will continue to maintain enough of a reserve to allow us flexibility in making product decisions….

It seems that an open source project with a diverse stream of funding from individuals and companies of various industries, as well as developers in different situations is in the best position to survive.

It’s an interesting topic.

Categories
Google Mozilla

Google For iPhone

There’s been a lot of talk today about Google’s launch of it’s services optimized for the iPhone.

It got me thinking. Is it really about the iPhone? Or is it about mobile standards based browsers (WebKit in particular). What I’m talking about is Android, who coincidentally also uses WebKit. Call be crazy, but Google’s launch of this offering isn’t really about riding the iPhone’s popularity. It’s about being in that new mobile space. You might even say this is being tested on the iPhone, before Android comes around. No longer is mobile limited by a basic WAP deck. This one uses the same technology the rest of the web uses, only designed to look and function well on a small screen by people with giant clumsy fingers.

This space isn’t limited to just WebKit. Gecko has made some headway into the market (mainly via Nokia devices), and is preparing to make a big effort in the near future to bring Firefox Mobile to your phone. Most iPhone sites look pretty decent in Firefox already, the main thing that makes some of them look a little funny is a css property or two it doesn’t support, for example -webkit-border-image which has become pretty popular for sites only targeting WebKit since it’s pretty handy. Some sites also use -webkit-border-radius, which is supported on Firefox, as -moz-border-radius both of which follow the border-radius specs as part of CSS3, but are still namespaced for the moment.

For once we don’t have to learn another silly markup, and be limited by lack of JavaScript which has made the web a better place… for the most part (think Gmail, Google Maps, etc.).

It’s some very cool stuff. I’m really interested to see what comes.

Categories
Apple Hardware

iPhone Browser

It appears Apple’s iPhone uses the following User Agent:

Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3

A quick search of the log files turns up a hit for me. IP address is from Apple, so I’d presume it was using WiFi to connect via Apple’s corporate network, and not Cingular’s Edge network.

I’m curious what version of WebKit will ship on the final product. This could possibly be it.

[Hat tip: Mac Rumors]

Categories
Mozilla Security

WebApp as Desktop App Security Model?

Recently there has been a fair amount of talk about bringing web applications off of the web and onto your desktop, or to put it in really simple terms: providing a bare-browser that has no UI but the site you visit. It sounds good, but I’m not convinced it’s quite workable, at least at this point. A few example of these attempts are:

The first two are somewhat generic in purpose, while FullerScreen is intended more for the task of using a web page as a presentation medium. Making it a potential replacement for something like PowerPoint.

I’m not quite sure this is really a workable model for the “average user”. Take for example the following scenario:

Say you use this as a way to make your Gmail (or Yahoo) account feel more like a client-size application. You receive an email to visit a site. You click the link and visit the site. You think you are using Firefox. In reality you’re really viewing a spoofed window. Even if remote XUL is disabled you can still do a fair job with just a bunch of cut up GIF’s. Enough to fool a casual user. Firefox has some basic countermeasures to help prevent this, such as keeping some UI.

This could be prevented if a “windowless” browser always prompts or provides some other sort of notification before connecting to an unprivileged host. Or better yet: Simply launches the real browser rather than handling untrusted url’s. That would be better and less Vista-like.

So that leaves me with the question: how should such an application behave? A true desktop application typically launches the default browser on the computer. Notable exceptions being things like Real Player, Google Earth, etc who embed a browser. How do you give a desktop like feel to an application, yet still provide the UI feedback to the user that a browser’s chrome provides?

My suggestion is simply limiting by a hostname. You have a Gmail app, you trust Gmail and nobody else. In my mind an application does 1 task and does it well. If it was intended to feel like a Gmail client, then it should do that, and that only. Want to visit that website with the monkey that sniffs his own butt? Cool, but do it in your own browser.

I’d be curious what others thought of this potential problem. I think with XULRunner looking more stable, WebKit being available to Mac developers and the merging of the web and OS, things like this are a potential problem. We are getting more and more ways to embed browsers into things (widgets, extensions, etc.). This is going to be more of an issue moving forward.

This isn’t to say I don’t like the above products (I actually really like them). I just haven’t figured out exactly how they fit into the current security model of local:safe, web:devils-playground. I don’t think they do. I think they potentially break the barrier between the web and desktop applications. We’ve all been hoping would be broken. The question is: are we ready?

The higher level question is: How do you distinguish between trusted and untrusted data when it all looks like it’s local?

Categories
Apple Web Development

Safari On The iPhone

There is a message on the Surfin’ Safari blog about the new iPhone, but it doesn’t say as much as I had hoped it would. I want to know the following as a developer:

  • How close is Safari on Mac OS X 10.4 to how the iPhone renders? Are they the same version of WebKit or a fork? How can developers test without an actual phone? Is any Mac with Safari a good method? For the Blackberry we have the simulators. How does it differ?
  • What if any plugin support exists? Does it support QuickTime? Flash? Acrobat (or Preview.app)? Can it handle attachments? Can users download third party plugins? Or are they limited to capabilities of the phone as it ships (or through official software updates)?
  • What will the UserAgent be? Will it be the same as desktop Safari?

The phone is touted as pretty much a full browser, and Safari is up to the task. But I wonder how well it handles rich media through plugins. From the Google Maps demo, I think it’s safe to say xmlHttpRequest is supported.

I’d really like to see some documentation on how webmasters can prepare and ensure an optimal experience on this new device. Ideally it would be given in advance so one could ensure the best experience possible.

Categories
Apple Hardware

Post MacWorld SF Observations

My predictions, like many others were mostly off. So here’s my observations of todays festivities and announcements.

Categories
Apple Mozilla

Intel Mac UserAgent

To continue with my last post, I did some digging to see what the useragent on the new Intel Mac’s were. A while back, I was wondering what they would change it to. I now have the answer:

Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/417.9 (KHTML, like Gecko) Safari/417.8

For Firefox, it’s not quite decided (bug 323657).