Irfan’s Corner on the Web On Mac, Linux, Grid, Virtualization and Software Technology

24Jun/075

Open Source World lacks Good Web Development IDEs

Linux is considered the de-facto server based operating system. A typical Linux distribution comes with everything any web developer could have asked for: php, apache, python, perl, ruby etc. However there is one thing that Linux sorely lacks: Web Development IDEs. Sure KDE comes with Quanta, and there is BlueFish, and there used to be Nvu. Each IDE has its own strengths, for example I love coding php in Quanta, BlueFish rocks at HTML authoring, however there is so much more to web development nowadays: XML, CSS3, JavaScript to name a few. And each IDE really sucks in handling these things. Today I was coding in Javascript and Quanta kept crashing!

To just give a flavor what the open source world is up against when it comes to web development IDEs. Just have a look at the latest enhancements to the already powerful Visual Studio (not a web development IDE par se, however VS always has supported web development due to ASP). Then of course, no comparison is complete without the mention of Adobe Dreamweaver, MS Expression Designer although seen as lame in the Windows world is light years ahead of any open source web development IDE unfortunately.

So what is a Linux web developer to do? Put up with crashing, feature deficient web development applications, or get the proprietary ones and run in them in through virtualization (this is the path I'm thinking of adapting)?

Filed under: FOSS, linux, open source, web 5 Comments
17Dec/064

Free OpenSuse 10.2 DVDs

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 freesuse@phantomos.org

17Dec/067

OpenSuse completely supports my Notebook!

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.

snapshot1.jpg

12Nov/060

Diving into Python

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.

15Oct/0631

Happy birthday KDE!

10yearskde1.jpg

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?

14Oct/068

My Top 10 Firefox Extensions

One of the best things I like about Firefox and hate about Internet Explorer (pre 7) was that it is a very simple browse, offers the bare minimum functionality needed to browser the Web. The recently released Internet Explorer 7 also has a very clean interface which resembles that of Firefox a great deal.

However sometimes I wish that they have included a certain feature into the browser, these wishes are mostly answered by the Firefox extensions. Designing Firefox around an extensible plug and play architecture was the best design decision in my opinion ever taken. The ease with which you can extend the browsers capabilities by just installing extensions which are normally tens of KBs big, allows Firefox to be ahead of its rivals.

Thousands of extensions have been developed, and it is time consuming to browse to the repository and find a 'must have' extension. That's why I've written this post to help you out, by highlighting those extension which have had a positive impact in my 'Firefox experience'.

The list is not numbered according to usefulness or any other measure.

1. Google Toolbar

Although a Google search box in included in Firefox by default, the Google Toolbar allows you to do more, a lot more, it gives information about the current page, spell checking for posts, allows searches in different categories ie. Maps, Froogle, etc.. And it allows a Gmail mail to be composed by a single click! It basically acts as a one-stop portal to most of Google's services.
2. SessionSaver

The SessionSaver extension allows the user to close the browser and automatically open at the same state next time. Extremely useful in many cases. I could run into blogs with interesting content, start reading them, and when I have some work todo I simply close the browser, and restart my exploration of the blogs when next time I launch Firefox; and in case you dont want people to know what you were last surfing, you can always disable it!

3. Viamatic foXpose

Often if you have too many tabs open, it gets difficult to navigate around to a required tab. foXpose is very use-full extension where a button on the status bar is clicked and thumbnail views views of current opened sites appear. Just like shown in the following image:

snapshot1.png

4. Permatabs

Another useful extension, which saves a lot of time. There are basically some sites, which I always visit, like webbased mail services, news sites, some blogs, slashdot, digg etc.. With permatabs I open all the required websites in tabs, and make them a 'permatab' which means that they will be there forever afterwards, even when Firefox or the machine is restarted.

5. FlashGot

Numerous popular download managers in Windows don't support Firefox yet, FlashGot has the answer. It allows the interoperability of Firefox with numerous external download managers. Firefox's own download mechanism is not at all suitable for downloading massive files, thus this extension provides a remedy.
6. Clusty Toolbar

This cool Firefox extension allows me to find information really quickly. When browsing a page, I may encounter something about which I'm not aware of, clusty toolbar allows me to perform a search, and cluster results from multiple search engines, and make a

7. ScrapBook

ScrapBook as the name implies allows you to have a scrap book, where you can collect clippings of snippets from websites, and categorise them and store them to the disk.

8. Del.icio.us Toolbar

Del.icio.us is perhaps the largest repository of user contributed bookmarks. When looking up a subject I nowadays increasingly go to del.icio.us and perform a tag search, and find related content immediately. The toolbar also allows me to tag websites while I'm surfing them.

9. SwitchProxy

SwitchProxy allows me to switch between normal Internet surfing and anonymous proxy surfing, or switch from proxy to proxy, this extension is esp. helpful to me because as of early this year the Pakistan government has banned the entire BlogSpot/Blogger domain, and if I come across a cool post via Slashdot or Digg, I switch proxy so that I can read it.

10. Performancing

Performancing is a blogger's extension! It allows a blogger to immediately blog from firefox without going to any specific URL, Popular blog services such as Wordpress, Blogger and others are supported.

So I hope that you discovered some new Firefox extension, and will install them to spice up your Firefox experience. I would like to here from you of other cool Firefox extensions

7Oct/061

Linux rises as a Supercomputer Operating System, but faces hurdles in the Desktop

In Nov 1997, 99.2% of the top 500 supercomputers in the world ran Unix.
9 years afterwards, It's market share has been eroded by Linux which now runs on 73.5% of the top 500 supercomputers.

In 1998 Linux made it's debut in the Top500 List, an authoritative list of the top 500 supercomputers in the world.
After 1998, it took Linux 7 years to break the magical 50% mark. As of November 2004, it ran on 60.2% of the top 500 supercomputers, in 2006 it nearly reached the 75% mark. I believe that Linux will go all the way to completely take over Unix's user base. Both OS's run on about 94.4% of the top 500 supercomputers.

The rise of Linux has come largely at the cost of Unix. Which is discernible from the fact that both operating systems are very similar in nature, and they both are operated the same way, thus the cost of switching is minimal. Linux is an open source, stable, secure, multi-user and multitasking operating system all these factors make it ideal for a supercomputer. Supercomputer manufacturers can modify the kernel source to suite their hardware. The kernel is monolithic but has elements of microkernels in that it allows kernel modules, which make kernel development very simple.

Contrasting open source Linux with closed source Unix leads to a major observation: A lot of money is flowing into Linux these days, and Linux has a large active community which contributes to it, enhancing and making the OS better. Whereas the money flowing into Unix is stagnant. After the commercialization of Unix, the operating system has been largely in decline, I expect the decline to continue and see it as irreversible. All these factors conspired to erode Unix market share in the supercomputing world.

Linux has made remarkable progress from a hobbyists project in 1991, to the leading OS in supercomputers and server systems. Linux also has made inroads into the embedded market. Motorola has been very successful marketing Linux based smartphones, like the e680i which I personally use, and have no regrets about buying it.

One area where Linux lacks is the desktop market. Which of course Microsoft rules. There are many things which conspired to make Linux entry into the Desktop difficult! For starters: Weak GUI(KDE is great, but in my opinion increasingly getting bloated), focus on command-line based user interface(no matter how good the GUI is you always have to go back to the command-line at some stage), difficulty of managing and installing Open source software (dependency hell! Gentoo's emerge, yum, conary do a great job at resolving that). But two hurdles I think have been overlooked, that is software piracy and lack of support for Open Source! The most natural user base of an Open Source operating system would be in the Third World. Countries which can not pay for basic amenities for their populations hardly can be expected to purchase proprietary software from multi-billion dollar companies. So open source software provides them a platform with which they can compete with the developed nations. However if I look around in my own country, Pakistan, I hardly see any Linux deployments around. The Government uses MS software in its offices, businesses use MS software, the people use MS software at their homes! MS Office is taught has part of the curriculum at high school. Most of the software is of course pirated, costing about half a dollar per CD (Windows is 1 CD). Because of software piracy MS Windows and related software are ubiquitous in Pakistan. Software Piracy helps proprietary software companies more than it hurts them! Precisely it makes people dependant on their technology! No-one I know is even considering of switching to Linux because they see Windows everywhere around them, they believe using Linux would put them at a disadvantage, so they better stick to Windows, no matter how many virii they get!

Not long ago I had an instructor at university, who was a senior officer in the Pakistan Armed Forces, he happened to be the director of the Army's directorate which was responsible for the IT policy. He was a complete "Microsoft Guy". He never considered any software solution which was not from Microsoft! I once had a discussion about why his directorate was making the Army dependent on Microsoft software, and not take up the initiative of making them "independent" by indigenously customizing open source software to suit their purposes. He replied this was impossible in the current scenario! There are no companies in Pakistan which provide support for Open Source software, and the Army required heavy-duty support, which to them was only being provided by Microsoft. Indeed in Pakistan there are virtually no companies which provide support for open source software. Most universities in Pakistan are busy at churning out software professionals which are adept at Microsoft technologies, and open source figures low on their curriculum. With no support companies it is very unlikely that any enterprise will take the risk to switch to Linux.

2Oct/062

Is Open Source Software Really Better?

What is the Open Source hype all about? Nearly every week a seminar in some part of the world is being held on Open Source technologies. Every year (at least the last 2-3 ) we are confronted with reports which state that certain open source software have increased their's market share at the expense of already established proprietary software.
Is Linux really better than Windows? Is Apache really the better web-server? Does MySQL really have what it takes for a good database engine? Is Open Source going to take over the World?
The word 'better' when applied to software is an ambiguous term. In this article the word better will mean: "A Software which has a superior performance, stability and less prone to software bugs coupled with ease of use when compared to it's equivalents and given that it satisfies user requirements"
Armed with this redefinition of the word 'better' we will seek the answers to the questions we posed.

The Origins and Heavyweights of The Open Source Movement

The Open Source movement separated from the Free Software Movement and earned a separate identity in 1998. It's sole purpose initially was "to act as a marketing strategy for Free Software". The leaders of the Open Source Movement recognized that the term 'free' in the business world is synonymous with 'free of cost' where as the term 'free' in Free Software meant 'free as in freedom, not cost', the word itself was seen as a hurdle for market acceptance of free software. Thus to present free software to the commercial world, the term Open Source was coined in order to avoid the name ambiguity problem.

The Open Source community for large parts is identical to the Free Software Community except for it's inclination towards commercialization, whereas the latter is concerned with ethical reasons for usage of the software. The most renowned Open Source evangelists are Eric Raymond, Bruce Perens, and Tim O'Reilly. In order to provide Free Software better marketing. They formed the Open Source Initiative (OSI) to

* promote the pragmatic benefits to the business community, and
* certify free/open source licenses that meet the Open Source Definition.

One of the earliest success of the Open Source movement was On January 22nd, 1998, when Netscape announced that it would open the source code for Netscape Navigator 5.0. Their announcement gave the free/open source software community a great boost in credibility in the eyes of business community.
Open Source Initiative's evangelism paid off. Following Netscape's announcement, several additional vendors announced support for Linux, including Oracle, IBM, and Corel. Intel and Netscape invested in Red Hat, the largest English language Linux distributor. Novell in a change of business strategy bought the German Linux Distribution SuSE, and various other Linux-related firms including Ximian to make a niche for itself in the Linux World.

Since the founding of OSI, numerous Open Source support organizations have been formed, one of the latest one is the Open Source Development Labs, founded by a consortium consisting of Industry Heavyweights such as IBM, Sun, Intel, Oracle, Corel, Novell, RedHat. The OSDL is the single largest non-profit organization supporting Open Source Development, and is located in Portland, USA. More significantly, many large corporations are now migrating to open source. Earlier this year, the European arm of automobile giant Ford decided to ditch Microsoft as its desktop operating systems provider and move to open source. Likewise in June, the U.S. Defense Information Systems Agency announced that it plans to standardize with StarOffice.

What's different in Open Source software

As mentioned that the Open Source movement was conceived from the Free Software movement. The Free Software movement itself has its roots in the "hacker" culture of U.S. computer science laboratories ( at Berkeley, Carnegie Mellon, and MIT) in the 1960's and 1970's.
This community came to an end par se in the 1980s when commercial companies hired away most of the staff in the U.S. computer science laboratories. The companies protected their source code with special 'non-disclosure agreements' where the programmers didn't't own their code but the company owned it and they were obliged to not discuss or show it to anyone.
Richard Stallman, a programmer at the MIT's AI-Lab, revolted against this new-order which had destroyed the hacker-culture, by starting the GNU project which's aim was to produce a "Free" Operating System. The GNU project reinvigorated the hacker-culture, an they became united in Stallman's pursuit.
The GNU project spawned and entire software development methodology based on hacker ethics:

The community of programmers was closely-knitted. Code passed back and forth between the members of the community--if you made an improvement you were expected to submit your code to the community of developers. To withhold code was considered gauche--after all, you benefited from the work of your friends, you should return the favor.

With this methodology an entire Operating System, and it's accompanying application was built that operating system is called GNU/Linux. After the successful development of the operating system, an entire new array of application dawned. Open Source scripting languages like PERL, PHP were built, Open Source Web-server known as Apache was built, Database Suites, security tools, desktop multimedia applications etc.
Currently Open Source has a respectable and vast array of software to offer, and most of it at virtually no cost, but is it really better?

Yes and no, most people think!

Yes, because of the particular way these software are developed, where a multitude of people have access to the source code, and multiple programmers are contributing. Very few software companies can attract such a pool of talent as a single open source project can. In Sourceforge.net, the largest repository of Free/Open Source software, the average number of developers per application is 10, but the big open source applications such as the Linux kernel, Apache, MySQL have more than hundreds of people working on them.
Because of co-operating between working developers the time to release the software is reduced, bugs are spotted by end-users. It's a way that many individuals can collaborate on a product that none of them could achieve alone. It's the rapid bug-fixes and the changes that the user asks for, done to the user's own schedule. Another benefit of open source software is that the software can be customized by the user according to his or her requirements as the source code is freely available and there is no restriction in changing it and customizing for oneself.
Proprietary software such as the ones developed by Microsoft. Allow access to source code to only a few programmer which have exclusive rights to develop, maintain and debug the software. Source code of the software is thus hidden from the users and the users only receive the executable binaries. These software are generally general-purpose to achieve the maximum user-base, and thus are not customized for individual requirements, this leads to the user adjusting himself to the software instead of adjusting the software to his requirements, which is impractical in some cases.
Open source development methodology also leads to a more reliable software. Where-as proprietary software are released only to a minor community of pre-selected beta testers, open source software are tested by thousands and thousands of people before a concrete version is released, often open source development cycles produce software at speeds that even software giants face difficulty compete with.

The open-source model also means increased security; because code is in the public view it will be exposed to extreme scrutiny, with problems being found and fixed instead of being kept secret until the wrong person discovers them. Thus this leads to a more reliable software.

However the problem with most of open source software is that it's not easy to use, most open source software was made for fellow 'hackers' not for the normal user as a consequence generally higher level of technical knowledge required to install and maintain open source software. This is certainly an obstacle to wider adoption of open source software. However distributors like Red Hat and Mandrake have begun to offer user-friendly shrink-wrapped installations of Linux. But users who migrate to open source applications still face a steep learning curve.

For this reason, the implementation of open source solutions today tends to be restricted to infrastructure and other "invisible" applications such as servers, where techies are responsible for their installation and management. Currently, for instance, around 60 percent of the world's Web sites run on Apache.

Open source software also have terrible user documentations. A couple of years ago only sources of applications where available with little, if any, installations instructions. This situation was a consequence of the fact that only technical people used to use the software, thus developers rarely cared for documentation. Now fortunately the situation has improved. The Linux Documentation Project is a project dedicated to produce How-Tos, FAQs and Tutorials for users of Linux systems, covering topics has diverse as Artificial Intelligence programming in Linux to how to upgrade you Hard Disk. Open source developers now often maintain 'wikis' (which resemble blogging sites) where user of the software make contributions and these wikis act as a knowledge base for users of the software, often these wikis take the role of user-documentation.

Another major problem with open source software is that since their source codes are freely available, proprietary software companies can study the methods used and if they find a method which has already been 'patented', they can pursue legal action against the project. This often leads to destruction of the entire project, since no one takes responsibility. Software patents are a serious and are adversely affecting software development across the world.
However help on this front is on the way. Bruce Perens, open source evangelist and leader of the famous Debi an GNU/Linux distribution founded the Open Source Securities which sells legal protection to users (mostly mid-level companies) of open source software.

So does open Source software qualify for the "better software title"? Depends for whom you are answering! Although open source software matches most of the criteria we set, it still misses somewhat the mark when it comes to usage, which mainly affects the desktop users, however the technical users may regard open source software as the superior platform, that's why desktop users have been so far shy to adopt open source software whereas technical ones are porting to open source in droves. However since usage is improving with the advent of GUI environments for Linux, and graphical front ends to nearly every open source program, we can say that open source software are improving to match their proprietary counterparts especially on desktop, whereas in the back-office, open source technology has mostly already taken over.

The Future of Open Source

Although Open source software is considered to be more secure and less vulnerable to the many viruses now circulating on the Internet, this is not the reason why everyone is porting to Open Source: The most compelling feature is that, although there may be some distribution and setup costs, open source software is essentially free, Open Source is a way to avoid millions of license costs which would come with proprietary software deployment.
The ultimate test of open source will doubtless lie in its ability to become more user-friendly and to capture the desktop. But this will be an uphill struggle. Today Microsoft has a 95-percent monopoly of the PC operating system market, a 96-percent share of the office applications suite business, and an 84-percent share of the browser market.
On the positive side, there are new GUI-like desktop environments available for Linux PCs, including KDE and GNOME. And Microsoft's competitors are working hard to provide open source alternatives to mainstream applications, such as OpenOffice, which is derived from Sun's StarOffice and is emerging as an open source competition to Microsoft Office. There are also Linux versions of Netscape browser, and its celebrated derivative, FireFox.

Resources:
Open Source Initiative

http://www.osi.org

Free Software Foundation

http://www.fsf.org

Open Source Development Labs

http://www.osdl.org

GNU Project

http://www.gnu.org

Linux Documentation Project

http://www.tldp.org

digg_url = "http://digg.com/linux_unix/Is_Open_Source_Software_really_better";