small medium large xlarge

Your Code As a Crime Scene; New PragPub Issue

December 03, 2014

Whodunnit? That's the central question of murder mystery plots. And many times, the same question can be asked of your code base. Maybe the who is you.

Your Code As a Crime Scene ( is now available in beta.

Check it out, and improve your code before you have a real murder mystery on your hands.

And be sure to read this month's issue of PragPub magazine: all about Resource Oriented Computing. Don't miss it!

Your Code As a Crime Scene: Use Forensic Techniques to Arrest Defects, Bottlenecks, and Bad Design in Your Programs

Software is a living entity that's constantly changing. To understand software systems, we need to know where they came from and how they evolved. By mining commit data and analyzing the history of your code, you can start fixes ahead of time to eliminate broken designs, maintenance issues, and team productivity bottlenecks.

In this book, you'll learn forensic psychology techniques to successfully maintain your software. You'll create a geographic profile from your commit data to find hotspots, and apply temporal coupling concepts to uncover hidden relationships between unrelated areas in your code. You'll also measure the effectiveness of your code improvements. You'll learn how to apply these techniques on projects both large and small. For small projects, you'll get new insights into your design and how well the code fits your ideas. For large projects, you'll identify the good and the fragile parts.

Large-scale development is also a social activity, and the team's dynamics influence code quality. That's why this book shows you how to uncover social biases when analyzing the evolution of your system. You’ll use commit messages as eyewitness accounts to what is really happening in your code. Finally, you'll put it all together by tracking organizational problems in the code and finding out how to fix them. Come join the hunt for better code!

Now available in beta from

December PragPub

For half a century, we’ve been building software that makes certain broad assumptions about operating systems versus applications and data versus code. For the past quarter of a century, we’ve been deploying a lot of that code in a space that makes its own, somewhat different, assumptions: the World Wide Web. Yet the code underlying today’s web apps usually doesn’t look all that different from the earliest C code that Dennis Ritchie wrote.

It’s not that there haven’t been new and empowering paradigms.

Object Oriented Programming burst on the scene with some deep and powerful ideas about messaging… but then, because people took its name too seriously, it became all about objects and classes.

Resource Oriented Computing grew from that same root, but kept the focus on messaging. The result is that, in Resource Oriented Computing, the relationship between code and data becomes more balanced and respectful, and distinctions like application program versus operating system become academic.

Resource Oriented Computing takes its inspiration from that extremely long-running and infinitely scalable and incomparably successful software project, the World Wide Web. It is a new/old paradigm that asks the question: shouldn’t your app work the way the Web does?

As the articles by Ron Hitchens, Brian Sletten, and Tom Guerens in the December issue of PragPub show, Resource Oriented Computing is a very different way of programming. It’s not microservices, although there are similarities. It’s not just REST-based app development, although it encompasses that model. It’s more. And in terms of lines of code you need to write, it can be less.

This month’s PragPub explores the ideas behind Resource Oriented Computing, compares it to more familiar approaches, and introduces you to a platform that will let you get to Hello World and beyond with this different take on software development.

We’re also introducing a new columnist in this issue: Marcus Blankenship brings his expertise and insights on how to deal with the challenges of being a new manager or team leader. Also, regular contributors Johanna Rothman and Andy Lester talk about the challenges of dealing with The New Guy (or of being The New Guy), Antonio Cangiano reveals all the hot new programming books, and Dan Wohlbruck digs into the history of programming languages.

Now available at

Upcoming Author Appearances

  • 2014-12-04 Chris Adamson, CocoaConf Atlanta
  • 2014-12-05 Janie Clayton, CocoaConf Atlanta; Atlanta, GA
  • 2014-12-09 Johanna Rothman, Management Myths Webinar
  • Did You Know?

    We publish books across a range of technologies for folks at different levels of abilities, all the way from novice to expert. If you haven't browsed all of our titles recently, come take a look:

    Agile Practices • Android, iPhone, and Mobile Programming • Career Development • Cool Things for Smart People • DIY & Hardware • For Beginners • Gaming • Java and JVM Languages • Mac, iPhone, and iPad Programming • Pragmatic exPress • Ruby and Rails • Testing, Design, and Cloud Computing • Tools, Frameworks, Languages • Web 2.0+

    Come check out all our categories at

    Don't Get Left Out

    Are your friends jealous that you get these spiffy email newsletters and they don't? Clue them in that all they need to do is create an account on (email address and password is all it takes) and select the checkbox to receive newsletters.

    Are you following us on Twitter and/or Facebook? Here's where you can find us and keep up with the latest news and commentary, and occasional discounts:

    Tell your friends! Tweet this

    Follow us on Twitter: @pragprog, @pragpub, Andy @PragmaticAndy and Dave @pragdave.

    Coming Soon:

    • Rails 4 Test Prescriptions in print
    • The VimL Primer
    • Arduino: A Quick Start Guide, Second Edition
    • Hello, Android, Fourth Edition
    • Metaprogramming Elixir

    Recently Released:

    Thanks for your continued support,

    Dave & Andy The Pragmatic Programmers

    Books • eBooks • PragPub Magazine • Audiobooks and Screencasts