- Table View
- List View
Hands-on Rust
by Herbert WolversonRust is an exciting new programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters - and what better way to learn than by making games. Each chapter in this book presents hands-on, practical projects ranging from "Hello, World" to building a full dungeon crawler game. With this book, you'll learn game development skills applicable to other engines, including Unity and Unreal. Rust is an exciting programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters. With Rust, you have a shiny new playground where your game ideas can flourish. Each chapter in this book presents hands-on, practical projects that take you on a journey from "Hello, World" to building a full dungeon crawler game. Start by setting up Rust and getting comfortable with your development environment. Learn the language basics with practical examples as you make your own version of Flappy Bird. Discover what it takes to randomly generate dungeons and populate them with monsters as you build a complete dungeon crawl game. Run game systems concurrently for high-performance and fast game-play, while retaining the ability to debug your program. Unleash your creativity with magical items, tougher monsters, and intricate dungeon design. Add layered graphics and polish your game with style. What You Need: A computer running Windows 10, Linux, or Mac OS X.A text editor, such as Visual Studio Code.A video card and drivers capable of running OpenGL 3.2.
Web Development with Clojure
by Scot Brown Dmitri SotnikovToday, developers are increasingly adopting Clojure as a web-development platform. See for yourself what makes Clojure so desirable, as you create a series of web apps of growing complexity, exploring the full process of web development using a modern functional language. This fully updated third edition reveals the changes in the rapidly evolving Clojure ecosystem and provides a practical, complete walkthrough of the Clojure web-stack. Stop developing web apps with yesterday's tools. Today, developers are increasingly adopting Clojure as a web-development platform. See for yourself what makes Clojure so desirable, as you work hands-on with Clojure and build a series of web apps of increasing size and scope, culminating in a professional grade web app using all the techniques you've learned along the way. This fully updated third edition will get you up to speed on the changes in the rapidly evolving Clojure ecosystem - the many new libraries, tools, and best practices. Build a fully featured SPA app with re-frame, a popular front-end framework for ClojureScript supporting a functional style MVC approach for managing the UI state in Single-Page Application-style applications. Gain expertise in the powerful Ring stack using the Luminus framework. Learn how Clojure works with databases and speeds development of RESTful services. See why ClojureScript is rapidly becoming a popular front-end platform, and use ClojureScript with the popular re-frame library to build single-page applications. Whether you're already familiar with Clojure or completely new to the language, you'll be able to write web applications with Clojure at a professional level.
Testing Elixir: Effective And Robust Testing For Elixir And Its Ecosystem
by Andrea Leopardi Jeffrey MatthiasElixir offers new paradigms, and challenges you to test in unconventional ways. Start with ExUnit: almost everything you need to write tests covering all levels of detail, from unit to integration, but only if you know how to use it to the fullest - we'll show you how. Explore testing Elixir-specific challenges such as OTP-based modules, asynchronous code, Ecto-based applications, and Phoenix applications. Explore new tools like Mox for mocks and StreamData for property-based testing. Armed with this knowledge, you can create test suites that add value to your production cycle and guard you from regressions. Write Elixir tests that you can be proud of. Dive into Elixir's test philosophy and gain mastery over the terminology and concepts that underlie good tests. Create and structure a comprehensive ExUnit test suite, starting from the basics, and build comprehensive test coverage that will provide safety for refactoring and confidence that your code performs as designed. Use tests to make your software more reliable and fault tolerant. Explore the basic tool set provided by ExUnit and Mix to write and organize your test suite. Test code built around different OTP functionality. Isolate your code through dependency injection and by using Mox. Write comprehensive tests for Ecto projects, covering Ecto as a database tool as well as a standalone data validation tool. Test Phoenix channels from end to end, including authentication and joining topics. Write Phoenix controller tests and understand the concepts of integration testing in Elixir. Learn property-based testing with StreamData from the author who wrote the library. Code with high confidence that you are getting the most out of your test suite, with the right tools that make testing your code a pleasure and a valuable part of your development cycle. What You Need: To get the most out of this book, you will need to have installed Elixir 1.8 or later and Erlang/OTP 21 or later. In order to complete the relevant chapters, you will also need Ecto 3.1 or later, EctoSQL 3.1 or later and Phoenix 1.3 or later.
Pythonic Programming
by Dmitry ZinovievMake your good Python code even better by following proven and effective pythonic programming tips. Avoid logical errors that usually go undetected by Python linters and code formatters, such as frequent data look-ups in long lists, improper use of local and global variables, and mishandled user input. Discover rare language features, like rational numbers, set comprehensions, counters, and pickling, that may boost your productivity. Discover how to apply general programming patterns, including caching, in your Python code. Become a better-than-average Python programmer, and develop self-documented, maintainable, easy-to-understand programs that are fast to run and hard to break. Python is one of the most popular and rapidly growing modern programming languages. With more than 200 standard libraries and even more third-party libraries, it reaches into the software development areas as diverse as artificial intelligence, bioinformatics, natural language processing, and computer vision. Find out how to improve your understanding of the spirit of the language by using one hundred pythonic tips to make your code safer, faster, and better documented. This programming style manual is a quick reference of helpful hints and a random source of inspiration. Choose the suitable data structures for searching and sorting jobs and become aware of how a wrong choice may cause your application to be completely ineffective. Understand global and local variables, class and instance attributes, and information-hiding techniques. Create functions with flexible interfaces. Manage intermediate computation results by caching them in files and memory to improve performance and reliability. Polish your documentation skills to make your code easy for other programmers to understand. As a bonus, discover Easter eggs cleverly planted in the standard library by its developers. Polish, secure, and speed-up your Python applications, and make them easier to maintain by following pythonic programming tips. What You Need: You will need a Python interpreter (ideally, version 3.4 or above) and the standard Python library that usually comes with the interpreter.
Modern Asynchronous JavaScript
by Faraz K. KelhiniJavaScript today must interact with data-intensive APIs and networks. The solution is a program that can work asynchronously instead of finishing tasks in order. In modern JavaScript, instead of callbacks you'll use promises to improve your application's performance and responsiveness. JavaScript features introduced in ES2020, ES2021, and ESNext like Promise.allSettled(), Promise.any(), and top-level await help you develop small, fast, low-profile applications. With the AbortController API, cancel a pending async request before it has completed. Modern Asynchronous JavaScript gives you an arsenal of tools to build programs that always respond to user requests, recover quickly from difficult conditions, and deliver maximum performance. Applications today must work with information on remote servers, and users expect a quick response to complex interactions at all times, whether on a high-speed 5G cellular network or slow public WiFi. JavaScript provides developers with advanced tools to coordinate the asynchronous parts of their code efficiently and deliver responsive programs. Faster applications equal happier users, which is the promise of asynchronous JavaScript. With Modern Asynchronous JavaScript you'll learn techniques for managing your async code. Features like ES2021 Promise.any() allow you to safeguard your async code from external issues that are out of your control like server downtime. You'll discover secret weapons like top-level await to initialize resources, define dependency paths dynamically, and load dependencies with a fallback implementation. You'll even learn to how to set a time limit for async requests and react if they take too long to complete. Fast, reliable applications are a must in today's world, where users demand increasingly greater amounts of data on mobile devices. Asynchronous programming may require more cautious planning than synchronous programming but the outcome is rewarding. Asynchronous JavaScript allows you to write code that is nimble but reliable, leading to programs that load faster, respond quicker, and most importantly that you can trust to function properly. What You Need: You'll need an intermediate level of JavaScript programming skills and a browser that supports features from ES2020, ES2021, and ESNext.
Powerful Command-Line Applications in Go
by Ricardo GerardiWhether you want to automate tasks, analyze data, parse logs, talk to network services, or address other systems requirements, writing your own command-line tool may be the fastest - and perhaps the most fun - way to do it. The Go programming language is a great choice for developing tools that are fast, reliable, and cross-platform. Create command-line tools that work with files, connect to services, and even manage external processes, all while using tests and benchmarks to ensure your programs are fast and correct. When you want to develop cross platform command-line tools that are fast and reliable, use Go, a modern programming language that combines the reliability of compiled languages with the ease of use and flexibility of dynamic typed languages. Work through practical examples to develop elegant and efficient tools by applying Go's rich standard library, its built in support for concurrency, and its expressive syntax. Use Go's integrated testing capabilities to automatically test your tools, ensuring they work reliably even across code refactoring. Develop CLI tools that interact with your users by using common input/output patterns, including environment variables and flags. Handle files to read or persist data, and manipulate paths consistently in cross-platform scenarios. Control processes and handle signals, and use a benchmark driven approach and Go's concurrency primitives to create tools that perform well. Use powerful external libraries such as Cobra to create modern and flexible tools that handle subcommands, and develop tools that interact with databases, APIs, and network services. Finally, leverage what you learned by tackling additional challenges at the end of each chapter. What You Need: Go 1.8 or higher, an internet connection to download the example files and additional libraries, and a text editor to write your programs.
Python Testing with pytest
by Brian OkkenTest applications, packages, and libraries large and small with pytest, Python's most powerful testing framework. pytest helps you write tests quickly and keep them readable and maintainable. In this fully revised edition, explore pytest's superpowers - simple asserts, fixtures, parametrization, markers, and plugins - while creating simple tests and test suites against a small database application. Using a robust yet simple fixture model, it's just as easy to write small tests with pytest as it is to scale up to complex functional testing. This book shows you how. pytest is undeniably the best choice for testing Python projects. It's a full-featured, flexible, and extensible testing framework. pytest's fixture model allows you to share test data and setup procedures across multiple layers of tests. The pytest framework gives you powerful features such as assert rewriting, parametrization, markers, plugins, parallel test execution, and clear test failure reporting - with no boilerplate code. With simple step-by-step instructions and sample code, this book gets you up to speed quickly on this easy-to-learn yet powerful tool. Write short, maintainable tests that elegantly express what you're testing. Speed up test times by distributing tests across multiple processors and running tests in parallel. Use Python's builtin assert statements instead of awkward assert helper functions to make your tests more readable. Move setup code out of tests and into fixtures to separate setup failures from test failures. Test error conditions and corner cases with expected exception testing, and use one test to run many test cases with parameterized testing. Extend pytest with plugins, connect it to continuous integration systems, and use it in tandem with tox, mock, coverage, and even existing unittest tests. Write simple, maintainable tests quickly with pytest. What You Need: The examples in this book were written using Python 3.10 and pytest 7. pytest 7 supports Python 3.5 and above.
Build a Weather Station with Elixir and Nerves
by Bruce Tate Alexander Koutmos Frank HunlethThe Elixir programming language has become a go-to tool for creating reliable, fault-tolerant, and robust server-side applications. Thanks to Nerves, those same exact benefits can be realized in embedded applications. This book will teach you how to structure, build, and deploy production grade Nerves applications to network-enabled devices. The weather station sensor hub project that you will be embarking upon will show you how to create a full stack IoT solution in record time. You will build everything from the embedded Nerves device to the Phoenix backend and even the Grafana time-series data visualizations. Elixir as a programming language has found its way into many different software domains, largely in part to the rock-solid foundation of the Erlang virtual machine. Thanks to the Nerves framework, Elixir has also found success in the world of embedded systems and IoT. Having access to all of the Elixir and OTP constructs such as concurrency, supervision, and immutability makes for a powerful IoT recipe. Find out how to create fault-tolerant, reliable, and robust embedded applications using the Nerves framework. Build and deploy a production-grade weather station sensor hub using Elixir and Nerves, all while leveraging the best practices established by the Nerves community for structuring and organizing Nerves applications. Capture all of your weather station sensor data using Phoenix and Ecto in a lightweight server-side application. Efficiently store and retrieve the time-series weather data collected by your device using TimescaleDB (the Postgres extension for time-series data). Finally, complete the full stack IoT solution by using Grafana to visualize all of your time-series weather station data. Discover how to create software solutions where the underlying technologies and techniques are applicable to all layers of the project. Take your project from idea to production ready in record time with Elixir and Nerves. What You Need: To complete the Nerves weather station project in this book, you will need the following: A Linux, MacOS, or Windows computer to build and deploy Nerves firmware images A Raspberry Pi Zero W or any other Nerves supported target (https://hexdocs.pm/nerves/targets.html#supported-targets-and-systems) A VEML6030 light sensor An BME680 environmental sensor An SGP30 air quality sensor Qwiic connect cables for weather sensors
Portable Python Projects: Run Your Home On A Raspberry Pi
by Mike RileyDiscover easy ways to control your home with the powerful new Raspberry Pi hardware. Program short Python scripts that will detect changes in your home and react with the instructions you code. Use new add-on accessories to monitor a variety of measurements, from light intensity and temperature to motion detection and water leakage. Expand the base projects with your own custom additions to perfectly match your own home setup. Most projects in the book can be completed in under an hour, giving you more time to enjoy and tweak your autonomous creations. No breadboard or electronics knowledge required! Get to know the latest Raspberry Pi hardware, and create awesome automation solutions for home or work that don't require an electronics degree, cumbersome add-ons, or expensive third-party subscription services. Create easy to run Python scripts on your own that make your Pi do things that would have required a team of automation experts to build only a few years ago. Connect to and control popular home automation lighting systems from a Raspberry Pi. Trigger autonomous actions based on movement, temperature, and timer events. Power on your own computer and appliances using your voice. Remotely control infrared-enabled consumer electronics, create chatbots to retrieve personalized items of interest, and implement a temperature-monitoring room fan. These are just some of the projects that the book will show you how to make. Most projects can be completed and operational in under an hour, and do not require any messy schematics or a spaghetti bowl of wires and breadboard-attached circuits to operate. Control your home or office exactly the way you want instead of relying on an expensive mysterious box of third-party technology to do it for you. What You Need: Raspberry Pi (Pi 4 Model B or higher recommended) running Raspberry Pi OS
Rust Brain Teasers: Exercise Your Mind
by Herbert WolversonThe Rust programming language is consistent and does its best to avoid surprising the programmer. Like all languages, though, Rust still has its quirks. But these quirks present a teaching opportunity. In this book, you'll work through a series of brain teasers that will challenge your understanding of Rust. By understanding the gaps in your knowledge, you can become better at what you do and avoid mistakes. Many of the teasers in this book come from the author's own experience creating software. Others derive from commonly asked questions in the Rust community. Regardless of their origin, these brain teasers are fun, and let's face it: who doesn't love a good puzzle, right? What better way to exercise your brain and increase your Rust programming knowledge than with a collection of dynamic brain teasers? As you read through each of these puzzles and try to work out the answers, you'll not only learn about Rust's unique quirks and peculiarities, you'll also have loads of fun along the way. Dive right in and get started with example code and sample problems that cover numbers and text, shadowing and memory, and everything in between. Try to figure out why a particular program won't compile, why it produces unexpected output, or why it panics and terminates with an error message. Once you've run the code and read the answer, it's time to get to the heart of the matter with a detailed explanation. Learn why a program produced the result it did, and discover how similar issues might affect the code you write in your own programs, even in production. Sourced from engaging discussions within the Rust community, real-world problems, and even reader feedback, these challenges will certainly surprise, enlighten, and entertain you. Are you ready to experience Rust like never before? Then sharpen your brain and get ready for a challenge! What You Need: This book assumes you have some knowledge of the Rust programming language. To work through the brain teasers in this book, you'll need a working Rust environment on any platform. You can install Rust by visiting https://rustup.rs/. You'll also need a text editor or Rust-friendly IDE.
Effective Remote Work: For Yourself, Your Team, And Your Company
by Dr James StanierThe office isn't as essential as it used to be. Flexible working hours and distributed teams are replacing decades of on-site, open-plan office culture. Wherever you work from nowadays, your colleagues are likely to be somewhere else. No more whiteboards. No more water coolers. And certainly no Ping-Pong. So how can you organize yourself, ship software, communicate, and be impactful as part of a globally distributed workforce? We'll show you how. It's time to adopt a brand new mindset. Remote working is here to stay. Come and join us. Remote working is on the rise. Whether or not we are remote workers, it is likely we are all part of a global workforce. We need to learn to interact remotely, because we are all remote from someone in some way. Rather than simply simulating the way we'd usually work together via digital means, we have to learn new communication skills and adopt a different mindset in order to work remotely effectively, efficiently, and, most importantly, healthily.We'll start by getting you set up with the right equipment and habits. Then, we'll learn the mindset of treating everyone as remote, and conquer both synchronous and asynchronous communication. You'll learn how to produce amazing artifacts, how to communicate clearly, and how to manage yourself and your teams. Then we'll look at the bigger picture: from measuring the remote readiness of your workplace, to creating a handbook for your team, to exploring remote-first culture and tackling burnout and mental well-being.Fundamentally we'll see that adopting a remote-working mindset can do wonders for our organization, our effectiveness, and our impact in our careers. It can even create a more diverse and inclusive industry for us all to work in.So what are you waiting for? The remote future is now. Be a part of it.What You Need:There are no prerequisites to reading this book, other than having had some experience of working in the software industry and a healthy curiosity.
Programmer Passport: Elixir
by Bruce TateElixir is a functional language that crosses many boundaries. With a syntax borrowing heavily from Ruby, a runtime that is on the Erlang BEAM, a macro system like that in Lisp, and a streaming library like you might find in Haskell, Elixir takes the best features from many environments. Elixir borrows from Erlang's "Let It Crash" philosophy, and adds significant improvements with structs, first-class hygienic macros, and abstractions such as protocols. Many of these ideas were borrowed from other communities, and they make a big difference in language adoption. This book gives you a quick guided tour through the fascinating world of Elixir! Explore Elixir with the author of Seven Languages in Seven Weeks. In this fast-paced book - first published with Groxio's Programmer Passport - you'll discover how Elixir's fantastic documentation, clear error messages, and excellent tooling make it approachable and easy to work with. Learn about techniques other books skip, like writing your own Mix task, and discover several blind spots that beginning and intermediate Elixir developers encounter. Effective Elixir depends on getting the most out of the most common datatypes - explore the most important ones before using them to write modules and different kinds of functions. Learn when to choose tuples, maps, or lists in your programs, and the most effective ways to access lists. Understand the differences between maps and keyword lists. Learn the primitives Elixir uses to start multiple processes and send messages between them. You'll finish the book by dabbling with the advanced techniques of streams, sigils, and macros. Find out what Groxio customers already know. The assistance of an experienced guide will help you learn Elixir more quickly than you could without one. What You Need: You'll need Elixir version 1.12 or greater.
Programmer Passport: OTP
by Bruce TateOTP is the heart of the rapidly growing Elixir, the functional language at the heart of Phoenix and LiveView. OTP enables exciting concurrent applications with among the best reliability properties in the world. With this book, you'll learn to code systems that can detect failure and recover from it automatically using the same techniques behind the world's telecommunication systems. By plugging into OTP, your own libraries will handle concurrent requests robustly, and seamlessly integrate with other supervised Elixir and Erlang applications. If you're looking to take your next step as an Elixir developer, look no further than OTP.OTP is a library for building fault tolerant systems with self-healing properties; its services power many of the world's reliable telecom infrastructure. It also powers many of Elixir's most powerful capabilities. In this fast-paced book - first published with Groxio's Programmer Passport - you'll learn about the most important abstractions that power OTP. This approachable guide will give you a high-level understanding before diving into individual details. This understanding will tell you how the core APIs work so you'll know why Elixir programmers write code the way they do.To start, this guide will walk you through building your own basic service that works in the same way as OTP's foundational GenServer. This quick exercise will gently ease you into the way GenServers work. You'll build your own GenServer, and then quickly move on to adding the supervision services to enable the reliability and self-healing properties that make Elixir famous. Once you've done so, you'll add features like a dynamic supervisor, and use a process registry to make your program more flexible and dynamic.What You Need:You'll need Elixir version 1.12 or greater. Find out what Groxio customers already know. The assistance of an experienced guide will help you learn how to use OTP to build reliable, highly concurrent systems more quickly than you could without one.
Build a Binary Clock with Elixir and Nerves
by Bruce Tate Frank HunlethWant to get better at coding Elixir? Write a hardware project with Nerves. As you build this binary clock, you'll build in resiliency using OTP, the same libraries powering many commercial phone switches. You'll attack complexity the way the experts do, using a layered approach. You'll sharpen your debugging skills by taking small, easily verified steps toward your goal. When you're done, you'll have a working binary clock and a good appreciation of the work that goes into a hardware system. You'll also be able to apply that understanding to every new line of Elixir you write. Combining software with hardware can be frustrating, but you can become proficient in no time by taking a simple, logical approach. Blinking a single LED is the traditional "hello-world" of embedded systems. Building your own binary clock is the logical next step. It blinks groupings of LEDs based on the system time. This guide walks you through a working project using the techniques used by experts who build software for hardware every day. This common sense project moves forward in tiny, logical steps. As you progress, you can verify each step before moving on to the next. You don't have to be a Nerves novice to benefit from this project. Become a better Elixir programmer as you build your own desktop showpiece. With a layered approach to software design, you'll learn to control the complexity of your programs the way the experts do by focusing on one small slice of your system at a time. When you're done, you'll have your own binary clock, and also more of the tools you need to design and build your own Nerves and Elixir projects. You'll also be a better programmer with a deeper appreciation of layering techniques for controlling complexity. What You Need: This project is for Elixir developers who want to get started with Nerves, or improve their skills. The project is designed for Elixir 1.11 and Nerves 1.7, but later versions will probably work as well with slight modifications. The project uses a Raspberry Pi zero with a set of components. With slight modifications, you can make this book work with other components as well.
Build Talking Apps for Alexa
by Craig WallsVoice recognition is here at last. Alexa and other voice assistants have now become widespread and mainstream. Is your app ready for voice interaction? Learn how to develop your own voice applications for Amazon Alexa. Start with techniques for building conversational user interfaces and dialog management. Integrate with existing applications and visual interfaces to complement voice-first applications. The future of human-computer interaction is voice, and we'll help you get ready for it. For decades, voice-enabled computers have only existed in the realm of science fiction. But now the Alexa Skills Kit (ASK) lets you develop your own voice-first applications. Leverage ASK to create engaging and natural user interfaces for your applications, enabling them to listen to users and talk back. You'll see how to use voice and sound as first-class components of user-interface design.We'll start with the essentials of building Alexa voice applications, called skills, including useful tools for creating, testing, and deploying your skills. From there, you can define parameters and dialogs that will prompt users for input in a natural, conversational style.Integrate your Alexa skills with Amazon services and other backend services to create a custom user experience. Discover how to tailor Alexa's voice and language to create more engaging responses and speak in the user's own language. Complement the voice-first experience with visual interfaces for users on screen-based devices. Add options for users to buy upgrades or other products from your application. Once all the pieces are in place, learn how to publish your Alexa skill for everyone to use.Create the future of user interfaces using the Alexa Skills Kit today.What You Need:You will need a computer capable of running the latest version of Node.js, a Git client, and internet access.
Modern CSS with Tailwind
by Noel RappinThis new edition of the book covers Tailwind 3.0, which changes the way Tailwind generates its CSS. Tailwind 3.0 has a large number of new features powered by the new system, including the ability to use arbitrary values with most Tailwind class patterns, and a new syntax for combining color and opacity in a single class. This book also covers the new standalone command-line tools for Tailwind. With CSS, you can do amazing things to the basic text and images on your website, and with just a little bit of client-side code to add and remove CSS classes, you can do exponentially more.In the latest edition of this book, you'll learn how to use Tailwind 3.0 and the new way it generates CSS. You'll code your way through Tailwind's newest features, including the ability to use arbitrary values with most Tailwind class patterns and a new syntax for combining color and opacity in a single class. You'll even dive into the new standalone command-line tools for Tailwind.The Tailwind setup is extremely explicit and makes it possible to understand the display just by looking at the HTML markup. Start by designing the typographic details of the individual elements, then placing and manipulating those elements in "the box" using a flexbox or grid design. Finally, move those elements around the page with helpful small animations and transitions.With Tailwind, it's easy to prototype, iterate, and customize your display, use prefixes to specify behavior, change defaults, add new behavior, and integrate with legacy CSS.Use Tailwind to make extraordinary web designs without extraordinary effort.What You Need:This book is about Tailwind 3.0. You should have a basic knowledge of CSS and HTML.
Program Management for Open Source Projects
by Ben CottonEvery organization develops a bureaucracy, and open source projects are no exception. When your structure is intentional and serves the project, it can lead to a successful and predictable conclusion. But project management alone won't get you there. Take the next step to full program management. Become an expert at facilitating communication between teams, managing schedules and project lifecycle, coordinating a process for changes, and keeping meetings productive. Make decisions that get buy-in from all concerned. Learn how to guide your community-driven open source project with just the right amount of structure. Bureaucratic processes naturally develop in large organizations, and open source projects are no different. The trick is to keep the processes intentional and in service of the project. That's program management and you have probably been doing it even if you don't have that title. Make your open source projects successful, predictable, and enjoyable by applying the principles and skills of program management in this book. See how program management differs from project management. Build trust and credibility by building relationships, sharing information, and communicating effectively. Construct efficient decision-making and governance structures, with openness and clear responsibilities. Conduct more effective and enjoyable meetings. Hold the right kind of meeting for the matters to be discussed: text, phone, video, or face-to-face. Develop release lifecycles, including release planning, schedules, and go/no-go decisions, and keep on schedule. Create and manage an effective changes process. Use your bug tracker to better understand and manage the bugs and feature requests of your project. Make decisions that get buy-in from all concerned. Develop processes that serve your open source project instead of making the project serve the process.
Modern Front-End Development for Rails
by Noel RappinImprove the user experience for your Rails app with rich, engaging client-side interactions. Learn to use the Rails 7 tools and simplify the complex JavaScript ecosystem. It's easier than ever to build user interactions with Hotwire, Turbo, and Stimulus. You can add great front-end flair without much extra complication. Use React to build a more complex set of client-side features. Structure your code for different levels of client-side needs with these powerful options. Add to your toolkit today! It's hard to have a Rails application without integrating some client-side logic. But client-side coding tools, and the Rails tools for integrating with them, all change continuously. Rails 7 simplifies client-side integration with the Hotwire gem. It's a great way to build client interaction with server-side HTML and a small amount of JavaScript. In the latest edition of this book, learn how to use Rails 7 and its front-end bundling tools to build rich front-end logic into your Rails applications. The job is even easier with Stimulus, a library that brings Rails conventions to JavaScript tools. And you can also add in React, a larger framework that automatically updates the browser when your data changes. Learn the basics of Turbo, Stimulus, and TypeScript, and add pizazz to your application. Structure your web application to best manage your state. Learn how to interact with data on the server while still keeping the user experience interactive. Use the type system in TypeScript to expand on JavaScript and help prevent error conditions. Debug and test your front-end application with tools specific to each framework. There are a lot of ways to do client-side coding, and Rails is here to help. What You Need: This book requires Ruby on Rails 7.0 or later, React 17.0.0 or later. Other dependencies will be added by Rails.
The Only Like That Matters Is God's: Using the Bible to Transform Your Life on Social Media
by Teryn GregsonDoes consuming the scroll leave you feeling empty? Escape the shackles of social media and turn to Christ to set you free. By using the Bible as your handbook, you can glorify God through how you present yourself, consume, and operate on social media, regardless of your social media status. Former sports broadcaster Teryn Gregson, who faced public persecution for her faith, approaches the hard to discuss depths of the cultural lies perpetuated on social media. By studying, through scripture, how God delivered the Israelites when they fell into the trap of comparison, or how Jesus overcame cancel culture by rising from the dead three days later. We too can learn to defeat that which consumes us, with the help of the Holy Spirit. In addition to chapter devotionals to dive deeper individually or as a group, the book also faces, head-on, promiscuity masked as Instagram modeling, how that affects our young men & women and what it looks like to truly lay it all on the line for your faith, aside from the picture-perfect profiles online. Each chapter concludes with devotionals that readers can fill out and use as supplemental learning for bible study groups and everyday life. Adding an interactive element to the book, the devotionals utilize various tools to engage readers, including: Scripture studiesLife-Application ChallengesDigital Detox ExercisesScreentime RecommendationsPrayersAnd more!We can transform our lives on social media when we find joy in truly knowing the only &“like&” that matters is God&’s. His &“like&” is all we need. We don&’t deserve it, we can&’t earn it. He gives us all His &“likes&” for free.
CCNA 200-301 Portable Command Guide
by Scott EmpsonCCNA 200-301 Portable Command Guide is filled with valuable, easy-to-access information–and it’s portable enough to use whether you’re in the server room or the equipment closet. <P><P> The guide summarizes all CCNA certification-level Cisco IOS Software commands, keywords, command arguments, and associated prompts, providing you with tips and examples of how to apply the commands to real-world scenarios. Throughout, configuration examples give you a better understanding of how these commands are used in simple network designs. <P><P> This book has been completely updated to cover topics in the new 200-301 exam. Use this quick reference resource to help you memorize commands and concepts as you work to pass the CCNA certification exam. Coverage includes
Fragments of an Infinite Memory: My Life with the Internet
by Mael RenouardA deeply informed, yet playful and ironic look at how the internet has changed human experience, memory, and our sense of self, and that belongs on the shelf with the best writings of Roland Barthes and Jean Baudrillard.&“One day, as I was daydreaming on the boulevard Beaumarchais, I had the idea—it came and went in a flash, almost in spite of myself—of Googling to find out what I&’d been up to and where I&’d been two evenings before, at five o&’clock, since I couldn&’t remember on my own.&” So begins Maël Renouard&’s Fragments of an Infinite Memory, a provocative and elegant inquiry into life in a wireless world. Renouard is old enough to remember life before the internet but young enough to have fully accommodated his life to the internet and the gadgets that support it. Here this young philosopher, novelist, and translator tries out a series of conjectures on how human experience, especially the sense of self, is being changed by our continual engagement with a memory that is impersonal and effectively boundless. Renouard has written a book that is rigorously impressionistic, deeply informed historically and culturally, but is also playful, ironic, personal, and formally adventurous, a book that withstands comparison to the best of Roland Barthes and Jean Baudrillard.
Asking For It
by Louise O'NeillEmma O'Donovan is eighteen, beautiful, and fearless. It's the beginning of summer in a quiet Irish town and tonight she and her friends have dressed to impress. Everyone is at the party, and all eyes are on Emma. The next morning Emma's parents discover her collapsed on the doorstop of their home, unconscious. She is disheveled, bleeding, and disoriented, looking as if she had been dumped there.To her distress, Emma can't remember what happened the night before. All she knows is that none of her friends will respond to her texts. At school, people turn away from her and whisper under their breath. Her mind may be a blank as far as the events of the previous evening, but someone has posted photos of it on Facebook under a fake account, "Easy Emma"--photos she will never be able to forget.As the photos go viral and a criminal investigation is launched, the community is thrown into tumult. The media descends, neighbors chose sides, and people from all over the world want to talk about her story. Everyone has something to say about Emma. Asking For It is a powerful story about the devastating effects of rape and public shaming, told through the awful experience of a young woman whose life is changed forever by an act of violence.
Fun Inc.: Why Gaming Will Dominate the Twenty-First Century
by Tom Chatfield"An ambitious overview of the videogaming industry, from its beginning to today's immersive online games."--Wall Street Journal Despite the recession, video games continue to break records--and command unprecedented amounts of media coverage. The U.S. is the world's biggest video games market and manufacturer, with a market now worth over $20 billion annually in software and hardware sales--more than quadruple its size in the mid 1990s. World of Warcraft now boasts over 11 million players worldwide, and over $1 billion per year in revenues. Gaming is flourishing as a career and a creative industry as well. 254 U.S. colleges and universities in 37 states now offer courses and degrees in computer and video game design, programming and art. Video games are increasingly for everyone: 68% of American households now play computer or video games, while the average game player is 35 years old and has been playing games for twelve years. Against the popular image, too, 43% of online U.S. game players are female. The U.S. military alone now spends around $6 billion a year on virtual and simulated training programs, based around video games and virtual worlds. The budgets for developing the biggest games can now top the $100 million mark and are snapping up some of the biggest names in film--from Stephen Spielberg to Peter Jackson.
In Our Own Image: Savior or Destroyer? The History and Future of Artificial Intelligence
by George ZarkadakisA timely and important book that explores the history and future, as well as the societal and ethical implications, of Artificial Intelligence as we approach the cusp of a fourth industrial revolution Zarkadakis explores one of humankind's oldest love-hate relationships—our ties with artificial intelligence, or AI. He traces AI's origins in ancient myth, through literary classics like Frankenstein, to today's sci-fi blockbusters, arguing that a fascination with AI is hardwired into the human psyche. He explains AI's history, technology, and potential; its manifestations in intelligent machines; its connections to neurology and consciousness, as well as—perhaps most tellingly—what AI reveals about us as human beings. In Our Own Image argues that we are on the brink of a fourth industrial revolution—poised to enter the age of Artificial Intelligence as science fiction becomes science fact. Ultimately, Zarkadakis observes, the fate of AI has profound implications for the future of science and humanity itself.
The Cyber Attack Survival Manual: Tools for Surviving Everything from Identity Theft to the Digital Apocalypse (Survival Ser.)
by Nick Selby Heather VescentCybersecurity experts present an accessible, informative, and fully illustrated guide to protecting yourself, your assets, and your loved ones online. As we live more of our lives online, we need to be more aware of the risks we face—and what we can do to protect ourselves. We all know that our identities can be stolen, and that intellectual property can be copied and sold. But even scarier things are now possible. Vehicle systems can be hacked, our power grid can be sabotaged, and terrorists are getting more sophisticated by the day. In The Cyber Attack Survival Manual, you learn hands-on tips and techniques for fighting back. Author Nick Selby, a police detective who specializes in busting cybercriminals, gathers a consortium of experts in digital currency, crimeware, intelligence, and more in order to share the latest and best security techniques. The Cyber Attack Survival Manual covers: Everyday security: How to keep your identity from being stolen, protect your kids, protect your cards, and much more. Big Stories: Silk Road, Ashley Madison, FBI vs. Apple, WikiLeaks, Bitcoin, and what they mean to individuals and society at large. Global issues: the NSA, how hackers can crash your car, and looming threats from China and elsewhere.