Monday, January 31, 2011

A New Google Docs Homepage

As previously anticipated, Google Docs has a new homepage that's better suited for managing files, not just editable documents.

There's a sidebar that shows a small thumbnail and some useful information about the selected file. Google added new filters for images and videos, for public and private files, but dropped the advanced search form, which was more difficult to use. The drawback is that there are many search features that are no longer available in the interface and you need to use operators to get them back.



The slideshow feature borrowed from Google Wave is one of the most useful additions:


For some reason, Google Docs has a new name for folders: they're now called collections. "Collections are designed to combine the best features of labels and folders. A file can live in multiple collections, just like with Gmail labels. Collections can also be stored hierarchically, just like folders on your desktop. And of course, collections can be shared, just like you can share docs," explains Google. Technically speaking, none of these features is new, but it's much easier to add a file to multiple folders collections. Unfortunately, Google's new terminology will probably confuse users and many people won't realize that clicking "Organize" lets you add a file to a collection.

Google also dropped checkboxes, so now it's much more difficult to select multiple files: you need to use Shift for contiguous selections or Control for scattered files (Cmd if you're using a Mac).

Another new feature is priority sorting, which orders files based on importance. For example, a starred document that has been last updated 5 hours ago is likely to rank higher than a more recent document that hasn't been starred. Google says that it's like Gmail's Priority Inbox, but there's an important difference: Gmail always sorts conversations by date.

Overall, the new Google Docs homepage is a mixed bag. Google tries to morph Google Docs into an online storage service, while moving away from the initial goal of the service: editing documents online. Suddenly Google Docs is no longer an appropriate name for the service, 1 GB of free storage is not enough, the APIs are no longer useful because they're limited to editable documents and Google's applications seem limited because they can't handle all the files that can be uploaded. The new homepage can't address these issues, but it manages to make the interface more complicated: now it's a lot easier to open a file when you want to select it and to select the file when you want to open it.

Tip: If you don't like the new interface, there's an option at the top of the page that lets you temporarily switch to the old version. You should bookmark the URL: https://docs.google.com/?ui=1, since there's no option to permanently switch to the old UI.


{ Thanks, Karol and Ben. }

Friday, January 28, 2011

Google Filters Suggestions Associated with Copyright Infringement

Google started to filter search suggestions that include terms associated with copyright infringement like "torrent", "bittorrent", "rapidshare", "megaupload". It's a slippery slope and Google's suggestions will be less useful since they'll no longer include many popular searches.

Last month, Google explained that this is one of the changes intended to address copyright infringement. "We will prevent terms that are closely associated with piracy from appearing in Autocomplete. While it's hard to know for sure when search terms are being used to find infringing content, we'll do our best to prevent Autocomplete from displaying the terms most frequently used for that purpose."

Blacklisting keywords like "torrent" is a terrible way to prevent copyright infringement since users can always type queries without Google's help. The main consequence is that Google will appear to be broken and users will no longer trust the suggestions because they're censored. Last year, Google started to become politically correct by removing the suggestions for queries like [why are muslim]. There will always be complaints about the suggestions, but starting to arbitrarily blacklist keywords opens a can of worms and makes it easy to remove other controversial suggestions. As Mashable says, "this is a subtle form of censorship, and at first glance it seems trivial. However, even though the censorship is slight, it still indicates Google's willingness to change its search protocols to satisfy the needs of a certain business group, in this case members of the entertainment industry."

Google doesn't blacklist "pirate bay", "isohunt", "mediafire", "cracks", "serial numbers", "keygen" and there's a simple trick to bypass the existing filters: start your queries using the blacklisted keywords (for example: [torrent ubuntu 10.10]).


Gmail Tests Image Ads

Greg Sterling spotted image ads in Gmail and this seems to be a controversial Gmail experiment. A Google spokesperson said that Google "recently started experimenting with image ads on messages with heavy image content." Greg confirmed that the image ads aren't displayed next text-only messages and they sometimes appear next to HTML messages that include a lot of images, especially newsletters.



Gmail's image ads are contextually targeted, but it's unlikely that users will tolerate them well. After all, one of Gmail's selling points was that it only used relevant text ads. Here's Google's answer from 2005 to the question "What makes Gmail different?": "There are other differences in the way Gmail provides access to your email. For example, Gmail automatically groups an email and the replies to it as a conversation. That means you always see a message in its proper context. And there are no pop-ups or banner ads in Gmail, just relevant text ads and links to related pages". Google's explanation continues: "[Gmail ads] are small and unobtrusive. They don't fill half your screen and we don't make you read them just to get to your inbox. Ads are never inserted into the body text of either incoming or outgoing Gmail messages and you won't see any pop-ups or untargeted banner ads in Gmail."

It's interesting to see that a Gmail page about privacy explains that "showing relevant advertising offers more value to users than displaying random pop-ups or untargeted banner ads". The key words are "random" and "untargeted".

{ Thanks, Greg. }

Google Image Search Indexes SVG Files

Last year, Google announced that it started to index SVG files, but the results were only returned by the web search engine. "SVG is an open, XML-based format for vector graphics with support for interactive elements. We're big fans of open standards, and our mission is to organize the world's information, so indexing SVG is a natural step. We index SVG content whether it is in a standalone file or embedded directly in HTML," explained Google at that time.

Now you can find SVG files in Google Image Search by restricting the results to this filetype in the advanced search page or by using the filetype operator. Here's an example: [molecule filetype:svg]. If you restrict the results to Wikipedia, Google returns 57,300 SVG files.



Most browsers can render SVG markup, but there are at least two important exceptions: Internet Explorer (IE9 will add support for SVG) and Android's built-in browser.

Thursday, January 27, 2011

Gmail Desktop Notifications

If you use Google Chrome, you can enable a new Gmail feature that shows desktop notifications for new messages. Go to "Settings", and enable chat notifications and mail notifications to see a small bubble when you get a new message. If you get a lot of messages, it's a good idea to only enable notifications for important messages.


The nice thing is that the notifications are displayed even when you're visiting a different site or the Chrome window is minimized. Gmail's blog mentions an important use case: "you've probably missed an important chat message because you weren't looking at your Gmail window when it came in".

Unfortunately, you'll no longer see the notifications if you close Gmail or Google Chrome, so this isn't a perfect replacement for Gmail Notifier. This issue could be solved by background web apps, a new Chrome feature that allows installed web apps to run in the background.

Right now, desktop notifications are only available in Google Chrome, but this feature has been implemented in WebKit and there's a W3C draft for web notifications. Google Calendar has a similar feature as part of the "Gentle reminders" experiment.

{ Thanks, Sterling, Karol, Niranjan and Ran. }

Wednesday, January 26, 2011

Android 3.0 Platform Preview and Updated SDK Tools

Android 3.0 (Honeycomb) is a new version of the Android platform that is designed from the ground up for devices with larger screen sizes, particularly tablets. It introduces a new “holographic” UI theme and an interaction model that builds on the things people love about Android — multitasking, notifications, widgets, and others — and adds many new features as well.

Besides the user-facing features it offers, Android 3.0 is also specifically designed to give developers the tools and capabilities they need to create great applications for tablets and similar devices, together with the flexibility to adapt existing apps to the new UI while maintaining compatibility with earlier platform versions and other form-factors.

Today, we are releasing a preview of the Android 3.0 SDK, with non-final APIs and system image, to allow developers to start testing their existing applications on the tablet form-factor and begin getting familiar with the new UI patterns, APIs, and capabilties that will be available in Android 3.0.

Here are some of the highlights:

UI framework for creating great apps for larger screen devices: Developers can use a new UI components, new themes, richer widgets and notifications, drag and drop, and other new features to create rich and engaging apps for users on larger screen devices.

High-performance 2D and 3D graphics: A new property-based animation framework lets developers add great visual effects to their apps. A built-in GL renderer lets developers request hardware-acceleration of common 2D rendering operations in their apps, across the entire app or only in specific activities or views. For adding rich 3D scenes, developers take advantage of a new 3D graphics engine called Renderscript.

Support for multicore processor architectures: Android 3.0 is optimized to run on either single- or dual-core processors, so that applications run with the best possible performance.

Rich multimedia: New multimedia features such as HTTP Live streaming support, a pluggable DRM framework, and easy media file transfer through MTP/PTP, give developers new ways to bring rich content to users.

New types of connectivity: New APIs for Bluetooth A2DP and HSP let applications offer audio streaming and headset control. Support for Bluetooth insecure socket connection lets applications connect to simple devices that may not have a user interface.

Enhancements for enterprise: New administrative policies, such as for encrypted storage and password expiration, help enterprise administrators manage devices more effectively.

For an complete overview of the new user and developer features, see the Android 3.0 Platform Highlights.

Additionally, we are releasing updates to our SDK Tools (r9), NDK (r5b), and ADT Plugin for Eclipse (9.0.0). Key features include:

  • UI Builder improvements in the ADT Plugin:
    • Improved drag-and-drop in the editor, with better support for included layouts.
    • In-editor preview of objects animated with the new animation framework.
    • Visualization of UI based on any version of the platform. independent of project target. Improved rendering, with better support for custom views.

To find out how to get started developing or testing applications using the Android 3.0 Preview SDK, see the Preview SDK Introduction. Details about the changes in the latest versions of the tools are available on the SDK Tools, the ADT Plugin, and NDK pages on the site.

Note that applications developed with the Android 3.0 Platform Preview cannot be published on Android Market. We’ll be releasing a final SDK in the weeks ahead that you can use to build and publish applications for Android 3.0.

Tuesday, January 25, 2011

Chrome's New Sad Tab Page

The latest Chromium builds include a new sad tab page that replaces the famous "aw, snap!" message with "he's dead, Jim!". The message continues: "Something caused this page to be killed , either because the operating system ran out of memory, or for some other reason. To continue, press Reload or go to another page." To see the page, just type about:kill in the address bar after opening a new tab.

"He's dead, Jim!" is a catchphrase used by Leonard H. McCoy, a character from Star Trek. "The line has entered popular culture as a general metaphor, with uses as diverse as descriptions of an unresponsive electronic circuit, an example of how to add an audio file to function as an alert sound in a computer system, and an illustrative quote regarding how to know if one's opponent has been destroyed in an action hero game."


Here's the old sad tab page:


{ Thanks, Chen. }

YouTube Comment Threading

YouTube has a new option that lets you group comments and their replies. It's called "sort by thread" and it's only available if you click "see all" next to the number of comments. The option is useful if you read a reply to a comment, but you can't find the initial comment. Here's an example.

Sterling, a reader who noticed this feature, says that "the comments on YouTube are a mess, so confusing, but it looks like YouTube is testing threaded comments on the site. I wish this feature was in the watchpage, but it only shows up in the All comments page."


{ Thanks, Sterling. }

Dynamic Gmail Favicon

Favicons could show some useful information, not just a static image. If you'd like to see the number of unread messages next to Gmail's red envelope, enable "Unread message icon" in Gmail Labs. The feature only works in Chrome and Firefox, but it's not very reliable.

"When you're visiting sites other than Gmail, it's easy to find out how many unread messages are in your inbox by glancing at the title of your Gmail tab or window. However, if you have a ton of tabs open, or if you use Chrome's Pin Tab feature that hides everything except the tab's icon, it can be tricky to figure out without switching tabs," mentions Gmail's blog.

The counter is supposed to show the number of unread messages from the inbox, but it doesn't always work properly.


If you'd like even more features, Lifehacker suggests to use Minimalist Gmail, a Chrome extension that not only adds an unread counter to Gmail's favicons, but it also lets you customize the navigation bar and remove extraneous features like the "invite a friend" box or the cluttered footer.


{ Thanks, Greg. }

Google Voice Number Porting

Google Voice has a lot of features that help you manage multiple phone numbers more like your email accounts. The main problem is that you need a new phone number to use most of the advanced features and this is not convenient.

Now you can port an existing mobile phone number to Google Voice for a small fee: $20. The process is rather complicated and may incur additional charges, but it's important to keep in mind that Google is not a wireless carrier (at least not yet) and you'll still have to get a non-Google phone number.
Number porting is a feature in which your existing mobile number will become your Google Voice number and you can take advantage of the full set of the Google Voice features, like one number to ring all of your phones, online voicemail, and more. Number Porting also costs a one-time fee of $20, payable via Google Checkout. Note that you will still need carrier service (Sprint, T-Mobile, Cricket, etc.) to receive calls on your mobile phone.





At the moment, you can make free calls in the US and Canada if you use Gmail Chat, but it's likely that this feature will also be available in Google Voice's mobile apps for Android and iPhone.

{ Thanks, CJ. }

Gmail Cloud Print

Google has enabled Cloud Print in Chrome's Dev Channel builds for Windows, but the only option available was to print a test page. Now you can use Google Cloud Print from Gmail's mobile web app for Android and iPhone. The integration lets you print attachments without having to use a full-fledged computer. Since there's no printer with native support for Google Cloud Print, you still need a computer running Google Chrome.

Cloud Print is enabled by default in Chrome Dev Channel and it can be manually enabled in the other builds by typing about:flags in the address bar, clicking "Enable" next to "Cloud Print Proxy" and restarting the browser. To be able to use it, you first need to go to Options >> Under the hood >> Google Cloud Print and log in with a Google account.




Update: According to Google, this feature is also available in Google Docs. "This feature will be rolling out for English speaking users in the US and will work on most phones that support HTML5, such as devices running Android 2.1+ and iOS 3+."

Saturday, January 22, 2011

Google Navigation Bar Switch

Google made a small change to the navigation bar used for its non-search services: the link to Google Reader was moved to the "more" drop-down, while the link to Picasa Web Albums was brought back to the main bar. At some point, both links were included in the main bar.


Google's Brian Rose said that the Picasa Web team is working on "some fun stuff" and we'll hopefully see some important changes in the near future. Meanwhile, Google Reader's team posted on Twitter that "the Reader link at the top of Gmail (and other sites) was accidentally removed. It's coming back soon, we promise."

It's still surprising to see that Google's navigation bar is not customizable and you can't add your favorite Google services. Google tested a customizable bar back in 2006, but this feature was quickly abandoned.

Update: A few days later, the link to Google Reader is back.


{ Thanks, Karol and Kristian. }

Thursday, January 20, 2011

Processing Ordered Broadcasts

[This post is by Bruno Albuquerque, an engineer who works in Google’s office in Belo Horizonte, Brazil. —Tim Bray]

One of the things that I find most interesting and powerful about Android is the concept of broadcasts and their use through the BroadcastReceiver class (from now on, we will call implementations of this class “receivers”). As this document is about a very specific usage scenario for broadcasts, I will not go into detail about how they work in general, so I recommend reading the documentation about them in the Android developer site. For the purpose of this document, it is enough to know that broadcasts are generated whenever something interesting happens in the system (connectivity changes, for example) and you can register to be notified whenever one (or more) of those broadcasts are generated.

While developing Right Number, I noticed that some developers who create receivers for ordered broadcasts do not seem to be fully aware of what is the correct way to do it. This suggests that the documentation could be improved; in any case, things often still work(although it is mostly by chance than anything else).

Non-ordered vs. Ordered Broadcasts

In non-ordered mode, broadcasts are sent to all interested receivers “at the same time”. This basically means that one receiver can not interfere in any way with what other receivers will do neither can it prevent other receivers from being executed. One example of such broadcast is the ACTION_BATTERY_LOW one.

In ordered mode, broadcasts are sent to each receiver in order (controlled by the android:priority attribute for the intent-filter element in the manifest file that is related to your receiver) and one receiver is able to abort the broadcast so that receivers with a lower priority would not receive it (thus never execute). An example of this type of broadcast (and one that will be discussing in this document) is the ACTION_NEW_OUTGOING_CALL one.

Ordered Broadcast Usage

As mentioned earlier in this document, the ACTION_NEW_OUTGOING_CALL broadcast is an ordered one. This broadcast is sent whenever the user tries to initiate a phone call. There are several reasons that one would want to be notified about this, but we will focus on only 2:

  • To be able to reject an outgoing call;

  • To be able to rewrite the number before it is dialed.

In the first case, an app may want to control what numbers can be dialed or what time of the day numbers can be dialed. Right Number does what is described in the second case so it can be sure that a number is always dialed correctly no matter where in the world you are.

A naive BroadcastReceiver implementation would be something like this (note that you should associate this receiver with the ACTION_NEW_OUTGOING_CALL broadcast in the manifest file for your application):

public class CallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Original phone number is in the EXTRA_PHONE_NUMBER Intent extra.
String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);

if (shouldCancel(phoneNumber)) {
// Cancel our call.
setResultData(null);
} else {
// Use rewritten number as the result data.
setResultData(reformatNumber(phoneNumber));
}
}

The receiver either cancels the broadcast (and the call) or reformats the number to be dialed. If this is the only receiver that is active for the ACTION_NEW_OUTGOING_CALL broadcast, this will work exactly as expected. The problem arrises when you have, for example, a receiver that runs before the one above (has a higher priority) and that also changes the number as instead of looking at previous results of other receivers, we are just using the original (unmodified) number!

Doing It Right

With the above in mind, here is how the code should have been written in the first place:

public class CallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Try to read the phone number from previous receivers.
String phoneNumber = getResultData();

if (phoneNumber == null) {
// We could not find any previous data. Use the original phone number in this case.
phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
}

if (shouldCancel(phoneNumber)) {
// Cancel our call.
setResultData(null);
} else {
// Use rewritten number as the result data.
setResultData(reformatNumber(phoneNumber));
}
}

We first check if we have any previous result data (which would be generated by a receiver with a higher priority) and only if we can not find it we use the phone number in the EXTRA_PHONE_NUMBER intent extra.

How Big Is The Problem?

We have actually observed phones with a priority 0 receiver for the NEW_OUTGOING_CALL intent installed out of the box (this will be the last one that is called after all others) that completely ignores previous result data which means that, in effect, they disable any useful processing of ACTION_NEW_OUTGOING_CALL (other than canceling the call, which would still work). The only workaround for this is to also run your receiver at priority 0, which works due to particularities of running 2 receivers at the same priority but, by doing that, you break one of the few explicit rules for processing outgoing calls:

“For consistency, any receiver whose purpose is to prohibit phone calls should have a priority of 0, to ensure it will see the final phone number to be dialed. Any receiver whose purpose is to rewrite phone numbers to be called should have a positive priority. Negative priorities are reserved for the system for this broadcast; using them may cause problems.”

Conclusion

There are programs out there that do not play well with others. Urge any developers of such programs to read this post and fix their code. This will make Android better for both developers and users.

Notes About Priorities

  • For the NEW_OUTGOING_CALL intent, priority 0 should only be used by receivers that want to reject calls. This is so it can see changes from other receivers before deciding to reject the call or not.

  • Receivers that have the same priority will also be executed in order, but the order in this case is undefined.

  • Use non-negative priorities only. Negative ones are valid but will result in weird behavior most of the time.

Google's New CEO: Larry Page

Eric Schmidt announced today that Larry Page will become Google's CEO.

Larry will now lead product development and technology strategy, his greatest strengths, and starting from April 4 he will take charge of our day-to-day operations as Google's Chief Executive Officer. In this new role I know he will merge Google's technology and business vision brilliantly. I am enormously proud of my last decade as CEO, and I am certain that the next 10 years under Larry will be even better! Larry, in my clear opinion, is ready to lead.

Sergey Brin's new title will be Co-Founder and he will work on strategic projects, while Eric Schmidt will be the Executive Chairman. "I will focus wherever I can add the greatest value: externally, on the deals, partnerships, customers and broader business relationships, government outreach and technology thought leadership that are increasingly important given Google's global reach; and internally as an advisor to Larry and Sergey," explains Eric Schmidt, who became Google's CEO in August 2001.


Here's an interesting excerpt from Google's 2004 SEC filling:
We run Google as a triumvirate. Sergey and I have worked closely together for the last eight years, five at Google. Eric, our CEO, joined Google three years ago. The three of us run the company collaboratively with Sergey and me as Presidents. The structure is unconventional, but we have worked successfully in this way.

To facilitate timely decisions, Eric, Sergey and I meet daily to update each other on the business and to focus our collaborative thinking on the most important and immediate issues. Decisions are often made by one of us, with the others being briefed later. This works because we have tremendous trust and respect for each other and we generally think alike. Because of our intense long term working relationship, we can often predict differences of opinion among the three of us. We know that when we disagree, the correct decision is far from obvious. For important decisions, we discuss the issue with a larger team appropriate to the task. Differences are resolved through discussion and analysis and by reaching consensus. Eric, Sergey and I run the company without any significant internal conflict, but with healthy debate. As different topics come up, we often delegate decision-making responsibility to one of us.

We hired Eric as a more experienced complement to Sergey and me to help us run the business. Eric was CTO of Sun Microsystems. He was also CEO of Novell and has a Ph.D. in computer science, a very unusual and important combination for Google given our scientific and technical culture. This partnership among the three of us has worked very well and we expect it to continue. The shared judgments and extra energy available from all three of us has significantly benefited Google.

Eric has the legal responsibilities of the CEO and focuses on management of our vice presidents and the sales organization. Sergey focuses on engineering and business deals. I focus on engineering and product management.

It's interesting to notice that today's announcement sends Google back in time. 10 years ago, Larry Page was Google's CEO and Eric Schmidt was the chairman. Now "day-to-day adult supervision [is] no longer needed."

More Compact Google Search Options

Google used to group the options from the search sidebar so you can quickly find the filters related to location, visited pages and the different ways to present search results. All these groups have been merged and Google only kept the group that lets you restrict the results to recent web pages. Google also removed the "related searches" view which showed a list of related searches at the top of the page and allowed you to compare the results for different searches.

"Based on your search and the Google property you've selected, you'll see a customized list of filtering tools. We'll automatically show you the tools that seem most relevant to your search, so you won't always see all of these tools," explains Google. To display all the filters, click "more search tools".


Here's a screenshot that shows some of the old sections:

Esc to the Rescue

Google's search engine is already fast, but what if you could save more time?

Let's say that you've typed a query and pressed Enter, but the results aren't great. How to quickly delete your query and type something else? Press Esc and start typing the new query. Another option is to click on the small "x" icon from the search box.


If you want to add some new keywords to your query, there's no need to scroll to the top of the page and find the search box. Just type the words you want to add. Google is smart enough to insert a space since this key is used for scrolling.

This only works if Google Instant is enabled, just like the other Google search shortcuts and Google Instant shortcuts.

Wednesday, January 19, 2011

New Google Maps Navigation Controls

After more than three months of testing, the new Google Maps navigation controls have replaced the classic tabs. By default, Google shows a small preview of the satellite imagery and a link to the traffic layer, but you'll get more options if you mouse over "satellite" or "traffic".


Google lists the layers that are available (terrain, webcams, the confusingly named Buzz, videos, Wikipedia, bicycling, real estate, transit, 45 degree imagery, labels), including a list of previous searches and driving directions.



"When we launched Google Maps, we had one layer -- the map. Since then, we've added more than ten different ways to explore the world around you, including photos, transit and traffic information, as well as satellite and terrain views. We've now updated the design so that you can more easily see and switch between the various viewing options that are available," explains Google.

I find the new interface more confusing, but I admit that it will better accommodate the new layers that will be released. Until now, if you wanted to switch to the satellite mode, you clicked the "satellite" button and that was it. Now Google shows a lot more options when you mouse over the button and you might even forget what you wanted to do.

Gmail Labs Search

There are so many Labs features in Gmail that's difficult to find one of them. There's always Ctrl+F to the rescue, but you shouldn't have to use a browser feature for this.

To solve this problem, Gmail added a search box that performs some simple text matching and it's not another Labs feature, so anyone can use it. Start typing docs, chat, labels and you'll see a list of Labs experiments that match your keywords.


My favorite feature is that you can now link to a Gmail Labs experiment by adding /keywords to the URL: http://mail.google.com/mail/#settings/labs/apps search.

{ via Gmail Blog }

Google Chrome and the Beginning of Time

A recent Chromium build updated the message used for the "clear browsing data" section. The most impressive option lets you "obliterate the following items from the beginning of time". It's less boring than "clear browsing data from this period: everything", but users may need to use a dictionary and to get a sense of humor.


In other news, the tabbed settings page is now the default option in Chromium and this feature will probably be enabled in Chrome 10. The new settings page comes with a search box that lets you quickly find an option (this feature would be much more useful in Firefox, Opera or Internet Explorer) and a default page zoom option.

New YouTube Homepage

Last month, YouTube tested a new homepage with many useful features. The new homepage is now available to everyone. The list of new features hasn't changed, even though some of them have been slightly tweaked:
* Combined list - Merges your subscriptions, friend activity, and recommendations into one easier-to-scan list
* Don't miss a video - If a channel uploads 4 videos in a day, you'll see all 4 - instead of just the latest video
* Delete anything - Hover over any video you don't want to watch and click 'x'
* Or just grey it out - Videos you've already watched will be greyed out - so even without deleting, you'll know where you left off
* Help me re-find stuff I just watched - Your homepage will include your recent likes and favorites so you can easily get back to them
* Easy inbox - Links to your inbox (personal messages & comments) are front and center
* Load much more - Watch older videos - all without leaving the homepage


If you don't like the combined view, click on "subscription uploads" at the top of the page to only see the latest videos from your favorite channels. Unfortunately, the homepage is no longer customizable, so you can't hide the sections you don't use.

Google Project Hosting Adds File Editing

Google's service for hosting open-source projects added a new feature that lets you edit your files from a browser. It might seem like a minor addition, but it could be the first step towards a full-fledged online IDE.



"Perhaps you were browsing the code online from your Cr-48, or perhaps you just didn't have Subversion or Mercurial handy. Today the Google Project Hosting team is announcing a new feature for you: the ability to edit your source code files directly in the browser, in our online editor powered by CodeMirror. Just look for the 'edit file' link on files in the online source browser: As you edit, you can preview the diff of your changes so you know exactly what you are committing," explains Google.

The nice thing is that you can edit a file even if you're not a member of a project. After making the changes, submit the new version of the file as a patch, along with a description. If your patch is approved, your changes improve an open-source project.

{ Thanks, Aaron. }

The Good News About Android's Version Distribution

When you develop a product and use liberal licensing terms, there's always the risk that someone else will use your code to create a poor product. Maybe it will include a lot of unnecessary features, it will be slow and have a lot of bugs or it will never use the latest version of your software.

Android's goal was to be a common baseline that enables innovation in the mobile space. Convincing other companies to use Android wasn't easy and that's one of the biggest Google accomplishments. Not many people believed in Android's success three years ago and its adoption rate is still surprising.

Convincing companies to update their Android-based firmware faster is much easier. If users only buy Android phones that have the latest version of the operating system and constantly request phone manufacturers and carriers to update the software, then they'll work harder to improve their products.

Google has recently released some information about the current distribution of the Android versions and the good news is that 87.4% of the Android phones use Android 2.x, up from about 55% in July. 51.8% of the phones use Froyo, a version released 7 months ago. In only one month (August 2010), Froyo's share grew from 5.5% to more than 28%, after Motorola and HTC updated phones like Droid, Droid Incredible, Evo 4G, and Desire.


ZDNet says that "almost 13% of Android users are still running versions of the mobile OS that are several generations old and these users will never see Android 2.1", but this percentage is constantly decreasing. Even if they're using Android 1.6, that's still a much better operating system than the one from a feature phone and it still lets them use many apps from the Android Market. A slower update rate is a small price to pay for creating an ecosystem of heterogeneous devices that run the same operating system which is not perfect, but it's "good enough".

{ image licensed as Creative Commons Attribution by Google }

Tuesday, January 18, 2011

Abandoned Knol

Knol's homepage says a lot about the current state of the project. There's a big empty section called "what's new", a single featured knol that has 1,000 views, while the "most discussed" section doesn't include any knol and the search feature no longer works properly.

Knol has been last updated in December 2009 and it's obvious that the service has been abandoned. Somebody needs to close Knol before it's too late.




If you want to find a list of abandoned Google products, check the copyright notice at the bottom of their homepage and see if it's been updated. Friend Connect, Google Desktop and Knol still show an old message: "©2009 Google".



Update (one day later): Knol is up and running again, but for how long?

Google Docs to Add Preview Pane, Music Player, Collections

Google Docs code includes references to some upcoming features that could make the service better suited for storing media content. There are many references to a preview pane that will allow you to view more information about your files and even check the content without actually opening the files.


There's even a player for audio files, much like the video player launched last week. The preview pane will probably allow you to play music files from the Google Docs homepage.


You'll also be able to create playlists (here's the icon for playlists):


Another new option lets you group files from multiple folders in collections.


At the moment, Google Docs includes a small list of applications, but that will change when you'll be able to add third-party apps. That's why Google will have to add a new option for selecting the application that will open a certain file.


It's likely that some of these features will be available in the new Google Docs interface that has been accidentally revealed in a YouTube video.

Saturday, January 15, 2011

Better Music Video Results in Google Search

Google updated the group of video search results sometimes intermingled with regular results, but only for queries bands and music artists.

"People often come to Google to find music videos, and this week we improved our results so now when you're searching for your favorite band or album, you'll find popular clips organized in a new way. For example, search for [michael jackson] and you'll find some of the King of Pop's most famous videos, including clear text indicating the length of the video, the album and the year it was published. The feature scans the entire web for video content and algorithmically ranks the best sources for each song. Rather than return repetitive links, we group results for the same song together, making it easier to scan and choose the song you're looking for."


The results aren't always the best music videos and Google should provide options to sort them by year, album, genre. Another issue is that, even though Google shows results from different video sites, the main link usually sends you to YouTube and that's not fair.

Thursday, January 13, 2011

Google Places for iPhone

Why build a local search app for iPhone when the Maps app already lets you find businesses and local attractions? Apple's Maps app doesn't use all the information that's available about businesses, doesn't show photos, reviews and other details. That's one of the reasons why Google decided to build an iPhone app called Google Places.

"We realize the importance of finding places you'll love while you're out and about, no matter what mobile device you use. And Places with Hotpot not only helps you find places near where you are, it gives you the best places to go for you by personalizing your search results," explains Google.

The application integrates with Google Hotpot and uses your ratings and your friends' ratings to recommend other places. Google Places encourages users to rate businesses and to post reviews in order to get better search results and that's an interesting proposition. What's missing from the app is a list of business you've previously rated and the Hotpot feed that's now available on Google Maps.


Geo services are one of the key Google assets and it's very likely that Google will use them to create a stealth social network. Google Maps is probably the best mapping service and one of the most popular local search engines, so the social layer will have an important user base. Unlike Google Buzz, Hotpot doesn't have privacy issues yet and it doesn't feel like a different app because it's properly integrated with Google Maps.

Google Places for iOS can be installed from the Apple App Store and it's only available in English.

Have Androids. Will Travel.

[The first part of this post is by Reto Meier. —Tim Bray]

From c-base in Berlin to the Ice Bar in Stockholm, from four courses of pasta in Florence to beer and pretzels in Munich, and from balalikas in Moscow to metal cage mind puzzles in Prague - one common theme was the enthusiasm and quality of the Android developers in attendance. You guys are epic.

For those of you who couldn't join us, we're in the middle of posting all the sessions we presented during this most recent world tour. Stand by for links.

Droidcon UK

We kicked off our conference season at Droidcon UK, an Android extravaganza consisting of a bar camp on day 1 and formal sessions on day 2. It was the perfect place for the Android developer relations team to get together and kick off three straight weeks of Google Developer Days, GTUG Hackathons, and Android Developer Labs.

Android Developer Labs

The first of our Android Developer Labs was a return to Berlin: home to c-base (a place we never got tired of) and the Beuth Hochschule für Technik Berlin. This all day event cost me my voice, but attracted nearly 300 developers (including six teams who battled it out to win a Lego Mindstorm for best app built on the day.)

Next stop was Florence which played host to our first Italian ADL after some fierce campaigning by local Android developers. 160 developers from all over Italy joined us in beautiful Florence where the Firenze GTUG could not have been more welcoming. An afternoon spent with eager developers followed up by an evening of real Italian pasta - what's not to love?

From the warmth of Florence to the snow of Stockholm where we joined the Stockholm GTUG for a special Android themed event at Bwin Games. After a brief introduction we split into six breakout sessions before the attendees got down to some serious hacking to decide who got to bring home the Mindstorm kit.

Google Developer Days

The Google Developer Days are always a highlight on my conference schedule, and this year's events were no exception. It's a unique opportunity for us to meet with a huge number of talented developers - over 3,000 in Europe alone. Each event featured a dedicated Android track with six sessions designed to help Android developers improve their skills.

It was our first time in Munich where we played host to 1200 developers from all over Germany. If there was any doubt we'd come to the right place, the hosting of the Blinkendroid Guinness World Record during the after-party soon dispelled it.

Moscow and Prague are always incredible places to visit. The enthusiasm of the nearly 2,500 people who attended is the reason we do events like these. You can watch the video for every Android session from the Prague event and check out the slides for each of the Russian sessions too.

GTUG Hackathons

With everyone in town for the GDDs we wanted to make the most it. Working closely with the local GTUGs, the Android and Chrome teams held all-day hackathon bootcamps in each city the day before the big event.

It was a smaller crowd in Moscow, but that just made the competition all the more fierce. So much so that we had to create a new Android app just for the purpose of measuring the relative volume of applause in order to choose a winner.

If a picture is a thousand words, this video of the Prague Hackathon in 85 seconds will describe the event far better than I ever could. What the video doesn't show is that the winners of "best app of the day" in Prague had never developed for Android before.

In each city we were blown away by the enthusiasm and skill on display. With so many talented, passionate developers working on Android it's hard not to be excited by what we'll find on the Android Market next. In the mean time, keep coding; we hope to be in your part of the world soon.

On To South America

[Thanks, Reto. This is Tim again. The South American leg actually happened before the Eurotour, but Reto got his writing done first, so I'll follow up here.]

We did more or less the same set of things in South America immediately before Reto’s posse fanned out across Europe. Our events were in São Paulo, Buenos Aires, and Santiago; we were trying to teach people about Android and I hope we succeeded. On the other hand, I know that we learned lots of things. Here are a few of them:

  • Wherever we went, we saw strange (to us) new Android devices. Here’s a picture of a Brazilian flavor of the Samsung Galaxy S, which comes with a fold-out antenna and can get digital TV off the air. If you’re inside you might need to be near a window, but the picture quality is fantastic.

  • There’s a conventional wisdom about putting on free events: Of the people who register, only a certain percentage will show up. When it comes to Android events in South America, the certain-percentage part is wrong. As a result, we dealt with overcrowded rooms and overflow arrangements all over the place. I suppose this is a nice problem to have, but we still feel sorry about some of the people who ended up being overcrowded and overflowed.

  • Brazilians laugh at themselves, saying they’re always late. (Mind you, I’ve heard Indians and Jews and Irish people poke the same fun at themselves, so I suspect lateness may be part of the human condition). Anyhow, Brazilians are not late for Android events; when we showed up at the venue in the grey light of dawn to start setting up, they were already waiting outside.

  • I enjoyed doing the hands-on Android-101 workshops (I’ve included a picture of one), but I’m not sure Googlers need to be doing any more of those. Wherever you go, there’s now a community of savvy developers who can teach each other through the finer points of getting the SDK installed and working and “Hello World” running.

  • Brazil and Argentina and Chile aren’t really like each other. But each has its own scruffy-open-source-geek contingent that likes to get together, and Android events are a good opportunity. I felt totally at home drinking coffee with these people and talking about programming languages and screen densities and so on, even when we had to struggle our way across language barriers.

The people were so, so, warm-hearted and welcoming and not shy in the slightest and I can’t think about our tour without smiling. A big thank-you to all the South-American geeks and hackers and startup cowboys; we owe you a return visit.