Great Lakes Software Symposium

November 11 - 13, 2011 - Chicago, IL


Westin Chicago Northwest
400 Park Boulevard
Itasca, IL   60143
Map »

NOTE: You are viewing details about a past event. We will be back in ChicagoNovember 8 - 10, 2013.
View the event details here ».

Ted Neward

Enterprise, Virtual Machine and Language Wonk

Ted Neward is an Architectural Consultant with Neudesic, LLC as well as the Principal with Neward & Associates. He speaks on the conference circuit discussing Java, .NET and XML service technologies, focusing on Java-.NET interoperability, programming languages, and virtual machine technologies. He has written several widely-recognized books in both the Java and .NET space, including the recently- released "Professional F#" and widely-acclaimed "Effective Enterprise Java". He lives in the Pacific Northwest.



Presentations

Busy Java Developer's Guide to Java 7

With the forthcoming release of Java7, a number of things come to fruition, both in the Java language and in the libraries, and it's important for Java developers to know what those features are, and how they change the game of writing Java code--or not.

In this presentation, we'll go over those changes, JSR by JSR, and discuss where and how they may affect your next project.

Busy Java Developer's Guide to Multi-Paradigm Design

The Java Virtual Machine is home to several different languages beyond Java, many of which mix ideas (paradigms) together to create a flexible language. Languages which support these different paradigms can be awkward and hard to understand how to use at first.

But if we tear apart the paradigms, examine each one and its advantages and disadvantages, then we can go back to bringing them all back together to create some truly elegant and powerful software designs. It all begins with understanding what software design paradigms are.

Busy Java Developer's Guide to Guava

"The Google Guava project contains a host of new features/classes for use by the Java programmer. Intended as a drop-in supplement for the standard JDK APIs, Guava provides features like immutable and forwarding collections, some concurrency utilities, more support for primitives, and so on.

In this session, we'll go over the Guava library, looking at what it provides, when you might seek to use it, and what the overheads and consequences of using it would be."

The Busy Java Developer's Guide to Akka

With the rise of multi-core processors, and their growing ubiquity (on client machines, to say nothing of the server machines on which Java applications most frequently execute), the need to "program concurrently" has risen from "nice-to-have" to "mandatory" requirement, and unfortunately the traditional threading-and-locking model is just too complicated for most Java developers--even the brightest of the lot--to keep track of with any degree of reliability. As a result, numerous new solutions are emerging, each of them with their own strengths and weaknesses, leaving the Java developer in a bit of a quandary as to which to examine.

In this presentation, we'll look at Akka, a framework/platform specifically aimed at building high-throughput, concurrency-friendly applications in either Java or Scala (or both), with a slew of additional add-on modules to handle issues like persistence, communication (pub-sub, REST, and more), and more. By the time we're done, you'll be able to start looking into using Akka on your own projects, and have a good feel for what your projects would look like when Akka-ized.

Busy Java Developer's Guide to Android: Basics

Android is a new mobile development platform, based on the Java language and tool set, designed to allow developers to get up to speed writing mobile code on any of a number of handsets quickly. In this presentation, we'll go over the basic setup of the Android toolchain, how to deploy to a device, and basic constructs in the Android world.

Attendees should be intermediate to advanced Java developers, as no time will be spent on Java basics, just the Android parts. Attendees are encouraged to bring laptops to the session (and your Android-based device, if you have one) to fill out code as we go, but the limited time frame means a focus on fast delivery of content and example code; have your fingers warmed up (and the SDK downloaded!) before you get here. (Latest Android SDK will also be on a USB key for attendees' use, in case attendees haven't had a chance to download & install.)

Busy Developer's Guide to CouchDB

With the rise of the NoSQL movement, a whole new crop of different ways to store data suddenly became available to the Java developer. Unfortunately,what didn't come with them was an owner's manual. CouchDB, for example, was the first of the NoSQL databases to be named as such, and offers features not found in the traditional RDBMS: A distributed, robust, incremental replication document-oriented database server with bi-directional conflict detection and management, accessible via a RESTful JSON API, stored ad-hoc and schema-free with a flat address space, that is both query-able and index-able, featuring a table oriented reporting engine that uses JavaScript as a query language. (With a list of buzzwords like that, what's not to love?)

In this session, we'll look at CouchDB, how to set it up, store data to it, retrieve data from it, and in general figure out where it fits within your next project.

Busy Java Developer's Guide to Games

Games? What do games have to do with good business-oriented applications? Turns out, a lot of interesting little tidbits of user-interface, distribution, and emergence, found normally in the games we play, have direct implications on the way enterprise applications can (or should) be built.

Come to this session, find out some intriguing things about what’s going on in the game industry, but more importantly, how ideas from the gaming world can turn around and answer some thorny problems in the business world.

Pragmatic Architecture

Building an application is not the straightforward exercise it used to be. Decisions regarding which architectural approaches to take (n-tier, client/server), which user interface approaches to take (Smart/rich client, thin client, Ajax), even how to communicate between processes (Web services, distributed objects, REST)... it's enough to drive the most dedicated designer nuts. This talk discusses the goals of an application architecture and why developers should concern themselves with architecture in the first place. Then, it dives into the meat of the various architectural considerations available; the pros and cons of JavaWebStart, ClickOnce, SWT, Swing, JavaFX, GWT, Ajax, RMI, JAX-WS, , JMS, MSMQ, transactional processing, and more.

After that, the basic architectural discussion from the first part is, with the aid of the audience in a more interactive workshop style, applied to a real-world problem, discussing the performance and scalability ramifications of the various communication options, user interface options, and more.

Architectural Kata Workshop

Fred Brooks said, "How do we get great designers? Great designers design, of course." So how do we get great architects? Great architects architect. But architecting a software system is a rare opportunity for the non-architect.

The kata is an ancient tradition, born of the martial arts, designed to give the student the opportunity to practice more than basics in a semi-realistic way. The coding kata, created by Dave Thomas, is an opportunity for the developer to try a language or tool to solve a problem slightly more complex than "Hello world". The architectural kata, like the coding kata, is an opportunity for the student-architect to practice architecting a software system.

In this session, attendees will be split into small groups and given a "real world" business problem (the kata). Attendees will be expected to formulate an architectural vision for the project, asking questions (of the instructor) as necessary to better understand the requirements, then defend questions (posed by both the instructor and their fellow attendees) about their choice in technology and approach, and then evaluate others' efforts in a similar fashion. No equipment is necessary to participate--the great architect has no need of tools, just their mind and the customers' participation and feedback.

Books

by Ted Neward, Aaron Erickson, Talbott Crowell, and Rick Minerich

Professional F# 2.0 Buy from Amazon
List Price: $44.99
Price: $30.41
You Save: $14.58 (32%)
  • This is a book on the F# programming language.

    On the surface of things, that is an intuitively obvious statement, given the title of this book. However, despite the apparent redundancy in saying it aloud, the sentence above elegantly describes what this book is about: The authors are not attempting to teach developers how to accomplish tasks from other languages in this one, nor are they attempting to evangelize the language or its feature set or its use "over" other languages. They assume that you are considering this book because you have an interest in learning the F# language: its syntax, its semantics, its pros and cons, and its use in concert with other parts of the .NET ecosystem.

    The intended reader is a .NET developer, familiar with at least one of the programming languages in the .NET ecosystem. That language might be C# or Visual Basic, or perhaps C++/CLI, IronPython or IronRuby.


by Ted Neward

Effective Enterprise Java Buy from Amazon
List Price: $54.99
Price: $48.79
You Save: $6.20 (11%)
  • "With this book, Ted Neward helps you make the leap from being a good Java enterprise developer to a great developer!"
    —John Crupi, Sun Distinguished Engineer coauthor, Core J2EE Patterns

    If you want to build better Java enterprise applications and work more efficiently, look no further. Inside, you will find an accessible guide to the nuances of Java 2 Platform, Enterprise Edition (J2EE) development. Learn how to:

    • Use in-process or local storage to avoid the network, see item 44
    • Set lower isolation levels for better transactional throughput, see item 35
    • Use Web services for open integration, see item 22
    • Consider your lookup carefully, see item 16
    • Pre-generate content to minimize processing, see item 55
    • Utilize role-based authorization, see item 63
    • Be robust in the face of failure, see item 7
    • Employ independent JREs for side-by-side versioning, see item 69

    Ted Neward provides you with 75 easily digestible tips that will help you master J2EE development on a systemic and architectural level. His panoramic look at the good, the bad, and the ugly aspects of J2EE development will address your most pressing concerns. Learn how to design your enterprise systems so they adapt to future demands. Improve the efficiency of your code without compromising its correctness. Discover how to implement sophisticated functionality that is not directly supported by the language or platform. After reading Effective Enterprise Java , you will know how to design and implement better, more scalable enterprise-scope Java software systems.


by Peter Drayton, Ben Albahari, and Ted Neward

C # in a Nutshell, Second Edition Buy from Amazon
Price: $44.95
  • C# in a Nutshell was inevitable, much like the dawn or your liability for income tax. As the C# language has gathered speed--it's one of the languages that Microsoft encourages you to use for .NET development--its users have anticipated the release of an authoritative reference for the language and its key APIs. That's what this book is: a reference, meant to give you a few chapters on basic structure and syntax before launching into categorized and alphabetized listings of classes and their members. It's sufficiently well written and organized that, given experience with other distributed application environments and some knowledge of .NET, you could learn the language from this book alone. However, this is not a tutorial for people new to Microsoft programming, or new to network computing.

    The syntax guide is clear and concise, with brief statements of what operators, data structures, and syntax elements are for. There also are examples (both generic and with illustrative data) in this section. The API reference is organized by namespace (System, System.Collections, System.Reflection, System.Xml, and so on), with each section containing an alphabetical list of members. Each listing includes syntax guides to the element's constructors, methods, and properties, as well as a hierarchy statement and lists of other classes from which instances of the current member is returned and to which it is passed. Don't look for examples in the API reference, but the author's prose statements of what classes are for should help you along the way to a working application. --David Wall

    Topics covered: The key System namespaces of the C# programming language and their most important members, covered in API reference format. Sections deal with (among others) System, System.Collections, System.Net, System.Net.Sockets, System.Runtime.Interopservices, and System.Xml. There's also a syntax guide and references to regular expressions and data marshaling in the C# language.


by David Stutz, Ted Neward, and Geoff Shilling

Shared Source CLI Essentials Buy from Amazon
List Price: $34.95
Price: $25.60
You Save: $9.35 (27%)
  • Microsoft's Shared Source CLI (code-named "Rotor") is the publicly available implementation of the ECMA Common Language Infrastructure (CLI) and the ECMA C# language specification. Loaded with three million lines of source code, it presents a wealth of programming language technology that targets developers interested in the internal workings of the Microsoft .NET Framework, academics working with advanced compiler technology, and people developing their own CLI implementations. The CLI, at its heart, is an approach to building software that enables code from many independent sources to co-exist and interoperate safely.

    Shared Source CLI Essentials is a companion guide to Rotor's code. This concise and insightful volume provides a road map for anyone wishing to navigate, understand, or alter the Shared Source CLI code. This book illustrates the design principles used in the CLI standard and discusses the complexities involved when building virtual machines. Included with the book is a CD-ROM that contains all the source code and files.

    After introducing the CLI, its core concepts, and the Shared Source CLI implementation, Shared Source CLI Essentials covers these topics:

    • The CLI type system
    • Component packaging and assemblies
    • Type loading and JIT Compilation
    • Managed code and the execution engine
    • Garbage collection and memory management
    • The Platform Adaptation Layer (PAL): a portability layer for Win32®, Mac OS® X, and FreeBSD
    Written by members of the core Microsoft® team that designed the .NET Framework, Shared Source CLI Essentials is for anyone who wants a deeper understanding of what goes on under the hood of the .NET runtime and the ECMA CLI. Advanced .NET programmers, researchers, the academic community, and CLI implementers who have asked hard questions about the .NET Framework will find that this behind-the-scenes look at the .NET nucleus provides them with excellent resources from which they can extract answers.

by Ted Neward

Server-Based Java Programming Buy from Amazon
List Price: $49.95
Price: $37.89
You Save: $12.06 (24%)
  • Demonstrates how to take full advantage of Java's power on servers by using current technologies such as Java Servlets, Java Web server, and JNDI.