Monthly Archives: May 2011

Setting up Google Cloud Print with a Linux server

Google Cloud Print has interested me for a while, but I finally got around to trying it out this week. In a word: Very cool.

At my work, we have an HP laser printer from a few years ago. It’s a networked printer, so we can use it from within the LAN (or actually anywhere on the CS network given the IP address). But using it outside that network is impossible.

Chrome for Windows an OS X has a feature in which you can share your printers with your Google account (or anyone else with a Google account) and use Cloud Print to print from anywhere. This requires a computer sitting on the same LAN as the printer that will handle print jobs. Right now, Cloud Print (technically) only works on the mobile versions of Gmail and Google Docs (and I’m told it works on Chrome OS as well). So I can print emails or docs from my iPod Touch to Cloud Print and have them come out on the lab printer, all wirelessly.

Setting it up
I brought in an old laptop that has Linux on it to use as the “print server,” as it were. I thought it would be simple enough–install Chrome, set up the networked printer, link it to my Google account, and start printing. The trouble is that the Cloud Print Connector doesn’t work on Linux (yet).

An enterprising hacker has created a Python daemon that will perform the same function as the print proxy (which is simply a protocol bridge). Installing this is dead simple:

sudo pip install cloudprint

This assumes that you have python-pip installed. Once that’s finished, you run this command (or add it to /etc/init.d:

sudo cloudprint -d

The first time you run this, it asks for your Google username and password (requires an application-specific password if you’re using 2-step verification). Once that’s configured, it automatically adds all the printers configured on your computer and then daemonizes itself.

(I found the instructions for this process here. They’re more detailed than what I provide.)

That old laptop is now our dedicated print server. I shared the printer with my coworker’s Gmail address so we can both send jobs to our printer no matter where we are.

Printing (almost) anything
The major drawback right now is that you can only officially use Google Cloud Print from Gmail or Google Docs on a mobile device. Luckily, I found Chrome extension that lets you print a variety of file types. It’s a limited selection at present, but it works well all the same.

Conclusion
I’m excited for the possibilities of Google Cloud Print. And I’m excited to see more vendors and developers integrate it into their hardware and software. I believe this is the way of the future for printing. There are still a few kinks to work out, but Google is on the right track.

Holy bandwidth, Batman!

Ran some SpeedTest.net tests tonight in my office at BYU just for kicks. Here are the results:

BYUGuest, an unsecured network for campus visitors (or students too lazy to install antivirus software):

BYUSecure, the standard secured network for students and faculty:

The wired CS network in the Talmage building:

It’s 9:00 at night, so there aren’t many people here. But still. I got 130 Mb/s and 135 Mb/s download speed on the two previous tests, so it wasn’t just a fluke.

Suffice it to say I am thoroughly impressed.

Rosetta Selection

I wrote a Kynetx app this weekend that lets you translate any text you select on a web page into English: Rosetta Selection.

Sometimes I’m reading a page that is mostly in English but has a French phrase or a Spanish quote. Since I only know a few words of those languages, I have wanted to translate that text into English. Going to translate.google.com isn’t hard, but it’s inconvenient. I lose some of the context of what I was reading.

Google has an API for Translate. A few weeks ago, I wrote a KRL module for that API. Rosetta Selection is the first app I’ve written that makes use of that module.

Rosetta Selection lets you select any text on a web page and press Ctrl+Alt+R. It sends that text through the Google Translate API and shows you the translation in a popup in the upper right corner of the page. Easy as that!

Go install it in the KBX now!

This is still the first iteration. I’d like to make some UI improvements and add some configuration options. What improvements or options would you like to see?