SQL Antipatterns, Volume 1SQL is the ubiquitous language for software developers working with structured data. Most developers who rely on SQL are experts in their favorite language (such as Java, Python, or Go), but they're not experts in SQL. They often depend on antipatterns - -solutions that look right but become increasingly painful to work with as you uncover their hidden costs. Learn to identify and avoid many of these common blunders. Refactor an inherited nightmare into a data model that really works. Updated for the current versions of MySQL and Python, this new edition adds a dozen brand new mini-antipatterns for quick wins.
No matter which platform, framework, or language you use, the database is the foundation of your application, and the SQL database language is the standard for working with it. Antipatterns are solutions that look simple at the surface, but soon mire you down with needless work. Learn to identify these traps, and craft better solutions for the often-asked questions in this bo ...
Build a Binary Clock with Elixir and NervesWant to get better at coding Elixir? Write a hardware project with Nerves. As you build this binary clock, you'll build in resiliency using OTP, the same libraries powering many commercial phone switches. You'll attack complexity the way the experts do, using a layered approach. You'll sharpen your debugging skills by taking small, easily verified steps toward your goal. When you're done, you'll have a working binary clock and a good appreciation of the work that goes into a hardware system. You'll also be able to apply that understanding to every new line of Elixir you write.
Combining software with hardware can be frustrating, but you can become proficient in no time by taking a simple, logical approach. Blinking a single LED is the traditional "Hello-World" of embedded systems. Building your own binary clock is the logical next step. It blinks groupings of LEDs based on the system time. This guide walks you through a working project using the techniques used by experts who build ...
Programming Phoenix LiveViewThe days of the traditional request-response web application are long gone, but you don't have to wade through oceans of JavaScript to build the interactive applications today's users crave. The innovative Phoenix LiveView library empowers you to build applications that are fast and highly interactive, without sacrificing reliability. This definitive guide to LiveView isn't a reference manual. Learn to think in LiveView. Write your code layer by layer, the way the experts do. Explore techniques with experienced teachers to get the best possible performance.
Instead of settling for traditional manuals and tutorials, get insights that can only be learned from experience. Start with the Elixir language techniques that effortlessly marry your client templates and server-side handlers. Design your systems with the right layers in the right places so that your code is easier to understand, change, and support. Explore features like multi-part uploads and learn how to comprehensively test ...
Programming WebRTCBuild your own video chat application - but that's just the beginning. With WebRTC, you'll create real-time applications to stream any kind of user media and data directly from one browser to another, all built on familiar HTML, CSS, and JavaScript. Power real-time activities like text-based chats, secure peer-to-peer file transfers, collaborative brainstorming sessions - even multiplayer gaming. And you're not limited to two connected users: an entire chapter of the book is devoted to engineering multipeer WebRTC apps that let groups of people communicate in real time. You'll create your own video conferencing app. It's all here.
WebRTC is an API exposed in all modern web browsers. After almost a decade of development, the WebRTC specification was finalized, and this book provides faithful coverage of that finalized specification. You'll start by building a basic but complete WebRTC application for video chatting. Chapter by chapter, you'll refine that app and its core logic to spi ...
The Enterprise Path to Service Mesh ArchitecturesPlanning to build a microservice-driven cloud native application or looking to modernize existing application services? Consider using a service mesh. A service mesh approach can help you create robust and scalable applications, but it also introduces new challenges. This updated report answers common questions regarding service mesh architectures through the lens of a large enterprise.
Author Lee Calcote, founder and CEO of Layer5, shows developers, operators, architects, and IT leaders how to evaluate your organization's readiness for using a service mesh-and provides a clear path to help you adopt one. You'll evaluate several factors when deciding which applications should be built from the ground up and which can be converted with a new service mesh architecture.
This updated edition discusses several service meshes available and the tools you need to implement them. You'll explore:
- Service mesh concepts, architecture, and components, such as control planes and data planes ...
Load Balancing in the CloudUse of redundant servers has long been a solution for meeting sudden spikes in demand, machine failures, and outages. Cloud services greatly reduce the cost and hassle of provisioning redundant equipment and load balancers and give you the ability to deal with separate network, application, and client-side loads. But today there are many options to consider, and you have to determine which cloud service (or services) will meet your company's unique needs.
With this ebook, author Derek DeJonghe from RightBrain Networks delivers a practical guide to load balancing services in the cloud. In this dynamic environment, where machines are frequently provisioned and decommissioned to meet user demand, you need a load balancer that can intelligently distribute traffic. This ebook walks you through the several options, including the use of the NGINX software load balancer. ...
The Book of KubernetesContainers ensure that software runs reliably no matter where it's deployed, and Kubernetes is the open-source platform that lets you manage all of your containers from a single control plane. In this comprehensive tour of Kubernetes, each chapter includes a set of examples with just enough automation to start your container exploration with ease.
The book begins with an overview of modern application architecture and the benefits of and requirements for containers and orchestration. It describes Linux control groups, process isolation, and network namespaces, and how to build container images. You'll then create containers, deploy and administer a Kubernetes cluster, and learn how to debug Kubernetes all the way down to the operating system and the network. You'll gain a deep understanding of containerization and Kubernetes, as well as how container networking works at the packet level across multiple nodes in a cluster. ...
The Art of Clean CodeMost software developers waste thousands of hours working with overly complex code. The eight core principles in The Art of Clean Code will teach you how to write clear, maintainable code without compromising functionality. The book's guiding principle is simplicity: reduce and simplify, then reinvest energy in the important parts to save you countless hours and ease the often onerous task of code maintenance.
Bestselling author Christian Mayer leverages his experience helping thousands perfect their coding skills in this new book.
This Python-based guide is suitable for programmers at any level, with ideas presented in a language-agnostic manner. ...
The Recursive Book of RecursionRecursion has an intimidating reputation: it's considered to be an advanced computer science topic frequently brought up in coding interviews. But there's nothing magical about recursion.
The Recursive Book of Recursion uses Python and JavaScript examples to teach the basics of recursion, exposing the ways that it's often poorly taught and clarifying the fundamental principles of all recursive algorithms. You'll learn when to use recursive functions (and, most importantly, when not to use them), how to implement the classic recursive algorithms often brought up in job interviews, and how recursive techniques can help solve countless problems involving tree traversal, combinatorics, and other tricky topics.
Al Sweigart has built a career explaining programming concepts in a fun, approachable manner. If you've shied away from learning recursion but want to add this technique to your programming toolkit, or if you're racing to prepare for your next job interview, this book is for y ...
.NET Performance Testing and OptimizationAs we develop the applications to meet current and future needs, it is only natural to use current best practices and techniques for our designs and implementations. In the quest to improve how we develop, we can access a true wealth of information which is available on design patterns, object-oriented analysis, low-level code techniques and language features.
The technology community is full of articles, blog posts, books, and videos describing things such as generics, how to implement the observer pattern, LINQ to SQL techniques, CSS tricks, and a host of other topics. These points are often easily described in a single post or article, wherein a thorough dissemination of the technique can be presented, and readers and viewers can quickly gain a much better understanding of the technique or point in question.
Indeed, when broken down into individual and easily digestible components, almost anything complex becomes much easier to grasp. From the point of view of sophisticated de ...