Best of
Computer-Science

2018

Dive Into Design Patterns


Alexander Shvets - 2018
    You can’t just find a pattern and copy it into your program, the way you can with off-the-shelf functions or libraries. The pattern is not a specific piece of code, but a general concept for solving a particular problem. They are like pre-made blueprints that you can customize to solve a recurring design problem in your code.The book Dive Into Design Patterns illustrates 22 classic design patterns and 8 design principles that these patterns are based on.- Every chapter starts from a discussion of a real life software design problem which is then progressively solved by applying one of the patterns.- Then goes a detailed review of the pattern’s structure and its variations, followed by a code example.- Then the books shows various applications of the pattern and teaches how to implement the pattern step by step, even in an existing program.- Each chapter concludes with a discussion of pros and cons of the pattern and its relations, similarities and differences with other patterns.

Explain the Cloud Like I'm 10


Todd Hoff - 2018
    And I mean all the time. Every day there’s a new cloud-based dating app; a new cloud-based gizmo for your house; a new cloud-based game; or a thousand other new things—all in the cloud.The cloud is everywhere! Everything is in the cloud! What does it mean! Let’s slow down. Take a deep breath. That’s good. Take another. Excellent. This book teaches you all about the cloud. I’ll let you in on a little secret: the cloud is not that hard to understand. It’s not. It’s just that nobody has taken the time to explain to you what the cloud is. They haven’t, have they?Deep down I think this is because they don’t understand the cloud either, but I do. I’ve been a programmer and writer for over 30 years. I’ve been in cloud computing since the very start, and I’m here to help you on your journey to understand the cloud. Consider me your tour guide. I’ll be with you every step of the way, but not in a creepy way.I take my time with this book. I go slow and easy, so you can build up an intuition about what the cloud really is, one idea at a time. When you finish reading, you’ll understand the cloud. When you hear someone say some new cool thing is in the cloud, you’ll understand exactly what they mean. That’s a promise. How do I deliver on that promise? I use lots and lots of pictures. I use lots and lots of examples. We’ll reveal the secret inner-workings of AWS, Netflix, Facebook Messenger, Amazon Kindle, Apple iCloud, Google Maps, Nest and cloud DVRs. You’ll learn by seeing and understanding; no matter if you're a complete beginner, someone who knows a little and wants to learn more, or a programmer looking to change their career to the cloud.The cloud is the future. You don't want to miss out on the future, do you? Read this book and we'll discover it together.I’m excited. This will be fun. Let’s get started!

Mastering Ethereum: Building Smart Contracts and DApps


Andreas M. Antonopoulos - 2018
    This platform enables you to run decentralized applications (DApps) and smart contracts that have no central points of failure or control, integrate with a payment network, and operate on an open blockchain. With this practical guide, Andreas M. Antonopoulos and Gavin Wood provide everything you need to know about building smart contracts and DApps on Ethereum and other virtual-machine blockchains.Discover why IBM, Microsoft, NASDAQ, and hundreds of other organizations are experimenting with Ethereum. This essential guide shows you how to develop the skills necessary to be an innovator in this growing and exciting new industry.Run an Ethereum client, create and transmit basic transactions, and program smart contractsLearn the essentials of public key cryptography, hashes, and digital signaturesUnderstand how wallets hold digital keys that control funds and smart contractsInteract with Ethereum clients programmatically using JavaScript libraries and Remote Procedure Call interfacesLearn security best practices, design patterns, and anti-patterns with real-world examplesCreate tokens that represent assets, shares, votes, or access control rightsBuild decentralized applications using multiple peer-to-peer (P2P) components

The Site Reliability Workbook: Practical Ways to Implement SRE


Betsy Beyer - 2018
    Now, Google engineers who worked on that bestseller introduce The Site Reliability Workbook, a hands-on companion that uses concrete examples to show you how to put SRE principles and practices to work in your environment.This new workbook not only combines practical examples from Google's experiences, but also provides case studies from Google's Cloud Platform customers who underwent this journey. Evernote, The Home Depot, The New York Times, and other companies outline hard-won experiences of what worked for them and what didn't.Dive into this workbook and learn how to flesh out your own SRE practice, no matter what size your company is.You'll learn:How to run reliable services in environments you don't completely control--like cloudPractical applications of how to create, monitor, and run your services via Service Level ObjectivesHow to convert existing ops teams to SRE--including how to dig out of operational overloadMethods for starting SRE from either greenfield or brownfield

CSS in Depth


Keith J. Grant - 2018
    This instantly useful book is packed with creative examples and powerful best practices that will sharpen your technical skills and inspire your sense of design.Foreword by Chris Coyier, Cofounder of CodePen.Dig even deeper into the secrets of CSS with our video course CSS in Depth in Motion, available exclusively at Manning.com (www.manning.com/livevideo/css-in-dept...)!Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.About the TechnologySome websites really pop. They look great, they're visually consistent, and they feel interactive and responsive. You can bet their developers knew CSS in depth. CSS specifies everything from the structural layout of page elements to their individual look and feel. True masters know the patterns of CSS development, the techniques to implement them, and the subtle touches that result in beautiful typography, fluid transitions, and balanced graphics. Join them!About the BookCSS in Depth exposes you to a world of CSS techniques that range from clever to mind-blowing. This instantly useful book is packed with creative examples and powerful best practices that will sharpen your technical skills and inspire your sense of design. You'll gain new insights into familiar features like floats and units, and experiment with emerging ideas like responsive design and pattern libraries. Bottom line: this book will make you a better web designer and your apps will look fantastic!What's InsideAvoid common CSS pitfallsMaster misunderstood conceptsUse flexbox and grid layoutResponsive designs for any deviceCode for reuse and maintainabilityAbout the ReaderWritten for web developers who know the basics of CSS and HTML.About the AuthorKeith J. Grant is a senior web developer who builds and maintains web applications and websites, including The New York Stock Exchange site.Table of ContentsPART 1 - REVIEWING THE FUNDAMENTALSCascade, specificity, and inheritanceWorking with relative unitsMastering the box modelPART 2 - MASTERING LAYOUTMaking sense of floatsFlexboxGrid layoutPositioning and stacking contextsResponsive designPART 3 - CSS AT SCALEModular CSSPattern librariesPART 4 - ADVANCED TOPICSBackgrounds, shadows, and blend modesContrast, color, and spacingTypographyTransitionsTransformsAnimations

Getting Clojure


Russ Olsen - 2018
    The vision behind Clojure is of a radically simple language framework holding together a sophisticated collection of programming features. Learning Clojure involves much more than just learning the mechanics of the language. To really get Clojure you need to understand the ideas underlying this structure of framework and features. You need this book: an accessible introduction to Clojure that focuses on the ideas behind the language as well as the practical details of writing code.

Advances in Financial Machine Learning


Marcos López de Prado - 2018
    Today, ML algorithms accomplish tasks that - until recently - only expert humans could perform. And finance is ripe for disruptive innovations that will transform how the following generations understand money and invest.In the book, readers will learn how to:Structure big data in a way that is amenable to ML algorithms Conduct research with ML algorithms on big data Use supercomputing methods and back test their discoveries while avoiding false positives Advances in Financial Machine Learning addresses real life problems faced by practitioners every day, and explains scientifically sound solutions using math, supported by code and examples. Readers become active users who can test the proposed solutions in their individual setting.Written by a recognized expert and portfolio manager, this book will equip investment professionals with the groundbreaking tools needed to succeed in modern finance.

Django for Beginners: Learn web development with Django 2.0


William S. Vincent - 2018
    Proceed step-by-step through five progressively more complex web applications: from a "Hello World" app all the way to a robust Newspaper app with a custom user model, complete user authentication flow, foreign key relationships, and more. Learn current best practices around class-based views, templates, urls, user authentication, testing, and deployment. The material is up-to-date with the latest versions of both Django (2.0) and Python (3.6). TABLE OF CONTENTS: * Introduction * Chapter 1: Initial Setup * Chapter 2: Hello World app * Chapter 3: Pages app * Chapter 4: Message Board app * Chapter 5: Blog app * Chapter 6: Forms * Chapter 7: User Accounts * Chapter 8: Custom User Model * Chapter 9: User Authentication * Chapter 10: Bootstrap * Chapter 11: Password Change and Reset * Chapter 12: Email * Chapter 13: Newspaper app * Chapter 14: Permissions and Authorizations * Chapter 15: Comments * Conclusion

The ARRL Ham Radio License Manual


ARRL Inc. - 2018
     Easy-to-understand “bite-sized” sections. Pass the 35-question Technician Class test. All the Exam Questions with Answer Key, for use July 1, 2018 through June 30, 2022. Use with ARRL’s Online Exam Review for Ham Radio. Designed for self-study and classroom use. Intended for all newcomers, instructors, and schoolteachers. Discover the excitement of ham radio. The Amateur Radio Service offers a unique mix of public service, technology, and experimenting with electronics--all with an emphasis on fun. Some hams use their skills to provide communications during emergencies and disasters when all else fails. Others enjoy talking to people across the country and around the globe, and operating portable radio equipment from anywhere. The ARRL Ham Radio License Manual will guide you as you get started--as you select your equipment, set-up your first station, and get on the air! Use this book to study for your license exam. Every page presents information you will need to pass the exam and become an effective operator. You'll cover small sections at a time: Welcome to Amateur Radio Radio and Signals Fundamentals Electricity, Components, and Circuits Propagation, Antennas, and Feed Lines Amateur Radio Equipment Communicating with Other Hams Licensing Regulations Operating Regulations Safety At the end of the book, you'll find the entire Technician Question Pool. Use this book with ARRL’s Online Exam Review for Ham Radio to review the study material chapter by chapter. Take randomly generated practice exams using questions from the actual examination pool. You won’t have any surprises on exam day!

Cracking Codes with Python: An Introduction to Building and Breaking Ciphers


Al Sweigart - 2018
    You’ll begin with simple programs for the reverse and Caesar ciphers and then work your way up to public key cryptography, the type of encryption used to secure today’s online transactions, including digital signatures, email, and Bitcoin.Each program includes the full code and a line-by-line explanation of how things work. By the end of the book, you’ll have learned how to code in Python and you’ll have the clever programs to prove it!You’ll also learn how to:- Combine loops, variables, and flow control statements into real working programs- Use dictionary files to instantly detect whether decrypted messages are valid English or gibberish- Create test programs to make sure that your code encrypts and decrypts correctly- Code (and hack!) a working example of the affine cipher, which uses modular arithmetic to encrypt a message- Break ciphers with techniques such as brute-force and frequency analysisThere’s no better way to learn to code than to play with real programs. Cracking Codes with Python makes the learning fun!

Practical SQL: A Beginner's Guide to Storytelling with Data


Anthony DeBarros - 2018
    The book focuses on using SQL to find the story your data tells, with the popular open-source database PostgreSQL and the pgAdmin interface as its primary tools.You'll first cover the fundamentals of databases and the SQL language, then build skills by analyzing data from the U.S. Census and other federal and state government agencies. With exercises and real-world examples in each chapter, this book will teach even those who have never programmed before all the tools necessary to build powerful databases and access information quickly and efficiently.You'll learn how to: •Create databases and related tables using your own data •Define the right data types for your information •Aggregate, sort, and filter data to find patterns •Use basic math and advanced statistical functions •Identify errors in data and clean them up •Import and export data using delimited text files •Write queries for geographic information systems (GIS) •Create advanced queries and automate tasks Learning SQL doesn't have to be dry and complicated. Practical SQL delivers clear examples with an easy-to-follow approach to teach you the tools you need to build and manage your own databases. This book uses PostgreSQL, but the SQL syntax is applicable to many database applications, including Microsoft SQL Server and MySQL.

Practical Tableau: 100 Tips, Tutorials, and Strategies from a Tableau Zen Master


Ryan Sleeper - 2018
    Author Ryan Sleeper, one of the world's most qualified Tableau consultants, complements his web posts and instructional videos with this guide to give you a firm understanding of how to use Tableau to find valuable insights in data.Over five sections, Sleeper--recognized as a Tableau Zen Master, Tableau Public Visualization of the Year author, and Tableau Iron Viz Champion--provides visualization tips, tutorials, and strategies to help you avoid the pitfalls and take your Tableau knowledge to the next level.Practical Tableau sections include:Fundamentals: get started with Tableau from the beginningChart types: use step-by-step tutorials to build a variety of charts in TableauTips and tricks: learn innovative uses of parameters, color theory, how to make your Tableau workbooks run efficiently, and moreFramework: explore the INSIGHT framework, a proprietary process for building Tableau dashboardsStorytelling: learn tangible tactics for storytelling with data, including specific and actionable tips you can implement immediately

Spark: The Definitive Guide: Big Data Processing Made Simple


Bill Chambers - 2018
    With an emphasis on improvements and new features in Spark 2.0, authors Bill Chambers and Matei Zaharia break down Spark topics into distinct sections, each with unique goals. You’ll explore the basic operations and common functions of Spark’s structured APIs, as well as Structured Streaming, a new high-level API for building end-to-end streaming applications. Developers and system administrators will learn the fundamentals of monitoring, tuning, and debugging Spark, and explore machine learning techniques and scenarios for employing MLlib, Spark’s scalable machine-learning library. Get a gentle overview of big data and Spark Learn about DataFrames, SQL, and Datasets—Spark’s core APIs—through worked examples Dive into Spark’s low-level APIs, RDDs, and execution of SQL and DataFrames Understand how Spark runs on a cluster Debug, monitor, and tune Spark clusters and applications Learn the power of Structured Streaming, Spark’s stream-processing engine Learn how you can apply MLlib to a variety of problems, including classification or recommendation

The Ray Tracer Challenge


Jamis Buck - 2018
    In just a couple of weeks, build a ray tracer that renders beautiful scenes with shadows, reflections, brilliant refraction effects, and subjects composed of various graphics primitives: spheres, cubes, cylinders, triangles, and more. With each chapter, implement another piece of the puzzle and move the renderer that much further forward. Do all of this in whichever language and environment you prefer, and do it entirely test-first, so you know it’s correct. Recharge yourself with this project’s immense potential for personal exploration, experimentation, and discovery.About this TitleThe renderer is a ray tracer, which means it simulates the physics of light by tracing the path of light rays around your scene. Each exciting chapter presents a bite-sized piece of the puzzle, building on earlier chapters and setting the stage for later ones. Requirements are given language-agnostically; it’s up to you to translate them into tests and code using whatever language you prefer. When the project is complete, you’ll look back and realize you’ve built an entire system test-first!There’s no research necessary—all the necessary formulas and algorithms are presented and illustrated right here. Dive into intriguing topics from fundamental concepts such as vectors and matrices; to the algorithms that simulate the intersection of light rays with spheres, planes, cubes, cylinders, and triangles; to geometric patterns such as checkers and rings. Lighting and shading effects, such as shadows and reflections, make your scenes come to life, and constructive solid geometry (CSG) enables you to combine your graphics primitives in simple ways to produce complex shapes.Play and experiment as you discover the fun of writing a ray tracer. Accept the challenge today!What You NeedAside from a computer, operating system, and programming environment, you’ll need a way to display PPM image files. On Windows, programs like Photoshop will work, or free programs like IrfanView. On Mac, no special software is needed, as Preview can open PPM files.

The Little Typer


Daniel P. Friedman - 2018
    Dependent types are a first-class part of a language, and are much more powerful than other kinds of types; using just one language for types and programs allows program descriptions to be as powerful as the programs they describe. The Little Typer explains dependent types, beginning with a very small language that looks very much like Scheme and extending it to cover both programming with dependent types and using dependent types for mathematical reasoning. Readers should be familiar with the basics of a Lisp-like programming language, as presented in the first four chapters of The Little Schemer.The first five chapters of The Little Typer provide the needed tools to understand dependent types; the remaining chapters use these tools to build a bridge between mathematics and programming. Readers will learn that tools they know from programming—pairs, lists, functions, and recursion—can also capture patterns of reasoning. The Little Typer does not attempt to teach either practical programming skills or a fully rigorous approach to types. Instead, it demonstrates the most beautiful aspects as simply as possible, one step at a time.

Learn Windows PowerShell in a Month of Lunches


Donald W. Jones - 2018
    This updated edition covers PowerShell features that run on Windows 7, Windows Server 2008 R2 and later, PowerShell v3 and later, and includes v5 features like PowerShellGet. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology PowerShell is both a scripting language and an administrative shell that lets you control and automate nearly every aspect of Windows. It accepts and executes commands interactively and you can write scripts to manage most Windows servers like Exchange, IIS, and SharePoint, as well as online services like Azure and Office 365. About the Book Learn Windows PowerShell in a Month of Lunches, Third Edition is an innovative tutorial designed for busy IT professionals. Just set aside one hour a day - lunchtime would be perfect - for a month, and you'll be automating Windows tasks faster than you ever thought possible. This updated edition covers PowerShell features that run on Windows 7, Windows Server 2008 R2 and later, PowerShell v3 and later, and includes v5 features like PowerShellGet. What's Inside Learn PowerShell from the beginning, no experience required! Covers PowerShell v3 and up, Windows 7, and Windows Server 2008 R2 and later Each lesson takes you an hour or less About the Reader Experience with Windows administration is helpful. No programming or scripting experience needed. About the Author Veteran PowerShell MVPs Don Jones and Jeffery Hicks bring years as successful trainers to this concise, easy-to-follow book.

The New And Improved Flask Mega-Tutorial


Miguel Grinberg - 2018
    The tutorial has been thoroughly revised and expanded in 2017, now containing 23 chapters. The concepts that are covered go well beyond Flask, including a wide range of topics Python web developers need to know when writing their own applications.

Thinking with Types. Type-Level Programming in Haskell


Sandy Maguire - 2018
    It's about getting you from here to there---from a competent Haskell programmer to one who convinces the compiler to do their work for them.

Java by Comparison: Become a Java Craftsman in 70 Examples


Simon Harrer - 2018
    

Professional CMake: A Practical Guide


Craig Scott - 2018
    The handbook for every CMake user, providing structured learning, the latest best practices and real-world advice from one of the CMake co-maintainers.

How to Write the Perfect Resume: Stand Out, Land Interviews, and Get the Job You Want


Dan Clay - 2018
    As you read through the job description, your excitement builds as you realize that the job is a perfect fit! Not wasting another second, you fill out the application, attach your resume, and hold your breath as you hit “Apply.” Then you wait. And wait. And wait some more. Weeks go by without hearing so much as a peep, and before long you’ve given up hope on what seemed like a match made in heaven. Sound familiar? You’re not alone! On average there are 250 resumes submitted for every job opening, which means that 99.6% of applicants will fail to land the jobs they apply for. To get the job you want, you don’t just need a great resume--you need an outstanding resume, one that puts you in the top 1% of candidates for the job. That means ditching the same old advice you’ve been following with little results and adopting a tried-and-true process for getting your resume noticed in even the most competitive situations. In this book, Dan Clay breaks down the exact method he’s carefully developed over a period of ten years and provides a precise, step-by-step set of instructions for crafting the perfect resume, down to the last period. Unlike the dime-a-dozen recruiters turned career coaches who have never had to put themselves on the line in today’s brutally competitive job market, Dan offers practical, real-world experience gained from applying for and getting job offers from some of the most prestigious, competitive companies in the world. And when it comes to something as important as your career, don’t you deserve to learn from someone who’s actually succeeded at doing what you’re hoping to do? Of course you do! Here are some of the things you’ll learn about how to transform your resume from average to awe-inspiring: How to handle tricky pitfalls like extended time off or unemployment and have your resume come out as strong as ever How to make your accomplishments sound dramatically more impressive without having to tell a single lie How to remove the guesswork about what to include in your resume and build it to the exacting specifications of your target job's requirements How to pass the four tests that companies will put your resume through with flying colors How to strike the perfect composition of content, white space, and page length to accentuate and differentiate your strengths How to avoid the common (and not so common) resume mistakes that leave your resume dead on arrival How to tell a powerful story that demonstrates your capabilities in a way that will knock the socks off anyone reading it How to stand out without resorting to cheap tricks that come off as cheesy or over-the-top PLUS, you’ll also gain access to a free companion website containing fully editable resume templates, a perfect resume checklist, and other bonus materials to give you everything you need to create a stunning resume that will get you noticed and land you interviews. Whether you’re a new graduate looking for your first job, a career veteran angling for your next move, a recent victim of a layoff, or someone looking to dip their toes back int

Get Programming with Haskell


Will Kurt - 2018
    It is arguable the most interesting language but also has the reputation of being one of the most challenging to learn. Learning Haskell doesn't have to be difficult, and this book can help!Learn Haskell teaches readers the Haskell language and functional programming concepts while they hack on interesting problems that are challenging but never frustrating. This example-filled tutorial will take users from the basics to tackling the tough topics. There are lots of crystal-clear illustrations, hands-on exercises, and open-ended tasks that encourage readers to explore Haskell on their own.Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

Mastering Monero: The future of private transactions


SerHack - 2018
    

Machine Learning with Python Cookbook: Practical Solutions from Preprocessing to Deep Learning


Chris Albon - 2018
    If you're comfortable with Python and its libraries, including pandas and scikit-learn, you'll be able to address specific problems such as loading data, handling text or numerical data, model selection, and dimensionality reduction and many other topics.Each recipe includes code that you can copy and paste into a toy dataset to ensure that it actually works. From there, you can insert, combine, or adapt the code to help construct your application. Recipes also include a discussion that explains the solution and provides meaningful context. This cookbook takes you beyond theory and concepts by providing the nuts and bolts you need to construct working machine learning applications.You'll find recipes for:Vectors, matrices, and arraysHandling numerical and categorical data, text, images, and dates and timesDimensionality reduction using feature extraction or feature selectionModel evaluation and selectionLinear and logical regression, trees and forests, and k-nearest neighborsSupport vector machines (SVM), na�ve Bayes, clustering, and neural networksSaving and loading trained models

Help Your Kids with Computer Science (Key Stages 1-5): A Unique Step-by-Step Visual Guide to Computers, Coding, and Communication


D.K. Publishing - 2018
    This unique visual study guide examines the technical aspects of computers, such as how they function, the latest digital devices and software, and how the Internet works. It also builds the confidence of parents and kids when facing challenges such as staying safe online, digital etiquette, and how to navigate the potential pitfalls of social media.Help Your Kids with Computer Science supports the Key Stage 1 to 5 curriculum in the UK, including GCSE and A-level Computer Science, and beyond. Jargon-free language helps to explain difficult and potentially dread-inducing homework such as hacking, ""big data"" and malware, while colourful graphics help make learning about the world of computer science exciting.Whether at home or school, this clear and helpful guide to computer science is the tool you need to be able to support students with confidence.

Mastering Vim Quickly: From WTF to OMG in no time


Jovica Ilic - 2018
    

C++17 in Detail


Bartłomiej Filipek - 2018
    What's more, it provides a lot of practical examples so you can quickly apply the knowledge to your code. Leanpub: https://leanpub.com/cpp17indetail or Amazon https://www.amazon.com/dp/1798834065I spent hundreds of hours investigating how new things work in order to make a nice and practical book for you. The book will not only save your time but also will guide you through all the nuances of the language.The book brings you exclusive content about C++17 and draws from the experience of many articles that have appeared on bfilipek.com. The chapters were rewritten from the ground-up and updated with the latest information. All of that equipped with lots of new examples and practical tips. Additionally, the book provides insight into the current implementation status, compiler support, performance issues and other relevant knowledge to boost your current projects.If you have experience with C++11/14 and you want to move forward into the latest C++ techniques, then this book is for you.

Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics


Jennifer Robbins - 2018
    You’ll begin at square one, learning how the web and web pages work, and then steadily build from there. By the end of the book, you’ll have the skills to create a simple site with multicolumn pages that adapt for mobile devices.Each chapter provides exercises to help you learn various techniques and short quizzes to make sure you understand key concepts.This thoroughly revised edition is ideal for students and professionals of all backgrounds and skill levels. It is simple and clear enough for beginners, yet thorough enough to be a useful reference for experienced developers keeping their skills up to date. Build HTML pages with text, links, images, tables, and forms Use style sheets (CSS) for colors, backgrounds, formatting text, page layout, and even simple animation effects Learn how JavaScript works and why the language is so important in web design Create and optimize web images so they’ll download as quickly as possible NEW! Use CSS Flexbox and Grid for sophisticated and flexible page layout NEW! Learn the ins and outs of Responsive Web Design to make web pages look great on all devices NEW! Become familiar with the command line, Git, and other tools in the modern web developer’s toolkit NEW! Get to know the super-powers of SVG graphics

Swift in Depth


Tjeerd in 't Veen - 2018
    It features a host of powerful tools that, if effectively used, can help you create even better apps with clean, crystal-clear code and awesome features. Swift in Depth is designed to help you unlock these tools and quirks and get developing next-gen apps, web services, and more! Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology It's fun to create your first toy iOS or Mac app in Swift. Writing secure, reliable, professional-grade software is a different animal altogether. The Swift language includes an amazing set of high-powered features, and it supports a wide range of programming styles and techniques. You just have to roll up your sleeves and learn Swift in depth. About the Book Swift in Depth guides you concept by concept through the skills you need to build professional software for Apple platforms, such as iOS and Mac; also on the server with Linux. By following the numerous concrete examples, enlightening explanations, and engaging exercises, you'll finally grok powerful techniques like generics, efficient error handling, protocol-oriented programming, and advanced Swift patterns. Author Tjeerd in 't Veen reveals the high-value, difficult-to-discover Swift techniques he's learned through his own hard-won experience. What's inside Covers Swift 5 Writing reusable code with generics Iterators, sequences, and collections Protocol-oriented programming Understanding map, flatMap, and compactMap Asynchronous error handling with ResultBest practices in Swift About the Reader Written for advanced-beginner and intermediate-level Swift programmers. About the Author Tjeerd in 't Veen is a senior software engineer and architect in the mobile division of a large international banking firm. Table of Contents Introducing Swift in depth Modeling data with enums Writing cleaner properties Making optionals second nature Demystifying initializers Effortless error handling Generics Putting the pro in protocol-oriented programming Iterators, sequences, and collections Understanding map, flatMap, and compactMap Asynchronous error handling with Result Protocol extensions Swift patterns Delivering quality Swift code Where to Swift from here

Deep Reinforcement Learning Hands-On: Apply modern RL methods, with deep Q-networks, value iteration, policy gradients, TRPO, AlphaGo Zero and more


Maxim Lapan - 2018
    Google's use of algorithms to play and defeat the well-known Atari arcade games has propelled the field to prominence, and researchers are generating new ideas at a rapid pace.Deep Reinforcement Learning Hands-On is a comprehensive guide to the very latest DL tools and their limitations. You will evaluate methods including Cross-entropy and policy gradients, before applying them to real-world environments. Take on both the Atari set of virtual games and family favorites such as Connect4. The book provides an introduction to the basics of RL, giving you the know-how to code intelligent learning agents to take on a formidable array of practical tasks. Discover how to implement Q-learning on 'grid world' environments, teach your agent to buy and trade stocks, and find out how natural language models are driving the boom in chatbots. What you will learn Understand the DL context of RL and implement complex DL models Learn the foundation of RL: Markov decision processes Evaluate RL methods including Cross-entropy, DQN, Actor-Critic, TRPO, PPO, DDPG, D4PG and others Discover how to deal with discrete and continuous action spaces in various environments Defeat Atari arcade games using the value iteration method Create your own OpenAI Gym environment to train a stock trading agent Teach your agent to play Connect4 using AlphaGo Zero Explore the very latest deep RL research on topics including AI-driven chatbots Who This Book Is For Some fluency in Python is assumed. Basic deep learning (DL) approaches should be familiar to readers and some practical experience in DL will be helpful. This book is an introduction to deep reinforcement learning (RL) and requires no background in RL. Table of Contents What is Reinforcement Learning? OpenAI Gym Deep Learning with PyTorch The Cross-Entropy Method Tabular Learning and the Bellman Equation Deep Q-Networks DQN Extensions Stocks Trading Using RL Policy Gradients – An Alternative The Actor-Critic Method Asynchronous Advantage Actor-Critic Chatbots Training with RL Web Navigation Continuous Action Space Trust Regions – TRPO, PPO, and ACKTR Black-Box Optimization in RL Beyond Model-Free – Imagination AlphaGo Zero

Impractical Python Projects: Playful Programming Activities to Make You Smarter


Lee Vaughan - 2018
    It picks up where the complete beginner books leave off, expanding on existing concepts and introducing new tools that you'll use every day. And to keep things interesting, each project includes a zany twist featuring historical incidents, pop culture references, and literary allusions.You'll flex your problem-solving skills and employ Python's many useful libraries to do things like: - Help James Bond crack a high-tech safe with a hill-climbing algorithm - Write haiku poems using Markov Chain Analysis- Use genetic algorithms to breed a race of gigantic rats- Crack the world's most successful military cipher using cryptanalysis- Derive the anagram, I am Lord Voldemort using linguistical sieves - Plan your parents' secure retirement with Monte Carlo simulation- Save the sorceress Zatanna from a stabby death using palingrams- Model the Milky Way and calculate our odds of detecting alien civilizations- Help the world's smartest woman win the Monty Hall problem argument- Reveal Jupiter's Great Red Spot using optical stacking- Save the head of Mary, Queen of Scots with steganography- Foil corporate security with invisible electronic inkSimulate volcanoes, map Mars, and more, all while gaining valuable experience using free modules like Tkinter, matplotlib, Cprofile, Pylint, Pygame, Pillow, and Python-Docx.Whether you're looking to pick up some new Python skills or just need a pick-me-up, you'll find endless educational, geeky fun with Impractical Python Projects.

Fullstack Vue: The Complete Guide to Vue.js


Hassan Djirdeh - 2018
    

Better Deep Learning: Train Faster, Reduce Overfitting, and Make Better Predictions


Jason Brownlee - 2018
    Discover exactly how to improve the performance of deep learning neural network models on your predictive modeling projects. With clear explanations, standard Python libraries, and step-by-step tutorial lessons, you’ll discover how to better train your models, reduce overfitting, and make more accurate predictions.

C++ High Performance: Boost and optimize the performance of your C++17 code


Viktor Sehr - 2018
    It has evolved over the last few years to become a modern and expressive language. This book will guide you through optimizing the performance of your C++ apps by allowing them to run faster and consume fewer resources on the device they're running on. The book begins by helping you to identify the bottlenecks in C++. It then moves on to measuring performance, and you'll see how this affects the way you write code. Next, you'll see the importance of data structure optimization and how it can be used efficiently. After that, you'll see which algorithm should be used to achieve faster execution, followed by how to use STL containers. Moving on, you'll learn how to improve memory management in C++. You'll get hands on experience making use of multiple cores to enable more efficient and faster execution. The book ends with a brief overview of utilizing the capabilities of your GPU by using Boost Compute and OpenCL. What you will learn Find out how to use exciting new tools that will help you improve your code Identify bottlenecks to optimize your code Develop applications that utilize GPU computation Reap the benefits of concurrent programming Write code that can protect against application errors using error handling Use STL containers and algorithms effciently Extend your toolbox with Boost containers Achieve effcient memory management by using custom memory allocators Who this book is for If you're a C++ developer looking to improve the speed of your code or simply wanting to take your skills up to the next level, then this book is perfect for you.

Programming in Haskell (2nd edition)


Graham Hutton - 2018
    This book is based on the author's experience of teaching Haskell for more than twenty years. All concepts are explained from first principles and no programming experience is required, making the book accessible to a broad spectrum of readers.Part I introduces the basic concepts of pure programming in Haskell and is structured around the core features of the language. Part II covers impure programming and a range of more advanced topics. The book contains many extended programming examples, and each chapter includes a series of exercises and suggestions for further reading.This new edition has been extensively updated and expanded to include recent and more advanced features of Haskell, new examples and exercises, selected solutions, and freely downloadable lecture slides and example code. The presentation is clean and simple, while also being fully compliant with the latest version of the language, including recent changes concerning applicative, monadic, foldable and traversable types.Graham Hutton is Professor of Computer Science at the University of Nottingham. He has taught Haskell to thousands of students and received many awards for his teaching. Hutton has served as an editor of the Journal of Functional Programming, Chair of the Haskell Symposium and the International Conference on Functional Programming, Vice-Chair of the ACM Special Interest Group on Programming Languages, and he is an ACM Distinguished Scientist.

Functional Programming in C++


Ivan Čukić - 2018
    

Create an Uber Clone in 7 Days


Shai Almog - 2018
    Since the Uber application is well designed and familiar we chose it as the target but the book isn't meant as a "copy Uber" cookbook. Many applications are built around ideas similar to Uber and utilize designs inspired by Uber. It's our assumption that you can learn a lot by understanding how to build something "like" Uber.This book covers:- iOS/Android development with Codename One- Spring Boot server development on top of MySQL- WebSockets, WebServices and push notification as the communication layer- Creating a sublime UI to match professional designs- Map based user interface- User authorization via SMS/Social Networks- Best practices, security and pitfalls of mobile developmentThe book requires basic knowledge of Java but doesn't require prior knowledge of Codename One, Spring Boot or MySQL.Notice that this book is "code heavy", it contains many listings as it implements a full stack mobile app.Uber (TM) is a trademark of Uber Technologies Inc.This work is intended strictly for educational purposes. We don't condone the misuse of Uber IP!

Neural Networks and Deep Learning: A Textbook


Charu C. Aggarwal - 2018
    The primary focus is on the theory and algorithms of deep learning. The theory and algorithms of neural networks are particularly important for understanding important concepts, so that one can understand the important design concepts of neural architectures in different applications. Why do neural networks work? When do they work better than off-the-shelf machine-learning models? When is depth useful? Why is training neural networks so hard? What are the pitfalls? The book is also rich in discussing different applications in order to give the practitioner a flavor of how neural architectures are designed for different types of problems. Applications associated with many different areas like recommender systems, machine translation, image captioning, image classification, reinforcement-learning based gaming, and text analytics are covered. The chapters of this book span three categories: The basics of neural networks: Many traditional machine learning models can be understood as special cases of neural networks. An emphasis is placed in the first two chapters on understanding the relationship between traditional machine learning and neural networks. Support vector machines, linear/logistic regression, singular value decomposition, matrix factorization, and recommender systems are shown to be special cases of neural networks. These methods are studied together with recent feature engineering methods like word2vec. Fundamentals of neural networks: A detailed discussion of training and regularization is provided in Chapters 3 and 4. Chapters 5 and 6 present radial-basis function (RBF) networks and restricted Boltzmann machines. Advanced topics in neural networks: Chapters 7 and 8 discuss recurrent neural networks and convolutional neural networks. Several advanced topics like deep reinforcement learning, neural Turing machines, Kohonen self-organizing maps, and generative adversarial networks are introduced in Chapters 9 and 10. The book is written for graduate students, researchers, and practitioners. Numerous exercises are available along with a solution manual to aid in classroom teaching. Where possible, an application-centric view is highlighted in order to provide an understanding of the practical uses of each class of techniques.

What Can Be Computed?: A Practical Guide to the Theory of Computation


John MacCormick - 2018
    Crafted specifically for undergraduates who are studying the subject for the first time, and requiring minimal prerequisites, the book focuses on the essential fundamentals of computer science theory and features a practical approach that uses real computer programs (Python and Java) and encourages active experimentation. It is also ideal for self-study and reference.The book covers the standard topics in the theory of computation, including Turing machines and finite automata, universal computation, nondeterminism, Turing and Karp reductions, undecidability, time-complexity classes such as P and NP, and NP-completeness, including the Cook-Levin Theorem. But the book also provides a broader view of computer science and its historical development, with discussions of Turing's original 1936 computing machines, the connections between undecidability and G�del's incompleteness theorem, and Karp's famous set of twenty-one NP-complete problems.Throughout, the book recasts traditional computer science concepts by considering how computer programs are used to solve real problems. Standard theorems are stated and proven with full mathematical rigor, but motivation and understanding are enhanced by considering concrete implementations. The book's examples and other content allow readers to view demonstrations of--and to experiment with--a wide selection of the topics it covers. The result is an ideal text for an introduction to the theory of computation.An accessible and rigorous introduction to the essential fundamentals of computer science theory, written specifically for undergraduates taking introduction to the theory of computationFeatures a practical, interactive approach using real computer programs (Python in the text, with forthcoming Java alternatives online) to enhance motivation and understandingGives equal emphasis to computability and complexityIncludes special topics that demonstrate the profound nature of key ideas in the theory of computationLecture slides and Python programs are available at whatcanbecomputed.com

Writing High-Performance .NET Code


Ben Watson - 2018
    It will expertly guide you through the nuts and bolts of extreme performance optimization in .NET, complete with in-depth examinations of CLR functionality, free tool recommendations and tutorials, useful anecdotes, and step-by-step guides to measure and improve performance.This second edition incorporates the advances and improvements in .NET over the last few years, as well as greatly expanded coverage of tools, more topics, more tutorials, more tips, and improvements throughout the entire book.New in the 2nd Edition:- 50% increase in content!- New examples, code samples, and diagrams throughout entire book- More ways to analyze the heap and find memory problems- More tool coverage, including expanded usage of Visual Studio- More benchmarking- New GC configuration options- Code warmup techniques- New .NET features such as ref-returns, value tuples, SIMD, and more- More detailed analysis of LINQ- Tips for high-level feature areas such as ASP.NET, ADO.NET, and WPFAlso find expanded coverage and discover new tips and tricks for:- Profiling with multiple tools to quickly find problem areas- Detailed description of the garbage collector, how to optimize your code for it, and how to diagnose difficult memory-related issues- How to analyze JIT and diagnose warmup problems- Effective use of the Task Parallel Library to maximize throughput- Which .NET features and APIs to use and which to avoid- Instrument your program with performance counters and ETW events- Use the latest and greatest .NET features- Build a performance-minded team- ...and so much more

Microservices for the Enterprise: Designing, Developing, and Deploying


Kasun Indrasiri - 2018
    This book provides a comprehensive understanding of microservices architectural principles and how to use microservices in real-world scenarios. Architectural challenges using microservices with service integration and API management are presented and you learn how to eliminate the use of centralized integration products such as the enterprise service bus (ESB) through the use of composite/integration microservices. Concepts in the book are supported with use cases, and emphasis is put on the reality that most of you are implementing in a “brownfield” environment in which you must implement microservices alongside legacy applications with minimal disruption to your business.  Microservices for the Enterprise covers state-of-the-art techniques around microservices messaging, service development and description, service discovery, governance, and data management technologies and guides you through the microservices design process. Also included is the importance of organizing services as core versus atomic, composite versus integration, and API versus edge, and how such organization helps to eliminate the use of a central ESB and expose services through an API gateway. What You'll Learn Design and develop microservices architectures with confidence Put into practice the most modern techniques around messaging technologies  Apply the Service Mesh pattern to overcome inter-service communication challenges Apply battle-tested microservices security patterns to address real-world scenarios Handle API management, decentralized data management, and observability Who This Book Is For Developers and DevOps engineers responsible for implementing applications around a microservices architecture, and architects and analysts who are designing such systems

CompTIA Network+ Study Guide: Exam N10-007 (Comptia Network + Study Guide Authorized Courseware)


Todd Lammle - 2018
    First, however, you have to pass the exam! This detailed CompTIA Authorized study guide by networking guru Todd Lammle has everything you need to prepare for the CompTIA Network+ Exam N10-007. Todd covers all exam objectives, explains key topics, offers plenty of practical examples, and draws upon his own invaluable 30 years of networking experience to help you learn. The Study Guide prepares you for Exam N10-007, the new CompTIA Network+ Exam:  •   Covers all exam objectives including network technologies, network installation and configuration, network media and topologies, security, and much more •    Includes practical examples review questions, as well as access to practice exams and flashcards to reinforce learning •    Networking guru and expert author Todd Lammle offers valuable insights and tips drawn from real-world experience  Plus, receive one year of FREE access to a robust set of online interactive learning tools, including hundreds of sample practice questions, a pre-assessment test, bonus practice exams, and over 100 electronic flashcards. Prepare for the exam and enhance your career—starting now!

Epic Failures in DevSecOps: Volume 1


Mark MillerStefan Streichsbier - 2018
    When something goes as expected, we use that process as a mental template for future projects. Success actually stunts the learning process because we think we have established a successful pattern, even after just one instance of success. It is a flawed confirmation that “This is the correct way to do it”, which has a tendency to morph into “This is the only way to do it.”Real learning comes through crisis.If something goes wrong, horribly wrong, we have to scramble, experiment, hack, scream and taze our way through the process. Our minds flail for new ideas, are more willing to experiment, are more open to external input when we’re in crisis mode.The Genesis of an IdeaThat’s where the idea for this book came from. When I was in Singapore for DevSecOps Days 2018. Edwin Kwan, Stefan Streichsbier and DJ Schleen were swapping war stories over a couple of beers.The conclusion of their evening of telling tales was the desire to find a way to get those stories out to the community. They spoke with me about putting together a team of authors who would tell their own stories in the hope of helping the DevSecOps Community understand that failure is an option.Yes. You read that right. Failure is an option.Failure is part of the process of making the cultural and technological transformation that needs to happen in order to keep innovating. It is part of the journey to DevSecOps. The stories presented here aren’t a roadmap. What they do is acknowledge failure as a part of the knowledge base of the DevSecOps Community.The days of stand-alone security teams isolated from the real process of development are coming to an end. Paraphrasing Caroline Wong, “Security needs to be invited to the party, not perceived as a goon standing at the front door denying admission”. With DevSecOps,security is now part of the team.After reading these stories, we hope you will realize you are not alone in your journey. Not only are you not alone, there are early adopters who have gone before you, not exactly “hacking a trail through the swamp”,but at least marking the booby traps, putting flags next to the quick-sandpits and holding up a ‘Dragons be here’ sign at perilous cave openings.

Code with the Wisdom of the Crowd: Get Better Together with Mob Programming


Mark Pearl - 2018
    Mob Programming is an approach to developing software that radically reduces defects and key-person dependencies by having a group of people work together at a single machine. See how to avoid the most common pitfalls that teams make when first starting out. Discover what it takes to create and support a successful mob. Now you can take collaborative programming to the next level with Mob Programming.Mob Programming is a natural extension of the popular Pair Programming concept, and is not restricted to a specific programming language or technology. It can be used by anyone who develops software, including dev leads, software developers, and agile coaches. The more people working on a bug or feature results in fewer dependencies on individuals, and overall increased learning for everyone involved. With more eyes on the code, you'll find you develop better solutions with fewer defects.Set up your team for success by introducing Mob Programming in a way that benefits them. Create a good first Mobbing experience for your team with a template that avoids the common traps beginners may fall into. Master a collaborative and empathic mindset to help optimize the Mobbing experience. Learn how to make adjustments when things go wrong. Adapt your mobbing to different types of development tasks. Get management buy-in for your Mobbing experiment by demonstrating the benefits. Discover the equipment and resources you need, and how to adjust your workspace for an effective mob.Get important features to market sooner, squish bugs faster, and collaborate better today with Mob Programming.What You Need: All you need is three or more programmers, a meeting workspace that's large enough to accommodate your mob, and a computer on which to work.

Learn Robotics Programming: Build and control autonomous robots using Raspberry Pi 3 and Python


Danny Staple - 2018
    

Windows Security Monitoring: Scenarios and Patterns


Andrei Miroshnikov - 2018
    Expert guidance brings you up to speed on Windows auditing, logging, and event systems to help you exploit the full capabilities of these powerful components. Scenario–based instruction provides clear illustration of how these events unfold in the real world. From security monitoring and event patterns to deep technical details about the Windows auditing subsystem and components, this book provides detailed information on security events generated by the operating system for many common operations such as user account authentication, Active Directory object modifications, local security policy changes, and other activities. This book is based on the author′s experience and the results of his research into Microsoft Windows security monitoring and anomaly detection. It presents the most common scenarios people should be aware of to check for any potentially suspicious activity. Learn to: Implement the Security Logging and Monitoring policy Dig into the Windows security auditing subsystem Understand the most common monitoring event patterns related to operations and changes in the Microsoft Windows operating system About the Author Andrei Miroshnikov is a former security program manager with Microsoft. He is an organizer and author for the DEFCON security conference "Forensics CTF" village and has been a speaker at Microsoft′s Bluehat security conference. In addition, Andrei is an author of the "Windows 10 and Windows Server 2016 Security Auditing and Monitoring Reference" and multiple internal Microsoft security training documents. Among his many professional qualifications, he has earned the (ISC)2 CISSP and Microsoft MCSE: Security certifications.

Game Programming in C++: Creating 3D Games


Sanjay Madhav - 2018
    Since it's used throughout their enormous code bases, studios use it to maintain and improve their games, and look for it constantly when hiring new developers. Game Programming in C++ is a practical, hands-on approach to programming 3D video games in C++. Modeled on Sanjay Madhav's game programming courses at USC, it's fun, easy, practical, hands-on, and complete.Step by step, you'll learn to use C++ in all facets of real-world game programming, including 2D and 3D graphics, physics, AI, audio, user interfaces, and much more. You'll hone real-world skills through practical exercises, and deepen your expertise through start-to-finish projects that grow in complexity as you build your skills. Throughout, Madhav pays special attention to demystifying the math that all professional game developers need to know.Set up your C++ development tools quickly, and get started Implement basic 2D graphics, game updates, vectors, and game physics Build more intelligent games with widely used AI algorithms Implement 3D graphics with OpenGL, shaders, matrices, and transformations Integrate and mix audio, including 3D positional audio Detect collisions of objects in a 3D environment Efficiently respond to player input Build user interfaces, including Head-Up Displays (HUDs) Improve graphics quality with anisotropic filtering and deferred shading Load and save levels and binary game dataWhether you're a working developer or a student with prior knowledge of C++ and data structures, Game Programming in C++ will prepare you to solve real problems with C++ in roles throughout the game development lifecycle. You'll master the language that top studios are hiring for--and that's a proven route to success.

Deep Learning in Natural Language Processing


Li Deng - 2018
    In particular, the striking success of deep learning in a wide variety of natural language processing (NLP) applications has served as a benchmark for the advances in one of the most important tasks in artificial intelligence. This book reviews the state of the art of deep learning research and its successful applications to major NLP tasks, including speech recognition and understanding, dialogue systems, lexical analysis, parsing, knowledge graphs, machine translation, question answering, sentiment analysis, social computing, and natural language generation from images. Outlining and analyzing various research frontiers of NLP in the deep learning era, it features self-contained, comprehensive chapters written by leading researchers in the field. A glossary of technical terms and commonly used acronyms in the intersection of deep learning and NLP is also provided. The book appeals to advanced undergraduate and graduate students, post-doctoral researchers, lecturers and industrial researchers, as well as anyone interested in deep learning and natural language processing.

Data Visualization Made Simple: Insights into Becoming Visual


Kristen Sosulski - 2018
    With foundations rooted in statistics, psychology, and computer science, data visualization offers practitioners in almost every field a coherent way to share findings from original research, big data, learning analytics, and more.In nine appealing chapters, the book: examines the role of data graphics in decision-making, sharing information, sparking discussions, and inspiring future research; scrutinizes data graphics, deliberates on the messages they convey, and looks at options for design visualization; and includes cases and interviews to provide a contemporary view of how data graphics are used by professionals across industries Both novices and seasoned designers in education, business, and other areas can use this book’s effective, linear process to develop data visualization literacy and promote exploratory, inquiry-based approaches to visualization problems.

Statistical Methods for Machine Learning: Discover How to Transform Data into Knowledge with Python


Jason Brownlee - 2018
    You cannot develop a deep understanding and application of machine learning without it. Cut through the equations, Greek letters, and confusion, and discover the topics in statistics that you need to know.Using clear explanations, standard Python libraries, and step-by-step tutorial lessons, you will discover the importance of statistical methods to machine learning, summary stats, hypothesis testing, nonparametric stats, resampling methods, and much more.

Concrete Mathematics: A Foundation for Computer Science (2nd Edition)


Oren Patashnik - 2018
    The primary aim of its well-known authors is to provide a solid and relevant base of mathematical skills - the skills needed to solve complex problems, to evaluate horrendous sums, and to discover subtle patterns in data.

Swift Apprentice: Beginning programming with Swift 4.2


Ray Wenderlich - 2018
    

Theorem Proving in Lean


Jeremy Avigad - 2018
    A introduction to using Lean as an interactive theorem prover.

The Beauty of Mathematics in Computer Science


Jun Wu - 2018
    The book was published in Chinese in 2011 and has sold more than 600,000 copies. Readers were surprised to find that many daily-used IT technologies were so tightly tied to mathematical principles. For example, the automatic classification of news articles uses the cosine law taught in high school.The book covers many topics related to computer applications and applied mathematics including:Natural language processingSpeech recognition and machine translationStatistical language modelingQuantitive measurement of informationGraph theory and web crawlerPagerank for web searchMatrix operation and document classificationMathematical background of big dataNeural networks and Google's deep learning Jun Wu was a staff research scientist in Google who invented Google's Chinese, Japanese, and Korean Web Search Algorithms and was responsible for many Google machine learning projects. He wrote official blogs introducing Google technologies behind its products in very simple languages for Chinese Internet users from 2006-2010. The blogs had more than 2 million followers. Wu received PhD in computer science from Johns Hopkins University and has been working on speech recognition and natural language processing for more than 20 years. He was one of the earliest engineers of Google, managed many products of the company, and was awarded 19 US patents during his 10-year tenure there. Wu became a full-time VC investor and co-founded Amino Capital in Palo Alto in 2014 and is the author of eight books.

Feminist in a Software Lab: Difference + Design


Tara McPherson - 2018
    The history of this software lab intersects a much longer tale about computation in the humanities, as well as tensions about the role of theory in related projects.Tara McPherson considers debates around the role of cultural theory within the digital humanities and addresses Gary Hall's claim that the goals of critical theory and of quantitative or computational analysis may be irreconcilable (or at the very least require "far more time and care"). She then asks what it might mean to design--from conception--digital tools and applications that emerge from contextual concerns of cultural theory and, in particular, from a feminist concern for difference. This path leads back to the Vectors Lab and its ongoing efforts at the intersection of theory and praxis.

LIFE UNDER THE SUN: My 20-Year Journey at Sun Microsystems


David Yen - 2018
    In the 1990s, he led the development of Sun’s first- and second-generation multi-CPU SMP servers, which transformed Sun from a workstation company to a leading enterprise server company. As head of Sun’s Microelectronics group in 2001, he turned around Sun’s declining SPARC microprocessor business, introducing the industry’s first 8-core, 32-thread general-purpose processor in 2005 and developing it into a multi-billion dollar business. Sun was "the Google in the '90s" and highly regarded for its innovations even in the Silicon Valley. Founded in 1982 by Andy Bechtolsheim, Bill Joy, Scott McNealy, and Vinod Khosla and started as a workstation vendor using off-the-shelf components, Sun surpassed established information technology giants such as Digital Equipment Corporation, IBM and Hewlett-Packard in the '90s and became "the dot in .com" in that crazy late '90s era. In the twenty years that the author worked at Sun, he got to witness the rise and eventually the fall of the company. The author was not on the very top of the decision making layer, yet he was on a level high enough to know and sometimes influence what was going on. By documenting what he experienced and what his thoughts were at the time, the author believes he might have provided a piece of reading that young engineering graduates could get a preview of what they may experience, young business administration graduates could get a peek at thoughts of engineering management, contemporary industry veterans could get some smiles from time to time if what the author described triggered the reminiscence of their own, and readers outside of Silicon Valley could get a glimpse of how the Valley operates through various behind-the-scene stories.

Programming ASP.NET Core


Dino Esposito - 2018
    Microsoft MVP Dino Esposito introduces proven techniques and well-crafted example code for solving real problems with ASP.NET Core. Step by step, he guides you through using all key ASP.NET Core technologies, including MVC for HTML generation, .NET Core, EF Core, ASP.NET Identity, dependency injection, and much more. Esposito thoroughly covers ASP.NET Core's cross-platform capabilities and what's changed from older ASP.NET versions, but he doesn't stop there: he offers a complete learning path for every developer who wants to build production solutions, including mobile-specific solutions. Microsoft MVP Dino Esposito shows how to: - Create new projects and understand their structure - Set up and use the familiar MVC application model in ASP.NET Core - Write controller class code to govern all stages of request processing - Serve HTML from controllers, or directly via Razor Pages - Master the Razor language for quickly defining the layout of HTML views - Manage cross-cutting concerns such as global configuration data, error and exception handling, controller class design, and dependency injection - Secure applications with user authentication and ASP.NET Core's policy-based user authorization API - Design for efficient data access, and choose the right option for reading and writing data - Build ASP.NET Core Web APIs that return JSON, XML, or other data - Use data binding to programmatically update visual components with fresh information - Build device-friendly web views for iOS and Android - Explore the radically new ASP.NET Core runtime environment and Dependency Injection (DI) infrastructure

MobX Quick Start Guide: Supercharge the client state in your React apps with MobX


Pavan Podila - 2018
    Its abstractions can help you manage state in small to extremely large applications. However, if you are just starting out, it is essential to have a guide that can help you take the first steps. This book aims to be that guide that will equip you with the skills needed to use MobX and effectively handle the state management aspects of your application.You will first learn about observables, actions, and reactions: the core concepts of MobX. To see how MobX really shines and simplifies state management, you'll work through some real-world use cases. Building on these core concepts and use cases, you will learn about advanced MobX, its APIs, and libraries that extend MobX.By the end of this book, you will not only have a solid conceptual understanding of MobX, but also practical experience. You will gain the confidence to tackle many of the common state management problems in your own projects. What you will learn Explore the fundamental concepts of MobX, such as observables, actions, and reactions Use observables to track state and react to its changes with validations and visual feedback (via React Components) Create a MobX observable from different data types Define form data as an observable state and tackle sync and async form validations Use the special APIs to directly manipulate observables, tracking its changes, and discovering the reasons behind a change Tackle any state management issue you may have in your app by combining mobx-utils and mobx-state-tree Explore the internals of the MobX reactive system by diving into its inner workings Who this book is for This book is for web developers who want to implement easy and scalable state management for their apps. Knowledge of HTML, CSS, and JavaScript is assumed Table of Contents Introduction to State Management Observables, Actions, and Reactions A React App with MobX Crafting the Observable tree Derivations, Actions and Reactions Handling Real-World Use Cases Special API for Special Cases Exploring mobx-utils and mobx-state-tree Mobx Internals

Testing Vue. Js Applications


Edward Wardell-Yerburgh - 2018
    To test applications built with Vue, you need to master a new set of tools and techniques designed to work with Vue's unique reactive design and the flexible collection of components that make up the Vue stack. Mastering Vue testing not only improves the quality of your apps, it guarantees that you understand how your apps work top-to-bottom and end to end.

Mastering Async/Await


Valeri Karpov - 2018
    No more deeply nested callbacks or convoluted promise chains. With async/await, you can make that dream a reality. Mastering Async/Await provides a concise and comprehensive guide to async/await fundamentals. You'll learn: * Why React and Express don't support async/await out of the box, and how to work around these frameworks' limitations. * How to evaluate whether your favorite npm modules support async/await. * How promises work under the hood, in excruciating detail, by building a Promises/A+ compliant promise library from scratch. * Why async/await is the perfect complement to promises, rather than an alternative. * How to use async/await to handle errors and keep nasty red error messages out of your Chrome console. Mastering Async/Await packs all this and more into 52 terse pages. That means you can get caught up on modern asynchronous JavaScript in hours, not days. Instead of cobbling together copy/pasted snippets from StackOverflow, become the expert your team goes to for all things async.

Hands-On Image Processing with Python: Expert techniques for advanced image analysis and effective interpretation of image data


Sandipan Dey - 2018
    

Practical Mobile Forensics - Third Edition: A hands-on guide to mastering mobile forensics for the iOS, Android, and the Windows Phone platforms


Rohit Tamma - 2018
    

The Everyday Life of an Algorithm


Daniel Neyland - 2018
    Readers are invited to follow the algorithm over three years, charting its everyday life. Questions of ethics, transparency, accountability and market value must be grasped by the algorithm in a series of ever more demanding forms of experimentation. Here the algorithm must prove its ability to get a grip on everyday life if it is to become an ordinary feature of the settings where it is being put to work. Through investigating the everyday life of the algorithm, the book opens a conversation with existing social science research that tends to focus on the power and opacity of algorithms. In this book we have unique access to the algorithm’s design, development and testing, but can also bear witness to its fragility and dependency on others.

The Essence of Software Engineering


Volker Gruhn - 2018
    It offers a broad overview of research findings dealing with current practical software engineering issues and also pointers to potential future developments. Celebrating the 20th anniversary of adesso AG, adesso gathered some of the pioneers of software engineering including Manfred Broy, Ivar Jacobson and Carlo Ghezzi at a special symposium,  where they presented their thoughts about latest software engineering research and which are part of this book. This way it offers readers a concise overview of the essence of software engineering, providing valuable insights into the latest methodological research findings and adesso’s experience applying these results in real-world projects.

Effective DevOps with AWS: Implement continuous delivery and integration in the AWS environment, 2nd Edition


Yogesh Raheja - 2018
    

Programming Skills for Data Science: Start Writing Code to Wrangle, Analyze, and Visualize Data with R (Addison-Wesley Data & Analytics Series)


Michael Freeman - 2018
    

Python Machine Learning: Python Machine Learning From Scratch: Step by Step Guide with Scikit-Learn and TensorFlow


Daniel Nedal - 2018
    This book would seek to explain common terms and algorithms in an intuitive way. There would be little assumption of prior knowledge on the part of the reader as terms would be introduced and explained as required. We would use a progressive approach whereby we start out slowly and improve on the complexity of our solutions. From AI Sciences Publisher Our books may be the best one for beginners; it's a step-by-step guide for any person who wants to start learning Artificial Intelligence and Data Science from scratch. It will help you in preparing a solid foundation and learn any other high-level courses. To get the most out of the concepts that would be covered, readers are advised to adopt a hands on approach which would lead to better mental representations. Step By Step Guide and Visual Illustrations and Examples This book and the accompanying examples, you would be well suited to tackle problems which pique your interests using machine learning and deep learning models. Instead of tough math formulas, this book contains several graphs and images which detail all important Python and Machine Learning concepts and their applications. Target Users The book designed for a variety of target audiences. The most suitable users would include: Anyone who is intrigued by how algorithms arrive at predictions but has no previous knowledge of the field. Software developers and engineers with a strong programming background but seeking to break into the field of machine learning. Seasoned professionals in the field of artificial intelligence and machine learning who desire a bird’s eye view of current techniques and approaches. What’s Inside This Book? Introduction Introduction to Labels and Features A Regression Example: Predicting Boston Housing Prices Import Libraries: How to forecast and Predict Popular Classification Algorithms Introduction to K Nearest Neighbors Introduction to Support Vector Machine Example of Clustering Running K-means with Scikit-Learn Introduction to Deep Learning using TensorFlow Deep Learning Compared to Other Machine Learning Approaches Applications of Deep Learning How to run the Neural Network using TensorFlow Cases of Study with Real Data Sources & References Frequently Asked Questions Q: Is this book for me and do I need programming experience? A: f you want to smash Machine Learning from scratch, this book is for you. Little programming experience is required. If you already wrote a few lines of code and recognize basic programming statements, you’ll be OK. Q: Can I loan this book to friends? A: Yes.

Technology Strategy Patterns: Architecture as Strategy


Eben Hewitt - 2018
    This book’s toolkit provides architects, product managers, technology managers, and executives with a shared language—in the form of repeatable, practical patterns and templates—to produce great technology strategies. Author Eben Hewitt developed 39 patterns over the course of a decade in his work as CTO, CIO, and chief architect for several global tech companies. With these proven tools, you can define, create, elaborate, refine, and communicate your architecture goals, plans, and approach in a way that executives can readily understand, approve, and execute. This book covers: Architecture and strategy: Adopt a strategic architectural mindset to make a meaningful material impact Creating your strategy: Define the components of your technology strategy using proven patterns Communicating the strategy: Convey your technology strategy in a compelling way to a variety of audiences Bringing it all together: Employ patterns individually or in clusters for specific problems; use the complete framework for a comprehensive strategy

Deep Learning for Search


Tommaso Teofili - 2018
    You'll start with an overview of information retrieval principles, like indexing, searching, and ranking, as well as a fast indoctrination into deep learning. Then, you'll move through in-depth examples as you gain an understanding of how to improve typical search tasks, such as relevance, with the help of Apache Lucene and Deeplearning4j. The book wraps up with a look at advanced problems, like searching through images and translating user queries. By the time you're finished, you'll be ready to build amazing search engines that deliver the results your users need and get better as time goes on!

Cloud Native Development Patterns and Best Practices


John Gilbert - 2018
    This book focuses on architectural patterns for building highly scalable cloud-native systems. You will learn how the combination of cloud, reactive principles, devops, and automation enable teams to continuously deliver innovation with confidence.Begin by learning the core concepts that make these systems unique. You will explore foundational patterns that turn your database inside out to achieve massive scalability with cloud-native databases. You will also learn how to continuously deliver production code with confidence by shifting deployment and testing all the way to the left and implementing continuous observability in production. There's more—you will also learn how to strangle your monolith and design an evolving cloud-native system.By the end of the book, you will have the ability to create modern cloud-native systems.

Architecting Modern Data Platforms: A Guide to Enterprise Hadoop at Scale


Jan Kunigk - 2018
    With this practical book, you'll learn how to build big data infrastructure both on-premises and in the cloud and successfully architect a modern data platform.Ideal for enterprise architects, IT managers, application architects, and data engineers, this book shows you how to overcome the many challenges that emerge during Hadoop projects. You'll explore the vast landscape of tools available in the Hadoop and big data realm in a thorough technical primer before diving into:Infrastructure: Look at all component layers in a modern data platform, from the server to the data center, to establish a solid foundation for data in your enterprisePlatform: Understand aspects of deployment, operation, security, high availability, and disaster recovery, along with everything you need to know to integrate your platform with the rest of your enterprise ITTaking Hadoop to the cloud: Learn the important architectural aspects of running a big data platform in the cloud while maintaining enterprise security and high availability

Computer Science K-12: Imagining the possibilities!


Doug Bergman - 2018
    I'll walk you through what you need to be considering such as which technologies, what type of curriculum, student recruitment, professional development, connecting with other CS teachers, and pedagogy. For school leaders, board members, and decision makers who need to know what Computer Science really is, what it looks like in the real world, and what it can look like in education-- this book will guide you through many of those early questions as you consider if, how, and where Computer Science fits in your schools: What are the attributes of successful CS teachers? Where can I hire teachers? Do I need "experts" in CS? How do I evaluate a project-based class? Standards? Training for new teachers? What successful programs can I look at for ideas? For experienced CS teachers who are just not seeing the energy and engagement in your classes, this book will be a wealth of innovative ideas and new strategies to help you engage differently with your students. Technology today is interactive, engaging, and dynamic; Computer Science classes should have that same feel. You'll see how to create a student-centered classroom where students lead their own learning. --- Lou Zulli • Technology Director • IT Instructor and Network Administrator for CAT at Lakewood High School. (Retired) “There are teachers or educators and then there is Doug Bergman. This book reflects his infectious enthusiasm, his boundless energy and the depth of his expertise, which is built on years of experience with spectacular results....” --- Kari Stubbs, PhD • Vice President, Learning and Innovation • BrainPOP “......I encourage you to absorb and apply his ideas, as you take the conceptual understanding of CS to a more practical reality.” --- Christopher Starr, PhD • Director, Interdisciplinary Center for Applied Technology, School of Business, College of Charleston, S.C. “Finally! The one book that integrates the nature of computer science with academic and experiential learning outcomes, pedagogical innovation, and tactical implementation guidelines for K12 teachers, department chairs, principles/headmasters, district administrators and school boards...” --- Adam Michlin • CS Teacher • Golda Och Academy • President, Central CSTA NJ "Doug has written a book that all experienced CS teachers wish we had years ago to help us plot or paths but especially to educate other teachers and administrators as to the unique nature of what we do and what we require..." --- Jeff Tozzi • Vice President Microsoft Corporation 'While the world around us continues to go through an amazing digital transformation, unfortunately the curriculum and structure of our education system has been slow to keep pace with the skills our students need both now as well as in the future.  Doug's book outlines the critical thinking that teachers, administrators and parents alike must understand for us to have a real path forward...' --- Julie Hembree • M.Ed. Teacher-Librarian, Microsoft Innovative Expert • Cougar Ridge Elementary School “...This is a book that will intentionally ignite your passion for CS with detailed ideas on how to implement a program for your students.

Mastering Ubuntu Server: Master the art of deploying, configuring, managing, and troubleshooting Ubuntu Server 18.04, 2nd Edition


Jay LaCroix - 2018
    

Computer Graphics Programming in OpenGL Using C++


V. Scott Gordon - 2018
    It is appropriate for computer science undergraduate graphics programming courses and for professionals who are interested in mastering 3D graphics skills. It has been designed in a 4-color, "teach-yourself" format with numerous examples that the reader can run just as presented. The book is unique in its heavy emphasis on student learning, making the complex topic of shader programming as accessible as possible. Includes companion files with source code and images.Features: - Covers OpenGL 4.0+ shader programming using C++, using Windows or Mac.- Includes companion files with code, models, textures, images from the book, and more.- Illustrates every technique with complete running code examples. Everything needed to install and run every example is provided and fully explained.- Includes step-by-step instruction for every GLSL programmable pipeline stage (vertex, tessellation, geometry, and fragment) -- with examples.- Explains how to install and use essential OpenGL libraries such as GLEW, GLFW, glm, and others, for both Windows and Mac.

AI in Marketing, Sales and Service: How Marketers without a Data Science Degree can use AI, Big Data and Bots


Peter Gentsch - 2018
    Now it is time to unleash AI on the administrative, planning and even creative procedures in marketing, sales and management.This book provides an easy-to-understand guide to assessing the value and potential of AI and Algorithmics. It systematically draws together the technologies and methods of AI with clear business scenarios on an entrepreneurial level.With interviews and case studies from those cutting edge businesses and executives who are already leading the way, this book shows you: how customer and market potential can be automatically identified and profiled; how media planning can be intelligently automated and optimized with AI and Big Data; how (chat)bots and digital assistants can make communication between companies and consumers more efficient and smarter; how you can optimize Customer Journeys based on Algorithmics and AI; and how to conduct market research in more efficient and smarter way. A decade from now, all businesses will be AI businesses – Gentsch shows you how to make sure yours makes that transition better than your competitors.

How Computers Work: The Evolution of Technology, 10th Edition (How It Works)


Ron white and 1 other - 2018
    In this new edition, you’ll find detailed information not just about PCs, but about how changes in technology have evolved the giant, expensive computer dinosaurs of last century into the smaller but more powerful smartphones, tablets, and wearable computing of today. Whether your interest is in business, gaming, digital photography, entertainment, communications, or security, you’ll learn how computing is evolving the way you live. A full-color, illustrated adventure into the wonders of TECHNOLOOGY This full-color, fully illustrated guide to the world of technology assumes nothing and explains everything. Only the accomplished and award-winning team of writer Ron White and artist Tim Downs has the unique ability to meld descriptive text with one-of-a-kind visuals to fully explain how the electronic gear we depend on every day is made possible. In addition to all the content you’ve come to expect from prior editions, this newly revised edition includes all-new coverage of topics such as: • How smartphones and tablet PCs put the power of a desktop computer in your hands–literally • How computing technology is linking our homes, work place, entertainment, and daily communications • How advances such as Facebook, Twitter, Google, eBay, and smartphones are expanding our universe of friends, knowledge, and opportunity • How increased miniaturization leads to new products, such as smartphone, smartwatches, and Google Glass • How computing technology takes advantages of quantum physics and innovations no one even imagined a few years ago For two decades, How Computers Work has helped newbies understand new technology, while hackers and IT pros have treasured it for the depth of knowledge it contains. This is the perfect book about computing to capture your imagination, delight your eyes, and expand your mind, no matter what your technical level! Beautifully detailed illustrations and jargon-free explanations walk you through the technology that is shaping our lives. See the hidden workings inside computers, smartphones, tablets, Google Glass, and the latest tech inventions.

Mastering Linux Security and Hardening: Secure your Linux server and protect it from intruders, malware attacks, and other external threats


Donald A. Tevault - 2018
    You will learn various security techniques such as SSH hardening, network service detection, setting up firewalls, encrypting file systems, protecting user accounts, authentication processes, and so on. Moving forward, you will also develop hands-on skills with advanced Linux permissions, access control, special modes, and more. Lastly, this book will also cover best practices and troubleshooting techniques to get your work done efficiently. By the end of this book, you will be confident in delivering a system that will be much harder to compromise. What you will learn Use various techniques to prevent intruders from accessing sensitive data Prevent intruders from planting malware, and detect whether malware has been planted Prevent insiders from accessing data that they aren’t authorized to access Do quick checks to see whether a computer is running network services that it doesn’t need to run Learn security techniques that are common to all Linux distros, and some that are distro-specific Who this book is for If you are a systems administrator or a network engineer interested in making your Linux environment more secure, then this book is for you. Security consultants wanting to enhance their Linux security skills will also benefit from this book. Prior knowledge of Linux is mandatory.

Gentle Introduction to Dependent Types with Idris


Boro Sitnikovski - 2018
    Idris is a programming language that supports dependent types. We will learn about the mathematical foundations, and then write correct software and mathematically prove properties about it.This book aims to be accessible to novices that have no prior experience beyond high school mathematics. Thus, this book is designed to be self-contained.The first part of this book serves as an introduction to the theory behind Idris, while the second part is a practical introduction to Idris with examples.

A Programmer's Introduction to Mathematics


Jeremy Kun - 2018
    You'll learn about the central objects and theorems of mathematics, covering graphs, calculus, linear algebra, eigenvalues, optimization, and more. You'll also be immersed in the often unspoken cultural attitudes of mathematics, learning both how to read and write proofs while understanding why mathematics is the way it is. Between each technical chapter is an essay describing a different aspect of mathematical culture, and discussions of the insights and meta-insights that constitute mathematical intuition.As you learn, we'll use new mathematical ideas to create wondrous programs, from cryptographic schemes to neural networks to hyperbolic tessellations. Each chapter also contains a set of exercises that have you actively explore mathematical topics on your own. By the end of the book, you will be able to learn mathematics on your own. In short, this book will teach you to engage with mathematics.

Odoo 12 Development Essentials: Fast-Track Your Odoo Development Skills to Build Powerful Business Applications


Daniel Reis - 2018
    

Full Stack Development with JHipster


Deepu K. Sasidharan - 2018
    You will learn the essentials of a full stack developer before getting hands-on and building a monolithic web application with JHipster. From here you will learn the JHipster Domain Language with entity modeling and entity creation using JDL and JDL studio. Moving on, you will be introduced to client side technologies such as Angular and Bootstrap and will delve into technologies such as Spring Security, Spring MVC, and Spring Data. You will learn to build and package apps for production with various deployment options such as Heroku and more. During the course of the book, you will be introduced to microservice server-side technologies and how to break your monolithic application with a database of your choice. Next, the book takes you through cloud deployment with microservices on Docker and Kubernetes. Going forward, you will learn to build your client side with React and master JHipster best practices.By the end of the book, you will be able to leverage the power of the best tools available to build modern web applications.

A First Introduction to Quantum Computing and Information


Bernard Zygelman - 2018
    

Logics for Computer Science: Classical and Non-Classical


Anita Wasilewska - 2018
    Logics for Computer Science contains intuitive introductory chapters  explaining the  need for logical investigations, motivations for different types of logics  and some of their history. They are followed by strict  formal approach chapters. All chapters contain many detailed examples explaining each of the introduced notions and definitions, well chosen sets of exercises with carefully written solutions, and sets of homework. While many logic books are available, they were written by logicians for  logicians, not for computer scientists. They usually choose one particular way of presenting the material and use a specialized language. Logics for Computer Science discusses Gentzen as well as Hilbert formalizations, first order theories, the Hilbert Program, Godel's  first and second incompleteness theorems and their proofs. It also introduces and discusses some many valued logics, modal logics and introduces algebraic models  for classical, intuitionistic, and modal S4 and  S5 logics.The theory of computation is based on concepts defined by logicians and mathematicians. Logic plays a fundamental role in computer science, and this book explains the basic theorems, as well as different techniques of proving them in classical and some non-classical logics. Important applications derived from concepts of logic for computer technology include Artificial Intelligence and Software Engineering. In addition to Computer Science, this book may also find an audience in mathematics and philosophy courses, and some of the chapters are also useful for a course in Artificial Intelligence.

Machine Learning using Python: The New AI: For Absolute Beginners


Narendra Mohan Mittal - 2018
    The book will also benefit readers who want to understand the technology behind implementing a scalable machine learning model using Apache Hadoop, Hive, Pig, and Spark. Career Opportunities in Machine Learning It is natural to associate ‘big data,’ ‘artificial intelligence’ and ‘machine learning skills’ with success and a big pay packet. Six-figure incomes are relatively standard for data science professionals in places like the U.S and this is by no means the top bracket of industry talent.Given the speed at which artificial intelligence is taking over almost every industry, many more jobs are going to become redundant. This book is by no means claiming that you have to learn data science to keep your job and that everyone needs to understand machine learning programming to have a job in the future. Data science programs and machine learning teams are ultimately just one contingent of business, government department or sporting club. Table of Contents 1. Machine Learning World 2. What Is Machine Learning? 3. Machine Learning Techniques 4. Machine Learning Importance 5. Machine Learning, Statistics, and Data Analytics 6. Cognitive Computing 7. Machine Learning with sci-kit-learn and Visualization 8. Chatbots using Python 9. Machine Learning Techniques using Python 10. Natural Language Processing using Python 11. Azure Machine Learning Services 12. Convolutional Neural Networks 13. Recurrent Neural Networks 14. Career Opportunities in Machine Learning 15. Make Them Smart, Make Them Learn with Machine learning What is Machine Learning? Machine learning is a special type of AI. This is the ability of machines to learn and work on new problem dimensions without being explicitly programmed to do so. The programs are changed as they are exposed to new data and scenarios. • Machine learning plays a very important role in the so-called industry revolution 4.0. • This revolution is centered around IoT (Internet of Things) and cognitive computing. • Machine learning has an important role to play here, as this becomes an essential subcomponent in this ecosystem. • Google and lot of other companies are now even able to provide machine learning as a cloud service   Machine learning has some similarity to data mining or pattern analysis. These activities help to search through data points to generate outcomes as outputs. So, the primary action for these functionalities is to analyze and understand data and then to use it to comprehend outcomes or outputs for users. Similarly, machine learning also keeps on understanding the data it comes in touch with while processing, but the result of such findings is not an outcome for the user but a continuous process of adjusting and updating the artificial intelligence program. About the Author Narendra Mohan Mittal is the Founder and Chairman of Thesis Scientist and he is working in the field of Data Science/big data/machine learning/deep learning space. He has more than 10 years in Research and Teaching and he is very active in the Big Data, Data Science and Machine learning.

Java Language Features: With Modules, Streams, Threads, I/O, and Lambda Expressions


Kishori Sharan - 2018
    Author Kishori Sharan provides over 50 diagrams and 290 complete programs to help you visualize and better understand the topics covered in this book.Java Language Features, Second Edition starts with a series of chapters on the essential language features provided by Java, including annotations, reflection, and generics. These topics are then complemented by details of how to use lambda expressions, allowing you to build powerful and efficient Java programs. The chapter on threads follows this up and discusses everything from the very basic concepts of a thread to the most advanced topics such as synchronizers, the fork/join framework, and atomic variables.This book contains unmatched coverage of Java MIO, the Stream API, the Path API, the FileVisitor API, the watch service, and asynchronous file I/O. With this in-depth knowledge, your data- and file-management programs will be able to take advantage of every feature of Java's powerful I/O framework and much more.Additionally, three appendices are available for free via the Download Source Code in apress.com. These appendices will give you a head start on the most important features of Java 10 and the new Java versioning scheme.What You’ll LearnUse essential and advanced features of the Java languageCode Java annotations and inner classesWork with reflection, generics, and threadsTake advantage of the garbage collectorManage streams with the Stream APIWho This Book Is ForThose new to Java programming and continues the learning Java journey; it is recommended that you read an introductory Java programming book first, such as Beginning Java Fundamentals, from Apress.

Mastering Linux Shell Scripting: A practical guide to Linux command-line, Bash scripting, and Shell programming


Mokhtar Ebrahim - 2018
    

Introduction to Computer Graphics


David J. Eck - 2018
    A reader should have substantial experience with at least one programming language, including some knowledge of object-oriented programming and data structures. Everyone taking the course at my college will have had at least two semesters of programming, and most will have additional experience beyond that. Students here have studied the Java programming language, but the book should also be accessible to people with background in other languages. Examples in the book use Java, C, and JavaScript. The essential features of those languages are covered in an appendix. Many of the sample programs for this book are actually Web pages meant to be viewed in a Web browser. The Web version of this book includes interactive demo programs that are integrated into the Web pages that make up the book. The sample programs and demos use HTML canvas graphics (in Chapter 2) or WebGL (in later chapters). Canvas graphics should work well in almost any modern browser. WebGL is a newer technology and is more problematic. It is implemented in modern desktop browsers, including Internet Explorer 11, Chrome, Firefox, and Safari. It also runs in many browsers on newer mobile devices. However, each of those browsers have had some problems with some of my programs on some machines. Firefox and Chrome seem to work most consistently. I wish I could be more definite than that, but the reality of WebGL at this point is that you might have to look for a combination of computer and browser that will work for you.

Applied Analytics through Case Studies Using SAS and R: Implementing Predictive Models and Machine Learning Techniques


Deepti Gupta - 2018
      This book is ideal for those who are well-versed in writing code and have a basic understanding of statistics, but have limited experience in implementing predictive models and machine learning techniques for analyzing real world data.  The most challenging part of solving industrial business problems is the practical and hands-on knowledge of building and deploying advanced predictive models and machine learning algorithms.  Applied Analytics through Case Studies Using SAS and R is your answer to solving these business problems by sharpening your analytical skills.  What You'll Learn   Understand analytics and basic data concepts  Use an analytical approach to solve Industrial business problems  Build predictive model with machine learning techniques Create and apply analytical strategies Who This Book Is For Data scientists, developers, statisticians, engineers, and research students with a great theoretical understanding of data and statistics who would like to enhance their skills by getting practical exposure in data modeling.

Beginning C# 7 Programming with Visual Studio 2017


Benjamin Perkins - 2018
    Whether you’re new to programming entirely, or just new to C#, there has never been a better time to get started. The new C# 7 and Visual Studio 2017 updates feature a number of new tools and features that streamline the workflow, simplify the code, and make it easier than ever to build high-quality apps. This book walks you through everything you need to know, starting from the very basics, to have you programming in no time. You’ll learn about variables, flow control, and object oriented programming, then move into Web and Windows programming as well as databases and XML. The companion website provides downloadable code examples, and practical Try It Out sections provide explicit, step-by-step instructions for writing your own useful, customizable code. C# 7 can be used to build Windows applications, program Windows 10, and write Web apps when used alongside ASP.NET. With programming skills becoming de rigueur in fields far beyond the tech world, C# 7 is a great place to start building versatile, helpful skills. This book gets you started quickly and easily with instruction from a master-team of C# programmers. Learn how to program using the world’s leading programming language Build smarter, faster apps using the latest features in C# 7 and Visual Studio 2017 Find and fix bugs sooner, saving headaches down the line Integrate with all .NET Core, Azure applications, cloud services, Docker containers, and more The world of programming can seem intimidating to a beginner, and the prospect of learning a whole new “language” can seem daunting. Beginning C# 7 Programming with Visual Studio 2017 demystifies the process and shows you how to bring your ideas to life.

What is Applied Category Theory?


Tai-Danae Bradley - 2018
    So what is applied category theory?Read on.

Python for Offensive PenTest: A practical guide to ethical hacking and penetration testing using Python


Hussam Khrais - 2018
    Plenty of open source hacking tools are written in Python, which can be easily integrated within your script.This book is packed with step-by-step instructions and working examples to make you a skilled penetration tester. It is divided into clear bite-sized chunks, so you can learn at your own pace and focus on the areas of most interest to you. This book will teach you how to code a reverse shell and build an anonymous shell. You will also learn how to hack passwords and perform a privilege escalation on Windows with practical examples. You will set up your own virtual hacking environment in VirtualBox, which will help you run multiple operating systems for your testing environment.By the end of this book, you will have learned how to code your own scripts and mastered ethical hacking from scratch. What you will learn Code your own reverse shell (TCP and HTTP) Create your own anonymous shell by interacting with Twitter, Google Forms, and SourceForge Replicate Metasploit features and build an advanced shell Hack passwords using multiple techniques (API hooking, keyloggers, and clipboard hijacking) Exfiltrate data from your target Add encryption (AES, RSA, and XOR) to your shell to learn how cryptography is being abused by malware Discover privilege escalation on Windows with practical examples Countermeasures against most attacks Who this book is for This book is for ethical hackers; penetration testers; students preparing for OSCP, OSCE, GPEN, GXPN, and CEH; information security professionals; cybersecurity consultants; system and network security administrators; and programmers who are keen on learning all about penetration testing. Table of Contents Warming up - Your First Anti-Virus Free Persistence Shell Advanced Scriptable Shell Passwords Hacking Catch Me If You Can! Miscellaneous Fun in Windows Abuse of cryptography by malware

Thinking-Driven Testing: The Most Reasonable Approach to Quality Control


Adam Roman - 2018
    It thus approaches software testing from a different perspective than in past literature, as the vast majority of books describe testing in the context of specific tools, automation, documentation, particular test design techniques or test management. In addition, the book proposes a novel meta-approach for designing effective test strategies, which is based on recent advances in psychology, economics, system sciences and logic. Chapter 1 starts by introducing the fundamental ideas underlying software testing. Chapter 2 then describes meta-strategies in software testing, i.e. general approaches that can be adapted to many different situations that a software tester encounters. Next, Chapter 3 presents the concept of Thinking-Driven Testing (TDT). This approach utilizes the concepts discussed in the two previous chapters and introduces the main ideas that underlie a reasonable and optimal approach to software testing. Chapter 4 builds on this basis and proposes a specific approach to testing, called TQED, that makes it possible to increase creativity in the context of delivering effective, optimal test ideas. Chapter 5 provides an overview of different types of testing techniques in order to understand the fundamental concepts of test design, while Chapter 6 details various pitfalls a tester may encounter and that can originate from a wide range of testing process areas. Lastly, Chapter 7 puts all this into practice, as it contains several exercises that will help testers develop a number of crucial skills: logical thinking and reasoning, thinking out of the box, creativity, counting and estimating, and analytical thinking. By promoting critical, rational and creative thinking, this book invites readers to re-examine common assumptions regarding software testing and shows them how to become professional testers who bring added value to their company.

Mastering Geospatial Analysis with Python: Explore GIS processing and learn to work with GeoDjango, CARTOframes and MapboxGL-Jupyter


Silas Toms - 2018
    

A Guide to Convolutional Neural Networks for Computer Vision


Salman Khan - 2018
    Visual recognition tasks, such as image classification, localization, and detection, are the core building blocks of many of these applications, and recent developments in Convolutional Neural Networks (CNNs) have led to outstanding performance in these state-of-the-art visual recognition tasks and systems. As a result, CNNs now form the crux of deep learning algorithms in computer vision. This self-contained guide will benefit those who seek to both understand the theory behind CNNs and to gain hands-on experience on the application of CNNs in computer vision. It provides a comprehensive introduction to CNNs starting with the essential concepts behind neural networks: training, regularization, and optimization of CNNs. The book also discusses a wide range of loss functions, network layers, and popular CNN architectures, reviews the different techniques for the evaluation of CNNs, and presents some popular CNN tools and libraries that are commonly used in computer vision. Further, this text describes and discusses case studies that are related to the application of CNN in computer vision, including image classification, object detection, semantic segmentation, scene understanding, and image generation. This book is ideal for undergraduate and graduate students, as no prior background knowledge in the field is required to follow the material, as well as new researchers, developers, engineers, and practitioners who are interested in gaining a quick understanding of CNN models.

Solving Cyber Risk: Protecting Your Company and Society


Andrew Coburn - 2018
    Blending statistical data and cost information with research into the culture, psychology, and business models of the hacker community, this book provides business executives, policy-makers, and individuals with a deeper understanding of existing future threats, and an action plan for safeguarding their organizations. Key Risk Indicators reveal vulnerabilities based on organization type, IT infrastructure and existing security measures, while expert discussion from leading cyber risk specialists details practical, real-world methods of risk reduction and mitigation.By the nature of the business, your organization’s customer database is packed with highly sensitive information that is essentially hacker-bait, and even a minor flaw in security protocol could spell disaster. This book takes you deep into the cyber threat landscape to show you how to keep your data secure.* Understand who is carrying out cyber-attacks, and why* Identify your organization’s risk of attack and vulnerability to damage* Learn the most cost-effective risk reduction measures* Adopt a new cyber risk assessment and quantification framework based on techniques used by the insurance industryBy applying risk management principles to cyber security, non-technical leadership gains a greater understanding of the types of threat, level of threat, and level of investment needed to fortify the organization against attack. Just because you have not been hit does not mean your data is safe, and hackers rely on their targets’ complacence to help maximize their haul. Solving Cyber Risk gives you a concrete action plan for implementing top-notch preventative measures before you’re forced to implement damage control.

CMake Cookbook: Over 40 recipes enabling you to build, test, and package software for distribution using the CMake suite


Radovan Bast - 2018
     Deal with complex directory hierarchies and several libraries used by your applications with CMake. Learn to use the suite of CMake tools to build, test and package software for distribution. Book Description CMake is cross-platform and open-source software for managing the build process of software using a compiler independent method. The book will be an exhaustive compilation of recipes showcasing the tips and techniques you need to keep in mind while working with CMake. It teaches you to work with the CMake build system, CTest, CPack, CDas to drive the native tools maintaining a common specification. Our book will include real-world examples in the form of recipes to show different ways to support complex directory hierarchies. The book includes everything right from installing CMake to getting you up and running with it. Pick and choose the idea you want for your daily usage and make your file management easier with CMake. It will cover topics such as command-line tools, GUI tools, creating static & shared libraries, working with external libraries, running tests and much more. Towards the end you will be well-equipped to generate native build scripts for a range of platforms. We can also look at covering the visualization toolkit for 3D graphics and visualization systems. What you will learn How to increase portability of your code Learn how to split a code monolith into modules with the help of CMake Building multi-language projects Know where and how to tweak CMake configuration files written by somebody else Detecting operating system, processor, libraries, files, and programs for conditional compilation Creating Python packages which compile sources under the hood Who This Book Is For The book is targeted for software developers who wants to learn to manage the build system using CMake. Some prior Knowledge of C++ and MakeFiles is required. About the Author Radovan Bast: is employed in Tromsø (Norway) as a senior engineer in the High Performance Computing Group at UiT The Arctic University of Norway and contributes to advanced user and application support, code optimization and parallelization, and holds a 50 % position at the Nordic e-Infrastructure Collaboration where he leads the CodeRefinery project. He has a PhD in theoretical chemistry and as code developer is contributing to a number of quantum chemistry programs. He enjoys learning new programming languages and approaches, and to teach programming to scientists.Roberto Di Remigio: Roberto is a postdoc in theoretical chemistry at the University of Tromsø, Norway. His current research project is on continuum solvation models. He is a developer of PCMSolver, an application programming interface offering the polarizable continuum model functionality to quantum chemistry codes. He contributes or has contributed to the development of popular quantum chemistry codes:DIRAC, DALTON, LSDALTON, Psi4 and ReSpect. He is interested in programming. He usually programs in C++ and Fortran.

Advanced Node.js Development: Master Node.js by building real-world applications


Andrew Mead - 2018
    

Hands-On Predictive Analytics with Python: Master the complete predictive analytics process, from problem definition to model deployment


Álvaro Fuentes - 2018
    

Guide to Competitive Programming: Learning and Improving Algorithms Through Contests


Antti Laaksonen - 2018
    The text highlights how competitive programming has proven to be an excellent way to learn algorithms, by encouraging the design of algorithms that actually work, stimulating the improvement of programming and debugging skills, and reinforcing the type of thinking required to solve problems in a competitive setting. The book contains many "folklore" algorithm design tricks that are known by experienced competitive programmers, yet which have previously only been formally discussed in online forums and blog posts.Topics and features: reviews the features of the C++ programming language, and describes how to create efficient algorithms that can quickly process large data sets; discusses sorting algorithms and binary search, and examines a selection of data structures of the C++ standard library; introduces the algorithm design technique of dynamic programming, and investigates elementary graph algorithms; covers such advanced algorithm design topics as bit-parallelism and amortized analysis, and presents a focus on efficiently processing array range queries; surveys specialized algorithms for trees, and discusses the mathematical topics that are relevant in competitive programming; examines advanced graph techniques, geometric algorithms, and string techniques; describes a selection of more advanced topics, including square root algorithms and dynamic programming optimization.This easy-to-follow guide is an ideal reference for all students wishing to learn algorithms, and practice for programming contests. Knowledge of the basics of programming is assumed, but previous background in algorithm design or programming contests is not necessary. Due to the broad range of topics covered at various levels of difficulty, this book is suitable for both beginners and more experienced readers.

Learn Qt 5: Build modern, responsive cross-platform desktop applications with Qt, C++, and QML


Nicholas Sherriff - 2018
    It has a rich history in the Linux world, is widely used in embedded devices, and has made great strides in the Mobile arena over the past few years. However, in the Microsoft Windows and Apple Mac OS X worlds, the dominance of C#/.NET and Objective-C/Cocoa means that Qt is often overlooked. This book demonstrates the power and flexibility of the Qt framework for desktop application development and shows how you can write your application once and deploy it to multiple operating systems. Build a complete real-world line of business (LOB) solution from scratch, with distinct C++ library, QML user interface, and QtTest-driven unit-test projects. This is a suite of essential techniques that cover the core requirements for most LOB applications and will empower you to progress from a blank page to shipped application. What you will learn · Install and configure the Qt Framework and Qt Creator IDE · Create a new multi-project solution from scratch and control every aspect of it with QMake · Implement a rich user interface with QML · Learn the fundamentals of QtTest and how to integrate unit testing · Build self-aware data entities that can serialize themselves to and from JSON · Manage data persistence with SQLite and CRUD operations · Reach out to the internet and consume an RSS feed · Produce application packages for distribution to other users Who this book is for This book is for application developers who want a powerful and flexible framework to create modern, responsive applications on Microsoft Windows, Apple Mac OS X, and Linux desktop platforms. You should be comfortable with C++ but no prior knowledge of Qt or QML is required.