Best of
Computer-Science

2012

Practical Object Oriented Design in Ruby


Sandi Metz - 2012
    The Web is awash in Ruby code that is now virtually impossible to change or extend. This text helps you solve that problem by using powerful real-world object-oriented design techniques, which it thoroughly explains using simple and practical Ruby examples. Sandi Metz has distilled a lifetime of conversations and presentations about object-oriented design into a set of Ruby-focused practices for crafting manageable, extensible, and pleasing code. She shows you how to build new applications that can survive success and repair existing applications that have become impossible to change. Each technique is illustrated with extended examples, all downloadable from the companion Web site, poodr.info. The first title to focus squarely on object-oriented Ruby application design, Practical Object-Oriented Design in Ruby will guide you to superior outcomes, whatever your previous Ruby experience. Novice Ruby programmers will find specific rules to live by; intermediate Ruby programmers will find valuable principles they can flexibly interpret and apply; and advanced Ruby programmers will find a common language they can use to lead development and guide their colleagues. This guide will help you Understand how object-oriented programming can help you craft Ruby code that is easier to maintain and upgrade Decide what belongs in a single Ruby class Avoid entangling objects that should be kept separate Define flexible interfaces among objects Reduce programming overhead costs with duck typing Successfully apply inheritance Build objects via composition Design cost-effective tests Solve common problems associated with poorly designed Ruby code

Practical Vim: Edit Text at the Speed of Thought


Drew Neil - 2012
    It's available on almost every OS--if you master the techniques in this book, you'll never need another text editor. Practical Vim shows you 120 vim recipes so you can quickly learn the editor's core functionality and tackle your trickiest editing and writing tasks. Vim, like its classic ancestor vi, is a serious tool for programmers, web developers, and sysadmins. No other text editor comes close to Vim for speed and efficiency; it runs on almost every system imaginable and supports most coding and markup languages. Learn how to edit text the "Vim way:" complete a series of repetitive changes with The Dot Formula, using one keystroke to strike the target, followed by one keystroke to execute the change. Automate complex tasks by recording your keystrokes as a macro. Run the same command on a selection of lines, or a set of files. Discover the "very magic" switch, which makes Vim's regular expression syntax more like Perl's. Build complex patterns by iterating on your search history. Search inside multiple files, then run Vim's substitute command on the result set for a project-wide search and replace. All without installing a single plugin! You'll learn how to navigate text documents as fast as the eye moves--with only a few keystrokes. Jump from a method call to its definition with a single command. Use Vim's jumplist, so that you can always follow the breadcrumb trail back to the file you were working on before. Discover a multilingual spell-checker that does what it's told.Practical Vim will show you new ways to work with Vim more efficiently, whether you're a beginner or an intermediate Vim user. All this, without having to touch the mouse.What You Need: Vim version 7

The Linux Command Line


William E. Shotts Jr. - 2012
    Available here:readmeaway.com/download?i=1593279523The Linux Command Line, 2nd Edition: A Complete Introduction PDF by William ShottsRead The Linux Command Line, 2nd Edition: A Complete Introduction PDF from No Starch Press,William ShottsDownload William Shotts’s PDF E-book The Linux Command Line, 2nd Edition: A Complete Introduction

Operating Systems: Three Easy Pieces


Remzi H. Arpaci-Dusseau - 2012
    Topics are broken down into three major conceptual pieces: Virtualization, Concurrency, and Persistence. Includes all major components of modern systems including scheduling, virtual memory management, disk subsystems and I/O, file systems, and even a short introduction to distributed systems.

The Nature of Code


Daniel Shiffman - 2012
    Readers will progress from building a basic physics engine to creating intelligent moving objects and complex systems, setting the foundation for further experiments in generative design. Subjects covered include forces, trigonometry, fractals, cellular automata, self-organization, and genetic algorithms. The book's examples are written in Processing, an open-source language and development environment built on top of the Java programming language. On the book's website (http://www.natureofcode.com), the examples run in the browser via Processing's JavaScript mode.

The Principles of Object-Oriented JavaScript


Nicholas C. Zakas - 2012
    It has no concept of classes, and you don't even need to define any objects in order to write code. But don't be fooled—JavaScript is an incredibly powerful and expressive object-oriented language that puts many design decisions right into your hands.In The Principles of Object-Oriented JavaScript, Nicholas C. Zakas thoroughly explores JavaScript's object-oriented nature, revealing the language's unique implementation of inheritance and other key characteristics. You'll learn: The difference between primitive and reference values What makes JavaScript functions so unique The various ways to create objects How to define your own constructors How to work with and understand prototypes Inheritance patterns for types and objects The Principles of Object-Oriented JavaScript will leave even experienced developers with a deeper understanding of JavaScript. Unlock the secrets behind how objects work in JavaScript so you can write clearer, more flexible, and more efficient code.

Learning From Data: A Short Course


Yaser S. Abu-Mostafa - 2012
    Its techniques are widely applied in engineering, science, finance, and commerce. This book is designed for a short course on machine learning. It is a short course, not a hurried course. From over a decade of teaching this material, we have distilled what we believe to be the core topics that every student of the subject should know. We chose the title `learning from data' that faithfully describes what the subject is about, and made it a point to cover the topics in a story-like fashion. Our hope is that the reader can learn all the fundamentals of the subject by reading the book cover to cover. ---- Learning from data has distinct theoretical and practical tracks. In this book, we balance the theoretical and the practical, the mathematical and the heuristic. Our criterion for inclusion is relevance. Theory that establishes the conceptual framework for learning is included, and so are heuristics that impact the performance of real learning systems. ---- Learning from data is a very dynamic field. Some of the hot techniques and theories at times become just fads, and others gain traction and become part of the field. What we have emphasized in this book are the necessary fundamentals that give any student of learning from data a solid foundation, and enable him or her to venture out and explore further techniques and theories, or perhaps to contribute their own. ---- The authors are professors at California Institute of Technology (Caltech), Rensselaer Polytechnic Institute (RPI), and National Taiwan University (NTU), where this book is the main text for their popular courses on machine learning. The authors also consult extensively with financial and commercial companies on machine learning applications, and have led winning teams in machine learning competitions.

Machine Learning: A Probabilistic Perspective


Kevin P. Murphy - 2012
    Machine learning provides these, developing methods that can automatically detect patterns in data and then use the uncovered patterns to predict future data. This textbook offers a comprehensive and self-contained introduction to the field of machine learning, based on a unified, probabilistic approach.The coverage combines breadth and depth, offering necessary background material on such topics as probability, optimization, and linear algebra as well as discussion of recent developments in the field, including conditional random fields, L1 regularization, and deep learning. The book is written in an informal, accessible style, complete with pseudo-code for the most important algorithms. All topics are copiously illustrated with color images and worked examples drawn from such application domains as biology, text processing, computer vision, and robotics. Rather than providing a cookbook of different heuristic methods, the book stresses a principled model-based approach, often using the language of graphical models to specify models in a concise and intuitive way. Almost all the models described have been implemented in a MATLAB software package—PMTK (probabilistic modeling toolkit)—that is freely available online. The book is suitable for upper-level undergraduates with an introductory-level college math background and beginning graduate students.

Open Source Intelligence Techniques: Resources for Searching and Analyzing Online Information


Michael Bazzell - 2012
    In this book, he shares his methods in great detail. Each step of his process is explained throughout twenty-five chapters of specialized websites, software solutions, and creative search techniques. Over 250 resources are identified with narrative tutorials and screen captures. This book will serve as a reference guide for anyone that is responsible for the collection of online content. It is written in a hands-on style that encourages the reader to execute the tutorials as they go. The search techniques offered will inspire analysts to "think outside the box" when scouring the internet for personal information. Much of the content of this book has never been discussed in any publication. Always thinking like a hacker, the author has identified new ways to use various technologies for an unintended purpose. This book will greatly improve anyone's online investigative skills. Among other techniques, you will learn how to locate: Hidden Social Network Content Cell Phone Subscriber Information Deleted Websites & Posts Missing Facebook Profile Data Full Twitter Account Data Alias Social Network Profiles Free Investigative Software Useful Browser Extensions Alternative Search Engine Results Website Owner Information Photo GPS & Metadata Live Streaming Social Content Social Content by Location IP Addresses of Users Additional User Accounts Sensitive Documents & Photos Private Email Addresses Duplicate Video Posts Mobile App Network Data Unlisted Addresses s Public Government Records Document Metadata Rental Vehicle Contracts Online Criminal Activity Personal Radio Communications Compromised Email Information Automated Collection Solutions Linux Investigative Programs Dark Web Content (Tor) Restricted YouTube Content Hidden Website Details Vehicle Registration Details

Android Programming: The Big Nerd Ranch Guide


Brian Hardy - 2012
    Based on Big Nerd Ranch's popular Android Bootcamp course, this guide will lead you through the wilderness using hands-on example apps combined with clear explanations of key concepts and APIs. This book focuses on practical techniques for developing apps compatible with all versions of Android widely used today (Android 2.2 - 4.2). Write and run code every step of the way - creating apps that catalog crime scenes, browse photos, track your jogging route, and more. Each chapter and app has been designed and tested to provide the knowledge and experience you need to get started in Android development. Write and run code every step of the way -- creating apps that catalog crime scenes, browse photos, track your jogging route, and more. Each chapter and app has been designed and tested to provide the knowledge and experience you need to get started in Android development."Big Nerd Ranch provided the training we needed to get hundreds of engineers building skillfully on Android. This book is a great distillation of that training and will be a huge help to anyone looking to ramp up as well." - Mike Shaver, Director of Mobile Engineering, Facebook"...a must-have for the developer just starting in Android or ready for more advanced techniques. I was impressed with this book's content and clarity of presentation. The authors explain simple and complex Android topics with equal ease." - James Steele, author of The Android Developer's Cookbook

Elements of Programming Interviews: The Insiders' Guide C++


Adnan Aziz - 2012
    The problems are challenging, well-motivated, and accessible. They are representative of the questions asked at interviews at the most exciting companies.The book begins with a summary of patterns for data structure, algorithms, and problem solving that will help you solve the most challenging interview problems. This is followed by chapters on basic and advanced data structures, algorithm design, concurrency, system design, probability and discrete mathematics. Each chapter starts with a brief review of key concepts and results followed by a deep and wide set of questions.EPI concludes with a summary of the nontechnical aspects of interviewing, including common mistakes, strategies for a great interview, perspectives from across the table, negotiating the best offer, and much more."This book is the best compilation of programming related problems I have seen. It is a great resource for a diverse set of topics when preparing for technical interviews, as a quick refresher in a subject area or when you are just looking for a brain teaser to challenge yourself." Shashank Gupta / Scaligent, formerly Engineering Manager, Amazon.com, Senior Engineering Manager, Yahoo!, Manager of Software Development, Cisco Systems

Ruby Under a Microscope


Pat Shaughnessy - 2012
    Author Pat Shaughnessy takes a scientific approach, laying out a series of experiments with Ruby code to take you behind the scenes of how programming languages work. You'll even find information on JRuby and Rubinius (two alternative implementations of Ruby), as well as in-depth explorations of Ruby's garbage collection algorithm. Ruby Under a Microscope will teach you:How a few computer science concepts underpin Ruby's complex implementation How Ruby executes your code using a virtual machine How classes and modules are the same inside Ruby How Ruby employs algorithms originally developed for Lisp How Ruby uses grammar rules to parse and understand your code How your Ruby code is translated into a different language by a compilerNo programming language needs to be a black box. Whether you're already intrigued by language implementation or just want to dig deeper into Ruby, you'll find Ruby Under a Microscope a fascinating way to become a better programmer. Covers Ruby 2.x, 1.9 and 1.8

Windows Internals, Part 1: Covering Windows Server 2008 R2 and Windows 7


Mark E. Russinovich - 2012
    Led by three renowned internals experts, this classic guide is fully updated for Windows 7 and Windows Server 2008 R2—and now presents its coverage in two volumes.As always, you get critical insider perspectives on how Windows operates. And through hands-on experiments, you’ll experience its internal behavior firsthand—knowledge you can apply to improve application design, debugging, system performance, and support.In Part 1, you will:Understand how core system and management mechanisms work—including the object manager, synchronization, Wow64, Hyper-V, and the registryExamine the data structures and activities behind processes, threads, and jobsGo inside the Windows security model to see how it manages access, auditing, and authorizationExplore the Windows networking stack from top to bottom—including APIs, BranchCache, protocol and NDIS drivers, and layered servicesDig into internals hands-on using the kernel debugger, performance monitor, and other tools

R Graphics Cookbook: Practical Recipes for Visualizing Data


Winston Chang - 2012
    Each recipe tackles a specific problem with a solution you can apply to your own project, and includes a discussion of how and why the recipe works.Most of the recipes use the ggplot2 package, a powerful and flexible way to make graphs in R. If you have a basic understanding of the R language, you're ready to get started.Use R's default graphics for quick exploration of dataCreate a variety of bar graphs, line graphs, and scatter plotsSummarize data distributions with histograms, density curves, box plots, and other examplesProvide annotations to help viewers interpret dataControl the overall appearance of graphicsRender data groups alongside each other for easy comparisonUse colors in plotsCreate network graphs, heat maps, and 3D scatter plotsStructure data for graphing

Windows Internals, Part 2: Covering Windows Server 2008 R2 and Windows 7


Mark E. Russinovich - 2012
    Led by three renowned internals experts, this classic guide is fully updated for Windows 7 and Windows Server 2008 R2—and now presents its coverage in two volumes.As always, you get critical insider perspectives on how Windows operates. And through hands-on experiments, you’ll experience its internal behavior firsthand—knowledge you can apply to improve application design, debugging, system performance, and support.In Part 2, you’ll examine:Core subsystems for I/O, storage, memory management, cache manager, and file systems Startup and shutdown processes Crash-dump analysis, including troubleshooting tools and techniques

NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence


Pramod J. Sadalage - 2012
    Advocates of NoSQL databases claim they can be used to build systems that are more performant, scale better, and are easier to program." ""NoSQL Distilled" is a concise but thorough introduction to this rapidly emerging technology. Pramod J. Sadalage and Martin Fowler explain how NoSQL databases work and the ways that they may be a superior alternative to a traditional RDBMS. The authors provide a fast-paced guide to the concepts you need to know in order to evaluate whether NoSQL databases are right for your needs and, if so, which technologies you should explore further. The first part of the book concentrates on core concepts, including schemaless data models, aggregates, new distribution models, the CAP theorem, and map-reduce. In the second part, the authors explore architectural and design issues associated with implementing NoSQL. They also present realistic use cases that demonstrate NoSQL databases at work and feature representative examples using Riak, MongoDB, Cassandra, and Neo4j. In addition, by drawing on Pramod Sadalage's pioneering work, "NoSQL Distilled" shows how to implement evolutionary design with schema migration: an essential technique for applying NoSQL databases. The book concludes by describing how NoSQL is ushering in a new age of Polyglot Persistence, where multiple data-storage worlds coexist, and architects can choose the technology best optimized for each type of data access.

Scala for the Impatient


Cay S. Horstmann - 2012
    Using Scala, you can write programs more concisely than in Java, as well as leverage the full power of concurrency. Since Scala runs on the JVM, it can access any Java library and is interoperable with Java frameworks. Scala for the Impatient concisely shows developers what Scala can do and how to do it. In this book, Cay Horstmann, the principal author of the international best-selling Core Java(TM), offers a rapid, code-based introduction that's completely practical. Horstmann introduces Scala concepts and techniques in "blog-sized" chunks that you can quickly master and apply. Hands-on activities guide you through well-defined stages of competency, from basic to expert. Coverage includes Getting started quickly with Scala's interpreter, syntax, tools, and unique idioms Mastering core language features: functions, arrays, maps, tuples, packages, imports, exception handling, and more Becoming familiar with object-oriented programming in Scala: classes, inheritance, and traits Using Scala for real-world programming tasks: working with files, regular expressions, and XML Working with higher-order functions and the powerful Scala collections library Leveraging Scala's powerful pattern matching and case classes Creating concurrent programs with Scala actors Implementing domain-specific languages Understanding the Scala type system Applying advanced "power tools" such as annotations, implicits, and delimited continuations Scala is rapidly reaching a tipping point that will reshape the experience of programming. This book will help object-oriented programmers build on their existing skills, allowing them to immediately construct useful applications as they gradually master advanced programming techniques.

SSH Mastery: OpenSSH, PuTTY, Tunnels and Keys


Michael W. Lucas - 2012
    But most people only use the bare minimum SSH offers. Used properly, SSH simplifies your job and improves security.This book saves you from sifting a decade of obsolete online tutorials and quickly gets you running:SSH with the OpenSSH server and the PuTTY and OpenSSH clients. You will:Eliminate passwords.Manage access to your SSH server by users, groups, addresses, and moreSecurely move files around your networkForward graphic displays from one host to anotherForward TCP/IP connections Centrally manage host keys and client configurationsUse SSH as a secure transport for other applicationsSecure applications run over SSHBuild Virtual Private Networks with OpenSSHAnd more! This book quickly and painlessly simplifies life for anyone using SSH.Review"Michael W. Lucas is one of my favorite technical authors, and every book he writes is a must-read for IT professionals." - Richard Bejtlich, CSO, MANDIANT, and TaoSecurity blogger"...SSH Mastery is a title that Unix users and system administrators like myself will want to keep within reach..." - Peter Hansteen"This stripping-down of the usual tech-book explanations gives it the immediacy of extended documentation on the Internet. ...an in-depth presentation from someone who used OpenSSH to do a number of things, and paid attention while doing it." - Justin Sherrill, DragonFly BSD Digest

The Twelve-Factor App


Adam Wiggins - 2012
    The twelve-factor app is a methodology for building software-as-a-service apps that: - Use declarative formats for setup automation, to minimize time and cost for new developers joining the project; - Have a clean contract with the underlying operating system, offering maximum portability between execution environments; - Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration; - Minimize divergence between development and production, enabling continuous deployment for maximum agility; - And can scale up without significant changes to tooling, architecture, or development practices.The twelve-factor methodology can be applied to apps written in any programming language, and which use any combination of backing services (database, queue, memory cache, etc).

The C++ Standard Library: A Tutorial and Reference


Nicolai M. Josuttis - 2012
    The library, however, is not self-explanatory. To make full use of its components–and to benefit from their power–you need a resource that does far more than list the classes and their functions.The C++ Standard Library: A Tutorial and Reference, Second Edition, describes this library as now incorporated into the new ANSI/ISO C++ language standard (C++11). The book provides comprehensive documentation of each library component, including an introduction to its purpose and design; clearly written explanations of complex concepts; the practical programming details needed for effective use; traps and pitfalls; the exact signature and definition of the most important classes and functions; and numerous examples of working code. The book focuses in particular on the Standard Template Library (STL), examining containers, iterators, function objects, and STL algorithms.The book covers all the new C++11 library components, includingConcurrencyFractional arithmeticClocks and timersTuplesNew STL containersNew STL algorithmsNew smart pointersNew locale facetsRandom numbers and distributionsType traits and utilitiesRegular expressionsThe book also examines the new C++ programming style and its effect on the standard library, including lambdas, range-based for loops, move semantics, and variadic templates.

Comptia A+ Certification All-In-One Exam Guide: Exams 220-801 & 220-802


Mike Meyers - 2012
    Offers a review of the examination that includes test-taking strategies, discussion of relevant concepts, practice questions, and detailed answers.

Async in C# 5.0


Alex Davies - 2012
    Along with a clear introduction to asynchronous programming, you get an in-depth look at how the async feature works and why you might want to use it in your application.Written for experienced C# programmers—yet approachable for beginners—this book is packed with code examples that you can extend for your own projects.Write your own asynchronous code, and learn how async saves you from this messy choreDiscover new performance possibilities in ASP.NET web server codeExplore how async and WinRT work together in Windows 8 applicationsLearn the importance of the await keyword in async methodsUnderstand which .NET thread is running your code—and at what points in the programUse the Task-based Asynchronous Pattern (TAP) to write asynchronous APIs in .NETTake advantage of parallel computing in modern machinesMeasure async code performance by comparing it with alternatives

Effective C++ Digital Collection: 140 Ways to Improve Your Programming


Scott Meyers - 2012
    All three are finally available together in this eBook collection."Effective C++" has been embraced by hundreds of thousands of programmers worldwide. The reason is clear: Scott Meyers's practical approach to C++ describes the rules of thumb used by the experts to produce clear, correct, efficient code. The book is organized around 55 specific guidelines, each of which describes a way to write better C++. Each is backed by concrete examples.In "More Effective C++," Meyers presents 35 new ways to improve your programs and designs. Drawing on years of experience, Meyers explains how to write software that is more effective: more efficient, more robust, more consistent, more portable, and more reusable. In short, how to write C++ software that's just plain better.In "Effective STL," Meyers goes beyond describing what's in the STL to show you how to use it. Each of the book's 50 guidelines is backed by Meyers's legendary analysis and incisive examples, so you'll learn not only what to do, but also when to do it--and why.Together in this collection, these books include the following important features:Expert guidance on the design of effective classes, functions, templates, and inheritance hierarchies. Applications of new "TR1" standard library functionality, along with comparisons to existing standard library components. Insights into differences between C++ and other languages (e.g., Java, C#, C) that help developers from those languages assimilate "the C++ way" of doing things. Proven methods for improving program efficiency, including incisive examinations of the time/space costs of C++ language features Comprehensive descriptions of advanced techniques used by C++ experts, including placement new, virtual constructors, smart pointers, reference counting, proxy classes, and double-dispatching Examples of the profound impact of exception handling on the structure and behavior of C++ classes and functions Practical treatments of new language features, including bool, mutable, explicit, namespaces, member templates, the Standard Template Library, and more. If your compilers don't yet support these features, Meyers shows you how to get the job done without them. Advice on choosing among standard STL containers (like vector and list), nonstandard STL containers (like hash_set and hash_map), and non-STL containers (like bitset). Techniques to maximize the efficiency of the STL and the programs that use it. Insights into the behavior of iterators, function objects, and allocators, including things you should not do. Guidance for the proper use of algorithms and member functions whose names are the same (e.g., find), but whose actions differ in subtle (but important) ways. Discussions of potential portability problems, including straightforward ways to avoid them.

Everyday Cryptography: Fundamental Principles and Applications


Keith M. Martin - 2012
    This book presents a comprehensive introduction to the role that cryptography plays in providing information security for technologies such as the Internet, mobile phones, payment cards, and wireless local area networks. Focusing on the fundamental principles that ground modern cryptography as they arise in modern applications, it avoids both an over-reliance on transient current technologies and over-whelming theoretical research.Everyday Cryptography is a self-contained and widely accessible introductory text. Almost no prior knowledge of mathematics is required since the book deliberately avoids the details of the mathematical techniques underpinning cryptographic mechanisms, though a short appendix is included for those looking for a deeper appreciation of some of the concepts involved. By the end of this book, the reader will not only be able to understand the practical issues concerned with the deployment of cryptographic mechanisms, including the management of cryptographic keys, but will also be able to interpret future developments in this fascinating and increasingly important area of technology.

ZeroMQ: Messaging for Many Applications


Pieter Hintjens - 2012
    With this quick-paced guide, you’ll learn hands-on how to use this scalable, lightweight, and highly flexible networking tool for exchanging messages among clusters, the cloud, and other multi-system environments. ØMQ maintainer Pieter Hintjens takes you on a tour of real-world applications, using extended examples in C to help you work with ØMQ’s API, sockets, and patterns. Learn how to use specific ØMQ programming techniques, build multithreaded applications, and create your own messaging architectures. You’ll discover how ØMQ works with several programming languages and most operating systems—with little or no cost. Learn ØMQ’s main patterns: request-reply, publish-subscribe, and pipeline Work with ØMQ sockets and patterns by building several small applications Explore advanced uses of ØMQ’s request-reply pattern through working examples Build reliable request-reply patterns that keep working when code or hardware fails Extend ØMQ’s core pub-sub patterns for performance, reliability, state distribution, and monitoring Learn techniques for building a distributed architecture with ØMQ Discover what’s required to build a general-purpose framework for distributed applications

Computer Vision: Models, Learning, and Inference


Simon J.D. Prince - 2012
    It shows how to use training data to learn the relationships between the observed image data and the aspects of the world that we wish to estimate, such as the 3D structure or the object class, and how to exploit these relationships to make new inferences about the world from new image data. With minimal prerequisites, the book starts from the basics of probability and model fitting and works up to real examples that the reader can implement and modify to build useful vision systems. Primarily meant for advanced undergraduate and graduate students, the detailed methodological presentation will also be useful for practitioners of computer vision. - Covers cutting-edge techniques, including graph cuts, machine learning, and multiple view geometry. - A unified approach shows the common basis for solutions of important computer vision problems, such as camera calibration, face recognition, and object tracking. - More than 70 algorithms are described in sufficient detail to implement. - More than 350 full-color illustrations amplify the text. - The treatment is self-contained, including all of the background mathematics. - Additional resources at www.computervisionmodels.com.

Coding Interview Questions


Narasimha Karumanchi - 2012
    Peeling Data Structures and Algorithms: * Programming puzzles for interviews * Campus Preparation * Degree/Masters Course Preparation * Instructor's * GATE Preparation * Big job hunters: Microsoft, Google, Amazon, Yahoo, Flip Kart, Adobe, IBM Labs, Citrix, Mentor Graphics, NetApp, Oracle, Webaroo, De-Shaw, Success Factors, Face book, McAfee and many more * Reference Manual for working people

Performance Modeling and Design of Computer Systems: Queueing Theory in Action


Mor Harchol-Balter - 2012
    The book is written with computer scientists and engineers in mind and is full of examples from computer systems, as well as manufacturing and operations research. Fun and readable, the book is highly approachable, even for undergraduates, while still being thoroughly rigorous and also covering a much wider span of topics than many queueing books. Readers benefit from a lively mix of motivation and intuition, with illustrations, examples, and more than 300 exercises - all while acquiring the skills needed to model, analyze, and design large-scale systems with good performance and low cost. The exercises are an important feature, teaching research-level counterintuitive lessons in the design of computer systems. The goal is to train readers not only to customize existing analyses but also to invent their own.

Arduino Workshop: A Hands-On Introduction with 65 Projects


John Boxall - 2012
    With an almost unlimited range of input and output add-ons, sensors, indicators, displays, motors, and more, the Arduino offers you countless ways to create devices that interact with the world around you.In Arduino Workshop, you'll learn how these add-ons work and how to integrate them into your own projects. You'll start off with an overview of the Arduino system but quickly move on to coverage of various electronic components and concepts. Hands-on projects throughout the book reinforce what you've learned and show you how to apply that knowledge. As your understanding grows, the projects increase in complexity and sophistication.Among the book's 65 projects are useful devices like:A digital thermometer that charts temperature changes on an LCD A GPS logger that records data from your travels, which can be displayed on Google Maps A handy tester that lets you check the voltage of any single-cell battery A keypad-controlled lock that requires a secret code to open You'll also learn to build Arduino toys and games like:An electronic version of the classic six-sided die A binary quiz game that challenges your number conversion skills A motorized remote control tank with collision detection to keep it from crashingArduino Workshop will teach you the tricks and design principles of a master craftsman. Whatever your skill level, you'll have fun as you learn to harness the power of the Arduino for your own DIY projects.

Advanced Apex Programming for Salesforce.com and Force.com


Dan Appleman - 2012
    Intended for developers who are already familiar with the Apex language, and experienced Java and C# developers who are moving to Apex, this book starts where the Force.com documentation leaves off. Instead of trying to cover all of the features of the platform, Advanced Apex programming focuses entirely on the Apex language and core design patterns. You’ll learn how to truly think in Apex – to embrace limits and bulk patterns. You’ll see how to develop architectures for efficient and reliable trigger handling, and for asynchronous operations. You’ll discover that best practices differ radically depending on whether you are building software for a specific organization or for a managed package. And you’ll find approaches for incorporating testing and diagnostic code that can dramatically improve the reliability and deployment of Apex software, and reduce your lifecycle and support costs. Based on his experience both as a consultant and as architect of a major AppExchange package, Dan Appleman focuses on the real-world problems and issues that are faced by Apex developers every day, along with the obscure problems and surprises that can sneak up on you if you are unprepared.

Pro Multithreading and Memory Management for IOS and OS X: With Arc, Grand Central Dispatch, and Blocks


Kazuki Sakamoto - 2012
    Automatic Reference Counting is Apple's game-changing memory management system, new to Xcode 4.2. Pro Multithreading and Memory Management for iOS and OS X shows you how ARC works and how best to incorporate it into your applications. Grand Central Dispatch (GCD) and blocks are key to developing great apps, allowing you to control threads for maximum performance.If for you, multithreading is an unsolved mystery and ARC is unexplored territory, then this is the book you'll need to make these concepts clear and send you on your way to becoming a master iOS and OS X developer.What are blocks? How are they used with GCD?Multithreading with GCDManaging objects with ARC

Why Philosophers Should Care About Computational Complexity


Scott Aaronson - 2012
    In this essay, I offer a detailed case that one would be wrong. In particular, I argue that computational complexity theory—the field that studies the resources (such as time, space, and randomness) needed to solve computational problems—leads to new perspectives on the nature of mathematical knowledge, the strong AI debate, computationalism, the problem of logical omniscience, Hume’s problem of induction and Goodman’s grue riddle, the foundations of quantum mechanics, economic rationality, closed timelike curves, and several other topics of philosophical interest. I end by discussing aspects of complexity theory itself that could benefit from philosophical analysis.

Introduction to 3D Game Programming with Directx 11


Frank D. Luna - 2012
    This book is divided into three main parts: basic mathematical tools, fundamental tasks in Direct3D, and techniques and special effects. Full description

What Makes It Page?: The Windows 7 (x64) Virtual Memory Manager


Enrico Martignetti - 2012
    It attempts to answer the basic question "how does it work?" As such, it does not explain how to call documented APIs and DDIs to accomplish some specific goal. There is plenty of information available on these subjects, including the MSDN Library, the WDK documentation and several excellent books. Rather, its purpose is to analyze how the Virtual Memory Manager works, simply because it is something worth knowing. With a certain mindset, it might even be something fun to know. Even though this book gives a fairly detailed description of the Virtual Memory Manager, it is not reserved for experienced kernel level programmers. Parts I and II provide information on the x64 processor and enough details on kernel mode code execution to help readers approaching these subjects for the first time. This book describes the Windows 7 x64 implementation of the Virtual Memory Manager. All of the analysis and experiments have been performed on this particular version only.

Bayesian Reasoning and Machine Learning


David Barber - 2012
    They are established tools in a wide range of industrial applications, including search engines, DNA sequencing, stock market analysis, and robot locomotion, and their use is spreading rapidly. People who know the methods have their choice of rewarding jobs. This hands-on text opens these opportunities to computer science students with modest mathematical backgrounds. It is designed for final-year undergraduates and master's students with limited background in linear algebra and calculus. Comprehensive and coherent, it develops everything from basic reasoning to advanced techniques within the framework of graphical models. Students learn more than a menu of techniques, they develop analytical and problem-solving skills that equip them for the real world. Numerous examples and exercises, both computer based and theoretical, are included in every chapter. Resources for students and instructors, including a MATLAB toolbox, are available online.

Foundations of Machine Learning


Mehryar Mohri - 2012
    It describes several important modern algorithms, provides the theoretical underpinnings of these algorithms, and illustrates key aspects for their application. The authors aim to present novel theoretical tools and concepts while giving concise proofs even for relatively advanced topics.Foundations of Machine Learning fills the need for a general textbook that also offers theoretical details and an emphasis on proofs. Certain topics that are often treated with insufficient attention are discussed in more detail here; for example, entire chapters are devoted to regression, multi-class classification, and ranking. The first three chapters lay the theoretical foundation for what follows, but each remaining chapter is mostly self-contained. The appendix offers a concise probability review, a short introduction to convex optimization, tools for concentration bounds, and several basic properties of matrices and norms used in the book.The book is intended for graduate students and researchers in machine learning, statistics, and related areas; it can be used either as a textbook or as a reference text for a research seminar.

Working with TCP Sockets


Jesse Storimer - 2012
    It starts with the fundamentals that are portable to any environment. Then shows you the beautiful abstractions that Ruby has layered on top.Learning this stuff doesn't just apply to Ruby: every modern programming language has support for networking. Every language has their own way of doing things, but all modern languages support the Berkeley Sockets API. There's certainly plenty of syntactic sugar, but below the sugar you can use the same Sockets API that you would in C, Java, Python, whatever. This is portable knowledge that will serve you for many years to come.http://workingwithtcpsockets.com/

Data Structures and Algorithms in Python


Michael T. Goodrich - 2012
     Data Structures and Algorithms in Python is the first mainstream object-oriented book available for the Python data structures course. Designed to provide a comprehensive introduction to data structures and algorithms, including their design, analysis, and implementation, the text will maintain the same general structure as Data Structures and Algorithms in Java and Data Structures and Algorithms in C++.

Inside Windows Debugging: A Practical Guide to Debugging and Tracing Strategies in Windows®


Tarik Soulami - 2012
    Led by a member of the Windows Fundamentals Team at Microsoft, you’ll apply expert debugging and tracing techniques—and sharpen your C++ and C# code analysis skills—through practical examples and common scenarios. Learn why experienced developers use debuggers in every step of the development process, and not just when bugs appear.Discover how to:Go behind the scenes to examine how powerful Windows debuggers workCatch bugs early in the development cycle with static and runtime analysis toolsGain practical strategies to tackle the most common code defectsApply expert tricks to handle user-mode and kernel-mode debugging tasksImplement postmortem techniques such as JIT and dump debuggingDebug the concurrency and security aspects of your softwareUse debuggers to analyze interactions between your code and the operating systemAnalyze software behavior with Xperf and the Event Tracing for Windows (ETW) framework

Operating Systems: Principles and Practice


Thomas Anderson - 2012
    Whether you get a job at Facebook, Google, Microsoft, or any other leading-edge technology company, it is impossible to build resilient, secure, and flexible computer systems without the ability to apply operating systems concepts in a variety of settings. This book examines the both the principles and practice of modern operating systems, taking important, high-level concepts all the way down to the level of working code. Because operating systems concepts are among the most difficult in computer science, this top to bottom approach is the only way to really understand and master this important material.

Pro Wpf 4.5 in C#: Windows Presentation Foundation in .Net 4.5


Matthew MacDonald - 2012
    It blends together rich content from a wide range of sources and allows you unparalleled access to the processing power of your Windows computer.Pro WPF 4.5 in C# provides a thorough, authoritative guide to how WPF really works. Packed with no-nonsense examples and practical advice you'll learn everything you need to know in order to use WPF in a professional setting. The book begins by building a firm foundation of elementary concepts, using your existing C# skills as a frame of reference, before moving on to discuss advanced concepts and demonstrate them in a hands-on way that emphasizes the time and effort savings that can be gained.

Developing Safety-Critical Software: A Practical Guide for Aviation Software and DO-178C Compliance


Leanna Rierson - 2012
    At the same time, software technology is changing, projects are pressed to develop software faster and more cheaply, and the software is being used in more critical ways. Developing Safety-Critical Software: A Practical Guide for Aviation Software and DO-178C Compliance equips you with the information you need to effectively and efficiently develop safety-critical, life-critical, and mission-critical software for aviation. The principles also apply to software for automotive, medical, nuclear, and other safety-critical domains.An international authority on safety-critical software, the author helped write DO-178C and the U.S. Federal Aviation Administration's policy and guidance on safety-critical software. In this book, she draws on more than 20 years of experience as a certification authority, an avionics manufacturer, an aircraft integrator, and a software developer to present best practices, real-world examples, and concrete recommendations.The book includes:An overview of how software fits into the systems and safety processes Detailed examination of DO-178C and how to effectively apply the guidance Insight into the DO-178C-related documents on tool qualification (DO-330), model-based development (DO-331), object-oriented technology (DO-332), and formal methods (DO-333) Practical tips for the successful development of safety-critical software and certification Insightful coverage of some of the more challenging topics in safety-critical software development and verification, including real-time operating systems, partitioning, configuration data, software reuse, previously developed software, reverse engineering, and outsourcing and offshoringAn invaluable reference for systems and software managers, developers, and quality assurance personnel, this book provides a wealth of information to help you develop, manage, and approve safety-critical software more confidently.

Comptia A+ 220-801 and 220-802 Exam Cram


David L. Prowse - 2012
     Limited Time Offer: Buy CompTIA(R) A+ 220-801 and 220-802 Exam Cram and receive a 10% off discount code for the CompTIA A+ 220-801 and 220-802 exams. To receive your 10% off discount code:Register your product at pearsonITcertification.com/registerFollow the instructionsGo to your Account page and click on "Access Bonus Content" CompTIA(R) A+ 220-801 and 220-802 Exam Cram, Sixth Edition is the perfect study guide to help you pass CompTIA's A+ 220-801 and 220-802 exams. It provides coverage and practice questions for every exam topic, including substantial new coverage of Windows 7, new PC hardware, tablets, smartphones, and professional-level networking and security. The book presents you with an organized test preparation routine through the use of proven series elements and techniques. Exam topic lists make referencing easy. Exam Alerts, Sidebars, and Notes interspersed throughout the text keep you focused on what you need to know. Cram Quizzes help you assess your knowledge, and the Cram Sheet tear card is the perfect last minute review. Covers the critical information you'll need to know to score higher on your CompTIA A+ 220-801 and 220-802 exams!Deploy and administer desktops and notebooks running Windows 7, Vista, or XPUnderstand, install, and troubleshoot motherboards, processors, and memoryTest and troubleshoot power-related problemsUse all forms of storage, including new Blu-ray and Solid State (SSD) devicesWork effectively with mobile devices, including tablets and smartphonesInstall, configure, and troubleshoot both visible and internal laptop componentsConfigure Windows components and applications, use Windows administrative tools, and optimize Windows systemsRepair damaged Windows environments and boot errorsWork with audio and video subsystems, I/O devices, and the newest peripheralsInstall and manage both local and network printersConfigure IPv4 and understand TCP/IP protocols and IPv6 changesInstall and configure SOHO wired/wireless networks and troubleshoot connectivityImplement secure authentication, prevent malware attacks, and protect data Companion CDThe companion CD contains a digital edition of the Cram Sheet and the powerful Pearson IT Certification Practice Test engine, complete with hundreds of exam-realistic questions and two complete practice exams. The assessment engine offers you a wealth of customization options and reporting features, laying out a complete assessment of your knowledge to help you focus your study where it is needed most. Pearson IT Certifcation Practice Test Minimum System RequirementsWindows XP (SP3), WIndows Vista (SP2), or Windows 7Microsoft .NET Framework 4.0 ClientPentium-class 1 GHz processor (or equivalent)512 MB RAM650 MB disk space plus 50 MB for each downloaded practice exam David L. Prowse is an author, computer network specialist, and technical trainer. Over the past several years he has authored several titles for Pearson Education, including the well-received CompTIA A+ Exam Cram and CompTIA Security+ Cert Guide. As a consultant, he installs and secures the latest in computer and networking technology. He runs the website www.davidlprowse.com, where he gladly answers questions from students and readers.

Model-Driven Software Engineering in Practice


Marco Brambilla - 2012
    This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).MDSE practices have proved to increase efficiency and effectiveness in software development, as demonstrated by various quantitative and qualitative studies. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.The aim of this book is to provide you with an agile and flexible tool to introduce you to the MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDSE instruments for your needs so that you can start to benefit from MDSE right away.The book is organized into two main parts.The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios, and current standards, like the well-known MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDSE in existing development processes. The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDSE projects. The second edition of the book features:a set of completely new topics, including: full example of the creation of a new modeling language (IFML), discussion of modeling issues and approaches in specific domains, like business process modeling, user interaction modeling, and enterprise architecture complete revision of examples, figures, and text, for improving readability, understandability, and coherence better formulation of definitions, dependencies between concepts and ideas addition of a complete index of book content In addition to the contents of the book, more resources are provided on the book's website, including the examples presented in the book.

Code Connected Volume 1


Pieter Hintjens - 2012
    He writes, "We live in a connected world, and modern software has to navigate this world. So the building blocks for tomorrow's very largest solutions are connected and massively parallel. It's not enough for code to be "strong and silent" any more. Code has to talk to code. Code has to be chatty, sociable, well-connected. Code has to run like the human brain, trillions of individual neurons firing off messages to each other, a massively parallel network with no central control, no single point of failure, yet able to solve immensely difficult problems. And it's no accident that the future of code looks like the human brain, because the endpoints of every network are, at some level, human brains."If you are a programmer, working in C, C++, C#, Clojure, Delphi, Erlang, Go, Haskell, Haxe, Java, Lisp, Lua, Node.js, Objective-C, Perl, PHP, Python, Ruby, Scala, or Tcl, and you aim to build multithreaded or distributed systems, then this book is essential reading.Code Connected Volume 1 takes you through learning ZeroMQ (0MQ), step-by-step, with over 80 examples. You will learn the basics, the API, the different socket types and how they work, reliability, and a host of patterns you can use in your applications.

Official TOEFL Ibt Tests with Audio


Educational Testing Service - 2012
    Each form includes an answer key and complete audio transcripts. You also get audio for all the listening passages of the tests, provided on the accompanying audio CD. Provides more than 300 real TOEFL questions from the test-makers Audio for all test listening sections on CD-ROM Test results worksheets to record your progress and improvement from test to test

Learning Core Audio: A Hands-On Guide to Audio Programming for Mac and iOS


Chris Adamson - 2012
    Using Apple's Core Audio, you can leverage all that power in your own Mac and iOS software, implementing features ranging from audio capture to real-time effects, MP3 playback to virtual instruments, web radio to VoIP support. The most sophisticated audio programming system ever created, Core Audio is not simple. In "Learning Core Audio," top Mac programming author Chris Adamson and legendary Core Audio expert Kevin Avila fully explain this challenging framework, enabling experienced Mac or iOS programmers to make the most of it. In plain language, Adamson and Avila explain what Core Audio can do, how it works, and how it builds on the natural phenomena of sound and the human language of audio. Next, using crystal-clear code examples, they guide you through recording, playback, format conversion, Audio Units, 3D audio MIDI connectivity, and overcoming unique challenges of Core Audio programming for iOS. Coverage includes: mastering Core Audio's surprising style and conventions; recording and playback with Audio Queue; synthesizing audio; perform effects on audio streams; capturing from the mic; mixing multiple streams; managing file streams; converting formats; creating 3D positional audio; using Core MIDI on the Mac; leveraging your Cocoa and Objective-C expertise in Core Audio's C-based environment, and much more. When you've mastered the "black arts" of Core Audio, you can do some serious magic. This book will transform you from an acolyte into a true Core Audio wizard.

The Java Tutorial: A Short Course on the Basics (Java Series)


Raymond Gallardo - 2012
    

Embedded Systems: Real-Time Operating Systems for Arm Cortex M Microcontrollers


Jonathan W. Valvano - 2012
    The original ISBN was generated in 2012, but if you purchase the book new from CreateSpace or Amazon you will get the new version, which was uploaded January 3, 2019. This book, now in its fifth printing (January 2019), is the third in a series of three books that teach the fundamentals of embedded systems as applied to ARM Cortex-M microcontrollers. This book specifically covers the TM4C and MSP432 microcontrollers; however, it could be used with any Cortex-M microcontroller. This third volume is primarily written for senior undergraduate or first-year graduate electrical and computer engineering students. It could also be used for professionals wishing to design or deploy a real-time operating system onto an ARM platform. The first book Embedded Systems: Introduction to the ARM Cortex-M Microcontroller is an introduction to computers and interfacing focusing on assembly language and C programming. The second book Embedded Systems: Real-Time Interfacing to ARM Cortex-M Microcontroller focuses on interfacing and the design of embedded systems. This third book is an advanced book focusing on operating systems, high-speed interfacing, control systems, robotics, Bluetooth, and the Internet of Things (IoT). Rather than buying and deploying an existing OS, the focus is on fundamental principles, so readers can write their-own OS. Embedded systems are a ubiquitous component of our everyday lives. We interact with hundreds of tiny computers every day that are embedded into our houses, our cars, our toys, and our work. As our world has become more complex, so have the capabilities of the microcontrollers embedded into our devices. An embedded system is a system that performs a specific task and has a computer embedded inside. A system is comprised of components and interfaces connected together for a common purpose. Specific topics include microcontrollers, design, verification, hardware/software synchronization, interfacing devices to the computer, real-time operating systems, data collection and processing, motor control, analog filters, digital filters, and real-time signal processing. This book employs many approaches to learning. It will not include an exhaustive recapitulation of the information in data sheets. First, it begins with basic fundamentals, which allows the reader to solve new problems with new technology. Second, the book presents many detailed design examples. These examples illustrate the process of design. There are multiple structural components that assist learning. Checkpoints, with answers in the back, are short easy to answer questions providing immediate feedback while reading. Simple homework questions provide more detailed learning opportunities. The book includes an index and a glossary so that information can be searched. The most important learning experiences in a class like this are of course the laboratories. More detailed lab descriptions are available on the web. Specifically for Volume 1, look at the lab assignments for EE319K. For Volume 2 refer to the EE445L labs, and for this volume, look at the lab assignments for EE445M/EE380L.6. There is a web site accompanying this book http: //users.ece.utexas.edu/ valvano/arm. Posted here are Keil uVision projects for each the example programs in the book. You will also find data sheets and Excel spreadsheets relevant to the material in this book. The book will cover embedded systems for the ARM Cortex-M with specific details on the MSP432, TM4C123, and TM4C1294. Most of the topics can be run on any of these Texas Instruments LaunchPads. Ethernet examples can be run on the TM4C1294. Although the solutions are specific for the MSP432/TM4C families, it will be possible to use this book for other Cortex-M derivatives.

Approximation Theory and Approximation Practice


Lloyd N. Trefethen - 2012
    The reader will find a strikingly original treatment of the subject, completely unlike any of the existing literature on approximation theory, with a rich set of both computational and theoretical exercises for the classroom. There are many original features that set this book apart: the emphasis is on topics close to numerical algorithms; every idea is illustrated with Chebfun examples; each chapter has an accompanying Matlab file for the reader to download; the text focuses on theorems and methods for analytic functions; original sources are cited rather than textbooks, and each item in the bibliography is accompanied by an editorial comment. This textbook is ideal for advanced undergraduates and graduate students across all of applied mathematics.

HTML5 in Action


Rob Crowther - 2012
    You'll explore every aspect of the HTML5 specification through real-world examples and code samples. It's much more than just a specification reference, though. It lives up to the name HTML5 in Action by giving you the practical, hands-on guidance you'll need to use key features.About the TechnologyHTML5 is not a few new tags and features added to an old standard—it's the foundation of the modern web, enabling its interactive services, single-page UI, interactive games, and complex business applications. With support for standards-driven mobile app development, powerful features like local storage and WebSockets, superb audio and video APIs, and new layout options using CSS3, SVG, and Canvas, HTML5 has entered its prime time.About the BookHTML5 in Action provides a complete introduction to web development using HTML5. It explores the HTML5 specification through real-world examples and code samples. It earns the name "in Action" by giving you the practical, hands-on guidance you'll need to confidently build the sites and applications you—and your clients—have been wanting for years.This book concentrates on new HTML5 features and assumes you are familiar with standard HTML.Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.What's InsideNew semantic elements and form input typesSingle-page application designCreating interactive graphicsMobile web appsAbout the AuthorsRob Crowther is a web developer and blogger and the author of Manning's Hello! HTML5 & CSS3. Joe Lennon is an enterprise mobile application developer. Ash Blue builds award-winning interactive projects. Greg Wanish is an independent web and eCommerce developer.Table of ContentsPART 1 INTRODUCTIONHTML5: from documents to applicationsPART 2 BROWSER-BASED APPSForm creation: input widgets, data binding, and data validationFile editing and management: rich formatting, file storage, drag and dropMessaging: communicating to and from scripts in HTML5Mobile applications: client storage and offline executionPART 3 INTERACTIVE GRAPHICS, MEDIA, AND GAMING2D Canvas: low-level, 2D graphics renderingSVG: responsive in-browser graphicsVideo and audio: playing media in the browserWebGL: 3D application developmentPlus 10 Appendixes

Visual Models for Software Requirements


Joy Beatty - 2012
    The authors—experts in eliciting and visualizing requirements—walk you through a simple but comprehensive language of visual models that has been used on hundreds of real-world, large-scale projects. Build your fluency with core concepts—and gain essential, scenario-based context and implementation advice—as you progress through each chapter.Transcend the limitations of text-based requirements data using visual models that more rigorously identify, capture, and validate requirements Get real-world guidance on best ways to use visual models—how and when, and ways to combine them for best project outcomes Practice the book’s concepts as you work through chapters Change your focus from writing a good requirement to ensuring a complete system

Cuda Programming: A Developer's Guide to Parallel Computing with Gpus


Shane Cook - 2012
    It starts by introducing CUDA and bringing you up to speed on GPU parallelism and hardware, then delving into CUDA installation. Chapters on core concepts including threads, blocks, grids, and memory focus on both parallel and CUDA-specific issues. Later, the book demonstrates CUDA in practice for optimizing applications, adjusting to new hardware, and solving common problems.

Core HTML5 Canvas: Graphics, Animation, and Game Development (Core Series)


David M. Geary - 2012
     Core HTML5 Canvas is written for experienced software developers with an intermediate-level understanding of JavaScript. The result of two years full-time work by a long-time best-selling author, this book shows you how to implement anything you can imagine with the Canvas 2D API, from text editors to video games. Geary meticulously covers every detail of the API with crystal-clear writing so that you not only understand advanced concepts, but most importantly, you can modify the book's examples for your own specific use cases.Here are some of the things you will learn about in this book: The canvas element--using it with other HTML elements, handling events, printing a canvas, and using offscreen canvases Shapes--drawing, dragging, erasing, and editing lines, arcs, circles, curves, and polygons; using shadows, gradients, and patterns Text--drawing, positioning, setting font properties; building text controls Images--drawing, scaling, clipping, processing, and animating Animations--creating smooth, efficient, and portable animations Sprites--implementing animated objects that have painters and behaviors Physics--modeling physical systems (falling bodies, pendulums, and projectiles), and implementing tweening for nonlinear motion and animation Collision detection--advanced techniques, clearly explained Game development--all aspects of game development, such as time-based motion and high score support, implemented in a game engine Custom controls--infrastructure for implementing custom controls; implementing progress bars, sliders, and an image panner Mobile applications--fitting Canvas apps on a mobile screen, using media queries, handling touch events, and specifying iOS5 artifacts, such as app icons Throughout the book, Geary discusses high-quality, reusable code to help professional developers learn everything they really need to know, with absolutely no fluff. All the book's code and live demonstrations of key examples are available at CoreHTML5Canvas.com.

Crafting Your Research Future: A Guide to Successful Master's and PH.D. Degrees in Science & Engineering


Charles X. Ling - 2012
    Table of Contents: Acknowledgments / Preface / Basics of Research / Goals of Ph.D. Research / Getting Started: Finding New Ideas and Organizing Your Plans / Conducting Solid Research / Writing and Publishing Papers / Misconceptions and Tips for Paper Writing / Writing and Defending a Ph.D. Thesis / Life After Ph.D. / Summary / References / Author Biographies

Computer Arithmetic: Algorithms and Hardware Implementations


Mircea Vladutiu - 2012
    The book's presentation of high-level detail, descriptions, formalisms and design principles means that it can support many research activities in this field, with an emphasis on bridging the gap between algorithm optimization and hardware implementation. The author provides a unified view linking the domains of digital design and arithmetic algorithms, based on original formalisms and hardware description languages.A feature of the book is the large number of examples and the implementation details provided. While the author does not avoid high-level details, providing for example gate-level designs for all matrix/combinational arithmetic structures.The book is suitable for researchers and students engaged with hardware design in computer science and engineering.A feature of the book is the large number of examples and the implementation details provided. While the author does not avoid high-level details, providing for example gate-level designs for all matrix/combinational arithmetic structures.The book is suitable for researchers and students engaged with hardware design in computer science and engineering.

Foundations of Information Privacy and Data Protection: A Survey of Global Concepts, Laws and Practices


Peter P. Swire - 2012
    

Designing Audio Effect Plug-Ins in C++: With Digital Audio Signal Processing Theory


Will Pirkle - 2012
    With this book, you get access to a companion website where you can download the accompanying Rapid Plug-In Development software to compile and test the book examples, all the code examples, and view student plug-ins and tutorial videos on the development software. Start with an intuitive and practical introduction to the digital signal processing (DSP) theory behind audio plug-ins, and quickly move on to plug-in implementation, gain knowledge of algorithms on filtering, delay, reverb, modulated effects, dynamics processing, and more. You will then be ready to design and implement your own unique plug-ins on any platform and within most any host program.Readers are expected to have some knowledge of C++, and high school math.

Building Blocks for Theoretical Computer Science


Margaret M. Fleck - 2012
    It’s fast paced book that covers a wide variety of subjects, and each subject get looked at briefly enough for you to understand what it does, and how it works.The main focus is put on theoretical computer science, and the subsets of complexity, computation, algorithm analysis and a lot more.

A Computable Universe: Understanding and Exploring Nature as Computation


Hector Zenil - 2012
    

Practical Unit Testing with TestNG and Mockito


Tomek Kaczanowski - 2012
    It presents a range of techniques necessary to write high quality unit tests - e.g. mocks, parametrized tests and matchers. It also discusses trade-offs related to the choices we have to make when dealing with some real-life code issues.The book stresses the importance of writing readable and maintainable unit tests, and puts a lot of stress on code quality. It shows how to achieve testable code and to eliminate common mistakes by following the Test Driven Development approach. Every topic discussed in the book is illustrated with code examples, and each chapter is accompanied by some exercises.By reading this book you will: Grasp the role and purpose of unit tests Write high-quality, readable and maintainable unit tests Learn how to use TestNG and Mockito (but also other useful tools) Avoid common pitfalls when writing unit tests Recognize bad unit tests, and fix them in no time Develop code following the Test Driven Development (TDD) approach Use mocks, stubs and test-spies intelligently Measure the quality of your tests using code coverage and mutation testing Learn how to improve your tests' code so it is an asset and not a burden Test collections, expected exceptions, time-dependent methods and much more Customize test reports so that they show you what you really need to know Master tools and techniques your team members have never even heard of (priceless!) :)Nowadays every developer is expected to write unit tests. While simple in theory, in practice writing high-quality unit tests can turn out to be a real challenge. This book will help.

Hello! HTML5 and CSS3


Rob Crowther - 2012
    Anyone who builds web pages, mobile apps, or does any type of development at all, must master these languages. Hello! HTML5 and CSS3 is written for the web designer or developer who wants a fast, example-oriented introduction to the new HTML and CSS features. After a quick review of the basics, the book moves quickly into building real pages in HTML5. Learn how to seamlessly integrate audio and video with HTML5, then add some style with new CSS3 features such as drop shadows, borders, colors, gradients and backgrounds. Discover how to target specific devices with media queries, and do all of it with less code. Finally, walk through several large examples that demonstrate how HTML5 and CSS3 working together can produce responsive and lightweight applications.

Electronic Devices and Circuits


S. Salivahanan - 2012
    Thereby, the authors, in this book have attempted to reveal the complexities of the world of electronics in an extremely simplified manner, using pedagogical features to illustrate and exemplify the concepts thoroughly. This revised edition of Electronic Devices and Circuits is a treat for the young readers, and will generate and maintain an interest in the subject which will stimulate a sound learning. Features: Exceptional coverage of Oscillators, Frequency Analysis and Power Amplifiers" New updates on topics such as: filters and regulators, mesfet, misfet, ldr, photodiodes, etc. Pedagogy includes: Solved examples-337 Review Questions-1037 Illustrations-850" Contents 1. The Processors: 8086/8088- Architectures, Pin Diagrams and Timing Diagrams 2. 8086/8088 Instruction Set and Assembler Directives 3. The Art of Assembly Language Programming with 8086/8088 4. Special Architectural Features and Related Programming 5. Basic Peripherals and their Interfacing with 8086/88 6. Special Purpose Programmable Peripheral Devices and Their Interfacing 7. DMA , & High Storage Capacity Memory Devices 8. Multimicroprocessor Systems 9. 80286-80287-A Microprocessor with Memory Management and Protection 10. 80386-80387 and 80486-The 32-Bit Processors 11. Recent Advances in Microprocessor Architectures-A Journey from Pentium Onwards 12. Pentium 4-Processor of the New Millennium 13. RISC Architecture-An Overview 14. Microprocessor-Based Aluminium Smelter Control 15. Design of a Microprocessor Based Pattern Scanner System 16. Design of an Electronic Weighing Bridge 17. An Introduction to Architecture and Programming 8051 and 80196 18. 8051 Peripherals Interfacing

OpenGL Insights


Patrick Cozzi - 2012
    Assembling contributions from experienced developers, vendors, researchers, and educators, OpenGL Insights presents real-world techniques for intermediate and advanced OpenGL, OpenGL ES, and WebGL developers.Go Beyond the BasicsThe book thoroughly covers a range of topics, including OpenGL 4.2 and recent extensions. It explains how to optimize for mobile devices, explores the design of WebGL libraries, and discusses OpenGL in the classroom. The contributors also examine asynchronous buffer and texture transfers, performance state tracking, and programmable vertex pulling.Sharpen Your SkillsFocusing on current and emerging techniques for the OpenGL family of APIs, this book demonstrates the breadth and depth of OpenGL. Readers will gain practical skills to solve problems related to performance, rendering, profiling, framework design, and more.

Bluetooth Low Energy: The Developer's Handbook


Robin Heydon - 2012
    Running on a coin-sized battery, BLE can operate reliably for years, connecting and extending everything from personal area network devices to next-generation sensors. Now, one of the standard’s leading developers has written the first comprehensive, accessible introduction to BLE for every system developer, designer, and engineer. Robin Heydon, a member of the Bluetooth SIG Hall of Fame, has brought together essential information previously scattered through multiple standards documents, sharing the context and expert insights needed to implement high-performance working systems. He first reviews BLE’s design goals, explaining how they drove key architectural decisions, and introduces BLE’s innovative usage models. Next, he thoroughly covers how the two main parts of BLE, the controller and host, work together, and then addresses key issues from security and profiles through testing and qualification. This knowledge has enabled the creation of Bluetooth Smart and Bluetooth Smart Ready devices. This guide is an indispensable companion to the official BLE standards documents and is for every technical professional and decision-maker considering BLE, planning BLE products, or transforming plans into working systems. Topics IncludeBLE device types, design goals, terminology, and core conceptsArchitecture: controller, host, applications, and stack splitsUsage models: presence detection, data broadcasting, connectionless models, and gatewaysPhysical Layer: modulation, frequency band, radio channels, power, tolerance, and rangeDirect Test Mode: transceiver testing, hardware interfaces, and HCILink Layer: state machine, packets, channels, broadcasting, encryption, and optimizationHCI: physical/logical interfaces, controller setup, and connection managementL2CAP: channels and packet structure, and LE signaling channelsAttributes: grouping, services, characteristics, and protocolsSecurity: pairing, bonding, and data signingGeneric Access Profiles: roles, modes, procedures, security modes, data advertising, and servicesApplications, devices, services, profiles, and peripheralsTesting/qualification: starting projects, selecting features, planning, testing, compliance, and more

The 7 Qualities of Highly Secure Software


Mano Paul - 2012
    It uses engaging anecdotes and analogies-ranging from Aesop's fables, athletics, architecture, biology, nursery rhymes, and video games-to illustrate the qualities that are essential for the development of highly secure software.Each chapter details one of the seven qualities that can make your software highly secure and less susceptible to hacker threats. Leveraging real-world experiences and examples, the book: Explains complex security concepts in language that is easy to understand for professionals involved in management, software development, and operations Specifies the qualities and skills that are essential for building secure software Highlights the parallels between the habits of effective people and qualities in terms of software securityPraise for the Book:This will be required reading for my executives, security team, software architects and lead developers.-David W. Stender, CISSP, CSSLP, CAP, CISO of the US Internal Revenue ServiceDeveloping highly secure software should be at the forefront of organizational strategy and this book provides a framework to do so.-Troy Leach, CTO, PCI Security Standards CouncilThis book will teach you the core, critical skills needed to raise the security bar on the attackers and swing the game in your favor.-Michael Howard, Principal Cyber Security Program Manager, MicrosoftAs a penetration tester, my job will be a lot harder as people read this book! -Kevin Johnson, Security Consultant, Secure Ideas

How to Think Like a Computer Scientist: Learning with Python 3


Peter Wentworth - 2012
    Downey, and Chris Meyers(based on 2nd edition by Jeffrey Elkner, Allen B. Downey, and Chris Meyers) Corresponding author: p.wentworth@ru.ac.zaSource repository is at https://code.launchpad.net/~thinkcspy...For offline use, download a zip file of the html or a pdf version (the pdf is updated less often) from http://www.ict.ru.ac.za/Resources/csp...

Computational Physics


Mark Newman - 2012
    Computers play a central role in virtually every major physics discovery today, from astrophysics and particle physics to biophysics and condensed matter. This book explains the fundamentals of computational physics and describes in simple terms the techniques that every physicist should know, such as finite difference methods, numerical quadrature, and the fast Fourier transform. The book offers a complete introduction to the topic at the undergraduate level, and is also suitable for the advanced student or researcher who wants to learn the foundational elements of this important field.

Kinect for Windows SDK Programming Guide


Abhijit Jana - 2012
    It has been touted as a controller for Microsoft Xbox but is much more than that. The developer version of Kinect, Kinect for Windows SDK, provides developers with the tools to develop applications that run on Windows. You can use this to develop applications that make interaction with your computer hands-free. This book focuses on developing applications using the Kinect for Windows SDK. It is a complete end to end solution using different features of Kinect for Windows SDK with step by step guidance. The book will also help you develop motion sensitive and speech recognition enabled applications. You will also learn about building application using multiple Kinects.The book begins with explaining the different components of Kinect and then moves into to the setting up the device and getting thedevelopment environment ready. You will be surprised at how quickly the book takes you through the details of Kinect APIs. You will use NUI to use the Kinect for Natural Inputs like skeleton tracking, sensing, speech recognizing. You will capture different types of stream, and images, handle stream event, and capture frame. Kinect device contains a motorized tilt to control sensor angles, you will learn how to adjust it automatically. The last part of the book teaches you how to build application using multiple Kinects and discuss how Kinect can be used to integrate with other devices such as Windows Phone and microcontroller. Approach This book is a practical tutorial that explains all the features of Kinect SDK by creating sample applications throughout the book. It includes a detailed discussion of APIs with step-by-step explanation of development of a real-world sample application. Who this book is for The purpose of this book is to explain how to develop applications using the Kinect for Windows SDK. If you are a beginner and looking to start developing applications using the Kinect for Windows SDK, and if you want to build motion-sensing,speech-recognizing applications with Kinect, this book is for you.

Alan Turing's Systems of Logic: The Princeton Thesis


Alan Turing - 2012
    Some of the greatest logicians in the world--including Alonzo Church, Kurt Godel, John von Neumann, and Stephen Kleene--were at Princeton in the 1930s, and they were working on ideas that would lay the groundwork for what would become known as computer science. This book presents a facsimile of the original typescript of Turing's fascinating and influential 1938 Princeton PhD thesis, one of the key documents in the history of mathematics and computer science. The book also features essays by Andrew Appel and Solomon Feferman that explain the still-unfolding significance of the ideas Turing developed at Princeton.A work of philosophy as well as mathematics, Turing's thesis envisions a practical goal--a logical system to formalize mathematical proofs so they can be checked mechanically. If every step of a theorem could be verified mechanically, the burden on intuition would be limited to the axioms. Turing's point, as Appel writes, is that "mathematical reasoning can be done, and should be done, in mechanizable formal logic." Turing's vision of "constructive systems of logic for practical use" has become reality: in the twenty-first century, automated "formal methods" are now routine.Presented here in its original form, this fascinating thesis is one of the key documents in the history of mathematics and computer science."

Excel Outside the Box: Unbelieveable Excel Techniques from Excel MVP Bob Umlas


Bob Umlas - 2012
    Through a series of more than 50 techniques, tables, formulas, and charts, this guide details processes that may be used in any Excel application and across all disciplines. Creative approaches for building formulas within formulas, pivot tables, conditional formatting, and mastering array formulas are just some of the numerous challenges explained. Other higher-level solutions discussed include using VBA macro code to override cell calculations, solve for sums from a text string, and trimming and cleaning all cells on a worksheet. This is the all-encompassing resource for advanced users of Excel wanting to learn more techniques to broaden and empower their use of Excel.

Random Rationality: A Rational Guide to an Irrational World


Fourat Janabi - 2012
    While seemingly random in its width and breadth, Random Rationality tackles 20 issues from 5 disciplines that when woven together, paint a picture of the world today; both negative and positive. All the while explaining the subject matter critically, rationally and simply including Philosophy, Science, Politics, Economics and Technology.A succinct, alarming, funny, and direct guide to our little planet and the people on it. It may make you upset, belittled, or feel hopeless, but it is equally like you to make you empowered, opinionated and informed.

Programming Problems: A Primer for The Technical Interview


Bradley Green - 2012
    This book reviews the fundamentals of computer programming through programming problems posed to candidates at Amazon, Apple, Facebook, Google, Microsoft, and others. Complete solutions to every programming problem is provided in clear explanations and easy to read C++11 code.If you are learning to code then this book provides a great introduction to C++11 and fundamental data structures and algorithms. If you are preparing for an interview or want to challenge yourself, then this book will cover all the fundamentals asked at major companies such as Amazon, Google, and Microsoft.

Operating Systems: A Modern Introduction


Theodor Richardson - 2012
    This title introduces concepts from the ground up to include process management, memory management, hardware devices, and software applications. It covers popular operating systems such as Android, Chrome OS, and Mac OSX.

Foundational Java: Key Elements and Practical Programming


David Parsons - 2012
    All of the most useful and commonly applied Java syntax and libraries are introduced, along with many example programs that can provide the basis for more substantial applications. Use of the Eclipse Integrated Development Environment (IDE) and the JUnit testing framework is integral to the book, ensuring maximum productivity and code quality when learning Java, although to ensure that skills are not confined to one environment the fundamentals of the Java compiler and run time are also explained. Additionally, coverage of the Ant tool will equip the reader with the skills to automatically build, test and deploy applications independent of an IDE.Topics and features: presents the most up-to-date information on Java, including Java 7; examines the key theme of unit testing, introducing the JUnit 4 testing framework to emphasize the importance of unit testing in modern software development; describes the Eclipse IDE, the most popular open source Java IDE, and also explains how Java can be run from the command line; includes coverage of the Ant build tool; contains numerous code examples and exercises throughout; provides downloadable source code, self-test questions, PowerPoint slides and other supplementary material at the website http: //www.introjava.com.This hands-on, classroom-tested textbook/reference is ideal for undergraduate students on introductory and intermediate courses on programming with Java. Professional software developers will also find this an excellent self-study guide/refresher on the topic.

Predicting Movie Ratings and Recommender Systems


Arkadiusz Paterek - 2012
    A monograph on the Netflix Prize prediction contest and recommender systems.

Practical Reliability Engineering


Patrick P. O'Connor - 2012
    This fifth edition retains the unique balanced mixture of reliability theory and applications, thoroughly updated with the latest industry best practices. Practical Reliability Engineering fulfils the requirements of the Certified Reliability Engineer curriculum of the American Society for Quality (ASQ). Each chapter is supported by practice questions, and a solutions manual is available to course tutors via the companion website. Enhanced coverage of mathematics of reliability, physics of failure, graphical and software methods of failure data analysis, reliability prediction and modelling, design for reliability and safety as well as management and economics of reliability programmes ensures continued relevance to all quality assurance and reliability courses. Notable additions include: New chapters on applications of Monte Carlo simulation methods and reliability demonstration methods. Software applications of statistical methods, including probability plotting and a wider use of common software tools. More detailed descriptions of reliability prediction methods. Comprehensive treatment of accelerated test data analysis and warranty data analysis. Revised and expanded end-of-chapter tutorial sections to advance students' practical knowledge. The fifth edition will appeal to a wide range of readers from college students to seasoned engineering professionals involved in the design, development, manufacture and maintenance of reliable engineering products and systems.

Pattern Recognition and Classification: An Introduction


Geoff Dougherty - 2012
    However, despite the existence of a number of notable books in the field, the subject remains very challenging, especially for the beginner. Pattern Recognition and Classification presents a comprehensive introduction to the core concepts involved in automated pattern recognition. It is designed to be accessible to newcomers from varied backgrounds, but it will also be useful to researchers and professionals in image and signal processing and analysis, and in computer vision. Fundamental concepts of supervised and unsupervised classification are presented in an informal, rather than axiomatic, treatment so that the reader can quickly acquire the necessary background for applying the concepts to real problems. More advanced topics, such as semi-supervised classification, combining clustering algorithms and relevance feedback are addressed in the later chapters. This book is suitable for undergraduates and graduates studying pattern recognition and machine learning.

The C++ Standard Library: A Tutorial and Reference


Nicolai M Josuttis - 2012
    The library, however, is not self-explanatory. To make full use of its components-and to benefit from their power-you need a resource that does far more than list the classes and their functions. The C++ Standard Library: A Tutorial and Reference, Second Edition, describes this library as now incorporated into the new ANSI/ISO C++ language standard (C++11). The book provides comprehensive documentation of each library component, including an introduction to its purpose and design; clearly written explanations of complex concepts; the practical programming details needed for effective use; traps and pitfalls; the exact signature and definition of the most important classes and functions; and numerous examples of working code. The book focuses in particular on the Standard Template Library (STL), examining containers, iterators, function objects, and STL algorithms. The book covers all the new C++11 library components, includingConcurrency Fractional arithmetic Clocks and timers Tuples New STL containers New STL algorithms New smart pointers New locale facets Random numbers and distributions Type traits and utilities Regular expressions The book also examines the new C++ programming style and its effect on the standard library, including lambdas, range-based for loops, move semantics, and variadic templates. An accompanying Web site, including source code, can be found at www.cppstdlib.com.

Pedagogical Patterns: Advice For Educators


Pedagogical Patterns Editorial Board - 2012
    For professional educators, these patterns may seem obvious, even trivial, because they have used them so often. But for those newer to teaching, they offer a way to obtain the deep knowledge of experienced teachers.Patterns are not step-by-step recipes. Each of these offers a format and a process for transferring knowledge that can then be used by a variety of different teachers in many different ways. While most of the authors are involved in some aspect of computing and informatics, and so the examples are mostly drawn from those fields, much of the advice is general enough to be applied to other disciplines. The advice is not restricted to formal education, but has been used in various training scenarios as well.The Pedagogical Patterns ProjectMost educators and trainers are not taught how to teach. Rather, they often find themselves teaching by accident. Typically, a person with a skill that is in demand, such as a particular programming language, will be asked to teach it. People assume that if the person is good in this programming language, she will be good at teaching it. But knowing the subject matter is very different from knowing how to teach it. ᅠEffectively communicating complex technologies is often a struggle for information technology instructors. They may try various teaching strategies, but this trial and error process can be time-consuming and fraught with error. ᅠAdvice is often sought from other expert instructors, but these individuals are not always readily available. This creates the need to find other ways to facilitate the sharing of teaching techniques between expert and novice teachers.This is the goal of the Pedagogical Patterns Project. Pedagogy is a term that refers to the systematized learning or instruction concerning principles and methods of teaching. Patterns provide a method for capturing and communicating the deep knowledge in a field. As an example, imagine that you are looking for an effective way to teach message passing to experienced programmers in a weeklong industry course. A friend who is teaching a semester-long object technology course to traditional age university students has found an effective technique. He shares it with you without dictating the specific implementation details. ᅠThis allows you to use your own creativity to implement the technique in a way that is most comfortable for you and most useful for your industry students. This is the essence of patterns: to offer a format and a process for sharing successful practices in a way that allows each practice to be used by a variety of people in many different ways.This pattern language contains patterns from the Pedagogical Patterns effort, which has been ongoing for over ten years. They have been revised and rewritten in Alexandrian form in order to support the integration into a pattern language. The currently available patterns focus on a classroom situation at beginners to advanced level. The editors and authors are a mix of industrial trainers and university educators with a wealth of experience. Some teach small groups face to face and others teach huge courses delivered over the internet. Everything here is useful for secondary education onwards. The patterns in this pattern language use a form similar to the one used by Christopher Alexander in his book A Pattern Language. This book introduced patterns to the world of architecture, from whence it has spread throughout the computing and educational disciplines.

Windows 8 XAML in Action


Pete Brown - 2012
    The Windows 8 Metro interface transforms the PC into a visually-striking container for apps of all types.Windows 8 XAML in Action introduces C# developers to Metro style app development. It provides full coverage of XAML, and addresses both the design and development of Metro style apps. Following numerous carefully-crafted examples, readers will learn about new Windows 8 features, the WinRT API, and .NET 4.5. They will also pick up tips for deploying Metro style apps, including sale through the Windows Store. And, of course, they will find the same deep, unique insights Pete provides in his Silverlight books.Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.

Illustrated C# 2012


Daniel Solis - 2012
    Often in programming books, the information can be hidden in a vast sea of words. As a programmer who has over the years used a dozen programming languages, the author understands it can sometimes be difficult to slog through another 1,000-page book of dense text to learn a new language. There are likely many other programmers who feel the same way. To address this situation, this book explains C# 5.0 using figures; short, focused code samples; and clear, concise explanations.Figures are of prime importance in this book. While teaching programming seminars, Daniel Solis found that he could almost watch the light bulbs going on over the students' heads as he drew the figures on the whiteboard. In this text, he has distilled each important concept into simple but accurate illustrations. The visual presentation of the content will give you an understanding of C# that's not possible with text alone.For something as intricate and precise as a programming language, however, there must be text as well as figures. But rather than long, wordy explanations, Solis has used short, concise descriptions and bulleted lists to make each important piece of information visually distinct.By the end of this book, you'll have a thorough working knowledge of all aspects of the C# language, whether you're a novice programmer or a seasoned veteran of other languages. If you want a long, leisurely, verbose explanation of the language, this is not the book for you. But if you want a concise, thorough, visual presentation of C# 5.0, this is just what you're looking for.

Programming Language Concepts


Peter Sestoft - 2012
    It includes basic concepts such as abstract syntax, interpretation, stack machines, compilation, type checking, and garbage collection techniques, as well as the more advanced topics on polymorphic types, type inference using unification, co- and contravariant types, continuations, and backwards code generation with on-the-fly peephole optimization.Programming Language Concepts covers practical construction of lexers and parsers, but not regular expressions, automata and grammars, which are well covered elsewhere. It throws light on the design and technology of Java and C# to strengthen students' understanding of these widely used languages.The examples present several interpreters and compilers for toy languages, including a compiler for a small but usable subset of C, several abstract machines, a garbage collector, and ML-style polymorphic type inference. Each chapter has exercises based on such examples.

Learning Highcharts


Joe Kuan - 2012
    With a foreword by the creator, it's the only guide you'll need to get started. Overview Step-by-step instructions with real-live data to create bar charts, column charts and pie charts, to easily create artistic and professional quality charts Learn tips and tricks to create a variety of charts such as horizontal gauge charts, projection charts, and circular ratio charts Use and integrate Highcharts with jQuery Mobile and ExtJS 4, and understand how to run Highcharts on the server-side Add advanced reporting capabilities and understand how to select the right chart for your data In Detail Highcharts is a popular web charting software that produces stunning and smooth animated JavaScript and HTML5 SVG graphs. It is among the leading web charting software in the market and has been used in many different sectors - from financial to social websites. Although it is built on top of jQuery, it is so simple to construct that you need little programming skill to create a simple web chart. Highcharts works on all modern browsers and is solely based on native browser technologies and doesn't require client side plugins like Flash or Java. "Learning Highcharts" is a comprehensive tutorial with clear and practical examples. This book follows a step by step approach towards making artistic, presentable, or professional style charts and other types of charts that you won't find elsewhere. It also shows you how to integrate Highcharts with other popular frameworks, such as jQuery, jQuery Mobile, and ExtJS and even how to run it on the server side. The book starts off with an introduction to Highcharts and demonstrates usage of its rich set of options. This is followed by an introduction to each type of basic chart, beginning with simple illustrations and ending with more artistic and productive additions to the charts. The book then guides you how to use the Highcharts API and events handling which are important to build interactive applications. It then goes on to show you how to apply Highcharts onto a popular AJAX Framework or even jQuery, jQuery Mobile and Ext JS. Finally the book shows readers how to set up Highcharts running on server side. "Learning Highcharts" aims to teach you everything you need to know about Highcharts, and take the advanced leap from Flash to JavaScript, with this extremely productive and effective Charting software available, thus helping you build basic charts and even multiple series and axes charts. The book also shows you the flexibility of Highcharts and how to create other special charts. The programming side of APIs and event handling will benefit the readers in building advanced web applications with Highcharts. The book also guides readers on how to integrate Highcharts with popular frameworks such as jQuery Mobile and Ext JS. By the end of the book, you should be able to use Highcharts to suit your web page or application needs. What you will learn from this book Learning the basics-line, column, and pie charts and getting to grips with the latest features of Highcharts Producing artistic, professional and funky charts with examples Using the Highcharts APIs to produce interactive charts Creating horizontal gauge chart and projection charts Using Highcharts event handlers Using Highcharts with jQuery Mobile Using Highcharts with Ext JS 4 Running Highcharts on the server side

The Voice in the Machine: Building Computers That Understand Speech


Roberto Pieraccini - 2012
    More than forty years later, we have advanced computer technology that Kubrick never imagined, but we do not have computers that talk and understand speech as HAL did. Is it a failure of our technology that we have not gotten much further than an automated voice that tells us to "say or press 1"? Or is there something fundamental in human language and speech that we do not yet understand deeply enough to be able to replicate in a computer? In The Voice in the Machine, Roberto Pieraccini examines six decades of work in science and technology to develop computers that can interact with humans using speech and the industry that has arisen around the quest for these technologies. He shows that although the computers today that understand speech may not have HAL's capacity for conversation, they have capabilities that make them usable in many applications today and are on a fast track of improvement and innovation.Pieraccini describes the evolution of speech recognition and speech understanding processes from waveform methods to artificial intelligence approaches to statistical learning and modeling of human speech based on a rigorous mathematical model--specifically, Hidden Markov Models (HMM). He details the development of dialog systems, the ability to produce speech, and the process of bringing talking machines to the market. Finally, he asks a question that only the future can answer: will we end up with HAL-like computers or something completely unexpected?

Structured Parallel Programming: Patterns for Efficient Computation


Michael McCool - 2012
    Written by parallel computing experts and industry insiders Michael McCool, Arch Robison, and James Reinders, this book explains how to design and implement maintainable and efficient parallel algorithms using a composable, structured, scalable, and machine-independent approach to parallel computing. It presents both theory and practice, and provides detailed concrete examples using multiple programming models.The examples in this book are presented using two of the most popular and cutting edge programming models for parallel programming: Threading Building Blocks, and Cilk Plus. These architecture-independent models enable easy integration into existing applications, preserve investments in existing code, and speed the development of parallel applications. Examples from realistic contexts illustrate patterns and themes in parallel algorithm design that are widely applicable regardless of implementation technology.Software developers, computer programmers, and software architects will find this book extremely helpful.

Machine of Love and Grace: Selected Poems


Rodney Jack - 2012
    He took his life in 2008.

iPad and iPhone Tips and Tricks: For iOS 6 on iPad and iPhone


Jason Rich - 2012
    There are new core apps to learn, upgrades to existing apps, and even new on-screen finger motions to master. For millions of users who upgrade their iPhones or iPads, iOS 6 will be like owning an entirely new device. That's where Jason R. Rich's iOS 6 Tips and Tricks comes in. This how-to guide is packed with full-color screen shots and simple step-by-step instructions that help readers master everything that's new, fast. Rich has uncovered dozens of brand-new tips, tricks, techniques, and time-saving shortcuts to make both iPad and iPhone more fun and productive than ever. Coverage includes:-Making the most of Notification Center-Passbook, the new app that consolidates everything from gift cards to airline tickets-The many new features to Siri-New Facebook integration and Apple's own Maps app-New Sharing multiple PhotoStreams-Using iOS 6's improved social networking features-Shooting, editing, and sharing media-Exploring the web more efficiently with the new version of -Safari and iCloud tabs in Safari-The enhanced App store and the new clock app for the iPad-Managing email, schedules, and contacts more efficientlyiOS 6 music, video, and gaming-Getting productive with Pages, Keynote, and Numbers-Video conferencing and Voice-over-IP-Using Airplay for more connected entertainment-Finding, buying, and using new third-party apps-And much much more....

Systems Analysis and Design with UML. David P. Tegarden, Alan Dennis and Barbara Haley Wixom


David Paul Tegarden - 2012
    The new edition offers updated material, more hands-on exercises, and more applied examples. Furthermore a new emphasis on agile methods tackles programming issues and on business process modeling and ethics to add strategic coverage that appeals to IS majors. Additional coverage of new mobile devices and tablets refresh the content as well as supplementary material, including minicases, coverage of ethics, business process modeling, mobile applications and better illustrations, examples, and exercises.

Guide to Cloud Computing: Principles and Practice


Richard Hill - 2012
    The book not only considers the technologies for designing and creating cloud computing platforms, but also the business models and frameworks in real-world implementation of cloud platforms. Emphasis is placed on "learning by doing," and readers are encouraged to experiment with a range of different tools and approaches.Topics and features: includes review questions, hands-on exercises, study activities and discussion topics throughout the text; describes the key technologies involved in cloud computing; explores the use of cloud computing in business environments; demonstrates the approaches used to build cloud computing infrastructures; reviews the social, economic, and political aspects of the on-going growth in cloud computing use; discusses legal and security concerns in cloud computing; examines techniques for the appraisal of financial investment into cloud computing; identifies areas for further research within this rapidly-moving field.This easy-to-follow and highly practical textbook/guide is an invaluable resource for advanced undergraduate and postgraduate students of software engineering, computer networking and related courses. The extensive worked examples will also appeal greatly to researchers, IT infrastructure technicians and application developers.

How To Make Money Blogging In 30 Days Or Less!


Lisa Washington - 2012
    

Cloud Computing with Linux


M. Tim Jones - 2012
    Provides an introduction to virtualization and cloud computing from the Linux and open-source perspective (to increase its accessibility), as well as to provide the necessary information to build cloud computing systems and applications.

Java and Android Application Development for Dummies eBook Set


Michael Burton - 2012
    Including a comprehensive table of contents and the full text of each book, complete with cover, this e-book set gives you in-depth information on using the Java language to create powerful Android applications for mobile devices. Best of all, you'll pay less than the cost of each book purchased separately.You'll get the complete text of:Java For Dummies, 5th Edition, which shows you how toMaster object-oriented programming and use J2SE 7.0 and JDK 7 Work with new libraries, closure, parallel frameworks, and other new features Create basic Java objects and reuse code Handle exceptions and events and work with variables, arrays, and collections Android Application Development For Dummies, 2nd Edition, which coversCreating amazing apps for the latest Android smartphones and tablets How to download and install the SDK and start working with the JDK tools Directions for adapting your existing phone apps for use on Android tablets Steps for publishing your apps to the Google Play Store About the authorsBarry Burd, PhD, author of Java For Dummies, is a professor of mathematics and computer science and a frequent contributor to online technology resources. Michael Burton is a Groupon software engineer and the creator of Groupon, Digg, TripIt, OpenTable, and many other Android apps. Donn Felker is an Android programmer, Microsoft ASP Insider, and MCTS in Web Client Development for .NET 2.0 and 3.5. They are coauthors of Android Application Development For Dummies, 2nd Edition.

Privacy, Due Process and the Computational Turn: The Philosophy of Law Meets the Philosophy of Technology


Mireille Hildebrandt - 2012
    The contributions to this volume focus on the issue of privacy, which is often equated with data privacy and data security, location privacy, anonymity, pseudonymity, unobservability, and unlinkability. Here, however, the extent to which predictive and other types of data analytics operate in ways that may or may not violate privacy is rigorously taken up, both technologically and legally, in order to open up new possibilities for considering, and contesting, how we are increasingly being correlated and categorizedin relationship with due process - the right to contest how the profiling systems are categorizing and deciding about us.

Compilers: Principles and Practice


Parag H. Dave - 2012
    It includes examples from modern software practices such as Linux, GNU Compiler Collection (GCC) and Perl. This book has been class-tested and tuned to the requirements of undergraduate computer engineering courses across universities.

Programming in the Large With Design Patterns


Eddie Burris - 2012
    List of popular design patterns, with common usages and sample code

Computer Vision for Visual Effects


Richard J. Radke - 2012
    These effects are made possible by research from the field of computer vision, the study of how to automatically understand images. Computer Vision for Visual Effects will educate students, engineers, and researchers about the fundamental computer vision principles and state-of-the-art algorithms used to create cutting-edge visual effects for movies and television. The author describes classical computer vision algorithms used on a regular basis in Hollywood (such as blue screen matting, structure from motion, optical flow, and feature tracking) and exciting recent developments that form the basis for future effects (such as natural image matting, multi-image compositing, image retargeting, and view synthesis). He also discusses the technologies behind motion capture and three-dimensional data acquisition. More than 200 original images demonstrating principles, algorithms, and results, along with in-depth interviews with Hollywood visual effects artists, tie the mathematical concepts to real-world filmmaking.

20 API Paradoxes


Jaroslav Tulach - 2012
    Inevitably, we will hit something unexpected, something paradoxical—which, rather paradoxically, is perfectly natural! But why?Every individual has a knowledge horizon. Objects close to us appear clearly, and as they recede toward the horizon, they become indistinct. What lies beyond the horizon is unknown, and yet we know there is something there. As our knowledge of the world increases, this horizon becomes more distant, and yet we continue to explore. It’s a phenomenon as ineffably human as Edmund Hillary’s “because it is there” reason for climbing Everest.We test the limits of our horizon, we look around corners, and perhaps we find something bigger, faster, or more beautiful than we’ve ever known before. But sometimes, we find contradictions, as Darwin did when he explored the finches of the Galapagos Islands. His findings challenged orthodoxy, what he thought he knew.Darwin’s observations were so paradoxical, that it was decades before he published his conclusions as “On the Origin of Species.” The whole process of scientific inquiry is based on our need to find answers to seemingly inexplicable questions, and as each old paradox falls to reason, we find new ones popping up at the edges of our horizon. The world of software development and API design is no different in this respect. The more complex our systems, the more likely we are to bump into the limits of our knowledge. Our world is full of paradoxes waiting to be discovered and explained; it’s as natural as the process of evolution!

MATLAB Graphics and Data Visualization Cookbook


Nivedita Majumdar - 2012
    Each independent recipe will help you in achieving target-oriented solutions to your problems with concise explanation. For those who are already using MATLAB for their computational needs but need to also harness its powerful visualization capabilities.

Numerical Methods in Finance with C++


Maciej J. Capiński - 2012
    The authors start from scratch, so the reader does not need any previous experience of C++. Beginning with straightforward option pricing on binomial trees, the book gradually progresses towards more advanced topics, including nonlinear solvers, Monte Carlo techniques for path-dependent derivative securities, finite difference methods for partial differential equations, and American option pricing by solving a linear complementarity problem. Further material, including solutions to all exercises and C++ code, is available online. The book is ideal preparation for work as an entry-level quant programmer and it gives readers the confidence to progress to more advanced skill sets involving C++ design patterns as applied in finance.