AOP makes it easier than it's ever been to write tests specific to your application's crosscutting concerns. Find out why and how to do it, as Nicholas Lesiecki introduces you to the benefits of testing aspect-oriented code and presents a catalog of patte
Scott Stroz dropped me an IM yesterday asking "What the hell is autowiring?" It's a pretty good question, and one that I haven't done a good job explaining. So, here we go: the evolution of autowiring.
I am simply struck by seeing so many questions on numerous forums and newsgroups, concerning problems with using Hibernate in a JBoss application server environment and using container-managed transactions (CMT)! This happens even in a FAQ on Hibernate's
You've decided to expand your horizons. You've been programming exclusively in Java (or C++, or Perl, or Ruby) for a while now. You're happy and productive, but you have this nagging feeling that you're solving problems by rote rather than thinking as cre
September 1, 2006 — XML is perhaps the worst programming language ever conceived. I’m not talking about XML as a data-description language, which was its original design. I’m talking about perverting XML for programming applications. It’s inapprop
If you studied math, science, or engineering at a four-year college in the US, much of what you learned is useless, forgotten, or obsolete. All that money, all that time, all that wasted talent. If all we lost were a few years, no big deal. But the really
A quine is a program that prints its own source code (without any access to it). Typically quines are obscure code that few people can understand, and when run, they print the same obscure code that few people can understand. I've seen a similar trait in
My fellow Geeks! Below you will find a list of the 20 coolest, funniest, dare I say sexiest hackers and computer geeks that have graced the silver screen. While we may be misunderstood and maligned in everyday life, geeks have always been portrayed with a
This is an insanely long and gnarly essay about implementing, then optimizing, the low-level bits of a pure-Ruby XML parser. If you obsess about XML reading, deterministic finite automata, or Ruby code optimization, you may find some part of it interestin
JBoss Seam is a "lightweight framework for Java EE 5.0". What does that mean? Isn't Java EE (Enterprise Edition) 5.0 itself a collection of "frameworks"? Why do you need another one that is outside of the official specification? Well, we view Seam as the
Building a project is complex business. Due to the dozens of tasks required in converting your hodge-podge of files into a working program, there exist literally hundreds of tools that do everything from generating source code, to compiling, to testing, t
The Brazilian National Healthcare System has been called the largest Enterprise Java application ever built, with over 2M lines of code, and a domain model of 350 classes. The application models all of the domain concepts one could imagine in a country-wi
Edsger Wybe Dijkstra was one of the most influential members of computing science's founding generation. Among the domains in which his scientific contributions are fundamental are
I have been thinking much about Metaprogramming lately. I have come to the conclusion that I would like to see more examples and explanations of these techniques. For good or bad, metaprogramming has entered the Ruby community as the standard way of accom
I just saw this page comparing the performance of several languages on a simple Mandelbrot set generator. His numbers show Java being over twice as slow as C, but then I noticed that he's using an older version of java and only running the test once, whic
The Project Gutenberg collection was produced by tens of thousands of volunteers. You can help -- start here! Project Gutenberg needs your pennies, nickels and dimes. An average of just one cent per eBook downloaded would make a huge difference. How to Do
This sounds bad, but it needs to happen if Java is to ultimately stay in the mainstream. That is, if feature accretion hasn't already irreparably damaged the language
Want to write shorter, cleaner code? Have an unfortunate situation where you need to fit as much as you can in one expression? Prefer a quick dose of hacks to spending the rest of your life reading the docs? You've come to the right place.