Clojure Programming


Chas Emerick - 2011
    This book helps you learn the fundamentals of Clojure with examples relating it to the languages you know already, in the domains and topics you work with every day. See how this JVM language can help eliminate unnecessary complexity from your programming practice and open up new options for solving the most challenging problems. Clojure Programming demonstrates the language's flexibility by showing how it can be used for common tasks like web programming and working with databases, up through more demanding applications that require safe, effective concurrency and parallelism, data and statistical analysis, and more. This in-depth look helps tie together the full Clojure development experience, from how to organize your project and an introduction to Clojure build tooling, to a tutorial on how to make the most of Clojure’s REPL during development, and how to deploy your finished application in a cloud environment.Learn how to use Clojure without losing your investment in the Java platform Understand the advantages of Clojure as an efficient Lisp for the JVM See how Clojure is used today in several practical domains Discover how Clojure eliminates the need for many verbose and complicated design patterns Deploy large web applications across tens or hundreds of cloud nodes with Clojure

The Art of Readable Code


Dustin Boswell - 2010
    Over the past five years, authors Dustin Boswell and Trevor Foucher have analyzed hundreds of examples of "bad code" (much of it their own) to determine why they’re bad and how they could be improved. Their conclusion? You need to write code that minimizes the time it would take someone else to understand it—even if that someone else is you.This book focuses on basic principles and practical techniques you can apply every time you write code. Using easy-to-digest code examples from different languages, each chapter dives into a different aspect of coding, and demonstrates how you can make your code easy to understand.Simplify naming, commenting, and formatting with tips that apply to every line of codeRefine your program’s loops, logic, and variables to reduce complexity and confusionAttack problems at the function level, such as reorganizing blocks of code to do one task at a timeWrite effective test code that is thorough and concise—as well as readable"Being aware of how the code you create affects those who look at it later is an important part of developing software. The authors did a great job in taking you through the different aspects of this challenge, explaining the details with instructive examples." —Michael Hunger, passionate Software Developer

Advanced Programming in the UNIX Environment


W. Richard Stevens - 1992
    Rich Stevens describes more than 200 system calls and functions; since he believes the best way to learn code is to read code, a brief example accompanies each description.Building upon information presented in the first 15 chapters, the author offers chapter-long examples teaching you how to create a database library, a PostScript printer driver, a modem dialer, and a program that runs other programs under a pseudo terminal. To make your analysis and understanding of this code even easier, and to allow you to modify it, all of the code in the book is available via UUNET.A 20-page appendix provides detailed function prototypes for all the UNIX, POSIX, and ANSI C functions that are described in the book, and lists the page on which each prototype function is described in detail. Additional tables throughout the text and a thorough index make Advanced Programming in the UNIX Environment an invaluable reference tool that all UNIX programmers - beginners to experts - w

Joel on Software


Joel Spolsky - 2004
    For years, Joel Spolsky has done exactly this at www.joelonsoftware.com. Now, for the first time, you can own a collection of the most important essays from his site in one book, with exclusive commentary and new insights from joel.

Designing Sound


Andy Farnell - 2010
    Its thesis is that any sound can be generated from first principles, guided by analysis and synthesis. The text takes a practitioner's perspective, exploring the basic principles of making ordinary, everyday sounds using an easily accessed free software. Readers use the Pure Data (Pd) language to construct sound objects, which are more flexible and useful than recordings. Sound is considered as a process, rather than as data--an approach sometimes known as "procedural audio." Procedural sound is a living sound effect that can run as computer code and be changed in real time according to unpredictable events. Applications include video games, film, animation, and media in which sound is part of an interactive process. The book takes a practical, systematic approach to the subject, teaching by example and providing background information that offers a firm theoretical context for its pragmatic stance. [Many of the examples follow a pattern, beginning with a discussion of the nature and physics of a sound, proceeding through the development of models and the implementation of examples, to the final step of producing a Pure Data program for the desired sound. Different synthesis methods are discussed, analyzed, and refined throughout.] After mastering the techniques presented in Designing Sound, students will be able to build their own sound objects for use in interactive applications and other projects