Greetings!

We’ve got a couple of announcements this week: Programming Clojure is now in early Beta, Stripes …and Java web development is fun again is now in print and shipping, new episodes finish off the Expression Engine screencast series, and there’s a new podcast on Apple’s Core Data with Marcus Zarra.

Programming Clojure, now in Beta

If you’re a Java programmer, if you care about concurrency, or if you enjoy working in low-ceremony language such as Ruby or Python, Programming Clojure is for you.

Clojure is a general-purpose language with direct support for Java, a modern Lisp dialect, and support in both the language and data structures for functional programming. Programming Clojure shows you how to write applications that have the beauty and elegance of a good scripting language, the power and reach of the JVM, and a modern, concurrency-safe functional style. Now you can write beautiful code that runs fast and scales well.

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.

Beta now available at pragprog.com/titles/shcloj

Stripes is now in print

Tired of complicated Java web frameworks that just get in your way? Stripes is a lightweight, practical framework that lets you write lean and mean code without a bunch of XML configuration files. Stripes is designed to do a lot of the common work for you, while being flexible enough to adapt to your requirements.

Stripes! ...and Java web development is fun again will show you how to use Stripes to its full potential, so that you can easily develop professional, full-featured web applications. As a bonus, you’ll also get expert advice from the creator of Stripes, Tim Fennell.

As a Java developer, you want to leverage your knowledge and the wealth of Java libraries and tools. But when it comes to web development, many frameworks seem over-engineered and too complex. They have a steep learning curve, and it’s just too difficult to get them to do exactly what you need because of their “closed-box” design.

Stripes brings simplicity back to Java web development. You’ll be up and running in minutes, and can go a long way with just a few simple concepts. You’ll spend your time developing your application, not maintaining gobs of configuration. Because Stripes is very transparent, you will understand exactly what is going on from request to response.

The popularity of Stripes keeps increasing because of its clean design and extensibility. With this complete tutorial and reference, you can master Stripes and take advantage of its productivity in web application development. You’ll tailor the framework to your requirements, not the other way around!

This book is packed with explanations and examples so that you learn practical problem-solving techniques. You’ll be able to “wrap your head around the framework” and fully understand how Stripes works. Because of its open design, Stripes lets you easily integrate your favorite tools: tag libraries, AJAX frameworks, ORM solutions, dependency injectors, and more.

When your customer requests a feature, you’ll answer “yes” with confidence because you’re using a framework that lets you get the results that you need without getting in your way.

Now in print and shipping from pragprog.com/titles/fdstr

Expression Engine final screencast episodes

Episode 11: Optimizing a Site With Caching

We’ll improve the performance of an ExpressionEngine website using the built-in caching functionality. You’ll learn how to:

  • use four different caching methods available in EE: Query Caching, Dynamic Weblog Query Caching, Template Caching, and Tag Caching
  • use Query Disabling to cut down on unneeded database queries
  • implement all of the caching methods to realize improved site performance and faster page loads

Episode 12: Preparing a Site for Clients

In this final episode, we’ll learn how to get ExpressionEngine ready for client access. We’ll tweak and customize EE to create an ideal client experience when managing their website. You’ll learn how to:

  • customize the control panel using built-in options and EE add-ons
  • create a simple publishing workflow using member groups and custom statuses
  • make it easy to edit content in entries or global variables from the front-end of the website
  • clean up and improve the Publish page
  • create and update client documentation using EE

Now available at pragprog.com/screencasts/v-riexp

Apple’s Core Data with Marcus Zarra

Join Marcus Zarra as he talks about Core Data: just as Interface Builder made GUI’s much easier, Core Data makes managing an application’s data much easier. Marcus explains how, and discusses Core Data’s advantages as well as hints and tips to getting the most out of it. Available on pragprog.com/podcasts and on iTunes.

Coming Soon:

Recently Released:

Thanks for your continued support,

Dave & Andy
www.PragProg.com