Patterns in the MachineDiscover how to apply software engineering patterns to develop more robust firmware faster than traditional embedded development approaches. In the authors' experience, traditional embedded software projects tend towards monolithic applications that are optimized for their target hardware platforms. This leads to software that is fragile in terms of extensibility and difficult to test without fully integrated software and hardware. Patterns in the Machine focuses on creating loosely coupled implementations that embrace both change and testability.
This book illustrates how implementing continuous integration, automated unit testing, platform-independent code, and other best practices that are not typically implemented in the embedded systems world is not just feasible but also practical for today's embedded projects.
After reading this book, you will have a better idea of how to structure your embedded software projects. You will recognize that while writing unit tests, creating ...
MATLAB Recipes, 2nd EditionLearn from state-of-the-art examples in robotics, motors, detection filters, chemical processes, aircraft, and spacecraft. With this book you will review contemporary MATLAB coding including the latest MATLAB language features and use MATLAB as a software development environment including code organization, GUI development, and algorithm design and testing.
Features now covered include the new graph and digraph classes for charts and networks; interactive documents that combine text, code, and output; a new development environment for building apps; locally defined functions in scripts; automatic expansion of dimensions; tall arrays for big data; the new string type; new functions to encode/decode JSON; handling non-English languages; the new class architecture; the Mocking framework; an engine API for Java; the cloud-based MATLAB desktop; the memoize function; and heatmap charts.
MATLAB Recipes: A Problem-Solution Approach, Second Edition provides practical, hands-on code snipp ...
Pro Cryptography and Cryptanalysis with C++20Develop strong skills and a passion for writing cryptography algorithms and security schemes/modules using C++ 20 and its new features. You will find the right methods of writing advanced cryptographic algorithms (such as, elliptic curve cryptography algorithms, lattice-based cryptography, searchable encryption, and homomorphic encryption), examine internal cryptographic mechanisms, and discover common ways in which the algorithms could be implemented and used correctly in practice.
The authors avoid the complexities of the mathematical background by explaining its mathematical basis in terms that a programmer can easily understand. They show how "bad" cryptography creeps in during implementation and what "good" cryptography should look like. They do so by showing and comparing the advantages and disadvantages based on processing time, execution time, and reliability. ...
Ionic 4 SuccinctlyIonic 4 takes the original Ionic toolkit from a mobile-centric framework based on Angular to a powerful, web-based UI design system and app-development toolset that is JavaScript-framework agnostic. The increased performance of Ionic 4 components makes the framework ideal for developing progressive web apps (PWAs), which are in high demand and popularity these days. With Ionic 4 Succinctly, Ed Freitas will focus on progressive web apps and show you how you can use Ionic 4 to build one, using Vue as the JavaScript framework. ...
How the Internet Really WorksThe internet has profoundly changed interpersonal communication, but most of us don't really understand how it works. What enables information to travel across the internet? Can we really be anonymous and private online? Who controls the internet, and why is that important? And… what's with all the cats?
How the Internet Really Works answers these questions and more. Using clear language and whimsical illustrations, the authors translate highly technical topics into accessible, engaging prose that demystifies the world's most intricately linked computer network. Alongside a feline guide named Catnip, you'll learn about:
- The "How-What-Why" of nodes, packets, and internet protocols;
- Cryptographic techniques to ensure the secrecy and integrity of your data;
- Censorship, ways to monitor it, and means for circumventing it;
- Cybernetics, algorithms, and how computers make decisions;
- Centralization of internet power, its impact on democracy, and how it hurts human rights;
- ...
PoC||GTFO, Volume 3The International Journal of Proof-of-Concept or Get The Fuck Out is a celebrated collection of short essays on computer security, reverse engineering and retrocomputing topics by many of the world's most famous hackers. This third volume contains all articles from releases 14 to 18 in the form of an actual, bound bible.
Topics include how to dump the ROM from one of the most secure Sega Genesis games ever created; how to create a PDF that is also a Git repository; how to extract the Game Boy Advance BIOS ROM; how to sniff Bluetooth Low Energy communications with the BCC Micro:Bit; how to conceal ZIP Files in NES Cartridges; how to remotely exploit a TetriNET Server; and more.
The journal exists to remind us of what a clever engineer can build from a box of parts and a bit of free time. Not to showcase what others have done, but to explain how they did it so that readers can do these and other clever things themselves. ...
Machine Learning for KidsArtificial intelligence (AI) is the ability of computers to simulate human thinking. Machine learning (ML) is one of the building blocks of AI. It's based on the idea that computers can be taught to do things on their own from the data and feedback you give them.
Machine Learning for Kids consists of this book and a kid-friendly companion website paired with the educational coding platform, Scratch. Together, they provide an easy-to-use guided programming environment for adding ML capabilities to your own AI projects!
As you work through each chapter you'll discover how ML systems can be taught to recognize text, images, numbers, and sounds, and different ways of training ML models to improve their accuracy. You'll turn your models into fun computer games and apps (and see what happens when an AI system gets confused by bad data) while building:
- A Rock, Paper, Scissors game that knows your hand shapes;
- A smart question-answering chatbot;
- A computer character that reacts ...
The Coding WorkbookThis beginner-friendly introduction to web development enables anyone to build a website by writing out code by hand - no computer or internet required. It's a fun, hands-on approach to coding that teaches the basics of using the HTML and CSS programming languages (the language of web pages). You write the code in the pages of your workbook and then draw what it would look like in a web browser.
Teachers: This has everything you need to teach an introductory web development class, and the pages are perforated!
Students: Learn the basics of HTML and CSS to build your own custom website!
Once you've finished the workbook you'll have the skills to easily build and launch a website. It's that easy!
This exercise-filled workbook is packed with illustrations and progress quizzes, making it perfect for at-home learning or schools lacking sufficient computer or internet access. It has everything you need to teach a coding class or learn basic web programming yourself.
You don't n ...
Dive Into AlgorithmsDive Into Algorithms is a wide-ranging, Pythonic tour of many of the world's most interesting algorithms. With little more than a bit of computer programming experience and basic high-school math, you'll explore standard computer science algorithms for searching, sorting, and optimization; human-based algorithms that help us determine how to catch a baseball or eat the right amount at a buffet; and advanced algorithms like ones used in machine learning and artificial intelligence. You'll even explore how ancient Egyptians and Russian peasants used algorithms to multiply numbers, how the ancient Greeks used them to find greatest common divisors, and how Japanese scholars in the age of samurai designed algorithms capable of generating magic squares.
You'll explore algorithms that are useful in pure mathematics and learn how mathematical ideas can improve algorithms. You'll learn about an algorithm for generating continued fractions, one for quick calculations of square roots, and anot ...
Algorithmic ThinkingAlgorithmic Thinking will teach you how to solve challenging programming problems and design your own algorithms. Daniel Zingaro, a master teacher, draws his examples from world-class programming competitions like USACO and IOI. You'll learn how to classify problems, choose data structures, and identify appropriate algorithms. You'll also learn how your choice of data structure, whether a hash table, heap, or tree, can affect runtime and speed up your algorithms; and how to adopt powerful strategies like recursion, dynamic programming, and binary search to solve challenging problems.
Line-by-line breakdowns of the code will teach you how to use algorithms and data structures like:
- The breadth-first search algorithm to find the optimal way to play a board game or find the best way to translate a book;
- Dijkstra's algorithm to determine how many mice can exit a maze or the number of fastest routes between two locations;
- The union-find data structure to answer questions about c ...