Data Structures and AlgorithmsData Structures and Algorithms (DSA) features implementations of data structures and algorithms that are not implemented in any version of .NET.
This book is the result of a series of emails sent back and forth between the two authors during the development of a library for the .NET framework of the same name.
A key factor of this book and its associated implementations is that all algorithms were designed by us, using the theory of the algorithm in question as a guideline.
The book use's pseudo code to describe the solutions that we have created so that it can be easily ported to many imperative OO languages like C#, C++, and Java (amongst others). ...
Robust PythonDoes it seem like your Python projects are getting bigger and bigger? Are you feeling the pain as your codebase expands and gets tougher to debug and maintain? Python is an easy language to learn and use, but that also means systems can quickly grow beyond comprehension. Thankfully, Python has features to help developers overcome maintainability woes.
In this practical book, author Patrick Viafore shows you how to use Python's type system to the max. You'll look at user-defined types, such as classes and enums, and Python's type hinting system. You'll also learn how to make Python extensible and how to use a comprehensive testing strategy as a safety net. With these tips and techniques, you'll write clearer and more maintainable code.
Learn why types are essential in modern development ecosystems; Understand how type choices such as classes, dictionaries, and enums reflect specific intents; Make Python extensible for the future without adding bloat; Use popular Python tools to in ...
Parallel and High Performance ComputingComplex calculations, like training deep learning models or running large-scale simulations, can take an extremely long time. Efficient parallel programming can save hours - or even days - of computing time. Parallel and High Performance Computing shows you how to deliver faster run-times, greater scalability, and increased energy efficiency to your programs by mastering parallel techniques for multicore processor and GPU hardware.
Write fast, powerful, energy efficient programs that scale to tackle huge volumes of data. Using parallel programming, your code spreads data processing tasks across multiple CPUs for radically better performance. With a little help, you can create software that maximizes both speed and efficiency.
Parallel and High Performance Computing offers techniques guaranteed to boost your code's effectiveness. You'll learn to evaluate hardware architectures and work with industry standard tools such as OpenMP and MPI. You'll master the data structures and algor ...
Haskell in DepthTurn the corner from "Haskell student" to "Haskell developer." Haskell in Depth explores the important language features and programming skills you'll need to build production-quality software using Haskell. 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!
Software for high-precision tasks like financial transactions, defense systems, and scientific research must be absolutely, provably correct. As a purely functional programming language, Haskell enforces a mathematically rigorous approach that can lead to concise, efficient, and bug-free code. To write such code you'll need deep understanding. You can get it from this book!
Haskell in Depth unlocks a new level of skill with this challenging language. Going beyond the basics of syntax and structure, this book opens up critical topics like advanced types, concurrency, and data processing. You'll discover key parts of the Haskell ecosystem and maste ...
Git for ProgrammersGit is the most popular version control system in the world. It allows developers to keep up with frequent code changes in a project, ensures there are no code conflicts between the developers, and reverts to an older version of code when required.
Git for Programmers comprehensively equips you with actionable insights on advanced Git concepts in an engaging and straightforward way. This book will help you gain expertise on Git with many practical use cases as you progress through the chapters.
The book begins with a quick history of Git and instructions on how to get it and install it, after which you'll dive into the creation and cloning of your repository. As you progress through the book, you'll explore Git places, branching, and GUIs.
Once you understand the fundamentals, you'll learn how to handle merge conflicts, rebase, amend, interactive rebase, and use the log. You'll also explore important Git commands for managing your repository. Finally, the book concludes with c ...
Quantum Machine Learning: An Applied ApproachKnow how to adapt quantum computing and machine learning algorithms. This book takes you on a journey into hands-on quantum machine learning (QML) through various options available in industry and research.
The first three chapters offer insights into the combination of the science of quantum mechanics and the techniques of machine learning, where concepts of classical information technology meet the power of physics. Subsequent chapters follow a systematic deep dive into various quantum machine learning algorithms, quantum optimization, applications of advanced QML algorithms (quantum k-means, quantum k-medians, quantum neural networks, etc.), qubit state preparation for specific QML algorithms, inference, polynomial Hamiltonian simulation, and more, finishing with advanced and up-to-date research areas such as quantum walks, QML via Tensor Networks, and QBoost.
Hands-on exercises from open source libraries regularly used today in industry and research are included, such as Qisk ...
The CSS HandbookCSS, a shorthand for Cascading Style Sheets, is one of the main building blocks of the Web. Its history goes back to the 90's and along with HTML it has changed a lot since its humble beginnings.
This handbook is aimed at a vast audience.
- First, the beginner. I explain CSS from zero in a succinct but comprehensive way, so you can use this book to learn CSS from the basics.
- Then, the professional. CSS is often considered like a secondary thing to learn, especially by JavaScript developers. They know CSS is not a real programming language, they are programmers and therefore they should not bother learning CSS the right way. I wrote this book for you, too.
- Next, the person that knows CSS from a few years but hasn't had the opportunity to learn the new things in it. We'll talk extensively about the new features of CSS, the ones that are going to build the web of the next decade. CSS has improved a lot in the past few years and it's evolving fast.
Even if you don't write CSS ...
Is Parallel Programming Hard, And, If So, What Can You Do About It?The purpose of this book is to help you program shared-memory parallel systems without risking your sanity. Nevertheless, you should think of the information in this book as a foundation on which to build, rather than as a completed cathedral. Your mission, if you choose to accept, is to help make further progress in the exciting field of parallel programming-progress that will in time render this book obsolete.
Parallel programming in the 21st century is no longer focused solely on science, research, and grand-challenge projects. And this is all to the good, because it means that parallel programming is becoming an engineering discipline. Therefore, as befits an engineering discipline, this book examines specific parallel-programming tasks and describes how to approach them. In some surprisingly common cases, these tasks can be automated.
This book is written in the hope that presenting the engineering discipline underlying successful parallel-programming projects will free a ne ...
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 ...
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 OpenShift to ...