SeaJUG is an all volunteer effort - which means items such as the website and mailing list are updated as schedules afford. You can usually count on our meetings occurring on the
3rd Tuesday of every month, and always count on them being open to all who are interested, but the next meeting agenda may not appear until the week of the presentation.
We need suggestions/volunteers for topics! If you'd like to donate your time/skills to the cause, contact
Nimret Sandhu.
Meeting Location:
Amdocs
2211 Elliott Avenue
Suite 400
Seattle, WA 98121
MapMeeting Time:
6:45pm Networking
7:00pm Presentation
Upcoming User ConferencesTuesday, 09. June 2009
16 June 2009 : Monads 
In this talk Greg Meredith will look at the monad "design pattern" and how it applies to programming on the web. Programming examples will largely be drawn from functional JVM languages such as Scala.
~Speaker Bio~
Greg Meredith has supported his math habit by working in computing.
Currently he sits at SAP as principal architect. He was the principal
architect of Microsoft's BizTalk's Process Orchestration offering and took on the burden of contributing to the early WSDL spec to keep it from being more of a train wreck than it is. He also worked on Microsoft's super secret BigTop project, working on an OS and Programming Language pair, based on process calculi. Prior to that he was one of the core members of the Carnot Team at the first industrial research consortium, the now defunked MCC.
There he worked with Christine Tomlinson on Rosette/ESS, a fully reflective actor-based programming language with a high performance execution engine.

Tuesday, 12. May 2009
19 May 2009 : Writing Quality Software 
Being non-physical, software quality is very different than quality
in physical goods. In today's environment software must not only
provide value now, it must be easy to change so it can continue to
deliver value in the future. This is especially true on agile
projects where short iterations and ongoing customer involvement
means software needs to change frequently. Without paying attention a
few key qualities the agile process of iterative development can soon
degrade code into a maintenance nightmare. In this seminar we will
explore specific qualities that make software more maintainable and
easier to change.
~Speaker Bio~
David Bernstein has been writing software for over a quarter of a
century. A noted speaker and presenter, David has been responsible
for successfully delivering systems that drive leading econometric
and financial firms as well as helping to develop application and
operating system software. He has nearly two decades of experience
"preaching what he practices" and has personally trained over 6,000
developers on how to improve the design and construction of software.
In addition to his deep technical knowledge and passion for software
development, David has experience running all aspects of a startup
software company and is also an award-winning video producer. Read
David's blog Techniques of Design:
http://www.techniquesofdesign.comNote that a video of this presentation is available at:
http://www.vimeo.com/4759140 
Monday, 13. April 2009
21 Apr 2009 : Detecting and preventing bugs with pluggable type-checking 
Speaker: Michael ErnstType-checking helps to detect and prevent errors. However,
Java's built-in types are incapable of expressing important
information, such as whether a variable may be null, whether a
value is intended to be side-effected, or whether a String is
interned. As a result, a type-correct program can suffer from
null pointer exceptions, undesired mutations, improper equality
testing, and many other types of problems.
Pluggable types (User-defined extensions to the type system) can
detect such errors, prevent them, or verify their absence. This
talk presents the Checker Framework, a practical pluggable type
system for Java. The framework is compatible with all versions
of Java; furthermore, Java 7 will contain syntactic support for
it, in the form of type annotations.
The Checker Framework benefits programmers by improving
documentation and eliminating bugs. It is intuitive to use and
requires few annotations, so the burden on programmers is small.
The Checker Framework also makes it easy to create new, custom
checkers that verify important properties specific to your own
code.
The Checker Framework is publicly available at:
http://groups.csail.mit.edu/pag/jsr308/Note that a video of this presentation is available at:
http://www.vimeo.com/4368251

Monday, 09. March 2009
17 Mar 2009 : The Java Memory Model 
The Java memory model has become the de facto standard for other general-purpose
languages, including C++. I will first explain why a memory model is needed.
I'll talk about the importance of sequential consistency and how it is
implemented in the JVM.
Speaker Bio
Bartosz has a Ph.D. in theoretical physics. He switched to programming to
work for Microsoft, where he was the lead developer of the content index (a
search engine before the Internet took off). He published a book, "C++ In
Action," and regularly contributes to professional publications. His latest
interest is concurrency--both the big picture and the low level details. He
regularly blogs about it at
http://BartoszMilewski.wordpress.com .
Note that a video of this presentation is available at:
http://www.vimeo.com/3757991and the slides are under 'Meeting Notes' on the right hand side menu.

Wednesday, 11. February 2009
17 Feb 2009 : Keeping Test Driven Development sustainable 
As Test-Driven Development has gained in momentum and popularity, it has also been called into question as a viable development strategy past the first 3-4 iterations in Agile projects. Many report that the test suite generated by the process can become a maintenance problem in and of itself, eventually collapsing under its own weight. Is this an inherent problem with TDD, or simply a result of a misunderstanding of how TDD works, and what needs to be emphasized in order to keep it sustainable? We will examine this question in some detail, and offer some insights on overcoming this limitation.
Speaker Bio
Net Objectives' Scott Bain is a 30+-year veteran in computer technology, with a background in development, engineering, and design. He has also designed, delivered, and managed training programs for certification and end-user skills, both in traditional classrooms and via distance learning. Scott teaches courses and consults on Agile Analysis and Design Patterns, Advanced Software Design, and Sustainable Test-Driven Development. Scott is a frequent speaker at developer conferences such as JavaOne and SDWest. He is the author of "Emergent Design: The Evolutionary Nature of Professional Software Development" now available from Addison Wesley/Pearson Education.
NOTE: A
video of the presentation is
viewable online at:
http://www.vimeo.com/3356282

Monday, 12. January 2009
20 Jan 2009 : The Gigaspaces experience 
Sharing my and company's experience with GigaSpaces product, that
implements data and computational grid. Subtopics include:
- why we have chosen GigaSpaces and not alternatives;
- how GS addresses (or not) fallacies of distributed computing;
- what challenges we had piloting and adopting GigaSpaces;
- several demos: failover, data partitioning, integration with traditional data sources (RDBMS);
- how to shot yourself in a foot with GigaSpaces - things marketeers are silent about;
I am not affiliated with GigaSpaces, so all the above is my
perspective and impression of the product and Java grid space in
general.
Speaker's Bio
Konstantin Ignatyev has been working with Java since 1998 and
constantly on the lookout for technologies and tricks to improve Java
development productivity, and to deliver highly maintainable and easy
to extend code. He has been a consultant for many years successfully
using learned tricks and sharing them with fellow developers on JUG,
IASA meetings, and SD WEST 2006 conference.
Currently Konstantin works as Enterprise Architect for Cobalt Group.
Interests and hobbies: sustainable business practices, ways to improve
human's habitat and quality of life, hiking and backpacking,
badminton, tennis, motorcycle touring.

Monday, 24. November 2008
16 Dec 2008 : Groovy and Grails 
Grails is a web development framework in the mold of Ruby on Rails
that leverages current best of breed Java technologies such as Spring
and Hibernate. It is built using a convention over configuration
approach to web development leveraging the dynamic Java based
scripting language Groovy.
This presentation will provide a high level overview of Groovy and
Grails and describe how it is being integrated into a real world Java
application to handle an internal administrative application. We will
discuss the pros and cons of using a very dynamic framework, how it
supports Test Driven Development, and how it integrates with common
Java tools such as Maven, Ant, and Hudson. We will discuss some of the
joys and frustrations that we have experienced using Groovy and Grails
as experienced Java developers. Finally, we will conclude with some
recommendations on when and where to use Groovy and Grails, and how it
fits in with an overall strategy.
Speaker Bios:
Gabe Hicks has been a Java developer working in the web application
space since 1999. He is currently working with Groovy and Grails at
All Star Directories, Inc.
Will Iverson has been working with Java since 1995, and is the author
of four books on Java software development. He is currently working
as a Java Architect with Slalom on a project for All Star Directories,
Inc.

Thursday, 13. November 2008
18 Nov 2008 : Zero Turnaround in Java Development 
Turnaround is the time it takes for the changes in code to propagate
to the running application. Currently the average time spent waiting
for building and deployment is about one minute. In fact turnaround
takes even more time away, due to the interruption penalties and
quality degradation.
In this talk Toomas Römer will review how to get the time from hitting
Ctrl+S to refreshing the browser to less than one second. Using modern
IDEs like Eclipse, NetBeans and IDEA and a toolset of tricks it is
possible to almost eliminate the build from the turnaround. Using
frameworks like OSGi or Tapestry 5 and code reloading solutions like
JVM HotSwap and JavaRebel is is possible to also lose deployment out
of the picture. After this talk you should be able to significantly
reduce turnaround, whether you're starting a project from scratch or
maintaining an existing one.
http://www.zeroturnaround.com/javarebel/Pizza and pop will be provided by our gracious hosts -
OpenMarket and
QPass

Monday, 13. October 2008
21 Oct 2008 : Life in a Multi-Threaded World 
Soon we will all need to be highly proficient with threading to make full use of all the potential that quad-core and higher CPUs are rapidly bringing to the computing landscape. But writing thread safe code can be tricky stuff. This talk examines in detail the real world experience of building one such highly multi-threaded application, a custom game server written in Java to support an online virtual game world. If you imagine Second Life or World of Warcraft but inside a browser, you're thinking along the right lines.
During the course of building this application, we learned that many of the techniques that worked well when writing small threaded applications were really not sufficient for a large, complex and scalable multi-threaded application. In this talk I'll discuss what problems we encountered and present a specific approach based on combining some concepts taken from Brian Goetz's work together with insights from Herb Sutter (a C++ concurrency guru) that turned things around and provide what I believe is a solid and yet relatively simple basis for building real world, large scale multi-threaded applications.
This is a nuts and bolts presentation, going from the high level concepts of what we were looking to achieve down to the specific implementation details. Since today not everyone has had the chance to write this sort of multi-threaded application from the ground up I hope sharing these insights will help others gain more confidence in writing complex, threaded applications so we can embrace and make better use of the hardware that will soon be upon us.
Spaker Bio
Douglas Pearson is co-founder and CTO of FlowPlay, Inc the makers of ourWorld.com. ourWorld is an online casual virtual world with over half a million users, where you can play games and have fun while earning clothing, furniture and other goodies. FlowPlay is Doug's second startup after founding ThreePenny Software which made mobile casual games for GameHouse and then RealNetworks from 2002-2006. He earned a Ph.D. in Artificial Intelligence from the University of Michigan in 1996 and is an ex-pat Brit having crossed the Atlantic for good in 1988. When not building virtual worlds, Doug may often be found playing competitive badminton much to the confusion of his American friends who don't believe such a sport exists.
Pizza and pop will be provided by our gracious hosts -
OpenMarket and
QPass

Tuesday, 09. September 2008
16 Sept : The Busy Java Developer's Guide to Performance and Scalability 
Note : This month's speaker is being facilitated by the folks who run the
NoFluffJustStuff conference which is going to be hitting Seattle on the weekend after the meeting. Some lucky audience member will get a free pass to the conference ( worth $995/-) at the meeting.
Presentation
Wondering why your enterprise Java app just… sucks? Trying to figure out why you can't get more than 10 concurrent users online at the same time? Looking for ways to try and spot the slowdowns and ways to fix them?
In this talk, we'll look at the various things that can occur in an enterprise Java app (from the smallest web site to the largest multi-resource environment) to make your Java apps perform and scale less well than they should, and how you can work to correct them. We'll examine a variety of broad concepts to apply in architecture and design, and examine what factors make an enterprise application slow, then use a variety of tools to figure out how to remedy them.
Speaker Bio
Ted Neward is an independent consultant specializing in high-scale enterprise systems, working with clients ranging in size from Fortune 500 corporations to small 20-person shops. He speaks on the conference circuit, including the No Fluff Just Stuff Symposium tour, discussing Java, .NET and XML service technologies, focusing on Java-.NET interoperability. He has written several widely-recognized books in both the Java and .NET space, including the recently-released "Effective Enterprise Java". He lives in the Pacific Northwest with his wife, two sons, four video-game consoles, thousands of books (on programming and otherwise), and eight PCs.