Browser Hell

While there are a variety of methods to view the web, the vast majority of people use only one of a few options: Internet Explorer, Firefox, Safari, Opera, and (johnny-come-lately but gaining market-share fast) Chrome. While it’s fantastic that each of these browsers are doing well enough to be considered major players, the problem is that they all have some pretty serious failings.

Internet Explorer LogoThe problems with IE are well documented, and frankly given that it’s Windows-only, I’m going to gloss over it here by simply saying: don’t use it unless you have to. Don’t support it unless you have to. Just. Don’t. This may change with the upcoming IE9, as there’s been a BIG push by developers to get Internet Explorer up to date and standards compliant. If even half the features and support Microsoft has promised actually make it into the final product, Internet Explorer may well be worth another look. In the meantime, take a pass.

Firefox LogoNext up is Firefox, a very popular open-source effort run by Mozilla. It’s free, it’s open source, it’s cross platform, there are lots of themes and profiles and extensions you can get for it to make the browser do more, all of which makes it the darling of the geek community. It isn’t without its faults, however: the same extensions that make Firefox useful often contribute to browser instability, but Firefox without extensions is… well, lackluster. Which is to say: a plain copy of Firefox is a perfectly serviceable browser, but lacks anything to set it apart from other major browsers. That coupled with one of the slower load times and a rather substantial resource footprint makes it a less than ideal solution for someone trying to run a lean, stable system.

Safari LogoWhile Safari doesn’t have anywhere near the usage rates of IE or Firefox, it’s still a major contender in the browser wars, for three reasons: 1) It’s the default browser on every Mac system, and has the highest browser rates on Macintosh computers; 2) It’s the default (and until Opera Mini managed to strongarm their way onto it, only) browser on the iPhone, iPod Touch, and iPad; and 3) It’s cross-platform and free. I’ve been a diehard Safari user since it came out, only occasionally switching to Firefox or Camino. However, as they’ve continued to add more features, the overall quality has (in my opinion) gone down. Reports of stability issues are prevalent on the Windows version, and I’ve been discovering massive resource consumption on my Mac. Since Safari 5, the memory footprint has grown significantly, causing repeated beachballs for the most basic browsing tasks because my laptop, with 2gb of ram, was out of memory. (My frustration with this is actually what has prompted this post.) I can only assume it’s a memory leak that slipped past them, because I cannot fathom how that sort of resource consumption would be acceptable for a shipping product.

Opera LogoOpera is a trooper from the old browser wars. While it has incredible market penetration on devices and globally, as a desktop web browser it didn’t really get a strong foothold in the U.S. They’ve continued to improve the browser over a number of years (the current version as of this writing is 10.60), and at this point boast one of the most standards compliant, fastest browsers on the market, with a ridiculous amount of features. Which is the problem: there are so many features and customizations and tie-in services like Opera Unite and Opera Link that it’s incredibly easy for the average user to get mired in unwanted complexity. Additionally, while they have support for widgets (which can even work as standalone applications from the desktop), I had trouble finding any plugins to fix some egregious oversights (despite all those features, Opera tends to only play with itself — service integration with third party options like Evernote or Delicious are non-existent). Some of the interface I found cumbersome, but I was willing to work through that (all browsers have some quirks, after all), but was off-put by the sheer number of browser themes that were for Windows only, leaving Mac users very few options to try and find a more suitable interface.

Chromo LogoThe last of the “big” browsers I wanted to mention was Google’s foray into the browser market, Google Chrome, and its development sibling Chromium. Despite being very new, Chrome has already gained a significant market share in terms of browser statistics, and not without reason: it’s fast; it breaks page viewing into separate processes to keep the entire browser from crashing when one page hits bad code; and, well, it’s made by Google. Frankly, while I appreciated some of the features of Chrome, I found it to be an incredibly slipshod application. The user interface was inconsistent and unclear on numerous occasions, with the preferences window being a morass of poorly explained buttons and hidden panels, and their handling of tabs becoming utterly useless once you get much over 20 tabs open. It’s easy to start cutting them some slack by saying “It’s a beta,” but let’s be realistic here. Google has made a point of hiring some of the smartest, most talented, capable people on the planet, and invested millions into the development and marketing of Google Chrome already. A product with that sort of backing feeling this slapdash is embarrassing for them and frustrating for the user. (Final gripe about this: despite their session-splitting to help prevent browser crashes, Chrome crashed on me when I tried to quit.)

So there you have it, the biggest, most popular browsers out there. The reality is that they all have MAJOR FLAWS, and there is major work that should be done on all of them. The bright side is that each of these browsers is under active development, so a lot of the work that needs to be done will be done. Until the problems are fixed, however, I’m inclined to look into one of the numerous smaller browser projects being developed out there, and hopefully find a diamond in the rough that blows the big boys out of the water.

Where to Build Your Next Team

According to the ESA’s reports, the five states that are serving as game development hubs in the US are California, Washington, Texas, New York, and Massachusetts. This shouldn’t come as a surprise to anyone; cities like Seattle, San Diego, Austin, and their peripheral towns are often mentioned in gaming press. This is fine –€” certain hubs are expected to rise up in any industry, and game development, at $22 billion domestically per year, absolutely qualifies as industry. However, it is becoming increasingly apparent that there is a need to start expanding into new locations if studios expect to continue to grow profitably. It comes down to cost: the cost of living, and cost of business.

The cities and regions that game developers are based in right now tend to be expensive: the amount of money it takes to maintain the same quality of life is higher than in other cities. As an example, comparing Portland, Oregon, and Seattle, Washington, two cities that offer similar climates, similar cultural opportunities, overall a similar quality of life. In Seattle, an examination of average office lease rates are running between $25 and $40 per square foot depending on where in Seattle you are (and where most of these companies are located, you’re looking at the high end of that range). A similar examination of Portland puts the lease rates between $12 and $25 per square foot. (To put those prices in perspective, Bungie recently announced their move into downtown Bellevue, leasing 85,000 square feet. Assuming they got a killer deal and only paid $30 per square foot, that’s still $2,550,000.) An equivalent space in Portland, assuming, say, $20 per square foot, is $1,700,000. That’s an $850,000 price difference, and that’€™s only one part of the overall cost of doing business.

Looking at the cost of living for the employees themselves, median apartment rental prices drop nearly in half between Seattle and Portland. While other price comparisons are less dramatic (the cost of heating a home doesn’€™t vary much, which is unsurprising considering they share a similar climate), it still works out to a net savings for the employee to be in Portland. What this means for the employee is that they can live at the same quality of life, for less money. What this means for employers is that they can price their salaries accordingly (as they already do), and again, save money to either a) bring down development costs, or b) hire more developers.

Of course, so far we’ve only discussed basic numbers, on the assumption that one would have to pay for everything involved. For a number of developers, this is already not the case: both Ontario and Quebec (and respective cities Toronto and Montreal) offer significant subsidies to game companies to build studios there. It was reported a few years ago that the city of Montreal and the province of Quebec combined subsidized over half the salaries for Ubisoft and EA, two major developers and game publishers. Ubisoft is expanding again, opening a new studio in Toronto, who have committed to investing $226 million into Ubisoft over the next ten years. Here in the U.S, 8 states have already passed initiatives to encourage game development, including significant tax breaks and other incentives to draw the industry in. The city of Savannah has gone so far as to offer a full year of office space free to any company willing to commit to offices there.

Now, I realize it is pretty rare that a company is in a position to be able to perform an en masse relocation (there have been a few examples, such as when Square moved from Washington to California, or when Bungie moved from Illinois to Washington), but that isn’t really what anyone is trying for: as development teams grow, new facilities are needed, and new development teams are created. These new studios and teams are in a prime position to make use of the lower development costs of setting up in a less expensive city. It would be foolish for a large game developer to not at least consider this when building out their next team.

The cities I expect to be great additions:

  1. Portland, Oregon: the city has so much going for it in, and is already starting to undergo a bit of a cultural explosion thanks to its fantastic music and art scene, green policies, and laid back atmosphere.
  2. Minneapolis/St. Paul, Minnesota: it’s been largely off the radar for a lot of people, yet sports a remarkable diversity within the area, low costs, and is something of a jewel of the central states.
  3. Boulder, Colorado: it is already becoming a pretty significant tech hotspot, housing a number of startups and offering a range of support for the software industry.

The MacBook Update

As I’m sure many are aware, Apple updated their laptop line today. There are some interesting technological advances going on, but (and their stock fluctuations today can attest) there seems to be a large backlash against several changes they made to their lineup — some justifiable, some spurious. Let’s look at the spurious complaints first:

  • “There’s no DVI port!” — and were you making the same complaint when DVI started to supersede VGA? Let’s be objective about this: DisplayPort is a VESA-certified industry standard meant specifically to address the needs of the computing market, in the same way that HDMI is meant to address the consumer electronics market. There are adapters already in existence to convert from DisplayPort to DVI (or even VGA) and back again. I know it’s hard when new standards come out, but you need to recognize that they’re coming out because what we have is no longer suitable for moving forward. HDMI is a marked improvement over Component. Well, DisplayPort is a marked improvement over DVI.
  • “There’s no button on the trackpad!” — anyone who has been paying attention could see this coming — look at the iPhone and iPod Touch and tell me you couldn’t foresee virtualized buttons coming. There are some complaints that they hate “tap-to-click,” and I can certainly concede that, but from looking at hands-on reports of the new setup, the system is designed in such a way that your muscle memory to hit the button with your thumb will still work in exactly the same fashion. The current button on the trackpads drops a millimeter, maybe two — you are in effect already “tapping” the button. The short of it is that by going to a virtualized solution, it becomes easier to adapt the trackpad to specific needs and solutions. I’m certain I can’t be the only who sees this.

There are definitely some very real gripes to be had, however:

  • “The black keyboard and black bezel are ugly.” — yes, I’m counting this as a real gripe. While from the exterior, the new laptops are sexy, when you open them up, the result a step backward; it is reminiscent of several offerings by Sony, Acer, even HP. Some are heralding it as a return to the Powerbook Titanium design philosophy, but I don’t really see that as a good thing. Why go back, when they clearly had so many options to move forward? Their external keyboards use a white on silver color scheme that would be markedly less jarring, let alone going with a silver-silver like they did with prior MacBook Pros. I consider this a valid complaint because part of what gets people to buy a Mac instead of a PC isn’t just the OS, it’s the hardware. The more it looks like everyone else’s offerings, the less reason there is to purchase the (more expensive) Mac option. Black on silver does not look good, I’m sorry. If they were going to go with the black bezel and black keyboard, in my opinion they should have gone with a black body. Either anodized or powder-coated black aluminum would still qualify for their EPEAT Gold rating, and yet would overall be more aesthetically unified.
  • “No firewire in the MacBooks!” — completely agreed. I don’t know what the hell Apple was thinking. Adding a FireWire 800 port would not have been difficult, even in the smaller enclosure, and yet by doing so, there would be a wealth of devices that would become available, including daisy chained hard drives and their own Target Disk Mode. Yes, that’s right, they’ve removed a technology that makes it easier to buy more of their products (by easing the process of migration). I understand the desire to further delineate between the MacBook and the MacBook Pro, but this is a grievous oversight.
  • “The dual graphics cards are neat, but can only use one or the other!” — I’m on the fence as to whether this is a valid or invalid complaint. My suspicion is that when 10.6 rolls out and OpenCL and Grand Central becomes more of a reality, we’ll start seeing the ability to prioritize processes and send some to one card, and others to another. If not Apple, then a third party developer. Given that nVidia has gone on record saying they’re supporting OpenCL, I think this is a reasonable prognostication. In the meantime, however, it’s just a “shiny-shiny” to give the marketers something to chew on. I really don’t care about the difference between a 4 hour and a 5 hour battery life — more often than not, if I’m in one place for that long, I’m able to plug in somewhere. So why not save the space in the laptop and just do the high end graphics card? (Of course, I consider this yet another reason to believe that there WILL be communication across the two cards in the future.)

I’m still very interested in getting a new MacBook Pro, as my current machine is starting to get long in the tooth and showing its age. Once I have a job that I can justify the expense, I imagine I’ll be getting one of the new machines, but if you’re in the generation immediately prior, I’d be hard pressed to encourage an upgrade. Honestly, a part of me (as lustful for a new machine as I am) wants to wait and see if they start offering a gun-metal-black iteration in 6 months.

Photoshop CS4's Interface

So, John Nack has previewed the new Photoshop interface, which has been drawing a fair amount of criticism around the ‘net for being “un-Mac-like”. I think the criticism is frankly a lot of gnashing of teeth because it’s different, and very little else. As Nack points out, if you bother looking at some of the best “Mac-like” apps, including applications made by Apple itself, much of the new design draws very similar parallels. It’s a very clean, modern interface, and keeps pace with the trend towards encapsulated applications (the document driven, single window experience). Frankly, I like it, and look forward to it.

Let’s face it: any user who multitasks ends up with a boatload of windows open at any given time, and there have yet to be really any effective ways to manage all the windows. This is becoming increasingly problematic as we find ways to have more and more windows up at any given time (I’m looking at you, Spaces), and so user interfaces have been forced to rethink how they display their data, to better encapsulate that data, so that everything related to a particular document STAYS with that document. Tabbed browsing was the start, but it’s totally logical that this design philosophy would (and should) enter other applications. Some of my favorite applications are ones that integrate data into the session window — a prime example is Scrivener. In Scrivener, the inspector is attached to the document window, rather than sitting in a separate “inspector pane/window”. From a design perspective, this makes it absolutely clear as to which document you are inspecting, which is particularly important if and when you have multiple documents open at once. The application is designed so that everything you need to do to the document can be done from one document window, with multiple files within it. You can even split the window to display attached research files or another page of writing at the same time, or if you decide you really NEED it to be in a separate window, that option is only a right-click away. That is GOOD DESIGN: it avoids juggling through multiple windows just to get your work done.

Detractors who might say it’s not “Mac-like” haven’t been paying attention. While there is, of course, the opportunity to get it wrong, and not make an effective interface, this is true regardless of whether you’re talking about a unified interface or a multi-window one. However, it’s pretty clear all the way down to the interface of the Finder, that we’re shifting towards a single-window-per-need design philosophy (if you don’t believe me, use the “Find…” option in OS X 10.5, or “Create Burn Folder”, or try out iChat with “Collect Chats into Single Window” turned on and tell me it’s not a better way to juggle a dozen conversations).

The key to note in what I’m saying is that it is PER DOCUMENT, or PER NEED. The places that I’ve seen single-window interfaces be successful is where elements that belong together are placed together. A window, in essence, becomes a method to encapsulate the data related to the task or project it was created for. As such, there are going to be times it DOESN’T make sense. Frankly, I’m just glad designers are realizing that there are times that it DOES.

reCAPTCHA

reCAPTCHA is a free CAPTCHA service that uses text that OCR scanning technology couldn’t translate as the random text:

But if a computer can’t read such a CAPTCHA, how does the system know the correct answer to the puzzle? Here’s how: Each new word that cannot be read correctly by OCR is given to a user in conjunction with another word for which the answer is already known. The user is then asked to read both words. If they solve the one for which the answer is known, the system assumes their answer is correct for the new one. The system then gives the new image to a number of other people to determine, with higher confidence, whether the original answer was correct. (reCAPTCHA Website)

Truly, we live in the future.

I’m now using this system for user registrations (which are required to leave comments). So go register, and help read books!

Microformats

This really deserves a fuller posting than this, but the gist of it: Microformats are a way to make your data more machine-friendly, related to (but separate from) the Semantic Web movement. There are several microformats out and seeing use, including hCard and hCalendar. Several more microformats are currently in draft form, such as hReview, and hResume. What’s really nice about this is that it makes your content readable for both humans and machines, and their extensive use of classes allows a built-in versatility in layout via CSS.

Of course, the drawback is that it’s more cruft to try and remember to implement. The folks spearheading the movement seem to understand this, though, and most of the drafts and specifications have online creators that you can use, and several plugins for popular blogging applications (like WordPress) are in development. I just used the hResume Creator to create a basic resume which I’ve posted here.

Leopard and You

I’m currently sitting in the conference room of the Hilton in Dedham, waiting for the Mac OS X Leopard Tech Talk to start (it’s a developer seminar previewing the new stuff coming up in 10.5… they did one for 10.4 as well that I made it to). I’m still pretty pleased that I managed to make it here, as they really are a lot of fun, and I like knowing things, even if I don’t really get a chance to make much use of it. I won’t necessarily be liveblogging the event (some of this is still under NDAs), but I will try to give a general sense of what’s coming up without getting in trouble with Apple’s legal department. It’s really nice sitting here and seeing dozens and dozens of MacBooks, Powerbooks, and MacBook Pros, and logging into the complimentary available wireless network and seeing everyone up via Bonjour. If I were a bit more adventurous, I’d even try IMing people.

[Update: 2 PM They were quite happy to point out that yes, a lot of this is under NDA, and if things are leaked, they don’t get to continue doing these, so please bear in mind that there’s a LOT of information here that I just can’t go into detail about.

My first session was the introduction to the seminar, which covered basic sales numbers, general updates about the application, and then showcased some shiny new features that are definitely pretty exciting. I’m feeling pretty good about what’s changing in printing, and I’d say those of you who are worried about it changing should be well pleased with what’s being done. Core Animation is showing a lot of potential, and a lot of it has already been integrated in ways that you may not really realize: it’s not meant to just be a shiny, a lot of the time animation is a subtle thing to enhance the user experience, to make the UI more clear in what’s happening. An example is the dock, already: if you drag an application icon around on the dock, things move and shift out of the way. It makes it immediately clear where and what’s happening. In 10.5, developers will be able to leverage a lot more of that sort of animation capability for “free”. I’m really excited about some of the new graphics related toolkits that they highlighted.

My second session was an introduction to Xcode 3.0 and Interface Builder 3.0. I’ve got to say, I’m quite impressed with the new features. I like what they’ve done to streamline the workflow, and the new interface builder is sharp, and seems a bit more intuitive. It’s also apparently significantly more extensible than the old version. A lot of the information is available on the developer site, and I’d definitely recommend checking it out if you’re interested in using OS X as a developer platform.

My third session was “Modern OpenGL”, and it was a treasure trove for my particular field of interest — game development. They’re expanding their support of OpenGL, and some of the features they’ve added have already begun to show a marked increase in speed in existing apps: adding multithreading support on the graphics side to a popular game I play gave a 90% frames per second increase. Some of the example apps were crazy impressive in what they were able to pull off, and easily half to two thirds of the presentation covered ways to modernize OpenGL code and optimize it for performance. Some really nice caveats to remember (I have them written down) if I get back into programming.

I’m taking a break at the moment to let my battery charge, but at 3:15, there’s a session on what’s new in Cocoa that I’d really like to attend. Hoping to attend the sessions on Resolution Independence and Printing in Leopard after that, since those are things that are directly relevant to both myself and others I know. Then there’s just the reception and a chance to shmooze with folks before heading back north. Pretty fun day, all told. Kudos to Apple for hosting it!]