The Rust Programming LanguageThe Rust Programming Language is the official book on Rust: an open source systems programming language that helps you write faster, more reliable software. Rust offers control over low-level details (such as memory usage) in combination with high-level ergonomics, eliminating the hassle traditionally associated with low-level languages.
The authors of The Rust Programming Language, members of the Rust Core Team, share their knowledge and experience to show you how to take full advantage of Rust's features - from installation to creating robust and scalable programs. You'll begin with basics like creating functions, choosing data types, and binding variables and then move on to more advanced concepts, such as: Ownership and borrowing, lifetimes, and traits; Using Rust's memory safety guarantees to build fast, safe programs; Testing, error handling, and effective refactoring; Generics, smart pointers, multithreading, trait objects, and advanced pattern matching; Using Cargo, Rust's b ...
Pro Oracle SQL DevelopmentWrite SQL statements that are more powerful, simpler, and faster using Oracle SQL and its full range of features. This book provides a clearer way of thinking about SQL by building sets, and provides practical advice for using complex features while avoiding anti-patterns that lead to poor performance and wrong results. Relevant theories, real-world best practices, and style guidelines help you get the most out of Oracle SQL.
Pro Oracle SQL Development is for anyone who already knows Oracle SQL and is ready to take their skills to the next level. Many developers, analysts, testers, and administrators use Oracle databases frequently, but their queries are limited because they do not have the knowledge, experience, or right environment to help them take full advantage of Oracle's advanced features. This book will inspire you to achieve more with your Oracle SQL statements through tips for creating your own style for writing simple, yet powerful, SQL. It teaches you how to think about ...
Becoming the HackerBecoming the Hacker will teach you how to approach web penetration testing with an attacker's mindset. While testing web applications for performance is common, the ever-changing threat landscape makes security testing much more difficult for the defender.
There are many web application tools that claim to provide a complete survey and defense against potential threats, but they must be analyzed in line with the security needs of each web application or service. We must understand how an attacker approaches a web application and the implications of breaching its defenses.
Through the first part of the book, Adrian Pruteanu walks you through commonly encountered vulnerabilities and how to take advantage of them to achieve your goal. The latter part of the book shifts gears and puts the newly learned techniques into practice, going over scenarios where the target may be a popular content management system or a containerized application and its network.
Becoming the Hacker is a c ...
Python, PyGame, and Raspberry Pi Game DevelopmentExpand your basic knowledge of Python and use PyGame to create fast-paced video games with great graphics and sounds. This second edition shows how you can integrate electronic components with your games using the build-in general purpose input/output (GPIO) pins and some Python code to create two new games.
You'll learn about object-oriented programming (OOP) as well as design patterns, such as model-view-controller (MVC) and finite-state machines (FSMs). Whether using Windows, macOS, Linux, or a Raspberry Pi, you can unleash the power of Python and PyGame to create great looking games.
The book also includes complete code listings and explanations for Bricks, Snake, and Invaders - three fully working games. These allow you to get started in making your own great games and then modify them or build your own exciting titles. The concepts are further explained using games such as Copycat, where the player must concentrate and repeat the sequence of lights and sounds, and Couch Q ...
Achieving DevOpsBen is stuck. A development lead with a strong vision for how the intersection of development and operations at his office can be improved, he can't help but feel overwhelmed and discouraged by common problems such as slow turnaround time, rushed and ineffective handover documentation, mounting technical debt, and a lagging QA process. What steps should Ben take to build the momentum needed to create positive changes within his company?
In this unique business novel by Dave Harrison and Knox Lively, two DevOps professionals with years of diverse experience in the industry, you follow Ben as he solves work frustrations in order to adopt Agile, DevOps, and microservices architectures for his organization. Achieving DevOps addresses the Now what? moment many DevOps professionals face on their journey. The story provides you with the knowledge you need to navigate the internal political waters, build management support, show measurable results, and bring DevOps successfully into your o ...
Programming ElmElm brings the safety and stability of functional programing to front-end development, making it one of the most popular new languages. Elm's functional nature and static typing means that runtime errors are nearly impossible, and it compiles to JavaScript for easy web deployment. This book helps you take advantage of this new language in your web site development. Learn how the Elm Architecture will help you create fast applications. Discover how to integrate Elm with JavaScript so you can update legacy applications. See how Elm tooling makes deployment quicker and easier.
Functional programming offers safer applications with fewer runtime errors, but functional solutions that are type-safe and easy to use have been hard to find, until the Elm language. Elm has the benefits of functional languages while compiling to JavaScript. This book provides a complete tutorial for the Elm language, starting with a simple static application that introduces Elm syntax, modules, and the virtual ...
Small, Sharp Software ToolsThe command-line interface is making a comeback. That's because developers know that all the best features of your operating system are hidden behind a user interface designed to help average people use the computer. But you're not the average user, and the CLI is the most efficient way to get work done fast. Turn tedious chores into quick tasks: read and write files, manage complex directory hierarchies, perform network diagnostics, download files, work with APIs, and combine individual programs to create your own workflows. Put down that mouse, open the CLI, and take control of your software development environment.
No matter what language or platform you're using, you can use the CLI to create projects, run servers, and manage files. You can even create new tools that fit right in with grep, sed, awk, and xargs. You'll work with the Bash shell and the most common command-line utilities available on macOS, Windows 10, and many flavors of Linux.
Create files without opening a te ...
Beginning Kubernetes on the Google Cloud PlatformUse this beginner's guide to understand and work with Kubernetes on the Google Cloud Platform and go from single monolithic Pods (the smallest unit deployed and managed by Kubernetes) all the way up to distributed, fault-tolerant stateful backing stores.
You need only a familiarity with Linux, Bash, and Python to successfully use this book. Proficiency in Docker or cloud technology is not required. You will follow a learn-by-doing approach, running small experiments and observing the effects.
Google open sourced Kubernetes in 2015 and now it is the industry standard in container orchestration. It has been adopted by all leading vendors of cloud, on-prem, and hybrid infrastructure services: Microsoft (Azure AKS), Amazon (AWS EKS), IBM (IBM Cloud Kubernetes Services), Alibaba Cloud (ACK), RedHat (OpenShift), and Pivotal (PKS). Even though Kubernetes is offered by all of the market-leading cloud providers, the Google Cloud Platform (GCP) offers an integrated shell (Google Cloud Shell) ...
Basic Math for Game Development with Unity 3DUse Unity-based examples to understand fundamental mathematical concepts and see how they are applied when building modern video game functionality. You will gain the theoretical foundation you need, and you will know how to examine and modify an implementation.
This book covers points in a 3D Cartesian coordinate system, and then discusses vectors and the details of dot and cross products. Basic mathematical foundations are illustrated through Unity-based example implementations. Also provided are examples showing how the concepts are applied when implementing video game functionality, such as collision support, motion simulations, autonomous behaviors, shadow approximations, and reflection off arbitrary walls.
Throughout this book, you learn and examine the concepts and their applications in a game engine.
Understand the basic concepts of points and vectors and their applications in game development; Apply mathematical concepts to modern video game functionality, such as sph ...
Developing Cognitive Bots Using the IBM Watson EngineCognitive Virtual Bots are taking the technology and user experience world by storm. This book provides clear guidance on how different cognitive platforms can be used to develop Cognitive Virtual Assistants that enable a conversation by using DialogFlow and advanced Natural Language Processing. You will start by understanding the technology landscape and various use cases that Cognitive Virtual Assistants can be used in. Early chapters will take you through the basics of Cognitive Virtual Assistants, before moving onto advanced concepts and hands on examples of using IBM Watson Assistant and its advanced configurations with Watson Discovery Services, Watson Knowledge Studio and Spellchecker Service.
You'll then examine integrations that enrich the Cognitive Virtual Assistant by providing data around weather, locations, stock markets. The book concludes by providing a glimpse of what to expect in the future for Cognitive Virtual Assistants.
Review the fundamentals of Cognitive Vi ...