Just added a link to my home server blog on this blog. Eventually I want to transfer all of my post to that blog. The link is http://srdan.ath.cx/wordpress/. I set up a computer at my house as a web server after I found out my modem/router supported Dynamic DNS and got an account with DynDns.org.
Anyways, I’m reading the book partly because of my new job as a Linux sysadmin for a small company called Primesoft. I’m gonna have to replace a Linux box which currently acts as a firewall/router not to mention god knows what other services it provides. But still it should be a good experience.
On the other hand I figured out finally how to get multi boot linux to work properly. I set up my laptop with two different versions of Ubuntu and I finally installed Fedora. My impressions of Fedora were good to start off with, while it was installing. The Anaconda installer is a really well polished piece of work. But upon logging in I wasn’t so impressed. For example I couldn’t find the Fedora version of Synaptic. I’m sure there must be one, anyway it just shows how important Synaptic is to Ubuntu.
I needed a simple, cheap laptop that I could take to university so that I could work on stuff there and not have to hope and pray that there’ll be enough working computers for me when I get to university.
The requirements for my laptop weren’t great. All it had to do was have WiFi (802.11 b/g) and be powerful enough to run a simple development web server (LAMP). The other requirement and the most important one was that it had to be cheap. After looking on the Laptop section of PriceSpy I came upon the Acer 4315 going for $699NZD (plus a $99 cash back offer from Acer) which was the same price as the Asus EEE (after the cash back). The laptop came preloaded with Ubuntu 7.10, which was great for me, since I probably would have installed it anyway. So it was a tough decision, whether to go for extreme portability and just a really cool little gadget or to go for a rather standard (if a little old laptop).
I made up my mind when Dick Smith had a computer sale and discounted their laptops by 10% lowering the before cashback price of the Acer to $630NZD. So one Saturday I went down to the store and brought it home.
You get what you paid for
For $630 you don’t get a laptop bag or any other extras. Just the laptop and the power cord. Although the salesman offered a upgrade package including more ram, a bag and something else (usb mouse??) for $99 which i declined. Other than the laptop and the power cord there was also the warranty booklet from Acer, a pamphlet on how to put in the battery and turn on the laptop and two instructional bits of paper.
Two bits of paper
The first piece of paper starts off by thanking you on purchasing the computer loaded with Ubuntu, followed by a blurb about linux and Ubuntu in general that sounds like it came from the Ubuntu marketing department.
Near the bottm of the page a section titled “Some system limitations” informs the users that the E key, Wireless key, modem and microphone are all disabled “due to limitations of Linux”. (The E key I’m guessing launches some kind of Acer software package that came with the laptop and the wireless key enables/disables the wireless card). It would have been more accurate of Acer to say that the E key is disabled because their developers put out software only designed to run on Windows. The wireless key does work, but in an interesting way. When connected and you push the wireless button it will disable the wireless card, but in such a way that the network manager app doesn’t know that the device has been shut down, so the interface is still active and it tries to connect, but ends up failing. Pressing the wireless button again and telling the network manager to connect to the network again seems to work for me. The microphone doesn’t work at all. The modem I haven’t tried, but I don’t really need an analog modem with my laptop anyway.
The other side of the first bit of paper tells you how to set up an account once the computer is turned on. It basically consists of selecting your language, time zone, keyboard layout and your name, username and password. It also tells you how to create a regular user account once you log in.
The second bit of paper tells you how to connect to a wireless network on one side and on the other it gives a detailed list of how to install the automatix dvd and playback codecs.
- The laptop came with Ubuntu Gutsy 7.10 32-bit installed
- The main partition is ext2, not the usual ext3. Leading to a faster system, albeit a less secure one for your data. (ext2 does not have journaling)
- The swap partition is not encased in a linux extended partition but is directly mapped onto the hard drive and has a size of ~4GB
- The computer name is set to ASUS
- The Atheros wireless driver is enabled from first boot
- microphone doesn’t work
- suspend doesn’t work
- specialised buttons on side don’t work (wireless button works but not fully)
- screen flickers when plugging/unnplugging the power cord
- to disable the touchpad while writing you have to press the ‘function’ button and one of the F keys.
- the latch at the front makes it sometimes tricky to open the laptop, requiring you to use your nail. But I do like having a latch.
For christmas this year i got a Sony Reader. To make full use of this I am trying to compile a list of the best sites on the internet to download ebooks for free.
Project Gutenberg – Offers an archive of classical (and therefore copyright expired books)
A list of online archives – A list much like this one, detailing where to get free ebooks on the internet.
ebookshare.net – Torrent book tracker. Mostly copyrighted material.
Planet eBook – Another site like Project Gutenberg, offering free downloads of classic, copyright expired works.
searchlores.org – A site that’s a mix of material. Lots of places to go to find resources.
For someone who doesn’t particularly enjoy web development, this is a rather bitter pill to swallow, learning that if you want to work in any other aspect of IT, you should probably move to Australia/UK/America.
So anyway… It’s no use bitching about the past now. If I’m doomed to become a web developer then I might as well become the best fucking web developer this side of the equator. But this is going to involve a lot of learning. The type of learning I dread and generally avoid. Learning by yourself, in your own spare time. Having to force yourself to read another chapter after coming home from work tired and worn out from your shitty job. The really hard kind of learning… fuck.
But I do in fact have a plan. And having a plan keeps me from having a total nervous breakdown, something which I’ve been really close to this last month.
My plan essentially involves learning everything about web technology, from the ground up, from setting up a LAMP server to AJAX. This is an ambitious goal for me, one which might take over a year or more to complete as I don’t know how much time I will be able to commit to my “2nd education”. But I do know roughly what it will involve.
Step 1: Wiring up my house. That is to say put in ethernet cables connecting the bedrooms of the house, the living room and the garage. This will allow me to put my de facto webserver (old HP pentium 4 my girlfriend was going to throw out) into the garage and to have it running full time. This computer is a mixture of web server and storage server (after adding a 320GB HDD) and will serve files to the internet and to the different devices around the house (in the future I could have a separate machine as a file server and a webserver) This should also give me experience on how to set up a network for a SOHO (Small Office Home Office).
Step 2: Domain Name. Opening an account with a dynamic dns provider and setting up a domain name. Probably going to use dyndns.com as it seems to be quite popular.
Step 3: Learning about webservers, file servers, ssh servers, nfs servers, ftp servers, proxies etc… Because I want my web/storage server to be universally accessible it needs to be able to serve files across a wide range of protocols. For each of the types of server I need to
- Install the software
- Configure the software i.e. get it to do what I want securely
Luckily I have found a resource that deals with these issues and a lot more. The resource being www.linuxhomenetworking.com. The website is well written, easy to read and up to date. It’s also free.
[NOTE: I should mention now that I intend to use only OSS software as a part of this education, for reasons which I will probably write about later]
Step 4: Install software for the management of my server. This includes things like Webmin, MySQL Administrator, PHPMyAdmin and perhaps some software to configure Apache (is there a decent GUI frontend for Apache or does it come down to editing config files?)
Step 5: Installing existing CMSs’ and understanding how they work. Looking at software such as Joomla!, Drupal, WordPress, Blogger (is the blogger source code available?), Silverstripe (Go NZ!) etc… and looking at how they are made, paying particular attention to how they handle extensibility (add-ons, extensions) and theming. However for the basic ideas on how to create a CMS I’ll probably start with php-mysql-tutorial.com. It should be interesting to see how much difference in the designs of these CMSs’ there is and the benefits/disadvantages of each approach.
Step 6: Learn Cascading Style Sheets. I have a real love/hate relationship with CSS. That is to say I f***ing hate CSS. As far as I’m concerned, CSS is a great idea (separation of content and presentation), implemented in a totally illogical, counter-intuitive, overly complex way. But to be fair, that’s what I thought of a lot of programming languages I learned until I “got” them. So maybe sometime in the future I will really love CSS, but I wouldn’t bet money on it. I’m probably gonna go with the tutorials from W3Schools or failing that get a book from the university library on CSS.
Step 9: Learn AJAX. Start with W3Schools tutorial on AJAX, then can move on to other examples on the internet. There’s so many on the web that the biggest problem learning is going to be information overload. A book might be useful as well.
So then the question arises as to what to do with all of this new web development knowledge and the server sitting in my garage. The thing to do I guess would be to make a website to showcase my talents which could be a point of reference for people seeking examples of my skills/knowledge.
Also the idea of creating a photo gallery CMS based on the work I did with LaPhotographie is an idea I’ve had for a while. Such a system would, of course be open source and perhaps some day take off and become more than a pet project.
And the possibility of turning the setup in my garage into a web hosting company is there as well.
So there you go, that’s my plan. It helps me to keep busy and ignore the fact that I’ll probably end up doing web development for a long, long time.
Ubuntu’s new website http://brainstorm.ubuntu.com/. Best idea ever. Nuff said.