Pacific Northwest Software Symposium

September 6 - 8, 2013

Stuart Halloway

Stuart Halloway

President of Cognitect

Stuart Halloway is a founder and President of Cognitect, Inc. (www.cognitect.com). He is a Clojure committer, and a developer of the Datomic database.

Stuart has spoken at a variety of industry events, including StrangeLoop, Clojure/conj, EuroClojure, ClojureWest, SpeakerConf, QCon, GOTO, OSCON, RailsConf, RubyConf, JavaOne, and NFJS.

Stuart has written a number of books and technical articles. Of these, he is most proud of Programming Clojure.

Learn more about Stu's presentations on his wiki.

Presentations

Sun 9:00 AM Simulation Testing with Simulant
Sun 11:00 AM Generative Testing
Sun 2:15 PM Introduction to Clojure
Sun 4:00 PM Get Logical with Datalog

BOOKS

Programming Clojure

If you want to keep up with the significant changes in this important language, you need the second edition of Programming Clojure. Stu and Aaron describe the modifications to the numerics system in Clojure 1.3, explain new Clojure concepts such as Protocols and Datatypes, and teach you how to think in Clojure.

Programming Clojure, 2nd Edition is a significant update to the classic book on the Clojure language. You'll get thorough coverage of all the new features of Clojure 1.3, and enjoy reorganized and rewritten chapters that reflect the significance of new Clojure concepts. Many code examples have been rewritten or replaced, and every page has been reevaluated in the light of Clojure 1.3.

As Aaron and Stu show you how to build an application from scratch, you'll get a rich view into a complete Clojure workflow. And you'll get an invaluable education in thinking in Clojure as you work out solutions to the various parts of a problem.

Clojure is becoming the language of choice for many who are moving to functional programming or dealing with the challenges of concurrency. Clojure offers:

The simplicity of an elegantly designed language

The power of Lisp

The virtues of concurrency and functional style

The reach of the JVM

The speed of hand-written Java code

It's the combination of these features that makes Clojure sparkle. Programming Clojure, 2nd Edition shows you how to think in Clojure, and to take advantage of these combined strengths to build powerful programs quickly.

What You Need:

Oracle JDK 6

A text editor

Programming Clojure (Pragmatic Programmers)

Clojure is a dynamic language for the Java Virtual Machine, with a compelling combination of features:

Clojure is elegant. Clojure's clean, careful design lets you write programs that get right to the essence of a problem, without a lot of clutter and ceremony.

Clojure is Lisp reloaded. Clojure has the power inherent in Lisp, but is not constrained by the history of Lisp.

Clojure is a functional language. Data structures are immutable, and functions tend to be side-effect free. This makes it easier to write correct programs, and to compose large programs from smaller ones.

Clojure is concurrent. Rather than error-prone locking, Clojure provides software transactional memory.

Clojure embraces Java. Calling from Clojure to Java is direct, and goes through no translation layer.

Clojure is fast. Wherever you need it, you can get the exact same performance that you could get from hand-written Java code.

Many other languages offer some of these features, but the combination of them all makes Clojure sparkle. Programming Clojure shows you why these features are so important, and how you can use Clojure to build powerful programs quickly.

Rails for Java Developers

Many Java developers are now looking at Ruby, and the Ruby on Rails web framework. If you are one of them, this book is your guide. Written by experienced developers who love both Java and Ruby, this book will show you, via detailed comparisons and commentary, how to translate your hard-earned Java knowledge and skills into the world of Ruby and Rails.

If you are a Java programmer, you shouldn't have to start at the very beginning! You already have deep experience with the design issues that inspired Rails, and can use this background to quickly learn Ruby and Rails. But Ruby looks a lot different from Java, and some of those differences support powerful abstractions that Java lacks. We'll be your guides to this new, but not strange, territory.

In each chapter, we build a series of parallel examples to demonstrate some facet of web development. Because the Rails examples sit next to Java examples, you can start this book in the middle, or anywhere else you want. You can use the Java version of the code, plus the analysis, to quickly grok what the Rails version is doing. We have carefully cross-referenced and indexed the book to facilitate jumping around as you need to.

Thanks to your background in Java, this one short book can cover a half-dozen books' worth of ideas:

  • Programming Ruby
  • Building MVC (Model/View/Controller) Applications
  • Unit and Functional Testing
  • Security
  • Project Automation
  • Configuration
  • Web Services
  • Component Development for the Java┬┐ Platform

    Java solves certain complex problems that most languages leave to the operating system. This text shows how to use some of the most exciting and powerful of these parts, with design considerations and programming scenarios, and reveals the subtle yet serious potential pitfalls.