As expressed in my previous post, I'm getting convinced that staying on a "windows-only" machine for the development is, if not a dead-end (I'm sure there is aplenty of happy windows using rails/django developers out there. Hey! Where are you? Hey! Don't hide, I just want to talk to you !), at least something that will make the road more difficult... And it's already difficult enough.
So, to action, I did decide to install an Ubuntu on my machine (dual boot using "wubi", not taking any risks). My objective was to setup everything that I need for day-to-day work, identified on my current configuration as :
Standard stuff :
- Office (I use Microsoft Office on my windows, but OpenOffice is no problem)
- Chrome (not just "any browser": I like Chrome much and use the sync to keep my bookmarks and stuff between several machine, so it really make a difference for me)
- Skype (or something able to use the same protocol)
- Google Talk (my contacts are there, notably Christophe)
- Media Player (I -need- music)
Programming stuff :
- Aptana Studio (I do not want to evaluate other tools immediatly... One thing at a time).
With this in mind, let's start!
The installation itself is as painless as it can be: click, reboot, the dual boot option is shown, select Ubuntu, create user, you're in. A small message saying that I do not have the needed hardware to run Unity, which I dismiss skeptically (my machine is one year old), anyway, I do not care (for what I've read, whatever Unity is, it has provoked an outrage in the community, so perhaps I'm lucky to -not- have it).
Now, unto the first problem: my keyboard is set to US. So, on the web for some research... unto a "cannot find google.com" from Firefox (default browser).
Wireless card not recognized, and I cannot connect with the wire (too far). So, more pressing matter. Hopefully, I've my (windows) laptop nearby, so I can google from there. With a little help from Christophe (" - What card do you have ? - Broadcom. - This is bad. - Thanks..."), seems that using a wireless Broadcom card on a linux machine is not trivial. In between, I find a pretty nifty keyboard icon, which leads to a configuration screen where I can add my Belgian keyboard. At least some progress.
Thanks to this, I at least know that I'm not alone. I learn also that installing packages on Ubuntu is as simple as sudo apt-get... If you got an Internet connection, that is. So, download on the laptop, USB key (recognized without problem), unpack, rinse, repeat. Finally, I've followed all the procedure, reboot and...
I miss my password three time in a row. Which I'm not used to. A bit surprised (did I manage to mistype it when I set it up?), I come back to the login screen, where I can type (in the user field). A quick try to write my name, and I understand that the keyboard is back to US. Ok, now that I know it, it's pretty simple, so I manage to login successfully and...
Unity strikes back
I do not recognize the screen. Everything seems to have switched from place. The menu is no more there, but I got a sort of lateral toolbar. After some confusing minutes (if this is a "normal update" for linux, I do not want to see what is a major update), I remember something : I did got a message saying that the official drivers were installed for my GeForce (which is good). So, now that the system has the proper drivers, the card is at full capacity, and the OS recognize that I do have the proper hardware for Unity. Which is what I'm looking at.
The good news is that my wireless card is well recognized, so the procedure, while technical and lengthy is also precise and correct. Problem solved. I become used very fast to apt-get. Some command later, I got myself a Chromium browser (which is far more similar to Chrome that I though, having even the synch based on my google account) and some other utilities. Far more efficient that browse/download/unpack.
Keyboard, last time.
I can swith back my keyboard in two clicks, but this US keyboard come back after each reboot, even if I try to remove it completly. Back to google, to this lengthy discussion, then its solution, a bit arcane for me (I did not even check what this command does exactly)... but fully functional.
Not knowing exactly where to look at, I just type "media" in Unity launcher (a feature that I like very much, being one of the four people using enso), to find a "Banshee Media Player" already installed. Launch, select folder, and voilà, got an album running (.flac files, which windows media player had trouble with). Bad surprise arrives with my first .mp3, which Banshee does not seems to be able to read. Back to google, to this. It works, but I find something strange here: it is almost as a big part of Banshee was not installed by default. What is the point of a bundled media player if it cannot read the most (ab)used music format on the planet?
I was not sure I would need this. But after a little surfing, I discover that some sites I visit regularly seem to require flash (notably some web radios, and some sites with videos). Chromium, strangely, shows that it miss the plugin, but does not offer any option to install it. Google again, with some help there. Except it did not worked for me. Not willing to spend too much time on this, and after having discovered that the flash plugin was built-in in Google Chrome, I find myself one apt-get from the solution. Well, good bye Chromium, it was nice meeting you.
No apt-get here, but a linux download on their website. Download, unpack, ready to go. Well, almost, as Aptana seems plagued with a strange bug on Ubuntu, making the menus unusable. Which is quite unerving. Solution proposed means creating a short launcher in Bash, so good first contact.
Apt-get again, rubygems works like a charm, so first test : I copy my workspace on an USB key from the windows partition, and unpack it under linux. Aptana pick it up with ease, with only a problem with bundler, which seems to not be on the path. Short trip to Stack Overflow for a solution. Rails bundle, launch server, and there it is, Rails up and running.
Another pair of apt-get for python and django, and another launch server... Fail. Message speaks of "no module named static files". Back on Stack Overflow, this seems to be linked to using an old version of django. A simple check of the installed version confirm this. So first small quirk with apt-get: I expect it to give my the last stable version, but I cannot be sure of this, and in this case, it did not, far from it.
Remove, download and unpack manually, and its working.
With this, I was pretty much at my objective. I did install git without problems, picking up my SSH keys (that I use to deploy on heroku) did work seamlessly. My global impression on the process is twofold :
- If Ubuntu is really the most "user friendly" Linux out there, it is not exactly ready for my grandmother. I think especially of the wireless card and the keyboard problems.
- That was by far not as painful as I thought it would be.
I did learned quite a bit (using apt-get, a bit of bash, some familiarity with linux file structure and basic commands), which is good. Well, time to go back to code!