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