Posts tagged ‘google’

My Android phone no longer has a Google account

This week, I was finally able to fulfil a longstanding goal: to delete my Google account from my Android phone. This is a step in a series of progressions towards “completely” disappearing from Google’s radar. I have been comfortable with the state of my laptop, which avoids all Google spyware using ghostery to block Google analytics, disabling cookies on all Google domains, and using for search. I’ve dropped Google Talk in favour of a jabber server hosted by a friend. While I still actively monitor my Gmail account via IMAP, it is not my primary address and is largely only used for correspondence that is already public, such as mailing lists and Google Groups.

The three things that I have still been using Google for were:

  • Maps
  • Paid Apps From Google Play
  • Contact Backup

I still use Google maps on occasion, though my main navigation equipment is an offline Garmin GPS device that — to the best of my knowledge — is not notifying anyone of my location at any time. I largely addressed the other two issues this past week.

I recently received my Cubieboard in the mail. It’s basically a specced up Raspberry PI. I installed Arch Linux by following the instructions at this thread.

I then set up Own Cloud by following the instructions at the Arch wiki. Once it was set up, I realized that I personally don’t have much use for calendar sync or file sharing, but that the contact backup was crucial. I didn’t want a full LAMP stack running on my little ARM processor, so I uninstalled Own Cloud and set up Radicale instead. Now my phone’s contacts are backed up and I no longer need my Google account to support that feature.

Then I was notified that AOKP, my current Android ROM of choice, had released an update. I thought “Hm, I wonder if I can get away with not installing the Google Apps package at all.”

I couldn’t. But I tried. The main issue is that there are two paid apps in my Google Play account (SwiftKey and SwipePad MoreSpace) that I do not want to live without, and do not want to purchase again from another vendor. In the case of SwipePad, I couldn’t even find another vendor. I toyed with backing up and restoring the .apk’s, but I got certificate and signing errors. I’ve read that these can be circumnavigated with Titanium Backup, but I haven’t gotten around to trying it yet.

So I installed Google apps and reluctantly activated my Google Account to install these two paid apps. Then I disabled my Google Account.

I then installed Aptoide to replace Google Play. It had recent versions of all the free apps I use on a regular basis. It looks like it will be able to supply my app needs into the future.

I have logged into my Gmail account and deleted my pre-existing contact list. This means that even if I do have to enable Google Play in the future, I will no longer be spammed with “Your friends like this app” messages. It also means Google will not be able to track my future relationships unless they are with people who use Google services.

Now if only Ghostery and Firefox would get Ghostery working on Android, I’d actually feel safe using my device!

Killing the Google habit

We live in an age where information is power. It is so valuable that companies like Google and Facebook are willing to give us amazing services for free in exchange for the information we give them, both about ourselves and others.

The cost of these “free” services is the information we choose to provide. Most of us are so eager to not spend money that we happily give away a wealth of personal details, including:

  1. every e-mail we send or receive
  2. every chat message.
  3. every location we want to find
  4. contact details for everyone we know
  5. our general relationship to every person we know (using services like Google Plus circles or Facebook groups)
  6. every photo we take
  7. every news article we read
  8. most of the websites we visit (if Google analytics, “like this on Facebook”, “share this on Twitter”, or other trackers are enabled on the site
  9. every term we search for
  10. our appointments, tasks and meetings
  11. our documents
  12. our purchases and shopping habits

In short, we now share a huge percentage of the collective information about our entire lives with various online services, and in exchange for what? Convenience, of course. Safe backup and storage. Free access from any computer with an internet connection.

I think we’re getting shortchanged. I don’t think most services are worth the information we sacrifice to use them. This information is extremely valuable, yet we give it away for easy methods of keeping in touch. This article is a summary of the things I am doing to keep my personal information personal. It’s not strictly a question of privacy, although that is also important. It’s more about protecting information that has value from theft by these giant corporations.

Facebook is the company that makes me the most nervous. I don’t trust their shady, ever changing privacy policy. Therefore, I closed my Facebook account well over a year ago, and I use the excellent Firefox plugin RequestPolicy to prevent them from knowing which web pages i visit. As a backup, I have also customized my hosts file to prevent any requests to the Facebook domain and other trackers.

I feel the cost of the Facebook service is too high. I am not willing to “pay” for this service with information about the sites I visit, the people I communicate, and the things I say to those people. Of course, they still have a certain amount of information about me that I cannot protect alone. People probably still tag my name in photos, link to my websites, or try to invite my e-mail address to join the service. These people are giving away the knowledge of our relationship. I can’t help that, as it takes two to keep a secret. Overall, however, I am comfortable with the relative unknown that I am to the company.

Amazon is another company that causes apprehension. They know my reading habits and shopping habits. Even if I don’t buy through them, I research many products on their site. Worse, Amazon provides a large chunk of computing power to numerous other websites that I use. In most cases, I likely don’t even know which sites are using AWS services. In theory, Amazon has access to data stored on those systems. In practice, I suspect the cost of mining that data is prohibitive at this time. Nevertheless, the data exists and Amazon algorithms may one day desire access to it.

Google is the third and largest major data collector. I trust them with a lot more of my personal data than anyone else. In some cases, their services are so useful that I am willing to pay for it with this information. In other cases, I have been unaware of just how much information I am giving them. I’ve been considering each of Google’s services in light of what I am paying for it and have come to the following conclusions:

Google Analytics provides me absolutely zero service in exchange for telling Google almost every site I visit. I have solved this in the same way I solved the Facebook issue: The Request Policy plugin and a modded hosts file for backup.

Google News is a nice service, but it’s not worth the cost of allowing Google to know every article that is of interest to me. Further, I have been allowing Google to decide which articles I should seen. Ostensibly this is in the name of convenience; I don’t have to sift through articles I am not interested in. This convenience has an added cost. I have given Google the opportunity to “warp” my view of the world by picking what windows i see into it. I don’t believe Google would maliciously hide articles from me to prevent me from knowing about that information (even though they do this in China on behalf of the government, but they have the opportunity to do so. Worse, they can easily accidentally hide articles from me that prevent my getting the whole story. Their algorithms are certainly not infallible. If I want news on a controversial subject, they may only show me the side of the story I “probably” agree with. This doesn’t allow me to make an unbiased judgment of my own.

Google Reader is a related tool that is not worth the cost of allowing Google to know what feeds or articles I find interesting or amusing. I have quit using Google News already and will be dropping Google Reader requests this week.

Gmail is an interesting question. I gave up Gmail last summer because I wasn’t comfortable with Google having access to every email I write. However, some e-mail server somewhere must necessarily have access to that information. E-mail has to be stored somewhere. I currently use Zoho mail, but intend eventually to migrate to a personally maintained e-mail server. One interesting thing about Gmail is that even though I do not use the service, Google still has access to every message I send to someone who has a Gmail address. I am willing to pay this cost for two reasons. First, it is not feasible to find other forms of communication for each of my contacts that uses Gmail. Second, the message has to be stored somewhere, and if the user receiving it trusts Gmail over some other service, that is their prerogative.

Google Chat has the same problem. I am in the process of moving my Google Talk contacts to a Jabber account. For the select few people I communicate with who use Jabber, Google does not have a record of our chat. However, most of my contacts are Google Chat users. I have to decide if the convenience of talking to these people through an instant message is worth the cost of allowing Google to see all those messages. For the time being, I don’t expect to change my habits.

I don’t think I understand the purpose of Google Plus. I’m still playing with it, but the service it offers doesn’t seem to justify letting Google see my semi-private communications. I expect to phase it out of my daily routine in a month or two. I don’t mind Google indexing my intentionally public posts, but I can just as easily make public posts on my blog. The information they obtain in the form of circles (i.e: whether I consider them a friend or coworker or acquaintance) is too valuable to give away freely.

Google maps is the most difficult service to walk away from. If I want the convenience of a mapping application without the cost of telling Google or some other online service my exact location, I guess I’d have to buy paper maps or a GPS that is not web enabled. My current favourite Google maps feature is the way it automatically remembers searches I made on the web when I look them up again on my Android phone. For the time being, I am willing to provide sensitive information about my location in exchange for the service Google supplies. However, I suspect I am overpaying.

Google search, of course, is the great big question mark. It is impossible to search the web without giving some system information about what you want to search for. Services like Scroogle can prevent Google from knowing who made the search, but that doesn’t stop Scroogle from having it.

I have noticed that about 40% of my searches return a Wikipedia page as the first result and that I usually click that link when it comes up. There is no need for Google to know that I searched for something on Wikipedia. I have therefore set up Wikipedia as my default search engine and created a shortcut bookmark named “g” to search Scroogle.

In addition to knowing which terms I search for, Google also knows which links I click in the search results. There is a Javascript click handle on each link reporting to Google that I have clicked it. The service Google provides me in exchange for this information is custom search results based on what they think I will click. Aside from suffering from the same problems I described with Google News, this service is simply not worth the value of the information they are collecting from me. From its inception, Google was able to provide uncannily accurate search results without this extra knowledge about me. My solution? All Google searches are now routed through Scroogle.

Google Translate is a service that I am willing to supply with information about my inane translation requests in order to see the translations. I will continue to use this service. My French is so basic, that I don’t think Google can get much of a profile of me from it.

At this point, Google map’s sync with my phone, and my continued evaluation of Google Plus are the only Google services that I need to be logged into my Google account to use. I therefore expect to be staying logged out of my Google account by default by early next year. I also hope to disable my account altogether by the end of 2012.

One non-google service that also has a great deal of information about me is Remember The Milk. They know every task I complete. Worse, I pay them for the privilege of having this information (I have the RTM pro account in order to sync with my phone)! I intend to spend a weekend writing my own self-hosted web-based task management app that will be accessible from both phone and laptop someday soon.

Do you think I’m too paranoid about what Google knows about me? Consider Cory Doctorow’s short story, Scroogled, which was written in 2007. We are a lot closer to the eventuality he describes than we were five years ago. Seems somewhat prophetic, doesn’t it?

A week without Google cookies

After my last post I decided to do a little experiment to determine how dependent I am on Google’s services and their knowledge of me. Rather than cut Google out altogether, I decided to disable all cookies and scripts from the Google domains and see what happened.

The most immediate effect was that I couldn’t log into Google services. This only really affected me at the news and reader sites. When I visit the news page, I get Swiss German (this is a mistake on Google’s part as I live in the French speaking part of Switzerland), and have to click through the dropdown to get Canadian English. Creating a bookmark to go directly to the Canadian News site fixed this.

I only have a few feeds, mostly webcomics in my Reader feed, so I didn’t miss it much, I just accessed those sites directly. If it was important, I could use Thunderbird for syndication instead.

I was also unable to turn off the extremely irritating ‘google instant’ behaviour. I hate having search results appear as I start typing and then disappear or move after I’ve realized I’ve seen what I want, but haven’t had time to tell my fingers to stop.

The biggest deficit was that Google maps no longer has any memory. I was surprised to discover that Google maps was my most personalized google product. I really appreciated maps predicting my home location, knowing that my search results should probably be close to Geneva rather than the US, and syncing up my location searches with my phone so my GPS had access to the locations I had just searched as I walked out the door.

I access my GMail account via IMAP (the web interface is too slow compared to local caching), so not having cookies didn’t impede that. I don’t use Gmail as my primary address anyway.

I also kept my Google Talk (accessed via pidgin) account enabled. I could ask my friends to use my Jabber address instead, but I figure Google would still be logging the chats at their end.

I’ve had Google Analytics disabled via noscript for quite a while already.

Overall, I’m quite confident that I could disable my Google account altogether and not feel I was missing out on anything (just as I’m not missing anything by not having a Facebook account). However, I don’t really have a reason to do so. I don’t consider Google to be evil in practice. In theory, however, they simply may not be evil yet.

Because Google services are “free” I am expected to give them access to my data trail as “payment” for those services, as with all free web services. Whether the product is worth this fee is a separate question. I could pay for competing services, but I have no reason to trust the competition more or less than Google. Zoho currently hosts my e-mail; the only reason I feel any safer with them than Google is that they aren’t big enough to have the intelligence gathering that Google has in place. Dave Crouse hosts this blog on, I trust him a lot more than any big corporation or other nonhuman entity.

I don’t agree with the “If you have nothing to hide, you shouldn’t worry” sentiment, simply because the definition of “nothing to hide” can change over time. Things that seem innocent in Google’s hands right now may take a more sinister meaning if their network ever becomes sentient!

I also realized that Google has access to all my public content (as does every service). This suggests that it would be sensible to migrate from Twitter to Google Plus, as I can still use the public stream the same way I currently use Twitter, but if I want to restrict publication of certain content to a specific circle, I have that option.

The only way it would be possible to hide completely would be to disable my Internet connection altogether. Even then, anyone can take my picture walking down the street, and every time I show my passport at an airport or hotel, someone, somewhere, knows I’ve been there. Since I can’t hide completely, and I don’t see that there’s any benefit to partial hiding (much like Dan McGee’s arguments against partial package signing), I think all I can do is accept that privacy is an old-fashioned concept in the emerging world, much like copyright.

Paranoia and Google Plus

After two weeks on Plus, I’ve decided:

* They have the best online photo upload and management system I’ve ever used.
* When deciding who to share content with, I usually discover that what I wanted to share wouldn’t be of interest to anybody and keep it to myself.
* Stuff that other people share is not interesting enough to warrant checking the stream.
* Google, (plus 1 buttons, analytics, chrome), Facebook (like buttons), and Twitter (tweet to your followers buttons) all have a disturbingly accurate record of my browsing habits. About 90% of the sites I visit have at least one of these buttons on them, they all execute scripts on the page, most of them set cookies.

It’s making me a bit paranoid, I already use https and noscript and selectively accept cookies, but it’s not enough, I don’t feel safe.

Google Wave Re-evaluated

Several months ago, I posted an evaluation of Google Wave that wasn’t too positive.

Since then, the Wave interface has had several minor, but very important improvements that make it much more pleasant to use. If there were more people using it, I would definitely view it as a viable alternative to e-mail and possibly even instant messaging. It still needs some serious usability engineering (it will never become mainstream unless they overcome the modal editing, for one thing), but I believe Google’s wave client has promise.

However, I no longer view wave as an alternative e-mail and IM. I’ve been considering it lately, as a replacement for HTTP. That’s right, the entire web. The current version of the web is highly interactive and realtime. HTTP was not designed for this. It was designed as a set of static resources intertwined with links. Then Javascript came along, and AJAX. The latest is a host of HTTP push technologies such as Comet.

These technologies allow the server to send information to the client without the client having to request it. A clever hack keeps an HTTP connection open for long periods of time so incoming data can be pushed across it without the client having to make a new request. Does this sound brilliant or what?

You’re doing it wrong! If our applications are now highly interactive systems that need to both push and pull data to and from the server, HTTP is not the protocol to use. In my opinion, these push technologies are messy. No, not just messy, but dirty, filthy hacks intended to force a system to be used in a way that is the opposite of what was designed.

No, if we are developing web applications these days that require two-way communication pipes (and we are), we need a two-way protocol.

Enter Google Wave. The Wave federation protocol is exactly that: a set of extensions to the two-way XMPP protocol. Wave is not a terrific solution for hosting static content, but static content is a rare commodity these days. Wave provides an ideal platform for most of the common activities people interact with on a daily basis. It already gives us chat, wiki, document editing, and e-mail like functionality for free. With a bit of effort, it can give us a blogging type of functionality (with comments), using public waves.

A couple of simple robots could replace Twitter. Wave doesn’t have support for “following” a user. You have to be added to specific waves. However, it would be trivial to write a robot that a user adds to any waves they want to have subscribed followers added to. “Retweet” functionality should also be fairly easy to implement. And this would be implemented on a distributed system, so there would be no more of those extremely irritating “twitter over capacity” messages.

Wave even solves the mighty facebook privacy issue. Only share your wave with those people you explicitly want to view it. Current policy is to post your ideas on Facebook public to all your friends. But a massive paradigm shift is occurring, as more and more people accidentally include their parents, employers, or spouse in conversations that were meant for other audiences. People are clamoring for Facebook to make it trivial to SELECT who we share information with. Guess what? Wave already does this.

In spite of all this, I’m still not on the Wave bandwagon. I don’t insist or even suggest that anyone should start using. The current browser-based client is complicated and intimidating and has a large learning curve. In today’s world, people expect things to be as easy to use as Google Search or Twitter. Wave is not. The currently available wave client is more complicated than e-mail or instant messaging. It’s not going to take off.

I believe there is potential for simpler clients to be designed. I’m finally understanding why Google has focused on solidifying the wave server and protocol, rather than improving the public facing client. They are the kind of technologies we should be looking to in the future, not HTTP. Google Wave may never take over the world, but at some point, something will have to replace the static HTTP protocol. Maybe wave, maybe HTTP 2.0 will have extensions for two way communication, maybe an entirely new protocol yet.

A Reluctant Evaluation Of Google Wave

I’ve been using Google Wave quite a bit since I first got my preview account last fall. I was not as caught up in the initial hype as some people, but I was excited to try it, and my first impressions were enthusiastic. I had high hopes that Wave would be an alternate technology that could replace Facebook, and consolidate e-mail and instant messaging.

Wave has one very strong point; it is a very good collaborative editor. It makes for a terrific “private wiki.” If nothing else ever comes from Google Wave, I hope that wikis at least adopt the idea of “reply within the article.” Talkback pages are easy to ignore. Wiki discussion *needs* to be easy to ignore, but it should also be easy to respond to direct points within the wiki. Being able to insert widgets into wiki pages would also be advantages, but this doesn’t require the concept of Google Wave extensions; people have been plugging external widgets into web pages for years.

I’ve found this “private wiki” collaborative editing functionality extremely useful for trip planning and designing project specs. I believe it could also be used effectively in certain educational or tutoring scenarios, various brainstorming situations, and anything that requires collaborative design. Collaborative design, but not editing. Wave would be great for writing the outline to a new multi-author textbook. It might be useful for discussion of various chapters as the book is written. But it is not the place to write the actual text.

Google Wave is not an effective replacement for e-mail. Although GMail revolutionized e-mail with the concept of conversations, using Wave conversations feels clunky and slow. This may be a fixable flaw in the interface Google has provided, but I suspect it goes deeper. When I receive an ‘updated’ wave, I find myself scrolling through the whole Wave to find changes. Even though they are highlighted and easy to find, it does not feel as intuitive as just reading the new comment in an e-mail. While I often use quote reply in e-mail, it is only effective when the sender is snipping out only relevant portions to reply to. Wave doesn’t support snipping.

Google Wave is not an effective replacement for instant messaging. I find that chatting in a Wave is messy, unless I’ve installed the “RetroChat” extension. One problem is a fixable interface problem: blips are too big, and each message takes up too much room; you need a lot of screen space. The other problem is that people tend to respond to different topics in a wave at the point where the topic came up; when I’m chatting, I find I’m discussing three things with one person in one Wave. Theoretically, you could start a new wave for each topic, but chatting is supposed to be freeform. I find chatting in a Wave just makes me bounce around too much. In IM, if I’m discussing three different things, I interleave them (often enclosing different topics in brackets), and somehow, it makes more sense than in Wave.

I think the basic problem with Wave is that it allows you to do anything, anywhere in the wave. This provides a lot of flexibility, but it also brings responsibility; suddenly you have to *think* about the conversation and how it is formatted, instead of just having a conversation.

In spite of my disappointment, I’m going to continue to use Wave for a while; I think it is a step in the right direction, and that it will either be refined by the Google developers (or the community) to be a more usable tool, or it will be an inspiration to someone designing something better.

Edit: I forgot to mention, I’ve got several wave invites if anyone hasn’t gotten on the bandwagon yet.

Google Wave Bugtracker… concept

Last night I received access to the Google Wave Developer Sandbox. My original request for access was made when I had a lot more free time than I do now (I’m measuring free time on a negative scale now: I don’t expect to have any until May). My plan at the time was to integrate Google Wave with bugtracking software (written from scratch). I haven’t actually looked at the wave APIs yet, but I had considered all three methods of extending Wave for use with a bug tracker:

  • Embedding: An embedded wave on an external bug tracking webapp would make discussion much simpler and more robust. Most bug trackers don’t even have threaded comments right now. The ability of a wave to allow synchronous or asynchronous discussion would make the discussion system much more useful (most discussion on bugs currently happens “out of band” on mailing lists or in chats). In addition, a “subscription” feature could be as simple as adding yourself to the wave. Finally, the ability to edit wave postings (wiki style) would allow the data in the bug report to be easily organized and classified. People wouldn’t have to read entire lists of comments to get an overview.
  • Robots: At the simplest form, adding a robot to an existing wave would create a new bug report based on that wave. It would be nice if you could also have the robot automatically set bug attributes such as project, version, milestone, architecture, etc (whatever the project demands).
  • Extensions: An extension to wave could allow bugs to be integrated into other waves, instead of just waves into bugs. Instead of being stuck on a fixed bug report server somewhere, the bugs could be sent to other wave users. That could even include upstream authors. This is the most interesting prospect, because it could lead to a “global bug tracking service” where bugs are not attached to a single reporting tool, but are easily routed to the people most able to fix them.

In Arch Linux, many, but not all, of our bugs are related to specific packages. It would be nice if bug reports could be attached to packages in our web interface. Then it would be easy for users to report bugs on specific packages, and for developers to find all bugs related to their packages.

Our team includes a few dedicated (and extremely under-appreciated) users who classify incoming bugs and assign them to the developers who ought to be responsible for fixing them. I imagine a wave scenario where this can be done as easily as forwarding all new bugs to these “bug wranglers” wave accounts, and allowing them to add other developers to the wave and have them automatically assigned.

Ideally, we would host the wave server ourselves, so as to be in complete control of our information. Of course, if someone else wants to add themselves to a wave from a different service, that should not pose a problem.

Unfortunately, I suspect that when I have time to complete this project, I’ll have been swept up in some new and exciting venture. But it’s certainly an interesting tool to think about.

Why I'm quitting GMail

Lots of people have expressed fear at the power Google has over our information. I don’t intend to expound on that. Suffice it to say that they know more about me than I do.

It’s never bothered me. I have always trusted Google to take care of this information. They’ve always been on the same side of privacy, net neutrality, and copyright debates as me. They’re extremely active in the open source world and they seem to value open source rather than simply using us. I trust them.

I used to trust them.

A couple weeks ago, Aaron (head developer of Arch Linux) received an e-mail from Google Adsense telling us our account had been terminated:

While going through our records recently, we found that your AdSense
account has posed a significant risk to our AdWords advertisers. Since
keeping your account in our publisher network may financially damage our
advertisers in the future, we’ve decided to disable your account.

Please understand that we consider this a necessary step to protect the
interests of both our advertisers and our other AdSense publishers. We
realize the inconvenience this may cause you, and we thank you in advance
for your understanding and cooperation.

How are we a risk to advertisers? What are we doing wrong? How do we fix it? No explanation. Aaron, of course, asked for clarification. They regurgitated the response:

Thanks for providing us with additional information. However, after
thoroughly reviewing your account data and taking your feedback into
consideration, we’ve re-confirmed that your account poses a significant
risk to our advertisers. For this reason, we’re unable to reinstate your
account. Thank you for your understanding.

As a reminder, if you have any questions about your account or the actions
we’ve taken, please do not reply to this email. You can find more
information by visiting

Following instruction for obtaining more info, Aaron posted here:

Still no additional information. I find this offensive. We are an honest, upstanding, unfunded open source Linux Distribution. We have done nothing wrong.

I respect Google’s right to choose where they place ads. If I was a marketing agency for companies that sell adult products, I wouldn’t post advertisements in a daycare or during Saturday morning cartoons. However to cancel our account without giving us a chance to fix or even understand their rationale is troubling.

The money from Adsense is mediocre at best, compared to our donations and schwag income. But this event caused me to reevaluate my trust of this mammoth company. I’m not suddenly “OMG Google is evil, I must not use their products.” (As a teen I had this tendency toward Microsoft products. I’ve matured a bit and can acknowledge that Microsoft has some good products: their mice and keyboards.) However, I now feel less comfortable giving this company full control of my information.

And thus, I am slowly moving my e-mail account from GMail to my own domain. I’m considering anonymizing my Google cookie. I’m reluctant to put my own or client data on Google App engine. I’m losing enthusiasm for my Android powered phone (that has as much to do with Java as it does with Google, to be honest), and evaluating all new exciting Google services with just a hint of distrust.

Google still creates some of the best technology in the world, and they are still mostly friendly to the open source community. They are a large company and the actions of one department obviously don’t reflect the opinions of others. Adsense is Google’s cash cow. The more exciting Google projects occur in research and innovation. There isn’t much communication between the two.

I am looking forward to Google Wave (I intend to set up my own host, of course) and to an anonymized version of Chromium for Linux. I have no problem with Google Gears. I still use their maps, but I’ll have to stay off Latitude.

Update: This post unexpectedly hit Reddit, and within a few hours, Aaron got another e-mail telling us that our Adsense account had been reinstated. We’re still lacking an explanation, and I’m still not sure I trust them, but I have to give them credit for quick action!

I hadn’t made this post to get action out of Google, though, so we’re probably not putting Adsense back on and I’m probably not going to go back to GMail.

Offline-Enabled Web Apps: The Future

I was reluctant to join the world of web development. I started in high school with a few sites and realized several things: Javascript sucks, Internet Explorer sucks; therefore web development sucks.

Fast-forward through a couple academic degrees. Job hunting with one requirement: Python. Python jobs all require Django.

So I learned Django, assuming, incorrectly, that if I was developing python backends, I wouldn’t need to work with the horrors of Javascript or Internet Explorer. I earned money. I relearned Javascript and became a first rate web developer.

In the back of my mind I still felt that web development sucks. So a few weeks back when deciding on a platform for a personal project, I thought I’d try something new. The Android platform was in my hands and I gave it a whirl.

I didn’t enjoy it much and I am now rewriting the app as an offline enabled webapp using Google Gears.

Then Chrome OS was announced and I realized that I’ll probably be doing a lot of offline enabled webapps using Google gears and/or HTML 5. Like it or not, it’s the future. Me, I like it. There are a lot of advantages to this kind of setup: I can access the apps from my phone, my laptop, my parent’s desktop, or Phrakture’s hacked computer whenever and wherever I want. I don’t have to write a different client for each one. Its true ‘write once, run anywhere’. I can upgrade each of those clients automatically as long as there’s a network connection.

On that note, you don’t need a network connection to run HTML 5 or Google Gears based apps. They both provide a ‘localserver’ that caches pages and javascripts, and give you an SQLite database for data caching. Typically offline versions of apps are not as powerful as their networked counterparts, but they do not require network access to run. Further, because they are locally cached, they can be made to run as fast as a “standard” (old fashioned) desktop app. The apps run in the browser, but the browser is just a container, a window manager, to hold the application.

In traditional webapps, you code most of the logic on the server side. In this new model, you end up coding most of the logic in the client, because the app needs to run without a guaranteed server connection. For me, this has a massive, nearly show-stopping drawback: A large portion of the app must be written in Javascript. JQuery makes Javascript suck lest, but it still sucks. I’m a Python programmer.

For years, I’ve dreamed of browsers supporting tags that allow me to write my DOM manipulation scripts in Python rather than the ubiquitous and annoying Javascript. This wasn’t possible because python can’t be adequately sandboxed such that arbitrary scripts running on the web don’t have access to, say, your entire hard drive.

This is no longer true. The PyPy project finally has a complete Python 2.5 interpreter that can be safely sandboxed. Since discovering this at Pycon 2009, I’ve been thinking about interfacing it with a web browser.

I figured “somebody must have started this already”. Google didn’t help much, but when I logged into #pypy on freenode I was told “fijal started doing that with webkit yesterday”. I’ve been following up trying to get the project to build (I was warned that the build process is a mess and was invited to wait until it is cleaned up a bit). So far, no luck, but I am optimistic that python support is finally coming to the browser. Granted, it won’t be much use for public webapps (at first) since browsers won’t want to be distributing pypy, but a lot of my projects are personal, and satisfying the general public will be far lower on my priorities list than ‘developing in my preferred language’.

I’ll have to install a pypy interpreter into Chrome Lite under Android before this is useful to me. That may be tricky.