(More to come in this space.  Stay tuned!)

Recap of February Meeting

Speaker: Marc Fleury, JBoss Group

Topic: "Leveraging AOP in JBoss"

Marc Fleury will talk about the JBoss Aspect Oriented Programming (AOP) framework. He will define AOP and discuss its implementation in the JBoss application server, showing how a microkernel combined with simple AOP technology can enable the creation of generalized containers. From small single purpose embedded controls to large enterprise systems, JBoss middleware enables easy system assembly by AOP and aspects. The talk will focus on the aspects themselves, moving beyond the logging examples to cover all the standard aspect technology that has been present in JBoss for the past 3 years, including persistence, caching, invocations, transactions and acidity as aspectized components that can be reused in applications.

Recap of January Meeting

Speaker: Paul Webber, Fair Isaac,

Topic: "Introducing Hibernate"

Speaker: Igor Mameshin, Sr. Architect, HIPAA Accelerator  (

Topic:  "Using OJB as a Persistence Layer in Applications"

OJB is a powerful object/relational mapping tool that allows transparent persistence for Java Objects against relational databases.  It is an Open Source tool that is developed by Apache Software Foundation.  OJB can significantly increase developer's productivity by eliminating a tedious task of writing JDBC code or implementing entity EJBs.  With the coming support for JDO, this tool has a chance to become a de facto standard for Java database persistence.

This presentation will focus on specific details of implementing Java database persistence.  Programming examples will be presented, including sample database tables, Java objects, mapping files, and database persistence code.  More advanced topics will be discussed, such as caching, lazy loading, cascading updates, mapping inheritance hierarchies, mapping polymorphic relationships, locking, identity columns, etc

Recap of December Meeting

Speaker: Bruce Tate, No Fluff, Just Stuff Symposiums   

Topic: "Database Persistence Frameworks"

When your application is too complex for pure JDBC, you need to consider persistence frameworks, but the choices are daunting. Learn what makes a good persistence framework. Learn some of the common pitfalls around data persistence, and what add-ons are important for delivering good performance. You'll first learn about the principles of persistence frameworks. Then, you'll be able to compare and contrast the many Java persistence solutions, including EJB CMP, JDO, OO DBMS and relational mapping alternatives.

Recap of November Meeting
Speaker: Paul Webber, Ant & JUnit, Fair Isaac

Topic: "Ant & JUnit"

Apache Ant is a Java-based build tool. In theory, it is kind of like Make, but without Make's wrinkles. It will allow you to automate your builds and units tests.

JUnit is a regression testing framework written by Erich Gamma and Kent Beck. It is used by the developer who implements unit tests in Java. JUnit is Open Source Software and has been ported to most languages. We’ll cover the basic framework, how to set up a test and then some modifications to make life easier for test driven development.

Recap of October Meeting
Speaker: Llewellyn Falco

Topic: "Llewellyn's Toolbox: Rules & Logging"

Working as a Java programmer, I've found that there are a few key techniques that I use to set the groundwork for a successful project.  In this short talk I will share two of these techniques, illustrate them through examples, and hopefully show you how to incorporate them into your own work.
The techniques are:

  • Validation Rules - a simple and powerful way to deal effectively with processes where many validation checks must be performed, i.e.: web form submission or database saving.
  • Event Based Logging - a new methodology for logging based on what type of logging is happening, rather that traditional Priority Level Logging.


Speaker: David Himelstein, Attorney At Law,

Topic: "The Legal Protection of Software"

This presentation covers the various legal means of protecting computer software using copyrights, patents, trade secrets, contracts, and the law of ideas.  Included will be What is Intellectual Property, how protection is achieved, ownership (who owns, what rights owner has, joint ownership), what is protected, when protection is lost, and related topics.

Recap of September Meeting
Speaker: Sunitha Dangeti, SDJUG Member

Topic: Struts

The discussion shall encompass an overview of struts and how it is useful to developers along with a brief discussion of the framework, components and some other useful features of struts.

Speakers: Mike Bosse & Allison Inouye, Quest Software, (

Topic: “J2EE Application Performance Assurance”

Accelerate detection, diagnosis & resolution of performance problems in critical J2EE infrastructure.

Recap of August Meeting

Speaker: James Duncan Davidson, “No Fluff, Just Stuff” Java Symposiums,

Topic: “Programming Java Effectively”

Java is an elegant, approachable and mostly forgiving language that is much cleaner and easier to approach than previous languages. However, it has its fair share of gotcha's and sharp edges that lay in wait for the unsuspecting programmer. This presentation will show techniques for writing clear and robust code.

Recap of July  Meeting

Speaker:  Brian Maso, Blumenfeld & Maso, Inc.,

Topic: "JDK 1.5 - Everything but Generics"

In this short presentation you'll learn about the minor language changes coming to Java 1.5, specifically auto-boxing of primitve values,  enumeration types, and an odd new form of "for" statements. Slides, examples and Q&A.

Topic: "JDK 1.5 - Generics"

A farewell to casting?  Java 1.5's own version of template classes, called "generics", is the most important language addition to Java since 1.2's nested classes. Brian  will explain what generics are, what they aren't, and explain some of the compiler and VM "magic" that makes Java generics work. Slides, some  examples and lots of Q&A

Recap of June Meeting

Speaker:  Mark Thomsen, Co-founder, Alodar Systems (
Topic: "Where Java Came From, or Everything Old is New Again"

A presentation on the historical precedence of the Java programming language. We know much of the syntax is from C. But what about the features for inheritance, threading, and exception handling? This will be a tour through Java features with a focus on the precursors, and a few detours into the whys, whos, whens, and wheres. I found the research interesting and sometimes entertaining.

Recap of May Meeting

Speaker:  Ron Hitchens, Author, "Java NIO" (
Topic: "Using NIO to Boost Performance, Reliability and Scalability"

Java has traditionally been at a disadvantage compared to compiled languages in the area of advanced and high-performance I/O operations.  The NIO package, new in Java 1.4, addresses this problem and lets Java code compete on an equal footing with natively compiled code.

This presentation will cover key areas where the NIO APIs can be applied to boost performance, reliability and scalability of Java programs.  Applying NIO appropriately can potentially have a major impact on performance.

Topics covered will include Buffers and the Channel metaphor, non-blocking modes, multiplexed I/O using the new Selector class and advanced file operations like locking and memory mapping.  Regular Expressions and character set transcoding will also be touched upon.

Recap of April Meeting

Speaker 1:  Christian Ledwidge, Quest Software "J2EE Business Unit", (,

Topic: "Analyzing Memory Leaks in Java"

Understand how developers can quickly pinpoint memory leaks in Java code and reduce application memory usage. Java developers can visualize complex data on memory usage and loitering objects. Identifying the root causes of memory leaks is always difficult work, but we will provide you a quick understanding that you can follow up with us at the next show or one on one how to identify all direct and indirect objects that reference the memory leak you are investigating, quickly. You can also model the resulting object reference relationships should the object reference be released. The best part is that additional coding or further analysis sessions are not required.

Speaker 2:  Julie Daniels, Software Engineering Specialist, Rational Software (
Topic: "Accelerating Software Design using Design Patterns"

In today's software development environment, inefficiencies arise as applications become more complex, resulting in a diseconomy of scale.   By employing design patterns, Java developers can achieve an economy of scale.

Design patterns allow common design problems to be addressed with common solutions applied to the current project. The design pattern is already known to be a correct solution, thus decreasing design/implementation time and reducing risk.  Using design patterns to create project structure, practitioners can focus on the business problem rather than the architecture/design/structure of the application.

Recap of March Meeting

Speaker 1:  Christopher Harris, Programmer, CHKSCC Consulting Corporation

          Topic: "Unified Java Enterprise System (UJES): Automating Complex Forms"

          UJES is designed to automate large parts of the creation of complex forms. It provides the following

               Automatic generation of client and server side validation code.

               Automatic handling of form submission data, including conversion of form submission data into pure
               Java Object types. UJES knows what type data is supposed to be and translates it automatically
               making it available to the programmer.

Speaker 2:  Gary Gwin, CEO and Norbert Kuhnert, CTO, Cafésoft (

          Topic: "Securing your Stuff: What Java web programmers should know"

          Application-level security is not an option, it's a business requirement. Yet most programmers have little
          application security programming experience (or desire) often leading to inconsistent security practices
          across web applications, security islands, fragile code, and security holes. Other issues like Web Single
          Sign-on, security event notification, security policy management, and security logging further complicate
          the work, especially when multiple web and application servers from different vendors are involved.

          Cafésoft will provide a technology discussion about web application security issues. You'll learn:

  • Why the J2EE security model is rarely sufficient
  • What benefits a distributed security architecture provides
  • How to avoid hard coding security policy in webapps
          Programming examples will be presented along with a demonstration of Cams, Cafésoft’s distributed
          security framework for Java programmers. Examples of how to integrate and customize Cams including
          use of the Java and Cams security APIs to create custom business rules, JAAS LoginModules,
          CallbackHandlers, and implement security event notification will be provided.

Recap of February Meeting

Speaker:  Patrick Linskey, Vice President of Engineering, SolarMetric, (

Topic: Java Data Objects
In 2002, the Java Data Objects (JDO) specification was approved through the JCP in a landslide vote 14-0.  The Java Data Objects specification provides a standard way for persisting objects and is showing a great deal of promise by increasing application portability, reducing development cycle time, and improving code quality.  Applications written with JDO can be ported seamlessly across any data store without any recompilation or changes at the source level.  Developers using JDO are seeing 20-40% decrease in coding. Java Data Objects works equally well in managed environments as well as non-managed environments.

Recap of January Meeting

Excitement at the SDJUG! When I arrived at the meeting location I was informed that our room was “occupied”; well this through a monkey wrench into the normal set up. We were able to get a projector from Novell, thanks Brian and Jason, and set up in the lobby outside or normal meeting room. A couple of members got to sit in the lounge chairs which seemed very comfortable. Novell also brought plenty of food and drink for the group which was consumed throughout the evening. After a late start and my opening slide show we jumped into our first presentation my Lane Sharman of Open Doors Software.

Lane presented on the JUnit testing framework and on a little bit of Ant the automated build tool. There was a lot of discussion about both and it seems that a couple of more presentations are in order, one for Ant ( and another to wrap up JUnit ( If you aren’t doing some unit testing now is a good time to start, don’t wait! Besides JUnit there are many other languages supported by this framework, see for everything from ADA to XSLT.

Novell took center stage with a presentation by Brian Six on how Java is being used by Novell in many of its products. This was followed by a talk on XForms by Jason Boledovich. Both speakers had good interaction with the crowd fielding many questions. In fact this was one of the better meetings we have had with audience participation.

We only showed 18 on the attendance roster but it seemed like we had 25 when I did a head count. Please sign the attendance form so that we can order the right amount of food.


Recap of December Meeting

Lane Sharman, CTO of Open Doors Software, (

          Topic: "Bongo - Turning Ideas Into Realities on the Desktop"

          Bongo is a graphical presentation builder. It was conceived and executed in 1995 by the members of the
          original Java team as part of the Marimba startup. The conception for Bongo was to create a robust
          builder that would compete well with Visual Basic and the Microsoft Visual Studio tool set. Bongo was
          and remains a great competitor to these tools.

Mirko Raner, Software Engineer, PTSC

          Topic: "The Inner Workings of the JVM"

          The Java Virtual Machine is the basic foundation of every Java environment - be it J2ME, J2SE or J2EE.
          Understanding the architecture and the inner workings of the JVM can help you to improve the
          performance of your applications and to understand errors and unexpected behavior in your code.

          The talk will start off with a brief introduction into the architecture of the JVM. First, the structure of Java
          bytecode and the stack-based computation model of the JVM will be explained in detail. Then, the actual
          components of a Java Virtual Machine, like the execution engine, the garbage collector, the thread
          scheduler and the native interface will be discussed.

          After that, there will be a closer look at the different implementation approaches for the JVM. The
          concepts of interpreter, JIT and AOT compiler will be covered, as well as the differences between client,
          server, "classic" and HotSpot VM. "Fine tuning" of the JVM through the appropriate command line
          switches will be demonstrated, too. The presentation will conclude with some practical examples how
          Java code translates into Java bytecode and how one can avoid inefficient code fragments.

        Mirko's presentation can be found here.

Recap of November Meeting

John B. Moore, owner of Micro-Phyla Systems

          Topic: "OptimizeIt"

          Borland's Optimizeit Suite delivers easy-to-use, powerful features that let you efficiently find, prioritize,
          and fix performance obstacles and maintain a high-performance code base. Let’s see what it can really do,
          good points and bad points.

Garland Wong , a founder of Kinzan

          Topic: "Adaptive Web Services"

          Over the years, developments in component architectures and distributed computing have led to several
          new technologies, the latest and most promising being Web services. Current Web services standards
          simplify data interchange by enabling data to be described, found, bound and exchanged over the Internet.
          But e-business applications involve more than data. In order to use Web services today, developers must
          write custom code to build human interfaces, automate business processes and integrate existing systems.
          What is needed is a universal XML component architecture to encompass all application
          elements-presentation, business logic, data, personalization and security. Kinzan calls these Adaptive Web
          Services. Just as Web services are loosely coupled, Adaptive Web Services are loosely coupled business
          components encapsulating user interfaces, business logic, data elements, personalization and security. They
          enable quick assembly of e-business applications, on-the-fly integration and practical component reuse.
          Adaptive Web Services represent the next logical evolution of Web services.

Recap of October Meeting

Our October 15th meeting started quickly to give our main speaker, Andreas Schaefer, plenty of time to talk about “J2EE and Its Application Servers”. We had 45 people in attendance and Andreas spoke for a full 2 hours focusing on the open-source application server JBoss. The in-depth presentation included some background on various components and technologies of JBoss including JMX and Interceptors. You can find the presentation at

Until next month,

Recap of September Meeting

Our September 17th meeting started out with an open discussion on topics that the group may be interested in for technical presentations. We covered ideas dealing with the software development process, IDE’s, basic object oriented programming, and features of the current JDK. Audience participation was good, and there were 35 in attendance.

John B. Moore, owner of Micro-Phyla Systems ( gave a presentation on developing JSP web applications using JBuilder. John showed the group 3 ways in which you can develop and organize your code and demonstrated one of the many applications he has developed.

See you next month,

Recap of August Meeting
Our August 20th meeting started out great with pizza and drink brought to us by Wakesoft, our primary presenter. The room where we meet was also upgraded with a built in projector and command console. After the usual  announcements we jumped right into the topics of the night.

John B. Moore, owner of Micro-Phyla Systems ( gave a presentation/demonstration of the new JBuilder7 Integrated Development Environment. John showed the group some of the cooler features of JBuilder along with tips and tricks and some caveats of this new version.

Walter Hurst, CTO of Wakesoft (, gave a presentation about various J2EE design patterns, strategies for best deploying them and their relevance to implementing a consistent architecture for J2EE. The discussion covered patterns across the presentation, business logic and integration layers. He also discussed how the Wakesoft Architecture Server® fits into scheme of developing applications, making it easier for the development team to concentrate on their business logic.

Until next month,

Recap of July Meeting

Our July 16th meeting seemed to start a bit early. I guess everyone is enthused to get a seat in the meeting room. Please remember the doors open at 6:30 PM and the meeting starts at 7 PM. We had a great turnout and 2 good presentations.

Ethelyn Holmes, moderator for SDJUG-Jobs group, gave a great presentation on taking the group forward in handling the issues of getting a Java job here in San Diego. A lot of ideas were tossed about, and I think over time this will become a valuable networking resource. Remember to request membership in SDJUG-Jobs and contribute to the information about San Diego companies doing Java or information on recruiters in the SDJUG-Jobs area. Paul Webber also suggested that we can pull topics from the needs of this sub group. Basically if there is a “buzz word”, or 2 or 3, that a job requires, and you are unsure about what it is, ask the SDJUG group to present it at a meeting. There are a lot of APIs out there, and it would benefit us to match the technology available with what the companies in San Diego are actually doing.

Jason Boledovich, Sales Engineer, SilverStream gave a dynamic presentation on the “Technical Overview of Web Services and Related Technologies”. An effective Web service requires awareness of many new, as well as some existing, technologies. The presentation covered the core technologies in detail, including SOAP, WSDL, and UDDI - and how to leverage industry standards such as J2EE and XML. In addition we learned the fundamental skills needed to produce, deploy, and consume a web service. Topics included how to build a web service, expose it via SOAP, describe it via WSDL, register it via UDDI, and finally discover a web service and invoke it using a SOAP client. The highlight was when Jason turned the Yahoo interest rate calculator page into a web service in about 2 minutes.

See you next month,

Recap of June Meeting
Our June 18th meeting found us in our new location at Sun Microsystems' main San Diego Facility. We had 35 attendees, and the meeting room is slightly larger with a nice screen to project on. I especially want to thank Lion Bioscience for providing us with an LCD projector.

Our first speaker was Mirko Raner who is a Software Engineer at PTSC (formerly Patriot Scientific Corporation) in San Diego, CA. Mirko has been programming Java since 1996, and his special interests are the inner workings of the Java Virtual Machine, object-oriented software development techniques, the Unicode standard, and embedded Java programming.

Mirko gave an excellent presentation on what the Open Systems Gateway Initiative (OSGi) is, what an OSGi server does and how it can be used to deliver Java applications to embedded devices.

Our second speaker was Ricardo Cisternas of MGC Data Services.  Ricardo has been architecting, designing, and implementing enterprise-class multi-tiered systems for biotechnology and web applications using J2EE technologies and designing the Oracle databases that work with them. He has successfully led teams of software engineers through the entire project development cycle while mentoring junior team members.

Ricardo gave an interesting presentation Enterprise Java Beans covering where to put your business logic in a multi-tiered client-server system. He also discussed a number of design patterns that enhance the behavior of EJBs to benefit the overall system architecture and improve performance.  Some of the patterns discussed were: pass-by-value semantics, storage delegation for BMP, primary key generation, dependent entities, aggregate value objects, read-only EJBs, and versioned entities.

Hope to see you at the June meeting.


Recap of May Meeting

At our May 21 meeting we had 45 attendees and 2 more excellent presentations. I want to thank Parasoft for providing a free copy of Jcontract for our drawing at the end of the meeting.

Our first speaker was Patrick Lightbody who has been doing software development for 5 years, with the last 2 years focused exclusively on Java and J2EE. He is a Lead Engineer at Cisco Systems where he is  developing a workflow and document management system for internal and external knowledge management. He also contributes to OpenSymphony (, a collection of open source J2EE projects.

Pat gave an excellent presentation of his experiences at Cisco and with the OpenSymphony project. Drawing on these experiences, he explained why he believes that Enterprise Java Beans (EJB) technology  is unnecessary for 80% of all Java-based web applications. He examined the shortcomings of entity beans and session beans, as well as offering alternatives to the most commonly cited reasons for using EJB. During the break Pat talked with many members about his presentation in more detail.

Our second speaker was Alex Kanevsky of Parasoft.  Alex joined Parasoft in 1998 and has worked on many aspects of the Java development cycle, including testing, profiling, and development. Alex has worked on Parasoft's flagship product Insure++ as well as their suite of error prevention tools for Java, which includes Jtest and Jcontract. With extreme programming and project lead experience, Alex is well versed in the important issues facing Java developers.

Alex gave an interesting presentation on the benefits of "Design by Contract", DbC, for Java developers. He covered the benefits and implementation of DbC and explained how Java developers would use it in delivering more robust applications. He also mentioned another Parasoft product, Jcontract, which is a new Java development tool that checks (DbC) contracts at runtime.

Hope to see you at the June meeting.


Recap of April Meeting
 At our meeting on April 16, we had two speakers who both had informative and interesting presentations.

 First was Don W. Larson, SDJUG member for five years.  Don has been a database developer and consultant for over twenty years.  His experience is varied and wide, including founding his own company, working for Fortune 100 companies including IBM, and doing work related to a U.S. Attorney General criminal case.

Don's presentation was "XML and XSLT Using Apache's Java Products: Xerces and Xalan".    This presentation used Apple's 1.3.1 Java implementation running under MacOS 10.1.3 on a G3/600Mhz iBook.  The basic principles of XSLT transformation using Xerces parser and Xalan processor for Java were demonstrated.  XSLT works with XML by allowing transformations from valid and well-formatted XML documents into different formats including HTML, SVG, PDF, Java, or into new XML files or new XSLT files.

Our second speaker was Dale Guiducci of Transoft.  Dale is a consultant covering the western U.S. territory.  Transoft is a leading international provider of application assembly, transformation and integration solutions including migration solutions from various platforms.  Their Intelligent Adapter enables any standards-based application to be integrated with virtually any legacy system.  Dale's presentation was "Intelligent Adapter Technology".  He described a component-based approach to integrate existing legacy systems with newer, GUI front end systems.  The client was able to reuse code and established business rules while maintaining existing staff levels and keeping costs down.

See you next month,


Recap of March Meeting

Well, I think we are getting into the swing of having good meetings and good turnout. We had 40 attendees this past meeting and 2 excellent presentations. I want to thank Gary Gwin of Cafesoft for  providing excellent food and drink and of course to Sun Microsystems for providing the room and projector.

The normal intro went well with the standard request for help. One way to get rid of this segment is to volunteer (hint hint). We also had our first poll results for the May presentation. During the break a show of hands indicated that the majority of the group wanted to hear about "Benefits of Design By Contract for Java Developers "; this also reflects what the discussion group poll indicated. We will be having another poll for the June meeting topic. We also need a 30 minute speaker for the May meeting.

Norbert Kuhnert and Derek Stainer of Cafesoft ( gave an excellent presentation on secure J2EE, highlighting the places in the architecture where J2EE is good and where it is not so good. This was a dry run for their JavaOne presentation, and their slides will be available after JavaOne.

Next we had Frode Odegard of Odegard Labs ( give a rousing talk on software architecture. He engaged the audience with interesting insights into the big picture in software development, and how it fits into the overall software development process.

Hope to see you at the April meeting.



Recap of February Meeting

Our February meeting at Sun was well attended with 41 people last night. There were some new faces and some of the seasoned regulars.

Below are the highlights.

Peter Sperling & Peter Brennan, spoke about how developers can obtain Java tools for "almost free" from a variety of sources. The explained how with a few steps, developers may obtain freely available IDE's and do some manual additions of other technologies to save hundreds and in some cases thousands of dollars over the commercial versions. To that end, their company maintains a list of urls that are references to not only the free versions, but the docs on how to create more substantial development tools.

Their presentation initiated several very good questions and comments from the audience. I think we all earned a lot from
their disclosures and opinions.
David Himelstein followed after the break and introduced us to the legal concepts of various rights and protections pertaining to software development. With the audience's questions, David directly answered with good examples illustrating the foundation of those rights and protections. We had a good time trying to "stump the lawyer", but he was prepared for us and came out the winner. :-)

The attendees stayed afterwards and chatted amongst themselves. The networking from our meetings is extremely
valuable. Please join us again in March for our next meeting.

Thanks to everyone for attending.

Don Larson