Designing Secure SoftwareDesigning Secure Software consolidates Loren Kohnfelder's more than twenty years of experience into a concise, elegant guide to improving the security of technology products. Written for a wide range of software professionals, it emphasizes building security into software design early and involving the entire team in the process.
The book begins with a discussion of core concepts like trust, threats, mitigation, secure design patterns, and cryptography. The second part, perhaps this book's most unique and important contribution to the field, covers the process of designing and reviewing a software design with security considerations in mind. The final section details the most common coding flaws that create vulnerabilities, making copious use of code snippets written in C and Python to illustrate implementation vulnerabilities.
You'll learn how to: Identify important assets, the attack surface, and the trust boundaries in a system; Evaluate the effectiveness of vari ...
Mastering VMware Horizon 8Learn all about designing, installing, configuring, and managing VMware Horizon, with a core focus on how to deliver virtual desktops using Horizon. This book allows you to follow the complete process for deploying VMware Horizon and covers the design, deployment, and management of solutions.
You'll start by reviewing remote solutions, from virtual desktops to published applications, including the benefits and what the different solutions deliver. Once through the high-level technology you'll then look at the VMware Horizon solution focusing on the architecture and the components that make up the solution and how to design a production-ready environment. Other VMware EUC technologies that complement the core Horizon solution will also be incorporate into it.
Armed with the knowledge of how to design a solution, you'll move onto the installation phase and start to build a test lab environment. Once your lab is installed, you'll move onto the configuration stage where you will un ...
Pro Java Microservices with Quarkus and KubernetesBuild and design microservices using Java and the Red Hat Quarkus Framework. This book will help you quickly get started with the features and concerns of a microservices architecture. It will introduce Docker and Kubernetes to help you deploy your microservices.
You will be guided on how to install the appropriate tools to work properly. For those who are new to enterprise development using Quarkus, you will be introduced to its core principles and main features through a deep step-by-step tutorial. For experts, this book offers some recipes that illustrate how to split monoliths and implement microservices and deploy them as containers to Kubernetes.
By the end of reading this book, you will have practical hands-on experience of building microservices using Quarkus and you will master deploying them to Kubernetes. ...
Pro Azure Administration and AutomationLearn best practices and the proper use of Azure management tools, such as Azure Portal, Azure PowerShell, Azure CLI, and ARM templates, which are time-saving tools that support daily administration tasks such as monitoring, alerting, backups, security, and more. This book explores common Azure services, including Azure networking, virtual machines, app services, backup, monitoring, and other tools of the trade that IT professionals use on a regular basis. And you will come away with a strong understanding of these services and how to use them.
While Microsoft Azure is no longer "the new cloud on the block," it continues to be one of the fastest-growing platforms with regard to features, integrations, and capabilities. Over the last decade, it has undergone significant changes and amassed a large following, but many of its users, especially those who transitioned from traditional admin tasks to modern cloud computing, are not reaping its full benefits.
Management in the cloud, wh ...
Systematic Cloud MigrationThis book is your systematic cloud migration guide. Experiences shared by the author are drawn from real-life migration projects and contain practical advice, as well as step-by-step architecture, design, and technical implementation instructions using sample application code on GitLab. Following the guidance in this book will provide much needed support to your teams, and help you successfully complete the application cloud migration journey.
Systematic Cloud Migration consists of four major parts. Part one starts with a fundamental introduction of cloud computing to establish the context for migration, including paradigm changes in five important areas: software application, DevSecOps, operations, infrastructure, and security. And these are the areas that the book follows throughout. Next, it introduces a real-life migration process that your team can follow.
Part two presents the migration process for the application code, including architecture diagrams and presented ...
Learning Test-Driven DevelopmentYour code is a testament to your skills as a developer. No matter what language you use, code should be clean, elegant, and uncluttered. By using test-driven development (TDD), you'll write code that's easy to understand, retains its elegance, and works for months, even years, to come. With this indispensable guide you'll learn how to use TDD with three different languages: Go, JavaScript, and Python.
Author Saleem Siddiqui shows you how to tackle domain complexity using a unit test-driven approach. TDD partitions requirements into small, implementable features, enabling you to solve problems irrespective of the languages and frameworks you use. With Learning Test-Driven Development at your side you'll learn how to incorporate TDD into your regular coding practice.
This book helps you: Use TDD's divide-and-conquer approach to tame domain complexity; Understand how TDD works across languages, testing frameworks, and domain concepts; Learn how TDD enables continuous i ...
AI and Machine Learning for On-Device DevelopmentAI is nothing without somewhere to run it. Now that mobile devices have become the primary computing device for most people, it's essential that mobile developers add AI to their toolbox. This insightful book is your guide to creating and running models on popular mobile platforms such as iOS and Android.
Laurence Moroney, lead AI advocate at Google, offers an introduction to machine learning techniques and tools, then walks you through writing Android and iOS apps powered by common ML models like computer vision and text recognition, using tools such as ML Kit, TensorFlow Lite, and Core ML. If you're a mobile developer, this book will help you take advantage of the ML revolution today.
Explore the options for implementing ML and AI on mobile devices; Create ML models for iOS and Android; Write ML Kit and TensorFlow Lite apps for iOS and Android, and Core ML/Create ML apps for iOS; Choose the best techniques and tools for your use case, such as cloud-based versus on-device ...
OpenShift for Developers, 2nd EditionReady to build cloud native applications? Get a hands-on introduction to daily life as a developer crafting code on OpenShift, the open source container application platform from Red Hat. Creating and packaging your apps for deployment on modern distributed systems can be daunting. Too often, adding infrastructure value can complicate development. With this practical guide you'll learn how to build, deploy, and manage a multitiered application on OpenShift.
Authors Joshua Wood and Brian Tannous demonstrate how OpenShift speeds application development. With the Kubernetes container orchestrator at its core, OpenShift simplifies and automates the way you build, ship, and run code. You'll learn how to use OpenShift and the Quarkus Java framework to develop and deploy apps using proven enterprise technologies and practices that you can apply to code in any language.
Learn the development cycles for building and deploying on OpenShift, and the tools that drive them; Use OpenShi ...
Learning AlgorithmsWhen it comes to writing efficient code, every software professional needs to have an effective working knowledge of algorithms. In this practical book, author George Heineman (Algorithms in a Nutshell) provides concise and informative descriptions of key algorithms that improve coding. Software developers, testers, and maintainers will discover how algorithms solve computational problems creatively.
Each chapter builds on earlier chapters through eye-catching visuals and a steady rollout of essential concepts, including an algorithm analysis to classify the performance of every algorithm presented in the book. At the end of each chapter, you'll get to apply what you've learned to a novel challenge problem - simulating the experience you might find in a technical code interview.
With this book, you will: Examine fundamental algorithms central to computer science and software engineering; Learn common strategies for efficient problem solving - such as divide and conquer, dy ...
SQL Pocket Guide, 4th EditionIf you use SQL in your day-to-day work as a data analyst, data scientist, or data engineer, this popular pocket guide is your ideal on-the-job reference. You'll find many examples that address the language's complexities, along with key aspects of SQL used in Microsoft SQL Server, MySQL, Oracle Database, PostgreSQL, and SQLite.
In this updated edition, author Alice Zhao describes how these database management systems implement SQL syntax for both querying and making changes to a database. You'll find details on data types and conversions, regular expression syntax, window functions, pivoting and unpivoting, and more.
Quickly look up how to perform specific tasks using SQL; Apply the book's syntax examples to your own queries; Update SQL queries to work in five different database management systems; Connect Python and R to a relational database; Look up frequently asked SQL questions in the "How Do I?" chapter. ...
Java to KotlinIt takes a week to travel the 8,000 miles overland from Java to Kotlin. If you're an experienced Java developer who has tried the Kotlin language, you were probably productive in about the same time.
You'll have found that they do things differently in Kotlin, though. Nullability is important, collections are different, and classes are final by default. Kotlin is more functional, but what does that mean, and how should it change the way that you program? And what about all that Java code that you still have to support?
Your tour guides Duncan and Nat first made the trip in 2015, and they've since helped many teams and individuals follow in their footsteps. Travel with them as they break the route down into legs like Optional to Nullable, Beans to Values, and Open to Sealed Classes. Each explains a key concept and then shows how to refactor production Java to idiomatic Kotlin, gradually and safely, while maintaining interoperability.
The resulting code is simpler, more expressi ...