Welcome!


Modern GUI programs enable you to easily access status information and functionalities through various menus, toolbars, and information panels. However, as a program becomes more complex or when users have the possibility of configuring and extending these components, they tend to get ...
'I was sick of hearing people say Java was slow,' says Keith Lea, 'so I took the benchmark code for C++ and Java from the now outdated Great Computer Language Shootout (Fall 2001) and ran the tests myself.' Lea's results three years on? Java, he finds, is significantly faster than opti...
We are fortunate to be part of a vibrant and healthy community, one worth investing in, and one whose integrity we are willing to fight for.
High-performing software teams use code reviews to improve the quality of their code and to keep team members informed of what's going on in the larger application. However, keeping track of which packages, classes, and methods have been reviewed can be a real headache, especially if a...
Fuego has achieved a record 331 percent license revenue growth during Q1 2004 as compared to the same quarter of last year.
When Java was first released, it was immediately attractive due to its ease-of-use and the promise of WORA (write once, run anywhere). As it evolved, the value of the JRE abstraction has manifested itself in many ways not immediately apparent from the days of animated applets.
As Jason Bell pointed out in his editorial 'A Modern Day Cinderella' (JDJ, Vol. 8, issue 9), the spotlight is on J2EE and as a result many programmers are ignoring the foundation of the JDK. J2SE is the Java equivalent of C/C++ standard libraries. Here we deal with the lower-level enti...
With the introduction of the EJB 2.0 specification, the classic composite entity bean design pattern became outdated overnight. In this article, I present a new pattern that can serve as a proper replacement. This pattern, called Delegation-Managed Persistence bean (DMP bean), allows d...
Enterprise Information Integration (EII) represents a new category of software that enables disparate data silos to be integrated into a single virtual database for applications. This approach gives developers a powerful tool for simplifying data integration and building flexible appli...
Complex enterprise applications are generally hard to maintain, and risky and difficult to change. As a new developer on a team, a large legacy code base is often difficult to understand, especially when the code has evolved over a long period and new functionality has been grafted ont...
Today marks the European debut of the SunNetwork Conference and Pavilion, a.k.a. 'SunNetwork Berlin' - with Scott McNealy, Greg Papadopoulos, Mark Tolliver, and Jonathan Schwartz due to hold forth to the Java faithful at ICC Berlin, the International Conference Center over the next two...
Asks Henry Roswell, after a closer look at some of Sun's claims for Java Studio and comparing them with the realities of Eclipse and SWT.
In the first of a new series, Yakov Fain takes a look at the basics of coding in Java with the traditional 'Hello World' programming.
Vectored I/O is a technique through which bytes can be read from a stream into a set of buffers (vectors) with a single read( ) invocation and bytes can be written from a set of buffers to a stream with a single write( ) invocation, thus reducing the CPU usage. In C Language it is impl...
Lately Sun and The JBoss Group have been rather publicly sparring over the use of the J2EE brand, culminating in quite a bit of heat (and little light) in the press and in the blogosphere.
There's a a carefully understated saying, attributed to the ancient Chinese: 'May you live in interesting times.' While at first glance living in interesting times might have been construed as a blessing, we who live in the present times know that interesting can be a curse. We've take...
While designing Enterprise frameworks, you ought to be very cautious about exposing runtime instances of classes encompassing secure transaction or management core, outlining Intellectual Property of the enterprise.
If you have a bounty of creative energy and way too much time on your hands, why not explore the new Java 1.4 APIs by creating a video game. That's exactly what I did when I produced a parody of Street Fighter II called Meat Fighter.
Some of the more commonly asked questions on the various forums for J2ME seem to be 'What is J2ME?' and 'Is <so-and-so-product> a part of J2ME?' Here is where you will find all the APIs that fall beneath J2ME's umbrella, and the packages you will find within those APIs.
The worldwide Java community deserves an A+ in wealth creation, says Sun's executive vice president of software, Jonathan Schwartz.
The e-commerce Web site that I work on has seen several incarnations of its search feature. We started with plain vanilla SQL using 'like' clauses, but this didn't perform well and left a lot to be desired in language features such as stemming (e.g., 'paint' = 'painter' = 'painting') a...
In Part 1 (JDJ, Vol. 7, issue 6) we looked at the Java class as a type. Although it's easy to think of the class name of our Java class as its type, the interfaces it implements and the superclasses it extends can also be viewed as its types.
Inheritance and polymorphism are two of the most fundamental concepts in the object-oriented design world. They are used extensively in all Java applications, except J2EE apps using EJBs. Oh sure, developers implement various bean, remote, and home interfaces but often that's it. No si...
The following mantra was first stated about two decades ago in Jon Bentley's 'Programming Pearls' column ­ defer optimization and get your code working first. This wisdom has been amplified by numerous writers on object-oriented design, coding, thinking, and more. The reigning philosop...
As everyone working in the IT business is aware, the technology we use to develop our applications is constantly changing. Keeping abreast of the latest trends and practices could be a full-time job for developers, leaving no time for productive work.
What gets most people excited about Web services is that it provides a vision of a future where disparate applications are hooked together in innovative yet undiscovered ways to solve the next generation of IT problems.
Sir Clive Sinclair had a dream: everyone should own a computer. In the early '80s, this was quite an ambitious, almost foolhardy thing to say, given that the cost of computing machinery was well beyond the grasp of individuals. Despite the hurdles, Sinclair Research Ltd. produced o...
Apache Cocoon is one of the most interesting, innovative, and powerful platforms for dynamic content generation, though not as well known as the others. A subproject of the Apache XML project, Cocoon is one of the lesser-known offerings from the folks at the all-open-source Apache Soft...
Instant messaging has become very popular in recent years, earning it a deserved spot with the 'killer apps' - browsing and e-mail. Most of the Internet's killer apps have spawned a host of accessories to be used in conjunction with the app. Instant messaging is just starting this proc...
Whether you're a developer writing code, a manager guiding a project, or a customer giving requirements, you're familiar with the steps needed to successfully create a business application. Often referred to as the application-development life cycle, these steps typically involve gathe...
With J2SE Version 1.4, Java finally has a scalable I/O API. Not that the old API was an absolute failure (Java's tremendous success in the application server market refutes this), but some of the old API's properties led to drastic restrictions. The worst one was the blocking I/O.
By necessity, the operating system loads each VM into its own separate process slot. Consequently, each VM is forced to duplicate the other's initialization efforts and resource allocations. Specifically, each VM is required to load the JDK core classes into their respective heap space...
An enterprise platform has to provide ways to integrate with existing systems and applications. The fact is, most companies have applications and they don’t exist in isolation. New applications developed on the J2EE platform need to be integrated with other applications. Although...
Whether you’re an IT manager or a J2EE architect, if you’re interested in EIS connectivity you’ll be excited about the promises of JCA. What is JCA? What are its most appealing features? What are its shortcomings? Who are the vendors that support it? Are there any oth...
The technology to automatically generate a parser from this syntax specification has existed for around 20 years and is now mature enough to use in a product setting. A parser generator is a software program that accepts a syntax specification as input and generates a parser for that s...
Of course, TAPI still has a niche and is indeed embedded into many PC modems, but its track record against its original goals is, shall we say, modest. Some would say that it never saw the Internet coming. Of course, technology development is almost Darwinian in the way it casts off al...
The most basic way to capture these elements of interest is through application logs. Most Java-based production systems have them in some form, and most of them probably implement a custom API or use one of a handful of third-party packages that may or may not be cross-compatible. Out...
Mac OS X sports a new look, not just on the outside with its great look and feel but also on the inside. OS X is proudly built on top of a BSD Unix-based core foundation. An exciting aspect of the new operating system is that the latest version of the Java 2 platform (J2SE v1.3) is pre...
In an age of spin and counterspin, where no one calls a spade a spade if there's a chance of calling it an HDK instead (“hole development kit”), JDJ Industry Newsletter decided to canvass Internet technology experts of every stripe and ask them to anticipate the future R...
These paradigm changes have greatly increased my power to express program logic, such that my programs have gotten smaller, simpler, and much easier to understand, while supporting ever-increasing user capabilities. When I started programming, I worked with simple command-line interfac...