Welcome!

The Source for All Things Java

Joe Winchester

Subscribe to Joe Winchester: eMailAlertsEmail Alerts
Get Joe Winchester via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Latest Articles from Joe Winchester
There are a number of esteemed contests for the greatest and fastest software developers among us – events where we can pit our coding prowess against fellow brainiacs and like-minded techies. I think it’s high time we had an alternative set of awards, suited not to aspiring budding Tu...
In Jef Raskin’s excellent book, The Humane User Interface, he discusses how the human brain is able to perform many tasks simultaneously while only having the ability to focus on one conscious thought at a time. Being able to process information and analyze it intelligently is crucial ...
Software testing while one of the most important tasks done in a development project is often misunderstood and abused by everyone from programmers and managers to testers. Wikipedia calls testing “an empirical investigation conducted to provide stakeholders with information about the ...
User interface generation tools are something that has always been dear to my heart. I’ve enjoyed using them and have been fortunate enough to work on developing them. However, there’s a huge tar pit to be avoided when using them on projects that I see people heading towards over and o...
The software industry is often obsessed with progress be it in the form of a new language, wire protocol, specification update, or some other technology-driven feature. For me, software is a means to an end, and progress should be measured in features that allow code to be written more...
When a product a colleague worked on recently shipped its first generally available release, the event was accompanied by a marketing fanfare of podcasts, press releases, and conference trips to beautiful cities with boxes of presentation materials, branded lapel pins, and flashing fri...
Doing network I/O on the user interface (UI) thread is bad. Most developers know that and can tell you why; unfortunately, it’s still done. At this year's JavaOne, one of the keynote JavaFX demos bombed because the network was slow, something that would be forgivable had the entire app...
At last year's JavaOne Chris Oliver gave a presentation on JavaFX in which he discussed how he was interested in programming Java2D not in terms of JComponent paintEvent methods that launch into graphics.drawLine(…) or graphics.drawRect(…) code, but instead by allowing the developer to...
The finest programmer I've ever worked with told me recently that she was giving up coding altogether. The reason – a succession of inept and incompetent managers had just destroyed her faith in software development. Recounting her experiences over the past couple of years, she categor...
Before Java I was a Smalltalk guy. I remember switching from one language to the other and the tipping point that you reach when you've mastered the new language and how many months it takes, not to mention the years, to do really good design and know-how, which patterns to apply and h...
One of the things I really enjoy at the moment is the recognition and adoption of agile programming as a fully fledged powerful way to deliver quality software projects. As its figurehead is a group of very talented individuals who have created the agile manifesto (http://agilemanifest...
An acronym occurs when the first letters of a phrase are combined into a shortened form that becomes an abbreviated way of describing the original. In science, they are often used to take a fairly verbose and complex concept, such as Light Amplification by Stimulated Emission of Radiat...
Hippocrates, one of the founding fathers of modern medicine, realized that those who trained to become physicians were not only able to use their skills for good and for progress, but also might be inclined to misuse all they had learned. To protect against such abuses, new grads back ...
Imagine you are a contestant on a TV game show and your grinning quiz master pops the question: 'Name the one thing you most associate with Google?' Think about your answer - write it on a card (don't show me yet). Turning your card over, it's likely to be one of the following...Great ...
One of the most fundamental design principles of Java is captured in its motto 'Write Once, Run Anywhere.' It describes how a .class file encodes its instructions at the bytecode level, allowing portability between different machines that, through a specific virtual machine implementat...
Once upon a time, software developers wrote code and ruled their kingdoms. Good programs had few bugs and performed their tasks efficiently and with style. The elite programmers went on to become designers who would lead others in their wake, instilling in them good software practices ...
Often in software I find myself preaching restraint to those who wish to move platforms for no apparent reason than to keep up with the IT fashion industry; however, even harder than the silver-bullet chasers is dealing with organizations where change is required, not only in a company...
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...
In a recent presentation I attended, the speaker warmed up with a couple of bulleted lists that outlined the agenda of the session before moving onto his third slide that was clearly many days, work of stitching together powerpoint glyphs and figures in a sort of three dimensional loop...
A number of very significant development efforts are underway that bode well for Desktop Java's future. On the language side is the Java FX script project http://www.sun.com/software/javafx/index.jsp. Java FX is neat because it provides a high-level scripting interface that runs on top...
Mike Milinkovich, executive director of the Eclipse Foundation, has been kind enough to answer some questions for Java Developer's Journal. Rather than rattle off the usual ones about the name, about why Swing wasn't used, or how much influence IBM still has, Mike has fielded questions...
Having attended two conferences in the past three weeks and seen untold presentations, I've come to the conclusion that irrespective of the subject matter, each presenter invariably falls back on the same technique to impress the audience: to rely on the skills of a conjurer or circus ...
Mike Milinkovich, executive director of the Eclipse Foundation, has been kind enough to answer some questions for Enterprise Open Source Magazine. Rather than rattle off the usual ones about the name, about why Swing wasn't used, or how much influence IBM still has, Mike has fielded qu...
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...
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 ...
The phrase 'not invented here,' or NIH, when applied to technology, describes a resistance by a group to use a perfectly valid solution to a problem they're encountering because they'd rather build the answer from scratch than adopt something existing that already does the job. Assumin...
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...
The Standard Widget Toolkit (SWT) is the GUI toolkit used by Eclipse. The same folks that worked on the Common Widget (CW) library for IBM/Smalltalk developed it, this time for Java. Now, it's maintained as part of the Eclipse Platform project and distributed under an open source licen...
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...
Recently I was able to talk to Tim Cramer, executive director of tools at Sun, about NetBeans. Tim started in engineering doing supercomputer compiler work, moved to more generalized hardware compiler work, and naturally moved to JIT/dynamic compilers in Java during its first few years...
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 ...
I've used the map to store things in a keyed fashion and want to iterate over the keys and the value for each. Problem is, each time I do it I find myself thinking how inefficient it must be. The keys iterator returns the keys so it has to walk the keys, however the get(key) has to loo...
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...
First one today from 'Visa services' who'd insisted I entered my credit card details and password on their web site today to avoid irreversible instant deactivation of my account. Only problem is I don't have a Visa card and their URL had a Zambian IP address so I quickly deleted it.Ne...
The problem with the web has always been that despite anyone trying to convince you otherwise, it's a page based latency bound transaction model that is a dressed up graphical mainframe. Works well because the transport protocol is neutral and ubiquitous allowing heterogeneous end poin...
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...