Software
Agile Artificial Intelligence in Pharo
Cover classical algorithms commonly used as artificial intelligence techniques and program agile artificial intelligence applications using Pharo. This book takes a practical approach by presenting the implementation details to illustrate the numerous concepts it explains.Along the way, you’ll learn neural net fundamentals to set you up for practical examples such as the traveling salesman problem and cover genetic algorithms including a fun zoomorphic creature example. Furthermore, Practical Agile AI with Pharo finishes with a data classification application and two game applications including a Pong-like game and a Flappy Bird-like game. This book is informative and fun, giving you source code to play along with. You’ll be able to take this source code and apply it to your own projects.WHAT YOU WILL LEARN* Use neurons, neural networks, learning theory, and more* Work with genetic algorithms * Incorporate neural network principles when working towards neuroevolution * Include neural network fundamentals when building three Pharo-based applicationsWHO THIS BOOK IS FORCoders and data scientists who are experienced programmers and have at least some prior experience with AI or deep learning. They may be new to Pharo programming, but some prior experience with it would be helpful.ALEXANDRE BERGEL, PH.D., is an associate professor in the Department of Computer Science (DCC) at the University of Chile and is a member of the Intelligent Software Construction laboratory (ISCLab). His research interests include software engineering, software performance, software visualization, programming environment, and machine learning. He is interested in improving the way we build and maintain software. His current hypotheses are validated using rigorous empirical methodologies. To make his research artifacts useful not only to stack papers, he co-founded Object Profile.1: Introduction2: The Perceptron Model3: Artificial Neuron4: Neural Networks5: Theory on Learning6: Data Classification7: A Matrix Library8: Matrix-Based Neural Network9: Genetic Algorithm10: Genetic Algorithm in Action11: Traveling Salesman Problem12: Exiting a Maze13: Building Zoomorphic Creatures14: Evolving Zoomorphic Creature15: Neuroevolution16: Neuroevolution with NEAT17: The MiniMario Video GameLast Words (Afterword)
Autodesk Fusion 360
3D-Modelle professionell konstruieren, rendern, animieren und simulierenAufbereitung der Modelle für 3D-Druck und CNC-Bearbeitungen sowie Einführung in den FertigungsprozessAlle wichtigen Funktionen anhand praktischer Beispiele Schritt für Schritt erklärt Mit dem cloudbasierten CAD/CAM-Programmsystem Fusion 360 lassen sich schnell und einfach professionelle 3D-Modelle und 2D-Fertigungszeichnungen erstellen und für CNC-Bearbeitungen und 3D-Druck vorbereiten. Dieses Buch bietet eine praktische Einführung in die wichtigsten Funktionen der umfangreichen Software. Dabei setzt der Autor folgende Themenschwerpunkte: 3D-Modelle zweidimensional skizzieren und aus der Skizze heraus erzeugenVolumenkörper-, Flächen-, Freiform- und Netzmodellierung2D-Fertigungszeichnungen mit Beschriftung und Stücklisten ableitenBauteile und Baugruppen rendern, animieren und Mechanismen simulierenErstellen von Fertigungsdaten für 3D-Drucker und CNC-Bearbeitungsmaschinen3D-Druck und CNC-Bearbeitungen (wie CNC-Fräsen, CNC-Drehen und Laserschneiden) Alle Funktionen und Arbeitsweisen werden Schritt für Schritt demonstriert und eingeübt. Zahlreiche praktische Beispiele helfen, die verschiedenen Techniken nachzuvollziehen und zu verinnerlichen. Nach der Lektüre dieses Buches sind Sie bestens gerüstet, individuelle 3D-Modelle sowie die entsprechenden Fertigungsdaten zu erstellen und eigene Projekte umzusetzen. Zum Download: Alle im Buch verwendeten Konstruktionsbeispiele stehen unter www.mitp.de/0158 zum kostenlosen Download zur Verfügung. Detlef Ridder hat langjährige Erfahrung im Bereich CAD und bereits zahlreiche Bücher zu AutoCAD, Inventor, Revit und ArchiCAD veröffentlicht. Er gibt Schulungen zu diesen Programmen und zu CNC und weiß daher, welche Themen für Einsteiger besonders wichtig sind.
Human Compatible
Künstliche Intelligenz und wie der Mensch die Kontrolle über superintelligente Maschinen behält »Das bedeutendste Buch über KI in diesem Jahr.«- The Guardian, 24.09.2019Werden Maschinen bald auf nahezu allen Gebieten intelligenter sein als der Mensch? Auch wenn das vielversprechend klingt, ist die Entwicklung einer Superintelligenz zugleich ein ernstzunehmendes Risiko. Denn ist diese einmal da, können wir nicht mehr einfach den Stecker ziehen. Niemand kann die Chancen und Risiken der künstlichen Intelligenz besser beurteilen als Stuart Russell, der seit mehr als einer Dekade an vorderster Front der KI-Forschung arbeitet. Er veranschaulicht mit brillanten Analogien, wie sich natürliche und künstliche Intelligenz voneinander unterscheiden, und macht deutlich, weshalb wir vermeiden müssen, dass die Maschinen für uns unkontrollierbar werden. Fundiert, eindringlich und visionär zeigt Human Compatible neue Perspektiven und Lösungswege für die KI-Forschung auf, um zu gewährleisten, dass superintelligente Maschinen unsere Ziele verfolgen und nicht ihre eigenen.
45 Elektronik-Projekte für den Raspberry Pi
Der Raspberry Pi stellt einen sehr preiswerten, aber doch vollwertigen Computer dar, an den auf einfache Weise verschiedenste Elektronik angeschlossen werden kann. Dieses Buch geht auf eine der Stärken des Raspberry Pi ein: die Kombination von Elektronik und Software.Nach einer kurzen Einführung zum Raspberry Pi wird auf die benötigte Software eingegangen. Im Anschluss wird das Linux-Betriebssystem kurz vorgestellt – gefolgt von einer Einführung in die Programmierung mit Bash, Python und JavaScript. Der Schwerpunkt liegt dabei auf Python. Die Erläuterungen sind in allen Fällen kurz und bündig und trotzdem so ausführlich, dass das Notwendigste besprochen wird, um die folgenden Projekte zu verstehen und individuell anzupassen.Dieses Buch beschreibt 45 spannende und interessante Projekte, wie zum Beispiel ein Wechselblinklicht, eine Motorregelung, Erzeugen und Verarbeiten analoger Signale, ein digitales Thermometer, ein Lichtmesser. Aber auch kompliziertere Projekte wie eine Motor-Geschwindigkeitsregelung, ein Webserver mit CGI (Common Gateway Interface) und Client-Server-Programme werden vorgestellt. Sie können dieses Buch als Projektbuch verwenden und die Projekte nachbauen, um sie dann in der Praxis einzusetzen. Durch die ausführliche Beschreibung mit Schaltplänen und Fotos gestaltet sich der Aufbau auf dem Steckbrett recht einfach.Sie können dieses Buch auch als Lehrbuch verwenden. Bei jedem Projekt wird erklärt, warum es auf diese Art und Weise ausgeführt ist. Sie lernen viel über den Raspberry Pi, Python und die verwendeten Bauteile, so dass Sie selbst die Projekte anpassen, nach eigenen Wünschen erweitern oder mehrere Projekte miteinander kombinieren können.Um Ihnen die Software-Installation zu erleichtern, hat der Autor das Betriebssystem und alle Programmbeispiele auf einer SD-Karte zusammengetragen. Passend zu den Projekten ist neben dieser SD-Karte auch ein Hardware-Starterkit bei Elektor erhältlich.Bert van Dam ist freiberuflicher Autor von Büchern, Kursen und Artikeln über PIC- und ARM Mikrocontroller, Arduino, Raspberry Pi, PCs, Künstliche Intelligenz und die Programmiersprachen JAL, C, Assembler, Python und Flowcode.
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