Hands-On Concurrency with Rust
Most programming languages can really complicate things, especially with regard to unsafe memory access. The burden on you, the programmer, lies across two domains: understanding the modern machine and your language's pain-points. This book will teach you to how to manage program performance on modern machines and build fast, memory-safe, and concurrent software in Rust. It starts with the fundamentals of Rust and discusses machine architecture concepts. You will be taken through ways to measure and improve the performance of Rust code systematically and how to write collections with confidence. You will learn about the Sync and Send traits applied to threads, and coordinate thread execution with locks, atomic primitives, data-parallelism, and more.
The book will show you how to efficiently embed Rust in C++ code and explore the functionalities of various crates for multithreaded applications. It explores implementations in depth. You will know how a mutex works and build sev ...
Practical Free Alternatives to Commercial Software
Get all the things done you're used to doing with pricey software at a fraction of the cost. There are hundreds of free programs out there that work just as well as the commercial programs people pay hundreds of dollars for. This book tells you how to find and use the most popular and useful of these.
The Open Source movement is a system where programmers can share code and collectively improve programs. As a result they can produce programs that are just as good, if not better than their commercial alternatives. For example, LibreOffice comes with a database, Microsoft Office does not.
This book shows you where to get and how to use the best Open Source programs giving you not only access to high quality software but saving you money as well. Add Practical Free Alternatives to Commercial Software to your library today.
Use the free spreadsheet program Libreoffice-calc to balance your checkbook, do an expense account, and other tasks; Perform presentation ...
Design Patterns in Modern C++
Apply modern C++17 to the implementations of classic design patterns. As well as covering traditional design patterns, this book fleshes out new patterns and approaches that will be useful to C++ developers. The author presents concepts as a fun investigation of how problems can be solved in different ways, along the way using varying degrees of technical sophistication and explaining different sorts of trade-offs.
Design Patterns in Modern C++ also provides a technology demo for modern C++, showcasing how some of its latest features (e.g., coroutines) make difficult problems a lot easier to solve. The examples in this book are all suitable for putting into production, with only a few simplifications made in order to aid readability.
Apply design patterns to modern C++ programming; Use creational patterns of builder, factories, prototype and singleton; Implement structural patterns such as adapter, bridge, decorator, facade and more; Work with the behavioral patterns such as chai ...
VMware Cross-Cloud Architecture
Over the past two decades, VMware vSphere has been known as the most trusted and reliable virtualization platform. VMware Cross-Cloud Architecture shows you how to design and configure Cross Cloud Architecture by using VMware Cloud Foundation and vRealize Suite with various use cases across private, public, and hybrid Cloud. This book takes you through everything from a basic understanding of virtualization to advanced aspects of storage and network virtualization, clustering, automation, and management.
This book will be your guide to designing all aspects of Cloud.
We start with the challenges faced by a traditional data center, define problem statements for you, and then brief you on respective solutions. Moving on, all kinds of virtualization and Cloud offerings from AWS and IBM Soft Layer are introduced and discussed in detail. Then, you'll learn how to design IT infrastructures for new and existing applications with a combination of Cloud Foundation, vRealize Suite, and vSp ...
Domain Modeling Made Functional
Domain-driven design is a well-established approach to designing software that ensures that domain experts and developers work together effectively to create high-quality software. This book is the first to combine DDD with techniques from statically typed functional programming. This book is perfect for newcomers to DDD or functional programming—all the techniques you need will be introduced and explained.
Model a complex domain accurately using the F# type system, creating compilable code that is also readable documentation—ensuring that the code and design never get out of sync. Encode business rules in the design so that you have “compile-time unit tests,” and eliminate many potential bugs by making illegal states unrepresentable. Assemble a series of small, testable functions into a complete use case, and compose these individual scenarios into a large-scale design. Discover why the combination of functional programming and DDD leads naturally to service-oriented ...
Release It! 2nd Edition
If you're a software developer, and you don't want to get alerts every night for the rest of your life, help is here. With a combination of case studies about huge losses - lost revenue, lost reputation, lost time, lost opportunity - and practical, down-to-earth advice that was all gained through painful experience, this book helps you avoid the pitfalls that cost companies millions of dollars in downtime and reputation. Eighty percent of project life-cycle cost is in production, yet few books address this topic.
This updated edition deals with the production of today's systems - larger, more complex, and heavily virtualized - and includes information on chaos engineering, the discipline of applying randomness and deliberate stress to reveal systematic problems. Build systems that survive the real world, avoid downtime, implement zero-downtime upgrades and continuous delivery, and make cloud-native applications resilient. Examine ways to architect, design, and build softwa ...
Software Design X-Rays
Are you working on a codebase where cost overruns, death marches, and heroic fights with legacy code monsters are the norm? Battle these adversaries with novel ways to identify and prioritize technical debt, based on behavioral data from how developers work with code. And that's just for starters. Because good code involves social design, as well as technical design, you can find surprising dependencies between people and code to resolve coordination bottlenecks among teams. Best of all, the techniques build on behavioral data that you already have: your version-control system. Join the fight for better code!
Use statistics and data science to uncover both problematic code and the behavioral patterns of the developers who build your software. This combination gives you insights you can't get from the code alone. Use these insights to prioritize refactoring needs, measure their effect, find implicit dependencies between different modules, and automatically create knowledge maps of yo ...
Advanced Audio Visualization Using ThMAD
Learn advanced techniques and improve your audio visualization skills with Thinking Machine Audio Dreams (ThMAD). With this book, you can concentrate on advanced examples and usage patterns, including using shaders in a more profound way, and how to incorporate ThMAD into a tool chain using the professional sound server JACK.
Advanced Audio Visualization Using ThMAD provides advanced techniques for generating graphics, improving performance, and providing readers with the skills needed to create more interesting visualizations. You will also learn professional setups with highly developed visual and aural art tool chains.
Use the ThMAD software for advanced setups in their personal and professional projects; Gain a pragmatic introduction to using shaders; Use JACK sound servers with ThMAD; Control the timing ThMAD; Work with advanced configurations. ...
Building Products for the Enterprise
If you're new to software product management or just want to learn more about it, there's plenty of advice available—but most of it is geared toward consumer products. Creating high-quality software for the enterprise involves a much different set of challenges. In this practical book, two expert product managers provide straightforward guidance for people looking to join the thriving enterprise market.
Authors Blair Reeves and Benjamin Gaines explain critical differences between enterprise and consumer products, and deliver strategies for overcoming challenges when building for the enterprise. You'll learn how to cultivate knowledge of your organization, the products you build, and the industry you serve.
Identifying customer vs user problems is an enterprise project manager's main challenge; Effective collaboration requires in-depth knowledge of the organization; Analyzing data is key to understanding why users buy and retain your product; Having experience in t ...
Pocket CIO - The Guide to Successful IT Asset Management
This book is a detailed IT Asset Management (ITAM) guidebook with real-world templates that can be converted into working ITAM documents. It is a step-by-step IT Asset Management manual for the newbies as well as the seasoned ITAM veterans, providing a unique insight into asset management. It discusses how risk management has changed over time and the possible solutions needed to address the new normal. This book is your perfect guide to create holistic IT Asset Management and Software Asset Management programs that close the risk gaps, increases productivity and results in cost efficiencies. It allows the IT Asset Managers, Software Asset Managers, and/or the full ITAM program team to take a deep dive by using the templates offered in the guidebook. You will be aware of the specific roles and responsibilities for every aspect of IT Asset Management, Software Asset Management, and Software License Compliance Audit Response. By the end of this book, you will ...
Great software comes from great designers. Learn the essential software architecture fundamentals every programmer needs to know. With hands-on examples in every chapter, tips and advice from respected architects, practical scenarios, and dozens of architectural design activities, Design It! shows you how to lead your team as a software architect to create excellent software.
Uncover the big ideas behind software architecture and learn practical methods for designing software systems big and small. Gain a framework for thinking about design, enabling you to plan, lead, design, implement, and evaluate software architectures. Collaborate with your team, stakeholders, and other architects. Dig for architecturally significant requirements and write detailed quality attribute scenarios. Explore design alternatives, balance trade-offs, manage risks, and choose technologies based on their architectural impact. Make the architecture real for everyon ...