SearchMash in IE7

Eye5

As I mentioned in Top Three Usability Problems, the Firefox 1.x toolbar plugin has been very popular, and I really wanted to add one for Internet Explorer too. Luckily, IE7 now supports the OpenSearch standard for search plugins, and so does Firefox 2.0. I had to write an XML description of SearchMash, then I was just able to add a couple of javascript calls and a link in the head, and SearchMash now shows up in IE’s toolbar when you click on the link in the preview frame.

It even shows up temporarily in the list if you visit http://mashproxy.com/search, thanks to some autodiscovery magic.

Out of the three usability improvements I wanted to make, that was the easiest. Getting the history working, and quicker load times are going to be harder. Work is very busy right now, and this is my ‘relax after a long day’ project, so I’ll see how much progress I make.

Top three usability problems

Hourglass
My goal for SearchMash is to get people using it as their regular search page, the way I do, by helping them find useful results more quickly, and find more of them. My firm belief is that searching can be improved, and that people will use a better search interface, and this project is a way of proving that.

I want to convert more of my visitors into regular users, and I believe there are three crucial problems I need to solve to do that:

Loading Speed

Especially on PC’s, the Java engine can take several seconds to load up, which adds a big delay to seeing your search results. There’s nothing I can do to speed up that startup time, but I could try and display something useful while it is loading, such as the plain Google search results for that query. I’ve filed a feature request with the Sourceforge system to track my work on this; Display useful information during Java loading.

The Back Button Doesn’t Work

Since I’m writing HTM directly into existing frames, rather than changing their location, the browser’s history doesn’t get updated when you got to a new page of search results within the site, and so hitting ‘back’ takes you to the page before SearchMash, rather than going through the pages of searh results. This is a surprisingly tricky thing to get working because different browsers behave differently, and you have to use subtle tricks like hidden iframe location changes to put changes into the history without actually reloading the page. This is in Sourceforge as Make page changes work with history.

Toolbar Search With Internet Explorer

The Firefox search extension is one of the most popular ways to access SearchMash. IE7 now supports a different standard, OpenSearch, but that allows similar functionality, with a few nice extras. One cool addition is that you can advertise your search engine through a link in the of your page’s HTML, and it will automatically show up in the search box for users to try out. I’ve got Write search plugin for IE 7 tracking my work on this one.

Crossloop

Crossloop
Crossloop is a new product that makes screen sharing easy. I heard about it through Mrinal Desai, and I’m trying it out over the next few days.

So far, I’m very impressed by the simplicity of the whole workflow. It’s been set up so that you just download and run the installer, and then when you run the program, you instantly get a window you can either type in a unique ID if you want to look at someone else’s screen, or if you change to the second tab, your own unique ID you can give out to other people to watch your screen.

I love that they’re taking a traditionally uber-geeky area, remote desktops, and democratizing the interface. They’ve removed all the config fluff that’s a barrier to 90% of computer users, and made it almost as simple as dialing a phone call.

That fits with my design philosophy, one that initially grew out of my experiences writing both console and PC games. Console games outsell PC games by an order of magnitude, even though PC games are often objectively better in graphics, and many console owners also have PCs. I grew to realize that PC games have a set of barriers that are invisible to most geeks, but almost insurmountable to the mass-market user. These are things like installing software, minimum requirements, and configuration.

With a console game, you insert the disk, hit the power button, and you’re in the game. It’s like a DVD player or any other consumer appliance, you know it will work instantly and every time. With PC games, you have to spend minutes at best installing onto your hard drive, and there’s always the chance that there’s a missing requirement or plain old driver problem that stops you dead.

Geeks love the flexibility of configuring apps, and thrive on the problem solving that ensues. Mass-market consumers want something that’s reliable and simple. That’s the real strength of web-based apps, no need for installation.

I’ll post a full review of Crossloop once I’ve had more experience with it, but my first impressions are very positive.

Whois

Eye4
There’s now a ‘Whois’ link for all results, next to the similar pages and cache links after the summary. This uses the internet whois protocol to try to get information about the owner of the domain the page is on.

To use the new link, just click on it and the results of the whois search should show up in the preview pane. There’s usually a bunch of boilerplate standard information from the server holding the information, followed by the information about who the domain is actually registered to.

Since the whois servers hold the owners names, emails and phone numbers if they’ve not gone with a private listing, I had to be careful about how I offered this within SearchMash. In particular, I didn’t want to overload the whois servers providing the information, so I’m careful to only put in requests when you click on a link, rather than pre-fetching as I do for web pages. This is basic courtesy to the owners of the servers, and also complies with their terms of use designed to prevent robots from harvesting addresses for spam.

Thanks John and Melanie!

Thanks_1

On John Batelle’s SearchBlog (the inspiration for SearchMash’s name), Melanie Colburn posted a roundup of recent SearchMob posts, including SearchMash with a “This is pretty cool” comment.

Since I enjoy his blog, I’d sent John an email out of the blue last week, telling him about SearchMash. He replied back almost immediately, directing me to his new SearchMob site, and suggesting I put a post up there.

John didn’t have the take the time to reply to my random email. I think it’s great that he did, and even nicer that Melanie linked from the front page. It may not seem like a big deal, but it really made my day.

Last modified, better preview, and ask

Clock_1
The status line now shows when a site was last modified, which can be useful to know if you’re searching for time-sensitive information. Not all sites return the header I use to find that out though.

I’d noticed there were some sites still showing up with missing pictures or bad formatting in the preview. I spent some time debugging some of the problem cases, and realized there were some bugs in the code I was using to insert the tag that resolves relative URLs. I put in fixes for those problems, which made a lot of CSS based sites appear much better.
It also allowed some scripts to run that hadn’t before, so I then had to fix the bugs in my script blocking that let those through. The end result is that preview works a lot more reliably.

I’ve also been experimenting with offering ask.com as an alternative to Google. I managed to get something working pretty quickly, but hit problems with their use of Javascript in the results pages. It works fine in Safari and Internet Explorer, but Firefox throws a lot of errors. I’ll be returning to debug that some more when I have a chance, for now I’ve left the code in, but I’m not providing any obvious links to it. If you want to experiment, use http://mashproxy.com/search?ask to invoke it.

Google launches their own SearchMash…

Searchmash
… and I was the first person to discover it! On Monday morning I did my usual Google search for ‘searchmash’ to see who was linking to me, and I was surprised to see http://www.searchmash.com come up as the first result. I looked at the site, discovered from whois and the privacy policy that Google were running it, though trying to be low-key about it.

I posted to Google Blogoscoped about my discovery, and it mushroomed from there. It’s fun being part of a news story, and I’m glad to see Google trying some really different looks to their interface.

I’ve also got a lot of traffic from the news, it’s been great to have so many people discover my SearchMash, I really couldn’t have paid for that sort of publicity. It’s interesting to compare their approach to mine too; they’re providing a new interface but with the same information, whereas I’ve stuck pretty closely to their original interface, but try to offer some extra information on top.

A new visual cue, and a bucket-load of bug fixes

Eye3

Now you can move through the results just using a button, I realized there should be an indication of which result the preview is showing. Luckily, Google already used tables for their formatting, so I was able to use an existing table showing the snippet which had no border, and set its border to one to give a nice selection box.

Before I put that change in, I also tracked down the IE/youtube preview hang. It turns out some of my script cleaning code was too aggressive, and chewed up the final ‘>’ at the end of the document, so it ended with ‘</html' rather than '’. This confused explorer enough to cause a hang. There’s now a fix in for that problem.

While I was testing the selection box, I ran into some other bugs, mostly minor object access errors that caused different browsers to choke, which I was able to fix by adding more check to make sure methods existed before I called them.

I did see some problems with pdf links. Since these aren’t text, and are very large, the script doesn’t cope too well with them, and isn’t able to display them at all anyway. My solution was to check the ‘Content-Type’ header, and only let through pages with ‘text/’ in there. This should stop binary files like flash getting through too.

Browsing speed boost

Eye2_5
I’ve added a “Show Next Result” button to the search page. This moves the preview forward to the next link in the results, and if you’re at the end of a results page, it fetches the next one. The beauty of this is that you can go through links very quickly without having to hunt through the results page.

I was also hoping to get the up and down keys to also cycle through results, but this looks like a cross-browser minefield. I had it working in Safari, but only after you manually set the focus by clicking in the window, I couldn’t get it working with Firefox, and I haven’t even looked at IE yet!

Another addition I want is some indication of which link is being previewed. I’m thinking about setting the table border of the snippet below the result to 1, so you get a selection box.

One disturbing thing I noticed while testing my latest changes on the PC is that youtube links in the results seem to hang IE when they’re previewed. This seems to be new, I’m worried there’s been some flash changes, and it might affect a lot of sites. Firefox and Safari still seem fine, but I’ll be trying to work out what’s happening tomorrow. It’s filed as Previewing YouTube sites hangs IE.

A relaxing intermission

Fallbig

Robert Seidel creates some of the most mesmerizing work, and he’s just put out another video online. Try to check out the really high-rez version if you’ve got the bandwidth, you’ll be rewarded, though there is a youtube version if you can’t face an 80 mb download.

There’s something about the movement and distortion in his animation, it’s twisted and disturbing, but very appealing. I love the mess and organic gunk that’s all over everything he does. My years programming 3D graphics have taught me to appreciate how much depth that dirt and imperfection can add to an image. I’m tired of hygenic abstraction.

If you like that video, check out Grau, my first introduction to him.