[Sacramento Java Users Group]
[Home] [Members] [Announce] [Sponsors] [Resources]
SacJUG Meeting Archive

January 11, 2006

Open Discussion

February 14, 2006

Canceled for Valentines Day.

March 14, 2006

Tom Parker - Ajax

Nerd Books already lists four Ajax books .

O'Reilly has just released one Ajax book and will soon release four others between March and July of 2006. APress released one Ajax book in 2005, released two in February, and five to be announced!
Build Your Own AJAX Web Applications, First Edition
By Matthew Eernisse
Pragmatic Ajax, First Edition
Ajax Design Patterns: Rough Cuts Version, First Edition
By Michael Mahemoff
Ajax Hacks: Rough Cuts Version, First Edition
By Bruce W. Perry
Head Rush Ajax, First Edition
By Elisabeth Freeman, Brett McLaughlin

Ajax in Action (10/2005)
Dave Crane and Eric Pascarello with Darren James
Professional Ajax (2/2006)
Nicholas C. Zakas, Jeremy McPeak, Joe Fawcett
Pro JSF and Ajax: Building Rich Internet Components (2/2006)
Jonas Jacobi
Beginning JavaScript with DOM Scripting and Ajax: From Novice to Professional (?)
Christian Heilmann
Pro Ajax and the .NET 2.0 Platform (?)
Daniel Woolston
Foundations of Atlas: Rapid Ajax Development with ASP.NET 2.0 (?)
Laurence Moroney
Foundations of Ajax (10/2005)
Ryan Asleson
Beginning XML with DOM and Ajax: From Novice to Professional (?)
Sas Jacobs
Ajax Patterns and Best Practices (2/2006)
Christian Gross
Pro Ajax and PHP: Building Highly Interactive Applications (?)
Lee Babin

Ajax is making its presence on the book shelves not because it is a new idea, rather because it is being accepted by us, the developers. There are some great products being developed with Ajax techniques and Tom will share with us some of the currently available products found on the Net.

We raffled off the book JavaServer Faces from O'Reilly. JavaServer Faces cover.

Sandwiches and drinks were sponsored by TEKsystems and The Scheuble Group .

April 11, 2006

Open Discussion

May 9, 2006

Open Discussion

June 13, 2006

Edward Gibbs - Fitnesse

Fitnesse is a Java based acceptance testing tool to bridge the gap between customers and developers where the customers and QA staff can actually specify the acceptance tests in a wiki or a spreadsheet even before the code is written. The developer then comes in writes the code, hooks up a lightweight fixture using Fitnesse and runs the tests until they all pass. Adding new test scenarios is really easy.

Edward will be presenting an introduction to Fitnesse.

We raffled off the book Fit for Developing Software: Framework for Integrated Tests

from The Scheuble Group. Fit for Developing Software: Framework for Integrated Tests

Sandwiches and drinks were sponsored by TEKsystems and The Scheuble Group .

July 11, 2006

Nick Chalko

Starter Session - Eclipse Profiler
Advanced Session - Eclipse Test and Performance Tools Platform

The Tracing and Profiling Tools Project is a project in the Eclipse TPTP Top- Level Project, it addresses the tracing and profiling phases of the application lifecycle. The Tracing and Profiling Tools Project provides frameworks for building tracing and profiling tools by extending the TPTP Platform. The framework has the capability of collecting and analyzing application performance information The project includes exemplary profiling tools for both single-system and distributed Java applications through a JVMPI monitoring agent that collects trace and profile data.

Nick will be presenting an introduction to eclipse's profile and then a use case for the test and performance tools platform.

We raffled off the book Tomcat: The Definitive Guide from O'Reilly. Tomcat: The Definitive Guide

Sandwiches and drinks were sponsored by TEKsystems and The Scheuble Group .

August 8, 2006

Roman Hustad

Starter Session - Security Breach Examples
Advanced Session - Java Development Security Techniques

Roman will demonstrate how web applications are broken into using typical remote attack techniques. These examples give the Java developer a better understanding of the importance of security when writting software applications. For the advanced section we will examine some security techniques.

This meeting is one of the first meetings to formally address security and we will be defining the direction we will take for future meetings on this topic. You will want to be there for this presentation that will be the most advanced discussion of Java security we have ever experienced at SacJUG!

Roman Hustad is a Principal Consultant at Foundstone, where he delivers software security services for Fortune 500 and government clients. He is an expert in Java security and web application development, a frequent speaker and a Sun Certified Web Component Developer. Roman is the lead instructor for Foundstone's Writing Secure Code - Java (J2EE) course and also teaches the Building Secure Software course.

We raffled off the Sun Microsystems Press Core Security Patterns : Best Practices and Strategies for J2EE�, Web Services, and Identity Management book. Core Security Patterns

The book was sponsored by Bob Rowden. The sandwiches and drinks were sponsored by TEKsystems and The Scheuble Group .

September 12, 2006

Joel Thompson
JBoss Logo
Relational Persistence for Java and .NET

Hibernate is a powerful, high performance object/relational persistence and query service. Hibernate lets you develop persistent classes following object-oriented idiom - including association, inheritance , polymorphism , composition , and collections . Hibernate allows you to express queries in its own portable SQL extension ( HQL ), as well as in native SQL, or with an object-oriented Criteria and Example API .

Unlike many other persistence solutions, Hibernate does not hide the power of SQL from you and guarantees that your investment in relational technology and knowledge is as valid as always. The
LGPL open source license allows the use of Hibernate and NHibernate in open source and commercial projects.

Hibernate is a
Professional Open Source project and a critical Core Security Patterns component of the JBoss Enterprise Middleware System (JEMS) suite of products. JBoss, a division of Red Hat , offers a range of 24x7 Professional Support, Consulting, and Training services to assist you with Hibernate.

We raffled off the Manning Publications " Hibernate in Action " by Christian Bauer and Gavin King book.

The sandwiches and drinks were sponsored by TEKsystems and The Scheuble Group .

October 10, 2006

Neeraj Sangal
Dependency Structure Matrix
Lattix Logo

Using DSMs to Manage Architecture

This talk will present a new technique which utilizes inter-module dependencies to represent and manage the architecture of complex software applications. Using these dependencies we build models which provide a precise big picture view of the architecture. These models use a Dependency Structure Matrix (DSM) to provide a developer's view of the architecture that is highly scalable compared to the directed graph approaches that are common today. We will demonstrate this approach by applying it to number of commonly used applications each consisting of hundreds or thousands of classes. We will show how dependency analysis can be used to extract the architecture for applications such as Ant, JUnit, jEdit, Eclipse� Platform, and NetBeans� Platform. Finally, actual dependency models will be created for multiple generations of an application to highlight how architecture evolves and how it often begins to degrade.
Screen Shot
Time permitting (and with sufficient interest) we will examine any java software application that you are familiar with and would like to share with the group. This could be your own application or an open source application. Please bring jar files of this application with you.

Suggested reading before hand

  1. What is a DSM?
  2. Using Dependency Models to Manage Complex Software Architecture (OOPSLA 2005)
  3. DSM WebSite

Background Material

  1. Steven D. Eppinger, "Innovation at the Speed of Information", Harvard Business Review, January 2001.
  2. Baldwin, C.Y. and Clark K.B., The Power of Modularity Volume 1, MIT Press, Cambridge, MA, 2000.
  3. Simon, H.A., The Sciences of the Artificial (3rd ed.). The MIT Press, Cambridge, MA, 1996.

We raffled off a free license of the Lattix application sponsored by Lattix.

The sandwiches and drinks were sponsored by TEKsystems and The Scheuble Group .

November 14, 2006

Anil Bhatt, Software Consultant, DOJ California
Domain Driven Design

This talk will present Domain Driven Design using Java, J2EE, Hibernate and Spring.

Domain Driven Design is a design and development approach, which puts the core business model at the central focus and makes sure that software design and code is an accurate expression of the underlying business model it is trying to automate.

What uniquely differentiate one Enterprise application from another is the business model it represents, the business process it automates and the governing business rules. Domain driven design primarily focuses on evolving an object oriented domain model, which truly represents the underlying business model, and encapsulating all domain business logic within this model. This makes software maintenance and enhancement much easier as the core application behavior and business logic is well encapsulated within the domain, instead of being scattered all over.

Domain driven design also attempts to keep the core domain model and related code well decoupled from mundane infrastructure code like persistence. The core domain objects and the behavior encapsulated within these objects are the real intellectual property of a given enterprise application. So keeping the core domain objects decoupled from the mundane infrastructure code helps increase the longevity (useful lifetime) of an application as infrastructure code like persistence is much more subject to change because of rapid advancement in technology.
Traditional development treats persistence objects (for example entity ejbs or persistent pojos in Java world, which typically map to underlying database tables) as just dumb structures merely used to hold data persisted in database. Domain driven design elevates the status of these objects to living, breathing domain objects, which not only represent persistent data, but core domain behavior and business logic.

We will discuss a set of best practices, concepts, patterns, software development methodologies and technologies, which make domain driven design possible. I'll also share my real world experience, and challenges faced while implementing domain driven design in a recent project. Although we will primarily focus on concepts, we will also discuss how technologies like Hibernate and Spring make implementation of domain driven design easier.

Suggested reading before hand -

  1. Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans: Addison-Wesley Professional; 1st edition (August 22, 2003)
  2. Applying Domain-Driven Design and Patterns: With Examples in C# and .NET by Jimmy Nilsson: Addison-Wesley Professional (May 8, 2006)
  3. Patterns of Enterprise Application Architecture by Martin Fowler: Addison-Wesley Professional; 1st edition (November 5, 2002) Programming Jakarta Struts

Notes -
The presentation material will assume familiarity with object oriented design and analysis. Familiarity with ORM tools like Hibernate and dependency injection frameworks like Spring is not required, but will be helpful.

We raffled off the O'Reilly " Programming Jakarta Struts " by Chuck Cavaness book.

The sandwiches and drinks are sponsored by TEKsystems and The Scheuble Group .

December 12, 2006

Tim Schafer, Senior Developer, FSP
An introduction to Glassbox: Just Tells You What BrokeTM.

Glassbox is a troubleshooting agent for Java applications that automatically diagnoses common problems.

Because Glassbox's troubleshooting knowledge is built in, anyone can isolate a failing connection or a slow-running query instantly. You don't need to analyze log files or graphs. Just one click, and Glassbox tells you in plain English what broke.

Spending too much time reading log files? Too hard to get fixes? Glassbox works differently. It's not a manual tool or data viewer and there's no need to change your code or rebuild your Java application. Just drop in Glassbox and get answers.

Monitoring Java code via Aspect Oriented Programming

Glassbox monitors your application through the Java virtual machine (JVM), which gives it a top-down view of the application's activity and allows it to infer problems in other processes. JDBC activity in the app server, for example, will reveal how well the database is responding.

The interface to the JVM doesn't involve byte code instrumentation of your production code but is done via aspect-oriented programming (AOP), a standards-based technology for combining separately-developed Java modules at load time. AOP instrumentation happens at class load time (or, if you prefer, at compile time). Glassbox requires no changes to your source code or build process, so it can work with legacy .jar files.

Suggested reading before hand -

  1. AspectJ in Action: Practical Aspect-Oriented Programming by Ramnivas Laddad: Manning
Links -

Head First Open-Oriented Analysis & Design Notes -
A walk through of installation and basic usage will be given for the starter session.
During the advanced session we'll look under the hood to how AOP and AspectJ in particular make Glassbox work.

We raffled off the O'Reilly " Head First Open-Oriented Analysis & Design " by Brett D. McLaughlin, Gary Pollice & David West book.

The sandwiches and drinks were sponsored by TEKsystems and The Scheuble Group .