Software
Technologies for Modern Digital Entrepreneurship
Emerging technologies offer a plethora of unprecedented opportunities for entrepreneurs in the digital space. Understanding this evolution is essential for web-based business models to succeed. The Web 3.0 economy is here, and this book has arrived to serve as your guide. Technologies for Modern Digital Entrepreneurship is an in-depth look at the new developments of the digital economic system. Cryptocurrencies, Central Bank Digital Currencies, and Stable Coins are explained through timely case studies, as well as innovations in crowdfunding, educational marketplaces, and scalability in blockchain-based transactions. Author Dr. Abeba N. Turi expertly navigates the industry transition from platform-based centralized Web 2.0 economy to the distributed network economy. Turi additionally explores trust and reputation as currency in the digital economy and allays common fears in digital entrepreneurship such as mistrust by investors and intellectual propertyloss. Avoid falling behind your competitors in the Wild West that is modern digital entrepreneurship. Whether you are a business leader, a technology enthusiast, or a researcher in the field, Technologies for Modern Digital Entrepreneurship gives you the advantage of insightful knowledge using real data and meaningful examples. Amid global regulatory changes and the ever-shifting methods of digital entrepreneurship, our modern era demands this book. What You Will Learn Discover new trends in the digital economic systemComprehend the crowd-based digital business modelsAnalyze the distributed information network economyUnderstand the workings of the currency system under the Web 3.0 economy, including Cryptocurrencies, Central Bank Digital Currencies, and Stable Coins Who This Book Is For Technology enthusiasts, tech and interdisciplinary students, digital business leaders, and researchers in the field
Programming with Node-RED
The Internet of Things (IoT) is becoming a major application area for embedded systems. As a result, more and more people are becoming interested in learning about embedded design and programming. Technical colleges and universities are moving away from legacy 8 and 16-bit microcontrollers and are introducing 32-bit embedded microcontrollers to their curriculums. Many IoT applications demand precision, high processing power, and low power consumption.Produced by IBM, Node-RED is an open-source visual editor for wiring the Internet of Things. Node-RED comes with a large number of nodes to handle a multitude of tasks. The required nodes are selected and joined together to perform a particular task. Node-RED is based on flow type programming where nodes are configured and joined together to form an application program. There are nodes for performing complex tasks, including web access, Twitter, E-mail, HTTP, Bluetooth, MQTT, controlling GPIO ports, etc. One particularly nice aspect of Node-RED is that the programmer does not need to learn how to write complex programs. For example, an email can be sent by simply joining nodes together and writing only a few lines of code.The aim of this book is to teach how Node-RED can be used in projects. The main hardware platform used with most of the projects in this book is Raspberry Pi 4. Chapters are included to show how Node-RED can be also be used with Arduino Uno, ESP32 DevKitC, and the ESP8266 NodeMCU microcontroller development boards.Prof. Dr. Dogan Ibrahim is a Fellow of the Institution of Electrical Engineers. He is the author of over 60 technical books, published by publishers including Wiley, Butterworth, and Newnes. He is the author of over 250 technical papers, published in journals, and presented in seminars and conferences.
C Programming with Arduino
Technology is constantly changing. New microcontrollers become available every year. The one thing that has stayed the same is the C programming language used to program these microcontrollers. If you would like to learn this standard language to program microcontrollers, then this e-book (pdf) is for you!Arduino is the hardware platform used to teach the C programming language as Arduino boards are available worldwide and contain the popular AVR microcontrollers from Atmel.Atmel Studio is used as the development environment for writing C programs for AVR microcontrollers. It is a full-featured integrated development environment (IDE) that uses the GCC C software tools for AVR microcontrollers and is free to download.At a glance:• Start learning to program from the very first chapter• No programming experience is necessary• Learn by doing - type and run the example programs• A fun way to learn the C programming language• Ideal for electronic hobbyists, students and engineers wanting to learn the C programming language in an embedded environment on AVR microcontrollers• Use the free full-featured Atmel Studio IDE software for Windows• Write C programs for 8-bit AVR microcontrollers as found on the Arduino Uno and MEGA boards• Example code runs on Arduino Uno and Arduino MEGA 2560 boards and can be adapted to run on other AVR microcontrollers or boards• Use the AVR Dragon programmer / debugger in conjunction with Atmel Studio to debug C programsWarwick A. Smith lives in South Africa and works as an Electronics Engineer and Embedded System Programmer. He is a bestselling author of the books C Programming for Embedded Microcontrollers, ARM Microcontroller Interfacing and Open Source Electronics on Linux.
Django Standalone Apps
Develop standalone Django apps to serve as the reusable building blocks for larger Django projects. This book explores best practices for publishing these apps, with special considerations for testing Django apps, and strategies for extracting existing functionality into a separate package.This jumpstart reference is divided into four distinct and sequential sections, all containing short, engaging chapters that can be read in a modular fashion, depending on your level of experience. The first section covers the structure and scope of standalone Django apps. The second section digs into questions about pulling code out of existing projects and into new standalone apps for reuse. The third section details additional, advanced technical best practices toward making standalone apps as broadly useful as possible. The fourth and final section covers strategies for managing a published Django app.Django Standalone Apps is the perfect resource for developers who have at least some prior experience working with Django web applications and want to simplify their deployments and share their knowledge as open source packages.WHAT YOU'LL LEARN* Scope a standalone Django app project for optimum usefulness* Extract code from existing projects to reuse* Test a standalone app outside of your Django project* Reuse your own code for increased delivery cadence and code quality* Review best practices for maintaining a Django app packageWHO THIS BOOK IS FORProfessional developers who work with Django. Deep expertise is not required or expected, but readers should have working familiarity with Django.Ben is cofounder of a web development consultancy and has been working professionally with Django for almost a decade. He has architected and led development on Django-based web applications including, custom content management systems, media platforms, and multi tenant back office solutions.He lives in the Rochester, NY, area, and graduated from the University of Virginia with a degree in Economics. Previously he managed the data and analytics services for a market research firm and was an IT strategy consultant for a global management consulting firm. His own standalone apps include Django Organizations, a long term project for managing multi user accounts in Django projects.Chapter 1: Defining the Scope of a Django Standalone AppChapter 2: Structuring Django Standalone AppsChapter 3: TestingChapter 4: Model MigrationsChapter 5: TemplatesChapter 6: Using Static FilesChapter 7: Namespacing in Your AppChapter 8: Creating a Basic PackageChapter 9: Scooping and Drawing BoundariesChapter 10: Separating Your AppChapter 11: Adding Your App Back InChapter 12: Handling App SettingsChapter 13: InternationalizationChapter 14: Managing Version CompatibilityChapter 15: Mixed Dependency SupportChapter 16: ModularityChapter 17: Better PackagingChapter: 18: LicensingChapter: 19: Documenting Your Standalone AppChapter 20: Additional TestingChapter 21: AutomatingChapter 22: Databases and other backend specific considerationsChapter 23: CollaboratingChapter 24: Using App Templates
Game Design und Produktion
Dieses Grundlagenlehrbuch für angehende Computerspieldesigner erläutert zunächst die allgemeinen Zusammenhänge des menschlichen Spielens. Dabei kommt es dem Autor auch darauf an, die Übergänge zu den neuen vernetzten Medien und den Gemeinschaften in den sogenannten virtuellen Räumen zu betrachten.Im weiteren Verlauf wird der Stand der Technik bezüglich der Produktion von Computerspielen beschrieben, wobei auf die Spielentwicklung (Game Design) ebenso eingegangen wird wie auf die Programmierung, Funktionsweisen und Jobprofile der Spieleindustrie. Hier liegt der Schwerpunkt auf allgemeinen Prinzipien, da die Computertechnologie einem sehr schnellen Wandel unterliegt.Das Buch verweist in Kästen und Anmerkungen auf einschlägige Literatur, Spiele und andere Medien und soll so zur Vertiefung des Gebiets anregen. Zudem gibt das Buch einen Überblick über Spielformen von Online- und Offline-Spielen und klärt Kernbegriffe des Aufbaus von Computerspielen. Anschaulich geschrieben, vermittelt dieses Lehrbuch wichtige Grundlagen des Designs und der Entwicklung von Computerspielen vor dem Hintergrund moderner spieltheoretischer Grundlagen.In der zweiten Auflage: Aktualisierung der Beispiele, neue Engines (Kapitel über die Unreal Engine), Technik, Technologie, Skills. Prof. Gunther Rehfeld lehrt am Department Medientechnik der HAW Hamburg und forscht zu Online-Computerspielen, Dramaturgie und aktivierenden Spielformaten.
Die Methode Building Information Modeling
Arnim J. Spengler und Jacqueline Peter bieten einen Schnelleinstieg in die BIM-Methodik. Zunächst geben sie einen grundsätzlichen Einblick, zeigen die Bedeutung von BIM auf und klären die wichtigsten Begrifflichkeiten des Themenfeldes. Danach wird die Methodik aus den unterschiedlichen Sichtweisen aller Akteure im Bauwesen entlang des Lebenszyklus eines Bauwerks beleuchtet sowie die wichtigsten Normen, Richtlinien und Vereinigungen vorgestellt und untereinander in Bezug gesetzt. Eine SWOT-Analyse zeigt kurz und prägnant Stärken, Schwächen, Risiken und Chancen von BIM. Im Anschluss gewähren die Autoren einen schnellen Einblick in die Forschung und geben einen kurzen Ausblick über neue Technologien wie Blockchain, Künstliche Intelligenz, Robotik und IoT in Verbindung mit der BIM-Methodik. Die Autoren: Arnim J. Spengler, M.Sc., forscht an der Universität Duisburg-Essen im Bereich Robotik und digitales Bauen, ist Teil der Projektgruppe „BIM-Competence-Center“ des MHKBG NRW, Mitgründer des BIM-Clusters NRW und des Construction-Tech Startups BuildersMind GmbH. Jacqueline Peter, M.Sc., lehrt und forscht am Institut für Digitalisierung im Bauwesen an der Universität Duisburg-Essen und ist stellvertretendes Koordinierungsmitglied im BIM-Cluster NRW.
SAS Stored Processes
Customize the SAS Stored Process web application to create amazing tools for end users. This book shows you how to use stored processes—SAS programs stored on a server and executed as required by requesting applications.Never before have there been so many ways to turn data into information and build applications with SAS. This book teaches you how to use the web technologies that you frequently see used on impressive websites. By using SAS STORED PROCESSES, you will be able to build applications that exploit CSS, JavaScript, and HTML libraries and enable you to build powerful and impressive web applications using SAS as the backend.While this approach is not common with SAS users, some have had amazing results. People who have SAS skills usually do not have web development skills, and those with web development skills usually do not have SAS skills. Some people have both skills but are unaware of how to connect them with the SAS Stored Process web application. This book shows you how to leverage your skills for success.WHAT YOU WILL LEARN* Know the benefits of stored processes* Write your own tools in SAS* Make a stored process generate its own HTML menu* Pass data between stored processes* Use stored processes to generate pure JavaScript* Utilize data generated by SAS* Convert a SAS program into a stored processWHO THIS BOOK IS FORSAS programmers looking to improve their existing programming skills to develop web applications, and programming managers who want to make better use of the SAS software they already licensePHILIP MASON is a SAS expert with 34 years of experience. He shares his expertise with others in many industries. Over the last few years he has been working on building web applications using SAS and other technologies. For most of the last decade Phil has enjoyed working around SAS architecture, and has been mentoring and training people in SAS. He has worked with big data, business intelligence, analytics, and tuning and building web applications using SAS Stored Processes, HTML, and JavaScript. He is the author of several books on SAS.
Thinking in Pandas
Understand and implement big data analysis solutions in pandas with an emphasis on performance. This book strengthens your intuition for working with pandas, the Python data analysis library, by exploring its underlying implementation and data structures.Thinking in Pandas introduces the topic of big data and demonstrates concepts by looking at exciting and impactful projects that pandas helped to solve. From there, you will learn to assess your own projects by size and type to see if pandas is the appropriate library for your needs. Author Hannah Stepanek explains how to load and normalize data in pandas efficiently, and reviews some of the most commonly used loaders and several of their most powerful options. You will then learn how to access and transform data efficiently, what methods to avoid, and when to employ more advanced performance techniques. You will also go over basic data access and munging in pandas and the intuitive dictionary syntax. Choosing the right DataFrame format, working with multi-level DataFrames, and how pandas might be improved upon in the future are also covered.By the end of the book, you will have a solid understanding of how the pandas library works under the hood. Get ready to make confident decisions in your own projects by utilizing pandas—the right way.WHAT YOU WILL LEARN* Understand the underlying data structure of pandas and why it performs the way it does under certain circumstances* Discover how to use pandas to extract, transform, and load data correctly with an emphasis on performance* Choose the right DataFrame so that the data analysis is simple and efficient.* Improve performance of pandas operations with other Python librariesWHO THIS BOOK IS FORSoftware engineers with basic programming skills in Python keen on using pandas for a big data analysis project. Python software developers interested in big data.Hannah Stepanek is a software developer with a passion for performance and is an open source advocate. She has over seven years of industry experience programming in Python and spent about two of those years implementing a data analysis project using pandas.Hannah was born and raised in Corvallis, OR, and graduated from Oregon State University with a major in Electrical Computer Engineering. She enjoys engaging with the software community, often giving talks at local meetups as well as larger conferences. In early 2019, she spoke at PyCon US about the pandas library and at OpenCon Cascadia about the benefits of open source software. In her spare time she enjoys riding her horse Sophie and playing board games.
Modern Data Mining Algorithms in C++ and CUDA C
Discover a variety of data-mining algorithms that are useful for selecting small sets of important features from among unwieldy masses of candidates, or extracting useful features from measured variables.As a serious data miner you will often be faced with thousands of candidate features for your prediction or classification application, with most of the features being of little or no value. You’ll know that many of these features may be useful only in combination with certain other features while being practically worthless alone or in combination with most others. Some features may have enormous predictive power, but only within a small, specialized area of the feature space. The problems that plague modern data miners are endless. This book helps you solve this problem by presenting modern feature selection techniques and the code to implement them. Some of these techniques are:* Forward selection component analysis* Local feature selection* Linking features and a target with a hidden Markov model* Improvements on traditional stepwise selection* Nominal-to-ordinal conversionAll algorithms are intuitively justified and supported by the relevant equations and explanatory material. The author also presents and explains complete, highly commented source code.The example code is in C++ and CUDA C but Python or other code can be substituted; the algorithm is important, not the code that's used to write it.WHAT YOU WILL LEARN* Combine principal component analysis with forward and backward stepwise selection to identify a compact subset of a large collection of variables that captures the maximum possible variation within the entire set.* Identify features that may have predictive power over only a small subset of the feature domain. Such features can be profitably used by modern predictive models but may be missed by other feature selection methods.* Find an underlying hidden Markov model that controls the distributions of feature variables and the target simultaneously. The memory inherent in this method is especially valuable in high-noise applications such as prediction of financial markets.* Improve traditional stepwise selection in three ways: examine a collection of 'best-so-far' feature sets; test candidate features for inclusion with cross validation to automatically and effectively limit model complexity; and at each step estimate the probability that our results so far could be just the product of random good luck. We also estimate the probability that the improvement obtained by adding a new variable could have been just good luck. Take a potentially valuable nominal variable (a category or class membership) that is unsuitable for input to a prediction model, and assign to each category a sensible numeric value that can be used as a model input.WHO THIS BOOK IS FORIntermediate to advanced data science programmers and analysts.Timothy Masters has a PhD in statistics and is an experienced programmer. His dissertation was in image analysis. His career moved in the direction of signal processing, and for the last 25 years he's been involved in the development of automated trading systems in various financial markets.1) Introduction 72) Forward Selection Component Analysis 11A) Introduction to Forward Selection Component Analysis 12B) The Mathematics and Code Examples 16Maximizing the Explained Variance 18Code for the Variance Maximization Criterion 20Backward Refinement 24Multi-Threading Backward Refinement 28Orthogonalizing Ordered Components 36C) Putting It All Together 39Components From a Forward-Only Subset 44Components From a Backward Refined Subset 46D) An Example With Contrived Variables 483) Local Feature Selection 53A) Intuitive Overview of the Algorithm 54What This Algorithm Reports 60B) A Brief Detour: the Simplex Algorithm 62The Linear Programming Problem 63Interfacing to the Simplex Class 64A Little More Detail 67C) A More Rigorous Approach to LFS 69Intra-Class and Inter-Class Separation 73Computing the Weights 77Maximizing Inter-Class Separation 81Minimizing Intra-Class Separation 86Testing a Trial Beta 88A Quick Note on Threads 93D) CUDA Computation of Weights 94Integrating the CUDA Code Into the Algorithm 95Initializing the CUDA Hardware 97Computing Differences from the Current Case 100 Computing the Distance Matrix 102Computing the Minimum Distances 104Computing the Terms for the Weight Equation 112Transposing the Term Matrix 113Summing the Terms For the Weights 114Moving the Weights to the Host 116E) An Example of Local Feature Selection 117F) A Note on Run Time 1184) Memory in Time Series Features 119A) A Gentle Mathematical Overview 122The Forward Algorithm 123The Backward Algorithm 128Correct Alpha and Beta, For Those Who Care 131B) Some Mundane Computations 136Means and Covariances 136Densities 138The Multivariate Normal Density Function 139C) Starting Parameters 141 Outline of the Initialization Algorithm 141Perturbing Means 142Perturbing Covariances 143Perturbing Transition Probabilities 144A Note on Random Number Generators 145D) The Complete Optimization Algorithm 146Computing State Probabilities 147Updating the Means and Covariances 151Updating Initial and Transition Probabilities 153 E) Assessing HMM Memory in a Time Series 159F) Linking Features to a Target 164Linking HMM States to the Target 173A Contrived and Inappropriate Example 183A Sensible and Practical Example 1865) Stepwise Selection on Steroids 189A) The Feature Evaluation Model 192Code For the Foundation Model 193B) The Cross-Validated Performance Measure 198C) The Stepwise Algorithm 201Finding the First Variable 207Adding a Variable to an Existing Model 210D) Demonstrating the Algorithm Three Ways 2146) Nominal-to-Ordinal Conversion 217A) Implementation Overview 221B) Testing For a Legitimate Relationship 222C) An Example From Equity Price Changes 223D) Code for Nominal-to-Ordinal Conversion 227The Constructor 228Printing the Table of Counts 232Computing the Mapping Function 234Monte-Carlo Permutation Tests 2377) Index 353
Robust Methods for Dense Monocular Non-Rigid 3D Reconstruction and Alignment of Point Clouds
Vladislav Golyanik proposes several new methods for dense non-rigid structure from motion (NRSfM) as well as alignment of point clouds. The introduced methods improve the state of the art in various aspects, i.e. in the ability to handle inaccurate point tracks and 3D data with contaminations. NRSfM with shape priors obtained on-the-fly from several unoccluded frames of the sequence and the new gravitational class of methods for point set alignment represent the primary contributions of this book.ABOUT THE AUTHOR:VLADISLAV GOLYANIK is currently a postdoctoral researcher at the Max Planck Institute for Informatics in Saarbrücken, Germany. The current focus of his research lies on 3D reconstruction and analysis of general deformable scenes, 3D reconstruction of human body and matching problems on point sets and graphs. He is interested in machine learning (both supervised and unsupervised), physics-based methods as well as new hardware and sensors for computer vision and graphics (e.g., quantum computers and event cameras).VLADISLAV GOLYANIK is currently a postdoctoral researcher at the Max Planck Institute for Informatics in Saarbrücken, Germany. The current focus of his research lies on 3D reconstruction and analysis of general deformable scenes, 3D reconstruction of human body and matching problems on point sets and graphs. He is interested in machine learning (both supervised and unsupervised), physics-based methods as well as new hardware and sensors for computer vision and graphics (e.g., quantum computers and event cameras).Scalable Dense Non-rigid Structure from Motion.- Shape Priors in Dense Non-rigid Structure from Motion.- Probabilistic Point Set Registration with Prior Correspondences.- Point Set Registration Relying on Principles of Particle Dynamics.
Beginning Ring Programming
Gain a gentle introduction to the world of Ring programming with clarity as a first concern using a lot of practical examples. The first part lays the foundations of the language and its basic features (data types, control structures, functions, and classes). The unique way to rigorously structure Ring programs is also explained.Then, in the second part you’ll discover Ring inputs, outputs, and what is in between. You’ll use the basic constructs of computer logic (sequence, selection, and iteration) to build simple and complex logic flows. You’ll go over the common mistakes that lead to code complexity, by example, and cover several strategies to solve them (refactoring, code cleansing, and good variable naming). Then, you’ll see a visual illustration of how Ring deals with scopes at the local, object, and global levels.In part three, you’ll play with two artifacts vital to Ring programming: functions and objects. You’ll learn how they can be composed to solve a problem and how advanced programming paradigms, such as declarative and natural, are beautifully implemented on top of them. As part of the discussion, you’ll also work on game programming. You’ll learn how you design your game declaratively, in Ring code, just as if you were designing it in visual software.Finally, the author lays out how programming can be understood in a gamified context. You will be told the truth about how gaming can be a better metaphor to achieve mastery of Ring programming.This book is for those who are passionate about writing beautiful, expressive, and learnable code. It has been designed so you can enjoy a beginner-friendly set of knowledge about Ring, and benefit from a one-stop collection of lessons learned from real-world, customer-facing programming projects.WHAT YOU WILL LEARN* Get started with Ring and master its data types, I/O, functions, and classes* Carry out structural, object-oriented, functional, declarative, natural, and meta programming in Ring* Use the full power of Ring to refactor program code and develop clean program architectures* Quickly design professional-grade video games on top of the Ring game engineWHO THIS BOOK IS FORBeginners looking for a consistent and hackable programming environment with a strong flavor of learnability and expressiveness.Mansour Ayouni is one of the leading contributors to the new Ring programming language. He wrote his first BASIC computer statement, in the mid-80s, using only pen and paper, when he was 10 years old. It wasn’t in a California garage though nor under the lights of the prestigious Evil tour of Paris, but in the rural village of Regueb in the center of Tunisia (North Africa) where there was no electricity nor computers at all. Over the years, programming took him in an otherwise impossible international journey. From Tunisia, to Niger, to Canada, he contributed to the development of dozens of software products ranging from lawyer office management solutions to banking and nuclear waste management systems. During his career, he used to oversee programmers from three cultures and lead software teams in various companies such as Whitecape, Keyrus, and Webgenetics. Now, he is a member of the Ring core team and running Kalidia Consulting helping businesses make effective software. Chapter 1: Getting Started with RingChapter 2: Data Types in RingChapter 3: Ins of RingChapter 4: Outs of RingChapter 5: Ring AlgorithmsChapter 6: Juggling with ScopesChapter 7: Functions, Objects and BeyondChapter 8: Designing Games in RingChapter 9: A Gamified Foundation for Mastering RingAppendix A: A Dialogue with Mahmoud Fayed
Mastering 3D Printing
Get the most out of your printer, including how to design models, choose materials, work with different printers, and integrate 3D printing with traditional prototyping to make techniques like sand casting more efficient.This book is for new 3D printer owners, makers of all kinds, entrepreneurs, technology educators, and anyone curious about what you can do with a 3D printer.In this revised and expanded new edition of Mastering 3D Printing, which has been a trusted resource through five years of evolution in the 3D printing industry, you’ll gain a comprehensive understanding of 3D printing. This book presumes no foreknowledge and describes what you need to know about how printers work, how to decide which type of printer (filament, resin, or powder) makes the most sense for you, and then how to go forward in the case of filament and resin printers.This new edition now includes material about consumer resin printing, the evolution of lower-cost metal printing, and the plethora of both materials and applications.WHAT YOU’LL LEARN* Choose among the different 3D printing technologies* Create or find 3D models to print* Make both easy and challenging prints come out as you imagined* Assess whether your business, factory, home or classroom will benefit from 3D printing* Work with applications that are good candidates for first projects in home and industrial applicationsWHO THIS BOOK IS FORPeople who are encountering 3D printing for the first time, or for those who want to level up their skills. It is designed for the nontechnical adult and minimizes jargon. However more sophisticated users will still find tips and insights of value.As an engineer and management consultant, JOAN HORVATH has coordinated first-of-a-kind interdisciplinary technical and business projects, helping people with no common vocabulary (startups, universities, small towns, etc). work together. Her experience as a systems engineer has spanned software development, spacecraft flight operations, risk management, and spacecraft/ground system test and contingency planning.As an educator, Joan’s passion is bringing science and technology to the non-specialist in a comprehensible and entertaining way that will stay with the learner for a lifetime. As an educator, Joan’s passion is bringing science and technology to the non-specialist in a comprehensible and entertaining way that will stay with the learner for a lifetime.RICH CAMERON is a cofounder of Pasadena-based Nonscriptum LLC. Nonscriptum consults for educational and scientific users in the areas of 3D printing and maker technologies. Rich (known online as "Whosawhatsis") is an experienced open source developer who has been a key member of the RepRap 3D-printer development community for many years. His designs include the original spring/lever extruder mechanism used on many 3D printers, the RepRap Wallace, and the Deezmaker Bukito portable 3D printer. By building and modifying several of the early open source 3D printers to wrestle unprecedented performance out of them, he has become an expert at maximizing the print quality of filament-based printers. When he's not busy making every aspect of his own 3D printers better, from slicing software to firmware and hardware, he likes to share that knowledge and experience online so that he can help make everyone else’s printers better too.MASTERING 3D PRINTINGPart I: 3D Printer Hardware and SoftwareChapter 1: Why Use a 3D Printer?Chapter 2: 3D Printers and Printable MaterialsChapter 3: 3D Printer Workflow and SoftwareChapter 4: Selecting a Printer: Comparing TechnologiesChapter 5: Operating and Troubleshooting Your 3D PrinterChapter 6. Surface Finishing and Filament PrintsPart II: Designing for 3D PrintingChapter 7: 3D ModelsChapter 8: Design Rules for 3D PrintingChapter 9: Special GeometriesPart III: ApplicationsChapter 10: Manufacturing Plastic PartsChapter 11: Metal 3D Printing and CastingChapter 12: Prototyping and 3D VisualizationChapter 13: Printers in the classroomChapter 14: The Future: Research AreasAppendix & Links
Advanced Perl Programming
William "Bo" Rothwell's Advanced Perl Programming continues where his previous book left off, more or less, as it guides you through advanced techniques of the Perl programming language starting with command-line options, references, and arrays and hashes from advanced data types. Next, you'll learn about typeglobs for symbolic entries.Additionally, you'll see advanced subroutine handling, then packages and namespaces. Furthermore, you'll build advanced modules and install CPAN modules. Unlike Java and C++, modules have been around in Perl for a long time now. Along the way, you'll learn and use POD mark up language for Perl documentation.Moreover, you'll get a survey of the many advanced features and data structures of the current Perl programming language. You'll also get a survey of the new features of the latest Perl 5.x release. After reading and using this book, you'll have the tools, techniques, and source code to be an expert Perl programmer.WHAT YOU WILL LEARN* Carry out command-line parsing and extract scripts * Create references; return values from a reference; work with the ref Function and strict refs* Work with advanced Perl data types using arrays, hashes, and hash of hashes * Use Typeglobs for symbol table entries * Build modules and install CPAN modules* Write documentation for Perl using POD * Work with the newest features in Perl, including the smartmatch operator, yada yada, automated regex modifiers, the CORE namespace and moreWHO THIS BOOK IS FORThose with experience with Perl or who have read Rothwell's prior books, Beginning Perl Programming and Pro Perl Programming. At the impressionable age of 14, William "Bo" Rothwell crossed paths with a TRS-80 Micro Computer System (affectionately known as a “Trash 80”). Soon after the adults responsible for Bo made the mistake of leaving him alone with the TSR-80. He immediately dismantled it and held his first computer class, showing his friends what made this “computer thing” work. Since this experience, Bo’s passion for understanding how computers work and sharing this knowledge with others has resulting in a rewarding career in IT training. His experience includes Linux, Unix, DevOps tools, and programming languages such as Perl, Python, Tcl, and BASH.Chapter One Command Line Options1.1 Introducing Command Line Options1.2 Changing Input Record Separator1.3 Create a Loop Around Your Script1.4 Editing in Place1.5 Syntax Checking1.6 Pre-appending to @INC1.7 Including Modules1.8 Command Line Parsing1.9 Displaying Configuration Information1.10 Extracting Scripts from Messages1.11 Additional Resources1.12 Lab ExercisesChapter Two References2.1 What are References?2.2 Creating References2.3 Returning the Value from a Reference2.4 The ref Function2.5 Making Anonymous References2.6 References to Functions2.7 use strict ‘refs’2.8 Additional Resources2.9 Lab ExercisesChapter Three Advanced Data Types: Arrays3.1 Review: What You Should Already Know About Arrays3.2 What You Might Know About Arrays3.3 Arrays of Arrays3.4 Creating Arrays of Arrays3.5 Accessing Values in an Array of Arrays3.6 Adding a Sub Array (Row)3.7 Adding a column3.8 Printing an Array of Arrays3.9 Additional Resources3.10 Lab ExercisesChapter Four Advanced Data Types: Hashes4.1 Review: What You Should Already Know About Hashes4.2 What You Might Know About Hashes4.3 Hashes of Hashes4.4 Creating Hashes of Hashes4.5 Accessing Values in a Hash of Hashes4.6 Other Data Structures4.7 Additional Resources4.8 Lab ExercisesChapter Five Typeglobs5.1 Symbolic Tables5.2 Typeglobs5.3 Using typeglobs5.4 References vs. Typeglobs5.5 Avoiding Aliases to Entire Identifier5.6 Making constants5.7 Passing Filehandles into Functions5.8 Redefining a Function5.9 Temporarily Redefining a Function5.10 Additional Resources5.11 Lab ExercisesChapter Six Advanced Subroutine Handling6.1 Review: What You Should Already Know About Functions6.2 What You Might Know About Functions6.3 Making Persistent Function Variables6.4 Using the caller Function6.5 Passing Arguments by Reference6.6 Determining Functions Return Data6.7 Returning Multiple Values6.8 Exception Handling6.9 Constant Functions6.10 Prototypes6.11 Additional Resources6.12 Lab ExercisesChapter Seven Packages and Namespaces7.1 Scope7.2 Creating Namespaces with the package Command7.3 Fully Qualified Package Names7.4 Nested Packages7.5 use strict 'vars'7.6 Identifiers Not Affected by Packages7.7 Determine the Current Package7.8 Packages vs. my Variables7.9 Additional Resources7.10 Lab ExercisesChapter Eight Building Modules8.1 Introduction to Perl Modules8.2 Creating a Module8.3 BEGIN and END Blocks8.4 Symbol Tables in Modules8.5 Exporting Identifiers from Modules8.6 Private Identifiers8.7 Oking Symbols to Export from Modules8.8 Module Version Numbers8.9 use vs. require8.10 A Note About Library Files8.11 Additional Resources8.12 Lab ExercisesChapter Nine Installing CPAN Modules9.1 What is CPAN?9.2 Accessing CPAN9.3 CPAN Organization9.4 Installing a CPAN Module Manually9.5 Installing CPAN Modules Using the CPAN Module9.6 Using the Perl Package Manager to Install CPAN Modules9.7 Listing What Modules are Currently Installed9.8 Additional Resources9.9 Lab ExercisesChapter Ten POD10.1 Overview of POD10.2 POD Commands10.3 POD Text10.4 POD Verbatim10.5 POD Examples10.6 Common POD Problems10.7 POD Utilities10.8 Additional Resources10.9 Lab ExercisesChapter Eleven Advanced Features11.1 Perl development environments11.2 The power of the do statement11.3 autodie11.4 String variables as files11.5 File::Spec11.6 Proper use of soft references11.7 Install modules from CPAN without admin privileges11.8 Basic testing11.9 Advanced testing11.10 Using prove11.11 BenchmarkingChapter Twelve Advanced Data Structures12.1 Introduction to Benchmarking12.2 Use the Readonly module to create constants12.3 Make large numbers more readable12.4 Make use of Scalar::Util12.5 Make use of List::Util12.6 Make use of List::MoreUtils12.7 List formatting12.8 Understand slices12.9 Make use of Hash::Util12.10 Make use of Hash::MoreUtils12.11 Smart use of subscripts12.12 Understand the advantages and disadvantages of for, foreach, grep and map12.13 Know different sort techniques12.14 Avoid using memory to store large dataChapter Thirteen New Features12.1 Perl versions12.2 The latest/greatest?12.3 Changes by version12.4 The feature pragma12.5 Make use of the Smartmatch Operator12.6 The // operator12.7 The UNITCHECK block12.8 Yada yada12.9 The autodie pragma12.10 Using each, keys, values with arrays 12.11 New Regular Expression modifiers12.12 Non-destructive substation12.13 Automating Regular Expression modifiers12.14 New feature for given12.15 Change in use feature12.16 The CORE namespace12.17 Overriding Perl keywords
Beginning PyQt
Learn GUI application development from the ground up, taking a practical approach by building simple projects that teach the fundamentals of using PyQt. Each chapter gradually moves on to teach more advanced and diverse concepts to aid you in designing interesting applications using the latest version of PyQt.You’ll start by reviewing the beginning steps of GUI development from, using different projects in every chapter to teach new widgets or concepts that will help you to build better UIs. As you follow along, you will construct more elaborate GUIs, covering topics that include storing data using the clipboard, graphics and animation, support for SQL databases, and multithreading applications. Using this knowledge, you’ll be able to build a photo editor, games, a text editor, a working web browser and an assortment of other GUIs.Beginning PyQt will guide you through the process of creating UIs to help you bring your own ideas to life. Learn what is necessary to begin making your own applications and more with PyQt!WHAT YOU'LL LEARN* Create your own cross-platform GUIs with PyQt and Python* Use PyQt’s many widgets and apply them to building real applications* Build larger applications and break the steps into smaller parts for deeper understanding* Work with complex applications in PyQt, from animation to databases and moreWHO THIS BOOK IS FORIndividuals who already have a fundamental understanding of the Python programming language and are looking to either expand their skills in Python or have a project where they need to create a UI, but may have no prior experience or no idea how to begin.Joshua Willman began using Python in 2015, when his first task was to build neural networks using machine learning libraries, including Keras and Tensorflow, for image classification. While creating large image data sets for his research, he needed to build a GUI that would simplify the workload and labeling process, which introduced him to PyQt. He currently works as a Python Developer and Instructor, designing courses to help others learn about coding in Python for game development, AI and machine learning, and programming using microcontollers. More recently, he set up the site Red Huli to explore his and others’ interests in using Python and programming for creative purposes.BEGINNING PYQTChapter 1 - Charting the CourseChapter 2 - Getting StartedChapter 3 - Adding Functions Through ButtonsChapter 4 - Learning about LayoutChapter 5 - Menus, Toolbars,and MoreChapter 6 - Styling Your GUIsChapter 7 - Creating GUIs with Qt DesignerChapter 8 - Working with the ClipboardChapter 9 - Graphics and Animation in PyQtChapter 10 - Intro to Handling DatabasesChapter 11 - Asynchronous ProgrammingChapter 12 - Extra ProjectsAppendix A - Reference Guide for PyQtAppendix B - Python Refresher
Einführung in Java
Mit diesem Buch steigen Sie ohne Vorkenntnisse in Java und die objektorientierte Programmierung ein. Schritt für Schritt machen Sie sich mit der Sprache und ihren Konzepten vertraut. Sie lernen, in Algorithmen zu denken und Java sowie die vielen Werkzeuge Ihrer Plattform geschickt zu nutzen. Immer praxisnah und mit Gefühl für mögliche Verständnishürden: So werden auch professionelle Themen wie Testabdeckung, Multithreading und Servletentwicklung einsteigergerecht vermittelt. Schließlich schreiben Sie zeitgemäßen Code, der auch komplexe Software trägt. Ideal für Ausbildung, Studium und Beruf! Aus dem Inhalt: Die Entwicklungsumgebung einrichten und kennenlernenGrundkonzepte glasklar vorgestelltSprachmittel gründlich verstehenNeue Features einsetzenUnit Tests und Test Driven DesignDatenbanken anbindenIn Servlet-Technologie einsteigenEvents einsetzen und asynchron programmierenGUIs entwickelnGuten Code schreibenMit Dateien und Streams arbeitenIn die Entwicklung von Android-Apps einsteigen Materialien zum Buch ... 19 1. Einführung ... 21 1.1 ... Was ist Java? ... 22 1.2 ... Die Arbeitsumgebung installieren ... 28 1.3 ... Erste Schritte in NetBeans ... 30 1.4 ... Das erste Programm ... 32 1.5 ... In Algorithmen denken, in Java schreiben ... 41 1.6 ... Die Java-Klassenbibliothek ... 47 1.7 ... Dokumentieren als Gewohnheit -- Javadoc ... 50 1.8 ... JARs erstellen und ausführen ... 56 1.9 ... Mit dem Debugger arbeiten ... 61 1.10 ... Das erste eigene Projekt ... 66 1.11 ... Zusammenfassung ... 68 2. Variablen und Datentypen ... 69 2.1 ... Variablen ... 69 2.2 ... Primitivtypen ... 73 2.3 ... Objekttypen ... 87 2.4 ... Objekt-Wrapper zu Primitiven ... 91 2.5 ... Array-Typen ... 94 2.6 ... Zusammenfassung ... 96 3. Entscheidungen ... 97 3.1 ... Entweder-oder-Entscheidungen ... 97 3.2 ... Logische Verknüpfungen ... 104 3.3 ... Mehrfach verzweigen mit »switch« ... 110 3.4 ... Zusammenfassung ... 116 4. Wiederholungen ... 117 4.1 ... Bedingte Wiederholungen mit »while« ... 117 4.2 ... Abgezählte Wiederholungen -- die »for«-Schleife ... 121 4.3 ... Abbrechen und überspringen ... 123 4.4 ... Zusammenfassung ... 126 5. Klassen und Objekte ... 127 5.1 ... Klassen und Objekte ... 128 5.2 ... Access-Modifier ... 130 5.3 ... Felder ... 132 5.4 ... Methoden ... 133 5.5 ... Warum Objektorientierung? ... 142 5.6 ... Konstruktoren ... 144 5.7 ... Statische Felder und Methoden ... 148 5.8 ... Unveränderliche Werte ... 151 5.9 ... Spezielle Objektmethoden ... 154 5.10 ... Zusammenfassung ... 156 6. Objektorientierung ... 157 6.1 ... Vererbung ... 158 6.2 ... Interfaces und abstrakte Datentypen ... 171 6.3 ... Übung: Objektorientierte Modellierung ... 179 6.4 ... Innere Klassen ... 180 6.5 ... Enumerationen ... 187 6.6 ... Zusammenfassung ... 190 7. Unit Testing ... 191 7.1 ... Das JUnit-Framework ... 193 7.2 ... Fortgeschrittene Unit Tests ... 199 7.3 ... Besseres Design durch Testfälle ... 205 7.4 ... Zusammenfassung ... 208 8. Die Standardbibliothek ... 209 8.1 ... Zahlen ... 209 8.2 ... Strings ... 214 8.3 ... Reguläre Ausdrücke ... 224 8.4 ... Zeit und Datum ... 231 8.5 ... Internationalisierung und Lokalisierung ... 236 8.6 ... Zusammenfassung ... 244 9. Fehler und Ausnahmen ... 245 9.1 ... Exceptions werfen und behandeln ... 245 9.2 ... Verschiedene Arten von Exceptions ... 252 9.3 ... Invarianten, Vor- und Nachbedingungen ... 258 9.4 ... Zusammenfassung ... 260 10. Arrays und Collections ... 261 10.1 ... Arrays ... 261 10.2 ... Die for-each-Schleife ... 271 10.3 ... Variable Parameterlisten ... 271 10.4 ... Collections ... 273 10.5 ... Typisierte Collections -- Generics ... 278 10.6 ... Maps ... 288 10.7 ... Zusammenfassung ... 290 11. Lambda-Ausdrücke ... 291 11.1 ... Was sind Lambda-Ausdrücke? ... 292 11.2 ... Die Stream-API ... 304 11.3 ... Un-Werte als Objekte -- »Optional« ... 321 11.4 ... Eine Warnung zum Schluss ... 324 11.5 ... Zusammenfassung ... 325 12. Dateien, Streams und Reader ... 327 12.1 ... Dateien und Verzeichnisse ... 328 12.2 ... Reader, Writer und die »anderen« Streams ... 334 12.3 ... Objekte lesen und schreiben ... 346 12.4 ... Netzwerkkommunikation ... 349 12.5 ... Zusammenfassung ... 352 13. Multithreading ... 353 13.1 ... Threads und Runnables ... 354 13.2 ... Atomare Datentypen ... 361 13.3 ... Synchronisation ... 362 13.4 ... Fortgeschrittene Koordination zwischen Threads ... 370 13.5 ... Die Zukunft -- wortwörtlich ... 376 13.6 ... Das Speichermodell von Threads ... 381 13.7 ... Zusammenfassung ... 383 14. Servlets -- Java im Web ... 385 14.1 ... Einen Servlet-Container installieren ... 386 14.2 ... Die erste Servlet-Anwendung ... 392 14.3 ... Servlets programmieren ... 403 14.4 ... Java Server Pages ... 410 14.5 ... Langlebige Daten im Servlet -- Ablage in Session und Application ... 416 14.6 ... Fortgeschrittene Servlet-Konzepte -- Listener und Initialisierung ... 419 14.7 ... Zusammenfassung ... 422 15. Datenbanken und Entitäten ... 423 15.1 ... Was ist eine Datenbank? ... 424 15.2 ... Mit einer Datenbank über die JPA verbinden ... 431 15.3 ... Anwendung und Entitäten ... 436 15.4 ... Entitäten laden ... 439 15.5 ... Entitäten löschen ... 444 15.6 ... Beziehungen zu anderen Entitäten ... 445 15.7 ... Zusammenfassung ... 452 16. GUIs mit JavaFX ... 453 16.1 ... Einführung ... 453 16.2 ... Installation ... 454 16.3 ... Architektur von JavaFX ... 454 16.4 ... GUI-Komponenten ... 457 16.5 ... Layouts ... 468 16.6 ... GUI mit Java-API -- Urlaubsverwaltung ... 478 16.7 ... Event-Handling ... 482 16.8 ... JavaFX-Properties und Binding ... 489 16.9 ... Deklarative GUIs mit FXML ... 495 16.10 ... Layout mit CSS ... 501 16.11 ... Transformationen, Animationen und Effekte ... 505 16.12 ... Übungen ... 512 16.13 ... Zusammenfassung ... 513 17. Android ... 515 17.1 ... Einstieg in die Android-Entwicklung ... 515 17.2 ... Eine Benutzeroberfläche designen ... 528 17.3 ... Anwendungen mit mehreren Activities ... 535 17.4 ... Permissions und SystemServices ... 542 17.5 ... Apps im Play Store veröffentlichen ... 546 17.6 ... Zusammenfassung ... 546 18. Hinter den Kulissen ... 549 18.1 ... Klassenpfade und Classloading ... 549 18.2 ... Garbage Collection ... 556 18.3 ... Flexibel codieren mit der Reflection-API ... 563 18.4 ... Blick in die Zukunft ... 569 18.5 ... Zusammenfassung ... 572 19. Und dann? ... 573 19.1 ... Jakarta EE ... 574 19.2 ... Open-Source-Software ... 579 19.3 ... Ergänzende Technologien ... 580 19.4 ... Andere Sprachen ... 583 19.5 ... Programmieren Sie! ... 585 Anhang ... 587 A ... Java-Bibliotheken ... 589 B ... Lösungen zu den Übungsaufgaben ... 597 C ... Glossar ... 707 D ... Kommandozeilenparameter ... 723 Index ... 731
Excel Spezial - Daten abrufen, aufbereiten & mit Pivot-Tabellen auswerten
Die praktische Anleitung für den Umgang mit großen Datenmengen:- Stets aktuelle Auswertungen umfangreicher externer Daten- Anschauliche Anleitungen mit Beispielen zum DownloadSie benötigen laufend aktuelle Daten aus externen Quellen? Mit Excel können Sie regelmäßig wiederkehrende Auswertungen umfangreicher Daten schnell und einfach vornehmen. Wie das geht, erfahren Sie Schritt für Schritt in diesem Buch.Die Autorin erklärt systematisch, wie Sie eine Verbindung zu externen Datenquellen herstellen, diese gezielt für Ihre weiteren Auswertungen aufbereiten und später mit nur einem Mausklick aktualisieren. Für daran anschließende zusammenfassende Auswertungen sind Pivot-Tabellen das ideale Werkzeug – ihre zahlreichen Möglichkeiten werden ausführlich beschrieben. Als sinnvolle Ergänzung dazu lernen Sie Berechnungen und Datenmodelle mit Power Pivot kennen. Profitieren Sie von gut nachvollziehbaren Anleitungen, anschaulichen Beispielen zum kostenlosen Download und vielen hilfreichen Tipps, z. B. wie Sie den Speicherumfang von Arbeitsmappen reduzieren.Aus dem Inhalt:- Was Sie beim Anlegen von Excel-Tabellen als Ausgangsbasis beachten sollten- Daten aus verschiedenen externen Quellen abrufen, z. B. SQL, Textdateien, XML oder aus dem Web- Länderspezifische Zahlen konvertieren, weitere Spalten berechnen, Daten gruppieren- Daten mit Power Query abrufen und aufbereiten- Grundlegende Arbeitstechniken im Power Query-Editor- Daten aus zwei und mehr Tabellen zusammenführen- Pivot-Tabellen und Pivot-Diagramme erstellen und Felder anordnen- Berichtslayout, Teil- und Gesamtergebnisse darstellen- Spalten und Measures mit Power Pivot berechnen- Grundlagen der Datenmodellierung
The Definitive Guide to Masonite
Build fast and effective applications using Masonite, a Python-based framework. This book covers creating a digital home assistant application, but it’s certainly not the only kind of application you could build. By working on this kind of project, you’ll cover the broad range of topics and requirements you’re likely to find as you establish your own web empire.You’ll see how Masonite is a developer-centric Python framework, which provides all the tools you’ll need to build powerful and maintainable web applications. After reading and using this book, you'll have the tools to make and deploy your own web ecommerce application from scratch using the Masonite framework.WHAT YOU WILL LEARN* Customize your request and response cycle with middleware, route groups, and headers* Add security into your application and protect against possible vulnerabilities* Create and control your application’s maintenance features from a terminal* Manage a database, so your teammates and environments will always be in sync* Represent relational database data with object-oriented programming techniques* Read and write from the file system* Process large datasets and slow operations in the background* Add real-time features and recurring tasks to your applicationWHO THIS BOOK IS FORWeb developers new to the Masonite framework. Some prior Python experience is helpful but is not required.Christopher Pitt is a developer and writer, working at SilverStripe. He usually works on application architecture, though sometimes you’ll find him building compilers or robots. He is also the author of several web development books and is a contributor on various open source projects such as AdonisJs and Masonite.1. Getting started2. Routing3. The Service Container4. Accepting data through forms5. Using a database6. Security7. Authentication8. Middleware9. Helpers10. Doing Work in the Background11. Adding Websockets with Pusher12. Testing13. Deploying
Datenvisualisierung - Grundlagen und Praxis
Professionelle Datenvisualisierung: So sprechen und überzeugen Ihre Daten* Herausragendes Grundlagenwerk zum Thema Datenvisualisierung * Einprägsam und anschaulich durch eine Vielzahl von guten und schlechten Beispielen* Hoher Praxisnutzen durch Tipps zu Diagrammtypen, dem Einsatz von Farben und Formen u.v.m.Wie wird Wissen, das in komplexen Datensätzen steckt, zugänglich? Durch professionelle Datenvisualisierung.Ob Data Scientist, Wissenschaftler, Analyst oder Berater oder einfach alle, die technische Dokumente oder Berichte erstellen müssen: Datenvisualisierung ist zu einer unverzichtbaren Kernkompetenz geworden.Claus O. Wilke bietet in seinem Grundlagenwerk eine systematische Einführung in die Prinzipien, Methoden und Konzepte der Datenvisualisierung - und das sehr praxisnah und anschaulich: durch solide Grundlagen und unzählige gute und schlechte Beispiele.Nach der Lektüre wissen Sie, was professionelle Abbildungen ausmacht:Welche Darstellungsmöglichkeiten gibt es? Wie entwickelt man ein aussagekräftiges Farbschema? Welcher Visualisierungstyp eignet sich am besten für die Geschichte, die Sie erzählen möchten?Wilkes Grundlagenwerk verzichtet bewusst auf Programmcode. Die beschriebenen Konzepte und Prinzipien können - ganz gleich mit welcher Visualisierungssoftware Sie arbeiten - angewendet werden. R-Nutzer finden den Code zu den Abbildungen auf GitHub.Claus O. Wilke ist Professor für Integrative Biology an der University of Texas in Austin, USA. Er hat an der Ruhr-Universität Bochum in theoretischer Physik promoviert. Claus ist Autor und Co-Autor von über 170 wissenschaftlichen Publikationen, die sich mit Themen aus den Bereichen Computational Biology, mathematische Modellierung, Bioinformatik, Evolutionsbiologie, Proteinbiochemie, Virologie und Statistik befassen. Er hat außerdem mehrere beliebte R-Pakete zur Datenvisualisierung wie cowplot und ggridges entwickelt und wirkt an der Entwicklung von ggplot2 mit.
Deep Learning - Grundlagen und Implementierung
Grundprinzipien und Konzepte neuronaler Netze systematisch und verständlich erklärt* Deep-Learning-Grundlagen für Data Scientists und Softwareentwickler mit Erfahrung im Machine Learning * Implementierung der Deep-Learning-Konzepte mit dem beliebten Framework PyTorch* Zahlreiche Codebeispiele in Python verdeutlichen die konkrete Umsetzung Dieses Buch vermittelt Ihnen das konzeptionelle und praktische Rüstzeug, um ein tiefes Verständnis für die Funktionsweise neuronaler Netze zu bekommen. Sie lernen die Grundprinzipien des Deep Learning kennen, zu deren Veranschaulichung Seth Weidman gut nachvollziehbare Konzeptmodelle entwickelt hat, die von Codebeispielen begleitet werden. Das Buch eignet sich für Data Scientists und Softwareentwickler mit Erfahrung im Machine Learning.Sie beginnen mit den Basics des Deep Learning und gelangen schnell zu den Details fortgeschrittener Architekturen, indem Sie deren Aufbau von Grund auf neu implementieren. Dabei lernen Sie mehrschichtige neuronale Netze wie Convolutional und Recurrent Neural Networks kennen. Diese neuronalen Netzwerkkonzepte setzen Sie dann mit dem beliebten Framework PyTorch praktisch um. Auf diese Weise bauen Sie ein fundiertes Wissen darüber auf, wie neuronale Netze mathematisch, rechnerisch und konzeptionell funktionieren.Seth Weidman ist Data Scientist. Er teilt seine Zeit auf zwischen der Lösung von Machine-Learning-Problemen bei Facebook und seinem Engagement für PyTorch. Zuvor war er im Bereich Machine Learning bei Trunk Club tätig und hat später Machine Learning und Deep Learning im Corporate Training Team von Metis unterrichtet. Seine Passion ist es, komplexe Konzepte einfach zu erklären.
Beginning PBR Texturing
Delve into the concepts of physically based rendering (PBR) using Allegorithmic’s Substance Painter. This book covers the integration of PBR textures with various 3D modeling and rendering packages as well as with the Unreal Engine 4 game engine.BEGINNING PBR TEXTURING covers all aspects of the software and guides you in implementing its incredible possibilities, including using materials, masks, and baking. Integration with both internal and popular external rendering engines is covered.This book teaches you the skills you need to use the texturing tool that is recognized by studios worldwide. You will know tips and tricks to implement the pipeline and speed up your workflow.WHAT YOU WILL LEARN* Know the fundamentals of PBR-based texturing from the ground up* Create production-ready textured models from scratch* Integrate PBR textures with standard 3D modeling and rendering applications* Create portfolio-ready renders using offline renderersWHO THIS BOOK IS FORBeginners in the fields of 3D animation, computer graphics, and game technologyDR. ABHISHEK KUMAR is Assistant Professor in the Department of Computer Science at the Institute of Science at Banaras Hindu University. He is an Apple Certified Associate, Adobe Education Trainer, and certified by Autodesk. He is actively involved in course development in animation and design engineering courses for various institutions and universities as they will be a future industry requirement.Dr. Kumar has published a number of research papers and covered a wide range of topics in various digital scientific areas (image analysis, visual identity, graphics, digital photography, motion graphics, 3D animation, visual effects, editing, composition). He holds two patents in the field of design and IoT and has created two inventions related to a pipeline inspection robot to help visually impaired people.Dr. Kumar has completed professional studies related to animation, computer graphics, virtual reality, stereoscopy, filmmaking, visual effects, and photography from Norwich University of Arts, University of Edinburg, and Wizcraft MIME & FXPHD, Australia. He is passionate about the media and entertainment industry, and has directed two animation short films.Dr. Kumar has trained more than 50,000 students across the globe from 153 countries (top five: India, Germany, United States, Spain, Australia). His alumni have worked for national and international movies such as Ra-One, Krissh, Dhoom, Life of Pi, the Avengers series, the Iron Man series, GI Joe 3D, 300, Alvin and the Chipmunks, Prince of Persia, Titanic 3D, the Transformers series, Bahubali 1 & 2, London Has Fallen, Warcraft, Aquaman 3D, Alita, and more.CHAPTER 1: INTRODUCTIONChapter Goal: This chapter introduces the reader to the layout of the book and how to best use the book in a practical way to develop their skills.Sub-Topics• What is our goal• A career as game developer• How to best use this bookCHAPTER 2: GRAPHICS IN THE GAME INDUSTRYChapter Goal: In this chapter, the readers will take a peek into the working of the video game industry. Also, software used in the Production pipeline are discussed.Sub-Topics• Concept of computer graphics• Visualization basics• What is PBR?• Game render engines or game enginesCHAPTER 3: WORKFLOW OF TEXTURINGChapter Goal: This chapter discusses the general workflows of preparing a model for texturing. The concept and importance of UV unwrapping are also considered as well as common problems that usually arise during work and how to handle them.Sub-Topics• Game texturing pipeline• What is UV mapping?• What are the different types of texture maps?CHAPTER 4: TEXTURING GAMES VS TEXTURING MOVIESChapter Goal: Here the reader will learn more about the major differences as well as the similarities between texturing assets for movies and texturing assets for games.Sub-Topics• Texture map fundamental• What are the major differences?• Common pipelines and similaritiesCHAPTER 5: PBR TEXTURING VS TRADITIONAL TEXTURINGChapter Goal: In this chapter, we discuss the various traditional and modern texturing methods and their pros and cons. This will help readers decide which method is best suited for them.Sub-Topics• Texturing using 2D painting applications• Texturing using 3D texture painting applications• PBR texturing examples• PBR vs traditional texturingCHAPTER 6: SUBSTANCE SUITEChapter Goal: The readers are introduced to the four softwares that come with the Substance Suite and the different functions of each of them and where they are used in the industry.Sub-Topics• What is Substance Painter?• Why should we use substances?• Uses of other Substance Suite applicationsCHAPTER 7: HARDWARE SPECIFICATIONChapter Goal: The recommended hardware configurations required to run Substance Painter properly are discussed.Sub-Topics• GPU vs CPU• Recommended hardwareCHAPTER 8: GRAPHICAL USER INTERFACEChapter Goal: All the essential shortcuts and the GUI for Substance Painter are listed in this chapter.Sub-Topics• Main menu• Sliders• Toolbars• Properties• Texture Set• Layer Stack• History• Shelf• Display SettingsCHAPTER 9: VIEWPORT NAVIGATIONChapter Goal: The readers are introduced to the Viewport and all the tools and shelves of Substance Painter.Sub-Topics• Common shortcuts• A detailed guide to commonly used toolsCHAPTER 10: PROJECT SETUPChapter Goal: How to setup a project in Substance Painter and what are the correct settings for the same? We will discuss all that in this chapter.Sub-Topics• Choosing a substance workflow• Import into Substance Painter• Project configuration in detailCHAPTER 11: BAKING AND IMPORTANCE OF MAPSChapter Goal: In this chapter, the readers will learn about the importance of baking maps and their uses.Sub-Topics• Introduction to the Baker• Baking parameters in Substance Painter• Uses of different maps created by BakerCHAPTER 12: WORKING WITH MATERIALS, LAYERS, AND MASKSChapter Goal: This chapter introduces the students to the materials and the robust layer-based workflow that allows the creation of complex materials using masks.Sub-Topics• Introduction to Materials and Smart Materials• Building up your material• Layers and MasksCHAPTER 13: WORKING WITH PROCEDURAL MAPSChapter Goal: Here, we discuss how to texture procedurally using various maps and filters and more advanced uses of masks.Sub-Topics• Detailed introduction of filters• Comprehensive introduction of generators• Uses of grunge and other procedural texturesCHAPTER 14: SUBSTANCE ANCHORSChapter Goal: The students will now learn about the anchor system of Substance Painter and how powerful they are.Sub-Topics• What is an anchor?• Anchor point as a reference• How to effectively use anchorCHAPTER 15: RENDERING WITH I-RAYChapter Goal: The internal of render engine of Substance Painter, the Nvidia I-Ray is discussed in this chapter and how to render an asset using it.Sub-Topics• What is I-Ray?• I-Ray Render settings• Exporting Painter filesCHAPTER 16: INTEGRATION WITH MARMOSET, MAYA, AND BLENDERChapter Goal: Here, we discuss the procedure for export of the created material from Substance Painter to other popular render engines.Sub-Topics• Exporting for Marmoset, Maya, and Blender• Importing into Marmoset, Maya, and Blender• Material setup in Marmoset, Maya, and BlenderCHAPTER 17: RENDERING A PORTFOLIOChapter Goal: Finally, we discuss the process of importing maps in the render engine of your choice and rendering a portfolio ready image. In our case, we will use Blender and Marmoset tool bag.Sub-Topics• Material setup in Blender• Rendering with Blender• Rendering with Marmoset tool bagCHAPTER 18: INTEGRATION WITH GAME ENGINE (UE4)Chapter Goal: In this chapter, readers will learn about the process of exporting materials for game engine (Unreal Engine 4 in our case) as well as setting up the material inside the game engine for use.Sub-Topics• Exporting to Unreal Engine 4• Importing into Unreal Engine 4• Material setupCHAPTER 19: TIPS AND TRICKS OF SUBSTANCE PAINTERChapter Goal: In this final chapter, we will discuss some tips and tricks that will help speed up your work-flow or help you in creating something interesting.Sub-Topics• Some general tips• Integration of substance painter with Designer• Some tricks with tools• Substance painter use in media and entertainment industry
Let´s Play: Bauen in Minecraft. Unter Wasser, auf dem Land und in der Luft
* ERSCHAFFE DEINE EIGENE MINECRAFT-WELT: TIPPS UND IDEEN FÜR KREATIVE BAUPROJEKTE* INNENEINRICHTUNG UND DEKORATION, BRÜCKEN UND BURGEN, VERTEIDIGUNGSANLAGEN, FALLEN UND KANONEN* ZAHLREICHE PROFI-TRICKS Z.B. ZUM BAUEN UNTER WASSER ODER IN DER LUFTIn Minecraft kannst du aus einfachen Blöcken die unterschiedlichsten Gebäude und Anlagen bauen. Deiner Kreativität sind dabei kaum Grenzen gesetzt.Egal ob du ein einfaches Haus, Straßen, Brücken, Gärten, Schiffe, eine Burg, ein Schloss oder vielleicht sogar einen Heißluftballon erstellen willst, hier lernst du, wie es geht. Und damit die Umsetzung deiner Ideen nicht an der fehlenden Technik scheitert, findest du in diesem Buch viele Tipps und Tricks, mit denen du deine eigenen Bauprojekte noch besser umsetzen kannst.Zahlreiche Beispiele für das Bauen auf dem Land, im und unter Wasser und sogar in der Luft geben dir außerdem Anregungen und jede Menge Ideen für deine eigenen Projekte.Mit diesem Buch wirst du ein professioneller Minecraft-Baumeister.Daniel Braun ist seit den ersten Tagen Minecraft-Anhänger und kennt als Profi alle Facetten des Spiels. Er hat bereits mehrere Bücher zu Minecraft geschrieben.
Robotic Process Automation
Sie planen Robotic Process Automation (RPA) im Unternehmen einzuführen und ihre administrativen Prozesse ins digitale Zeitalter zu überführen? Dieser pragmatische Ratgeber, bietet Ihnen praxisgerecht, komprimiert und auf den Punkt zusammengefasst Erfahrungen aus deutschen Unternehmen. Neben der Erläuterung der Vorteile und notwendigen Schritte zur Einführung der innovativen RPA Technologie, werden mögliche Anwendungsfelder näher beleuchtet.Worauf muss man bei der Implementierung und dem Betrieb achten, welche Stolpersteine gilt es zu umgehen, wie setze ich den ersten Software-Robot um und was ist notwendig für einen flächendeckenden, störungsfreien Einsatz? Wie bringt man die eigene Mitarbeiterbelegschaft und die Gremien hinter sein Vorhaben? Welchen Compliance- und Sicherheitsanforderungen muss RPA genügen? All diese Fragestellung werden in diesem Buch mit Beispielen, Checklisten und Illustrationen praxisnah beantwortet.CHRISTINA KOCH hat in ihrer Rolle als Projektleiterin bei einem DAX-Konzern in über 10 Jahren vielzählige Großprojekte eigenverantwortlich geleitet und erfolgreich umgesetzt – zuletzt die konzernweite Einführung von RPA. Hierbei profitierte sievom Austausch mit RPA-Experten diverser deutschen Industriegrößen und greift somit auf einen breiten Erfahrungsschatz aus erster Hand zurück. Christina Koch als die Autorin dieses Buches hat, basierend auf ihrer mehrjährigen praktischen RPA-Erfahrung in der deutschen Industrie, den Text und die Grafiken erarbeitet.DR. STEPHEN FEDTKE ist CTO des auf IT-Sicherheit und -Compliance spezialisierten Lösungsanbieters Enterprise-IT-security.com. Er hat das Manuskript unter Einsatz seiner fundierten IT-Expertise qualitätsgesichert.Roboter gehören in die Fertigungshallen, nicht ins Büro! Oder doch nicht?.- Der Leuchtturm-Robot – welche Schritte sind notwendig zur Einführung des ersten Robots?.- Der Rollout – wie führe ich RPA flächendeckend im Unternehmen ein?.- Wo kann die Reise hingehen und wann werden die Zukunftsvisionen im Bereich Business Process Automation real?.
Slack For Dummies
YOU GET SO MUCH MORE DONE WHEN YOU SLACK!Ever wondered what it would be like to be less overwhelmed, more efficient, and much more engaged at work? A way you can make all that happen is, of course, to Slack. Actually, it's to use Slack, the business communications platform that's revolutionized how groups work together. This comprehensive guide shows how--as well as why--there are now millions of users of this flexible, fun, and intuitive workspace tool.Presented in a clear, easy-to-follow style, Slack For Dummies takes you from the basics of getting started with the service all the way through how to get your teams Slacking together for all they're worth. You'll also find case studies showing how Slack increases productivity and how to replicate that in your organization, as well as tips on getting buy-in from the boss.* Introduce Slack to your workflo* wUnderstand roles and feature* sAnalyze user dat* aKeep your Slacking secureSo, take a peek inside and discover how you can cut the slack using Slack--and clue your teams in on how there is actually a way to Slack off for improved results!PHIL SIMON is the award-winning author of nine books, including Message Not Received: Why Business Communication is Broken and How to Fix It. He is a recognized technology authority, Slack trainer, dynamic public speaker, college professor, and longtime Slack power user.
Clean Code für Dummies
Clean Code ist eine wichtige Methode, um zu besserer Software zu kommen. Zu beachten sind Korrektheit, Verständlichkeit, Lesbarkeit und Ressourcenverbrauch. Programmieren ist aber mehr als ein Handwerk. Klarer Code ist auch Ausdruck klaren Denkens und beginnt damit schon vor der Niederschrift. Regeln sind wichtige Stützen, aber das eigenständige Denken, Entscheiden und Abwägen ersetzen sie nicht. Das Buch vermittelt handwerkliche Fertigkeiten und stellt das Programmieren in den Gesamtprozess der Softwareentwicklung. Jürgen Lampe ist IT-Berater in Eschborn in der Nähe von Frankfurt. Er hat Mathematik studiert, Prozessrechenanlagen programmiert und als Hochschullehrer an der TU Dresden gearbeitet. Über die Jahre hat er nie das Coden aufgegeben. Er kennt diverse Programmiersprachen - von Algol60 über PL/I und Pascal bis zu Java - und er kennt die Vor- und Nachteile verschiedener Programmierstile.Über den Autor 9EINLEITUNG 23Über dieses Buch 23Konventionen in diesem Buch 24Was Sie nicht lesen müssen 24Törichte Annahmen über die Leser 25Wie dieses Buch aufgebaut ist 26Symbole, die in diesem Buch verwendet werden 27Wie es weitergeht 28TEIL I: DAS CLEAN-CODE-PRINZIP 29KAPITEL 1 SOFTWARE IST CODE31Erwartungen an Software 31Probleme haben Ursachen 32Allgemeine Ursachen 32Hardwareentwicklung 33Nichts ohne Code 34Das Wichtigste in Kürze 35KAPITEL 2 DIMENSIONEN VON CODEQUALITÄT37Was bedeutet Qualität? 37Eigenschaften des Qualitätsbegriffs 37Qualitätsindikatoren 38Die Dimensionen von Codequalität 39Korrektheit des Codes 39Lesbarkeit und Wartbarkeit 40Leistungseigenschaften 40Weitere Dimensionen 41Das Qualitätsziel festlegen 41Beispiel: Der euklidische Algorithmus 42Das Wichtigste in Kürze 43KAPITEL 3 ALLES UNTER EINEN HUT – GUTE KOMPROMISSE FINDEN 45Warum gute Entscheidungen wichtig sind 45Es kommt drauf an 45Widersprüche überall 46Konflikte akzeptieren 47Entscheidungen systematisch treffen 48Konflikte erkennen 48Alternativen sammeln 48Kriterien finden 49Wahlmöglichkeiten bewerten 50Entscheiden 51Mit Augenmaß 51Das Wichtigste in Kürze 52KAPITEL 4 DIE EIGENSCHAFTEN SAUBEREN CODES55Des Clean Codes Kern 55Code als Ziel 56Professionalität 57Es geht immer weiter 58Code als Kommunikationsmittel zwischen Menschen 58Lesbarkeit 59Verständlichkeit 59Eleganz 60Gute Wartbarkeit 61Leichter durch Verständlichkeit 61Nicht ohne Test 61Zu guter Letzt 62Das Wichtigste in Kürze 63KAPITEL 5 IN DER PRAXIS: STOLPERSTEINE 65Clean Code ist schwer 65Reden wir über die Kosten 65Kurz- und mittelfristige Vorteile 66Langfristige Vorteile 66Bewertung 68Ändern bleibt schwierig 68Manchmal passt es nicht 69Frameworks 70Projektvorgaben 70Starre Abläufe 71Falsche Autoritäten 71Es liegt an Ihnen 73Das Wichtigste in Kürze 73TEIL II: AN HERAUSFORDERUNGEN WACHSEN 75KAPITEL 6 MEHR ALS HANDWERKSKUNST77Programmieren ist schwer 77Software professionell entwickeln 79Softwareentwicklung braucht Handwerk 80Handwerk allein reicht nicht 82Das Wichtigste in Kürze 83KAPITEL 7 ENTWICKELN IST (KREATIVE) WISSENSCHAFT 85Formalisiertes Wissen 85Was sind formale Theorien? 86Wann braucht es eine (neue) Theorie? 87Wie Sie zu einer Theorie kommen? 88Mentales Modell als Theorie 88Wenn es so einfach wäre: Viele Hürden 89Und dann auch noch der kleine Rest 90Konsequenzen 91Die Bedeutung des Entwicklers darf nicht unterschätzt werden 91Es werden verschiedene Qualifikationen gebraucht 92Auch die Theorie muss weiterentwickelt werden 93Das Wichtigste in Kürze 94KAPITEL 8 MODELLIERUNGSDILEMMA UND ENTSCHEIDUNGSMÜDIGKEIT 95Das Modellierungsdilemma 95Was macht ein Modell aus? 95Ein Modell für alle Anforderungen gesucht 96Und wenn es kein umfassendes Modell gibt? 98Entscheiden ermüdet 100Entwickeln heißt entscheiden 100Entscheidungskraft optimal nutzen 101Das Wichtigste in Kürze 103KAPITEL 9 FALLEN VERMEIDEN 105Erst mal loslegen 105Agil heißt nicht »kein Konzept« 105Abgrenzung ist alles 106Wenn es nicht anders geht 107Schön flexibel bleiben 108Flexible Programme 109Flexibilität bläht auf 109Die Sinnfrage 110Modularisierung übertreiben 111Davon verschwindet die Komplexität nicht 111Zerlegung will geübt sein 112Schon wieder: Kosten 113Wachsen im Korsett 113Das Wichtigste in Kürze 114TEIL III: SAUBEREN CODE SCHREIBEN 115KAPITEL 10 NAMEN SIND NICHT SCHALL UND RAUCH 117Benennungen 117Namen versus Bezeichner 118Namen versus Begriffe 118Woher nehmen? 120Lösungsdomäne 120Anwendungsdomäne 120Eigenschaften guter Namen 121Den Sinn vermitteln 121Nicht in die Irre führen 121Sinnvolle Unterschiede 122Verschlüsselungen vermeiden 123Verwendbarkeit 124Klassen und Methoden 125Die Qual der Sprachwahl 125Englisch 126Deutsch 126Keine Empfehlung 126Was zu tun ist 127Das Wichtigste in Kürze 127KAPITEL 11 REINE FORMFRAGE – FORMATIERUNG129Das Auge liest mit 129Vertikales Formatieren 131Codelänge 131Vorbild Zeitung 131Vertikale Abstände 132Vertikale Ordnung 134Horizontales Formatieren 135Zeilenlänge 135Horizontale Abstände 136Einrückungen 138Automatische Formatierung 139Vorteile 139Nachteile 140Das Wichtigste in Kürze 140KAPITEL 12 CODE ZUERST – SIND KOMMENTARE NÖTIG? 141Code allein reicht nicht 141Erklärung gesucht 141Das große Missverständnis: Code spricht nur den Computer an 142Kommentare – hilfreich oder störend? 142Kommentare lügen – oft 143Sinnvolle Kommentare 143Rechtshinweise 143Unerledigtes 143Klarstellungen und Warnungen 144Algorithmen 144Spezifikationen 144Pragmatisches 146Schlechte Kommentare 147Nichtssagendes 147Auskommentierter Code 148Unterschiedliche Sprachen 148Fehlender Bezug 148JavaDoc 149Dokumentationen 150Schönheit 151Das Wichtigste in Kürze 152KAPITEL 13 KLEINE SCHRITTE – SAUBERE METHODEN153Methoden 153Begriffliche Klärung 154Eigenschaften 154Der Inhalt 155Abstraktion 155Trennung von Bearbeitung und Abfrage 155Testen 156Die Größe 156Eine Aufgabe 156Zeilenzahl 157Schachtelungsstruktur 158Parameter 159Anzahl 160Stellung 162Parameter vermeiden 162Testen 163Flag-Parameter 163Resultate 164Rückgabewerte 164Rückgabewert null 165Ergebnisparameter 166Rückkehrcodes 167Seiteneffekte 167Auswahlanweisungen 168Alles fließt 170Das Wichtigste in Kürze 170KAPITEL 14 PASSEND SCHNEIDEN – SCHNITTSTELLEN 171Die Rolle von Schnittstellen 171Mehr als ein Interface 171Isoliert betrachtet 172Im Verbund 172Komponenten 173Interface Segregation 174Schlanke Schnittstellen 174Kohäsion 175Kombination 179Keine Missverständnisse 180Exakte Beschreibung 180Voraussetzungen aufführen 181Vollständige Definition 182Tests und Mocks 182Kein Code ohne Fremdcode 183Eine unsichtbare Grenze 184Abhängigkeiten isolieren 184Wie es gehen könnte 185Das Wichtigste in Kürze 189KAPITEL 15 OBJEKTE UND DATENSÄTZE UNTERSCHEIDEN191Was ist ein Objekt? 191Und ein Datensatz? 192Die Praxis 193Die Objekt-Datensatz-Antisymmetrie 194Java und Objektorientierung 194Prozeduraler Code 195Objektorientierter Code 197Schlussfolgerungen 199Das Gesetz von Demeter 199Internes intern halten 200Trotzdem kommunikativ sein 200Das gilt auch umgekehrt 202Aufrufketten 203Fazit 205Das Wichtigste in Kürze 205KAPITEL 16 WEGE IM DSCHUNGEL – REGELN 207Wiederholungen vermeiden 207Die Regel 207Motivation 208Umsetzung 209Schwierigkeiten 210Liefern, was verlangt wird 211Die Regel 211Motivation 212Umsetzung 212Schwierigkeiten 213Jedes für sich 213Die Regel 213Motivation 214Umsetzung 214Schwierigkeiten 214Die SOLID-Regeln 215Single Responsibility Principle – SRP 215Open Closed Principle – OCP 216Liskov Substitution Principle – LSP 217Interface Segregation Principle – ISP 217Dependency Inversion Principle – DIP 217Einfach besser 218Halte es einfach 218Geringste Überraschung 219Fazit 219Das Wichtigste in Kürze 219KAPITEL 17 FEHLER PASSIEREN – FEHLERBEHANDLUNG221Ausgangslage 221Fehlerarten 222Datenfehler 222Seltene Datenfehler 223Häufige Datenfehler 223Funktionsfehler 225Hardwarefehler 226Semantische Fehler 227Plausibilitätsprüfung 227Wertebereichs-Überschreitungen 229Keine Panik 231Das Wichtigste in Kürze 231KAPITEL 18 AUSNAHMEN REGELN – EXCEPTIONS 233Sinn und Zweck 233Checked und Unchecked Exceptions 234Kosten 235Werfen von Exceptions 235Generische Exceptions verwenden 235Spezielle Exceptions definieren 236Fangen von Exceptions 238Funktionsblöcke bestimmen 238Fachliche und technische Exceptions 239Verpacken von Exceptions 240Loggen von Exceptions 240Angemessenheit 241Das Wichtigste in Kürze 242KAPITEL 19 IMMER WEITER – NEUE SPRACHMITTEL243Wie beurteilen? 243Annotationen 245Funktion 246Anwendungsarten 246Risiken minimieren 248Lambda-Ausdrücke 248Klippen 248So vielleicht 250Streams 251Die Idee 252Anwendung 252Aber Vorsicht 253Fazit 254Spezialisierung 254Beschränkung 255Das Wichtigste in Kürze 256TEIL IV: WEGE ZUM ZIEL 257KAPITEL 20 MITEINANDER LERNEN – CODE REVIEWS 259Zweck 260Was nicht geht 260Das Potenzial 261Durchführung 262Erfolgsvoraussetzungen 262Vorbereitung 263Review-Rollen 265Review-Werkzeuge und Metriken 266Review-Bewertung 267Codequalität 267Review-Qualität 267Das Wichtigste in Kürze 268KAPITEL 21 AUS FEHLERN LERNEN 269Fehler macht jeder 269Fehler analysieren 270Fehlerursachen ermitteln 271Fehlerarten 272Priorisierung 272Denken Sie an … 273Erkenntnisse nutzen 275Code Reviews nutzen 275Ergebnisse dokumentieren 275Wiederholen: Erkenntnisse erneut erörtern 275Das Wichtigste in Kürze 276KAPITEL 22 ES GIBT IMMER WAS ZU TUN – REFACTORING 277Die Idee 277Die Praxis 278Vorbereitung 278Schritt für Schritt 280Im Großen und im Kleinen 280Ein Beispiel 281Das Wichtigste in Kürze 282TEIL V: DER TOP-TEN-TEIL 283KAPITEL 23 10 FEHLER, DIE SIE VERMEIDEN SOLLTEN 285Buch in Schrank stellen 285Nicht sofort anfangen 285Aufgeben 286Nicht streiten 286Schematisch anwenden 286Kompromisse verweigern 286Unrealistische Terminzusagen 287Überheblichkeit 287Denken, fertig zu sein 287Alles tierisch ernst nehmen 287KAPITEL 24 (MEHR ALS) 10 NÜTZLICHE QUELLEN ZUM AUFFRISCHEN UND VERTIEFEN 289Clean Code – das Buch und der Blog 289Clean Code Developer 290Software Craftsmanship 290Java Code Conventions 29097 Dinge, die jeder Programmierer wissen sollte 290The Pragmatic Bookshelf 291Prinzipien der Softwaretechnik 291Refactoring 291Code Reviews 291Codeanalyse 292Verzögerungskosten 292Project Oberon 292Stichwortverzeichnis 295