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)
Beginning MLOps with MLFlow
Integrate MLOps principles into existing or future projects using MLFlow, operationalize your models, and deploy them in AWS SageMaker, Google Cloud, and Microsoft Azure. This book guides you through the process of data analysis, model construction, and training.The authors begin by introducing you to basic data analysis on a credit card data set and teach you how to analyze the features and their relationships to the target variable. You will learn how to build logistic regression models in scikit-learn and PySpark, and you will go through the process of hyperparameter tuning with a validation data set. You will explore three different deployment setups of machine learning models with varying levels of automation to help you better understand MLOps. MLFlow is covered and you will explore how to integrate MLOps into your existing code, allowing you to easily track metrics, parameters, graphs, and models. You will be guided through the process of deploying and querying your models with AWS SageMaker, Google Cloud, and Microsoft Azure. And you will learn how to integrate your MLOps setups using Databricks.WHAT YOU WILL LEARN* Perform basic data analysis and construct models in scikit-learn and PySpark* Train, test, and validate your models (hyperparameter tuning)* Know what MLOps is and what an ideal MLOps setup looks like* Easily integrate MLFlow into your existing or future projects* Deploy your models and perform predictions with them on the cloudWHO THIS BOOK IS FORData scientists and machine learning engineers who want to learn MLOps and know how to operationalize their modelsSRIDHAR ALLA is the co-founder and CTO of Bluewhale, which helps big and small organizations build AI-driven big data solutions and analytics. He is a published author of books and an avid presenter at numerous Strata, Hadoop World, Spark Summit, and other conferences. He also has several patents filed with the US PTO on large-scale computing and distributed systems. He has extensive hands-on experience in several technologies, including Spark, Flink, Hadoop, AWS, Azure, Tensorflow, Cassandra, and others. He spoke on Anomaly Detection Using Deep Learning at Strata SFO in March of 2019 and at Strata London in October of 2019. He was born in Hyderabad, India and now lives in New Jersey, USA with his wife Rosie and daughter Evelyn. When he is not busy writing code, he loves to spend time with his family and also training, coaching, and organizing meetups.SUMAN KALYAN ADARI is an undergraduate student pursuing a BS degree in computer science at the University of Florida. He has been conducting deep learning research in the field of cybersecurity since his freshman year, and has presented at the IEEE Dependable Systems and Networks workshop on Dependable and Secure Machine Learning held in Portland, Oregon, USA in June of 2019. He is passionate about deep learning, and specializes in its practical uses in various fields such as image recognition, anomaly detection, natural language processing, targeted adversarial attacks, and more.Chapter 1: Getting Started: Data Analysis and Feature EngineeringChapter Goal: Establish the premise of the problem we want to solve with machine learning. Analyze several data sets and process them.No of pages - 30 pagesSub - Topics1. Premise4. Data analysis5. Feature engineeringChapter 2: Building a Machine Learning ModelChapter Goal: Build a machine learning model on a data set / several data sets that we processed the data for in chapter 4.No of pages – 40 pagesSub - Topics:1. Building the model2. Training and testing the model3. Validation and optimizingChapter 3: What is MLOps?Chapter Goal: Introduce the reader to MLOps, various stages of automation in MLOps setups, automation with pipeline, and to CI/CD and CD Deployment.Pipelines for: source repo to deployment, prediction services, performance monitoring, etcContinuous Integration (source repo updated with new models), and Continuous Delivery (new models deployed).No of pages – 40 pagesSub -Topics1. What is MLOps?2. MLOps setups3. Automation4. CI/CD – Continuous Integration & Delivery5. CD - DeploymentChapter 4: Introduction to MlFlowChapter Goal: Introduce the reader to MLFlow and how to incorporate MLFlow into our ML training process (PyTorch, Keras, TensorFlow)No of pages – 30 pagesSub - Topics:1. What is MLFlow?2. MLFlow in PyTorch3. MLFlow in Keras4. MLFlow in TensorFlowChapter 5: Deploying in AWS – 40 pagesChapter Goal: Guide the reader through the process of deploying an MLOps setup on AWS SageMaker.-Description: The chapter will walk the reader through AWS SageMaker and help them deploy their MLOps setup (data processing scripts, model train, test, validation scripts) in AWS.Chapter 6: Deploying in Azure – 40 pagesChapter Goal: Guide the reader through the process of deploying an MLOps setup on Microsoft Azure.-Description: The chapter will walk the reader through Microsoft Azure and help them deploy their MLOps setup (data processing scripts, model train, test, validation scripts) in Azure.Chapter 7: Deploying in Google – 40 pagesChapter Goal: Guide the reader through the process of deploying an MLOps setup on Google Cloud.-Description: The chapter will walk the reader through Google Cloud and help them deploy their MLOps setup (data processing scripts, model train, test, validation scripts) in Google Cloud.Appendix A: a2ml – 20 pagesChapter Goal: This appendix chapter is optional and guides users through the process of deploying an MLOps setup using a2ml.-Description: The chapter will walk the reader through a2ml and help them deploy their MLOps setup (data processing scripts, model train, test, validation scripts) through a2ml.
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
Become ITIL® 4 Foundation Certified in 7 Days
Use this guide book in its fully updated second edition to study for the ITIL 4 Foundation certification exam. Know the latest ITIL framework and DevOps concepts.The book will take you through the new ITIL framework and nuances of the DevOps methodology. The book follows the topics included in the foundation certification exam syllabus and includes new sections on ITIL's guiding principles, service value chain, and the four dimensions of service management. Also included are the concepts, processes, and philosophies used in DevOps programs and projects. ITIL and DevOps concepts are explained with relevant examples.By the time you finish this book, you will have a complete understanding of ITIL 4 and will be ready to take the ITIL 4 Foundation certification exam. You will know the DevOps methodology and how ITIL reinforces the philosophy of shared responsibility and collaboration. Over the course of a week, even while working your day job, you will be prepared to take the exam.WHAT YOU WILL LEARN* Know the basics of ITIL as you prepare for the ITIL Foundation certification exam* Understand ITIL through examples* Be aware of ITIL's relevance to DevOps and DevOps conceptsWHO THIS BOOK IS FORProfessionals from the IT services industryABHINAV KRISHNA KAISER works as a senior manager at a top consulting firm. He consults with organizations to assess, define, and implement DevOps, Agile, and ITIL processes. Abhinav is an accredited ITIL trainer and has delivered numerous classroom trainings. He is a leading authority on the topics of DevOps, Agile, and ITIL. He lives in London, United Kingdom. He is an author and his latest book is Reinventing ITIL in the Age of DevOps (Apress).Chapter 1: Introduction to the new ITILChapter Goal: To introduce the new ITIL, provide context and differentiate with the version 3No of pages : 15 pagesSub -Topics1. Why ITIL 4?1. Difference between ITIL 3 and ITIL 42. ITIL 4 Foundation Exam3. Other ITIL 4 ExamsChapter 2: Brief Overview of DevOpsChapter Goal: To introduce the DevOps frameworkNo of pages : 20 pagesSub -Topics1. Introduction to DevOps2. DevOps sections – people, process and technology3. DevOps processesChapter 3: ITIL BasicsChapter Goal: To introduce the key concepts of ITILNo of pages : 20 pagesSub -Topics1. Defining value2. Products vs services3. Concept of consumers and other stakeholders4. service relationships5. Processes and functionsChapter 4: Service Management - Four DimensionsChapter Goal: To discuss the four dimensions in detailNo of pages: 20 pagesSub - Topics1. Organizations and people2. Information and technology3. Partners and suppliers4. Value Streams and processesChapter 5: ITIL Service Value SystemChapter Goal: To introduce service value systemNo of pages : 20 pagesSub - Topics:1. Intro to service value system2. Opportunity and demand3. Service value chain4. Governance5. Continual Improvement (formerly CSI)Chapter 6: ITIL Processes for Managing StakeholdersChapter Goal: Understand the processes for managing customers and other key stakeholdresNo of pages: 15 pagesSub - Topics:1. Relationship management2. Service level management3. Supplier managementChapter 7: ITIL Processes for Defining Operations FrameworkChapter Goal: Understand the processes for defining processes that sets the boundaries and steps for support and operational activitiesNo of pages: 30 pagesSub - Topics:1. Service configuration management2. IT asset management3. Information security management4. Continual improvementChapter 8: ITIL Processes for Managing OperationsChapter Goal: Understand the processes in detail for managing operationsNo of pages: 30 pagesSub - Topics:1. Monitoring and event management2. Incident management3. Problem improvement4. Change controlChapter 9: ITIL Processes for Managing ChangesChapter Goal: Understand the processes for controlling changes to the environment and applicationsNo of pages: 20 pagesSub - Topics:1. Service request management2. Change control3. Release managementChapter 10: ITIL Practice for Managing DeploymentsChapter Goal: Understand the technical management around deploying software into environmentsNo of pages: 15 pagesSub - Topics:1. Deployment managementChapter 11: ITIL Practice for Coordinating between StakeholdersChapter Goal: Understand the service desk and service desk managementNo of pages: 15 pagesSub - Topics:1. Service desk2. Service desk managementChapter 12 : Practices to Manage DeploymentsRelease ManagementTypes of ReleasesEngagement with Service Value ChainDeployment ManagementKey ActivitiesEngagement with Service Value ChainChapter 13 : Practices to Coordinate with StakeholdersService DeskTypes of Service DesksKey ActivitiesEngagement with Service Value ChainService Desk ManagementEngagement with Service Value ChainChapter 14 : Exam Tips and Tricks
Building Versatile Mobile Apps with Python and REST
Develop versatile iOS and Android apps using Python withRESTful web services. Dive into full-stack development with Django, a powerfulPython framework, and React Native, the most in-demand JavaScript library.Begin by building a mobile app using the RESTful APIs andReact Native. Starting from scratch, create a database and serialize the datawith Django REST to serve APIs. Then build the front-end with React and mobileapps for iOS and Android with React Native.By the end of the book, you’ll have developed three appspowered by Django—a desktop React app, an iOS app, and an Android app. Discoverthe whole process of developing apps from inception to distribution of an iOSapp in the Apple store and an Android app in the Google Play store.You will:* Develop using the Model-View-Controller pattern* Facilitate the communications between the back-end andfront-end of web apps with HTTP* Design a robust front-end for an app with React* Create one back-end solution for both iOS and Androiddevices with DjangoART YUDIN is a FinTech enthusiast who has a great passion for coding and teaching. He earned a Master of Science in Banking and Finance from Adelphi University, Garden City, New York. Mr. Yudin previously held asset management positions with international financial institutions such as Merrill Lynch and Allianz Investments. Currently, Art Yudin develops financial services software and leads classes and workshops in Python at Practical Programming in New York and Chicago.CHAPTER 1. STARTING WITH DJANGO- How modern websites work- Python and Virtual environment- Install Django and Django REST- Initial setup- Understanding the MVC pattern in Django- Starting new Django project and creating appsCHAPTER 2. LET’S BUILD OUR WEB API APP- Models- Admin- Views- URLsCHAPTER 3. CREATING RESTFUL API- Serializers- API Views- Browsable APICHAPTER 4. HOW IOS WORKS- Xcode interface- Intro to SwiftCHAPTER 5. DESIGNING OUR FRONT-END IOS APP- Setting up the structure of our App- Designing layoutChapter 6. CONNECTING BACK-END API WITH IOS APP- Creating an API Manager- Displaying data- List View- Detail View- Update ViewCHAPTER 7. ADDITIONAL FEATURES- User authentication- Adding reviews and displaying ratings- Adding places to favoritesChapter 8. LAUNCHING APP- Deploying back-end to a live server- Adding our App to App Store
Getting Started with Containers in Google Cloud Platform
Deploy, manage, and secure containers and containerized applications on Google Cloud Platform (GCP). This book covers each container service in GCP from the ground up and teaches you how to deploy and manage your containers on each service.You will start by setting up and configuring GCP tools and the tenant environment. You then will store and manage Docker container images with GCP Container Registry (ACR). Next, you will deploy containerized applications with GCP Cloud Run and create an automated CI/CD deployment pipeline using Cloud Build. The book covers GCP’s flagship service, Google Kubernetes Service (GKE), and deployment of a Kubernetes cluster using clear steps and considering GCP best practices using the GCP management console and gcloud command-line tool. Also covered is monitoring containers and containerized applications on GCP with Cloud Monitoring, and backup and restore containers and containerized applications on GCP.By the end of the book, you will know how to get started with GCP container services and understand the fundamentals of each service and the supporting services needed to run containers in a production environment. This book also assists you in transferring your skills from AWS and Azure to GCP using the knowledge you have acquired on each platform and leveraging it to gain more skills.WHAT YOU WILL LEARN* Get started with Google Cloud Platform (GCP)* Store Docker images on GCP Container Registry * Deploy Google Kubernetes Engine (GKE) cluster* Secure containerized applications on GCP* Use Cloud Build to deploy containers * Use GCP Batch for batch job processing on KubernetesWHO THIS BOOK IS FORGoogle Cloud administrators, developers, and architects who want to get started and learn more about containers and containerized applications on Google Cloud Platform (GPC)SHIMON IFRAH is an IT professional with 15+ years of experience in the design, management, and deployment of information technology systems and networks. In recent years, he has been specializing in cloud computing and containerized applications on Microsoft Azure, Amazon AWS, and Google Cloud Platform (GCP). He holds more than 20 vendor certificates from Microsoft, AWS, VMware, and Cisco. During his career in the IT industry, he has worked for some of the largest managed services and technology companies in the world, helping them administer systems for the largest enterprises. He is based out of Melbourne, Australia. Chapter 1: Get Started with Google Cloud Platform (GCP)Chapter Goal: Setup and configure GCP tools and tenant environmentNo of pages: 40Sub -Topics1. Set up your Google Cloud Platform (GCP) tenant2. Understanding GCP projects3. Understanding cloud shell4. Secure and manage your GCP account (projects and more)5. GCP Services overviewChapter 2: Store and Manage Docker Container Images with GCP Container Registry (ACR)Chapter Goal: Here we learn how to Store Docker Container images on GCP Container registryNo of pages: 40Sub - Topics1. Setup GCP Container Registry2. Push Docker images to Container Registry3. Pull images from GCP Container Registry4. Manage and secure GCP Container RegistryChapter 3: Deploy Containerized Applications with GCP Cloud RunChapter Goal: This chapter explains how to deploy containers and containerized applications on GCP cloud runNo of pages: 40Sub - Topics:1. Set up GCP cloud run 2. Deploy containers with cloud run3. Use cloud build and git to deploy containers4. Scale containerized applications on cloud run5. Monitor and manage containerized applications on cloud runChapter 4: Deploy Containerized Applications with Google Kubernetes Engine (GKE)Chapter Goal: This chapters explains how to deploy containers and containerized applications with GKENo of pages:Sub - Topics:1. Getting started with GKE2. Setup and configure GKE networking and storage3. Deploy Kubernetes dashboard (Web UI) on GKE4. Manage and secure GKE5. Run Batch jobs on Kubernetes with batch (beta)Chapter 5: Deploy Docker Containers on GCP Compute EngineChapter Goal: This chapter explains how to deploy containers and containerized applications on GCP compute engineNo of pages: 40Sub - Topics:1. Install Docker container host on Ubuntu Linux VM2. Install Docker container host on Windows server 2019 VM3. Deploy containers on GCP compute engine using GCP container-optimized OSChapter 6: Secure your GCP Environment and ContainersChapter Goal: This chanpters explains how to secure and protect containers and containerized applications on GCPNo of pages: 40Sub - Topics:1. Introduction to GCP identify infrastructure2. Setup organization policies3. Roles, service accounts and auditing capabilities4. GCP networking and firewalls configurationChapter 7: Scale Containers and Containerized Applications on GCPChapter Goal: This chapter explains how to scale containers and containerized applications on GCPNo of pages: 40Sub - Topics:1. Scale Google Kubernetes Service (GKE)2. Scale cloud run and cloud build containers3. Scale GCP Container Registry4. Scale compute engine hosts and containersChapter 8: Monitor Containers and Containerized Applications on GCP with Stackdriver MonitoringChapter Goal: Learn how to Monitor Containers and Containerized Applications on GCPNo of pages: 40Sub - Topics:1. Monitor Google Kubernetes Service (GKE)2. Monitor cloud run containers3. Monitor compute engine resources4. GCP cost management and toolsChapter 9: Backup and Restore Containers and Containerized Applications on GCPChapter Goal: This chapter explains how to backup and restore containers and containerized applications on GCPNo of pages: 40Sub - Topics:1. Backup persistent storage disks2. Backup compute engine resources3. Manage cloud storage and file storeChapter 10: Troubleshooting Containers and Containerized Applications on GCPChapter Goal: This chapters explains how to troubleshoot containers and containerized applications issues on GCPNo of pages: 40Sub - Topics:1. Troubleshoot Google Kubernetes Service (GKE)2. Troubleshoot cloud run and cloud build deployments3. Troubleshoot GCP Container Registry5. Troubleshoot compute engine resource
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
Getting Structured Data from the Internet
Utilize web scraping at scale to quickly get unlimited amounts of free data available on the web into a structured format. This book teaches you to use Python scripts to crawl through websites at scale and scrape data from HTML and JavaScript-enabled pages and convert it into structured data formats such as CSV, Excel, JSON, or load it into a SQL database of your choice.This book goes beyond the basics of web scraping and covers advanced topics such as natural language processing (NLP) and text analytics to extract names of people, places, email addresses, contact details, etc., from a page at production scale using distributed big data techniques on an Amazon Web Services (AWS)-based cloud infrastructure. It book covers developing a robust data processing and ingestion pipeline on the Common Crawl corpus, containing petabytes of data publicly available and a web crawl data set available on AWS's registry of open data.GETTING STRUCTURED DATA FROM THE INTERNET also includes a step-by-step tutorial on deploying your own crawlers using a production web scraping framework (such as Scrapy) and dealing with real-world issues (such as breaking Captcha, proxy IP rotation, and more). Code used in the book is provided to help you understand the concepts in practice and write your own web crawler to power your business ideas.WHAT YOU WILL LEARN* Understand web scraping, its applications/uses, and how to avoid web scraping by hitting publicly available rest API endpoints to directly get data* Develop a web scraper and crawler from scratch using lxml and BeautifulSoup library, and learn about scraping from JavaScript-enabled pages using Selenium* Use AWS-based cloud computing with EC2, S3, Athena, SQS, and SNS to analyze, extract, and store useful insights from crawled pages* Use SQL language on PostgreSQL running on Amazon Relational Database Service (RDS) and SQLite using SQLalchemy* Review sci-kit learn, Gensim, and spaCy to perform NLP tasks on scraped web pages such as name entity recognition, topic clustering (Kmeans, Agglomerative Clustering), topic modeling (LDA, NMF, LSI), topic classification (naive Bayes, Gradient Boosting Classifier) and text similarity (cosine distance-based nearest neighbors)* Handle web archival file formats and explore Common Crawl open data on AWS* Illustrate practical applications for web crawl data by building a similar website tool and a technology profiler similar to builtwith.com* Write scripts to create a backlinks database on a web scale similar to Ahrefs.com, Moz.com, Majestic.com, etc., for search engine optimization (SEO), competitor research, and determining website domain authority and ranking* Use web crawl data to build a news sentiment analysis system or alternative financial analysis covering stock market trading signals* Write a production-ready crawler in Python using Scrapy framework and deal with practical workarounds for Captchas, IP rotation, and moreWHO THIS BOOK IS FORPrimary audience: data analysts and scientists with little to no exposure to real-world data processing challenges, secondary: experienced software developers doing web-heavy data processing who need a primer, tertiary: business owners and startup founders who need to know more about implementation to better direct their technical teamJAY M. PATEL is a software developer with over 10 years of experience in data mining, web crawling/scraping, machine learning, and natural language processing (NLP) projects. He is a co-founder and principal data scientist of Specrom Analytics, providing content, email, social marketing, and social listening products and services using web crawling/scraping and advanced text mining.Jay worked at the US Environmental Protection Agency (EPA) for five years where he designed workflows to crawl and extract useful insights from hundreds of thousands of documents that were parts of regulatory filings from companies. He also led one of the first research teams within the agency to use Apache Spark-based workflows for chem and bioinformatics applications such as chemical similarities and quantitative structure activity relationships. He developed recurrent neural networks and more advanced LSTM models in Tensorflow for chemical SMILES generation.Jay graduated with a bachelor's degree in engineering from the Institute of Chemical Technology, University of Mumbai, India and a master of science degree from the University of Georgia, USA. Jay serves as an editor of a publication titled Web Data Extraction and also blogs about personal projects, open source packages, and experiences as a startup founder on his personal site, jaympatel.com.
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.