Programmierung
Machine Learning für Zeitreihen
Einstieg in Regressions-, ARIMA- und Deep Learning-Verfahren mit Python.Daten über Vorgänge werden in der verarbeitenden Industrie, der Logistik oder im Finanzsektor im Sekundentakt aufgezeichnet: der Verlauf eines Aktienkurses, die Verkaufszahlen eines Produkts, die Sensordaten einer Turbine. Solche Daten informieren nicht nur über isolierte Zustände; sie sind wie Filme, die den Verlauf eines Vorgangs mit einer Serie einzelner Bilder nachzeichnen. Intelligente Algorithmen können die Muster dieser Verläufe analysieren, sie anlernen und über das Beobachtungsfenster hinaus fortschreiben: Zustände in der Zukunft werden prognostizierbar.Das Buch bietet eine leicht verständliche Einführung in die Konzepte und die Praxis der Zeitreihenanalyse. Es zeigt, wie bewährte und neuere Lernalgorithmen arbeiten und wie sie sich mit Python anlernen und produktiv einsetzen lassen.An einer Vielzahl von Anwendungsbeispielen werden die Vorbereitung der Daten, der Anlern- und Schätzprozess Schritt für Schritt erklärt.Aus dem Inhalt:- Zeitreihendaten mit pandas aufbereiten, fehlende Daten imputieren, mit Datumsangaben arbeiten- Grundprinzipien maschinellen Lernens: Konzepte und Umsetzung mit Python und Scikit-Learn- Feature-Preprocessing: Standardisierung, Dimensionsreduktion, Verarbeitung kategorialer Daten- ARIMA-Modelle zur Analyse univariater Zeitreihen: Vorbereitung, Anlernen und Prognose mit Python und Statsmodels- Komplexe Zeitreihen mit Deep-Learning-Verfahren analysieren: Rekurrente und konvolutionale Netze verstehen und mit Python und TensorFlow 2 aufbauen und anlernen- Mit Zeifenstern arbeitenVorkenntnisse in Machine-Learning-Verfahren sind nicht notwendig. Grundlegende Statistik- und Python-Kenntnisse sollten vorhanden sein.Der komplette Code im Buch sowie die Beispieldateien sind über ein GitHub-Repository verfügbar.
Android-Apps entwickeln mit Java (9. Auflg.)
Aktuell zu Android Studio 4 - ihr Einstieg in die Android-Programmierung in 9. Auflage 2020.Ihr Einstieg in die App-Entwicklung mit Android Studio. Hier lernen Sie auf besonders einfache und unterhaltsame Weise, wie Sie mit Java für Android-Geräte entwickeln – z. B. ein eigenes Spiel mit allem Drum und Dran. Für Ihre App setzen Sie Animationen, Sounds, Bewegungssensoren und die Kamera ein und erstellen schicke Layouts, Online-Bestenlisten und angesagte Features für die Smartwatch. Alles ganz aktuell zu Android Studio 4. Grundkenntnisse in der Programmierung sollten Sie mitbringen, Ihr Java-Wissen frischen Sie in einem Crashkurs ganz schnell auf – dann kann nichts mehr schief gehen auf Ihrem Weg zur ersten Android-App.Leseprobe (PDF-Link)
Introduction to Programming with C++ for Engineers
A complete reference for engineers to learn the fundamentals of C and C++ programming Introduction to Programming with C++ for Engineers is an original presentation teaching the fundamentals of both C and C++ to engineers and engineering students. With a focus on providing a quick but manageable learning curve for programming novices, this book provides comprehensive lessons in object-oriented programming in C and C++. Professor Cyganek, a highly regarded expert in his field, walks users through the basics of C and C++ programming simultaneously, showing with real world examples how to complete tasks in both languages. He also guides users through the installation process of the C and C++ programming environments in both Linux and Windows. Introduction to Programming with C++ for Engineers teaches novices how to program by: * Granting access to a complementary website that contains example code and useful links to resources that further improve the reader's coding ability * Minimizing text descriptions, opting instead for figures, tables, diagrams, and other explanatory material * Covering C++20 * Including test and exam questions for the reader's review at the end of each chapter Engineering students, students of other sciences who rely on computer programming, and professionals in various fields will find this book invaluable when first learning to program in C and C++. A complete textbook and reference for engineers to learn the fundamentals of computer programming with modern C++ Introduction to Programming with C++ for Engineers is an original presentation teaching the fundamentals of computer programming and modern C++ to engineers and engineering students. Professor Cyganek, a highly regarded expert in his field, walks users through basics of data structures and algorithms with the help of a core subset of C++ and the Standard Library, progressing to the object-oriented domain and advanced C++ features, computer arithmetic, memory management and essentials of parallel programming, showing with real world examples how to complete tasks. He also guides users through the software development process, good programming practices, not shunning from explaining low-level features and the programming tools. Being a textbook, with the summarizing tables and diagrams the book becomes a highly useful reference for C++ programmers at all levels. Introduction to Programming with C++ for Engineers teaches how to program by: * Guiding users from simple techniques with modern C++ and the Standard Library, to more advanced object-oriented design methods and language features * Providing meaningful examples that facilitate understanding of the programming techniques and the C++ language constructions * Fostering good programming practices which create better professional programmers * Minimizing text descriptions, opting instead for comprehensive figures, tables, diagrams, and other explanatory material * Granting access to a complementary website that contains example code and useful links to resources that further improve the reader’s coding ability * Including test and exam question for the reader’s review at the end of each chapter Engineering students, students of other sciences who rely on computer programming, and professionals in various fields will find this book invaluable when learning to program with C++. Prof. Boguslaw Cyganek, Department of Electronics, AGH, University of Science and Technology, Krakow, Poland. Boguslaw Cyganek obtained his Ph.D. degree cum laude in 2001 with a thesis on correlation of stereo images, and D.Sc. degree in 2011 with a thesis on methods and algorithms of object recognition in digital images. During recent years, Dr. Cyganek has been cooperating with many scientific centers in development of computer vision systems. He has also gained several years of practical experience working as a Software Development Manager and a Senior Software Engineer both in the USA and Poland. He is an author or a co-author of over ninety conference and journal papers and four books including "An Introduction to 3D Computer Vision Techniques and Algorithms", as well as "Object Detection and Recognition in Digital Images: Theory and Practice", published by Wiley. Dr. Cyganek is a member of the IEEE, SPIE, IAPR and SIAM. Preface xi Acknowledgments xiii Abbreviations xv About the Companion Website xvii 1 Introduction 1 1.1 Structure of the Book 5 1.2 Format Conventions 8 1.3 About the Code and Projects 9 2 Introduction to Programming 13 2.1 Hardware Model 13 2.2 Software Development Ecosystem 16 2.3 Software Development Steps 18 2.4 Representing and Running Algorithms 20 2.4.1 Representing Algorithms 21 2.4.2 Using Online Compilers 22 2.4.3 Structure of a C++ Program 24 2.4.4 Code Analysis 24 2.4.5 Building a Linux Executable 26 2.5 Example Project – Compound Interest Calculator 29 2.5.1 Compound Interest Analysis 29 2.5.2 Implementation of the Interest Calculator 30 2.5.3 Building and Running the Software 33 2.6 Example Project – Counting Occurrences of Characters in Text 34 2.6.1 Problem Analysis and Implementation 34 2.6.2 Running the C++ Code with the Online Compiler 35 2.6.3 Histogram Code, Explained 36 2.7 Summary 39 Questions and Exercises 39 3 C++ Basics 43 3.1 Constants and Variables – Built-In Data Types, Their Range, and Initialization 43 3.2 Example Project – Collecting Student Grades 53 3.3 Our Friend the Debugger 56 3.4 The Basic Data Structure – std::vector 59 3.5 Example Project – Implementing a Matrix as a Vector of Vectors 64 3.6 Special Vector to Store Text – std::string 67 3.7 Using the auto Keyword and decltype for Automatic Type Deduction 72 3.8 Common Standard Algorithms 75 3.9 Structures: Collecting Objects of Various Types 79 3.10 Fixed-Size Arrays 83 3.10.1 Multidimensional Fixed-Size Arrays 85 3.11 References 87 3.12 Pointers 90 3.12.1 Object Access with Pointers 90 3.13 Statements 95 3.13.1 Blocks of Statements and Access to Variables – The Role of Braces 95 3.13.2 C++ Statements 97 3.13.2.1 Conditional Statements 97 3.13.2.2 Loop Statements 103 3.13.2.3 Auxiliary Statements – continue and break 108 3.13.2.4 The goto Statement 110 3.13.2.5 Structural Exception Handling – The try-catch Statement 110 3.14 Functions 112 3.14.1 Anatomy of a Function in C++ 112 3.14.2 Passing Arguments to and from a Function 117 3.14.2.1 Argument Passing by Copy (Value Semantics) 118 3.14.2.2 Indirect Argument Passing by Reference 119 3.14.2.3 Passing by Pointer 121 3.14.3 Function Call Mechanism and Inline Functions 123 3.14.4 Recursive Functions and the Call Stack 125 3.14.5 Function Overloading – Resolving Visibility with Namespaces 126 3.14.6 Lambda Functions 128 3.14.7 More on Lambda Functions 132 3.14.8 Function Pointers 138 3.14.9 Functions in an Object-Oriented Framework 140 3.15 Example Project – Wrapping Objects in a Structure with a Constructor 142 3.15.1 EMatrix in an Object-Oriented Environment 145 3.15.2 Basic Operations with EMatrix 145 3.15.3 Input and Output Operations on EMatrix 147 3.15.4 Basic Mathematical Operations on EMatrix 148 3.15.5 Organizing the Project Files and Running the Application 150 3.15.6 Extending Matrix Initialization with a Simple Random Number Generator 153 3.16 Example Project – Representing Quadratic Equations 154 3.16.1 Definition of a Class to Represent Quadratic Polynomials 155 3.16.2 TQuadEq Member Implementation 162 3.16.3 TQuadEq in Action 165 3.17 Example Project – Tuples and Structured Bindings for Converting Roman Numerals 167 3.17.1 More on std::tuple and the Structured Binding 170 3.17.2 How to Write a Software Unit Test 173 3.17.3 Automating Unit Tests – Using the Standard Random Number Library 174 3.18 Example Project – Building a Currency Calculator Component 176 3.18.1 Currency Exchange Problem Analysis 177 3.18.2 CurrencyCalc Software Design 179 3.18.3 TCurrency Class Representing Currency Records 181 3.18.3.1 C++ Input/Output Manipulators 183 3.18.4 TCurrencyExchanger Class for Exchanging Currency 186 3.18.5 Putting It All Together – The Complete Currency Exchange Program 190 3.19 Operators 196 3.19.1 Summary of the C++ Operators 199 3.19.2 Further Notes on Operators 222 3.20 Summary 223 Questions and Exercises 224 4 Delving into Object-Oriented Programming 227 4.1 Basic Rules and Philosophy of Object-Oriented Design and Programming 227 4.2 Anatomy of a Class 231 4.2.1 Naming Conventions and Self-Documenting Code 233 4.3 Rules for Accessing Class Members 233 4.4 Example Project – TComplex Class for Operator Overloading 235 4.4.1 Definition of the TComplex Class 236 4.4.2 Definition of the TComplex Class Members 241 4.4.3 Test Functions for the TComplex Class 243 4.5 More on References 246 4.5.1 Right and Forward References 246 4.5.2 References vs. Pointers 251 4.5.3 Pitfalls with References 252 4.6 Example Project – Mastering Class Members with the TheCube Class 253 4.6.1 Automatic vs. Explicit Definition of the Constructors 254 4.6.2 TheCube Object Layout and Semantics 264 4.6.3 Shallow vs. Deep Copy Semantics 265 4.6.4 Move Constructor and Move Assignment Semantics 266 4.6.5 Implementation of the TheCube Streaming Operators 267 4.6.6 Validation of TheCube 269 4.7 Example Project – Moving EMatrix to the Class 272 4.7.1 Definition of the EMatrix Class 272 4.7.2 Implementation of the Class Streaming Operators 274 4.7.3 Implementation of the Arithmetic Operators 278 4.7.4 Testing Matrix Operations 279 4.8 Introduction to Templates and Generic Programming 281 4.8.1 Generalizing a Class with Templates 282 4.8.2 Template Specializations 286 4.8.3 Template Functions and Type Checking 287 4.8.4 Example Project – Designing Template Classes with TStack 289 4.8.4.1 Design and Implementation of the TStackFor Class 290 4.8.4.2 Testing TStack 293 4.8.5 Template Member Functions 294 4.9 Class Relations – “Know,” “Has-A,” and “Is-A” 297 4.10 Example Project – Extending Functionality Through Class Inheritance with TComplexQuadEq 304 4.11 Virtual Functions and Polymorphism 310 4.12 More on the Virtual Mechanism 316 4.13 The Curiously Recurring Template Pattern and Static Polymorphism 318 4.14 Mixin Classes 322 4.15 Example Project – The TLongNumberFor Class for Efficient Storage of Numbers of Any Length 323 4.15.1 Binary-Coded Decimal Representation 325 4.15.2 Endianness 326 4.15.3 Definition of the TLongNumberFor Class 326 4.15.3.1 Type-Converting Operations 329 4.15.3.2 TLongNumberFor Test Function 333 4.15.4 Designing Classes for PESEL IDs 335 4.15.4.1 Aggregating PESEL 336 4.15.4.2 Inherited PESEL 337 4.15.4.3 LongNumber Project Organization 338 4.15.5 Extending the Functionality of TLongNumberFor with the Proxy Pattern 340 4.15.5.1 Definition of the Proxy Class 341 4.15.5.2 Testing the Functionality of the TLongNumberFor Class with the Proxy Pattern 343 4.16 Strong Types 345 4.17 Summary 346 Questions and Exercises 346 5 Memory Management 349 5.1 Types of Data Storage 349 5.2 Dynamic Memory Allocation – How to Avoid Memory Leaks 349 5.2.1 Introduction to Smart Pointers and Resource Management 358 5.2.1.1 RAII and Stack Unwinding 359 5.3 Smart Pointers – An Overview with Examples 360 5.3.1 More on std::unique_ptr 360 5.3.1.1 Context for Using std::unique_ptr 360 5.3.1.2 Factory Method Design Pattern 374 5.3.1.3 Custom deletes for unique_ptr 376 5.3.1.4 Constructions to Avoid When Using unique_ptr 378 5.3.2 More on shared_ptr and weak_ptr 378 5.4 Summary 381 Questions and Exercises 381 6 Advanced Object-Oriented Programming 383 6.1 Functional Objects 383 6.2 Example Project – Extending the Currency Search in XML Files, and Using State Machine and Regular Expressions with the regex Library 389 6.2.1 Pattern Matching with the Regular Expression Library 390 6.2.2 State Machine Pattern 392 6.2.3 Implementing the Extended Class 393 6.2.4 Project Extension – Loading Currency Information from the Internet 399 6.2.5 Launching the Extended Version of CurrencyCalc 405 6.2.6 Building a Static Library and a Terminal Window Application 409 6.2.7 C++ Filesystem 410 6.2.8 User Interface 419 6.2.8.1 Definition of the CC_GUI Class 420 6.2.8.2 Definitions of Members of the CC_GUI Class and the Callback Mechanism 423 6.2.8.3 Launching the GUI-Based Application 430 6.3 System Clocks and Time Measurements 431 6.4 Time Measurement for Function Execution 435 6.5 Range Class 437 6.5.1 Functional Programming and the Ranges Library 442 6.6 Example Project – Parsing Expressions 443 6.6.1 Defining Language Expressions with Formal Grammar Rules 444 6.6.2 Design of the Expression-Processing Framework 446 6.6.3 The First Expression Interpreter 447 6.6.4 Building the Syntax Tree with the Composite Design Pattern 451 6.6.4.1 The Composite Design Pattern to Define the Nodes of a Tree 452 6.6.4.2 Implementation of the TNode Hierarchy and Cooperation with Visitors 453 6.6.4.3 Implementation of the ValueLeafNode Class 455 6.6.4.4 Implementation of the BinOperator Class 457 6.6.4.5 Implementation of the PlusOperator Class 458 6.6.4.6 Deep Copying Node Objects – The Prototyping Mechanism 459 6.6.5 Interpreter to Build a Syntax Tree 460 6.6.6 Stack for Smart Pointers 466 6.6.7 Traversing Trees with the Visitor Design Pattern 469 6.6.7.1 The Expression-Evaluating Visitor 472 6.6.7.2 The Expression-Printing Visitor 474 6.6.8 Testing the Interpreters 476 6.6.9 Representing Expressions on a Stack in Reverse Polish Notation 479 6.6.9.1 Reverse Polish Notation 479 6.6.9.2 Algorithm for Evaluating an RPN Expression 480 6.7 Summary 485 Questions and Exercises 485 7 Computer Arithmetic 489 7.1 Integer Value Representation 489 7.1.1 Base Conversion Algorithm 491 7.1.2 Hexadecimal and Octal Representations 492 7.1.3 Binary Addition 493 7.1.4 Negative Values and Subtraction 494 7.1.5 Arithmetic Control Flags 496 7.1.6 Representing Fractions 498 7.2 Binary Shift Operations 501 7.3 Example Project – Software Model for Fixed-Point Representations 503 7.3.1 Fixed-Point Numbers and Their Arithmetic 503 7.3.2 Definition of the FxFor Class 504 7.3.3 Selected Methods of the FxFor Class 510 7.3.4 Applications of FxFor 516 7.4 Floating-Point Representations 519 7.4.1 Number Representation in Floating-Point Format 520 7.4.2 Distribution of Floating-Point Numbers and the Computational Consequences 524 7.4.3 Real-Value Approximation Error with Floating-Point Representations 527 7.4.4 The IEEE 754 Standard for Floating-Point Arithmetic 530 7.4.5 The Standard FP Operation Model 537 7.4.6 Computations That Are Conscious of Numerical Errors 537 7.4.7 Example Project – Evaluating the Summation Algorithms 539 7.4.8 Example Project – The Newton Method of Finding the Roots of a Function 544 7.4.8.1 Function to Compute Square Roots Based on Newton’s Iteration 548 7.5 Summary 550 Questions and Exercises 551 8 Basics of Parallel Programming 553 8.1 Basic Concepts of Parallel Computations 553 8.2 Adding Parallelism to the Standard Algorithms 556 8.3 Launching Asynchronous Tasks 559 8.4 Parallelization with the OpenMP Library 561 8.4.1 Launching a Team of Threads and Providing Exclusive Access Protection 562 8.4.2 Loop Parallelization and Reduction Operations 564 8.4.3 Massive Data Parallelization 567 8.5 Summary 575 Questions and Exercises 575 Appendix 577 A.1 Preprocessor Directives 577 A.2 Short Introduction to C 582 A.2.1 Built‐in Arrays 583 A.2.1.1 Multidimensional Fixed-Size Arrays 585 A.2.2 Passing Arrays to Functions – The Main Function 586 A.2.3 C Structures 590 A.2.4 C Functions and Input/Output 591 A.2.5 Unions 592 A.2.6 Memory and String Operations 593 A.2.7 Binding C and C++ Code 599 A.3 Linking and Binary Organization of C/C++ Objects 599 A.4 Graphical User and Web Interfaces for C++ Projects 601 A.5 Converting Bin, Oct, Dec, and Hex Values with FixBinCalc 603 A.6 Programming Toolchain 604 A.6.1 Project-Generating Tool (CMake) 604 A.6.2 Source Version Control and Repositories 609 A.6.3 Profiler 610 A.7 Software Testing 612 A.8 Summary 616 Questions and Exercises 616 Bibliography 619 Index 623
Spiele programmieren mit Unity für Kids (2. Auflg.)
Mit Spaß 3D-Spiele selbst entwickeln.Unity ist eine sehr beliebte Spiele-Engine, mit der du eigene 3D-Spiele entwickeln kannst. Der erfahrene Kids-Autor Hans-Georg Schumann zeigt dir, wie du mit Unity und der Programmiersprache C# schnell zu beeindruckenden Ergebnissen kommst. Schritt für Schritt lernst du, wie du Figuren durch die Welt wandern und auch gegen gefährliche Gegner kämpfen lässt. Du erstellst Landschaften mit Bäumen und Seen, gestaltest und animierst eigene Charaktere, und lernst ganz nebenbei das Programmieren in C#. Das Unity-Partikelsystem erzeugt tolle Effekte mit Licht und Schatten, die dem Spiel das nötige Reality-Gefühl geben. Und alles, was du zum Programmieren deiner Spiele brauchst, findest du auch zum Download.Aus dem Inhalt: Unity starten und ein erstes kleines Kollisionsspiel erstellenIn die Script-Programmierung mit C# einsteigenEinen Charakter entwerfen und ihm Eigenschaften gebenEin Jump & Run-Spiel entwickelnDas Prinzip von 3D verstehen und die Spielfläche mit Bäumen und Wasser gestaltenGanze Bauwerke entstehen lassenDie Figur klettern, schwimmen und sogar tauchen lehrenEine Fantasie-Kreatur entwerfen und durch Animation lebendig werden lassenStrahlen, Partikel und Sound einbindenKünstliche Intelligenz nutzenEnergiekontrolle und andere Features aufrüstenInstallationshilfe und Fehlerbehebung Inhaltsverzeichnis & Leseprobe (PDF-Link)Kostenlose Downloads zum Buch (Zip-Link)
Microservices mit Go
Microservices haben sich als eigenständige, aber zusammenhängende Dienste längst durchgesetzt und bieten eine flexible Alternative zu großen monolithischen Softwarearchitekturen. Mit dieser praxisorientierten Einführung steigen Sie direkt in die professionelle Programmierung von Microservices ein. Neben allen notwendigen Grundlagen des Architekturstils lernen Sie ganz nebenbei die beliebte Programmiersprache Go, wie Sie Microservices damit umsetzen und wie Sie Ihre Dienste gewinnbringend einsetzen. Aus dem Inhalt: Grundlagen von Go: Installation, Entwicklungsumgebungen, ToolsSprachgrundlagen: Variablen und Funktionen, Go Statements, Collections, PointerThird-Party-Libraries einbinden und eigene Module und Libraries entwickelnAlle Grundlagen über MicroservicesMicroservices mit Go umsetzenConcurreny: Nebenläufigkeit mit GoQualitätssicherung: Unit Test Framework und BenchmarkIdiomatic Go und Effective GoGo-Services in der Cloud betreiben Materialien zum Buch ... 9 Geleitwort des Fachgutachters ... 11 1. Einführung ... 13 1.1 ... Was sind Microservices? ... 13 1.2 ... Go -- Einführung und Geschichte ... 26 1.3 ... Warum eignet sich Go so gut für Microservices? ... 34 2. Die Grundlagen von Go ... 45 2.1 ... Installation ... 46 2.2 ... Sprachgrundlagen von Golang ... 89 2.3 ... Module und Libraries ... 135 3. Microservices ... 149 3.1 ... Grundlagen ... 152 3.2 ... Microservices mit Go ... 176 3.3 ... Go-Services im Microservice-Umfeld ... 223 3.4 ... Datenbankanbindung ... 256 3.5 ... Die Nebenläufigkeit mit Go -- Concurrency ... 296 4. Die Qualitätssicherung ... 309 4.1 ... Das Unit-Test Framework ... 310 4.2 ... Benchmarks für Go erstellen ... 318 4.3 ... Microservices testen und optimieren ... 320 5. Best Practices -- idiomatisches und effektives Go ... 331 5.1 ... Context-Package einsetzen ... 332 5.2 ... Error-Handling ... 340 5.3 ... Projekte sinnvoll organisieren ... 345 5.4 ... Code-Schnipsel und Tipps und Tricks ... 357 6. Go-Service an die Cloud anbinden ... 367 6.1 ... Deployment mit Docker und Kubernetes ... 368 6.2 ... Das Go Cloud Development Kit ... 383 6.3 ... Google Cloud Development ... 390 6.4 ... Amazon Web Services Deployment ... 397 6.5 ... Microsoft-Azure-Anbindung ... 402 Index ... 407
Android-Apps entwickeln mit Java
Ihr Einstieg in die App-Entwicklung mit Android Studio! Hier lernen Sie auf unterhaltsame Weise, wie Sie mit Java für Android entwickeln – z. B. ein eigenes Spiel mit allem Drum und Dran. Sie setzen Animationen, Sounds, Bewegungssensoren und die Kamera ein und erstellen schicke Layouts, Online-Bestenlisten und angesagte Features für die Smartwatch. Grundkenntnisse in der Programmierung werden vorausgesetzt – dann kann nichts mehr schief gehen auf dem Weg zur ersten Android-App! Aus dem Inhalt: StartvorbereitungenJava-Einführung direkt mit AndroidAndroid-Studio installierenSchritt für Schritt zur ersten AppEin Spiel entwickelnWas soll das Spiel machen? – Aufbau der Game EngineSound und Animation hinzufügenSpieler vernetzen: Highscores und BestenlistenAugmented Reality: mehr Spaß und Spannung durch die KameraNoch mehr Techniken!Arbeiten mit GeokoordinatenHintergrundservices nutzenEin neues Layout für Ihre AppSmartwatch anbindenApps veröffentlichen in Google Play und anderen Markets Vorwort ... 13 Materialien zum Buch ... 14 1. Einleitung ... 15 1.1 ... Für wen ist dieses Buch? ... 15 1.2 ... Unendliche Möglichkeiten ... 20 1.3 ... Was ist so toll an Android? ... 26 2. Ist Java nicht auch eine Insel? ... 39 2.1 ... Warum Java? ... 39 2.2 ... Grundlagen ... 42 2.3 ... Pakete ... 45 2.4 ... Klassen implementieren ... 48 2.5 ... Daten verwalten ... 60 2.6 ... Vererbung ... 63 3. Vorbereitungen ... 69 3.1 ... Was brauche ich, um zu beginnen? ... 69 3.2 ... Schritt 1: Android Studio installieren ... 71 3.3 ... Schritt 2: Das Android SDK ... 72 3.4 ... Ein neues App-Projekt anlegen ... 75 3.5 ... Android Studio mit dem Handy verbinden ... 78 3.6 ... Fehlersuche ... 80 4. Die erste App ... 89 4.1 ... Sag »Hallo«, Android! ... 89 4.2 ... Bestandteile einer Android-App ... 98 4.3 ... Benutzeroberflächen bauen ... 111 4.4 ... Buttons mit Funktion ... 122 4.5 ... Eine App installieren ... 126 5. Ein Spiel entwickeln ... 131 5.1 ... Wie viele Stechmücken kann man in einer Minute fangen? ... 131 5.2 ... Grafiken einbinden ... 138 5.3 ... Die Game Engine ... 142 5.4 ... Der erste Mückenfang ... 176 6. Sound und Animation ... 183 6.1 ... Sounds hinzufügen ... 184 6.2 ... Sounds abspielen ... 187 6.3 ... Einfache Animationen ... 191 6.4 ... Fliegende Mücken ... 203 7. Internetzugriff ... 217 7.1 ... Highscores speichern ... 217 7.2 ... Bestenliste im Internet ... 227 7.3 ... Listen mit Adaptern ... 239 8. Kamera und Augmented Reality ... 249 8.1 ... Die Kamera verwenden ... 249 8.2 ... Bilddaten verwenden ... 261 9. Sensoren und der Rest der Welt ... 271 9.1 ... Himmels- und sonstige Richtungen ... 271 9.2 ... Wo fliegen sie denn? ... 279 9.3 ... Beschleunigung und Erschütterungen ... 294 9.4 ... Hintergrund-Services ... 302 9.5 ... Arbeiten mit Geokoordinaten ... 309 10. Smartwatch und Android Wear ... 321 10.1 ... Welt am Handgelenk ... 321 10.2 ... Phone ruft Uhr ... 323 10.3 ... Ein Wear-Projekt ... 327 10.4 ... Uhr ruft Phone ... 330 10.5 ... Wear 2.x ... 335 10.6 ... Fazit ... 339 11. Tipps und Tricks ... 341 11.1 ... Views mit Stil ... 341 11.2 ... Dialoge ... 351 11.3 ... Layout-Gefummel ... 360 11.4 ... Teilen und Empfangen ... 371 11.5 ... Daten speichern leicht gemacht ... 381 11.6 ... Öffentliche Webservices abfragen ... 388 11.7 ... Activities aus Fragmenten ... 398 12. Apps veröffentlichen ... 405 12.1 ... Vorarbeiten ... 405 12.2 ... Hausaufgaben ... 411 12.3 ... Alternative Markets ... 424 Index ... 433
Einstieg in Data Science mit R
Datenanalyse ist überall angekommen – seien auch Sie dabei! Quereinsteiger wie Historiker oder Germanisten, die mit quantitativen Methoden beginnen möchten, sind bei diesem Buch richtig, ob für die Forschung oder im Unternehmen. Sie bekommen alles an die Hand, was Sie zum Loslegen brauchen. Lassen Sie Excel-Tabellen hinter sich und lernen Sie, wie Sie statistische Analysen mit R programmieren. Auch die mathematischen Grundlagen lernen Sie kennen, von den Mittelwerten bis zur linearen Regression. Nach der Lektüre sind Sie in der Lage, ein eigenes Projekt mit ausgewählten statistischen Methoden durchzuführen und Ihre Ergebnisse zu visualisieren. Aus dem Inhalt: InstallationProgrammieren für QuereinsteigerDaten verschiedener Formate ladenDaten bereinigenMit fehlenden Werten umgehenWachstumsberechnungenMittelwerteLineare RegressionR StudioEinstieg in die Programmiersprache R Materialien zum Buch ... 11 1. Über dieses Buch ... 13 1.1 ... Für wen ist dieses Buch? Für Sie? ... 13 1.2 ... Was sind die Ziele, was können Sie hier lernen? ... 13 1.3 ... Was Sie nicht lernen werden ... 15 1.4 ... Wie Sie mit diesem Buch arbeiten ... 17 2. Einführung ... 19 2.1 ... Statistik und Data Science im Vergleich ... 21 2.2 ... Was ist R, und warum sollten Sie das überhaupt lernen? ... 23 3. R Base und RStudio: Installation und erste Schritte ... 25 3.1 ... R Base ... 25 3.2 ... RStudio ... 29 3.3 ... Wie sieht die Oberfläche aus, und was bedeuten die einzelnen Bereiche? ... 31 3.4 ... Die R-Konsole ... 33 3.5 ... Mein erstes Skript ... 35 3.6 ... Hilfe! ... 42 4. Die Programmiersprache R ... 51 4.1 ... Objekte ... 51 4.2 ... Funktionen ... 52 4.3 ... Pakete (Packages) ... 53 4.4 ... Ein paar Vokabeln ... 61 4.5 ... Kommentare ... 68 4.6 ... Groß- und Kleinschreibung und andere Syntaxregeln ... 68 4.7 ... Computer sind dumm ... 71 5. Grundlagen der statistischen Datenanalyse ... 73 5.1 ... Fragestellung und Studiendesign ... 73 5.2 ... Von Daten und Datensätzen ... 74 5.3 ... Berechnung des Durchschnittswertes (Mittelwert, arithmetisches Mittel) ... 84 5.4 ... Wachstumsberechnung (Veränderungsberechnung) ... 84 5.5 ... Trend und lineare Regression ... 86 5.6 ... Beispieldatensatz »Zigarettenverbrauch« ... 88 6. Daten einlesen und für die Analyse vorbereiten ... 93 6.1 ... Daten aus Excel einlesen ... 93 6.2 ... Daten im .csv-Format einlesen ... 98 6.3 ... Umgang mit Datumsangaben ... 102 6.4 ... Daten vorbereiten ... 109 6.5 ... Not available! - Der Umgang mit fehlenden Werten ... 122 7. Daten analysieren mit einfacher Statistik ... 129 7.1 ... Beispiel 1: Zigarettenkonsum ... 129 7.2 ... Beispiel 2: 100 Jahre Wohlstandsentwicklungen in Indien ... 144 7.3 ... Visualisierung ... 166 8. Umfassendes Praxisbeispiel ... 187 8.1 ... Fragestellung: Was will ich wissen? ... 188 8.2 ... Datenbeschaffung ... 189 8.3 ... Daten laden und Überblick verschaffen ... 191 8.4 ... Daten vorbereiten und bereinigen ... 195 8.5 ... Verarbeitung der Daten im Dreiklang ... 196 8.6 ... Kommunikation ... 219 8.7 ... Dokumentation ... 219 8.8 ... Bonus: Folgeanalyse in der Zeitreihe: Krankheitstage ... 219 9. Abschluss ... 233 A. Datenmaterial ... 235 A.1 ... Zigaretten 1 ... 235 A.2 ... Zensus Länder ... 236 A.3 ... Luftqualität ... 237 A.4 ... Zigaretten 2 ... 243 A.5 ... Indien 1990-2000 ... 244 A.6 ... Personaldaten ... 245 A.7 ... Personaldaten - Erweitert ... 252 Index ... 261
Anwendungsentwicklung auf der SAP Cloud Platform
Ob Erweiterungen für SAP-Cloud-Lösungen oder eigenständige Anwendungen auf der SAP Cloud Platform (SAP BTP) – dieses Buch macht Ihnen die Entwicklung leicht! Klaus Kopecz zeigt Ihnen, wie Sie mit dem SAP Cloud Application Programming Model (CAPM) im Handumdrehen Ihre erste eigene Cloud-Anwendung erstellen. Von der Anlage des Daten- und Servicemodells bis zur produktiven Anwendung werden Sie durch alle erforderlichen Schritte geführt. Aus dem Inhalt: Was ist das SAP Cloud Application Programming Model (CAP)?Entwicklung in Visual Studio CodeDaten- und Servicemodellierung mit CDSEreignisbehandlerroutinen mit Node.jsAnbindung von SAP-Fiori-OberflächenGlobalisierungAuthentifizierung und AutorisierungApplication Programming Interfaces (APIs)Deployment auf der SAP Cloud PlatformZugriff auf SAP HANA und andere Services der SAP Cloud Platform Einleitung ... 17 TEIL I Einführung ... 25 1. Einführung in das SAP Cloud Application Programming Model ... 27 1.1 ... Die SAP Cloud Platform ... 28 1.2 ... Was ist das SAP Cloud Application Programming Model? ... 31 1.3 ... Nächste Schritte ... 44 2. Erste Schritte zur eigenen Anwendung ... 45 2.1 ... Aufbau einer lokalen Entwicklungsumgebung ... 46 2.2 ... CDS-Editor ... 60 2.3 ... »Hallo CAP«-Service ... 62 2.4 ... CDS Command Line Interface ... 72 2.5 ... Was sollten Sie aus diesem Kapitel mitnehmen? ... 74 TEIL II Anwendungsentwicklung ... 77 3. Start des Entwicklungsprojekts ... 79 3.1 ... Modell eines Produktkatalogs ... 79 3.2 ... Entwicklungsprojekt anlegen ... 82 3.3 ... Domänenmodell anlegen ... 86 3.4 ... Die Serviceschicht ... 89 3.5 ... Datenabfragen ... 92 3.6 ... Testen mit einem HTTP-Client ... 94 3.7 ... Debuggen einer Service-Implementierung ... 103 3.8 ... Was sollten Sie aus diesem Kapitel mitnehmen? ... 108 4. Core Data Services für CAP im Detail ... 111 4.1 ... CDS als Familie von Modellierungssprachen ... 112 4.2 ... Entitäten und Views ... 116 4.3 ... Assoziationen und Kompositionen ... 119 4.4 ... Typen in CDS ... 122 4.5 ... Weitere Eigenschaften von Elementen ... 126 4.6 ... Die CDS Query Language ... 126 4.7 ... Namensräume ... 131 4.8 ... Referenzen auf Modelle ... 132 4.9 ... Annotationen ... 135 4.10 ... Services ... 143 4.11 ... Aspekte ... 148 4.12 ... Lokalisierung ... 151 4.13 ... Lokalisierte Daten ... 156 5. Weiterentwicklung zur produktiven Anwendung ... 159 5.1 ... Wiederverwendung von Typen und Aspekten ... 160 5.2 ... Implementierung der Rolle des Katalognutzers ... 169 5.3 ... Konfiguration ... 174 5.4 ... Authentifizierung und Autorisierung ... 185 5.5 ... Entwurf eines UIs mit SAP Fiori Elements ... 194 5.6 ... Was sollten Sie aus diesem Kapitel mitnehmen? ... 205 6. Das CDS API für Node.js ... 209 6.1 ... CAP-Laufzeit = Services + Events ... 210 6.2 ... Exponieren von Services ... 212 6.3 ... Behandeln von Ereignissen ... 214 6.4 ... Konnektivität zu Services ... 218 6.5 ... Konsumieren von Services ... 220 6.6 ... Das Request-Objekt ... 223 6.7 ... Konstruktion von CQN-Objekten ... 226 6.8 ... Modellverarbeitung ... 228 TEIL III Deployment auf die SAP Cloud Platform ... 231 7. Deployment-Umgebung auf der SAP Cloud Platform anlegen ... 233 7.1 ... Anlegen eines Trial-Accounts ... 235 7.2 ... Subaccounts mit Cloud-Foundry-Umgebung ... 238 7.3 ... Einführung in die Arbeit mit Cloud Foundry ... 241 7.4 ... Deployment einer Cloud-Foundry-Applikation ... 248 7.5 ... Was sollten Sie aus diesem Kapitel mitnehmen? ... 261 8. SAP-Anwendungsarchitektur in der Cloud-Foundry-Umgebung ... 263 8.1 ... Geschäftsanwendung als Summe spezialisierter Services ... 264 8.2 ... Authorization and Trust Management ... 268 8.3 ... Application Router ... 271 8.4 ... Webserver für das SAP-Fiori-UI ... 279 8.5 ... Was haben Sie in diesem Kapitel erreicht? ... 287 9. Anbindung an SAP HANA ... 289 9.1 ... SAP-HANA-Datenbankinstanz anlegen ... 291 9.2 ... Anbindung von SAP HANA an die lokale Entwicklungsumgebung ... 294 9.3 ... SAP HANA Deployment Infrastructure ... 304 10. Hybride Entwicklung ... 311 10.1 ... Die Technik der hybriden Entwicklung ... 313 10.2 ... Anbindung des lokalen CAP-Servers an SAP HANA ... 317 10.3 ... Authorization and Trust Management Service konfigurieren und anbinden ... 318 10.4 ... Was Sie in diesem Kapitel erreicht haben ... 333 11. Deployment der Geschäftsanwendung ... 335 11.1 ... Der CAP-Build-Prozess ... 336 11.2 ... Deployment mittels Cloud-Foundry-Manifest ... 341 11.3 ... Deployment als Multitarget Application ... 349 11.4 ... Was Sie in diesem Kapitel erreicht haben ... 366 TEIL IV Integration mit SAP-Produkten und -Services ... 367 12. Das SAP Business Application Studio ... 369 12.1 ... Vor der Nutzung ... 371 12.2 ... CAP im SAP Business Application Studio ... 377 12.3 ... Was Sie aus diesem Kapitel mitnehmen sollten ... 381 13. Integration mit SAP-Lösungen ... 383 13.1 ... SAP Cloud Platform Connectivity ... 384 13.2 ... SAP Cloud Platform Enterprise Messaging ... 386 13.3 ... Externe Services an eine CAP-Anwendung anbinden ... 388 13.4 ... Ereignisse senden und verarbeiten mit CAP ... 397 13.5 ... Was sollten Sie aus diesem Kapitel mitnehmen? ... 401 14. Problembehandlung ... 403 14.1 ... Installieren von npm-Paketen schlägt fehl ... 403 14.2 ... »cds compile« erzeugt nicht verarbeitbare Dateien ... 405 14.3 ... Debugging ... 405 14.4 ... Senden von HTTP-Requests ... 406 14.5 ... Arbeiten mit SAP HANA ... 406 14.6 ... Aufruf des SAP-Fiori-UI ... 407 15. Zusammenfassung und Ausblick ... 409 Linksammlung ... 413 Der Autor ... 417 Index ... 419
Traefik API Gateway for Microservices
Use Traefik as a load balancer or a reverse proxy for microservices-based architecture. This book covers Traefik integration for microservices architecture concerns such as service discovery, telemetry, and resiliency.The book focuses on building an in-depth understanding of Traefik. It starts with the fundamentals of Traefik, including different load balancing algorithms available, and failure handling for application resiliency. Examples are included for the failure scenarios. TLS support is explained, including scenarios of TLS termination and TLS forwarding. Traefik supports TLS termination using Let's Encrypt. Traefik deployment in prominent microservices ecosystems is discussed, including Docker and Kubernetes.Traefik is a language-neutral component. This book presents examples of its deployment with Java-based microservices. The examples in the book show Traefik integration with Jaeger/Zipkin, Prometheus, Grafana, and FluentD. Also covered is Traefik for Python-based services and Java-based services deployed in the Kubernetes cluster. By the end of the book, you will confidently know how to deploy and integrate Traefik into prominent microservices ecosystems.WHAT YOU WILL LEARN* Understand Traefik basics and its components* Explore different load balancing scenarios and TLS termination* Configure service discovery, circuit breakers, timeouts, and throttling* Monitor Traefik using Prometheus and request tracingWHO THIS BOOK IS FORDevelopers and project managers who have developed microservices and are deploying them in cloud and on-premise environments with Kubernetes or Docker. The book is not specifically written for any particular programming language. The examples presented use Java or Python.RAHUL SHARMA is a seasoned Java developer with over 15 years of industry experience. In his career he has worked with companies of various sizes from enterprises to startups. During this time he has developed and managed microservices on the cloud (AWS/GCE/DigitalOcean) using open source software. He is an open source enthusiast and shares his experience at local meetups. He co-authored Java Unit Testing with JUnit 5 (Apress) and Getting Started with Istio Service Mesh (Apress).AKSHAY MATHUR is a software engineer with 15 years of experience, mostly in Java and web technologies. Most of his career has been spent building B2B platforms for enterprises, dealing with concerns such as scalability, configurability, multi-tenancy, and cloud engineering. He has hands-on experience implementing and operating microservices and Kubernetes in these ecosystems. Currently, he enjoys public speaking and blogging on new cloud native technologies (especially plain Kubernetes) and effective engineering culture.Chapter 1: Introduction to TraefikCHAPTER GOAL: THE CHAPTER COVERS THE NEED OF A BETTER LOAD BALANCER USING MICROSERVICES COMPONENTS. IT COVERS TRAEFIK COMPONENTS AND BUILD THE BASIC UNDERSTANDING. THE READER WILL SETUP THE ENVIRONMENT WHICH WILL GET STARTED WITH TRAEFIKNO OF PAGES: 20SUB -TOPICS1. Monolith to microservices architecture evolution1. Static configuration challenges2. Observability challenges3. TLS as identity2. Traefik components1. CLI2. DashboardChapter 2: Configure TraefikCHAPTER GOAL: THE CHAPTER WILL COVER ROUTING BASICS. IT WILL DISCUSS THE VARIOUS COMPONENTS.NO OF PAGES: 20SUB - TOPICS1. Entrypoint2. Routers3. ServicesChapter 3: Load Balancing and Failure DetectionCHAPTER GOAL: THE CHAPTER WILL COVER DIFFERENT LOAD BALANCING OPTIONS AVAILABLE IN TRAEFIK.NO OF PAGES : 30SUB - TOPICS:1. Configuring HTTP servicea. Round robinb. Weighted round robinc. Mirroringd. Health checks2. Configuring TCP servicea. Round robinb. Weighted round robinChapter 4: Configure TLSCHAPTER GOAL: TLS IS AN IMPORTANT PART OF LOAD BALANCING. WE WILL COVER HOW TO DO TLS TERMINATION AND TLS PASS THROUGH USING TRAEFIK.NO OF PAGES: 15SUB - TOPICS:1. Configure TLS terminationa. Using lets encrypt2. Configure TLS pass-throughChapter 5: Logs, Request Tracing and Black ListingCHAPTER GOAL: THE CHAPTER WILL COVER OBSERVABILITY FEATURES OF TRAEFIKNO OF PAGES: 30SUB - TOPICS:1. Trafik logging2. Access logs3. Request tracing4. IP blacklisting5. MetricesChapter 6: Traefik as MicroservicesCHAPTER GOAL: THE CHAPTER WILL USE TRAEFIK FOR MICROSERVICES TRAFFIC ROUTING. IT WILL LOAD CONFIGURATION AND DISCOVER SERVICES FROM A BACKEND. IT WILL CONFIGURE CIRCUIT BREAKERS, THROTTLING AND RETRIES.NO OF PAGES: 30SUB - TOPICS:1. Routing using service discovery2. configure circuit breakers and retries3. configure throttling4. Supporting canary routesChapter 7: Traefik as Kubernetes IngressCHAPTER GOAL: THE CHAPTER WILL SETUP TRAEFIK AS KUBERNETES INGRESS. IT WILL SETUP MUTUAL TLS AUTHENTICATION FOR IDENTITY AND ROLE BASED ACCESS CONTROL. IT WILL SEND METRICES AND TRACING TO PROMETHEUS AND JAGGER K8S COMPONENTS.NO OF PAGES: 30SUB - TOPICS:1. Configure Kubernetes ingress2. Enable mTLS authenticationa. configure RBAC3. Configure TLS termination for user requests4. Configure request tracing with Jaeger5. Capture metrices in prometheus
Spiele programmieren mit Unity
* 2D- UND 3D-SPIELE SELBST ENTWICKELN* LANDSCHAFTEN UND GEBÄUDE GESTALTEN SOWIE FIGUREN ANIMIEREN * WICHTIGE C#-PROGRAMMIER-ELEMENTE KENNENLERNEN UND ANWENDENUnity ist eine sehr beliebte Spiele-Engine, mit der du eigene 3D-Spiele entwickeln kannst. Der erfahrene Kids-Autor Hans-Georg Schumann zeigt dir, wie du mit Unity und der Programmiersprache C# schnell zu beeindruckenden Ergebnissen kommst.Schritt für Schritt lernst du, wie du Figuren durch die Welt wandern und auch gegen gefährliche Gegner kämpfen lässt. Du erstellst Landschaften mit Bäumen und Seen, gestaltest und animierst eigene Charaktere, und lernst ganz nebenbei das Programmieren in C#. Das Unity-Partikelsystem erzeugt tolle Effekte mit Licht und Schatten, die dem Spiel das nötige Reality-Gefühl geben. Und alles, was du zum Programmieren deiner Spiele brauchst, findest du auch zum Download.AUS DEM INHALT:* Unity starten und ein erstes kleines Kollisionsspiel erstellen* In die Script-Programmierung mit C# einsteigen* Einen Charakter entwerfen und ihm Eigenschaften geben* Ein Jump & Run-Spiel entwickeln* Das Prinzip von 3D verstehen und die Spielfläche mit Bäumen und Wasser gestalten* Ganze Bauwerke entstehen lassen* Die Figur klettern, schwimmen und sogar tauchen lehren* Eine Fantasie-Kreatur entwerfen und durch Animation lebendig werden lassen* Strahlen, Partikel und Sound einbinden* Künstliche Intelligenz nutzen* Energiekontrolle und andere Features aufrüsten* Installationshilfe und Fehlerbehebung Hans-Georg Schumann war Informatik- und Mathematiklehrer an einer Gesamtschule. Er hat viele erfolgreiche Bücher in der mitp-Buchreihe »... für Kids« geschrieben.
Beginning Java MVC 1.0
Get started with using the new Java MVC 1.0 framework for model, view, and controller development for building modern Java-based web, native, and microservices applications.Beginning Java MVC teaches you the basics, then dives in to models, views, controllers. Next, you learn data binding, events, application types, view engines, and more. You will be given practical examples along the way to reinforce what you have learned. Furthermore, you'll work with annotations, internationalization, security, and deployment.After reading this book, you'll have the know how to build your first full Java-based MVC application.WHAT YOU WILL LEARN* Discover the Java MVC 1.0 APIs and how to use themMaster the Model, View and Controller design pattern * Carry out data binding * Write events* Work with view enginesWHO THIS BOOK IS FORThose new to Java MVC 1.0. Some prior experience with Java programming recommended, especially with JSF or Struts. Peter Späth graduated in 2002 as a physicist and soon afterwards became an IT consultant, mainly for Java-related projects. In 2016 he decided to concentrate on writing books, with his main focus set on software development. With two books about graphics and sound processing and two books for Android and Kotlin programming, his new book addresses beginning Jakarta EE developers willing to develop enterprise-level Java applications with Java EE 8.1. About MVC - Model, View, Controller* History of MVC* MVC in Web Applications* MVC for Java* Finally, Java MVC (JSR-371)* Why MVC* Where is Hello World?2. Prerequisite - Jakarta EE / Java EE* The Nature of Java for Enterprise Applications* Glassfish, a Free Java Server* Using a Preinstalled Java Server* Learning Java for Enterprise Applications* RESTful Services3. Development Workflow* Using Gradle as a Build Framework* Using Eclipse as an IDE* More About Gradle* Developing Using the Console* Installing MVC4. Hello World for Java MVC* Starting The Hello World Project* The Hello World Model* The Hello World View* The Hello World Controller* Using Gradle to Build Hello World* Starting a Jakarta EE Server* Deploying and Testing Hello World5. Start Working With Java MVC* Handling User Input From Forms* Exception Handling in Java MVC* Non-String Post Parameters6. In-Depth Java MVC* The Model* The View: JSPs* The View: Facelets* The Controller7. In-Depth Java MVC - Part II* Injectable Context* Persisating State* Dealing With Page Fragments* Observers* Configuration8. Internationalization* Language Resources* Adding Localized Messages to the Session* Formatting of Data in the View* Using JSF for Formatting* Localized Data Conversion9. Java MVC and EJBs* About Session EJBs* Defining EJBs* Accessing EJBs* EJB Projects* EJBs with Dependencies* Asynchronous EJB Invocation* Timer EJBs10. Connecting Java MVC to a Database* Abstracting Away Database Access With JPA* Setting up a SQL Database* Creating a DataSource* Preparing the Member Registration Application* Adding EclipseLink as ORM* Controllers* Adding Data Access Objects* Updating the View* Adding Entities* Adding Relations11. Logging Java MVC Applications* System Streams* JDK Logging in Glassfish* Using JDK Standard Logging For Other Servers* Adding Log4j Logging to Your Application12. A Java MVC Example Application* The BooKlubb Database* The BooKlubb Eclipse Project* The BooKlubb Infrastructure Classes* Configure BooKlubb Database Access* The BooKlub Internationalization* The BooKlubb Entity Classes* BooKlubb Database Access Via DAOs* The BooKlubb Model* The BooKlubb Controller* The BooKlubb View* Deploying and Testing BooKlubbAppendix* Solutions to The Exercises
JavaScript für Kids
Ganz nebenbei lernst du die Bestandteile von JavaScript kennen, so dass Bedingungen, Konstanten, Schleifen und Funktionen deinen Programmierer-Wortschatz im Nu erweitern. Dort, wo es nötig ist, wird auch HTML zur Unterstützung gerufen. Hans-Georg Schumann verrät dir viele Kniffe, um zum guten Programmierer zu werden: Hättest du zum Beispiel gedacht, dass Vererbung im Programm-Code eine Rolle spielt?
Learn Microservices with Spring Boot
Build Java-based microservices architecture using the Spring Boot framework by evolving an application from a small monolith to an event-driven architecture composed of several services. This revised book follows an incremental approach in teaching the structure of microservices, test-driven development, and common patterns in distributed systems such as service discovery, load balancing, routing, centralized logs, per-environment configuration, and containerization.This updated book now covers what's been added to the latest Spring Boot release, including support for the latest Java SE; more deep-dive knowledge on how Spring Boot works; testing with JUnit 5; changes in the Spring Cloud tools used for service discovery and load balancing; building Docker images using cloud-native buildpacks; a basic centralized logging solution; E2E traceability with Sleuth; centralized configuration with Consul; many dependency upgrades; support for Spring Data Neumann; and more.Author Moises Macero uses a pragmatic approach to explain the benefits of using this type of software architecture, instead of keeping you distracted with theoretical concepts. He covers some of the state-of-the-art techniques in computer programming, from a practical point of view. You’ll focus on what's important, starting with the minimum viable product but keeping the flexibility to evolve it.WHAT YOU WILL LEARN* Build microservices with Spring Boot* Discover architecture patterns for distributed systems such as asynchronous processing, eventual consistency, resilience, scalability, and more* Use event-driven architecture and messaging with RabbitMQ* Master service discovery with Consul and load balancing with Spring Cloud Load Balancer* Route requests with Spring Cloud Gateway* Keep flexible configurations per environment with Spring Cloud Consul* Trace every request from beginning to end with Sleuth and centralized logging* Deploy your microservices anywhere as Docker containers* Start all the components in the microservice architecture with Docker ComposeWHO THIS BOOK IS FORThose with at least some prior experience with Java programming. Some prior exposure to Spring Boot recommended but not required.MOISÉS MACERO GARCÍA has been a software developer since he was a kid, when he started playing around with BASIC on his ZX Spectrum. During his career, Moisés has most often worked in development and architecture for small and large projects, and for his own startups as well. He enjoys making software problems simple, and he likes working in teams where he can not only coach others, but also learn from them.Moisés is the author of the blog thepracticaldeveloper.com, where he shares solutions for technical challenges, guides, and his view on different ways of working in IT companies. He also organizes workshops for companies that need a practical approach to software engineering. In his free time, he enjoys traveling and hiking.* Introduction* Core concepts* A basic Spring Boot app* A minimal frontend with React* The data layer* Starting with Microservices* Event-Driven Architecture* Cloud native patterns* End-to-End tests with Cucumber
Python Testing with Selenium
Implement different testing techniques using Selenium WebDriver with the Python programming language. This quick reference provides simple functional test cases with a syntax-based approach for Selenium WebDriver.You’ll begin by reviewing the basics of Selenium WebDriver and its architectural design history and then move on to the configuration and installation of Selenium library for different web browsers, including the basic commands needed to start test scripts in various browsers. You’ll review action commands of keyboard and mouse for testing user interactions in a web page and see how hyperlinks are tested.The book also examines various web elements using eight different locators provided by Selenium to help you choose the one best suited to your needs. All Python scripts are ready to test real examples, all of which are explained thoroughly with problem statements. You’ll use different Python design patterns to automate test scripts that can be incorporated with Selenium.In the end, Python Testing with Selenium will provide you with the expertise to write your own test cases in future.WHAT YOU’LL LEARN* Install and configure Selenium WebDriver with Python for different web-browsers * Review basic commands of Selenium* Locate web elements * Work with UI based web elements* Assert web elements and handle exceptions* Write test scripts in Page Object Model * Write test cases with Unittest framework WHO THIS BOOK IS FORPython developers/testers who want to test their web applicationsSujay Raghavendra works mainly in the field of data science, machine/deep learning, and artificial intelligence and is currently Executive Director of Raghavendra Training & Consultancy (RTC), a start up company based in Dharwad, Karnataka, India. RTC was co-founded with his brother Sumedh Raghavendra in 2014.He also plans and evaluates new technological projects for research and product development to various companies at RTC. Some of his projects include analyzing pap smear filter for microscopic medical images, thermal heat sensing in hospitals, ocr for handwritten characters, satellite image analysis, network automation for maps, forecasting model, text analytics & predictions, etc.Raghavendra has been a consultant for helping and building research centers for technical universities and colleges and his recent interest includes automating testing cases using machine learning. He has published numerous research articles in international journals and was part of a reviewer committee in various journals and conferences.PYTHON TESTING WITH SELENIUMChapter 1: Introduction to SeleniumChapter 2: Getting StartedChapter 3: Mouse & Keyboard ActionsChapter 4: Web ElementsChapter 5: NavigationChapter 6: Buttons, Checkbox & Select ListChapter 7: Frames and Text BoxesChapter 8: AssertionsChapter 9: Exception HandlingChapter 10: WaitsChapter 11: Page ObjectsChapter 12: Using Test Cases with a Screenshot
Data Parallel C++
Learn how to accelerate C++ programs using data parallelism. This open access book enables C++ programmers to be at the forefront of this exciting and important new development that is helping to push computing to new levels. It is full of practical advice, detailed explanations, and code examples to illustrate key topics.Data parallelism in C++ enables access to parallel resources in a modern heterogeneous system, freeing you from being locked into any particular computing device. Now a single C++ application can use any combination of devices—including GPUs, CPUs, FPGAs and AI ASICs—that are suitable to the problems at hand.This book begins by introducing data parallelism and foundational topics for effective use of the SYCL standard from the Khronos Group and Data Parallel C++ (DPC++), the open source compiler used in this book. Later chapters cover advanced topics including error handling, hardware-specific programming, communication and synchronization, and memory model considerations.Data Parallel C++ provides you with everything needed to use SYCL for programming heterogeneous systems.WHAT YOU'LL LEARN* Accelerate C++ programs using data-parallel programming* Target multiple device types (e.g. CPU, GPU, FPGA)* Use SYCL and SYCL compilers * Connect with computing’s heterogeneous future via Intel’s oneAPI initiativeWHO THIS BOOK IS FORThose new data-parallel programming and computer programmers interested in data-parallel programming using C++.James Reinders is a consultant with more than three decades experience in Parallel Computing, and is an author/co-author/editor of nine technical books related to parallel programming. He has had the great fortune to help make key contributions to two of the world's fastest computers (#1 on Top500 list) as well as many other supercomputers, and software developer tools. James finished 10,001 days (over 27 years) at Intel in mid-2016, and now continues to write, teach, program, and do consulting in areas related to parallel computing (HPC and AI).Chapter 1: IntroductionSets expectation that book describes SYCL 1.2.1 with Intel extensions, and that most extensions are proof points of features that should end up in a future version of SYCL. Overview notion of different accelerator architectures doing well on different workloads, and introduce accelerator archs (but don’t overdo the topic). Overview/level setting on parallelism and relevant terminology, language landscape, SYCL history.• SYCL key feature overview (single source, C++, multi-accelerator) - intended to draw people in and show simple code• Language versions and extensions covered by this book• Mixed-architecture compute and modern architectures• Classes of parallelism• Accelerator programming landscape (OpenMP, CUDA, TBB, OpenACC, AMD HCC, Kokkos, RAJA)• Evolution of SYCLChapter 2: Where code executesDescribes which parts of code run natively on CPU versus on "devices". Differentiate between accelerator devices and the "host device". Show more code to increase reader familiarity with program structure.• Single source programming model• Built-in device selectors• Writing a custom device selectorChapter 3: Data management and ordering the uses of dataOverview the primary ways that data is accessible by both host and device(s): USM and buffers. Introduce command groups as futures for execution, and concept of dependencies between nodes forming a DAG.• Intro• Unified Shared Memory• Buffers• DAG mechanismChapter 4: Expressing parallelismThe multiple alternative constructs for expressing parallelism are hard to comprehend from the spec, and for anyone without major parallel programming experience. This chapter must position the parallelism mechanisms relative to each other, and leave the reader with a conceptual understanding of each, plus an understand of how to use the most common forms.• Parallelism within kernels• Overview of language features for expressions of parallelism• Basic data parallel kernels• Explicit ND-Range kernels• Hierarchical parallelism kernels• Choosing a parallelism/coding styleChapter 5: Error handlingSYCL uses C++-style error handling. This is different/more modern than people using OpenCL and CUDA are used to. This chapter must frame the differences, and provide samples from which readers can manage exceptions easily in their code.• Exception-based• Synchronous and asynchronous exceptions• Strategies for error management• Fallback queue mechanismChapter 6: USM in detailUSM is a key usability feature when porting code, from C++ for example. When mixed with differing hardware capabilities, the USM landscape isn’t trivial to understand. This key chapter must leave the reader with an understanding of USM on different hardware capabilities, what is guaranteed at each level, and how to write code with USM features.• Usability• Device capability levels• Allocating memory• Use of data in kernels• Sharing of data between host and devices• Data ownership and migration• USM as a usability feature• USM as a performance feature• Relation to OpenCL SVMChapter 7: Buffers in detailBuffers will be available on all hardware, and are an important feature for people writing code that doesn’t have pointer-based data structures, particularly when implicit dependence management is desired. This chapter must cover the more complex aspects of buffers in an accessible waym, including when data movement is triggered, sub-buffer dependencies, and advanced host/buffer synchronization (mutexes).• Buffer construction• Access modes (e.g. discard_write) and set_final_data• Device accessors• Host accessors• Sub-buffers for finer grained DAG dependencies• Explicit data motion• Advanced buffer data sharing between device and hostChapter 8: DAG scheduling in detailMust describe the DAG mechanism from a high level, which the spec does not do. Must describe the in-order simplifications, and common gotchas that people hit with the DAG (e.g. read data before buffer destruction and therefore kernel execution).• Queues• Common gotchas with DAGs• Synchronizing with the host program• Manual dependency managementChapter 9: Local memory and work-group barriers• "Local" memory• Managing "local" memory• Work-group barriersChapter 10: Defining kernels• Lambdas• Functors• OpenCL interop objectsChapter 11: Vectors• Vector data types• Swizzles• Mapping to hardwareChapter 12: Device-specific extension mechanism• TBDChapter 13: Programming for GPUs• Use of sub-groups• Device partitioning• Data movement• Images and samplers• TBDChapter 14: Programming for CPUs• Loop vectorization• Use of sub-groups• TBDChapter 15: Programming for FPGAs• Pipes• Memory controls• Loop controlsChapter 16: Address spaces and multi_ptr• Address spaces• The multi_ptr class• Intefacing with external codeChapter 17: Using libraries• Linking to external code• Exchanging data with librariesChapter 18: Working with OpenCL• Interoperability• Program objects• Build options• Using SPIR-V kernelsChapter 19: Memory model and atomics• The memory model• Fences• Buffer atomics• USM atomics
Python 3 for Science and Engineering Applications
If you have mastered the basics of Python and are wanting to explore the language in more depth, this book is for you. By means of concrete application examples used in different applications, you are guided on how Python can be used tackle a wide range of problems. Including general ideas and solutions, the specifics of Python and how these can be practically applied are discussed. The book illustrates many aspects of programming including algorithms, recursion, data structures, and helps develop problem-oriented thinking.Python 3 for Science and Engineering Applications includes:>practical and goal-oriented learning>basic Python techniques> modern Python 3.6+ including comprehensions, decorators andgenerators>complete code available online> more than 40 exercises, solutions documented online>no additional packages or installation required, 100% pure PythonTopics cover:>identifying large prime numbers and computing Pi> writing and understanding recursive functions with memorisation>computing in parallel and utilising all system cores>processing text data and encrypting messages>comprehending backtracking and solving Sudokus>analysing and simulating games of chance to develop optimalwinning strategies>handling genetic code and generating extremely long palindromesFelix Bittmann is a research associate at the Leibniz Institute for Educational Trajectories and a doctoral candidate at the University of Bamberg, Germany. His research interests include social inequality, the role of education in the course of life, quantitative methods, and the philosophy of science. With a focus on statistical analysis and applied research, Python is an integral and multifunctional tool of his daily workflow.
Practical Apache Lucene 8
Gain a thorough knowledge of Lucene's capabilities and use it to develop your own search applications. This book explores the Java-based, high-performance text search engine library used to build search capabilities in your applications.Starting with the basics of Lucene and searching, you will learn about the types of queries used in it and also take a look at scoring models. Applying this basic knowledge, you will develop a hello world app using basic Lucene queries and explore functions like scoring and document level boosting.Along the way you will also uncover the concepts of partial searching and matching in Lucene and then learn how to integrate geographical information (geospatial data) in Lucene using spatial queries and n-dimensional indexing. This will prepare you to build a location-aware search engine with a representative data set that allows location constraints to be specified during a search. You’ll also develop a text classifier using Lucene and Apache Mahout, a popular machine learning framework.After a detailed review of performance bench-marking and common issues associated with it, you’ll learn some of the best practices of tuning the performance of your application. By the end of the book you’ll be able to build your first Lucene patch, where you will not only write your patch, but also test it and ensure it adheres to community coding standards.WHAT YOU’LL LEARN* Master the basics of Apache Lucene* Utilize different query types in Apache Lucene* Explore scoring and document level boosting* Integrate geospatial data into your applicationWHO THIS BOOK IS FORDevelopers wanting to learn the finer details of Apache Lucene by developing a series of projects with it.Atri is a distributed systems engineer with expertise in building and scaling large data oriented systems, and an Apache Lucene/Solr committer. He has worked for Microsoft, where he was responsible for scaling the storage and query engines for Azure CosmosDB. He is also a long time PostgreSQL contributor and an Apache committer and PMC member for HAWQ, MADLib, and Apex.CHAPTER 1: MEETING THE BEAST -- HOIA LUCENE! - 15 PAGESThis chapter will go over basics of Lucene and search, and give details of basic query structures in Lucene along with the different data structures and types in Lucene which can be diverse in application and usage.1. What Is Search, Anyway?2. Meet Lucene3. Types of Structures In Lucene4. Query Types -- Done The Lucene Way5. Lucene Vs Relational DatabasesCHAPTER 2: HELLO WORLD -- THE LUCENE WAY - 10 PAGESThis chapter will try out a few basic Lucene queries on a standard data set. User will index some standard data set and query different types of queries on top of it. The user will explore scoring, document level boosting and queries like TopN hits, uses of Collectors.1. Index Data In Lucene2. Internals of a Lucene Index3. Scoring and Boosting4. Doing your first query5. TopN Hits -- Why Should I Care About the 100th Hit?6. Collectors -- The Life Of Your ApplicationCHAPTER 3: BUILD A PERSONAL DESKTOP FILE SEARCHER - 40 PAGESThis chapter will go over details of building a file searcher using Lucene which will have the capability to search across the entire file system of the user’s computer and provide search results to the user for relevant documents and files given a partial or complete keyword.1. Basics of Document Searching with Lucene2. Partial Searches and Matching3. A Bit About TF/IDF4. Build The Core of Our Searcher5. Building the File System Seek and Search Functionality6. Bringing It All TogetherCHAPTER 4: A BIT ABOUT SPATIAL INDEXING - 20 PAGESBasics of Spatial Indexing and space vectors. The chapter will cover spatial indexing and querying in Lucene and advanced level details of N dimensional indexing and searching.1. Spatial Indexing2. Lucene’s Spatial Indexing Basics3. When To Use Spatial Indexing?4. N Dimensional Indexing5. Lucene Spatial Query TypesCHAPTER 5: DEVELOPING A LOCATION AWARE SEARCH ENGINE - 40 PAGESThis chapter will go over details of building a location aware search engine with representative data set and allowing location constraints to be specified during a search.1. What is Location Aware Searching?2. Representing Data As Spatial Data3. Metadata Searches4. Combining Searches -- Actual Text and Location CombinedCHAPTER 6: CREATE A TEXT CLASSIFIER WITH APACHE MAHOUT AND LUCENE - 30 PAGESThis chapter will go over building a classifier using Apache Mahout, a popular Machine Learning framework and Lucene.1. What is Mahout?2. What is a Text Classifier Engine?3. Building The Model in Mahout4. Building the Parser in Lucene5. Bringing It All TogetherCHAPTER 7: PERFORMANCE TUNING YOUR LUCENE APPLICATIONS - 15 PAGESPerformance is key to any search applications and small changes to the application can cause amplified changes to the performance of the application. We will performance benchmark applications, learn common pitfalls and learn best practices to tune performance in search applications with Lucene.1. Lucene Performance Basics2. Performance Bench-marking3. Lucene Performance Tuning4. Lucene Performance with System Performance ToolsCHAPTER 8: YOUR FIRST LUCENE PATCH - 15 PAGESThis chapter will focus on building your first patch to the heart of the engine itself. We will go through the cycle of writing a patch, testing it, adhering to community code standards, JIRA navigation, community interaction etc.1. Lucene Internals2. Working with Git3. Writing a Patch4. Test Test Test!5. Opening a JIRA for your issue6. Community Interaction
Das neue SAPUI5-Handbuch
Für Einsteiger und SAPUI5-Profis: Programmieren Sie Schritt für Schritt Ihre erste eigene Anwendung, oder starten Sie direkt mit Performanceoptimierung und Fehleranalyse. Dieses Buch beantwortet Ihre Fragen rund um die Anwendungsentwicklung mit SAPUI5. Beginnen Sie z.B. mit der Implementierung einfacher Controls und lernen Sie im Anschluss, wie Smart Controls Ihre Arbeit vereinfachen. Sie möchten lieber gleich wissen, wie Sie Ihre Apps um eigene Controls erweitern? Schlagen Sie es einfach nach! Aus dem Inhalt: BootstrappingLifecycle ManagementOberfächen und Dialoge gestaltenKomponentenorientiertes ProgrammierenAnwendungsdeskriptorSortieren, Gruppieren und FilternEingabevalidierung Eventbasierte KommunikationEntwicklungsinfrastrukturEinführung in die Konzepte von SAP Fiori Einleitung ... 19 Teil I. Einführung ... 27 1. SAPUI5 -- ein Überblick ... 29 1.1 ... Was ist SAPUI5? ... 29 1.2 ... Anwendungsfälle ... 43 2. Grundlegender Aufbau und Ressourcen ... 47 2.1 ... Die Model-View-Controller-Architektur in SAPUI5 ... 47 2.2 ... Aufbau und Struktur einer SAPUI5-Anwendung ... 51 2.3 ... Bibliotheken und Namensräume ... 55 2.4 ... Typen von Views ... 67 2.5 ... Modelle ... 72 2.6 ... Datenbindung ... 81 2.7 ... Entwicklungs- und Laufzeitumgebung ... 89 Teil II. SAPUI5 -- Anwendungsentwicklung ... 99 3. In 7 Schritten zur ersten eigenen Anwendung ... 101 3.1 ... Ablaufumgebung aufsetzen ... 101 3.2 ... Einführung in den Aufbau einer UI5-Anwendung ... 105 3.3 ... Einführung in die Arbeit mit einfachen UI5-Controls ... 115 3.4 ... Verwendung von komplexen UI5-Controls ... 121 3.5 ... Die Programmierschnittstelle von SAPUI5 ... 127 3.6 ... Implementierung von Eventhandlern ... 131 3.7 ... Komponentenorientierte Anwendungsentwicklung ... 137 4. Das Bootstrapping ... 143 4.1 ... Einführung in das Bootstrapping von SAPUI5 ... 143 4.2 ... Komponentenerstellung ... 147 4.3 ... Weitere Konfigurationsmöglichkeiten ... 149 5. Instanziierung und Lebenszyklus ... 153 5.1 ... Einführung in das Lifecycle-Management von SAPUI5 ... 153 5.2 ... Ressourcen verwenden ... 160 6. Benutzeroberflächen und Dialoge gestalten ... 163 6.1 ... Gestaltung von einfachen Benutzeroberflächen ... 163 6.2 ... Gestaltung von komplexen Benutzeroberflächen ... 170 6.3 ... Arbeiten mit Fragmenten ... 178 6.4 ... Dialoge implementieren und verwenden ... 189 7. Arbeiten mit Layouts ... 197 7.1 ... Einführung in die Arbeit mit Layouts ... 197 7.2 ... Standardlayouts zur Anordnung von UI-Controls ... 201 7.3 ... Arbeiten mit Formularlayouts ... 205 7.4 ... Arbeiten mit Fullscreen-Layouts ... 210 8. Responsive und adaptive Benutzeroberflächen ... 217 8.1 ... Responsiv versus adaptiv ... 217 8.2 ... Implementierung responsiver SAPUI5-Anwendungen ... 219 8.3 ... Implementierung adaptiver SAPUI5-Anwendungen ... 233 9. Komponentenorientiertes Programmieren ... 241 9.1 ... Aufbau einer Komponente ... 241 9.2 ... Integration von Komponenten ... 257 10. Anwendungsdeskriptor ... 267 10.1 ... Aufbau des Anwendungsdeskriptors ... 268 10.2 ... Zugriff auf die Konfigurationsdaten zur Laufzeit ... 285 11. Routing und Navigation ... 289 11.1 ... Einführung in die Navigationskonzepte von SAPUI5 ... 289 11.2 ... Navigation am Beispiel einer Master-Detail-Anwendung ... 301 11.3 ... Erweiterte Routingkonzepte ... 315 12. Arbeiten mit Modellen ... 321 12.1 ... JSON-Modell ... 321 12.2 ... Ressourcenmodell ... 325 12.3 ... OData-Modell ... 335 13. Sortieren, gruppieren und filtern ... 351 13.1 ... Sortieren ... 352 13.2 ... Gruppieren ... 362 13.3 ... Filtern ... 371 14. CUDQ mit OData ... 381 14.1 ... Create ... 382 14.2 ... Update ... 397 14.3 ... Delete ... 406 14.4 ... Query ... 408 14.5 ... Funktionsimport ... 414 14.6 ... Das OData-Modell der 4-Version -- ein Ausblick ... 416 15. Eingabevalidierung und eigene Datentypen ... 425 15.1 ... Einführung in die Arbeit mit Datentypen ... 425 15.2 ... Implementierung eigener Datentypen ... 435 Teil III. Weiterführende Themen ... 449 16. Smart Controls ... 451 16.1 ... Einführung in Smart Controls ... 451 16.2 ... Verwendung der »SmartTable« ... 452 16.3 ... »SmartFilterBar« ... 460 16.4 ... »SmartForm« ... 468 17. Implementierung eigener Controls ... 473 17.1 ... Grundlagen der SAPUI5-Control-Entwicklung ... 473 17.2 ... UI-Controls erweitern ... 478 17.3 ... Eigene UI-Controls implementieren ... 483 17.4 ... XML Composite Controls implementieren ... 490 18. Eventbasierte Kommunikation mit dem Event Bus ... 495 18.1 ... Einführung in das eventbasierte Anwendungsdesign ... 495 18.2 ... Der Event Bus in SAPUI5 ... 497 18.3 ... Implementierung einer eventgesteuerten Anwendungskommunikation ... 499 19. Drag and Drop ... 507 19.1 ... Grundlagen der Implementierung von Drag and Drap in SAPUI5 ... 508 19.2 ... Einsatzszenarien von Drag and Drop und ihre Implementierung ... 514 20. Theming ... 527 20.1 ... CSS ... 527 20.2 ... UI Theme Designer ... 530 21. Testen von SAPUI5-Anwendungen ... 547 21.1 ... Grundlagen von Tests in SAPUI5 ... 547 21.2 ... Unit-Tests mit QUnit ... 553 21.3 ... Oberflächentests mit OPA5 ... 563 21.4 ... Daten simulieren mit dem UI5 MockServer ... 577 21.5 ... End-to-End-Tests mit UIVeri5 ... 581 22. Entwicklungsinfrastruktur ... 589 22.1 ... Einführung und Übersicht ... 589 22.2 ... Projektsetup mit dem UI5 Tooling ... 591 22.3 ... Automatisierte Tests für CI ... 600 22.4 ... Versionsverwaltung mit Git ... 606 22.5 ... Aufbau einer Continuous-Deployment-Pipeline ... 617 23. Performanceoptimierung und Fehleranalyse ... 625 23.1 ... Grundlagen der Performanceoptimierung von SAPUI5-Anwendungen ... 626 23.2 ... Der Support Assistant ... 638 23.3 ... Einführung in die Performanceanalyse ... 657 23.4 ... Typische Fehlersituationen in SAPUI5, ihre Ursache und Lösung ... 661 24. SAP Fiori ... 667 24.1 ... Überblick ... 667 24.2 ... Implementierung einer SAPUI5-Anwendung mit der SAP Web IDE ... 677 24.3 ... Fundamental Library Styles ... 699 24.4 ... SAP Fiori Elements ... 705 24.5 ... Integration in das SAP Fiori Launchpad ... 727 Die Autoren ... 739 Index ... 741
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen von Grund auf verstehen* Fundierte Einführung mit klarem didaktischen Aufbau* Mit konkreten Anwendungsbeispielen * Eine reichhaltige Fundgrube für Lehre und SelbststudiumKenntnisse von Algorithmen und Datenstrukturen sind ein Grundbaustein des Studiums der Informatik und verwandter Fachrichtungen. Das Buch behandelt diese Thematik in Verbindung mit der Programmiersprache Java und schlägt so eine Brücke zwischen den klassischen Lehrbüchern zur Theorie von Algorithmen und Datenstrukturen und den praktischen Einführungen in eine konkrete Programmiersprache.Die konkreten Algorithmen und deren Realisierung in Java werdenumfassend dargestellt. Daneben werden die theoretischen Grundlagen vermittelt, die in Programmiersprachen-Kursen oft zu kurz kommen: abstrakte Maschinenmodelle, Berechenbarkeit, Algorithmenparadigmen sowie parallele und verteilte Abläufe. Einen weiteren Schwerpunkt bilden Datenstrukturen wie Listen, Bäume, Graphen und Hashtabellen sowie deren objektorientierteImplementierung mit modernen Methoden der Softwareentwicklung.Die 6. Auflage führt einige neue Algorithmen ein und berücksichtigt die Neuerungen der aktuellen Java-Versionen, u.a. zu Themen wie Parallelisierung.Gunter Saake ist Professor für Datenbanken und Informationssysteme an der Uni Magdeburg und forscht unter anderem auf den Gebieten Datenbankintegration, digitale Bibliotheken, objektorientierte Informationssysteme und Informationsfusion. Er ist Koautor mehrerer Lehrbücher, u.a. zu Datenbankkonzepten und -implementierungstechniken, Datenbanken & Java. Kai-Uwe Sattler ist Professor für Datenbanken und Informationssysteme an der TU Ilmenau. Zu seinen Arbeitsgebieten zählen Datenbankintegration und Anfrageverarbeitung in heterogenen sowie massiv verteilten Datenbanksystemen. Er ist Koautor mehrerer Lehrbücher, u.a. zu Datenbankkonzepten und zu Datenbanken & Java.
Practical System Programming with C
This book teaches system programming with the latest versions of C through a set of practical examples and problems. It covers the development of a handful of programs, implementing efficient coding examples.Practical System Programming with C contains three main parts: getting your hands dirty with multithreaded C programming; practical system programming using concepts such as processes, signals, and inter-process communication; and advanced socket-based programming which consists of developing a network application for reliable communication.You will be introduced to a marvelous ecosystem of system programming with C, from handling basic system utility commands to communicating through socket programming. With the help of socket programming you will be able to build client-server applications in no time.The “secret sauce” of this book is its curated list of topics and solutions, which fit together through a set of different pragmatic examples; each topic is covered from scratch in an easy-to-learn way. On that journey, you’ll focus on practical implementations and an outline of best practices and potential pitfalls. The book also includes a bonus chapter with a list of advanced topics and directions to grow your skills.WHAT YOU WILL LEARN* Program with operating systems using the latest version of C * Work with Linux* Carry out multithreading with C Examine the POSIX standards* Work with files, directories, processes, and signals* Explore IPC and how to work with itWHO THIS BOOK IS FORProgrammers who have an exposure to C programming and want to learn system programming. This book will help them to learn about core concepts of operating systems with the help of C programming..Sri Manikanta Palakollu is a programmer and software developer with experience in C, C++, Java, and Python as well as Linux, POSIX, and other operating system-level programming. He is a tech reviewer for various tech book publishers. Sri also contributes to various open source projects.1. Introduction to Linux Environment• Getting familiar with Linux Kernel• Linux Kernel V/S Other OS Kernels.• File Handling Utilities• Process Utilities• Network Utilities• Backup Utilities.2. Implementation of Multithreading with C• Introduction to Threads• Threads V/S process• Introduction to Multithreading.• Importance of Multithreading.• Support of Multithreading in C• Creation of threads.• Practical Examples of Multithreading.• Use cases of Multithreading.3. Getting Started with System Programming• Understanding the POSIX Standard.• Introduction to API’s• Importance of API’s• Inbuilt API’s in C4. Files and Directories• Basic concepts in files• Files meta i-nodes• System Calls for Files• I/O Operations for Files• File Permissions.• Soft and Hard Links• System call for Directories.5. Processes and Signals• Introduction to process Environment• Environment Variables• Kernel Support for Processes• Process Creation• Concept of the Zombie process• Concept of Orphan Process• System Calls for Process management• Introduction to Signals• System calls for signals• Types of Signals6. Inter process Communication (IPC)• Introduction to IPC• Types of IPC• Creation of Named PIPES• Creation of UN-Named PIPES• Concept of Message Queues• Implementation of Message Queues• Concept of Semaphore• Implementation of Semaphore.• API for Named and unnamed PIPES• API for Message Queues• API for Semaphore.7. Shared Memory• Introduction to Shared Memory.• Kernel Support for Shared Memory.• Implementation of Shared Memory.• API for Shared Memory.8. Socket Programming• Introduction to Sockets• IPC Over Networks• API for Socket Programming• OSI Layer Protocol• TCP/IP Protocol• Client Server Architecture.• System calls for Socket Programming.• Implementation of Single Client Server Architecture.• Implementation of Multiple Client Server Architecture.9. Advanced Topics and Directions.
Practical Python Data Visualization
Quickly start programming with Python 3 for data visualization with this step-by-step, detailed guide. This book’s programming-friendly approach using libraries such as leather, NumPy, Matplotlib, and Pandas will serve as a template for business and scientific visualizations.You’ll begin by installing Python 3, see how to work in Jupyter notebook, and explore Leather, Python’s popular data visualization charting library. You’ll also be introduced to the scientific Python 3 ecosystem and work with the basics of NumPy, an integral part of that ecosystem. Later chapters are focused on various NumPy routines along with getting started with Scientific Data visualization using matplotlib. You’ll review the visualization of 3D data using graphs and networks and finish up by looking at data visualization with Pandas, including the visualization of COVID-19 data sets.The code examples are tested on popular platforms like Ubuntu, Windows, and Raspberry Pi OS. With Practical Python Data Visualization you’ll master the core concepts of data visualization with Pandas and the Jupyter notebook interface.WHAT YOU'LL LEARN* Review practical aspects of Python Data Visualization with programming-friendly abstractions * Install Python 3 and Jupyter on multiple platforms including Windows, Raspberry Pi, and Ubuntu * Visualize COVID-19 data sets with PandasWHO THIS BOOK IS FORData Science enthusiasts and professionals, Business analysts and managers, software engineers, data engineers.Ashwin Pajankar holds a Master of Technology from IIIT Hyderabad, and has over 25 years of programming experience. He started his journey in programming and electronics at the tender age of 7 with BASIC programming language and is now proficient in Assembly programming, C, C++, Java, Shell Scripting, and Python. Other technical experience includes single board computers such as Raspberry Pi and Banana Pro, and Arduino.He is currently a freelance online instructor teaching programming bootcamps to more than 60,000 students from tech companies and colleges. His Youtube channel has an audience of 10000 subscribers and he has published more than 15 books on programming and electronics with many international publications.CHAPTER 1: DATA VISUALIZATION WITH LEATHERChapter Goal: Introduce readers to the data visualization with a simple library leatherNo of pages: 15Sub - Topics:1. Introduction to leather2. Installation to leather3. Various types of graphs with leatherCHAPTER 2: INTRODUCTION TO THE SCIENTIFIC PYTHON ECOSYSTEM AND NUMPYChapter Goal: Explore Scientific Python 3 ecosystem and constituent member libraries. We will also learn basics of the NumPy multidimensional data structure Ndarrays.No of pages: 15Sub - Topics:1. Scientific Python 3 Ecosystem2. Member libraries3. Installation of NumPy4. NumPy basics5. NdarraysCHAPTER 3: NUMPY ROUTINES AND VISUALIZATION WITH MATPLOTLIBChapter goal – Learn to visualize data with Matplotlib. Readers working in the data science and scientific domains will be thrilled to get started with this.No of pages: 15Sub - Topics:1. NumPy Ndarray creation Routines2. Installation of Matplotlib3. Visualization with Matplotlib4. Multiple graphs5. Axis, colors, and markersCHAPTER 4 : VISUALIZING IMAGES AND 3D SHAPESChapter goal – Learn to visualize greyscale and color images. We will explore basic image processing operations. We will also learn to visualize 3D shapes and wireframes.No of pages: 20Sub - Topics:1. Visualize images with Matplotlib2. Basic Operations on images3. 3D visualizationsCHAPTER 5 : VISUALIZE NETWORKS AND GRAPHSChapter goal – Network and Graph Data structures. We will learn to install network library and visualize network.No of pages: 15Sub - Topics:1. Networks and Graphs2. Installation of network library3. Visualize graphsCHAPTER 6 : GETTING STARTED WITH PANDASChapter goal – Learn to work with Pandas Series and Dataframe data structures.No of pages: 15Sub - Topics:1. Pandas library and installation2. Series3. Dataframes4. Reading data from a URLCHAPTER 7: PROCESSING AND VISUALIZING COVID-19 DATAChapter goal – Learn to work with COVID-19 Data. Visualize the number of COVID-19.No of pages: 20Sub - Topics:1. COVID-19 Pandemic2. COVID 19 data sources3. COVID 19 python libraries4. Visualization of dataAPPENDIX:
Beginning R 4
Learn how to use R 4, write and save R scripts, read in and write out data files, use built-in functions, and understand common statistical methods. This in-depth tutorial includes key R 4 features including a new color palette for charts, an enhanced reference counting system (useful for big data), and new data import settings for text (as well as the statistical methods to model text-based, categorical data).Each chapter starts with a list of learning outcomes and concludes with a summary of any R functions introduced in that chapter, along with exercises to test your new knowledge. The text opens with a hands-on installation of R and CRAN packages for both Windows and macOS. The bulk of the book is an introduction to statistical methods (non-proof-based, applied statistics) that relies heavily on R (and R visualizations) to understand, motivate, and conduct statistical tests and modeling.Beginning R 4 shows the use of R in specific cases such as ANOVA analysis, multiple and moderated regression, data visualization, hypothesis testing, and more. It takes a hands-on, example-based approach incorporating best practices with clear explanations of the statistics being done.You will:* Acquire and install R and RStudio* Import and export data from multiple file formats* Analyze data and generate graphics (including confidence intervals)* Interactively conduct hypothesis testing* Code multiple and moderated regression solutionsWHO THIS BOOK IS FORProgrammers and data analysts who are new to R. Some prior experience in programming is recommended.MATT WILEY is a tenured, associate professor of mathematics with awards in both mathematics education and honor student engagement. He earned degrees in pure mathematics, computer science, and business administration through the University of California and Texas A&M systems. He serves as director for Victoria College’s quality enhancement plan and managing partner at Elkhart Group Limited, a statistical consultancy. With programming experience in R, C++, Ruby, Fortran, and JavaScript, he has always found ways to meld his passion for writing with his joy of logical problem solving and data science. From the boardroom to the classroom, Matt enjoys finding dynamic ways to partner with interdisciplinary and diverse teams to make complex ideas and projects understandable and solvable.JOSHUA F. WILEY is a lecturer in the Monash Institute for Cognitive and Clinical Neurosciences and School of Psychological Sciences at Monash University and a senior partner at Elkhart Group Limited, a statistical consultancy. He earned his PhD from the University of California, Los Angeles, and his research focuses on using advanced quantitative methods to understand the complex interplays of psychological, social, and physiological processes in relation to psychological and physical health. In statistics and data science, Joshua focuses on biostatistics and is interested in reproducible research and graphical displays of data and statistical models. Through consulting at Elkhart Group Limited and former work at the UCLA Statistical Consulting Group, he has supported a wide array of clients ranging from graduate students, to experienced researchers, and biotechnology companies. He also develops or co-develops a number of R packages including varian, a package to conduct Bayesian scale-location structural equation models, and MplusAutomation, a popular package that links R to the commercial Mplus software.1: Installing R2: Installing Packages and Using Libraries3: Data Input and Output4: Working with Data5: Data and Samples6: Descriptive Statistics7: Understanding Probability and Distribution8: Correlation and Regression9: Confidence Intervals10: Hypothesis Testing11: Multiple Regression12: Moderated Regression13: Analysts of VarianceBibliography
The Common Lisp Condition System
Discover the functioning and example uses of the Common Lisp condition system. This book supplements already existing material for studying Common Lisp as a language by providing detailed information about the Lisp condition system and its control flow mechanisms; it also describes an example ANSI-conformant implementation of the condition system.In part 1 of The Common Lisp Condition System, the author introduces the condition system using a bottom-up approach, constructing it piece by piece. He uses a storytelling approach to convey the foundation of the condition system, dynamically providing code to alter the behavior of an existing program. Later, in part 2, you’ll implement a full and complete ANSI-conformant condition system while examining and testing each piece of code that you write.Throughout, the author demonstrates how to extend Lisp using Lisp itself by using the condition system as an example. This is done while paying proper attention to the CL restart subsystem, giving it attention on a par with the handler subsystem. After reading and using this book, you'll have learned about the inner functioning of the condition system, how to use it in your own Common Lisp coding and applications, and how to implement it from scratch, should such a need arise.WHAT YOU WILL LEARN* Examine the condition system and see why it is important in Common Lisp* Construct the condition system from scratch using foundational mechanisms provided by Common Lisp* Program the condition system and its control flow mechanisms to achieve practical results* Implement all parts of a condition system: conditions, restarts, handler- and restart-binding macros, signalling mechanisms, assertions, a debugger, and moreWHO THIS BOOK IS FORBeginning and intermediate Lisp programmers, as well as intermediate programmers of other programming languages.MICHAŁ "PHOE" HERDA is a programmer with contributions to multiple parts of the Common Lisp ecosystem: CL implementations, existing and widely-used CL utilities, documentation, and some of the new library ideas that he slowly pushes forwards and works on. The book The Common Lisp Condition System is his first work -- an attempt to create a tutorial on the condition system that was missing, even all the years after which ANSI Common Lisp was standardized.1: Basic Concepts2: Introducing the Condition System3: Implementing the Common Lisp Condition System4: Wrapping UpAppendix A: Implementation of Dynamic Variables in CAppendix B: Additional Utilities for Working with Common Lisp ConditionsAppendix C: Lisp Macros 101Appendix D: Condition System Reference
Technisches Konstruieren mit OpenSCAD
Das Design dreidimensionaler Modelle mit Werkzeugen wie Blender oder 3D Studio Max ist eine Aufgabe, die ingenieurwissenschaftlich begabte Personen nur allzu gern delegieren.OpenSCAD wählt einen erfrischend anderen Zugang. Anstatt ein Objekt als Punktwolke zu betrachten, schreibt der Modellerzeuger in einer an Javascript erinnernden Sprache ein Programm. Dieses beschreibt die zu erzeugende Geometrie als eine Serie von Arbeitsschritten. Dreidimensionale Modelle entstehen so in einem Workflow, der an die Entwicklung klassischer ingenieurwissenschaftliche Güter erinnert. Wegen der Nähe zur manuellen Fertigung mit Werkzeug ist das ein Prozess, der Ingenieuren gut in die Hände spielt.Aber Achtung: trotz der Einfachheit der Syntax ist OpenSCAD kein primitives Modellierungsprogramm. Umfangreiche Scriptingmöglichkeiten sorgen dafür, dass sich die Modelle dynamisch an geänderte Situationen anpassen.Dieses Lehrbuch demonstriert die Möglichkeiten von OpenSCAD anhand praktischer Beispiele. Freuen Sie sich auf Ersatzknöpfe für ein LeCroy-Oszilloskop, Garderobenstangenhalter, einen Halter für Seifenspender und diverse andere Beispiele aus dem realen Leben.Der mit mehr als 15 Dienstjahren Erfahrung ausgestattete Autor entwickelte dieses für Linux und Windows gleichermaßen geeignete Buch explizit für informatikaffine Personen. Wenn Sie mit irgendeiner Programmiersprache Erfahrung haben, ist dieses Buch ihr Weg zum schnellen und unbürokratischen Erzeugen dreidimensionaler Modelle.Tam Hanna programmiert und entwickelt seit mehr als 15 Jahren Microcontroller und Prozessrechnersysteme für verschiedene Anwendungsfälle. Neben seiner Consultingtätigkeit hält er Vorträge auf Kongressen, verfasst Fachartikel für diverse Magazine und agiert als Tutor. Sein viel beachteter Instagram-Kanal liefert Hintergrundinformationen zu Messtechnik und Elektronik.