Archive for April, 2007
For most Open Source advocates the idea that Microsoft and open source could be mentioned in the same breathe without any suggestion of conflict is perhaps the begin of the second coming. It may not be that far off – not the second coming but an open source friendly Microsoft. An interesting blog post by Whurley over at BMC Software lists seven reasons why Microsoft loves open source; whurley makes some pretty convincing points.
For some reason, Microsoft has become the poster child of anti-open source sentiments but looking at it without the passions that are usually infused into any Microsoft and open source discussion, Microsoft is not any different from the rest of them like IBM, Novell, Oracle etc. IBM for example does not have any direct involvement with an open source project that I know of but instead they provide financial support (direct or indirectly) and donate code to various open source projects. Novell for its part has a Linux distro that it oversees and makes money from, in addition to the proprietary software that it has.
Open source has advantages that Microsoft can’t replicated or even pull their tried and tested tactic of embrace and extend. Microsoft needs to adopt to the open source way of doing things in a similar manner that Sun MicroSystems has done with Java and Solaris. Earlier Microsoft responses to open source were largely misguided and lacked an understanding of what open source is. However Microsoft currently shows a greater distinction between open source as a movement and the products of the movement. Microsoft competition is with the products of the open source movement and not the movement itself; this does not mean that Microsoft is barred from any open source participation and/or affiliation. Microsoft will need to enter the open source game and play it to its own advantage. From an open source perspective, its image still suffers from its earlier attempts to take on the open source movement where FUD was the tactic of the day.
Perhaps an interesting perspective on the reasons why Microsoft would embrace open source is the state of their current crown jewels: Windows and Office are dominant in the market but this dominance can’t be maintained indefinitely. I can’t say what will challenge this dominance but the Internet and services like Google Apps and Glide Office are certainly interesting contenders on that front. The next group of PC users will be from the so called emerging economies that are increasingly creative in the manner in which they make use of technology. The users from these emerging economies are more than willing to look at Google Apps and related services to see how it works for them. Long term, there exists a threat to Microsoft’s revenues from Windows and Office so they need to diversify which means winning in new markets and emerging technologies. One of the key advantage of open source is their ability to release products at a faster rate than Microsoft can manage; the quality of these releases usually improve overtime but the release cycle is quite rapid.
Windows and Office may never be open sourced but Microsoft will become more amenable to the concepts and principles of open source. This week, it was announced that Adobe will be releasing their Flex tool as open source and PC world reports that Microsoft intends to announce plans to release part of their recently announced Silverlight technology to open source community. No doubt open source has become a tool for competition in the software industry and Microsoft is not entirely excused from taking advantage of it.
Four months of the year have gone by in the name of a semester. It was an interesting semester overall though the start could have been much better. Lecture rooms allocation was not the best and one unit in particular had its lecturer AWOL for the better part of the first half of the semester. Such delays will no doubt have an effect but I am just waiting to see how that’s going to affect my performance after all is said and done.
Computer Operating System was interesting, particularly the practical sessions. It was fun learning yet another scripting language in the name of Bourne Again Shell (Bash) Script. I got a chance to look at Minix source code though only briefly; much of it made sense and tied in nicely with the theory of the unit. The discussions that started in class were also interesting so I would have to say Computer Operating System is the unit of the semester though that could just be chalked down to a biased opinion of a code junkie and someone addicted to OS and platform soap operas: Windows vs Linux vs Unix, Java vs .NET vs PHP and the rest of the lot.
The semester had other units as well such as Introduction to Philosophy and Ethics II. These two units were a source of pain – mental pain that is. Don’t get me wrong it is not that I lacked the interest in the units but the materials covered in the lectures were not challenging enough. Given the option, I would much rather sit somewhere quietly and think any number of disjointed thoughts about nothing in particular and everything generally. There were some good that came out of doing these two units: in Philosophy, I learnt about the start of philosophy and its evolution through the years. Towards the end it was actually very interesting though that’s when everything was being summarized and concluded for the semester. As for Ethics II, there was not much surprise there and there is nothing particularly memorable about the unit that comes to mind at this time. However, I can’t explain how it is that I will pass this unit.
System Development methodologies was interesting though it was largely like a mashup of a number of other subjects: it covered some ground with regard to Object Orientation, Structured Analysis and Design, Information Engineering and some introductory material on data analysis and database design.
On a personal level, it was a challenging semester which makes me wonder what lies ahead. I have had to struggle to stay put in some of the lectures and it is my hope that this situation does not escalate further; perhaps the most appropriate thing to say in response to that is to deal with what happens when it happens.
I have been working with JSF (JavaServer Faces) for last 4 months or so and with each passing day, I have looked for ways to bring out the most functional and efficient UI designs. Ok, what I am working on at the moment does not only cover JSF, but also uses other frameworks like Spring, Hibernate and all the other associated technologies.
At the moment I have a UI which lists a number of objects from a database table using a JSF dataTable component. Retrieving the objects list from the database is not an issue since this is something that is pretty much part of the normal workings of JSF. However, I need to use the dataTable component to persist changes to the database and the logical thing to do here is to embed some input controls in the dataTable component. So, list multiple objects can be selected from the dataTable, the most logical input control is a HtmlSelectManyCheckbox and all these render beautifully on the browser. The problem is retrieving the values of the selected Checkboxes, and transforming these into their original object types and thus allow them to be persisted to the database through hibernate.
The main reason for using the dataTable component in this situation is its ability to automatically handle a list or array of objects; this automation means less code for me to write and perhaps even less application logic to deal with.
If you follow the happenings on the Internet, it has been reported widely that Dell is still giving its customers the option to order their computers with Windows XP installed. At least one of the news articles I read suggested that this was contrary to what Microsoft would want. While there is a lot that can be said in support of an operating system that has been tested with time and has had various bugs and short comings corrected through patches and service packs, Windows Vista remains an unfriendly OS from a usability stand points. There is the ever present UAC which many people have commented about but the manner in which Vista works, relative to Windows XP is a step backwards. While on the subject of UAC, yes I am aware that it can be disabled but I like my system secure and hence I will learn to live with the incessantly annoying UAC.
In Windows XP, unplugging a USB device is user friendly: after successfully unplugging the device, you get a popup from the system tray that informs you that it is safe to remove the device. Otherwise, you get a dialog box which informs you that your attempt to remove the device was not successful. The difference is quite simple: successful removal of the device do not require a mouse click. Windows Vista on the other hand requires a mouse click on both occasions: success or failure. I got tired of clicking on OK during an attempt to unplug three USB devices from a computer.
The other area in which Windows XP wins in the usability department is access to wireless network management related functions. In Windows XP you get to the wireless network right from the system tray; it is even possible to repair a wireless network connection right from the system tray. Windows Vista offer the same conveniences but the wizard that launches after choosing to repair a wireless network connection is just a couple of steps too many. This wizard is just too chatty and complicates what should essentially be a simple process, that takes the minimum number of dialogs possible.
Note: Comparison was between Windows Vista Home Premium and Windows XP Professional (SP2)
Mind over matter and similarly sounding adages have been around for ages. Plato’s philosophy for example placed a lot of emphasis on the working of the mind and the results thereafter and there was a time when I was sounding rather Platonic in my approach to this subject. Mind over matter for a physically handicap person, sounds like the revelation of the basic equation for life itself. I can’t entirely dismiss the effects of that particular assumption because it led me to the conclusion that proper and quality thought processes can make life significantly simple by removing the complications that cloud’s one’s judgement. For a physically handicap person, his/her challenge remains the single most important obstacle in most of life’s endeavors.
In my case this challenge is mobility and it occurred to me that keen awareness of who I am allows me to plan for my mobility in such a manner that I can get important things done while at the same time cultivating habits such as punctuality. While this is one of the most powerful uses of thought to manage a seemingly hostile physical reality, it does not obviate the importance of matter or perhaps even the most fundamental truth that matter is foundation on which these thoughts occur in the first place.
I have since adjusted my orientation to accommodate the physical reality of who I am and this means that I celebrate, at every possible opportunity the perfection of my “disability”. Think about it, I am physically handicap and can more often than not get to an appointment on time; I am proud of that fact and believe that it is something that goes beyond wanting to prove a point. It is a personal commitment that ultimately serves to foster a balance between my physical challenge and an ability to bring to bear quality thoughts and the will to carry out the resolution of these thoughts.
This is currently the most stable foundation from which I dedicate additional efforts to find out the truth of the sum of who I am (mind, body and spirit). IT IS NOT AN EVENT BUT A PROCESS. A process that will require additional calibrations and adjustments over the course of its evolution and perhaps once in a while, it may be necessary to tear down an old foundation and build a new one that will be more appropriate in the context.
Living life as a physically handicap person is quite fascinating to say the least and as time passes it has come to occur to me that the state of being physically handicap is perhaps not the most difficult challenge there is. Instead the challenge lies in adopting to the environment that the handicap person must necessarily interact with. The sheer scale and influence of this environment makes this a non-trivial endeavor that is more than just a short term goal but more of a life-long commitment.
I am physically handicap and perhaps even proudly so; mobility is one of the subjects that constantly occupies my thoughts and the bulk of most of what I do takes into account and must accommodate my need to ensure that my movement is efficient and possibly minimal. I believe people should take personal responsibilities for and in their actions; my mobility is my personal responsibilities and as such it is solely upon me to make decisions that affect my mobility and perhaps more importantly it is absolutely imperative that I am involved in making any decisions that will negatively affect my mobility.
The sheer amount of mental strength that I spend in managing my mobility can not be quantified and this is likely to become more complex with time; while the passing of time will complicated the manner in which I manage my mobility, it will also mean that the bulk of whatever resources I can access will be spent in reducing any complexity that develops.
The following are some of the basic guidelines that I follow when actively making decisions about my mobility:
- Any movement I undertake must be necessary; this means that I cannot find someone to handle the matter that requires my mobility.
- Generally stair cases should be avoided whenever possible but if the movement in question is necessary for one reason or the other, then a two storey building can be managed. Of course the use of elevators is perfectly welcomed.
- I have no need or desire to tolerate anybody who would choose to stand me up; anybody (except those who have already used up their one chance to stand me) have one chance to stand me up and thereafter it does not happen again. Please note that it is much better to cancel an appointment (in good time) instead of standing me up.
- Use of public transport during rainy weather is generally avoid; any possibility of rain, coupled with the use of public transport will most likely lead to the cancellation or postponement of an appointment.
The ideological battle between the open source camp and their counterparts in the closed source camp is a mix of sound reasoning and fanatical support for either side. Many have argued that there is room for both ideologies to co-exist in the market place. While the open source model offers unique advantages in the production, development and subsequent maintenance of software, it is not a solution that will fix all the software needs that customers have. Closed source, for all its real and/or perceived weaknesses, has advantages that cannot be easily replicated in the open source world.
The Java platform is an interesting phenomena to consider, at least before the core of the platform was open-sourced last year. Java was a propriety platform, with a large number of open source projects, products and services that range from IDEs, Application Servers, tools, debugger, loggers, database engines and many others. The open source projects build on Java and using Java created a unique value proportion for Java, regardless of its proprietary personality at the time.
The Windows operating system is a platform just like any other and open source projects and software have not ignored it; there are numerous open source software that covers every possible category of software from compilers, office productivity software, IDEs, database servers, mail servers, web servers etc. The largest percentage of these open source software have versions that can run on Windows or at least be compiled to run on Windows.
The fundamental ideology used in developing Windows is essential in conflict with open source and gives Windows some of its awkwardness. One of the key short coming of Windows is that it does not include development tools such as compilers, build tools and debuggers by default. This is in contrast to what you find on Linux and Unix platforms where the gcc is likely to be part of a distribution than not. The support that is provided by these tools is part of the operating system and this encourages experimentation and makes it easier to configure software for specific use. The GCC collection of tools is also available for Windows and hence can be configured similarly so that to allow compilation and configuration of software.
Perhaps to put all these in perspective, Windows was never a tool for programmers or particularly technical people which may account for its lack of development tools in its default distribution. Linux and its Unix brethren were, however, the tools of choice for university undergraduate and graduate students with a drive to push the boundaries of the system. This is the kind of environment that gave birth to the Linux kernel. While Windows caters for non-technical office workers, it has not included any development tools in its default distribution and indeed commercial interests makes it a logical choice to make a separate product such as Visual Basic or Visual Studio to cater for those who want to develop, compile and debug programs on Windows.
Thanks to Microsoft business and licensing practices, getting a copy of Windows is probably the easiest thing that an individual or small to medium sized business can do. However the open source community has failed to make it clear that there are open source products that can and should be run on Windows without any problems. For example, purchasing a new computer would mean that Windows is already installed on it and the cost of that particular copy of Windows is already factored into the cost of the machine. In order to make such a newly purchased machine useful, the user has to spend additional money to get a copy of Microsoft Office and any other software that is needed to machine Windows the productivity tool that was intended to be. Instead of hastening your wallet’s steady match to the poverty line, buyers of new machines should be advised of the open source options they have in productivity suites like OpenOffice which can read and write to Microsoft Office file formats without much trouble. The user gets the advantage of using legit software, without parting with a substantially amount of money which is enough to buy another copy of Windows.
Seeing Windows as another platform on which to run open source is perhaps something that Microsoft does not want to take into account but it is a reality that smart computer buyers and smart small and medium sized businesses should look into. Such suggestions in the face of a Microsoft sales person could perhaps bring to light some caution against heading down such a road but ultimately it is important to consider at least the possibility of replacing some of Microsoft’s software with open source software on the Windows operating system. It is no secret that Microsoft has had and still has ambitions of seeing an end-to-end Windows infrastructure, it is a reality of most large scale IT deployment that systems other than Windows will be running side-by-side with other Microsoft products. Perhaps it is also in Microsoft’s interest to adopt a cooperative competition approach with some of the major open source players such as MySQL AB and the Apache Software Foundation.