Rogers Cadenhead Archive

Performing Community Service
One of the most famous stories of Linux advocate Eric S. Raymond is that hackers spontaneously pitched in and bought him a $1,000 iBook as a token of their esteem. While that story is amazing, it's not unusual or uncommon -- Raymond's geeky gift is just one of the concrete examples of the remarkable philanthropy of the hacking community, which Raymond calls a "gift culture," a society in which your reputation is made by what you give away rather than by what you keep.
JXTA: Peer Into the Future
These days, it's increasingly rare to begin a new Java project without looking at one or more pre-existing frameworks, collections of class libraries that provide the underlying structure for an application and enforce good programming practices. There are frameworks for enterprise computing (EJB), Web applications (Struts), business process modeling (Naked Objects), graphical user interfaces (JFace), and many other areas of development. A well-designed framework provides a sturdy structure upon which to build applications.
Get Naked
According to the principles of object-oriented design, the most important facet of business software development is for programmers and users to collaborate fully on the creation of the project's object model. If both sets of constituents do a good job, the common wisdom dictates, the objects encapsulate the work being performed, the people who per-form it, and the information that's produced. Each object has all of the attributes and behavior it needs to be able to handle its responsibilities -- but no more -- so that its class can be changed quickly when business requirements change.
Putting Your Code to a Test
For something that's so simple its creators say that you can "write your own equivalent," the JUnit testing framework has nonetheless become an indispensable part of the development process for many Java coders.
A Step in the Right Direction
First introduced in 1997, servlets gave developers the ability to write server-side applications in Java. While servlets were great for Common Gateway Interface (CGI) programs and other simple tasks, it soon became evident that producing HTML solely with Java code was cumbersome for all and especially difficult for non-programmers involved in the work.
Is Swing Being Eclipsed?
In a little more than a year, the Eclipse project initiated by IBM has become one of the most dynamic and widely-supported open source efforts of any kind, especially within the Java community.
Any Number of Ways to Brew Java
Now that Sun officially supports Linux with each new version of the Java 2 Software Development Kit (JDK), you might assume that no other tools are needed to code Java on your favorite OS. After all, the JDK is a free (as in beer) download (available from http://java.sun.com/j2se/1.4.1) that fully supports the Java language and the ever-expanding Java 2 class library, and the command-line interpreter, compiler, and debugger are capable tools used by thousands of programmers. In fact, many of the latest Linux implementations bundle the Sun JDK.
The Lost Art of Writing Applets
When Java was introduced in 1994, it became an overnight success largely because of Netscape Navigator: Navigator put the Java interpreter on millions of computers. Wanting to capitalize on the new, suddenly pervasive Java platform, thousands of developers learned the Java language as quickly as possible, anxious to write applets for a hungry audience enthralled with the Internet.
Users Type the Darndest Things
During his television and writing career, Art Linkletter perfected the art of eliciting unexpected and humorous responses from children. For example, when asked how his parents met, one eight-year-old boy replied, "My father was doing some strange chores for my mother. They won't tell me what kind." Indeed, as Linkletter said, "Kids say the darndest things!"
Java XOM
If your Java eats XML, consider XOM as your very own shark XOM, the XML Object Model for Java, is a new API for processing XML that strives to be simple to learn, easy to use, and uncompromising in its adherence to well-formed XML. Here's an introduction.
A Hill of Beans
Deploying an application across a number of servers poses some of the most daunting programming problems you're ever likely to face. In addition to implementing accurate business logic, reliable database transactions, trustworthy security, and efficient load balancing, your server-side software must remain robust and responsive even when servers and network connections fail unexpectedly.
XML-RPC: A Simpler Calling Plan
Over the years, there have been numerous attempts to create a standard protocol for remote procedure calls (RPC). While the techniques and technology for remote procedure calls have differed, the intent of RPC was and is the same to this day: enable an application running on one machine to call a procedure in a separate process running on another machine. Ideally, a well-designed RPC protocol can connect any two machines interconnected via the Internet or some other network, even if the machines have different hardware or run different operating systems.
Velocity Picks up Speed
Some of the most exciting projects in Java are intended for Web servers, where Java applications can deliver dynamic Web content, store, retrieve, and display database information, and execute Java code embedded in Web pages. The opportunity to write some of these Web applications, called servlets, is one of the best reasons to learn the Java language.
Non-Blocking Connections
Last month's column introduced java.nio, one of the most significant new packages found in Java 2 Standard Edition Version 1.4. java.nio finally adds high-performance I/O features -- memory-mapped files, non-blocking I/O, and managed buffers -- to Java.
The Buffer Zone
While most of the changes in Java 2 Standard Edition Version 1.4 (J2SE 1.4) are relatively minor, programmers who work with input and output received an embarrassment of riches in the form of the java.nio package.
Assert Yourself
Because Linux is now one of the primary platforms for Java development, developers have good reason to take advantage of each new Java release as soon as it's available. Java 2 Standard Edition version 1.4 (J2SE 1.4), the fifth major release of Java, was released back in March and is packed full of valuable new features. According to "Java in a Nutshell" author David Flanagan, there are 62 percent more classes and interfaces in J2SE 1.4 than its predecessor, Java 1.3.
Like Falling Off a Log
In many Java programming projects, logging is one of those "eat your vegetables" kind of tasks: you have every every intention of doing it, but somehow never manage to. Instead, if any logging is in your code, it's the remnants of a few System.out.println() statements you forgot to remove after debugging a class.