Data Parallel C++Learn how to accelerate C++ programs using data parallelism. This open book enables C++ programmers to be at the forefront of this exciting and important new development that is helping to push computing to new levels. It is full of practical advice, detailed explanations, and code examples to illustrate key topics.
Data parallelism in C++ enables access to parallel resources in a modern heterogeneous system, freeing you from being locked into any particular computing device. Now a single C++ application can use any combination of devices - including GPUs, CPUs, FPGAs and AI ASICs - that are suitable to the problems at hand.
This book teaches data-parallel programming using C++ and the SYCL standard from the Khronos Group and walks through everything needed to use SYCL for programming heterogeneous systems. The book begins by introducing data parallelism and foundational topics for effective use of SYCL and Data Parallel C++ (DPC++), the open source compiler used in this book. La ...
Mastering Kafka Streams and ksqlDBWorking with unbounded and fast-moving data streams has historically been difficult. But with Kafka Streams and ksqlDB, building stream processing applications is easy and fun. This practical guide shows data engineers how to use these tools to build highly scalable stream processing applications for moving, enriching, and transforming large amounts of data in real time.
Mitch Seymour, data services engineer at Mailchimp, explains important stream processing concepts against a backdrop of several interesting business problems. You'll learn the strengths of both Kafka Streams and ksqlDB to help you choose the best tool for each unique stream processing project. Non-Java developers will find the ksqlDB path to be an especially gentle introduction to stream processing.
Learn the basics of Kafka and the pub/sub communication pattern; Build stateless and stateful stream processing applications using Kafka Streams and ksqlDB; Perform advanced stateful operations, including windowed joi ...
Object-oriented Programming in C#This is a teaching material about object-oriented programming, illustrated with use of the programming language C#.
It is assumed, as a prerequisite, that the readers have some knowledge about imperative programming, preferably knowledge about C.
I believe that it is best to learn object-oriented programming after having learned and worked with imperative programming. Thus, we adhere to an "object later approach". ...
Beyond the Basic Stuff with PythonYou've completed a basic Python programming tutorial or finished Al Sweigart's best selling Automate the Boring Stuff with Python. What's the next step toward becoming a capable, confident software developer?
Welcome to Beyond the Basic Stuff with Python. More than a mere collection of advanced syntax and masterful tips for writing clean code, you'll learn how to advance your Python programming skills by using the command line and other professional tools like code formatters, type checkers, linters, and version control. Sweigart takes you through best practices for setting up your development environment, naming variables, and improving readability, then tackles documentation, organization and performance measurement, as well as object-oriented design and the Big-O algorithm analysis commonly used in coding interviews. The skills you learn will boost your ability to program - not just in Python but in any language.
You'll learn:
- Coding style, and how to use Python's Black aut ...
The Common Java CookbookThis book focuses on tactical implementation details, answering such questions as: How do we parse XML? How do we serialize beans? Is there an easier way to work with Collections? How do we work with HTTP and keep track of cookies? In enterprise software development, the tactical is often sacrificed for the strategic. Consider a complex enterprise-scale system with a solid, well-conceived architecture. The strategic (or high-level) design appears reasonable from 40,000 feet, but as soon as you drill into the details, you notice that every component contains pages upon pages of unmaintainable and unnecessary code because the developers were not aware of some valuable time-saver like BeanUtils, Collections, or the Digester. Or, worse, the developer may have spent a week reimplementing most of the capabilities of Commons BeanUtils even though BeanUtils was already in the classpath. While a familiarity with Apache Commons may not directly affect the architecture of your application, knowin ...
Windows 10 for the Internet of Things, 2nd EditionManage and control Internet-connected devices from Windows and Raspberry Pi. Master the Windows 10 IoT Core application programming interface and feature set to develop Internet of Things applications on the Raspberry Pi using your Windows and .NET programming skills. New in this edition is coverage of enterprise-level tools and features in the Windows 10 IoT Enterprise server operating system, allowing you to manage IoT solutions having large numbers of devices and to deploy applications to enterprise-grade hardware.
Windows 10 for the Internet of Things presents a set of example projects covering a wide range of techniques designed specifically to jump start your own Internet of Things creativity. You'll learn everything you need to know about Windows IoT Core to develop Windows and IoT applications that run on single board computers such as the Raspberry Pi. You'll learn to develop for the Raspberry PI using native Windows and all the related programming skills that you have buil ...
Visualizing Data in R 4Master the syntax for working with R's plotting functions in graphics and stats in this easy reference to formatting plots. The approach in Visualizing Data in R 4 toward the application of formatting in ggplot() will follow the structure of the formatting used by the plotting functions in graphics and stats. This book will take advantage of the new features added to R 4 where appropriate including a refreshed color palette for charts, Cairo graphics with more fonts/symbols, and improved performance from grid graphics including ggplot 2 rendering speed.
Visualizing Data in R 4 starts with an introduction and then is split into two parts and six appendices. Part I covers the function plot() and the ancillary functions you can use with plot(). You'll also see the functions par() and layout(), providing for multiple plots on a page. Part II goes over the basics of using the functions qplot() and ggplot() in the package ggplot2. The default plots generated by the functions qplot() and g ...
The Joy of JavaScriptWhether building interactive browser-based applications or creating server-side applications in Node, JavaScript is the most widely used language for web programming. With new features, language improvements, paradigms, and potential use cases appearing regularly, there's never been a more exciting time to be a JavaScript developer. In The Joy of JavaScript, author and JavaScript expert Luis Atencio teaches you key design concepts that lead to clean, lean, modular, and easy-to-maintain code.
JavaScript is at the heart of web applications on the browser side and, via the popular Node.js runtime, it often powers the server side too. Simply put, the web runs on JavaScript.
The Joy of JavaScript introduces techniques that turn JavaScript programmers into JavaScript pros. You'll work with cutting edge APIs, language features, and coding styles to tackle tricky problems in an elegant manner. Along the way, you'll practice good object design, drive business logic with functional thinkin ...
React and LibrariesHarness the power of React and the related libraries that you need to know to deliver successful front-end implementations. Whether you are a beginner getting started or an existing React developer, this book will provide you with the must-have knowledge you need in your toolbox to build a complete app.
Start by learning how to create and style your own components, add state management, and manage routing. You'll also learn how to work with the backend using the MERN stack (MongoDB, Express, React, and Node.js). Once you have completed building your app you will learn how to deliver quality software by conducting unit testing, integration testing, and end-to-end (E2E) testing, as well as learn techniques to debug, profile, and optimize your React app.
Libraries and tools covered include TypeScript, Material-UI, Styled Components, SCSS, React Router, Redux Toolkit, Recoil, Jest, Enzyme, Sinon, MongoDB, NodeJS, Express, Serve, Grunt, Puppeteer, ESLint, Prettier and many others. And, ...
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). ...