The Pragmatic Bookshelf
By programmers for programmers
Sort by: Title | Release Date
Create Mobile Games with Corona
Develop cross-platform mobile games with Corona using the Lua programming language! Corona is experiencing explosive growth among mobile game developers, and this book gets you up to speed on how to use this versatile platform. You’ll use the Corona SDK to simplify game programming and take a fun, no-nonsense approach to write and add must-have gameplay features. You’ll find out how to create all the gaming necessities: menus, sprites, movement, perspective and sound effects, levels, loading and saving, and game physics. Along the way, you’ll learn about Corona’s API functions and build three common kinds of mobile games from scratch that can run on the iPhone, iPad, Kindle Fire, Nook Color, and all other Android smartphones and tablets.
2013-12-02
Crafting Rails 4 Applications
Get ready to see Rails as you’ve never seen it before. Learn how to extend the framework, change its behavior, and replace whole components to bend it to your will. Eight different test-driven tutorials will help you understand Rails’ inner workings and prepare you to tackle complicated projects with solutions that are well-tested, modular, and easy to maintain.
This second edition of the bestselling Crafting Rails 4 Applications has been updated to Rails 4 and discusses new topics such as streaming, mountable engines, and thread safety.
2013-11-01
Test iOS Apps with UI Automation
If you’re an iOS developer or QA professional tapping through an app to reproduce bugs or performance issues you thought were solved two releases ago, then this is your book. Learn how to script the user interface, assert correct behavior, stub external dependencies, reproduce performance problems, organize test code for the long haul, and automate the whole process so the machine does the work. You’ll walk through a comprehensive strategy with techniques using Apple’s tools that you can apply to your own apps.
2013-10-16
Programming Erlang (2nd edition)
A multi-user game, web site, cloud application, or networked database can have thousands of users all interacting at the same time. You need a powerful, industrial-strength tool to handle the really hard problems inherent in parallel, concurrent environments. You need Erlang. In this second edition of the bestselling Programming Erlang, you’ll learn how to write parallel programs that scale effortlessly on multicore systems.
2013-10-16
Functional Programming Patterns in Scala and Clojure
Solve real-life programming problems with a fraction of the code that pure object-oriented programming requires. Use Scala and Clojure to solve in-depth problems with two sets of patterns: object-oriented patterns that become more concise with functional programming, and natively functional patterns. Your code will be more declarative, with fewer bugs and lower maintenance costs.
2013-10-15
Programming Elixir
You want to explore functional programming, but are put off by the academic feel (tell me about monads just one more time). You know you need concurrent applications, but also know these are almost impossible to get right. Meet Elixir, a functional, concurrent language built on the rock-solid Erlang VM. Elixir’s pragmatic syntax and built-in support for metaprogramming will make you productive and keep you interested for the long haul. This book is the introduction to Elixir for experienced programmers.
Maybe you need something that’s closer to Ruby, but with a battle-proven environment that’s unrivaled for massive scalability, concurrency, distribution, and fault tolerance. Maybe the time is right for the Next Big Thing. Maybe it’s Elixir.
Check out the short video on Elixir at youtu.be/hht9s6nAAx8, or the 30 minute, more detailed video at youtu.be/a-off4Vznjs and enjoy.
2013-10-15
Modern C++ Programming with Test-Driven Development
If you program in C++ you’ve been neglected. Test-driven development (TDD) is a modern software development practice that can dramatically reduce the number of defects in systems, produce more maintainable code, and give you the confidence to change your software to meet changing needs. But C++ programmers have been ignored by those promoting TDD—until now. In this book, Jeff Langr gives you hands-on lessons in the challenges and rewards of doing TDD in C++.
2013-10-01
Agile Web Development with Rails 4
Rails just keeps on changing. Both Rails 3 and 4, as well as Ruby 1.9 and 2.0, bring hundreds of improvements, including new APIs and substantial performance enhancements. The fourth edition of this award-winning classic has been reorganized and refocused so it’s more useful than ever before for developers new to Ruby and Rails.
Rails 4 introduces a number of user-facing changes, and the ebook has been updated to match all the latest changes and new best practices in Rails. This includes full support for Ruby 2.0, controller concerns, Russian Doll caching, strong parameters, Turbolinks, new test and bin directory layouts, and much more.
(Looking for earlier versions? Rails 3.2 Edition is still available in ebook and paper).
2013-09-15
Functional Programming in Java
Get ready to program in a whole new way. Functional Programming in Java will help you quickly get on top of the new, essential Java 8 language features and the functional style that will change and improve your code. This short, targeted book will help you make the paradigm shift from the old imperative way to a less error-prone, more elegant, and concise coding style that’s also a breeze to parallelize. You’ll explore the syntax and semantics of lambda expressions, method and constructor references, and functional interfaces. You’ll design and write applications better using the new standards in Java 8 and the JDK.
Print books will be available after the final version of Java 8 is released.
2013-09-01
Practical Programming (2nd edition)
This book is for anyone who wants to understand computer programming. You’ll learn to program in a language that’s used in millions of smartphones, tablets, and PCs. You’ll code along with the book, writing programs to solve real-world problems as you learn the fundamentals of programming using Python 3. You’ll learn about design, algorithms, testing, and debugging, and come away with all the tools you need to produce quality code. In this second edition, we’ve updated almost all the material, incorporating the lessons we’ve learned over the past five years of teaching Python to people new to programming.
2013-08-01
101 Design Ingredients to Solve Big Tech Problems
Tough technology and business challenges face you at every stage of a project. The one-page ingredients in 101 Design Ingredients show you how to solve problems using practical examples you can apply right away. Case studies explain how leading companies combined these ingredients into their own unique recipes to catapult their businesses, and how you can too.
2013-07-31
OpenGL ES 2 for Android
Android is booming like never before, with millions of devices shipping every day. It’s never been a better time to learn how to create your own 3D games and live wallpaper for Android. You’ll find out all about shaders and the OpenGL pipeline, and discover the power of OpenGL ES 2.0, which is much more feature-rich than its predecessor. If you can program in Java and you have a creative vision that you’d like to share with the world, then this is the book for you.
2013-07-30
Good Math
Mathematics is beautiful—and it can be fun and exciting as well as practical. Good Math is your guide to some of the most intriguing topics from two thousand years of mathematics: from Egyptian fractions to Turing machines; from the real meaning of numbers to proof trees, group symmetry, and mechanical computation. If you’ve ever wondered what lay beyond the proofs you struggled to complete in high school geometry, or what limits the capabilities of computer on your desk, this is the book for you.
2013-07-15
3D Game Programming for Kids
You know what’s even better than playing games? Creating your own. Even if you’re an absolute beginner, this book will teach you how to make your own online games with interactive examples. You’ll learn programming using nothing more than a browser, and see cool, 3D results as you type. You’ll learn real-world programming skills in a real programming language: JavaScript, the language of the web. You’ll be amazed at what you can do as you build interactive worlds and fun games.
2013-07-15
Programming Groovy 2
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 Groovy 2 will help you, the experienced Java developer, learn and take advantage of the latest version of this rich dynamic language. You’ll go from the basics of Groovy to the latest advances in the language, including options for type checking, tail-call and memoization optimizations, compile time metaprogramming, and fluent interfaces to create DSLs.
2013-06-16
The Healthy Programmer
To keep doing what you love, you need to maintain your own systems, not just the ones you write code for. Regular exercise and proper nutrition help you learn, remember, concentrate, and be creative—skills critical to doing your job well. Learn how to change your work habits, master exercises that make working at a computer more comfortable, and develop a plan to keep fit, healthy, and sharp for years to come.
This book is intended only as an informative guide for those wishing to know more about health issues. In no way is this book intended to replace, countermand, or conflict with the advice given to you by your own healthcare provider including Physician, Nurse Practitioner, Physician Assistant, Registered Dietician, and other licensed professionals.
2013-06-01
Rapid Android Development
Create mobile apps for Android phones and tablets faster and more easily than you ever imagined. Use “Processing,” the free, award-winning, graphics-savvy language and development environment, to work with the touchscreens, hardware sensors, cameras, network transceivers, and other devices and software in the latest Android phones and tablets.
2013-04-05
Agile Web Development with Rails 3.2
This edition of this award-winning classic has been reorganized and refocused so it’s more useful than ever before for developers new to Ruby and Rails.
Rails 3 was a major release—the changes weren’t just incremental, but structural. So we decided to follow suit. This book isn’t just a mild reworking of the previous edition to make it run with the new Rails. Instead, it’s a complete refactoring.
You’ll still find the Depot example at the front, but you’ll also find testing knitted right in. Gone are the long reference chapters—that’s what the web does best. Instead you’ll find more targeted information on all the aspects of Rails you’ll need to be a successful web developer.
This edition is for Rails3.2. It has been replaced with the Rails 4.0 Edition.
2013-03-01
Programming Ruby 1.9 & 2.0 (4th edition)
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 both Ruby 1.9 and Ruby 2.0, the very latest version of Ruby. (If you’re still using Ruby 1.8, you’ll want to check out the original PickAxe.)
2013 marks the 20th anniversary of the Ruby language. We’re proud that throughout its history, we’ve continued to cover the latest version of Ruby.
2013-02-21
Explore It!
Uncover surprises, risks, and potentially serious bugs with exploratory testing. Rather than designing all tests in advance, explorers design and execute small, rapid experiments, using what they learned from the last little experiment to inform the next. Learn essential skills of a master explorer, including how to analyze software to discover key points of vulnerability, how to design experiments on the fly, how to hone your observation skills, and how to focus your efforts.
2013-02-17
Hiring Geeks That Fit
Hiring a person for your team is the single most important decision you can make. It has long-lasting impact, whether you are the manager or a team member. Would you like to learn to hire great people? Not sure how? You need this book.
Great geeks are not the same as skill-based staff. You need to analyze your culture, determine your problems, define the essentials you need in a candidate, and then you’re off and running.
Great geeks adapt their knowledge to your context. One developer or technical manager is not interchangeable with another. Hiring Geeks That Fit takes the guesswork and cost out of hiring.
This book was written and produced entirely by the author. We are proud to be distributing it.
2013-02-15
Cucumber Recipes
You can test just about anything with Cucumber. We certainly have, and in Cucumber Recipes we’ll show you how to apply our hard-won field experience to your own projects. Once you’ve mastered the basics, this book will show you how to get the most out of Cucumber—from specific situations to advanced test-writing advice. With over forty practical recipes, you’ll test desktop, web, mobile, and server applications across a variety of platforms. This book gives you tools that you can use today to automate any system that you encounter, and do it well.
2013-02-06
Core Data (2nd edition)
Core Data is Apple’s recommended way to persist data: it’s easy to use, built-in, and integrated with iCloud. It’s intricate, powerful, and necessary—and this book is your guide to harnessing its power.
Learn fundamental Core Data principles such as thread and memory management, discover how to use Core Data in your iPhone, iPad, and OS X projects by using NSPredicate to filter data, and see how to add iCloud to your applications.
2013-01-31
Working with TCP Sockets
Do you know how your web server opens a socket, binds to an address, and accepts a connection? I did a lot of Rails development before I understood the mechanics of the network stack I was working on top of. Forget those 1,000+ page networking manuals; Working With TCP Sockets zeroes in on exactly what you need to know as a Ruby developer working on the web today. After reading the book, you’ll have a good understanding of socket programming basics—enough to write servers, client libraries, or concurrent network programs.
This book was written and produced entirely by the author. We are proud to be distributing it.
2013-01-18
The App Design Handbook
In the App Store, apps are judged by their screenshots. For paid apps, that is the only thing the user has to work from, so you need to learn how to design iOS applications that look great. But more important than that, they need to be intuitive for the users. The App Design Handbook will take you from creating wireframes that focus on the user flow, to adding style through colors and textures, to finally adding polish to your app with animations and other subtle details.
This book, available in PDF format, was entirely written and produced by the author. Pricing set by author. We are proud to be distributing it.
2013-01-16
The Definitive ANTLR 4 Reference
Programmers run into parsing problems all the time. Whether it’s a data format like JSON, a network protocol like SMTP, a server configuration file for Apache, a PostScript/PDF file, or a simple spreadsheet macro language—ANTLR v4 and this book will demystify the process. ANTLR v4 has been rewritten from scratch to make it easier than ever to build parsers and the language applications built on top. This completely rewritten new edition of the bestselling Definitive ANTLR Reference shows you how to take advantage of these new features.
“Parr’s clear writing and lighthearted style make it a pleasure to learn the practical details of building language processors.”
Dan Bornstein – Designer of the Dalvik VM for Android
“ANTLR is an exceptionally powerful and flexible tool for parsing formal languages. At Twitter, we use it exclusively for query parsing in our search engine. Our grammars are clean and concise and the generated code is efficient and stable. This book is our go-to reference for ANTLR v4—engaging writing, clear descriptions and practical examples all in one place.”
Samuel Luckenbill – Senior Manager of Search Infrastructure – Twitter, Inc.
2013-01-15
Outsource It!
If you need to expand your business but not your budget, if your group has an intense but short-term project, if you don’t have the skill set to get a job done-it’s time to think about outsourcing. Starting from the first step (should you outsource part of your tech work?) to the last (how can you protect your intellectual property?), you’ll learn everything about setting up projects overseas.
2013-01-10
Sublime Text 2
Sublime Text is taking the programming community by storm, and rapidly unseating incumbents like TextMate and Vim for many programmers. This screencast series teaches you Sublime Text’s layout, navigation, and flow. You will also learn how to use more advanced features, such as tweaking the program’s interface or installing custom plugins. You’ll even incorporate the vast library of TextMate themes and plugins into the Sublime Text environment.
This screencast teaches both the basics and expanded features of ST2, and accelerates you along the learning curve needed to become rapidly productive with this powerful editor.
Free preview:
Installer videos:
- Linux: (iPhone) (QuickTime) (Ogg)
- Mac OS X: (iPhone) (QuickTime) (Ogg)
- Windows: (iPhone) (QuickTime) (Ogg)
2012-12-18
RubyMotion
Make beautiful apps with beautiful code: use the elegant and concise Ruby programming language with RubyMotion to write truly native iOS apps with less code while having more fun. You’ll learn the essentials of creating great apps, and by the end of this book, you’ll have built a fully functional API-driven app. Whether you’re a newcomer looking for an alternative to Objective-C or a hardened Rails veteran, RubyMotion allows you to create gorgeous apps with no compromise in performance or developer happiness.
What You Need:
A Macintosh running OS X 10.7 or later is required to install RubyMotion. RubyMotion is a commercial product and currently requires a purchased license. Experience with the Ruby language and Ruby tools like RubyGems and Rake are suggested.
2012-12-12
Pomodoro Technique Illustrated (audio book)
Do you ever look at the clock and wonder where the day went? You spent all this time at work and didn’t come close to getting everything done. Tomorrow, try something new. Use the Pomodoro Technique, originally developed by Francesco Cirillo, to work in focused sprints throughout the day. In Pomodoro Technique Illustrated, Staffan Nöteberg shows you how to organize your work to accomplish more in less time. There’s no need for expensive software or fancy planners. You can get started with nothing more than a piece of paper, a pencil, and a kitchen timer. Unabridged Audio Book; m4b (iTunes), mp3 and ogg formats. Also available in paperback and ebook formats.
Listen to an excerpt from Chapter 4.
2012-12-12
Async JavaScript
With the advent of HTML5, front-end MVC, and Node.js, JavaScript is ubiquitous—and still messy. This book will give you a solid foundation for managing async tasks without losing your sanity in a tangle of callbacks. It’s a fast-paced guide to the most essential techniques for dealing with async behavior, including PubSub, evented models, and Promises. With these tricks up your sleeve, you’ll be better prepared to manage the complexity of large web apps and deliver responsive code.
Async JavaScript was previously self-published. It’s been completely edited and revised since its initial publication and is now part of our Pragmatic exPress series.
2012-11-28
Mac Kung Fu (2nd edition)
Squeeze every drop of juice from OS X with over 400 quick and easy tips, tricks, hints and hacks in Mac Kung Fu: Second Edition. Exploit secret settings and hidden apps, push built-in tools to the limit, radically personalize your Mac experience, and make “it just works” even better. In addition to core OS X technologies, this significantly revised and expanded update to the best-selling first edition dissects new OS X Mountain Lion tools such as iCloud, Notifications, Reminders, and Calendar.
See The Unofficial Apple Weblog review here
2012-11-28
iOS SDK Development
Since the iPhone’s launch in 2008, the iOS platform has added two new device families, thousands of new APIs, new tools and programming practices, and hundreds of thousands of new apps. Yours can be one of them. This book guides you through the state of the art of iOS development, including the radically overhauled Xcode 4 toolchain, the iOS 6 SDK, and the new iPhone 5. You’ll accelerate your development with new tools like Storyboards, practice on new APIs like the Twitter framework, and learn the latest features of the Objective-C programming language.
2012-11-14
The Cloud and Amazon Web Services
“The Cloud” is a buzzword that’s been hyped and overused. We’ll cut through the marketing cruft with a series that starts with the basic concepts behind cloud computing and guides you through practical, hands-on examples using Amazon’s cloud offerings.
This six-episode series targets users who are new to the cloud, with content tailored for novice to mid-range expertise levels. Jesse’s material is useful for both developers and managers. The preview video has more information about which sections are best for each audience. The series covers the main Amazon Web Services’ technologies like EC2 and S3. It also covers the lesser known, but incredibly useful technologies like Elastic Load Balancer, CloudFront, Elastic MapReduce, and Relational Database Service. Each episode covers several Amazon Web Services technologies, discusses the theories behind them, and presents practical exercises.
SAVE 30% on the whole series. Buy all episodes of this series and automatically save 30% over the individual price.
2012-10-23
The ThoughtWorks Anthology, Volume 2
When you hit a rough spot in software development, it’s nice to know that someone has been there before. The domain experts at ThoughtWorks share what they’ve learned in this anthology, bringing together the best field-tested insights in IT and software development. You’ll benefit from their experience in areas from testing to information visualization, from object oriented to functional programming, from incremental development to driving innovation in delivery. You’ll find yourself referring to this collection of solved problems whenever you need an expert’s insight.
2012-10-11
Practical Vim
Vim is a fast and efficient text editor that will make you a faster and more efficient developer. It’s available on almost every OS—if you master the techniques in this book, you’ll never need another text editor. In more than 100 Vim tips, you’ll quickly learn the editor’s core functionality and tackle your trickiest editing and writing tasks.
2012-09-27
Deploying with JRuby
Deploy using the JVM’s high performance while building your apps in the language you love. JRuby is a fast, scalable, and powerful JVM language with all the benefits of a traditional Ruby environment. See how to consolidate the many moving parts of an MRI-based Ruby deployment onto a single JVM process. You’ll learn how to port a Rails application to JRuby, get it into production, and keep it running.
2012-08-15
Raspberry Pi
The Raspberry Pi is a $35, full-blown micro computer that runs Linux. Use its video, audio, network, and digital I/O to create media centers, web servers, interfaces to external hardware—you name it. And this book gives you everything you need to get started.
2012-08-08
Hands-on Backbone.js
With a nearly endless stream of success stories, blog posts, add-ons and frameworks built on top of Backbone.js, you don’t need another set of marketing materials to tell you why you should be working with Backbone.js. What you need is a way to get started quickly – to get up to speed with Backbone’s components, learning how to orchestrate them to create rich, interactive applications in a browser. This series of screencasts from Backbone.js expert Derick Bailey, will teach you what you need to know in a straight-to-the-point, hands-on way to building single page applications for today’s modern web.
2012-07-29
Scalable and Modular Architecture for CSS
CSS is messy. At least, it always seems to get messy as projects and teams grow in size. If you’ve ever battled specificity issues by throwing “important!” at them, or found the components of your site so increasingly intertwined that you’re afraid to change anything, then this book is for you. If you’ve ever come into a project and found yourself confused by the existing code, then this book is for your co-workers. Scalable and Modular Architecture for CSS (SMACCS) explores techniques that can make your sites more manageable.
This book, available in PDF, mobi, and ePub formats, was entirely written and produced by the author. We are proud to be distributing it.
2012-07-23
Deploying Rails
Today’s modern Rails applications have lots of moving parts. Make sure your next production deployment goes smoothly with this hands-on book, which guides you through the entire production process. You’ll set up scripts to install and configure all the software your servers need, including your application code. Once you’re in production, you’ll learn how to set up systems to monitor your application’s health, gather metrics so you can stop problems before they start, and fix things when they go wrong.
2012-07-20
Dart for Hipsters
Psst! You’re not stuck with JavaScript anymore.
Dart for Hipsters teaches you the fastest way possible: with real code and real projects starting on page 1. The unabashed goal of Dart is to make programming for the Web simpler, faster, and more powerful. And Dart for Hipsters is the fast-paced, most thorough way to learn it. You’ll explore the ins and outs of Dart by writing a simple application that grows in complexity from modest beginnings to a separate library that fully leverages the power of Dart.
Caution: after reading you may develop an intense attachment to structured code and skinny jeans.
2012-06-27
Working with Unix Processes
Take advantage of system programming techniques without toiling away in C. If you program for the web, you might be missing some fundamentals in the name of getting stuff working. Now you can fill that gap. In Working With Unix Processes, you’ll reuse decades of battle-tested, highly optimized, and proven techniques to put your system to work for you.
This book, available in PDF, mobi, and ePub formats, was entirely written and produced by the author. We are proud to be distributing it.
2012-05-23
Seven Databases in Seven Weeks
Data is getting bigger and more complex by the day, and so are your choices in handling it. From traditional RDBMS to newer NoSQL approaches, Seven Databases in Seven Weeks takes you on a tour of some of the hottest open source databases today. In the tradition of Bruce A. Tate’s Seven Languages in Seven Weeks, this book goes beyond your basic tutorial to explore the essential concepts at the core of each technology.
2012-05-11
Programming Clojure (2nd edition)
If you want to keep up with the significant changes in this important language, you need the second edition of Programming Clojure. Stu and Aaron describe the modifications to the numerics system in Clojure 1.3, explain new Clojure concepts such as Protocols and Datatypes, and teach you how to think in Clojure.
2012-04-05
Rails Recipes
Thousands of developers have used the first edition of Rails Recipes to solve the hard problems. Now, five years later, it’s time for the Rails 3 edition of this trusted collection of solutions, completely revised by Rails master Chad Fowler.
2012-03-29
The Rails View
Working in the Rails View layer requires a breadth of knowledge and attention to detail unlike anywhere else in Rails. One wrong move can result in brittle, complex views that stop future development in its tracks. Break free from tangles of logic and markup in your views and implement your user interface cleanly and maintainably.
2012-03-23
The dRuby Book
Learn from legendary Japanese Ruby hacker Masatoshi Seki in this first English-language book on his own Distributed Ruby library. You’ll find out about distributed computing, advanced Ruby concepts and techniques, and the philosophy of the Ruby way—-straight from the source.
2012-03-20
Technical Blogging
Technical Blogging is the first book to specifically teach programmers, technical people, and technically-oriented entrepreneurs how to become successful bloggers. There is no magic to successful blogging; with this book you’ll learn the techniques to attract and keep a large audience of loyal, regular readers and leverage this popularity to achieve your goals.
2012-03-01
Build Awesome Command-Line Applications in Ruby
Speak directly to your system. With its simple commands, flags, and parameters, a well-formed command-line application is the quickest way to automate a backup, a build, or a deployment and simplify your life.
- Check out What Makes an Awesome Command-Line App in the May issue of PragPub Magazine, as well as The Nine Facets of an Awesome Command-Line App on the author’s blog.
2012-03-01
tmux
Your mouse is slowing you down. The time you spend context switching between your editor and your consoles eats away at your productivity. Take control of your environment with tmux, a terminal multiplexer that you can tailor to your workflow. Learn how to customize, script, and leverage tmux’s unique abilities and keep your fingers on your keyboard’s home row.
2012-02-29
Programming Your Home
Take control of your home! Programmatically interact with indoor and outdoor lighting, remotely monitor and take charge of your home’s security, react to changes in room lighting and temperature by autonomously opening and closing curtains, and much more. Learn how to program Android smartphones and Arduino microcontrollers to remotely manage your home’s environment. Step-by-step instructions tell you all you need to know about how to obtain, build, program, use, and extend these innovative services.
2012-02-20
The Developer's Code
You’re already a great coder, but awesome coding chops aren’t always enough to get you through your toughest projects. You need these 50+ nuggets of wisdom. Veteran programmers: reinvigorate your passion for developing web applications. New programmers: here’s the guidance you need to get started. With this book, you’ll think about your job in new and enlightened ways.
2012-02-20
The Cucumber Book
Your customers want rock-solid, bug-free software that does exactly what they expect it to do. Yet they can’t always articulate their ideas clearly enough for you to turn them into code. The Cucumber Book dives straight into the core of the problem: communication between people. Cucumber saves the day; it’s a testing, communication, and requirements tool – all rolled into one.
2012-01-27
Web Development Recipes
Modern web development takes more than just HTML and CSS with a little JavaScript mixed in. Clients want more responsive sites with faster interfaces that work on multiple devices, and you need the latest tools and techniques to make that happen. This book gives you more than 40 concise, tried-and-true solutions to today’s web development problems, and introduces new workflows that will expand your skillset.
2012-01-01
Pragmatic Guide to Sass
CSS is fundamental to the web, but it’s a basic language and lacks many features. Sass is just like CSS, but with a whole lot of extra power so you can get more done, more quickly. Build better web pages today with Pragmatic Guide to Sass. These concise, easy-to-digest tips and techniques are the shortcuts experienced CSS developers need to start developing in Sass today.
2011-12-16
Lean from the Trenches
You know the Agile and Lean development buzzwords, you’ve read the books. But when systems need a serious overhaul, you need to see how it works in real life, with real situations and people. Lean from the Trenches is all about actual practice. Every key point is illustrated with a photo or diagram, and anecdotes bring you inside the project as you discover why and how one organization modernized its workplace in record time.
2011-12-07
New Programmer's Survival Manual
It’s your first day on the new job. You’ve got the programming chops, you’re up on the latest tech, you’re sitting at your workstation… now what? New Programmer’s Survival Manual gives your career the jolt it needs to get going: essential industry skills to help you apply your raw programming talent and make a name for yourself. It’s a no-holds-barred look at what really goes on in the office—and how to not only survive, but thrive in your first job and beyond.
2011-12-01
Mac Kung Fu
Exploit secret settings and hidden apps, push built-in tools to the limit, radically personalize your Mac experience and tweak your system so it’s just right for you. Every one of these 300 quick and easy tips, tricks, hints, and hacks in Mac Kung Fu makes “it just works” even better. Become the ultimate Mac user, working faster, smarter, and simply have lots more fun with your Apple computer.
Please see our new edition of Mac Kung Fu, updated for OS X Mountain Lion.
2011-11-18
Cutting an Agile Groove
You’ve struggled to bring agile practices to projects but have been frustrated by buzzword-heavy books and presentations that seem to have been written by academics. What you want is straight talk giving practical advice on the real problems that you face in leading or working in agile teams.
Cutting an Agile Groove is a series of videos by respected agile consultant David Hussman that shows you how to design an agile, lean process and deliver real value for your product or project—in plain English, with real-world examples.
2011-08-10
The SPDY Book
Building high performance websites is hard—let’s go shopping! Better yet, let’s take the best ideas from the past 10 years on how to improve HTTP and wrap them up in a brand new protocol named SPDY. In The SPDY Book, you will learn all of the secrets behind this new protocol from Google. Compression, multiplexing, writing directly to the browser’s cache are not only possible with SPDY, but easy. Google is already using it in production on all of their sites to make their services even faster. Why shouldn’t your websites do the same?
This book, available in PDF, mobi, and ePub formats, was entirely written and produced by the author. We are proud to be distributing it.
2011-08-08
CoffeeScript
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.
2011-07-25
Programming Concurrency on the JVM
Stop dreading concurrency hassles and start reaping the pure power of modern multicore hardware. Learn how to avoid shared mutable state and how to write safe, elegant, explicit synchronization-free programs in Java or other JVM languages including Clojure, JRuby, Groovy, or Scala.
2011-07-25
iOS Recipes
Take your iPhone and iPad apps to the next level. You’ve seen cool features and tricks in other apps, but haven’t had the time to really look into how they’re done. We’ve got the answers for you. This book walks you through clean, reusable solutions to a wide variety of problems and patterns common to iOS development with Cocoa Touch and Objective-C. With these recipes in your arsenal, your next apps will be more polished and more maintainable than ever.
Written for and tested on iOS 4 and Xcode 4.
2011-07-07
Designed for Use
Have you ever been angry at your computer or cell phone? This book is for designers, developers, and product managers who are charged with what sometimes seems like an impossible task: making sure products work the way your users expect them to. This book shows you how to design applications and websites that people will not only use, but will absolutely love.
2011-06-14
Exceptional Ruby
Writing code that works is hard. Writing code that handles unexpected errors and still works is really hard. Most of us learn by trial and error. This short book removes the uncertainty. With over 100 pages of content and dozens of working examples, you’ll learn everything from the mechanics of how exceptions work to how to design a robust failure management architecture for your app or library. Whether you are a Ruby novice or a seasoned veteran, Exceptional Ruby will help you write cleaner, more resilient Ruby code.
This book, available in PDF, mobi, and ePub formats, was entirely written and produced by the author. We are proud to be distributing it.
2011-05-01
Test Driven Development for Embedded C
Still chasing bugs and watching your code deteriorate? Think TDD is only for desktop or web apps? It’s not: TDD is for you, the embedded C programmer. TDD helps you prevent defects and build software with a long useful life. This is the first book to teach the hows and whys of TDD for C programmers.
2011-04-06
Crafting Rails Applications
Rails 3 is a huge step forward. You can now easily extend the framework, change its behavior, and replace whole components to bend it to your will, all without messy hacks. This pioneering book is the first resource that deep dives into the new Rails 3 APIs and shows you how to use them to write better web applications and make your day-to-day work with Rails more productive.
Everything covered in this book is valid through at least Rails 3.1
For Rails 4, have a look at the second edition.
2011-03-29
Rails Test Prescriptions
Rails Test Prescriptions is a comprehensive guide to testing Rails applications, covering Test-Driven Development from both a theoretical perspective (why to test) and from a practical perspective (how to test effectively). It covers the core Rails testing tools and procedures for Rails 2 and Rails 3, and introduces popular add-ons, including RSpec, Shoulda, Cucumber, Factory Girl, and Rcov.
2011-02-17
Using JRuby
Now you can bring the best of Ruby into the world of Java, with Using JRuby. Come to the source for the JRuby core team’s insights and insider tips. You’ll learn how to call Java objects seamlessly from Ruby, and deal with Java idioms such as interfaces and overloaded functions. Run Ruby code from Java, and make a Java program scriptable in Ruby. See how to compile Ruby into .class files that are callable from Java, Scala, Clojure, or any other JVM language.
2011-01-28
Agile in a Flash
The best agile book isn’t a book: Agile in a Flash is a unique deck of index cards that fit neatly in your pocket. You can tape them to the wall. Spread them out on your project table. Get stains on them over lunch. These cards are meant to be used, not just read.
2011-01-15
Arduino
Arduino is an open-source platform that makes DIY electronics projects easier than ever. Even if you have no electronics experience, you’ll be creating your first gadgets within a few minutes. Step-by-step instructions show you how to build a universal remote, a motion-sensing game controller, and many other fun, useful projects. This book has now been updated for Arduino 1.0, with revised code, examples, and screenshots throughout. We’ve changed all the book’s examples and added new examples showing how to use the Arduino IDE’s new features.
2011-01-10
HTML5 and CSS3
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.
2010-12-29
The RSpec Book
Behaviour-Driven Development (BDD) gives you the best of Test Driven Development, Domain Driven Design, and Acceptance Test Driven Planning techniques, so you can create better software with self-documenting, executable tests that bring users and developers together with a common language.
Get the most out of BDD in Ruby with The RSpec Book, written by the lead developer of RSpec, David Chelimsky.
2010-12-02
Driving Technical Change
If you work with people, you need this book. Learn to read co-workers’ and users’ patterns of resistance and dismantle their objections. With these techniques and strategies you can master the art of evangelizing and help your organization adopt your solutions.
2010-11-09
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
2010-11-01
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
2010-11-01
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
2010-11-01
Seven Languages in Seven Weeks
You should learn a programming language every year, as recommended by The Pragmatic Programmer. But if one per year is good, how about Seven Languages in Seven Weeks? In this book you’ll get a hands-on tour of Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. Whether or not your favorite language is on that list, you’ll broaden your perspective of programming by examining these languages side-by-side. You’ll learn something new from each, and best of all, you’ll learn how to learn a language quickly.
2010-10-27
The Agile Samurai
Here are three simple truths about software development:
1. You can’t gather all the requirements up front.
2. The requirements you do gather will change.
3. There is always more to do than time and money will allow.
Those are the facts of life. But you can deal with those facts (and more) by becoming a fierce software-delivery professional, capable of dispatching the most dire of software projects and the toughest delivery schedules with ease and grace.
2010-09-15
Hello, Android (3rd edition)
Google’s Android is shaking up the mobile market in a big way. With Android, you can write programs that run on any compatible cell phone or tablet in the world. It’s a mobile platform you can’t afford not to learn, and this book gets you started. Hello, Android has been updated to Android 2.3.3, with revised code throughout to reflect this updated version. That means that the book is now up-to-date for tablets such as the Kindle Fire. All examples were tested for forwards and backwards compatibility on a variety of devices and versions of Android from 1.5 to 4.0. (Note: the Kindle Fire does not support home screen widgets or wallpaper, so those samples couldn’t be tested on the Fire.)
2010-07-13
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
Note: Although the ideas aren’t language specific the author does use Java in the examples.
2010-06-24
SQL Antipatterns
Bill Karwin has helped thousands of people write better SQL and build stronger relational databases. Now he’s sharing his collection of antipatterns—the most common errors he’s identified in those thousands of requests for help.
Most developers aren’t SQL experts, and most of the SQL that gets used is inefficient, hard to maintain, and sometimes just plain wrong. This book shows you all the common mistakes, and then leads you through the best fixes. What’s more, it shows you what’s behind these fixes, so you’ll learn a lot about relational databases along the way.
2010-06-17
ExpressionEngine 2
Whether you’re building a small site or a large corporate undertaking, ExpressionEngine is becoming the tool of choice. With this Quick-Start Guide, you’ll get hands-on experience with ExpressionEngine 2 by building a complete web site from start to finish. You’ll learn techniques and best practices for customizing and optimizing your sites, including working with new ExpressionEngine 2 features, templates, and site search.
2010-04-01
ExpressionEngine Techniques
This series is currently not for sale as the videos have become out of date.
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.
2010-03-09
Metaprogramming Ruby
As a Ruby programmer, you already know how much fun it is. Now see how to unleash its power, digging under the surface and exploring the language’s most advanced features: a collection of techniques and tricks known as metaprogramming. Once the domain of expert Rubyists, metaprogramming is now accessible to programmers of all levels—from beginner to expert. Metaprogramming Ruby explains metaprogramming concepts in a down-to-earth style and arms you with a practical toolbox that will help you write great Ruby code.
2010-02-01
Language Implementation 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.
2009-12-28
Pomodoro Technique Illustrated
Do you ever look at the clock and wonder where the day went? You spent all this time at work and didn’t come close to getting everything done. Tomorrow, try something new. Use the Pomodoro Technique, originally developed by Francesco Cirillo, to work in focused sprints throughout the day. In Pomodoro Technique Illustrated, Staffan Nöteberg shows you how to organize your work to accomplish more in less time. There’s no need for expensive software or fancy planners. You can get started with nothing more than a piece of paper, a pencil, and a kitchen timer.
This title is also available as an audio book.
2009-11-10
Debug It!
Professional programmers develop a knack of unerringly zeroing in on the root cause of a bug. They can do that because they’ve written a lot of buggy code and then gained experience fixing it. This book captures all this experience—use it, and you’ll find you write fewer bugs, and the ones you do write will become easier to hunt down.
2009-11-04
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.
2009-10-20
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.
2009-08-15
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.
2009-08-05
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.
2009-07-12
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.
2009-07-02
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.
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.
2009-07-01
Using 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.
2009-06-29
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.
Coding Tony: “The book gives very good tips on how to write a good résumé, and how to avoid clichés…I recommend the book, even if you aren’t looking for a job… for now..” See the full review
2009-06-02
The Passionate Programmer (2nd edition)
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.
2009-05-06
Programming Ruby 1.9 (3rd edition)
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 has been superseded. Please see the Fourth Edition for Ruby 1.9 and 2.0, or the original PickAxe for 1.8.
2009-04-15
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.
2009-04-01
Agile Web Development with Rails (3rd edition)

This Third Edition covers Rails 2.x
The Fourth Edition covering Rails 3.2 is available in eBook and print form. now available
The newest Fourth Edition covers Rails 4.x, and is now available in beta.
PLEASE MAKE SURE YOU’RE BUYING THE RIGHT EDITION.
2009-03-01
Classy Web Development with Sinatra
This screencast series is not being sold as they are out of date—the example applications are based on the 0.9.0.3 release of 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.
2009-01-22
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.
2008-12-26
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.
2008-12-17
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.
2008-12-06
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.
2008-10-01
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.
2008-09-15
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.
2008-09-05
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.
eBook
This version, last updated Jan 2012, refreshes the RSpec examples for version 2.x. It also contains an updated section on narrative-style tests, based on Cucumber 1.x. Ian has tweaked code samples throughout the book for compatibility with Ruby 1.8.7, Ruby 1.9.2, or JRuby 1.6.5, based on what the underlying libraries support.
2008-08-05
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.
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.
2008-06-01
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.
2008-05-16
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!
2008-03-15
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,
2008-03-06
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.
2008-02-20
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.
2007-12-01
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.
2007-10-01
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.
2007-08-15
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
2007-08-01
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.
- This has a new edition! The second edition of Programming Erlang is now available in beta.
2007-07-01
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. |
2007-05-01
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!
This book covers ANTLR 3. Please see the new edition, The Definitive ANTLR 4 Reference, which covers ANTLR 4.
2007-05-01
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. |
2007-03-01
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.
2007-01-01
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.
2007-01-01
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.
2006-07-01
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.
2006-06-01
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
2006-05-01
Google Maps API (2nd edition)
This is the second edition of this Friday, which has been rewritten to use the Google Maps V2 API.
2006-05-01
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.
2006-04-01
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.
2005-09-01
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.
2005-06-01
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!
2005-04-01
Programming Ruby (2nd edition)
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?
If you want to use Ruby 1.9, or Ruby 2.0, then check out our new book Programming Ruby 1.9 & 2.0.
Alternatively, if you want to continue to use Ruby 1.8, then use the book on this page.
For various technical reasons, the eBook version of this edition is a PDF only: epub and mobi versions of this edition are NOT be available.
2004-10-01
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.
2004-07-01
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.
For various technical reasons, the eBook version is a PDF: epub and mobi versions of this title will NOT be available.
2003-09-01
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 classic title is regularly featured on software development “Top Ten” lists, and is issued by many corporations to new hires.
We wrote this book before we created our publishing business, and we do not publish it. The Pragmatic Programmer is published by Addison Wesley, and may not contain the same ebook features or format the same as our Pragmatic Bookshelf books. Paperbacks are available wherever old-fashioned paperback books are sold, and the ebook is available here—all available ebook formats for one price, with no restrictive DRM.
For more on The Pragmatic Programmer have a look at the Pragmatic Programmer Resources page.
1999-10-01










































































































































