Leaving the “cloud”

For the last week I’ve been attending Linux.conf.au (LCA) and have the pleasure of meeting, listening and seeing some cool people (Geoff Huston, Vint Cerf, Linus Torvalds). Two main topics were presented during the conference, IPv4 address space shortage, and freeing the cloud.

I hope to address IPv4/IPv6 in a latter post, but for now I would like to focus on freeing the cloud. Francois Marier gave a lovely talk on how we can free the cloud from the closed source baddies. Francois created the site and project Libravatar which is an AGPL implantation or clone of the Gravatar system.

Mark Pesce presented a keynote on the Friday of LCA, about the ways companies can exploit users data, and how storing everything in the “cloud” isn’t such a good idea in terms of privacy (potential to steal your social graph). He also explained mimesis, and how we will replicate what others are doing.

This has given me a few reasons to attempt to leave the “cloud”. The first reason was from Francois – Why should I be forced to use non free (as in freedom) software on the internet? – Why can’t I add, expand and change the software that I use everyday. What is my upgrade path to avoid bit rot.

The second reason also came from Francois – Why aren’t these services decentralised? – Francois worked to make avatar services customisable by using DNS SRV records. Status.net allows you add remote users.

The third reason was from Mark – It’s more likely that your friends will also… - Well if I start doing this, one of you guys might also give it ago…

and finally the forth reason, which was also contributed to by Mark – Where is my data, and what the fuck have you done with it? - Is it possible to keep data to your self these days?

What is my aim, while leaving the cloud?

  • Move to a fully opensource environment online
  • Find out if it’s possible to live with out the big companies (Facebook, Twitter, Flickr, GMail)
  • Keep care of my own data
  • Start pushing for open communication standards between platforms (why can’t Twitter users talk to status.net users?). Bring down monopolies.
  • See how hard configuring alternative services are.

Should you (the reader) do this?

  • Maybe?

I’m not pushing for anyone else to make these decisions. This software typically isn’t user friendly enough for everyone to switch or lacks key requirements of use. I still look at this project as an experiment. I may have to revert back to some services. What I do suggest however, is to think about it. It’s not that hard to switch. Experiment, learn, play and explore the FOSS world.

Where am I now?

All of the following has been achieved in less than 48 hours, and on a 3G connection.

Email

The world would be a far different world without email, and it’s something that you can’t live without in the real and internet world. Previous to this change, I used Google Apps (GMail for your own domain). Having your own domain name is an advantage, as it allows you to move between email servers without changing email addresses.

I’ve always been a lover of Postfix and even Eric Allman agree’s

If I had to choose a new MTA today, I’d use Postfix

Eric Allman

So Postfix was put straight on. Postfix by it’s self is ok, but I really need a way to get email on my phone, computer and laptop, and it’d be great if all synced up together. From previous experience I knew that Dovecot was the way to go. Dovecot provides IMAP and POP access. IMAP was what I was interested in, and with fairly little configuration I had that all working.

Now this setup works ok, but to really give it the flexibility of GMail I need a pretty web interface. Jack Scott had previously shown me RoundCube IMAP webmail. RoundCube is a php/mysql app which is fast to setup, beautiful to use and just plain easy.

All that was left is to get my GMail data out and into Dovecot. To facilitate this I used a utility called imapsync. Enable IMAP on GMail, run imapsync, and you’re done.

What’s left to do?

While email works, there are a few missing features I haven’t implemented yet. I’m yet to configure Spam filtering, so I’m getting about 3 or 4 spam emails an hour. I haven’t worked out a nice way to implement mail rules, and RoundCube doesn’t implement any form or labels or tags, only folders. I haven’t worked out a nice place for my Google Address book, and a way to sync it with my phone.

Facebook / Twitter

If you are wondering why I have disappeared off your friends list on Facebook or Twitter, it’s because I a chose to delete my account, not because I have decided that I no longer like you.

I looked at how I actually used Facebook and Twitter. I didn’t post pictures, I had another service for that. I didn’t post videos, I had another service for that. All I really used Facebook and Twitter was to post fairly short messages. Longer messages in Facebook, shorter ones in Twitter. Heck, most of the time I didn’t even read or browse other peoples updates, as the signal to noise ratio was too low for me to care.

Even though I understand that barely anyone reads my Facebook statuses, I still wanted to a place to put short snippets that were too small to be a blog post, but required to let off steam, or share a funny link or two. I done some research and came across some software called status.net.

Status.net is basically a decentralised, opensource twitter. I installed it in single user mode, and within minutes I had a nice Twitter like microblogging page up.

What’s left to do?

Well I didn’t feel that I need to keep, backup or import data from Facebook or Twitter so I have let that data rot away. Unfortunately Facebook has a two week timer before account deletion, so I am still waiting for that to occur.

Flickr

Flickr is a great photo sharing site. It supports Creative Commons which is great, but for the purpose of this experiment, it’s still the cloud. Quite a bit of Googling latter, I found a nice opensource alternative called Plogger.

Plogger is a great little php app for organising photos and albums. Unfortunately to move all that data requires more than my little 3G connection so I haven’t had a chance to play with it to much, but it appears to perform the functions I need it to.

Most people won’t find Plogger a Flickr replacement, but it looks to work for me. It’s fast and simple.

Gravatar

Gravatar is a service that maps avatars to email addresses for the purpose of making blog comments look pretty. LCA introduced me to the Libravatar project which hopes to make the avatar service more open.

Well, I’m not going to lie to you, I haven’t setup my Libravatar server up. BUT, I have setup a Libravatar account up, and changed my blog to use Libravatar to grab avatars for comments. I don’t believe that Gravatar or Libravatar pose a risk to my privacy or social graph, however I do prefer the idea of using opensource web apps.

Blogger

I loved to WordPress quite some time ago from Blogger, when my needs expanding from the simple blogging service of Blogger. WordPress is free (as in freedom) and is really great software. If you aren’t using it for blogging, you probably should be, or at least Habari.

XMPP / Jabber

Along with my email, I also used Google Apps to host my XMPP. It was just another connivence. Google’s XMPP service isn’t anything flash, and can be replaced with any old XMPP server. In my case I just replaced it with jabberd, because it was in the Debian repo’s and just required apt-getting and registering an account. At no point did I do any configuration.

Google Reader

In short, Google Reader is my online life. With Google Reader I wouldn’t be informed with what’s hot or not in the IT world today. Google Reader took a bit of researching to replace. The first alternative was to jump to a desktop app, but that means I would loose some flexibility.

After doing some searching, I found some fairly out of date code and projects, but eventually stumbled upon Tiny Tiny RSS. It has the same look and feel and Google Reader and done a fairly decent job.

What do I have left?

  • Not a lot

I have two “cloud” services that I am yet to find a home for.

I didn’t have any decent videos, so I destroyed my YouTube and Google Video accounts, but I still want to find a video web app for when I do have content I want to share. At this stage I am thinking about using a simple HTTP drop box, and linking to it from my status.net page.

The other service I haven’t found a home for is LinkedIn. I want to remain visible to “that” crowd, so I will not be removing my LinkedIn profile. The advantage with LinkedIn, is that information stored there is fairly public regardless, and without knowing a great deal about social graphs, I can’t see it as being a huge issue.

Keeping it all running

All of these web apps and services are running on a Debian Linux server (single core CPU and some RAM). It’s nothing flash or fancy, but it works. I use lighttpd, and everything so far has only required PHP and MySql (the de facto standard).

Since everything is running on a single server that I maintain, I need to ensure that I have a recovery plan. For this I use a tool called rsync to backup every night my data. The last thing I want is to loose years of hard work.

=app-emulation/wine-1.1.44 pulse

Currently the number one use for Wine in Linux is for gamers. I don’t game very often, but it’s fun to play some games here and there, and this time I felt like getting pwnd in Counterstrike Source. It is amazing how far wine as some since 2002. The new steam installs and runs in Wine like a windows app would, and both Portal and CSS worked out of the box. TF2 needed a little tinkering to fix out audio caches, but after that it worked fine. Considering that wine has to take all the DirectX calls and turn them into OpenGL, I am quite impressed with the frame rates, and the best part was I was still running compiz-fusion! Unlike Windows, this allowed me to switch between the game and other apps without tones of redraws.

The only issue I did have was that sounds from Wine took ~2 seconds before I could hear them, making first person shooters fairly hard. Knowing that Wine didn’t have Pulse Audio support I looked around, and sure enough someone had released a patch. Not only did someone release a patch, but it had been added to portage, and just required unmasking.  Apply the use flag and I had sound working at a decent quality.

Reasons I dislike using Microsoft Windows

In no particular order, I give you my Windows and Microsoft annoyances. Trying not to favour another OS, and yes, I still use Windows.

File/Folder layout

Yup, this is a killer. Windows over the time has been built up of hack ontop of hack, and it’s file structure has changed several times, but with every change the older folders have been left for legacy applications. In OS X, GNU/Linux and BSD operating systems file locations are some what sensible. /etc for config files, /lib for libraries, /home for homes, /bin for binaries. It’s all placed in logical places.

Application Support files / Install

Windows has no single way to install and setup applications. Installers are not standardised and usually make a mess of the system. There is no one location for start up applications and every time you want to install or remove an application you must use a software vendors application, trusting them to clean up their mess.

Support files for applications are scattered throughout the system and it makes backing up a programs setting is fairly hard. It is slowly improving with Local Settings and Application Data, but still fair from perfect.

Standards

Microsoft can’t even follow their own standards, so how are developers meant to. Microsoft event’s a new standard for each problem they run into, and don’t even bother to look at existing standards to improve on.

EEE

Which brings me to my next point. The good old EEE – Embrace extend and extinguish. The wiki page explains it quite well, and even provides examples :>

DIrectX
Well fuck you DirectX.

Shell / Command Line

Oh dear god. The current standard shell is absolutely use, and has barely improved since DOS 6. Oh well, at least we have tab completion now. YAY! The good news is PowerShell is looking pretty cool. Shame PowerShell isn’t supported on Windows 2000.

Dodgy Virus Protection

Windows has protected once again. To slow down virus they have limited our connections and removed our telnet. It hasn’t stopped viruses, although it has annoyed the hell out of us.

Requirement to have a virii scanner

An operating system that suggests you run a virus scanner is flawed. All that should be required is security updates every several days, not a whole new product by a third party.

5000 versions of the same product (ultimate ect…)

Home Basic, Home Premium, Business, Business Premium, Ultimate. This makes maintaing computers an absolute bitch, and just silly. Provide one operating system for all computers. Eg OS X :P .

NTFS not being an open standard

This really isn’t a Windows annoyance, but an announce if you aren’t using Windows. NTFS standard needs to be open so other operating systems can read it.

Updates

Windows is excellent at updating every 3 hours, not to mention updating even when automatic updates has been turned off. This is quite annoying for me, and people that just want to turn off their computers. Instead they have to wait an hour just install a simple update.

Warning Messages

If you ever download an application on Windows Vista or 7, you’ll have just under 8 warning messages to click allow to, and due to this, all users become quite jaded towards the messages, and completely ignore them.

Unrelated Note

On an unrelated note, I would like to see Windows have a unified way to saving application data, and sandbox each applications. When applications want to use other applications data files the OS throws up a warning message asking if the program can have control over those files.

OpenSSI

Well there you go, one of my life goal complete, clustering. I got a hold of two Dell 2650 and wanted to build a nice little cluster for dynamips so I can start testing / practising for my CCNP. I decided to go with OpenSSI, and Debian, because that’s all people have been talking about. Took me awhile to find the correct documentation for Debian Lenny, but once I did it was smooth sailing. The doco’s can be found here .

Once it’s installed it works pretty nicely, you set processes load balance using the cryptic command “loadlevel”, when processors start to use more CPU that get moved to CPU’s.

OpenSSI is very smooth to use with automatic setup of PXE booting and etherboot. Installed GNS3 and processes started to move over to the second server. I did have to set the max memory setting in GNS3 to the size of one IOS RAM requirements so it would spawn multiple dynamips hypervisors.

OpenSUSE first thoughts

So I love gentoo, however on a desktop computer which I will using for Uni it was a little high maintenance. I wanted to try something new so I gave Fedora 11 a go, which failed, so a work mate got me a copy of OpenSUSE.

The hardest part of the install was working out it’s partitioning tool and not getting it to touch my second drive, which had Windows and backups on it. I did finally get it to work, but for some reason it thought 15GB was enough room for me. That’s not a huge problem because I just extended the LVM after the install.

Once install, installing the ATI drivers using the one click installer was wonderful (however I did have to click more than once). Compiz fusion was easy enabled and networking (WPA) was a breeze to setup in YaST. The general look and feel wasn’t quite right, so as usual I modified to my liking.

OpenSUSE for me has achieved my goal as the required amount of terminal use is minimal. I have installed several apps without any problems and it’s been wonderful to use.

HTTPS and SSH on the same port

I like SSH and I like HTTPS, but some times I want SSH to run on port 443 (HTTPS port) so I can use it to get over corporate firewalls and/or school firewalls, depending on the time of year, which used to mean getting https, taking it up a steep hill and sacrificing it to the gods, while SSH was taking a spa in it’s $1.2 Billion luxury apartment.

Although today SSH and HTTPS have become friends with the help of sslh, which allows you to take the best of both worlds and run SSH and HTTPS on the same port with a little bit of haxing.

sslh can be downloaded from http://www.rutschle.net/tech/sslh.shtml and there is also a perl one, which isn’t all that good, that can be downloaded from http://search.cpan.org/~book/Net-Proxy-0.07/script/sslh .

The setup was pretty easy, however I did have a problem that took me longer than it should have to fix. I used my modem to change port 443 on the outside world to port 22 on the inside world and forgot to remove that rule, which ended up confusing the shit out of me.

Problems aside I now have SSL and HTTPS runing side by side without a problem and for a final note, yes this has been the most exciting thing that has happened to me in the last week, not including the job of installing and configuring 27 Cisco 8 port 3560 switches.

No MSN

I don’t mind MSN, I like to use non Microsoft clients, as they have no ads, and they’re generally easier to use. I typically used Pidgin, but Pidgin has started crashing on MSN, so I thought it’s time to ditch the closed source protocol and start actively using XMPP. The best part is, I use GMail, so I already have a XMPP account and server.

I’m currently using Gajim and I’ve placed it on the Compiz Fusion widget layer, which makes it even more nicer.

I’ve also installed a VOIP softphone, however I don’t think it’ll run all that well through my throttled internet.

Macbook

After a few troubles getting Gentoo I finally done it. It took me about 9 kernel recompiles, 5 fresh starts. Nevertheless the reward is awesome. I know have lots of HDD space to play with, and really fast machine.

That’s right, no more OS X or Windows, the software I run on my Macbook, is 100% running on free software. Everything (with the exception of flash) has been compiled for my system.

I’ve created a few scripts, such as switching the fan speed from high to automatic and back again, because I want my lap cool, but I also want to save battery and not make too much noise.

Everything is working really nicely, except for the intel driver forcing me into 1024×768, instead of 1280×800, unfortunately the new intel drivers break for me so I’m stuck -_-.

I’ve been taking some time lapse sun sets, and hopefully tomorrow I’ll get a good one. Today I set the timer to short, so it was very jumpy. We’ll see.

Project Old Box

Striped of resources and money, we tend to look at DIY and recycling to fund projects. In this case, I wanted a computer that could surf the net, pidgin, email, youtube and play music. I hoard junk like some old granny and her records, so I had some stuff laying around to make up a fairly old PC. What I ended up with was, 800mhz, 512mb RAM, 32GB hard drive, Geforce 2 MX 400 (32mb), RaLink RT2500 wifi card, cd burner (which has now failed after the install). I haven’t spent a cent on this box, it’s just pieces from PCs that would have been thrown out.

You’re thinking, 800mhz, that’s Windows ME old, there’s no way you could possibly do all that on such an old box. Well I can, and I’m doing it right now. Sure it isn’t a speedy box, but with Gentoo on it, it accomplishes all this with easy, I can surf, check my mail, IM, irc, and listen to music at the same time with absolutely no problem.

This is with the help of Gentoo. The way Gentoo is made, it’s made for speed and performance. No two Gentoo installs are the same, everything is compiled (with the help of emerge) for your PC and you choose exactly what you want installed. The smallest Gentoo install only includes the bear minimums, for the machine to boot.

Sure it’s a lot of compiling, but emerge does it all with a breeze, and you just set a few things to compile and goto bed. With the use of CCACHE you can speed up recompiles easily and if you’re lucky enough you can get distcc to use other computers to help with the load (I couldn’t do this).

The Gentoo install was pretty easy and the thing that usually takes me weeks only took me 30 minutes including compile. Wifi, the Wifi card installed a breeze and it only took me a bit of reading before I worked out howto hook it up with my WPA PSK enabled home network.

I’m using xfce4 as it’s lightweight and powerful, and is really nice to use. It’s like gnome without the fat. Xfce4 took the longest to compile but it was worth it.

If you ever have the time to setup a full blown Gentoo setup, I really suggest it, it’s a really good desktop Linux distro. I wouldn’t really use it for servers (I’m a FreeBSD fag) but I’ll be using Gentoo a few times in the future.

Now I wanted to share some of my favourite Linux apps:
- MPD (Music player daemon), I finally got around to installing this nicely and it’s great to use with gmpc. I also found impdclient (shown in picture), so I can use my iPod Touch to control the music on my nix box.

-gkrellm, As ugly as it looks, it’s really nice to have to see stats.

-xchat, has really picked up it’s game the last time I used it, and looks like a really nice client now. Still needs some stuff smoothed out

-Thunderbird, Very nice email client.

-Transmission, Perfect for torrents. (sharing linux distros)

-Gimp, great for image editing

A few more obvious ones that I use a lot are, Firefox and pidgin.