Browse Results

Showing 776 through 800 of 100,000 results

Seven Obscure Languages in Seven Weeks

by Dmitry Zinoviev

Immerse 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 Burnham

Turn 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 Stanier

As 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 Moriarity

Stable 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 Gerardi

Take 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 Volkmann

htmx 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 Lagre

Workplace 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 Wengrow

If 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 Stolley

Build 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 Atkinson

Build 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 Knatten

C++ 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 Tebeka

Programmers 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 Gookin

You 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. Kelhini

If 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 Larsen

In 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 Tornhill

Jack 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. Kelhini

You 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 Wengrow

p>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 Bussey

Elixir 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.

Programming Ruby 3.3

by Noel Rappin Dave Thomas

Ruby is one of the most important programming languages in use for web development. It powers the Rails framework, which is the backing of some of the most important sites on the web. The Pickaxe Book, named for the tool on the cover, is the definitive reference on Ruby, a highly-regarded, fully object-oriented programming language. This updated edition is a comprehensive reference on the language itself, with a tutorial on the most important features of Ruby - including pattern matching and Ractors - and describes the language through Ruby 3.3. Would you like to go from first idea to working code much, much faster? Do you currently spend more time satisfying the compiler instead of your clients or end users? Are you frustrated with demanding languages that seem to get in your way instead of helping you get the work done? Are you using Rails and want to dig deeper into the underlying Ruby language? If so, then we've got a language and book for you! Ruby is a fully object-oriented language. The combination of the power of a pure object-oriented language with the convenience of a scripting language makes Ruby a favorite tool of programmers that want to get things done quickly and cleanly. This comprehensive reference manual for Ruby includes a description of the most important standard library modules, built-in classes, and modules. It also includes all the new and changed syntax and semantics introduced through Ruby 3.3, including pattern matching and Ractors, and describes the language through Ruby 3.3. What You Need: This book assumes you have a basic understanding of object-oriented programming. In general, Ruby programmers tend to favor the the command line for running their code, and they tend to use text editors rather than IDEs. Ruby runs on Windows, Linux, and MacOS.

Charged Bodies: People, Power, And Paradox In Silicon Valley

by Thomas Mahon

At the heart of Silicon Valley's meteoric rise is a story etched in the lives of those who shaped it and those who were forever transformed by it. Author Tom Mahon provides an insider's perspective on the birth of the semiconductor industry, which sparked the region's transformation from sleepy farmland to the heart and soul of the high-tech revolution. Through twenty-five extended, in-person interviews you'll meet a diverse cast of characters whose goal was to create technology and tools in service to humanity. In the Afterword to this edition, the author questions whether they accomplished their objectives and urges readers to rise up and rethink technology. What did it take to create the atmosphere that transformed rich farmland into the wealthy center of high-tech? Five climates lined up in just the right way. Educational institutions (Stanford and Berkeley); an attractive location with balmy, Mediterranean-like weather; a history of technology development (Federal Telegraph in the early twentieth century); financial risk taking (the gold rush); and a cultural climate near the center of an ideological revolution (the hippie movement). The Santa Clara Valley had them all. In spades. Before personal computers, or the Internet, or social media came *chips*. Inventive minds took advantage of the quad-electron structure and unique properties - insulative and conductive - of silicon to create semiconductors. But Charged Bodies is more than just the story of new technologies emerging from "The Valley of the Heart's Delight." Using an approach like The Canterbury Tales, Tom Mahon captures the spirit of Silicon Valley in the 80s through the stories of the people all around him. The inventors and bankers have their say. But so do a range of other people who lived through that transition. Listen as artists and hackers, detectives and journalists, lawyers and scientists, flappers and philosophers tell the story of Silicon Valley in their own words.

Currently Away

by Bruce Tate

The walls were closing in on Bruce and Maggie Tate. Isolation forced on them by the pandemic, combined with America's growing political factionalism, threatened their bonds with community and family. Something had to change. Maggie's surprising answer: buy a boat, learn to pilot it, and embark on the Great Loop. For nine months Bruce and Maggie navigated rivers, coastal waters, lakes, locks, and loss. Against all odds, they conquered the Loop, and along the way found common cause across political divides with new friends while blowing the walls off their world. Bruce and Maggie Tate were spiraling downward. Normally outgoing and cheerful, Maggie was broken down by pandemic isolation. Bruce, facing asthma, heart disease and Covid-related professional issues, was sure that the virus and his comorbidities would kill him. And the plant-based diet he had just started made him wish it would hurry up. Meanwhile, their country seemed to be crumbling into warring factions. That was when Maggie made a life-changing decision. With no experience, knowing little about seafaring, inboard motors, or navigation, she and Bruce and the family dog decided to take on the Great Loop, a six-thousand-mile journey down inland rivers, around the Gulf and Atlantic coasts, and across the Great Lakes. They had to navigate canals and locks, were threatened by dangerous seas, and even had to deal with heartbreaking loss. But along the way, they made new lifelong friends and were forever changed. When, in a time of great divisiveness, two broken people took on the challenge of their lives, against all odds they found common cause across political divides and made themselves whole again.

Ruby on Rails Background Jobs with Sidekiq

by David B. Copeland

One of the best ways to improve your Rails app’s performance is to use background jobs with Sidekiq. While Sidekiq is easy to get set up, you need to do more than just move code around to reap the benefits. In this book, you’ll get solutions to what sort of code should go into a Sidekiq job and how to manage those jobs. You’ll create a Sidekiq configuration that will serve as a solid foundation for your app, including how to be notified when jobs inevitably fail. You’ll then tame alerting fatigue by designing idempotent jobs that can be safely retried in the face of the types of transient failures that are common in networked applications, all without alerting you until action is needed. With that foundation, you’ll get a conceptual framework for general monitoring and alerting around your Sidekiq installation and the Redis database it uses, as well as practical tips for organizing the code around your Sidekiq jobs. You’ll also learn valuable testing strategies for code that uses Sidekiq jobs. In no time at all you’ll build a Rails app using Sidekiq that is efficient, manageable, and sustainable. Using Sidekiq for background jobs is a great way to scale and grow your app. This book will give you a solid, practical foundation for creating resilient, well-tested, self-healing code that uses background jobs. You’ll be able to simulate real-world failure modes and learn how to write idempotent code that can be safely run with Sidekiq. Buy this DRM-free Pragmatic Bookshelf ebook today!Using Sidekiq for background jobs is a great way to scale and grow your app. This book will give you a solid, practical foundation for creating resilient, well-tested, self-healing code that uses background jobs. You’ll be able to simulate real-world failure modes and learn how to write idempotent code that can be safely run with Sidekiq.

From Objects to Functions: Build Your Software Faster And Safer With Functional Programming And Kotlin

by Uberto Barbini

Build applications quicker and with less effort using functional programming and Kotlin. Learn by building a complete application, from gathering requirements to delivering a microservice architecture following functional programming principles. Learn how to implement CQRS and EventSourcing in a functional way to map the domain into code better and to keep the cost of change low for the whole application life cycle. If you're curious about functional programming or you are struggling with how to put it into practice, this guide will help you increase your productivity composing small functions together instead of creating fat objects. Switching to the functional paradigm isn't easy when you're used to object-oriented programming. You need more than just lambdas and mapping over collections to get a declarative style and disentangle the state from the computations. Use transformations and compositions to help you write less code with better results. Boost your productivity and harness the power of functional programming by creating real-world applications rather than focusing on theoretical concepts. Work through a series of short exercises to find and compose pure functions, and create data structures that work like algebra. Get rid of mutable state in your software to eliminate the main source of bugs. Apply CQRS and EventSourcing patterns to translate stakeholder requirements into functional design and then into code. See how Kotlin's easy-to-learn syntax and functional-friendly approach make it a great option for a pragmatic language that integrates well with existing Java code and libraries. Leverage functional programming to build and deliver robust applications in less time and with fewer defects. What You Need: The code in this book is designed to allow you to build your application from scratch on Windows, Mac and Linux. You will need a recent IDE, we recommend IntelliJ Community Edition, and Kotlin 1.3.x or later.

Functional Programming in Java

by Venkat Subramaniam

Imagine writing Java code that reads like the problem statement, code that's highly expressive, concise, easy to read and modify, and has reduced complexity. With the functional programming capabilities in Java, that's not a fantasy. This book will guide you from the familiar imperative style through the practical aspects of functional programming, using plenty of examples. Apply the techniques you learn to turn highly complex imperative code into elegant and easy-to-understand functional-style code. Updated to the latest version of Java, this edition has four new chapters on error handling, refactoring to functional style, transforming data, and idioms of functional programming. Don't struggle with the limitations of the imperative style; instead learn to combine object-oriented programming with the functional style to reduce the accidental complexity. Harness the functional programming capabilities of Java to create applications where the program reveals its intentions and your team can quickly understand and modify code to align with changing business requirements. Unlock the power of lambda expressions and the Streams API to turn the oft-written spaghetti code into highly concise, expressive, elegant, and maintainable code. See how Streams make the arduous task of parallelizing code as easy as flipping a switch when superior speed is necessary. Apply design patterns built around lambda expressions, safely manage resource allocations, use memoization, and learn to transform data into different forms, all while honoring immutability, and providing thread safety to leverage lazy evaluation for efficiency and parallel execution for performance. Move beyond the basics, explore the idioms for writing functional programs. Learn to think functionally by refactoring legacy code into the functional style. And, if your code runs aground due to failures, learn to properly handle errors the functional way.Don't drown in theory; instead learn the practical functional programming techniques to create superior Java code.What You Need:Java version 8 or newer.

Refine Search

Showing 776 through 800 of 100,000 results