Rabu, 31 Oktober 2007

Google Photo Picker

The standard Google dialog for choosing a photo integrates with Picasa Web Albums. If you want to add a photo to your orkut scrapbook, you can select it from your computer, from the web or from Picasa Web Albums. When you upload photos from your computer, they're saved in an album called "Drop Box". For each Blogger blog, Google creates an album that stores the images uploaded to that blog.

That means we could expect to see other Google apps using the same model. Google Docs could have an album that contains all the images uploaded to your documents, spreadsheets and presentations. The Gmail album would include all your image attachments. This way, you wouldn't have to upload the same image multiple times and you could reuse in other Google sites.

It's unclear why Google doesn't provide in the dialog an option to search your images from Picasa Web Albums. You still have to know the location and the name of an image. Google could extend the photo picker to documents and other files, move Google Desktop online and provide a unified way of uploading, organizing and sharing your files.


OpenSocial, Google's APIs for Social Applications


Interactive Friends Graph Map, a Facebook app. Image licensed as Creative Commons by inju.
You probably remember the post about Socialstream, a Google-sponsored project that tried to "rethink and reinvent online social networking". The result was a meta-social network that aggregates data from other community sites using APIs and whose goal "is to present social information in a way that ties it to the person who posted the information, and not the site from which it came."

Since last year, Google was busy developing plans for a set of APIs that would make it possible to communicate with other social networks. Brad Fitzpatrick, who moved to Google from Six Apart, wrote an interesting article "Thoughts on the Social Graph" that tackled this problem. "Unfortunately, there doesn't exist a single social graph (or even multiple which interoperate) that's comprehensive and decentralized. Rather, there exists hundreds of disperse social graphs, most of dubious quality and many of them walled gardens." His solution was to make this database of social connections a "a community asset, utilizing the data from all the different sites, but not depending on any company or organization as the central graph owner."

Even if this will not bring Brad's vision closer to reality, Google will launch tomorrow OpenSocial, "a set of common APIs for building social applications across the web". According to a still-unofficial press release, "OpenSocial gives developers of social applications a single set of APIs to learn for their application to run on any OpenSocial-enabled website. By providing these simple, standards-based technologies, OpenSocial will speed innovation and bring more social features to more places across the web." The APIs give access to a user's profile, their friends, and the activity streams.

The success of Facebook's platform, that has more than 5000 applications, made a lot of social networks consider the launch of similar platforms. But not many developers would develop different applications for each social network, so smaller sites will have less visibility. orkut, Google's social network, has more than 70 million users, but only 18% are in the US. While it would've been easier for Google to just open up orkut, this common set of APIs will make the social applications more valuable because they can run in many other places and can access data from other sites.

Google's social APIs should be available at code.google.com/apis/opensocial (the site is not live yet). The initial social networks and companies that support the APIs are orkut, hi5, Friendster, LinkedIn, Viadeo, Ning, Salesforce, and Oracle. It will be interesting to see if other social networks decide to join Google's efforts. MySpace announced that will open its platform in the next months, but it's unlikely to use Google's APIs.


"The timing of OpenSocial couldn't be better. Developers have been complaining non stop about the costs of learning yet another markup launguage for every new social network platform, and taking developer time in creating and maintaining the code. Someone had to build a system to streamline this (...). And Facebook-fear has clearly driven good partners to side with Google," writes TechCrunch.

"Open Social's API is based entirely on Javascript. If you know HTML and Javascript today, you will be able to immediately use Open Social to turn your web applications and web sites into Open Social apps. You can also use standard web development tools to build Open Social apps. This is obviously a much better way to operate than having to learn a proprietary [mark-up] language or query language," writes Marc Andreessen.

And Google also has a financial incentive to build this open platform. "A person familiar with Google's efforts said that those applications have been far more effective for advertisers on social networks than users' personal pages," reports the New York Times. Google tried to convince "third-party developers with applications on Facebook to run Adsense ads within applications pages".

Update: MySpace joins OpenSocial. "MySpace says they are abandoning their efforts to create their own markup language (which is what Facebook has done) and direct APIs will go exclusively with OpenSocial." Other social sites that join Google's efforts: Bebo and Six Apart. It seems that everybody except Facebook will be in this coalition.

Update 2: "As the most trafficked website in the country and the most popular social network in the world, MySpace is one of the leading forces in the global social Web. We're thrilled to grow our strategic relationship with MySpace by joining forces on this important initiative," said Eric Schmidt. Google's press release is mostly about MySpace and its "commitment to supporting standards that foster innovation in an increasingly social Web". That's a welcome change from MySpace.

Selasa, 30 Oktober 2007

Google to Connect to Other IM Networks Using Jabber Transports?

With more storage, IMAP support and a new version optimized for performance, Gmail continues to surprise everybody. And if you think you've seen everything, you're wrong. After looking at the code of the recently launched Gmail 2.0, it seems that Gmail team actually listens to feedback, because they'll implement some of the popular suggestions:

* colors for labels

* detaching messages from a conversation

* Jabber transports (these could be used to chat with people from other IM networks, like Yahoo, MSN, AIM). You could already use these transports to connect Google Talk with other IM networks, but you have to use a third-party server and another IM client to configure the transports. Being able to chat with people from other networks, which are much more popular than Google Talk, will make Google's instant messenger more useful.

An extract from Gmail's JavaScript code:



It's also interesting that the new contact manager from Gmail lets you enter usernames for many IM networks:


What else would you like to see in Gmail 2.0?

Senin, 29 Oktober 2007

Gmail's New Version Is Now Available

The new version of Gmail I was talking about the other day is already available in some Gmail accounts. If you see a link to an "older version" at the top of the page, that means you can enjoy the new features: mail prefetching, updated contact manager and other small updates.


Gmail has a new architecture that improves the performance and the usability. Now you can use the back button in your browser and bookmark URLs from different Gmail views because the URLs change when you go to a different section. The messages are prefetched when Gmail loads so you don't have to wait too much until a message is displayed.

The new contact manager has inline search, better options to delete contacts or add them to a group, the address is now structured and you can enter usernames for different IM networks. You can also export the contacts in vCard format, export the contacts from a group and print your address book so you can use it offline. If you want to see the new contact manager and you don't have the new version of Gmail, don't worry. It's a separate application that can be found at this URL.


Gmail also added an option to create filters based on the current message and a mystery-meat "mute" that brings to the interface an already existing feature. When you hover over a contact name you'll no longer see only the picture, now Gmail shows a beautiful contact card that lets you view the recent conversations with one click.




There are more options for displaying Gmail chat and you can now select a photo for your profile from Picasa Web Albums. Gmail will probably use the same profiles available in Google Maps and Google Shared Stuff.




Here are some comments from those who have the new version.

Chris: "Just experienced the new interface. The load time for the inbox takes a bit longer, but my goodness are the instantaneous load times of the pre-fetched emails ever convenient."

Anonymous: "The new interface seems quite a bit slower to me. Prefetched messages do load more quickly, but switching to labels/folders that have many messages now takes quite a bit longer. (E.g. switching to All Mail or Sent Mail from the inbox seems to be quite a bit slower now.) The new contacts manager is surprisingly unstable for a Google web product as well."

Gmail's interface is almost identical, but the team promises to add more features in the future. "The Gmail team has been working on a structural code change that we'll be rolling out to Firefox 2 and IE 7 users over the coming weeks (with other browsers to follow). You won't notice too many differences to start with, but we're using a new model that enables us to iterate faster and share components."

Bottom line - Gmail 2.0
- limited testing: Firefox, IE 7 (only some users)
- new JavaScript architecture
- look for: permalinks, new contact manager, photo picker, mail prefetching
- there aren't many new features, but I think these are the first steps for the social Gmail

{ Thanks, Jason Persampieri. }

How Gmail Blocks Spam

While Gmail doesn't filters all the spam messages that could reach your inbox, it certainly does a better job than other webmail apps like Yahoo Mail or Hotmail. Gmail's filters are constantly improving and an important ingredient of their effectiveness is the use of community signals. Every time you click on the "Mark as spam" button, Gmail uses that information to block similar future messages not only for you, but for all Gmail users. But spam is also evolving and it's harder to block, especially when it uses images and literary texts.

"Many Google teams provide pieces of the spam-protection puzzle, from distributed computing to language detection. For example, we use optical character recognition (OCR) developed by the Google Book Search team to protect Gmail users from image spam. And machine-learning algorithms developed to merge and rank large sets of Google search results allow us to combine hundreds of factors to classify spam," explains Google. "Gmail supports multiple authentication systems, including SPF (Sender Policy Framework), DomainKeys, and DKIM (DomainKeys Identified Mail), so we can be more certain that your mail is from who it says it's from. Also, unlike many other providers that automatically let through all mail from certain senders, making it possible for their messages to bypass spam filters, Gmail puts all senders through the same rigorous checks."


The spam in Gmail is also the subject of a promotional video that encourages to use Gmail if you want to "get back your time". The video reminded me of an old email account from my ISP: it received so much spam that it was almost impossible to find the genuine mail and the 10 MB of storage were insufficient to collect all this junk.


Maybe Google should make greater efforts to filter spam in other services, like Google Groups, Blogger or YouTube. The experience from Gmail could be useful.

Minggu, 28 Oktober 2007

The Growing World of Google Gadgets

Most people call them widgets, but Google wanted to be different: the first name was modules, but it was changed to gadgets. They're wrappers for small pieces of content from the web that can be added to a web page or to the desktop. "Google Gadgets are mini-applications that work with iGoogle, Google Desktop, or any page on the web. They can range from simple HTML to complex applications, and can be a calendar, a weather globe, a media player, or anything else you can dream up."

"[Gadgets] are so easy to create that they are a good starting point if you are just learning about web programming. The Google Homepage API consists of a few simple building blocks: XML, HTML, and JavaScript." This is a description from December 2005, when Google opened the personalized homepage to developers.

Since then, Google's gadgets evolved a lot: they have more functionality, can be added to web pages and Google Desktop, became a new form of advertising and are able to recreate a web page from scratches. But gadget also became synonymous to extension, add-on, plug-in at Google. The concept was extended to other applications: Google Maps (mapplets), Google Calendar (web content), Google Toolbar (buttons), Google Search (subscribed links) and more.

Google uses similar directories for all these different kinds of gadgets:

* iGoogle gadgets (more than 20,000)

* Google gadgets for web pages (a subset of the iGoogle gadgets)

* Google Desktop gadgets

* Google Toolbar buttons

* Google Maps mapplets

... but also for other types of content:

* Google Desktop plug-ins (extend the indexing capabilities)

* Google Earth KML files (overlays)

While most iGoogle gadgets can be added to web pages, Google Desktop gadgets can be added to iGoogle only using a browser plug-in and mapplets work only inside Google Maps. There's still no single standard for gadgets and you need to write different code, depending on the medium where the gadgets run.

It would be nice to write a single code that displays status data in Google Toolbar or in a mobile app, a simple interface in iGoogle, a richer interface in Google Desktop's sidebar and could also integrate with Google Maps or Google Calendar. A mail gadget could show the number of unread messages in Google Toolbar, their subjects in iGoogle, their content in Google Desktop, the locations mentioned in the messages at Google Maps and the events at Google Calendar. You would only need to add the gadget once and see it in different incarnations, depending on the context.

The Next Version of Gmail Will Be Faster

At the Analyst Day event from October 24, Google didn't announce a lot of things, but it revealed what we can expect from a new version of Gmail that will launch soon:

* prefetching messages. When you load a page that contains a list of messages, Gmail will fetch them in advance so that when you need them, they'll be available instantly. Google said that Gmail will have a completely new JavaScript architecture that will bring a much better performance.

* a new contact manager that will be shared with other Google apps (Google Docs, Google Calendar etc.)


* integrating features from other Google products (an example of an existing feature was the "Open as a Google Document" links placed next to Microsoft Office attachments).

Google didn't mention anything about an interface change, but a recent discovery showed that Gmail also prepares a new UI. Maybe the features I anticipated last month will still make their way in this new version of Gmail.

Related: Google Analyst Day 2007 @ YouTube

Update (a day later): Gmail 2.0 is here.

Sabtu, 27 Oktober 2007

Customize YouTube's Player

YouTube has recently updated the video page's design. Besides some obvious changes, like a slightly bigger player that lets you jump anywhere in the video, YouTube now lets you customize the player when you copy the embedding code. The custom players were already available for playlists, but now you can use them for individual videos as well. Just click on "customize embed" next to the generated HTML code and choose a theme. You could also add a border around the video and choose not to show related videos.


The code will probably include an URL that looks like this:
http://www.youtube.com/v/FI76sKLMkMU&color1=0x006699&color2=0x54abd6

You can change the two colors from the URL (color1 and color2) to any value you want: the 216 web safe colors are a good start, but don't forget to replace "#" with "0x".

Here's a list of other YouTube parameters that could be useful if you want to manually edit the code (the default values are in bold):

* border (values: 0, 1) - if the value is 1, shows a border around the video
* rel (values: 0, 1) - if the value is 0, the player doesn't show related videos
* autoplay (values: 0, 1) - if the value is 1, the video starts to play automatically

Google's Marketing Dashboard

MediaPost reports that Google wants to integrate the reporting features from all of its ad products to provide a "fully functional marketing dashboard". Google intends to connect the three pieces: search, display and offline advertising. "The more measurement you can put on this type of functionality the better, said [Google's Tim] Armstrong - noting that once the DoubleClick acquisition closed, its display metrics would add yet another layer of functionality."

This week, Google partnered with Nielsen "to bring demographic data to the Google TV Ads advertising platform. (...) A key benefit of Google TV Ads is the ability to report second-by-second set-top box data so advertisers can evaluate the reach of an ad and only pay for actual set-top box impressions. Advertisers can better understand exactly how their ad is performing and make near real time changes to their TV advertising campaigns to deliver better ads to viewers. Data derived from Nielsen's representative television ratings panels will provide Google TV Ads advertisers with the demographic composition of the audience."

Cross-correlating data across different mediums could make Google AdWords even more powerful. Google knows the users' intentions (from search queries), what web pages they visit (from Web History or AdSense/Doubleclick's cookies) and now has information about TV preferences. While Google can't connect all this data to a Google Account, it could still use it to create profiles and cluster them, irrespective of the medium. Your actions could infer things about yourself, if you connect them to aggregated demographic data. Google also collects personal data through sites like YouTube, orkut, Blogger.


At the moment, Google uses demographic targeting only for offline ads (print, radio, TV) and for AdSense site targeting, but all the data comes from external sources.

Related:
Google Analyst Day 2007 - Ads and Enterprise Overview

Jumat, 26 Oktober 2007

The AdSense Loop

I didn't want to post about this, but Google disappointed me enough to do it. Last week, I received a message from AdSense that informed me I was "displaying Google ads in a manner that is not compliant with [their] policies". More specifically, the problem was the usage of "Google Brand Features", such as the "Google" from this blog's URL.

This is the second time I receive this message from Google. Last year, a post from Philipp Lenssen's Google Blogoscoped made Google change its mind. Thanks to Matt Cutts and other Googlers, I got this reply:

"While we do require that publishers obtain permission before running AdSense ads on Blogger sites that contain Google Trademarks in the URL, we've re-reviewed your site and are happy to grant you permission to continue running ads on googlesystem.blogspot.com."

This week, Google disabled the ads again, for the same reasons as before, but this time I didn't receive any reply from Google. It's strange to see this if you think that Google Operating System has never mislead people into thinking it's an official Google blog and the usage of "Google" in a subdomain should be allowed: "Don't register Google trademarks as second-level domain names," says one of the many Google guidelines. There are many important sites that use "Google" as part of the subdomain or domain name and Google still serves ads for these sites. What's more, I received permission to run ads on this blog.

unhappyGoogleTMUsers++;

Update (13 hours later).
unhappyGoogleTMUsers--;

Interesting response from Google: "As you know, we value automation, and sometimes, that automation is unable to parse nuances that separate illegal use from legal use." Hopefully, Google will do a better job at detecting the AdSense policy violations in the future and will adopt a clearer set of rules.

Thank you, Matt Cutts and Vic Gundotra.