Saturday, June 29, 2013

Full Google Reader Backup

"Reader is dead," says Mihai Parparita, one of the former Google Reader engineers. You still have 2-3 days to use Google Reader, but the best thing you can do is to export your data.

Google Takeout lets you export some of your Reader data, but not everything: your subscriptions, your notes, starred items, shared items, liked items, the list of followers and the people you were following, the items shared by the people you were following. Mihai Parparita wrote some Python scripts that download everything from your Google Reader accounts, including the entire content of the posts from your subscriptions. You need Python 2.7, some basic command-line skills and a lot of free storage: my backup has more than 5 GB for about 250 feeds (vs 125 MB for the uncompressed Takeout backup).


Here are some tips for running the script in Windows 7/8:

- install Python from here (Python 2.7.5 Windows Installer)
- download Mihai's zip file and extract the files
- open the folder in Windows Explorer and you should see a list of subfolders like "base", "bin", "feed_archive".


- Shift + right-click below the folders and select "open command-line window here".
- copy this code, paste it in the command-line window and press Enter (I assumed that Python's folder is c:\python27):

set PYTHONPATH=%cd%
c:\python27\python reader_archive\reader_archive.py --output=download


- a web page will open in your favorite browser and you'll need to click "Accept", copy the authorization code and paste it in the command-line window.
- wait until the script downloads all the files.

Mihai also started to write a script that lets you browse your archive. It's a work in progress, probably because the script for downloading your data is more important right now.

There's also a script for downloading a feed's archive. "Google Reader has (for the most part) a copy of all blog posts and other feed items published since its launch in late 2005 (assuming that at least one Reader user subscribed to the feed). This makes it an invaluable resource for sites that disappear, can serve as a backup mechanism and enables tools to be created." My post from 2007 provides another way to download the history of a feed. You can also upload your OPML file to this site, which preserves hitorical feed data.

"I don't fault Google for providing only partial data via Takeout. Exporting all 612,599 read items in my account (and a few hundred thousand more from subscriptions, recommendations, etc.) results in almost 4 GB of data. Even if I'm in the 99th percentile for Reader users (I've got the badge to prove it), providing hundreds of megabytes of data per user would not be feasible. I'm actually happy that Takeout support happened at all, since my understanding is that it was all during 20% time," says Mihai Parparita, who spent 5 years working on Google Reader.

If you're curious to know which Reader alternative gets a thumb up from Mihai, his answer is "a toss-up between NewsBlur and Digg Reader."

Lorem Ipsum Google Translate

"In publishing and graphic design, lorem ipsum is a placeholder text (filler text) commonly used to demonstrate the graphic elements of a document or visual presentation, such as font, typography, and layout, by removing the distraction of meaningful content. The lorem ipsum text is typically a section of a Latin text by Cicero with words altered, added, and removed that make it nonsensical and not proper Latin". (Wikipedia)

What happens when you use Google Translate to find the English translation of one of the many lorem ipsum texts? You get this:


"We will be sure to post a comment. Add tomato sauce, no tank or a traditional or online. Until outdoor environment, and not just any competition, reduce overall pain. Cisco Security, they set up in the throat develop the market beds of Cura; Employment silently churn-class by our union, very beginner himenaeos. Monday gate information. How long before any meaningful development. Until mandatory functional requirements to developers. But across the country in the spotlight in the notebook. The show was shot. Funny lion always feasible, innovative policies hatred assured. Information that is no corporate Japan."

Well, Google Translate for Latin is still in alpha and the text is nonsensical. There are many actual mistakes in Google Translate. Statistical machine translation sometimes produces humorous results.

{ via waxy.org }

Friday, June 28, 2013

2 Years of Google+

Google+ was launched 2 years ago to fix online sharing. "We'd like to bring the nuance and richness of real-life sharing to software. We want to make Google better by including you, your relationships, and your interests. And so begins the Google+ project," announced Google.

2 years later, Google+ grows faster than anticipated, brings cool new features, enables vibrant discussions, makes your photos look better and redefines the word "hangout".

There's a special Google +2 logo:


... and the jingle is now festive:


Here's the animated version:


Is Google+ an upgraded Google? Google+ brought a new consistent design for Google's services, made sharing more straightforward and search more social and personal. Google+ was a necessary tectonic shift for Google. It's now a different Google Labs, where the experiments turn into features that are used by hundreds of millions of people. From auto-enhanced photos to auto-tagged content, from video conferencing to event management, from social games to surfacing useful content, from object recognition to photo editing, Google+ is the place where you can use some of the most advanced features released by Google in the past 2 years.

Don't forget to follow this page if you use Google+ and you want to find even more news and tips about Google.

YouTube's Subscription Reminder

If you watch a few videos from a channel, YouTube's homepage shows a message that recommends you to subscribe to that channel.

"Subscribe to see more videos from this channel. You've recently watched videos from [channel's name]. Subscribe to see their next videos right here on your YouTube homepage."


You can subscribe to the channel or hide the message by clicking the small "x" icon.

Now that you've subscribed to the channel, you can change your subscription preferences when you watch a video from that channel. There's a wheel icon next to the "subscribed" button that lets you enable email notifications and restrict the subscription to new uploads.


If you need more suggestions, check the "recommended channels" sidebar from YouTube's homepage or visit this page. Remove the channels you don't like to improve YouTube's future recommendations. Mouse over the channel's thumbnail and click "preview" to check some of the recently uploaded videos. Use the arrows to navigate between YouTube's recommended channels.

Office Document Editor for Chromebooks

Google works on creating a Native Client app for Quickoffice, a software acquired last year. There's an Office Viewer extension for Chrome, which is bundled with Chrome OS.

Now Google experiments with adding editing features to the Office Viewer. If you have a Chromebook, you've switched to the Dev Channel and have the latest Chrome OS version (29.0.1547.2), you can enable these features:

1. open a new tab

2. type this in the address bar: chrome://flags/ and then press Enter

3. use Ctrl+F to search for "document editing"

4. click "Enable" next to "Enable document editing"


5. click the "Restart Now" button to restart your computer and use the new flag.

The editor is pretty basic and it only works for Microsoft Word documents and Excel spreadsheets. For some reason, the document editor only saves documents in the Office 2007 format.




It's likely that editing will be a standard feature and it will also be available in the Chrome extension. Google will have to change its name to shows that it's more than a file viewer. It will be interesting to see how Quickoffice for Chrome integrates with Google Drive.

Chrome OS supports a lot of file formats without relying on Google Drive. You can open and edit photos (BMP, PNG, GIF, JPEG, WEBP), you can play videos (3GP, AVI, MOV, MP4, WEBM, OGV), play music (MP3, M4A, OGG, WAV), create ZIP archives, extract files from archives (ZIP, RAR, TAR), open PDF files, text files and Microsoft Office documents (DOC, DOCX, XLS, XLSX, PPT, PPTX). Offline and natively.

{ via François Beaufort }

Thursday, June 27, 2013

Google+ Photos Trash

Did you know that Google+ Photos has a trash section? You can find it by clicking "More" and then "Trash" or you can use this link. Google says that the "items will be permanently deleted after 60 days" and shows a link for manually emptying the trash.



But there's more:

"Photos and videos you move to trash in Google+ are stored for a short period of time before they are permanently deleted. If you move an item to trash, and later want to retrieve it, you can do so by following these instructions: select Photos from the Google+ navigation menu, click More and select Trash from the dropdown, click one or many checkboxes to select photos and choose Restore to return these photos back to Google+. These photos will be restored to the same album(s) they were located prior to being moved to trash. To permanently delete photos, select the items you'd like to delete, and click Delete permanently."


Picasa Web Albums doesn't have a trash section. If you delete a photo from the Picasa Web interface, you can find it in the Google+ Photos trash. When you delete a photo from Google+ Photos, there's a message that says "your photo has been moved to trash" and links to the trash section.

For some reason, Google+ photos from the trash are automatically deleted after 60 days, Gmail's messages are deleted after 30 days, while Google Docs files are never deleted automatically. I wonder why.

{ Thanks, Fernando. }

Find the Number of Gmail Search Results

Gmail doesn't show the real number of search results. A few years ago, tweaking the URL helped you find the number of results, but this doesn't work anymore. Gmail only shows the real number if there are very few search results. Otherwise, you'll see "1-20 of many" and you'll have to keep clicking "next" or use the URL trick to skip many pages of results.


If you really need to find the number, there's a trick that still works. Gmail shows the number of messages for each label, so you can create a new label and then label all the search results.

Here are the steps:

1. enter your search query

2. click the "select" checkbox next to "Refresh" to select all the messages from the page

3. click the new link that shows up: "Select all conversations that match this search"


4. click the "Labels" dropdown, select "Create new" at the bottom of the list and enter the name of a new label. Try something like "Temp", "Temporary", "Search results". Click "Create" and then "OK". You should see a message similar to this one: "All conversations have been added to 'Search results.'"


5. find the label you've created in the left sidebar (you may need to click "More" to find it). Go to that label and you should find the number of search results.


Now you can delete the label from the Gmail sidebar. Click the arrow next to the label and select "Remove label". Obviously, this doesn't delete your messages.

And here are the steps for keyboard shortcut fans:

Shortcut for focusing the search box: /
Enter the query
Shortcut for selecting all messages: * then a
Click "Select all conversations that match this search" (no keyboard shortcut)
Shortcut for the "labels" dropdown: l
Enter the name of the new label
Press the down arrow
Press Enter 3 times
Shortcut for opening a label: g then l
Type the first characters from the label's name
Press Enter

{ Thanks, Eliezer. }

Wednesday, June 26, 2013

Google Play Presents: Galaxy S4 and HTC One

As promised, the Google editions of the Samsung Galaxy S4 and HTC One are available in the US Google Play store (links only work in the US, more screenshots here). Galaxy S4 costs $649, while HTC One is less expensive: $599. They're running stock Android, are unlocked and they're not subsidised by Google or carriers.

"The Google Play edition phones automatically receive updates of the latest Android software. Optimized for the latest apps, more storage for your content and a fast, clean user experience all come standard. With an unlocked smartphone from Google Play, you can find the service plan that suits your needs. Upgrade your handset with no carrier commitment or contract. Unlocked means world travel is easy. Pick up prepaid plans as needed, or get a month-to-month contract with the carrier of your choice," explains Google.



The Verge tested both phones:

HTC's camera in particular managed to get slightly sharper shots in extremely low-light settings with Sense than the stock version. On both the GS4 and the One I found that video was slightly better on the skinned versions as well, with richer colors. (...)

The stock versions of both the Galaxy S4 and the HTC One well outperformed the skinned versions. In the Verge Battery Test (our standard test that cycles through a series of popular websites and high-res images with brightness set to 65 percent) each phone came in at about six hours. In HTC's case, that's a full hour longer than the Sense version managed to pull off. (...)

Technically, the "stock" Android on these phones doesn't come directly from Google (as with the Nexus line), but instead is built and maintained by Samsung and HTC. Google says that both phones will receive timely updates, but there could be an added wait from Samsung or HTC when the next version comes out.


An interesting tidbit: Google Play has over 975,000 apps and games.

Adding a Backend to Your App In Android Studio

Posted by Sachin Kotwani, Google Cloud Platform team

Android Studio lets you easily add a cloud backend to your application, right from your IDE. A backend allows you to implement functionality such as backing up user data to the cloud, serving content to client apps, real-time interactions, sending push notifications through Google Cloud Messaging for Android (GCM), and more. Additionally, having your application’s backend hosted on Google App Engine means that you can focus on what the cloud application does, without having to worry about administration, reliability or scalability.



When you create a backend using Android Studio, it generates a new App Engine application under the same project, and gives your Android application the necessary libraries and a sample activity to interact with that backend. Support for GCM is built-in, making it easy to sync data across multiple devices. Once you've generated the project, you can build and run your client and server code together, in a single environment, and even deploy your backend code right from Android Studio.



In this post we’ll focus on how to get started with the basic setup. From there it's easy to extend the basic setup to meet your needs.









Preliminary setup



Before you get started, make sure you take care of these tasks first:



  • Download Android Studio if you haven’t done so already and set it up.

  • Make sure you have an application project set up in Android Studio. You can use any working app that you want to integrate with your backend, even a sample app.

  • If you'll be running the app on an emulator, download the Google APIs Addon from the SDK Manager and run your app on that image.



  • Create a Google Cloud Platform project: In the Cloud Console, create a new project (or reuse an old one) and make note of the Project ID. Click on the words “Project ID” on the top left to toggle to the Project Number. Copy this as well.

  • Enable GCM and obtain API Key: In the Cloud Console, click on APIs and turn on the Google Cloud Messaging for Android API. Then, click on the “Register App” button on the top left, enter a name for the app, then select “Android” and “Accessing APIs via a web server”. In the resulting screen, expand the “Server Key” box and copy the API key.




1. Generate an App Engine project



In Android Studio, open an existing Android application that you want to modify, or create a new one. Select the Android app module under the Project node. Then click Tools > Google Cloud Endpoints > Create App Engine Backend.



In the wizard, enter the Project ID, Project Number, and API Key of your Cloud project.





This will create:



  • An App Engine project which contains the backend application source

  • An endpoints module with a RegisterActivity class, related resources, and client libraries for the Android app to communicate with the backend



The generated App Engine application (<app_name>-AppEngine) is an Apache Maven-based project. The Maven pom.xml file takes care of downloading all the dependencies, including the App Engine SDK. This module also contains the following:



  • A Google Cloud Endpoint (DeviceInfoEndpoint.java, auto-generated from DeviceInfo.java) that your Android app will “register” itself through. Your backend will use that registration info to send a push notification to the device.

  • A sample endpoint, MessageEndpoint.java, to list previously sent GCM messages and send new ones.

  • A starter web frontend application (index.html in webapp directory) that will show all the devices that have registered with your service, and a form to send them a GCM notification.



The endpoints module (<app_name>-endpoints) generated for you contains the classes and libraries needed by the Android application to interact with the backend:



  • A RegisterActivity.java class that, when invoked, will go through the GCM registration flow and also register itself with the recently created backend through DeviceInfoEndpoint.

  • Client libraries, so that the application can talk to the backend using an object rather than directly using raw REST calls.

  • XML files related to the newly created activity.



2. Add GCM registration to your app



In your Android application, you can call RegisterActivity whenever you want the registration to take place (for example, from within the onCreate() method of your main activity.



...
import android.content.Intent;
...

@Override
protected void onCreate(Bundle savedInstanceState) {
...
Intent intent = new Intent(this, RegisterActivity.class);
startActivity(intent);
}



3. Deploy the sample backend server



When you're ready to deploy an update to your ( the sample ) production backend in the cloud, you can do that easily from the IDE. Click on the “Maven Projects” button on the right edge of the IDE, under Plugins > App Engine, right-click and run the appengine:update goal.





As soon as the update is deployed, you can also access your endpoints through the APIs Explorer at http://<project-id>.appspot.com/_ah/api/explorer.






For testing and debugging, you can also run your backend server locally without having to deploy your changes to the production backend. To run the backend locally, just set the value of LOCAL_ANDROID_RUN to true in CloudEndpointUtils.java in the App Engine module.



4. Build and run the Android app



Now build and run your Android app. If you called RegisterActivity from within your main activity, the device will register itself with the GCM service and the App Engine app you just deployed. If you are running the app on an emulator, note that GCM functionality requires the Google APIs Addon image, which you can download from the SDK Manager.



You can access your sample web console on any browser at http://<project-id>.appspot.com. There, you will see that the app you just started has registered with the backend. Fill out the form and send a message to see GCM in action!



Extending the basic setup



It's easy to expand your cloud services right in Android Studio. You can add new server-side code and through Android Studio instantly generate your own custom endpoints to access those services from your Android app.



Tuesday, June 25, 2013

Google+ Photos App for Chromebooks

A few months ago, François Beaufort posted some screenshots of a Native Client Chrome app for Google+ Photos. The app is now available, but Google says it's only for the Chromebook Pixel, which is not exactly true.


"When you plug an SD card into your Pixel, the app will back up your new photos to Google+ automatically. (For your eyes only, of course.) And when you're offline, you can still view your most recent photos. The Pixel's high resolution display makes your photos look their best, and browsing via touchscreen is a lot of fun. You can share individual photos, set of photos, or an entire album in just a few seconds. Simply select the images you want, then click 'Share.'"


It's a pretty useful app for Chromebooks and it's not limited to the Pixel. In fact, I don't see why it couldn't work on any desktop computer that runs Chrome. It could even replace Picasa at some point.


You can download the app from the Chrome Web Store. Google engineers "are working to bring the app to other Chromebooks as well", even though the app works on other Chromebooks. The Office Viewer powered by the Google-acquired Quickoffice used to be limited to the Chromebook Pixel and it's now available as a Chrome extension.

Update: I've tried to install the app in Chrome for Windows and it worked:


... but then I got this message:


Then I switched to my Samsung Chromebook Series 5, installed the app and it worked well.




Even the SD card import worked:



So the app should work on any Chromebook. Maybe it's only optimized for the Pixel, maybe there are some bugs that need to be fixed. All I know is that the app worked well on my Chromebook and I don't have a Chromebook Pixel.

1 Billion Google Safe Browsing Users

"Safe Browsing is a service provided by Google that enables applications to check URLs against Google's constantly updated lists of suspected phishing and malware pages." It's used by a lot of popular desktop browsers: Chrome, Firefox, Safari, so it must be the most popular malware detection service.

According to Google, "approximately one billion people use Google Safe Browsing. We help tens of millions of people every week protect themselves from harm by showing warnings to users of Google Chrome, Mozilla Firefox and Apple Safari when they attempt to navigate to websites that would steal their personal information or install software designed to take over their computers." Google currently flags up to 10,000 sites a day.

The 1 billion number is interesting because it's an approximation of the number of desktop users for 3 important browsers: Chrome, Firefox and Safari. Google has recently reported that Chrome has 750 million active users, but this number includes mobile Chrome (and the mobile Chrome doesn't use Safe Browsing yet without enabling the data compression proxy). Firefox has about 450 million users. Last year, Google reported 600 million Safe Browsing users and in 2011 the number was 400 million. It's likely that these stats don't include the Mobile Safari, which probably switched to a different provider.

Here's a graph that shows the number of users who see warnings per week:


A few weeks ago, "a campaign targeting vulnerabilities in Java and Acrobat Reader infected more than 7,500 sites. As a result, more than 75 million Safe Browsing API users received malware warnings."

Safe Browsing is also used by Google Search. Here's a graph that shows the number of Google search results per week that contain a warning about threats to users:


There's a map that shows information about the percentage of sites hosting malware for each country. Some examples: US - 2%, Canada, China and UK - 5%, Brazil and Australia - 7%, Russia - 8%, Spain - 9%, Germany - 10%, Turkey - 11%, Mexico -12%, Thailand - 13%, India - 14%.


Google also shows the malware distribution by autonomous system. "An autonomous system is one or more networks controlled by a single entity, often a large company, a university, or an ISP. (...) Autonomous systems are part of the network layer of the Internet's architecture, and they play a role in determining how traffic is routed across the web." Google offers an alert system for network admins. "The goal is to provide network administrators with information of malicious content that is being hosted on their networks."

{ via Google Blog }

Monday, June 24, 2013

YouTube And a Distributed Denial-of-Service Attack

Here's an interesting excerpt from a Google I/O presentation about YouTube's adaptive streaming:

Another surprising thing we learned from this process is that software has bugs. Some bugs are more surprising than others. For instance, if a popular mobile handset manufacturer releases a software update that opens TCP connections and doesn't close them, you get something that looks like this. [The graph shows the number of connections.]


A globally distributed denial of service attack on your servers that lasts for months. And there's basically nothing you can do to avoid this situation except sit and wait and hope they release an update. That means that we have to make the choice between degrading service for all users, or cutting off a large fraction of users. And we never want to make that choice. With application level streaming, we can deliver a fix or a work around in hours, instead of months.


"A popular mobile handset manufacturer"? What are the most popular mobile handset manufacturers? Samsung, Nokia, Apple and a few other companies. It must be a popular smartphones manufacturers which releases software updates and most users install them. Apple?

Offer Your Educational Apps On Google Play for Education

Posted by Pratip Banerji, Google Play for Education team




Last month, we announced Google Play for Education — a platform enabling developers and content providers to reach K-12 educators and students in the United States through a new Android based initiative. Google Play for Education is an extension of the Google Play Store for schools, adding curation, bulk purchasing, and instant distribution to students’ Android tablets for educational apps, books and videos. As we said at the time, we are excited to be doing our part to make technology and innovation in the classroom more accessible.



Starting today, you can use the Google Play Developer Console to mark your apps for inclusion in Google Play for Education, which is actively being piloted in schools across the country. Marking your app identifies it as targeted for the US K-12 educational market and queues it for evaluation by a third-party network of educators. These educators perform a first-pass qualification of apps, assigning the appropriate subject, grade, and common core standards metadata, while evaluating whether they meet the Google Play for Education criteria for classroom use.



Leading up to the fall launch, the Google Play for Education team is conducting an extensive series of pilots that include schools and students across the U.S. By marking your app for inclusion now, you will be getting your app into the hands of these schools and key influencers in the education technology community.



Whether you already have an existing educational app or are looking to build one, take a look at our Guidelines for Apps to make sure your app is appropriate for the K-12 environment. Follow our detailed requirements and test your app to ensure it is optimized for Android tablets. Then, upload your new or updated app, mark it for inclusion in Google Play for Education, and publish. We will email you when your app has been evaluated. Depending on app submission volume, this process can take 3-4 weeks. For more information, see Get Started.



Also please tune in to our panel for education developers on Tuesday June 25th at 10:30 AM EDT. Live from the ISTE (the International Society for Technology in Education) Conference, we’ll tell you more about developing for Google in Education and we’ll host some educators who explain what they are looking for in educational apps. The panel will be streamed on Google Developers Live and we'll make the video available to you as well.



For more information on Google Play for Education, please visit developer.android.com/edu.

Sunday, June 23, 2013

Google Now's Topics Page Is Back

Back in March, I posted about a page that lists the research topics that are displayed by Google Now, but the page stopped working after a few days. Now it works again, has more features and it's no longer limited to Android devices.

Just go to www.google.com/now/topics/ and you'll see a long list of topics related to your recent searches. They're based on your search history and should only show up if you performed multiple related searches about a topic.


Click one of the topics and you'll get a list of search results that are supposed to be helpful. You'll see reviews, forum threads, news articles, videos, web pages and other related topics.


It's interesting to notice that Google uses the Knowledge Graph to generate related people, music, movies, hotels and more. There are publicly available topics pages like this one.


The results aren't always great, as you can see here:


{ Thanks, Anthony Raffini. }

Attach Images in Gmail Using Drag and Drop

Do you remember the post about attaching photos using drag and drop in Gmail's new compose interface? At that time, this didn't work because Gmail embedded the images instead of attaching them.

Now you can attach photos even when you use drag and drop: just drag the photos to the small area at the bottom of the compose box that says "Attach files here". If you drag photos to the much bigger "Drop file here" area, Gmail will embed them.


{ Thanks, Pierre Maraninchi. }

Gay Google (2013)

It's already a tradition at Google: every year in June, search results pages for queries like [gay], [lgbt], [lesbian], [transgender] have some special multicolored decorations to celebrate the Gay & Lesbian Pride Month. Here's this year's decoration: a rainbow search box with a nice 3D effect.


"From Silicon Valley LGBTQ mixers to Hangouts with Google Executives, planning a successful Google Pride is about more than coordinating the colors of the rainbow. Gayglers from all departments of Google formed sub-committees to discuss budget, plan events, order schwag and advertise Pride while keeping an eye on the prize: ensuring the messages of diversity, inclusion and pride are central themes throughout it all," informs a Google+ post about Google's 8th annual Pride Parade: June 30th - San Francisco, Chicago, New York City, and Dublin. Here's a post about last year's parade.

You can also check the colorful interfaces from 2009, 2010, 2011 and 2012.

{ Thanks, Camilo. }