tag:blogger.com,1999:blog-290103702024-02-28T13:23:42.840-08:00Google Mac BlogMacs inside Google.Unknownnoreply@blogger.comBlogger140125tag:blogger.com,1999:blog-29010370.post-16878063531486619252012-06-22T12:00:00.000-07:002020-06-15T21:26:30.999-07:00Getting your Google Mac news<span style="font-style: italic; ">By <a href="https://plus.google.com/105627346610764729807/posts">Scott Knaster</a>, Editor</span><br />
<br />
More than five years ago, we created this blog to tell you about our software for Macs. Since then, Apple’s products have become more popular than ever, and we’ve kept up by offering strong support for OS X and iOS, including the speedy and popular <a href="https://www.google.com/intl/en/chrome/browser/">Google Chrome for OS X</a>, the amazing <a href="http://www.google.com/intl/en/earth/index.html">Google Earth</a>, and a <a href="http://www.google.com/mobile/iphone/">whole bunch of excellent iOS apps</a>.<br />
<br />
Our Mac and iOS support has now become so mainstream that we realized we just don’t need to keep Mac news on its own blog, so we won’t be posting here any longer. For updates, we encourage you to visit our blogs for individual products, like the <a href="http://chrome.blogspot.com/">Chrome Blog</a> and the <a href="http://google-latlong.blogspot.com/">Lat Long Blog</a>.<br />
<br />
Thanks for reading this blog over the past five and a half years!Unknownnoreply@blogger.comCupertino, CA, USA37.3229978 -122.032182337.272489300000004 -122.1111463 37.3735063 -121.9532183tag:blogger.com,1999:blog-29010370.post-66309104489435810982011-10-06T11:41:00.000-07:002020-06-15T21:26:33.853-07:00Steve Jobs, 1955 - 2011<br />
We at Google were shocked and saddened yesterday to hear about the death of Steve Jobs. Steve's work has inspired and delighted many of us for decades, and we will miss him. <br />
<br />
Please read <a href="https://plus.google.com/106189723444098348646/posts/4wkYwTCCgAc">Larry</a> and <a href="https://plus.google.com/109813896768294978296/posts/dwmWyNSoXTh">Sergey's</a> thoughts about Steve Jobs.<br />
<br />
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-76534518092217810462011-08-31T12:45:00.000-07:002020-06-15T21:26:34.414-07:00A new Objective-C library for a new generation of APIs<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><img height="80" src="http://3.bp.blogspot.com/-42jP5B2OE3I/Tl5t9NKeMHI/AAAAAAAAAwg/auCgyUnaQZA/s1600/face2.jpg" style="margin-left: auto; margin-right: auto; text-align: right;" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Greg</td></tr>
</tbody></table><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><img height="80" src="http://2.bp.blogspot.com/-qH_ekPcJXBg/Tl5uBKMRAkI/AAAAAAAAAwo/MtYRWbbF0fk/s1600/moma.png" style="margin-left: auto; margin-right: auto; text-align: right;" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Tom</td></tr>
</tbody></table><em>By Greg Robbins and Tom Van Lenten, Software Engineers</em><br />
<br />
<em>Cross-posted with the <a href="http://googlecode.blogspot.com/2011/08/new-objective-c-library-for-new.html">Google Code Blog</a></em><br />
<br />
Four years ago, we introduced an Objective-C library for Google Data APIs. At first, it supported a scant three services - Google Base, Calendar, and Spreadsheets. Perhaps more surprising is that it was written just for Mac applications; the iPhone SDK was still a year off. In the years since, the library has grown to support 16 APIs, and has been used in many hundreds of applications. In a fine example of unforeseen consequences, most of those applications run not on the Mac but on iOS.<br />
<br />
The Google Data APIs were built on XML and the Atom Publishing Protocol, a reasonable industry standard for the time. But mobile, low-power, and bandwidth-limited computers are now the biggest audience for client software. Across the Internet, XML and AtomPub have given way to the lighter-weight JSON data interchange format. <br />
<br />
Other fundamental changes have also shifted the API landscape. Password-based authentication is being supplanted by the more secure and flexible <a href="http://googlecode.blogspot.com/2011/03/making-auth-easier-oauth-20-for-google.html">OAuth 2</a> standard. The number of APIs has grown dramatically, making it impractical to hand-craft data classes for all APIs and all languages. When services offer API improvements, developers want access to those changes as quickly as possible.<br />
<br />
To support this evolving world, we are introducing a brand new library for Cocoa developers, the <a href="http://code.google.com/p/google-api-objectivec-client/">Google APIs Client Library for Objective-C</a>. The library supports recent Google JSON APIs, including Tasks, Latitude, Books, URL Shortener, and many others. It is designed to make efficient use of the device’s processor and memory, so it’s a great fit for iOS applications.<br />
<br />
The new library includes high-level Objective-C interfaces and data classes for each service, generated from the <a href="http://code.google.com/apis/discovery/">Google APIs Discovery Service</a>. This lets the library model data not just as generic JSON dictionaries, but also with first-class Objective-C 2.0 objects. The classes include properties for each field, letting developers take advantage of Xcode’s code completion and syntax and type checking.<br />
<br />
Here’s how easy it is to use the library and the new Google Books API to search for and print the titles of free ebooks by Samuel Clemens:<br />
<pre>#import "GTLBooks.h"
GTLServiceBooks *service = [[GTLServiceBooks alloc] init];
GTLQueryBooks *query =
[GTLQueryBooks queryForVolumesListWithQ:@"Mark Twain"];
query.filter = kGTLBooksFilterFreeEbooks;
[service executeQuery:query
completionHandler:^(GTLServiceTicket *ticket,
id object, NSError *error) {
// callback
if (error == nil) {
GTLBooksVolumes *results = object;
for (GTLBooksVolume *volume in results) {
NSLog(@"%@", volume.volumeInfo.title);
}
}
}];
</pre>The library supports Google’s <a href="http://googlecode.blogspot.com/2011/07/lightning-fast-performance-tips-for.html">partial response and partial update protocols</a>, so even items of data-rich APIs can be retrieved and updated with minimal network overhead. It also offers a simple, efficient batch model, so many queries can be combined into one http request and response, speeding up applications.<br />
<br />
When we introduced the previous Objective-C library, it was with this assertion: When you trust your personal data to Google, it's still your data. You're free to edit it, to share it with others, or to download it and take it somewhere else entirely. We hope the new library and Google’s growing collection of APIs help iOS and Mac developers to keep that principle meaningful for many years to come. You can start using the Google APIs Client Library for Objective-C by checking it out from <a href="http://code.google.com/p/google-api-objectivec-client/">our open-source project site</a> and by subscribing to the <a href="http://groups.google.com/group/google-api-objectivec-client">discussion group</a>.<br />
<br />
<em>Greg Robbins writes code to connect Mac and iOS apps to Internet services. He chases dogs in the morning, and bugs in the afternoon.<br />
<br />
Tom Van Lenten is a Software Engineer on the Google Chrome team. He is also <a href="http://www.youtube.com/watch?v=PJQVlVHsFF8">hooked</a> on the <a href="http://code.google.com/p/google-toolbox-for-mac/">Google Toolbox for Mac</a> open source projects.</em><br />
<br />
<em>Posted by <a href="https://profiles.google.com/u/0/105627346610764729807/about">Scott Knaster</a>, Editor</em><br />
<blockquote></blockquote><br />
Unknownnoreply@blogger.comMountain View, CA, USA37.3860517 -122.083851137.335585200000004 -122.1628151 37.4365182 -122.0048871tag:blogger.com,1999:blog-29010370.post-5396060257653105782011-06-14T09:55:00.000-07:002020-06-15T21:26:33.106-07:00⌘ + Q: I didn’t mean to do that<i>by Robert Sesek, Software Engineer</i><br />
<br />
In Chrome, have you ever accidentally hit <b>⌘ + Q</b> when you meant to hit <b>⌘ + W</b>? It’s both frustrating and a productivity killer to close your entire browser by accident, because you then have to restart and wait for all the pages to reload. It happens to us too. But now we’ve added a new feature in Chrome for Mac that can help keep you from losing your work.<br />
<br />
On the Mac, Chrome can now warn you before quitting so that you don’t accidentally quit the browser when you’re just trying to close a single tab. To enable this feature, go to the <b>Chrome</b> menu in the upper-left and select <b>Warn Before Quitting</b>. The next time you press <b>⌘ + Q</b>, a floating window will appear, instructing you to <b>Hold ⌘Q to Quit</b>. This way, if your hand slips and you press <b>Q</b> instead of <b>W</b>, you can go right on browsing without interruption. If you really do want to quit, hold down <b>⌘Q</b> as it says and, after a second, all the windows will fade away and you can release the keys. If you want to skip this warning and quit quickly, you can just press <b>⌘ + Q </b>twice.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-gy1afi49bmM/TfaWLwIDZlI/AAAAAAAAAmk/6po2urmuFjE/s1600/confirmquit.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="182" width="400" src="http://3.bp.blogspot.com/-gy1afi49bmM/TfaWLwIDZlI/AAAAAAAAAmk/6po2urmuFjE/s400/confirmquit.png" /></a></div><br />
As a side note, if you ever accidentally close a tab or window, you can use Chrome’s tab restore feature to get it back. Simply press <a href="http://chrome.blogspot.com/2010/02/tip-recovering-closed-tabs.html">⌘ + shift + T</a>, which will reopen the most recently closed tab or window. Just like the Undo command in your word processor, you can use this shortcut multiple times to repeatedly reopen closed tabs. You can also find tabs you’ve recently closed on the bottom of the <a href="http://chrome.blogspot.com/2010/02/tip-recovering-closed-tabs.html">New Tab</a> page, or in the History menu.<br />
<br />
We hope this feature helps prevent you from losing your place accidentally. Happy browsing!Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-89399655982121990532011-06-10T08:57:00.000-07:002020-06-15T21:26:35.484-07:00WWDC 2011 Journal, Day 4<i>by Mike Morton, Google Mac Team</i><br />
<br />
<i>Google Engineer Mike Morton is finished with Apple's 2011 Worldwide Developer Conference. Here's his final journal entry, written before he hopped a plane for home earlier today, where he's probably catching up on sleep and email, in that order.</i><br />
<br />
My last day in town began with a short – OK, very short – visit to the hotel gym, then the usual breakfast at Moscone of pastries (have these folks not heard that carbs are out of fashion?) and coffee. The guy across the table was wearing a t-shirt that read "I was a Mac user when Apple was doomed". It’s nice to be not doomed again.<br />
<br />
Early in the day, I went to a talk on accessibility on iOS. This included a great demo of iOS features to help people who are blind, visually impaired, deaf, or motor-impaired. There were also details of how to make sure our apps are useful for everyone. We also saw a short video of the Wearabraille system, which is the most high-tech accessory I’ve seen for an iPhone.<br />
<br />
<iframe width="480" height="390" src="http://www.youtube.com/embed/G_QWtUFFAFQ" frameborder="0" allowfullscreen></iframe><br />
<br />
Most talks include a demonstration app, sometimes with an Apple engineer creating the app one piece at a time. Since they paste in prepared snippets of code, that kind of demo moves fast, occasionally leaving me with the feeling of watching a cooking show on fast forward. Building an app on the fly, even with prepared ingredients, can be tough on the Apple folks, too. Even though it’s scripted, the parts done manually are an invitation for the Demo Gods to fling a few thunderbolts. Audiences are very patient, as most of us have been hit with thunderbolts ourselves, but it’s still tough on the person giving the talk.<br />
<br />
One of today's highlights was a performance by James Dempsey and the Breakpoints. James is the funniest guy at Apple, and does a song every year. I got there early and scored a front-row seat. Worth the effort, not only to see James perform "The Accessibility Song" on iPad instead of his usual guitar, but also for the number of words rhymed with "accessibility". I don’t think the performance has hit YouTube yet, but you can find <a href="http://www.youtube.com/playlist?p=PL26049D7E89986736">several other performances online</a>.<br />
<br />
The other music news of the morning was speculation about which musical act would show up at the traditional Thursday night WWDC bash. Rumors flew about The Edge, Michael Franti and Spearhead, Arcade Fire, and others. Some thought it would be someone whose music was played before the sessions. That would suggest the equally unlikely possibilities of a James Brown gig or a Beatles reunion.<br />
<br />
Those wanting to drink at the party had to show IDs to get wristbands. Perhaps they were expecting some serious drinking: the wristbands said "If found, return me to WWDC". The Franti faction was right, and the band rocked <a href="http://www.yerbabuenagardens.com/">Yerba Buena Gardens</a>, driving some of us old folks to the far edge of the garden, where the volume was more tolerable.<br />
<br />
Tomorrow’s special event is Buzz Aldrin speaking, but I’ll be airborne while he talks about orbit. I hope he repeats next year! Tickets for next year are already on my mind — WWDC 2010 sold out in eight days, and 2011 in eleven hours. Pressure for tickets will be intense in the future. I wonder if we’ll see scalping, or perhaps ’bots which will buy your ticket for you.<br />
<br />
WWDC 2012 will bring new things, but it will also be the same thing all over again: long lines, repeated sleep deprivation, seeing friends. I wonder how we can keep this blog from being the same thing all over again. What should my intrepid editor and I do? Interviews with attendees? Writing in lolcat for teh intire confuhrens? Capturing each day in a single haiku? Using nothing but memes built at <a href="http://memegenerator.net">http://memegenerator.net</a>? We'll have to work on that. See you next year!<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-6Qa9vYZNd7M/TfI9I-UhX1I/AAAAAAAAAmE/kmtXVTCmmYc/s1600/i%2Bcan%2Bhaz%2Bifoan%2B5%253F%2Bifoan%2B6%253F%2Bi%2Bnot%2Bpicky.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="388" width="400" src="http://1.bp.blogspot.com/-6Qa9vYZNd7M/TfI9I-UhX1I/AAAAAAAAAmE/kmtXVTCmmYc/s400/i%2Bcan%2Bhaz%2Bifoan%2B5%253F%2Bifoan%2B6%253F%2Bi%2Bnot%2Bpicky.png" /></a></div>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-12357834200097113102011-06-09T22:22:00.000-07:002020-06-15T21:26:30.766-07:00WWDC 2011 Journal, Day 3<i>by Mike Morton, Google Mac Team</i><br />
<br />
<i>Every June, Mike Morton travels to San Francisco for Apple's Worldwide Developer Conference so you don't have to. WWDC content is covered by a non-disclosure agreement, so Mike's observations focus on ambiance, human behavior, and the effects of sleep deprivation.</i> <br />
<br />
I thought I was smart when I asked for a room across the hall from one of my team members, so we could easily get together for breakfast. It didn’t feel so smart when he knocked on my door early this morning. When I stuck my head out the door, he apparently noticed that my hair was going in enough directions to inspire Stephen Hawking to new theories about the nature of space, and helpfully observed "Oh, I woke you up." I didn’t have the presence of mind to reply, "No, no, I had to get up to answer the door anyway."<br />
<br />
A few of us headed to Moscone and found a line of people waiting to get in. I knew I shouldn’t have answered the door. But it wasn’t much of a wait, and we soon had caffeine and pastries and were heading for the first session of the morning. I hit four talks today, skipping a couple of slots in a struggle to keep up with work email. (I got down to under 100 messages, but it’s back up since then).<br />
<br />
Queues continued inside Moscone, with thousands of people waiting for the most popular topics. At one point, I left a small room and walked halfway around the building to a large one, only to find and follow a line of engineers reaching right back to where I started. The veneer of civilization wore a little thin as some attendees snuck in exit doors to avoid the wait and get good seats, but Apple staff mostly stopped that. I watched one Apple staffer trying and mostly succeeding to keep us in line, and asked him whether it was more like herding cats or herding sheep. He didn’t hesitate in answering — “Sheep”.<br />
<br />
During lunch, Michael Johnson from Pixar spoke to a huge audience about Pixar’s technology and people. I caught him last year, but he always works in new material. There may or may not have been sneak previews of future films, but the non-disclosure agreement probably means I shouldn’t go into detail. As always, his talk was a lot of fun, a nice break from the serious stuff. That serious stuff does weigh on some people after a while. In the last session, I heard snoring a few rows back.<br />
<br />
I keep seeing old colleagues and friends I but don’t have enough time to talk. I also wind up confessing that I flat out can’t remember a few names, but nobody seems to mind.<br />
<br />
I’ve written in past years about the value of labs, where you can talk one-on-one with Apple engineers for help with learning new areas or solving problems. Unlike past years, I didn’t come with many questions, but some people sure did. There were huge waits in some labs. Unfortunately for the Apple folks, they wear distinctive t-shirts, so I bet they get cornered in the halls by people who didn’t get to them in the labs.<br />
<br />
Tomorrow is my last day at this conference. I’m heading home early Friday morning. We’ll see if I can balance talks, email, and socializing – and oh, yeah, that gym in the hotel.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-85326926584589737782011-06-08T10:22:00.000-07:002020-06-15T21:26:35.251-07:00WWDC 2011 Journal, Day 2<i>By Mike Morton, Google Mac Team</i><br />
<br />
<i>Google Engineer Mike Morton continues his nerd's-eye-view report from the Apple Worldwide Developer Conference in San Francisco. Today Mike starts with a festive breakfast and finishes at this year's edition of the legendary Stump the Experts.</i><br />
<br />
My team had a 7:00 a.m. meeting at a nearby restaurant so I woke early, dashed through the shower, glanced guiltily at the hotel gym, and headed out, only to find the restaurant is closed on Tuesdays. I continued on to a 7:30 breakfast for folks who coordinate chapters of <a href="http://cocoaheads.org/">CocoaHeads</a>. I had a great time talking with people from around the world, everything from small talk about the conference to challenges in getting people to present technical talks. Mark Dalrymple, who helped found the organization, showed up and was mobbed by friends and well-wishers, about five steps from the food table. I helped disengage him and steered him to the food.<br />
<br />
There were door prizes, with iTunes gift cards going to the oldest chapter (besides Mark’s), the person who traveled the farthest, and the one who had the earliest Mac model. There was a tense moment on that last one when another guy and I both said we had original 128KB Macintoshes. I challenged "September, 1984. Full price!" He admitted he got his for two bucks at a yard sale — score!<br />
<br />
Mark talked a little about founding Cocoaheads with the mysterious Agent M. (I’ve never known Agent M’s name, and have gotten kind of resigned to that little mystery. I was kind of alarmed to see that nobody else there seemed to know it either.) Mark graciously said that Agent M had the vision to plan a global organization, joking that left to himself he would have named it "the Western Pennsylvania Macintosh Programmer’s Cooperative". We posed for a group photo. Someone yelled "Java!" at the right moment and got a good group laugh.<br />
<br />
I headed to Moscone and played hooky only once in six sessions. Apple works hard to make their engineers give polished talks with polished slides, and it shows. Most presentations were good — and crowded. Lines to get into the most popular sessions snaked randomly around the waiting areas.<br />
<br />
A few sessions had hiccups: A missing slide, a demo application not working. Presenters rolled with the punches. One cheerfully moved on with "imagine you saw a demo, and it was great!". (He got a round of applause.)<br />
<br />
I went to lunch in the Moscone cafeteria for the first time this week and found that every table had power strips and fast, wired network connections. Nerdvana! As so often happens when traveling, network connections are iffy. My hotel’s wi-fi and wired connections are both flaky, and Moscone’s wireless net is variable, depending on how crowded the room is. My iPhone’s <a href="http://en.wikipedia.org/wiki/Tethering">tethering</a> makes a nice Plan B at any location.<br />
<br />
After dinner out, I poked my head in for the <a href="http://en.wikipedia.org/wiki/Apple_Design_Awards">Apple Design Awards</a>. It was crowded, so I left and took a break at the hotel to try to catch up on email and other things. I returned about 9:00 p.m. in time for <a href="http://en.wikipedia.org/wiki/Stump_the_Experts">Stump The Experts</a>, my first time seeing this famous event. It’s a manic, disorganized, geekier-than-thou fest, with serious technical trivia about products (way back to the Apple I, even) and programming, but also some wild hats, a lot of improv, rebus puzzles, trying to guess a "<a href="http://en.wikipedia.org/wiki/Will_It_Blend%3F">will it blend</a>" mystery object from its blended remains, a Mountain Dew tasting, and a "crazy Swiss guy". If I had attended any of the 19 previous years, maybe I would have understood what that last was all about.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-sMJkHcBniBE/Te-tpBWzf4I/AAAAAAAAAk8/Cf9qbAYcvig/s1600/IMG_2058.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="http://1.bp.blogspot.com/-sMJkHcBniBE/Te-tpBWzf4I/AAAAAAAAAk8/Cf9qbAYcvig/s400/IMG_2058.jpeg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span class="Apple-style-span" style="font-size: small;">Stump The Experts in a typically organized pose</span></td></tr>
</tbody></table><br />
The event is a competition between the audience and the on-stage experts. The format is… well, I couldn’t figure out if there was one. Competition is high-spirited, with lots of argument about who’s right. Example: "I quote the Wikipedia page, which we didn't even have to lie and edit". <br />
<br />
Some questions are asked on the spot by the audience. The biggest laugh of the night came when an audience member asked what sounded like a rhetorical question: how did a particular much-hated app gain App Store approval? One expert turned out to be the bowling partner of the guy who wrote the app, and texted him to ask. The answer was "beer", which may or may not be a rhetorical answer.<br />
<br />
We wrapped up at 10:30, with a few brave folks <a href="http://www.youtube.com/watch?v=eURsRqvi-4w">disco dancing to "Night Fever"</a> as the rest of us headed out to get some rest (or beer).Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-80665027238426038992011-06-07T12:28:00.000-07:002020-06-15T21:26:34.879-07:00WWDC 2011 Journal, Day 1by Mike Morton, Google Mac Team<br /><br /><i>Google engineer Mike Morton is back with his annual report from Apple's Worldwide Developer Conference in San Francisco. Today Mike blogs about lines, coffee, a parking garage, and even more lines (or is it the same line?).</i><br /><br />My alarm went off at 4:30 a.m. and I stumbled out of the hotel before realizing I hadn’t checked Google Maps for the short walk to Moscone. I figured I could follow the stream of geeks in WWDC sweatshirts instead, but I didn’t see a lot of people. Some salmonic instinct from past conferences kicked in and I found the conference anyway. (It’s not hard — when you get near it, the line of attendees outside is obvious.)<br /><br />I walked a couple of blocks to near the end of the line and found my colleague Pat (cutting in line to join friends is always accepted). He told me someone had been by counting and he was about number 700 in line. By this time, it was nearly 5:30 and a lot lighter. Many WWDC’ers were huddled against the wall of Moscone, trying to avoid the chill and looking unnervingly like homeless folks I’d seen a couple of blocks before on Market Street. Someone was playing saxophone on the sidewalk across the street. Most attendees looked pretty tired. A lot had brought folding chairs.<br /><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-tdv6JHentM4/Te56kH8PMfI/AAAAAAAAAkQ/8osrzzcyZjw/s1600/IMG_1959.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="http://4.bp.blogspot.com/-tdv6JHentM4/Te56kH8PMfI/AAAAAAAAAkQ/8osrzzcyZjw/s400/IMG_1959.jpeg" width="300" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">The line stretched around the block</td></tr></tbody></table><br />Other Google colleagues and some friends-of-colleagues joined us. Paul, another engineer on the iOS Books team, brought coffee. (I owe him big time.) Lots of catching up, introductions, schmoozing, talk of past WWDCs, and speculation about this one. One great speculation game was the Expo Bingo app, which gives you a couple of dozen phrases to watch for. My board looked like this before I started…and I didn’t do very well.<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/--TywIHLmHe0/Te560uTRaHI/AAAAAAAAAkY/ieehM2FjATg/s1600/bingo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="http://4.bp.blogspot.com/--TywIHLmHe0/Te560uTRaHI/AAAAAAAAAkY/ieehM2FjATg/s400/bingo.png" width="314" /></a></div><br />Apple staff encouraged us to close gaps and stand four abreast, later six abreast, to try to reduce the length of the line. Engineers aren’t especially good at following simple orders, but the Apple folks tried anyway. Lots of people came by promoting various companies -- giving away freebies or coupons, hiring, and so on. We spent hours on the north side of Moscone West, looking at a big parking garage. I’m surprised nobody has paid to hang ads on it.<br /><br />When registration reopened at 7 a.m., I took a break to go inside for that. Everyone got a nice "WWDC 11" sweatshirt. I’m giving mine to my friend Andy, who’s crazy enough that he flew all the way from New York to San Francisco despite having no ticket for the conference. (Andy was not crazy enough to wake up and join us for hours in line, though.)<br /><br />Staff let us in a little before 8:00 a.m. A staffer counted as I went by, and I was number 935. Inside it was warmer, with coffee, juice, and pastries. We crowded into long, broad lines in the hallways…and waited some more. Some folks sat; a few lay down. At one point the line surged then stopped as suddenly — a security guy explained that someone had picked up a backpack and others had followed suit and…well, these things happen. We debated whether we should be more properly compared to sheep or to lemmings. Security folks weren’t entirely reliable: another told us that we were too far back to fit in the main room, and would be in an overflow room, which would have sharply reduced the <a href="http://en.wikipedia.org/wiki/Reality_distortion_field">RDF</a>. He turned out to be wrong.<br /><br />By 9:45 we got to sit down in the main room. One friend, who’ll remain nameless, exclaimed loudly “This is the best thing that’s happened to me today”. We’d been standing for 4 to 5 hours. I suppose I shouldn’t complain — rumor had it that the guy at the front of the line had been waiting since noon yesterday.<br /><br />About 10:00 a.m., James Brown’s “I Feel Good” blasted, and soon after that Steve Jobs walked on. He looked gaunt, but smiled broadly at the standing ovation he got. An audience member yelled “We love you!”. I’ll let you read more detailed accounts of the announcements in the many blogs and media sites covering it, and just say that I was impressed at the breadth of new features, and was glad he pulled a “one more thing” line to introduce iTunes Match. In the end, there were no hardware announcements, but nobody grumbled except for one colleague who lost a bet over that.<br /><br />The afternoon was just a couple of sessions, one at a time. Tomorrow there’ll be many sessions running concurrently, and I’ll have to think about which ones to pick.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-88289834588571274802011-05-26T15:49:00.000-07:002020-06-15T21:26:35.438-07:00iOS and Mac Sign-In Controllers graduate to OAuth 2.0<em>by Greg Robbins, Software Engineer</em><br />
<br />
In September, <a href="http://googlemac.blogspot.com/2010/09/oauth-sign-in-controllers-for-ios-and.html">we introduced</a> OAuth 1 sign-in controllers to simplify authenticating users from iOS and Mac applications. As the Internet software industry is converging on a newer standard, Google now offers the <a href="http://code.google.com/p/gtm-oauth2/">Google Toolbox for Mac OAuth 2.0 Controllers</a>. This new library enables Cocoa applications to sign in to Google and other services that conform to the latest draft of the OAuth 2.0 standard.<br />
<br />
From the perspective of both users and developers, the new controllers are similar to the old ones, and are just as easy to use. As before, the controllers handle displaying an embedded web view and interacting with the server, and optionally allow saving the authorization token in the keychain. The server takes care of obtaining the user’s password, describing the permissions requested by the application, and asking for captcha responses or <a href="http://www.google.com/support/accounts/bin/static.py?page=guide.cs&guide=1056283&topic=1056284">2-step verification</a> or whatever tomorrow’s security requires.<br />
<br />
Here is how developers can present the sign-in view for a Google service using the OAuth 2.0 controller:<br />
<pre>NSString *scope = @"http://www.google.com/m8/feeds/";
// scope for accessing a user’s Google Contacts
GTMOAuth2ViewControllerTouch *viewController =
[[[GTMOAuth2ViewControllerTouch alloc] initWithScope:scope
clientID:@"9876.apps.googleusercontent.com"
clientSecret:@"PVYx34Fr"
keychainItemName:@"My App: Google Contacts"
delegate:self
finishedSelector:@selector(viewController:finishedWithAuth:error:)]
autorelease];
</pre>When the user finishes signing in, the controller invokes the application’s callback method:<br />
<pre>- (void)viewController:(GTMOAuth2ViewControllerTouch *)viewController
finishedWithAuth:(GTMOAuth2Authentication *)auth
error:(NSError *)error {
if (error == nil) {
// Authentication succeeded; retain the auth object
}
}</pre><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-qlSdXca-j14/Td7MfQjsfNI/AAAAAAAAAg0/aYpV7uaEhrY/s1600/oauth.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img height="369" width="400" style="border: none" src="http://2.bp.blogspot.com/-qlSdXca-j14/Td7MfQjsfNI/AAAAAAAAAg0/aYpV7uaEhrY/s400/oauth.png" /></a></div><br />
There are a few important changes for developers in the new standard. The most prominent is that developers must obtain client ID and client secret strings for an installed application from Google’s <a href="https://code.google.com/apis/console">API Console</a>. Other API providers supporting OAuth will also have web pages for issuing client ID and client secret strings. The provider may require that the application register an OAuth callback URI string, depending on the details of how they support native applications.<br />
<br />
Another difference from the older OAuth protocol is that the step of authorizing a request must be asynchronous. Because OAuth 2.0 access tokens may expire, they must occasionally be refreshed when used to authorize a request. Our OAuth 2.0 authentication class hides the refresh step transparently by fetching refreshed tokens if needed when authorizing the application’s request, invoking a callback method or block once the request is finally authorized, like this:<br />
<pre>[auth authorizeRequest:myNSURLMutableRequest
completionHandler:^(NSError *error) {
if (error == nil) {
// the request has been authorized
}
}];</pre>Applications using our API library service classes or the GTM HTTP Fetcher class can make authorized requests even more simply by setting the service or fetcher authorizer property:<br />
<pre>[fetcher setAuthorizer:auth];
</pre>The <a href="http://code.google.com/p/gdata-objectivec-client/">Google Data APIs Library for Objective-C</a> now integrates the OAuth 2.0 controllers, making it the preferred way for developers to let users sign in to the library’s many supported APIs.<br />
<br />
You can learn more about the OAuth 2.0 protocol by checking out Google’s <a href="http://code.google.com/apis/accounts/docs/OAuth2.html">documentation</a>, and about the GTM OAuth 2.0 controllers by reading the <a href="http://code.google.com/p/gtm-oauth2/wiki/Introduction">introduction</a> at the project site. Suggestions and questions on the controllers are welcome in the GTM OAuth 2.0 <a href="https://groups.google.com/group/gtm-oauth2">discussion group</a>.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-20001260873967412772011-01-29T16:28:00.000-08:002020-06-15T21:26:31.232-07:00Simian: Mac OS X package deployment via App Engine<p>Administration of software packages on the Mac platform can often be daunting. Google’s Mac Operations and Security teams evaluated several solutions for OS X package deployment, but unfortunately none of them met all of our required features. We decided to build our own solution to do the following:<br /><ul><li>Deploy new or updated software by targeting a single Mac or tens of thousands.</li><li>Push security patches, whether the Mac is on an internal network/VPN or not.</li><li>Force mandatory installation of some packages, while allowing others to be optional.</li><li>Tightly manage Apple-provided updates.</li><li>Scale without deploying and maintaining additional server infrastructure.</li><li>Obtain reports on all of this and the fleet overall.</li></ul>Today we are open-sourcing Simian, our solution to enterprise-class Mac OS X package deployment. Simian uses <a target="blank" href="http://code.google.com/appengine/">App Engine</a>-based hosting to scale with the needs of your growing enterprise, and a Munki-based client which will continue to evolve through the outstanding work of Greg Neagle and the Munki community. We hope this to be the first of many announcements in sharing Google's unique IT approach with the larger community.<br /><br />For more information, please visit our <a target="blank" href="http://code.google.com/p/simian">Simian project page</a>, join the <a target="blank" href="http://groups.google.com/group/simian-discuss">discussion list</a>, and download <a target="blank" href="https://code.google.com/p/simian/source/browse/">the code</a>. For more information about Munki, please visit its <a target="blank" href="http://code.google.com/p/munki/">project page</a>.<br /><br /><span style="font-style: italic;">By John Randolph and Justin McWilliams, Google Corporate Platforms Engineering Team</span><br/><br /><i>(Cross-posted from the <a href="http://google-opensource.blogspot.com/2011/01/simian-mac-os-x-package-deployment-via.html">Google Open Source blog</a></i>.)Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-43250292835655203532010-12-06T07:28:00.000-08:002020-06-15T21:26:32.213-07:00Improvements up and down for Picasa Web Albums Uploader<span style="font-style: italic; ">By Greg Robbins, Software Engineer</span><br /><br /><div>Our new release of Picasa Web Albums Uploader for Mac OS X adds some valuable improvements suggested by users. If you share photos and videos on Picasa Web Albums with friends and family, you’ll find this update works even more smoothly with iPhoto and other photo management applications on your Mac.</div><div><br /></div><div>The uploader application and iPhoto export plug-in now try to identify when files are duplicates of photos or videos already in the destination album, and will offer to skip uploading the copies. This is especially helpful when exporting directly from iPhoto, since now you can upload a growing iPhoto album or event repeatedly without having to carefully exclude the files you previously shared.</div><div><br /></div><div>When photos are resized or are converted to JPEG, the new uploader also offers better image quality, and more consistent preservation of photo metadata like photo orientation and camera details.</div><div><br /></div><div>This release is also a better foot soldier on the <a href="http://dataliberation.org/">Data Liberation Front</a>. When you use the Picasa Web Albums Uploader application to quickly download one or all of your albums, it will retrieve not just photos but now also a video file for each of your movies when MPEG-4 versions are available from the server. This makes Picasa Web Albums an even better choice for <a href="http://googlephotos.blogspot.com/2010/11/hd-quality-videos-in-picasa-web-albums.html">sharing your high-definition videos</a>.</div><div><br /></div><div>The latest release of the uploader, version 1.4, is available from the <a href="http://picasa.google.com/mac_tools.html">download page</a>. If you have an older version of the uploader on your Mac, it may have already updated itself. To share your questions or suggestions, join the conversation in the Mac Uploader area of the <a href="http://www.google.com/support/forum/p/Picasa">Picasa Help forum</a>.</div>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-81502478467001847722010-09-30T10:26:00.001-07:002020-06-15T21:26:34.971-07:00Use Chrome like a proTwo months ago, Chrome team members shared a list of their favorite extensions on the <a href="http://googleblog.blogspot.com/2010/07/use-chrome-like-pro.html">Official Google blog</a>. This time around, we asked Mac aficionados on the Chrome team to share with us the extensions they like the most. Below is a list of their favorite extensions.<br /><br /><ul><li><a href="https://chrome.google.com/extensions/detail/kcnhkahnjcbndmmehfkdnkjomaanaooo?hl=en">Google Voice</a> - Make calls, send SMS, preview inbox and get notified of new messages right in your browser (US only).</li><br /><li><a href="https://chrome.google.com/extensions/detail/pgphcomnlaojlmmcjmiddhdapjpbgeoc?hl=en">Send from Gmail</a> - Makes Gmail your default email application and provides a button to compose a Gmail message to quickly share a link via email.</li><br /><li><a href="https://chrome.google.com/extensions/detail/ppelffpjgkifjfgnbaaldcehkpajlmbc?hl=en">iReader</a> - View news stories and other articles in a very easy to read, clutter-free, scrollable display.</li><br /><li><a href="https://chrome.google.com/extensions/detail/mgijmajocgfcbeboacabfgobmjgjcoja?hl=en">Google Dictionary</a> - View definitions easily as you browse the web, similar to using ⌘-Option-D in other Mac applications.</li><br /><li><a href="https://chrome.google.com/extensions/detail/lnejbeiilmbliffhdepeobjemekgdnok?hl=en">delicious bookmarks</a> - Integrate your bookmarks with Google Chrome with the official Chrome extension for Delicious, the world's leading social bookmarking service.</li><br /><li><a href="https://chrome.google.com/extensions/detail/fldildgghjoohccppflaohodcnmlacpb?hl=en">Instachrome</a> - Collect articles from around the Internet to read them on the web with Instapaper.</li><br /></ul><br />These are just a few extensions to help enhance your web browsing experience and address the most requested features. If you don’t have Google Chrome yet, you can download it <a href="http://www.google.com/chrome?platform=mac">here</a>. There are more than 7,000 extensions to choose from in our <a href="https://chrome.google.com/extensions">Google Chrome Extensions gallery</a>, so you’ll be sure to find the right extensions for you.<br /><br />Posted by Mike Pinkerton, Staff Software EngineerUnknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-65337348873365734302010-09-15T14:56:00.000-07:002020-06-15T21:26:33.759-07:00An HTTP Fetcher Class for Mac OS X and iOS Apps<span style="font-style: italic; ">By Greg Robbins, Software Engineer</span><br /><br />(Editor's note: Today's blog post is another cool one for programmers in the audience. Non-developer readers, thanks for bearing with us.)<br /><br />Mac OS X and iOS provide developers with a high-level class, NSURLConnection, that makes interacting with servers pretty easy. NSURLConnection follows the system networking preferences, navigates through proxies, and handles other details just as users expect on their devices. But in applications that require a series of server requests and responses, NSURLConnection can be inconvenient to use. All connections made by an application’s class call back into a single set of delegate methods, and when there are numerous connections to be made, sorting out the responses is a bit of a chore.<br /><br />So ever since Google’s first Mac application, <a href="http://googleblog.blogspot.com/2005/09/gmail-notifier-for-mac-os-x.html">Gmail Notifier</a>, we’ve used a wrapper around NSURLConnection to make it easier to issue http requests. After years of being hidden away and evolving inside of other projects, the <a href="http://code.google.com/p/gtm-http-fetcher/">Google Toolbox for Mac HTTP Fetcher</a> has now been promoted to its own Google Code open source project. Though simple to use for basic GETs and POSTs, it also offers a variety of convenient features for developers of networking applications.<br /><br />Here is an example of using the fetcher to make a request of a server:<br /><pre><br />#import "GTMHTTPFetcher.h"<br /> <br />NSURL *url = [NSURL URLWithString:@"http://www.example.com/"];<br />NSURLRequest *request = [NSURLRequest requestWithURL:url];<br />GTMHTTPFetcher* myFetcher = [GTMHTTPFetcher fetcherWithRequest:request];<br />[myFetcher beginFetchWithDelegate:self<br /> didFinishSelector:@selector(myFetcher:finishedWithData:error:)];<br /></pre><br />and when the request is complete, the fetcher invokes a single callback in the application:<br /><pre><br />- (void)myFetcher:(GTMHTTPFetcher *)fetcher <br /> finishedWithData:(NSData *)retrievedData <br /> error:(NSError *)error {<br /> // if error is not nil, the fetch succeeded<br />}<br /></pre><br />One class can initiate many fetches, each with their own callback selectors, making it easy to pack a lot of networking into a single class. In iOS 4 and Mac OS X 10.6, Objective-C blocks simplify fetching even further, avoiding the need for callback methods:<br /><pre><br />[myFetcher beginFetchWithCompletionHandler:^(NSData *retrievedData, <br /> NSError *error) {<br /> // check the error and use the retrieved data here<br /> }];<br /></pre><br />As with the underlying NSURLConnection class, the fetcher’s requests are always asynchronous, so the user experience is never blocked waiting for a server response.<br /><br />This basic http fetcher functionality requires adding just a single source file and header to an application. But the fetcher comes with support for many more advanced features, such as automatic retry on errors, cookie handling, ETag tracking and response caching, convenient request and response logging, and multi-part MIME upload.<br /><br />To get started using the GTM HTTP Fetcher, read the <a href="http://code.google.com/p/gtm-http-fetcher/wiki/GTMHTTPFetcherIntroduction">introduction</a> at the project site, and join the Google Toolbox for Mac <a href="http://groups.google.com/group/google-toolbox-for-mac">discussion group</a>. You can find even more of our open source resources for iOS and Mac developers at the <a href="http://code.google.com/mac/">Google Mac Developer Playground</a>.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-4706566054522736702010-09-10T11:11:00.000-07:002020-06-15T21:26:32.493-07:00OAuth Sign-in Controllers for iOS and Mac OS X Applications<span style="font-style: italic; ">By Greg Robbins, Software Engineer</span><br /><br />(Editor's note: Long-time readers know we sometimes publish posts aimed at programmers, and this is one of those. If you're not a software developer, don't worry. Our usual non-technical stuff will return.)<br /><br />It’s rare today for any software to live in isolation. And often, applications want to connect to data in your Google Account. Social networks seek access to your Gmail contacts, finance programs try to sync with your Google Finance portfolio, and photo editing software would like to add eyeglasses and mustaches to the photos in your Picasa Web Albums account. But you probably don’t want your photo editing program to be able to download your financial portfolio, spend money with your Google Checkout account, or have access to any of your other personal data.<br /><br />The fundamental problem is that giving your username and password to a program hands it access to all of your data. Recently, Internet software developers have converged on a solution called OAuth. When sites and software support OAuth, you only need to give your username and password—your credentials—to the site where your data belongs, and that site passes a token with strictly limited authorization rights back to other sites and software.<br /><br />For example, if you want to use the new SuperAwesomeEditor application to trim your YouTube videos, the editing program can use OAuth to ask YouTube for permission to edit your videos, and then YouTube will ask you to verify your identify. Once you give your username and password to YouTube, it will hand back to SuperAwesomeEditor a token allowing it access just to your YouTube videos for editing. SuperAwesomeEditor won’t know your password, so it won’t be able to grab your financial documents or check out your Gmail contacts. And tomorrow, if you change your mind, you can tell YouTube to cancel that token, and suddenly SuperAwesomeEditor will be unable to access your videos at all. Now you’re in control of your personal data.<br /><br />OAuth offers another big advantage: it gives the data provider flexibility in how it authenticates you. So today you may be asked for your username and password, and also to solve a captcha to prove you’re human. Tomorrow, with tighter security, the provider can add another means of authentication, perhaps by sending a text message to your phone with an extra passcode to type when signing in. Improvements in user authentication over time like this aren’t possible in software that only knows how to ask for a username and password.<br /><br />Unfortunately, the rose of OAuth comes with thorns. One bit of pain is that it takes a lot of tricky programming for applications to use OAuth for authentication. Another downside stems from OAuth having been designed to allow one website to obtain authorization from another; it is not well-suited for use in installed applications, such as native iPhone, iPad, or Mac OS X software.<br /><br />To encourage adoption of OAuth by Mac and iOS apps, we have released the <a href="http://code.google.com/p/gtm-oauth/">Google Toolbox for Mac OAuth Controllers</a>. This small set of Objective-C classes makes it easy for developers to add OAuth sign-in embedded into Cocoa apps. Since adoption of OAuth extends beyond Google, the OAuth controllers work with both Google and non-Google data providers.<br /><br />Here’s how easy it is for developers to let users sign in to Google Contacts with OAuth from an iPhone application:<br /><pre><br />#import "GTMOAuthViewControllerTouch.h"<br /><br />NSString *keychainItemName = @"HotSocialNetwork: Google Contacts"<br />NSString *scope = @"http://www.google.com/m8/feeds/"; <br /> // scope for Google Contacts API<br /><br />GTMOAuthViewControllerTouch *viewController =<br /> [[[GTMOAuthViewControllerTouch alloc] initWithScope:scope<br /> language:nil<br /> appServiceName:keychainItemName<br /> delegate:self<br /> finishedSelector:@selector(viewController:finishedWithAuth:error:)] <br /> autorelease];<br />[[self navigationController] pushViewController:controller animated:YES];<br /></pre><br />When the user finishes signing in, the controller will invoke the application’s callback method:<br /><pre> <br />- (void)viewController:(GTMOAuthViewControllerTouch *)viewController<br /> finishedWithAuth:(GTMOAuthAuthentication *)auth<br /> error:(NSError *)error {<br /> if (error == nil) {<br /> // Authentication succeeded; retain the auth object<br /> }<br />}<br /></pre><br />That’s it. The controllers handle displaying an embedded web view and interacting with the server, and optionally saving the authorization token in the keychain. Later on, the application can use the auth object provided to the callback to authenticate and sign requests it makes to the server, like this:<br /><pre><br />[auth authorizeRequest:myNSURLMutableRequest];<br /></pre><br />Authenticating to non-Google services takes a few more lines of code to specify the application’s identity and the server addresses needed for authorization, but it’s almost as simple.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aTFpHIvv0Es/TIkrOg_3xBI/AAAAAAAAACY/UPrRRBdQqLs/s1600/screens.png"><img style="cursor:pointer; cursor:hand;width: 320px; height: 282px;" src="http://1.bp.blogspot.com/_aTFpHIvv0Es/TIkrOg_3xBI/AAAAAAAAACY/UPrRRBdQqLs/s320/screens.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5514986747067876370" /></a><br /><br />The OAuth protocol is in transition, as a <a href="http://www.google.com/url?q=http%3A%2F%2Fwiki.oauth.net%2FOAuth-2&sa=D&sntz=1&usg=AFQjCNHM6Pduh__AaGWa0f2IWYlrYFK-8Q">newer version</a> is currently being developed. But if you are a developer, there is already benefit to adopting OAuth for letting your users sign in to Google and other services. For more information about using the GTM OAuth controllers in your app, read the <a href="http://code.google.com/p/gtm-oauth/wiki/GTMOAuthIntroduction">introduction</a> at the project site, and join the <a href="http://groups.google.com/group/gtm-oauth">discussion group</a>. Google also maintains <a href="http://sites.google.com/site/oauthgoog/">a site for our ongoing research</a> into OAuth and related subjects.<br /><br />The OAuth Controllers are an independent sibling project to the Google Toolbox for Mac, a collection of useful classes for iPhone and Mac developers. The controllers incorporate the newly-liberated GTM HTTP Fetcher project, our networking wrapper class, which I’ll discuss in an upcoming post. You can find more of our open-source Mac and iPhone toys on the Google Mac Developer Playground at <a href="http://code.google.com/mac">http://code.google.com/mac</a>.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-91782260322688999852010-06-13T22:58:00.000-07:002020-06-15T21:26:35.531-07:00WWDC 2010 Journal, last dayBy Mike Morton, Google Mac Team<br /><br /><span style="font-style: italic;">Google engineer Mike Morton has now made it home after a week of sipping at the firehose known as Apple WWDC in San Francisco. In today's post, Mike shares his thoughts and observations as the conference winds down — and so do the attendees.</span><br /><br />Thursday was a good day. I attended interesting talks, and I got lots of good info from talking to Apple folks in the labs. I left before Friday, the last half-day of the conference.<br /><br />As the week goes by, some attendees start nodding off in talks. I don’t think that’s a reflection on the speakers, just on the cumulative sleep deprivation of the conference. I’m pretty sure I’ve kept my eyes open the whole time, even though some of the material is review for me, and other stuff is over my head. A lot of the talks on my last day were about making applications efficient on iPhone and iPad. Here, “efficiency” is not just how quickly they respond, but other measurements, too, such as how long they can make the battery last. Battery life weighs on my mind as I try to find a seat next to a power outlet for my laptop. I sometimes feel like <a href="http://en.wikipedia.org/wiki/Shakey_the_robot">Shakey</a>, an early robot whose sole purpose was to find power plugs.<br /><br />Labs continue to be a great source of info. I met my colleague Paul on the escalator and he excitedly told me that the answer he’d just gotten to one question was worth the whole price of the conference. I wouldn’t go quite that far, but I’m impressed at Apple engineers who are willing to sit down, look at our code, work through questions, and draw diagrams on a whiteboard. <br /><br />Between talks and labs, there’s non-stop schmoozing. Some of it is totally business-oriented, but much is just chatting and discovering connections. I bumped into two fellow Dartmouth grads. Both attended after my time, but at least they graduated in the same millennium as I did. I also took several breaks just to observe nerd behavior. One scary trend: some people walk around while looking at an iPhone and an iPad at the same time. Miraculously, nobody accidentally walked into a window or escalator.<br /><br />The famous James Dempsey and the Breakpoints performed this week. I missed it, but here's a shaky video.<br /><br /><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/aefhfedF0cU&hl=en_US&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/aefhfedF0cU&hl=en_US&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object><br /><br />So Thursday ended and I walked out to catch my redeye. The end of a conference is always an anticlimax, especially so when you leave early. There ought to be some sort of reminder that we’ve come together once again, and that Apple has gone from just surviving to thriving and changing the world. Apple people have a tremendous sense of history, and love to talk about who worked on what when. We see the past more clearly than the future, but we know the future often echoes the past.<br /><br />I wound up at SFO in the world’s slowest security line. I removed my belt. Then I lifted my arms to get scanned. Somehow my pants didn’t fall down. Maybe it was that Moscone Center food.<br /><br />I fell asleep on the plane and woke up as we landed at Logan. The guy next to me was putting away a nose-hair trimmer. Perhaps he was getting ready for FaceTime.<br /><br />See you next year!Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-59816638359862337272010-06-10T07:58:00.000-07:002020-06-15T21:26:33.572-07:00WWDC 2010 Journal, Day 3By Mike Morton, Google Mac Team<br /><br /><span style="font-style: italic;">Google engineer Mike Morton eschews sleep (mostly) while attending Apple's WWDC in San Francisco. Here's his account of day 3 in the life of an iDeveloper.</span><br /><br />Things are settling into a routine. After dinner, I retreat to my hotel room and wrestle with the wifi to catch up on email and look at tomorrow’s sessions. I worry about which sessions to skip so I can visit scheduled labs and pump Apple engineers for advice. Today I attended four sessions and skipped two. That ratio seemed about right.<br /><br />Many labs are busy. I waited a long time to ask a couple of questions about <a href="http://en.wikipedia.org/wiki/Core_Data">Core Data</a>. That’s an Apple technology for storing info, not related to the phylum chordata. After an hour, I gave up. But the busiest lab is the one for User Interface consulting, where you can show your prototype application to Apple UI gurus and get advice. This takes place in private rooms, because prototypes are often secret. Unlike other labs, this one takes reservations, and by early morning they’re booked for the whole day. That must be frustrating for folks who don’t get a slot, but I’m glad that so many people care about the fit and finish of their apps.<br /><br />Today’s sessions were great…but of course the non-disclosure agreement won't let me tell you about them. During one session, I took frantic notes, emailed them off to my team on the east coast, then got questions back that I asked at a session an hour later. Technology is so useful!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_aTFpHIvv0Es/TBD7c-m23TI/AAAAAAAAABg/uIwn1u5aA5Y/s1600/power.jpeg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://4.bp.blogspot.com/_aTFpHIvv0Es/TBD7c-m23TI/AAAAAAAAABg/uIwn1u5aA5Y/s320/power.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5481157221770779954" /></a><br /><br /><div align=center>The obligatory power adapter shot</div><br /><br />I caught most of a lunchtime talk by Pixar Senior Technologist Michael Johnson about Pixar’s internal software projects. His talk was fast-paced and witty, with a lot of lessons about how to make good in-house software. He mentioned one important deal that happened because of a conversation at WWDC’s annual beer bash. The clear lesson was that beer bashes are an important part of the industry. Just as we always suspected.<br /><br />In between sessions and labs I caught up with old friends and colleagues. I've been doing this for a while, and sometimes I get a little behind. I asked one friend about his toddlers, and he showed me a photo of his older daughter in an evening gown. Other parents are fretting about college choices and driver's licenses. It's nice to be reminded that geeks have a life, too.<br /><br />Some non-geek friends have been in touch by email, curious about what’s going on. They’re especially interested in <a href="http://www.apple.com/iphone/features/facetime.html">FaceTime</a>, and other possible uses for the front-facing camera. One friend suggested that it will make a handy mirror. That gives me a great idea for an app: Do I Have Spinach in My Teeth?<br /><br />Thursday is my last day. I'm taking a redeye home Thursday night. Friday is supposed to be a work day. We’ll see how that goes. And now it's time to start packing.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-35402783833123425952010-06-09T10:43:00.000-07:002020-06-15T21:26:31.791-07:00WWDC 2010 Journal, Day 2By Mike Morton, Google Mac Team<br /><br /><span style="font-style: italic;">Google engineer Mike Morton somehow finds time to blog from Apple's Worldwide Developer Conference in San Francisco while also learning, socializing, eating, and occasionally sleeping. Read today's entry for more.</span><br /><br />Day 2 had barely begun, and I felt like I’d been here a week. The constant time-juggling is a challenge: attend a session, ask questions in a lab, eat, sleep, work, schmooze? Before heading to Moscone West, I chatted in the hotel lobby with other attendees about the time challenge. One first-timer told me his friends simply suggested he get to as many parties as possible.<br /><br />I spotted an attendee wearing a “hi, i make macintosh software” t-shirt. I noticed later that “macintosh” is an anagram of “Hm, iOS can’t".<br /><br />Breakfast at Moscone featured uninspiring food, but inspiring conversation. A friend and I sat at a table with four folks we didn’t know, all with different interests. One was a grad student, doing systems for kids with various disabilities. He asked the accessories engineer if one could build a simple device with just two buttons, for simple apps for his students with motor coordination problems. The accessories guy reached into a bag: “Like this one?”. He showed us Pong running on his iPhone, using the extra hardware to control it!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_aTFpHIvv0Es/TA_NVtM_idI/AAAAAAAAABE/tz_77fndC6g/s1600/pong.jpeg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://3.bp.blogspot.com/_aTFpHIvv0Es/TA_NVtM_idI/AAAAAAAAABE/tz_77fndC6g/s320/pong.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5480825044328221138" /></a><br /><br />Last year, the show had a huge display of app icons, each one jiggling each time it was downloaded. This year’s display was different: app icons fell from the top like meteors, one for each download. Popular apps showed their icons over and over. That made it a lot easier to find <a href="http://www.google.com/mobile/earth/">Google Earth</a>, which I never did spot last year — and <a href="http://www.google.com/mobile/google-mobile-app/">Google Mobile</a> seems to be "selling" like hotcakes.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_aTFpHIvv0Es/TA_OACYigcI/AAAAAAAAABY/RSZ6cTTiijs/s1600/apps.jpeg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://4.bp.blogspot.com/_aTFpHIvv0Es/TA_OACYigcI/AAAAAAAAABY/RSZ6cTTiijs/s320/apps.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5480825771568300482" /></a><br /><br />The wifi and cell networks continue to struggle with the load, sometimes failing but usually somewhat usable. Apple staffers did better under load, staying quite pleasant. Some have boring jobs like using a clicker to count attendees entering each session, but they still manage to stay cheerful. I teased one clicker dude: “Don’t you have an app to do that?” He replied he did have a phone app, but that the cheap clicker was easier to use. Low tech sometimes wins.<br /><br />The <a href="http://developer.apple.com/ada">Apple Design Awards</a> were noticeably different this year. They didn’t list nominees, but instead just announced each winner. That takes some of the fun out of it, in my humble opinion. More significantly, all the awards were for iPhone or iPad apps — nothing for Mac OS X at all. A bunch of hardworking iPhone developers took home beautiful cubes with a glowing Apple logo and a bunch of hardware, and had their conference costs reimbursed.<br /><br />As in past years, John Geleynse from Apple demoed each app. This is fun because some apps involve musical skill, artistic ability, game-playing reflexes, and so on. He did pretty well, but joked that the awards committee might be picking apps that he’ll find challenging. And, as in past years, I feel like I should try each of the winning apps, even though there are so many apps, so little time. Perhaps Apple could offer a package deal on the App Store: all the winning apps together, at a discount?<br /><br />I’m sure the annual <a href="http://en.wikipedia.org/wiki/Stump_the_Experts">Stump The Experts</a> was great [Editor's note: <a href="http://twitter.com/#search?q=stump%20wwdc">yeah, it was!</a>], but the combined siren song of email backlog and sleep backlog was too great.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-70488498739903628632010-06-08T07:45:00.000-07:002020-06-15T21:26:34.040-07:00WWDC 2010 Journal, Day 1By Mike Morton, Google Mac Team<br /><br /><span style="font-style: italic;">Google engineer Mike Morton is doing his annual blogging from Apple's Worldwide Developer Conference in San Francisco. Today we get Mike's insights on WWDC keynote day, with all the fun and reality distortion it brings.</span><br /><br />It’s 10 PM Monday. I’ve had six hours sleep in the last 48 hours and am verging on delirium, but it’s a happy kind of delirium. I got a good dose of <a href="http://en.wikipedia.org/wiki/Reality_distortion_field">Reality Distortion</a> today (“a few molecules of Steve Jobs” as one developer said as he settled in for the keynote).<br /><br />Waiting for the keynote, we got to listen to music, including <a href="http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=louis+armstrong+wonderful+world">Satchmo’s Wonderful World</a>, and watch on the big screen as the camera focused on various audience members. Audience folks quickly caught on to the idea that if you put an interesting message on your iPad screen, the camera would find you. The big screen showed iPads saying “This is not a PC”, a New Zealand (I think) flag, “Hi Mom!”, “Free Hugs”, and “Thank you, Steve”. There was one with a job posting for AOL, complete with a Twitter account to contact. Best of all was a set of four iPads spelling W - W - D - C, with the C taking a little extra time to get ready, and the audience cheering when it did. Perhaps presaging the mobile device emphasis of the keynote, one laptop screen just said “MACS TOO!”.<br /><br />Steve walked on to the usual wild applause and camera frenzy. He looked very thin, but very happy. As he usually does, he began with numbers: the number of developers attending and how many countries they're from (5,200 and 57) and the number of days it took to sell out the conference (8 despite the fact that "this is the biggest place we can get!"). He talked about the iPad working its magic on sales numbers, and the large numbers of iPad-native apps, as opposed to iPhone apps which work on the iPad in a compatibility mode.<br /><br />You’ve probably read a lot about the keynote already, so here are some moments that stood out for me:<br /><br />Steve talked about the App Store. He indirectly addressed complaints about apps being rejected or waiting for approval, listing various good reasons that apps have problems, although some in the audience thought the list of reasons provided might be incomplete.<br /><br />He invited three iPhone developers up to talk about their products: NetFlix, Zynga (the Farmville folks), and Activision, whose Guitar Hero demo was slick. He wrapped up by telling us that the App Store has hit 5 billion downloads, and has paid $1 billion to developers. Carl Sagan would have been right at home with this <a href="http://en.wikipedia.org/wiki/Carl_Sagan#Billions_and_billions"><i>billions and billions</i></a> statistic.<br /><br />Steve quickly moved to introducing iPhone 4. I was impressed by lots of things, especially the promise of apps that use the new gyroscope hardware. There’ll be some great virtual reality and augmented reality apps coming out of that. I was also intrigued by putting cellular, wifi, and other antennas into the metal around the edge of the case. I hope that’ll improve reception.<br /><br />iMovie for iPhone looks cool, too, although as a cousin to Final Cut, I wish they had called it Final Tap. It could have gone to 11.<br /><br />And then came the classic “One more thing”: <a href="http://www.apple.com/iphone/features/facetime.html">FaceTime</a> video calls. <a href="http://www.automationadventures.com/2010/06/07/apples-facetime-the-promo-videos/">This is going to be huge</a>. It’ll go viral, selling itself, because it’s so noticeable when someone is using it in public. Plus it’ll drive sales of nose-hair trimmers (note to self: invest now).<br /><br />Steve showed a video of people talking with FaceTime. This included a very moving moment when a soldier saw his baby on ultrasound via FaceTime. Steve said something I’ve heard him say before: "This is one of those moments that reminds us why we do what we do".<br /><br />The keynote conspicuously lacked any mention of Mac OS X. Apple may be looking toward the “post-PC era” and even hastening it, but let's hope they don't forget “MACS TOO” any time soon.<br /><br />For the rest of the day, sitting in darkened lecture rooms was proving too much of a challenge for my jet lag, so I left before the last session. As I walked out, I saw an attendee with a t-shirt reading: “AppKit is the new Carbon”. For the non-geek among you, Carbon is an older system that developers used to program the Mac, and AppKit is the current system. You could say this was another way of declaring "MACS TOO!".Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-83210459647881033612010-06-07T20:48:00.000-07:002020-06-15T21:26:35.065-07:00WWDC 2010 Journal, Day 0By Mike Morton, Google Mac Team<br /><br /><span style="font-style: italic;">As regular readers know, every year, Google engineer Mike Morton becomes intrepid reporter Mike Morton as he ventures to Apple's Worldwide Developer Conference in San Francisco. Except for the contents of Steve Jobs's keynote address, Apple doesn't allow attendees to disclose the technical bits of the conference, so he writes about other important observations and details, such as flights, food, lines, and plans (successful and otherwise). Here's the first part of Mike's 2010 journal.</span><br /><br />Summer is here, and that means ice cream, hay fever, swimming in the pond, and — for people who develop Apple software — the annual gathering of the faithful called the Worldwide Developer Conference, known as WWDC to everyone.<br /><br />I planned a short hop from my New Hampshire home down to Boston’s Logan airport, then to San Francisco just in time to get a few hours of sleep and head to the conference on Monday. Developers want to be in line early for the Steve Jobs keynote, because… well, actually, I don’t know why. We just always do. Some want to sit up front, but good camerawork and big screens throughout the room mean you can see from anywhere.<br /><br />To my amazement, one die-hard Apple developer emailed me today that he plans to skip the keynote, and instead go eat pancakes and watch the live-blogging. (I won’t name him, because I worry he’ll lose friends over this.) He’s just tired of waiting in long lines. Personally, I enjoy the line. It's a chance to catch up with people, to see and be seen.<br /><br />As I write this from my transcontinental flight, it’s about 11 PM Pacific Time, and we’re going to land around 1:15 AM. I think that’s 4:15 AM on my biological clock, which is the time I normally wake up. We’ll see how much sleep I get when I check in to the hotel.<br /><br />One big discussion point this year: some Mac engineers have grumbled that Apple’s schedule of sessions seems tilted toward iPhone and iPad — and away from Mac OS X. Me, I see at least two sessions I want to attend in nearly every time slot, so I’m happy, no matter what the overall emphasis.<br /><br />Time to see if I can catch some sleep before we land.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-59023000527773049452010-05-25T08:59:00.000-07:002020-06-15T21:26:33.479-07:00Google Chrome for Mac: Ready, beta, now stable!In the past five months, we’ve <a href="http://googlemac.blogspot.com/2009/12/google-chrome-for-mac-goes-beta.html">counted lines of code</a>, <a href="http://www.google.com/chrome/intl/en/huzzah.html">given thanks in Lego</a>, and even <a href="http://googlemac.blogspot.com/2010/02/google-chrome-beta-for-mac-updated-now.html">waxed poetic</a> -- but most importantly, we’ve been working hard on bringing Google Chrome for Mac from its initial beta to the stable channel. <br /><br />Today, I’m happy to announce that Google Chrome for Mac is being promoted out of beta to our stable channel. We believe that it provides not only the stability, performance and polish that every Mac user expects, but also a seamless native Mac application experience that Mac users will feel instantly at home with.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM6gCFoqbKd-GNlmmm0jCDEPy96p_rGoJygfh1gnS15NHEhZDPBICKCpAYQvd2Bj6zpPOk3i86zXgwTkBwnp2WPQIe53xzM1pE6w3OJlNsnXcJ9kwJI7eaNEO6bOSpmN417GF7Og/s1600/Christoph+Niemann.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 397px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM6gCFoqbKd-GNlmmm0jCDEPy96p_rGoJygfh1gnS15NHEhZDPBICKCpAYQvd2Bj6zpPOk3i86zXgwTkBwnp2WPQIe53xzM1pE6w3OJlNsnXcJ9kwJI7eaNEO6bOSpmN417GF7Og/s400/Christoph+Niemann.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5475228385238012530" /></a><br /><i>(First dev, then beta, now stable! Many thanks to <a href="http://christophniemann.com/">Christoph Niemann</a>)</i><br /><br />Just like its Windows and Linux siblings, the stable version of Chrome for Mac <a href="http://chrome.blogspot.com/2010/05/new-chrome-stable-release-welcome-mac.html">comes with all the goodness</a> of one of our biggest speed improvements to date. We’ve worked to make Chrome for Mac fast, fully-featured and extensible - with access to more than <a href="https://chrome.google.com/extensions">4,500 extensions</a> in the gallery. Some of Chrome for Mac’s most-requested features are now available, including full-screen mode (just hit Command + Shift + F!), easy and powerful <a href="http://www.google.com/support/chrome/bin/answer.py?hl=en&answer=95714">bookmark management</a>, as well as the ability to <a href="http://www.google.com/support/chrome/bin/answer.py?hl=en&answer=165138">synchronize</a> not only bookmarks, but also browser preferences across computers. <br /><br />For those of you already on the beta channel, you’ll be auto-updated to the stable channel soon - or, if you don’t want to wait, you can <a href="http://www.google.com/chrome?platform=mac">download the stable version</a> of Chrome for Mac today. If you later decide that you’d like to return to the beta channel to experience new, experimental features and improvements, you can always find the link back to the beta channel on <a href="http://www.google.com/chrome?platform=mac">google.com/chrome</a>.<br /><br /><span class="byline-author">Posted by Mike Smith, Product Manager, Google Chrome Team</span>Google Chrome Bloghttp://www.blogger.com/profile/15781870002790872375noreply@blogger.comtag:blogger.com,1999:blog-29010370.post-1874690899570736712010-05-18T08:16:00.000-07:002020-06-15T21:26:31.138-07:00Google I/O: live keynote streams<span style="font-style: italic; ">By Greg Robbins, Software Engineer</span><br /><br />Google I/O, which starts tomorrow, is our annual conference to help developers learn about the latest ways their applications can work with Google services. If you develop applications or just are enthusiastic about using applications that interact with your Google account, you can learn the highlights of this year’s announcements by watching the <a href="http://googlecode.blogspot.com/2010/05/live-from-google-io.html">live keynote streams</a>. See the <a href="http://googlecode.blogspot.com/2010/05/live-from-google-io.html">Google Code blog</a> for more details.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-45241202255181700132010-05-05T10:56:00.000-07:002020-06-15T21:26:32.400-07:00New Google Chrome beta: speedy!<span class="Apple-style-span" style="font-style: italic; ">By Scott Knaster, Google Mac Team</span><div><br /></div><div><span class="Apple-style-span" style="font-style: italic; "></span>There's a new beta of Google Chrome, and it's <a href="http://chrome.blogspot.com/2010/05/pedal-to-chrome-metal-our-fastest-beta.html">very, very fast</a>. Check out this post over at the <a href="http://chrome.blogspot.com/2010/05/pedal-to-chrome-metal-our-fastest-beta.html">Google Chrome Blog</a> for details. And if you haven't used Chrome on your Mac, why not give it a try? You can <a href="http://www.google.com/chrome/index.html">download it here</a>.</div>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-42891254785136160022010-02-23T10:08:00.000-08:002020-06-15T21:26:32.166-07:00Memeo Connect for Google Docs<span style="font-style: italic;" class="byline-author">By Greg Robbins, Software Engineer</span><br /><br />Software publisher Memeo recently released <a href="http://www.memeoconnect.com/">Memeo Connect</a>™, an application that provides tight integration between documents on Google Apps and the Mac and Windows desktops. Over on the <a href="http://googleappsdeveloper.blogspot.com/2010/02/using-google-document-list-apis-to.html">Google Apps Developer Blog</a>, Memeo's Mac developer Matthew Tonkin describes some of their experiences of using the <a href="http://code.google.com/apis/gdata/docs/client-libraries.html">Google Data API client libraries</a>. Please take a look.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-29010370.post-51371486248531069002010-02-11T08:00:00.000-08:002020-06-15T21:26:32.824-07:00Google Chrome Beta for Mac updated - now with extensionsThe last time we put on a show<br />was <a href="http://googleblog.blogspot.com/2009/12/google-chrome-for-holidays-mac-linux.html">just over two months ago</a>.<br />We polished our <a href="http://www.google.com/chrome">Chrome</a><br />for Mac! It's at home<br />on anyone's MacBook or Pro.<br /><br />It's fast, and of course, we ensure<br />the browser will stay more secure.<br />But some wrote a letter–<br />they wanted it better!<br />So clearly it had to mature.<br /><br />Today, we are happy to mention<br />on Mac, you can use that <a href="https://chrome.google.com/extensions">extension</a>!<br />And bookmark sync too,<br />plus, there's more for you<br />and if I still have your attention:<br /><br /><br />Read more about our release on the <a href="http://chrome.blogspot.com/2010/02/new-beta-of-google-chrome-for-mac-with.html">Google Chrome blog</a>. If you're as psyched as we are, you can download the new <a href="http://www.google.com/chrome?platform=mac">Google Chrome Beta for Mac</a>, now with extensions, bookmark sync, cookie and bookmark managers, and more. Still not convinced? Maybe a cute foam arrow would be more persuasive:<br /><br /><br /><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/w7VNjGuSK_k&hl=en_US&fs=1&"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/w7VNjGuSK_k" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object><br /><br /><span class="byline-author">Posted by Mark Mentovai, Software Engineer, Google Chrome</span>Sarah Nahmhttp://www.blogger.com/profile/18330559152835083421noreply@blogger.comtag:blogger.com,1999:blog-29010370.post-83884054005636269352010-01-28T11:23:00.000-08:002020-06-15T21:26:35.157-07:00Upload Your Email to Google Apps<span style="font-style: italic;" class="byline-author">By Greg Robbins, Software Engineer</span><br /><br />Several years ago, I began hosting the email for my personal domain with the free Standard Edition of <a href="http://www.google.com/a">Google Apps</a>. At first I remained a curmudgeon, and set my email client to delete messages from the server after retrieving them, because I wanted my email stored just on my own computer. But Gmail's threading interface grew on me, as did the temptation of having access to all of my email from any web browser. So the cloud won me over, and soon my messages were living on the server. Since then, I've been able to search my email from home, from work, and from any computer on the Internet.<br /><br />But my personal email archives stretch back to long before the advent of Google Apps and Gmail. Suddenly, the years of conversations I'd happily stored in Eudora files seemed awfully inconvenient. That inconvenience goaded me into developing <a href="http://google-email-uploader-mac.googlecode.com/">Google Email Uploader for Mac</a>. It's a free utility application that you can use to push your archives from Apple Mail, Eudora, and Thunderbird up to your Google Apps email account. If you are sometimes anxious to locate your very earliest e-commerce receipts or your threads of political discussions from bygone elections, the email uploader can make them as easy to find as last week's family letters.<br /><br />The email uploader is built on our open source <a href="http://code.google.com/p/gdata-objectivec-client/">Google Data APIs Objective-C Client Library</a> and the <a href="http://code.google.com/apis/apps/email_migration/developers_guide_protocol.html">Email Migration API</a>. There is also a <a href="http://mail.google.com/mail/help/email_uploader.html">Google Email Uploader for Windows</a>, as well as online tools for <a href="http://mail.google.com/support/bin/answer.py?hl=en&answer=21288">migrating web-based email</a> to Google email accounts. Unfortunately, the Mac and Windows email uploaders currently can upload only to Google Apps email accounts, not to gmail.com or googlemail.com accounts.<br /><br />Google Email Uploader for Mac is available today as an open source application at the <a href="http://code.google.com/mac/">Google Mac Developer Playground</a>, where our Mac and iPhone developers share our toys and experiments. If you have a Google Apps-hosted account and email archives that stretch back to the Dark Ages, I hope you will download and try it.Unknownnoreply@blogger.com