New Google Toolbox for Mac

Wednesday, January 30, 2008 at 1:49 PM

We on the Mac team love code. Nothing helps as much as some working sample code when you're trying to get something done -- well, maybe with the exception of some working code that you can use within your own projects. To that end, we're happy to release Google Toolbox for Mac as a new open source project. This joins the Google Data APIs Objective-C Library as code available under the Apache license so you can use it in your own projects.

This first release is a little eclectic. It starts with some simple utilities that we seem to need in just about every project, helpers for graphical things and for building unittests. In time, we'll add more utilities, more interesting and complex classes, and other interesting stuff.

So please join the discussions for comments, suggestions, and other things you'd like to see. And happy coding!

AccessibilityFS: An All-Access Pass to Your UI

Wednesday, January 23, 2008 at 3:14 PM

A week or so ago I was looking at doing some user interface testing. At the same time, I was playing with MacFUSE, wondering about things I could do with it. All of a sudden I had an epiphany: I had to write AccessibilityFS, an accessibility file system! Not just because it's gratuitously cool, but because it turns out such a thing has some very practical applications. You can use it for UI testing, UI scripting, and even as a command-line VNC of sorts. Of course, it's also a great demonstration of how to use MacFUSE, and it's completely open sourced.

The Accessibility APIs are how an assistive technology, such as a screen reader or head-tracking mouse, communicates with applications on Mac OS X. These APIs allow you to examine an application's UI and manipulate it in a variety of ways. AccessibilityFS creates a file system that uses the accessibility APIs to provide a directory representing your running applications. You can then explore the various UI elements--windows, menus, controls, and so on--as if they were folders and documents in your Finder. The attributes of the UI elements, such as value, position, title, etc., are stored as extended attributes on the files and folders. Shell commands such as xattr will let you see and, if possible, manipulate these attributes. (Please note that to get help on xattr, you must use xattr -h because Leopard is missing the man page.) You can even send actions to the elements by "writing" actions such as AXPress to the files. Please see the AccessibilityFS wiki page for more details, or check out this video of me demoing the AccessibilityFS at a recent Cocoaheads meeting.

You can download the AccessibilityFS here. Its source is in the MacFUSE svn repository. There's also a Google Group discussing AccessibilityFS and other MacFUSE topics. Have fun!

Macworld wraps up

Friday, January 18, 2008 at 9:51 AM

It's the last day -- the crowds are finally starting to thin, booths are being packed up, and we give away a Vespa (at 3:30, in the Google booth) -- and then everybody heads home to sleep for a long, long time. Macworld is great fun because of the show, the keynote buzz and other new product announcements, and especially for running into old friends and fellow Mac lifers. This has been my 24th Macworld Expo in San Francisco, and I could tell you a lot of stories about all those years. And hey, Macworld 2009 starts next January 5th! I wonder what Steve will announce...

Here are a couple of photos Mike Morton and I took while walking around near Macworld (roll over for captions):

Macworld: it's busy here!

Thursday, January 17, 2008 at 8:34 AM

Macworld Expo is really rolling now, and the exhibit floor is packed with people. Apple's booth is particularly busy, especially around the hands-on MacBook Air display. The Google booth has been completely jammed most of the time -- at one point yesterday, I was trapped in the booth for 10 minutes by all the people packed around the outside.

Here are some photos from Macworld, taken by Googlers Mark Dalrymple and Mike Morton (roll over for captions):

Macworld: it begins

Tuesday, January 15, 2008 at 12:54 PM

Thousands of people (a.k.a. "the Mac faithful") crowded Moscone Center this morning after waiting in looong lines to watch Steve Jobs start Macworld 2008 with his keynote. Was there something in the air? Oh yes. Among other things, Steve announced:

- MacBook Air, an incredibly thin laptop with a multi-touch trackpad and full-size keyboard and display
- movie rentals at the iTunes Store, which you can watch on the updated Apple TV "Take 2"
- new iPhone software including Google Maps My Location feature, customizable home screen, and more
- new applications for iPod Touch: Google Maps, Mail, Stocks, Weather, and Notes

And now everybody is rushing to Apple's booth on the show floor to see the new goodies (or to the online Apple Store to buy or download them). And speaking of booths, if you're at Macworld, don't forget to visit our booth and say hello.

One day to go

Monday, January 14, 2008 at 2:52 PM

Monday of Macworld week is a day of anticipation before the show gets rolling. Exhibitors finish setting up, attendees start arriving, and the buzz builds. Locals know to avoid the Macworld traffic jams around Moscone Center (take transit if you can). On the almost-ready show floor, Apple's booth is draped in black, as usual. And you can see Apple's enigmatic teaser banner: "There's something in the air." Well, Macworld is in the air; they're clearly referring to something else. But what? We're all guessing today, but we'll find out tomorrow!

A couple shots from the Google booth under construction:

Google at Macworld Expo

Thursday, January 10, 2008 at 11:15 AM

It's almost time! We're putting the finishing touches on our plans for next week's Macworld Expo in San Francisco. This year we'll have a Google booth on the show floor (location S-2138, just one aisle over from Apple's) with lots of cool stuff to see and nifty schwag to walk away with. Some of the reasons to visit:

- Meet people who work on Google Mac products like Desktop, Gadgets, Notifier, Picasa Uploader, Earth, and SketchUp, plus YouTube and mobile/iPhone products.

- If you're feeling photogenic, visit our confessional to tell your own Google story on video.

- Of course, we'll have plenty of demos, games, and contests -- including a chance to win a Google-customized Vespa that you have to see to believe.

- Be sure to drop by on Tuesday, Jan. 15th at 4:30 pm to meet some of our Google Mac engineering team. Most of us are very friendly and unlikely to bite. Please come by and say hello!

And wherever you are next week, check back here for blog posts direct from Macworld.

New Version of MacFUSE: Now with MacFUSE.framework

Monday, January 07, 2008 at 4:56 PM

A new version of MacFUSE is now available. As always, you can download a ready-to-install prebuilt package, or browse the ready-to-build source. Besides bug fixes and other minor improvements, there is a major new developer feature in this release: an Objective-C framework is now part of the core MacFUSE distribution! MacFUSE.framework will make developing user-space file systems in Objective-C easier than ever before. We look forward to seeing lots of interesting new applications based on MacFUSE.

Ted Bonkenburg, one of the engineers behind MacFUSE.framework, will give a talk this Thursday, January 10, during the next Silicon Valley Cocoaheads meeting at the Apple campus in Cupertino. His talk will focus on using the MacFUSE Objective-C API, but much of it will carry over to using other programming languages with MacFUSE. We'll also show some very cool file system demos. So, if you're interested in MacFUSE and are in the area, be there! It will be a hands-on talk, so please bring your laptops if you want to follow along. (Xcode 2.5 or newer required.)

GrabFS: The Screenshot File System

Wednesday, January 02, 2008 at 1:29 PM

A while ago, I wrote about procfs for Mac OS X, a MacFUSE-based file system. Subsequently, I added more cool features to my procfs implementation. Recently, I had reason to demonstrate procfs again and realized that I needed still more cool features. That need led to GrabFS.

In a nutshell, GrabFS is a file system that shows you a live view of the window contents of currently running applications. In a GrabFS volume, folders represent running applications and image files represent instant screenshots ("grabs") of the applications’ windows. You simply copy a file or just open it in place, and you have a screenshot. Open it again, and you have a new screenshot!

Go here to read more about GrabFS and to download it. GrabFS requires Mac OS X Leopard and MacFUSE.