I finally decided to take the plunge and remove Windows XP completely from my notebook (so far I was dual-booting), however I require certain applications which I need to use as part of my research that's why I have installed VMWare and hosted Windows XP on it, with the software. I'm so far very impressed by the performance, although I only have 512MB RAM, but it doesn't feel as if I'm running an emulated environment. VMWare allows me to stay in Linux and access those application which I require which are not available on Linux yet. Gradually I think virtualization will facilitate Linux in taking over the Desktop J.
However I have come across a problem which has been purely setup by open source "fundamentalists"! As soon as I installed VMWare I tried out various hardware including USB flash drives and USB camera, but they won't work? And upon investigation it was revealed that this was due to a method for accessing the USB port, which was claimed to be insecure, hence support for it was discontinued in openSUSE 10.2, in a heated discussion in the forums, it was very clear who was behind all this, a respected kernel hacker. Greg KH recently jumped the canon and was the one who posted a patch to the LKML, for eliminating binary drivers. I respect him; however he does not seem to have any for users. In a post he said:
"We are not supporting VMWare, because it is closed source and proprietary"
It indeed is, but is there any other open source solution that beats it? Xen requires kernel modification and hence does not work with Windows, the only solution to virtualize windows on Linux computer right now (KVM may change that in future, however it is in the initial stages of development, and runs only on the latest processors) is to use VMWare. In effect VMware is doing us a favour by porting VMWare to Linux at all! I'm 100% certain that the openSuse 10.2 kernel team is doing the right thing by closing a potential exploitable thing, however the approach they have adopted is completely unacceptable! If the concerned methods is indeed exploitable, it is only in the application developers own interest to adopt a more secure method for accessing USB ports, however why can't all Linux distributions follow the same standard then? I can well imagine why VMWare didn't use the openSuse method of 'securely' accessing USB ports, because it would conflict with other popular distributions and if they try to support each method, would result in excessive workload to the company. The best method in this case would be to use something like the OSDL (what's the job of OSDL anyway?) to provide recommendations to the linux distributions in order to standardize kernel level interfaces, so that application developers do not end up supporting dozens of methods for a trivial task as accessing a USB port.
For the time being while Windows runs on more than 90% of the worlds desktops, and is a lucrative market for Independent Software Vendors, we can not ignore users who have applications which are Windows dependant; there are 1,000 times more such applications than Linux dependant apps. And the only way to allows users to run those applications on Linux for the time being is to use virtualization (WINE in my opinion, is progressing nicely, but still has some way to go).
PS. Instead of just ranting here, I will be releasing an openSUSE default kernel with the USB access feature turned on, so that people who need it now can use it
I've been disappointed by the state of linux download managers for quite some time. While on the Windows platform, some excellent download managers exist such as FlashGet, Internet Download Manager and Download Accelerator Pro, besides many others. What is it that sets these download managers apart? Its their support for what I call "multithreaded downloading", enabling them to download different parts of a single large file in multiple streams, independantly of each other! The benefit: an exponential increase in download speed. On a shared 2 MB/s if I use the ordinary linux download managers: kget,wget etc.. I dont get more than 50Kbps, but because I'm short on time, I go to a windows machine with one of the above download managers installed, and guess what the speed is: 160-220 kbps! Its not a Windows vs. Linux issue, its just that a 'serious' download manager in my opinion has never been developed for Linux. But this will soon change! I've started a project, in python which aims to be feature compatible to the download managers I've mentioned above. I've developed the module which allows me to download a file in independant chunks, parrallely. I'll keep you all posted on the progress. I'm also thinking of using Jython for this project, to create powerful Java frontend for it, so that people in Windows/Mac don't have to use those download managers above and pay licenses!
Are there any features which you would like to see in this download manager, for now I'm calling it Py/Downloader?
From the last few posts you can easily see how much I've come to love openSuse 10.2. Many geeks in Pakistan unfortunately don't have access to highspeed internet to download openSuse 10.2 DVD, and only old Fedora and Redhat 9 are available in the local market, using older distros discourages people fomr switching to Linux. So I've started a mini-campaign to spread openSuse in Pakistan, I'll be 'shipping' 100 DVDs intially and over a period of 1 month, and seeing how well it goes. I could scale up with a little help.
I would love to write the ISO image of the DVD so that someone can burn a copy for their friends.
If you are in Pakistan and are interested in trying out openSuse 10.2, please mail your address to [email protected]
Good news for Dell Inspiron Users: Your notebook is completely supported in OpenSuse 10.2
You can check out these tutorials for getting ubuntu run on Dell Inspiron and this one for Fedora. What do both have in common? Massive manual configuration encompassing kernel recompilations and what not.
However in OpenSuse 10.2, I didnt have to do any special configuration at all to get my hardware running. OpenSuse 10.1 supported everything except the MMC card reader (from Ricoh). Now this is supportedd aswell.
However one thing that is not supported is hardly openSuse's fault: The Connexant Modem. Connexant Modems are notorious for their proprietory hardware standards and focus on the Windows users! Besides I hardly use a dialup connection so this is irrelevant for me. For those reader who do use dial-up connections, I would suggest that you get those cheap external modems (hardly $30).
Ubuntu came to fame purely through marketting and hype! I believe that OpenSuse is the better Desktop/Notebook distro and without any proportional marketting/advocacy large parts of the human population will be deprieved of the 'better' Linux. I personally will soon get a pack of DVD's and spread it amongst my friends.

I have years of experience in Linux, and have used countless distributions in the past. Slackware has been my all time favorite. Over the years I have finetuned it for my PCs that they exhibit performance which I could never dream of in Windows. The thing I really love about Slackware is that because it is raw, the amount you learn about GNU/Linux is enormous. So In desktops at least in my place Slackware rules. However I would not say that Slackware is for the Desktop, it is a raw distro, which requires a lot of expertise and time to fine-tune and get everything working. I initially used to pitch it to newbies, but they always ended up being disgusted with linux due to the amount configuration they had to do.
Recently I got myself a Dell Inspiron 6400 Notebook, and installing Slackware on it, was pleasant at first, but than soon I realized many things where not working, after extensive configuration messing with the xorg.conf, countless kernel recompilations and others I got everything to work and enjoyed Slackware on my Laptop.
Today, I thought for a change I'll try out OpenSuSe 10.1 from Novell out. And it has been a blast! From the first glimpses of the installer I said to myself "hmm.. 32 bit!" (slackware has DOS-like installer, I know its not the only one with a 32bit installer, I've used Redhat's anaconda, its good, but the SuSe one is impressive). Soon I was in for surprises, everything went well during the installation: At first my external mouse and the touchpad automagically worked! Even the scroll wheel did
. Then as the installation proceeded, my sound card got detected (with which I had problems in Slackware, although I had compileed SND_HD_INTEL into the kernel, it still wouldnt work) , the graphics card (glxgears shows close to 900, thats 800 more than Slackware default
), along with the appropriate resolution (1280x800). Bluetooth, WiFi, firewire, everything was picked up by the installer automatically. This is how I expect a Linux installaton to be! SuSe really sets the standard here.
In Slackware, we have the very raw pkgtools package management system, which is simple and easy. But sometimes one runs into version conflicts, just as in Federo with "RPM-Hell". SuSe has perhaps one of the best package management system built into YaST. It handles dependencies transparently, and downloads and installs them without any special intervention.
So OpenSuSe is here to stay in my laptop! I know there are some political arguements against Novell for having struck a deal with Microsoft, and some are going as far as proposing a boycott of all Novell code. But the fact is Novell has made SuSe an extremely user-friendly distribution which really rocks on laptops! I'm sure it has the same performance on Desktops. So with OpenSuse and some other distros like Ubuntu etc. Linux is finally ready to enter mainstream desktop computing.
Java introduced the notion of Browser based applications, in the form of Java applets, which included nuances of feature rich desktop applications within a browser! It was a huge success and widely popular during the dot com bubble, but now I rarely hear about new nifty applets? Web Start gained some traction but the furor over it has died down. Rather another technology has taken the reigns now: AJAX, asynchronous Javascript and "XML". AJAX is the marriage of server side scripting languages such as perl or php and client side scripting language such as Javascript perhaps a little flash, imbued into HTML and some little XML or some other mechanism to transfer information, we get a powerful framework to create desktop-like applications on the browser! AJAX has taken computing by storm. The wave of AJAX based startups, acquisitions and mergers has already begun! Are we heading towards another bubble or is this one for real?
AJAX applications are a definite improvement over previous flickering page based applications, and what more, these applications are NOT memory savvy as Java applets used to be, and no runtime environment is required to run such applications, just a compatible, updated browser is enough. Nowadays many more innovative AJAX applications are being built than Java applets, and people are accepting AJAX more readily than ever. This year for the first time I heard people doing AJAX based undergraduate degree projects in Pakistan, there is talk in my research lab of developing AJAX based intefaces to some of the distributed applications developed here. Not long ago, browser based application used to be the exclusive domain of Flash and Java Applets.
So what was wrong with Applets? I don't need to list any reasons, you can check out this poll which was conducted in Java.net, the official Java forums, and complaints ranged from: Too hard to deploy to to slow in loading!
So we can safely say that AJAX has killed Java applets, a significant portion of standard Java.
From Google Trends we can see how much interest people have in the three technologies, Java Applets, Webstart and AJAX, and compare the news reference volume certainly AJAX has ruled the headlines in recent months and years.

As wireless connectivity expands and gets increasingly cheaper, more and more mobile devices will get connected, once this happens the future of J2ME would look bleak. I personally have started using AJAX based services like Airset.com, which provides an intuitive calendar solution that helps you also to remain in touch with your friends and family. The built- in calendar program which came with the PDA, was developed in J2ME and it lacked a lot functionality, and I found it a bit clunky to use. Another drawback of J2ME applications which you won't find in AJAX applications is the mutual incompatibilities between mobile devices. Like I can purchase a game from the internet designed for Symbian mobiles, but when I try to run it in a cellphone using symbian it won't run! After a little bit of investigation it turns out that the game supports Nokia symbian mobiles, and some certain sets NOT Motorola ones, like wise try running a J2ME game for the Motorola E680i on a Nokia N92 it wont work!
The greatest impediment to AJAX of course is the lack of connectivity, once connectivity is seamless and universal, than people will stop using native applications like the one developed in J2ME and start using AJAX ones.
One complaint I have about AJAX services is that many of them run poorly on cellphone/PDAs, this is certainly not a problem with AJAX itself, because services such as Gmail and Airset.com, prove that AJAX can run on supported browsers on mobile devices if the service is well developed.
Recently due to a project(I am part of a group building a next generation operating system, which would allow seamless resource sharing on a global scale) complication I decided to ditch a particular component and implement it in another alternative language. I explored various possibilities. The component is a SOAP web service based thing. It was previously implemented in C, using the Axis2/C framework. The initial impetus to use the Axis2/C framework was to make a web service based component which was as fast as possible. But the problem is that Axis2/C is not mature, it hasn't even crossed the 1.0 milestone! The component was riddled with segmentation faults. It only worked in Slackware 10.2! When we upgraded to Slackware 11.0 in our lab, the component stopped working! I spent some 8 hours trying to debug it but to no avail! I finally decided to ditch the component and implement it another language which was more productive than C and didnt have manual memory management. I had numerous alternatives, Java, which I found to be too resource demanding; PERL, the problem with perl was that I am the only one in the team who knows PERL, and I would have to implement everything myself, I finally settled on a combination of Php and Python. I read somewhere that Python had bad performance as compared to php in hosted applications. So I decided that the server side portion of the component is to be php based and the client side portion is python based, and we have ample expertise in the group in both php and python.
With this effort I hope to dive into python and contrast it to Perl, I will write a subjective comparison of the two languages soon.

KDE just got 10 years old! The K Desktop Environment, is "one of" the best (the "one of" was put in order to stop a flame war in my blog) desktop environments for Linux. KDE has been crucial in introducing Linux to the Desktop, true a GNOME based distribution, Ubuntu has the taken the reign now (I believe this was due to marketing and hype), but KDE based distributions, Fedora, Kubuntu etc are not too far behind. Its been now 5 years that I've been using Linux, my first distribution was Redhat 7.2, which was running GNOME; KDE, due to Redhat's modifications had a similar look and feel in Redhat. So I couldn't get excited about Linux at all, it was a very boring interface for me. But in a random surfing session I came across screen shots of Slackware, which of course ships with unmodified sources, and the screen shots really appealed to me, I downloaded Slackware, and from that moment I've never looked to any other distribution, and use Slackware with KDE exclusively. So what is it that I really like KDE?
1. KDE look and feel
I really like KDE themes Plastik and Keramik. There are numerous innovations in KDE, for example the KMenu applets, which provides fast access to numerous highly useful features, like weather reports, dictionary, direct access to storage media (one click mount), information about my local wireless network etc..
Apart form the KMenu there is another toolbar which I really use a lot, the KasBar, its a toolbar which shows thumbnail views of opened windows, it helps my productivity especially during programming when I have multiple windows open, the IDE, the debugger, Mysql administrator, Mysql query browser, etc. Having thumbnail views allows me to navigate to the required window a lot faster.
KDE Icons look very very clean and well designed. KDE's file browser, Konqueror, in my opinion is the best one around. I've used GNOME's nautilus, and I cant figure out, why they have not included a "open terminal here" options in the popup menu, in any Linux system you have to turn to the command line frequently, because there are some tasks which are more suitably done in the commandline than in a GUI file browser.
2. KDE has tons of freebies!
KDE ships with tons of applications, many for similar purposes, all in all the bundled application mostly fill nearly all my needs, and very few extra software have to be installed, such as OpenOffice, GIMP, Firefox etc.
KDE's own webbrowser, although for a very long time couldn't even open Gmail, has come a long way, and often I prefer Konqueror over Firefox, because it is lightweight. But Konqueror has still some way to go to challenge Firefox on KDE desktops, because it doesn't support some AJAX functionality for example, in Konqueror I can't see the GMail integrated Gtalk client.
There are tons of KDE application which are not shipped along with KDE, but you can get them from here.
3. KDE application development is easy!
KDE is based on Qt/C++, which is one of the best GUI development toolkits for Linux and others. Its innovative 'signal and slots' based event abstraction makes development of GUI application very easy. KDE Desktop Communication Protocol (DCOP), allows KDE application to talk to each other. I really wished that there would be something similar in Windows (maybe COM, but majority of windows application are NOT COM enabled), because allowing application to application communication allows a developer to reuse the functionality of existing software. Then there is KParts, which is analogous to COM, which allows the developer to encapsulate a component which does some specific thing, and then reuse that component in other applications.
KDE comes bundled with some of the finest development tools around. KDevelop, is a very feature rich development environment, which allows you to do development of every type of application from simple BASH shell scripts to complex Kernel modules.
Quanta is an excellent web development environment, its hard to ignore when I'm doing php programming. I use it to complement Zend, a commercial php IDE I use, which lacks in website design capabilities.
If you want to learn Qt, you can consult this book its the best book I've come across, and covers a wide range of topics which help you to get productive with Qt quickly.
So these are my top 3 reasons why I prefer KDE, I'm very excited about KDE 4, and can't await its release, the screen-shots I've seen have been marvelous.
I would like to know from my readers what they like or dislike about KDE?