Google Mail / Voice / Wave / Reader Notifications in Your Systray

In my opinion, Google’s web-services and Linux go together like pie and ice-cream.  Though, there are some people in this very LUG that would disagree with me about Google’s benevolence, there is no denying the quality and convenience of gmail etc…  Moreover, even though Google’s web services themselves are not open-source, they are built on top of an open framework and toolset, and Google itself sponsors some great open-source projects (chromium, android, Kernel development etc).

If you are of a like mind, you probably already use google’s services like gmail, google-voice (the best thing since sliced bread) and google reader.  Like me, you might have been in a constant search for a notifier applet for your taskbar for these services.  I have used CheckGMail for a long time, and then docky’s builtin gmail applet, but I have now found a real winner after reading a post at OMG!Ubuntu.  It’s called googsystray; it’s one program that looks great and notifies you of new messages in gmail, wave, gvoice and google reader in your taskbar.  It comes with a lot of nice features.  For example, you can send SMS messages with google-voice right from the applet.

Here are a couple screenshots:

And here is one screen cap from the original OMG!Ubuntu Article where more details can be found:

Go ahead, follow the link above, grab the .deb and give it a whirl.

Skyhook Wireless: Wifi-Based Location Detection (and the handy API)

Skyhook Wireless is a company that does one thing, and does it well: wardriving. They send vans equipped with wifi-detecting equipment and GPSs (wait, is that the plural of GPS? Is it GPSii?) and log the data. Unfortunately, they do not make their data publicly available. What they do have, however, is a XML API.

With a simple HTTP POST, you can (quite accurately) determine the location of a computer based on the BSSIDs (MAC addresses) and signal strengths of the networks it sees. You receive back an easily-parsed XML document containing latitude, longitude, and street address. However, Skyhook is quite bad at figuring out street addresses; the latitude-longitude data is much more helpful.

Skyhook has a Javascript API for web apps with a special browser plugin. The C API is handy for C apps (even has a Linux version!). But those are both wrappers over the simple XML protocol.

OATT is a Sourceforge project to create an open antitheft tracker for stolen laptops. Full disclosure: I am the admin of the project. For laptops without (insert plural of GPS here), I decided to use Skyhook and created a handy Python wrapper.

To use this wrapper in other Python apps, you must do three things (not including downloading the code and cd’ing into the source.)

  1. From a shell, run “sudo”. This will save network information accessible only to root to a file. To update location, you must rerun this command.
  2. In your Python program (the OATT source must be in your $PYTHONPATH), add “import lookup” to the top of the source.
  3. In your Python program, read the contents of “lookup.results”. This is a dictionary with the following keys:
    • “address”: This is a tuple containing the house number, street, city, state, country, and zipcode, in that order.
    • “latlong”: This is a tuple containing the latitude and longitude (both with very many digits after the decimal) in that order.
    • “accuracy”: This is a value taken from the raw Skyhook data. It represents the accuracy in some sort of units.

I am not affiliated in any way with Skyhook. However, they are quite technically impressive and I believe the API should be in much wider use.

Don’t be shy

In this article I shall attempt to relive my experience finding, beginning to use; and finally full conversion into a GNU/Linux desktop user. I will enumerate both the frustrations and the pleasures experienced during this first year of use. In an attempt at full disclosure my opinions and bias will be sprinkled throughout; after all this is written entirely from personal perspective. In the end the purpose of writing this is to provide the experience of one local (eastbay) user to any and all people who have started to use, or contemplated using Linux (shortened from Gnu/Linux for brevity) for any reason.
In February of 2009 I was paying money for inferior software, third world phone support, and software to protect me against inferior software.  I had had enough of the frustration wih being infected with spyware, viruses, and expensive proprietary software. And yet how to tumble out of the immense monetary dryer set to Permanent Press? Then a realization buried beneath the frustration finally arrived: the problem wasn’t Micro$oft. It was me. I had been scared of change; sceptical of an operating system being free. So I set out to research what this Linux was. How could an OS be free? Who was doing this? I used the internet for all my research. I read the history of the Gnu project, copyleft, and Linus Torvalds. I learned why it was free and remain grateful. Next I needed to find out if it was for me. To accomplish this I decided to aggregate opinions of everyday Linux users from various websites. Gleaned from across all the blogs, forums, and video posting sites I visited the zeitgeist was ubiquitous: Linux users were elated with their OS. The virtues extolled by most are Linux being virtually virus free, open source, and community oriented.
So I had found a free replacement for the Windoze but it came with a steep learning curve. I ran into problems getting online since at the time I knew nothing about command line interfaces, package managers, or even simply a network manager. This was for my 3G USB dongle I had at the time. All I knew up to that point was plug and play connectivity. I hadn’t been exposed to anything more than click here and here then watch for the spinny thing and a balloon popup notifying me that I was online. I didn’t understand device support or (I had only a notion of) what a driver actually was. I was too soft from allowing myself to be spoon-fed by a Microsoft GUI. Fortunately for me, after a tweak or two, it became easy to get online while using Ubuntu. Next came installing video and audio codecs so that I could watch movies. What I had done before was install movie playing software from CD’s that I had to buy, all wrapped in shiny paper, so that I didn’t have to deal with Windows Media Player. Now, so long as I was online, I could use the free package manager to download free codecs. All it required was a search engine to find out how. After all this I decided to set up dual booting between Ubuntu and Windows. Several months would elapse before I knew enough about using even a ‘desktop-friendly’ distro such as Ubuntu so that I could ditch all the bloatware from my laptop and use Linux as my sole OS. It could have been a lot easier had I simply visited my local Linux user group; but instead, I decided to not ask any questions on a forum or blog and RTFM like I was told to from the old hacker texts I downloaded.
I would like to make this point: you don’t need to go the same route as I did. If you are busy with work, family, and other activities; and also, you would like to actually meet someone in person rather than going back and forth on a Q&A forum, come visit us at the next BerkeleyLUG meeting. This way you can get a feel for the community in general; which in my opinion is great. Or perhaps even more pertinent for someone who wants to try Linux for the first time: When I, with trepidation at being such a newb, did attend my first meeting I was delighted to find anyone from new users such as myself to advanced users. Some of these advanced users can be seen without even a GUI; they hardly use anything but the command line! That kind of elegance I find fascinating; and it winds my clock aspiring to communicate with my hardware only a layer or two removed from the components as they do.
The free and open source software community and computing in general have propelled me so much that now I find myself yearning to be deeply involved with computerization. In fact I mean to ‘drop out’ of my current profession to pursue a different career. It is my sincere hope that this article will nudge at least someone out of their Redmond, WA induced torpor and into an adventure in the world of FOSS. Please join us at BerkeleyLUG.
P.S. Here is a short glossary of acronyms used:
FOSS – Free and Open Source Software
GNU  – Gnu’s Not Unix
GUI   – Graphical User Interface
LUG   – Linux Users Group
OS     – Operating System
RTFM – Read The F*****g Manual