Using Mechanical Turk for experiments or other tasks? IE will break your face.

Like many other research experimenters and crowdsourcing businesses, I use Amazon Mechanical Turk to get some real human input on my tasks. For a project I’ve been doing recently, I wanted to make the information input as easy as possible, so I wrote an application using lots of Javascript, with jQuery and CometD libraries, in modern standards-compliant HTML.

Everything worked great in Firefox and Chrome. However, the first time I ran the task, I neglected to test the task in IE. I was puzzled as I watched it run, since many users accepted the task and returned it after some amount of reloading. Since the task itself was pretty straightforward, I figured that there must be some problem with the browser mechanics.

As I began testing in IE, I realized I’d just discovered the eccentric world of web compatibility. Prior to IE9, there was no way to debug Javascript in IE. However, IE9 has started to catch up to other browsers by offering a debugger and tools for examining the DOM. I also discovered that since previous versions of IE were so bad, IE9 had the option to render pages with the engine used for each of them, since sites would break under modern standards.

IE9 is a pretty huge improvement from previous versions of IE. However, there are some things that Microsoft still refuses to get right. The behavior that was breaking my application was how IE9 renders an IFrame in an existing page: it forces the IFrame to render with the same engine as the parent page. Since Mechanical Turk hasn’t updated its site to use <!doctype html> (HTML5 standards) yet, my entire task was being rendered in “Quirks Mode” – aka, what was used in IE 5.5. My standards-compliant, modern CSS-and-Javascript application was completely broken.

Great! Thanks, IE!

What’s more, there was no way to override this behavior with <meta> tags or changes to the doctype. Microsoft has even stated that this is the standard behavior and it won’t be changed. I was surprised, since IE has so many override options given how different previous versions have been. I ended up fixing my application for IE by replacing all unsupported functions with custom Javascript or jQuery functions, and using the IE Javascript shim for CSS. What a nightmare! It’s really too bad that so many people use IE, but collecting experimental data with only Firefox/Chrome users might bias one’s data :)

For more information on this behavior, you can see the following post.

http://css-tricks.com/ie-iframe-quirksmode/

Gnome 3 and NX

I’ve been using NX for a while. For those of you who don’t know what it is, it’s a highly customized X server for fast remote desktop connections. Clients are supported from Windows, OS X, and Linux, and sessions can be disconnected and reconnected from any client. The best part is that it doesn’t lag at all. I can write code without noticing any hiccups, and I’ve even used it from a Bolt Bus. Can you say that about RDP or VNC? NX has been a mega productivity tool for me and I’ve proselytized it to many fellow graduate students as well.

Recently, Gnome 3 has been released and is slowly stabilizing into Linux releases. With its compositing and massive UI improvements, Linux is finally exiting the Dark Ages of user interface and getting features comparable to Windows 7 and OS X. Gnome 3 is very different from Gnome 2, and requires some familiarization with keyboard shortcuts to be productive. Once you’ve learned them, you won’t regret it, though.

The problem with NX is that its custom X server doesn’t support many of the latest X features, especially compositing. However, I wanted to have both the power of the full Gnome 3 UI when at work and the flexibility of NX when I needed to access my work from anywhere else. I finally made the jump to Gnome 3 on my main work computer, and found that it has a fallback mode that works under NX, similar to the old Gnome 2 UI. However, the layout is super ugly.

If you want to go this route as well, you’ll want to download some Gnome 2 Themes and put them in your ~/.themes/ directory, making your NX session prettier more usable. Otherwise, the experience is pretty much the same as Gnome 2.

NX 4 is supposed to support compositing though, so look forward to that! Even so, you might not want to use it to maximize performance over slower connections.

If anyone else has experience using both NX and Gnome 3, feel free to pitch in!

Multi-user experiment framework for Amazon Mechanical Turk

At NYCE 2011, many of you expressed interest in the framework I demonstrated for automatically setting up and running real-time experiments involving multiple users on Amazon Mechanical Turk.

I hope to open source my code in the future and make it available. I’ve been personally calling the software ‘TurkServer’ and I suppose this is a good name that will stick. I will also put up a page on this site with more information about the capabilities of TurkServer. Please e-mail me if you would like more information.

Does anyone still play Air Buccaneers?

There is this very creative UT2004 mode that I used to play – ludocraft.oulu.fi/airbuccaneers/. Players basically pilot around hot air balloons and try to shoot each other with cannons.

The community seems to have died a bit, but I put up a server at 140.247.62.101:8777 , and will leave it up for as long as necessary to get people back! Please comment here if you want to play the game.

How I Almost Became a Mac User

After waiting many months for Apple to finally update their Macbook Pro line, I finally gave in on my urge for a new computer and got the Sony Vaio Z. Apple did indeed update their Macbook Pros on April 13th, 2010, but the hardware just doesn’t compare to the Z.

The Vaio Z is lighter (at just 3 lbs) than the Macbook Air, but faster than the Macbook Pro with its Core i5/i7 Arrandale processor. At just 13.1 inches (the perfect size for me,) it also comes with a default resolution of 1600×900 – but you can also go for the ridiculous 13.1″ 1080p screen if you have eagle vision. Tack on the 3 or 4 SSD’s in RAID 0, along with the hybrid graphics (Geforce GT 330M + Arrandale IGP) and you have a clear winner. Other benefits: noise-canceling earbuds included, and 2.0MP webcam.

The only issue now is to get Linux working on this bad boy. I’ll probably wait a bit to see how the new kernels fare with hybrid graphics and raid 0 on device-mapper, then jump right in with Gentoo.

Sony Vaio Z website crashes Firefox & Chromium in 64-bit Gentoo

I was recently looking for a new laptop to buy and the Sony Vaio Z caught my eye. Its specs are quite amazing, and great for power users, especially the 1080p screen in a 13.3 inch size. However, I had a bit of trouble going to the product website on my Linux desktop.

The first time I opened the link in Firefox, my system started paging after a few seconds, then froze completely. I couldn’t even kill GDM or log in from the Ctrl-Alt-F1 terminal. I thought that this must be a Firefox bug, so I reset the system and opened the page in Chrome.

Lo and behold, it crashed again. I had a chance to open up top before the system became completely unresponsive and saw that it was using almost 4GB of RAM, and growing. Killing the process disabled output to my monitors, so I had to ssh in and force a reboot.

This is a very mysterious problem, since the site doesn’t even use Flash, which I thought was mostly responsible for bugs and memory leaks like this. I wonder if the OS hackers that couldn’t break Chrome have been bested by the Sony website… I ended up having to open the page in my Windows XP VM.

For anyone trying to replicate the problem, I’m running 64-bit Gentoo and Firefox/Chrome are both compiled with emerge.

Hello World!

Trying out a new website and CMS. We’ll see how this goes…