Best of
Software

2020

Fundamentals of Software Architecture: An Engineering Approach


Mark Richards - 2020
    Until now. This practical guide provides the first comprehensive overview of software architecture's many aspects. You'll examine architectural characteristics, architectural patterns, component determination, diagramming and presenting architecture, evolutionary architecture, and many other topics.Authors Neal Ford and Mark Richards help you learn through examples in a variety of popular programming languages, such as Java, C#, JavaScript, and others. You'll focus on architecture principles with examples that apply across all technology stacks.

System Design Interview – An Insider's Guide


Alex Xu - 2020
    This book provides a step-by-step framework on how to tackle a system design question. It includes many real-world examples to illustrate the systematic approach with detailed steps that you can follow.What’s inside?- An insider’s take on what interviewers really look for and why.- A 4-step framework for solving any system design interview question.- 15 real system design interview questions with detailed solutions.- 188 diagrams to visually explain how different systems work.Table Of ContentsChapter 1: Scale From Zero To Millions Of UsersChapter 2: Back-of-the-envelope EstimationChapter 3: A Framework For System Design InterviewsChapter 4: Design A Rate LimiterChapter 5: Design Consistent HashingChapter 6: Design A Key-value StoreChapter 7: Design A Unique Id Generator In Distributed SystemsChapter 8: Design A Url ShortenerChapter 9: Design A Web CrawlerChapter 10: Design A Notification SystemChapter 11: Design A News Feed SystemChapter 12: Design A Chat SystemChapter 13: Design A Search Autocomplete SystemChapter 14: Design YoutubeChapter 15: Design Google DriveChapter 16: The Learning Continues

The Software Architect Elevator: Transforming Enterprises with Technology and Business Architecture


Gregor Hohpe - 2020
    In addition to making technical decisions, architects can help change the organization's structure and processes to support this transition. To do that, architects need to take the express elevator from the engine room to the penthouse, where business strategy resides.Brimming with anecdotes from actual IT transformations, this book prepares software architects, senior developers, and other IT professionals for a more complex but rewarding role in the enterprise.This book is ideal for:Architects and senior developers looking to shape the company's technology direction or assist in an organizational transformationEnterprise architects and senior technologists looking for practical advice on how to navigate technical and organizational topicsCTOs and senior technical architects who want to learn what's worked and what hasn't in large-scale architecture and transformationIT managers seeking to understand how architecture can support their technical transformation agenda

Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices


Harry Percival - 2020
    Many Python developers are now taking an interest in high-level software architecture patterns such as hexagonal/clean architecture, event-driven architecture, and strategic patterns prescribed by domain-driven design (DDD). But translating those patterns into Python isn't always straightforward.With this practical guide, Harry Percival and Bob Gregory from MADE.com introduce proven architectural design patterns to help Python developers manage application complexity. Each pattern is illustrated with concrete examples in idiomatic Python that explain how to avoid some of the unnecessary verbosity of Java and C# syntax. You'll learn how to implement each of these patterns in a Pythonic way.Architectural design patterns include:Dependency inversion, and its links to ports and adapters (hexagonal/clean architecture)Domain-driven design's distinction between entities, value objects, and aggregatesRepository and Unit of Work patterns for persistent storageEvents, commands, and the message busCommand Query Responsibility Segregation (CQRS)Event-driven architecture and reactive microservices

Software Engineering at Google: Lessons Learned from Programming Over Time


Titus Winters - 2020
    With this book, you'll get a candid and insightful look at how software is constructed and maintained by some of the world's leading practitioners.Titus Winters, Tom Manshreck, and Hyrum K. Wright, software engineers and a technical writer at Google, reframe how software engineering is practiced and taught: from an emphasis on programming to an emphasis on software engineering, which roughly translates to programming over time.You'll learn:Fundamental differences between software engineering and programmingHow an organization effectively manages a living codebase and efficiently responds to inevitable changeWhy culture (and recognizing it) is important, and how processes, practices, and tools come into play

Container Security: Fundamental Technology Concepts That Protect Containerized Applications


Liz Rice - 2020
    But how do you know if the deployment is secure? This practical book examines key underlying technologies to help developers, operators, and security professionals assess security risks and determine appropriate solutions.Author Liz Rice, Chief Open Source Officer at Isovalent, looks at how the building blocks commonly used in container-based systems are constructed in Linux. You'll understand what's happening when you deploy containers and learn how to assess potential security risks that could affect your deployments. If you run container applications with kubectl or docker and use Linux command-line tools such as ps and grep, you're ready to get started.Explore attack vectors that affect container deploymentsDive into the Linux constructs that underpin containersExamine measures for hardening containersUnderstand how misconfigurations can compromise container isolationLearn best practices for building container imagesIdentify container images that have known software vulnerabilitiesLeverage secure connections between containersUse security tooling to prevent attacks on your deployment

Micro Frontends in Action


Michael Geers - 2020
    By adopting the micro frontends approach and designing your web apps as systems of features, you can deliver faster feature development, easier upgrades, and pick and choose the technology you use in your stack. Micro Frontends in Action is your guide to simplifying unwieldy frontends by composing them from small, well-defined units. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology Micro frontends deliver the same flexibility and maintainability to browser-based applications that microservices provide for backend systems. You design your project as a set of standalone components that include their own interfaces, logic, and storage. Then you develop these mini-applications independently and compose them in the browser. About the Book Micro Frontends in Action teaches you to apply the microservices approach to the frontend. You’ll start with the core micro frontend design ideas. Then, you’ll build an e-commerce application, working through practical issues like server-side and client-side composition, routing, and maintaining a consistent look and feel. Finally, you’ll explore team workflow patterns that maximize the benefit of developing application components independently. What’s Inside -    Create a unified frontend from independent applications -    Combine JavaScript code from multiple frameworks -    Browser and server-side composition and routing -    Implement effective dev teams and project workflow About the Reader For web developers, software architects, and team leaders. About the Author Michael Geers is a software developer specializing in building user interfaces. Table of Contents PART 1 - GETTING STARTED WITH MICRO FRONTENDS 1 What are micro frontends? 2 My first micro frontends project PART 2 - ROUTING, COMPOSITION, AND COMMUNICATION 3 Composition with Ajax and server-side routing 4 Server-side composition 5 Client-side composition 6 Communication patterns 7 Client-side routing and the application shell 8 Composition and universal rendering 9 Which architecture fits my project? PART 3 - HOW TO BE FAST, CONSISTENT, AND EFFECTIVE 10 Asset loading 11 Performance is key 12 User interface and design system 13 Teams and boundaries 14 Migration, local development, and testing

The DynamoDB Book


Alex DeBrie - 2020
    

Become an Effective Software Engineering Manager


James Stanier - 2020
    As technology companies succeed and grow, so do their engineering departments. In your career, you’ll may suddenly get the opportunity to lead teams: to become a manager. But this is often uncharted territory. How can you decide whether this career move is right for you? And if you do, what do you need to learn to succeed? Where do you start? How do you know that you’re doing it right? What does “it” even mean? And isn’t management a dirty word? This book will share the secrets you need to know to manage engineers successfully.

The Tech Resume Inside Out


Gergely Orosz - 2020
    Written by hiring managers and recruiters working at large tech companies, this book is tailored for software developers, tech leads and engineering managers.The book comes with insights from more than 15 hiring managers and recruiters from the likes of Google, Facebook, Amazon, Microsoft, Uber and Spotify. It contains 3 resume templates tailored for tech, and 5 "before" and "after" real-world resume case studies.Here’s what people who have read the book shared:"I applied changes to my resume based on the book and got interviews from Facebook, Google, Stripe, and Databricks. I guess the changes partially helped get here. I'm now busy preparing for the interviews!" - Alex L, senior software engineer."Being able to represent yourself well to hiring managers when applying for jobs is half of the battle. I've never read such an actionable guide to getting your resume in order, which can be the differentiator in a crowded job market." - James StanierSVP Engineering at Brandwatch, author of Become an Effective Software Engineering Manager"I redid my CV following the advice in the book. The response rate for my applications increased by a large margin. A few weeks later, I had multiple, good offers. I just started at my new job - thank you!" - David Kiss, freelancer, senior software engineer"

Production Ready GraphQL


Marc-Andre Giroux - 2020
    Learn how to manage this complexity and make sure you keep providing a quality GraphQL API as your team or organization scales.Every language and every GraphQL implementation does things slightly differently. This book is completely language agnostic and instead focuses on concepts and patterns that are achievable no matter how you're building a GraphQL server.Think of it as a complete journey of what goes into building a GraphQL API, from design, to architectures, to implementation, and even documentation.

The Coding Career Handbook. Guides, Principles, Strategies, and Tactics – from Code Newbie to Senior Dev


Shawn Swyx Wang - 2020
    This is a comprehensive guide about the principles, strategies and tactics developers can use to build an awesome career!Career Guides.Specific advice on every career stage from Code Newbie to Junior Dev to Senior Dev, and every transition after: the First Job Hunt, going from Junior to Senior, and Beyond.Principles.The best investments are in things that don't change. We discuss timeless rules for successful default behaviour. Learn to grow your network and expertise, while you learn.Strategies.Everything to do with making big moves, from Betting on Technologies, to Career Ladders, to Software Business Models. Grow your business and personal impact!TacticsImportant, self-contained skills that you can repeatedly call on throughout your career, from Negotiating to Side Projects to Twitter to Writing.

Fixing your Scrum


Ryan Ripley - 2020
    Learn how experienced Scrum masters balance the demands of these three levels of servant leadership, while removing organizational impediments and helping Scrum teams deliver real-world value. Discover how to visualize your work, resolve impediments, and empower your teams to self-organize and deliver using advanced coaching and facilitation techniques that honor and support the Scrum values and agile principles.

Cracking the Coding Interview: 189 Programming Questions and Solutions 6th Edition


Gayle Laakmann McDowell McDowell - 2020
    

Alice and Bob Learn Application Security


Tanya Janca - 2020
    This book covers all the basic subjects such as threat modeling and security testing, but also dives deep into more complex and advanced topics for securing modern software systems and architectures. Throughout, the book offers analogies, stories of the characters Alice and Bob, real-life examples, technical explanations and diagrams to ensure maximum clarity of the many abstract and complicated subjects. Topics include:Secure requirements, design, coding, and deployment Security Testing (all forms) Common Pitfalls Application Security Programs Securing Modern Applications Software Developer Security Hygiene Alice and Bob Learn Application Security is perfect for aspiring application security engineers and practicing software developers, as well as software project managers, penetration testers, and chief information security officers who seek to build or improve their application security programs.Alice and Bob Learn Application Security illustrates all the included concepts with easy-to-understand examples and concrete practical applications, furthering the reader's ability to grasp and retain the foundational and advanced topics contained within.

The Sierra Adventure: The Story of Sierra On-Line


Shawn Mills - 2020
    The Sierra Adventure tells the story of legendary computer game company Sierra On-Line, developer of industry defining titles such as King’s Quest, Quest for Glory, and Leisure Suit Larry.Through interviews with over fifty of the key players at Sierra, management, producers, artists, designers, musicians, and marketing tell the story of Sierra, in their own words.

Building a Career in Software: A Comprehensive Guide to Success in the Software Industry


Daniel Heller - 2020
    Building a Career in Software is the solution, a comprehensive guide to the essential skills that instructors don't need and professionals never think to teach: landing jobs, choosing teams and projects, asking good questions, running meetings, going on-call, debugging production problems, technical writing, making the most of a mentor, and much more.In over a decade building software at companies such as Apple and Uber, Daniel Heller has mentored and managed tens of engineers from a variety of training backgrounds, and those engineers inspired this book with their hundreds of questions about career issues and day-to-day problems. Designed for either random access or cover-to-cover reading, it offers concise treatments of virtually every non-technical challenge you will face in the first five years of your career--as well as a selection of industry-focused technical topics rarely covered in training. Whatever your education or technical specialty, Building a Career in Software can save you years of trial and error and help you succeed as a real-world software professional.What You Will LearnDiscover every important nontechnical facet of professional programming as well as several key technical practices essential to the transition from student to professionalBuild relationships with your employerImprove your communication, including technical writing, asking good questions, and public speakingWho This Book is ForSoftware engineers either early in their careers or about to transition to the professional world; that is, all graduates of computer science or software engineering university programs and all software engineering boot camp participants.

Effective Kafka: A Hands-on Guide to Building Robust and Scalable Event-Driven Applications with Code Examples in Java


Emil Koutanov - 2020
    

OCP Oracle Certified Professional Java SE 11 Programmer I Exam Fundamentals 1Z0-815


Hanumant Deshmukh - 2020
    Unlike the previous version of the exam, the official Exam objectives released for this exam are too vague. Some candidates have reported getting questions on topics that are too advanced or are not mentioned in the objectives. Your feedback on such topics will help improve the content. 2. This book DOES NOT include mock exams. It is meant to complement Enthuware Mock Exams and should be used as a study guide before or while attempting the mock Exams. OCP Oracle Certified Professional Java SE 11 Programmer Part 1 Exam Fundamentals is a comprehensive study guide for those taking the Oracle Certified Professional Java SE 11 Programmer I Exam (Exam Code 1Z0-815). With complete coverage of 100% of the exam objectives, this book provides everything you need to know to take the exam confidently. Written by an expert with more than 20 years of industry experience, the book also helps you ace technical interviews by making you aware of things that technical managers focus on. The Java 11 exam requires you to learn new features of the language including modules, generics, and functional programming. This book covers all such topics thoroughly. The book also includes coding exercises that will get you moving on "write a lot of code" front. The book makes it easy to get your doubts cleared by including links to existing discussion on a particular topic. If the existing discussion doesn't address your doubt, you can see more clarification from the Author.

Learning Spark


Jules S. Damji - 2020
    But how can you process such varied workloads efficiently? Enter Apache Spark.Updated to include Spark 3.0, this second edition shows data engineers and data scientists why structure and unification in Spark matters. Specifically, this book explains how to perform simple and complex data analytics and employ machine learning algorithms. Through step-by-step walk-throughs, code snippets, and notebooks, you'll be able to:Learn Python, SQL, Scala, or Java high-level Structured APIsUnderstand Spark operations and SQL EngineInspect, tune, and debug Spark operations with Spark configurations and Spark UIConnect to data sources: JSON, Parquet, CSV, Avro, ORC, Hive, S3, or KafkaPerform analytics on batch and streaming data using Structured StreamingBuild reliable data pipelines with open source Delta Lake and SparkDevelop machine learning pipelines with MLlib and productionize models using MLflow

C# 8.0 in a Nutshell: The Definitive Reference


Joseph Albahari - 2020
    C# is a language of unusual flexibility and breadth, but with its continual growth there's so much more to learn. In the tradition of the O'Reilly Nutshell guides, this thoroughly updated edition is simply the best one-volume reference to the C# language available today.Organized around concepts and use cases, C# 8.0 in a Nutshell provides intermediate and advanced programmers with a concise map of C# and .NET knowledge that also plumbs significant depths.Get up to speed on C#, from syntax and variables to advanced topics such as pointers, closures, and patternsDig deep into LINQ with three chapters dedicated to the topicExplore concurrency and asynchrony, advanced threading, and parallel programmingWork with .NET features, including regular expressions, networking, serialization, spans, reflection, and cryptographyDelve into Roslyn, the modular C# compiler as a service

Flutter Complete Reference: Create beautiful, fast and native apps for any device


Alberto Miola - 2020
    

Home Computers: 100 Icons That Defined a Digital Generation


Alex Wiltshire - 2020
    This book is a celebration of those early home computers, with specially commissioned new photographs of 100 vintage computers and a generous selection of print advertising, product packaging, and instruction manuals. Readers can recapture the glory days of fondly remembered (or happily forgotten) machines including the Commodore 64, TRS-80, Apple Lisa, and Mattel Aquarius--traces of the techno-utopianism of the not-so-distant past.Home Computers showcases mass-market success stories, rarities, prototypes, one-offs, and never-before-seen specimens. The heart of the book is a series of artful photographs that capture idiosyncratic details of switches and plugs, early user-interface designs, logos, and labels. After a general scene-setting retrospective, the book proceeds computer by computer, with images of each device accompanied by a short history of the machine, its inventors, its innovations, and its influence. Readers who inhabit today's always-on, networked, inescapably connected world will be charmed by this visit to an era when the digital revolution could be powered down every evening.

TypeScript in 50 Lessons


Stefan Baumgartner - 2020
    This book is supposed to fix just that: it provides JavaScript developers with a simple, structured and pragmatic guidance towards TypeScript, and explains how to make sense of it all, step-by-step.In “TypeScript in 50 Lessons”, Stefan Baumgartner breaks down the quirks of TypeScript into short, manageable lessons — for front-end developers who know enough JavaScript to be dangerous.

Design Patterns for High-Quality Automated Tests: High-Quality Test Attributes and Best Practices


Anton Angelov - 2020
    After you master them, the usual career transition is into more architecture roles, such as choosing the best possible approaches for solving particular test automation challenges. You will get an access to more than 20000+ lines of real-world code examples.Who This Book Is ForThe book is NOT a getting started guide! If you don't have any prior programming experience in writing automated tests through WebDriver, I suggest you to first start with some book about basic programming and basic WebDriver usage. I believe it might be invaluable for the readers that have a couple of years of experience and whose job is to create/maintain test automation frameworks, or to write high-quality reliable automated tests.The book is written in C#. However, I think that you can use the approaches and practices in every OOP language. If you have a Java background (or similar), you will get everything you need, don't worry.Even if you don't get all the concepts from the first read, try to use and incorporate some of them, later you can return and reread them. I believe with the accumulation of experience using high-quality practices- you will become a hard-core test automation ninja!What You Will Learn Learn how to optimize and stabilize your flaky tests. Learn how to handle asnynchronious web pages in your tests. Automatically deal with AJAX and jQuery.Improve Test Readability, Maintainability, Reusability, Extensibility by incorporating 10+ design patterns: Page Object Model, Facade, Decorator, Observer, Strategy, Singleton, Fluent Interface, Template Method, Abstract Factory, Factory Method, Repository, Lazy Load. Learn what are the SOLID principles and how they can improve your test code. We will also discuss other essential programming principles such as composition, DRY, KISS and others. Learn how to asses and choose the best possible design for your framework or library. Learn how the benchmarking your code can help you to speed up your tests. Learn how to design and build your framework to handle test data and different test environments. Learn about high quality code practices and naming convention so that your code get much more understandable.

Breaking the Code: Five Steps to a Life-Changing Software Development Job


Bobby Davis Jr. - 2020
    That much is obvious. A skill that is equally as important—but often overlooked—is knowing how to market yourself to potential employers, especially if you're new to the industry. Do you know how to land interviews and deliver a compelling case for why you should be hired?Bobby Davis Jr. has helped place hundreds of aspiring coders into high-paying tech jobs. In Breaking the Code, he shares the proven strategies he uses with his students and offers up insider tips that will make you stand out from the competition.You'll learn how to avoid the biggest stumbling block when it comes to landing a job and what you should build before an interview if you don't have a project to show. Bobby also teaches you the secret to accessing jobs not found on corporate job boards and exponentially increasing your chances of getting the job you want. The path to $100,000 a year—and infinite possibilities beyond that—begins with Breaking the Code.

Grokking Deep Reinforcement Learning


Miguel Morales - 2020
    This book combines annotated Python code with intuitive explanations to explore DRL techniques. You’ll see how algorithms function and learn to develop your own DRL agents using evaluative feedback.Summary We all learn through trial and error. We avoid the things that cause us to experience pain and failure. We embrace and build on the things that give us reward and success. This common pattern is the foundation of deep reinforcement learning: building machine learning systems that explore and learn based on the responses of the environment. Grokking Deep Reinforcement Learning introduces this powerful machine learning approach, using examples, illustrations, exercises, and crystal-clear teaching. You'll love the perfectly paced teaching and the clever, engaging writing style as you dig into this awesome exploration of reinforcement learning fundamentals, effective deep learning techniques, and practical applications in this emerging field. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology We learn by interacting with our environment, and the rewards or punishments we experience guide our future behavior. Deep reinforcement learning brings that same natural process to artificial intelligence, analyzing results to uncover the most efficient ways forward. DRL agents can improve marketing campaigns, predict stock performance, and beat grand masters in Go and chess. About the book Grokking Deep Reinforcement Learning uses engaging exercises to teach you how to build deep learning systems. This book combines annotated Python code with intuitive explanations to explore DRL techniques. You’ll see how algorithms function and learn to develop your own DRL agents using evaluative feedback. What's inside     An introduction to reinforcement learning     DRL agents with human-like behaviors     Applying DRL to complex situations About the reader For developers with basic deep learning experience. About the author Miguel Morales works on reinforcement learning at Lockheed Martin and is an instructor for the Georgia Institute of Technology’s Reinforcement Learning and Decision Making course. Table of Contents 1 Introduction to deep reinforcement learning 2 Mathematical foundations of reinforcement learning 3 Balancing immediate and long-term goals 4 Balancing the gathering and use of information 5 Evaluating agents’ behaviors 6 Improving agents’ behaviors 7 Achieving goals more effectively and efficiently 8 Introduction to value-based deep reinforcement learning 9 More stable value-based methods 10 Sample-efficient value-based methods 11 Policy-gradient and actor-critic methods 12 Advanced actor-critic methods 13 Toward artificial general intelligence

Testing JavaScript Applications


Lucas da Costa - 2020
    Dripping with the insight author Lucas da Costa has developed as a core contributor to some of the most popular JS testing libraries, this book offers dozens of detailed code samples that you can apply to your own projects. You’ll learn how to write tests for both backend and frontend applications, covering the full spectrum of testing types so you can pick an approach that’s right for you. Taking on the role of a developer for a bakery’s web store, you’ll learn to validate different aspects including databases, third-party services, and how to spin-up a real browser instance to interact with the entire application. All examples are delivered using the popular testing tool Jest and modern packages of the JavaScript ecosystem.

Performance Analysis and Tuning on Modern CPUs


Denis Bakhvalov - 2020
    To name just a few areas: High-PerformanceComputing (HPC), Game Development, data-center applications (like Facebook, Google, etc.),High-Frequency Trading. But the scope of the book is not limited to the mentioned industries.This book will be useful for any developer who wants to understand the performance of theirapplication better and know how it can be diagnosed and improved. The author hopes that3the material presented in this book will help readers develop new skills that can be applied intheir daily work."

Ruby on Rails Tutorial, 6th Edition: Ruby on Rails 6


Michael Hartl - 2020
    

Program = Proof


Samuel Mimram - 2020
    After an introduction to functional programming languages, we present propositional logic, λ-calculus, the Curry-Howard correspondence, first-order logic, Agda, dependent types and homotopy type theory.

Implementing Service Level Objectives: A Practical Guide to Slis, Slos, and Error Budgets


Alex Hidalgo - 2020
    Practical advice that does exist usually assumes that your team already has the infrastructure, tooling, and culture in place. In this book, recognized SLO expert Alex Hidalgo explains how to build an SLO culture from the ground up.Ideal as a primer and daily reference for anyone creating both the culture and tooling necessary for SLO-based approaches to reliability, this guide provides detailed analysis of advanced SLO and service-level indicator (SLI) techniques. Armed with mathematical models and statistical knowledge to help you get the most out of an SLO-based approach, you'll learn how to build systems capable of measuring meaningful SLIs with buy-in across all departments of your organization.Define SLIs that meaningfully measure the reliability of a service from a user's perspectiveChoose appropriate SLO targets, including how to perform statistical and probabilistic analysisUse error budgets to help your team have better discussions and make better data-driven decisionsBuild supportive tooling and resources required for an SLO-based approachUse SLO data to present meaningful reports to leadership and your users

Modern Fortran: Building efficient parallel applications


Milan Curcic - 2020
    In this guide, you’ll dive into Fortran by creating fun apps, including a tsunami simulator and a stock price analyzer. Filled with real-world use cases, insightful illustrations, and hands-on exercises, Modern Fortran helps you see this classic language in a whole new light.Summary Using Fortran, early and accurate forecasts for hurricanes and other major storms have saved thousands of lives. Better designs for ships, planes, and automobiles have made travel safer, more efficient, and less expensive than ever before. Using Fortran, low-level machine learning and deep learning libraries provide incredibly easy, fast, and insightful analysis of massive data. Fortran is an amazingly powerful and flexible programming language that forms the foundation of high performance computing for research, science, and industry. And it's come a long, long way since starting life on IBM mainframes in 1956. Modern Fortran is natively parallel, so it's uniquely suited for efficiently handling problems like complex simulations, long-range predictions, and ultra-precise designs. If you're working on tasks where speed, accuracy, and efficiency matter, it's time to discover—or re-discover—Fortran.. About the technology For over 60 years Fortran has been powering mission-critical scientific applications, and it isn't slowing down yet! Rock-solid reliability and new support for parallel programming make Fortran an essential language for next-generation high-performance computing. Simply put, the future is in parallel, and Fortran is already there. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the book Modern Fortran teaches you to develop fast, efficient parallel applications using twenty-first-century Fortran. In this guide, you'll dive into Fortran by creating fun apps, including a tsunami simulator and a stock price analyzer. Filled with real-world use cases, insightful illustrations, and hands-on exercises, Modern Fortran helps you see this classic language in a whole new light. What's inside     Fortran's place in the modern world     Working with variables, arrays, and functions     Module development     Parallelism with coarrays, teams, and events     Interoperating Fortran with C About the reader For developers and computational scientists. No experience with Fortran required. About the author Milan Curcic is a meteorologist, oceanographer, and author of several general-purpose Fortran libraries and applications. Table of Contents PART 1 - GETTING STARTED WITH MODERN FORTRAN 1 Introducing Fortran 2 Getting started: Minimal working app PART 2 - CORE ELEMENTS OF FORTRAN 3 Writing reusable code with functions and subroutines 4 Organizing your Fortran code using modules 5 Analyzing time series data with arrays 6 Reading, writing, and formatting your data PART 3 - ADVANCED FORTRAN USE 7 Going parallel with Fortan coarrays 8 Working with abstract data using derived types 9 Generic procedures and operators for any data type 10 User-defined operators for derived types PART 4 - THE FINAL STRETCH 11 Interoperability with C: Exposing your app to the web 12 Advanced parallelism with teams, events, and collectives

Operations Anti-Patterns, DevOps Solutions


Jeffery D. Smith - 2020
    Part technology tutorial, part reference manual, and part psychology handbook, this practical guide shows you realistic ways to bring DevOps to your team when you don’t have the flexibility to make sweeping changes in organizational structure. Summary Operations Anti-Patterns, DevOps Solutions shows how to implement DevOps techniques in the kind of imperfect environments most developers work in. Part technology tutorial, part reference manual, and part psychology handbook, this practical guide shows you realistic ways to bring DevOps to your team when you don't have the flexibility to make sweeping changes in organizational structure. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology To some extent, all organizations—even yours—suffer from poor development practices, garbled communications, and outdated legacy systems. The good news is DevOps can help you improve your processes. First, however, you'll need to recognize the core issues holding you back. This book empowers you to deliver DevOps with limited resources while navigating the office politics and entrenched mindsets that are all too common in actual workplaces. About the book Operations Anti-Patterns, DevOps Solutions offers clear steps for transforming development and communication. Using jargon-free language, this book describes incremental techniques that pay off immediately. Streamline your workflow, manage unplanned time, and build operational metrics. Whatever your issues, this book holds the keys to organizational success. What's inside     Turn failure into opportunity     Drive change through culture     Break down knowledge silos     Settle middle management turf wars About the reader For team leaders and managers. About the author Jeffery D. Smith has been in the technology industry for over 15 years. He has managed DevOps transformations at the ad-tech firm Centro and the online ordering platform Grubhub. Table of Contents 1 The DevOps ingredients 2 The paternalist syndrome 3 Operational blindness 4 Data instead of information 5 Quality as a condiment 6 Alert fatigue 7 The empty toolbox 8 Off-hour deployments 9 Wasting a perfectly good incident 10 Information hoarding: Only Brent knows 11 Culture by decree 12 Too many yardsticks

Penetration Testing For Dummies (For Dummies (Computer/Tech))


Robert Shimonski - 2020
    

The Ghidra Book


Chris Eagle - 2020
    With the open-source release of this formerly restricted tool suite, one of the world's most capable disassemblers and intuitive decompilers is now in the hands of cybersecurity defenders everywhere -- and The Ghidra Book is the one and only guide you need to master it.In addition to discussing RE techniques useful in analyzing software and malware of all kinds, the book thoroughly introduces Ghidra's components, features, and unique capacity for group collaboration. You'll learn how to:• Navigate a disassembly• Use Ghidra's built-in decompiler to expedite analysis• Analyze obfuscated binaries• Extend Ghidra to recognize new data types• Build new Ghidra analyzers and loaders• Add support for new processors and instruction sets• Script Ghidra tasks to automate workflows• Set up and use a collaborative reverse engineering environmentDesigned for beginner and advanced users alike, The Ghidra Book will effectively prepare you to meet the needs and challenges of RE, so you can analyze files like a pro.

Practical Deep Learning: A Python-Based Introduction


Ronald T. Kneusel - 2020
    It introduces fundamental concepts such as classes and labels, building a dataset, and what a model is and does before presenting classic machine learning models, neural networks, and modern convolutional neural networks. Experiments in Python--working with leading open-source toolkits and standard datasets--give the reader hands-on experience with each model and help them build intuition about how to transfer the examples in the book to their own projects.Readers start with an introduction to the Python language and the NumPy extension that is ubiquitous in machine learning. Prominent toolkits, like sklearn and Keras/TensorFlow are used as the backbone to enable readers to focus on the elements of machine learning without the burden of writing implementations from scratch. An entire chapter on evaluating the performance of models gives the reader the knowledge necessary to understand claims on performance and to know which models are working well and which are not. The book culminates by presenting convolutional neural networks as an introduction to modern deep learning. Understanding how these networks work and how they are affected by parameter choices leaves the reader with the core knowledge necessary to dive into the larger, ever-changing world of deep learning.

Full-Stack React, TypeScript, and Node: Build cloud-ready web applications using React 17 with Hooks and GraphQL


David Choi - 2020
    

Algorithm Design with Haskell


Richard S Bird - 2020
    These principles are presented using Haskell, a purely functional language, leading to simpler explanations and shorter programs than would be obtained with imperative languages. Carefully selected examples, both new and standard, reveal the commonalities and highlight the differences between algorithms. The algorithm developments use equational reasoning where applicable, clarifying the applicability conditions and correctness arguments. Every chapter concludes with exercises (nearly 300 in total), each with complete answers, allowing the reader to consolidate their understanding and apply the techniques to a range of problems. The book serves students (both undergraduate and postgraduate), researchers, teachers, and professionals who want to know more about what goes into a good algorithm and how such algorithms can be expressed in purely functional terms.

FreeCAD for architectural drawing: Create technical drawings with a free and open-source CAD


Allan Brito - 2020
    

AI as a Service: Serverless machine learning with AWS


Peter Elger - 2020
    Instead, you’ll find easy-to-digest instruction and two complete hands-on serverless AI builds in this must-have guide!Summary Companies everywhere are moving everyday business processes over to the cloud, and AI is increasingly being given the reins in these tasks. As this massive digital transformation continues, the combination of serverless computing and AI promises to become the de facto standard for business-to-consumer platform development—and developers who can design, develop, implement, and maintain these systems will be in high demand! AI as a Service is a practical handbook to building and implementing serverless AI applications, without bogging you down with a lot of theory. Instead, you’ll find easy-to-digest instruction and two complete hands-on serverless AI builds in this must-have guide! Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology Cloud-based AI services can automate a variety of labor intensive business tasks in areas such as customer service, data analysis, and financial reporting. The secret is taking advantage of pre-built tools like Amazon Rekognition for image analysis or AWS Comprehend for natural language processing. That way, there’s no need to build expensive custom software. Artificial Intelligence (AI), a machine’s ability to learn and make predictions based on patterns it identifies, is already being leveraged by businesses around the world in areas like targeted product recommendations, financial forecasting and resource planning, customer service chatbots, healthcare diagnostics, data security, and more. With the exciting combination of serverless computing and AI, software developers now have enormous power to improve their businesses’ existing systems and rapidly deploy new AI-enabled platforms. And to get on this fast-moving train, you don’t have to invest loads of time and effort in becoming a data scientist or AI expert, thanks to cloud platforms and the readily available off-the-shelf cloud-based AI services! About the book AI as a Service is a fast-paced guide to harnessing the power of cloud-based solutions. You’ll learn to build real-world apps—such as chatbots and text-to-speech services—by stitching together cloud components. Work your way from small projects to large data-intensive applications. What's inside - Apply cloud AI services to existing platforms - Design and build scalable data pipelines - Debug and troubleshoot AI services - Start fast with serverless templates About the reader For software developers familiar with cloud basics. About the author Peter Elger and Eóin Shanaghy are founders and CEO/CTO of fourTheorem, a software solutions company providing expertise on architecture, DevOps, and machine learning. Table of Contents PART 1 - FIRST STEPS 1 A tale of two technologies 2 Building a serverless image recognition system, part 1 3 Building a serverless image recognition system, part 2 PART 2 - TOOLS OF THE TRADE 4 Building and securing a web application the serverless way 5 Adding AI interfaces to a web application 6 How to be effective with AI as a Service 7 Applying AI to existing platforms PART 3 - BRINGING IT ALL TOGETHER 8 Gathering data at scale for real-world AI 9 Extracting value from large data sets with AI

Computer Security and the Internet: Tools and Jewels


Paul C. van Oorschot - 2020
    

C# 9 and .NET 5 – Modern Cross-Platform Development: Build Intelligent Apps, Websites, and services with Blazor, ASP.NET Core, and Entity Framework Core Using Visual Studio Code


Mark J. Price - 2020
    

Refactoring at Scale: Regaining Control of Your Codebase


Maude Lemaire - 2020
    If your application is in need of a substantial overhaul and you're unsure how to go about implementing those changes in a sustainable way, then this book is for you.Software engineer Maude Lemaire walks you through the entire refactoring process from start to finish. You'll learn from her experience driving performance and refactoring efforts at Slack during a period of critical growth, including two case studies illustrating the impact these techniques can have in the real world. This book will help you achieve a newfound ability to productively introduce important changes in your codebase.Understand how code degrades and why some degradation is inevitableQuantify and qualify the state of your codebase before refactoringDraft a well-scoped execution plan with strategic milestonesWin support from engineering leadershipBuild and coordinate a team best suited for the projectCommunicate effectively inside and outside your teamAdopt best practices for successfully executing the refactor