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;
- ...
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 ...
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 ...
The JavaScript Beginner's HandbookThe JavaScript Beginner's Handbook follows the 80/20 rule: learn in 20% of the time the 80% of a topic. The author find this approach gives a well-rounded overview.
This book does not try to cover everything under the sun related to JavaScript. It focuses on the core of the language, trying to simplify the more complex topics. The author hopes the contents of this book will help you achieve what you want: learn the basics of JavaScript. ...
How To Build a Website With CSS and HTMLThis project-based eBook will introduce you to Cascading Style Sheets (CSS), a stylesheet language used to control the presentation of websites, by building a personal website using our demonstration site as a model. Though our demonstration site features Sammy the Shark, you can switch out Sammy's information with your own if you wish to personalize your site.
Alongside HTML and JavaScript, CSS is one of the core technologies of the World Wide Web. If you have some understanding of HTML and are looking to grow your front-end development skills, learning CSS is a great next step.
The first half of this book will introduce CSS through hands-on exercises and the second half of the tutorial series will provide steps for recreating the demonstration website.
By the end of this CSS book, you will have files ready for deploying a website to the cloud, as well as an understanding of how to continue modifying the site's design with HTML and CSS. You will also have a foundation for lea ...
Programming DSLs in KotlinCreating your own domain-specific languages (DSLs) is both challenging and exhilarating. DSLs give users a way to interact with your applications more effectively, and Kotlin is a fantastic language to serve as a host for internal DSLs, because it greatly reduces the pain and effort of design and development. But implementing DSLs on top of Kotlin requires understanding the key strengths of the language and knowing how to apply them appropriately. Learn to avoid the pitfalls and leverage the language while creating your own elegant, fluent, concise, and robust DSLs using Kotlin.
Internal DSLs remove the burdens of implementing a full blown language compiler. The host language quickly becomes your ally to creating DSLs, but the syntax you can choose for your DSLs is limited to what the host language allows. You can work around the limitations by tactfully bending the rules and exploiting the language capabilities. Learn the power of Kotlin and ways to design with it, in the context o ...
Problem Solving with Algorithms and Data StructuresThe study of algorithms and data structures is central to understanding what computer science is all about. Learning computer science is not unlike learning any other type of difficult subject matter. The only way to be successful is through deliberate and incremental exposure to the fundamental ideas. A beginning computer scientist needs practice so that there is a thorough understanding before continuing on to the more complex parts of the curriculum. In addition, a beginner needs to be given the opportunity to be successful and gain confidence. This open book is designed to serve as a text for a first course on data structures and algorithms, typically taught as the second course in the computer science curriculum. Even though the second course is considered more advanced than the first course, this book assumes you are beginners at this level. You may still be struggling with some of the basic ideas and skills from a first computer science course and yet be ready to further explore ...
The React Beginner's HandbookThe React Beginner's Handbook follows the 80/20 rule: learn in 20% of the time the 80% of a topic. The author find this approach gives a well-rounded overview.
This book does not try to cover everything under the sun related to React. It focuses on the core of the language, trying to simplify the more complex topics. The author hopes the contents of this book will help you achieve what you want: learn the basics of React. ...
PowerShell Pocket Reference, 3rd EditionThis portable reference to PowerShell summarizes the command shell and scripting language and provides a concise guide to the many tasks that make PowerShell so useful. If you're a busy administrator and don't have time to plow through huge books or in-depth online searches, this is the ideal on-the-job tool.
Written by PowerShell team member Lee Holmes and excerpted from his PowerShell Cookbook, this edition offers up-to-date coverage of Windows PowerShell 5.1 and open source PowerShell Core up to 7 and beyond.
Beginning with a guided tour of PowerShell, this handy guide covers:
- PowerShell language and environment;
- Regular expression reference;
- XPath quick reference;
- .NET string formatting;
- .NET DateTime formatting;
- Selected .NET classes and their uses;
- WMI reference;
- Selected COM objects and their uses;
- Standard PowerShell verbs. ...
Cloud Native GoWhat do Docker, Kubernetes, and Prometheus have in common? All of these cloud native technologies are written in the Go programming language. This practical book shows you how to use Go's strengths to develop cloud native services that are scalable and resilient, even in an unpredictable environment. You'll explore the composition and construction of these applications, from lower-level features of Go to mid-level design patterns to high-level architectural considerations.
Each chapter builds on the lessons of the last, walking intermediate to advanced developers through Go to construct a simple but fully featured distributed key-value store. You'll learn best practices for adopting Go as your development language for solving cloud native management and deployment issues.
- Learn how cloud native applications differ from other software architectures;
- Understand how Go can solve the challenges of designing scalable distributed services;
- Leverage Go's lower-level features, su ...