The Pragmatic Bookshelf
By programmers for programmers
Beta Books
Agile Coaching
Discover how to coach your team to become more Agile. Agile Coaching de-mystifies agile practices—it’s a practical guide to creating strong agile teams. Packed with useful tips from practicing agile coaches Rachel Davies and Liz Sedley, this book gives you coaching tools that you can apply whether you are a project manager, a technical lead, or working in a software team.
Cocoa Programming
Apple’s Cocoa frameworks let you write powerful and attractive applications for Mac OS X or the iPhone. With this book plus your existing knowledge of object-oriented programming you can take advantage of Cocoa and create compelling, feature rich, compliant Mac applications for this industry-leading environment.
- If you need a jump start using Xcode (the IDE used for Mac OS X programming), have a look at Mike Clark’s two-part screencast series.
Core Data
Learn the Apple Core Data APIs from the ground up. You can concentrate on designing the model for your application, and use the power of Core Data to do the rest. This book will take you from beginning with Core Data through to expert level configurations that you will not find anywhere else. Learn why you should be using Core Data for your next Cocoa project, and how to use it most effectively.
Debug It!
Some developers thrash around aimlessly looking for a bug without concrete results. Others have the knack of unerringly zeroing in on the root cause of a bug. Are they geniuses? Just lucky? No, they’ve learned the secrets of professional debugging. This book will equip you with the tools, techniques and approaches-proven in the crucible of professional software development-to ensure that you can tackle any bug with confidence.
You’ll learn how to handle every stage of the bug life-cycle, from constructing software that makes debugging easy, through detection, reproduction, diagnosis and rolling out your eventual fix.
Domain-Driven Design Using Naked Objects
Domain-driven design (DDD) focuses on what matters in enterprise applications: the core business domain. But applying the DDD principles can be easier said than done. Enter Naked Objects: an open-source Java framework that lets you build working applications simply by writing the core domain classes while Naked Objects takes care of the rest of the application infrastructure for you. This book shows how you can rapidly develop and test domain applications, and then deploy to either conventional architectures or onto Naked Objects itself. Get ready to write some of the best business software of your career.
Grails
Java web development is notoriously tedious, but help is on the way: Grails. Using the principle of convention-over-configuration and the dynamic Groovy programming language, Grails takes the pain out of web development and brings back the fun. This book will get you up and running with Grails by putting it to use in constructing an original, working application from start to finish.
iPhone SDK Development
Jump into application development for today’s most remarkable mobile communications platform, the Pragmatic way, with iPhone SDK Development. This Pragmatic guide takes you through the tools and APIs, the same ones Apple uses for its applications, that you can use to create your own software for the iPhone and iPod touch. Packed with useful examples, this book will give you both the big-picture concepts and the everyday “gotcha” details that developers need to make the most of the beauty and power of the iPhone OS platform.
- If you need a jump start using Xcode (the IDE used for iPhone development), have a look at Mike Clark’s two-part screencast series.
- Be sure to also check out our iPhone Screencast Series for 3 hours of guided instruction! You can get started with the free Getting Started with Xcode and Interface Builder episode.
Language Design Patterns
Learn to build configuration file readers, data readers, model-driven code generators, source-to-source translators, source analyzers, and interpreters. You don’t need a background in computer science—ANTLR creator Terence Parr demystifies language implementation by breaking it down into the most common design patterns. Pattern by pattern, you’ll learn the key skills you need to implement your own computer languages.
Manage Your Project Portfolio
Too many projects? Want to organize them and evaluate them without getting buried under a mountain of statistics? This book will help you collect all your work, decide which projects you should do first, second—and never. You’ll see how to tie your work to your organization’s mission and show your board, your managers, and your staff what you can accomplish and when. You’ll get a better view of the work you have, and learn how to make those difficult decisions, ensuring that all your strength is focused where it needs to be.
Programming Cocoa with Ruby
Programming Cocoa with Ruby brings together two enthusiastic development communities. Ruby programmers will tell you how productive they are with just the right amount of code. Cocoa developers know the importance of a clean, intuitive interface.
Now, through Programming Cocoa with Ruby, the joy of Cocoa meets the joy of Ruby.
Programming Scala
Scala is an exciting, modern, multi-paradigm language for the JVM. You can use it to write traditional, imperative, object-oriented code. But you can also leverage its higher level of abstraction to take full advantage of modern, multicore systems. Programming Scala will show you how to use this powerful functional programming language to create highly scalable, highly concurrent applications on the Java Platform.
The RSpec Book
Is your team trying to do TDD and failing? Are you finding your test suites bloated and difficult to read, understand, or maintain? Business applications today are plagued with features that are never used, highly coupled code that is hard to change, and expensive test suites that aren’t run any more because they are brittle and unreadable.
RSpec, Ruby’s leading Behaviour Driven Development tool, helps you do TDD right by embracing the design and documentation aspects of TDD. It encourages readable, maintainable suites of code examples that not only test your code, they document it as well. The RSpec Book will teach you how to use RSpec, Cucumber, and other Ruby tools to develop truly agile software that gets you to market quickly and maintains its value as evolving market trends drive new requirements.
The Seed of Hope
Charlie and Gideon have grown up under the shadow of the mighty Talent Tree, which towers majestically over the small seaside town of Devon Grove. They’ve waited their entire 13 years for that one special day when those born in Devon Grove would stand under the great tree, catch one of its magical apples, and receive their own amazing talents. That day has finally come.
But then everything goes horribly wrong.
Web Design for Developers
Web Design for Developers will show you how to make your web-based application look professionally designed. We’ll help you learn how to pick the right colors and fonts, avoid costly interface and accessibility mistakes—your application will really come alive. We’ll also walk you through some common Photoshop and CSS techniques and work through a web site redesign, taking a new design from concept all the way to implementation.
Career Development
Practices of an Agile Developer
Want to be a better developer? This book collects the personal habits, ideas, and approaches of successful agile software developers and presents them in a series of short, easy-to-digest tips.
You’ll learn how to improve your software development process, see what real agile practices feel like, avoid the common temptations that kill projects, and keep agile practices in balance.
Behind Closed Doors
Great management is difficult to see as it occurs. Great management happens in one-on-one meetings and with other managers—all in private. It’s hard to learn management by example when you can’t see it.
Find out what goes on Behind Closed Doors and see how a skilled manager turns around a tricky management situation in seven weeks. You’ll learn how to provide and use feedback effectively, and become a better coach and mentor peers and team members. As you begin to build a cohesive, “jelled” team you’ll learn how to use your influence across the organization and make better choices daily to survive and thrive.
Pragmatic Thinking and Learning
Software development happens in your head. Not in an editor, IDE, or design tool. You’re well educated on how to work with software and hardware, but what about wetware—our own brains? Learning new skills and new technology is critical to your career, and it’s all in your head.
In this book by Andy Hunt, you’ll learn how our brains are wired, and how to take advantage of your brain’s architecture. You’ll learn new tricks and tips to learn more, faster, and retain more of what you learn.
You need a pragmatic approach to thinking and learning. You need to Refactor Your Wetware.
The Pragmatic Programmer
Straight from the programming trenches, The Pragmatic Programmer: From Journeyman to Master cuts through the increasing specialization and technicalities of modern software development to examine the core process—what do you do, as an individual and as a team, if you want to create software that’s easy to work with and good for your users.
This is the title that got us started in the book business. It’s published by Addison-Wesley, but we’re offering for sale here simply because people come looking for it.
Enjoy!
Dave & Andy
Manage Your Project Portfolio
Too many projects? Want to organize them and evaluate them without getting buried under a mountain of statistics? This book will help you collect all your work, decide which projects you should do first, second—and never. You’ll see how to tie your work to your organization’s mission and show your board, your managers, and your staff what you can accomplish and when. You’ll get a better view of the work you have, and learn how to make those difficult decisions, ensuring that all your strength is focused where it needs to be.
The Passionate Programmer
This book is about creating a remarkable career in software development. In most cases, remarkable careers don’t come by chance. They require thought, intention, action, and a willingness to change course when you’ve made mistakes. Most of us have been stumbling around letting our careers take us where they may. It’s time to take control. This revised and updated second edition lays out a strategy for planning and creating a radically successful life in software development (the first edition was released as My Job Went to India: 52 Ways To Save Your Job).
Land the Tech Job You Love
You’ve got the technical chops—the skills to get a great job doing what you love. Now it’s time to get down to the business of planning your job search, focusing your time and attention on the job leads that matter, and interviewing to wow your boss-to-be. Land the tech job you love.
Agile Coaching
Discover how to coach your team to become more Agile. Agile Coaching de-mystifies agile practices—it’s a practical guide to creating strong agile teams. Packed with useful tips from practicing agile coaches Rachel Davies and Liz Sedley, this book gives you coaching tools that you can apply whether you are a project manager, a technical lead, or working in a software team.
Design and Testing
Interface Oriented Design
Learn by pragmatic example how to create effective designs composed of interfaces to objects, components and services.
You’ll learn what polymorphism and encapsulation really mean, and how to use these ideas more effectively. See how to create better interfaces using agile development techniques, and learn the subtle differences between implementing an interface and inheriting an implementation. Take a fresh, modern view of Design By Contract and class responsibilities. Understand the basis of a service-oriented architecture, including stateful versus stateless interfaces, procedural versus document models, and synchronous versus asynchronous invocations.
Design Accessible Web Sites
“Accessibility” has a reputation of being dull, dry, and unfriendly toward graphic design. But there is a better way: well-styled semantic markup that lets you provide the best possible results for all of your users. This book will help you provide images, video, Flash and PDF in an accessible way that looks great to your sighted users, but is still accessible to all users.
Release It!
![]() |
“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. |
Everyday Scripting with Ruby
Are you a tester who spends more time manually creating complex test data than using it? A business analyst who seemingly went to college all those years so you can spend your days copying data from reports into spreadsheets? A programmer who can’t finish each day’s task without having to scan through version control system output, looking for the file you want?
If so, you’re wasting that computer on your desk. Offload the drudgery to where it belongs, and free yourself to do what you should be doing: thinking. All you need is a scripting language (free!), this book (cheap!), and the dedication to work through the examples and exercises.
Deploying Rails Applications
Until now, the information you needed to deploy a Ruby on Rails application in a production environment has been fragmented and contradictory. This book changes all of that by providing consistent, levelheaded advice you can trust. You’ll get the inside angle from those that have built, deployed, and maintained some of the largest Rails apps in production, anywhere.
Scripted GUI Testing with Ruby
If you need to automatically test a user interface, this book is for you. Whether it’s Windows, a Java platform (including Mac, Linux, and others) or a web app, you’ll see how to test it reliably and repeatably.
Many automated test frameworks promise the world and deliver nothing but headaches. Fortunately, you’ve got a secret weapon: Ruby. Ruby lets you build up a solution to fit your problem, rather than forcing your problem to fit into someone else’s idea of testing.
This book is for people who want to get their hands dirty on examples from the real world—and who know that testing can be a joy when the tools don’t get in the way. It starts with the mechanics of simulating button pushes and keystrokes, and builds up to writing clear code, organizing tests, and beyond.
Debug It!
Some developers thrash around aimlessly looking for a bug without concrete results. Others have the knack of unerringly zeroing in on the root cause of a bug. Are they geniuses? Just lucky? No, they’ve learned the secrets of professional debugging. This book will equip you with the tools, techniques and approaches-proven in the crucible of professional software development-to ensure that you can tackle any bug with confidence.
You’ll learn how to handle every stage of the bug life-cycle, from constructing software that makes debugging easy, through detection, reproduction, diagnosis and rolling out your eventual fix.
The RSpec Book
Is your team trying to do TDD and failing? Are you finding your test suites bloated and difficult to read, understand, or maintain? Business applications today are plagued with features that are never used, highly coupled code that is hard to change, and expensive test suites that aren’t run any more because they are brittle and unreadable.
RSpec, Ruby’s leading Behaviour Driven Development tool, helps you do TDD right by embracing the design and documentation aspects of TDD. It encourages readable, maintainable suites of code examples that not only test your code, they document it as well. The RSpec Book will teach you how to use RSpec, Cucumber, and other Ruby tools to develop truly agile software that gets you to market quickly and maintains its value as evolving market trends drive new requirements.
Domain-Driven Design Using Naked Objects
Domain-driven design (DDD) focuses on what matters in enterprise applications: the core business domain. But applying the DDD principles can be easier said than done. Enter Naked Objects: an open-source Java framework that lets you build working applications simply by writing the core domain classes while Naked Objects takes care of the rest of the application infrastructure for you. This book shows how you can rapidly develop and test domain applications, and then deploy to either conventional architectures or onto Naked Objects itself. Get ready to write some of the best business software of your career.
Language Design Patterns
Learn to build configuration file readers, data readers, model-driven code generators, source-to-source translators, source analyzers, and interpreters. You don’t need a background in computer science—ANTLR creator Terence Parr demystifies language implementation by breaking it down into the most common design patterns. Pattern by pattern, you’ll learn the key skills you need to implement your own computer languages.
Facets of Ruby
Enterprise Integration with Ruby
Learn how the power and elegance of Ruby can make it easier to get enterprise-level applications to work together. See how Ruby can be used as the glue to combine applications in new ways, extending their lives and increasing their (and your) value to your company.
From Java To Ruby
You want your development team to be productive. You want to write flexible, maintainable web applications. You want to use Ruby and Rails. But can you justify the move away from established platforms such as J2EE? Bruce Tate’s From Java to Ruby has the answers, and it expresses them in a language that’ll help persuade managers and executives who’ve seen it all. See when and where the switch makes sense, and see how to make it.
Best of Ruby Quiz
Sharpen your Ruby programming skills with twenty-five challenging problems from Ruby Quiz. Read the problems, work out a solution, and compare your solution with others. This book is a collection of highlights from the first year of Ruby Quiz challenges. Inside, you will find expanded content, all new solutions, and more in depth discussions of Ruby Quiz problems and solutions. This is the book for anyone who really wants to improve their Ruby skills.
Rapid GUI Development with QtRuby
See how to use the powerful Qt3 library to create cross-platform GUI applications for Linux and OS X in Ruby.
Programming Ruby
The Pickaxe book, named for the tool on the cover, is the definitive reference to Ruby, a highly-regarded, fully object-oriented programming language. This Second Edition has more than 200 pages of new content, and substantial enhancements to the original, covering all the new and improved language features of Ruby 1.8 and standard library modules.
What Version of Ruby are You Using?
Ruby is in a period of transition. 2009 saw the release of Ruby 1.9.1, the next generation of the language. Ruby 1.9 has many enhancements and new features that make it the Ruby of choice for new projects. If you want to use Ruby 1.9, then check out our new book Programming Ruby 1.9.
Alternatively, if you want to continue to use Ruby 1.8, then use the book on this page.
Everyday Scripting with Ruby
Are you a tester who spends more time manually creating complex test data than using it? A business analyst who seemingly went to college all those years so you can spend your days copying data from reports into spreadsheets? A programmer who can’t finish each day’s task without having to scan through version control system output, looking for the file you want?
If so, you’re wasting that computer on your desk. Offload the drudgery to where it belongs, and free yourself to do what you should be doing: thinking. All you need is a scripting language (free!), this book (cheap!), and the dedication to work through the examples and exercises.
Payment Processing with Paypal and Ruby
Building a top-notch web site requires a lot of technical expertise. Keeping track of changing requirements and new technologies, not to mention the competition, can keep you on your toes. Processing payments is a small, but important part of a successful site.
Programming Ruby 1.9
Ruby is the fastest growing and most exciting dynamic language out there. If you need to get working programs delivered fast, you should add Ruby to your toolbox.
This book is the only complete reference for Ruby 1.9, the very latest version of Ruby. (If you’re still using Ruby 1.8, you’ll want to check out the original PickAxe.)
For various technical reasons, epub and mobi versions of this title will not be available: the eBook version is a PDF.
Did You Buy the Second Edition of the Original PickAxe from Us?
If you bought the second edition book or PDF from us, we have some significant savings for you. Visit your home page for details.
Scripted GUI Testing with Ruby
If you need to automatically test a user interface, this book is for you. Whether it’s Windows, a Java platform (including Mac, Linux, and others) or a web app, you’ll see how to test it reliably and repeatably.
Many automated test frameworks promise the world and deliver nothing but headaches. Fortunately, you’ve got a secret weapon: Ruby. Ruby lets you build up a solution to fit your problem, rather than forcing your problem to fit into someone else’s idea of testing.
This book is for people who want to get their hands dirty on examples from the real world—and who know that testing can be a joy when the tools don’t get in the way. It starts with the mechanics of simulating button pushes and keystrokes, and builds up to writing clear code, organizing tests, and beyond.
Programming Cocoa with Ruby
Programming Cocoa with Ruby brings together two enthusiastic development communities. Ruby programmers will tell you how productive they are with just the right amount of code. Cocoa developers know the importance of a clean, intuitive interface.
Now, through Programming Cocoa with Ruby, the joy of Cocoa meets the joy of Ruby.
The Ruby Object Model and Metaprogramming
Metaprogramming lets you program more expressively. This makes your code easier to write and easier to maintain and extend. Learn both the hows and whys of metaprogramming Ruby from Dave Thomas, one of the most experienced Ruby programmers in the western world.
Enterprise Recipes with Ruby and Rails
Every web site project is really an enterprise integration project in disguise. Ruby on Rails makes it easier than ever to create complex and good-looking web sites, but there’s plenty of life beyond the rails. The 50+ recipes in this book not only show you how to integrate lurking legacy material using Ruby and Ruby on Rails, but also how to create new and highly functional applications in an enterprise environment. You can build completely new applications by enhancing and combining existing components in creative, compelling new ways.
Learn to Program, 2nd Edition
For this new edition of the best-selling Learn to Program, Chris Pine has taken a good thing and made it even better. First, he used the feedback from hundreds of reader e-mails to update the content and make it even clearer. Second, he updated the examples in the book to use the latest stable version of Ruby, and also to use code that looks more like real-world Ruby code, so that people who have just learned to program will be more familiar with common Ruby techniques.
Not only does the Second Edition now include answers to all of the exercises, it includes them twice. First you’ll find the “how you could do it” answers, using the techniques you’ve learned up to that point in the book. Next you’ll see “how Chris Pine would do it”: answers using more advanced Ruby techniques, to whet your appetite as well as providing sort of a “Rosetta Stone” for more elegant solutions.
The RSpec Book
Is your team trying to do TDD and failing? Are you finding your test suites bloated and difficult to read, understand, or maintain? Business applications today are plagued with features that are never used, highly coupled code that is hard to change, and expensive test suites that aren’t run any more because they are brittle and unreadable.
RSpec, Ruby’s leading Behaviour Driven Development tool, helps you do TDD right by embracing the design and documentation aspects of TDD. It encourages readable, maintainable suites of code examples that not only test your code, they document it as well. The RSpec Book will teach you how to use RSpec, Cucumber, and other Ruby tools to develop truly agile software that gets you to market quickly and maintains its value as evolving market trends drive new requirements.
Fridays
Getting Started with XQuery
If you’re thinking of XML as hard-to-read text files, it’s time to start thinking in terms of XML as content.
This Friday will show you what XQuery is, how it’s different from other approaches, the new possibilities it opens up—and how to harness its power,
Google Maps API, V2
This is the second edition of this Friday, which has been rewritten to use the Google Maps V2 API.
Google Web Toolkit
Google Web Toolkit unifies client and server code into a single application written in one language: Java. GWT lets you create a web application in much the same way as you would create a Swing application—creating visual components, setting up event handlers, debugging, and so forth—all within a familiar IDE.
Payment Processing with Paypal and Ruby
Building a top-notch web site requires a lot of technical expertise. Keeping track of changing requirements and new technologies, not to mention the competition, can keep you on your toes. Processing payments is a small, but important part of a successful site.
Rapid GUI Development with QtRuby
See how to use the powerful Qt3 library to create cross-platform GUI applications for Linux and OS X in Ruby.
Using memcached
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.
Geographic Information Systems
GIS for Web Developers
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.
Google Maps API, V2
This is the second edition of this Friday, which has been rewritten to use the Google Maps V2 API.
Desktop GIS
From Google Maps to iPhone apps, geographic data and visualization is quickly becoming a standard part of life. Desktop GIS shows you how to assemble and use an Open Source GIS toolkit. You’ll find strategies for choosing a platform, selecting the right tools, integration, managing change, and getting support. You’ll get a good introduction to using the many tools available so you can visualize, digitize, and analyze your own mapping data.
iPhone Programming
Core Animation for Mac OS X and the iPhone
Have you seen Apple’s Front Row application and Cover Flow effects? Then you’ve seen Core Animation at work. It’s about making applications that give strong visual feedback through movement and morphing, rather than repainting panels. This comprehensive guide will get you up to speed quickly and take you into the depths of this new technology.
Creating a Compelling User Interface with Core Animation
Core Animation adds that “wow!” factor to your Cocoa and iPhone applications. It’s not just cool, it also improves the user experience to make your application a cut above the rest. Learn how to create an animated and cinematic user interface with Core Animation from Bill Dudney, an experienced Cocoa developer.
iPhone SDK Development
Jump into application development for today’s most remarkable mobile communications platform, the Pragmatic way, with iPhone SDK Development. This Pragmatic guide takes you through the tools and APIs, the same ones Apple uses for its applications, that you can use to create your own software for the iPhone and iPod touch. Packed with useful examples, this book will give you both the big-picture concepts and the everyday “gotcha” details that developers need to make the most of the beauty and power of the iPhone OS platform.
- If you need a jump start using Xcode (the IDE used for iPhone development), have a look at Mike Clark’s two-part screencast series.
- Be sure to also check out our iPhone Screencast Series for 3 hours of guided instruction! You can get started with the free Getting Started with Xcode and Interface Builder episode.
Writing Your First iPhone Application
Now that the iPhone SDK has officially been released and the Apple App Store is open for business, it’s time to write killer mobile applications! To do that, you’ll need to use several powerful (and possibly unfamiliar) tools: Xcode, Interface Builder, Objective-C, and then the iPhone SDK itself. It can all be a little overwhelming at first. Learn how to write your first table-based iPhone application from Bill Dudney, an experienced iPhone developer.
Core Data
Learn the Apple Core Data APIs from the ground up. You can concentrate on designing the model for your application, and use the power of Core Data to do the rest. This book will take you from beginning with Core Data through to expert level configurations that you will not find anywhere else. Learn why you should be using Core Data for your next Cocoa project, and how to use it most effectively.
Coding in Objective-C 2.0
Objective-C is the programming language for writing native iPhone and Mac applications. It’s also the language that Apple uses to build their own applications and frameworks. So, if you know Objective-C, you have a lot of power at your fingertips. But if you’re new to C or object-oriented programming, then Objective-C can seem a little awkward at first. These screencasts by Bill Dudney, an experienced Objective-C programmer, will help you quickly get up to speed on Objective-C 2.0 basics.
Becoming Productive in Xcode
Xcode is the development environment used to create iPhone and Mac applications. There’s a lot you can do with Xcode, and it’s easy to get distracted by all the knobs and levers. But you’re using Xcode for one simple reason: You want to build iPhone or Mac applications as quickly as possible. Whether you’re a new iPhone developer seeing Xcode for the first time, or wish you were more familiar with the shortcuts, these screencasts will make you a more productive (and happier!) Xcode programmer.
Using the Map Kit
Using the new Map Kit framework available in iPhone 3.0, you can embed customized maps within your iPhone application. In this screencast you’ll learn how to build an iPhone application from scratch that displays a map of recent earthquakes, shows custom annotations with callouts, and automatically zooms to a region of interest.
Java / JVM
From Java To Ruby
You want your development team to be productive. You want to write flexible, maintainable web applications. You want to use Ruby and Rails. But can you justify the move away from established platforms such as J2EE? Bruce Tate’s From Java to Ruby has the answers, and it expresses them in a language that’ll help persuade managers and executives who’ve seen it all. See when and where the switch makes sense, and see how to make it.
Pragmatic Unit Testing in Java with JUnit
Pragmatic programmers use feedback to drive their development and personal processes. The most valuable feedback you can get while coding comes from unit testing.
Let your Java code tell you what’s working and what isn’t. You’ll learn how to test using JUnit, but more importantly, you’ll learn what to test.
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.
Programming Groovy
Groovy brings you the best of both worlds: a flexible, highly productive, agile, dynamic language that runs on the rich framework of the Java Platform. Groovy preserves the Java semantics and extends the JDK to give you true dynamic language capabilities⎯programming in Groovy feels like you’re using an augmented Java. Programming Groovy will help you learn and take advantage of the latest version of this rich dynamic language, so you can be a more productive Java Platform developer.
Groovy Recipes
If you’re a busy Java professional who needs quick solutions to everyday problems, then Groovy Recipes is for you. The Groovy language and Grails web framework give you seamless integration with your legacy Java code while adding the flexibility and dynamism of a scripting language and giving you modern, agile, time-saving techniques. Groovy allows you to write code the way you always thought you should—you’ll never look at Java the same way again.
Stripes
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. This book 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.
Programming Scala
Scala is an exciting, modern, multi-paradigm language for the JVM. You can use it to write traditional, imperative, object-oriented code. But you can also leverage its higher level of abstraction to take full advantage of modern, multicore systems. Programming Scala will show you how to use this powerful functional programming language to create highly scalable, highly concurrent applications on the Java Platform.
Modular Java
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.
Grails
Java web development is notoriously tedious, but help is on the way: Grails. Using the principle of convention-over-configuration and the dynamic Groovy programming language, Grails takes the pain out of web development and brings back the fun. This book will get you up and running with Grails by putting it to use in constructing an original, working application from start to finish.
Languages/Frameworks
Programming Erlang
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.
The Definitive ANTLR Reference
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!
Prototype and script.aculo.us
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!
Rails for PHP Developers
Are you a PHP developer interested in the Ruby on Rails framework? Rails for PHP Developers kick-starts your Rails experience by guiding you through learning both Ruby and Rails from a PHP developer’s perspective. Written by developers with deep experience using PHP, Ruby, and Rails, this book leverages your existing knowledge of PHP to learn Rails application development quickly and effectively.
NEW: PHP to Rails reference. See how to write the most common PHP functions in Ruby and Rails. Now online at: railsforphp.com/reference
Google Maps API, V2
This is the second edition of this Friday, which has been rewritten to use the Google Maps V2 API.
Google Web Toolkit
Google Web Toolkit unifies client and server code into a single application written in one language: Java. GWT lets you create a web application in much the same way as you would create a Swing application—creating visual components, setting up event handlers, debugging, and so forth—all within a familiar IDE.
FXRuby
FXRuby is one of the most popular libraries for developing graphical user interface applications in Ruby. This book is the quickest and easiest way to get started developing GUI applications using FXRuby. With a combination of tutorial exercises and focused, technical information, this book goes beyond the basics to equip you with proven, practical knowledge and techniques for developing real-world FXRuby applications. Learn directly from the lead developer of FXRuby and you’ll be writing powerful and sophisticated GUIs in your favorite programming language.
Read an interview with the author and excerpt at InfoQ.com
Programming Ruby 1.9
Ruby is the fastest growing and most exciting dynamic language out there. If you need to get working programs delivered fast, you should add Ruby to your toolbox.
This book is the only complete reference for Ruby 1.9, the very latest version of Ruby. (If you’re still using Ruby 1.8, you’ll want to check out the original PickAxe.)
For various technical reasons, epub and mobi versions of this title will not be available: the eBook version is a PDF.
Did You Buy the Second Edition of the Original PickAxe from Us?
If you bought the second edition book or PDF from us, we have some significant savings for you. Visit your home page for details.
Getting Started with XQuery
If you’re thinking of XML as hard-to-read text files, it’s time to start thinking in terms of XML as content.
This Friday will show you what XQuery is, how it’s different from other approaches, the new possibilities it opens up—and how to harness its power,
Agile Web Development with Rails, Third Edition
Rails just keeps on changing. Rails 2, released in 2008, brings hundreds of improvements, including new support for RESTful applications, new generator options, and so on. And, as importantly, we’ve all learned a lot more about writing Rails applications in the last few years.
So here’s the Third Edition of the Jolt Award winning book that shows you a new approach to web development, updated for Rails 2. Sam Ruby joins the team to add his world-class knowledge of web application development, making this the most up-to-date and authoritative Rails book out there.
Creating a Compelling User Interface with Core Animation
Core Animation adds that “wow!” factor to your Cocoa and iPhone applications. It’s not just cool, it also improves the user experience to make your application a cut above the rest. Learn how to create an animated and cinematic user interface with Core Animation from Bill Dudney, an experienced Cocoa developer.
Everyday Active Record
Active Record models are the foundation of your Rails application. With a well-designed layer of models, your application is solid. You can make business logic changes easier, keep the integrity of your data in check, and better optimize the interaction with your database. Learn how to get the most out of the Active Record from Ryan Bates, one of the most experienced Rails developer (and screencasters) in the community.
Stripes
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. This book 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.
Cocoa Programming
Apple’s Cocoa frameworks let you write powerful and attractive applications for Mac OS X or the iPhone. With this book plus your existing knowledge of object-oriented programming you can take advantage of Cocoa and create compelling, feature rich, compliant Mac applications for this industry-leading environment.
- If you need a jump start using Xcode (the IDE used for Mac OS X programming), have a look at Mike Clark’s two-part screencast series.
Programming Scala
Scala is an exciting, modern, multi-paradigm language for the JVM. You can use it to write traditional, imperative, object-oriented code. But you can also leverage its higher level of abstraction to take full advantage of modern, multicore systems. Programming Scala will show you how to use this powerful functional programming language to create highly scalable, highly concurrent applications on the Java Platform.
Core Animation for Mac OS X and the iPhone
Have you seen Apple’s Front Row application and Cover Flow effects? Then you’ve seen Core Animation at work. It’s about making applications that give strong visual feedback through movement and morphing, rather than repainting panels. This comprehensive guide will get you up to speed quickly and take you into the depths of this new technology.
Mastering Dojo
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.
Developing Facebook Platform Applications with Rails
With more than 60 million users, Facebook provides a captive audience for developers. More than 12,000 Facebook applications have been launched so far: Is yours next? It could be, with this book. You’ll see how to develop Facebook Platform applications quickly, using the popular Ruby on Rails framework. You’ll learn to use Facebook technologies such as FBML and FQL, and you’ll see how to leverage Rails and the Facebook Platform to make your application a success.
Programming Groovy
Groovy brings you the best of both worlds: a flexible, highly productive, agile, dynamic language that runs on the rich framework of the Java Platform. Groovy preserves the Java semantics and extends the JDK to give you true dynamic language capabilities⎯programming in Groovy feels like you’re using an augmented Java. Programming Groovy will help you learn and take advantage of the latest version of this rich dynamic language, so you can be a more productive Java Platform developer.
Groovy Recipes
If you’re a busy Java professional who needs quick solutions to everyday problems, then Groovy Recipes is for you. The Groovy language and Grails web framework give you seamless integration with your legacy Java code while adding the flexibility and dynamism of a scripting language and giving you modern, agile, time-saving techniques. Groovy allows you to write code the way you always thought you should—you’ll never look at Java the same way again.
Core Data
Learn the Apple Core Data APIs from the ground up. You can concentrate on designing the model for your application, and use the power of Core Data to do the rest. This book will take you from beginning with Core Data through to expert level configurations that you will not find anywhere else. Learn why you should be using Core Data for your next Cocoa project, and how to use it most effectively.
Programming Clojure
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.
Mac Programming
Core Animation for Mac OS X and the iPhone
Have you seen Apple’s Front Row application and Cover Flow effects? Then you’ve seen Core Animation at work. It’s about making applications that give strong visual feedback through movement and morphing, rather than repainting panels. This comprehensive guide will get you up to speed quickly and take you into the depths of this new technology.
Programming Cocoa with Ruby
Programming Cocoa with Ruby brings together two enthusiastic development communities. Ruby programmers will tell you how productive they are with just the right amount of code. Cocoa developers know the importance of a clean, intuitive interface.
Now, through Programming Cocoa with Ruby, the joy of Cocoa meets the joy of Ruby.
Cocoa Programming
Apple’s Cocoa frameworks let you write powerful and attractive applications for Mac OS X or the iPhone. With this book plus your existing knowledge of object-oriented programming you can take advantage of Cocoa and create compelling, feature rich, compliant Mac applications for this industry-leading environment.
- If you need a jump start using Xcode (the IDE used for Mac OS X programming), have a look at Mike Clark’s two-part screencast series.
Creating a Compelling User Interface with Core Animation
Core Animation adds that “wow!” factor to your Cocoa and iPhone applications. It’s not just cool, it also improves the user experience to make your application a cut above the rest. Learn how to create an animated and cinematic user interface with Core Animation from Bill Dudney, an experienced Cocoa developer.
iPhone SDK Development
Jump into application development for today’s most remarkable mobile communications platform, the Pragmatic way, with iPhone SDK Development. This Pragmatic guide takes you through the tools and APIs, the same ones Apple uses for its applications, that you can use to create your own software for the iPhone and iPod touch. Packed with useful examples, this book will give you both the big-picture concepts and the everyday “gotcha” details that developers need to make the most of the beauty and power of the iPhone OS platform.
- If you need a jump start using Xcode (the IDE used for iPhone development), have a look at Mike Clark’s two-part screencast series.
- Be sure to also check out our iPhone Screencast Series for 3 hours of guided instruction! You can get started with the free Getting Started with Xcode and Interface Builder episode.
TextMate
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.
Writing Your First iPhone Application
Now that the iPhone SDK has officially been released and the Apple App Store is open for business, it’s time to write killer mobile applications! To do that, you’ll need to use several powerful (and possibly unfamiliar) tools: Xcode, Interface Builder, Objective-C, and then the iPhone SDK itself. It can all be a little overwhelming at first. Learn how to write your first table-based iPhone application from Bill Dudney, an experienced iPhone developer.
Core Data
Learn the Apple Core Data APIs from the ground up. You can concentrate on designing the model for your application, and use the power of Core Data to do the rest. This book will take you from beginning with Core Data through to expert level configurations that you will not find anywhere else. Learn why you should be using Core Data for your next Cocoa project, and how to use it most effectively.
Practices
Practices of an Agile Developer
Want to be a better developer? This book collects the personal habits, ideas, and approaches of successful agile software developers and presents them in a series of short, easy-to-digest tips.
You’ll learn how to improve your software development process, see what real agile practices feel like, avoid the common temptations that kill projects, and keep agile practices in balance.
Ship it!
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.
Manage It!
![]() |
This book is a reality-based guide for modern projects. You’ll learn how to recognize your project’s potholes and ruts, and determine the best way to fix problems—without causing more problems.
NEW: Watch an in-depth interview with author Johanna Rothman And congratulations to Johanna for winning a 2008 Jolt Productivity Award. |
Release It!
![]() |
“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. |
Agile Retrospectives
See how to mine the experience of your software development team continually throughout the life of the project. The tools and recipes in this book will help you uncover and solve hidden (and not-so-hidden) problems with your technology, your methodology, and those difficult “people issues” on your team.
The Pragmatic Programmer
Straight from the programming trenches, The Pragmatic Programmer: From Journeyman to Master cuts through the increasing specialization and technicalities of modern software development to examine the core process—what do you do, as an individual and as a team, if you want to create software that’s easy to work with and good for your users.
This is the title that got us started in the book business. It’s published by Addison-Wesley, but we’re offering for sale here simply because people come looking for it.
Enjoy!
Dave & Andy
Pragmatic Thinking and Learning
Software development happens in your head. Not in an editor, IDE, or design tool. You’re well educated on how to work with software and hardware, but what about wetware—our own brains? Learning new skills and new technology is critical to your career, and it’s all in your head.
In this book by Andy Hunt, you’ll learn how our brains are wired, and how to take advantage of your brain’s architecture. You’ll learn new tricks and tips to learn more, faster, and retain more of what you learn.
You need a pragmatic approach to thinking and learning. You need to Refactor Your Wetware.
Design Accessible Web Sites
“Accessibility” has a reputation of being dull, dry, and unfriendly toward graphic design. But there is a better way: well-styled semantic markup that lets you provide the best possible results for all of your users. This book will help you provide images, video, Flash and PDF in an accessible way that looks great to your sighted users, but is still accessible to all users.
Debug It!
Some developers thrash around aimlessly looking for a bug without concrete results. Others have the knack of unerringly zeroing in on the root cause of a bug. Are they geniuses? Just lucky? No, they’ve learned the secrets of professional debugging. This book will equip you with the tools, techniques and approaches-proven in the crucible of professional software development-to ensure that you can tackle any bug with confidence.
You’ll learn how to handle every stage of the bug life-cycle, from constructing software that makes debugging easy, through detection, reproduction, diagnosis and rolling out your eventual fix.
Manage Your Project Portfolio
Too many projects? Want to organize them and evaluate them without getting buried under a mountain of statistics? This book will help you collect all your work, decide which projects you should do first, second—and never. You’ll see how to tie your work to your organization’s mission and show your board, your managers, and your staff what you can accomplish and when. You’ll get a better view of the work you have, and learn how to make those difficult decisions, ensuring that all your strength is focused where it needs to be.
Agile Coaching
Discover how to coach your team to become more Agile. Agile Coaching de-mystifies agile practices—it’s a practical guide to creating strong agile teams. Packed with useful tips from practicing agile coaches Rachel Davies and Liz Sedley, this book gives you coaching tools that you can apply whether you are a project manager, a technical lead, or working in a software team.
Domain-Driven Design Using Naked Objects
Domain-driven design (DDD) focuses on what matters in enterprise applications: the core business domain. But applying the DDD principles can be easier said than done. Enter Naked Objects: an open-source Java framework that lets you build working applications simply by writing the core domain classes while Naked Objects takes care of the rest of the application infrastructure for you. This book shows how you can rapidly develop and test domain applications, and then deploy to either conventional architectures or onto Naked Objects itself. Get ready to write some of the best business software of your career.
Ruby on Rails
Rails Recipes
You’ve read the tutorials and watched the online videos. You have a strong grasp of all of the ingredients that make up a successful Rails application. But ingredients don’t just turn themselves into a meal. Chad Fowler’s Rails Recipes is a collection of recipes that will take you step by step through the the most cutting edge Rails techniques, mixing the ingredients to create world-class web applications. Learn how to do it, and how to do it right.
(Note: this book was written for Rails 1.x. Most of the recipes are still appropriate for Rails 2, perhaps with some tweaking. Advanced Rails Recipes is a newer book, written for Rails 2.0.)
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.
Advanced Rails Recipes
With the help of a community of Rails chefs in the kitchen, here are 84 new ways to kick your Rails apps up a notch. Advanced Rails Recipes is a collection of practical recipes for spicing up your web application without a lot of prep and cleanup. You’ll learn how the pros have solved the tough problems using the most up-to-date Rails 2 techniques so you can deliver your stunning web app quicker and easier.
- Watch Mike Clark run through some of the highlights of the book in an exclusive video (33Mb, Quicktime)
Deploying Rails Applications
Until now, the information you needed to deploy a Ruby on Rails application in a production environment has been fragmented and contradictory. This book changes all of that by providing consistent, levelheaded advice you can trust. You’ll get the inside angle from those that have built, deployed, and maintained some of the largest Rails apps in production, anywhere.
Rails for PHP Developers
Are you a PHP developer interested in the Ruby on Rails framework? Rails for PHP Developers kick-starts your Rails experience by guiding you through learning both Ruby and Rails from a PHP developer’s perspective. Written by developers with deep experience using PHP, Ruby, and Rails, this book leverages your existing knowledge of PHP to learn Rails application development quickly and effectively.
NEW: PHP to Rails reference. See how to write the most common PHP functions in Ruby and Rails. Now online at: railsforphp.com/reference
Developing Facebook Platform Applications with Rails
With more than 60 million users, Facebook provides a captive audience for developers. More than 12,000 Facebook applications have been launched so far: Is yours next? It could be, with this book. You’ll see how to develop Facebook Platform applications quickly, using the popular Ruby on Rails framework. You’ll learn to use Facebook technologies such as FBML and FQL, and you’ll see how to leverage Rails and the Facebook Platform to make your application a success.
Agile Web Development with Rails, Third Edition
Rails just keeps on changing. Rails 2, released in 2008, brings hundreds of improvements, including new support for RESTful applications, new generator options, and so on. And, as importantly, we’ve all learned a lot more about writing Rails applications in the last few years.
So here’s the Third Edition of the Jolt Award winning book that shows you a new approach to web development, updated for Rails 2. Sam Ruby joins the team to add his world-class knowledge of web application development, making this the most up-to-date and authoritative Rails book out there.
Rails for .NET Developers
Rails for .NET Developers introduces the joy of Ruby on Rails development to Microsoft .NET developers. This book demonstrates the essential elements of both the Ruby language and the Rails application framework, geared especially for developers already fluent in the Microsoft .NET platform.
Enterprise Recipes with Ruby and Rails
Every web site project is really an enterprise integration project in disguise. Ruby on Rails makes it easier than ever to create complex and good-looking web sites, but there’s plenty of life beyond the rails. The 50+ recipes in this book not only show you how to integrate lurking legacy material using Ruby and Ruby on Rails, but also how to create new and highly functional applications in an enterprise environment. You can build completely new applications by enhancing and combining existing components in creative, compelling new ways.
Rails Development for the Facebook Platform
Since the Facebook Development Platform was released in May 2007, more than 12,000 Facebook applications have been launched. You can distribute your Rails application to potentially millions of users on Facebook. But to do that, you’re going to need to play by the rules. Learn how to design your Rails app for Facebook from Mike Mangino, an experienced Rails and Facebook developer.
Mastering Rails Forms
Forms are crucial to how users interact with your site. You can slap a form on a web page in record time with Rails, but basic forms just get you by. For a better user experience, you’ll want to customize your forms and create interplay between your models. Learn how to take your forms to the next level from Ryan Bates, one of the most experienced Rails programmers (and screencasters) in the community.
Everyday Active Record
Active Record models are the foundation of your Rails application. With a well-designed layer of models, your application is solid. You can make business logic changes easier, keep the integrity of your data in check, and better optimize the interaction with your database. Learn how to get the most out of the Active Record from Ryan Bates, one of the most experienced Rails developer (and screencasters) in the community.
Screencasts
Becoming Productive in Xcode
Xcode is the development environment used to create iPhone and Mac applications. There’s a lot you can do with Xcode, and it’s easy to get distracted by all the knobs and levers. But you’re using Xcode for one simple reason: You want to build iPhone or Mac applications as quickly as possible. Whether you’re a new iPhone developer seeing Xcode for the first time, or wish you were more familiar with the shortcuts, these screencasts will make you a more productive (and happier!) Xcode programmer.
Building a Dynamic Website with ExpressionEngine
ExpressionEngine lets you design, deploy, and manage a dynamic website without fuss. It’s a content management system that lets you do things your way. You don’t need to be a programmer, a database administrator, or a top-notch web designer to use ExpressionEngine. Learn how to light up your content from Ryan Irelan, a veteran web developer and ExpressionEngine guru.
Classy Web Development with Sinatra
Sinatra is a small Ruby web application framework that packs a big punch. It’s also a lot of fun! You can use Sinatra to write tiny, focused web applications and lightweight REST services very quickly. And sometimes a lean and mean web app is all you need. If you haven’t given Sinatra a look, now’s a great time to get a fresh perspective on web development. Learn how to get the most out of Sinatra from Adam Keys, an experienced Ruby and Sinatra developer.
Coding in Objective-C 2.0
Objective-C is the programming language for writing native iPhone and Mac applications. It’s also the language that Apple uses to build their own applications and frameworks. So, if you know Objective-C, you have a lot of power at your fingertips. But if you’re new to C or object-oriented programming, then Objective-C can seem a little awkward at first. These screencasts by Bill Dudney, an experienced Objective-C programmer, will help you quickly get up to speed on Objective-C 2.0 basics.
Creating a Compelling User Interface with Core Animation
Core Animation adds that “wow!” factor to your Cocoa and iPhone applications. It’s not just cool, it also improves the user experience to make your application a cut above the rest. Learn how to create an animated and cinematic user interface with Core Animation from Bill Dudney, an experienced Cocoa developer.
Erlang in Practice
Learn how to write Erlang programs by sitting next to an experienced Erlang programmer as he builds a full-featured application from the ground up!
In these screencasts, Kevin Smith incrementally builds a distributed chat system using Erlang. You’ll learn first-hand how each aspect of the Erlang language fits together into a real-world application, starting with Erlang primitives and ending with an OTP application.
Everyday Active Record
Active Record models are the foundation of your Rails application. With a well-designed layer of models, your application is solid. You can make business logic changes easier, keep the integrity of your data in check, and better optimize the interaction with your database. Learn how to get the most out of the Active Record from Ryan Bates, one of the most experienced Rails developer (and screencasters) in the community.
ExpressionEngine Techniques
Why work through common problems on your own when you can skip the trial and error and jump straight to a solution that works the first time? Learn the latest techniques the pros use to build full-featured websites with ExpressionEngine from Ryan Irelan, an ExpressionEngine guru. Each of these video tutorials teaches you how to solve a particular set of problems with ExpressionEngine, quickly and efficiently.
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.
Mastering Rails Forms
Forms are crucial to how users interact with your site. You can slap a form on a web page in record time with Rails, but basic forms just get you by. For a better user experience, you’ll want to customize your forms and create interplay between your models. Learn how to take your forms to the next level from Ryan Bates, one of the most experienced Rails programmers (and screencasters) in the community.
Rails Development for the Facebook Platform
Since the Facebook Development Platform was released in May 2007, more than 12,000 Facebook applications have been launched. You can distribute your Rails application to potentially millions of users on Facebook. But to do that, you’re going to need to play by the rules. Learn how to design your Rails app for Facebook from Mike Mangino, an experienced Rails and Facebook developer.
The Ruby Object Model and Metaprogramming
Metaprogramming lets you program more expressively. This makes your code easier to write and easier to maintain and extend. Learn both the hows and whys of metaprogramming Ruby from Dave Thomas, one of the most experienced Ruby programmers in the western world.
Using the Map Kit
Using the new Map Kit framework available in iPhone 3.0, you can embed customized maps within your iPhone application. In this screencast you’ll learn how to build an iPhone application from scratch that displays a map of recent earthquakes, shows custom annotations with callouts, and automatically zooms to a region of interest.
Writing Your First iPhone Application
Now that the iPhone SDK has officially been released and the Apple App Store is open for business, it’s time to write killer mobile applications! To do that, you’ll need to use several powerful (and possibly unfamiliar) tools: Xcode, Interface Builder, Objective-C, and then the iPhone SDK itself. It can all be a little overwhelming at first. Learn how to write your first table-based iPhone application from Bill Dudney, an experienced iPhone developer.
Starter Kit Series
Pragmatic Project Automation
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.
Pragmatic Unit Testing in C# with NUnit
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.
Pragmatic Unit Testing in Java with JUnit
Pragmatic programmers use feedback to drive their development and personal processes. The most valuable feedback you can get while coding comes from unit testing.
Let your Java code tell you what’s working and what isn’t. You’ll learn how to test using JUnit, but more importantly, you’ll learn what to test.
Pragmatic Version Control using CVS
Pragmatic Version Control is available in two different flavors: using CVS and using Subversion. Click on the links to each book for more details, code from the books, errata, reviews, ordering information, sample chapters, and a free printable summary card.
Pragmatic Version Control using Subversion
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
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.
Titles from SitePoint
The CSS Anthology

This title is published by our friends at SitePoint. Please visit them for additional resources.
SitePoint Errata • SitePoint Code • SitePoint Discussion
The CSS Anthology: 101 Essential Tips, Tricks & Hacks is a compilation of best practice solutions to the most challenging CSS problems. The second edition of this best-selling book, now in full color, has been completely revised and updated to cover the latest techniques and newer browsers, including Firefox 2 and Internet Explorer 7.
The Principles of Beautiful Web Design

This title is published by our friends at SitePoint. Please visit them for additional resources.
SitePoint Errata • SitePoint Code • SitePoint Discussion
Tired of making web sites that work absolutely perfectly but just don’t, well, look very nice? Using The Principles of Beautiful Web Design, you’ll see just how easy it can be to create aesthetically pleasing and usable web site designs.
This gorgeous, full-color book will guide you through the complete design process, from getting inspiration and sketching ideas out, through to choosing a color scheme, designing the layout, and selecting effective imagery.
The Art & Science of JavaScript

This title is published by our friends at SitePoint. Please visit them for additional resources.
SitePoint Errata • SitePoint Code • SitePoint Discussion
We’ve assembled seven of the greatest minds in modern JavaScript to teach you the most inspirational techniques you’ll ever use. From creating impressive mashups and stunning, dynamic graphics, to more subtle user-experience enhancements, you’re about to be amazed by the true potential of this powerful language.
The Ultimate HTML Reference

This title is published by our friends at SitePoint. Please visit them for additional resources.
SitePoint Errata • SitePoint Code • SitePoint Discussion
Sitting at the foundation of every site is HTML—the only language that’s essential to a web site’s existence. On the surface HTML may seem simple but there’s much more to it than meets the eye. With different versions, many infrequently used elements and attributes, and varying ways that browsers interpret the language, only this comprehensive and up-to-date reference, has it completely covered.
The Ultimate CSS Reference

This title is published by our friends at SitePoint. Please visit them for additional resources.
SitePoint Errata • SitePoint Code • SitePoint Discussion
Almost every web site created today is built using CSS, which is why a thorough knowledge of this technology is mandatory for every web designer. There are plenty of good resources to help you learn the basics, but if you’re ready to truly master the intricacies of CSS, this is the book you need.
Simply JavaScript

This title is published by our friends at SitePoint. Please visit them for additional resources.
SitePoint Errata • SitePoint Code • SitePoint Discussion
Packed with full-color examples, Simply JavaScript is all you need to start programming in JavaScript the right way. Learn how easy it is to use JavaScript to solve real-world problems, build smarter forms, track user events (such as mouse clicks and key strokes), and design eye-catching animations. Then move on to more powerful techniques using the DOM and Ajax.
Tools
Pragmatic Project Automation
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.
Data Crunching
Learn how to approach real-world legacy data conversion problems, see which programming languages are better at data-handling tasks, design, build, and test programs for searching log files, converting data sources, configuring other programs, and more!
TextMate
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.
The Definitive ANTLR Reference
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!
Everyday Scripting with Ruby
Are you a tester who spends more time manually creating complex test data than using it? A business analyst who seemingly went to college all those years so you can spend your days copying data from reports into spreadsheets? A programmer who can’t finish each day’s task without having to scan through version control system output, looking for the file you want?
If so, you’re wasting that computer on your desk. Offload the drudgery to where it belongs, and free yourself to do what you should be doing: thinking. All you need is a scripting language (free!), this book (cheap!), and the dedication to work through the examples and exercises.
Pragmatic Version Control using Subversion
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
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.
Scripted GUI Testing with Ruby
If you need to automatically test a user interface, this book is for you. Whether it’s Windows, a Java platform (including Mac, Linux, and others) or a web app, you’ll see how to test it reliably and repeatably.
Many automated test frameworks promise the world and deliver nothing but headaches. Fortunately, you’ve got a secret weapon: Ruby. Ruby lets you build up a solution to fit your problem, rather than forcing your problem to fit into someone else’s idea of testing.
This book is for people who want to get their hands dirty on examples from the real world—and who know that testing can be a joy when the tools don’t get in the way. It starts with the mechanics of simulating button pushes and keystrokes, and builds up to writing clear code, organizing tests, and beyond.
Ubuntu Kung Fu
Ubuntu’s rise to power has been rapid, historic and well-deserved. It’s the best Linux distribution ever, but most people only use a fraction of its power. Award-winning Linux author Keir Thomas gets down and dirty with Ubuntu to provide over 300 concise tips that enhance productivity, avoid annoyances, and simply get the most from Ubuntu. You’ll find many unique tips here that can’t be found anywhere else. You’ll also get a crash course in Ubuntu’s flavor of system administration. Whether you’re new to Linux or an old hand, you’ll find tips to make your day easier.
Pragmatic Unit Testing in C# with NUnit
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.
Pragmatic Unit Testing in Java with JUnit
Pragmatic programmers use feedback to drive their development and personal processes. The most valuable feedback you can get while coding comes from unit testing.
Let your Java code tell you what’s working and what isn’t. You’ll learn how to test using JUnit, but more importantly, you’ll learn what to test.
Pragmatic Version Control using CVS
Pragmatic Version Control is available in two different flavors: using CVS and using Subversion. Click on the links to each book for more details, code from the books, errata, reviews, ordering information, sample chapters, and a free printable summary card.
Augmented Reality
Augmented Reality is the fusion of real and virtual reality, where computer graphics objects are blended into real footage in real-time. AR creates the illusion that virtual, computer-generated objects exist in the real world. All you need is a computer and a webcam. Learn new ways to interact with your computer. The possibilities are endless: data visualization, immersive environments, and, of course, gaming. This book will show you how, and teach you about game development at the same time. You can run the included demos, or use the ARTag API to customize your own AR applications.
Web 2.0
Google Web Toolkit
Google Web Toolkit unifies client and server code into a single application written in one language: Java. GWT lets you create a web application in much the same way as you would create a Swing application—creating visual components, setting up event handlers, debugging, and so forth—all within a familiar IDE.
Design Accessible Web Sites
“Accessibility” has a reputation of being dull, dry, and unfriendly toward graphic design. But there is a better way: well-styled semantic markup that lets you provide the best possible results for all of your users. This book will help you provide images, video, Flash and PDF in an accessible way that looks great to your sighted users, but is still accessible to all users.
Prototype and script.aculo.us
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!
Mastering Dojo
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.
Developing Facebook Platform Applications with Rails
With more than 60 million users, Facebook provides a captive audience for developers. More than 12,000 Facebook applications have been launched so far: Is yours next? It could be, with this book. You’ll see how to develop Facebook Platform applications quickly, using the popular Ruby on Rails framework. You’ll learn to use Facebook technologies such as FBML and FQL, and you’ll see how to leverage Rails and the Facebook Platform to make your application a success.
Web Design for Developers
Web Design for Developers will show you how to make your web-based application look professionally designed. We’ll help you learn how to pick the right colors and fonts, avoid costly interface and accessibility mistakes—your application will really come alive. We’ll also walk you through some common Photoshop and CSS techniques and work through a web site redesign, taking a new design from concept all the way to implementation.
Getting Started with XQuery
If you’re thinking of XML as hard-to-read text files, it’s time to start thinking in terms of XML as content.
This Friday will show you what XQuery is, how it’s different from other approaches, the new possibilities it opens up—and how to harness its power,
Other
No Fluff Just Stuff 2006 Anthology
Take 13 of the world’s best trainers and speakers and ask them to write a chapter on something they care passionately about. The result? A book on software development unlike any other. Fifteen chapters covering the range of modern software development topics, from Domain-Specific Languages through Aspect-Oriented CSS to learning from the past.
No Fluff Just Stuff 2007 Anthology
New for 2007! If you can’t get out to an excellent conference with the best speakers and thinkers in the industry, then we’ll send them to you.
Once again, some Sixteen of the world’s best trainers and speakers are writing chapters on things they care passionately about. You’ll find topics from the latest conferences including Groovy, JavaScript, Continuations, Web services and REST, JVM Byte Code, and Agilty
A Peek at Computer Electronics
Are you a programmer or computer enthusiast? Do you feel comfortable with methods, functions, and variables? Do you wish you knew more about how the computer made it all work? Now you can. From basic electronics to advanced computer hardware, you’ll learn the magic behind the gear that makes it all run.
If you’re into tinkering, or ever thought about it, this book explains the basics of how it all works
ThoughtWorks Anthology
This collection of essays covers a wide range of issues facing software developers today. In this book, you’ll find a treasure trove of pragmatic advice to improve the effectiveness of your development efforts.
You’ll find essays on testing, controlling a project, the creation of domain specific languages, issues of build and deploy, programming languages, techniques for software development, and more!
Hello, Android
Android combines the ubiquity of cell phones, the excitement of open source software, and the corporate backing of Google and other Open Handset Alliance members. The result is a mobile platform you can’t afford not to learn. This book will get you started. Ebook version now updated to Android 1.5, “Cupcake”.
Practical Programming
Welcome to computer science in the 21st century. Did you ever wonder how computers represent DNA? How they can download a web page containing population data and analyze it to spot trends? Or how they can change the colors in a color photograph? If so, this book is for you. By the time you’re done, you’ll know how to do all of that and a lot more. And Python makes it easy and fun.



































































































