Archive for category Open Source Matters
My first foray into learning Java is still on my mind and some of that effort have appeared here. However over the span of almost a decade a number of developments have happened in the Java eco-system and I thought I revisit that effort with more focus on the tool chain.
Java has been an interest platform since it’s inception and much of the interest is not necessary driven by the current owners of the core patents, but innovations spring forth from a wide community. However, the renewed interest in how I used to learn is not limited to IDEs because increasingly being cross platform requires a certain degree of savviness with command prompts.
A Little Context
- Java is at Java 8, with the imminent release of Java 9: these feature fundamental changes to how the platform works and runs.
- Cloud computing has becoming central to how platforms and architectures work;
- Open source Java eco-systems have had interesting contribution to how the official Java releases evolve over the years. A specific example would be the implementation of java.time.*
- Java EE is coming along nicely most of the time and the aforementioned open source community have some interesting innovations on top;
- When I was trying to understand JPA, xml configuration was all over the place and yes, tools like Netbeans seems to look more like evolving into VB 6 like IDEs
- With the popularity of Git and the supporting services, code sharing can be used as a teaching and/or learning tool; gradually and incrementally.
The new Technologies I am thinking of gradually building into this new take would be:
Within the context of the previous tutorials
- Built management tools like Gradle/Maven
- Version code control systems (mainly Git)
- Collaborative online efforts that uses multiple branches (when and if possible connecting to similar issue tracking systems), with Git at it’s heart.
As a summary, much of this can be described in a readme.md file of Git repository! How search engines discover interesting subjects for beginnings to fix a single line of code makes me wonder.
If you are a keen consumer of tech news and rumours then you are well into feeling buzz-word fatigue with regard to applications markets or stores or places for that matter. Every other day, it seems everyone is announcing a way for their end users to access applications from a centralized location, while also acting as transaction broker for developers who want to sell their applications. This is a model that has been popularized and successfully leveraged into the sale of millions of iPhones and iPod units by Apple. Now, every big player in the industry wants to create some kind of an App Store or some variant of the same model.
Interestingly, this is not a new thing at all – at least on the personal computer front, Linux and its many distribution have always come with a package manager that pulls down, as it were, whatever you want from a central repository; you even have the customization options to add additional repositories as your needs may require. Open source being what it is, didn’t push for the payment option of it which alas was perhaps one of those things that could have pushed the development model faster and farther. However, open source has a number of backers who may well benefit from this apps store craze. Having operated such a model since their inception, it is conceivable to think that Linux distributions like Ubuntu would have the requisite experience and expertise in managing an app store model as a way to earn revenue. More recent versions of Ubuntu have interestingly focused on making this particular variant of Linux more cloud friendly which would fit in the app store model since the cloud would form the foundational infrastructure to add more developer and consumer facing capabilities into the mix.
Within the last 24 hours, rumours of Windows 8 surfaced and one of the features rumoured to be in the works is a Windows App store. Motivations aside, but the more interesting question to ponder with regard to that rumour (if it ever comes to see the light of day) is: how would such a thing work in the Windows ecosystem? Windows is a versatile platform but one of the things that people have been used to doing is to hunt down software binaries to install on Windows. You either download them or buy them on a CD and then do the needful installation and then voila – you have your application. What kind of confusion would an app store course amongst more casual users of Windows. Windows has been popular in the corporate world and these are environment in which they exercise total control over the behaviour of the operating system then the question that would beg an answer is how does corporate IT deal with app stores? Where exactly do their policies go in such a mix?
I must admit that Microsoft is not without experience in managing such large scale deployments of software and their associated management though the experience that they have may not scale that well. As the overseers of the most widely used operating system on the planet, one must recognize the fact that distributing updates to millions of desktops and servers around the world requires administrative and organization capacity that would lend itself easily to an app store model. Contrasting this ability with what Ubuntu can brag about, then the only problem with Microsoft’s know-how is that fact that much of it is probably kept within Microsoft’s walls and/or require you to be more than just a casual user of the operating system. Distribution and deployment of Windows updates may not (at least initially) scale well to include third party applications that may have nothing to do with the core operating system in any case.
The apps store model does present a great opportunity for small and/or first time developers as the ability to reach a great number of users with a useful and critical application has become that much easier. While there are business advantages to the app stores, they also do raise the question of how to keep your wares up to date across myriads of app stores, may targeting different variety of consumers while maintaining feature and/or performance parity across all stores.
In modern times any discussion of open source is bound to stir up the most heated exchange of words, views, opinions and perhaps even insults. Yet what becomes obvious upon a closer examination of the debate is that the people debating the subject either take a narrow view of open source or perhaps just defend a smaller section of it. Increasingly, the debate surrounding open source and closed source is best understood and left as a choice that should be exercised in the presence of circumstance.
What gets lost in the middle of the flame war is the fact that open source is first and foremost a movement that is largely community driven and that espouses the sharing of effort thus requiring that the products of the movement be accessible to all members of the community. Note that such view of open source does not automatically suggest a particular preference and sole domination of IT professionals of varying skills and interests. The nature of the movement and participation in it can accommodate both individuals and large corporations alike.
The very nature of the movement does not require that organizations denounce any other ideologies that they may have so that they can leverage what the open source movement has to offer. Companies like Yahoo, Google and others are heavy users of open source but the largely open and free services that they offer are as proprietary as Microsoft’s Windows and Office Suites. As an example of Google’s proprietary holdings, the company issued a cease and desist order against a participant in the open source community build around Android.
Increased use of open source products to create services also makes the movement much more formidable compared to other competing ideologies – more specifically perhaps ideologies that may come into conflict with particular aspects of open source such as code sharing.
Any mention of the champions of closed source or proprietary software development would bring out Microsoft on top of the list but as a matter of fact Microsoft is no stranger to open source though it is certainly more openly opportunistic and no doubt looks out for its own survival as a money making venture. However over the years, Microsoft has demonstrated exceptional ability to emulate the advantages that naturally occur in the open source movement because of its participatory nature and community approach to software development. Windows 7 has been tested much more widely with Microsoft’s development team actively encouraging feedback so as to continue to make adjustments and improvements. Windows 7 is the most visible example of how Microsoft has managed to create a buzz around a release much earlier on than has been the norm. With most Microsoft products, CTPs (Community Technology Previews) have become much more common in recent years than earlier on.
The need to release software as open source is more often than note a strategic move that is aimed at commoditizing a market. I am not aware of any companies that create a unique or market leading product and choose to release it as open source. Open sourcing usually targets product that do not have market share as yet and/or whose creators are not able to product the support necessary to bring it to any appreciable level of dominance in the market. Once again this practice is used by companies that both espouse closed-source software development as well as those that rely heavily on open source.
Commercial open source is where the business should be and the money making opportunities will and should arise. One of the main feature of closed-source software is that the barrier to entry is usually high such that simple human ingenuity may not be enough to come up with something unique and different. With such barrier to entry open source becomes a fundamentally attractive option for governments whose aim and objectives will and should include the cultivation and development of a software development industry within their respective borders.
Some of the best know companies in the world at the moment had their start from universities and schools. Yes, Microsoft does offer access to their source code for academic research but how possible is it to come up with products and/or services that build on your knowledge, understanding and modification of Microsoft provided access to the said source code? This is perhaps one of the reasons why any of the more recent start ups tend to built their infrastructure on open source tools and platforms. Microsoft is certainly aware of this and have had a number of initiatives that are targeted at students to encourage them to build their businesses on Microsoft technologies and tools but such efforts will be limited by how well Microsoft can tap into and harness a sense of community and adventurous exploration of their platforms with the possible benefit of making it to the big leagues as has been proven by the current darlings of social networking that have been started at campus dorm rooms using available and accessible open source tools and platforms.
While Microsoft’s and other proprietary companies’ efforts to encourage students to look at their platform and build on it does offer the semblance of openness, they remain both myopic and deeply miss guided. Take an example of any third world country and pose this question: how likely is it for a country to have a Windows Kernel expert? It is not at all impossible but how practical is it to cultivate such level of expertise? How much effort would it take to nurture and grow a Linux/BSD kernel expert in any third world country? Given the nature of source control and management at a proprietary company compared with the source control in the open source movement, it would be obvious that an open source product is much more likely to spawn a lower level expert on the inner workings of any particular product or service.
In conclusion open source encompasses a lot more than just sharing code and the associated license that dictate how sharing happens. It is, at its core, a movement that can accommodate both corporations and individuals who can identify with the spirit of the movement and hence become members. As a movement there are various roles that require different skills hence everyone with a talent can contribute to the well being of the movement. Open source does provide the best opportunity for governments (third world countries to be exact) to cultivate a vibrant ICT industry within their jurisdiction.
The packaged software business is a multi-billion dollar (American) industry that has come a long way within a relatively short period of time. Companies like Microsoft, Oracle and the rest of the players in the software industry are well known amongst common people and perhaps among most enterprises as Information Technology has taken center stage. A debate has always raged through out industry and academia about the advantages of intellectual propriety rights (IPR) in the context of software. Recent trends, perhaps helped along by the increased prominence of open source software, indicate that selling software may not be a viable business model in the long run thus increased interested in offering software as the basis of a service based business model. Well, unless if you are Microsoft with a huge interested in package software then you would dream up something like Software + Services as a business model. The software + services route might just work for Microsoft because they hold some pretty huge influence with regard to install base in both operating systems and productivity software categories.
Piracy has been and will always be fundamentally damaging to a business model based on selling packaged software though that assertion is from an ethical perspective which assumes that the effects of piracy are always negative. Condoning piracy would appear to be a winning strategy as far as gaining market share and achieving a critical mass with regard to install base. However, allowing piracy may not seem that ethical at all because the software producer is clearly entrapping end users by making it easy to pirate the software in the first place. At the moment, with increasingly capable and more user friendly open source software, the possibility of users switching to open source alternatives cannot be ignored anymore. In order to deal with the threat that OSS databases like MySQL represent, most of the major database source vendors offer a free version of their flagship products for free. So aggressive pursuit of anti-piracy policies may possibly result in erosion of market share as time passes though I think Microsoft can afford to shed off some points from its OS and office productivity install base.
The piracy problem perhaps points to a fundamental flaw in the idea of IPR in the context of software. The protection of IPR in software is amazingly weak considering the artifact that is being protected. Making a comparison between physical property (or intangible property that can be locked in a cup) and the so called intellectual property that comprises of bits and bytes, the latter can always be reverse engineered or various work-around devised to allow for unauthorized usage. The effort to ensure that the software is not stolen would probably also enable the software not to gain any meaningful relevance in the market thus losing the original investments made to produce the software the first place.
The story of the Internet and perhaps that of the computer industry has been that of sharing and in the latter case down right circumvention of copyright. Anyone interested in the history of Silicon Valley should have a look at how the companies (Compaq, HP etc) that produced clone machines got started. These people successfully reverse engineered the IBM PC without violating Big Blue’s copyrights at the time and this effort went along way, arguably, to make the PC the success that it is today. The Internet started as a medium for collaboration between researchers in academia and it grew from there; that succinctly explains its openness and how much of the security that it has seem to be more of an after though than an original design of the platform itself. If security had been designed as part of the Internet from the outset perhaps it may have been possible to enforce IPR on digital content and material but as it is too many components of the Internet architecture have security features that seem to have been grafted on.
In conclusion, it is hard to protect IPR within the context of software because of the artifact itself. The IPR laws that exists can be applied in the software realm but they can never work as well as they have worked in IPR in the context of tangible property or intangible properties whereby the originator has true control over the intangible property in question. The OSS movement seem to have a fundamental understanding of the flaws inherent in selling packaged software: software should be the basis of a service based business model.
I came across an InformationWeek article that got me thinking about PCs from the perspective of operating system and the related applications. The article makes some pretty valid points though since it is essentially in support of a brighter future for Linux on the desktop, some of the claims it makes require some objectivity.
Let me get this out of the way: I am a Linux user (I prefer Ubuntu on the desktop at the moment) and a Windows Vista user as well. I wouldn’t be quick to dismiss Vista because I think with Vista Microsoft seems to be getting some common sense and as such their effort to improve security frankly still feels like a version 1.0 product at this point and thus will improve with time. Some of the UI decisions in Vista are down right stupid: too many mouse clicks where Windows XP requires virtually none (I don’t need to click a button after the operating system informs me that my flash disk has been unplugged successfully). However, it is my sincere hope that Microsoft is listening to its customers/early adopters and planning appropriate changes to Vista. Just as I am hopeful that each new version of Ubuntu will bring improvement to the maturity of the distro as time passes.
A pragmatic approach to looking at desktop computers is preferable since it is only through this pragmatism that the best choices will be made when deciding about desktop operating systems and the associated applications. Windows has market dominance and regardless of how it got to that point the reality of the situation is that it is on most computers than any other OS. At the same time, this dominance does not suggest that it is a perfect system and perhaps because of its shortcomings there are opportunities for alternative operating systems and their respective environments. Security on Windows is one of the points that is regularly mentioned against the OS and with good reason as well but it would also be appropriate to look at the number of security breaches that affect Windows XP Service Pack 2 (and higher systems – SP 3 in the works) as well as the security vulnerabilities that affect Vista (granted the adoption rates of Vista are not that high at the moment)? Microsoft has poured resources into improving the security (for emphasis: THEY ARE TRYING TO ADDRESS THE SITUATION) and beating on Windows because of security may not hold for long.
The other gripe that goes around about Windows is the fact that it is bloated but a realistic view of the situation might also help put some perspective on it: support for hardware on Windows has been excellent to say the least and the backward compatibility record with Windows has been good as well. So my question is simply this: how do you expect new versions of Windows to support the multitude of hardware that previous versions have supported and at the same time ensure that software that used to run on earlier versions of Windows continue to run on these new releases? The most obvious answer to that question explains the bloat on new releases of Windows, that is if you can stop yourself from considering the evil intentions that Microsoft may have towards its install base. Looking at it from the perspective that Microsoft would like to bring business to its hardware partners, it may also hold as an explanation that presumes an evil intention on Microsoft’s part: bloated software means you need sturdier hardware specs and thus almost always results to buying a new computer and as such Microsoft and the OEM scratch each other’s proverbial backs. Of course there is also a more interesting angle to look at: how long is Microsoft going to stick to this policy of maintaining this large number of hardware as well as backward compatibility? Do they know how many of these old hardware devices they are supporting out of the box are still in active use and as such material to a large portion of their install base? It will definitely be interesting to see what happens in the future with subsequent releases of Windows. However, here is to hoping that Microsoft will see the wisdom of breaking with hardware support and backward compatibility. If you look at it, there is bound to be a point where hardware and backward compatibility is more expensive to the user than it needs to be, if we are not there already.
As the InformationWeek article points out, increased costs on Windows will force people to look for other alternatives though I think those who will seek these alternatives will most likely have little to no interest in having support for a wide array of hardware and/or maintaining backward compatibility. These are the characteristics of those who are getting their first PCs or whose business do not entirely depend on an already existing enterprise application that was built with Windows in mind exclusively. The aforementioned characteristics are not far off from the description of a developing world’s or emerging economies’ users and/or enterprise. A simple example: in most developing countries, cybercafes are a reality of life and with recent Microsoft efforts towards reducing the number of pirated copies of Windows, some of these enterprises that find themselves on the wrong side of Microsoft’s war on piracy will and have considered alternatives and a free price tag surely does look attractive. The problem of support personnel will initially exist but the entrepreneur in question is cornered and as such must address the personnel issue as time goes on. Simple economics logic would suggest that anyone would provide support for Linux in a cybercafe would most likely get a higher pay (based on the shortage of his/her skills) compared to his Windows comrades. This has the effect of more people showing interest in gaining Linux support skills and thus overtime increase the number of Linux support personnel. It has got to start at some point.
While Linux presents a good alternative for use in a cybercafe business, the professionals who will recommend it also needs to have respect for the operating system as far as representing it truthfully. I have heard so many times the term “open source” being used as an advantage of Linux. “Open source” is a loaded phrase that can possibly mean so many things to so many people; it does mean that you can get the software for free (as in free as beer) but at the same time its total cost of ownership may not be free more so in the light of a shortage of support personnel. Yes, the Internet is there and most people who are interested or have skills with open source software tend to be willing to assist where they can but the support that is available on the internet presupposes a person who knows what he/she is looking for in the first place. You can get some local assistance from your budding local Linux gurus but they also have day jobs to which they must attend and thus may not be available to provide their expertise. Depending on who you are talking to and their previous experience with open source, you may good a negative or positive reaction in return for suggesting Linux’s open source pedigree as an advantage. Keep in mind that you can just as easily have open source on Windows; open source does not automatically mean a wholly Linux powered environment.
The pace at which new versions of the various Linux distros are released is certainly fast and perhaps that is a testament to the true power of the open source movement. Various players in the open source arena have been talking about the year of desktop Linux and so far there is no defining year that has been deemed deserving of that title. While competing platforms supporters may deride such claims, they would do well to recognize the pace at which changes are taking place in the Linux movement. It is true that the sheer number of distros available can be bewildering but at the same time the same (truth) can also be said of the improvements of the some of the more popular distributions each with about two releases in a year generally speaking. So, the latest release of the now popular Ubuntu Linux is the Gutsy Gibbon (interesting names these releases have) and it features a number of improvements which are quite interesting.
However, as much as I am proud of the fact that improvements are being made to the Linux OS through the various distros there remain a number of concerns that perhaps may need to be addressed. I can’t quite speak of myself as a Linux guru by any standards but I am figuring my way around the system with each day of use. I have been successful in installing Ubuntu on a dedicate machine and over time I have replicated the necessary environment I need to pursue what I am most interested in which on the Linux platform would include application development in Java and the LAMP stack though I also spend time exploring other related open source products such as PostgreSQL which can be a straight forward replacement for the more popular MySQL. The more time I spend working with Ubuntu Linux the more natural and straight forward it feels; I am getting used to how things work though there are moments in which I notice the glaring short comings of an ever evolving OS such as Linux in general and Ubuntu as a distribution. However with the rapid changes that are coming out of the respective communities these short comings are increasingly being address. To this end, I like working with Ubuntu and as such would like to have access to the latest and greatest releases that are available.
The aforementioned installation of Ubuntu, in my case was done when Feisty Fawn was the current release. I have always intended to upgrade to any new releases as they become accessible to me so it was with great expectations that I downloaded Gutsy. I tried installing Gutsy, hoping for a prompt to upgrade from my current Feisty installation but never got any; instead I was treated to a partition configuration section of the installer. Before you start giving me helpful suggestion, Feisty Fawn did make me aware of the availability of Gutsy. The only problem with that is that my internet connection is not fast enough to download 1.1 GB worth of data needed to upgrade my Feisty installation. 1.1GB will take some time to download over my internet connection and will most definitely require a download manager so that the process can be resumed at later date/time. Please notice that the interruption of the download process, taking into the account the slow internet connection, is virtually guaranteed: the internet connection may go down for any number of reason as it does usually and more importantly power may not be guaranteed for the duration of the time required to complete the download of the data (keeping in mind the slow internet connection). So, I have googled the world wide web without much success so far; I mean there has got to be a way to upgrade Ubuntu in place without creating new partitions or doing away with my current setup; yeah, the online upgrade option is definitely out of the question.
Lets look at this from a more philosophical perspective: Linux and Ubuntu specifically are open source which means that not much money is paid to acquire, use and distribute the software as long as the terms of the license are adhered to by all. So from that premise it is plausible to postulate that the users of this OS may not be connected to the internet, if at all but they still need to upgrade their systems to the latest releases. A way to do this upgrade offline without wiping out the previous installation would be a huge plus.
Finally Google talks about its plans for the cell phone industry and the rumors around the web about GPhone and other similarly related speculative projections turned out to be an multi-national alliance of key players in the mobile phone industry though not all of them. The Open Handset Alliance comprised of some 34 companies at the time of its announcements and this alliance is build around Google’s Android platform. The members of the alliance are expected to release Android based equipment by sometime next year.
Google is primarily a service company and its bread and butter remains search from which it gains revenue through advertisement. Expanding this model to cell phones and other mobile devices would expand the reach of Google Ad platform and capabilities. While this is obviously the eventual target of Google’s mobile strategy, it has to do battle with the traditional way in which players in the mobile industry have done business. The players in the mobile industry tend to be generally restrictive of how their networks and devices are used: they have such control over their equipment and services that they are able to effectively lock out third party developers as well as bar any users who do not comply with their terms. Also of interest is that the Android platform puts Google in competition with existing smart phone software providers like Microsoft (Windows Mobile), Nokia (Symbian), Apple (iPhone), Palm (Palm OS) and RIM (Research In Motion, makers of the Blackberry). At this point the Android platform has not yet been released but there will definitely be comparisons between the capabilities available in the Android relative to its more established competition.
Increased mobile devices capabilities mean that the use of the internet will be pervasive amongst those who will own a cell phone as their first gateway onto the information super highway. Google seems to be making the right moves with the Android platform and making it open is definitely a move that makes sense because it allows for innovation. Innovations and pushing the envelope is important for the key population of the world who will access the internet primarily through their mobile devices; these people are likely to be living in the emerging markets and the model that the cell phone industry has used the world over may not be effective to realizing revenues from mobile services subscribers in the emerging markets. As with all analysis of how technology will evolve and diffuse over time, it is only time that will tell the true and accurate story of what becomes of initiatives such as the Open Handset Alliance.