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!
Others
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.
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.
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.
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.
The book was sponsored by Bob Rowden. The sandwiches and
drinks were sponsored by TEKsystems and The
Scheuble Group.
September 12, 2006
Joel Thompson

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 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
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.

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
- What
is a DSM?
- Using
Dependency Models to Manage Complex Software Architecture (OOPSLA 2005)
- DSM WebSite
Background Material
- Steven D. Eppinger, "Innovation at the Speed of Information", Harvard
Business Review, January 2001.
- Baldwin, C.Y. and Clark K.B., The Power of Modularity Volume 1, MIT Press, Cambridge,
MA, 2000.
- 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 -
-
Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans: Addison-Wesley Professional; 1st edition (August 22, 2003)
- Applying Domain-Driven Design and Patterns: With Examples in C# and .NET by Jimmy Nilsson: Addison-Wesley Professional (May 8, 2006)
- Patterns of Enterprise Application Architecture
by Martin Fowler: Addison-Wesley Professional; 1st edition (November 5, 2002)
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 -
-
AspectJ in Action: Practical Aspect-Oriented Programming
by Ramnivas Laddad: Manning
Links -
Glassbox
AspectJ
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.

|