Learn PostgreSQLPostgreSQL is one of the fastest-growing open source object-relational database management systems (DBMS) in the world. As well as being easy to use, it's scalable and highly efficient. In this book, you'll explore PostgreSQL 12 and 13 and learn how to build database solutions using it. Complete with hands-on tutorials, this guide will teach you how to achieve the right database design required for a reliable environment.
You'll learn how to install and configure a PostgreSQL server and even manage users and connections. The book then progresses to key concepts of relational databases, before taking you through the Data Definition Language (DDL) and commonly used DDL commands. To build on your skills, you'll understand how to interact with the live cluster, create database objects, and use tools to connect to the live cluster. You'll then get to grips with creating tables, building indexes, and designing your database schema. Later, you'll explore the Data Manipulation Language (DML ...
The Little Book of SemaphoresThe Little Book of Semaphores is a free textbook that introduces the principles of synchronization for concurrent programming.
In most computer science curricula, synchronization is a module in an Operating Systems class. OS textbooks present a standard set of problems with a standard set of solutions, but most students don't get a good understanding of the material or the ability to solve similar problems.
The approach of this book is to identify patterns that are useful for a variety of synchronization problems and then show how they can be assembled into solutions. After each problem, the book offers a hint before showing a solution, giving students a better chance of discovering solutions on their own.
The book covers the classical problems, including "Readers-writers," "Producer-consumer", and "Dining Philosophers." In addition, it collects a number of not-so-classical problems, some written by the author and some by other teachers and textbook writers. Readers are invite ...
Software Engineering for Absolute BeginnersStart programming from scratch, no experience required. This beginners' guide to software engineering starts with a discussion of the different editors used to create software and covers setting up a Docker environment. Next, you will learn about repositories and version control along with its uses. Now that you are ready to program, you'll go through the basics of Python, the ideal language to learn as a novice software engineer. Many modern applications need to talk to a database of some kind, so you will explore how to create and connect to a database and how to design one for your app. Additionally you will discover how to use Python's Flask microframework and how to efficiently test your code. Finally, the book explains best practices in coding, design, deployment, and security.
Software Engineering for Absolute Beginners answers the question of what topics you should know when you start out to learn software engineering. This book covers a lot of topics, and aims to clarify t ...
How To Code in GoThis book is designed to introduce you to writing programs with the Go programming language. You'll learn how to write useful tools and applications that can run on remote servers, or local Windows, macOS, and Linux systems for development.
The topics that it covers include how to:
- Install and set up a local Go development environment on Windows, macOS, and Linux systems;
- Design your programs with conditional logic, including switch statements to control program flow;
- Define your own data structures and create interfaces to them for reusable code;
- Write custom error handling functions;
- Building and installing your Go programs so that they can run on different operating systems and different CPU architectures;
- Using flags to pass arguments to your programs, to override default options.
Each chapter can be read on its own or used as a reference, or you can follow the chapters from beginning to end. Feel free to jump to the chapter or chapters that best suits your ...
C# 9.0 Pocket ReferenceLooking for quick answers for using C# 9.0? This tightly focused and practical guide tells you exactly what you need to know without long intros or bloated samples. Succinct and easy to browse, this pocket reference is an ideal quick source of information. If you know Java, C++, or an earlier C# version, this guide will help you get rapidly up to speed.
All programs and code snippets are available as interactive samples in LINQPad. You can edit these samples and instantly see the results without needing to set up projects in Visual Studio. Written by the authors of C# 9.0 in a Nutshell, this pocket reference covers:
C# fundamentals and features new to C# 9.0; Advanced topics like operator overloading, type constraints, nullable types, operator lifting, closures, patterns, and asynchronous functions; LINQ: sequences, lazy execution, standard query operators, and query expressions; Unsafe code and pointers, custom attributes, preprocessor directives, and XML documentation. ...
Learning HelmGet up to speed with Helm, the preeminent package manager for the Kubernetes container orchestration system. This practical guide shows you how to efficiently create, install, and manage the applications running inside your containers. Helm maintainers Matt Butcher, Matt Farina, and Josh Dolitsky explain how this package manager fits into the Kubernetes ecosystem and provide an inside look at Helm's design and best practices.
More than 70% of the organizations that work with Kubernetes use Helm today. While the Helm community provides thousands of packages, or charts, to help you get started, this book walks developers and DevOps engineers through the process of creating custom charts to package applications. If you have a working understanding of Kubernetes, you're ready to go.
Explore primary features including frequently used Helm commands; Learn how to build and deploy Helm charts from scratch; Use Helm to manage complexity and achieve repeatable deployments; Package an appli ...
Flow ArchitecturesSoftware development today is embracing events and streaming data, which optimizes not only how technology interacts but also how businesses integrate with one another to meet customer needs. This phenomenon, called flow, consists of patterns and standards that determine which activity and related data is communicated between parties over the internet.
This book explores critical implications of that evolution: What happens when events and data streams help you discover new activity sources to enhance existing businesses or drive new markets? What technologies and architectural patterns can position your company for opportunities enabled by flow? James Urquhart, global field CTO at VMware, guides enterprise architects, software developers, and product managers through the process.
Learn the benefits of flow dynamics when businesses, governments, and other institutions integrate via events and data streams; Understand the value chain for flow integration through Wardley mapping vi ...
Building Custom Tasks for SQL Server Integration Services, 2nd EditionBuild custom SQL Server Integration Services (SSIS) tasks using Visual Studio Community Edition and C#. Bring all the power of Microsoft .NET to bear on your data integration and ETL processes, and for no added cost over what you've already spent on licensing SQL Server. New in this edition is a demonstration deploying a custom SSIS task to the Azure Data Factory (ADF) Azure-SSIS Integration Runtime (IR).
All examples in this new edition are implemented in C#. Custom task developers are shown how to implement custom tasks using the widely accepted and default language for .NET development.
Why are custom components necessary? Because even though the SSIS catalog of built-in tasks and components is a marvel of engineering, gaps remain in the available functionality. One such gap is a constraint of the built-in SSIS Execute Package Task, which does not allow SSIS developers to select SSIS packages from other projects in the SSIS Catalog. Examples in this book show how to create a c ...
High Performance SQL Server, 2nd EditionDesign and configure SQL Server instances and databases in support of high-throughput, mission-critical applications providing consistent response times in the face of variations in numbers of users and query volumes. In this new edition, with over 100 pages of additional content, every original chapter has been updated for SQL Server 2019, and the book also includes two new chapters covering SQL Server on Linux and Intelligent Query Processing.
This book shows you how to configure SQL Server and design your databases to support a given instance and workload. You will learn advanced configuration options, in-memory technologies, storage and disk configuration, and more, all aimed toward enabling your desired application performance and throughput.
Configuration doesn't stop with implementation. Workloads change over time, and other impediments can arise to thwart desired performance. High Performance SQL Server covers monitoring and troubleshooting to aid you in detecting and fi ...
Hands-on GitHub ActionsImplement continuous integration/continuous delivery (CI/CD) workflows for any application you develop through GitHub Actions. This book will give you an in-depth idea of implementation patterns, solutions for different technology builds, guidelines to implement your own custom components as actions, and usage of features available with GitHub Actions workflows, to set up CI/CD for your repositories.
Hands-on GitHub Actions starts with an introduction to GitHub actions that gives an overview on CI/CD followed by an introduction to its workflows. Next, you will learn how to use variables in a GitHub workflow along with tokens via a REST API. Further, you will explore artifacts and caching dependencies in GitHub and use artifacts in subsequent jobs. Using self-hosted runners is discussed next where you will set up your own hardware and software to run GitHub actions. You will go through publishing packages and migrate to Azure DevOps Pipelines. Along the way, you will use Redis servi ...