Central Ohio Software Symposium

June 25 - 27, 2010 - Columbus, OH


Crowne Plaza Columbus North
6500 Doubletree Avenue
Columbus, OH   43229
Map »

NOTE: You are viewing details about a past event. We will be back in ColumbusJune 7 - 9, 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

The Busy Java Developer's Guide to Collections

For so many Java developers, the java.util.* package consists of List, ArrayList, and maybe Map and HashMap. But the Collections classes are so much more powerful than many of us are led to believe, and all it requires is a small amount of digging and some simple exploration to begin to "get" the real power of the Collection classes.

In this presentation, Java developers will see the basic breakdown of the Collection API designs, the relationship of the interfaces to the implementations, how to create a new Collection implementation, and how the new Collections introduced as part of JSR-166 (the concurrency JSR) and Java6 make their programming lives easier.

The Busy Java Developer's Guide to Functional Java

Much noise has been made in recent years about functional languages, like Scala or Haskell, and their benefits relative to object-oriented languages, most notably Java. Unfortunately, as wonderful as many of those benefits are, the fact remains that most Java developers will either not want or not be able to adopt those languages for writing day-to-day code. Which leaves us with a basic question: if I can't use these functional languages to write production code, is there any advantage to learning about them? The short answer is yes, for the fundamental premise--"I can't use functional code on my Java project"--is flawed. Java developers can, in fact, make use of functional ideas, and what's better, they don't even have to reinvent them for Java--thanks to the FunctionalJava library, many of the core primitives--interfaces that serve as base types for creating function values, for example--already exist, ready to be used.

In this presentation, we'll go over some basic functional concepts, then start seeing how they apply in the FJ library, and show how to use FJ and functional ideas on common Java programming tasks. Let the excuse "I can only use Java" finally be consigned to the rubbish bin, once and for all.

Busy Java Developer's Guide to Advanced Collections

Once you've learned the core Collections clases, you're done, right? You know everything there is to know about Collections, and you can "check that off" your list of Java packages you have to learn and know, right?

In this presentation, we'll go over what's missing from the Java Collections library, what is provided via other sources (Google and Apache, among others), and what you can provide for yourself, including a brief foray into the world of functional programing, and how it can make your Java code more elegant.

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.