Here is a simple pattern which you can use to make your
APIs extensible, even by third parties, without sacrificing
your ability to keep backward compatibility.
Where's the state? This is a small but useful question when
deciding how a problem domain gets carved up into objects:
What things have state? What things have values that
can change? When and how can they change? Can the changes be
observed? Who needs to observe changes in state?
One thing which I think about often is the design of code,
Posted by timboudreau on June 24, 2008 at 7:41 PM PDT
Here's three blogs in one (I know, I know, you're not supposed to do that):My friend Geertjan and I just did NetBeans Day Manila, in the Philippines, followed by two days of plugin-writing training at the University of the Philippines.
Posted by timboudreau on June 3, 2008 at 10:12 AM PDT
My colleague Judith Lilienfeld did the MC honors at this year's NetBeans Day in San Francisco. I'm amazed that this went by and did not get blogged about, so I'll have to do the ungainly honors...The demo of the morning was using JasperReports iReport plug-in to create a report with pie charts based on a database, without writing any code.
Posted by timboudreau on June 3, 2008 at 3:36 AM PDT
Four years ago, I went on a hunt for best practices for doing tree table components in Swing.
Posted by timboudreau on April 11, 2008 at 8:21 AM PDT
We shot some video on our recent whirlwind tour of South America. This fun video shows one of our adventures. What do technology evangelists really do for a living?
Posted by timboudreau on February 28, 2008 at 3:50 PM PST
I wrote a small Swing app to browse javac's abstract syntax trees (ASTs) of source code. If you've ever wanted to write a tool that analyzes Java source code, it is a big help for understanding the Javac tree API.
Posted by timboudreau on February 28, 2008 at 2:13 PM PST
Posted by timboudreau on January 30, 2008 at 1:36 PM PST
My friend Jon had an interesting insight: Both Ant and Maven rely on lots of XML. XML is good for describing data and terrible for describing behavior. A build is mostly behavior.