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.

Continue reading

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.

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.

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]

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?

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.

Apple’s new Mactel’s and UserAgents

Currently UserAgents for the two most popular Mac browsers are as follows:

Safari

This visitor used Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/412 (KHTML, like Gecko) Safari/412

Firefox

Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4

Does anyone out there know if Apple has switched their developer edition Intel Macs to a different UserAgent yet? I presume it’s simply swapping out PPC with i686.

It would be nice if Apple, or someone from the Safari team [collective look toward David Hyatt] would give an official mention. Or will they do like Windows and not say anything?

It would be nice to know early how this is going to be done. It would allow web developers to start updating log analysis software today so it accurately represents those new systems when it ships (and allows developers to see how much of a market there is for Intel based Macs). Not to mention it allows us to make websites that sniff for the processor type and choose what download the user really needs (rather than force a user to download a larger universal binary).

I’ve yet to see any official mention on the Apple website regarding the UserAgent change and proper detection methods for such purposes.

Safari’s WebKit is now open

Hyatt made the announcement on his blog. Using bugzilla, and cvs. It says it’s even possible to get checkin access if your a contributor with a proven track record. I didn’t see any lxr like tool for viewing source via the web (very handy), or a list of reviewers. Perhaps that’s still to come, the website looks pretty new.

Anyway, congrats to the Safari team in addressing all those concerns a few weeks ago.

I’m curious how perhaps this can improve browser relations across the board. Not that the Safari team and Mozilla are so distant to begin with, but this could lead to bigger better things. This is great news for everyone.