A programmer on the cloud
As a programmer, I hate duplication. But moving between different workstations, or even between a netbook and my primary computer, requires me to share data such as documents, code, PDF files and so on.
Fortunately we are in the middle of the cloud computing revolution: Google is even testing Chrome OS, an operating system which solely purpose is opening a browser. I won't go as far as using only Chrome or Firefox to work, but services are definitely make my life easier. I hope you will find something new in this list of services I've began to use more and more in the last years. They're ordered from the easiest and simplest to the more sophisticated. If you know everything listed here, good for you: tell me in the comments what I forget to include.
My choice for email is a Gmail account. Abundant space, easy filter definitions for mailing list, starring and labelling of items.
I used: a long time ago, in a galaxy far, far away... I can't remember when I used a dedicated client for my email accounts, maybe it was even Outlook Express in 2000.
Google Reader is my feed aggregator.
I used: Liferea, an Ubuntu feed aggregator. but the difficulties of sharing pushed me a long time ago towards an online solution. Google Reader was the natural choice. There is even an extension to open items in a background tab both for Firefox and Chrome.
I still use twitter.com instead of Twitter clients. First, a website can be blocked at certain times of the day thanks to browser extensions like Leechblock. Second, it's available from the university labs. Third, no one can interrupt you with a tweet while you work: you decide when to read your @mentions.
I used: nothing. I always surfed to twitter.com.
I also started running Chrome (actually Chromium) instead of Firefox. When you pass all the day in a browser, speed matters. It's like using Vim instead of an IDE (insert religion war here). The catch is DZone.com does not support Chrome: I'm writing this in Firefox 3.
Google Docs: the killer feature here is simultaneous collaboration. While I had an opened document, someone else can write in it. It has also the convenience of Url-based sharing, where you send an Url by email and that's all the other person needs to read and edit the document. I still use OpenOffice.org (soon LibreOffice I think) when I do not need collaboration. Here there is no cloud solution as powerful as I would want.
Dropbox: you have a folder where everything inside is sychronized between your computers. You drop something in it, and you will find it when you go to your laptop. There is a public subfolder where you can put file to publish online.
I used: rsync. The problem was it's one way: if I edited some file on my netbook, it would be wiped out at the next synchronization from the desktop computer. Using git is not an option, as I don't need version control, but only relentless, neverending synchronization of data. Since it's instantaneous, I have no need to type git add or git commit. I tried also sshfs, but it did not work well.
- on Unix systems, thanks to symlinks, everything can be put in Dropbox. Your desktop folder? Put it in Dropbox/ and link it back from your home folder. The same goes for image folders, or directories containing articles or code snippets you want to work on...
- Dropbox can be configured to read the HTTP proxy configuration of your system. This way, it works behind a firewall without issues. In Ubuntu, you switch the global location (in my case from Home to University), and (after a fast reboot, unfortunately) Dropbox start syncing again. No need to power up my netbook when I return home to download the modified files.
If you like the idea but not the service, or you feel Dropbox is too mainstream, there are many alternative services.
I start transitioning from Subversion to Git for various open source projects, and now I am doing the same for not yet published code. It's very easy to start with a local repository, and then add a remote and switch to Github or another server. With gitosis or simply ssh, you can also define a remote in your LAN to avoid latency and share work between different machines. Code needs versioning, and it's fundamentally different from simple sychronization.
Instapaper is my tool of choice for bookmarking blog posts, and in general web pages, that I want to read later. I used also Delicious, but I abandoned it recently after Yahoo! unclear announcements.
The killer feature is Instapaper's EPUB format conversion (although it works only on 20 web pages the last time I checked). I read the generated file on my ebook reader, with an e-ink screen much more easier on the eyes. Instapaper also outputs files in Kindle's format (Mobi), or delivers them via wireless.
And I registered on CouchOne which provides free CouchDB instances. Other hosting services, such as for web servers or relational databases, won't count, as web developers like me have used them for years even before the cloud hype started. However, CouchDB is really good as setting up replication with my home instance is all I needed to get my remote one to work.
The only thing I do not trust cloud service is for finance and accounting. For all the rest, I am comfortable in handing my articles (which will go live anyway in some days), open source code and bookmarks to external services.