Archive for the 'google' Category

Why Safari will double its market share

Tuesday, June 12th, 2007

Although most people don’t change default browser, people who use Safari at home will be tempted to use it at work on the Windows box they’re saddled with… Particularly because of the more familiar font rendering. As a result the number of Safari users will appear to double (different IP addresses, cookies, etc). This sudden increase will be hailed as remarkable, causing other people to try out the new kid on the block. As pointed out by John Gruber, Google will pay for the port by sharing ad-revenue from Safari’s search box. Apple can also expect to leverage the Itunes halo effect, especially if it bundles Safari with Itunes.

Now a wild guess: Just as Itunes is the interface for the Ipod, Safari will be part of the required interface for the iPhone, letting you share bookmarks with your phone among other things (Bonjour is installed by Safari for windows).

Google Gears looks promising

Thursday, May 31st, 2007

Google has just released a new API called Google Gears. It will allow web applications to work even if you’re disconnected from the internet for a period of time. And it will let them install their files onto your harddrive so that they can be run “locally”, by using a small “local server” that’s loaded into your application as an Internet Plugin (much likef Flash).

It’s New BSD licensed which means the source code is available and people will be able to make sure it doesn’t do anything dubious. Currently it’s Firefox only, but there’s source code for Safari, which when it’s released should theoretically also work with Find It! Keep It!.

It consists of three services: a database extension based on sqlite, a local server that saves and loads the application files from disk and provides an HTML interface to them, and full blown multithreaded Javascript interpreter. The javascript interpreter allows “worker threads” to run without blocking the browser. Basically they seem to run in a separate application that includes a Javascript interpreter taken from FireFox. The advantage is that the worker thread code can run on Linux, Windows and Mac OS X without needing browser specific tweaks. The UI will still run inside the browser.

Google Gears is providing a solution to a real problem without requiring a whole new programming paradigm as Adobe’s Apollo and Microsoft’s Silverlight do. It maintains the AJAX promise (runs everywhere) while providing a benefit should you choose to install it (faster and more resilient applications). Also, it’s open source which means other application providers can use it. I think in this case Google have a winning solution.

Update Dojo Offline now supports Google Gears.

Update2 It seems that the WebKit Google Gears only works with the WebKit nightlies (think Leopard) and will require an Input Manager… ho hum. (via Daring Fireball).

Mac Google Desktop… unfortunately rather intrusive.

Thursday, April 5th, 2007

The user experience

I like Google’s tools. I use GMail and google. My Find It! Keep It! tool provides shortcuts to Google’s web, book, froogle, news and scientific paper searches. So I downloaded Google’s desktop mac hoping for a faster Spotlight.

Like the folks at TidBits, I found it slowed down my computer significantly when indexing my drive. However one can turn it off using the System Preferences panel it installs. Like that I can let it index stuff at night.

Press Command twice and a search panel shows up, which will show the first 10 results. To see more, your browser will be opened to display the results as page that looks like google’s generic search page, so it’s running a small web server.

It runs as root, and does not respect your update statistics settings

Google Desktop installs itself as root: the index is at /Library/Google/Google Desktop/Index/(some directory which only root can access). This means it can access anything on your machine and do anything it likes. It doesn’t need to and on a first date, I don’t trust anything that much. Every user on the machine will have their content indexed, even if they don’t agree. You could say that Spotlight also runs as root, but people using an operating system written by Apple do have to trust Apple.

Even more bothersome: I told it not to upload statistics to Google. Their Privacy Policy says:

If you choose to enable Usage Statistics on Google Desktop, it allows Google Desktop to send crash reports and to collect a limited amount of non-personal information from your computer and send it to Google. This includes summary information, such as the number of searches you do and the time it takes for you to see your results, and application reports we’ll use to make the program better.

Well I didn’t, but Little Snitch tells me that a program called StatsUploader wants to talk to every 30 odd minutes so. I happen to trust Little Snitch as I used it to help me make sure that Find It! Keep It! wasn’t loading anything from the Internet (unlike most other “internet page saving solutions”, such as those that use WebArchives).

It silently installs an Input Manager

Find It! Keep It! crashed, and the crash started neither Apple’s CrashReporter nor my built in CrashReporter which is extremely odd. Given my past bad experience with Input Managers, I used Find It! Keep It!’s input manager panel to see whether I had acquired a new one. Indeed I had. It lurks in /Library/InputManagers/GoogleModLoader.

Now this bothers me. I did NOT agree to have an InputManager installed. InputManagers in /Library/InputManagers are loaded into EVERY application running on the computer for every user. So what the #!$! does it do? Simply running
cd /Library/InputManagers/GoogleModLoader/
strings GoogleModLoader.bundle/Contents/MacOS/GoogleModLoader
in the Terminal tells us that it loads modules.

Further investigation using OTX shows that indeed it crawls a Google/Mods directory and loads modifier bundles into the applications specified by the key GoogleModTargetApplications in some dictionary somewhere. It also appears to do a fair amount of stderr, debugging, pthread and system logging.

If you attach gdb to a running copy of Safari, you can see that SafariSearchResults.gmod and SafariWebHistory.gmod from /Library/Application Support/Google/Mods/ are now loaded by typing info sharedl. One thing they do is to add a new item to your google searches: “About 34 results stored on your computer”. I’m guessing that SafariWebHistory allows pages you just visited to be found with google desktop.

Nevertheless, Input Managers should not be installed silently. They can easily cause system instabilities and this particular mechanism could be diverted by third parties to install unauthorized gmods in a place no one knows about: a big security risk. Given the furore over Unsanity’s Smart Crash Reporter, I’m surprised Google installs this. It’s not like anybody worries about Unsanity’s secret plans of world domination.

It also installs a Kernel Extension

John Gruber over at Daring Fireball found where the injected code lives and noticed that they’re also installing a kernel extension!

Again kernel extensions aren’t something that should be installed silently as they could very easily impact the system’s stability.
For instance, it includes the nice message “socred_fini() failed, which is a known bug with Apple’s socket filters. Sorry but you have to reboot”.
cd /Library/Google/Google\ Desktop/GoogleDesktopDaemon.bundle/Contents/Resources
sudo strings GDFSNotifications.kext/Contents/MacOS/GDFSNotifications

I’m have no idea what its doing with the sockets, but a guess would be that they might need something like that to inform Google Desktop when a file changes to reindex it or for their snapshot capability.


I’m disappointed. I was going to look into Google’s open API to speed up searching the Find It! Keep It! Database for those users using Google Desktop. I think I’ll wait.

Hopefully future versions of Google Desktop will respect user preferences, clearly request the right to install any Input Managers and allow paranoid people like me to give it limited permissions (eg: a single user’s permissions). Alternatively they could release its source code, as they have done with MacFUSE so that we know what it’s doing. In the mean time, I’m uninstalling it.

Hopefully Leopard will draw attention to Input Managers which will prevent nasty surprises. That’s not to say they’re all bad. They just shouldn’t be installed without a user’s consent.

Changed on Thursday 5 April to add some more information, and clarify it

Mac Tip: Adobe PDF plugin and Google

Tuesday, August 22nd, 2006

Google now adds a fragment to URLs to PDFs it finds:
#search=%22 search-terms-seperated-by-spaces %22

For example:

The Adobe PDF plugin seems to use this fragment to find every occurrence of any of the search terms. I hadn’t seen that before.
Because the PDF plugin only works in Safari, this is currently only supported in Safari.