[Steering Committee] Presentation
Brett L. Schuchert
schuchert at yahoo.com
Wed Sep 5 09:09:45 PDT 2007
Bio:
Brett Schuchert has over 20 years of teaching experience and 17 years
of professional software development experience. Starting in the mid
80's he taught computer literacy courses. At the end of the 80's
while still teaching, he began professionally developing first in C++
(before C++ had multiple-inheritance) and working with Smalltalk (and
for a short stint back he used a pre-ANSI, K&R type 1 C compiler for
embedded systems development). He continued with C++ and Smalltalk
training and consulting, managing to work with both C++ and Smalltalk
on the same project using object-oriented database technology for the
short time it was in vogue.
In 1997 he developed and deployed his first Java application on top
of Java 1.0, which he later migrated to Java 1.1 to take advantage of
the newly-added Java Serialization. The project used applets to
directly update the DOM of a complex web page to avoid the full turn-
around of an HTTP get (this is now referred to as AJAX).
He has continued developing enterprise-level applications in Java and
has recently changed the emphasis of his training and mentoring
towards software professionalism.
Presentation:
Hello Java:
From no-threading to the executor framework built in to Java 5
This is a quick hop through basic threading.
We start with a single-threaded server with a failing test (due to
performance).
We fix the performance problem by introducing basic threading
(justified by the Single Responsibility Principle)
We then upgrade the server to us the Executor framework instead
hand-rolling threads
This is a quick example of creating a fixed-size thread pool
If time permits (it probably won't), we'll look at a deadlock
problem with the executor framework.
Main Presentation
This presentation assumes familiarity with Java, JUnit 4, and basic
Threading - the hello Java should suffice
We begin with a simple problem of an unguarded, shared resource
We fix the problem using synchronized (basic)
We fix the problem by NOT guarding (intermediate) using a Java 5
class to do so
We then discuss the background behind how this works
We continue with a real problem, trying to screen scrape some web
pages using the HTTP Client. The whole process takes 30 seconds
We evaluate the work to figure out
The CPU bound parts
The I/O bound parts
Estimate how much we can speed things up
We then test our way into a multi-threaded solution
Evaluate the results
Remove contention
Move towards our theoretical maximum speed
Along the way we'll learn a little more about the executor framework
(Note: I'll skip some steps to cover more material.)
If we have time (we probably won't), we'll have a look at a few
more of the Java 5 classes:
Barrier or Latch (haven't picked which one yet)
ConcurrentHashMap
Picture

On Sep 4, 2007, at 5:19 PM, Jason Lee wrote:
> On 9/4/07, Brett L. Schuchert <schuchert at yahoo.com> wrote:
> Did someone want a bio, outline and picture for the presentation?
>
> A picture, short bio, and a summary of each presentation (Hello
> Java and the main presentation) would be GREAT! :P
>
> Thanks!
>
> --
> Jason Lee, SCJP
> Software Architect -- Objectstream, Inc.
> JSF RI Dev Team
> http://blogs.steeplesoft.com
> _______________________________________________
> Sc mailing list
> Sc at lists.okcjug.org
> http://lists.okcjug.org/listinfo.cgi/sc-okcjug.org
> http://wiki.okcjug.org
> http://tech.groups.yahoo.com/group/okcjug/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.okcjug.org/pipermail/sc-okcjug.org/attachments/20070905/5b1384f3/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: brettsunspace.jpg
Type: image/jpeg
Size: 128129 bytes
Desc: not available
URL: <http://lists.okcjug.org/pipermail/sc-okcjug.org/attachments/20070905/5b1384f3/attachment.jpg>
More information about the sc
mailing list