Programmierung
Raku Recipes
Explore Raku problems and solutions using the latest version of the Raku programming language. In Raku Recipes, the emphasis is on applying Raku code to various important tasks and applications including data science, analytics, microservices, and desktop/console applications. There are also fun one-liner script recipes and instructions on how to create mini-languages of your very own.All in all, over 70 recipes cover a broad range of the tasks and problems encountered by a modern Raku developer. You’ll be able to solve problems starting from basics such as input/output and math, to more complex domains such as microservices web sockets, web hooks, and mini-bots.WHAT YOU WILL LEARN* Put Raku to use in a real world environment* Work with Raku modules, including design classes, roles, and more* Query a GeoIP database and extract information from the web* Carry out text processing such as creating a dictionary with fast searches over it and scraping markdown documents* Work with MongoDB, WikiData, and other data sources* Build data science and analytics applications using Raku* Integrate with Python, C, and other languages and libraries* Create mini-languages and shell scripting languages WHO THIS BOOK IS FORWhile some prior experience in Raku may be useful, it is not required. Prior programming experience using other scripting languages, such as Perl, is recommended, however.J.J. Merelo is a professor at the university of Granada, where he has been teaching since 1988. He has been using Perl since 1994, and Perl 6/Raku intensively since December 2016. He trains, teaches, and consults on Perl and Raku projects.* How do I start to put (Perl 6|Raku|Camelia) to use in a real world environment.* Get your tools ready.Put concepts from other languages to use in Perl 6. * Get involved in the community.* Install some external and useful modules.* Detect OS environment and change program behavior according to it.* Input and outputRead files handled as arguments * Read and process files asynchronously* Connect input and output of external utilities and files.* Read and process binary files.* Watch a file for changes* Data science and data analytics* How do I extract unique email addresses/user names from several files.* How do I create a weighted random number generator.How do I work with a spreadsheet, filtering by row or column, or sorting, or converting row into columns or the other way round. * How do I apply a series of transformations to a group of elements and then extract a single quantity from them.* How do I create a random data generator* How do I process big, structured files.* MathHow can you generate mathematical sequences and extract random elements from it. * Program a divide-and-conquer algorithm.* Work with matrices.* Compute Mandelbrot’s and Julia’s set* Look for pairs of integers with a certain property, such as friendly numbers or contiguous primes, to use infinite precision integers.Configuration and execution of programs.* Configure a program using JSON/YAML/.ini files.* Configure a command line command with flags and arguments.* Use shell environment variables in my program.* Advanced/distributed configuration with etcdCreate a Docker container for an application to distribute it easily* Automation of system tasks.* Check log for certain events.* Check logs interactively on the console.* Check git commits for patterns, metadata, or store them.Clean up your Docker image store. * Process the last persons logged to our system* Perl 6 modules* Design classes, roles and modules in Perl 6.* Document your module.* Test your module.* Release it as an open source module for every one.* Use multiple dispatch to speed up applications.Dealing with errors* Design an exception hierarchy.* Deliver meaningful error messages to the user.* Catch and deal with errors in your program.* Debug your application in CommaIDE.* Make grammars fail graciously with pretty errors.* Web and microservices on the client side* Query a GeoIP databaseDownload and extract information from a web site. * Use a web API to get information from a site.* Check IP and addresses by querying Internet services.* Text processing* Scrape markdown documents.* Generate a set of static web pages* Create a dictionary and do fast searches over it* Compute differences in plain textsMicroservices* Create a microservice.* Work with web sockets, connecting to a client.* Respond to web hooks.* Create a mini-bot for Telegram or Slack.* Test your microservice.* Work with data sources.* Work with relational databases.Interface with Redis. * Use an ORM for hight-level data description and access.* Work with MongoDB.* Extract information from WikiData* Create a desktop/console applicationUse full-console UI. * Create an application that uses system windows.* Package your application for release.* Make it work with other desktop applications by using service buses.* Use a common desktop application framework.Interface with libraries and code in other languages* Embed Python programs.* Embed Perl programs.* Run external programs and capture output.* Wrap external libraries in C with NativeCall.* Work with image processing libraries.* Speed up processing* Use data parallelism with hyper/race.Work with asynchronous input/output * Work with concurrency using channels and threads.* Create powerful concurrent programs* Monitor concurrency using CommaIDE.* Create mini-languages* Use mini-languages that show off their possibilities* Create and process a mini-language for recipes.* Process recipes and generate reports.Resume common language patterns. * Convert grammar into a full recipe-processing application that generates HTML or other external format.* Fun one-liners* How do I write a guessing name in a single line of code.* How do I compute the nth element in a sequence with a single line.How do I perform system administration task repeatedly using a single line of code.
Einstieg in Java mit Eclipse
EINSTIEG IN JAVA MIT ECLIPSE //- Einrichtung der Entwicklungsumgebung (Java, Eclipse)- Grundlagen der objektorientierten Programmierung- Einführung in Eclipse- Beschreibung der Java-Sprachelemente (Variablen, Anweisungen, einfache Datentypen, Klassen und Objekte, Aufzählungen, Arrays, Methoden, Operatoren, Verzweigungen, Schleifen, Pakete und Module)- Überblick über die Plattform Java (Bytecode, Laufzeitumgebung mit Garbage Collector, Interpreter und JIT-Compiler, Klassenbibliotheken)- Beispiele und ein Bonuskapitel unter plus.hanser-fachbuch.deBernhard Steppan hat mit diesem Buch einen ausführlichen Einstieg in Java mit Eclipse geschrieben. Das Buch ist vor allem für Leser ohne Programmierkenntnisse geeignet.Der erste Teil des Buches vermittelt das Java- und Eclipse-Basiswissen und führt in die objektorientierteProgrammierung ein.Im zweiten Teil dreht sich alles um die Feinheiten der Sprache Java. Hier entstehen die ersten kleinen Java-Anwendungen. Jedes Kapitel bietet eine Mischung aus Wissensteil und praktischen Übungen und endet mit Aufgaben, die Sie selbstständig durchführen können.Die Technologie Java bildet den Schwerpunkt des dritten Teils. Zudem werden Ihnen Klassenbibliotheken und Algorithmen vorgestellt.Ein größeres Java-Projekt steht im Mittelpunkt des vierten Teils. Anhand einer Anwendung mit grafischer Oberfläche werden Sie hier alle Elemente der vorigen Teile kennenlernen.Im fünften Teil nden Sie die Lösungen zu den Aufgaben im zweiten und dritten Teil des Buches.Ein Buch für alle, die die Java-Programmierung mithilfe der Eclipse-Entwicklungsumgebung erlernenund beherrschen wollen.AUS DEM INHALT //- Programmiergrundlagen- Objektorientierte Programmierung- Entwicklungsumgebung- Programmaufbau- Variablen- Anweisungen- Einfache Datentypen- Klassen und Objekte- Aufzählungen- Arrays- Methoden- Operatoren- Verzweigungen- Schleifen- Pakete und Module Bernhard Steppan ist ein Java-Entwickler der ersten Stunde und hat mehrere C++- und Java-Bücher geschrieben sowie zahlreiche Artikel verfasst. Er arbeitet als IT-Chefarchitekt bei DB Systel, dem Systemhaus der Deutschen Bahn.
Einstieg in SwiftUI
• Der umfangreiche Einstieg in SwiftUI• Detaillierte Beschreibungen zum Einsatz von Views, Controls und Status• Aktuell zu Xcode 12• Mit Update inside: Erhalten Sie aktuelle Infos zu kommenden SwiftUI-Updates und weiteren SwiftUI-Funktionen.Lernen Sie Apples neues SwiftUI-Framework kennen und erfahren Sie, wie Sie plattformübergreifende Nutzeroberflächen für Mac, iPhone, iPad, Apple Watch und Apple TV erstellen. Das Framework vereinfacht den Prozess der UI-Erstellung deutlich, damit Sie sich als Entwickler primär auf die Kernfunktionen Ihrer Apps konzentrieren können.SwiftUI funktioniert gänzlich anders als die bisherigen Mechanismen zur Gestaltung von Views für Apple-Plattformen. Es ist zudem tief in die Entwicklungsumgebung Xcode integriert.Für Entwickler ergeben sich so eine Vielzahl an Neuerungen, die es langfristig in der UI-Erstellung zu beachten gilt und die in diesem Buch ausführlich und detailliert beschrieben werden. Dazu gehören die grundlegende Funktionsweise von SwiftUI, das Vorgehen beim Erstellen von Views, der Austausch von Daten und Best Practices beim Einsatz des Frameworks. Auch die Integration von SwiftUI in bereits bestehende Projekte ist ein Thema.Aus dem Inhalt:• Funktionsweise von SwiftUI• Views und Controls• View-Hierarchien mit Stacks, Listen und Grids• Navigationsstrukturen• Status mittels State, Binding, ObservedObject und mehr• Integration in bestehende Projekte mittels Representable und Hosting• Effizienter Einsatz der Preview Thomas Sillmann ist leidenschaftlicher Autor, Apple-Entwickler und Trainer. Mit seiner Begeisterung für das Schreiben hat er bereits mehrere erfolgreiche Fachbücher veröffentlicht. Thomas lebt und arbeitet in Aschaffenburg.
C++ mit Visual Studio 2019 und Windows Forms-Anwendungen
C++ hat sich in den letzten Jahren rasant entwickelt: C++11, C++14, C++17 und C++20 haben viele Verbesserungen und neue Möglichkeiten gebracht. Vieles, was vor 10 Jahren noch gut und empfehlenswert war, kann heute besser und sicherer gemacht werden.Dieses Buch stellt C++ mit Visual Studio 2019 auf dem Stand von Mai 2020 umfassend dar. Das ist nicht nur der Umfang von C++17, sondern auch schon ein Teil von C++20.Es entstand aus zahlreichen Vorlesungen und Firmenseminaren. Dementsprechend richtet es sich einerseits an STUDIERENDE, die C++ lernen wollen. Der Aufbau, die vielen Beispiele und Übungsaufgaben sind erprobt und bewährt. Es eignet sich zum Selbststudium und als Lehrbuch für Vorlesungen an Fachhochschulen und Universitäten.Dieses Buch zeigt aber ebenso PROFESSIONELLEN SOFTWARE-ENTWICKLERN mit einer jahrelangen C++-Praxis den aktuellen Stand der Technik. Viele der Spracherweiterungen machen elementare Programmiertechniken einfacher und sicherer. Dazu kommen neue Konzepte, die bessere und effizientere Lösungen als noch vor einigen Jahren ermöglichen. Das kann unnötigem Aufwand und Fehlern führen, die sich leicht vermeiden lassen. Viele dieser neuen Möglichkeiten haben sich in der industriellen Praxis noch nicht etabliert.Dieses Buch erscheint in zwei weitgehend identischen Ausgaben:– IN DER VORLIEGENDEN AUSGABE werden Programme geschrieben, in denen alle Ein- und Ausgaben über eine Windows-Benutzeroberfläche erfolgen.– IN DER ANDEREN AUSGABE „C++ mit Visual Studio 2019“ werden Programme ohne eine graphische Benutzeroberfläche geschrieben. Alle Ein- und Ausgaben erfolgen mit cin und cout über die Konsole.Nach seinem Mathematikstudium an der Universität Tübingen war RICHARD KAISER einige Jahre in der Lehrerausbildung tätig, Trainer in der Industrie, Software-Entwickler (vor allem für technische Anwendungen) und Leiter der Software-Abteilung. Seit 1991 ist er Professor an der Dualen Hochschule Baden-Württemberg (Lörrach), wo er vor allem Vorlesungen über Programmiersprachen (C/C++/C#) und Mathematik hält. In den letzten Jahren hat er viele Seminare über C++ und C# für Firmen durchgeführt.Die Entwicklungsumgebung.- Steuerelemente für die Benutzeroberfläche.- Elementare Datentypen und Anweisungen in C und C++.- Sie Stringklassen string und wstring.- Arrays und Container.- Einfache selbstdefinierte Datentypen.- Zeiger, Strings und dynamisch erzeugte Variablen.- Überladene Funktionen und Operatoren.- Objektorientierte Programmierung.- Namensbereiche.- Exception-Handling.- Containerklassen der C++-Standardbibliothek.- Dateibearbeitung mit den Stream-Klassen.- Funktionsobjekte und Lambda-Ausdrücke.- Templates und STL.- C++11 Smart Pointer: shared_ptr, unique_ptr und weak_ptr.- Literatur.- Index.
Modern Arm Assembly Language Programming
Gain the fundamentals of Armv8-A 32-bit and 64-bit assembly language programming. This book emphasizes Armv8-A assembly language topics that are relevant to modern software development. It is designed to help you quickly understand Armv8-A assembly language programming and the computational resources of Arm’s SIMD platform. It also contains an abundance of source code that is structured to accelerate learning and comprehension of essential Armv8-A assembly language constructs and SIMD programming concepts. After reading this book, you will be able to code performance-optimized functions and algorithms using Armv8- A 32-bit and 64-bit assembly language.Modern Arm Assembly Language Programming accentuates the coding of Armv8-A 32-bit and 64-bit assembly language functions that are callable from C++. Multiple chapters are also devoted to Armv8-A SIMD assembly language programming. These chapters discuss how to code functions that are used in computationally intense applications such as machine learning, image processing, audio and video encoding, and computer graphics.The source code examples were developed using the GNU toolchain (g++, gas, and make) and tested on a Raspberry Pi 4 Model B running Raspbian (32-bit) and Ubuntu Server (64-bit). It is important to note that this is a book about Armv8-A assembly language programming and not the Raspberry Pi.What You Will Learn* See essential details about the Armv8-A 32-bit and 64-bit architectures including data types, general purpose registers, floating-point and SIMD registers, and addressing modesUse the Armv8-A 32-bit and 64-bit instruction sets to create performance-enhancing functions that are callable from C++ * Employ Armv8-A assembly language to efficiently manipulate common data types and programming constructs including integers, arrays, matrices, and user-defined structures* Create assembly language functions that perform scalar floating-point arithmetic using the Armv8-A 32-bit and 64-bit instruction sets* Harness the Armv8-A SIMD instruction sets to significantly accelerate the performance of computationally intense algorithms in applications such as machine learning, image processing, computer graphics, mathematics, and statistics.* Apply leading-edge coding strategies and techniques to optimally exploit the Armv8-A 32-bit and 64-bit instruction sets for maximum possible performance WHO THIS BOOK IS FORSoftware developers who are creating programs for Armv8-A platforms and want to learn how to code performance-enhancing algorithms and functions using the Armv8-A 32-bit and 64-bit instruction sets. Readers should have previous high-level language programming experience and a basic understanding of C++.Daniel Kusswurm has over 35 years of professional experience as a software developer and computer scientist. During his career, he has developed innovative software for medical devices, scientific instruments, and image processing applications. On many of these projects, he successfully employed assembly language to significantly improve the performance of computationally intense algorithms or solve unique programming challenges. His educational background includes a BS in electrical engineering technology from Northern Illinois University along with an MS and PhD in computer science from DePaul University. Daniel Kusswurm is also the author of Modern X86 Assembly Language Programming (ISBN-13: 978-1484200650) and Modern X86 Assembly Language Programming, Second Edition (ISBN-13: 978-1484240625), both published by Apress.Modern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 1 of 6Daniel KusswurmIntroductionBook overviewTarget audienceContent overviewSource codeTerminology and conventionsAdditional resourcesChapter 1 – Armv8-32 ArchitectureArmv8-32 OverviewData typesFundamental data typesNumerical data typesSIMD data typesInternal architectureGeneral-purpose register fileApplication Program Status Register (APSR)Instruction set overviewInstruction operandsMemory addressing modesChapter 2 – Armv8-32 Core Programming – Part 1Integer arithmeticAddition and subtraction (Ch02_01)Multiplication (Ch02_02)Division (Ch02_03)Integer operationsLoad instructions (Ch02_04)Move instructions (Ch02_05, Ch02_06)Logical operations (Ch02_07)Chapter 3 – Armv8-32 Core Programming – Part 2Basic stack argumentsStack arguments (Ch03_01)Stack arguments using mixed data types (Ch03_02)Advanced stack useModern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 2 of 6Daniel KusswurmStack use with local storage (Ch03_03)Stack use with frame pointer (Ch03_04)Using the APSR condition flagsCompare instructions (Ch03_05)Looping (Ch03_06)Chapter 4 – Armv8-32 Core Programming – Part 3Integer arraysArray arithmetic (Ch04_01)Array arithmetic using mixed-type integers (Ch04_02)Integer matricesMatrix example #1 (Ch04_03)Matrix example #2 (Ch04_04)Advanced programmingAdvanced array operations (Ch04_05)Structures (Ch04_06)Chapter 5 – Armv8-32 Floating-Point ArchitectureFloating-point programming conceptsBinary encodingsNaNsDenormalsFlush to zeroFloating-point registersSingle-precision registersDouble-precision registersFPSCR (floating-point status and control register)Rounding modesExceptionsChapter 6 – Armv8-32 Floating-Point ProgrammingFloating-point arithmeticFP arithmetic example #1 (Ch06_01)FP arithmetic example #2 (Ch06_02)FP arithmetic example #3 (Ch06_03)Floating-point compares and conversionsFP compares (Ch06_04)FP conversions (Ch06_05)Floating-point arrays and matricesModern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 3 of 6Daniel KusswurmFP arrays (Ch06_06)FP matrices (Ch06_07)Advanced floating-point programmingUsing C++ floating-point library functions (Ch06_08)Chapter 7 – Armv8-32 SIMD ArchitectureArmv8-32 SIMD Architecture OverviewSIMD programming conceptsWraparound and saturated arithmeticSIMD architectureRegister setsData typesSIMD arithmetic operationsPacked integer arithmeticPacked floating-point arithmeticChapter 8 – Armv8-32 SIMD Integer ProgrammingPacked integer arithmeticAddition and subtraction (Ch08_01)Multiplication (Ch08_02)Shift and logical operations (Ch08_03)Packed integer image processingPixel minimum and maximum (Ch08_04)Mean intensity (Ch08_05)Image thresholding (Ch08_06)Chapter 9 – Armv8-32 SIMD Floating-Point ProgrammingPacked floating-point arithmeticAddition, subtraction, multiplication, division (Ch09_01)Compares (Ch09_02)Conversions (Ch09_03)Packed floating-point arraysMinimum and maximum (Ch09_04)Least squares (Ch09_05)Packed floating-point matrices4x4 matrix transposition (Ch09_06)4x4 matrix multiplication (Ch09_07)Modern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 4 of 6Daniel KusswurmChapter 10 – Armv8-64 ArchitectureArmv8-64 OverviewData typesNumerical data typesSIMD data typesInternal architectureGeneral-purpose register fileFloating-point and SIMD registersStatus flags and condition codesInstruction set overviewOperandsMemory addressing modesChapter 11 – Armv8-64 Core Programming – Part 1Integer arithmeticAddition & subtraction (Ch11_01)Multiplication (Ch11_02)Division (Ch11_03)Integer operationsLoad and store instructions (Ch11_04)Move instructions (Ch11_05)Logical instructions (Ch11_06)Shift instructions (Ch11_07)Chapter 12 – Armv8-64 Core Programming – Part2Stack arguments and local storageStack arguments using mixed data types (Ch12_01)Stack arguments with local storage (Ch12_02)Using condition codesCompare instructions (Ch12_03)Looping (Ch12_04)Integer arrays and matricesArray programming example (Ch12_05)Matrix programming example (Ch12_06)Chapter 13 – Armv8-64 Floating-Point ProgrammingFloating-point arithmeticSingle-precision arithmetic (Ch13_01)Modern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 5 of 6Daniel KusswurmDouble-precision arithmetic example #1 (Ch13_02)Double-precision arithmetic example #2 (Ch13_03)Floating-point compares and conversionsCompare instructions (Ch13_04)Conversion instructions (Ch13_05)Floating-point arrays and matricesArray programming example (Ch13_06)Matrix programming example (Ch13_07)Advanced floating-point programmingUsing C++ floating-point library functions (Ch13_08)Chapter 14 – Armv8-64 SIMD Integer ProgrammingPacked integer arithmeticAddition and subtraction (Ch14_01)Shift operations (Ch14_02)Multiplication (Ch14_03)Packed integer image processingPixel min/max (Ch14_04)Gray-scale pixel clipping (Ch14_05)Image statistics (Ch14_06)Chapter 15 – Armv8-64 SIMD Floating-Point ProgrammingPacked floating-point arithmeticAddition subtraction, multiplication, division (Ch15_01)Compares (Ch15_02)Conversions (Ch15_03)Packed floating-point arraysCorrelation coefficient (Ch15_04)Image conversion – RGB to grayscale (Ch15_05)Packed floating-point matrices4x4 matrix multiplication (Ch15_06)4x4 matrix-vector multiplication (Ch15_07)Chapter 16 – Armv8-64 Advanced SIMD ProgrammingArmv8 microarchitecture overviewOptimization guidelinesSignal processingFMA convolution (Ch16_01)Modern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 6 of 6Daniel KusswurmVector and matrix operationsVector cross products (Ch16_02)Matrix-vector products (Ch16_03)Matrix inversion (Ch16_04)Appendix A – Source Code and Software Development ToolsSource codeHardware platformHost operating systemsSetup and configurationSoftware toolsg++gasmakeBuilding and executing the source code projectsAppendix B – References and Additional ResourcesArmv8 programming referencesAlgorithm referencesSoftware development resourcesAdditional resources
Learn PHP 8
Write solid, secure, object-oriented code in the new PHP 8. In this book you will create a complete three-tier application using a natural process of building and testing modules within each tier. This practical approach teaches you about app development and introduces PHP features when they are actually needed rather than providing you with abstract theory and contrived examples.In Learn PHP 8, programming examples take advantage of the newest PHP features; you’ll follow a learn-by-doing approach, which provides you with complete coding examples. “Do It” exercises in each chapter provide the opportunity to make adjustments to the example code. The end-of-chapter programming exercises allow you to develop your own applications using the algorithms demonstrated in the chapter.Each tier is logically and physically separated using object-oriented and dependency injection techniques, thus allowing independent tiers that can be updated with little or no effect on the other tiers. In addition to teaching good programming practices through OOP, there is a strong emphasis on creating secure code.As each chapter is completed, you’ll have the opportunity to design and create an application reinforcing the concepts learned.WHAT YOU WILL LEARN* Program PHP 8 web applications* Use interfaces, containers, and platforms* Apply modular programming * Manage data objects and use MySQL and other databasesWork with multi-functional and secure user interfaces * Handle logging exceptions and moreWHO THIS BOOK IS FORThose new to web development, specifically PHP programming. Also, this book can be useful to those who have some PHP/web development experience who are new to PHP 8.Steve Prettyman is a college instructor on PHP programming, web development, and related technologies. He is and has been a practicing web developer and is a book author.1. Introduction to PHP 82. Interfaces, Platforms, Containers: Three-Tiers Programming3. Modular Programming4. Secure User Interfaces5. Handling and Logging Exceptions6. Data Objects7. Authentication8. Multi-functional Interfaces
Beginning C++20
Begin your programming journey with C++ , starting with the basics and progressing through step-by-step examples that will help you become a proficient C++ programmer. This book includes new features from the C++20 standard such as modules, concepts, ranges, and the spaceship operator. All you need are Beginning C++20 and any recent C++ compiler and you'll soon be writing real C++ programs. There is no assumption of prior programming knowledge.All language concepts that are explained in the book are illustrated with working program examples, and all chapters include exercises for you to test and practice your knowledge. Free source code downloads are provided for all examples from the text and solutions to the exercises.This latest edition has been fully updated to the latest version of the language, C++20, and to all conventions and best practices of modern C++. Beginning C++20 also introduces the elements of the C++ Standard Library that provide essential support for the C++20 language.WHAT YOU WILL LEARN* Begin programming with the C++20 standard* Carry out modular programming in C++* Work with arrays and loops, pointers and references, strings, and more* Write your own functions, types, and operators* Discover the essentials of object-oriented programming* Use overloading, inheritance, virtual functions, and polymorphism* Write generic function and class templates, and make them safer using concepts * Learn the ins and outs of containers, algorithms, and ranges* Use auto type declarations, exceptions, move semantics, lambda expressions, and much moreWHO THIS BOOK IS FORProgrammers new to C++ and those who may be looking for a refresh primer on C++ in general.IVOR HORTON is self-employed in consultancy and writes programming tutorials. He is the author of many programming books. Ivor worked for IBM for many years and holds a bachelor's degree, with honors, in mathematics. Horton's experience at IBM includes programming in most languages (including assembler and high-level languages on a variety of machines), real-time programming, and designing and implementing real-time closed loop industrial control systems. He has extensive experience teaching programming to engineers and scientists (Fortran, PL/1, APL, etc.). Horton is an expert in mechanical, process, and electronic CAD systems; mechanical CAM systems; and DNC/CNC systems.PETER VAN WEERT works for Danaher in its R&D unit for digital dentistry software, developing software for the dental practice of tomorrow. In his spare time, he has co-authored two books on C++ and two award-winning Windows 8 apps and is a regular expert speaker at, and board member of, the Belgian C++ Users Group. He is a software engineer whose main interests and expertise are application software development, programming languages, algorithms, and data structures.He received his master of science degree in computer science summa cum laude with congratulations of the Board of Examiners from the University of Leuven. In 2010, he completed his PhD thesis there on the design and efficient compilation of rule-based programming languages at the research group for declarative programming languages and artificial intelligence. During his doctoral studies, he was a teaching assistant for object-oriented programming (Java), software analysis and design, and declarative programming. After graduating, Peter worked at Nikon Metrology for more than six years on large-scale, industrial application software in the area of 3D laser scanning and point cloud inspection. He learned to master C++ and refactoring and debugging of very large code bases, and he gained further proficiency in all aspects of the software development process, including the analysis of functional and technical requirements, and agile and scrum-based project and team management.1. Basic Ideas2. Introducing Fundamental Types of Data3. Working Fundamental Types4. Making Decisions5. Arrays and Loops6. Pointers and References7. Working with Strings8. Defining Functions9. Vocabulary Types10. Function Templates11. Modules and Namespaces12. Defining your own Data Types13. Operator Overloading14. Inheritance15. Polymorphism16. Runtime Errors and Exceptions17. Class Templates18. Move Semantics19. First-Class Functions20. Containers and Algorithms21. Constrained Templates and ConceptsAppendix A (online only; to be offered as part of source code download)
PyTorch für Deep Learning
PyTorch für Deep Learning - Anwendungen für Bild-, Ton- und Textdaten entwickeln und deployenMit diesem Praxisbuch meistern Sie die Methoden des Deep Learning, einer Teildisziplin des Machine Learning, die die Welt um uns herum verändert. Machen Sie sich mit PyTorch, dem populären Python-Framework von Facebook, vertraut, und lernen Sie Schlüsselkonzepte und neueste Techniken kennen, um eigene neuronale Netze zu entwickeln.Ian Pointer zeigt Ihnen zunächst, wie Sie PyTorch in einer Cloud-basierten Umgebung einrichten. Er führt Sie dann durch die einzelnen Schritte der Entwicklung von neuronalen Architekturen, um typische Anwendungen für Bilder, Ton, Text und andere Datenformate zu erstellen. Er erläutert auch das innovative Konzept des Transfer Learning und das Debuggen der Modelle. Sie erfahren zudem, wie Sie Ihre Deep-Learning-Anwendungen in den Produktiveinsatz bringen.Aus dem Inhalt:Ergründen Sie modernste Modelle für das Natural Language Processing, die mit umfangreichen Textkorpora wie dem Wikipedia-Datensatz trainiert wurdenVerwenden Sie das PyTorch-Paket torchaudio, um Audiodateien mit einem neuronalen Konvolutionsmodell zu klassifizierenLernen Sie, wie man Transfer Learning auf Bilder anwendetDebuggen Sie PyTorch-Modelle mithilfe von TensorBoard und FlammendiagrammenDeployen Sie PyTorch-Anwendungen im Produktiveinsatz in Docker-Containern und Kubernetes-Clustern, die in der Google Cloud laufenErkunden Sie PyTorch-Anwendungsfälle von führenden UnternehmenFür die deutsche Ausgabe wurde das Buch in Zusammenarbeit mit Ian Pointer von Marcus Fraaß aktualisiert und um einige Themen erweitert.Leseprobe (PDF-Link)Inhaltsverzeichnis (PDF-Link)Über den Autor:Ian Pointer ist Data Engineer. Er hat sich auf Lösungen für Fortune-100-Kunden spezialisiert, die auf Methoden des Machine Learnings (insbesondere Deep Learning) basieren. Ian arbeitet derzeit bei Lucidworks, wo er sich innovativen NLP-Anwendungen und dem Engineering widmet.
Programmieren ganz einfach
So leicht kann Programmieren sein! Der ultimative Einstieg in die Welt des Programmierens! Dieses Programmier-Buch führt Sie mit anschaulichen Anleitungen, Grafiken & benutzerfreundlichen Bausteinen Schritt für Schritt in die wichtigsten Programmiersprachen ein – ob Python oder Scratch. In praktischen Projekten bauen Sie Webseiten, programmieren Spiele, designen Apps, arbeiten mit Raspberry Pi und lernen die gängigen Fachbegriffe wie Algorithmus & Variable – mit leicht verständlichen Erklärungen. Basis-Wissen rund ums Programmieren: • Die wichtigsten Programmiersprachen: Ob Sie HTML oder Scratch nutzen, Python oder Java lernen möchten – diese Sprachen werden anschaulich und leicht verständlich erklärt. • Programmieren lernen Schritt-für-Schritt: Vom Spiel bis zur Website – in detaillierten Projekten mit einfachen Anleitungen setzen Sie das Gelernte in die Praxis um und lernen so die Hauptanwendungen jeder Programmiersprache kennen. Informationen zum Lernziel vermitteln die benötigte Zeit sowie den Schwierigkeitsgrad. Symbole, farbige Fenster mit Rastern und Ablaufpläne, die die Programmstruktur erklären, leiten durch die Projekte. • Visuelle & leicht verständliche Aufbereitung: Durch Einteilung in benutzerfreundliche Bausteine und grafische Erklärungen werden selbst komplexe Zusammenhänge begreifbar gemacht.
C Programming For Dummies
GET AN A GRADE IN CAs with any major language, mastery of C can take you to some very interesting new places. Almost 50 years after it first appeared, it's still the world's most popular programming language and is used as the basis of global industry's core systems, including operating systems, high-performance graphics applications, and microcontrollers. This means that fluent C users are in big demand at the sharp end in cutting-edge industries—such as gaming, app development, telecommunications, engineering, and even animation—to translate innovative ideas into a smoothly functioning reality.To help you get to where you want to go with C, this 2nd edition of C Programming For Dummies covers everything you need to begin writing programs, guiding you logically through the development cycle: from initial design and testing to deployment and live iteration. By the end you'll be au fait with the do's and don'ts of good clean writing and easily able to produce the basic—and not-so-basic—building blocks of an elegant and efficient source code.* Write and compile source code* Link code to create the executable program* Debug and optimize your code* Avoid common mistakesWhatever your destination: tech industry, start-up, or just developing for pleasure at home, this easy-to-follow, informative, and entertaining guide to the C programming language is the fastest and friendliest way to get there!DAN GOOKIN has been writing about technology for more than 30 years—and wrote the very first For Dummies book in 1991! Since then he's written gizmo- and tech innovation-focused bestseller after bestseller, including Word 2019 For Dummies, Android For Dummies, 2nd Edition, and many more! INTRODUCTION 1Why the C Language? 1The C Programming For Dummies Approach 2How This Book Works 3Icons Used in This Book 4Parting Thoughts 5PART 1: THE ABS OF C 7CHAPTER 1: A QUICK START FOR THE IMPATIENT 9What You Need to Program 9Command Prompt Programming 10IDE Programming 11Installing Code::Blocks 12Touring the Code::Blocks workspace 13Your First Program 14Coding at the command prompt 15Building a new Code::Blocks project 16Building and running 18CHAPTER 2: THE PROGRAMMING THING 21The History of Programming 21Reviewing early programming history 21Introducing the C language 22The Programming Process 23Understanding programming 23Writing source code 24Compiling and linking 26Running and testing 27CHAPTER 3: ANATOMY OF C 29Parts of the C Language 29Keywords 30Functions 31Operators 33Variables and values 33Statements and structure 33Comments 35Behold the Typical C Program 37Understanding C program structure 37Setting the main() function 38Returning something to the operating system 39Adding a function 40PART 2: C PROGRAMMING 101 43CHAPTER 4: TRIALS AND ERRORS 45Display Stuff on the Screen 45Displaying a humorous message 45Introducing the puts() function 46Adding more text 47Commenting out a statement 49Goofing up on purpose 49More Text Output Nonsense 51Displaying text with printf() 52Introducing the printf() function 52Understanding the newline 53Employing escape sequences 54Goofing up on purpose again 55CHAPTER 5: VALUES AND SIMPLE MATH 57A Venue for Various Values 57Understanding values 58Displaying values with printf() 59Minding the extra zeros 61The Computer Does the Math 61Doing simple arithmetic 61Reviewing the float-integer thing 63Pretending integers are floats 64CHAPTER 6: A PLACE TO PUT STUFF 67Values That Vary 67Setting up a quick example 68Introducing data types 69Using variables 70Variable Madness! 73Using more-specific data types 73Working with several variables 75Assigning a value upon creation 77Reusing variables 77Constants Always the Same 79Using the same value over and over 79Constants in your code 80Putting constants to use 81CHAPTER 7: INPUT AND OUTPUT 83Character I/O 83Understanding input and output devices 83Fetching characters with getchar() 84Using the putchar() function 86Working with character variables 87Text I/O, but Mostly I 88Storing strings 89Introducing the scanf() function 90Reading a string with scanf() 91Reading values with scanf() 93Using fgets() for text input 94CHAPTER 8: DECISION MAKING 97What If? 97Making a simple comparison 97Introducing the if keyword 99Comparing values in various ways 100Knowing the difference between = and == 102Forgetting where to put the semicolon 103Multiple Decisions 104Making more-complex decisions 104Adding a third option 105Multiple Comparisons with Logic 106Building a logical comparison 106Adding some logical operators 107The Old Switch Case Trick 108Making a multiple-choice selection 108Understanding the switch-case structure 110Taking no breaks 111The Weird ?: Decision Thing 112CHAPTER 9: LOOPS, LOOPS, LOOPS 115A Little Déjà Vu 115The Thrill of for Loops 116Doing something x number of times 116Introducing the for loop 117Counting with the for statement 119Looping letters 120Nesting for loops 121The Joy of the while Loop 123Structuring a while loop 123Using the do while loop 125Loopy Stuff 126Looping endlessly 126Looping endlessly but on purpose 127Breaking out of a loop 128Adding multiple for loop conditions 129Screwing up a loop 130CHAPTER 10: FUN WITH FUNCTIONS 133Anatomy of a Function 133Constructing a function 133Prototyping (or not) 136Functions and Variables 139Using variables in functions 139Sending a value to a function 140Sending multiple values to a function 142Creating functions that return values 143Returning early 145Constants of the Global Kind 147Introducing defined constants 147Putting defined constants to use 148PART 3: BUILD UPON WHAT YOU KNOW 151CHAPTER 11: THE UNAVOIDABLE MATH CHAPTER 153Math Operators from Beyond Infinity 153Incrementing and decrementing 154Prefixing the ++ and -- operators 156Discovering the remainder (modulus) 158Saving time with assignment operators 158Math Function Mania 160Exploring some common math functions 161Suffering through trigonometry 163It’s Totally Random 166Spewing random numbers 166Making the numbers more random 167The Holy Order of Precedence 170Getting the order correct 170Forcing order with parentheses 171CHAPTER 12: GIVE ME ARRAYS 173Behold the Array 173Avoiding arrays 173Understanding arrays 174Initializing an array 177Playing with character arrays (strings) 177Working with empty char arrays 179Sorting arrays 181Multidimensional Arrays 183Making a two-dimensional array 183Going crazy with three-dimensional arrays 186Declaring an initialized multidimensional array 188Arrays and Functions 189Passing an array to a function 189Returning an array from a function 191CHAPTER 13: FUN WITH TEXT 193Character Manipulation Functions 193Introducing the CTYPEs 193Testing characters 195Changing characters 197String Functions Galore 198Reviewing string functions 198Comparing text 199Building strings 200Fun with printf() Formatting 202Formatting floating point 202Setting the output width 204Aligning output 206Gently Down the Stream 207Demonstrating stream input 207Dealing with stream input 208CHAPTER 14: STRUCTURES, THE MULTIVARIABLE 211Hello, Structure 211Introducing the multivariable 211Understanding struct 213Filling a structure 215Making an array of structures 216Weird Structure Concepts 218Putting structures within structures 218Passing a structure to a function 219CHAPTER 15: LIFE AT THE COMMAND PROMPT 221Conjure a Terminal Window 221Starting a terminal window 222Running code in text mode 223Arguments for the main() Function 225Reading the command line 225Understanding main()’s arguments 227Time to Bail 229Quitting the program 229Running another program 230CHAPTER 16: VARIABLE NONSENSE 233Variable Control 233Typecasting into disbelief 233Creating new things with typedef 235Making static variables 238Variables, Variables Everywhere 241Using external variables 241Creating an external structure variable 243Enumerating 245CHAPTER 17: BINARY MANIA 249Binary Basics 249Understanding binary 249Outputting binary values 251Bit Manipulation 253Using the bitwise | operator 253Using bitwise & 256Operating exclusively with XOR 257Understanding the ~ and ! operators 259Shifting binary values 259Explaining the binbin() function 263The Joy of Hex 264PART 4: THE ADVANCED PART 267CHAPTER 18: INTRODUCTION TO POINTERS 269The Biggest Problem with Pointers 269Sizing Up Variable Storage 270Understanding variable storage 270Reading a variable’s size 271Checking a variable’s location 275Reviewing variable storage info 278The Hideously Complex Topic of Pointers 279Introducing the pointer 279Working with pointers 282CHAPTER 19: DEEP INTO POINTER LAND 285Pointers and Arrays 285Getting the address of an array 285Working pointer math in an array 287Substituting pointers for array notation 293Strings Are Pointer-Things 294Using pointers to display a string 294Using a pointer to declare a string 295Building an array of pointers 296Sorting strings 300Pointers in Functions 302Passing a pointer to a function 302Returning a pointer from a function 303CHAPTER 20: MEMORY CHUNKS AND LINKED LISTS 305Give Me Memory! 306Introducing the malloc() function 306Creating string storage 308Using the calloc() function 309Getting more memory 311Freeing memory 313Lists That Link 314Allocating space for a structure 314Creating a linked list 316Editing a linked list 323Saving a linked list 328CHAPTER 21: IT’S ABOUT TIME 329What Time is It? 329Understanding the calendar 330Working with time in C 330Time to Program 331Checking the clock 331Viewing a timestamp 333Slicing through the time string 334Snoozing 336PART 5: AND THE REST OF IT 337CHAPTER 22: PERMANENT STORAGE FUNCTIONS 339Sequential File Access 339Understanding C file access 340Writing text to a file 341Reading text from a file 342Appending text to a file 345Writing binary data 346Reading binary data 348Random File Access 350Writing a structure to a file 351Reading and rewinding 353Finding a specific record 355Saving a linked list to a file 357CHAPTER 23: FILE MANAGEMENT 359Directory Madness 359Calling up a directory 359Gathering more file info 361Separating files from directories 363Exploring the directory tree 364Fun with Files 365Renaming a file 365Copying a file 367Deleting a file 368CHAPTER 24: BEYOND MERE MORTAL PROJECTS 369The Multi-Module Monster 369Linking two source code files 370Sharing variables between modules 372Creating a custom header file 374Other Libraries to Link 378CHAPTER 25: OUT, BUGS! 381Simple Tricks to Resolve Problems 381Documenting the flow 382Talking through your code 382Writing comments for future-you 382The Debugger 383Debugging setup 383Working the debugger 385Setting a breakpoint 387Watching variables 388Improved Error Messages 390PART 6: THE PART OF TENS 393CHAPTER 26: TEN COMMON BOO-BOOS 395Conditional Foul-Ups 395== v = 396Dangerous Loop Semicolons 397Commas in for Loops 398Missing break in a switch Structure 398Missing Parentheses and Curly Brackets 399Don’t Ignore a Warning 399Endless Loops 400scanf() Blunders 401Streaming Input Restrictions 402CHAPTER 27: TEN REMINDERS AND SUGGESTIONS 403Maintain Good Posture 404Use Creative Names 404Write a Function 405Work on Your Code a Little Bit at a Time 405Break Apart Larger Projects into Several Modules 406Know What a Pointer is 406Add Whitespace before Condensing 407Know When if-else Becomes switch-case 407Remember Assignment Operators 408When You Get Stuck, Read Your Code Out Loud 409PART 7: APPENDICES 411APPENDIX A: ASCII CODES 413APPENDIX B: KEYWORDS 419APPENDIX C: OPERATORS 421APPENDIX D: DATA TYPES 423APPENDIX E: ESCAPE SEQUENCES 425APPENDIX F: CONVERSION CHARACTERS 427APPENDIX G: ORDER OF PRECEDENCE 429Index 431
Intermediate C Programming for the PIC Microcontroller
Delve into the exciting world of embedded programming with PIC microcontrollers in C. The key to learning how to program is to understand how the code works – and that is what you’ll learn here.Following C Programming for the PIC Microcontroller, this book continues exploring the coding required to control the PIC microcontroller and can be used as a standalone single reference, or paired with the previous title to enhance your programming skills. You'll see how to control the position of a servo motor and use the compare aspect of the CCP module to create a square wave with varying frequency. You'll also work with the capture aspect of the CCP to determine the frequency of a signal inputted to the PIC and use external and internal interrupts.This book breaks down the programs with line-by-line analysis to give you a deep understanding of the code. After reading it you’ll be able to use all three aspects of the Capture, Compare and PWM module; work with different types of interrupts; create useful projects with the 7 segment display; and use the LCD and push button keyboard.WHAT YOU’LL LEARN* Create a small musical keyboard with the PIC* Manage a stepper motor with the PIC* Use the main features of the MPLABX IDE* Interface the PIC to the real world* Design and create useful programs based around the PIC18F4525WHO THIS BOOK IS FOREngineering students and hobbyist who want to try their hand at embedded programming the PIC micros.Hubert Ward has nearly 25 years of experience as a college lecturer delivering the BTEC, and now Pearson's, Higher National Certificate and Higher Diploma in Electrical & Electronic Engineering. Hubert has a 2.1 Honours Bachelor's Degree in Electrical & Electronic Engineering. Hubert has also worked as a consultant in embedded programming. His work has established his expertise in the assembler and C programming languages, within the MPLABX IDE from Microchip, as well as designing electronic circuits, and PCBs, using ECAD software. Hubert was also the UK technical expert in Mechatronics for three years, training the UK team and taking them to enter in the Skills Olympics in Seoul 2001, resulting in one of the best outcomes to date for the UK in Mechatronics.Introduction The Aims and Objectives of the Book The Objectives of the Book The PrerequisitesChapter 1: Creating a Header File Header Files Creating a Header File Creating a Project in MPLABX Including the Header File Create the Project Source File Analysis of Listing 1.1 SynopsisChapter 2: Controlling a Seven Segment Display The Seven Segment Display Common Anode LED Common Cathode The Program The Algorithm The Flowchart The Listing for the Seven Segment Display Improving the Seven Segment Display Program The Issue with the Program Arrays Using Pointers Analysis The Improved Program Exercise 2.1 SynopsisChapter 3: The 24 Hour Clock The Seven Segment Display The Algorithm The Initialization of the PIC. Analysis of Listing 3.1 A 24 Hr Clock with the LCD Display Analysis of the Header File for the LCD The Analysis of Listing 3.2 Improvements for the 24Hr Clock LCD Program Using Switch and Case Key Words Analysis of the New SubroutineChapter 4: Creating a Square Wave Why Create a Square Wave? Musical Notes Exercise 4.1 The Speed of the Simple DC Motor PWM Pulse Width Modulation Creating a Square Wave Creating a 500Hz Square Wave The Mark Time or Duty Cycle Creating Two Square Wave Outputs Setting the Speed of a DC Motor Driving the Motor Creating a Three speed DC Motor Program Varying the Space Width Using A Variable Input Voltage to Control the Speed of a DC Motor Creating a Musical Note Creating the Middle C Note Create a Musical Keyboard The Analysis of Listing 4.6 Summary of Chapter 4Chapter 5: Making Music Creating a Musical Note Creating the Middle C NoteChapter 6: The Stepper Motor The Servo Motor Controlling the Positions of the Servo Motor with a Variable ResistorChapter 7 :Interrupts The Fetch and Execute Cycle The Program Counter PC The Sources of Interrupts Setting the Interrupts The Algorithm for the Interrupt Test Program The Analysis of the Listing 7.1.
SAP Interactive Forms by Adobe
Maßgeschneiderte Formulare für Ihre Geschäftsprozesse! Lernen Sie, wie Sie mit SAP Interactive Forms by Adobe interaktive Formulare erstellen, die Anwender später am Bildschirm ausfüllen können. In dieser 4. Auflage unseres Standardwerks erfahren Sie auch, welche Besonderheiten bei der Formularausgabe in SAP S/4HANA zu beachten sind und welche Alternativen Ihnen SAP Cloud Platform Forms by Adobe bietet. Aus dem Inhalt: PDF-basierte PrintformulareAdobe Reader Adobe LiveCycle DesignerAdobe Document ServicesBarrierefreie PDF-FormulareEtikettendruckWebservicesABAP-Offline-InfrastrukturSkriptprogrammeMasterseiten und Rich-Text-FelderSchnittstellen und ZertifikateOutput Management in SAP S/4HANASAP Cloud Platform Forms by Adobe Einleitung ... 19 1. Einsatz von SAP Interactive Forms by Adobe ... 27 1.1 ... PDF, PDF-basierte Druckformulare und interaktive PDF-Formulare ... 27 1.2 ... Adobe Acrobat Reader und Adobe Acrobat Pro ... 34 1.3 ... Beispiele für PDF-basierte Druckformulare und interaktive PDF-Formulare ... 39 1.4 ... Verwendung von interaktiven Formularen in Geschäftsprozessen ... 45 1.5 ... Softwarekomponenten und Architektur ... 52 1.6 ... Formularvorlagen in SAP S/4HANA ... 65 1.7 ... Zusammenfassung ... 68 2. Systemvorbereitung ... 71 2.1 ... Installation des Adobe LiveCycle Designer ... 71 2.2 ... Installation des Adobe Acrobat Reader DC ... 74 2.3 ... Zusammenfassung ... 76 3. Installation und Konfiguration der Adobe Document Services ... 77 3.1 ... Automatische Konfiguration ... 77 3.2 ... Grundkonfiguration ... 79 3.3 ... Szenarioabhängige Konfiguration ... 84 3.4 ... Konfiguration für die Parallelisierung ... 100 3.5 ... Optionale Konfiguration ... 107 3.6 ... Betrieb der Adobe Document Services ... 115 3.7 ... Hub-Konzept ... 119 3.8 ... Zusammenfassung ... 122 4. Schnittstelle und Formularkontext ... 123 4.1 ... Aufbau eines Formulars ... 123 4.2 ... Schnittstelle eines Formulars ... 124 4.3 ... Kontext eines Formulars ... 141 4.4 ... Dokumentation eines Formulars ... 175 4.5 ... Zusammenfassung ... 176 5. Erstellung von Formularvorlagen ... 177 5.1 ... Aufbau des Adobe LiveCycle Designer ... 177 5.2 ... Grundlagen der Formularvorlagenerstellung ... 184 5.3 ... Datenbindungen für Formularfelder ... 198 5.4 ... Strukturierung von Formularvorlagen durch Teilformulare ... 202 5.5 ... Verwendung von Masterseiten und Rich-Textfeldern ... 213 5.6 ... Wiederverwendung von Formularobjekten ... 218 5.7 ... Implizite Datenbindung ... 222 5.8 ... Tipps zur Arbeit mit dem Adobe LiveCycle Designer ... 227 5.9 ... Zusammenfassung ... 235 6. Formularausgabe ... 237 6.1 ... Druckprogramm ... 238 6.2 ... Spool-System ... 253 6.3 ... Gerätetypen für die Ausgabe ... 256 6.4 ... Zusätzliche Druckoptionen ... 259 6.5 ... Spezielle Ausgabeszenarien ... 265 6.6 ... Fehleranalyse ... 273 6.7 ... Performanceoptimierung durch Bündelung ... 282 6.8 ... Parallelisierung von Druckaufträgen ... 291 6.9 ... XFP-Datenströme ... 301 6.10 ... Zusammenfassung ... 303 7. Fortgeschrittene Formularvorlagenerstellung ... 305 7.1 ... Fortgeschrittene Techniken für Druckformulare ... 305 7.2 ... Interaktive PDF-Formulare ... 331 7.3 ... Verwendung von Skriptprogrammen ... 363 7.4 ... Verwendung von Barcodes ... 385 7.5 ... Verwendung von Etikettendruckern ... 387 7.6 ... Tipps zur Leistungsverbesserung ... 388 7.7 ... Einführung in barrierefreie PDF-Formulare ... 390 7.8 ... Weiterführende Informationen ... 393 7.9 ... Zusammenfassung ... 395 8. ABAP Offline Infrastructure ... 397 8.1 ... Offline-Szenarien mittels E-Mail-Nachrichten ... 397 8.2 ... Beispielszenario: Adressenaktualisierung im Flugbuchungsmodell ... 398 8.3 ... Konfiguration des E-Mail-Eingangs ... 400 8.4 ... Verwendung der ABAP Offline Infrastructure ... 401 8.5 ... Testen des Offline-Szenarios ... 422 8.6 ... Zusammenfassung ... 426 9. ABAP-PDF-Objekt ... 427 9.1 ... Instanziieren des PDF-Objekts ... 428 9.2 ... Erzeugung eines PDF-Dokuments ... 431 9.3 ... Verarbeitung eines interaktiven PDF-Dokuments ... 443 9.4 ... Zertifizierung von PDF-Dokumenten ... 452 9.5 ... Weitere Methoden des PDF-Objekts ... 462 9.6 ... Zusammenfassung ... 463 10. Offline-Szenarien mittels Webservices ... 465 10.1 ... Verwendung von WSDL-Datenverbindungen ... 466 10.2 ... Verwendung des SOAP-Objekts in JavaScript ... 483 10.3 ... Tipps für die Verwendung von Webservices ... 496 10.4 ... Zusammenfassung ... 497 11. Formularvorlagen in SAP S/4HANA ... 499 11.1 ... Adobe LiveCycle Designer für SAP als eigenständige Anwendung ... 499 11.2 ... Fragmentbasierte und Standalone-Formularvorlagen ... 501 11.3 ... Download von Formularvorlagen und Hochladen in die Designumgebung ... 504 11.4 ... Bearbeitung von Formularvorlagen im Adobe LiveCycle Designer ... 509 11.5 ... Upload von Formularvorlagen in der SAP-Fiori-App »Formularvorlagen pflegen« ... 533 11.6 ... Transportanbindung ... 540 11.7 ... Zusammenfassung ... 551 12. Übersetzung von Formularvorlagen ... 553 12.1 ... Übersetzung klassischer Formularvorlagen ... 553 12.2 ... Übersetzung von SAP-S/4HANA-Formularvorlagen ... 565 12.3 ... Probleme bei Übersetzungen behandeln ... 585 12.4 ... Customizing-Lösungen zur Pflege von Übersetzungen ... 586 12.5 ... Herkunft einer Übersetzung ... 589 12.6 ... Zusammenfassung ... 593 13. Einrichtung des SAP-Gateway-Service ... 595 13.1 ... Datenversorgung der Formularvorlagen in SAP S/4HANA ... 595 13.2 ... SAP-Gateway-Services ... 596 13.3 ... SAP-Fiori-App »Benutzerdefinierte Felder und Logik« ... 613 13.4 ... Zusammenfassung ... 640 14. Ausgabesteuerung in SAP S/4HANA konfigurieren ... 641 14.1 ... Grundlegende Einstellungen ... 641 14.2 ... bgRFC konfigurieren ... 655 14.3 ... Ablagesystem und Ablagekategorie einrichten ... 656 14.4 ... Aktivierung der Ausgabeverwaltung ... 659 14.5 ... Customizing der Ausgabearten ... 664 14.6 ... Geschäftsregeln für die Ausgabeparameterfindung definieren ... 672 14.7 ... Ausgabekanäle zuordnen ... 696 14.8 ... Findungsregeln für Master-Formularvorlage definieren ... 698 14.9 ... Formularvorlagen zuordnen ... 705 14.10 ... E-Mail-Vorlagen zuordnen ... 711 14.11 ... Customizing und Datenpflege in den Produktivsystemen ... 712 14.12 ... Problemlösung und Fehlerbehandlung ... 713 14.13 ... Zusammenfassung ... 723 15. SAP Cloud Platform Forms by Adobe ... 725 15.1 ... Architektur von SAP Forms by Adobe ... 726 15.2 ... Konfiguration von SAP Forms by Adobe ... 727 15.3 ... SAP Forms by Adobe REST API ... 752 15.4 ... Erweiterte Konfiguration von SAP Forms by Adobe ... 754 15.5 ... Einsatz von SAP Forms by Adobe ... 758 15.6 ... Zusammenfassung ... 759 A. Wichtige SAP-Hinweise ... 763 B. Weiterführende Informationen und Quellen ... 767 C. Der Autor ... 771 Index ... 773
Custom-Code-Migration nach SAP S/4HANA
In Ihrem SAP-System gibt es jede Menge Eigenentwicklungen und Erweiterungen? Lassen Sie sich dadurch bei der SAP-S/4HANA-Migration nicht ausbremsen! Emily Celen und Lutz Rosenpflanzer lassen Sie an ihren Erfahrungen aus zahlreichen Migrationsprojekten teilhaben und zeigen Ihnen Schritt für Schritt, wie Sie den Code analysieren, adaptieren und optimieren. Sie erfahren, worauf Sie im Einzelnen achten müssen, und erlernen den Umgang mit allen wichtigen Werkzeugen. Aus dem Inhalt: Projektplanung und -vorbereitungSimplification Items Compatibility ViewsABAP Test Cockpit und PrüftitelCustom Code ManagementÄnderungszeitpunkte bei der Ausführung des Software Update Managers (SUM)Anpassungen für SAP HANA und SAP S/4HANAPerformanceoptimierungProgrammierrichtlinienFallstricke und Best Practices Vorwort ... 15 Einleitung ... 19 1. Was kommt mit SAP S/4HANA auf Sie zu? ... 23 1.1 ... SAP S/4HANA im Vergleich zur klassischen SAP Business Suite ... 25 1.2 ... Transformationsszenarien ... 34 1.3 ... Zusammenfassung ... 44 2. Das Konvertierungsprojekt im Überblick ... 45 2.1 ... Ablauf eines Konvertierungsprojekts ... 45 2.2 ... Beispiel für einen groben Projektplan ... 51 2.3 ... Welche Änderungen am Anwendungscode sind erforderlich? ... 54 2.4 ... Die wichtigsten Vorbereitungen für die Konvertierung ... 83 2.5 ... Zusammenfassung ... 97 3. Umfang der Custom-Code-Migration bestimmen ... 99 3.1 ... Welcher Code muss migriert werden? ... 99 3.2 ... Verwendungsprotokollierung ... 102 3.3 ... Custom Code Lifecycle Management im SAP Solution Manager ... 116 3.4 ... Die App »Custom Code Migration« ... 124 3.5 ... Manuelle Auswertung der Verwendung kundeneigener Objekte ... 128 3.6 ... Zusammenfassung ... 138 4. Analyse der erforderlichen Anpassungen ... 141 4.1 ... Welche Tools helfen bei der Analyse? ... 141 4.2 ... ABAP Test Cockpit ... 144 4.3 ... Standardprüfvarianten ... 156 4.4 ... Prüfung fremder Namensräume ... 168 4.5 ... Prüfungen von SAP-Fiori-Apps aus SAP ERP ... 170 4.6 ... Prüfungen mit der App »Custom Code Migration« ... 173 4.7 ... Dateibasierte Werkzeuge ... 182 4.8 ... Weitere Prüfungen und Aktivitäten im Rahmen der Systemkonvertierung ... 188 4.9 ... Zusammenfassung ... 193 5. Custom-Code-Anpassung für SAP HANA ... 195 5.1 ... Technische Grundlagen zur Custom-Code-Anpassung für SAP HANA ... 196 5.2 ... Beispiele für Prüffehler ... 206 5.3 ... Beispiele für den Prüftitel »Voraussetzungen für den Test« ... 209 5.4 ... Beispiele für den Prüftitel »Kritische Anweisungen« ... 212 5.5 ... Beispiele für den Prüftitel »Problematische Anweisungen« ... 215 5.6 ... Beispiele für den Prüftitel »DB-Operationen in Pool-/Cluster-Tabellen suchen« ... 229 5.7 ... Beispiele für den Prüftitel »Verwendung der ADBC-Schnittstelle« ... 235 5.8 ... Suche von ABAP-Anweisungsmustern ... 239 5.9 ... Zusammenfassung ... 246 6. Custom-Code-Anpassung für SAP S/4HANA ... 247 6.1 ... Technische Grundlagen zur Custom-Code-Anpassung für SAP S/4HANA ... 248 6.2 ... Versionen der SAP-S/4HANA-Prüfvarianten ... 257 6.3 ... Beispiele für den Prüftitel »S/4HANA: Feldlängenerweiterungen« ... 258 6.4 ... Beispiele für den Prüftitel »S/4HANA: Nach ABAP-Dictionary-Erweiterungen suchen« ... 274 6.5 ... Beispiele für den Prüftitel »S/4HANA: Nach Basistabellen der ABAP-Dictionary-Views suchen« ... 281 6.6 ... Beispiele für den Prüftitel »S/4HANA: Suche nach Datenbankoperationen« ... 288 6.7 ... Beispiele für den Prüftitel »S/4HANA: Suche nach Verwendungen der vereinfachten Objekte« ... 293 6.8 ... Beispiele für den Prüftitel »S/4HANA: Readiness Check für SAP Queries« ... 305 6.9 ... Zusammenfassung ... 309 7. Quick Fixes ... 311 7.1 ... Systemvoraussetzungen ... 311 7.2 ... Funktionsumfang der SAP-S/4HANA-Quick-Fixes ... 313 7.3 ... Quick Fixes in den ABAP Development Tools verwenden ... 316 7.4 ... Eigene Quick Fixes anlegen ... 325 7.5 ... Zusammenfassung ... 329 8. Custom-Code-Optimierung nach der Migration ... 331 8.1 ... Optimierungswerkzeuge ... 333 8.2 ... Optimierung der Datenbankzugriffe ... 344 8.3 ... Neue Sprachelemente und Programmierobjekte ... 356 8.4 ... Umbau des Custom Codes auf neue Objekte ... 371 8.5 ... Erweiterungskonzepte und Clean Core ... 372 8.6 ... Zusammenfassung ... 382 9. Best Practices für Transformationsprojekte ... 385 9.1 ... Typische Herausforderungen und Fallstricke ... 385 9.2 ... Spezielle Lösungsansätze und zusätzliche Tools ... 400 9.3 ... Partnertools und -services ... 416 9.4 ... Zusammenfassung ... 420 Anhang ... 423 A. Wichtige Transaktionen ... 425 B. Checkliste zur Vorbereitung der Custom-Code-Migration ... 429 C. Das Autorenteam ... 431 Index ... 433
Die Kunst des Game Designs
* GRUNDLAGEN DER KONZEPTION UND ENTWICKLUNG ERFOLGREICHER COMPUTERSPIELE VON EINEM DER WELTWEIT FÜHRENDEN GAME DESIGNER* ÜBER 100 REGELN UND ZENTRALE FRAGEN ZUR INSPIRATION FÜR DEN KREATIVEN PROZESS* ZAHLREICHE WERTVOLLE DENKANSTÖẞE UND BEST PRACTICES AUS DEM GAME DESIGNJeder kann erfolgreiche Spiele entwickeln – dazu bedarf es keines technischen Fachwissens. Dabei zeigt sich, dass die gleichen psychologischen Grundprinzipien, die für Brett-, Karten- und Sportspiele funktionieren, ebenso der Schlüssel für die Entwicklung beliebter Videospiele sind.Mit diesem Buch lernen Sie, wie Sie im Prozess der Spielekonzeption und -entwicklung vorgehen, um perfekt durchdachte Games zu kreieren. Jesse Schell zeigt, wie Sie Ihr Game durch eine strukturierte methodische Vorgehensweise Schritt für Schritt deutlich verbessern.Mehr als 100 gezielte Fragestellungen und zahlreiche Beispiele aus klassischen und modernen Spielen eröffnen Ihnen neue Perspektiven, so dass Sie für Ihr eigenes Spiel die Features finden, die es erfolgreich machen. Hierzu gehören z.B. Fragen wie: Welche Herausforderungen stellt mein Spiel an die Spieler? Fördert es den Wettbewerb unter den Spielern? Werden sie dazu motiviert, gewinnen zu wollen?Im Buch erfahren Sie, worauf es bei einem Game ankommt, das die Erwartungen Ihrer Spieler erfüllt und gerne gespielt wird. Zugleich liefert der Autor Ihnen jede Menge Inspiration – halten Sie beim Lesen Zettel und Stift bereit, um Ihre neuen Ideen sofort festhalten zu können.AUS DEM INHALT:* Ein Erlebnis erschaffen* Elemente des Spiels* Die Spielidee* Prototypentwicklung* Spieler motivieren und Bedürfnisse erfüllen* Spielmechaniken wie Aktionen, Regeln, Fähigkeiten, Wahrscheinlichkeiten* Game Balancing* Das Interface* Best Practices aus Virtual Reality und Augmented Reality* Die Story* Spielwelten und -charaktere* Spieletests* Profit erzielen-Magazin des MIT als einer der 100 führenden Nachwuchsinnovatoren der Welt ausgezeichnet.
Beginning Quarkus Framework
Harness the power of Quarkus, the supersonic subatomic cloud-native Java platform from Red Hat. This book covers everything you need to know to get started with the platform, which has been engineered from the ground up for superior performance and cloud-native deployment.You’ll start with an overview of the Quarkus framework and its features. Next, you'll dive into building your first microservice using Quarkus, including the use of JAX-RS, Swagger, Microprofile, REST, reactive programming, and more. You’ll see how to seamlessly add Quarkus to existing Spring framework projects. The book continues with a dive into the dependency injection pattern and how Quarkus supports it, working with annotations and facilities from both Jakarta EE CDI and the Spring framework. You’ll also learn about dockerization and serverless technologies to deploy your microservice.Next you’ll cover how data access works in Quarkus with Hibernate, JPA, Spring Boot, MongoDB, and more. This will also give you an eye for efficiency with reactive SQL, microservices, and many more reactive components. You’ll also see tips and tricks not available in the official documentation for Quarkus.Lastly, you'll test and secure Quarkus-based code and use different deployment scenarios to package and deploy your Quarkus-based microservice for the cloud, using Amazon Web Services as a focus. After reading and using Beginning Quarkus Framework, you'll have the essentials to build and deploy cloud-native microservices and full-fledged applications.Author Tayo Koleoso goes to great lengths to ensure this book has up to date material including brand new and some unreleased features!WHAT YOU WILL LEARN* Build and deploy cloud-native Java applications with Quarkus* Create Java-based microservices* Integrate existing technologies such as the Spring framework and vanilla Java EE into the Quarkus frameworkWork with the Quarkus data layer on persistence with SQL, reactive SQL, and NoSQL* Test code in Quarkus with the latest versions of JUnit and Testcontainers* Secure your microservices with JWT and other technologies* Package your microservices with Docker containers and GraalVM native image tooling* Tips and techniques you won't find in the official Quarkus documentationWHO THIS BOOK IS FORIntermediate Java developers familiar with microservices, the cloud in general, and REST web services, but interested in modern approaches.TAYO KOLEOSO is a full-time technical lead and consulting architect with a burning passion for learning - because he knows there’s too much he doesn’t know; and teaching - because it’s the best way to reinforce knowledge. He’s an in-person instructor and author, dedicated to topics and technologies he’ll have to study religiously to deliver. His journey started from Lagos, in Nigeria, bringing him to the United States as an immigrant software engineer. Across industries, from finance to cybersecurity, he has led teams; architected complicated integrations; broken and built many fun and mission-critical projects in the enterprise space, with Java and Python, in the cloud. Quarkus is his latest victim.Outside of technology, he’s very passionate about personal finance and the securities market. Throw a couple of habanero peppers in, and he’s happy! You can watch and follow his courses on LinkedIn Learning.1. Welcome to Quarkus – Gives the reader a high-level overview of the Quarkus platform, the goals, features and a comparison with alternatives- Supersonic Subatomic!- Quarkus Feature Tour- Quarkus vs Springboot vs JavaEE- Getting started with Quarkus2. Microservices – Gets the reader started with building microservices with Quarkus, including production-grade features- Getting started with microservices in Quarkus- Swagger Support- OpenAPI Documentation- SwaggerUI- Microprofile Support (I might add a few more microprofile-specific components if there’s any Quarkus-flavored twist to them)- REST Client- Security- Validation- Reactive Programming- Vert.x- Reactive Routes- Reactive Filters- Configuration - Configuration Options- Configuration Management with HashiCorp Vault3. Dependency Injection - Shows the reader how Quarkus works with existing DI frameworks in the Java ecosystem- CDI- Spring4. Quarkus Data Layer – Introduce the reader to handling data using Quarkus- Reactive SQL- JSON- Flyway- DynamoDB- MongoDB5. Batch Processing – Show the reader how to perform batch operations in Quarkus6. Testing – Show the reader how to test Quarkus-based code7. Quarkus Security – Implement Quarkus-specific security features (might roll this into the Microservice chapter)8. Deployment and Packaging – Introduce the reader to different deployment scenarios that Quarkus is engineered for (might whittle down/collapse some of these as the writing progresses)- Basic Deployment- Native Packaging- Kubernetes- GraalVM - Hot Reloading Code- Serverless
Spring Quick Reference Guide
Quickly gain the insight necessary to address a multitude of Java-based Spring Framework and Spring Boot coding challenges using this succinct reference guide. Short, focused code examples will help you master many of the Spring elements such as AOP, data access, MVC for web development, security, web services/REST for microservices development, Batch for large data sets, and more. You’ll also get a rundown of the increasingly popular Spring Boot microframework as well.You won’t find any technical jargon, bloated samples, drawn out history lessons, or witty stories in this book. What you will find is a language reference that is concise, to the point, and highly accessible. The book is packed with useful information and is a must-have for any Java programmer.WHAT YOU WILL LEARN* Discover the Spring Framework and its many sub-projects* Work with the Spring Boot microframework* Program with the Spring Boot framework to build Java-based* microservices, native cloud applications, and more* Use some of the lesser-known but still important frameworks and tools such as REST Docs, HATEOAS, Cloud, and more* Leverage these Spring frameworks and tools for building your next Java-based cloud applicationWHO THIS BOOK IS FORThose with prior experience with Java who want a quick and handy reference to using Spring.Adam L. Davis makes software. He’s spent many years developing in Java (since Java 1.2) and has enjoyed using Spring and Hibernate for more than a decade. Since 2006 he’s been using Groovy, Grails, HTML, CSS, and JavaScript, in addition to Java to create SaaS web applications that help track finances for large institutions (among other things).Adam has a Masters and a Bachelors degree in Computer Science from Georgia Tech. He is also the author of Reactive Streams in Java (Apress, 2019) and Learning Groovy: Second Edition (Apress, 2019).1. Introduction2. Core3. Libraries4. Spring AOP5. Spring Data6. Spring MVC7. Spring Mobile8. Spring Security9. Spring Web Services10. Spring REST11. Reactor12. Spring XD13. Spring Batch14. Spring Social15. Spring Boot16. Spring Boot with WebFlux17. Spring IO18. Spring Shell19. Spring Cloud
GANs mit PyTorch selbst programmieren
GANs mit PyTorch selbst programmieren - Ein verständlicher Einstieg in Generative Adversarial NetworksNeues von Bestsellerautor Tariq Rashid: Eine Einführung in die innovative Deep-Learning-Technik GANsGANs sind »die coolste Idee im Deep Learning in den letzten 20 Jahren« – sagt Yann LeCun, einer der weltweit führenden Forscher auf dem Gebiet neuronaler Netze, über Generative Adversarial Networks. Bei dieser noch neuen KI-Technik treten zwei neuronale Netze gegeneinander an mit dem Ziel, realistisch wirkende Fotos, Videos oder Texte neu zu generieren. Die Netze trainieren sich gegenseitig: Auf Basis realer Daten erzeugt der Generator künstliche Inhalte, der Diskriminator weist Daten mit schlechter Qualität zurück.Mit diesem Buch können Sie selbst ganz praktisch ausprobieren, wie GANs funktionieren. Wie in seinem Bestseller Neuronale Netze selbst programmieren, auf den dieses Buch aufbaut, erläutert Tariq Rashid jede Technik Schritt für Schritt mit vielen anschaulichen Abbildungen. Sie erfahren, wie Sie mit dem populären Framework PyTorch Ihre eigenen GANs erstellen und trainieren:Sie lernen die Grundlagen von PyTorch und programmieren damit Ihr erstes neuronales Netz auf Google ColabSie starten dann mit einem einfachen GAN, um einen typischen Workflow einzurichten, und üben erste Techniken anhand der MNIST-Datenbank mit handgeschriebenen ZahlenMit diesem Wissen programmieren Sie ein GAN, das realistische menschliche Gesichter erzeugen kannSie finden heraus, wo das GAN versagt, schaffen Abhilfe und verbessern die Leistung und Stabilität Ihres ModellsAbschließend erkunden Sie auch anspruchsvollere Themen wie Convolutional und Conditional GANsLeseprobe (PDF-Link)Inhaltsverzeichnis (PDF-Link) Tariq Rashids besondere Fähigkeit, komplexe Ideen verständlich zu erklären, macht diese schwierige Materie für jeden Interessierten zugänglich und praktisch nachvollziehbar.
Rust for the IoT
Get started programming Rust applications for the Internet of Things (IoT). This book is a programming skills migration book that teaches you the Rust programming techniques most useful for IoT applications. You'll step through from server to board development in creating a set of IoT applications.In Rust for the IoT, you'll learn how to build a modern server-side application using Rust on the backend. Then you'll use docker and Kubernetes to deploy these to a managed cloud. Finally you will use a Raspberry Pi with a SenseHat and Camera to capture the world around you and send that information to the cloud.While you will be able to follow along without any cloud or hardware, to make the most of it we recommend a few cloud pieces and hardware that is designed to integrate with the software in this book. After reading and using this book, you'll see how to apply Rust to the Internet of Things.WHAT YOU WILL LEARN* Create a modern Rust backend complete with handling eventual consistency and interacting via a GraphQL interface* Use the Raspberry PI to serve as a cheap IoT device that one can easily deploy around the house* Capture temperature, video, and use the interactive joystick to interact with the software you’ve created* Use OpenCV to perform facial detection from the PI’s camera and save that information to the cloud.* Create deployable helm charts for the cloud, and for the device create complete ISOs that allow you to easily deploy the Pi’s OS + custom softwareWHO THIS BOOK IS FORYou will need to have a basic understanding of cloud application development at a minimum and the basics of Rust coding. This book is for those interested in or working with the IoT and the Raspberry Pi who want to learn how Rust can work for them.JOSEPH FAISAL NUSAIRAT is a a senior partner at Integrallis Software and is a software developer who has been working full-time in the Columbus, Ohio, area since 1998, primarily focused on Java and most recently Rust application development. His career has taken him into a variety of Fortune 500 industries, including military applications, data centers, banking, Internet security, pharmaceuticals, and insurance. Throughout this experience, he has worked on all varieties of application development from design to architecture to development. Joseph, like most Java developers, is particularly fond of open source projects and tries to use as much open source software as possible when working with clients. Joseph is a graduate of Ohio University with dual degrees in computer science and microbiology and a minor in chemistry. While at Ohio University, Joseph also dabbled in student politics and was a research assistant in the virology labs.* Introduction, covers what this book is going to solve, we tackle the issues and problems surrounding IoT applications and their architecture. We also go over the hardware that is needed for this book and the chapter ends with some simple Rust examples.* Server Side, starts with setting up and creating our first microservice the retrieval_svc, this will set up simple calls to it and integrate and set up the database for it.* File Uploading and Parsing, this chapter is more heavily focused on the upload_svc and in here we learn how to upload images and video files to store locally. We then parse the metadata out of the files and call the retrieval_svc to store their metadata.* Messaging and GraphQL, back to the retrieval_svc we add GraphQL to use on top of the web tier instead of pure RESTful endpoints. We also create the mqtt_service that will serve as our bridge to communicate between the backend and the Pi using MQTT.* Performance, enhancing both the retrieval_svc and the mqtt_service by instead having the communication between the two be REST calls, instead they will use serialized binary data via Cap’n Proto to talk. Also on the retrieval_svc side we add CQRS and eventual consistency to our graph mutations for comments.* Security, this adds using Auth0 to authenticate the user so that our database can identify a device to a user. We also add self signed certificates to secure the communication of the MQTT.* Deployment, this chapter we learn how to create Docker images of all our microservices, combining them with Kubernetes and deploying to a cloud provider with Helm charts.* Sense HAT, our first hands on chapter with the Raspberry Pi we will set up the heartbeat to communicate to the MQTT backend we created earlier.* Sense HAT, this incorporates the Sense HAT device to gather data about our environment to the Pi. The SenseHat provides us a visual LED display, temperature sensors, and a joystick for interactions.* Camera, this chapter we add a camera to the device which will allow us to do facial tracking and recording.* Integration, one of the last chapters we incorporate the video camera to send data back to the cloud as well as allowing the Pi to receive recording commands from the cloud and finally we allow the Pi to be used as a HomeKit device to show temperature and motion.* Final Thoughts, this final short chapter discusses how we would build an ISO image for our given application and other bundling issues.
Benutzerzentrierte Unternehmensarchitekturen
Unternehmensarchitektur-Management unterstützt die Planung und Durchführung von Geschäftstransformation. Existierende Ansätze können in portfolio- und projekt-orientierte Ansätze eingeteilt werden. Die Synthese dieser Ansätze bietet das Beste aus beiden Welten. Das Buch stellt den kombinierten Ansatz vor.Der Inhalt gliedert sich in ausgewählte Best-Practice-Szenarien. Der Fokus liegt jeweils auf dem Thema Benutzererfahrung – ein Schwerpunkt, der in Transformationsprojekten oftmals vernachlässigt wird.Zur Evaluierung von Unternehmensarchitekturen aus Sicht der Benutzer steht unter ww.omilab.org/usercentricassessment ein Online-Service zur Verfügung.DIE HERAUSGEBERO. UNIV.-PROF. PROF.H.C. DR. DIMITRIS KARAGIANNIS ist an der Universität Wien tätig, wo er die Forschungsgruppe Knowledge Engineering der Fakultät für Informatik leitet.DR. CHRISTOPH MOSER ist Produktmanager von ADOIT, der von Analystenhäusern als Leader eingestuften EA-Suite.DR. ANKE HELMES ist als Senior Management Consultant bei der BOC Gruppe tätig und trägt die Regionalverantwortung für den süddeutschen Raum.Geschäftstransformation – Eine Notwendigkeit.- Das Zusammenspiel zwischen TOGAF®, ArchiMate® und EA-Szenarien.- Transformationsportfolio-Management.- Capability-Portfolio-Management.- Applikationsportfolio-Management.- Datenportfolio-Management.- Technologieportfolio-Management.- Compliance-Portfolio-Management.- Benutzererfahrung als Wegweiser in der Geschäftstransformation.
Raku Fundamentals
Gain the skills to begin developing Raku applications from the ground up in this hands-on compact book, which includes a foreword from Larry Wall, creator of Perl. You’ll learn enough to get started building with Raku, using Raku's gradual typing, handy object orientated features, powerful parsing capabilities, and human-usable concurrency. This book has been updated to include the latest version of Raku based upon the Perl 6.d major version which includes over 3,400 new commits in its specification.After a short introduction, each chapter develops a small example project, explaining the Raku features used. When the example is done, you’ll explore another aspect, such as optimizing further for readability or testing the code. Along the way you’ll see Raku basics, such as variables and scoping; subroutines; classes and objects; regexes; and code testing.When you’ve mastered the basics, Raku Fundamentals moves onto more advanced topics to give you a deeper understanding of the language. You’ll learn, amongst other things, how to work with persistent storage, how to generate good error messages, and how to write tricky applications such as a file and directory usage graph and a Unicode search tool.WHAT YOU WILL LEARN* Get coding with latest version of Raku* Work on several hands-on examples and projectsIntegrate Python libraries into your Raku-based programs * Parse INI files using regexes and grammars* Build a date-time converter * Carry out refactoring and other automated testsWHO THIS BOOK IS FORIf you already know one or more programming languages, and want to learn about Raku, then this book is for you. MORITZ LENZ is a Perl 6, now Raku, core developer. He has contributed significantly to the official test suite, the Rakudo Perl compiler, and is the initiator of the official Raku documentation project. He has also authored several modules, and runs infrastructure for the Raku community. In his day job, he develops Perl 5 and Python code, and maintains a continuous delivery system for his employer.1. What is Raku?1.1 Perl 5, the Older Sister1.2 Library Availability1.3 Why Should I Use Raku?2. Running Rakudo Raku2.1 Installers2.2 Docker2.3 Building from Source2.4 Testing your Rakudo Star Installation3. Formatting a Sudoku Puzzle3.1 Making the Sudoku Playable3.2 Shortcuts, Constants, and more Shortcuts3.3 IO and other Tragedies3.4 Get Creative!4. Datetime Conversion for the Command Line4.1 Libraries To The Rescue4.2 DateTime Formatting4.3 Looking the Other Way4.4 Dealing With Time4.5 Tighten Your Seat Belt4.6 MAIN magic4.7 Automatic Tests4.8 Summary5. Testing say()5.1 Summary6. Silent Cron, a Cron Wrapper6.1 Running Commands Asynchronously6.2 Implementing Timeouts6.3 More on Promises6.4 Possible Extensions6.5 Refactoring and Automated TestsRefactoringMocking and TestingImproving Reliability and TimingInstalling a Module6.6 Summary7. Stateful Silent Cron7.1 Persistent Storage7.2 Developing the Storage Backend7.3 Using the Storage Backend7.4 Room for Expansion7.5 Summary8. Review of the Raku Basics8.1 Variables and Scoping8.2 Subroutines8.3 Classes and Objects8.4 Concurrency8.5 Outlook9. Parsing INI files using Regexes and Grammars9.1 Regex BasicsCharacter ClassesQuantifiersAlternatives9.2 Parsing the INI primitives9.3 Putting Things Together9.4 Backtracking9.5 Grammars9.6 Extracting Data from the Match9.7 Generating Good Error MessagesFailure is NormalDetecting Harmful FailureProviding ContextShortcuts for Parsing Matching Pairs9.8 Write Your Own Grammars9.9 Summary10. A File and Directory Usage Graph10.1 Reading File Sizes10.2 Generating a Tree Map10.3 Flame Graphs10.4 Functional Refactorings10.5 More Language Support for Functional Programming10.6 More Improvements10.7 Explore!10.8 Summary11. A Unicode Search Tool11.1 Code Points, Grapheme Clusters and Bytes11.2 Numbers11.3 Other Unicode Properties11.4 Collation11.5 Summary12. Plotting Using Inline::Python and Matplotlib13. What's Next?
Practical Blockchains and Cryptocurrencies
Create cryptocurrency and blockchain applications by examining the key algorithms and concepts pertaining to blockchains, transaction processing, mining, distributed consensus, and anonymous currencies. In this book, you’ll develop a fully functional cryptocurrency from scratch in the Python language. PRACTICAL BLOCKCHAINS AND CRYPTOCURRENCIES is a reference for development of blockchain applications and provides you with rigorous information on cryptography and the theory underlying blockchains.This book consists of small chapters that focus on particular topics. You’ll start with a short history of money. Next, you will survey the bitcoin and altcoin ecosystem before delving into cryptographic hash functions, symmetric encryption, public key cryptography, and digital signatures. All the mathematics required to develop blockchain applications is covered. The emphasis is on providing a lucid and rigorous exposition on the nature and working of these constructs.The next major segment of the book discusses the key concepts and algorithms required to develop blockchain and cryptocurrency applications. There are expositions on blockchain construction, Merkle trees, peer-to-peer networks, cryptocurrency addresses, transactions, and mining. You’ll take a deep dive into the formation of consensus in distributed systems.In this book you’ll develop a fully functional cryptocurrency called Helium from scratch in Python. The language requirements are modest since it is presumed that most readers will not be acquainted with Python. The entire source code and unit test code is included in this book.PRACTICAL BLOCKCHAINS AND CRYPTOCURRENCIES interleaves theory and Helium program code chapters in order to demonstrate the practical application of theory in working Helium program code.WHAT YOU WILL LEARN* Gain the mathematical foundations as well as the concepts and algorithms of blockchains and cryptocurrencies* Implement a cryptocurrency from scratch in Python* Master the design of distributed blockchain applications WHO THIS BOOK IS FORAnyone interested in creating cryptocurrency and blockchain applicationsKARAN SINGH GAREWAL is an attorney at law in Canada. He has over 20 years of software development experience in C, C++, Go, JavaScript, Node, Ruby/Rails, Python/Django, Vue, PostgresSQL, MySQL, and Cassandra. His current interests are in financial engineering and real-time algorithmic trading systems. He is developing a neural network cryptocurrency trading platform on a C++, Go, Cassandra, and Vue stack.CHAPTER 1: THE HISTORY OF MONEY AND ALTERNATE CURRENCIESChapter Goal: Explain the historical evolution of money and alternate currencies prior to bitcoinSub-Topics1. Characteristics of money2. Gold and silver backed currencies3. Gold standard and fiat currencies4. Alternate currencies prior to bitcoin (Liberty coin, etc.)5. Bitcoin6. The Darknet7. Future evolution of cryptocurrenciesCHAPTER 2: BITCOIN AND ALTCOINSChapter Goal: Discussion of bitcoin and altcoins in circulation and their properties and their raison d’etre.Sub-Topics1. Introduction2. Bitcoin3. Ethereum4. Monero5. Ripple6. Stellar, Tron, and other cryptocurrenciesCHAPTER 3: CRYPTOGRAPHIC HASH FUNCTIONSChapter Goal: Explain cryptographic hash functions, their characteristics, and why they are important in blockchain and cryptocurrency application development.Sub-Topics1. Introduction2. Cryptographic hash functions3. The collision free property of cryptographic hash functions4. Proving the tamper free property5. The irreversible property6. The unique range property7. Hash pointers and data structures8. Proving authenticity with crytpographic hashes9. The SHA-256 cryptographic hash10. Common cryptographic hash functionsCHAPTER 4: SYMMETRIC ENCRYPTIONChapter Goal: Explain what symmetric encryption is and it’s deficiency in secure key distributionSub-Topics:1. Introduction2. How symmetric encryption works3. The key distribution problem4. Common symmetric encryption algorithmsCHAPTER 5: PUBLIC KEY CRYPTOGRAPHYChapter Goal: Explain what public key cryptography is and how it worksSub-Topics:1. Introduction2. Algorithms to generate public private key pairs3. RSA and elliptic curve cryptography4. Using public–private key pairs for encryption and decryption5. Identity formation and proof with public keys6. Generating globally unique IDsCHAPTER 6: DIGITAL SIGNATURESChapter Goal: Show how the digital signature algorithm is implemented and how it can be used to prove authorship and authenticity of documentsSub-Topics:1. Introduction2. Creating digital signatures3. Proving authorship and authenticity of documentsCHAPTER 7: BLOCKCHAIN CONSTRUCTIONChapter Goal: Discuss properties of a blockchain and how to create a blockchainSub-Topics:1. Introduction2. Properties of blockchain3. How to create a blockchain4. The bitcoin blockchain5. Scalability issues in blockchain6. Blockchain databases7. The genesis block8. Creating a simple cryptocurrencyCHAPTER 8: THE MERKLE TREE ALGORITHMChapter Goal: A discussion of the Merkle tree algorithm along with source code implementationsSub-Topics:1. Introduction2. Implementation of the Merkle tree algorithmCHAPTER 9: TOPOLOGY OF CRYPTOCURRENCY NETWORKSChapter Goal: What is a peer-to-peer network and the use of such P2P networks in blockchain applications to broadcast and verify transactions.Sub-Topics:1. Introduction2. Peer-to-peer networks3. Node identity and supernodes4. The bitcoin blockchain5. Block and transaction propagationCHAPTER 10: CRYPTOCURRENCY PARAMETERS AND CONFIGURATIONChapter Goal: Enumerate some common configuration parameters that are used when creating a cryptocurrency and their implications.Sub-Topics:1. Introduction2. Common cryptocurrency parametersCHAPTER 11: CRYPTOCURRENCY ADDRESSESChapter Goal: Creating and using cryptocurrency addressesSub-Topics:1. Introduction2. How to make a cryptocurrency address3. How bitcoin uses addresses4. Key generation algorithms5. Hierarchical deterministic key generationCHAPTER 12: CRYPTOCURRENCY TRANSACTIONSChapter Goal: How transactions are implemented and broadcast in a cryptocurrency network.Sub-Topics:1. Introduction2. Transaction mechanics3. Canonical transaction structures4. Broadcasting transactions5. Transaction validation6. How bitcoin implements transactions7. Locking and unlocking transactions8. Transaction feesCHAPTER 13: CRYPTOCURRENCY STORAGEChapter Goal: Discuss methods for storing cryptocurrenciesSub-Topics:1. Introduction2. Cold storage and hot storage3. Wallets and local storage4. Storage on the blockchain5. Online wallets6. ExchangesCHAPTER 14: MININGChapter Goal: Explain how blocks are mined in a cryptocurrency networkSub-Topics:1. Introduction2. How mining works3. Incentives for block formation4. Bitcoin mining5. Chainstate database6. Proof of work and the difficulty number7. Energy consumption8. ASIC resistant mining9. Mining attacks10. Proof of stake and virtual mining11. Hash power computationsCHAPTER 15: THE BITCOIN DISTRIBUTED CONSENSUS ALGORITHMChapter Goal: Discussion of the distributed consensus algorithm in bitcoinSub-Topics:1. Introduction2. Consensus formation in bitcoin3. Blockchain forks4. Double spend resolution in the bitcoin networkCHAPTER 16: ALTERNATE DISTRIBUTED CONSENSUS ALGORITHMSChapter Goal: Discussion of distributed consensus algorithm that is not based on bitcoin’s proof of work algorithmSub-Topics:1. Introduction2. Proof of stake distributed consensus3. Delegated proof of stake4. Proof of weight algorithms5. The Byzantine Generals problem6. Byzantine Fault tolerance7. Federated Byzantine agreement algorithm8. Proof of weight, DAGs, and other algorithmsCHAPTER 17: WORKING AT SCALEChapter Goal: How to build blockchain and cryptocurrency applications that scaleSub-Topics:1. Introduction2. Scalability in the bitcoin network3. Subchains4. The lightening network5. Sharded networks6. Other solutionsCHAPTER 18: ANONYMOUS CRYPTOCURRENCY NETWORKSChapter Goal: Discussion of anonymity in cryptocurrency networksSub-Topics:1. Introduction2. Why bitcoin is not an anonymous currency3. Some simple precautions for bitcoin transactions4. Mixers5. Implementing anonymity for a cryptocurrency6. Using TorCHAPTER 19: DESIGNING A CRYPTOCURRENCYChapter Goal: Architecture and logical design principles in cryptocurrency creationSub-Topics:1. Introduction2. Network architectures3. Blockchain specification and implementation4. Database implementation5. Transaction specification6. Selecting a distributed consensus algorithm7. The mining algorithm8. The money supply9. The velocity of money10. Creating the genesis block11. Founder’s reserve12. Language selection13. Bon voyageAPPENDIX: INSTALLING AND USING A BITCOIN NODEChapter Goal: Install a full Bitcoin node on a Linux machine
Reinforcement Learning
In uralten Spielen wie Schach oder Go können sich die brillantesten Spieler verbessern, indem sie die von einer Maschine produzierten Strategien studieren. Robotische Systeme üben ihre Bewegungen selbst. In Arcade Games erreichen lernfähige Agenten innerhalb weniger Stunden übermenschliches Niveau. Wie funktionieren diese spektakulären Algorithmen des bestärkenden Lernens? Mit gut verständlichen Erklärungen und übersichtlichen Beispielen in Java und Greenfoot können Sie sich die Prinzipien des bestärkenden Lernens aneignen und in eigenen intelligenten Agenten anwenden. Greenfoot (M.Kölling, King’s College London) und das Hamster-Modell (D.Bohles, Universität Oldenburg) sind einfache aber auch mächtige didaktische Werkzeuge, die entwickelt wurden, um Grundkonzepte der Programmierung zu vermitteln. Wir werden Figuren wie den Java-Hamster zu lernfähigen Agenten machen, die eigenständig ihre Umgebung erkunden.Nach seinem Studium der Informatik und Philosophie mit Schwerpunkt künstliche Intelligenz und maschinelles Lernen an der Humboldt-Universität in Berlin und einigen Jahren als Projektingenieur ist Uwe Lorenz derzeit als Gymnasiallehrer für Informatik und Mathematik tätig. Seit seinem Erstkontakt mit Computern Ende der 80er Jahre hat ihn das Thema Künstliche Intelligenz nicht mehr losgelassen.Bestärkendes Lernen als Teilgebiet des Maschinellen Lernens.-Grundbegriffe des Bestärkenden Lernens.-Optimale Entscheidungen in einem bekannten Umweltsystem.-Dynamische Programmierung.- rekursive Tiefensuche.-Entscheiden und Lernen in einem unbekannten Umweltsystem.-Q- und Sarsa Learning, Eignungspfade, Dyna-Q.-Policy Gradient und Actor Critic.- Monte Carlo-Evaluationen und Monte Carlo-Baumsuche (MCTS).-Künstliche neuronalen Netze als Schätzer für Zustandsbewertungen und Handlungspreferenzen.-Werden digitale Agenten bald intelligenter als Menschen sein?.-Leitbilder in der K.I..
Machine Learning für Softwareentwickler
* Eine Einführung in das maschinelle Lernen für Entwickler * Alle wesentlichen Ideen, Werkzeuge und Konzepte des supervised Learning, von neuronalen Netzen und des Deep Learning werden präsentiert * Der gesamte Programmcode ist in Python geschrieben
Das ultimative DAX-Handbuch
Die DAX-Referenz von den DAX-Koryphäen* Meistern Sie die Formelsprache von Power Pivot, Power BI und Microsoft Analysis Services.* Mit vielen praxisnahen Beispielen für den praktischen Einsatz* inkl. kostenlosem Zusatzmaterial wie einer Beispieldatenbank und Power BI-Modellen für alle BeispieleDie bekannten DAX-Experten Marco Russo und Alberto Ferrari führen Sie mit diesem Leitfaden tief in die Formelsprache DAX (Data Analysis Expressions) ein und helfen Ihnen dabei, alles von einfachen Tabellenfunktionen bis zu komplexer Code- und Modelloptimierung zu beherrschen. Erfahren Sie genau, was unter der Haube passiert, wenn Sie einen DAX-Ausdruck ausführen, und nutzen Sie dieses Wissen, um schnelle, robuste Codes zu schreiben.Diese Ausgabe konzentriert sich auf Beispiele, die Sie mit der kostenlosen Power BI Desktop-Version erstellen und ausführen können, und hilft Ihnen, die leistungsstarke Syntax von Variablen (VAR) in Power BI, Excel oder Analysis Services optimal zu nutzen.Marco Russo und Alberto Ferrari sind die Gründer von sqlbi.com und veröffentlichen dort regelmäßig Artikel über Microsoft Power Pivot, Power BI, DAX und SQL Server Analysis Services. Beide Autoren beraten Unternehmen zu BI und sprechen häufig auf bedeutenden internationalen Konferenzen wie Microsoft Ignite, PASS Summit und SQLBits.