Some books on algorithms are rigorous but incomplete; others cover masses of material but lack rigor. Introduction to Algorithms uniquely combines rigor and comprehensiveness. The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively...
The authors of the bestselling Beginning iPhone 3 Development are back, with the same excellent material completely updated for iOS 4 and written from the ground up using the latest version of Apple's Xcode 3. All source code has been updated to use the latest Xcode templates and current APIs, and all-new screenshots show Xcode 3 in...
The Linux Programming Interface is the definitive guide to the Linux and UNIX programming interface—the interface employed by nearly every application that runs on a Linux or UNIX system.
In this authoritative work, Linux programming expert Michael Kerrisk provides detailed descriptions of the system calls...
Parallel hardware has been ubiquitous for some time now. It’s difficult to find a laptop,
desktop, or server that doesn’t use a multicore processor. Beowulf clusters are
nearly as common today as high-powered workstations were during the 1990s, and
cloud computing could make distributed-memory systems as accessible as...
Why should a Java developer learn about functional programming (FP)? After all, hasn’t
functional programming been safely hidden in academia for decades? Isn’t objectoriented
programming (OOP) all we really need? This book explains why functional
programming has become an important tool for the challenges of our time and how...
Create physically realistic 3D Graphics environments with this introduction to the ideas and techniques behind the process. Author David H. Eberly includes simulations to introduce the key problems involved and then gradually reveals the mathematical and physical concepts needed to solve them. He then describes all the algorithmic foundations...
Web Workers is a powerful feature of HTML5 that hasn’t received very much attention.
It provides an API that allows you to run JavaScript in a separate thread that doesn’t
interfere with the user interface of your web application. This JavaScript runs in parallel
with the main renderer and any of your...
When you work with a computer, you can do several things at once. You can hear music while
you edit a document in a word processor and read your e-mail. This can be done because
your operating system allows the concurrency of tasks. Concurrent programming is about the
elements and mechanisms a platform offers to have multiple tasks...
Threading and concurrency are crucial to building high-performance Java applications -- but they have a reputation for complexity. High Performance Java Computing thoroughly demystifies these advanced development techniques. It delivers practical programming solutions, proven design patterns, and a rigorously-tested code library -- everything...
Core Data is intricate, powerful, necessary - and this book is your guide to harnessing its power. Core Data is Apple's recommended way to persist data: it's easy to use, built-in, and integrated with iCloud. You'll learn fundamental Core Data principles such as thread and memory management, and you'll discover how to...
If you have a working knowledge of Haskell, this hands-on book shows you how to use the language’s many APIs and frameworks for writing both parallel and concurrent programs. You’ll learn how parallelism exploits multicore processors to speed up computation-heavy programs, and how concurrency enables you to write programs...
Write software that draws directly on services offered by the Linux kernel and core system libraries. With this comprehensive book, Linux kernel contributor Robert Love provides you with a tutorial on Linux system programming, a reference manual on Linux system calls, and an insider’s guide to writing smarter, faster code.