Best of
Software

2017

Kubernetes in Action


Marko Luksa - 2017
    Each layer in their application is decoupled from other layers so they can scale, update, and maintain them independently.Kubernetes in Action teaches developers how to use Kubernetes to deploy self-healing scalable distributed applications. By the end, readers will be able to build and deploy applications in a proper way to take full advantage of the Kubernetes platform.Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#


Scott Wlaschin - 2017
    Domain-driven design (DDD) combined with functional programming is the innovative combo that will get you there. In this pragmatic, down-to-earth guide, you'll see how applying the core principles of functional programming can result in software designs that model real-world requirements both elegantly and concisely - often more so than an object-oriented approach. Practical examples in the open-source F# functional language, and examples from familiar business domains, show you how to apply these techniques to build software that is business-focused, flexible, and high quality.Domain-driven design is a well-established approach to designing software that ensures that domain experts and developers work together effectively to create high-quality software. This book is the first to combine DDD with techniques from statically typed functional programming. This book is perfect for newcomers to DDD or functional programming - all the techniques you need will be introduced and explained.Model a complex domain accurately using the F# type system, creating compilable code that is also readable documentation---ensuring that the code and design never get out of sync. Encode business rules in the design so that you have "compile-time unit tests," and eliminate many potential bugs by making illegal states unrepresentable. Assemble a series of small, testable functions into a complete use case, and compose these individual scenarios into a large-scale design. Discover why the combination of functional programming and DDD leads naturally to service-oriented and hexagonal architectures. Finally, create a functional domain model that works with traditional databases, NoSQL, and event stores, and safely expose your domain via a website or API.Solve real problems by focusing on real-world requirements for your software.What You Need: The code in this book is designed to be run interactively on Windows, Mac and Linux.You will need a recent version of F# (4.0 or greater), and the appropriate .NET runtime for your platform.Full installation instructions for all platforms at fsharp.org.

Clean Architecture


Robert C. Martin - 2017
    "Uncle Bob" Martin shows how to bring greater professionalism and discipline to application architecture and design.As with his other books, Martin's Clean Architecture doesn't merely present multiple choices and options, and say "use your best judgment": it tells you what choices to make, and why those choices are critical to your success. Martin offers direct, no-nonsense answers to key architecture and design questions like:What are the best high level structures for different kinds of applications, including web, database, thick-client, console, and embedded apps?What are the core principles of software architecture?What is the role of the architect, and what is he/she really trying to achieve?What are the core principles of software design?How do designs and architectures go wrong, and what can you do about it?What are the disciplines and practices of professional architects and designers?Clean Architecture is essential reading for every software architect, systems analyst, system designer, and software manager — and for any programmer who aspires to these roles or is impacted by their work.

The Kubernetes Book: Version 2.2 - January 2018


Nigel Poulton - 2017
    Kubernetes has emerged as the hottest and most important container orchestration platform in the world. This book gets you up to speed fast, and it's constantly kept up-to-date!

The Road to React


Robin Wieruch - 2017
    This book uses the common sense of these roads and weaves it into the implementation of an attractive app. You will build a Hacker News React app. On the road you will learn ES6, React with all its basics and advanced concepts and internal state management.' to 'A lot of roadmaps exist on how to master React. This book uses the common sense of these roads and weaves it into the implementation of an attractive app. You will build a Hacker News React app. On the road you will learn ES6, React with all its basics and advanced concepts and internal state management. http://www.robinwieruch.de/the-road-t...

Two Scoops of Django 1.11: Best Practices for the Django Web Framework


Daniel Roy Greenfeld - 2017
    We have put thousands of hours into the fourth edition of the book, writing and revising its material to include significant improvements and new material based on feedback from previous editions.

Functional Programming in C#


Enrico Buonanno - 2017
    It allows us to write elegant, intention-revealing code, that shines in testability and support for concurrency. C# includes a number of functional features and libraries, enabling us to take advantage of these benefits.Functional Programming in C# teaches you to apply functional thinking to real-world scenarios. You’ll start by learning the principles of functional programming, and how they translate in the C# language. The book then dives into important topics like function composition, data flow, and principles for designing function signatures, types and collections. Through lots of real-world examples, you’ll acquire the tools to tackle programming tasks with a functional approach. The last part of the book deals with advanced topics, including lazy evaluation, stateful computations, asynchrony, and event streams. By the end of this book, you’ll be able to integrate functional techniques, making your C# programs robust and maintainable, and helping you become a more well-rounded developer.

C# 7.0 in a Nutshell: The Definitive Reference


Joseph Albahari - 2017
    Since its debut in 2000, C# has become a language of unusual flexibility and breadth, but its continual growth means there's always more to learn.Organized around concepts and use cases, this updated edition provides intermediate and advanced programmers with a concise map of C# and .NET knowledge. Dive in and discover why this Nutshell guide is considered the definitive reference on C#.Get up to speed on the C# language, from the basics of syntax and variables to advanced topics such as pointers, operator overloading, and dynamic bindingDig deep into LINQ via three chapters dedicated to the topicExplore concurrency and asynchrony, advanced threading, and parallel programmingWork with .NET features, including XML, regular expressions, networking, serialization, reflection, application domains, and securityDelve into Roslyn, the modular C# 7.0 compiler-as-a-service

.Net Microservices: Architecture for Containerized .Net Applications


César de la Torre - 2017
    It discusses architectural design and implementation approaches using .NET Core and Docker containers. To make it easier to get started with containers and microservices, the guide focuses on a reference containerized and microservice-based application that you can explore. The sample application is available at the eShopOnContainers GitHub repo.

Type-Driven Development with Idris


Edwin Brady - 2017
    This book teaches you with Idris, a language designed from the very beginning to support type-driven development. In this book, you’ll learn how to manipulate types just like any other construct (numbers, strings, lists, etc.). You’ll see how to use type-driven development to build real-world software, as well as how to handle side-effects, state and concurrency, and interoperating with existing systems. By the end of this book, you will be able to develop robust and verified software in Idris and apply type-driven development methods to programming in other languages.

Microservice Patterns


Chris Richardson - 2017
    However, successful applications have a habit of growing. Eventually the development team ends up in what is known as monolithic hell. All aspects of software development and deployment become painfully slow. The solution is to adopt the microservice architecture, which structures an application as a services, organized around business capabilities. This architecture accelerates software development and enables continuous delivery and deployment of complex software applications.Microservice Patterns teaches enterprise developers and architects how to build applications with the microservice architecture. Rather than simply advocating for the use the microservice architecture, this clearly-written guide takes a balanced, pragmatic approach. You'll discover that the microservice architecture is not a silver bullet and has both benefits and drawbacks. Along the way, you'll learn a pattern language that will enable you to solve the issues that arise when using the microservice architecture. This book also teaches you how to refactor a monolithic application to a microservice architecture.

OAuth 2 in Action


Justin Richer - 2017
    You'll learn how to confidently and securely build and deploy OAuth on both the client and server sides. Foreword by Ian Glazer.Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.About the TechnologyThink of OAuth 2 as the web version of a valet key. It is an HTTP-based security protocol that allows users of a service to enable applications to use that service on their behalf without handing over full control. And OAuth is used everywhere, from Facebook and Google, to startups and cloud services.About the BookOAuth 2 in Action teaches you practical use and deployment of OAuth 2 from the perspectives of a client, an authorization server, and a resource server. You'll begin with an overview of OAuth and its components and interactions. Next, you'll get hands-on and build an OAuth client, an authorization server, and a protected resource. Then you'll dig into tokens, dynamic client registration, and more advanced topics. By the end, you'll be able to confidently and securely build and deploy OAuth on both the client and server sides.What's InsideCovers OAuth 2 protocol and designAuthorization with OAuth 2OpenID Connect and User-Managed AccessImplementation risksJOSE, introspection, revocation, and registrationProtecting and accessing REST APIsAbout the ReaderReaders need basic programming skills and knowledge of HTTP and JSON.About the AuthorJustin Richer is a systems architect and software engineer. Antonio Sanso is a security software engineer and a security researcher. Both authors contribute to open standards and open source.Table of ContentsPart 1 - First stepsWhat is OAuth 2.0 and why should you care?The OAuth dance Part 2 - Building an OAuth 2 environmentBuilding a simple OAuth clientBuilding a simple OAuth protected resourceBuilding a simple OAuth authorization serverOAuth 2.0 in the real world Part 3 - OAuth 2 implementation and vulnerabilitiesCommon client vulnerabilitiesCommon protected resources vulnerabilitiesCommon authorization server vulnerabilitiesCommon OAuth token vulnerabilities Part 4 - Taking OAuth furtherOAuth tokensDynamic client registrationUser authentication with OAuth 2.0Protocols and profiles using OAuth 2.0Beyond bearer tokensSummary and conclusions

Concurrency in Go: Tools and Techniques for Developers


Katherine Cox-Buday - 2017
    If you're a developer familiar with Go, this practical book demonstrates best practices and patterns to help you incorporate concurrency into your systems.Author Katherine Cox-Buday takes you step-by-step through the process. You'll understand how Go chooses to model concurrency, what issues arise from this model, and how you can compose primitives within this model to solve problems. Learn the skills and tooling you need to confidently write and implement concurrent systems of any size.Understand how Go addresses fundamental problems that make concurrency difficult to do correctlyLearn the key differences between concurrency and parallelismDig into the syntax of Go's memory synchronization primitivesForm patterns with these primitives to write maintainable concurrent codeCompose patterns into a series of practices that enable you to write large, distributed systems that scaleLearn the sophistication behind goroutines and how Go's runtime stitches everything together

Functional-Light JavaScript: Pragmatic, Balanced FP in JavaScript


Kyle Simpson - 2017
     Functional Programming (FP) is an incredibly powerful paradigm for structuring code that yields more robust, verifiable, and readable programs. If you've ever tried to learn FP but struggled with terms like "monad", mathematical concepts like category theory, or symbols like λ, you're not alone. Functional-Light programming distills the most vital aspects of FP—function purity, value immutability, composition, and more!—down to approachable JavaScript patterns. Rather than the all-or-nothing dogmatism often encountered in FP, this book teaches you how to improve your programs line by line.

The BDD Books: Discovery


Gáspár Nagy - 2017
    This practical guide demonstrates good collaboration techniques, illustrated by concrete examples.This book is written for everyone involved in the specification and delivery of software (including product owners, business analysts, developers, and testers). The book starts by explaining the reasons BDD exists in the first place, and describes techniques for getting the most out of collaboration between technical and non-technical team members.

The Rails 5 Way


Obie Fernandez - 2017
    Obie Fernandez illuminates the entire Rails 5 API, its most powerful idioms, design approaches, and libraries. He presents new and updated content on Action Cable, RSpec 3.4, Turbolinks 5.0, the Attributes API, and many other enhancements, both major and subtle. Through detailed code examples, you'll dive deep into Ruby on Rails, discover why it's designed as it is, and learn to make it do exactly what you want. Proven in thousands of production systems, the knowledge in this book will maximize your productivity and help you build more successful solutions. Build powerful, scalable, REST-compliant back-end services Program complex program flows using Action Controller Represent models, relationships, and operations in Active Record, and apply advanced Active Record techniques Smoothly evolve database schema via Migrations Craft front-ends with ActionView and the Asset Pipeline Optimize performance and scalability with caching and Turbolinks 5.0 Improve your productivity using Haml HTML templating Secure your systems against attacks like SQL Injection, XSS, and XSRF Integrate email using Action Mailer Enable real-time, websockets-based browser behavior with Action Cable Improve responsiveness with background processing Build "API-only" back-end projects that speak JSON Leverage enhancements to Active Job, serialization, and Ajax support

Dynamic Programming for Coding Interviews: A Bottom-Up approach to problem solving


Meenakshi - 2017
    I wrote the rampant recursive function,int fib(int n){ return (1==n || 2==n) ? 1 : fib(n-1) + fib(n-2);}and waited for the result. I wait… and wait… and wait…With an 8GB RAM and an Intel i5 CPU, why is it taking so long? I terminated the process and tried computing the 40th term. It took about a second. I put a check and was shocked to find that the above recursive function was called 204,668,309 times while computing the 40th term. More than 200 million times? Is it reporting function calls or scam of some government?The Dynamic Programming solution computes 100th Fibonacci term in less than fraction of a second, with a single function call, taking linear time and constant extra memory.A recursive solution, usually, neither pass all test cases in a coding competition, nor does it impress the interviewer in an interview of company like Google, Microsoft, etc. The most difficult questions asked in competitions and interviews, are from dynamic programming. This book takes Dynamic Programming head-on. It first explain the concepts with simple examples and then deep dives into complex DP problems.

Chaos Engineering


Casey Rosenthal - 2017
    You’ll never be able to prevent all possible failure modes, but you can identify many of the weaknesses in your system before they’re triggered by these events. This report introduces you to Chaos Engineering, a method of experimenting on infrastructure that lets you expose weaknesses before they become a real problem.Members of the Netflix team that developed Chaos Engineering explain how to apply these principles to your own system. By introducing controlled experiments, you’ll learn how emergent behavior from component interactions can cause your system to drift into an unsafe, chaotic state.- Hypothesize about steady state by collecting data on the health of the system- Vary real-world events by turning off a server to simulate regional failures- Run your experiments as close to the production environment as possible- Ramp up your experiment by automating it to run continuously- Minimize the effects of your experiments to keep from blowing everything up- Learn the process for designing chaos engineering experiments- Use the Chaos Maturity Model to map the state of your chaos program, including realistic goals

Adopting Elixir: From Concept to Production


Ben Marx - 2017
    See how Ben Marx and Bleacher Report maintain one of the highest-traffic Elixir applications by selling the concept to management and delivering on that promise. Find out how Bruce Tate and icanmakeitbetter hire and train Elixir engineers, and the techniques they've employed to design and ensure code consistency since Elixir's early days. Explore customer challenges in deploying and monitoring distributed applications with Jose Valim and Plataformatec. This book has all the information you need to take your application from concept to production.Adoption is more than programming. Elixir is an exciting new language, but to successfully get your application from start to finish, you're going to need to know more than just the language. The case studies and strategies in this book will get you there.Make a business case and build a team before you finish your first prototype. Once you're in development, form strategies for organizing your code and learning the constraints of the runtime and ecosystem. Convince stakeholders, both business and technical, about the value they can expect. Prepare to make the critical early decisions that will shape your application for years to come. Finally, manage your deployment with all of the knobs and gauges that good DevOps teams demand. Decide between the many options available for deployment, and how to best prepare yourself for the challenges of running a production application.This book picks up where most Elixir books let off. It won't teach you to program Elixir, or any of its tools. Instead, it guides you through the broader landscape and shows you a holistic approach to adopting the language.

Spring Microservices in Action


John Carnell - 2017
    Spring Boot and Spring Cloud offer Java developers an easy migration path from traditional monolithic Spring applications to microservice-based applications that can be deployed to multiple cloud platforms. The Spring Boot and Spring Cloud frameworks let you quickly build microservices that are ready to be deployed to a private corporate cloud or a public cloud like Amazon Web Services (AWS) or Pivotal’s CloudFoundry.Spring Microservices in Action teaches you how to use the Spring Boot and Spring Cloud frameworks to build and deploy microservice-based cloud applications. You'll begin with an introduction to the microservice pattern and how to build microservices with Spring Boot and Spring Cloud. Then you'll get hands-on and discover how to configure Spring Boot. Using lots of real-world examples, you'll learn topics like service discovery with Spring Cloud, Netflix Eureka, and Ribbon. Next, you'll find out how to handle potential problems using client-side resiliency patterns with Spring and Netflix Hystrix. This book also covers implementing a service gateway with Spring Cloud and Zuul and event processing in the cloud with Spring Cloud Stream. Finally, you'll learn to deploy and push your application to cloud services, including AWS and CloudFoundry. By the end of this book, you'll not only be able to build your own microservice-based applications, but how operationalize and scale your microservices so they can deployed to a private or public cloud.

Craft GraphQL APIs in Elixir with Absinthe: Flexible, Robust Services for Queries, Mutations, and Subscriptions


Bruce Williams - 2017
    Upgrade your web API to GraphQL, leveraging its flexible queries to empower your users, and its declarative structure to simplify your code. Absinthe is the GraphQL toolkit for Elixir, a functional programming language designed to enable massive concurrency atop robust application architectures. Written by the creators of Absinthe, this book will help you take full advantage of these two groundbreaking technologies. Build your own flexible, high-performance APIs using step-by-step guidance and expert advice you won't find anywhere else.GraphQL is a new way of structuring and building web services, and the result is transformational. Find out how to offer a more tailored, cohesive experience to your users, easily aggregate data from different data sources, and improve your back end's maintainability with Absinthe's declarative approach to defining how your API works.Build a GraphQL-based API from scratch using Absinthe, starting from core principles. Learn the type system and how to expand your schema to suit your application's needs. Discover a growing ecosystem of tools and utilities to understand, debug, and document your API. Take it to production, but do it safely with solid best practices in mind. Find out how complexity analysis and persisted queries can let you support your users flexibly, but responsibly too. Along the way, discover how Elixir makes all the difference for a high performance, fault-tolerant API. Use asynchronous and batching execution, or write your own custom add-ons to extend Absinthe. Go live with subscriptions, delivering data over websockets on top of Elixir (and Erlang/OTP's) famous solid performance and real-time capabilities.Transform your applications with the powerful combination of Elixir and GraphQL, using Absinthe.What You Need: To follow along with the book, you should have Erlang/OTP 19+ and Elixir 1.4+ installed. The book will guide you through setting up a new Phoenix application using Absinthe.

Kafka: The Definitive Guide: Real-Time Data and Stream Processing at Scale


Neha Narkhede - 2017
    And how to move all of this data becomes nearly as important as the data itself. If you� re an application architect, developer, or production engineer new to Apache Kafka, this practical guide shows you how to use this open source streaming platform to handle real-time data feeds.Engineers from Confluent and LinkedIn who are responsible for developing Kafka explain how to deploy production Kafka clusters, write reliable event-driven microservices, and build scalable stream-processing applications with this platform. Through detailed examples, you� ll learn Kafka� s design principles, reliability guarantees, key APIs, and architecture details, including the replication protocol, the controller, and the storage layer.Understand publish-subscribe messaging and how it fits in the big data ecosystem.Explore Kafka producers and consumers for writing and reading messagesUnderstand Kafka patterns and use-case requirements to ensure reliable data deliveryGet best practices for building data pipelines and applications with KafkaManage Kafka in production, and learn to perform monitoring, tuning, and maintenance tasksLearn the most critical metrics among Kafka� s operational measurementsExplore how Kafka� s stream delivery capabilities make it a perfect source for stream processing systems

Adobe Photoshop CC Classroom in a Book (2018 release)


Andrew Faulkner - 2017
    The 15 project-based lessons show key step-by-step techniques for working in Photoshop, including how to correct, enhance, and distort digital images, create image composites, and prepare images for print and the web. In addition to learning the essential elements of the Photoshop interface, this revised edition for the 2018 release covers features like search capabilities, Content-Aware Crop, Select and Mask, Face-Aware Liquify, designing with multiple artboards, creating and organizing enhanced brush presets, and much more! The online companion files include all the necessary assets for readers to complete the projects featured in each chapter as well as ebook updates when Adobe releases relevant new features for Creative Cloud customers. All buyers of the book get full access to the Web Edition: a Web-based version of the complete ebook enhanced with video and multiple-choice quizzes.

Analyzing Data with Power BI and Power Pivot for Excel (Business Skills)


Alberto Ferrari - 2017
    From Power BI to Power Pivot for Excel, Microsoft offers extremely powerful and accessible tools for modeling data. Now, for the first time, there's a complete guide to building exceptionally effective models using Microsoft's tools. World-renowned Microsoft data analytics experts Marco Russo and Alberto Ferrari introduce all the data modeling theory you'll need, and show how to apply it in the context of Microsoft's current and evolving products. Step by step, you'll learn how to transform simple tables into full analytical models of immense power. You'll master data modeling through a collection of realistic scenarios of increasing sophistication. For each, the authors start with a simple "naive" model that can't provide robust solutions. Next, they guide you to update and improve the model, so it can deliver the knowledge and insights you really need."

Functional Programming, Simplified: (Scala edition)


Alvin Alexander - 2017
    The lessons are presented in a logical sequence — the order in which the author learned them — culminating in advanced topics like functional domain modeling, and how to write and use monads. Some of the book’s lessons include: - A simple set of rules for functional programming in Scala - How and why to write pure functions and use immutable variables - Why function signatures in FP are *much* more important than method signatures in OOP - How pure functions work with I/O (file, database, and network) - How to read anonymous functions - Lessons on recursion, with many images to help explain how it works - How the concepts of JVM stacks and stack frames work - Partially-applied functions and currying - How using Option naturally leads to flatMap, and how flatMap naturally leads to for-comprehensions - How and why to use case classes and pattern matching - How to use monads like State and IO - How to use monad transformers like StateT - How (and why) to write your own monads - Domain modeling in functional programming - How to use “lenses” to update immutable data models - Concurrency lessons cover Akka actors and Scala futures - Visual lessons on collections’ methods like fold and reduce - How to use the ScalaCheck property-testing framework - How to write and use “type classes” - Algebraic Data Types (ADTs) are explained All told, the book contains 120 small chapters. Source code examples from the book are available as a series of Github repositories that you can download and work with.

Learn Functional Programming with Elixir: New Foundations for a New World


Ulisses Almeida - 2017
    No previous functional programming experience required! This book walks you through the right concepts at the right pace, as you explore immutable values and explicit data transformation, functions, modules, recursive functions, pattern matching, high-order functions, polymorphism, and failure handling, all while avoiding side effects. Don't board the Elixir train with an imperative mindset! To get the most out of functional languages, you need to think functionally. This book will get you there.Functional programming offers useful techniques for building maintainable and scalable software that solves today's difficult problems. The demand for software written in this way is increasing - you don't want to miss out. In this book, you'll not only learn Elixir and its features, you'll also learn the mindset required to program functionally. Elixir's clean syntax is excellent for exploring the critical skills of using functions and concurrency.Start with the basic techniques of the functional way: working with immutable data, transforming data in discrete steps, and avoiding side effects. Next, take a deep look at values, expressions, functions, and modules. Then extend your programming with pattern matching and flow control with case, if, cond, and functions. Use recursive functions to create iterations. Work with data types such as lists, tuples, and maps. Improve code reusability and readability with Elixir's most common high-order functions. Explore how to use lazy computation with streams, design your data, and take advantage of polymorphism with protocols. Combine functions and handle failures in a maintainable way using Elixir features and libraries.Learn techniques that matter to make code that lives harmoniously with the language.What You Need: You'll need a computer and Elixir 1.4 or newer version installed. No previous functional programming or Elixir experience is required. Some experience with any programming language is recommended.

Adobe Lightroom Classic CC Video Book


Tony Northrup - 2017
     Tony goes beyond teaching you how to use Lightroom. Tony shows you why and when to use each feature to create stunning, natural photos. When Lightroom isn't the best tool, Tony suggests better alternatives. Combining the benefits of video training and book learning, this video book gives you over 14 hours of video and dozens of free presets and raw images to practice with. If you learn better with video, watch the video training and refer to the book for quick reference. If you prefer reading, the book is concise and practical, and each chapter links to relevant videos when you want to understand a topic more deeply or see it used in the real world. Tony covers every aspect of Lightroom in-depth, but structures his teaching so that both beginner and advanced photographers can learn as efficiently as possible. If you just want a quick start, you can watch the first video or read the first chapter and you'll be organizing and editing your pictures in less than an hour. If you want to know more about a specific feature, switch to that video or jump to that chapter in the ebook. If you want to know everything about Lightroom, watch the videos and read the book from start to finish.

Begin to Code with Python


Rob Miles - 2017
    It's not just friendly and easy: it's the first Python beginner's guide that puts you in control of your own learning, and empowers you to build unique programs to solve problems you care about. Microsoft has completely reinvented the beginning programmer's tutorial, reflecting deep research into how today's beginners learn, and why other books fall short. Begin to Code with Python is packed with innovations, including its "Snaps" library of pre-built operations that are easy to combine your own unique programs, Cookie Cutter templates that give you a flying start, and "Make Something Happen" projects that help you build skills by creating your own programs, not programs someone else has handed you. Throughout, Begin to Code with Python balances playful exposition and illustration of programming fundamentals with your own creative input - and you'll never be more than a page or two away from making something unique and personal to you. It will help you... Understand the basics of coding, from simple data storage to more complex and useful programs Discover how Python works using the Visual Studio environment Master advanced techniques, including classes and object-based solutions design Extend your code with Python's powerful libraries Build web and cloud-based applications, as well as graphical user interfaces and games Test and debug your code with What can go wrong sections Understand the social aspects of professional development, and build career-ready skills from the start Whether you're a total beginner or you've tried before, Begin to Code with Python will put the power, excitement, and creativity of programming where it belongs: in your hands!

Mastering JavaScript Functional Programming: In-depth guide for writing robust and maintainable JavaScript code in ES8 and beyond


Federico Kereki - 2017
    Learning to use functional programming is a good way to write more concise code, with greater concurrency and performance. The JavaScript language is particularly suited to functional programming.This book provides comprehensive coverage of the major topics in functional programming with JavaScript to produce shorter, clearer, and testable programs.You'll delve into functional programming; including writing and testing pure functions, reducing side-effects, and other features to make your applications functional in nature.Specifically, we'll explore techniques to simplify coding, apply recursion for loopless coding, learn ways to achieve immutability, implement design patterns, and work with data types.By the end of this book, you'll have developed the JavaScript skills you need to program functional applications with confidence. What you will learn Create more reliable code with closures and immutable data Convert existing methods into pure functions, and loops into recursive methods Develop more powerful applications with currying and function composition Separate the logic of your system from implementation details Implement composition and chaining techniques to simplify coding Use functional programming techniques where it makes the most sense Table of Contents Becoming Functional - Several Questions Thinking Functionally - A First Example Starting Out with Functions - A Core Concept Behaving Properly - Pure Functions Programming Declaratively - A Better Style Producing Functions - Higher-Order Functions Transforming Functions - Currying and Partial Application Connecting Functions - Pipelining and Composition Designing Functions - Recursion Ensuring Purity - Immutability Implementing Design Patterns - The Functional Way Building Better Containers - Functional Data Types

Agile Application Security: Enabling Security in a Continuous Delivery Pipeline


Jim Bird - 2017
    And most security professionals aren't up to speed in their understanding and experience of agile development. To help bridge the divide between these two worlds, this practical guide introduces several security tools and techniques adapted specifically to integrate with agile development.Written by security experts and agile veterans, this book begins by introducing security principles to agile practitioners, and agile principles to security practitioners. The authors also reveal problems they encountered in their own experiences with agile security, and how they worked to solve them.You'll learn how to:Add security practices to each stage of your existing development lifecycleIntegrate security with planning, requirements, design, and at the code levelInclude security testing as part of your team's effort to deliver working software in each releaseImplement regulatory compliance in an agile or DevOps environmentBuild an effective security program through a culture of empathy, openness, transparency, and collaboration

Agile Extension to the BABOK Guide: Version 2


IIBA - 2017
    The Agile Extension provides guidance for Agile practitioners or anyone interested in leveraging effective Agile business analysis to create better business outcomes that add real business and customer value

Reasoning with Data: An Introduction to Traditional and Bayesian Statistics Using R


Jeffrey M. Stanton - 2017
    It provides step-by-step guidance for using both classical (frequentist) and Bayesian approaches to inference. Statistical techniques covered side by side from both frequentist and Bayesian approaches include hypothesis testing, replication, analysis of variance, calculation of effect sizes, regression, time series analysis, and more. Students also get a complete introduction to the open-source R programming language and its key packages. Throughout the text, simple commands in R demonstrate essential data analysis skills using real-data examples. The companion website provides annotated R code for the book's examples, in-class exercises, supplemental reading lists, and links to online videos, interactive materials, and other resources.   Pedagogical Features *Playful, conversational style and gradual approach; suitable for students without strong math backgrounds. *End-of-chapter exercises based on real data supplied in the free R package. *Technical explanation and equation/output boxes. *Appendices on how to install R and work with the sample datasets.

Rails 5 Test Prescriptions: Build a Healthy Codebase


Noel Rappin - 2017
    You'll use Rails 5.1, Minitest 5, and RSpec 3.6, as well as popular testing libraries such as factory_girl and Cucumber. Updates include Rails 5.1 system tests and Webpack integration. Do what the doctor ordered to make your applications feel all better. Side effects may include better code, fewer bugs, and happier developers.Your Ruby on Rails application is sick. Deadlines are looming, but every time you make the slightest change to the code, something else breaks. Nobody remembers what that tricky piece of code was supposed to do, and nobody can tell what it actually does. Plus, it has bugs. You need test-driven development: a process for improving the design, maintainability, and long-term viability of software.With both practical code examples and discussion of why testing works, this book starts with the most basic features delivered as part of core Ruby on Rails. Once you've integrated those features into your coding practice, work with popular third-party testing tools such as RSpec, Jasmine, Cucumber, and factory_girl. Test the component parts of a Rails application, including the back-end model logic and the front-end display logic. With Rails examples, use testing to enable your code to respond better to future change. Plus, see how to handle real-world testing situations.This new edition has been updated to Rails 5.1 and RSpec 3.6 and contains full coverage of new Rails features, including system tests and the Webpack-based JavaScript setup.What You Need: Ruby 2.4, Rails 5.1

Coding Machines


Lawrence Kesteloot - 2017
    A bug in a programmer’s computer program leads him and his co-workers through an investigation down the stack to a frightening realisation about trust and reality.

Mastering React Native


Eric Masiello - 2017
    In particular, this book is especially useful for front-end developers who want to use their current skillset to build mobile applications. An existing working knowledge of JavaScript will help you get the most out of this book. What You Will Learn - Implement native React Native components and APIs - Explore React's JSX syntax - Manage data using Redux and Redux middleware - Build applications with React Native on both iOS and Android platforms - Perform animations in your applications using the animation APIs - Understand routing and Navigator comparison - Create your own Native module In Detail React Native has completely revolutionized mobile development by empowering JavaScript developers to build world-class mobile apps that run natively on mobile platforms. This book will show you how to apply JavaScript and other front-end skills to build cross-platform React Native applications for iOS and Android using a single codebase. This book will provide you with all the React Native building blocks necessary to become an expert. We'll give you a brief explanation of the numerous native components and APIs that come bundled with React Native including Images, Views, ListViews, WebViews, and much more. You will learn to utilize form inputs in React Native. You'll get an overview of Facebook's Flux data architecture and then apply Redux to manage data with a remote API. You will also learn to animate different parts of your application, as well as routing using React Native's navigation APIs. By the end of the book, you will be able to build cutting-edge applications using the React Native framework. Style and approach This comprehensive guide will take your React Native skills to the next level. It shows you how to develop a clear workflow to build scalable applications, and how to implement the architectural concepts covered to build applications that shine in the real world.

A Practical Guide to Testing in DevOps


Katrina Clokie - 2017
    What does testing look like in an environment with automated build and deployment pipelines? How does appetite for risk change once a product can be tested in production? Who should testers look to connect with across the organisation and how can they work together effectively to delivery quality software?This book offers direction and advice relevant to anyone involved in testing in a DevOps environment.

On Java 8


Bruce Eckel - 2017
    For beginners, web sites like Code.org and Khan Academy can provide at least some of that background, along with the Thinking in C seminar freely available at the OnJava8 Site. Services like YouTube, blogs and StackOverflow have made finding answers ridiculously easy compared to just a few years ago when we relied on print media. Combine these with perseverance, and you can use this book as your first programming text. It’s also intended for professional programmers who want to expand their knowledge.

Mastering the C++17 STL


Arthur O'Dwyer - 2017
    About This Book - Boost your productivity as a C++ developer with the latest features of C++17 - Develop high-quality, fast, and portable applications with the varied features of the STL - Migrate from older versions (C++11, C++14) to C++17 Who This Book Is For This book is for developers who would like to master the C++ STL and make full use of its components. Prior C++ knowledge is assumed. What You Will Learn - Make your own iterator types, allocators, and thread pools. - Master every standard container and every standard algorithm. - Improve your code by replacing new/delete with smart pointers. - Understand the difference between monomorphic algorithms, polymorphic algorithms, and generic algorithms. - Learn the meaning and applications of vocabulary type, product type and sum type. In Detail Modern C++ has come a long way since 2011. The latest update, C++17, has just been ratified and several implementations are on the way. This book is your guide to the C++ standard library, including the very latest C++17 features. The book starts by exploring the C++ Standard Template Library in depth. You will learn the key differences between classical polymorphism and generic programming, the foundation of the STL. You will also learn how to use the various algorithms and containers in the STL to suit your programming needs. The next module delves into the tools of modern C++. Here you will learn about algebraic types such as std:: optional, vocabulary types such as std:: function, smart pointers, and synchronization primitives such as std:: atomic and std:: mutex. In the final module, you will learn about C++'s support for regular expressions and file I/O. By the end of the book you will be proficient in using the C++17 standard library to implement real programs, and you'll have gained a solid understanding of the library's own internals. Style and approach This book takes a concise but comprehensive approach to explaining and applying the C++ STL, one feature at a time.

Mastering Machine Learning with Spark 2.x


Alex Tellez - 2017
    We assume that you already know the machine learning concepts and algorithms and have Spark up and running (whether on a cluster or locally) and have a basic knowledge of the various libraries contained in Spark. What You Will Learn Use Spark streams to cluster tweets online Run the PageRank algorithm to compute user influence Perform complex manipulation of DataFrames using Spark Define Spark pipelines to compose individual data transformations Utilize generated models for off-line/on-line prediction Transfer the learning from an ensemble to a simpler Neural Network Understand basic graph properties and important graph operations Use GraphFrames, an extension of DataFrames to graphs, to study graphs using an elegant query language Use K-means algorithm to cluster movie reviews dataset In Detail The purpose of machine learning is to build systems that learn from data. Being able to understand trends and patterns in complex data is critical to success; it is one of the key strategies to unlock growth in the challenging contemporary marketplace today. With the meteoric rise of machine learning, developers are now keen on finding out how can they make their Spark applications smarter.This book gives you access to transform data into actionable knowledge. The book commences by defining machine learning primitives by the MLlib and H2O libraries. You will learn how to use Binary classification to detect the Higgs Boson particle in the huge amount of data produced by CERN particle collider and classify daily health activities using ensemble Methods for Multi-Class Classification.Next, you will solve a typical regression problem involving flight delay predictions and write sophisticated Spark pipelines. You will analyze Twitter data with help of the doc2vec algorithm and K-means clustering. Finally, you will build different pattern mining models using MLlib, perform complex manipulation of DataFrames using Spark and Spark SQL, and deploy your app in a Spark streaming environment. Style and approach This book takes a practical approach to help you get to grips with using Spark for analytics and to implement machine learning algorithms. We'll teach you about advanced applications of machine learning through illustrative examples. These examples will equip you to harness the potential of machine learning, through Spark, in a variety of enterprise-grade systems.

Threat Level Red: Cybersecurity Research Programs of the U.S. Government


Michael Erbschloe - 2017
    Much of this research will be transferred to the private sector to aid in product development and the improvement of protective measures against cyber warfare attacks. This research is not widely publicized. There are initiatives to coordinate these research efforts but there has never been a published comprehensive analysis of the content and direction of the numerous research programs. This book provides private sector developers, investors, and security planners with insight into the direction of the U.S. Government research efforts on cybersecurity.

C# 7.0 in a Nutshell: The Definitive Reference


Ben Albahari - 2017
    Since its debut in 2000, C# has become a language of unusual flexibility and breadth, but its continual growth means there’s always more to learn. Organized around concepts and use cases, this updated edition provides intermediate and advanced programmers with a concise map of C# and .NET knowledge. Dive in and discover why this Nutshell guide is considered the definitive reference on C#. Get up to speed on the C# language, from the basics of syntax and variables to advanced topics such as pointers, operator overloading, and dynamic binding Dig deep into LINQ via three chapters dedicated to the topic Explore concurrency and asynchrony, advanced threading, and parallel programming Work with .NET features, including XML, regular expressions, networking, serialization, reflection, application domains, and security Delve into Roslyn, the modular C# 7.0 compiler-as-a-service

Adobe Photoshop Lightroom CC 2018 Classic Introduction Quick Reference Guide (Cheat Sheet of Instructions, Tips & Shortcuts - Laminated Card)


Beezix Inc. - 2017
    

Versioning in an Event Sourced System


Greg Young - 2017
    I will never do a big bang release again. What scares me is not what happens if the release does not work, but what happens if it does not work and yet still appears to.Most developers, even those working through big bang releases, have dealt with the versioning of software before. For example, they write SQL migration scripts to convert the old schema to the new one. But have you ever written SQL migration scripts to convert from the new schema with data added to it back to the old schema without losing information? What happens if, later, you get a catastrophic failure on the new release?On teams I have worked with in the past, you got your choice: the fireman helmet or the cowboy hat. In other words, the fireman helmet means if you are working on a production issue, people know not bother you unless they have something material to your issue. I highly recommend this, as at least you get to keep a smile on your face while you are working live in production. To be fair, who wouldn’t want to wear a fireman helmet at work?In modern systems, however, this is not acceptable. The days of maintenance windows and big bang releases are over. Instead, we now focus on releasing parts of software, and often end up wanting to run multiple versions of software side by side. We can no longer update every consumer when a producer is released. We are forced to deal with versioning issues. We are forced to deal with 24/7/365 operations.There are many forces pushing us in this direction. We could talk about the move towards SOA/MicroServices, Continuous Deployment, core ideas from the business side, lossed opportunities and reputational risk.Many of the strategies discussed apply to messaging systems in general. Event Sourced systems also face these kinds of versioning issues in a unique way, as they represent an append-only model. A projection, for instance, needs to be able to read an event that was written two years ago, even though use-cases may have changed.What happens when you have mistakenly written an event in production? If we are to say an event is immutable and the model is append-only, many complications arise.Over the years, I have met many developers who run into issues dealing with versioning, particularly in Event Sourced systems. This seems odd to me. As we will discuss, Event Sourced systems are in fact easier to version than structural data in most instances, as long as you know the patterns for how to version, where they apply, and the trade-offs between the options.

Unity 2017 Game Optimization: Optimize All Aspects of Unity Performance


Chris Dickinson - 2017
    Familiarity with the C# language will be needed. What You Will Learn Use the Unity Profiler to find bottlenecks anywhere in your application, and discover how to resolve them Implement best practices for C# scripting to avoid common pitfalls Develop a solid understanding of the rendering pipeline, and maximize its performance by reducing draw calls and avoiding fill rate bottlenecks Enhance shaders in a way that is accessible to most developers, optimizing them through subtle yet effective performance tweaks Keep your scenes as dynamic as possible by making the most of the Physics engine Organize, filter, and compress your art assets to maximize performance while maintaining high quality Discover different kinds of performance problems that are critical for VR projects and how to tackle them Use the Mono Framework and C# to implement low-level enhancements that maximize memory usage and avoid garbage collection Get to know the best practices for project organization to save time through an improved workflow In Detail Unity is an awesome game development engine. Through its massive feature-set and ease-of-use, Unity helps put some of the best processing and rendering technology in the hands of hobbyists and professionals alike.This book shows you how to make your games fly with the recent version of Unity 2017, and demonstrates that high performance does not need to be limited to games with the biggest teams and budgets.Since nothing turns gamers away from a game faster than a poor user-experience, the book starts by explaining how to use the Unity Profiler to detect problems. You will learn how to use stopwatches, timers and logging methods to diagnose the problem. You will then explore techniques to improve performance through better programming practices.Moving on, you will then learn about Unity's built-in batching processes; when they can be used to improve performance, and their limitations. Next, you will import your art assets using minimal space, CPU and memory at runtime, and discover some underused features and approaches for managing asset data. You will also improve graphics, particle system and shader performance with a series of tips and tricks to make the most of GPU parallel processing.You will then delve into the fundamental layers of the Unity3D engine to discuss some issues that may be difficult to understand without a strong knowledge of its inner-workings. The book also introduces you to the critical performance problems for VR projects and how to tackle them.By the end of the book, you will have learned to improve the development workflow by properly organizing assets and ways to instantiate assets as quickly and waste-free as possible via object pooling.

IOS Animations by Tutorials Fourth Edition: IOS 11 and Swift 4 Edition


raywenderlich.com Team - 2017
    Springs: Make your animations bounce with realistic spring behavior. Transitions: Add subtle transitoins when you add or remove subviews. Keyframe Animations: Learn how to make complex animations with precise multi-stage timing. Animation and Auto Layout: Learn how to animate with Auto Layout by animating constraints. Layer Animations: Dive deeper and use layer animation for more advanced techniques. Shapes and Masks: Learn how to use shapes and layer masks for cool effects. Gradient Animations: Make moving gradients like the "slide to unlock" screen. Stroke and Path Animations: Animate lines moving over time along a path. 3D Animations: Rotate, translate, and scale your layers over time in three dimensions. And much more, including: Particle emitters, frame animations, third party animation libraries, and more!

SurviveJS - Webpack: From apprentice to master


Juho Vepsäläinen - 2017
    "SurviveJS - Webpack" is meant for beginner to intermediate users of the tool wanting to understand webpack better. You will develop a complex configuration in the book tutorial while covering different facets of webpack. In addition, the 45 short chapters and seven appendices work as a reference. Even though the book has been designed around webpack, many of the techniques covered go beyond it. You will learn to improve the quality of your code while becoming aware of optimization techniques that help you to deliver more performant web applications. The book was developed in collaboration with the webpack community, and its structure has evolved accordingly. A third of royalties go to Tobias Koppers, the author of the tool. The writer is a core developer of webpack so by purchasing this book you will support the effort in multiple ways. The content has been split as below: * Foreword by Tobias Koppers, the author of webpack * Preface by Juho Vepsäläinen, the author of the book and a core developer of webpack * What is Webpack? - Learn what makes webpack tick * Developing - Set up a development environment on top of webpack * Styling - Load and manage styles while learning about topics like autoprefixing and eliminating unused CSS * Loading Assets - Load different asset types and process them * Building - Write initial build with webpack and learn techniques like bundle and code splitting * Optimizing - Learn to optimize the build results by minifying, tree shaking, and other techniques * Output - Understand webpack's output formats * Techniques - Learn specific techniques related to topics such as testing * Packages - Consume and author npm packages with webpack * Extending - Extend webpack with loaders and plugins * Conclusion - Recap core techniques * Appendices - Learn how webpack compares with other tools, how to push ESLint further, how to set up Hot Module Replacement, troubleshoot webpack Testimonials: * After weeks failing at configuring webpack, I stumbled upon SurviveJS book while looking for yet another tutorial. Since that day, it has been my go-to resource for every single webpack question I ever had. - Clément Paris, Front-end engineer * Brilliant! A must have if you want to to learn webpack but also if need an updated reference guide. I always use it as a reference guide when I develop. - Andrea Chiumenti, CEO, Red Software Systems * Before I worked through the SurviveJS webpack book, my own webpack config, cobbled together from random code on the Internet, was a mystery to me. Afterwards, I have route-splitting and parallel-loading superpowers. - Gavin Doughtie, Senior Software Engineer, Google * Webpack is powerful but configuring it can be painful. Same goes with React. There are so many ways of configuring React with asset compilation, minification etc that it is easy to get lost. This book provides practical tips on how to proceed. - Neeraj Singh, Founder, Big Binary * This guide was a great starter in taming the Wild West of ESNext-era JavaScript development. Its beauty comes from its commitment to not skipping the fundamentals in favor of a fast demo, but making sure you're understanding what you're doing as you bootstrap your next JavaScript-based UI project. - Aaron Harris, Software Engineer * This guide is a great way to get started with webpack or improve your existing skills. After a detailed introduction, you'll start working on a webpack project that provides all you need to push your app to production. Highly recommended.

The Anatomy of Domain-Driven Design


Scott Millett - 2017
    Aimed at those who are new to the practice and need an overview of the patterns, principles and practices of Domain-Driven Design.The goal of Domain-Driven Design is not to simply produce better software but to enable better business outcomes. DDD is deceptively simple. Fundamentally DDD is about minimising the cost of translation from problem domain to software solution.

Mastering PostgreSQL in Application Development


Dimitri Fontaine - 2017
    The book addresses specifically the PostgreSQL RDBMS and answers practical questions every developer is confronted with when using PostgreSQL.You will learn best practices that help with integrating SQL into your own workflow, and through the many examples provided, you’ll see all the reasons why you might be interested in doing more in SQL. Primarily, it means writing fewer lines of code.

Practical Programming: An Introduction to Computer Science Using Python 3.6


Paul Gries - 2017
    Learn about design, algorithms, testing, and debugging. Discover the fundamentals of programming with Python 3.6--a language that's used in millions of devices. Write programs to solve real-world problems, and come away with everything you need to produce quality code. This edition has been updated to use the new language features in Python 3.6.No programming experience required! Incremental examples show you the steps and missteps that happen while developing programs, so you know what to expect when you tackle a problem on your own. Inspired by "How to Design Programs" (HtDP), discover a five-step recipe for designing functions, which helps you learn the concepts--and becomes an integral part of writing programs.In this detailed introduction to Python and to computer programming, find out exactly what happens when your programs are executed. Work with numbers, text, big data sets, and files using real-world examples. Create and use your own data types. Make your programs reliable, work with databases, download data from the web automatically, and build user interfaces. As you use the fundamental programming tools in this book, you'll see how to document and organize your code so that you and other programmers can more easily read and understand it. This new edition takes advantage of Python 3.6's new features, including type annotations on parameters, return types and variable declarations, and changes to string formatting.Most importantly, you'll learn how to think like a professional programmer.What You Need:You'll need to download Python 3.6, available from https://python.org.With that download comes IDLE, the editor we use for writing andrunning Python programs. (If you use Linux, you may need to installPython 3.6 and IDLE separately.)

Android System Programming: Porting, customizing, and debugging Android HAL


Roger Ye - 2017
    The developers need to use various techniques to debug the different components in the target devices. With all the challenges, you usually have a deep learning curve to master relevant knowledge in this area. This book will not only give you the key knowledge you need to understand Android system programming, but will also prepare you as you get hands-on with projects and gain debugging skills that you can use in your future projects.You will start by exploring the basic setup of AOSP, and building and testing an emulator image. In the first project, you will learn how to customize and extend the Android emulator. Then you'll move on to the real challenge—building your own Android system on VirtualBox. You'll see how to debug the init process, resolve the bootloader issue, and enable various hardware interfaces. When you have a complete system, you will learn how to patch and upgrade it through recovery. Throughout the book, you will get to know useful tips on how to integrate and reuse existing open source projects such as LineageOS (CyanogenMod), Android-x86, Xposed, and GApps in your own system. What you will learn Set up the Android development environment and organize source code repositories Get acquainted with the Android system architecture Build the Android emulator from the AOSP source tree Find out how to enable WiFi in the Android emulator Debug the boot up process using a customized Ramdisk Port your Android system to a new platform using VirtualBox Find out what recovery is and see how to enable it in the AOSP build Prepare and test OTA packages About the Author Roger Ye has worked in the area of embedded system programming for more than 10 years. He has worked on system programming for mobile devices, home gateways, and telecommunication systems for various companies, such as Motorola, Emerson, and Intersil.Most recently, he has worked as an engineering manager, leading a team of Android engineers to develop mobile security applications at Intel Security. With extensive knowledge and experience in the areas of embedded systems and mobile device development, he published a book called Embedded Programming with Android, Addison-Wesley, in 2015. Table of Contents Introduction to Android System Programming Setting up the Development Environment Discovering Kernel, HAL and Virtual Hardware Customizing the Android Emulator Enabling ARM Translator and Introducing Native Bridge Debugging the Boot up Process Using a Customized Ramdisk Enabling Wi-Fi in the Android Emulator Creating Your Own Device on VirtualBox Booting Up x86vbox Using PXE/NFS Enabling Graphics Enabling VirtualBox-Specific Hardware Interfaces Introducing Recovery Creating OTA Packages Customizing and Debugging Recovery

Operating Systems: From 0 to 1


Do Hoang Tu - 2017
    Hence the title, 0 to 1.After completing this book, at the very least you will learn:How to write an operating system from scratch by reading hardware datasheets. In the real world, it works like that. You won't be able to consult Google for a quick answer.A big picture of how each layer of a computer is related to the other, from hardware to software.Write code independently. It's pointless to copy and paste code. Real learning happens when you solve problems on your own. Some examples are given to kick start, but most problems are yours to conquer. However, the solutions are available online for you to examine after giving it a good try.Linux as a development environment and how to use common tools for low-level programming.x86 assembly in-depth.How a program is structured so that an operating system can run.How to debug a program running directly on hardware with gdb and QEMU.Linking and loading on bare metal x86_64, with pure C. No standard library. No runtime overhead.https://github.com/tuhdo/os01

Computer Science Distilled: Learn the Art of Solving Computational Problems


Wladston Ferreira Filho - 2017
    Designed for readers who don't need the academic formality, it's a fast and easy computer science guide. It teaches essential concepts for people who want to program computers effectively. First, it introduces discrete mathematics, then it exposes the most common algorithms and data structures. It also shows the principles that make computers and programming languages work.

The Road to React with Firebase


Robin Wieruch - 2017
    The book dives into the combination of both libraries and implements with you a web application along the way with authentication and a realtime database.

The Adobe Photoshop Lightroom Classic CC Book: Plus an Introduction to the New Adobe Photoshop Lightroom CC Across Desktop, Web, and Mobile


Martin Evening - 2017
    In this completely updated bestseller, author Martin Evening describes Lightroom Classic CC features in detail, covering library organization, develop image processing, output modules, and the latest Lightroom CC/mobile features. As an established commercial and landscape photographer, Martin knows firsthand what photographers need for an efficient workflow. He has been working with Lightroom from the beginning, and as a result, knows the software inside and out. In this book, he'll teach you how to: - Work efficiently with images shot in raw or JPEG formats - Import photographs with ease and sort them according to your workflow - Create and manage a personal image and video library - Integrate Lightroom with Adobe Photoshop - Prepare images for print, slideshows, or to create a book - Make the most of new features, such as the ability to migrate and sync photos via the cloud Photographers will find Lightroom Classic CC-and The Adobe Photoshop Lightroom Classic CC Book-indispensable tools in their digital darkrooms. "With Martin's expert guidance, you'll soon find that you have precisely the tools you need to turn your concentration back where it belongs--on making better pictures!" --George Jardine, digital photography consultant "As a photographer himself, Martin Evening knows what tools photographers need to realize their creative vision. In this book, he shows not only how Adobe Photoshop Lightroom works but also why it will become an essential part of any photographer's workflow." --Greg Gorman, photographer

Machine Learning with Tensorflow 1.X


Quan Hua - 2017
    The book is also for software developers who wish to learn deep learning by example. Particular focus is placed on solving commercial deep learning problems from several industries using TensorFlow's unique features. No commercial domain knowledge is required, but familiarity with Python and matrix math is expected.What You Will LearnExplore how to use different machine learning models to ask different questions of your dataLearn how to build deep neural networks using TensorFlow 1.xCover key tasks such as clustering, sentiment analysis, and regression analysis using TensorFlow 1.xFind out how to write clean and elegant Python code that will optimize the strength of your algorithmsDiscover how to embed your machine learning model in a web application for increased accessibilityLearn how to use multiple GPUs for faster training using AWSIn DetailGoogle's TensorFlow is a game changer in the world of machine learning. It has made machine learning faster, simpler, and more accessible than ever before. This book will teach you how to easily get started with machine learning using the power of Python and TensorFlow 1.x.Firstly, you'll cover the basic installation procedure and explore the capabilities of TensorFlow 1.x. This is followed by training and running the first classifier, and coverage of the unique features of the library including data ?ow graphs, training, and the visualization of performance with TensorBoard-all within an example-rich context using problems from multiple industries. You'll be able to further explore text and image analysis, and be introduced to CNN models and their setup in TensorFlow 1.x. Next, you'll implement a complete real-life production system from training to serving a deep learning model. As you advance you'll learn about Amazon Web Services (AWS) and create a deep neural network to solve a video action recognition problem. Lastly, you'll convert the Caffe model to TensorFlow and be introduced to the high-level TensorFlow library, TensorFlow-Slim.By the end of this book, you will be geared up to take on any challenges of implementing TensorFlow 1.x in your machine learning environment.

Beginning Swift Games Development for IOS: Develop 2D and 3D Games Using Apple's Scenekit and Spritekit


James Goodwill - 2017
    By the end of the book, you'll have experience with all the important SpriteKit topics and have a fully functional game as a result. In Part 2, you'll learn 3D game development using Apple's SceneKit framework and the Swift programming language, following the same pattern used for Part 1.Game apps are one of the most popular categories in the Apple iTunes App Store. In response, James Goodwill and Wesley Matlock bring you Beginning Swift Games Development for iOS, Third Edition an update to their best-selling work. After reading and using this book, you'll have the skills and the code to build your first 2D and then 3D game app that you can run on any iOS-enabled device.What you'll learnDiscover what's in the new Swift 3 programming language Apply Swift 3 to iOS 10 and 9 game development Build a 2D game app using SpriteKit and Swift Build a 3D game from 2D using SceneKit and Swift Who this book is foriOS app developers new to Swift or for those thinking of trying iOS game app development for the very first time.

Dan Gookin's Guide to Ncurses Programming


Dan Gookin - 2017
    This tutorial covers all the basics, from configuring Ncurses to coding multi-window, full-screen applications for the text mode, terminal window. You must have a foundation in C programming and be familiar with the terminal shell, such as bash. This book has all the information and entertainment you'd expect from a Gookin book. From the author and creator of the original For Dummies title, "DOS For Dummies," as well as multitudinous other books, including "Beginning Programming With C For Dummies."

Mastering Concurrency Programming with Java 9


Javier Fernández González - 2017
    Java 9 includes a comprehensive API with lots of ready-to-use components to implement powerful concurrency applications in an easy way, but with a high flexibility to adapt these components to your needs.The book starts with a full description of design principles of concurrent applications and how to parallelize a sequential algorithm. You will then be introduced to Threads and Runnables, which are an integral part of Java 9's concurrency API. You will see how to use all the components of the Java Concurrency API from basics to the most advanced techniques and will implement them in real-world powerful concurrency applications.We use real-world examples of complex algorithms related to machine learning, data mining, natural language processing, and more. You will also get acquainted with the data structures and synchronization utilities to avoid data-race conditions and other critical problems. We also explain reactive streams and how they help in asynchronous stream processing.Finally, the book ends with a detailed description of the tools and techniques you can use to test a Java concurrent application, along with a brief insight into other concurrency mechanisms in JVM. What you will learn Master the principles that every concurrent application must follow See how to parallelize a sequential algorithm to obtain better performance without data inconsistencies and deadlocks Get the most from the Java Concurrency API components Separate the thread management from the rest of the application with the Executor component Execute phased-based tasks in an efficient way with the Phaser components Solve problems using a parallelized version of the divide and conquer paradigm with the Fork / Join framework Find out how to use parallel Streams and Reactive Streams (a new feature of Java 9) Implement the “map and reduce” and “map and collect” programming models Control the concurrent data structures and synchronization mechanisms provided by the Java Concurrency API Implement efficient solutions for some actual problems such as data mining, machine learning, and more About the Author Javier Fernández González is a software architect with almost 15 years' experience with Java technologies. He has worked as a teacher, researcher, programmer, analyst, writer, and now as an architect in all types of projects related to Java, especially J2EE.As a teacher, he has taught over 1,000 hours of training on basic Java, J2EE, and the Struts framework. As a researcher, he has worked in the field of information retrieval, developing applications in order to process large amounts of data in Java and has been part of several journal articles and conference presentations as a coauthor. In recent years, he has worked on developing J2EE web applications for various clients from different sectors (public administration, insurance, healthcare, transportation, and so on).

Microservices for everyone


Matthias Noback - 2017
    Amongst many things, you'll learn about asynchronous integration, independent deployability, continuous delivery, and immediate versus eventual consistency.If you keep this book within reach, you should be able to safely navigate the daunting, yet wonderful world of microservices. Besides the basics, this book contains many references to further reading material.

Expert Delphi


Pawel Glowacki - 2017
    It enables building natively compiled, blazingly fast apps for all major platforms including Android, iOS, Windows, Mac, and Linux.If you want to build server-side applications, create web services, and have clear GUIs for your project, then this book is for you.The book begins with a basic primer on Delphi helping you get accustomed to the IDE and the Object Pascal language and will then quickly move on to advanced-level concepts. Through this book, we’ll help you understand the architecture of applications and will teach you the important concepts of the FireMonkey library, show you how to build server-side services, and enable you to interact with the Internet of Things. Towards the end, you will learn to integrate your app with various web services and deploy them.By the end of the book, you will be able to build powerful, cross-platform, native apps for iOS and Android with a single code base.

Software Development, Design and Coding: With Patterns, Debugging, Unit Testing, and Refactoring


John F Dooley - 2017
    This book introduces you to software engineering -- from the application of engineering principles to the development of software. You'll see how to run a software development project, examine the different phases of a project, and learn how to design and implement programs that solve specific problems. It's also about code construction -- how to write great programs and make them work. Whether you're new to programming or have written hundreds of applications, in this book you'll re-examine what you already do, and you'll investigate ways to improve. Using the Java language, you'll look deeply into coding standards, debugging, unit testing, modularity, and other characteristics of good programs. With Software Development, Design and Coding, author and professor John Dooley distills his years of teaching and development experience to demonstrate practical techniques for great coding.What You'll LearnReview modern agile methodologies including Scrum and Lean programmingLeverage the capabilities of modern computer systems with parallel programmingWork with design patterns to exploit application development best practicesUse modern tools for development, collaboration, and source code controlsWho This Book Is For Early career software developers, or upper-level students in software engineering courses

3D User Interfaces: Theory and Practice


Joseph J. Laviola Jr. - 2017
    But simply using 3D input or displays isn't enough: 3D interfaces must be carefully designed for optimal user experience. 3D User Interfaces: Theory and Practice, Second Edition is today's most comprehensive primary reference to building state-of-the-art 3D user interfaces and interactions. Five pioneering researchers and practitioners cover the full spectrum of emerging applications, techniques, and best practices. The authors combine theoretical foundations, analysis of leading devices, and empirically validated design guidelines. This edition adds two new chapters on human factors and general human-computer interaction--indispensable foundational knowledge for building any 3D user interface. It also demonstrates advanced concepts at work through two running case studies: a first-person VR game and a mobile augmented reality application.Coverage Includes3D user interfaces: evolution, elements, and roadmaps Key applications: virtual and augmented reality (VR, AR), mobile/wearable devices What 3D UI designers should know about human sensory systems and cognition ergonomics How proven human-computer interaction techniques apply to 3D UIs 3D UI output hardware for visual, auditory, and haptic/ tactile systems Obtaining 3D position, orientation, and motion data for users in physical space 3D object selection and manipulation Navigation and wayfinding techniques for moving through virtual and physical spaces Changing application state with system control techniques, issuing commands, and enabling other forms of user input Strategies for choosing, developing, and evaluating 3D user interfaces Utilizing 2D, "magic," "natural," multimodal, and two-handed interaction The future of 3D user interfaces: open research problems and emerging technologies

Agile UX Storytelling: Crafting Stories for Better Software Development


Rebecca Baker - 2017
    Through lessons and examples, Agile UX Storytelling demonstrates to product owners, customers, scrum masters, software developers, and designers how to craft stories to facilitate communication, identify problems and patterns, refine collaborative understanding, accelerate delivery, and communicate the business value of deliverables. Rebecca Baker applies the techniques of storytelling to all facets of the software development lifecycle--planning, requirements gathering, internal and external communication, design, and testing--and shows how to use stories to improve the delivery process.What You'll Learn Craft stories to facilitate communication within the project team and with stakeholdersLeverage stories to identify problems and patterns, accelerate delivery, and communicate business valueApply storytelling techniques to all stages of the SDLCMarshal user stories to focus requirements gathering and ensure a consistent messageWho This Book Is ForAll SDLC and UX roles: product owners, customers, scrum masters, software developers, and UX designers

Docker Orchestration


Randall Smith - 2017
    You will be shown how to build multi-container applications using Docker Compose. You will also be introduced to the building blocks for multi-host Docker clusters such as registry, overlay networks, and shared storage using practical examples.This book gives an overview of core tools such as Docker Machine, Swarm, and Compose which will enhance your orchestration skills. You'll learn how to set up a swarm using the decentralized building block. Next, you'll be shown how to make the most out of the in-built orchestration feature of Docker engine and you'll use third-party tools such as Kubernetes, Mesosphere, and CoreOS to orchestrate your existing process. Finally, you will learn to deploy cluster hosts on cloud services and automate your infrastructure. What you will learn Build scalable, reliable services with Docker See how to manage a service in Docker using Docker Swarm, Kubernetes, and Mesosphere Discover simpler orchestration tools such as CoreOS/Fleet and Rancher Cattle Understand cluster-wide logging, system monitoring, and troubleshooting Build, test, and deploy containers using Continuous Integration Deploy cluster hosts on cloud services and automate your infrastructure About the Author Randall Smith is a senior systems administrator at Adams State University. He has been administering Windows, Linux, and BSD systems since 1999.He has been active in helping other sysadmins solve problems online and off. He has presented at the Colorado Higher Ed Computing Organization and Educause conferences on topics including Linux KVM and Ceph.In his spare time, Randall streams Let's Play gaming videos at Music Free Gaming on YouTube and Twitch. Table of Contents Getting Started with Docker Orchestration Building Multi-Container Applications with Docker Compose Cluster Building Blocks – Registry, Overlay Networks, and Shared Storage Orchestration with Docker Swarm Deploying and Managing Services with Kubernetes Working with Mesosphere Using Simpler Orchestration Tools – Fleet and Cattle Monitoring Your Cluster Using Continuous Integration to Build, Test, and Deploy Containers Why Stop at Containers? Automating Your Infrastructure

30 Days To Your First Freelance Programming Client: Step-by-step guide to finding your first client


Zack Burt - 2017
    If you don't already know how to code, start elsewhere. This is a step-by-step guide, updated for 2017 best practices, on finding your first freelance job as a developer, programmer, coder, software developer or software engineer – for the purposes of the book, it's all the same thing. This book provides you with a 30 day plan, where each day you make a substantial step forward to finding your first client. I guarantee that if you do not find a programming client within 30 days of faithfully executing this plan, I will personally refund your money (my contact information is in the book; details of the deal are in the book as well) within two years of original purchase. Introduction: How To Use This Book Day 1: Update LinkedIn Day 2: Build A Blog Day 3: Craigslist Resumes Day 4: Find Meetup Groups Day 5: Hacker News Day 6: Hired Day 7: Toptal Day 8: Gun.io Day 9: Set up a blog Day 10: Dream Client List Day 11: Make a Twitter Day 12: Write a blog article. Day 13: Twitter engagement Day 14: IRC Day 15: LinkedIn content marketing Day 16: Make a YouTube Video Day 17: More Blogging, with syndication checklist Day 18: Craigslist Market Rotation Day 19: Blog Content Day Day 20: Blog Research Day! Day 21: Guest Post Outreach Day 22: Portfolio Day Day 23: Blog Content Day 24: Blog Content Day 25: Blog Content Day 26: Find Your Following On Twitter Day 27: Craigslist Gigs Hunting Day 28: Quora Day 29: StackOverflow Day 30: Meetup Talks Appendix A: Slack Appendix B: Code For Cash Appendix C: Acknowledgments Appendix D: Table of Contents Appendix E: Money-Back Guarantee Appendix F: Contact Information Appendix G: Websites and Continuing Education

Electron: From Beginner to Pro: Learn to Build Cross Platform Desktop Applications using Github's Electron


Chris Griffith - 2017
    Learn how to combine the power of Node.js and Chromium to provide a powerful development platform for creating web applications that break free from the browser. Electron: From Beginner to Pro guides you through the capabilities that you have available to create desktop applications. Learn to use features like file system access, create native menus, OS-specific dialogs and more. The authors will show you how to package your application for distribution for multiple platforms and enable auto-updating.What You Will Learn Leverage your knowledge of HTML, CSS and JavaScript Use current web applications for the desktop Create and use Electron’s main process and render process to create effective desktop applications Communicate between processes and between windows Build desktop applications that can be updated and distributed Who This Book Is ForWeb developers looking to leverage their HTML, CSS and JavaScript skills to create desktop widgets and applications. Developers wanting to leverage existing a Web application to extend functionality with a desktop application.

Timeless Laws of Software Development


Jerry Fitzpatrick - 2017
    It doesn't have to be that way! The laws described in this book apply to all programming languages, software frameworks and development methodologies. Yet these fundamental laws are routinely violated by most projects. Good intentions and wishful thinking do not impart quality. Neither do software principles and practices if you have the fundamentals wrong. This book is not just for novices. Regardless of your experience level, the laws and techniques in this book will change your view of software development forever.

Hibernate Tips: More than 70 solutions to common Hibernate problems


Thorben Janssen - 2017
    Real-world applications often require advanced mappings, complex queries, custom data types and caching. Hibernate can do all of that. You just have to know which annotations and APIs you need to use. Hibernate Tips - More than 70 solutions to common Hibernate problems shows you how to efficiently implement your persistence layer with Hibernate's basic and advanced features. Each Hibernate Tip consists of one or more code samples and an easy to follow step-by-step explanation. You can also download an example project with executable test cases for each Hibernate Tip. Throughout this book, you will get more than 70 ready-to-use solutions that show you how to: Define standard mappings for basic attributes and entity associations. Implement your own attribute mappings and support custom data types. Use Hibernate's Java 8 support and other proprietary features. Read data from the database with JPQL, Criteria API, and native SQL queries. Call stored procedures and database functions. This book is for developers who are already working with Hibernate and who are looking for solutions for their current development tasks. It’s not a book for beginners who are looking for extensive descriptions of Hibernate's general concepts. The tips are designed as self-contained recipes which provide a specific solution and can be accessed when needed. Most of them contain links to related tips which you can follow if you want to dive deeper into a topic or need a slightly different solution. There is no need to read the tips in a specific order. Feel free to read the book from cover to cover or to just pick the tips that help you in your current project.

React Design Patterns and Best Practices


Michele Bertoli - 2017
    What You Will Learn - Write clean and maintainable code - Create reusable components applying consolidated techniques - Use React effectively in the browser and node - Choose the right styling approach according to the needs of the applications - Use server-side rendering to make applications load faster - Build high-performing applications by optimizing components In Detail Taking a complete journey through the most valuable design patterns in React, this book demonstrates how to apply design patterns and best practices in real-life situations, whether that's for new or already existing projects. It will help you to make your applications more flexible, perform better, and easier to maintain - giving your workflow a huge boost when it comes to speed without reducing quality. We'll begin by understanding the internals of React before gradually moving on to writing clean and maintainable code. We'll build components that are reusable across the application, structure applications, and create forms that actually work. Then we'll style React components and optimize them to make applications faster and more responsive. Finally, we'll write tests effectively and you'll learn how to contribute to React and its ecosystem. By the end of the book, you'll be saved from a lot of trial and error and developmental headaches, and you will be on the road to becoming a React expert. Style and approach The design patterns in the book are explained using real-world, step-by-step examples. For each design pattern, there are hints about when to use it and when to look for something more suitable. This book can also be used as a practical guide, showing you how to leverage design patterns.

Neural Network Programming with Java


Fabio M. Soares - 2017
    

The Hacker's Guide to Scaling Python


Julien Danjou - 2017
    But how do you make those applications scale for thousands of users and requests? It takes years of practice, research, trial and errors to build experience and knowledge along the way. Simple questions such as "How do I make my code faster?" or "How do I make sure there is no bottleneck?" cost hours to find good answers. Without enough background on the topic, you'll never be sure that any answer you'll come up with will be correct. The Hacker's Guide to Scaling Python will help you solve that by providing guidelines, tips and best practice. Adding a few interview of experts on the subject, you will learn how you can distribute your Python application so it is able to process thousands of requests.

Hands-On Android UI Development


Jason Morris - 2017
    This book will show you not just how to code great UIs, but how to design them as well. It will take novice Android developers on a journey, showing them how to leverage the Android platform to produce stunning Android applications.Begin with the basics of creating Android applications and then move on to topics such as screen and layout design. Next, learn about techniques that will help improve performance for your application. Also, explore how to create reactive applications that are fast, animated, and guide the user toward their goals with minimal distraction.Understand Android architecture components and learn how to build your application to automatically respond to changes made by the user. Great platforms are not always enough, so this book also focuses on creating custom components, layout managers, and 2D graphics. Also, explore many tips and best practices to ease your UI development process.By the end, you'll be able to design and build not only amazing UIs, but also systems that provide the best possible user experience.

Building Web Apps with Spring 5 and Angular


Ajitesh Shukla - 2017
    

React Native By Example: Native mobile development with React


Richard Kho - 2017
    Developers now have the luxury to create incredible mobile experiences that look and feel native to their platforms with the comfort of a well-known language and the popular React.js library.This book will show you how to build your own native mobile applications for the iOS and Android platforms while leveraging the finesse and simplicity of JavaScript and React.Throughout the book you will build three projects, each of increasing complexity. You will also link up with the third-party Facebook SDK, convert an app to support the Redux architecture, and learn the process involved in making your apps available for sale on the iOS App Store and Google Play.At the end of this book, you will have learned and implemented a wide breadth of core APIs and components found in the React Native framework that are necessary in creating great mobile experiences. What you will learn How to create mobile-performant iOS and Android apps using JavaScript and React The potential of each API and component, putting them into practice throughout the course of three projects The process of integrating the Facebook SDK to build an app that connects to third-party data Every step taken to implement Redux, a popular state management library, in your mobile apps The requirements for building and deploying your apps to market, with detailed instructions on how to release and beta test apps on both the Apple App Store and Google Play About the Author Richard Kho is a software engineer living in San Francisco. He taught himself how to code in 2014 and has lived a past life as a photographer and cinematographer.He currently works for Capital One and has taught software engineers at Hack Reactor in the past. Richard is also a technical advisor to Code Chrysalis, an advanced software engineering immersive in Tokyo. Table of Contents First Project - Creating a Basic To-Do List App Advanced Functionality and Styling the To-Do List App Our Second Project - The Budgeting App Advanced Functionality with the Expenses App Third Project - The Facebook Client Advanced Facebook App Functionality Redux Deploying Your Applications Additional React Native Components