Archive for March, 2007
Java IDEs have come a long way and most people who know anything about Java IDEs and more specifically open source IDEs would know the competition that is going on between Eclipse and Netbeans projects. I have worked with both; Eclipse first and then Netbeans. At the moment my preferred IDE is Netbeans though I am not entirely dismissing Eclipse; there are some pretty cool features in Eclipse (and other IDEs based on the Eclipse framework) that I have not seen in Netbeans. For example, an Eclipse based IDE like MyEclipse features an interesting feature that allows graphical creation of JSF navigation files. At the moment, these XML files are hand coded in Netbeans which frankly is a just a chore; there is a much better way of wasting time :).
I hope the preceding paragraph has convinced you that I like both Eclipse and Netbeans and at the moment much of my time is invested in the latter. I have been following up on Netbeans development and future releases so as to get an impression of the features that are going to show up. That’s the reason why I don’t mind downloading a milestone build and actually installing it. The following are my impressions about Netbeans 6.0 M7:
- Speed improvements: compared to the current stable release, Netbeans 6.0 loads faster though this is not a scientific comparison. Also, keep in mind that not all the features that are available in the current stable release are available in the milestone build.
- Streamlines UI: The UI looks more streamlines and less cluttered; there are some changes to color coding which I like. There are new icons used for Save, New File/Project, Open project etc. These icons look like icons you are likely to find a Linux desktop environment like GNOME or KDE (more GNOME than KDE IMHO).
- Better Code Legibility: In the current stable release key words are purple in color while everything else is black. Netbeans 6.0 M7 introduces green as the color of class variables. Method parameters are light brown in color. Comments also include some variety in color coding, compared to the current stable release.
NB: While it may be possible to change color coding in the current stable release, it is refreshing to have a more appealing default color coding – makes code much more readable without the additional hassle of custom configuration.
- IDE Support: there is possibly a better way of putting the title of this but there are improvements and expansion of the support that the IDE provides to coding. Netbeans 6.0 M7 improves on current stable release of the IDE by providing more options to warn and generate Javadocs comments. I particularly like this because it will improve the quality of code produced.
Generation of code has become a common feature for both Eclipse and Netbeans especially when coding JavaBean classes with a number of variables that each may need a getter/setter method. Code completion is another great feature of these two IDEs as well as the assistance in figuring out which classes to import and which are not used in the code. Support for importing namespaces and classes along with the related warnings about unused variables is better on Eclipse when compared to Netbeans.
In closing, there is a great deal of good work going into the development of Netbeans 6.0. As it is still in development, there are errors which will largely be fixed as this release winds its way through milestone builds, beta, release candidates and finally stable release. Let’s see what happens! 🙂
An article on the technology news site ZDNet reports that Google has signed software deals in East African countries. These deals will have Google supplying hosted software services to government workers in Rwanda and students in Kenya. While African (sub-Sahara to be exact) lags behind the rest of the world in the use and adoption of technology, the Internet presents an opportunity to be inventive and creative in effort to have sub-Sahara Africa catch up with the rest of the world.
Over the weekend, I was configuring a domain to run Google Apps and the process was straight forward; most of the delays being due to the nature of the Internet – propagation of changes to DNS records and such. Google Apps is an interesting collection of services that can prove to be useful to organizations various sizes. While all the services under the Google Apps banner are still in beta, they show a promise and some of the basic functions are already in place. Perhaps of interest to the sub-saharan region is the access to these services through a mobile device.
Mobile devices will play an important role in technology adoption in sub-sahara Africa. The rise and popularity of mobile phones for voice communication seems a good omen for what the future holds for communications technology development in the region. Text messaging is popular amongst the youth and some of the older generations are also appreciating it more. The significance of text message in mobile phone market can be exploited to include more data intensive applications.
A platform or perhaps an infrastructure such as the internet becomes relevant in the provision of these data intensive services but at the same time governments and players in the telecommunications industry need to understand that for data intensive services to become a reality, the internet itself must be available, accessible and affordable. It would help to think of the internet as a basic infrastructure in which government can and should take a leading role in stimulating its development and spread. The basic model of making money out of data services to consumers is to provide data services that is of interest at a price that a single consumer can afford (e.g. the cost of a text message). Google has done this with their search engine ads business and their expertise in leveraging the power of the masses can not be disputed (so far).
Technology adoption in sub-sahara Africa depends on the mobile device and access to reliable and affordable internet services. It is practically impossible to think of technology adoption in terms of “a personal computer in every household”; instead the mantra for sub-sahara Africa should be “a mobile device for every household” and then move on from there.
File Systems are an integral part of any modern operating system with a pattern whereby most proprietary operating system support a single file system while Linux (the poster child of open source) supports a number of file systems. The role of the file system as the operating systems way of storing and organizing data cannot be disputed. However the increased capacity of storage media such as the hard disk and flash based media requires additional capabilities that perhaps build on the file system.
Anyone who keeps a significant and varied amount of data on a recently purchased computer would be interested in searching his locally stored data using the same approach that is used by internet search engines like Google. There are a number of desktop search products available and Google offers the Google Desktop that indexes data on a hard disk and allow subsequent searching. My experience with Google Desktop has been good though upgrading between versions has caused some problems in the past. I have heard complains of how much of a resource hog it is but that is not something that I can say I have experience; the initial indexing will take sometime that is why it would take a lot of resources.
File Systems & Desktop Search
File systems need to provide extensive meta data about the files that they store and more importantly perhaps include additional services that will analyze and group these meta data in a manner that makes sense to a user. For example, it should be possible and easy to group documents that concern a particular company or business proposal into a single unit regardless of whether these files are Word documents, spreadsheets or PDF documents. This is important for the future usability of computer since hard disk capacity has been increasing and soon enough we will have 1 terabyte hard disks which represents a lot of information to keep in folders. Microsoft’s ambitious WinFS was rumoured to offer such capabilities but that particular “pillar” of Windows Vista has been removed and some of its technologies have been integrated into other Microsoft projects.
- FAT: this is perhaps the most widely used and simplest file systems of all. It was created by Microsoft and used in consumer version of Windows up to Windows Me. Most PC OSes support FAT which makes it the common demoniator for such tasks as data sharing across disparate operating system platforms as well as for use in removable media such as floppy disks or flash disks. There are three version of FAT (FAT12, FAT16 and FAT32) with support for varying sizes of disks and file, long file names. The file system uses File Allocation Tables to keep track of which areas of the disks have data stored in them, which areas are free and which are potentially unusable for data storage. FAT file system tends to fragment as it scatters data across the disk; this reduces the performance of the file system and makes defragmentation (on a regularly basis) necessary. FAT32 supports a maximum volume size of 8 TB (terabyte).
- NTFS (New Technology File System): this is the file system that is used in newer versions of Microsoft’s Windows operating system; all versions of Windows based on the NT kernel (Windows NT, Windows 2000, Windows XP, Windows Server 2003 and Windows Vista) use NTFS as the primary file system though this may not be the case with Home editions of the some of the OS releases or perhaps the basic editions (where applicable). NTFS include features such as support for metadata (file attributes) and use of advanced data structures to improve performance, reliability and disk utilization. NTFS includes support for Access Control Lists and file system journaling which enables the OS to recover from potentially damaging events like power blackouts that threaten the integrity of the file system.
- Ext3 (the third extended file system): is an open source file ssytem commonly used by default in most Linux distributions. It was created by Stephen Tweedie and includes journaling capabilities. It is an extension of ext2; it adds journaling and tree based directory indices over ext2. Because of its close relationship with ext2, it is easy to upgrade to ext3 from ext2 and most of the ext2 tools will continue to work on ext3. However this close link to ext2 is a disadvantage because ext3 lacks features that are available in most modern files systems such as dynamic allocation of i-nodes. Ext3 lacks and online defragmentation tool …
Interesting Concepts (will be expounded as time passes)
Extent: this is a contigous area of storage allocated for the storage of a file.
B+tree Data Structure:
I was ask to contribute to a proposal that seeks to make an institution of learning more accessible to the physically handicap. In the process of doing the background research for my contribution to this proposal I came across the Convention on the Rights of Persons with Disabilities (CRPD) which basically makes the same promises as the Universal Declaration of Human Rights but specifically for the physically handicap persons in the world.
The very notion of equality is something that I have come to realize is tricky. Most employers would proclaim that they are equal opportunity employers but there is no fundamental understanding of what this equality means. The equality stipulated in the Universal Declaration of Human Rights presupposes normalcy which implies the ability to already enjoy the rights that the declaration proclaims. For example the right to free hold assembly presupposes that one is able to get to a place where he/she can meet with others. For a physical handicap person who uses a wheel chair, for example, this movement is not a trivial matter to achieve which essentially limits his/her ability to free assemble. There are disabilities which would put a handicap person (a human being) in a situation where his/her rights under the Universal Declaration of Human Rights are violated.
While it is acceptable to proclaim non-discrimination as a policy, it is imperative to go an extra mile to provide an environment in which instances of discrimination do not arise; for example rules and regulations that seemingly ignore the realities of being a handicap/challenged person obviously discriminate on the basis of ability.
The provision of these additional services and/or support mechanisms should not be misconstrued to mean that the handicap person is less of a human being than he is; In addition to the CRPD, the Universal Declaration of Human Rights still applies to the physically handicap person.
There are certain things in life that cause an uncontrollable, involuntary reaction when the terribly strange transcends possibility into something akeen to the big bang on a minor scale. Microsoft, (the benevolent or malevolence – take your pick) of the Windows empire are expected to be against open source generally and earlier today I was updating my RSS feeds and thought to add one from MSDN (keep track of the Redmonians folks’ goings on) and in one of those feeds I found a headline that read “Explore Open Source Software on CodePlex“.
Don’t get me wrong here, I have heard of the site before and I have always thought that this is just another one of Microsoft’s tricks to look less of the evil empire that most people (open source aficionados mostly) think of it. So, apparently Microsoft doesn’t mind having links from its properties to open source software. At the aforementioned link, all the software are build on the .Net platform which of course would simply explain this direct link from Microsoft’s properties. Here is a quote from CodePlex:
CodePlex is Microsoft’s open source project hosting web site. You can use CodePlex to create new projects to share with the world, join others who have already started their own projects, or use the applications on this site and provide feedback.
There you have it: Microsoft and the words “open source” appearing in the same sentence and not in anyway negative and at a superficial level, not financially motivated.
Microsoft’s intention towards Google is not a secret and yesterday’s announcement that Microsoft’s Windows Live software will be pre-installed on Lenovo computers is just a development of this rivalry. However this deal sounds like something Microsoft would do; this is how they got to their current dominance of the operating system – getting OEMs to install Windows on PCs.
However the competition for services may not be easily captured, especially taking into account that Microsoft (as yet) does not have mind share in this market; Google has a verb (google) that is synonymous with searching the Internet (and search generally) and that is what they are leveraging in most of their other services. It is true that Microsoft will also leverage its OS dominance but changing the service that one uses on the internet is a matter of downloading a few megabytes (sometimes kilobytes) of a toolbar and you are off. Microsoft still wants to undercut the final consumer of the service or product by ensuring that they are in the consumer’s face in a such a manner as to negate the need to look at other alternatives available in the market. This is of course reminiscent of the browser wars and how Internet Explorer became the dominant product in that market.
While it is a sound strategy to stay with tried and tested practices, Microsoft may need to remember that we are in an era where technology adoption is increasingly driven by consumers as is the case with blogging, instant messaging amongst others. Search is equally a personal experience which will be dictated by what one has become accustomed to and not necessarily what one finds installed and/or selected by default on the computer.
Microsoft’s Internet Explorer is a fact of live as long as a computer is running the Windows operating system. Microsoft services such as Windows Update and Microsoft Update require the use of the browser. On the other hand other Microsoft products are also optimized for their browser and that’s the premise I take into consideration when I access Live.com using Internet Explorer.
I am running Internet Explorer 7 and earlier on Live.com use to load nicely with access to all the news items that I am interested in from around the web. All these are configured using RSS feeds which centralizes content from many sources into a single location. I am aware of other RSS feeds clients but I like Live.com because I have access to all the stuff that matter to me from wherever I am (as long as I have access to the internet) which means no need for me to be disconnected or to be passed by interesting developments.
Any suggestions about a possible solution (or solutions) are welcome!