Best of
Computer-Science

2015

Designing Data-Intensive Applications


Martin Kleppmann - 2015
    Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. Peer under the hood of the systems you already use, and learn how to use and operate them more effectively Make informed decisions by identifying the strengths and weaknesses of different tools Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity Understand the distributed systems research upon which modern databases are built Peek behind the scenes of major online services, and learn from their architectures

Fluent Python: Clear, Concise, and Effective Programming


Luciano Ramalho - 2015
    With this hands-on guide, you'll learn how to write effective, idiomatic Python code by leveraging its best and possibly most neglected features. Author Luciano Ramalho takes you through Python's core language features and libraries, and shows you how to make your code shorter, faster, and more readable at the same time.Many experienced programmers try to bend Python to fit patterns they learned from other languages, and never discover Python features outside of their experience. With this book, those Python programmers will thoroughly learn how to become proficient in Python 3.This book covers:Python data model: understand how special methods are the key to the consistent behavior of objectsData structures: take full advantage of built-in types, and understand the text vs bytes duality in the Unicode ageFunctions as objects: view Python functions as first-class objects, and understand how this affects popular design patternsObject-oriented idioms: build classes by learning about references, mutability, interfaces, operator overloading, and multiple inheritanceControl flow: leverage context managers, generators, coroutines, and concurrency with the concurrent.futures and asyncio packagesMetaprogramming: understand how properties, attribute descriptors, class decorators, and metaclasses work"

Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People


Aditya Y. Bhargava - 2015
    The algorithms you'll use most often as a programmer have already been discovered, tested, and proven. If you want to take a hard pass on Knuth's brilliant but impenetrable theories and the dense multi-page proofs you'll find in most textbooks, this is the book for you. This fully-illustrated and engaging guide makes it easy for you to learn how to use algorithms effectively in your own programs.Grokking Algorithms is a disarming take on a core computer science topic. In it, you'll learn how to apply common algorithms to the practical problems you face in day-to-day life as a programmer. You'll start with problems like sorting and searching. As you build up your skills in thinking algorithmically, you'll tackle more complex concerns such as data compression or artificial intelligence. Whether you're writing business software, video games, mobile apps, or system utilities, you'll learn algorithmic techniques for solving problems that you thought were out of your grasp. For example, you'll be able to:Write a spell checker using graph algorithmsUnderstand how data compression works using Huffman codingIdentify problems that take too long to solve with naive algorithms, and attack them with algorithms that give you an approximate answer insteadEach carefully-presented example includes helpful diagrams and fully-annotated code samples in Python. By the end of this book, you will know some of the most widely applicable algorithms as well as how and when to use them.

The Go Programming Language


Alan A.A. Donovan - 2015
    It has been winning converts from dynamic language enthusiasts as well as users of traditional compiled languages. The former appreciate the robustness and efficiency that Go's lightweight type system brings to their code; the latter find Go's simplicity and fast tools a refreshing change. Thanks to its well-designed standard libraries and its excellent support for concurrent programming, Go is fast becoming the language of choice for distributed systems. The Go Programming Language is the definitive book on Go for the working programmer. It assumes no prior knowledge of Go, nor any other specific programming language, so you'll find it an accessible guide whether you come from JavaScript, Ruby, Python, Java, or C++. The book will quickly get you started using Go effectively from the beginning, and by the end, you will know how to use it well to write clear, idiomatic and efficient programs to solve real-world problems. You'll understand not just how to use its standard libraries, but how they work, and how to apply the same design techniques to your own projects. The earlier chapters will introduce you to the basic concepts of Go programming---numbers, strings, functions---while at the same time presenting important computer science concepts like recursion, and useful examples of graphics, UTF-8, and error handling. The chapters on methods and interfaces will show you a new way to think about object-oriented programming; the chapter on concurrency explains why concurrency is so important in modern programming, and how Go helps you handle it well. You'll also learn about Go's pragmatic but effective approach to testing; how to build, test, and manage projects using the go tool, and the art of metaprogramming using reflection. The book contains hundreds of interesting and practical examples that cover the whole language and a wide range of applications. The code samples from the book are available for download from gopl.io.

You Don't Know JS: Up & Going


Kyle Simpson - 2015
    With the "You Don’t Know JS" book series, you’ll get a more complete understanding of JavaScript, including trickier parts of the language that many experienced JavaScript programmers simply avoid.The series’ first book, Up & Going, provides the necessary background for those of you with limited programming experience. By learning the basic building blocks of programming, as well as JavaScript’s core mechanisms, you’ll be prepared to dive into the other, more in-depth books in the series—and be well on your way toward true JavaScript.With this book you will: Learn the essential programming building blocks, including operators, types, variables, conditionals, loops, and functions Become familiar with JavaScript's core mechanisms such as values, function closures, this, and prototypes Get an overview of other books in the series—and learn why it’s important to understand all parts of JavaScript

Python Crash Course: A Hands-On, Project-Based Introduction to Programming


Eric Matthes - 2015
    You'll also learn how to make your programs interactive and how to test your code safely before adding it to a project. In the second half of the book, you'll put your new knowledge into practice with three substantial projects: a Space Invaders-inspired arcade game, data visualizations with Python's super-handy libraries, and a simple web app you can deploy online.As you work through Python Crash Course, you'll learn how to: Use powerful Python libraries and tools, including matplotlib, NumPy, and PygalMake 2D games that respond to keypresses and mouse clicks, and that grow more difficult as the game progressesWork with data to generate interactive visualizationsCreate and customize simple web apps and deploy them safely onlineDeal with mistakes and errors so you can solve your own programming problemsIf you've been thinking seriously about digging into programming, Python Crash Course will get you up to speed and have you writing real programs fast. Why wait any longer? Start your engines and code!

Programming Rust: Fast, Safe Systems Development


Jim Blandy - 2015
    Rust's modern, flexible types ensure your program is free of null pointer dereferences, double frees, dangling pointers, and similar bugs, all at compile time, without runtime overhead. In multi-threaded code, Rust catches data races at compile time, making concurrency much easier to use.Written by two experienced systems programmers, this book explains how Rust manages to bridge the gap between performance and safety, and how you can take advantage of it. Topics include:How Rust represents values in memory (with diagrams)Complete explanations of ownership, moves, borrows, and lifetimesCargo, rustdoc, unit tests, and how to publish your code on crates.io, Rust's public package repositoryHigh-level features like generic code, closures, collections, and iterators that make Rust productive and flexibleConcurrency in Rust: threads, mutexes, channels, and atomics, all much safer to use than in C or C++Unsafe code, and how to preserve the integrity of ordinary code that uses itExtended examples illustrating how pieces of the language fit together

The Effective Engineer: How to Leverage Your Efforts In Software Engineering to Make a Disproportionate and Meaningful Impact


Edmond Lau - 2015
    I'm going to share that mindset with you — along with hundreds of actionable techniques and proven habits — so you can shortcut those years.Introducing The Effective Engineer — the only book designed specifically for today's software engineers, based on extensive interviews with engineering leaders at top tech companies, and packed with hundreds of techniques to accelerate your career.For two years, I embarked on a quest seeking an answer to one question:How do the most effective engineers make their efforts, their teams, and their careers more successful?I interviewed and collected stories from engineering VPs, directors, managers, and other leaders at today's top software companies: established, household names like Google, Facebook, Twitter, and LinkedIn; rapidly growing mid-sized companies like Dropbox, Square, Box, Airbnb, and Etsy; and startups like Reddit, Stripe, Instagram, and Lyft.These leaders shared stories about the most valuable insights they've learned and the most common and costly mistakes that they've seen engineers — sometimes themselves — make.This is just a small sampling of the hard questions I posed to them:- What engineering qualities correlate with future success?- What have you done that has paid off the highest returns?- What separates the most effective engineers you've worked with from everyone else?- What's the most valuable lesson your team has learned in the past year?- What advice do you give to new engineers on your team? Everyone's story is different, but many of the lessons share common themes.You'll get to hear stories like:- How did Instagram's team of 5 engineers build and support a service that grew to over 40 million users by the time the company was acquired?- How and why did Quora deploy code to production 40 to 50 times per day?- How did the team behind Google Docs become the fastest acquisition to rewrite its software to run on Google's infrastructure?- How does Etsy use continuous experimentation to design features that are guaranteed to increase revenue at launch?- How did Facebook's small infrastructure team effectively operate thousands of database servers?- How did Dropbox go from barely hiring any new engineers to nearly tripling its team size year-over-year? What's more, I've distilled their stories into actionable habits and lessons that you can follow step-by-step to make your career and your team more successful.The skills used by effective engineers are all learnable.And I'll teach them to you. With The Effective Engineer, I'll teach you a unifying framework called leverage — the value produced per unit of time invested — that you can use to identify the activities that produce disproportionate results.Here's a sneak peek at some of the lessons you'll learn. You'll learn how to:- Prioritize the right projects and tasks to increase your impact.- Earn more leeway from your peers and managers on your projects.- Spend less time maintaining and fixing software and more time building and shipping new features.- Produce more accurate software estimates.- Validate your ideas cheaply to reduce wasted work.- Navigate organizational and people-related bottlenecks.- Find the appropriate level of code reviews, testing, abstraction, and technical debt to balance speed and quality.- Shorten your debugging workflow to increase your iteration speed.

Elixir in Action


Saša Jurić - 2015
    Revised and updated for the Elixir 1.7, Elixir in Action, Second Edition teaches you how to apply Elixir to practical problems associated with scalability, fault tolerance, and high availability. Along the way, you'll develop an appreciation for, and considerable skill in, a functional and concurrent style of programming.

Hello, Startup: A Programmer's Guide to Building Products, Technologies, and Teams


Yevgeniy Brikman - 2015
    We are in the era of the high tech startup.This book is the "Hello, World" tutorial for building products, technologies, and teams in a startup environment. It's based on the experiences of the author, Yevgeniy Brikman, as well as interviews with programmers from some of the most successful startups of the last decade, including Google, Facebook, LinkedIn, Twitter, GitHub, Stripe, Instagram, AdMob, Pinterest, and many others.If you're at all interested in startups—whether you're a programmer at the beginning of your career, a seasoned developer bored with the politics of large companies, a manager trying to figure out how to motivate your engineers, or just someone trying to figure out what this startup thing is all about—this book is for you. For more info, see http: //www.hello-startup.net"

Effective Python: 59 Specific Ways to Write Better Python


Brett Slatkin - 2015
    This makes the book random-access: Items are easy to browse and study in whatever order the reader needs. I will be recommending "Effective Python" to students as an admirably compact source of mainstream advice on a very broad range of topics for the intermediate Python programmer. " Brandon Rhodes, software engineer at Dropbox and chair of PyCon 2016-2017" It s easy to start coding with Python, which is why the language is so popular. However, Python s unique strengths, charms, and expressiveness can be hard to grasp, and there are hidden pitfalls that can easily trip you up. " Effective Python " will help you master a truly Pythonic approach to programming, harnessing Python s full power to write exceptionally robust and well-performing code. Using the concise, scenario-driven style pioneered in Scott Meyers best-selling "Effective C++, " Brett Slatkin brings together 59 Python best practices, tips, and shortcuts, and explains them with realistic code examples. Drawing on years of experience building Python infrastructure at Google, Slatkin uncovers little-known quirks and idioms that powerfully impact code behavior and performance. You ll learn the best way to accomplish key tasks, so you can write code that s easier to understand, maintain, and improve. Key features includeActionable guidelines for all major areas of Python 3.x and 2.x development, with detailed explanations and examples Best practices for writing functions that clarify intention, promote reuse, and avoid bugs Coverage of how to accurately express behaviors with classes and objects Guidance on how to avoid pitfalls with metaclasses and dynamic attributes More efficient approaches to concurrency and parallelism Better techniques and idioms for using Python s built-in modules Tools and best practices for collaborative development Solutions for debugging, testing, and optimization in order to improve quality and performance "

Two Scoops of Django: Best Practices for Django 1.8


Daniel Roy Greenfeld - 2015
    This book is chock-full of material that will help you with your Django projects.We’ll introduce you to various tips, tricks, patterns, code snippets, and techniques that we’ve picked up over the years.

Web Scalability for Startup Engineers


Artur Ejsmont - 2015
    With a focus on core concepts and best practices rather than on individual languages, platforms, or technologies, Web Scalability for Startup Engineers describes how infrastructure and software architecture work together to support a scalable environment.You'll learn, step by step, how scalable systems work and how to solve common challenges. Helpful diagrams are included throughout, and real-world examples illustrate the concepts presented. Even if you have limited time and resources, you can successfully develop and deliver robust, scalable web applications with help from this practical guide.Learn the key principles of good software design required for scalable systemsBuild the front-end layer to sustain the highest levels of concurrency and request ratesDesign and develop web services, including REST-ful APIsEnable a horizontally scalable data layerImplement caching best practicesLeverage asynchronous processing, messaging, and event-driven architectureStructure, index, and store data for optimized searchExplore other aspects of scalability, such as automation, project management, and agile teams

Introduction to Machine Learning with Python: A Guide for Data Scientists


Andreas C. Müller - 2015
    If you use Python, even as a beginner, this book will teach you practical ways to build your own machine learning solutions. With all the data available today, machine learning applications are limited only by your imagination.You'll learn the steps necessary to create a successful machine-learning application with Python and the scikit-learn library. Authors Andreas Muller and Sarah Guido focus on the practical aspects of using machine learning algorithms, rather than the math behind them. Familiarity with the NumPy and matplotlib libraries will help you get even more from this book.With this book, you'll learn:Fundamental concepts and applications of machine learningAdvantages and shortcomings of widely used machine learning algorithmsHow to represent data processed by machine learning, including which data aspects to focus onAdvanced methods for model evaluation and parameter tuningThe concept of pipelines for chaining models and encapsulating your workflowMethods for working with text data, including text-specific processing techniquesSuggestions for improving your machine learning and data science skills

Python Machine Learning


Sebastian Raschka - 2015
    We are living in an age where data comes in abundance, and thanks to the self-learning algorithms from the field of machine learning, we can turn this data into knowledge. Automated speech recognition on our smart phones, web search engines, e-mail spam filters, the recommendation systems of our favorite movie streaming services – machine learning makes it all possible.Thanks to the many powerful open-source libraries that have been developed in recent years, machine learning is now right at our fingertips. Python provides the perfect environment to build machine learning systems productively.This book will teach you the fundamentals of machine learning and how to utilize these in real-world applications using Python. Step-by-step, you will expand your skill set with the best practices for transforming raw data into useful information, developing learning algorithms efficiently, and evaluating results.You will discover the different problem categories that machine learning can solve and explore how to classify objects, predict continuous outcomes with regression analysis, and find hidden structures in data via clustering. You will build your own machine learning system for sentiment analysis and finally, learn how to embed your model into a web app to share with the world

Clojure for the Brave and True


Daniel Higginbotham - 2015
    At long last you'll be united with the programming language you've been longing for: Clojure!As a Lisp-style functional programming language, Clojure lets you write robust and elegant code, and because it runs on the Java Virtual Machine, you can take advantage of the vast Java ecosystem. Clojure for the Brave and True offers a "dessert-first" approach: you'll start playing with real programs immediately, as you steadily acclimate to the abstract but powerful features of Lisp and functional programming. Inside you'll find an offbeat, practical guide to Clojure, filled with quirky sample programs that catch cheese thieves and track glittery vampires.Learn how to: Wield Clojure's core functions Use Emacs for Clojure development Write macros to modify Clojure itself Use Clojure's tools to simplify concurrency and parallel programmingClojure for the Brave and True assumes no prior experience with Clojure, the Java Virtual Machine, or functional programming. Are you ready, brave reader, to meet your true destiny? Grab your best pair of parentheses—you're about to embark on an epic journey into the world of Clojure!

Introduction to Networking: How the Internet Works


Charles Severance - 2015
     While very complex, the Internet operates on a few relatively simple concepts that anyone can understand. Networks and networked applications are embedded in our lives. Understanding how these technologies work is invaluable.  This book was written for everyone - no technical knowledge is required!While this book is not specifically about the Network+ or CCNA certifications, it as a way to give students interested in these certifications a starting point.

R Packages


Hadley Wickham - 2015
    This practical book shows you how to bundle reusable R functions, sample data, and documentation together by applying author Hadley Wickham’s package development philosophy. In the process, you’ll work with devtools, roxygen, and testthat, a set of R packages that automate common development tasks. Devtools encapsulates best practices that Hadley has learned from years of working with this programming language. Ideal for developers, data scientists, and programmers with various backgrounds, this book starts you with the basics and shows you how to improve your package writing over time. You’ll learn to focus on what you want your package to do, rather than think about package structure. Learn about the most useful components of an R package, including vignettes and unit tests Automate anything you can, taking advantage of the years of development experience embodied in devtools Get tips on good style, such as organizing functions into files Streamline your development process with devtools Learn the best way to submit your package to the Comprehensive R Archive Network (CRAN) Learn from a well-respected member of the R community who created 30 R packages, including ggplot2, dplyr, and tidyr

Elements of Programming Interviews in Java: The Insiders' Guide


Adnan Aziz - 2015
    See the website for links to the C++ version, as well as to a version that uses larger fonts.Have you ever...Wanted to work at an exciting futuristic company?Struggled with an interview problem thatcould have been solved in 15 minutes?Wished you could study real-world computing problems?If so, you need to read Elements of Programming Interviews (EPI).EPI is your comprehensive guide to interviewing for software development roles.The core of EPI is a collection of over 250 problems with detailed solutions. The problems are representative of interview questions asked at leading software companies. The problems are illustrated with 200 figures, 300 tested programs, and 150 additional variants.The book begins with a summary of the nontechnical aspects of interviewing, such as strategies for a great interview, common mistakes, perspectives from the other side of the table, tips on negotiating the best offer, and a guide to the best ways to use EPI. We also provide a summary of data structures, algorithms, and problem solving patterns.Coding problems are presented through a series of chapters on basic and advanced data structures, searching, sorting, algorithm design principles, and concurrency. Each chapter stars with a brief introduction, a case study, top tips, and a review of the most important library methods. This is followed by a broad and thought-provoking set of problems.A practical, fun approach to computer science fundamentals, as seen through the lens of common programming interview questions. Jeff Atwood/Co-founder, Stack Overflow and Discourse

Haskell Programming From First Principles


Christopher Allen - 2015
    I've spent the last couple years actively teaching Haskell online and in person. Along the way, I started keeping notes on exercises and methods of teaching specific concepts and techniques in Haskell that eventually turned into my guide for learning haskell. That experience led me to work on this book.If you are new to programming entirely, Haskell is a great first language. You may have noticed the trend of "Functional Programming in [Imperative Language]" books and tutorials and learning Haskell gets right to the heart of what functional programming is. Languages such as Java are gradually adopting functional concepts, but most such languages were not designed to be functional languages, after all. We would not encourage you to learn Haskell as an only language, but because Haskell is a pure functional language, it is a fertile environment for mastering functional programming techniques. That way of thinking and problem solving is useful, no matter what other languages you might know or learn.Haskell is not a difficult language to use. Quite the opposite. I'm now able to tackle problems that I couldn't have tackled when I was primarily a Clojure, Common Lisp, or Python user. Haskell is difficult to teach effectively.

You Don't Know JS (book series)


Kyle Simpson - 2015
    It's easy to learn partially, and much harder to learn completely (or even sufficiently). When developers encounter confusion, they usually blame the language instead of their lack of understanding. These books aim to fix that, inspiring a strong appreciation for the language you can now, and should, deeply know.

Metaprogramming Elixir


Chris McCord - 2015
    Maybe you’ve played with the basics or written a few macros. Now you want to take it to the next level. This book is a guided series of metaprogramming tutorials that take you step by step to metaprogramming mastery. You’ll extend Elixir with powerful features and write faster, more maintainable programs in ways unmatched by other languages.You’ll start with the basics of Elixir’s metaprogramming system and find out how macros interact with Elixir’s abstract format. Then you’ll extend Elixir with your own first-class features, write a testing framework, and discover how Elixir treats source code as building blocks, rather than rote lines of instructions. You’ll continue your journey by using advanced code generation to create essential libraries in strikingly few lines of code. Finally, you’ll create domain-specific languages and learn when and where to apply your skills effectively.When you’re done, you will have mastered metaprogramming, gained insights into Elixir’s internals, and have the confidence to leverage macros to their full potential in your own projects.

Web Scraping with Python: Collecting Data from the Modern Web


Ryan Mitchell - 2015
    With this practical guide, you’ll learn how to use Python scripts and web APIs to gather and process data from thousands—or even millions—of web pages at once. Ideal for programmers, security professionals, and web administrators familiar with Python, this book not only teaches basic web scraping mechanics, but also delves into more advanced topics, such as analyzing raw data or using scrapers for frontend website testing. Code samples are available to help you understand the concepts in practice. Learn how to parse complicated HTML pages Traverse multiple pages and sites Get a general overview of APIs and how they work Learn several methods for storing the data you scrape Download, read, and extract data from documents Use tools and techniques to clean badly formatted data Read and write natural languages Crawl through forms and logins Understand how to scrape JavaScript Learn image processing and text recognition

Shell Scripting: How to Automate Command Line Tasks Using Bash Scripting and Shell Programming


Jason Cannon - 2015
    My name is Jason Cannon and I'm the author of Linux for Beginners, Python Programming for Beginners, and an instructor to thousands of satisfied students. I started my IT career in the late 1990's as a Unix and Linux System Engineer and I'll be sharing my real-world shell scripting and bash programming experience with you throughout this book.By the end of this book you will be able to create shell scripts with ease. You'll learn how to take tedious and repetitive tasks and turn them into programs that will save you time and simplify your life on Linux, Unix, or MAC systems. Here is what you will get and learn by reading this Shell Scripting ebook: A step-by-step process of writing shell scripts that solve real-world problems. The #1 thing you must do every time you create a shell script. How to quickly find and fix the most shell scripting errors. How to accept input from a user and then make decisions on that input. How to accept and process command line arguments. What special variables are available, how to use them in your shell scripts, and when to do so. A shell script creation check list -- You'll never have to guess what to include in each of your shell scripts again. Just use this simple check list. A shell script template (boilerplate). Use this format for each of your shell scripts. It shows exactly what to include and where everything goes. Eliminate guesswork! Practice exercises with solutions so you can start using what you learn right away. Real-world examples of shell scripts from my personal collection. A download that contains the scripts used in the book and lessons. You'll be able to look at and experiment with everything you're learning. Learn to Program Using Any Shell Scirpting Language What you learn in this book can be applied to any shell, however the focus is on the bash shell and you'll learn some really advanced bash features. Again, whether you're using bash, bourne (sh), KornShell (ksh), C shell (csh), Z shell (zsh), or even the tcsh shell, you'll be able to put what you learn in this book to good use. Perfect for Linux, Unix, Mac and More! Also, you'll be able to use these scripts on any Linux environment including Ubuntu, Debian, Linux Mint, RedHat, Fedora, OpenSUSE, Slackware, Kali Linux and more. You're scripts will even run on other operating systems such as Apple's Mac OS X, Oracle's Solaris, IBM's AIX, HP's HP-UX, FreeBSD, NetBSD, and OpenBSD. Scroll up, click the Buy Now With 1 Click button and get started learning Linux today!

Essential Scala


Noel Welsh - 2015
    This focused introduction is aimed at developers with one to two years' experience in another programming language, and explains the concepts and techniques you need to become a proficient Scala developer.

Fundamentals of Machine Learning for Predictive Data Analytics: Algorithms, Worked Examples, and Case Studies


John D. Kelleher - 2015
    These models are used in predictive data analytics applications including price prediction, risk assessment, predicting customer behavior, and document classification. This introductory textbook offers a detailed and focused treatment of the most important machine learning approaches used in predictive data analytics, covering both theoretical concepts and practical applications. Technical and mathematical material is augmented with explanatory worked examples, and case studies illustrate the application of these models in the broader business context.After discussing the trajectory from data to insight to decision, the book describes four approaches to machine learning: information-based learning, similarity-based learning, probability-based learning, and error-based learning. Each of these approaches is introduced by a nontechnical explanation of the underlying concept, followed by mathematical models and algorithms illustrated by detailed worked examples. Finally, the book considers techniques for evaluating prediction models and offers two case studies that describe specific data analytics projects through each phase of development, from formulating the business problem to implementation of the analytics solution. The book, informed by the authors' many years of teaching machine learning, and working on predictive data analytics projects, is suitable for use by undergraduates in computer science, engineering, mathematics, or statistics; by graduate students in disciplines with applications for predictive data analytics; and as a reference for professionals.

C# 6.0 and the .NET 4.6 Framework


Andrew Troelsen - 2015
    

The Little Elixir & OTP Guidebook


Benjamin Tan Wei Hao - 2015
    It combines the productivity and expressivity of Ruby with the concurrency and fault-tolerance of Erlang. Elixir makes full use of Erlang's powerful OTP library, which many developers consider the source of Erlang's greatness, so you can have mature, professional-quality functionality right out of the gate. Elixir's support for functional programming makes it a great choice for highly distributed event-driven applications like IoT systems.The Little Elixir & OTP Guidebook gets you started programming applications with Elixir and OTP. You begin with a quick overview of the Elixir language syntax, along with just enough functional programming to use it effectively. Then, you'll dive straight into OTP and learn how it helps you build scalable, fault-tolerant and distributed applications through several fun examples. Come rediscover the joy of programming with Elixir and remember how it feels like to be a beginner again.

The Nature of Software Development


Ron Jeffries - 2015
    

Mazes for Programmers: Code Your Own Twisty Little Passages


Jamis Buck - 2015
    Learn algorithms to randomly generate mazes in a variety of shapes, sizes, and dimensions. Bend them into Moebius strips, fold them into cubes, and wrap them around spheres. Stretch them into other dimensions, squeeze them into arbitrary outlines, and tile them in a dizzying variety of ways. From twelve little algorithms, you'll discover a vast reservoir of ideas and inspiration.From video games to movies, mazes are ubiquitous. Explore a dozen algorithms for generating these puzzles randomly, from Binary Tree to Eller's, each copiously illustrated and accompanied by working implementations in Ruby. You'll learn their pros and cons, and how to choose the right one for the job.You'll start by learning six maze algorithms and transition from making mazes on paper to writing programs that generate and draw them. You'll be introduced to Dijkstra's algorithm and see how it can help solve, analyze, and visualize mazes. Part 2 shows you how to constrain your mazes to different shapes and outlines, such as text, circles, hex and triangle grids, and more. You'll learn techniques for culling dead-ends, and for making your passages weave over and under each other. Part 3 looks at six more algorithms, taking it all to the next level. You'll learn how to build your mazes in multiple dimensions, and even on curved surfaces.Through it all, you'll discover yourself brimming with ideas, the best medicine for programmer's block, burn-out, and the grayest of days. By the time you're done, you'll be energized and full of maze-related possibilities!What You Need:The example code requires version 2 of the Ruby programming language. Some examples depend on the ChunkyPNG library to generate PNG images, and one chapter uses POV-Ray version 3.7 to render 3D graphics.

Scratch 2.0 Programming


Denis Golikov - 2015
    A brand new, FREE computer programming application that allows children 10 and up to express themselves creatively by developing their own stories, cartoons, games, and more—all while learning computer programming!Created by Mitchel Resnick, and the “Lifelong Kindergarten” group in the MIT Media Lab, Scratch is a self-study program that teaches children all about computers and programming, in some of the most fun ways possible.Complete with cartoon animation, Scratch allows children to interact and play with various objects on the screen and then develop forms of interaction between them. Think digital, multi-colored blocks kind of like Lego. Each chapter consists of 20-30 minutes of study, and covers topics like how to make funny cartoons and games.Give your child an insight into one of the fastest growing fields in the world, and let them have fun at the same. Choose Scratch today!

Networking for Systems Administrators (IT Mastery Book 5)


Michael W. Lucas - 2015
    Servers give sysadmins a incredible visibility into the network—once they know how to unlock it. Most sysadmins don’t need to understand window scaling, or the differences between IPv4 and IPv6 echo requests, or other intricacies of the TCP/IP protocols. You need only enough to deploy your own applications and get easy support from the network team.This book teaches you:•How modern networks really work•The essentials of TCP/IP•The next-generation protocol, IPv6•The right tools to diagnose network problems, and how to use them•Troubleshooting everything from the physical wire to DNS•How to see the traffic you send and receive•Connectivity testing•How to communicate with your network team to quickly resolve problemsA systems administrator doesn’t need to know the innards of TCP/IP, but knowing enough to diagnose your own network issues transforms a good sysadmin into a great one.

Mastering Emacs


Mickey Petersen - 2015
    In the Mastering Emacs ebook you will learn the answers to all the concepts that take weeks, months or even years to truly learn, all in one place.“Emacs is such a hard editor to learn”But why is it so hard to learn? As it turns out, it's almost always the same handful of issues that everyone faces.If you have tried to learn Emacs you will have struggled with the same problems everyone faces, and few tutorials to see you through it.I have dedicated the first half of the book to explaining the essence of Emacs — and in doing so, how to overcome these issues:Memorizing Emacs’s keys: You will learn Emacs one key at a time, starting with the arrow keys. To feel productive in Emacs, it’s important you start on an equal footing — without too many new concepts and keys to memorize. Each chapter will introduce more keys and concepts so you can learn at your own pace. Discovering new modes and features: Emacs is a self-documenting editor, and I will teach you how to use the apropos, info, and describe system to discover new modes and features, or help you find things you forgot! Customizing Emacs: You don’t have to learn Emacs Lisp to alter a lot of Emacs’s functionality. Most changes you want to make are possible using Emacs’s Customize interface and I will show you how to use it efficiently. Understanding the terminology: Emacs is so old it predates almost every other editor and all modern user interfaces. I have an entire chapter dedicated to the unique terminology in Emacs; how it is different from other editors, and what that means to you.

The Best Minecraft Tips, Tricks and Techniques You Need to Know


Scott K. - 2015
    You will be able to explore the world, and you’ve probably found a ton of awesome tips and tricks that have helped you become a better player. You might be able to beat out many of the novices that you’ve seen, and you’ve been able to survive in harsh places without any real issues. But what about if you’re ready to take things to a whole new level? What about if you’re ready to take your Minecraft game to new heights? What about if you want to become an advanced player of Minecraft, instead of one that is just an average to good player? Well, if other guides haven’t helped you, and if you’ve been wondering where to go with your Minecraft game next, then look no further. This guide will allow you to find all the answers you need in order to become a better Minecraft player now and in the future. This book contains information that will allow you to become the best Minecraft player out there. You’ll learn advanced techniques, and by the end of this, you’ll be a better player than you were before. These techniques are here to help you, and you’ll learn a whole slew of new things that you never knew before. At the end of this, you[‘ll be able to be the best Minecraft player you can be, and you’ll be able to use these techniques in order to not only better yourself, but you’ll also look great in front of other players as well. It’s time to become an expert Minecraft player, and these tips will allow you to live longer, and you’ll be stronger than any time you’ve played before. At the end of this, you’ll be an epic Minecraft player, and you’ll be amazed at the results you get out of this. So what are you waiting for? It’s time to learn some of the greatest secret advanced techniques that will allow you to become a great Minecraft player! Scroll up the page and download the best minecraft guide made till now! You can't let this book pass. Download it now! This unofficial Minecraft book is not licensed, endorsed, approved or sponsored by Mojang AB. It is an unofficial Minecraft book and is not associated with Minecraft or Mojang AB. The trademark Minecraft is owned by Mojang AB. And other company names or trademarks mentioned in this book are property of their respective companies and are used for identification purposes only. All characters, names, places, and other aspects of the game described herein are trademarked and owned by their respective owners. Minecraft, minecraft comics, minecraft game, minecraft games, minecraft xbox, minecraft magazine, minecraft secrets, minecraft revenge, minecraft mobs, free minecraft books, Minecraft stories, Minecraft Survival Guide, Minecraft redstone handbook, Minecraft combat, Minecraft building guide, computer games Humor & Entertainment Entertainment & Games Games & Strategy Guides Children's Nonfiction Games Minecraft, minecraft stories

Hacking with Swift


Paul Hudson - 2015
    Projects 1 - 39

Core Data


Florian Kugler - 2015
    We start with a simple example app and extend it step by step as we talk about relationships, advanced data types, concurrency, syncing, and many other topics.Later on, we go well beyond what's needed for the basic example app. We'll discuss in depth how Core Data works behind the scenes, how to get great performance, the trade-offs between different Core Data setups, and how to debug and profile your Core Data code.All code samples in this book are written in Swift. We show how you can leverage Swift's language features to write elegant and safe Core Data code. We expect that you're already familiar with Swift and iOS, but both newcomers and experienced Core Data developers will find a trove of applicable information and useful patterns.

Learning Apache Cassandra - Manage Fault Tolerant and Scalable Real-Time Data


Mat Brown - 2015
     Book Description Cassandra is a distributed database that stands out for its robust feature set and intuitive interface, while still providing the high availability and scalability of a distributed store.Starting from installing Cassandra and creating your first keyspace, to mastering the different table structures Cassandra offers and exploring the latest and most powerful features of the Cassandra Query Language, CQL3, this book explores each topic through the lens of a real-world example application. With plenty of examples, tips, and clear explanations, you'll master compound primary keys, collection columns, lightweight transactions, and many other advanced aspects of Cassandra.By the end of the book, you'll be fully equipped to build powerful, scalable Cassandra database layers for your applications. What you will learn Install Cassandra and create your first keyspace Choose the right table structure for the task at hand in a variety of scenarios Use range slice queries for efficient data access Effortlessly handle concurrent updates with collection columns Ensure data integrity with lightweight transactions and logged batches Understand eventual consistency and use the right consistency level for your situation Implement best practices for data modeling and access About the Author Mat Brown is a professional software engineer in Brooklyn, New York. In his career, he has focused on building consumer-facing web and mobile applications for several companies; he currently works at Genius. Table of Contents Getting up and Running with Cassandra The First Table Organizing Related Data Beyond Key-value Lookup Establishing Relationships Denormalizing Data for Maximum Performance Expanding Your Data Model Collections, Tuples, and User-defined Types Aggregating Time-series Data How Cassandra Distributes Data

RHCSA/RHCE Red Hat Linux Certification Study Guide (Exams Ex200 & Ex300)


Michael Jang - 2015
    RHCSA/RHCE Red Hat Linux Certification Study Guide, 7th Edition is fully revised to cover the recently released Red Hat Enterprise Linux 7 and the corresponding RHCSA and RHCE certification exams. This new edition provides complete coverage of all official exam objectives for the new exams.An integrated study system based on proven pedagogy, this revised bestseller features special elements that reinforce and teach practical skills while preparing candidates for the exam. Each chapter includes step-by-step exercises, Exam Watch and On-the-Job sidebars, Two-Minute Drills, end-of-chapter self tests, and hands-on lab questions. Electronic content includes four complete lab-based practice exams to ensure you're ready to sit for the live exams.Complete coverage of all exam objectives and performance-based requirements related to the exams, including difficult lab-based scenariosElectronic content includes four complete lab-based practice exams, two for RHCSA and two for RHCEA proven study system for RHCSA and RHCE candidatesThis book includes copies of the Linux Kernel provided under the terms of the GNU General Public License version 2

Learner-Centered Design of Computing Education: Research on Computing for Everyone


Mark J. Guzdial - 2015
    Many students (both children and adult) are realizing that they will need programming in the future. This book presents the argument that they are not all going to use programming in the same way and for the same purposes. What do we mean when we talk about teaching everyone to program? When we target a broad audience, should we have the same goals as computer science education for professional software developers? How do we design computing education that works for everyone? This book proposes use of a learner-centered design approach to create computing education for a broad audience. It considers several reasons for teaching computing to everyone and how the different reasons lead to different choices about learning goals and teaching methods. The book reviews the history of the idea that programming isn't just for the professional software developer. It uses research studies on teaching computing in liberal arts programs, to graphic designers, to high school teachers, in order to explore the idea that computer science for everyone requires us to re-think how we teach and what we teach. The conclusion describes how we might create computing education for everyone.

Fundamentals of Music Processing: Audio, Analysis, Algorithms, Applications


Meinhard Muller - 2015
    

Professional Android


Reto Meier - 2015
    This hands-on approach provides in-depth coverage through a series of projects, each introducing a new Android platform feature and highlighting the techniques and best practices that exploit its utmost functionality. The exercises begin simply, and gradually build into advanced Android development. Clear, concise examples show you how to quickly construct real-world mobile applications.This book is your guide to smart, efficient, effective Android development.Learn the best practices that get more out of Android Understand the anatomy, lifecycle, and UI metaphor of Android apps Design for all mobile platforms, including tablets Utilize both the Android framework and Google Play services

The Story of the Computer: A Technical and Business History


Stephen Marshall - 2015
    They are the enablers for many of the technologies that the developed world now relies upon and their impact on society cannot be overestimated. The story of their creation is a fascinating one which encompasses many of the great advances in engineering, mathematics and the physical sciences that have taken place over the past 400 years. The Story of the Computer is the first comprehensive treatment of the subject written from both a technical and a business perspective. It sets out to chart the complex evolutionary process that has resulted in the creation of today’s computers, picking out those innovations and discoveries which contributed most to the pool of knowledge through their influence on later advances and taking into consideration the business drivers as well as the specific technical breakthroughs. To put developments into context and provide a more rounded picture, it also covers the advances in science and technology, or ‘building blocks’, which have facilitated them. The book is divided into four parts, beginning with humanity’s earliest efforts to automate the process of calculation, first through mechanical means, then electromechanical and finally electronic. Part two describes the transformation from sequence-controlled calculators to stored-program computers and the birth of the computer industry. In part three we see the industry maturing and new market segments beginning to emerge for faster or smaller computers, facilitated by the introduction of solid-state components. The final part brings the story up to date with the development of mass-produced personal computers, computer graphics and the World Wide Web. Written in a highly accessible style with illustrations throughout, The Story of the Computer should provide a rewarding read for both the specialist and the general reader.

Red Hat RHCE/RHCSA 7 Cert Guide: Red Hat Enterprise Linux 7 (EX200 and EX300)


Sander van Vugt - 2015
    Best-selling author and top Linux consultant Sander van Vugt shares preparation hints and test-taking tips, helping you identify areas of weakness to improve both your conceptual knowledge and hands-on skills. This complete study package includes the following: A test-preparation routine proven to help you pass Red Hat's tough certification exams Clearly defined chapter learning objectives covering all RHCSA (EX200) and RHCE (EX300) exam topics Chapter-ending review questions to help you drill on key concepts you must know thoroughly Chapter-ending labs showing what real exam tasks and assignments look like 4 Practice Exams that appear in the book and also on the on the companion website and DVD (2 RHCSA and 2 RHCE), so you can thoroughly test your skills before taking your actual exams More than 40 Interactive Hands-on Exercises and 40 Interactive Quizzes to help you immediately test and reinforce your knowledge 4 advanced Command-Line Interface simulations (2 RHCSA and 2 RHCE) walking you through realistic, complex, multi-step Red Hat scenarios Interactive Glossary Quiz on the companion website and DVD allowing you to test yourself on every glossary term covered in the book 21/2+ hours of video training: 30 minutes of unique test-prep videos plus more than 2 hours of instruction from the best-selling RHCSA and RHCE Complete Video Course series 3 Virtual Machines on the companion website and DVD giving you easy access to a reliable environment for working through this book's labs and exercises A final preparation chapter, which guides you through tools and resources to help you craft your review and test-taking strategies Two Theoretical Pre-Assessment Exams (one RHCSA and one RHCE) so you can assess your skills and determine the best study path An Exam Essentials appendix that quickly recaps all major chapter topics for easy reference, found on both the companion website and DVD Study plan suggestions and templates to help you organize and optimize your study time Companion Website and DVD The companion website and DVD contain 4 practice exams, exercises, quizzes, virtual labs, video, and more. For details, open the DVD or access the companion website at www.pearsonitcertification.com/ Includes Exclusive Offer for 70% Off Premium Edition eBook and Practice Tests

Numerical Algorithms: Methods for Computer Vision, Machine Learning, and Graphics


Justin Solomon - 2015
    Using examples from a broad base of computational tasks, including data processing, computational photography, and animation, the textbook introduces numerical modeling and algorithmic design from a practical standpoint and provides insight into the theoretical tools needed to support these skills.The book covers a wide range of topics--from numerical linear algebra to optimization and differential equations--focusing on real-world motivation and unifying themes. It incorporates cases from computer science research and practice, accompanied by highlights from in-depth literature on each subtopic. Comprehensive end-of-chapter exercises encourage critical thinking and build students' intuition while introducing extensions of the basic material.The text is designed for advanced undergraduate and beginning graduate students in computer science and related fields with experience in calculus and linear algebra. For students with a background in discrete mathematics, the book includes some reminders of relevant continuous mathematical background.

Digital Design and Computer Architecture: ARM Edition


Sarah L. Harris - 2015
    Beginning with digital logic gates and progressing to the design of combinational and sequential circuits, Harris and Harris use these fundamental building blocks as the basis for what follows: the design of an actual ARM processor. With over 75% of the world’s population using products with ARM processors, the design of the ARM processor offers an exciting and timely application of digital design while also teaching the fundamentals of computer architecture. SystemVerilog and VHDL are integrated throughout the text in examples illustrating the methods and techniques for CAD-based circuit design. By the end of this book, readers will be able to build their own microprocessor and will have a top-to-bottom understanding of how it works. Harris and Harris have combined an engaging and humorous writing style with an updated and hands-on approach to digital design. Covers the fundamentals of digital logic design and reinforces logic concepts through the design of an ARM microprocessor. Features side-by-side examples of the two most prominent Hardware Description Languages (HDLs)—SystemVerilog and VHDL—which illustrate and compare the ways each can be used in the design of digital systems. Includes examples throughout the text that enhance the reader’s understanding and retention of key concepts and techniques. The Companion website includes a chapter on I/O systems with practical examples that show how to use the Raspberry Pi computer to communicate with peripheral devices such as LCDs, Bluetooth radios, and motors. The Companion website also includes appendices covering practical digital design issues and C programming as well as links to CAD tools, lecture slides, laboratory projects, and solutions to exercises.

Laravel 5 Cookbook Enhance Your Amazing Applications


Nathan Wu - 2015
    You'll LEARN BY DOING right from the beginning. This book features a lot of practical Laravel tutorials. Each tutorial includes practical advice, tips and tricks for working with jQuery, AJAX, JSON, API, modular PHP, testing, deployment and more.

On Computable Numbers


Alan Turing - 2015
    Turing was highly influential in the development of computer science, providing a formalization of the concepts of "algorithm" and "computation" with the Turing machine, which can be considered a model of a general purpose computer. A British pioneering computer scientist, mathematician, logician, cryptanalyst, philosopher, mathematical biologist, and marathon and ultra distance runner. During WWII, Turing's pivotal role in cracking intercepted coded messages enabled the Allies to defeat the Nazis in many crucial engagements, including the Battle of the Atlantic; it has been estimated that the work at Bletchley Park shortened the war in Europe by as many as two to four years. Turing is widely considered to be the father of theoretical computer science and artificial intelligence.

Learn Git in a Month of Lunches


Rick Umali - 2015
    Whether you're a newbie or a busy pro moving your source control to Git, you'll appreciate how this book concentrates on the components of Git you'll use every day. In easy-to-follow lessons designed to take an hour or less, you'll dig into Git's distributed collaboration model, along with core concepts like committing, branching, and merging.Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.About the BookGit is the source code control system preferred by modern development teams. Its decentralized architecture and lightning-fast branching let you concentrate on your code instead of tedious version control tasks. At first, Git may seem like a sprawling beast. Fortunately, to get started you just need to master a few essential techniques. Read on!Learn Git in a Month of Lunches introduces the discipline of source code control using Git. Helpful for both newbies who have never used source control and busy pros, this book concentrates on the components of Git you'll use every day. In easy-to-follow lessons that take an hour or less, you'll dig into Git's distributed collaboration model, along with core concepts like committing, branching, and merging. This book is a road map to the commands and processes you need to be instantly productive.What's InsideStart from square one—no experience requiredThe most frequently used Git commandsMental models that show how Git worksLearn when and how to branch codeAbout the ReaderNo previous experience with Git or other source control systems is required.About the AuthorRick Umali uses Git daily as a developer and is a skilled consultant, trainer, and speaker.Table of ContentsBefore you beginAn overview of Git and version controlGetting oriented with GitMaking and using a Git repositoryUsing Git with a GUITracking and updating files in GitCommitting parts of changesThe time machine that is GitTaking a fork in the roadMerging branchesCloningCollaborating with remotesPushing your changesKeeping in syncSoftware archaeologyUnderstanding git rebaseWorkflows and branching conventionsWorking with GitHubThird-party tools and GitSharpening your Git

Microsoft Visual C# Step by Step (Developer Reference)


John Sharp - 2015
    If you are an experienced software developer, you’ll get all the guidance, exercises, and code you need to start building responsive, scalable Windows 10 and Universal Windows Platform applications with Visual C#. Discover how to: Quickly start creating Visual C# code and projects with Visual Studio 2015 Work with variables, operators, expressions, and methods Control program flow with decision and iteration statements Build more robust apps with error, exception, and resource management Master the essentials of Visual C# object-oriented programming Use enumerations, structures, generics, collections, indexers, and other advanced features Create in-memory data queries with LINQ query expressions Improve application throughput and response time with asynchronous methods Decouple application logic and event handling Streamline development with new app templates Implement the Model-View-ViewModel (MVVM) pattern Build Universal Windows Platform apps that smoothly adapt to PCs, tablets, and Windows phones Integrate Microsoft Azure cloud databases and RESTful web services About You For software developers who are new to Visual C# or who are upgrading from older versions Readers should have experience with at least one programming language No prior Microsoft .NET or Visual Studio development experience required

Mastering Selenium WebDriver


Mark Collin - 2015
    What You Will Learn Provide fast, useful feedback with sensible errors and screenshots Create extensible, well-composed page objects Gain an in-depth understanding of implicit and explicit waits, and how you should use them Leverage the full power of the Actions API Explore the full potential of the JavascriptExecutor Extend Selenium's capabilities by integrating other applications Learn how to plug third-party products into Selenium, and where it is appropriate to do so In Detail Selenium WebDriver, also known as Selenium 2, is a UI automation tool used by software developers and QA engineers to test their web applications on different web browsers. The Selenium WebDriver API is fully object oriented compared with the deprecated Selenium RC. The WebDriver API provides multi-language support and run tests on all the most popular browsers.In this wide and complex World Wide Web era, this book will teach you how to tame it by gaining an in-depth understanding of the Selenium API.This book starts with how to solve the difficult problems that you will undoubtedly come across as you start using Selenium in an enterprise environment, followed by producing the right feedback when failing, and what the common exceptions are, explain them properly (including the root cause) and tell you how to fix them. You will also see the differences between the three available implicit waits and explicit waits, and learn to working with effective page objects.Moving on, the book shows you how to utilize the Advanced User Interactions API, how you can run any JavaScript you need through Selenium, and how to quickly spin up a Selenium Grid using Docker containers.At the end, the book will discuss the upcoming Selenium W3C specification and how it is going to affect the future of Selenium. Style and approach This book is a pragmatic guide that takes you through the process of creating a test framework. It then shows you how you can extend this framework to overcome common obstacles that you will come across whilst using Selenium.

Windows File System Troubleshooting


Mike Halsey - 2015
    In this book you'll learn how to navigate around the Windows file structure (up to Windows 8.1), with what does what and how essential everything is. Additionally we'll show you how to effectively manage file, folder and security permissions to ensure users get what the access they need, and no more. We'll also show you how to repair the underlying disk file system should something go horribly wrong.

Enterprise Cybersecurity: How to Build a Successful Cyberdefense Program Against Advanced Threats


Scott E. Donaldson - 2015
    

Data Structure and Algorithmic Thinking with Python


Narasimha Karumanchi - 2015
    In particular, be sure you are comfortable with the level and with our Python coding style. This book focuses on giving solutions for complex problems in data structures and algorithm. It even provides multiple solutions for a single problem, thus familiarizing readers with different possible approaches to the same problem. "Data Structure and Algorithmic Thinking with Python" is designed to give a jump-start to programmers, job hunters and those who are appearing for exams. All the code in this book are written in Python. It contains many programming puzzles that not only encourage analytical thinking, but also prepares readers for interviews. This book, with its focused and practical approach, can help readers quickly pick up the concepts and techniques for developing efficient and effective solutions to problems. Topics covered include: Organization of Chapters Introduction Recursion and Backtracking Linked Lists Stacks Queues Trees Priority Queues and Heaps Disjoint Sets ADT Graph Algorithms Sorting Searching Selection Algorithms [Medians] Symbol Tables Hashing String Algorithms Algorithms Design Techniques Greedy Algorithms Divide and Conquer Algorithms Dynamic Programming Complexity Classes Hacks on Bit-wise Programming Other Programming Questions

Operating Systems: Principles and Practice (Volume 1 of 4)


Thomas Anderson - 2015
    In use at dozens of top tier universities, and written by two leading operating systems researchers with decades of experience successfully teaching complex topics to thousands of students, this textbook provides: -- A path for students to understand high level concepts all the way down to working code. -- Extensive worked examples integrated throughout the text provide students concrete guidance for completing homework assignments. -- A focus on up-to-date industry technologies and practiceThe e-book version of Operating Systems: Principles and Practice is broken into 4 volumes: Volume 1: Kernels and Processes Volume 2: Concurrency Volume 3: Memory Management Volume 4: Persistent StorageThis is Volume 1: Kernels and ProcessesIn this volume, we describe the essential steps needed to isolate programs to prevent buggy applications and computer viruses from crashing or taking control of your system.

Handbook of Modern Sensors: Physics, Designs, and Applications


Fraden Jacob - 2015
    This latest edition focuses on the sensing technologies driven by the expanding use of sensors in mobile devices. These new miniature sensors will be described, with an emphasis on smart sensors which have embedded processing systems. The chapter on chemical sensors has also been expanded to present the latest developments.Digital systems, however complex and intelligent they may be, must receive information from the outside world that is generally analog and not electrical. Sensors are interface devices between various physical values and the electronic circuits that "understand" only a language of moving electrical charges. In other words, sensors are the eyes, ears, and noses of silicon chips.Unlike other books on sensors, the Handbook of Modern Sensors is organized according to the measured variables (temperature, pressure, position, etc.). This book is a reference text for students, researchers interested in modern instrumentation (applied physicists and engineers), sensor designers, application engineers and technicians whose job it is to understand, select and/or design sensors for practical systems.

JavaScript Regular Expressions


Loiane Groner, Gabriel Manricks - 2015
    This book is ideal for JavaScript developers and programmers who work with any type of user entry data and want sharpen their skills to become experts.

Operating Systems Design and Implementat: Design and Implementation


Andrew S. Tanenbaum - 2015
    It has been especially designed for high reliability for use in embedded systems and for ease of teaching.

Hadoop Application Architectures: Designing Real-World Big Data Applications


Mark Grover - 2015
    

Build a Smart Raspberry Pi VPN Server: Auto Configuring, Plug-n-Play, Use from Anywhere


Ira Finch - 2015
    As a fully plug-n-play device, you will be able to connect it to virtually any Internet router and it will auto-configure itself to that environment. There is no need for DDNS (Dynamic DNS) as the server will send you emails if/when its IP address changes, so you can make quick/easy changes to your local Client Certificates. For less than $60, you'll have your own VPN Server, and Tor Router, which you can monitor and maintain from almost anywhere without paying service fees to companies that may record, sell, or steal your data or identity. NEW 3RD EDITION: Includes optional Tor Router for increased anonymity and identity protection, VPN over SSL, SSH hardening, simplified setup and other enhancements. My book contains a link to a supporting web site that includes a User Forum, and additional FAQs, Troubleshooting, Maintenance, and Errata pages not found in the book. NOTE: Unless there are major revisions made to this book, owners are not automatically updated with the latest Revision. This is Amazon's Policy. So Please, check that you have the latest Revision of this book before using it or posting a negative review. And request the latest Revision from Amazon if necessary. **** Please contact the Author via the email address or web site given in the book if you have any questions or issues.

The MMIX Supplement: Supplement to the Art of Computer Programming Volumes 1, 2, 3 by Donald E. Knuth


Martin Ruckert - 2015
    Knuth "I encourage serious programmers everywhere to sharpen their skills by devouring this book." -Donald E. Knuth In the first edition of Volume 1 of The Art of Computer Programming, Donald E. Knuth introduced the MIX computer and its machine language: a teaching tool that powerfully illuminated the inner workings of the algorithms he documents. Later, with the publication of his Fascicle 1, Knuth introduced MMIX: a modern, 64-bit RISC replacement to the now-obsolete MIX. Now, with Knuth's guidance and approval, Martin Ruckert has rewritten all MIX example programs from Knuth's Volumes 1-3 for MMIX, thus completing this MMIX update to the original classic. Building on contributions from the international MMIXmasters volunteer group, Ruckert fully addresses MMIX basic concepts, information structures, random numbers, arithmetic, sorting, and searching. In the preparation of this supplement, about 15,000 lines of MMIX code were written and checked for correctness; over a thousand test cases were written and executed to ensure the code is of the highest possible quality. The MMIX Supplement should be read side by side with The Art of Computer Programming, Volumes 1-3, and Knuth's Fascicle 1, which introduces the MMIX computer, its design, and its machine language. Throughout, this supplement contains convenient page references to corresponding coverage in the original volumes. To further simplify the transition to MMIX, Ruckert stayed as close as possible to the original-preserving programming style, analysis techniques, and even wording, while highlighting differences where appropriate. The resulting text will serve as a bridge to the future, helping readers apply Knuth's insights in modern environments, until his revised, "ultimate" edition of The Art of Computer Programming is available. From Donald E. Knuth's Foreword: "I am thrilled to see the present book by Martin Ruckert: It is jam-packed with goodies from which an extraordinary amount can be learned. Martin has not merely transcribed my early programs for MIX and recast them in a modern idiom. He has penetrated to their essence and rendered them anew with elegance and good taste. His carefully checked code represents a significant contribution to the art of pedagogy as well as to the art of programming." Dr. Martin Ruckert maintains the MMIX home page at mmix.cs.hm.edu. He is professor of mathematics and computer science at Munich University of Applied Sciences in Munich, Germany.

The Art of Computer Programming, Volume 4, Fascicle 6: Satisfiability


Donald Ervin Knuth - 2015
    The four volumes published to date already comprise a unique and invaluable resource in programming theory and practice. Countless readers have spoken about the profound personal influence of Knuth s writings. Scientists have marveled at the beauty and elegance of his analysis, while practicing programmers have successfully applied his cookbook solutions to their day-to-day problems. All have admired Knuth for the breadth, clarity, accuracy, and good humor found in his books. To continue the fourth and later volumes of the set, and to update parts of the existing volumes, Knuth has created a series of small books called fascicles, which are published at regular intervals. Each fascicle encompasses a section or more of wholly new or revised material. Ultimately, the content of these fascicles will be rolled up into the comprehensive, final versions of each volume, and the enormous undertaking that began in 1962 will be complete. Volume 4 Fascicle 6 This fascicle, brimming with lively examples, forms the middle third of what will eventually become hardcover Volume 4B. It introduces and surveys Satisfiability, one of the most fundamental problems in all of computer science: Given a Boolean function, can its variables be set to at least one pattern of 0s and 1s that will make the function true? Satisfiability is far from an abstract exercise in understanding formal systems. Revolutionary methods for solving such problems emerged at the beginning of the twenty-first century, and they ve led to game-changing applications in industry. These so-called SAT solvers can now routinely find solutions to practical problems that involve millions of variables and were thought until very recently to be hopelessly difficult. Fascicle 6 presents full details of seven different SAT solvers, ranging from simple algorithms suitable for small problems to state-of-the-art algorithms of industrial strength. Many other significant topics also arise in the course of the discussion, such as bounded model checking, the theory of traces, Las Vegas algorithms, phase changes in random processes, the efficient encoding of problems into conjunctive normal form, and the exploitation of global and local symmetries. More than 500 exercises are provided, arranged carefully for self-instruction, together with detailed answers. "

Q Tips: Fast, Scalable and Maintainable Kdb+


Nick Psaris - 2015
    Q Tips teaches you everything you need to know to build a fully functional CEP engine. Advanced topics include profiling an active q server, derivatives pricing and histogram charting. As each new topic is introduced, tips are highlighted to help you write better q.

An Engineering Manager's Guide to Design Patterns


Eric Freeman - 2015
    In this O'Reilly report, authors Eric Freeman and Elisabeth Robson show you how object-oriented design patterns are ideal for solving specific problems in application design.Instead of algorithms or code, design patterns are all about reusing the experience of developers who have devised well thought-out, time-tested solutions to object-oriented programming problems. Using O'Reilly's unique Head First methodology, this report details how a particular design pattern can solve a non-obvious design problem. You also get a Patterns Cheat Sheet that briefly describes several design patterns and provides tips for using patterns in general.This report explains why:Design patterns tell you how to structure classes and objects to solve certain problemsThey allow you to create flexible designs that are maintainable and cope with changeIt’s your job to adapt a pattern to fit your particular applicationAll design patterns provide a way to let some part of a system vary independently from all other partsPatterns provide a shared vocabulary that lets your team think at the pattern level, rather than at the nitty-gritty object levelEric Freeman, former CTO of Disney Online & Disney.com at The Walt Disney Company, has educated more than a quarter million people with his award-winning books. He's a co-founder of Wickedly Smart, an education company devoted to helping customers gain mastery in software technologies.Elisabeth Robson, co-founder of Wickedly Smart, has co-authored four bestselling O'Reilly books: Head First Design Patterns, Head First HTML and CSS, Head First HTML5 Programming, and Head First JavaScript Programming. She is passionate about creating learning experiences for people.

Beginning Software Engineering


Rod Stephens - 2015
    Free of jargon and assuming no previous programming, development, or management experience, this accessible guide explains important concepts and techniques that can be applied to any programming language. Each chapter ends with exercises that let you test your understanding and help you elaborate on the chapter's main concepts. Everything you need to understand waterfall, Sashimi, agile, RAD, Scrum, Kanban, Extreme Programming, and many other development models is inside!Describes in plain English what software engineering is Explains the roles and responsibilities of team members working on a software engineering project Outlines key phases that any software engineering effort must handle to produce applications that are powerful and dependable Details the most popular software development methodologies and explains the different ways they handle critical development tasks Incorporates exercises that expand upon each chapter's main ideas Includes an extensive glossary of software engineering terms

Linux Forensics


Philip Polstra - 2015
    It is also a great asset for anyone that would like to better understand Linux internals.Linux Forensics will guide you step by step through the process of investigating a computer running Linux. Everything you need to know from the moment you receive the call from someone who thinks they have been attacked until the final report is written is covered in this book. All of the tools discussed in this book are free and most are also open source.Dr. Philip Polstra shows how to leverage numerous tools such as Python, shell scripting, and MySQL to quickly, easily, and accurately analyze Linux systems. While readers will have a strong grasp of Python and shell scripting by the time they complete this book, no prior knowledge of either of these scripting languages is assumed. Linux Forensics begins by showing you how to determine if there was an incident with minimally invasive techniques. Once it appears likely that an incident has occurred, Dr. Polstra shows you how to collect data from a live system before shutting it down for the creation of filesystem images.Linux Forensics contains extensive coverage of Linux ext2, ext3, and ext4 filesystems. A large collection of Python and shell scripts for creating, mounting, and analyzing filesystem images are presented in this book. Dr. Polstra introduces readers to the exciting new field of memory analysis using the Volatility framework. Discussions of advanced attacks and malware analysis round out the book.Book Highlights370 pages in large, easy-to-read 8.5 x 11 inch format Over 9000 lines of Python scripts with explanations Over 800 lines of shell scripts with explanations A 102 page chapter containing up-to-date information on the ext4 filesystem Two scenarios described in detail with images available from the book website All scripts and other support files are available from the book website Chapter ContentsFirst StepsGeneral PrinciplesPhases of InvestigationHigh-level ProcessBuilding a ToolkitDetermining If There Was an IncidentOpening a CaseTalking to UsersDocumenationMounting Known-good BinariesMinimizing Disturbance to the SubjectAutomation With ScriptingLive AnalysisGetting MetadataUsing SpreadsheetsGetting Command HistoriesGetting LogsUsing HashesDumping RAMCreating ImagesShutting Down the SystemImage FormatsDDDCFLDDWrite BlockingImaging Virtual MachinesImaging Physical DrivesMounting ImagesMaster Boot Record Based PartionsGUID Partition TablesMounting Partitions In LinuxAutomating With PythonAnalyzing Mounted ImagesGetting TimestampsUsing LibreOfficeUsing MySQLCreating TimelinesExtended FilesystemsBasicsSuperblocksFeaturesUsing PythonFinding Things That Are Out Of PlaceInodesJournalingMemory AnalysisVolatilityCreating ProfilesLinux CommandsDealing With More Advanced Attackers MalwareIs It Malware?Malware Analysis ToolsStatic AnalysisDynamic AnalysisObfuscationThe Road AheadLearning MoreCommunitiesConferencesCertifications

Arduino Development Cookbook


Cornel Amariei - 2015
    It is intended for programming or electronics enthusiasts who want to combine the best of both worlds to build interactive projects. What You Will Learn Read data from sensors and take action based on the environment Use the Arduino to turn on lights, write to screens, or play light shows Manipulate motors and other actuators to control the movement of different objects Set up electronic circuits on a breadboard to interact with the Arduino Explore hacks to push your project to the next level Make your projects wireless and make them communicate with the computer In Detail The single-chip computer board Arduino is small in size but vast in scope, capable of being used for electronic projects from robotics through to home automation. The most popular embedded platform in the world, Arduino users range from school children to industry experts, all incorporating it into their designs.Arduino Development Cookbook comprises clear and step-by-step recipes that give you the toolbox of techniques to construct any Arduino project, from the simple to the advanced. Each chapter gives you more essential building blocks for Arduino development, from learning about programming buttons through to operating motors, managing sensors, and controlling displays. Throughout, you'll find tips and tricks to help you troubleshoot your development problems and push your Arduino project to the next level!

Patterns in C: Patterns, Idioms and Design Principles


Adam Tornhill - 2015
    Patterns in C is a collection of idioms, design and architectural patterns in the C programming language. The book highlights the value of patterns. In the right context, patterns serve as an excellent tool for communication and reasoning. The book provides a C programmer with techniques to benefit from the growing body of knowledge captured in patterns.The book focuses on implementation techniques, design principles and discussions of different trade-offs. Patterns in C includes implementations of well-known patterns from the seminal Design Patterns book (Gamma, et al). The book continues beyond Design Patterns and provides an in-depth discussion of the architectural pattern REACTOR from the Pattern-Oriented Software Architecture series (Buschmann, et al). In addition, I provide a collection of idioms specific to the C language.Patterns in C is based on an article series I published in ACCU's magazine Cvu. In this new book I tried to keep much of the original content. To provide additional value the book offers new reflections as introductions to each pattern. These brand new introductions reflect some of the experience I've gained since the original publication. I hope to shed some new light on the patterns, the principles behind and their practical applicability.I hope you enjoy it!

Intermediate C Programming


Yung-Hsiang Lu - 2015
    It shows students how to identify and eliminate bugs, write clean code, share code with others, and use standard Linux-based tools, such as ddd and valgrind.The text covers numerous concepts and tools that will help your students write better programs. It enhances their programming skills by explaining programming concepts and comparing common mistakes with correct programs. It also discusses how to use debuggers and the strategies for debugging as well as studies the connection between programming and discrete mathematics.

Meta-Analysis with R


Guido Schwarzer - 2015
    It is intended for quantitative researchers and students in the medical and social sciences who wish to learn how to perform meta-analysis with R. As such, the book introduces the key concepts and models used in meta-analysis. It also includes chapters on the following advanced topics: publication bias and small study effects; missing data; multivariate meta-analysis, network meta-analysis; and meta-analysis of diagnostic studies.

Learn JavaFX 8: Building User Experience and Interfaces with Java 8


Kishori Sharan - 2015
    Each chapter starts with an introduction to the topic at hand, followed by a step-by-step discussion of the topic with small snippets of code. The book contains numerous figures aiding readers in visualizing the GUI that is built at every step in the discussion.The book starts with an introduction to JavaFX and its history. It lists the system requirements and the steps to start developing JavaFX applications. It shows you how to create a Hello World application in JavaFX, explaining every line of code in the process. Later in the book, author Kishori Sharan discusses advanced topics such as 2D and 3D graphics, charts, FXML, advanced controls, and printing. Some of the advanced controls such as TableView, TreeTableView and WebView are covered at length in separate chapters.This book provides complete and comprehensive coverage of JavaFX 8 features; uses an incremental approach to teach JavaFX, assuming no prior GUI knowledge; includes code snippets, complete programs, and pictures; covers MVC patterns using JavaFX; and covers advanced topics such as FXML, effects, transformations, charts, images, canvas, audio and video, DnD, and more. So, after reading and using this book, you'll come away with a comprehensive introduction to the JavaFX APIs as found in the new Java 8 platform. What you’ll learn • How to develop rich-client desktop applications using JavaFX 8• How to use properties, collections, colors, and styles• How to use controls and handle events to build modern GUI applications• How to use advanced controls such as TreeView, TableView, and TreeTableView• How to access webpages in JavaFX applications• How to draw 2D and 3D shapes, and apply effects and transformations• How to create animations and charts using the JavaFX 8 APIs• How to add audio and video to your applications• How to create GUIs in JavaFX using FXML• How to provide printing capabilities using the JavaFX Print API Who this book is for This book is for Java developers with beginning to intermediate level Java skills who want to learn how to develop modern desktop GUI applications using JavaFX 8.

Learning Scientific Programming with Python


Christian Hill - 2015
    Students and researchers at all levels are increasingly turning to the powerful Python programming language as an alternative to commercial packages and this fast-paced introduction moves from the basics to advanced concepts in one complete volume, enabling readers to quickly gain proficiency. Beginning with general programming concepts such as loops and functions within the core Python 3 language, and moving onto the NumPy, SciPy and Matplotlib libraries for numerical programming and data visualisation, this textbook also discusses the use of IPython notebooks to build rich-media, shareable documents for scientific analysis. Including a final chapter introducing challenging topics such as floating-point precision and algorithm stability, and with extensive online resources to support advanced study, this textbook represents a targeted package for students requiring a solid foundation in Python programming.

Android App Development for Dummies


Donn Felker - 2015
    

Principles of Cyber-Physical Systems


Rajeev Alur - 2015
    Increasingly, such systems are everywhere, from smart buildings to medical devices to automobiles. This textbook offers a rigorous and comprehensive introduction to the principles of design, specification, modeling, and analysis of cyber-physical systems. The book draws on a diverse set of subdisciplines, including model-based design, concurrency theory, distributed algorithms, formal methods of specification and verification, control theory, real-time systems, and hybrid systems, explaining the core ideas from each that are relevant to system design and analysis.The book explains how formal models provide mathematical abstractions to manage the complexity of a system design. It covers both synchronous and asynchronous models for concurrent computation, continuous-time models for dynamical systems, and hybrid systems for integrating discrete and continuous evolution. The role of correctness requirements in the design of reliable systems is illustrated with a range of specification formalisms and the associated techniques for formal verification. The topics include safety and liveness requirements, temporal logic, model checking, deductive verification, stability analysis of linear systems, and real-time scheduling algorithms. Principles of modeling, specification, and analysis are illustrated by constructing solutions to representative design problems from distributed algorithms, network protocols, control design, and robotics.This book provides the rapidly expanding field of cyber-physical systems with a long-needed foundational text by an established authority. It is suitable for classroom use or as a reference for professionals.

Beginning JavaScript


Jeremy McPeak - 2015
    This new edition has been extensively updated to reflect the way JavaScript is most commonly used today, introducing you to the latest tools and techniques available to JavaScript developers. Coverage includes modern coding practices using HTML5 markup, the JSON data format, DOM APIs, the jQuery framework, and more. Exercises with solutions provide plenty of opportunity to practice, and the companion website offers downloadable code for all examples given in the book.Learn JavaScript using the most up to date coding style Understand JSON, functions, events, and feature detection Utilize the new HTML5 elements and the related API Explore new features including geolocation, local storage, and more JavaScript has shaped the Web from a passive medium into one that is rich, dynamic, and interactive. No matter the technology on the server side, it's JavaScript that makes it come alive in the browser. To learn JavaScript the way it's used today, Beginning JavaScript, 5th Edition is your concise guide.

iOS 9 Programming Fundamentals with Swift: Swift, Xcode, and Cocoa Basics


Matt Neuburg - 2015
    With this thoroughly updated guide, you'll learn Swift’s object-oriented concepts, understand how to use Apple's development tools, and discover how Cocoa provides the underlying functionality iOS apps need to have. Explore Swift’s object-oriented concepts: variables and functions, scopes and namespaces, object types and instances Become familiar with built-in Swift types such as numbers, strings, ranges, tuples, Optionals, arrays, dictionaries, and sets Learn how to declare, instantiate, and customize Swift object types—enums, structs, and classes Discover powerful Swift features such as protocols and generics Catch up on Swift 2.0 innovations: option sets, protocol extensions, error handling, guard statements, availability checks, and more Tour the lifecycle of an Xcode project from inception to App Store Create app interfaces with nibs and the nib editor, Interface Builder Understand Cocoa’s event-driven model and its major design patterns and features Find out how Swift communicates with Cocoa’s C and Objective-C APIs Once you master the fundamentals, you'll be ready to tackle the details of iOS app development with author Matt Neuburg's companion guide, Programming iOS 9.

Physical Computation: A Mechanistic Account


Gualtiero Piccinini - 2015
    A physical system is a computing system just in case it is a mechanism one of whose functions is to manipulate vehicles based solely on differences between different portions of the vehicles according to a rule defined over the vehicles. Physical Computation discusses previous accounts of computation and argues that the mechanistic account is better. Manykinds of computation are explicated, such as digital vs. analog, serial vs. parallel, neural network computation, program-controlled computation, and more. Piccinini argues that computation does not entail representation or information processing although information processing entails computation.Pancomputationalism, according to which every physical system is computational, is rejected. A modest version of the physical Church-Turing thesis, according to which any function that is physically computable is computable by Turing machines, is defended.

Constraint Solving and Planning with Picat


Neng-Fa Zhou - 2015
    This book introduces a new logic-based multi-paradigm programming language that integrates logic programming, functional programming, dynamic programming with tabling, and scripting, for use in solving combinatorial search problems, including CP, SAT, and MIP (mixed integer programming) based solver modules, and a module for planning that is implemented using tabling.The book is useful for undergraduate and graduate students, researchers, and practitioners.

Spatial and Spatio-temporal Bayesian Models with R - INLA


Marta Blangiardo - 2015
    The authors combine an introduction to Bayesian theory and methodology with a focus on the spatial and spatio­-temporal models used within the Bayesian framework and a series of practical examples which allow the reader to link the statistical theory presented to real data problems. The numerous examples from the fields of epidemiology, biostatistics and social science all are coded in the R package R-INLA, which has proven to be a valid alternative to the commonly used Markov Chain Monte Carlo simulations

Learn CSS in One Day and Learn It Well: CSS for Beginners with Hands-on Project. Includes HTML5


Jamie Chan - 2015
    Learn them fast and learn them well. Have you always wanted to learn to build your own website but are afraid it'll be too difficult for you? Or perhaps you are a blogger who wants to tweak your blog's design, without having to spend money on an expensive theme. This book is for you. You no longer have to waste your time and money learning HTML and CSS from lengthy books, expensive online courses or complicated tutorials. What this book offers... HTML and CSS for Beginners Complex concepts are broken down into simple steps to ensure that you can easily master the two languages even if you have never coded before. Carefully Chosen Examples (with images) Examples are carefully chosen to illustrate all concepts. In addition, images are provided whenever necessary so that you can immediately see the visual effects of various CSS properties. Learn The Languages Fast Concepts are presented in a "to-the-point" style to cater to the busy individual. With this book, you can learn HTML and CSS in just one day and start coding immediately. How is this book different... The best way to learn programming is by doing. End-of-Chapter Exercises Each CSS chapter comes with an end-of-chapter exercise where you get to practice the different CSS properties covered in the chapter and see first hand how different CSS values affect the design of the website. Bonus Project The book also includes a bonus project that requires the application of all the HTML and CSS concepts taught previously. Working through the project will not only give you an immense sense of achievement, it’ll also help you see how the various concepts tie together. Are you ready to dip your toes into the exciting world of web development? This book is for you. Click the BUY button and download it now. What you'll learn: - What is CSS and HTML? - What software do you need to write and run CSS codes? - What are HTML tags and elements? - What are the commonly used HTML tags and how to use them? - What are HTML IDs and Classes? - What is the basic CSS syntax? - What are CSS selectors? - What are pseudo classes and pseudo elements? - How to apply CSS rules to your website and what is the order of precedence? - What is the CSS box model? - How to position and float your CSS boxes - How to hide HTML content - How to change the background of CSS boxes - How to use the CSS color property to change colors - How to modify text and font of a website - How to create navigation bars - How to create gorgeous looking tables to display your data .. and more... Click the BUY button and download the book now to start learning HTML and CSS now. Learn them fast and learn them well. Tags: ------------ CSS, HTML5, web development, web page design, CSS examples, CSS tutorials, CSS coding, CSS for Dummies

The Python Workbook: A Brief Introduction with Exercises and Solutions


Ben Stephenson - 2015
    Designed to support and encourage hands-on learning about programming, this student-friendly work contains 174 exercises, spanning a variety of academic disciplines and everyday situations. Solutions to selected exercises are also provided, supported by brief annotations that explain the technique used to solve the problem, or highlight specific points of Python syntax. No background knowledge is required to solve the exercises, beyond the material covered in a typical introductory Python programming course.  Undergraduate students undergoing their first programming course and wishing to enhance their programming abilities will find the exercises and solutions provided in this book to be ideal for their needs.

Git Essentials


Ferdinando Santacroce - 2015
    Its incredibly fast branching ability transformed a piece of code from a niche tool for former Linux Kernel developers into a mainstream distributed versioning system. Like most powerful tools, Git can be hard to approach since it has a lot of commands, subcommands, and options that easily confuse newcomers. The main purpose of Git Essentials is to help you overcome this fear and become adept at all basic tasks in Git. This book starts with an introduction to version control systems, and after this you'll delve deeply into the essentials of Git. This serves as a primer for the topics to follow such as branching and merging, creating and managing a GitHub personal repository, and fork and pull requests. You will then learn the art of cherry-picking, taking only commits you like, followed by Git blame. Finally, you'll learn how to migrate from SVN using Git tools or TortoiseGit and migrate from other VCSs, concluding with a collection of resources, links, and appendices.

Jump Start Git: Take Control of Your Code and Assets


Shaumik Daityari - 2015
    And since they're distributed, they smooth the path for dev team collaboration.But what is it about Git that makes it mission-critical on so many web projects?Spend just one weekend with this hands-on tutorial, and you'll know the answer.Understand Git's core philosophy.Get started with Git: install it, learn the basic commands, and set up your first project.Work with Git as part of a collaborative team.Use Git's debugging tools for maximum debug efficiency.Take control with Git's advanced features: reflog, rebase, stash, and more.Use Git with cloud-based Git repository host services like Github and Bitbucket.See how Git's used effectively on large open-source projects.Git was created by Linus Torvalds, who invented Linux, so it comes with the best credentials. What are you waiting for? Get a jump start on Git today.

Jump Start Sass: Get Up to Speed with Sass in a Weekend


Hugo Giraudel - 2015
    Sass simplifies your stylesheets, adding some useful features missing from CSS. Most importantly, Sass will save you time.This book provides a thorough introduction to Sass for the beginner. In it, you'll learn:What preprocessors are and how they can be usefulInstallation and getting startedVariables, mixins, and functionsLoops and conditionsNestingExtendWarnings & errorsProject architectureThe Sass ecosystemAnd more!

Getting Started with P5.Js: Making Interactive Graphics in JavaScript and Processing


Lauren McCarthy - 2015
    p5.js is a new interpretation of Processing written in JavaScript that makes it easy to interact with HTML5 objects, including text, input, video, webcam, and sound. Like its older sibling Processing, p5.js makes coding accessible for artists, designers, educators, and beginners.Written by the lead p5.js developer and the founders of Processing, this book provides an introduction to the creative possibilities of today's Web, using JavaScript and HTML.With Getting Started with p5.js, you'll:Quickly learn programming basics, from variables to objectsUnderstand the fundamentals of computer graphicsCreate interactive graphics with easy-to-follow projectsLearn to apply data visualization techniquesCapture and manipulate webcam audio and video feeds in the browser

Penetration Testing with Raspberry Pi


Joseph Muñiz - 2015
    If you are a penetration tester who wants to save on travel costs by placing a low-cost node on a target network, you will save thousands by using the methods covered in this book. You do not have to be a skilled hacker or programmer to use this book. It will be beneficial to have some networking experience; however, it is not required to follow the concepts covered in this book. What You Will Learn Install and tune Kali Linux on a Raspberry Pi for hacking Use a Raspberry Pi for pentests such as breaking wireless security, scanning networks, and capturing sensitive data Perform man-in-the-middle attacks and bypass SSL encryption Compromise systems using various exploits and toolkits Bypass security defenses and remove data off a target network Develop a command and control system to manage remotely placed Raspberry Pis Turn a Raspberry Pi into a honeypot to capture sensitive information Grasp professional penetration testing through proper documentation In Detail The Raspberry Pi is a low-cost credit-card sized computing system that can be customized for just about anything including penetration testing. Raspberry Pi is the best known platform not because it is cheap but because it is very powerful. Kali is a pentesting/security auditing Linux distribution. Kali Linux has many penetration-testing programs, including nmap (a port scanner), Wireshark (a packet analyzer), John the Ripper (a password cracker), Aircrack-ng (a software suite for the penetration-testing of wireless LANs), and Burp suite and OWASP ZAP (both web application security scanners).This book covers how to turn a Raspberry Pi into a hacking arsenal to leverage the most popular open source toolkit, Kali Linux. You will learn how to use various tools to breach networks and steal data.

Fooled by Technical Analysis: The perils of charting, backtesting and data-mining


Michael Harris - 2015
    In this book you will learn why naive chartists and quants have no chance to profit from trading the markets and how expert chartists and quants attempt to maximize their winning odds. There are many examples that illustrate the points made in the book.

Data Assimilation: A Mathematical Introduction


Kody Law - 2015
    Specifically the authors develop a unified mathematical framework in which a Bayesian formulation of the problem provides the bedrock for the derivation, development and analysis of algorithms; the many examples used in the text, together with the algorithms which are introduced and discussed, are all illustrated by the MATLAB software detailed in the book and made freely available online.The book is organized into nine chapters: the first contains a brief introduction to the mathematical tools around which the material is organized; the next four are concerned with discrete time dynamical systems and discrete time data; the last four are concerned with continuous time dynamical systems and continuous time data and are organized analogously to the corresponding discrete time chapters.This book is aimed at mathematical researchers interested in a systematic development of this interdisciplinary field, and at researchers from the geosciences, and a variety of other scientific fields, who use tools from data assimilation to combine data with time-dependent models. The numerous examples and illustrations make understanding of the theoretical underpinnings of data assimilation accessible. Furthermore, the examples, exercises and MATLAB software, make the book suitable for students in applied mathematics, either through a lecture course, or through self-study.

Certified Tester Advanced Level Syllabus; Test Automation Engineer


ISTQB® - 2015
    This syllabus forms the basis for the International Software Testing Qualification at the Advanced Level for Test Automation - Engineering.

Cyber Security Basics: Building and improving the cyber security foundation of your organization


Don Franke - 2015
    It is based on the author's 20+ years of experience as a software engineer and cyber security professional.

The Psychology of Design: Creating Consumer Appeal


Rajeev Batra - 2015
    However, the psychological processes involved are only partially understood. In addition, design is inherently interdisciplinary, involving (among others) important elements of aesthetics, anthropology, brand strategy, creativity, design science, engineering, graphic design, industrial design, marketing, material science, product design, and several areas within psychology. While researchers and practitioners in all of these fields seek to learn more about how and why "good" design works its magic, they may benefit from each other s work. The chapters in this edited book bring together organizing frameworks and reviews of the relevant literatures from many of these contributing disciplines, along with recent empirical work. They cover relevant areas such as embodied cognition, processing fluency, experiential marketing, sensory marketing, visual aesthetics, and other research streams related to the impact of design on consumers. Importantly, the primary focus of these chapters is not on product design that creates functional value for the targeted consumer, but rather on how design can create the kind of emotional, experiential, hedonic, and sensory appeal that results in attracting consumers. Each chapter concludes with Implications for a theory of design as well as for designers."

Security Controls Evaluation, Testing, and Assessment Handbook


Leighton Johnson - 2015
    This handbook shows you how to evaluate, examine, and test installed security controls in the world of threats and potential breach actions surrounding all industries and systems. If a system is subject to external or internal threats and vulnerabilities - which most are - then this book will provide a useful handbook for how to evaluate the effectiveness of the security controls that are in place. Security Controls Evaluation, Testing, and Assessment Handbook shows you what your security controls are doing and how they are standing up to various inside and outside threats. This handbook provides guidance and techniques for evaluating and testing various computer security controls in IT systems.Author Leighton Johnson shows you how to take FISMA, NIST Guidance, and DOD actions and provide a detailed, hands-on guide to performing assessment events for information security professionals who work with US federal agencies. As of March 2014, all agencies are following the same guidelines under the NIST-based Risk Management Framework. This handbook uses the DOD Knowledge Service and the NIST Families assessment guides as the basis for needs assessment, requirements, and evaluation efforts for all of the security controls. Each of the controls can and should be evaluated in its own unique way, through testing, examination, and key personnel interviews. Each of these methods is discussed.

The Programmer's Guide to Apache Thrift


Randy Abernethy - 2015
    Apache Thrift is a communication framework that enables cross-language remote procedure calls and serialization. Apache Thrift supports embedded, mobile, web, and server environments and a host of languages ranging from JavaScript to C++. It's perfect for back end services and embedded systems where size, scalability and performance are mission critical.The Programmer's Guide to Apache Thrift provides comprehensive coverage of the Apache Thrift framework along with a developer's-eye view of modern distributed application architecture. Packed with complete code examples and pragmatic discussion, this book lays the best practices for multi-language distributed application development. You'll take a guided tour through transports, protocols, IDL and servers as you explore complete example programs in C++, Java and Python. You'll also learn how to work with platforms ranging from enterprise servers to mobile clients.

Code-First Development with Entity Framework


Sergey Barskiy - 2015
    This book will get you up and running quickly, providing many examples that illustrate all the key concepts of Entity Framework. What You Will Learn Understand what ORM tools are and what problems they solve Set up a .NET application to use Entity Framework Write Entity Framework code that creates, updates, and deletes application data in a database Learn how to query the data using LINQ and gain insight into how LINQ fits into Entity Framework Create a database structure using the Entity Framework configuration API Evolve the database structure using migrations Write asynchronous code and handle concurrency Work with stored procedures and functions using Entity Framework In Detail Entity Framework Code-First enables developers to read and write data in a relational database system using C# or VB.NET. It is Microsoft's answer to demand for an ORM from .NET developers.This book will help you acquire the necessary skills to program your applications using Entity Framework. You will start with database configuration and learn how to write classes that define the database structure. You will see how LINQ can be used with Entity Framework to give you access to stored data. You will then learn how to use Entity Framework to persist information in a Relational Database Management System. You will also see how you can benefit from writing ORM-based .NET code. Finally, you will learn how Entity Framework can help you to solve database deployment problems using migrations.

Beginning iOS 9 Programming with Swift


Simon Ng - 2015
    Supports Xcode 7 and Swift 2

Convex Optimization Algorithms


Dimitri P. Bertsekas - 2015
    

C++ Hackers Guide


Steve Oualline - 2015
    Written by a real world C++ hacker with 40 years experience. (Hacker in the classical sense which is someone who gets 250% out of a system with 50% of the effort.)Ideal for expereienced programmers who want to up their game, or those new to C++ who want to learn the secrets of the professionals.

The Little Prover


Daniel P. Friedman - 2015
    It is written in an approachable, engaging style of question-and-answer, with the characteristic humor of The Little Schemer (fourth edition, MIT Press). Sometimes the best way to learn something is to sit down and do it; the book takes readers through step-by-step examples showing how to write inductive proofs. The Little Prover assumes only knowledge of recursive programs and lists (as presented in the first three chapters of The Little Schemer) and uses only a few terms beyond what novice programmers already know. The book comes with a simple proof assistant to help readers work through the book and complete solutions to every example.

Learning Behavior-driven Development with JavaScript


Enrique Amodeo - 2015
     Learn how Behavior-driven development can help you to write software that is more modular and has less defects. Avoid common mistakes in testing, simplify your test suites, and make them more maintainable using a very pragmatic approach to BDD. Who This Book Is For TThis book is ideal for any JavaScript developer who is interested in producing well-tested code. If you have no prior experience with testing, Node.js, or any other tool, do not worry, as they will be explained from scratch. What You Will Learn Understand the basic concepts of BDD and how it is different from classic unit testing Divide your system into different modules that can be tested separately, but at the same time not falling into the trap of unit testing Use Mocha, Sinon.JS, and Chai to write expressive BDD features Implement Cucumber.js to automate tests written in Gherkin so that your stakeholders can understand them Discover how to test asynchronous systems, either based on callbacks or promises Test a RESTful web API and a rich UI using WebDriverJS and Protractor Refactor and keep your test code base maintainable using best practices and patterns such as PageObject In Detail JavaScript is not only widely used to create attractive user interfaces for the Web, but with the advent of Node.js, it is also becoming a very popular and powerful language to write server-side applications. Using behavior-driven development and some common testing patterns and best practices, you will be able to avoid these traps.This book will show you how to do BDD in a practical way. We will start with a basic introduction of what BDD is and why the classical approach to testing has failed. Afterwards, we will dive directly into an introduction to Node.js, Mocha, and Sinon.JS. Finally, we will cover more advanced subjects such as how to write a fast and effective test suite for a RESTful web API, and how to do the same with a rich UI using Cucumber.js and Protractor.This book will give you great insight into how to architect your system to make it more testable and modular, but at the same time avoid the nightmare of abusing mock objects.

Intelligence Emerging: Adaptivity and Search in Evolving Neural Systems


Keith L. Downing - 2015
    In this book, Keith Downing undertakes a systematic investigation of the widespread (if often vague) claim that intelligence is an emergent phenomenon. Downing focuses on neural networks, both natural and artificial, and how their adaptability in three time frames – phylogenetic (evolutionary), ontogenetic (developmental), and epigenetic (lifetime learning) – underlie the emergence of cognition. Integrating the perspectives of evolutionary biology, neuroscience, and artificial intelligence, Downing provides a series of concrete examples of neurocognitive emergence. Doing so, he offers a new motivation for the expanded use of bio-inspired concepts in artificial intelligence (AI), in the subfield known as Bio-AI.One of Downing's central claims is that two key concepts from traditional AI, search and representation, are key to understanding emergent intelligence as well. He first offers introductory chapters on five core concepts: emergent phenomena, formal search processes, representational issues in Bio-AI, artificial neural networks (ANNs), and evolutionary algorithms (EAs). Intermediate chapters delve deeper into search, representation, and emergence in ANNs, EAs, and evolving brains. Finally, advanced chapters on evolving artificial neural networks and information-theoretic approaches to assessing emergence in neural systems synthesize earlier topics to provide some perspective, predictions, and pointers for the future of Bio-AI.

Clojure Applied: From Practice to Practitioner


Ben Vandgrift - 2015
    You want to develop software in the most effective, efficient way possible. This book gives you the answers you’ve been looking for in friendly, clear language.We’ll cover, in depth, the core concepts of Clojure: immutable collections, concurrency, pure functions, and state management. You’ll finally get the complete picture you’ve been looking for, rather than dozens of puzzle pieces you must assemble yourself. First, we focus on Clojure thinking. You’ll discover the simple architecture of Clojure software, effective development processes, and how to structure applications. Next, we explore the core concepts of Clojure development. You’ll learn how to model with immutable data; write simple, pure functions for efficient transformation; build clean, concurrent designs; and structure your code for elegant composition. Finally, we move beyond pure application development and into the real world. You’ll understand your application’s configuration and dependencies, connect with other data sources, and get your libraries and applications out the door.Go beyond the toy box and into Clojure’s way of thinking. By the end of this book, you’ll have the tools and information to put Clojure’s strengths to work.https://pragprog.com/book/vmclojeco/c...