Cover Image For CoffeeScript...

CoffeeScript: Accelerated JavaScript Development

CoffeeScript is JavaScript done right. It provides all of JavaScript’s functionality wrapped in a cleaner, more succinct syntax. In the first book on this exciting new language, CoffeeScript guru Trevor Burnham shows you how to hold onto all the power and flexibility of JavaScript while writing clearer, cleaner, and safer code.

Cover Image For Code in the Cloud...

Code in the Cloud: Programming Google AppEngine

Join the next wave of Web 2.0 software development in the cloud! Cloud applications are the next big shift in application development: instead of building single-user applications to run on a personal computer, new applications are being built as multi-user services that run in data centers around the world. One of the most exciting new environments for building services in the cloud is Google’s AppEngine. AppEngine is a powerful, easy-to-use framework for developing cloud-based services. This book will teach you what you need to make the shift to cloud development using AppEngine.

Cover Image For Arduino...

Arduino: A Quick-Start Guide

Arduino is an open-source platform that makes DIY electronics projects easier than ever. Readers with no electronics experience can create their first gadgets within a few minutes. This book is up-to-date for the new Arduino Uno board, with step-by-step instructions for building a universal remote, a motion-sensing game controller, and many other fun, useful projects.

See photos of projects built by our readers over on Flickr. (And if you have photos of your project, please send them to support@pragprog.com).

Hi resolution images from the book are also on Flickr, arranged by chapter.

Cover Image For HTML5 and CSS3...

HTML5 and CSS3: Develop with Tomorrow's Standards Today

HTML5 and CSS3 are the future of web development, but you don’t have to wait to start using them. Even though the specification is still in development, many modern browsers and mobile devices already support HTML5 and CSS3. This book gets you up to speed on the new HTML5 elements and CSS3 features you can use right now, and backwards compatible solutions ensure that you don’t leave users of older browsers behind.

Cover Image For Pragmatic Guide to Git...

Pragmatic Guide to Git

Need to learn how to wrap your head around Git, but don’t need a lot of hand holding? Grab this book if you’re new to Git, not to the world of programming. Git tasks displayed on two-page spreads provide all the context you need, without the extra fluff.

NEW: Part of the new Pragmatic Guide series

Cover Image For Pragmatic Guide to JavaScript...

Pragmatic Guide to JavaScript

JavaScript is everywhere. It’s a key component of today’s Web—a powerful, dynamic language with a rich ecosystem of professional-grade development tools, infrastructures, frameworks, and toolkits. This book will get you up to speed quickly and painlessly with the 35 key JavaScript tasks you need to know.

NEW: Part of the new Pragmatic Guide series

Cover Image For Pragmatic Guide to Subversion...

Pragmatic Guide to Subversion

Subversion is the most popular open-source version control system on the planet. Development teams-big and small, enterprise and open source-use this fast, feature-rich tool daily. Pragmatic Guide to Subversion presents the 48 essential tasks you need to know. It’s your shortcut to the Subversion master’s recommended set of best practices. With this book, you can get to the good parts quickly, and be more productive and effective.

NEW: Part of the new Pragmatic Guide series

Cover Image For Test Driven Development...

Test Driven Development

Test-driven development (TDD) is a programming technique that reverses the usual sequence of coding and testing. By writing tests just in advance of the code needed to satisfy them, programmers:

  • Work with confidence
  • Work on a series of achievable steps instead of tackling a big problem all at once
  • Ensure that software design meets the need of the actual code
  • Leave behind a suite of tests to help preserve the integrity of the code

Cover Image For Source Control Made Easy...

Source Control Made Easy

Git has significantly changed the way teams develop software. Its distributed nature and lightweight branching and merging have made it possible for developers to massage their code bases in ways they couldn’t have imagined before. However, Git has a reputation for being hard to learn. And when folks transition to Git, they often settle for using a handful of commands and treat Git just like their other source control system. But because of its different approach to source control issues, many of the techniques and terminology we have learned in other source control systems do not translate cleanly when using Git. To begin to use Git effectively, you need to understand the underlying concepts.

In this 49-minute screencast you’ll learn Git in a different way: By not learning about Git itself. Instead, Jim Weirich takes you on a journey of how you might design and build a source control system from scratch. Along the way you’ll gain a deeper understanding of the first principles behind Git so things begin to make more sense.

This screencast is for people who haven’t used Git yet and are thinking about it, and for people who have just started using Git, but are still in the “magic incantation” stage of learning. It’s a great introduction to source control for your manager, too! No prior experience with Git or source control systems is required.

Cover Image For Modular Java...

Modular Java: Creating Flexible Applications with OSGi and Spring

Attack complexity in your Java applications using Modular Java. This pragmatic guide introduces you to OSGi and Spring Dynamic Modules, two of the most compelling frameworks for Java modularization. Driven by real-world examples, this book will equip you with the know-how you need to develop Java applications that are composed of smaller, loosely coupled, highly cohesive modules.


This second reprinting of Modular Java has been revised to include updated information on OSGi Blueprint Services. It also details Pax-Runner’s new profiles feature that makes loading an OSGi runtime with bundles even easier, along with errata fixes and updates to bring the book up to date with current versions of the tools used.

Cover Image For Pragmatic Version Control Using Git...

Pragmatic Version Control Using Git

There’s a change in the air. High-profile projects such as the Linux Kernel, Mozilla, Gnome, and Ruby on Rails are now using Distributed Version Control Systems (DVCS) instead of the old stand-bys of CVS or Subversion.

Git is a modern, fast DVCS. But understanding how it fits into your development can be a daunting task without an introduction to the new concepts. Whether you’re just starting out as a professional programmer or are an old hand, this book will get you started using Git in this new distributed world.

Cover Image For Insider Guide to GitHub...

Insider Guide to GitHub

GitHub is where the action’s at: you can host your public and private projects there, use it to collaborate on projects in a truly distributed way, and expand your social coding network. But to really get the most out of this great resource, you need an experienced guide to show you the ropes. Learn how the pros use GitHub from Scott Chacon, a long-time Git user and GitHub insider.

Cover Image For Mastering Dojo...

Mastering Dojo: JavaScript and Ajax Tools for Great Web Experiences

Imagine a true thin-client web application environment, with no browser incompatibilities, no plugins, and an interface that’s closer to a desktop app. You can have it all, today. Welcome to The Dojo Toolkit.

Mastering Dojo walks you through the whole range of modern web programming problems, from bringing simple web pages to life with widgets and animation, to designing and building an enterprise-class, single-page Rich Internet Application (RIA).

Are your web pages becoming more and more complex, with hundreds of lines of sprawling JavaScript as clients demand modern Ajax designs? Or maybe you’re about to enter the new world of single-page, Rich Internet Applications? Dojo is the unified toolkit that you need to get the job done.

VERSIONS: Applicable for Dojo Versions 1.1 to 1.7. Versions 1.2 onward contain additional widgets, experimental api’s and bugfixes. Please see the Dojorelease notes for detailed information.

Cover Image For Using memcached...

Using memcached: How to scale your website easily

memcached is a high-performance, distributed memory object caching system, used to speed up dynamic web applications.

memcached was developed to enhance the speed of LiveJournal.com’s one million users with 20 million dynamic page views per day, providing faster page load times for users and better resource utilization.

Cover Image For Prototype and script.aculo.us...

Prototype and script.aculo.us: You Never Knew JavaScript Could Do This!

Tired of getting swamped in the nitty-gritty of cross-browser, Web 2.0-grade JavaScript? Get back in the game with Prototype and script.aculo.us, two extremely popular JavaScript libraries, that make it a walk in the park. Be it AJAX, drag and drop, auto-completion, advanced visual effects, or many other great features, all you need is to write one or two lines of script that look so good they could almost pass for Ruby code!

Cover Image For GIS for Web Developers...

GIS for Web Developers: Adding Where to Your Web Applications

There is a hidden revolution going on: geography is moving from niche to the mainstream. GIS for Web Developers introduces Geographic Information Systems (GIS) in simple terms and demonstrates hands-on uses. With this book, you’ll explore popular websites like maps.google.com, see the technologies they use, and learn how to create your own. Written with the usual Pragmatic Bookshelf humor and real-world experience, GIS for Web Developers makes geographic programming concepts accessible to the common developer.

Cover Image For Pragmatic Unit Testing in C# with NUnit...

Pragmatic Unit Testing in C# with NUnit (2nd edition)

Pragmatic programmers use feedback to drive their development and personal processes. The most valuable feedback you can get while coding comes from unit testing. Now in it’s second edition, Pragmatic Unit Testing in C# with NUnit, 2nd Ed. will show you how to do software unit testing, of course, but more importantly will show you what to test.

For various technical reasons, the eBook version is a PDF: epub and mobi versions of this title will NOT be available.

Cover Image For Programming Erlang...

Programming Erlang: Software for a Concurrent World

Learn how to write truly concurrent programs—programs that run on dozens or even hundreds of local and remote processors. See how to write high reliability applications—even in the face of network and hardware failure—using the Erlang programming language.

Cover Image For The Definitive ANTLR Reference...

The Definitive ANTLR Reference: Building Domain-Specific Languages

ANTLR v3 is the most powerful, easy-to-use parser generator built to date, and represents the culmination of more than 15 years of research by Terence Parr. This book is the essential reference guide to using this completely rebuilt version of ANTLR, with its amazing new LL(*) parsing technology, tree construction facilities, StringTemplate code generation template engine, and sophisticated ANTLRWorks GUI development environment. Learn to use ANTLR directly from the author!

Cover Image For Release It!...

Release It!: Design and Deploy Production-Ready Software

Jolt Productivity award “Feature complete” is not the same as “production ready.”

Whether it’s in Java, .NET, or Ruby on Rails, getting your application ready to ship is only half the battle. Did you design your system to survive a sudden rush of visitors from Digg or Slashdot? Or an influx of real world customers from 100 different countries? Are you ready for a world filled with flakey networks, tangled databases, and impatient users?

If you’re a developer and don’t want to be on call at 3AM for the rest of your life, this book will help you.

Cover Image For TextMate...

TextMate: Power Editing for the Mac

TextMate is a powerful tool for programmers, web designers, and anyone else who regularly needs to work with text files on Mac OS X. TextMate focuses on pragmatic automation, which means it will save you time—time that’s always in short supply. See how your lowly text editor can become a hard working member of your staff.

Cover Image For Google Maps API...

Google Maps API (2nd edition): Adding Where to Your Applications

This is the second edition of this Friday, which has been rewritten to use the Google Maps V2 API.

Cover Image For Pragmatic Version Control using Subversion...

Pragmatic Version Control using Subversion (2nd edition)

Revised content to reflect all the major changes to Subversion 1.3 New chapter on Subversion’s optional file locking to help you manage unmergeable binary files New sections covering path-based security for both the svnserve and Apache networking servers New advanced topics chapter covering programmatic access to Subversion and advanced repository management

Cover Image For Ship It!...

Ship It!: A Practical Guide to Successful Software Projects

Many software projects run into trouble, and many never ship at all. Others run like well-oiled machines. This book shows you the basics of how to get your project well on the road to success.

Ship It! bucks current fashion trends and marketing hype; instead, you’ll find page after page of solid advice, all tried and tested in the real world: a collection of tips that show you what tools a successful team has to use, and how to use them well. You’ll get quick, easy-to-follow advice on modern techniques and when they should be applied.

Cover Image For Pragmatic Project Automation...

Pragmatic Project Automation: How to Build, Deploy, and Monitor Java Applications

Pragmatic Project Automation shows you how to improve the consistency and repeatability of your project’s procedures using automation to reduce risk and errors.

Simply put, we’re going to put this thing called a computer to work for you doing the mundane (but important) project stuff. That means you’ll have more time and energy to do the really exciting—and difficult—stuff, like writing quality code.