Linux for human beings

This is a post that should have been written few days back, On April 29th Ubuntu 10.04 – (Lucid Lynx) was released, and I was counting days till it did but couldn’t try it out because of the release work I was doing in my machine. Last weekend (even the work wasn’t quite over) my anxiousness couldn’t rest. I installed the new beast keeping my /home safe. To tell you the truth, the installation process was hardly “linux like”. There were no screens showing any commands executing, nor view of the terminal. What you see is a breath taking slide show (very much windows like, but much sweeter) trying to show off the beauty 😉 and market itself.

Ubuntu - 10.04 (Lucid Lynx)

Well I know many of you already have tried Lucid, and there is nothing new for me to mention, hence I thought of writing few words about Ubuntu’s slogan “Linux For Human Beings”. My history as a Linux user is not that ancient, even though I have used it side by side with a  Windows OS, I’ve never gone total Linux, There were reasons behind. {1} I was afraid it will all break down in the middle of something. {2} It looked like a dark cave with alot of never ending tunnels {3} It was hard for me to troubleshoot on my own (I was a novice). But thanks to Sandaruwan and the never ending virus problems, performance degradation with time in windows, I jumped in to the deep-end. Ever since am a happy man 😉

Before Ubuntu, I have tried Debian and Suse, but with Ubuntu I felt quite safe. There were number of reasons, among them, Canonical released frequent updates and bug fixes (mainly fixes related to hardware drivers). Ubuntu’s is doing major release twice a year with a considerable amount of improvements, and nevertheless its Virus free, ultra fast and very stable for a software development environment.

Being those my reasons, I believe Linux is the answer for many 3rd world countries, to obtain a high IT literacy rate. When Microsoft and other proprietary software vendors are investing in millions and billions to put a full-stop to software piracy (Which as a software engineer I encourage), and when personal computers are sold with these proprietary software pre installed (Ofcause not for free) with prices automatically goes sky high, resulting a normal user to look at a computer as if it is a Jet plane ;).

But for some (many) reason free and open source software is hidden to the normal user world. Of-cause there are few myths associated, One popular myth is that Open source and free software doesn’t come up to the standard of proprietary software, If we forget for an instance that I work for a 100% open source company 😉 , and look at Apache software foundation, where there are plenty of great products (Apache HTTP server, Tomcat, Maven, Synapse et al.), but normally the argument is “A normal user doesn’t care about the server space. What does free software offer for them ?, to listen to music, edit some photos, check email and browse internet” ? And as far as I see this is where Ubuntu places itself. I believe this is why it displays a pretty screen while its being installed and I think so far Ubuntu had done a great Job, and it is ready with a strong and shiny armour, to battle with any proprietary operating system and make it’s mark.

So if you are a normal user reading this article, try new Ubuntu, and when you are buying your next personal computer, ask you computer supplier to give the machine with Ubuntu. I promises you, you will save a hell a lot of money, and it will set you free. 🙂

Convert from HTML to XML with HTML Tidy

For few days I was involved with WSO2 Mashup Server 2.0 release documentation, giving a hand to the mashup team. Documentation is a painful task, but when comes to open source what matters mostly is documentation :D.
Last night I had to convert a bunch of html files (some Java Api Docs) to xml in-order to port into maven site. Formatting 30+ html files to xml !@#$%^&*@% :D. So I was googleing for a tool to automate the task. With few clicks here and there I found a nice article in Big Blue‘s developer works site, a tool called “Tidy“. When I tried to download and use I figure out that you can straight away apt-get the package and use. So,

sudo apt-get install tidy

and your box is now equiped with the tool, and can be accessed via the shell.

tidy -asxhtml -numeric  index.xml

but who wants to convert file by file when you have such a nice tool, so I spent few minutes in writing a tiny shell script to get the job done, the snippet is,

#!/bin/bash
for file in $(find $1 -type f -iname '*.html'); do
	myf=`echo $file | sed 's/html/xml/g'`
	tidy -asxhtml -numeric  $myf
done

All looked good, worked fine. However in my Api Docs I had, had few special tags, custom to our Mashup Apis (<imconfig>, <yahoo>, <mail:config>). Tidy gave error for these files since the tags are not recognized.

In such a case you can train Tidy for new tags, by adding few lines to the tidy configuration file. (/etc/tidy.config – You can also give your own config file at the prompt)

new-pre-tags: imconfig, yahoo, msn, aim, icq, jabber, username, password

There are whole bunch of tweeks you can do with tidy, [1], [2] and [3] are some useful links that you can read up when using the tool.

[1] : http://www.ibm.com/developerworks/library/x-tiptidy.html
[2] : http://tidy.sourceforge.net/
[3] : http://tidy.sourceforge.net/docs/tidy_man.html

Lesson learnt the hard way

Terminator was running in four segments, top left was a maven build, top right was a svn update, in one of other two an apt-get was running and I was playing on the smaller one left in bottom right. My notebook was running on battery power and I forgot to plug it in to AC, before the box got hibernate. Once I reboot it with AC power my X-Server was gone !! I couldn’t see the log-in screen and it just left me with the console in full screen.

I am not a linux guru, but i tried few commands, “startx / dkpg -reconfigure / nvidia-config / etc”. I had to run to our sys admin since he is considered the guru :D. with few commands at flash speed he got the x-server running again. but it was all broken here and there. couldn’t hear sound, installed apps were not working and above all when I reboot, I had to type “startx” each time to see the display (Which was a pain and made me itchy :P). Chamith’s idea was even if he could get the x-server running in normal mode, some errors that am getting wont be able to fix. so the best option to make all smooth is to re install the OS and he said “No probs ne machan (sinhala way of saying dude / bro 😉 ), ur home is in a different partition right ? so its a matter of ten minutes to restore the root in the other partition.” – OH CRAP NOOO my /home was also in the same partition and I only had one single big partition. 😦

SO yeah I had no other option left, I had to back up 20GB of my /home dir and re-install ubuntu 9.04. (Coping 20GB from here and there is a crappy and a messy job) I was struggling with the fix till today morning and finally got everything smooth again.

SO the lesson from all of this is. keep your /home mounted in a different partition. I learnt the lesson, the hard way.

UNIX / LINUX based Client & a Server application

Okey so am writing after some time about some valuable thing !! This is about some thing I happened to do as an assignment for one of my degree modules (Network Application Development). The Assignment is to implement a server and a client using both TCP and UDP. The functionalities expected were, a centralized server which keeps records of the online connected buddies in the network (Subscription) Continue reading UNIX / LINUX based Client & a Server application

Accessrunner-based USB ADSL modems – Get it to work on Ubuntu Dapper/Edgy

This is one wide area that no clear online article is available as a help document. I my self had a huge problem in searching and making my modem to work with Edgy. When you google for the Conexant AccessRunner driver you get the driver file as sources from the sourceforge,
http://accessrunner.sourceforge.net/index.shtml
where you have to add those files to the kernel source tree and recompile the kernel creating a great deal of work. But yet luckily the new kernels (after 2.6.10) have this driver inbuilt (Ubuntu Dapper/edgy) so you don’t have to mess up recompiling the kernel.

Any how you have to manually add the firmware, otherwise the modem will not work. (The LEDs wont Blink) for this you have to do few things, things I gathered from many online forums/blogs and help guides.

you have to extract the CnxEtU.sys file from the CD which you got from the vendor of your modem, and have to place it in /lib/firmware directory to make the firmware working. The step by step guide as follows.

for this purpose since we do not have the extract command, we have to download the package that Nicholas Wheeler created. from http://revu.tauware.de/details.py?upid=2426 there are several files but what you have to take is cxacrufw_1.2.orig.tar.gz and cxacrufw_1.2-1.diff .

After downloading these two files unzip the .gz and copy the .diff file in to that folder, and being inside that folder through the terminal patch it using
patch < cxacrufw_1.2-1.diff

then type make and make install. now you mush be havening a command called cxacru-fw. now your ready to extract the firmware.

insert the CD you got from the modem vendor and using the terminal type the following commands.

cp /media/cdrom/driver/ADSL/Wan/CnxEtU.sys ~/

(the above path can be different according to your settings so adjust the folder path)

then

cxacru-fw ~/CnxEtU.sys ~/cxacru-fw.bin
sudo cp ~/cxacru-fw.bin /lib/firmware

Make sure that the firmware is installed as /lib/firmware/cxacru-fw.bin or else the LED wont light up.

restart your computer and thats it you must be seeing the modem is working fine with the LED lighten up. anyhow though you have attached the modem to the computer and if your ISP is providing you a PPPoE protocol you will still have problems connecting your modem to Internet

there are few sites I saw some details which i think will be useful so just visit till I post a topic on HOW TO configure PPPoE

http://www.tldp.org/HOWTO/DSL-HOWTO/configure.html#BRIDGEVSPPP

and if any one who knows on PPPoE please leave a comment….

Installing Gnome(cairo)-Dock

Today while i was surfing the net (digging new gadgets for my Gnome desktop) i saw some interesting screenshots of a universal dock something which is similar to the OSX making me hunt down this new feature to my desktop. i googled for “Gnome dock” and found a post in ubuntu forums where i followed the installation process and at last.. yes !! I got the DOCK but there were no application images seen in the DOCK. i solved this problem by editing the .svg files and the cairo-dock.c file. but the biggest problem i encountered was that when i added this to the sesion and restarted my X-server. I crashed or rather I didn’t see my desktop at all. (well for some wired reason it crashes only the desktop.) I think this happens when the Gnome session loads Beryl-manager, Beryl, Gdesklets and the cairo-dock at the same time it might get overloded and crashes the desktop.

Anyhow as a solution i delayed the loading process of each of these applications through a shell script. so on this post I will describe how to install cairo-dock and make it work hand to hand with beryl.

You can follow the instructions on the Ubuntu forum for the installation process. since it describes well I will write what is missing.

At the step 5 before download cairo-dock.tar.gz i signed up for the ubuntu forum.

At last after the installation process is done when you run cairo-dock it will appear in the bottom of your desktop with almost no images for the named applications. These application icons are saved as .SVG files in the cairo directory what you have to do is open each of these files and replace the link to the image with your application icon’s path.

xlink:href=”/usr/share/pixmaps/firefox.png
sodipodi:absref=”/usr/share/pixmaps/firefox.png

replace the highlighted link with your icon’s path and secondly you can add/remove applications from the dock by edition the cairo-dock.c file. there in the specified section you have to add the name of the .SVG file, name of the application and the command to launch that application and make it. this is the simple way to make the DOCK running with the applications you want in your desktop. If at the end when you add the DOCK to the session and restart and if then your Desktop crashes, simply write a shell script and save in /usr/bin/ and add that script to run on the beginning of the each session.

my scripted looked like this.

#!/bin/bash
beryl-manager
sleep 5
beryl
sleep 7
cd /opt/cairo-dock
./cairo-dock –no-glitz &

restart your X and you must be smoothly working !!! Enjoy…

Credits :

Sandaru1 & Kasun