How To Manage a Redis DatabaseThis book aims to provide an approachable introduction to Redis concepts by outlining many of the key-value store's commands so readers can learn their patterns and syntax, thus building up readers' understanding gradually. The goal for this book is to serve as an introduction to Redis for those interested in getting started with it, or key-value stores in general. For more experienced users, this book can function as a collection of helpful cheat sheets and in-depth reference.
The topics that it covers include how to: Connect to a Redis database; Create and use a variety of Redis data types, including strings, sets, hashes, and lists; Manage Redis clients and replicas; Run transactions in Redis; Troubleshoot issues in a Redis installation.
Each chapter is self-contained and can be followed independently of the others. By reading through this book, you'll become acquainted with many of Redis's most widely used commands, which will help you as you begin to build applications that ...
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;
- ...
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 ...
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 ...
How Computers Really WorkHow Computers Really Work is a hands-on guide to the computing ecosystem: everything from circuits to memory and clock signals, machine code, programming languages, operating systems, and the internet.
But you won't just read about these concepts, you'll test your knowledge with exercises, and practice what you learn with 41 optional hands-on projects. Build digital circuits, craft a guessing game, convert decimal numbers to binary, examine virtual memory usage, run your own web server, and more.
Explore concepts like how to:
- Think like a software engineer as you use data to describe a real world concept;
- Use Ohm's and Kirchhoff's laws to analyze an electrical circuit;
- Think like a computer as you practice binary addition and execute a program in your mind, step-by-step.
The book's projects will have you translate your learning into action, as you:
- Learn how to use a multimeter to measure resistance, current, and voltage;
- Build a half adder to see how logical op ...
Racket Programming the Fun WayAt last, a lively guided tour through all the features, functions, and applications of the Racket programming language. You'll learn a variety of coding paradigms, including iterative, object oriented, and logic programming; create interactive graphics, draw diagrams, and solve puzzles as you explore Racket through fun computer science topics - from statistical analysis to search algorithms, the Turing machine, and more.
Early chapters cover basic Racket concepts like data types, syntax, variables, strings, and formatted output. You'll learn how to perform math in Racket's rich numerical environment, and use programming constructs in different problem domains (like coding solutions to the Tower of Hanoi puzzle). Later, you'll play with plotting, grapple with graphics, and visualize data. Then, you'll escape the confines of the command line to produce animations, interactive games, and a card trick program that'll dazzle your friends.
You'll learn how tot:
- Use DrRacket, an inte ...
Build Location-Based Projects for iOSCoding is awesome. So is being outside. With location-based iOS apps, you can combine the two for an enhanced outdoor experience. Use Swift to create your own apps that use GPS data, read sensor data from your iPhone, draw on maps, automate with geofences, and store augmented reality world maps. You'll have a great time without even noticing that you're learning. And even better, each of the projects is designed to be extended and eventually submitted to the App Store. Explore, share, and have fun.
Location-based apps are everywhere. From mapping our jogging path to pointing us to the nearest collectible creature in a location-based game, these apps offer useful and interesting features and information related to where you are. Using real-world maps and places as the environment, they add an extra layer of adventure to exploring the outdoors. If you've ever wanted to make your own location-based apps and games, you can learn how with four simple, Swift-based projects that are easy t ...
Principles of Programming LanguagesIn this open book, our goal is to study the fundamental concepts in programming languages, as opposed to learning a range of specific languages. Languages are easy to learn, it is the concepts behind them that are difficult. The basic features we study in turn include higher-order functions, data structures in the form of records and variants, mutable state, exceptions, objects and classes, and types. We also study language implementations, both through language interpreters and language compilers. Throughout the book we write small interpreters for toy languages, and in Chapter 8 we write a principled compiler. We define type checkers to define which programs are well-typed and which are not. We also take a more precise, mathematical view of interpreters and type checkers, via the concepts of operational semantics and type systems. These last two concepts have historically evolved from the logician's view of programming.
The material has evolved from lecture notes used in a program ...
XcalableMP PGAS Programming LanguageXcalableMP is a directive-based parallel programming language based on Fortran and C, supporting a Partitioned Global Address Space (PGAS) model for distributed memory parallel systems. This open book presents XcalableMP language from its programming model and basic concept to the experience and performance of applications described in XcalableMP.?
XcalableMP was taken as a parallel programming language project in the FLAGSHIP 2020 project, which was to develop the Japanese flagship supercomputer, Fugaku, for improving the productivity of parallel programing. XcalableMP is now available on Fugaku and its performance is enhanced by the Fugaku interconnect, Tofu-D.
The global-view programming model of XcalableMP, inherited from High-Performance Fortran (HPF), provides an easy and useful solution to parallelize data-parallel programs with directives for distributed global array and work distribution and shadow communication. The local-view programming adopts coarray notation from Co ...
Learning TensorFlow.jsGiven the demand for AI and the ubiquity of JavaScript, TensorFlow.js was inevitable. With this Google framework, seasoned AI veterans and web developers alike can help propel the future of AI-driven websites. In this guide, author Gant Laborde (Google Developer Expert in machine learningand the web) provides a hands-on end-to-end approach to TensorFlow.js fundamentals for a broad technical audience that includes data scientists, engineers, web developers, students, and researchers.
You'll begin by working through some basic examples in TensorFlow.js before diving deeper into neural network architectures, DataFrames, TensorFlow Hub, model conversion, transfer learning, and more. Once you finish this book, you'll know how to build and deploy production-readydeep learning systems with TensorFlow.js.
- Explore tensors, the most fundamental structure of machine learning;
- Convert data into tensors and back with a real-world example;
- Combine AI with the web using TensorFlow.js; ...