- Table View
- List View
Transcend: Unlocking Humanity in the Age of AI
by Faisal HoqueThe question this book answers is, how can we use AI to unlock humanity&’s full potential while protecting what is most precious about the human experience?As humanity takes its first steps into the Age of Artificial Intelligence, we are only just beginning to think through the possibilities and the dangers this technology brings. But we do not have time for leisurely speculation. AI will overturn the world we know in our lifetimes, and we must prepare ourselves to meet the unprecedented changes that will soon be upon us. In Transcend: Unlocking Humanity in the Age of AI, Faisal Hoque, one of the world&’s leading management thinkers and technologists, and a bestselling author, provides readers with the road maps they need to tackle the most important questions of our generation. · A unique perspective that emerges at the intersection of philosophy, humanity, business, and technology · Powerful practical frameworks to guide the reader in thinking about and using AI · The OPEN framework for unlocking the potential of AI · The CARE framework for protecting against its dangers · Structured approaches to AI tailored for individuals, businesses, and government agencies
Expressive Networks: Poetry and Platform Cultures
by Matthew KilbaneExpressive Networks convenes an urgent conversation on digital media and the social life of contemporary poetry. Tracing how poems circulate through online spaces and how capitalized platforms have come to pattern the reading and writing of poetry, contributors emphasize both the expressivist cast of digital literary culture and the deep-running ambivalence that characterizes aesthetic and critical responses to platformed cultural production. The volume features chapters on Pan- African spoken word programs, Singaporean Facebook groups, decolonial hemispheric networks, and Japanese media-critical poetries as well as platforms such as Twitter/X, Instagram, and Amazon. Though contributors write from a variety of methodological positions and address themselves to a range of archives, they share the primary conviction that the impact of Web 2.0 on literary practice is far-reaching, far from self-evident, and far more variegated and unpredictable than easy summations of social media’s influence suggest. Expressive Networks asks after poetry’s present and future by examining what poems themselves express about the social make-up of networked platforms. Edited by Matthew Kilbane with contributions from Cameron Awkward-Rich, Micah Bateman, Andrew Campana, Sumita Chakraborty, Scott Challener, C.R. Grimmer, Tess McNulty, Michael Nardone, Seth Perlow, Anna Preus, Susanna Sacks, Carly Schnitzler, Melanie Walsh, and Samuel Caleb Wee.
Superagency: What Could Possibly Go Right with Our AI Future
by Reid Hoffman Greg BeatoInstant New York Times and USA Today Bestseller. Tech visionary and co-founder of Manas AI Reid Hoffman shares his unique insider’s perspective on an AI-powered future, making the case for its potential to unlock a world of possibilities. <p> "An essential companion." — Fei-Fei Li <p> "An important read." —Bill Gates <p> "Brilliant mind. Compassionate heart. Bold ideas…Read this book!” —Van Jones <p> "Refreshingly optimistic and welcome perspective." — Ariana Huffington <p> "A fascinating and insightful book." —Yuval Noah Harari <p> As taught at UPenn's Wharton and Stanford. Superagency offers a roadmap for using AI inclusively and adaptively to improve our lives and create positive change. While acknowledging challenges like disinformation and potential job changes, the book focuses on AI’s immense potential to increase individual agency and create better outcomes for society as a whole. Imagine AI tutors personalizing education for each child, researchers rapidly discovering cures for diseases like Alzheimer's and cancer, and AI advisors empowering people to navigate complex systems and achieve their goals. Hoffman and co-author, tech and culture writer Greg Beato envision a world where these possibilities, and many more, become a reality. <p> Superagency challenges conventional fears, inviting us to view the future through a lens of opportunity, rather than fear. It’s a call to action – to embrace AI with excitement and actively shape a world where human ingenuity and the power of AI combine to create something extraordinary. Entrepreneur Reid Hoffman is a co-founder of LinkedIn, Inflection AI, and Manas AI. He is also host of the podcasts Possible and Masters of Scale. <b>New York Times Bestseller</b>
Leaders Make the Future, Third Edition: Ten New Skills to Humanize Leadership with Generative AI
by Bob Johansen Jeremy Kirshbaum Gabe CervantesIn a world of chaos, how can generative AI help leaders lead?Over the next decade, all leaders will be augmented with some form of generative artificial intelligence, or GenAI. For the best leaders, this will mean dramatic improvement. For mediocre leaders, this will mean persistent confusion, distraction, and pretense. With futureback thinking—looking ten years ahead, then planning backward from future to next to now—this third edition of Leaders Make the Future shows how people can improve their leadership skills while expanding their human perspective.Now 75 percent revised and expanded with resources from the Institute for the Future, this new edition is organized around ten future leadership skills:Augmented futureback curiosityAugmented clarityAugmented dilemma flippingAugmented bio-engagingAugmented immersive learningAugmented depolarizingAugmented commons creatingAugmented smart mob swarmingAugmented strength with humilityHuman calmingAI-augmented leadership will be key for any organization to tackle the uncertainty of the future. And by incorporating practical methodologies, ethical guidelines, and innovative leadership practices, this book will help leaders develop their clarity and moderate their certainty.
Pragmatic Unit Testing in Java with JUnit
by Jeff LangrThe classic Pragmatic Unit Testing with Java in JUnit returns for a third edition, streamlined and rewritten with updated and more accessible code examples. In this edition, you'll learn how to create concise, maintainable unit tests with confidence. New chapters provide a foundation of examples for testing common concepts, and guidance on incorporating modern AI tools into your development and testing. Updated topics include improving test quality via development mnemonics, increasing ROI through test and production code refactoring, and using tests to drive development. Pragmatic Unit Testing in Java with JUnit steps you through all the important unit testing topics. If you've never written a unit test, you'll be hand-held through the hard part - getting set up and started. Once past the basics, you'll see numerous examples in order to start understanding what tests for common code concepts look like. You'll then learn how to effectively use the essential features of JUnit, the predominant tool for writing and executing unit tests in Java. You'll gain the combined wisdom of Jeff Langr and original authors Andy Hunt and Dave Thomas, providing decades of unit testing experience on real production systems. You'll learn how to: Craft your code to make unit testing easier in the first placeCraft your unit tests to minimize your maintenance effortUse unit tests to support keeping your system clean through refactoringRefactor toward a design that will create the highest possible ROITest the tough stuff, including code that must be mockedRemember what's important when writing unit testsHelp your team reap and sustain the benefits of unit testingUse AI tooling as part of a development process that incorporates unit testing You won't just learn about unit testing in theory - you'll learn about "real" unit testing the Pragmatic way, by working through numerous code examples. What You Need: You'll need the Java SDK (Software Development Kit) version 21 or higher to work through the examples in the book. You'll also want an IDE (Integrated Development Environment) in which to build code. While most of the book doesn't assume use of any specific IDE, you'll find a number of "getting started" screen shots to help you if you're using IntelliJ IDEA.
Serverless Apps on Cloudflare
by Ashley PeacockUse serverless technologies to build applications that scale, more quickly and easily, and without worrying about deployment. Whether you're writing an API, a full-stack app, or real-time code, harness the power of serverless on Cloudflare's platform so you can focus on what you do best: delivering solutions. With hands-on instruction and code samples throughout, you'll go from building a simple API to analyzing images with AI. And, when it's time to launch, you'll learn how to deploy your applications and websites automatically, and how to optimize their performance for production. For decades, applications have been built and deployed in a similar way: you write code, provision a server, and upload your code. Over the years, you've graduated from FTP or SSH to Docker and Kubernetes, but fundamentally you've just switched from owning to renting; you're paying 24/7 for the server hosting your app. Serverless technologies change that model. With serverless, you focus on writing code, and not how it's deployed. You only pay for when your application code is executed, rather than paying for idle servers. In this book we'll use Cloudflare, which was built from the ground up to be a serverless platform, but the same concepts apply to every serverless provider. With this book, you'll learn a better way to build applications, and you'll see improved productivity and ease of deployment. From secrets to dependencies, such as databases and caches, Cloudflare has revolutionized how to build applications, and has made building applications easier and more fun. As you go through the book, you'll learn in detail what serverless is, how it functions behind the scenes, and how to build serverless applications on Cloudflare. When you finish this book, you'll understand how to think in terms of serverless functions, and you'll have the experience of deploying and extending these apps as you work through the examples. What You Need: Mac or PCGitHub account (free)Cloudflare account (free)
Seven Obscure Languages in Seven Weeks
by Dmitry ZinovievImmerse yourself in the intricate world of forgotten programming languages with Seven Obscure Languages in Seven Weeks. This comprehensive guide serves as a bridge to understanding and revitalizing legacy code, offering invaluable insights into the evolution of programming. With hands-on tutorials spanning languages from Forth and Simula to SNOBOL and m4, readers are equipped to maintain older systems and gain a broader perspective on problem-solving techniques. Whether you are a seasoned developer, a software historian, or just curious about the roots of modern coding, this book illuminates the rich tapestry of programming's past and sheds light on its present and future.Venture into overlooked and long-forgotten programming languages that once stood at the forefront of technological innovation. From the stack-oriented design of Forth to the early object-oriented experiences in Simula, bridge the ever-widening chasm between contemporary code and legacy systems. If you find yourself ensnared by the challenges of updating or maintaining older systems, this book is the lifeline.Unravel the fabric of seven programming languages by following practical tutorials and building small applications. Find out how Simula led to C++, what made APL so powerful, and why we still use m4 even to this day. Along the way, you'll broaden your problem-solving horizons, and develop diverse approaches to computation that still ripple through today's coding landscape. By the final chapter, you won't merely possess historical knowledge, you'll be equipped with production ready skills capable of tackling projects that interface with legacy code.Trace the evolutionary lineage of programming to gain a predictive edge in anticipating future trends. After all, this isn't just a nostalgic trip - it's a roadmap to the past, present, and future of coding.What You Need:Various software tools and compilers are available for enthusiasts eager to explore the once-forgotten languages detailed in this book. Guidance is provided primarily for Linux users on accessing these older programming languages. This collection includes languages like m4, integral to the GNU Autoconf system, and other languages incorporated into the GNU ecosystem, such as APL, Forth, and Simula. For those with a penchant for nostalgia, there is the SNOBOL4.2, which can run using the DOSBox MS-DOS emulator. KRoC, an Occam compiler, works only with 32-bit architectures or in a docker. Suffolk University maintains Starset's modern implementation. Readers can find links to repositories of these development tools, ensuring they can fully immerse themselves in this intriguing journey.
Test-Driven React
by Trevor BurnhamTurn your React project requirements into tests and get the feedback you need faster than ever before. Combine the power of testing, linting, and typechecking directly in your coding environment to iterate on React components quickly and fearlessly! You work in a loop: write code, get feedback, adjust. The faster you get feedback, the faster your code improves and the more effective you become as a developer. And that feedback comes from testing. The conceptual elegance of React has opened the door to a new generation of web testing: clear, expressive, and lightning fast. That makes React a perfect fit for test-driven development (TDD), a methodology in which tests are a blueprint instead of an afterthought. Each chapter presents new projects to challenge you and new tools to help you: Write fast, easy-to-understand tests with Vitest and React Testing Library.Keep your code tidy with ESLint and Prettier.Perform every task you need from a single window within VS Code.See your test output directly in your code with Wallaby.Style components in a test-friendly way with styled-components. Stay focused on what's important by running your tests continuously in the background.Generate beautiful documentation with Storybook, and update it on every commit with GitHub Actions. The second edition of Test-Driven React has been extensively revised to reflect the latest tools and techniques for React development, including TypeScript. Each chapter presents new projects to challenge you and new tools to help you find and fix type errors without even running your code. What You Need: You'll need a working knowledge of JavaScript or TypeScript, and a computer running macOS, Windows, or Linux.
Become a Great Engineering Leader
by Dr James StanierAs you step into senior engineering leadership roles, you need to make an impact, and you need to make it fast. This book will uncover the secrets of what it means to be a successful director of engineering, VP of engineering, or CTO. With a hands-on, practical approach, it will help you understand and develop the skills that you need, ranging from how to manage other managers, to how to define and execute strategy, how to manage yourself and your limited time, and how to navigate your own career journey to your desired destination. You can become a great engineering leader, the kind that runs a healthy, ambitious, and efficient organization that builds quality products, and this practical guide will provide you with the skills to get there. With this book you'll uncover the tools, techniques, and secrets to being a successful and effective engineering executive. Starting with the roles and responsibilities of directors, VPs, and CTOs, explore their positions in the org chart and understand how they engage on tactical, operational, and strategic levels to deliver great products at scale. Dive into the tools and techniques that you need to be successful. Understand how to frame and allocate your time, how to play finite and infinite games, how to position and manage senior individual contributors, and how to get the best from your peers, your manager, and your counterparts that you collaborate with in other disciplines. Understand how to communicate at scale and then raise the bar through effective performance management. Get strategic: define, create, and execute your vision for your organization that stands the test of time. Understand the typical monthly, quarterly, and yearly cycles that companies go through and how to use them to your advantage. Tackle planning and budgets and understand how to make both work for you. Navigate wartime and peacetime successfully by adapting your priorities and leadership style. Plan out your career journey by understanding that it's never, ever a straight line to get to where you want to go. It's time for us to lift the lid on effective senior leadership. What You Need: There are no prerequisites for this book. However, it is aimed at engineering managers, so some experience or interest in management is useful.
Machine Learning in Elixir
by Sean MoriarityStable Diffusion, ChatGPT, Whisper - these are just a few examples of incredible applications powered by developments in machine learning. Despite the ubiquity of machine learning applications running in production, there are only a few viable language choices for data science and machine learning tasks. Elixir's Nx project seeks to change that. With Nx, you can leverage the power of machine learning in your applications, using the battle-tested Erlang VM in a pragmatic language like Elixir. In this book, you'll learn how to leverage Elixir and the Nx ecosystem to solve real-world problems in computer vision, natural language processing, and more. The Elixir Nx project aims to make machine learning possible without the need to leave Elixir for solutions in other languages. And even if concepts like linear models and logistic regression are new to you, you'll be using them and much more to solve real-world problems in no time. Start with the basics of the Nx programming paradigm - how it differs from the Elixir programming style you're used to and how it enables you to write machine learning algorithms. Use your understanding of this paradigm to implement foundational machine learning algorithms from scratch. Go deeper and discover the power of deep learning with Axon. Unlock the power of Elixir and learn how to build and deploy machine learning models and pipelines anywhere. Learn how to analyze, visualize, and explain your data and models. Discover how to use machine learning to solve diverse problems from image recognition to content recommendation - all in your favorite programming language. What You Need: You'll need a computer with a working installation of Elixir v1.12 and Erlang/OTP 24. For some of the more compute intensive examples, you'll want to use EXLA, which currently only supports x86-64 platforms. While not explicitly required, some examples will demonstrate programs running on accelerators such as CUDA/ROCm enabled GPUs and Google TPUs. Most of these programs will still run fine on a regular CPU, just for much longer periods of time.
Automate Your Home Using Go
by Mike Riley Ricardo GerardiTake control of your home and your data with the power of the Go programming language. Build extraordinary and robust home automation solutions that rival much more expensive, closed commercial alternatives, using the same tools found in high-end enterprise computing environments. Best-selling Pragmatic Bookshelf authors Ricardo Gerardi and Mike Riley show how you can use inexpensive Raspberry Pi hardware and excellent, open source Go-based software tools like Prometheus and Grafana to create your own personal data center. Using the step-by-step examples in the book, build useful home automation projects that you can use as a blueprint for your own custom projects. With just a Raspberry Pi and the Go programming language, build your own personal data center that coordinates and manages your home automation, leveraging the same high-powered software used by large enterprises. The projects in this book are easy to assemble, no soldering or electrical engineering expertise required. Build a temperature monitor that can send alerts any time defined thresholds are exceeded and report the temperature readings on a time-based series chart. Change the color of lights to visually indicate the current outdoor weather status. Create a networked motion detector that triggers an alert any time motion is detected, such as a door opening or closing, a pet wandering around, or deliveries or visitors arriving on your front porch. Even have these triggers initiate a more complex Go-based automation sequence. Integrate a small, high-resolution camera into a bird feeder that takes excellent, up-close photos whenever a bird perches at the feeder, and broadcasts them to your Discord server where your family and friends can see these wildlife captures in real time. Control your home with hardware you configure, and manage it with Go code that you create and modify any time you want to enhance your home automation capabilities. What You Need: Readers should be familiar with the Go programming language and have working knowledge of Linux. Free, open source Go-based libraries and utilities are available for download from the Internet. Readers will also need a working Raspberry Pi 3+ or higher, and a Pi Pico W microcontroller. Several other inexpensive electronic parts (touch sensors, motion detectors) are also needed for some of the projects. A Philips Hue base lighting system is also needed for the weather monitor project.
Server-Driven Web Apps with htmx
by R. Mark Volkmannhtmx is a library that adds logic and server interaction to HTML; you get the effect of using a front-end SPA framework without writing front-end code. Use any server-side programming language and framework to build server applications with endpoints that simply return snippets of HTML. Dynamically update portions of the current web page from HTTP responses. Add interactivity with JavaScript and libraries such Alpine and _hyperscript. Make your apps more secure by escaping user-supplied content and specifying a Content Security Policy. Go beyond basic HTTP requests with WebSockets and server-sent events. The htmx JavaScript library gives you a new way to craft web applications. The htmx approach differs significantly from that of the currently popular single-page application (SPA) frameworks; rather than write a bunch of JavaScript, you simply annotate HTML elements before you send them to the browser. The resulting code is easier to understand and modify, and because it downloads less to the browser and doesn't need JSON creation and parsing, you'll find it performs better, too. Rethink web application design; write code in any language that simply responds to requests with htmx snippets.Dynamically update portions of the current web page directly from the server.Implement common patterns such as lazy loading, input validation, CSS transitions, active search, optimistic updates, pagination, infinite scroll, polling, and click-to-edit.Add interactivity with JavaScript and libraries such as Alpine and _hyperscript.Use the htmx JavaScript API to simplify DOM operations.Make your web apps more secure: escape user-supplied content, use Subresource Integrity hashes, and enforce a Content Security Policy.Go beyond the basic HTTP request/response pattern with WebSockets and server-sent events.Discover a simpler way to implement web applications that emphasizes web fundamentals.What You Need:A modern web browser and the ability to build and run a local HTTP server using the server-side language and framework of your choice.The code examples are fully compatible with htmx 2.0.
The Stress Equation
by Marcus LagreWorkplace stress is not the weakness of individuals; it's caused by systemic problems. Armed with the insights in this book, you can identify, analyze, and systematically reduce the factors that lead to poor health, low productivity, and personal burnout. This book gives you a framework for understanding stress, and a vocabulary to make it easier to discuss it among colleagues. Stress can be fixed; find out how. The interviewer asks, "How well do you cope with stress?" Your response should be, "Let's fix your environment so we don't have to." Work-related stress is one of the leading causes of mental illness among white-collar workers. It hurts companies, projects, and (most importantly) people! Stress is a burden that's created when teams stop working well. The Stress Equation is a model and a tool to help talk about stress as a systemic issue. By exploring how pressure, complexity, and security interact in software teams, we move focus away from the individual, so that we can talk about stress from a team and organizational perspective. By exploring external factors, we discuss how to solve problems rather than cope with the consequences. Whether you're an individual feeling stressed or a manager who can help, you'll learn the causes of, fixes for, and how to talk about stress. We regulate pressure by how we decide how much work we have to do and when it needs to be finished. Complexity is decided by how we handle our product and organization design. Our security is less about our pay and benefits, and more about the support and trust we feel.Stress should not be a given. Instead, it's a symptom of a diseased organization. With this book, you can begin the healing process.What You Need:No special requirements.
A Common-Sense Guide to Data Structures and Algorithms in JavaScript, Volume 1: Level Up Your Core Programming Skills
by Jay WengrowIf you thought data structures and algorithms were all just theory, you're missing out on what they can do for your JavaScript code. Learn to use Big O notation to make your code run faster by orders of magnitude. Choose from data structures such as hash tables, trees, and graphs to increase your code's efficiency exponentially. With simple language and clear diagrams, this book makes this complex topic accessible, no matter your background. Every chapter features practice exercises to give you the hands-on information you need to master data structures and algorithms for your day-to-day work. Algorithms and data structures are much more than abstract concepts. Mastering them enables you to write code that runs faster and more efficiently, which is particularly important for today's web and mobile apps. Take a practical approach to data structures and algorithms, with techniques and real-world scenarios that you can use in your daily production code. The JavaScript edition uses JavaScript exclusively for all code examples, exercises, and solutions. Use Big O notation to measure and articulate the efficiency of your code, and modify your algorithm to make it faster. Find out how your choice of arrays, linked lists, and hash tables can dramatically affect the code you write. Use recursion to solve tricky problems and create algorithms that run exponentially faster than the alternatives. Dig into advanced data structures such as binary trees and graphs to help scale specialized applications such as social networks and mapping software. You'll even encounter a single keyword that can give your code a turbo boost. Practice your new skills with exercises in every chapter, along with detailed solutions. Use these techniques today to make your JavaScript code faster and more scalable. What You Need: Certain code examples take advantage of recently introduced JavaScript features. Therefore, it's important to use a JavaScript environment that supports ECMAScript 6+ or a newer version.
Programming WebRTC
by Karl StolleyBuild your own video chat application - but that's just the beginning. With WebRTC, you'll create real-time applications to stream any kind of user media and data directly from one browser to another, all built on familiar HTML, CSS, and JavaScript. Power real-time activities like text-based chats, secure peer-to-peer file transfers, collaborative brainstorming sessions - even multiplayer gaming. And you're not limited to two connected users: an entire chapter of the book is devoted to engineering multipeer WebRTC apps that let groups of people communicate in real time. You'll create your own video conferencing app. It's all here. WebRTC is an API exposed in all modern web browsers. After almost a decade of development, the WebRTC specification was finalized, and this book provides faithful coverage of that finalized specification. You'll start by building a basic but complete WebRTC application for video chatting. Chapter by chapter, you'll refine that app and its core logic to spin up new and exciting WebRTC-powered apps that will have your users sharing all manner of data with one another, all in real time. No third-party libraries or heavy downloads are required for you or your users: you'll be writing and strengthening your knowledge of vanilla JavaScript and native browser APIs.You'll learn how to directly connect multiple browsers over the open internet using a signaling channel. You will gain familiarity with a whole set of Web APIs whose features bring WebRTC to life: requesting access to users' cameras and microphones; accessing and manipulating arbitrary user files, right in the browser; and web storage for persisting shared data over the life of a WebRTC call. Like any Web API, WebRTC doesn't enjoy a perfect implementation in any browser. But this book will guide you in writing elegant code to the specification, with backward-compatible fallback code for use in almost all modern browsers.Use WebRTC to build the next generation of web applications that stream media and data in real time, directly from one user to another - all by working in the browser.What You Need:Readers need a text editor, an up-to-date copy of Chrome or Firefox, and a POSIX-style command-line shell. They'll also need to install a little bit of open-source software, especially Node.js. All necessary setup is covered in full in the book's introductory chapter.
High Performance PostgreSQL for Rails: Reliable, Scalable, Maintainable Database Applications
by Andrew AtkinsonBuild faster, more reliable Rails apps by taking the best advanced PostgreSQL and Active Record capabilities, and using them to solve your application scale and growth challenges. Gain the skills needed to comfortably work with multi-terabyte databases, and with complex Active Record, SQL, and specialized Indexes. Develop your skills with PostgreSQL on your laptop, then take them into production, while keeping everything in sync. Make slow queries fast, perform any schema or data migration without errors, use scaling techniques like read/write splitting, partitioning, and sharding, to meet demanding workload requirements from Internet scale consumer apps to enterprise SaaS. Deepen your firsthand knowledge of high-scale PostgreSQL databases and Ruby on Rails applications with dozens of practical and hands-on exercises. Unlock the mysteries surrounding complex Active Record. Make any schema or data migration change confidently, without downtime. Grow your experience with modern and exclusive PostgreSQL features like SQL Merge, Returning, and Exclusion constraints. Put advanced capabilities like Full Text Search and Publish Subscribe mechanisms built into PostgreSQL to work in your Rails apps. Improve the quality of the data in your database, using the advanced and extensible system of types and constraints to reduce and eliminate application bugs. Tackle complex topics like how to improve query performance using specialized indexes. Discover how to effectively use built-in database functions and write your own, administer replication, and make the most of partitioning and foreign data wrappers. Use more than 40 well-supported open source tools to extend and enhance PostgreSQL and Ruby on Rails. Gain invaluable insights into database administration by conducting advanced optimizations - including high-impact database maintenance - all while solving real-world operational challenges. Take your new skills into production today and then take your PostgreSQL and Rails applications to a whole new level of reliability and performance. What You Need: A computer running macOS, Linux, or Windows and WSL2PostgreSQL version 16, installed by package manager, compiled, or running with DockerAn Internet connection
C++ Brain Teasers: Exercise Your Mind
by Anders Schau KnattenC++ is famous for getting all the default behaviors wrong and for sometimes making demons fly out of your nose. Through 25 puzzles, from the useful to the outright weird, we explore some of C++'s most interesting quirks. How does initialization actually work? Do temporaries even exist? Why is `+!!"" ` a valid expression in C++? As you work through each puzzle, you will peel off some of the layers of complexity of C++, getting a fundamental understanding of how the language works. This will help you write better code and recognize issues more easily while debugging. Each puzzle in the book is a complete, seemingly simple C++ program, but can you figure out the output for each, or will the answers stump you? Most of the programs compile and have deterministic, though sometimes surprising, output. Some might, however, have undefined behavior, where anything can happen, including making demons fly out of your nose! Yet others might have unspecified behavior with output that is not completely deterministic; we just know nothing as bad as nasal demons will happen. All puzzles are accompanied by detailed discussions, taking a look under the hood at what exactly is going on to help you understand more about C++'s unexpected behaviors, as well as fundamental concepts like initialization, overload resolution, and implicit conversions. For the non-deterministic cases, we'll explore some typical behaviors one can expect to see in practice, what causes them, and why they shouldn't be relied on. After working through the book, you'll have tools and techniques to help you write better and safer code, and a better understanding of the fundamentals of the language, the background for some of C++'s apparent weirdness, and a better feel for identifying bugs and unsafe code in your own programs. What You Need: The book assumes basic knowledge of C++. If you want to run the programs yourself, you can use either a local C++ compiler or the online compilers at https://godbolt.org.
Effective Go Recipes
by Miki TebekaProgrammers love Go because it is lightweight, easy to work with, and easy to read. Go gives you the benefits of dynamically typed languages (speed of development) while keeping the upsides of strongly typed languages (security and performance). Go is a simple language, but programming in Go is about more than just mastering syntax. There's an art to using Go effectively. Squeeze out the full use of advanced networking and multi-core power for which Go was designed. Save precious coding hours with recipes that help you manage objects, collect garbage, and safely use memory. Tackle Unicode, concurrency, and serialization with ease. All the clean, reusable solutions you need for a wide variety of problems common to Go development. Outfitted with these recipes, your next apps will be more polished and more maintainable than ever. Start out by tackling time and see how the Go time packager provides types that will do most of the heavy lifting for you. Next, work on recipes tailored to the nuances of processing text, like normalizing strings to avoid bugs. From there, whip up some functions on-the-fly and store functions in variables and data structures. Ever wondered why Go seems to be peppered with error handling? Working through the next recipes, you'll discover the benefits, which include more robust code. In the section on HTTP, you'll learn tricks like running multiple HTTP servers on the same port and setting timeouts. With concurrency recipes, you'll limit the number of goroutines to improve performance, give your code awareness of timeouts, and decide when to keep your code sequential instead of making it concurrent. Throughout the book, you'll make Go sizzle following simple recipes and tweaking them to fit your own apps. Using tools like strong typing and concurrency primitives, build a Go codebase that stays maintainable at scale.What You Need:You should know the Go language syntax and have some experience in programming.You will need a Go SDK, a Git client, and for some of the chapters, a C compiler.
C Brain Teasers
by Dan GookinYou thought you knew C, but can you solve 25 puzzles in this popular programming language? Noted C programmer and author Dan Gookin provides a series of pointed questions, puzzles, and problems to keep your C programming skills sharp. Each one will provide insight into various aspects of handling strings, numeric operations, and other activities, giving you techniques to take the best advantage of all C has to offer. Challenge yourself, and get to know some powerful tricks and details for writing better, faster, more accurate C code. Most C programming books present the information sequentially, teaching you the right way to code and only rarely describing what could go wrong. In this book, the goal is to find out what did go wrong - or what potentially goes right. Explore interesting and unusual programming concepts and approaches with small, to-the-point, programs and exercises. Hone your C programming skills and expand your knowledge. By working through the brain teasers in this book, you'll fill in gaps in your knowledge and work with advanced concepts such as pointers and recursion. All of the teaser topics were selected to give you food for thought, explaining the technical details behind each puzzle. Look at a code sample and try to guess what output it will give. Code it yourself and see the result. Is it what you expected? Then read the author's lighthearted explanation of exactly why the language does what it does, and how you can take advantage of it. You'll come away with a much better understanding of how the language works, and how to use it for efficient and effective programming. What You Need: You need to know the basics of coding in C, and have an environment for compiling and executing your C code. Any Windows, MacOS, or Linux system with a C compiler does the job. Use the terminal window for traditional C programming. Or obtain an Integrated Development Enviornment (IDE) such as Visual Studio Code, which contains all the software tools you need: Editor, Compiler, and Output.
JavaScript Brain Teasers
by Faraz K. KelhiniIf you've ever felt the exhilaration of cracking a thorny problem or the joy of witnessing elegant code that challenges your mind, then this book is tailor-made for you. Prepare yourself to dive into a diverse array of mind-bending JavaScript brain teasers. Each puzzle is more than just a code exercise; it's a gateway to unlocking new insights and honing your abilities. As you work through the challenges, you'll learn to think pragmatically, optimize your code for efficiency, and avoid hidden pitfalls that can catch you off guard. What's more - the puzzle format will help you remember what you've learned! Over the years, JavaScript has gained a bit of a reputation for its quirky and unique characteristics. It's important for developers to be aware of these quirks to write more robust and predictable JavaScript code. In this book, we invite you on a journey designed to unveil the intricate nuances and peculiarities that define the language's essence. Learn how to simulate function overloading, embed hidden information within objects, develop self-contained functions capable of maintaining their own local state, generate number sequences using functional programming, handle exotic forms of IIFEs, and prevent loss of precision when dealing with large numbers. Grasp concepts like closures, hoisting, symbols, execution context, event queue, text normalization, and more, one puzzle at a time. Discover how to create your own custom objects that function as shortcuts, accurately calculate the length of emojis and Unicode characters, master the usage of the "this" keyword, leverage bitwise operators, and convert color names to hex notation for universal use across various platforms. Plus, steer clear of those usual traps and blunders that trip up JavaScript developers. Forget passive learning. With JavaScript Brain Teasers, you'll actively engage with code puzzles that require creative thinking and problem-solving, which help you memorize difficult concepts.What You Need:Certain code examples take advantage of recently introduced JavaScript features. Therefore, it's important to use a JavaScript environment that supports ECMAScript 2020 or a newer version. The simplest way to experiment with the examples is use your browser's console. Just make sure your browser is up-to-date.
Agile Retrospectives, Second Edition
by David Horowitz Esther Derby Diana LarsenIn an uncertain and complex world, learning is more important than ever before. In fact, it can be a competitive advantage. Teams and organizations that learn rapidly deliver greater customer value faster and more reliably. Furthermore, those teams are more engaged, more productive, and more satisfied. The most effective way to enable teams to learn is by holding regular retrospectives. Unfortunately, many teams only get shallow results from their retrospectives. This book is filled with practical advice, techniques, and real-life examples that will take retrospectives to the next level--whether your team is co-located, hybrid, or remote. This book will help team leads, scrum masters, and coaches engage their teams to learn, improve, and deliver greater results. For nearly two decades, scrum masters, team leads, and coaches have relied on the first edition of Agile Retrospectivesas an essential resource to facilitate better retrospectives. This edition builds on recent research, reflects the authors' experiences over two decades, and shares wisdom gleaned from the global retrospective community. Find practical advice to level up retrospective skills. Address the challenges of remote and hybrid retrospectives head on. Take advantage of expanded guidance on designing and facilitating retrospectives--based on the questions and concerns of practitioners worldwide. Gain insight into choosing a broad or narrow focus for retrospectives. Explore how to use both objective and subjective data to enable more effective conversations. Learn how to make decisions that stick. Understand the importance of psychological safety and how to foster it in retrospectives. Elevate issues and engage managers in systemic change. Learn from many real-life stories that demonstrate how our advice has impacted retrospectives at organizations around the globe. Finally, find a set of recommended flows that reveal the authors' thought process in designing retrospectives for scenarios teams faced in real life.
Your Code as a Crime Scene, Second Edition
by Adam TornhillJack the Ripper and legacy codebases have more in common than you'd think. Inspired by forensic psychology methods, you can apply strategies to identify problems in your existing code, assess refactoring direction, and understand how your team influences the software architecture. With its unique blend of criminal psychology and code analysis, Your Code as a Crime Scene arms you with the techniques you need to take on any codebase, no matter what programming language you use. Software development might well be the most challenging task humanity ever attempted. As systems scale up, they also become increasingly complex, expensive to maintain, and difficult to reason about. We can always write more tests, try to refactor, and even fire up a debugger to understand complex coding constructs. That's a great starting point, but you can do so much better. Take inspiration from forensic psychology techniques to understand and improve existing code. Visualize codebases via a geographic profile from commit data to find development hotspots, prioritize technical debt, and uncover hidden dependencies. Get data and develop strategies to make the business case for larger refactorings. Detect and fix organizational problems from the vantage point of the software architecture to remove bottlenecks for the teams. The original Your Code as a Crime Scene from 2014 pioneered techniques for understanding the intersection of people and code. This new edition reflects a decade of additional experience from hundreds of projects. Updated techniques, novel case studies, and extensive new material adds to the strengths of this cult classic. Change how you view software development and join the hunt for better code! What You Need: You need to be comfortable reading code. You also need to use Git (or Subversion, Mercurial or similar version-control tool).
Text Processing with JavaScript
by Faraz K. KelhiniYou might think of regular expressions as the holy grail of text processing, but are you sure you aren't just shoehorning them in where standard built-in solutions already exist and would work better? JavaScript itself provides programmers with excellent methods for text manipulation, and knowing how and when to use them will help you write more efficient and performant code. From extracting data from APIs to calculating word counts and everything in between, discover how to pick the right tool for the job and make the absolute most of it every single time. Whether you're a beginner or an advanced programmer, this up-to-date guide will save you a ton of time when dealing with text. With Text Processing with JavaScript, you'll find a collection of tiny programs, each demonstrating a string manipulation approach in JavaScript. You'll also focus squarely on the practical aspects of text processing with JavaScript - that is, what each technique is designed to accomplish and how to use it in your program. Discover how to extract data from APIs and web pages, apply spelling corrections, convert and format currencies, and remove HTML tags from text. Learn to intersect tables, copy text to the clipboard, extract lists from text, and highlight sentences that contain a specific word. Find duplicate words and fix them automatically, modify a copy of an existing regex literal, match the beginning or end of a string, and remove all comments from JavaScript and HTML files with ease. Match non-ASCII words, calculate the word count of an article in any language, and more. Become a JavaScript expert and master chef of text processing with this collection of hands-on and production-ready recipes.
A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 1: Level Up Your Core Programming Skills
by Jay Wengrowp>If you thought data structures and algorithms were all just theory, you're missing out on what they can do for your Python code. Learn to use Big O notation to make your code run faster by orders of magnitude. Choose from data structures such as hash tables, trees, and graphs to increase your code's efficiency exponentially. With simple language and clear diagrams, this book makes this complex topic accessible, no matter your background. Every chapter features practice exercises to give you the hands-on information you need to master data structures and algorithms for your day-to-day work.Algorithms and data structures are much more than abstract concepts. Mastering them enables you to write code that runs faster and more efficiently, which is particularly important for today's web and mobile apps. Take a practical approach to data structures and algorithms, with techniques and real-world scenarios that you can use in your daily production code. The Python edition uses Python exclusively for all code examples, exercise, and solutions.Use Big O notation to measure and articulate the efficiency of your code, and modify your algorithm to make it faster. Find out how your choice of arrays, linked lists, and hash tables can dramatically affect the code you write. Use recursion to solve tricky problems and create algorithms that run exponentially faster than the alternatives. Dig into advanced data structures such as binary trees and graphs to help scale specialized applications such as social networks and mapping software. You'll even encounter a single keyword that can give your code a turbo boost. Practice your new skills with exercises in every chapter, along with detailed solutions.Use these techniques today to make your Python code faster and more scalable.
From Ruby to Elixir
by Stephen BusseyElixir will change the way you think about programming. Use your Ruby experience to quickly get up to speed so you can see what all of the buzz is about. Go from zero to production applications that are reliable, fast, and scalable. Learn Elixir syntax and pattern matching to conquer the basics. Then move onto Elixir's unique process model that offers a world-class way to go parallel without fear. Finally, use the most common libraries like Ecto, Phoenix, and Oban to build a real-world SMS application. Now's the time. Dive in and learn Elixir. Whether you're a seasoned Ruby developer looking to expand your skill set or a programming beginner looking for a solid foundation in Elixir, this book has what you need to get up to speed quickly. Elixir is a functional language with a fairly small footprint. This makes it easier to learn and put into production than other languages. Plus, it's built on forty-year-old foundations that give your applications rock-solid stability. The first part of this book is all about developing expertise in the language. Learn about the core data types, build application data structures, enumerate over data, and use pattern matching to control the flow of an application. Elixir has an amazing process model that allows for (actually) easy parallel processing. Learn how to tap into this process model so you can leverage that power yourself. The second part of this book builds a real-world application using the most important libraries in a web developer's toolbox. Each library is compared to its similar Ruby library so you'll quickly see similarities and differences. We'll use Ecto, Phoenix, and Oban to build a SMS application powered by Twilio. What are you waiting for? Tap into your Ruby knowledge and start building scalable Elixir applications today. What You Need: You'll need Elixir 1.14+ and Erlang/OTP 24+ installed on a Mac OS X, Linux, or Windows machine.