Welcome!


The other day when I arrived at work my phone's voice mail light was lit up. Cool, except that after pressing the voice mail button I was asked to enter my password. Issac Asimov's first law of robotics states that 'A robot may not injure a human being or, through inaction, allow a hum...
Can afford to take just one day off, get out of your cubicle and see what other people up to these days? Is J2EE still in favor? What's this ESB is about? Have you even heard of using Flex as a Web front end of your Java applications? Do not miss an event in NYC this Monday, that is cr...
In Bernard J. Baar's book 'A Cognitive Theory of Consciousness,' he describes the brain as having a single conscious area that can be occupied by one thought at a time. The unconscious part of the brain stores memories and experiences and, like the conscious brain, is capable of perfor...
The WebRenderer Swing Edition changes the face of Java Swing applications and the rendering of Web content within Java. Before we jump into that, let's take a look back at Web content display in Java desktop applications including the generational changes and Java's very own 'Browser W...
At the moment there seems to be an extremely unhealthy obsession in software with the concept of architecture. A colleague of mine, a recent graduate, told me he wished to become a software architect. He was drawn to the glamour of being able to come up with grandiose ideas - sweeping ...
At the annual Alan Turing memorial lecture given by Grady Booch in London last month, he chose as his subject, The promise, the limits, and the beauty of software. It was an excellent address in which one of the themes was that for each of the incredible advances that software has brou...
I am always in awe of people who develop hardware. They're the real engineers of our profession, the ones pushing forward the speeds at which things work, their size, and their connectivity. For example, in 2005 there were more computer chips produced worldwide than grains of rice harv...
The year 2006 marked the tenth anniversary of the Java language and for me is the most significant in its history. The most important event was the announcement that a GPL version of Java SE will be available sometime in the first half of 2007. If nothing else, all the back and forth '...
Ted Nelson, inventor of, among other things, hypertext, once lamented that software development today is at the same evolutionary stage film making was at 100 years ago. Back in the 1900s, when the technology of film production was in its earliest stages, the cameraman was the person i...
Abstraction, as defined on dictionary.com, is 'considering something as a general quality or characteristic, apart from concrete realities, specific objects, or actual instances.' It's a powerful concept that underpins software reuse. When you implement a problem, if, instead of starti...
In 1996, Sun created Java and the terms under which it is distributed. Since then, the Java Community Process (JCP) has emerged, allowing companies to participate in shaping language changes, but the ownership of trademarks, licensing agreements, branding, and other fundamental product...
Computers can generally be characterized into two types: ones that are designed to have more than one user attached and those intended for a single user. In the beginning almost all computing was done on large multi-user machines, partly due to their expense, which precluded their use ...
One of the phrases that has always puzzled me is 'business logic'. It seems to crop up a lot in presentations, articles, sales pitches and so forth. The one I saw it in most recently was a talk about how great web servers are because they keep all of the business logic on the server w...
Back in 1996, Java was originally hailed as a way of making the Web more appealing through applets, and, with its 'write one, run anywhere' philosophy, as the holy grail for desktop apps that would be truly cross platform. The truth is that both were oversold at the time. With the comb...
Some of the words I dread most in a meeting are: 'What if ?' They're fine in the present tense of 'What if a user tries this option?' or 'What if the database read fails mid flight?', but as soon as the future tense is introduced I begin to worry. 'What if the database and middleware c...
When someone in a corporate boardroom decides what their IT strategy is going to be, it isn't based on what language or software architecture they will use, but on how a system can provide value to their business. Very few organizations buy their hardware and OS first, and then tool up...
In Java's early years, the language received a lot of flak from its opponents over performance. Java turns its .class file bytecodes into machine instructions (MI) at runtime, something that costs cycles and is slower than a fully compiled language that creates the MI as part of the de...
I have just finished reviewing the book Open Source Development Tools for Java, which provides excellent coverage of such topics as log4J, CVS, Ant, and JUnit. There is a chapter on UML tools though in which the author almost apologizes for the lack of good open source design tools. Th...
One way in which technology is adopted is when an existing process is automated and made more efficient, cheaper, or reliable. Another is when a technique or innovation is applied to an existing process to drastically alter the way it occurs. The disadvantage of the latter is that it r...
Allowing extensibility of a rich Java GUI is a daunting task. Each user may require slightly different functionality - this one wants to be able to import data from an Excel spreadsheet, and another wants to generate custom XML reports of particular artifacts in the application. You wa...
'If Java is to remain at the forefront of technology for the next 10 years,' writes Joe Winchester in his Java Developer's Journal column, 'it needs to find a way of decoupling API calls between internal code and external blocks, perhaps even introducing soft typing calls across progra...
Paolo Massa is Web-famous for predicting AJAX Office would become a reality within a year. Now he considers the Sun-Google announcement and what it might mean for the prospects of OpenOffice and Google coming preinstalled on the PCs of the world.
Ask most people on the street what Java is and they might tell you it's an Indonesian island. If you happen to bump into some programmers, they'll probably tell you it's a language that reads like C++ but has garbage collection and a virtual machine to make it portable. The connection ...
Actually I would like to do something more, for instance, providing a toolbar for my application. First, I add three buttons with the same cut, copy, and paste icons (no text for them, according to the Look-and-Feel Design Guidelines), specifying the same tooltip text used for the menu...
The world's first office computer, known as LEO, was created in the 1950s by Lyons, the British teashop giant. Its aim was to replace the thousands of clerks who did the billing, invoicing, and stocktaking, and also tracked the supply and demand of sticky buns and cups of tea that the ...
This article presents a data model based on a Collection implementation that can be used with Swing components JList and JComboBox. It also discusses a method to use these same concepts in constructing the user interface of an application.
At a presentation a number of years ago given by Josh Bloch he made a comment that Java as a language hit the 'sweet spot' of programming. His metaphor was based around the fact that the language was straightforward to learn and that rather than containing many esoteric coding construc...
Experienced developers know many of the benefits of and motivations for using interface-based design principles. Interfaces provide for polymorphic behavior by hiding the implementation and only exposing the relevant public methods of the implementing class. What may be less appreciate...
Java has been the springboard for some of the most successful open source projects today including JBoss, NetBeans, and Eclipse. Several folks though have felt the missing piece was an actual open source implementation of the runtime. Some view Sun's stewardship of Java and the JCP as ...
This article presents a Java/Swing component implementation of a feature that is ubiquitous in nearly all desktop applications, particularly Windows applications - an area in the lower right portion of a window (Frame) that can be used to resize the window.
Property files are frequently used in systems built using Java whether it's a thick Java client, a servlet, or a business component. Java specifies the format for a property file and provides the Properties class to read from and write to these files. However, Java is silent on the asp...
The problem with defects is that while they occur, the cost of finding and preventing them has a diminishing return, so the approach often taken is that once no more serious defects can be found in a test pass, all that remains must be minor and the programming is complete. The whole a...
I witnessed a recent BOF conversation in which the general feeling was that the browser GUI and its accompanying plethora of back-end frameworks had let people down by delivering a poor return on investment and a weak user-interface experience.
Tim'O Reilly, the eponymous publisher, kicked off EclipseCon 2005 in Burlinghame earlier this year with an excellent presentation titled 'Open source business models and design patterns.' As well as documenting various failures and successes in the computing world, one message that str...
At a recent presentation given by a software engineer from a very large automotive company, I gleaned some remarkable facts:for a particular car model where the basic price goes up as the livery becomes lusher and the initials on the trunk longer, half of the increase in value comes p...
Since Adobe released the first public PDF Reference in 1993, a number of PDF utilities and libraries, supporting all kinds of languages and platforms, have been made available to users and developers alike. However, support for Adobe's technology has lagged in Java application developm...
Go fast, it runs too slow, you've got to make the number show. Diddle de bop, da la de doop, sitting around and feeling groovy.
Earthdate: October 15, 1997, and the Cassini spacecraft is launched. Mission: to boldly go and explore the planet Saturn.
The key to building a distributed application successfully lies in a sensible partition of work across the different boundaries and devices. With a client/server program, one of the advantages it offers over a more traditional thin client is that for each task, instead of having to wai...
The java.util.TimeZone abstract class that represents a time zone is used to produce local time for a particular global time zone. A TimeZone comprises three basic pieces of information: an ID, a time zone offset, and the logic necessary to deal with DST (Daylight Savings Time).