The Source for Java Technology Collaboration
User: Password:



David Walend

David Walend



RSS feed of this weblog entries by this author.

David Walend started learning Java with the alpha 3 release in 1994 after a kind computer science professor at Tufts University overheard his tantrum on distributed simulations, memory management, multithreaded code and meteorologists of questionable parentage. His active open source projects include Somnifugi JMS, JDigraph, Cricket Cage, and JEnum. At Alphatech David researches systems for coordinating aircraft with unreliable communications. He is an adviser to Galactic Village Games. David should finally finish his masters project (combining genetic programming and reinforcement learning) at Tufts in 2004.

Articles

j1-2k8-mtW07: JMX for Unit Tests in Test-Driven Development
Using the Java Management Extensions -- JMX -- to observe internal state provides an elegant alternative to reflection and compiler hacks. As a byproduct it provides a JMX interface for the completed system. This talk will cover how to benefit from unit testing with JMX, and the code and overhead required to use the technique. May. 8, 2008

Understanding Service Oriented Architecture
Do you feel like software vendors and conference speakers have stretched the meaning of "service oriented architecture" to the point where anything is an SOA? Do you even know what the term should mean any more? In this re-introductory article, David Walend offers an overview of what true SOAs are, how they work, and what they can do for you. Apr. 4, 2006



Weblogs

JMX and Test-Driven Development: At JavaOne this year I did a short talk on using JMX in test-driven development. It's based on what I discovered working with JMX on another project, and delved deeper into while adding JMX support to SomnifugiJMS as part of release 21. Test-driven development worked extremely well when combined with JMX. JMX should help testing systems with some defined life cycle. Here's the core ideas of the talk, written out, with real examples, not mashed onto slides.
Posted by dwalend on June 08, 2008 at 15:51 PST | Permalink | Discuss (0)  

How big is that boolean[]?:
Posted by dwalend on November 14, 2007 at 18:29 PST | Permalink | Discuss (4)  

SalutafugiJMS -- Java Messaging Service on ZeroConf: SalutafugiJMS is a peer-to-peer implementation of the Java Messaging Service specification that uses ZeroConf DNS-SD discovery and TCP sockets to communicate in a distributed computing system. Name the JMS Queues and Topics for information your system needs to exchange. Your system consumes what your system needs. Your system sends out what it chooses. SalutafugiJMS takes care of the rest, leaving your system very loosely coupled.
Posted by dwalend on June 24, 2007 at 09:34 PST | Permalink | Discuss (5)  

Preparing for JavaOne: JavaOne is an amazing conference. About 15,000 of us get together to exchange ideas, hear about new things, meet internet friends face-to-face, and explore the boundaries of Geekdom. I typically loose about five pounds and only get about six hours of sleep each night. Consider that carefully before taking my advice.
Posted by dwalend on May 01, 2007 at 20:19 PST | Permalink | Discuss (6)  

Wild Winds Wrestling with the Restless Sea: I tried out wildcards in JDigraph's semiring algorithm package. The results were a little disappointing; wildcards didn't make that big a difference.
Posted by dwalend on March 10, 2007 at 11:13 PST | Permalink | Discuss (0)  

Me and You In User Interfaces: The pronouns we use when we address computers and imagine them addressing us hides some profound insight. I haven't pinned down exactly what.
Posted by dwalend on December 31, 2006 at 11:24 PST | Permalink | Discuss (3)  

Bad Things In adamTaglet: I used some out-of-bounds com.sun API in adamTaglet to make it work. Here's the unsavory details plus some speculation on the future of JavaDoc.
Posted by dwalend on November 14, 2006 at 06:19 PST | Permalink | Discuss (5)  

Whooshing Sounds: Thanks everyone for supporting my generics RFE. Here's a link to the brief dialog I had with a Sun engineer.
Posted by dwalend on September 09, 2006 at 08:54 PST | Permalink | Discuss (0)  

What Giants? - Vote For My Generics RFE: Back in May I blogged about simplifying my generics code. The request for enhancement made it into Sun's database this weekend.
Posted by dwalend on July 18, 2006 at 05:30 PST | Permalink | Discuss (14)  

Our Grass is Greenest: OGNL and LINQ: Microsoft's New LINQ feature looks a lot like Java's OGNL.
Posted by dwalend on June 19, 2006 at 12:36 PST | Permalink | Discuss (0)  

Brilliant Approach to Optional Data Design? Wicked Hack? Source of Horrible Suffering?: I've added message selector support for Topics in SomnifugiJMS using the (newly CDDLed) reference implementation and an interesting hack on Map. The hack works fine here, and could be an interesting compromise for various data design problems. Or it could lead to mind-bending code full of magic strings, null references and sorrow.
Posted by dwalend on June 05, 2006 at 19:11 PST | Permalink | Discuss (1)  

No Giant or Windmill, Just a Deranged Muppet: A quick note about my java.net talk on generics at JavaOne.
Posted by dwalend on May 30, 2006 at 10:36 PST | Permalink | Discuss (0)  

Tilting at the Generics Windmill: I'm doing a Community Corner talk at JavaOne, on ways to make generics easier to use. Here's what I'm going to try to say in less than twenty minutes.
Posted by dwalend on May 01, 2006 at 16:26 PST | Permalink | Discuss (8)  

Affine Frustration Transformed - New! Fewer Bugs!: I put together a generic ZoomPane that holds other Swing components. Hand a new AffineTransform to ZomePane to show a new portion of the underlying view. It seemed simple to put together, but getting it to work was frustrating. Here's what finally worked.
Posted by dwalend on January 26, 2006 at 18:05 PST | Permalink | Discuss (6)  

Connecting to a Command Line Process: I built some fairly elaborate code to wrap around the Graphviz command line. Here it is.
Posted by dwalend on August 24, 2005 at 05:53 PST | Permalink | Discuss (6)  

GraphViz Class Diagrams: Last week, Kohsuke Kawaguchi suggested that we could use GraphViz to generate class diagrams automatically. I built it out of parts on my workbench over a few evenings.
Posted by dwalend on August 11, 2005 at 19:11 PST | Permalink | Discuss (0)  

A Trip in the Way-Back Machine: Ever want to go back in time and unmake a coding decision? Was it after a honeymoon period where you found some critical problem in something you'd bet on heavily and publicly? This happened to me recently with those seductive JDK 5 language features. Someone needed the software to work in JSDK 1.4, and I wanted to step into the way-back machine, return to August and start again. Then a fellow developer sent me a link to Retroweaver.
Posted by dwalend on April 26, 2005 at 04:46 PST | Permalink | Discuss (9)  

Better JavaDoc on http://java.net: I'm still not satisfied by publishing my JavaDoc by checking it in to CVS on http://java.net. I'd like to ask for an alternative, but am not sure what would be best.
Posted by dwalend on March 08, 2005 at 05:11 PST | Permalink | Discuss (13)  

Sharpening the Axe or Shaving the Yaks?: Dave ponders how far he can push XML technologies on his current project, with sage advice on yak care from a respected colleague.
Posted by dwalend on January 22, 2005 at 09:37 PST | Permalink | Discuss (8)  

Did I Miss Generic Array Creation?: I couldn't find a way to create an array of generics. Did I miss some API somewhere?
Posted by dwalend on January 07, 2005 at 05:07 PST | Permalink | Discuss (10)  

Naming Generic Types: A blog about generic type names, specifically using names longer than one letter.
Posted by dwalend on December 05, 2004 at 16:55 PST | Permalink | Discuss (16)  

Amazing -Xlint: javac -Xlint helps learn to use JDK generics.
Posted by dwalend on November 13, 2004 at 10:52 PST | Permalink | Discuss (1)  

Moving JDigraph: I moved JDigraph from sourceforge to http://jdigraph.dev.java.net . Here's what I learned while moving.
Posted by dwalend on August 31, 2004 at 05:16 PST | Permalink | Discuss (6)  

Test Driving Generics: The documentation for generics in jdk 1.5 beta 2 is pretty thin, but tutorials are starting to pop up on the internet. I hope this blog entry supplements those by showing how I was able to use them in JDigraph.
Posted by dwalend on July 14, 2004 at 21:53 PST | Permalink | Discuss (4)  

SomnifugiJMS for User Interfaces, Now With Example Code: I've been meaning to follow up on an article by Johnathan Simon where he hinted that one could use Somnifugi JMS to handle threads efficiently in a Swing interface. Here's some example code that should provide a good starting point.
Posted by dwalend on June 23, 2004 at 04:03 PST | Permalink | Discuss (6)  

Shutdown Hooks: A shutdown hook is a Thread designed to be run after a program receives a signal to exit, but before daemon threads stop, finalizers run, and the JVM goes poof. Shutdown hooks are great for clearing dirty caches, closing out open resources, and announcing this shutdown to other processes.
Posted by dwalend on May 09, 2004 at 16:38 PST | Permalink | Discuss (9)  

Coupling in Software Architecture: Coupling in software architecture seems to form a spectrum, based on what has to change to make the system do something different. At one end of the spectrum are dissociated ubiquitous services, like those envisioned by JXTA. At the other end are the highly-coupled systems of architectural nightmares. I haven't found anything that lays out the spectrum well, so here's my attempt.
Posted by dwalend on January 11, 2004 at 19:18 PST | Permalink | Discuss (3)  

Reviewing the Java Community Process v. 2.6 (JSR-215): The Java Community Process's is supposed to produce "high quality specifications ... using an iterative review process that allows an ever-widening audience to review and comment on the document" JSR-215 should make that a reality.
Posted by dwalend on October 26, 2003 at 15:29 PST | Permalink | Discuss (0)  

Design For Exceptions: I'm surprised by Bill Venner's recent discussions on Exceptions with James Gosling and Anders Hejlsberg. Exceptions are one of the best features of Java. I think the problems that Dr. Hejlsberg describes are easy to contain if the development team decides how they're going to handle trouble before they get too deep into their work. Here's what I usually do.
Posted by dwalend on October 06, 2003 at 04:57 PST | Permalink | Discuss (25)  

Design for Reuse: Source Directory Structures for Java Projects: I reuse code from almost every project I've ever worked on. Structuring the project to help reuse seems to be important, but isn't without cost. I have settled on one way, but am not convinced it's the best.
Posted by dwalend on September 25, 2003 at 04:56 PST | Permalink | Discuss (12)  

Defending Autoboxing (or Save Us From the Preprocessor): I plan to use autoboxing in a project, so I'm responding to Erb Cooper's damning blog, "The Terror That Is Autoboxing."
Posted by dwalend on September 18, 2003 at 05:14 PST | Permalink | Discuss (8)  

SomnifugiJMS for User Interfaces and Simple-Enough APIs: David Walend presents a way of containing the complexity of user interface Threads within Somnifugi JMS, and contemplates why some APIs become widely adopted while others are abandoned.
Posted by dwalend on September 11, 2003 at 04:56 PST | Permalink | Discuss (2)  

View All Blogs

 Feed java.net RSS Feeds