Best of
Software

2019

Unit Testing: Principles, Practices, and Patterns


Vladimir Khorikov - 2019
    You’ll learn to spot which tests are performing, which need refactoring, and which need to be deleted entirely! Upgrade your testing suite with new testing styles, good patterns, and reliable automated testing.

Clean Agile: Back to Basics


Robert C. Martin - 2019
    Martin ("Uncle Bob") reintroduces agile values and principles for a new generation of software developers. In this eagerly-awaited book, the best-selling author of The Clean Coder shows how to bring unprecedented levels of professionalism and discipline to agile development -- and thereby write far more effective, successful software. As with his other books, Martin's Clean Agile: Back to Basics 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. Writing in the agile context, Martin offers direct, no-nonsense answers to crucial questions like:How and why did Agile begin? What are the costs and benefits of Agile? What are the most effective practices of Agile Development? How should an Agile team be organized? What roles do programmers, testers, and managers play in an Agile team? What is the role of the Agile Coach? What about Agile for large projects? What kinds of projects benefit from Agile? Clean Agile: Back to Basics is essential reading for programmers, managers, testers, project managers and every software professional called upon to lead or participate in an agile project.

Monolith to Microservices: Sustaining Productivity While Detangling the System


Sam Newman - 2019
    You'll learn several tried and tested patterns and techniques that you can use as you migrate your existing architecture.*Ideal for organizations looking to transition to microservices, rather than rebuild*Helps companies determine whether to migrate, when to migrate, and where to begin*Addresses communication, integration, and the migration of legacy systems*Discusses multiple migration patterns and where they apply*Provides database migration examples, along with synchronization strategies*Explores application decomposition, including several architectural refactoring patterns*Delves into details of database decomposition, including the impact of breaking referential and transactional integrity, new failure modes, and more

Get Your Hands Dirty on Clean Architecture: A hands-on guide to creating clean web applications with code examples in Java


Tom Hombergs - 2019
    

Terraform: Up & Running: Writing Infrastructure as Code


Yevgeniy Brikman - 2019
    This hands-on second edition, expanded and thoroughly updated for Terraform version 0.12 and beyond, shows you the fastest way to get up and running.Gruntwork cofounder Yevgeniy (Jim) Brikman walks you through code examples that demonstrate Terraform's simple, declarative programming language for deploying and managing infrastructure with a few commands. Veteran sysadmins, DevOps engineers, and novice developers will quickly go from Terraform basics to running a full stack that can support a massive amount of traffic and a large team of developers.Explore changes from Terraform 0.9 through 0.12, including backends, workspaces, and first-class expressionsLearn how to write production-grade Terraform modulesDive into manual and automated testing for Terraform codeCompare Terraform to Chef, Puppet, Ansible, CloudFormation, and Salt StackDeploy server clusters, load balancers, and databasesUse Terraform to manage the state of your infrastructureCreate reusable infrastructure with Terraform modulesUse advanced Terraform syntax to achieve zero-downtime deployment

Effective Python: 90 Specific Ways to Write Better Python (Effective Software Development Series)


Brett Slatkin - 2019
    However, Python’s unique strengths, charms, and expressiveness can be hard to grasp, and there are hidden pitfalls that can easily trip you up. This second edition of Effective Python will help you master a truly “Pythonic” approach to programming, harnessing Python’s full power to write exceptionally robust and well-performing code. Using the concise, scenario-driven style pioneered in Scott Meyers’ best-selling Effective C++, Brett Slatkin brings together 90 Python best practices, tips, and shortcuts, and explains them with realistic code examples so that you can embrace Python with confidence. Drawing on years of experience building Python infrastructure at Google, Slatkin uncovers little-known quirks and idioms that powerfully impact code behavior and performance. You’ll understand the best way to accomplish key tasks so you can write code that’s easier to understand, maintain, and improve. In addition to even more advice, this new edition substantially revises all items from the first edition to reflect how best practices have evolved. Key features include 30 new actionable guidelines for all major areas of Python Detailed explanations and examples of statements, expressions, and built-in types Best practices for writing functions that clarify intention, promote reuse, and avoid bugs Better techniques and idioms for using comprehensions and generator functions Coverage of how to accurately express behaviors with classes and interfaces Guidance on how to avoid pitfalls with metaclasses and dynamic attributes More efficient and clear approaches to concurrency and parallelism Solutions for optimizing and hardening to maximize performance and quality Techniques and built-in modules that aid in debugging and testing Tools and best practices for collaborative development   Effective Python will prepare growing programmers to make a big impact using Python.

Database Internals: A deep-dive into how distributed data systems work


Alex Petrov - 2019
    But with so many distributed databases and tools available today, it’s often difficult to understand what each one offers and how they differ. With this practical guide, Alex Petrov guides developers through the concepts behind modern database and storage engine internals.Throughout the book, you’ll explore relevant material gleaned from numerous books, papers, blog posts, and the source code of several open source databases. These resources are listed at the end of parts one and two. You’ll discover that the most significant distinctions among many modern databases reside in subsystems that determine how storage is organized and how data is distributed.This book examines:Storage engines: Explore storage classification and taxonomy, and dive into B-Tree-based and immutable log structured storage engines, with differences and use-cases for eachDistributed systems: Learn step-by-step how nodes and processes connect and build complex communication patterns, from UDP to reliable consensus protocolsDatabase clusters: Discover how to achieve consistent models for replicated data

Grokking Simplicity: Taming complex software with functional thinking


Eric Normand - 2019
    Grokking Simplicity is a friendly, practical guide that will change the way you approach software design and development. It introduces a unique approach to functional programming that explains why certain features of software are prone to complexity, and teaches you the functional techniques you can use to simplify these systems so that they’re easier to test and debug.

The Unicorn Project


Gene Kim - 2019
    In The Phoenix Project, Bill, an IT manager at Parts Unlimited, is tasked with a project critical to the future of the business, code named Phoenix Project. But the project is massively over budget and behind schedule. The CEO demands Bill fix the mess in ninety days or else Bill's entire department will be outsourced. In The Unicorn Project, we follow Maxine, a senior lead developer and architect, as she is exiled to the Phoenix Project, to the horror of her friends and colleagues, as punishment for contributing to a payroll outage. She tries to survive in what feels like a heartless and uncaring bureaucracy and to work within a system where no one can get anything done without endless committees, paperwork, and approvals. One day, she is approached by a ragtag bunch of misfits who say they want to overthrow the existing order, to liberate developers, to bring joy back to technology work, and to enable the business to win in a time of digital disruption. To her surprise, she finds herself drawn ever further into this movement, eventually becoming one of the leaders of the Rebellion, which puts her in the crosshairs of some familiar and very dangerous enemies. The Age of Software is here, and another mass extinction event looms--this is a story about "red shirt" developers and business leaders working together, racing against time to innovate, survive, and thrive in a time of unprecedented uncertainty...and opportunity.

Leading Quality: How Great Leaders Deliver High-Quality Software and Accelerate Growth


Ronald Cummings-John - 2019
    You will learn the techniques successful leaders use to make their strategic decisions and you will be given the tools to ensure that your team is in alignment to achieving common goals. Leading Quality is the first book that teaches why quality is important and how to incorporate it within the workspace. Praise for Leading Quality:   “A quality mindset remains key to differentiating your product and your company. Leading Quality offers key lessons to develop this mindset.” - Michael Lopp, author of Managing Humans and VP of Product Engineering at Slack “Leading Quality communicates just how important a focus on quality is within your company and is one of the few titles that actually teaches how to lead quality in a clear yet captivating manner.”  - Shesh Patel, Engineering Manager at The New York Times “Three elements define any successful product: quality, quality, and quality. Leading Quality is a comprehensive and practical guide to embedding quality into the DNA of any product organization.” - Nick Caldwell, CPO at Looker and former VP of Engineering at Reddit

Kubernetes Patterns: Reusable Elements for Designing Cloud-Native Applications


Bilgin Ibryam - 2019
    These modern architectures use new primitives that require a different set of practices than most developers, tech leads, and architects are accustomed to. With this focused guide, Bilgin Ibryam and Roland Huß from Red Hat provide common reusable elements, patterns, principles, and practices for designing and implementing cloud-native applications on Kubernetes.Each pattern includes a description of the problem and a proposed solution with Kubernetes specifics. Many patterns are also backed by concrete code examples. This book is ideal for developers already familiar with basic Kubernetes concepts who want to learn common cloud-native patterns.You'll learn about the following pattern categories:Foundational patterns cover the core principles and practices for building container-based cloud-native applications.Behavioral patterns explore finer-grained concepts for managing various types of container and platform interactions.Structural patterns help you organize containers within a pod, the atom of the Kubernetes platform.Configuration patterns provide insight into how application configurations can be handled in Kubernetes.Advanced patterns cover more advanced topics such as extending the platform with operators.

Object Design Style Guide


Matthias Noback - 2019
    Applying best practices for object design means that your code will be easy to read, write, and maintain. Object Design Style Guide captures dozens of techniques for creating pro-quality OO code that can stand the test of time. Examples are in an instantly-familiar pseudocode, teaching techniques you can apply to any OO language, from C++ to PHP.

Effective Kotlin


Marcin Moskala - 2019
    All of the best practices are presented as simple rules with detailed explanations.

C++ Crash Course


Josh Lospinoso - 2019
    Learn core language concepts, the C++ Standard Library, and the Boost Libraries.C++ is one of the most widely used languages for real-world software. Wherever performance matters, C++ is the de facto standard. It's the language behind operating systems, embedded devices, games, web browsers, and virtual reality systems. As a C++ developer, you can program efficient software on virtually any platform.C++ Crash Course cuts through the weeds to get you straight to the core of C++17, the current revision of the ISO standard. In Part I, you'll learn the essential core language features. Part II introduces you to the C++ Standard Library and Boost Libraries, where you'll learn about testing and mocking frameworks, containers, concurrency, and more. Part III contains extended examples that weave to-gether the lessons from Parts I and II.You'll learn all the major features of modern C++, including:- Fundamental types such as integers, floating point, characters, Booleans, bytes, voids, arrays, c-style strings and ASCII- The object lifecycle, including storage duration, memory management, static and thread-local variables, exceptions, call stacks, and the RAII (resource acquisition is initialization) paradigm- Compile-time polymorphism and generic programming with templates, including a discussion of the proposed C++20 feature "concepts" and the Origins Library- Smart pointers like scoped, unique, and shared pointer, data structures from the stdlib like op-tional, pair, tuple, and any, plus many from Boost Libraries such as Variant, Tribool, and CompressedPair

Cloud Native Patterns: Designing change-tolerant software


Cornelia Davis - 2019
    Cloud Native Patterns: Designing Change-tolerant Software is your guide to developing strong applications that thrive in the dynamic, distributed, virtual world of the cloud. This book presents a mental model for cloud-native applications, along with the patterns, practices, and tooling that sets them apart. In it, you'll find realistic examples and expert advice for working with apps, data, services, routing, and more.

Running Serverless


Gojko Adzic - 2019
    Lambda is Amazon’s engine for running event-driven functions, and SAM is an open-source toolkit that greatly simplifies deploying Lambda services. Together, they make it easy to create auto-scaling APIs and cloud services designed for serverless...

Property-Based Testing with PropEr, Erlang, and Elixir: Find Bugs Before Your Users Do


Fred Hebert - 2019
    By using the PropEr framework in both Erlang and Elixir, this book teaches you how to automatically generate test cases, test stateful programs, and change how you design your software for more principled and reliable approaches. You will be able to better explore the problem space, validate the assumptions you make when coming up with program behavior, and expose unexpected weaknesses in your design. PropEr will even show you how to reproduce the bugs it found. With this book, you will be writing efficient property-based tests in no time.Most tests only demonstrate that the code behaves how the developer expected it to behave, and therefore carry the same blind spots as their authors when special conditions or edge cases show up. Learn how to see things differently with property tests written in PropEr.Start with the basics of property tests, such as writing stateless properties, and using the default generators to generate test cases automatically. More importantly, learn how to think in properties. Improve your properties, write custom data generators, and discover what your code can or cannot do. Learn when to use property tests and when to stick with example tests with real-world sample projects. Explore various testing approaches to find the one that's best for your code. Shrink failing test cases to their simpler expression to highlight exactly what breaks in your code, and generate highly relevant data through targeted properties. Uncover the trickiest bugs you can think of with nearly no code at all with two special types of properties based on state transitions and finite state machines.Write Erlang and Elixir properties that generate the most effective tests you'll see, whether they are unit tests or complex integration and system tests.What You NeedBasic knowledge of Erlang, optionally ElixirFor Erlang tests: Erlang/OTP >= 20.0, with Rebar >= 3.4.0For Elixir tests: Erlang/OTP >= 20.0, Elixir >= 1.5.0

Mastering Distributed Tracing: Analyzing performance in microservices and complex systems


Yuri Shkuro - 2019
    Through practical exercises and code examples, you will learn how end-to-end tracing can be used as a powerful application performance management and comprehension tool. The rise of Internet-scale companies, like Google and Amazon, ushered in a new era of distributed systems operating on thousands of nodes across multiple data centers. Microservices increased that complexity, often exponentially. It is harder to debug these systems, track down failures, detect bottlenecks, or even simply understand what is going on. Distributed tracing focuses on solving these problems for complex distributed systems. Today, tracing standards have developed and we have much faster systems, making instrumentation less intrusive and data more valuable.Yuri Shkuro, the creator of Jaeger, a popular open-source distributed tracing system, delivers end-to-end coverage of the field in Mastering Distributed Tracing. Review the history and theoretical foundations of tracing; solve the data gathering problem through code instrumentation, with open standards like OpenTracing, W3C Trace Context, and OpenCensus; and discuss the benefits and applications of a distributed tracing infrastructure for understanding, and profiling, complex systems. What you will learn How to get started with using a distributed tracing system How to get the most value out of end-to-end tracing Learn about open standards in the space Learn about code instrumentation and operating a tracing infrastructure Learn where distributed tracing fits into microservices as a core function Who this book is for Any developer interested in testing large systems will find this book very revealing and in places, surprising. Every microservice architect and developer should have an insight into distributed tracing, and the book will help them on their way. System administrators with some development skills will also benefit. No particular programming language skills are required, although an ability to read Java, while non-essential, will help with the core chapters. Table of Contents Why Distributed Tracing Take Tracing for a HotROD ride Distributed Tracing Fundamentals Instrumentation Basics with OpenTracing Instrumentation of Asynchronous Applications Tracing Standards and Ecosystem Tracing with Service Mesh All About Sampling Turning the Lights On Distributed Context Propagation Integration with Metrics and Logs Gathering Insights with Data Mining Implementing Tracing in Large Organizations Under the Hood of a Distributed Tracing System

HTTP/2 in Action


Barry Pollard - 2019
    Because HTTP/2 has been designed to be easy to transition to, including keeping it backwards compatible, adoption is rapid and expected to increase over the next few years. Concentrating on practical matters, this interesting book presents key HTTP/2 concepts such as frames, streams, and multiplexing and explores how they affect the performance and behavior of your websites.ABOUT THE TECHNOLOGYHTTP—Hypertext Transfer Protocol—is the standard for exchanging messages between websites and browsers. And after 20 years, it's gotten a much-needed upgrade. With support for streams, server push, header compression, and prioritization, HTTP/2 delivers vast improvements in speed, security, and efficiency.about the bookABOUT THE BOOKHTTP/2 in Action teaches you everything you need to know to use HTTP/2 effectively. You'll learn how to optimize web performance with new features like frames, multiplexing, and push. You'll also explore real-world examples on advanced topics like flow control and dependencies. With ready-to-implement tips and best practices, this practical guide is sure to get you—and your websites—up to speed!WHAT'S INSIDE* HTTP/2 for web developers* Upgrading and troubleshooting* Real-world examples and case studies* QUIC and HTTP/3ABOUT THE READERWritten for web developers and site administrators.ABOUT THE AUTHORBarry Pollard is a professional developer with two decades of experience developing, supporting, and tuning software and infrastructure.

Google BigQuery: The Definitive Guide: Data Warehousing, Analytics, and Machine Learning at Scale


Valliappa Lakshmanan - 2019
    This practical book is the canonical reference to Google BigQuery, the query engine that lets you conduct interactive analysis of large datasets. BigQuery enables enterprises to efficiently store, query, ingest, and learn from their data in a convenient framework. With this book, you'll examine how to analyze data at scale to derive insights from large datasets efficiently.Valliappa Lakshmanan, tech lead for Google Cloud Platform, and Jordan Tigani, engineering director for the BigQuery team, provide best practices for modern data warehousing within an autoscaled, serverless public cloud. Whether you want to explore parts of BigQuery you're not familiar with or prefer to focus on specific tasks, this reference is indispensable.

Optics By Example


Chris Penner - 2019
    Examples in Haskell, but adaptable to other languages.Become a data-manipulation wizard using optics to manipulate data!This book takes you from beginner to advanced using Lenses, Traversals, Prisms, and more!

DevOps Paradox: The truth about DevOps by the people on the front line


Viktor Farcic - 2019
    Viktor Farcic interviews DevOps industries voices including Mike Kail, Greg Bledsoe, Jeff Sussna, James Turnbull, Kohsuke Kawaguchi, Liz Keogh, and more. Key Features Leading DevOps experts share their insights into modern DevOps practice Engage with the real-world challenges of putting DevOps to work Strengthen your DevOps practices now and prepare for future DevOps trends Book Description DevOps promises to break down silos, uniting organizations to deliver high quality output in a cross-functional way. In reality it often results in confusion and new silos: pockets of DevOps practitioners fight the status quo, senior decision-makers demand DevOps paint jobs without committing to true change. Even a clear definition of what DevOps is remains elusive.In DevOps Paradox, top DevOps consultants, industry leaders, and founders reveal their own approaches to all aspects of DevOps implementation and operation. Surround yourself with expert DevOps advisors. Viktor Farcic draws on experts from across the industry to discuss how to introduce DevOps to chaotic organizations, align incentives between teams, and make use of the latest tools and techniques.With each expert offering their own opinions on what DevOps is and how to make it work, you will be able to form your own informed view of the importance and value of DevOps as we enter a new decade. If you want to see how real DevOps experts address the challenges and resolve the paradoxes, this book is for you. What you will learn Expert opinions on: Introducing DevOps into real-world, chaotic business environments Deciding between adopting cutting edge tools or sticking with tried-and-tested methods Initiating necessary business change without positional power Managing and overcoming fear of change in DevOps implementations Anticipating future trends in DevOps and how to prepare for them Getting the most from Kubernetes, Docker, Puppet, Chef, and Ansible Creating the right incentives for DevOps success across an organization The impact of new techniques, such as Lambda, serverless, and schedulers, on DevOps practice Who this book is for Anybody interested in DevOps will gain a lot from this book. If you want to get beyond the simplistic ideals and engage with the deep challenges of putting DevOps to work in the real world, this book is for you. Table of Contents Jeff Sussna - Founder and CEO, Sussna Associates Damien Duportal - Træfik's Developer Advocate Kevin Behr - IT Strategist; Chief Scientific Officer, PraxisFlow Mike Kail - Chief Technology Officer, Everest.org James Turnbull - Chairman, Rethink Robotics Liz Keogh - Tech consultant Julian Simpson - Global IT Manager, Neo4j Andy Clemenko - Senior Solutions Engineer at Docker Chris Riley - Author and DevOps Analyst Adam Sandor - Cloud technology consultant Julia Biro - Site Reliability Engineer, Contentful Damon Edwards - Co-Founder and Chief Product Officer of Rundeck, Inc Kohsuke Kawaguchi - Chief Technology Officer, CloudBees Sean Hull - Cloud Architect Bret Fischer - Docker Captain, and Cloud SysAdmin Nirmal Mehta - Technology Consultant Greg Bledsoe - Agile

Apple Watch Series 5: Beginner to Advanced a Complete Guide


Cathy Young - 2019
    I want you to feel comfortable with all aspects of your watch in an environment that encourages you to learn painlessly at your own pace. My goal is to help you enjoy the wonder of discovering your Apple Watch. Along the way, I want to:  Teach you how to use all the features of your Apple Watch. I say “all.” As far as I know, I found every darned one of them, but don’t sue me if I missed one. Note: Details about the Compass app were not available at the time of publication. Demonstrate the cool and awe-inspiring features of the Apple Watch. These aren’t random tips and tricks. Rather, I have showcased them in a way that lets you find them while exploring a particular feature or topic. Help you find what you want, when you want it. The organized and detailed Table of Contents includes more than 200 topics. Skip around to your heart’s content. Inspire you with over 100 third-party apps. A few of the categories include entertainment, productivity, sports, photography, and games. We’ll also cover integration platforms like IFTTT, which opens up the possibility of unlimited applications. Focus on the engineering and Apple platforms behind the Apple Watch. The physical device includes the heart rate monitor, accelerometer, gyroscope, and Apple’s Force Touch technology. Behind the scenes, learn how Apple is partnering with businesses to extend their HealthKit, HomeKit, and GymKit platforms to enhance your experience for years to come. List 30 Common Troubleshooting and Maintenance Suggestions. While you can use your Apple Watch with watchOS 6 and later without your iPhone nearby, the Apple iPhone is an integral part of your day-to-day experience. In case you are new to Apple’s smartphone and iOS mobile operating system, I’ve included several topics covering the iPhone setup, screens, and gestures. Those topic headings have an asterisk and special formatting, so you can quickly skip them if you aren’t interested. As a final selling point, I make an intentional effort to avoid a few of my pet peeves – and those pertain to incomplete instructions. I frequently see directions such as “tap to go to settings,” but they leave novice users asking, “tap where?” In another example I read, the instructions mentioned a workout playlist and how to enable it – but assumed nothing went awry (and something ALWAYS goes awry). I intend to cover those bases for you. And if I do, by chance, make the mistake of omitting a critical detail anywhere in this book, know that I was probably distracted by my Apple Watch telling me to get moving or to breathe. I apologize ahead of time; it wasn’t intentional. Are you ready for the Apple Watch experience? Let’s get started.

Haskell in Depth


Vitaly Bragilevsky - 2019
    And along the way, you’ll pick up some interesting insights into why Haskell looks and works the way it does. Get ready to go deep!

Agile Testing Condensed: A Brief Introduction


Janet Gregory - 2019
    Janet Gregory and Lisa Crispin have distilled their knowledge from two decades of agile testing to help readers understand: -How to fit testing activities into an agile cycle-Who is responsible for completing various testing activities, and when-How to get testers engaged with the rest of the agile development team-How to get everyone on a delivery team engaged in continuous testing-Ways to plan testing activities using visual models-How testing can "keep up" with short iterations or even continuous delivery-How to evaluate testing effectiveness and continually improve -How to visualize a test automation strategyThis book is a must for testers, software delivery team members, product team members, business stakeholders, managers, and executives who want to know how to build quality into their product as they move to agile methods.The authors’ first two books, Agile Testing and More Agile Testing, give detailed examples of testing challenges faced by real agile teams and describe how they were solved. This condensed book provides an overview of the agile testing practices that have proven useful in many contexts. For more details on any topics in Agile Testing Condensed, please see:Agile Testing: A Practical Guide for Testers and Agile Teams, Addison-Wesley Professional, 2009More Agile Testing: Learning Journeys for the Whole Team, Addison-Wesley Professional, 2014

Technical Leadership: Dreams, success and unicorns


Giuliana Carullo - 2019
    Often times it is confusing still. What distinguish a manager from a leader? What distinguishes a leader from a technical one in today tech world? This book walks through what makes or breaks a good technical leader - in a very opinionated manner.Also Available on Leanpub at https://leanpub.com/technicalleadership

Zotero for Genealogy: Harnessing the Power of Your Research (The Golden Egg Genealogist Series Book 1)


Donna Cox Baker - 2019
    Developed by George Mason University and used by scholars worldwide, this robust product serves research in phenomenal ways. Best of all, for all its value, Zotero is free to download. An avid Zotero user since graduate school, author Donna Cox Baker proves it to be the perfect complement to genealogical research. Not only does it eliminate file cabinets, binders, and stacks of unfiled papers, it brings your voluminous research anywhere you have Internet access. Zotero for Genealogy teaches Zotero from installation to advance add-ons, using exercises and illustrations to enhance the learning experience. Baker teaches readers how to get the most out of Zotero and shares the various methods she has developed to maximize its value to genealogy. What Zotero can do for a genealogist ◆ Eliminate paper and physical filing, replacing every file cabinet, box, and paper stack you used to think you had to have. ◆ Eliminate thousands of keystrokes as Zotero creates citations for you with the click of a button. ◆ Access your citations and notes virtually anywhere you have Wi-Fi and a computing device. ◆ Extract the comments you have made and the passages you have highlighted in a PDF, drawing them into Zotero without retyping. ◆ Find anything you have stored, with lightning-fast smart searching--even things you stored away years ago and remember only vaguely if at all. ◆ Replace the standard genealogy research log with something much better and more powerful. ◆ Build a smart to-do list that eliminates repetitive data entry and is there whenever you need it. PRAISE FOR ZOTERO FOR GENEALOGY "I'm really enjoying using Zotero, and it's a great fit for what I do, which involves a lot of essay- and book-length biographical and historical narrative. Figuring out the hacks for the more complex EE-level citations is cumbersome, but once I have a template I'm good to go. I wanted to say again that your book, Zotero for Genealogy, and its accompanying exercises were invaluable learning tools for me. I was able to begin using Zotero confidently and correctly right after completing them. Thank you!" ----Margaret Hodges, PLCGS, Portsmouth, New Hampshire "I’ve tried most of the organizing software for researchers and I must say after only a few hours of playing around with Zotero and Zotero for Genealogy  I am already quite impressed.  I’m starting 2 new projects this morning and I see almost a beautifully seamless transition to collecting evidence this way.  ‘Z for G’ even addresses our need to create the perfect EE citation." ----M. Kathryn Kelly, Genealogist, Beach Swans Genealogy (http://www.mkathrynkelly.com/) TABLE OF CONTENTS PART I: ZOTERO GENERAL OVERVIEW Getting started with Zotero Documenting your research Organizing research collections Managing your attachments Searching, sorting and finding your research PART II: ZOTERO ADD-ONS

Hands-On Microservices with Spring Boot and Spring Cloud: Build and deploy Java microservices using Spring Cloud, Istio, and Kubernetes


Magnus Larsson - 2019
    With this book, you’ll learn how to efficiently build and deploy microservices using Spring Boot. This microservices book will take you through tried and tested approaches to building distributed systems and implementing microservices architecture in your organization. Starting with a set of simple cooperating microservices developed using Spring Boot, you’ll learn how you can add functionalities such as persistence, make your microservices reactive, and describe their APIs using Swagger/OpenAPI. As you advance, you’ll understand how to add different services from Spring Cloud to your microservice system. The book also demonstrates how to deploy your microservices using Kubernetes and manage them with Istio for improved security and traffic management. Finally, you’ll explore centralized log management using the EFK stack and monitor microservices using Prometheus and Grafana.By the end of this book, you’ll be able to build microservices that are scalable and robust using Spring Boot and Spring Cloud. What you will learn Build reactive microservices using Spring Boot Develop resilient and scalable microservices using Spring Cloud Use OAuth 2.0/OIDC and Spring Security to protect public APIs Implement Docker to bridge the gap between development, testing, and production Deploy and manage microservices using Kubernetes Apply Istio for improved security, observability, and traffic management Who this book is for This book is for Java and Spring developers and architects who want to learn how to break up their existing monoliths into microservices and deploy them either on-premises or in the cloud using Kubernetes as a container orchestrator and Istio as a service Mesh. No familiarity with microservices architecture is required to get started with this book. Table of Contents Introduction to Microservices Introduction to Spring Boot Creating a Set of Cooperating Microservices Deploying Our Microservices Using Docker Adding an API Description Using OpenAPI/Swagger Adding Persisitence Developing Reactive Microservices Introduction to Spring Cloud Adding Service Discovery Using Netflix Eureka and Ribbon Using Spring Cloud Gateway to Hide Microservices Behind an Edge Server Securing Access to APIs Centralized Configuration Improving Resilience using Resilience4j Understanding Distributed Tracing Introduction to Kubernetes Deploying Our Microservices to Kubernetes Implementing Kubernetes Features as an Alternative Using a Service Mesh to Improve Observability and Management Centralized Logging with the EFK Stack Monitoring Microservices

The Data-Centric Revolution: Restoring Sanity to Enterprise Information Systems


Dave McComb - 2019
    

Practical Security


Roman Zabicki - 2019
    Instead, as a developer or admin you often have to fit in security alongside your official responsibilities — building and maintaining computer systems. Implement the basics of good security now, and you’ll have a solid foundation if you bring in a dedicated security staff later. Identify the weaknesses in your system, and defend against the attacks most likely to compromise your organization, without needing to become a trained security professional.

The Fifth Revolution: Reinventing Workplace Happiness, Health, and Engagement Through Compassion


Immanual Joseph - 2019
    Readers will gain a deep understanding of what compassion means and will explore compassion skills to incorporate into their lives as individuals, influencers and leaders. The book shows how to practically apply the 9-pillars of workplace compassion - self-compassion, people-first thinking, abundance mindset, mindfulness, embracing oneness, compassionate communication, vulnerability, big-picture thinking and gratitude - to create meaningful shifts toward happiness, kindness and empowered living.The Fifth Revolution shows you- Why compassion is the key to creating amazing workplace experiences- How the 9-Pillars can transform your inner world and your work relationships- How you can influence and direct your company's culture through compassion- How you can help your company become a force of good- How compassionate workplaces are the foundations of a fifth industrial revolution- one that is powered by the human spirit.People from many walks of life- Engineers, Educators, Scientists, Doctors, and changemakers from Google, Facebook, Shell, VMWare, and other companies big and small - have shared their incredible stories of compassion in this book.In an age of artificial intelligence, as our jobs and professional identities are gradually being redefined by technology, compassion can be the standout skill that defines our uniqueness and propels our professional success. The Fifth Revolution is all about practical compassion -- part information, part stories, part workbook and all transformation.

Autotools, 2nd Edition: A Practitioner's Guide to Gnu Autoconf, Automake, and Libtool


John Calcote - 2019
    Although the Autotools are used by thousands of open source software packages, they have a notoriously steep learning curve.Autotools is the first book to offer programmers a tutorial-based guide to the GNU build system. Author John Calcote begins with an overview of high-level concepts and a hands-on tour of the philosophy and design of the Autotools. He then tackles more advanced details, like using the M4 macro processor with Autoconf, extending the framework provided by Automake, and building Java and C# sources. He concludes with solutions to frequent problems encountered by Autotools users.This thoroughly revised second edition has been updated to cover the latest versions of the Autotools. It includes five new chapters on topics like pkg-config, unit and integration testing with Autotest, internationalizing with GNU tools, the portability of gnulib, and using the Autotools with Windows. As with the first edition, you'll focus on two projects: Jupiter, a simple Hello, world! program, and FLAIM, an existing, complex open source effort containing four separate but interdependent projects. Follow along as the author takes Jupiter's build system from a basic makefile to a full-fledged Autotools project, and then as he converts the FLAIM projects from complex, hand-coded makefiles to the powerful and flexible GNU build system.Learn how to:- Master the Autotools build system to maximize your software's portability - Generate Autoconf configuration scripts to simplify the compilation process - Produce portable makefiles with Automake - Build cross-platform software libraries with Libtool - Write your own Autoconf macrosThis detailed introduction to the GNU Autotools is indispensable for developers and programmers looking to gain a deeper understanding of this complex suite of tools. Stop fighting against the system and make sense of it all with the second edition of Autotools!

Beginning x64 Assembly Programming: From Novice to AVX Professional


Jo Van Hoey - 2019
    By the end of this book, you will be able to write and read assembly code, mix assembly with higher level languages, know what AVX is, and a lot more than that. The code used in Beginning x64 Assembly Programming is kept as simple as possible, which means: no graphical user interfaces or whistles and bells or error checking. Adding all these nice features would distract your attention from the purpose: learning assembly language. The theory is limited to a strict minimum: a little bit on binary numbers, a short presentation of logical operators, and some limited linear algebra. And we stay far away from doing floating point conversions. The assembly code is presented in complete programs, so that you can test them on your computer, play with them, change them, break them. This book will also show you what tools can be used, how to use them, and the potential problems in those tools. It is not the intention to give you a comprehensive course on all of the assembly instructions, which is impossible in one book: look at the size of the Intel Manuals. Instead, the author will give you a taste of the main items, so that you will have an idea about what is going on. If you work through this book, you will acquire the knowledge to investigate certain domains more in detail on your own. The majority of the book is dedicated to assembly on Linux, because it is the easiest platform to learn assembly language. At the end the author provides a number of chapters to get you on your way with assembly on Windows. You will see that once you have Linux assembly under your belt, it is much easier to take on Windows assembly.This book should not be the first book you read on programming, if you have never programmed before, put this book aside for a while and learn some basics of programming with a higher-level language such as C.What You Will Learn Discover how a CPU and memory works Appreciate how a computer and operating system work together See how high-level language compilers generate machine language, and use that knowledge to write more efficient code Be better equipped to analyze bugs in your programs Get your program working, which is the fun part Investigate malware and take the necessary actions and precautions Who This Book Is ForProgrammers in high level languages. It is also for systems engineers and security engineers working for malware investigators.  Required knowledge: Linux, Windows, virtualization, and higher level programming languages (preferably C or C++).

Software Architecture for Business


Lina Khalid Ahmed - 2019
    The author describes enterprise architecture along with business architecture to show the role of software architecture in both areas. The role of software architecture in business is outlined from many perspectives in this context. The book focuses on quality attributes and how managers can use software architecture to build high quality products. Topics include business software architecture, dealing with qualities, achieving quality attributes, managing business qualities, Software Product Line, Internet of Things (IOT), and Service Oriented Business Architecture. The book is intended to benefit students, researchers, software architects, and business architects.Provides quick and easy access to all the important aspects regarding software architecture in business;Highlights a wide variety of concepts of software architecture in a straightforward manner, for students, practitioners, or architects;Presenting different applications of software architecture in business.

Tanmay Teaches Julia for Beginners: A Springboard to Machine Learning for All Ages


Tanmay Bakshi - 2019
    Written by 15-year-old technology phenom Tanmay Bakshi, the book is presented in an accessible style that makes learning easy and enjoyable. Tanmay Teaches Julia for Beginners: A Springboard to Machine Learning for All Ages clearly explains the basics of Julia programming and takes a look at cutting-edge machine learning applications. You will also discover how to interface your Julia apps with code written in Python.Inside, you'll learn to:- Set up and configure your Julia environment- Get up and running writing your own Julia apps- Define variables and use them in your programs- Use conditions, iterations, for-loops, and while-loops- Create, go through, and modify arrays- Build an app to manage things you lend and get back from your friends- Create and utilize dictionaries- Simplify maintenance of your code using functions- Apply functions on arrays and use functions recursively and generically- Understand and program basic machine learning apps

Probabilistic Data Structures and Algorithms for Big Data Applications


Andrii Gakhov - 2019
    Reading this book, you will get a theoretical and practical understanding of probabilistic data structures and learn about their common uses.

Cloud FinOps: Collaborative, Real-Time Cloud Financial Management


J.R. Storment - 2019
    Whether you’re new to managing cloud spend or a seasoned pro, this book will clarify the often misunderstood workings of cloud billing fundamentals and provide expert strategies on creating a culture of cloud cost management in your organization.Drawing on real-world examples of successes and failures of large-scale cloud spenders, this book outlines a road map for building a culture of FinOps in your organization. Beginning with the fundamental concepts required to understand cloud billing concepts, you’ll learn how to enable an efficient and effective FinOps machine. Learn how the cloud works when it comes to financial management Set up a FinOps team and build a framework for making spend efficiency a priority Examine the anatomy of a cloud bill and learn how to manage it Get operational recipes for maximizing cloud efficiency Understand how to motivate engineering teams to take cost-saving actions Explore the FinOps lifecycle: Inform, Optimize, and Operate Learn the DNA of a highly functional cloud FinOps culture

Math for Programmers


Paul Orland - 2019
     Filled with lots of helpful graphics and more than 200 exercises and mini-projects, this book unlocks the door to interesting-and lucrative!-careers in some of today's hottest programming fields. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

Fullstack D3 and Data Visualization: Build beautiful data visualizations with D3


Amelia Wattenberger - 2019
    With dozens of code examples showing each step, you can gain new insights into your data by creating visualizations.Learn how to quickly turn data into insights with D3We have the data. But it needs to be understood by humans. The best way to convert this data into an understandable format is to mold it into a data visualization.And D3 is the best tool for job if you need to create custom data visualizations.With Fullstack D3 and Data Visualization you and your team will be able to share key insights, uncover problems before they start, and impress your boss by creating gorgeous visualizations.What's InsideChapter 0: Introduction When would you want to use D3.js?There is a spectrum of libraries to create charts on the web: on one end, you have easy-to-use, basic libraries that will create a standard chart type.Chapter 1: Making your first chart In this chapter we make a line chart. Line charts are a great starting place because of their popularity, but also because of their simplicity.Chapter 2: Making a scatterplot When looking at the relationship between two metrics, a scatterplot is a good choice. In this chapter we show how to create a scatterplot.Chapter 3: Making a bar chart In this chapter we cover how to create a histogram, which is a bar chart that shows the distribution of one metric, with the metric values on the x axis and the frequency of values on the y axis.Chapter 4: Animations and Transitions When we update our charts, we can animate elements from their old to their new positions. These animations can be visually exciting, but more importantly, they have functional benefits.Chapter 5: Interactions The biggest advantage of creating charts with JavaScript is the ability to respond to user input.Chapter 6: Making a map Maps are also uniquely good at answering geography-based questions. In this chapter, we'll build a map and learn how to plot values within a location.Chapter 7: Data Visualization Basics Now that we're comfortable with how to create a chart, we should zoom out a bit and talk about what chart to create.Chapter 8: Common Charts In this chapter, we talk about common chart types and when to use them.Chapter 9: Dashboard DesignA dashboard is any web interface that makes sense out of dynamic data, and in this chapter we learn how to make one.Chapter 10: Advanced Visualization: Marginal Histogram First, we'll focus on enhancing a chart we've already made: our scatter plot. This chart will have multiple goals, all exploring the daily temperature ranges in our weather dataset.Chapter 11: Advanced Visualization: Radial Weather Chart We talked about radar charts in Chapter 10. For this project, we'll build a more complex radar chart.Chapter 12: Advanced Visualization: Animated Sankey Diagram In this project, we'll be simulating real data and creating an animated diagram to engage our viewers.Chapter 13: D3 and React What's the best way to draw a chart within React? It turns out that there is a fair bit of overlap in functionality between a React and D3 - we'll discuss how we can create blazing fast charts using the two together.Chapter 14: D3 and Angular In this chapter we show how to create optimized SVG charts using D3 and Angular.

Hands-On Design Patterns with C++: Solve common C++ problems with modern design patterns and build robust applications


Fedor G. Pikus - 2019
    Design patterns are commonly accepted solutions to well-recognized design problems. In essence, they are a library of reusable components, only for software architecture, and not for a concrete implementation.The focus of this book is on the design patterns that naturally lend themselves to the needs of a C++ programmer, and on the patterns that uniquely benefit from the features of C++, in particular, the generic programming. Armed with the knowledge of these patterns, you will spend less time searching for a solution to a common problem and be familiar with the solutions developed from experience, as well as their advantages and drawbacks. The other use of design patterns is as a concise and an efficient way to communicate. A pattern is a familiar and instantly recognizable solution to specific problem; through its use, sometimes with a single line of code, we can convey a considerable amount of information. The code conveys: "This is the problem we are facing, these are additional considerations that are most important in our case; hence, the following well-known solution was chosen."By the end of this book, you will have gained a comprehensive understanding of design patterns to create robust, reusable, and maintainable code.

Deep JavaScript: Theory and techniques


Axel Rauschmayer - 2019
    

Algorithmic Trading with Interactive Brokers (Python and C++)


Matthew Scarpino - 2019
    

Hands-On Design Patterns with Delphi: Build applications using idiomatic, extensible, and concurrent design patterns in Delphi


Primož Gabrijelčič - 2019
    

Culture Is The Bass: 7 Steps to Creating High Performing Teams


Gerald J. Leonard - 2019
    — Kirkus Reviews Entrepreneur Magazine List of the “Top 15 Books on Business Culture That You Need to Read Today". "Leonard’s debut compares the culture of an organization to the bass in an orchestra. The author is obviously passionate about both music and project portfolio management, and his enthusiasm shines through the text. Nicely orchestrated and well-executed business advice.” — Kirkus Reviews Everyday companies fail to compete in the market and grow because of a poor project management culture. Culture Is The Bass: 7 Steps to Creating High PerformingTeams walks you through how organizations can achieve balance, harmony and a unified vision. Gerald Leonard offers 7 key principles based on his unique perspective and experience as a professional musician, culture change expert and certified Portfolio Management Professional (PfMP). “Gerald Leonard is an exceptional person in both fields. He understands systems and cultures and processes plus he is a world-class professional musician. I've performed with him in the National Speakers Association's “All-Star Band” and was amazed by his rock-steady performance and his unbelievable versatility.” Jim Cathcart – Mentor, Strategic Advisor, Motivational Expert, Sales Consultant, Entertainer & Author Learn the secret to reclaiming your workplace culture, and workplace motivation. Discover why and how of culture change in a simple to follow 7 step process and grow your leadership skills. Learn how to thrive in a difficult workplace, gain great feedback and learn the secret to reclaiming control of your time and tripling your productivity!Inside, you’ll discover:• How companies can perform like a world-class orchestra and receive a standing ovation from their employees and customers.• How to create a shared vision for your team and grow your leadership skills.• An 8-step process for implementing change, creating buy-in and increase productivity• How to develop stories that will touch your staff’s heart, head, and hands. Culture is the Bass helps organizations create a truly competitive advantage that consistently produces and exceeds stakeholder expectations. The 7 steps process will provide you with a great mental model. “Love the analogy/metaphor of music being compared to business. There are lots of similarities, as you show us. As a musician myself, I've often thought about how the two are similar - and how interesting it would be to create a speech, or in your case a book, around the topic.” Shep Hyken - Customer Service Expert, Keynote Speaker & New York Times and Wall Street Journal Best-Selling Author of Amaze Every Customer Every Time and The Amazement Revolution“ Gerald, I enjoyed reading the metaphor of how a great culture is like an orchestra. You can't make beautiful music and enjoy harmony without a commitment from all to play their part. You must have the right leadership, and the right players, playing to their strengths.”Shirley Davis, Ph.D., CSP, SPHR, SHRM-SCP President of SDS Global Enterprises, Inc.; Business Executive; Workforce Management Expert, Author of Reinvent Yourself: Strategies for Achieving Success in Every Area of Your Life “This concept and book are genius! Gerald's performance/speec

Learn Robotics with Raspberry Pi: Build and Code Your Own Moving, Sensing, Thinking Robots


Matt Timmons-Brown - 2019
    You'll start off building a two-wheeled robot powered by a Raspberry Pi minicomputer and then program it using Python, the world's most popular programming language. Gradually, you'll improve your robot by adding increasingly advanced functionality until it can follow lines, avoid obstacles, and even recognize objects of a certain size and color using computer vision.Learn how to: - Control your robot remotely using only a Wii remote- Teach your robot to use sensors to avoid obstacles- Program your robot to follow a line autonomously - Customize your robot with LEDs and speakers to make it light up and play sounds- See what your robot sees with a Pi CameraAs you work through the book, you'll learn fundamental electronics skills like how to wire up parts, use resistors and regulators, and determine how much power your robot needs. By the end, you'll have learned the basics of coding in Python and know enough about working with hardware like LEDs, motors, and sensors to expand your creations beyond simple robots.

Concurrency: The Works of Leslie Lamport


Dahlia Malkhi - 2019
    Some of the algorithms have become standard engineering practice for fault tolerant distributed computing - distributed systems that continue to function correctly despite failures of individual components. He also developed a substantial body of work on the formal specification and verification of concurrent systems, and has contributed to the development of automated tools applying these methods.Part I consists of technical chapters of the book and a biography. The technical chapters of this book present a retrospective on Lamport's original ideas from experts in the field. Through this lens, it portrays their long-lasting impact. The chapters cover timeless notions Lamport introduced: the Bakery algorithm, atomic shared registers and sequential consistency; causality and logical time; Byzantine Agreement; state machine replication and Paxos; temporal logic of actions (TLA). The professional biography tells of Lamport's career, providing the context in which his work arose and broke new grounds, and discusses LaTeX - perhaps Lamport's most influential contribution outside the field of concurrency. This chapter gives a voice to the people behind the achievements, notably Lamport himself, and additionally the colleagues around him, who inspired, collaborated, and helped him drive worldwide impact. Part II consists of a selection of Leslie Lamport's most influential papers.This book touches on a lifetime of contributions by Leslie Lamport to the field of concurrency and on the extensive influence he had on people working in the field. It will be of value to historians of science, and to researchers and students who work in the area of concurrency and who are interested to read about the work of one of the most influential researchers in this field.

Introduction to C & GUI Programming


Simon Long - 2019
    The first half of the book is an introduction to C, and covers the basics of writing simple command-line programs. The second half shows how to use the GTK user interface toolkit with C to create feature-rich GUI applications which can be run on the desktop. 156 pages of essential information: Create simple command-line C programs Control flow with conditions and loops Handle variables, strings, and files Design graphical user interface applications in C Handle user input with buttons and menus Use advanced UI features such as data stores and dialogs

Unity Game Development Cookbook: Essentials for Every Game


Paris Buttfield-Addison - 2019
    With this unique cookbook, you’ll get started in two ways: First, you’ll learn about the Unity game engine by following very brief exercises that teach specific features of the software Second, this tutorial-oriented guide provides a collection of snippets that solve common gameplay problems, like determining if a player has completed a lap in a race Using our cookbook format, we pinpoint the problem, set out the solution, and discuss how to solve your problem in the best and most straightforward way possible so you can move onto the next step in the project.Unity Game Development Cookbook is ideal for beginning to intermediate Unity developers. Beginners will get a broad immersion into the Unity development environment, while intermediate developers will learn how to apply the foundational Unity skills they have to solve real game development problems.

Engineering Software Products: An Introduction to Modern Software Engineering


Ian Sommerville - 2019
    Introduces software engineering techniques for developing software products and apps With Engineering Software Products, author Ian Sommerville takes a unique approach to teaching software engineering and focuses on the type of software products and apps that are familiar to students, rather than focusing on project-based techniques. Written in an informal style, this book focuses on software engineering techniques that are relevant for software product engineering. Topics covered include personas and scenarios, cloud-based software, microservices, security and privacy and DevOps. The text is designed for students taking their first course in software engineering with experience in programming using a modern programming language such as Java, Python or Ruby.

Practical Cloud Security: A Guide for Secure Design and Deployment


Chris Dotson - 2019
    This hands-on book guides you through security best practices for multivendor cloud environments, whether your company plans to move legacy on-premises projects to the cloud or build a new infrastructure from the ground up.Developers, IT architects, and security professionals will learn cloud-specific techniques for securing popular cloud platforms such as Amazon Web Services, Microsoft Azure, and IBM Cloud. Chris Dotson--an IBM senior technical staff member--shows you how to establish data asset management, identity and access management, vulnerability management, network security, and incident response in your cloud environment.

Cloud Native Transformation: Practical Patterns for Innovation


Pini Reznik - 2019
    But it’s a tough technique to get right, especially for enterprises with critical legacy systems. This practical hands-on guide examines effective architecture, design, and cultural patterns to help you transform your organization into a cloud native enterprise—whether you’re moving from older architectures or creating new systems from scratch.By following Wealth Grid, a fictional company, you’ll understand the challenges, dilemmas, and considerations that accompany a move to the cloud. Technical managers and architects will learn best practices for taking on a successful company-wide transformation.Cloud migration consultants Pini Reznik, Jamie Dobson, and Michelle Gienow draw patterns from the growing community of expert practitioners and enterprises that have successfully built cloud native systems. You’ll learn what works and what doesn’t when adopting cloud native—including how this transition affects not just your technology but also your organizational structure and processes.You’ll learn: What cloud native means and why enterprises are so interested in it Common barriers and pitfalls that have affected other companies (and how to avoid them) Context-specific patterns for a successful cloud native transformation How to implement a safe, evolutionary cloud native approach How companies addressed root causes and misunderstandings that hindered their progress Case studies from real-world companies that have succeeded with cloud native transformations

D3 for the Impatient: Interactive Graphics for Programmers and Scientists


Philipp K Janert - 2019
    Written for technically savvy readers with a background in programming or data science, the book moves quickly, emphasizing unifying concepts and patterns. Anticipating common difficulties, author Philipp K. Janert teaches you how to apply D3 to your own problems.Assuming only a general programming background, but no previous experience with contemporary web development, this book explains supporting technologies such as SVG, HTML5, CSS, and the DOM as needed, making it a convenient one-stop resource for a technical audience.Understand D3 selections, the library's fundamental organizing principleLearn how to create data-driven documents with data bindingCreate animated graphs and interactive user interfacesDraw figures with curves, shapes, and colorsUse the built-in facilities for heatmaps, tree graphs, and networksSimplify your work by writing your own reusable components

The Story of Codes


Stephen Pincock - 2019
    What does it take to write a fail-safe code? What does it take to break one?Taking in the full history of code making, from the scribes of ancient Egypt to modern-day computer programmers, The Story of Codes provides a fascinating insight into this most secret and mysterious of crafts. It shows just how Julius Caesar obscured the meaning of vital wartime messages using a method of shifting letters and explains the way that Sir Francis Walsingham was able to use coded letter to foil plots against Elizabeth I. It gives an account of the ever-more complicated ciphers that were devised – and cracked – during the Cold War and investigates how codebreaking is being used today to fight crime and terrorism. And it shows you how to decipher codes from all periods of history, including many that are still employed today.

Advanced API Security: OAuth 2.0 and Beyond


Prabath Siriwardena - 2019
    Learn to better protect, monitor, and manage your public and private APIs. Enterprise APIs have become the common way of exposing business functions to the outside world. Exposing functionality is convenient, but of course comes with a risk of exploitation. This book teaches you about TLS Token Binding, User Managed Access (UMA) 2.0, Cross Origin Resource Sharing (CORS), Incremental Authorization, Proof Key for Code Exchange (PKCE), and Token Exchange. Benefit from lessons learned from analyzing multiple attacks that have taken place by exploiting security vulnerabilities in various OAuth 2.0 implementations. Explore root causes, and improve your security practices to mitigate against similar future exploits. Security must be an integral part of any development project. This book shares best practices in designing APIs for rock-solid security. API security has evolved since the first edition of this book, and the growth of standards has been exponential. OAuth 2.0 is the most widely adopted framework that is used as the foundation for standards, and this book shows you how to apply OAuth 2.0 to your own situation in order to secure and protect your enterprise APIs from exploitation and attack. What You Will Learn Securely design, develop, and deploy enterprise APIs Pick security standards and protocols to match business needs Mitigate security exploits by understanding the OAuth 2.0 threat landscape Federate identities to expand business APIs beyond the corporate firewall Protect microservices at the edge by securing their APIs Develop native mobile applications to access APIs securely Integrate applications with SaaS APIs protected with OAuth 2.0 Who This Book Is ForEnterprise security architects who are interested in best practices around designing APIs. The book is also for developers who are building enterprise APIs and integrating with internal and external applications.

SQL for Data Analytics: Perform fast and efficient data analysis with the power of SQL


Upom Malik - 2019
    

MongoDB: The Definitive Guide: Powerful and Scalable Data Storage


Shannon Bradshaw - 2019
    Updated for MongoDB 4.2, the third edition of this authoritative and accessible guide shows you the advantages of using document-oriented databases. You'll learn how this secure, high-performance system enables flexible data models, high availability, and horizontal scalability.Authors Shannon Bradshaw, Eoin Brazil, and Kristina Chodorow provide guidance for database developers, advanced configuration for system administrators, and use cases for a variety of projects. NoSQL newcomers and experienced MongoDB users will find updates on querying, indexing, aggregation, transactions, replica sets, ops management, sharding and data administration, durability, monitoring, and security.In six parts, this book shows you how to:Work with MongoDB, perform write operations, find documents, and create complex queriesIndex collections, aggregate data, and use transactions for your applicationConfigure a local replica set and learn how replication interacts with your applicationSet up cluster components and choose a shard key for a variety of applicationsExplore aspects of application administration and configure authentication and authorizationUse stats when monitoring, back up and restore deployments, and use system settings when deploying MongoDB