Book Reviews - How Software Works

Book Reviews - How Software Works
We use software every day to perform all kinds of magical, powerful tasks. It's the force behind stunning CGI graphics, safe online shopping, and speedy Google searches. Software drives the modern world, but its inner workings remain a mystery to many.
How Software Works explains how computers perform common-yet-amazing tasks that we take for granted every day. Inside you'll learn:
  • How data is encrypted
  • How passwords are used and protected
  • How computer graphics are created
  • How video is compressed for streaming and storage
  • How data is searched (and found) in huge databases
  • How programs can work together on the same problem without conflict
  • How data travels over the Internet
How Software Works breaks down these processes with patient explanations and intuitive diagrams so that anyone can understand-no technical background is required, and you won't be reading through any code. In plain English, you'll examine the intricate logic behind the technologies you constantly use but never understood.
If you've ever wondered what really goes on behind your computer screen, How Software Works will give you fascinating look into the software all around you.
1 Encryption
The Goal of Encryption
Transposition: Same Data, Different Order
Cipher Keys
Attacking the Encryption
Substitution: Replacing Data
Varying the Substitution Pattern
Key Expansion
The Advanced Encryption Standard
Binary Basics
AES Encryption: The Big Picture
Key Expansion in AES
AES Encryption Rounds
Block Chaining
Why AES Is Secure
Possible AES Attacks
The Limits of Private-Key Encryption
2 Passwords
Transforming a Password into a Number
Properties of Good Hash Functions
The MD5 Hash Function
Encoding the Password
Bitwise Operations
MD5 Hashing Rounds
Meeting the Criteria of a Good Hash Function
Digital Signatures
The Problem of Identity
Collision Attacks
Passwords in Authentication Systems
The Dangers of Password Tables
Hashing Passwords
Dictionary Attacks
Hash Tables
Hash Chaining
Iterative Hashing
Salting Passwords
Are Password Tables Safe?
Password Storage Services
A Final Thought
3 Web Security
How Public-Key Cryptography Solves the Shared Key Problem
Math Tools for Public-Key Cryptography
Invertible Functions
One-Way Functions
Trapdoor Functions
The RSA Encryption Method
Creating the Keys
Encrypting Data with RSA
RSA Effectiveness
RSA Use in the Real World
RSA for Authentication
Security on the Web: HTTPS
Handshaking
Transmitting Data Under HTTPS
The Shared Key Problem Solved?
4 Movie CGI
Software for Traditional Animation
How Digital Images Work
How Colors Are Defined
How Software Makes Cel Animations
From Cel Animation Software to Rendered 2D Graphics
Software for 3D CGI
How 3D Scenes Are Described
The Virtual Camera
Direct Lighting
Global Illumination
How Light Is Traced
Full-Scene Anti-Aliasing
Combining the Real and the Fake
The Ideal of Movie-Quality Rendering
5 Game Graphics
Hardware for Real-Time Graphics
Why Games Don’t Ray Trace
All Lines and No Curves
Projection Without Ray Tracing
Rendering Triangles
The Painter’s Algorithm
Depth Buffering
Real-Time Lighting
Shadows
Ambient Light and Ambient Occlusion
Texture Mapping
Nearest-Neighbor Sampling
Bilinear Filtering
Mipmaps
Trilinear Filtering
Reflections
Faking Curves
Distant Impostors
Bump Mapping
Tessellation
Anti-Aliasing in Real Time
Supersampling
Multisampling
Post-Process Anti-Aliasing
The Rendering Budget
What’s Next for Game Graphics
6 Data Compression
Run-Length Encoding
Dictionary Compression
The Basic Method
Huffman Encoding
Reorganizing Data for Better Compression
Predictive Encoding
Quantization
JPEG Images
A Different Way to Store Colors
The Discrete Cosine Transform
The DCT for Two Dimensions
Compressing the Results
JPEG Picture Quality
Compressing High-Definition Video
Temporal Redundancy
MPEG-2 Video Compression
Video Quality with Temporal Compression
The Present and Future of Video Compression
7 Search
Defining the Search Problem
Putting Data in Order
Selection Sort
Quicksort
Binary Search
Indexing
Hashing
Web Search
Ranking Results
Using the Index Effectively
What’s Next for Web Search
8 Concurrency
Why Concurrency Is Needed
Performance
Multiuser Environments
Multitasking
How Concurrency Can Fail
Making Concurrency Safe
Read-Only Data
Transaction-Based Processing
Semaphores
The Problem of Indefinite Waits
Orderly Queues
Starvation from Circular Waits
Performance Issues of Semaphores
What’s Next for Concurrency
9 Map Routes
What a Map Looks Like to Software
Best-First Search
Reusing Prior Search Results
Finding All the Best Routes at Once
Floyd’s Algorithm
Storing Route Directions
The Future of Routing

Book Reviews - Modern PHP New Features and Good Practices

Book Reviews - Modern PHP New Features and Good Practices
PHP is experiencing a renaissance, though it may be difficult to tell with all of the outdated PHP tutorials online. With this practical guide, you’ll learn how PHP has become a full-featured, mature language with object-orientation, namespaces, and a growing collection of reusable component libraries.
Author Josh Lockhart creator of PHP The Right Way, a popular initiative to encourage PHP best practices reveals these new language features in action. You’ll learn best practices for application architecture and planning, databases, security, testing, debugging, and deployment. If you have a basic understanding of PHP and want to bolster your skills, this is your book.
Learn modern PHP features, such as namespaces, traits, generators, and closures
Discover how to find, use, and create PHP components
Follow best practices for application security, working with databases, errors and exceptions, and more
Learn tools and techniques for deploying, tuning, testing, and profiling your PHP applications
Explore Facebook’s HVVM and Hack language implementations and how they affect modern PHP
Build a local development environment that closely matches your production server

Part I. Language Features
1. The New PHP
Past 1
Present 2
Future 3
2. Features
Namespaces 5
Why We Use Namespaces 7
Declaration 8
Import and Alias 9
Helpful Tips 11
Code to an Interface 13
Traits 17
Why We Use Traits 18
How to Create a Trait 19
How to Use a Trait 20
Generators 22
Create a Generator 22
Use a Generator 23
Closures 25
Create 25
Attach State 27
Zend OPcache 29
Enable Zend OPcache 29
Configure Zend OPcache 31
Use Zend OPcache 31
Built-in HTTP server 31
Start the Server 32
Configure the Server 32
Router Scripts 33
Detect the Built-in Server 33
Drawbacks 33
What’s Next 34
Part II. Good Practices
3. Standards
PHP-FIG to the Rescue 37
Framework Interoperability 38
Interfaces 38
Autoloading 39
Style 39
What Is a PSR? 40
PSR-1: Basic Code Style 40
PSR-2: Strict Code Style 41
PSR-3: Logger Interface 45
Write a PSR-3 Logger 46
Use a PSR-3 Logger 47
PSR-4: Autoloaders 47
Why Autoloaders Are Important 47
The PSR-4 Autoloader Strategy 48
How to Write a PSR-4 Autoloader (and Why You Shouldn’t) 49
4. Components
Why Use Components? 51
What Are Components? 52
Components Versus Frameworks 53
Not All Frameworks Are Bad 54
Use the Right Tool for the Job 54
Find Components 55
Shop 56
Choose 56
Leave Feedback 57
Use PHP Components 57
How to Install Composer 58
How to Use Composer 59
Example Project 61
Composer and Private Repositories 64
Create PHP Components 66
Vendor and Package Names 66
Namespaces 66
Filesystem Organization 67
The composer.json File 68
The README file 70
Component Implementation 71
Version Control 72
Packagist Submission 73
Using the Component 74
5. Good Practices
Sanitize, Validate, and Escape 75
Sanitize Input 76
Validate Data 79
Escape Output 80
Passwords 80
Never Know User Passwords 81
Never Restrict User Passwords 81
Never Email User Passwords 81
Hash User Passwords with bcrypt 82
Password Hashing API 82
Password Hashing API for PHP < 5.5.0 87
Dates, Times, and Time Zones 87
Set a Default Time Zone 88
The DateTime Class 88
The DateInterval Class 89
The DateTimeZone Class 91
The DatePeriod Class 92
The nesbot/carbon Component 93
Databases 93
The PDO Extension 93
Database Connections and DSNs 93
Prepared Statements 96
Query Results 98
Transactions 100
Multibyte Strings 103
Character Encoding 104
Output UTF-8 Data 105
Streams 106
Stream Wrappers 106
Stream Context 109
Stream Filters 110
Custom Stream Filters 112
Errors and Exceptions 115
Exceptions 115
Exception Handlers 118
Errors 119
Error Handlers 121
Errors and Exceptions During Development 123
Production 124
Part III. Deployment, Testing, and Tuning
6. Hosting
Shared Server 129
Virtual Private Server 130
Dedicated Server 131
PaaS 131
Choose a Hosting Plan 132
7. Provisioning
Our Goal 134
Server Setup 134
First Login 134
Software Updates 135
Nonroot User 135
SSH Key-Pair Authentication 136
Disable Passwords and Root Login 138
PHP-FPM 138
Install 138
Global Configuration 139
Pool Configuration 140
nginx 143
Install 143
Virtual Host 143
Automate Server Provisioning 146
Delegate Server Provisioning 146
Further Reading 147
What’s Next 147
8. Tuning
The php.ini File 149
Memory 150
Zend OPcache 151
File Uploads 152
Max Execution Time 153
Session Handling 154
Output Buffering 155
Realpath Cache 155
Up Next 155
9. Deployment
Version Control 157
Automate Deployment 157
Make It Simple 158
Make It Predictable 158
Make It Reversible 158
Capistrano 158
How It Works 158
Install 159
Configure 159
Authenticate 161
Prepare the Remote Server 161
Capistrano Hooks 162
Deploy Your Application 163
Roll Back Your Application 163
Further Reading 163
What’s Next 163
10. Testing
Why Do We Test? 165
When Do We Test? 166
Before 166
During 166
After 166
What Do We Test? 166
How Do We Test? 167
Unit Tests 167
Test-Driven Development (TDD) 167
Behavior-Driven Development (BDD) 167
PHPUnit 168
Directory Structure 169
Install PHPUnit 170
Install Xdebug 170
Configure PHPUnit 171
The Whovian Class 172
The WhovianTest Test Case 173
Run Tests 175
Code Coverage 176
Continuous Testing with Travis CI 177
Setup 177
Run 178
Further Reading 178
What’s Next 179
11. Profiling
When to Use a Profiler 181
Types of Profilers 181
Xdebug 182
Configure 182
Trigger 183
Analyze 183
XHProf 183
Install 184
XHGUI 184
Configure 185
Trigger 185
New Relic Profiler 185
Blackfire Profiler 186
Further Reading 186
What’s Next 186
12. HHVM and Hack
HHVM 187
PHP at Facebook 188
HHVM and Zend Engine Parity 189
Is HHVM Right for Me? 190
Install 190
Configure 191
Extensions 192
Monitor HHVM with Supervisord 192
HHVM, FastCGI, and Nginx 194
The Hack Language 195
Convert PHP to Hack 196
What is a Type? 196
Static Typing 197
Dynamic Typing 198
Hack Goes Both Ways 198
Hack Type Checking 199
Hack Modes 200
Hack Syntax 200
Hack Data Structures 202
HHVM/Hack vs. PHP 203
Further Reading 204
13. Community
Local PUG 205
Conferences 205
Mentoring 206
Stay Up-to-Date 206
Websites 206
Mailing Lists 206
Twitter 206
Podcasts 206
Humor 207
A. Install PHP
B. Local Development Environments

Book Reviews - Hack and HHVM

Book Reviews - Hack and HHVM
How can you take advantage of the HipHop Virtual Machine (HHVM) and the Hack programming language, two new technologies that Facebook developed to run their web servers? With this practical guide, Owen Yamauchi a member of Facebook’s core Hack and HHVM teams shows you how to get started with these battle-tested open-source tools.
You’ll explore static typechecking and several other features that separate Hack from its PHP origins, and learn how to set up, configure, deploy, and monitor HHVM. Ideal for developers with basic PHP knowledge or experience with other languages, this book also demonstrates how these tools can be used with existing PHP codebases and new projects alike.
Learn how Hack provides static typechecking while retaining PHP’s flexible, rapid development capability
Write typesafe code with Hack’s generics feature
Explore HHVM, a just-in-time compilation runtime engine with full PHP compatibility
Dive into Hack collections, asynchronous functions, and the XHP extension for PHP
Understand Hack’s design rationale, including why it omits some PHP features
Use Hack for multitasking, and for generating HTML securely
Learn tools for working with Hack code, including PHP-to-Hack migration

1. Typechecking
Why Use the Typechecker?
Setting Up the Typechecker
Autoload Everything
Reading Error Messages
Type Annotation Syntax
Function Return Types
Function Parameters
Properties
Hack’s Type System
Typechecker Modes
Code Without Annotations
Calling into PHP
Rules
Using Superglobals
Types of Overriding Methods
Property Initialization
Typed Variadic Arguments
Types for Generators
Fallthrough in switch Statements
Type Inference
Variables Don’t Have Types
Unresolved Types
Inference Is Function-Local
Refining Types
Refining Nullable Types to Non-Nullable
Refining Mixed Types to Primitives
Refining Object Types
Inference on Properties
Enforcement of Type Annotations at Runtime
2. Generics
Introductory Example
Other Generic Entities
Functions and Methods
Traits and Interfaces
Type Aliases
Type Erasure
Constraints
Unresolved Types, Revisited
Generics and Subtypes
Arrays and Collections
Advanced: Covariance and Contravariance
Syntax
When to Use Them
3. Other Features of Hack
Enums
Enum Functions
Type Aliases
Transparent Type Aliases
Opaque Type Aliases
Autoloading Type Aliases
Array Shapes
Lambda Expressions
Constructor Parameter Promotion
Attributes
Attribute Syntax
Special Attributes
Enhanced Autoloading
Integer Arithmetic Overflow
Nullsafe Method Call Operator
Trait and Interface Requirements
Silencing Typechecker Errors
4. PHP Features Not Supported in Hack
References
The global Statement
Top-Level Code
Old-Style Constructors
Case-Insensitive Name Lookup
Variable Variables
Dynamic Properties
Mixing Method Call Syntax
isset, empty, and unset
Others
5. Collections
Why Use Collections?
Collections Have Reference Semantics
Using Collections
Literal Syntax
Reading and Writing
Type Annotations for Collections
Core Interfaces
General Collection Interfaces
Specific Collection Interfaces
Concrete Collection Classes
Interoperating with Arrays
Conversion to Arrays
Use with Built-In and User Functions
6. Async
Introductory Examples
Async in Detail
Wait Handles
Async and Callable Types
await Is Not an Expression
Async Generators
Exceptions in Async Functions
Mapping and Filtering Helpers
Structuring Async Code
Data Dependencies
Antipatterns
Other Types of Waiting
Sleeping
Rescheduling
Common Mistakes
Dropping Wait Handles
Memoizing Async Functions
Async Extensions
MySQL
MCRouter and memcached
cURL
Streams
7. XHP
Why Use XHP?
Runtime Validation
Secure by Default
How to Use XHP
Basic Tag Usage
Attributes
Embedding Hack Code
Type Annotations for XHP
Object Interface
Validation
Creating Your Own XHP Classes
Attributes
children Declarations
Categories
Context
Async XHP
XHP Helpers
XHP Best Practices
No Additional Public API
Composition, Not Inheritance
Don’t Make Control Flow Tags
Distinguish Attributes from Children
Style Guide
Migrating to XHP
Converting Bottom-Up
Getting Around XHP’s Escaping
XHP Internals
The Parser Transformation
The Hack Library
8. Configuring and Deploying HHVM
Specifying Configuration Options
Important Options
Server Mode
Warming Up the JIT
Repo-Authoritative Mode
Building the Repo
Deploying the Repo
The Admin Server
9. hphpd: Interactive Debugging
Getting Started
Evaluating Code
The Execution Environment
Local Mode
Remote Mode
Using Breakpoints
Setting Breakpoints
Navigating the Call Stack
Navigating Code
Managing Breakpoints
Viewing Code and Documentation
Macros
Configuring hphpd
10. Hack Tools
Inspecting the Codebase
Scripting Support
Migrating PHP to Hack
The Hackificator
Inferring and Adding Type Annotations
Transpiling Hack to PHP
Conversions
Unsupported Features

Book Reviews - Microsoft Exchange Server 2013

Book Reviews - Microsoft Exchange Server 2013
Its a book on Microsoft Exchange Server 2013, it will be on sizing, designing and configuring with a practical look. It will be based on the practical scenario for different organization with approximately user of 5,000,10,000, 25,000 and 50,000. It also contain various migration scenario like migration from Exchange 2003 , Exchange 2007 and Exchange 2010. It also includes information on Office 365 migration scenario with Exchange 2013
Chapter 1
Exchange 2013 Architecture Introduction
Introduction
History
Change in Exchange Server 2013
Chapter 2
Exchange 2013 Design Considerations
Business Requirements
Technical Requirements
Understanding the Current Environment
Understanding the Dependent Environment
Chapter 3
Exchange 2013 - Hardware Sizing
Environmental Configuration
Mailbox Configuration
Backup Configuration
Storage Configuration
Processor Configuration
Log Replication Configuration
Environmental Customization
Exchange 2013 Role Requirement Calculator – Result Analyses
Exchange Client Bandwidth Calculator
Chapter 4
Exchange 2013 - Sizing, Designing, and Configuring for approximately 5,000 Users
Business and Technical Requirements
Exchange Client Network Bandwidth Calculator
Windows Server Configuration
Executing Jetstress
Client Access Server Configuration
Mailbox Server Configuration
Chapter 5
Exchange 2013 - Sizing, Designing and Configuring for approximately 10,000 Users
Business and Technical Requirements
Designing the solution based on the requirements using Role Requirement Calculator
Exchange Client Network Bandwidth Calculator
Windows Server Configuration
Client Access Server (CAS) Configuration
Mailbox Server Configuration
Chapter 6
Exchange 2013 - Sizing, Designing, and Configuring for Approximately 25,000 Users
Business and Technical Requirements
Designing Exchange solution using Exchange Role Requirement Calculator
Exchange Client Network Bandwidth Calculator
Windows Server Configuration
Client Access Server Configuration
Mailbox Server Configuration
Chapter 7
Exchange 2013 - Sizing, Designing and configuring for up 50,000 users
North America Business and Technical Requirements
North America Design solution based on the requirements using Role requirement
Calculator
North America Exchange Client Network Bandwidth Calculator
Europe Business and Technical Requirement
Europe Exchange Client Network Bandwidth Calculator
Windows Server Configuration
Client Access Server Configuration
Client Access Server (CAS) Configuration – North America
Client Access Server (CAS) Configuration – Europe
Mailbox Server Configuration
Chapter 8
the Exchange 2010 Servers to Work with Exchange 2003 in Co-existence
9. Moving Dependant Applications/Tools to use Exchange 2013
10. Decommissioning all the Exchange 2003 Servers
Chapter 9
Exchange 2007 / 2010 to Exchange 2013 Migration Strategy and Steps
1. Active Directory Preparation
2. Exchange 2013 Installation
3. Requesting and Importing the Certificate
4. Client Access Server (CAS) Configuration
5. Mailbox Server Configuration
6. Moving offline address book to Exchange 2013
7. Moving Mailboxes from Exchange 2007/2010 to Exchange 2013
8. Moving public folders from Exchange 2007/2010 to Exchange 2013
9. Decommission of Exchange 2007/2010
Chapter 10
Exchange 2010 to Exchange 2013 Cross-forest migration
1. DNS Configuration between Two AD Forests
2. Two-Way Trust Configuration between Two AD Forests
3. GALSync between Two AD Forests
4. Create and Send Connector between Source and Target
5. Configure the Receive Connector between the Source and Target
6. Create and Configure Availability Service between Source and Target
7. Install the Active Directory Migration Tool (ADMT) at the Target Forest
8. Install and Configure Password Encryption Server (PES) on the Source Forest
9. Disable SID Filtering on the Target Domain
10. Automation ADMT
11. Prepare Mailboxes for Cross-Forest Moves using the Prepare-MoveRequest.ps1
Script
12. Moving the Mailbox from the Source Forest to the Target
Cross-Forest Public Folder Migration
Switching Source Forest MX Records

Book Reviews - Windows 10 Revealed

Book Reviews - Windows 10 Revealed
Windows 10 Revealed is your essential step-by-step guide to using a desktop, laptop, Surface or Windows Phone running Microsoft Windows 10, providing a complete resource for both the beginner and the enthusiast. Techniques are illustrated step-by-step using photography and screen shots throughout, together with concise, easy to follow text from an established expert in the field, providing a comprehensive guide to Windows.
Whether you have just bought your first computer, laptop or are a keen computer user who has just upgraded to Windows 10, this book will provide you with a firm grasp of the underpinning foundations and equip you with the skills needed to use a computer like a pro.
Chapter 1: Windows 10 for Phones and Small Devices
Apply a Background Image to the Start Screen
View Your Recently Downloaded Apps
Interact with the New Action Center
Interactive Notifications in the New Action Center
Some Other Features
Phone Dialer
Visual Voicemail
Messaging
Maps
Driving Mode
Wrapping It Up
Chapter 2: Windows 10 for Tablets and Desktops
Continuum Feature: Tablet and PC Modes
Tablet Mode
Desktop Mode
Start Menu: In Depth
Pin and Unpin Tiles
Resize and Move Tiles
Edit the Tiles Section and Create New Categories
Most Recently Used Apps
Power Button
Quick Options
Swipe Gestures
Wrapping It Up
Chapter 3: Cortana and Edge
Cortana
Finding Cortana
Using Cortana
Customizing Cortana
Microsoft Edge
Searching Faster in Your Address Bar
Hub: The One-Stop Place for All of Your Favorites
Write on the Web
Enabling the Reading View
Cortana and Edge Combo
Wrapping It Up
Chapter 4: Universal Apps
How to Tell Whether It Is a Universal App or Not
Mail and Calendar Apps
Photos App
Music and Videos Apps
Microsoft Office Apps
Wrapping It Up

Book Reviews - Network Programmability and Automation

Book Reviews - Network Programmability and Automation
Automation is the new skill-set that network engineers need to pick up. Much like sysadmins have had to learn how to use new tools like Chef and Puppet, network engineers are learning that they  just can't do things manually anymore. With examples in each chapter, this practical book provides you with baseline skills in network programmability and automation, using a range of technologies including Linux, Python, JSON, and XML. No previous knowledge of software development, programming, automation, or DevOps is required.
  • Understand the basics of Linux as applied to networking
  • Learn how to use text editors and Python to automate networks
  • Apply sound software design principles like continuous integration, DevOps, source control, etc. to optimize networks
1. Software Defined Networking
The Rise of Software Defined Networking
OpenFlow
What is Software Defined Networking?
Summary
2. Linux
Linux in a Network Automation Context
A Brief History of Linux
Linux Distributions
Red Hat Enterprise Linux, Fedora, and CentOS
Debian, Ubuntu, and Other Derivatives
Other Linux Distributions
Interacting with Linux
Navigating the File System
Manipulating Files and Directories
Running Programs
Working with Daemons
Working with Background Services in Ubuntu Linux 14.04 LTS
Networking in Linux
Working with Interfaces
Routing as an End Host
Routing as a Router
Bridging (Switching)
Summary
3. Python
Should Network Engineers Learn to Code?
Python Interactive Interpreter
Data Types
Strings
4. Data Formats
Introduction to Data Formats
Types of Data
YAML
What is YAML?
XML
What is XML?
XML Basics
XML Schema Definition (XSD)
Transforming XML with XSLT
XQuery
JSON
What is JSON?
JSON Basics
Working with JSON in a Language
JSON Schema

Book Reviews - Learning HTML5 Game Programming

Book Reviews - Learning HTML5 Game Programming
Get Started Fast with HTML5 Online Game Programming!
HTML5 will transform web and mobile gaming. As new browsers rapidly adopt it, HTML5 will do everything “legacy” technologies such as Flash and Silverlight have done and much more. In Learning HTML5 Game Programming, pioneering developer James L. Williams gives you all the knowledge, code, and insights you’ll need to get started fast!
Williams combines detailed explanations of HTML5’s key innovations with examples, including two case study applications that address the entire development process. He guides you through setting up a state-of-the-art HTML5 development environment; making the most of HTML5’s canvas tag, SVG vector graphics, and WebGL 3D; and targeting diverse mobile and social platforms. It’s all here: from the essentials of online game design to the nitty-gritty details of performance optimization.
About the Website
All code samples and answers to chapter exercises are available for download at www.informit.com/title/9780321767363 and on Github at https://github.com/jwill/html5-game-book.
Coverage includes
·          Understanding the HTML5 innovations that make it possible to create amazingly rich games
·          Setting up a state-of-the-art open source HTML5 game development environment
·          Using JavaScript to drive sophisticated interactions between users and games
·          Building basic games fast, with the prototype-based Simple Game Framework (SGF)
·          Generating movement and gameplay with the canvas tag and surface
·          Creating games with SVG vector graphics using the RaphaëlJS Javascript library
·          Using Three.js to build powerful WebGL 3D games with far less complexity
·          Developing games without JavaScript, using Google Web Toolkit (GWT) or CoffeeScript
·          Building a complete multiplayer game server using Node.js and WebSockets
·          Planning and choosing tools for mobile game development with HTML5
·          Optimizing game performance with offline cache, minification, and other techniques
Learning HTML5 Game Programming is the fastest route to success with HTML5 game development whether you’re a long-time game developer or a web/mobile programmer building games for the first time.
JavaScript also provides the basis for libraries and languages such as GWT and CoffeeScript, which are referenced later in the book. Node.js, also covered later in the book, uses JavaScript to run server-side code. In this chapter, we will cover the basics of JavaScript, along with some useful utilities and libraries that will aid in creating games, and use a JavaScript library to create your first game.
JavaScript is a loosely typed dynamic language that began its life as a Netscape Communications project named LiveScript. It was renamed to JavaScript roughly around the time plugin support for the Java programming language was added to Netscape, much to the chagrin of developers everywhere. Despite the name, JavaScript and Java are only loosely related in that both of them are influenced by C and share some of the same keywords and structures.

Book Reviews - Professional Microsoft SQL Server 2014 Administration

Book Reviews - Professional Microsoft SQL Server 2014 Administration
Learn to take advantage of the opportunities offered by SQL Server 2014Microsoft's SQL Server 2014 update means big changes for database administrators, and you need to get up to speed quickly because your methods, workflow, and favorite techniques will be different from here on out. The update's enhanced support of large-scale enterprise databases and significant  price advantage mean that SQL Server 2014 will become even more widely adopted across the industry. The update includes new backup and recovery tools, new AlwaysOn features, and enhanced cloud capabilities. In-memory OLTP, Buffer Pool Extensions for SSDs, and a new Cardinality Estimator can improve functionality and smooth out the workflow, but only if you understand their full capabilities. Professional Microsoft SQL Server 2014 is your comprehensive guide to working with the new environment. Authors Adam Jorgensen, Bradley Ball, Ross LoForte, Steven Wort, and Brian Knight are the dream team of the SQL Server community, and they put their expertise to work guiding you through the changes.
  • Improve oversight with better management and monitoring
  • Protect your work with enhanced security features
  • Upgrade performance tuning, scaling, replication, and clustering
  • Learn new options for backup and recovery
Professional Microsoft SQL Server 2014 includes a companion website with sample code and efficient automation utilities, plus a host of tips, tricks, and workarounds that will make your job as a DBA or database architect much easier. Stop getting frustrated with administrative issues and start taking control. Professional Microsoft SQL Server 2014 is your roadmap to mastering the update and creating solutions that work.
Chapter 1: SQL Server 2014 Architecture
SQL SERVER 2014 ECOSYSTEM
NEW IMPORTANT FEATURES IN 2014
SQL SERVER ARCHITECTURE
EDITIONS OF SQL SERVER
Chapter 2: Installing SQL Server 2014 Best Practices
PLANNING THE SYSTEM
INSTALLING SQL SERVER
INSTALLING ANALYSIS SERVICES
INSTALLING PowerPivot FOR SharePoint
BURNING IN THE SYSTEM
POST-INSTALL CONFIGURATION
UNINSTALLING SQL SERVER
TROUBLESHOOTING A FAILED INSTALL
Chapter 3: Upgrading SQL Server 2014 Best Practices
WHY UPGRADE TO SQL SERVER 2014?
UPGRADING TO SQL SERVER 2014
PRE-UPGRADE STEPS AND TOOLS
BACKWARD COMPATIBILITY
SQL SERVER COMPONENT CONSIDERATIONS
POST-UPGRADE CHECKS
Chapter 4: Managing and Troubleshooting the Database Engine
CONFIGURATION AND ADMINISTRATION TOOLS
TROUBLESHOOTING TOOLS
SQL SERVER MANAGEMENT STUDIO
MONITORING PROCESSES IN T-SQL
MULTISERVER MANAGEMENT
TRACE FLAGS
GETTING HELP FROM SUPPORT
Chapter 5: Automating SQL Server
MAINTENANCE PLANS
AUTOMATING SQL SERVER WITH SQL SERVER AGENT
SQL SERVER AGENT SECURITY
CONFIGURING SQL SERVER AGENT
MULTISERVER ADMINISTRATION
Chapter 6: Service Broker in SQL Server 2014
ASYNCHRONOUS MESSAGING
CONFIGURING SQL SERVER SERVICE BROKER
USING SQL SERVER SERVICE BROKER
Chapter 7: SQL Server CLR Integration
INTRODUCTION TO CLR
CREATING CLR ASSEMBLIES
CLR INTEGRATION SECURITY
PERFORMANCE MONITORING
Chapter 8: Securing the Database Instance
AUTHENTICATION TYPES
LOGINS AND USERS
AUTHORIZING SECURABLES
ROW-LEVEL SECURITY
Chapter 9: In-Memory OLTP
USING AND IMPLEMENTING IN-MEMORY OLTP
CREATING NATIVELY COMPILED STORED PROCEDURES
OVERVIEW OF THE ANALYZE, MIGRATE, AND REPORT (ARM) TOOL
Chapter 10: Configuring the Server for Optimal Performance
WHAT EVERY DBA NEEDS TO KNOW ABOUT PERFORMANCE
WHAT THE DEVELOPER DBA NEEDS TO KNOW ABOUT PERFORMANCE
WHAT THE PRODUCTION DBA NEEDS TO KNOW ABOUT PERFORMANCE
CPU
MEMORY
I/O
Chapter 11: Optimizing SQL Server 2014
APPLICATION OPTIMIZATION
THE SILENT KILLER: I/O PROBLEMS
SQL SERVER INTERNALS AND FILE ALLOCATIONS
TABLE AND INDEX PARTITIONING
DATA COMPRESSION
UNDERSTANDING SQL SERVER AND CPUs
MEMORY CONSIDERATIONS AND ENHANCEMENTS
RESOURCE GOVERNOR
Chapter 12: Monitoring Your SQL Server
THE GOAL OF MONITORING
CHOOSING THE APPROPRIATE MONITORING TOOLS
PERFORMANCE MONITOR
MONITORING EVENTS
MONITORING WITH DYNAMIC MANAGEMENT VIEWS AND FUNCTIONS
MONITORING LOGS
SQL SERVER STANDARD REPORTS
SYSTEM CENTER ADVISOR
Chapter 13: Performance Tuning T-SQL
OVERVIEW OF QUERY PROCESSING
IDENTIFYING SQL QUERY PERFORMANCE TUNING ISSUES
DATA ACCESS OPERATORS IN QUERY PLANS
JOIN OPERATORS
DATA MODIFICATION QUERY PLAN
ANALYZING QUERY PERFORMANCE IN A PRODUCTION ENVIRONMENT
PUTTING IT ALL TOGETHER
Chapter 14: Indexing Your Database
WHAT'S NEW FOR INDEXES IN SQL SERVER 2014
ABOUT INDEXES AND PARTITIONED TABLES
INDEX MAINTENANCE
IMPROVING QUERY PERFORMANCE WITH INDEXES
DATABASE TUNING ADVISOR
Chapter 15: Replication
REPLICATION OVERVIEW
REPLICATION MODELS
IMPLEMENTING REPLICATION
PEER-TO-PEER REPLICATION
SCRIPTING REPLICATION
MONITORING REPLICATION
Chapter 16: Clustering SQL Server 2014
CLUSTERING AND YOUR ORGANIZATION
CLUSTERING: THE BIG PICTURE
UPGRADING SQL SERVER CLUSTERING
GETTING PREPARED FOR CLUSTERING
CLUSTERING WINDOWS SERVER 2012 R2
CLUSTERING MICROSOFT DISTRIBUTED TRANSACTION COORDINATOR
CLUSTERING SQL SERVER 2014
MANAGING AND MONITORING THE CLUSTER
TROUBLESHOOTING CLUSTER PROBLEMS
Chapter 17: Backup and Recovery
BACKUP AND RESTORE ENHANCEMENTS
OVERVIEW OF BACKUP AND RESTORE
PREPARING FOR RECOVERY
DEVELOPING AND EXECUTING A BACKUP PLAN
MANAGING BACKUPS
BACKUP AND RESTORE PERFORMANCE
PERFORMING RECOVERY
ARCHIVING DATA
Chapter 18: SQL Server 2014 Log Shipping
LOG-SHIPPING DEPLOYMENT SCENARIOS
LOG-SHIPPING ARCHITECTURE
LOG-SHIPPING PROCESS
SYSTEM REQUIREMENTS
DEPLOYING LOG SHIPPING
MONITORING AND TROUBLESHOOTING
MANAGING CHANGING ROLES
DATABASE BACKUP PLAN
INTEGRATING LOG SHIPPING WITH OTHER HIGH-AVAILABILITY SOLUTIONS
REMOVING LOG SHIPPING
LOG-SHIPPING PERFORMANCE
UPGRADING TO SQL SERVER 2014 LOG SHIPPING
Chapter 19: Database Mirroring
OVERVIEW OF DATABASE MIRRORING
OPERATING MODES OF DATABASE MIRRORING
DATABASE MIRRORING IN ACTION
DATABASE MIRRORING AND SQL SERVER 2014 EDITIONS
DATABASE MIRRORING ROLE CHANGE
MONITORING USING DATABASE MIRRORING MONITOR
PREPARING THE MIRROR SERVER FOR FAILOVER
DATABASE MIRRORING AND OTHER HIGH-AVAILABILITY SOLUTIONS
DATABASE SNAPSHOTS
Chapter 20: Integration Services Administration and Performance Tuning
A TOUR OF INTEGRATION SERVICES
ADMINISTRATION OF THE INTEGRATION
SERVICES SERVICE
ADMINISTRATION OF INTEGRATION SERVICES PACKAGES IN PACKAGE DEPLOYMENT MODEL
ADMINISTRATION OF INTEGRATION SERVICES PACKAGES IN PROJECT DEPLOYMENT MODEL
EXECUTION AND SCHEDULING
APPLYING SECURITY TO INTEGRATION SERVICES
Chapter 21: Analysis Services Administration and Performance Tuning
TOUR OF ANALYSIS SERVICES
ADMINISTERING ANALYSIS SERVICES SERVER
ADMINISTERING ANALYSIS SERVICES DATABASES
ANALYSIS SERVICES PERFORMANCE MONITORING AND TUNING
Chapter 22: SQL Server Reporting Services Administration
SQL SERVER REPORTING SERVICES CONFIGURATION MANAGER
THE REPORT EXECUTION LOG
REPORT MANAGER
Chapter 23: SQL Server 2014 SharePoint 2013 Integration
COMPONENTS OF INTEGRATION
DATA REFRESH
Chapter 24: SQL Database Administration and Configuration
GETTING TO KNOW WINDOWS AZURE SQL DATABASE
SQL DATABASE ARCHITECTURE
CONFIGURING SQL DATABASE
ADMINISTERING SQL DATABASE
WORKING WITH SQL DATABASE
WHAT'S MISSING IN SQL DATABASE
Chapter 25: AlwaysOn Availability Groups
ARCHITECTURE
AVAILABILITY GROUP EXAMPLE
ACTIVE SECONDARY FOR SECONDARY READ-ONLY
BACKUP ON THE SECONDARY REPLICA
ALWAYSON GROUP DASHBOARD
MONITORING AND TROUBLESHOOTING

Book Reviews - Python for Data Science For Dummies

Book Reviews - Python for Data Science For Dummies
Unleash the power of Python for your data analysis projects with For Dummies!
Python is the preferred programming language for data scientists and combines the best features of Matlab, Mathematica, and R into libraries specific to data analysis and visualization. Python for Data Science For Dummies shows you how to take advantage of Python programming to acquire, organize, process, and analyze large amounts of information and use basic statistics concepts to identify trends and patterns. You’ll get familiar with the Python development environment, manipulate data, design compelling visualizations, and solve scientific computing challenges as you work your way through this user-friendly guide.
  • Covers the fundamentals of Python data analysis programming and statistics to help you build a solid foundation in data science concepts like probability, random distributions, hypothesis testing, and regression models
  • Explains objects, functions, modules, and libraries and their role in data analysis
  • Walks you through some of the most widely-used libraries, including NumPy, SciPy, BeautifulSoup, Pandas, and MatPlobLib
Whether you’re new to data analysis or just new to Python, Python for Data Science For Dummies is your practical guide to getting a grip on data overload and doing interesting things with the oodles of information you uncover.
Part I: Getting Started with Python for Data Science....... 7
Chapter 1: Discovering the Match between
Data Science and Python . 9
Defining the Sexiest Job of the 21st Century...............................................11
Considering the emergence of data science.....................................11
Outlining the core competencies of a data scientist........................12
Linking data science and big data......................................................13
Understanding the role of programming...........................................13
Creating the Data Science Pipeline...............................................................14
Preparing the data................................................................................14
Performing exploratory data analysis................................................15
Learning from data...............................................................................15
Visualizing..............................................................................................15
Obtaining insights and data products................................................15
Understanding Python’s Role in Data Science............................................16
Considering the shifting profile of data scientists............................16
Working with a multipurpose, simple, and efficient language........17
Learning to Use Python Fast.........................................................................18
Loading data..........................................................................................18
Training a model...................................................................................18
Viewing a result.....................................................................................20
Chapter 2: Introducing Python’s Capabilities and Wonders . 21
Why Python?...................................................................................................22
Grasping Python’s core philosophy...................................................23
Discovering present and future development
goals........................23
Working with Python.....................................................................................24
Getting a taste of the language............................................................24
Understanding the need for indentation...........................................25
Working at the command line or in the IDE......................................25
Performing Rapid Prototyping and Experimentation................................29
Considering Speed of Execution...................................................................30
Visualizing Power...........................................................................................32
Using the Python Ecosystem for Data Science...........................................33
Accessing scientific tools using SciPy................................................33
Performing fundamental scientific computing
using NumPy..........34
Performing data analysis using pandas.............................................34
Implementing machine learning using Scikit‐learn...........................35
Plotting the data using matplotlib......................................................35
Parsing HTML documents using Beautiful Soup...............................35
Chapter 3: Setting Up Python for Data Science . 37
Considering the Off‐the‐Shelf Cross‐Platform Scientific
Distributions................................................................................................38
Getting Continuum Analytics Anaconda............................................39
Getting Enthought Canopy Express...................................................40
Getting pythonxy..................................................................................40
Getting WinPython................................................................................41
Installing Anaconda on Windows.................................................................41
Installing Anaconda on Linux........................................................................45
Installing Anaconda on Mac OS X.................................................................46
Downloading the Datasets and Example Code...........................................47
Using IPython Notebook......................................................................47
Defining the code repository...............................................................48
Understanding the datasets used in this book.................................54
Chapter 4: Reviewing Basic Python . 57
Working with Numbers and Logic................................................................59
Performing variable assignments.......................................................60
Doing arithmetic...................................................................................61
Comparing data using Boolean expressions.....................................62
Creating and Using Strings............................................................................65
Interacting with Dates....................................................................................66
Creating and Using Functions.......................................................................68
Creating reusable functions................................................................68
Calling functions in a variety of ways.................................................70
Using Conditional and Loop Statements.....................................................73
Making decisions using the if statement............................................73
Choosing between multiple options using nested decisions..........74
Performing repetitive tasks using for.................................................75
Using the while statement...................................................................76
Storing Data Using Sets, Lists, and Tuples..................................................77
Performing operations on sets............................................................77
Working with lists.................................................................................78
Creating and using Tuples...................................................................80
Defining Useful Iterators................................................................................81
Indexing Data Using Dictionaries..................................................................82
Chapter 5: Working with Real Data . 85
Uploading, Streaming, and Sampling Data..................................................86
Uploading small amounts of data into memory................................87
Streaming large amounts of data into memory.................................88
Sampling data........................................................................................89
Accessing Data in Structured Flat‐File Form...............................................90
Reading from a text file........................................................................91
Reading CSV delimited format............................................................92
Reading Excel and other Microsoft Office files.................................94
Sending Data in Unstructured File Form.....................................................95
Managing Data from Relational Databases..................................................98
Interacting with Data from NoSQL Databases..........................................100
Accessing Data from the Web.....................................................................101
Chapter 6: Conditioning Your Data . 105
Juggling between NumPy and pandas.......................................................106
Knowing when to use NumPy............................................................106
Knowing when to use pandas............................................................106
Validating Your Data....................................................................................107
Figuring out what’s in your data.......................................................108
Removing duplicates..........................................................................109
Creating a data map and data plan...................................................110
Manipulating Categorical Variables...........................................................112
Creating categorical variables..........................................................113
Renaming levels..................................................................................114
Combining levels.................................................................................115
Dealing with Dates in Your Data.................................................................116
Formatting date and time values......................................................117
Using the right time transformation.................................................117
Dealing with Missing Data...........................................................................118
Finding the missing data....................................................................119
Encoding missingness........................................................................119
Imputing missing data........................................................................120
Slicing and Dicing: Filtering and Selecting Data........................................122
Slicing rows..........................................................................................122
Slicing columns...................................................................................123
Dicing....................................................................................................123
Concatenating and Transforming...............................................................124
Adding new cases and variables.......................................................125
Removing data.....................................................................................126
Sorting and shuffling...........................................................................127
Aggregating Data at Any Level....................................................................128
Chapter 7: Shaping Data . 131
Working with HTML Pages..........................................................................132
Parsing XML and HTML.....................................................................132
Using XPath for data extraction........................................................133
Working with Raw Text................................................................................134
Dealing with Unicode.........................................................................134
Stemming and removing stop words................................................136
Introducing regular expressions.......................................................137
Using the Bag of Words Model and Beyond..............................................140
Understanding the bag of words model...........................................141
Working with n‐grams........................................................................142
Implementing TF‐IDF transformations.............................................144
Working with Graph Data............................................................................145
Understanding the adjacency matrix...............................................146
Using NetworkX basics......................................................................146
Chapter 8: Putting What You Know in Action 149
Contextualizing Problems and Data...........................................................150
Evaluating a data science problem...................................................151
Researching solutions........................................................................151
Formulating a hypothesis..................................................................152
Preparing your data............................................................................153
Considering the Art of Feature Creation...................................................153
Defining feature creation...................................................................153
Combining variables...........................................................................154
Understanding binning and discretization......................................155
Using indicator variables...................................................................155
Transforming distributions...............................................................156
Performing Operations on Arrays..............................................................156
Using vectorization.............................................................................157
Performing simple arithmetic on vectors and matrices................157
Performing matrix vector multiplication.........................................158
Performing matrix multiplication.....................................................159
Part III: Visualizing the Invisible................................ 161
Chapter 9: Getting a Crash Course in MatPlotLib 163
Starting with a Graph...................................................................................164
Defining the plot..................................................................................164
Drawing multiple lines and plots......................................................165
Saving your work................................................................................165
Setting the Axis, Ticks, Grids......................................................................166
Getting the axes..................................................................................167
Formatting the axes............................................................................167
Adding grids........................................................................................168
Defining the Line Appearance.....................................................................169
Working with line styles.....................................................................170
Using colors.........................................................................................170
Adding markers...................................................................................172
Using Labels, Annotations, and Legends...................................................173
Adding labels.......................................................................................174
Annotating the chart..........................................................................174
Creating a legend................................................................................175
Chapter 10: Visualizing the Data . 179
Choosing the Right Graph...........................................................................180
Showing parts of a whole with pie charts........................................180
Creating comparisons with bar charts............................................181
Showing distributions using histograms.........................................183
Depicting groups using box plots.....................................................184
Seeing data patterns using scatterplots..........................................185
Creating Advanced Scatterplots.................................................................187
Depicting groups.................................................................................187
Showing correlations..........................................................................188
Plotting Time Series.....................................................................................189
Representing time on axes................................................................190
Plotting trends over time...................................................................191
Plotting Geographical Data.........................................................................193
Visualizing Graphs........................................................................................195
Developing undirected graphs..........................................................195
Developing directed graphs..............................................................197
Chapter 11: Understanding the Tools . 199
Using the IPython Console..........................................................................200
Interacting with screen text..............................................................200
Changing the window appearance...................................................202
Getting Python help............................................................................203
Getting IPython help...........................................................................205
Using magic functions........................................................................205
Discovering objects............................................................................207
Using IPython Notebook..............................................................................208
Working with styles............................................................................208
Restarting the kernel..........................................................................210
Restoring a checkpoint......................................................................210
Performing Multimedia and Graphic Integration.....................................212
Embedding plots and other images..................................................212
Loading examples from online sites.................................................212
Obtaining online graphics and multimedia.....................................212
Part IV: Wrangling Data............................................ 215
Chapter 12: Stretching Python’s Capabilities . 217
Playing with Scikit‐learn..............................................................................218
Understanding classes in Scikit‐learn..............................................218
Defining applications for data science.............................................219
Performing the Hashing Trick.....................................................................222
Using hash functions..........................................................................223
Demonstrating the hashing trick......................................................223
Working with deterministic selection..............................................225
Considering Timing and Performance.......................................................227
Benchmarking with timeit.................................................................228
Working with the memory profiler...................................................230
Running in Parallel.......................................................................................232
Performing multicore parallelism.....................................................232
Demonstrating multiprocessing.......................................................233
Chapter 13: Exploring Data Analysis . 235
The EDA Approach.......................................................................................236
Defining Descriptive Statistics for Numeric Data.....................................237
Measuring central tendency..............................................................238
Measuring variance and range..........................................................239
Working with percentiles...................................................................239
Defining measures of normality........................................................240
Counting for Categorical Data.....................................................................241
Understanding frequencies...............................................................242
Creating contingency tables..............................................................243
Creating Applied Visualization for EDA.....................................................243
Inspecting boxplots............................................................................244
Performing t‐tests after boxplots......................................................245
Observing parallel coordinates.........................................................246
Graphing distributions.......................................................................247
Plotting scatterplots...........................................................................248
Understanding Correlation..........................................................................250
Using covariance and correlation.....................................................250
Using nonparametric correlation.....................................................252
Considering chi‐square for tables.....................................................253
Modifying Data Distributions......................................................................253
Using the normal distribution...........................................................254
Creating a Z‐score standardization..................................................254
Transforming other notable distributions......................................254
Chapter 14: Reducing Dimensionality . 257
Understanding SVD......................................................................................258
Looking for dimensionality reduction..............................................259
Using SVD to measure the invisible..................................................260
Performing Factor and Principal Component Analysis...........................261
Considering the psychometric model..............................................262
Looking for hidden factors................................................................262
Using components, not factors.........................................................263
Achieving dimensionality reduction................................................264
Understanding Some Applications.............................................................264
Recognizing faces with PCA..............................................................265
Extracting Topics with NMF..............................................................267
Recommending movies......................................................................270
Chapter 15: Clustering 273
Clustering with K‐means..............................................................................275
Understanding centroid‐based algorithms......................................275
Creating an example with image data..............................................277
Looking for optimal solutions...........................................................278
Clustering big data..............................................................................281
Performing Hierarchical Clustering...........................................................282
Moving Beyond the Round-Shaped Clusters: DBScan.............................286
Chapter 16: Detecting Outliers in Data 289
Considering Detection of Outliers..............................................................290
Finding more things that can go wrong...........................................291
Understanding anomalies and novel data.......................................292
Examining a Simple Univariate Method.....................................................292
Leveraging on the Gaussian distribution.........................................294
Making assumptions and checking out............................................295
Developing a Multivariate Approach.........................................................296
Using principal component analysis................................................297
Using cluster analysis.........................................................................298
Automating outliers detection with SVM.........................................299
Part V: Learning from Data........................................ 301
Chapter 17: Exploring Four Simple and Effective Algorithms . 303
Guessing the Number: Linear Regression.................................................304
Defining the family of linear models.................................................304
Using more variables..........................................................................305
Understanding limitations and problems........................................307
Moving to Logistic Regression....................................................................307
Applying logistic regression..............................................................308
Considering when classes are more.................................................309
Making Things as Simple as Naïve Bayes..................................................310
Finding out that Naïve Bayes isn’t so naïve.....................................312
Predicting text classifications...........................................................313
Learning Lazily with Nearest Neighbors....................................................315
Predicting after observing neighbors..............................................316
Choosing your k parameter wisely...................................................317
Chapter 18: Performing Cross‐Validation, Selection,
and Optimization 319
Pondering the Problem of Fitting a Model................................................320
Understanding bias and variance.....................................................321
Defining a strategy for picking models.............................................322
Dividing between training and test sets..........................................325
Cross‐Validating............................................................................................328
Using cross‐validation on k folds......................................................329
Sampling stratifications for complex data.......................................329
Selecting Variables Like a Pro.....................................................................331
Selecting by univariate measures.....................................................331
Using a greedy search........................................................................333
Pumping Up Your Hyperparameters..........................................................334
Implementing a grid search...............................................................335
Trying a randomized search.............................................................339
Chapter 19: Increasing Complexity with Linear
and Nonlinear Tricks 341
Using Nonlinear Transformations..............................................................341
Doing variable transformations........................................................342
Creating interactions between variables.........................................344
Regularizing Linear Models.........................................................................348
Relying on Ridge regression (L2)......................................................349
Using the Lasso (L1)...........................................................................349
Leveraging regularization..................................................................350
Combining L1 & L2: Elasticnet..........................................................350
Fighting with Big Data Chunk by Chunk....................................................351
Determining when there is too much data......................................351
Implementing Stochastic Gradient Descent....................................351
Understanding Support Vector Machines.................................................354
Relying on a computational method................................................355
Fixing many new parameters............................................................358
Classifying with SVC...........................................................................360
Going nonlinear is easy......................................................................365
Performing regression with SVR.......................................................366
Creating a stochastic solution with SVM.........................................368
Chapter 20: Understanding the Power of the Many 373
Starting with a Plain Decision Tree............................................................374
Understanding a decision tree..........................................................374
Creating classification and regression
trees...................................376
Making Machine Learning Accessible........................................................379
Working with a Random Forest classifier........................................381
Working with a Random Forest regressor.......................................382
Optimizing a Random Forest.............................................................383
Boosting Predictions....................................................................................384
Knowing that many weak predictors win........................................384
Creating a gradient boosting classifier............................................385
Creating a gradient boosting regressor...........................................386
Using GBM hyper‐parameters...........................................................387
Part VI: The Part of Tens............................................ 389
Chapter 21: Ten Essential Data Science
Resource Collections . 391
Gaining Insights with Data Science Weekly...............................................392
Obtaining a Resource List at U Climb Higher...........................................392
Getting a Good Start with KDnuggets........................................................392
Accessing the Huge List of Resources on Data Science Central.............393
Obtaining the Facts of Open Source Data Science from Masters...........394
Locating Free Learning Resources with Quora.........................................394
Receiving Help with Advanced Topics at Conductrics............................394
Learning New Tricks from the Aspirational Data Scientist.....................395
Finding Data Intelligence and Analytics Resources at AnalyticBridge......................................................................................396
Zeroing In on Developer Resources with Jonathan Bower.....................396
Chapter 22: Ten Data Challenges You Should Take 397
Meeting the Data Science London + Scikit‐learn Challenge....................398
Predicting Survival on the Titanic..............................................................399
Finding a Kaggle Competition that Suits Your Needs..............................399
Honing Your Overfit Strategies...................................................................400
Trudging Through the MovieLens Dataset...............................................401
Getting Rid of Spam Emails.........................................................................401
Working with Handwritten Information.....................................................402
Working with Pictures..................................................................................403
Analyzing Amazon.com Reviews................................................................404
Interacting with a Huge Graph....................................................................405