Zum Hauptinhalt springen Zur Suche springen Zur Hauptnavigation springen

Programmierung

Produkte filtern

Produktbild für Git für Dummies

Git für Dummies

Git hat sich als Quellcodeverwaltung durchgesetzt und ist der De-facto-Standard in der Softwareentwicklung. Alle Unternehmen, die noch nicht auf Git sind, werden die nächsten Jahre wechseln. Und nicht nur die Entwicklung - auch Administration, Sicherheit und Dokumentation finden zunehmend auf Git statt. Git ist damit heute das wichtigste Werkzeug für alle digitalen Produkte - quasi die Werkbank. Wenn Sie wissen wollen, wie Sie Git richtig implementieren und welche Regeln Sie für die Zusammenarbeit aufstellen sollten, dann sind Sie hier richtig. Dieses Buch ist eine Einführung in das effektive Arbeiten mit Git - geeignet sowohl für Berufseinsteiger als auch für erfahrene Entwickler, die zu Git wechseln. Michael Kaufmann unterstützt bei CGI, einem internationalen IT-Dienstleister, seine Kunden bei der Transformation zu agilen Organisationen - sowohl technisch im Bereich DevOps und Cloud als auch kulturell und bei der Einführung agiler Management-Methoden. Er ist gelernter Diplom-Betriebswirt, leidenschaftlicher Softwareentwickler, IT-Autodidakt, Trainer, Sprecher auf internationalen Konferenzen und seit 2015 "Microsoft Most Valuable Professional (MVP)". Ebenfalls wurde ihm von Microsoft die Auszeichnung "Microsoft Regional Director (RD)" verliehen.Über den Autor 13EINLEITUNG27Über dieses Buch 27Konventionen in diesem Buch 27Fachbegriffe 28Warum Kommandozeile? 28Der Name für den Haupt-Branch 28Was Sie nicht lesen müssen 29Törichte Annahmen über die Leser 29Wie dieses Buch aufgebaut ist 30Teil I: Grundlagen 30Teil II: Zusammenarbeit 30Teil III: Vertiefung 30Teil: IV: Der Top-Ten-Teil 30Symbole, die in diesem Buch verwendet werden 30Wie es weitergeht 31TEIL I: GRUNDLAGEN 33KAPITEL 1 WAS IST GIT?35Versionsverwaltung – zentral oder verteilt? 36Die Geschichte von Git 37Was bedeutet der Name »Git«? 38Lizenz und Betriebssysteme 39Ausblick 39Kurz und knackig 39KAPITEL 2 DER EINSTIEG AUF WINDOWS 41Die Installation von Git auf Windows 41Die richtige Kommandozeile 51Terminal: Cmder 52Cmd vs PowerShell 52Windows-Subsystem für Linux (WSL) 54Das Windows-Terminal 55Der richtige Editor 56Die Konfiguration von Git 58Authentifizierung 59Kurz und knackig 62KAPITEL 3 DER EINSTIEG AUF MACOS UND LINUX63Der Einstieg auf macOS 63Der Einstieg auf Linux 64Konfiguration 64Authentifizierung 66Arbeiten mit dem Terminal 69Richtig mit dem Terminal umgehen 70Die richtige Konsole finden 71Aufgehübscht: Oh-My-Zsh und Powerlevel10k 71Kurz und knackig 76KAPITEL 4 HINZUFÜGEN, ÄNDERN, BRANCHEN UND MERGEN77Das lokale Repository 78Das Remote-Repository 79Änderungen dem Repository hinzufügen 80Die lokale Entwicklungsumgebung aktualisieren 81Schritt für Schritt: Änderungen der Versionsverwaltung hinzufügen 81Neue Dateien hinzufügen 82Änderungen durchführen 85Arbeiten mit Verzweigungen (Branches) 87Einen Branch erstellen 88Auf einen anderen Branch wechseln 89Arbeiten mit Upstream-Branches 90Änderungen zusammenführen 92Der Fast-Forward-Merge 92Der Merge-Commit 94Konflikte lösen 95Schritt für Schritt: Branchen und Mergen 96Kurz und knackig 97KAPITEL 5 WEITERE WERKZEUGE99Visual Studio Code 99Unterstützung im Working Directory 99Arbeiten mit Branches und Tags 100Unterstützung für Remote-Repositories 100Statusbar und Editor 100Visual-Studio-Code-Erweiterungen 101Benutzeroberflächen für Git 106Sourcetree 106GitKraken 108GitHub Desktop 109Git-GUI 111GitHub für unterwegs 115Visual Studio, Eclipse, IntelliJ und Co. 117Tools mit Windows-Explorer-Integration 118TortoiseGit 118Git-Extensions 121Diff- und Merge-Tools 122Kurz und knackig 125TEIL II: ZUSAMMENARBEIT 127KAPITEL 6 GIT-DIENSTE129GitHub 130Einstieg 130GitHub-Organisationen 134Ein Repository anlegen 136Preise 140Hosting 140Bewertung 140Azure Repos 141Einstieg 141Azure-DevOps-Organisationen 142Ein Projekt erstellen 143Ein Repository erstellen 144Preise 146Hosting 146Bewertung 146GitLab 147Einstieg 147Hosting und Preise 150Bewertung 151Bitbucket 151Einstieg 151Hosting und Preise 155Bewertung 155Kurz und knackig 156KAPITEL 7 GUIDELINES BEI DER EINFÜHRUNG VON GIT157Das richtige Maß an Governance 157Eine minimale Governance-Richtlinie 158Die Wahl des passenden Git-Systems 158Der minimale Git-Workflow 159Namenskonventionen 159Minimale Review-Guidelines 159Weitere Ergänzungen für Pull-Requests 160Empfehlungen für Teams 160Anzahl und Struktur der Repositories 161Review-Guidelines 162Release-Branching 163Umgang mit komplexen Features 163Commit-Messages und Pull-Requests 164Merge-Strategien 164Training 165Kurz und knackig 165KAPITEL 8 GIT-WORKFLOWS 167Was sind Git-Workflows? 167Trunk-Based-Development 168GitHub-Flow 170Release-Flow 173Git-Flow 175Die Haupt-Branches in Git-Flow 175Feature-Branches im Git-Flow 176Release-Branches 177Hotfix-Branches 178Zusammenfassung 179Den richtigen Workflow finden 180Kurz und knackig 181KAPITEL 9 TEAMWORK MIT GIT183Watch, Stars und Forks 183Was ist ein Fork? 185Code-Reviews mit Pull-Requests 192Branch-Protection 199Automatisierung 202Code-Owners 204Der Umgang mit Commits und Messages 205Der Pull-Request-Lebenszyklus 208Kurz und knackig 209KAPITEL 10 WENIGER KOMPLEXITÄT DURCH FEATURE-FLAGS211Was sind Feature-Flags? 211Der Feature-Lebenszyklus 213Weitere Einsatzmöglichkeiten von Feature-Flags 215Wo fängt man an? 216Frameworks 217LaunchDarkly 218Feature-Flags und technische Schulden 219Kurz und knackig 221KAPITEL 11 KONTINUIERLICH BAUEN UND AUSLIEFERN223Was ist CI und CD? 223Build-Infrastruktur 225Kontinuierliche Qualität 225Tests und Code-Coverage 226Code-Analyse und Quality-Gates 228Automatisierte Deployments 229Infrastruktur als Code 229App-Stores, Registries und Paketmanager 230Die Bedeutung von Containern 232Azure Pipelines 234Ihre erste Pipeline 234Technische Schulden meistern 242GitHub Actions 249Ihr erster Workflow 249Ihre erste GitHub-Action 251Weitere CI/CD-Plattformen 254Kurz und knackig 254KAPITEL 12 OPEN-SOURCE-PROJEKTE255Geschichte 256Open Source versus Open Development 256Open Source und Sicherheit 257Ihr erstes Open-Source-Projekt 261Wann ist der richtige Zeitpunkt? 262Ist es die richtige Lösung? 262Name und Branding 262Open-Source-Checkliste 263Standardisierung und Automatisierung 264Eine Community aufbauen 264Geld verdienen mit Open Source 265Kurz und knackig 266TEIL III: VERTIEFUNG 269KAPITEL 13 UNTER DER HAUBE 271Warum ist Git so schwierig? 271Der gerichtete azyklische Graph 272Der Hash oder SHA-1 273Die Anatomie eines Commits 274Was ist denn nun eigentlich Git? 284Warum ist Git so einfach? 285Kurz und knackig 285KAPITEL 14 ZEITREISEN MIT GIT 287Geschichte ist Geschichte 287Freie Wahl der Arbeitsweise 289Änderungen rückgängig machen 289Änderungen mit Revert transparent zurücknehmen 289Commits nachbessern mit Amend 291Zeitreisen mit Reset 291Navigieren in der Zeit 296Zeitlinien manipulieren 300Zurück in die Zukunft mit Rebase 300Änderungen bündeln mit Squash 302Rosinen herauspicken 304Die Vergangenheit interaktiv manipulieren 304Die Vergangenheit mit Filter-Branch manipulieren 308Manipulierte Zeitlinien mit Force-Push übertragen 310Fragen Sie nicht, wozu Git fähig ist 310Kurz und knackig 311KAPITEL 15 MEHR ZUM BRANCHING UND MERGING313Branches und Tags 313Vorspulen mit Fast-Forward 316Ein echter Merge 317Ein Octopus-Merge 31Konflikte automatisch lösen 319Konflikte manuell lösen 320Merge-Strategien 323Recursive 323Resolve 324Octopus 325Ours 325Subtree 325Daten vom Remote laden mit »git pull« 325Kurz und knackig 326KAPITEL 16 COMMITS UND TAGS SIGNIEREN329Warum sollte man Commits signieren? 330Was ist GPG? 333Installation und Konfiguration 333Installation auf dem Mac 333Installation auf Windows 334Installation auf Linux 334Ein Schlüsselpaar generieren 334Weitere E-Mail-Adressen konfigurieren 337Die Konfiguration von Git 337Konfiguration von GitHub 338Visual Studio Code konfigurieren 338Der erste signierte Commit 339Kurz und knackig 340KAPITEL 17 GIT-SUBMODULE341Submodule in Git-Repository einbinden 341Submodule klonen 343Submodule aktualisieren 344In Submodulen arbeiten 345Kurz und knackig 347KAPITEL 18 GROẞE DATEIEN UND GROẞE REPOSITORIES349Git-LFS 349Wann sollen Sie Git-LFS verwenden? 349Installation von Git-LFS 350Git-LFS verwenden 350Große Dateien sperren 351Nachteile 351Große Repositories 352VFS for Git 352Scalar 352Kurz und knackig 354KAPITEL 19 GIT AN IHRE BEDÜRFNISSE ANPASSEN355Dateien ignorieren 355Arbeiten mit unterschiedlichen Dateitypen 357Binärdateien 357Bestimmte Dateitypen versionieren 357Inhalte vor dem Ein- oder Auschecken filtern oder bearbeiten 358Formatierung von Dateien 361Der richtige Umgang mit Zeilenenden 361Encoding 362Leerzeichen, Tabs und Spaces 362Kurz und knackig 364TEIL IV: DER TOP-TEN-TEIL 365KAPITEL 20 ZEHN TIPPS ZUM EINSTIEG IN GIT367Lernen und verwenden Sie Git auf der Konsole 367Der richtige Git-Prompt 367Richten Sie sich eine Wohlfühlkonsole ein 368Lernen Sie die Shortcuts für Ihr Terminal 368Lernen Sie einen Editor 36Lernen Sie die Shortcuts für den Editor 368Üben Sie in der Git-School 368Erstellen Sie ein Konto auf GitHub 368Verwenden Sie einen schlanken Workflow 369Arbeiten Sie mit Pull-Requests 369Kurz und knackig 369KAPITEL 21 ZEHN TIPPS ZUR ERHÖHUNG DER EFFIZIENZ371Arbeiten mit Aliasen in Git 371Besser Vergleichen mit »diff-so-fancy« 374Automatisieren mit Git-Hooks 376Clientseitige Hooks 376Serverseitige Hooks 377Bessere Commit-Messages mit Commit-Templates 378Einzelne Commits testen 37Besser Versionieren mit Git-Version 379Merges aufzeichnen mit rerere 381Autokorrektur von Kommandos 383Arbeit zwischenspeichern mit Stash 384Kurz und knackig 385KAPITEL 22 ZEHN DINGE, DIE SIE NICHT TUN SOLLTEN387Direkt auf dem Haupt-Branch arbeiten 387Mit langlebigen Branches arbeiten 387Passwörter und andere Secrets in Git speichern 388Nicht oft genug committen 388Git nicht als Versionsverwaltung nutzen 388Große Dateien speichern 388Einen Pull-Request für viele Änderungen verwenden 389Einen Reset durchführen, ohne vorher zu speichern 389Die veröffentlichte Historie modifizieren 389Einen Force-Push durchführen 389Kurz und knackig 390KAPITEL 23 ZEHN GIT-BEFEHLE, DIE SIE KENNEN SOLLTEN391Bugs finden mit git bisect 391Dateien umbenennen mit git mv und git rm 393In Git suchen mit git grep und git log 394Den Schuldigen finden mit git blame 397Aufräumen mit git clean 398Einen Brach wechseln mit git switch 398Arbeiten mit Patches: git add ––patch und git apply 399Kurz und knackig 403KAPITEL 24 ZEHN GIT-BEFEHLE, DIE IHNEN BEI PROBLEMEN HELFEN 405Magische Zeitmaschine 405Vergessen, Änderungen hinzuzufügen 406Commit-Message nachträglich ändern 406Aus Versehen auf den Haupt-Branch committed 406Commit auf falschen Branch 407Diff zeigt nichts an 407Älteren Commit rückgängig machen 407Änderungen an einer Datei rückgängig machen 408Von Neuem beginnen (a) 408Von Neuem beginnen (b) 409Kurz und knackig 409Stichwortverzeichnis 413

Regulärer Preis: 25,99 €
Produktbild für Spring Cloud Data Flow

Spring Cloud Data Flow

Work with big data applications by using Spring Cloud Data Flow as a unified, distributed, and extensible system for data ingestion and integration, real-time analytics and data processing pipelines, batch processing, and data export. With this book you will develop a foundation for creating applications that use real-time data streaming by combining different technologies and use the full power of Spring Cloud Data Flow.The first part of Spring Cloud Data Flow introduces the concepts you will need in the rest of the book. It begins with an overview of the cloud, microservices, and big data, before moving on to the Spring projects essential to modern big data applications in Java: Spring Integration, Spring Batch, Spring Cloud Stream, and Spring Cloud Task. The second part of the book covers the internals of Spring Cloud Data Flow, giving you the insights and knowledge required to build the applications you need. You'll learn how to use Spring Data Flow's DSL and how to integrate with third-party cloud platform solutions, such as Kubernetes.Finally, the book covers Spring Cloud Data Flow applications to impart practical, useful skills for real-world applications of the technologies covered throughout the rest of the book.WHAT YOU WILL LEARN* See the Spring Cloud Data Flow internals * Create your own Binder using NATs as Broker* Mater Spring Cloud Data Flow architecture, data processing, and DSL* Integrate Spring Cloud Data Flow with Kubernetes* Use Spring Cloud Data Flow local server, Docker Compose, and Kubernetes* Discover the Spring Cloud Data Flow applications and how to use them* Work with source, processor, sink, tasks, Spring Flo and its GUI, and analytics via the new Micrometer stack for realtime visibility with Prometheus and GrafanaWHO THIS BOOK IS FORThose with some experience with the Spring Framework, Microservices and Cloud Native Applications. Java experience is recommended. FELIPE GUTIERREZ is a solutions software architect, with a bachelors and master degree in computer science from Instituto Tecnologico y de Estudios Superiores de Monterrey Campus Ciudad de Mexico. With over 20 years of IT experience, during which time he developed programs for companies in multiple vertical industries, such as government, retail, healthcare, education, and banking. Right now, he is currently working as a principal technical instructor for Pivotal, specializing in Cloud Foundry, Spring Framework, Spring Cloud Native Applications, Groovy, and RabbitMQ, among other technologies. He has worked as a solutions architect for big companies like Nokia, Apple, Redbox, and Qualcomm, among others. He is also the author of Introducing Spring Framework, Pro Spring Boot and Spring Boot Messaging, all published by Apress.Part I. Introductions1 - Cloud, Microservices and Big Data an Overview2 - Quick Introduction to Spring Framework and Spring Boot3 - Spring Integration4 - Spring Batch5 - Spring Cloud6 - Spring Cloud App Stream7 - Binders8 – Spring Cloud Data Flow Introduction & InstallationPart II. Spring Cloud Data Flow: Internals9 - Spring Cloud Data Flow Internals10 - Custom Source, Processor, Sink, Tasks with Spring Cloud Task11 - Analytics: Counters and Gauges

Regulärer Preis: 79,99 €
Produktbild für A Python Data Analyst's Toolkit

A Python Data Analyst's Toolkit

Explore the fundamentals of data analysis, and statistics with case studies using Python. This book will show you how to confidently write code in Python, and use various Python libraries and functions for analyzing any dataset. The code is presented in Jupyter notebooks that can further be adapted and extended.This book is divided into three parts – programming with Python, data analysis and visualization, and statistics. You'll start with an introduction to Python – the syntax, functions, conditional statements, data types, and different types of containers. You'll then review more advanced concepts like regular expressions, handling of files, and solving mathematical problems with Python.The second part of the book, will cover Python libraries used for data analysis. There will be an introductory chapter covering basic concepts and terminology, and one chapter each on NumPy(the scientific computation library), Pandas (the data wrangling library) and visualization libraries like Matplotlib and Seaborn. Case studies will be included as examples to help readers understand some real-world applications of data analysis.The final chapters of book focus on statistics, elucidating important principles in statistics that are relevant to data science. These topics include probability, Bayes theorem, permutations and combinations, and hypothesis testing (ANOVA, Chi-squared test, z-test, and t-test), and how the Scipy library enables simplification of tedious calculations involved in statistics.WHAT YOU'LL LEARN* Further your programming and analytical skills with Python* Solve mathematical problems in calculus, and set theory and algebra with Python* Work with various libraries in Python to structure, analyze, and visualize data* Tackle real-life case studies using Python* Review essential statistical concepts and use the Scipy library to solve problems in statistics WHO THIS BOOK IS FORProfessionals working in the field of data science interested in enhancing skills in Python, data analysis and statistics.Gayathri Rajagopalan works for a leading Indian multi-national organization, with ten years of experience in the software and information technology industry. A computer engineer and a certified Project Management Professional (PMP), some of her key focus areas include Python, data analytics, machine learning, and deep learning. She is proficient in Python, Java, and C/C++ programming. Her hobbies include reading, music, and teaching data science to beginners.Chapter 1: Introduction to Python [25 pages]Description: Python is one of the most popular open-source programming languages and is easy to learn as well.Topics to be covered:1. Installation – how to install Python and Anaconda2. Using Jupyter notebooks3. Data types in Python4. Loops and conditional statements5. Functions6. Strings and their methods7. PEP(Python Enhancement Proposal) guidelines8. Sympy library and solving mathematical problems with PythonChapter 2: Exploring Containers, Classes & Objects, and Working with Files [25 pages]Description: Understanding data structures, classes and objects and file handling in Python.Topics to be covered:1. Lists2. Tuples3. Dictionaries4. Sets5. Classes and Objects6. Working with filesChapter 3: Regular Expressions [20 pages]Description: Regular expressions are important to understand as they have a wide range of applications, from natural language processing to working with files to manipulating stringsTopics to be covered:1. Introduction to regular expressions2. Meta-characters3. Python functions for regular expressions4. Matching characters and sub-expressions5. Using conditions for matchingChapter 4: Data Analysis Basics [10 pages]Description: In this chapter, we will cover the basic terminology in data analysis and the data analysis workflowTopics to be covered:1. Basic concepts and definitions2. Levels of data3. Data analysis workflowChapter 5: Numpy Library [10 pages]Description: The Numpy library will be explained in detail.Topics to be covered:1. Introduction2. Creating arrays3. Slicing and dicing4. Array manipulationsChapter 6: Data Wrangling with Pandas [50 pages]Description: Everything related to Pandas, a widely used library used for manipulating and analyzing dataTopics to be covered:1. Introduction2. Series and their methods/functions3. DataFrames and their methods/functions4. Grouping and Aggregation5. Merging objects6. Tidying dataChapter 7: Data Visualization [20 pages]Description: An introduction to data visualization, which is crucial for and conveying insights to a new audienceTopics to be covered:1. Introduction2. Types of plots3. Creating plots with the Matplotlib library4. Using the Pandas library for drawing graphs5. Visualization with the Seaborn libraryChapter 8: Case Studies [60 pages]Each case study will start with an overview of the dataset, followed by an in-depth analysis of data that includes data tidying, wrangling, and visualization. The case study would conclude with crucial insights, and recommendations.1. Titanic survivors case study2. Analyzing unstructured data using a Wikipedia web page3. New Delhi Air Pollution case studyChapter 9: Essentials of Statistics [60 pages]Description: Knowledge of statistics and its applications, is essential for a data analyst or scientist, and this chapter will try to provide an accessible introduction to what is considered a complicated and confusing subject.Topics to be covered:1. Introduction2. Basic terms3. Measures of central tendency4. Probability5. Distributions6. Bayes Theorem7. Central Limit Theorem8. Hypothesis testing

Regulärer Preis: 56,99 €
Produktbild für Manipulationssichere Cloud-Infrastrukturen

Manipulationssichere Cloud-Infrastrukturen

Im Rahmen der sich beschleunigenden Digitalisierung wandern sowohl in der Privatwirtschaft als auch den öffentlichen Verwaltungen viele als kritisch bewertete Anwendungen und Dienste in die Cloud. Big Data, Maschinelles Lernen und Künstliche Intelligenz bieten viele Vorteile, werfen aber wachsende Sicherheits- und Datenschutzprobleme auf. Die Sicherheit der informationstechnischen Systeme, einschließlich und insbesondere der Cloud, wird somit zum Dreh- und Angelpunkt einer zuverlässigen, nachhaltigen und sicheren Wirtschaft und Verwaltung.Das vorliegende Buch gibt Antworten auf die von Sicherheitsverantwortlichen und -forschern gleichermaßen gestellte Frage „Wieviel Sicherheit ist genug?“. Dabei werden der rechtliche Rahmen beleuchtet, das Vertrauensdilemma des Cloud Computing herausgearbeitet und die grundsätzlich zur Verfügung stehenden Optionen für Cloud-Sicherheit mit einer Modellierung der Erfolgswahrscheinlichkeit der Angreifer beschrieben und quantitativ analysiert. Es wird gezeigt, wie mit dem Konzept einer manipulationssicheren, versiegelten Verarbeitung der notwendige Durchbruch bezüglich Datenschutz und IT-Sicherheit erzielt werden kann.Mit verschiedenen praktischen Anwendungsfällen der Sealed-Cloud-Technologie wird gezeigt, wie mit solch europäisch implementiertem „Confidential Cloud Computing“ Souveränität in der Datenökonomie gewonnen werden kann.DR. HUBERT A. JÄGER ist Unternehmer und Experte für Innovationen im Bereich der nachhaltigen Digitalisierung. Er baute zusammen mit Dr. Rieken die Uniscon GmbH auf und hält zahlreiche Patente zu unterschiedlichen Themen in der Informationstechnik und Telekommunikation, insbesondere zu Cloud-Sicherheit.DR. RALF O. G. RIEKEN ist Gründer und COO der Uniscon GmbH, einem Anbieter von hochsicheren Cloud-Lösungen. Er hatte zuvor verantwortliche Positionen bei führenden IT- und Netzinfrastrukturlieferanten inne, u.a. im Silicon Valley. Stand der Technik zum Cloud-Computing - Anforderungen geschäftskritischer Anwendungen - Gefühlte und reale Risiken - Überblick zu Konzepten für IT-Sicherheit und Datenschutz in der Cloud - Sealed Processing – ein rein technische Ansatz für Security - Praktische Anwendungen

Regulärer Preis: 54,99 €
Produktbild für Digitales Shopfloor Management in SAP-Systemumgebungen

Digitales Shopfloor Management in SAP-Systemumgebungen

Dieser Ratgeber zeigt Lösungsvarianten sowie Vorgehensmodelle auf und liefert einen schnellen Überblick, Entscheidungshilfen, praxisgerechte Hinweise, Erfahrungshintergrund aus Projekten und Expertenwissen für Ihre Digitalisierungsprojekte in der Fertigung. Erstellen Sie auf Grundlage dieses Buchs eine Roadmap mit den richtigen Prioritäten zur erfolgreichen Digitalisierung Ihrer Produktionsprozesse und verschaffen Sie sich damit Wettbewerbsvorteile in Ihrer Branche.DIPL.-INFORM. MANFRED DIETRICH hat über 20 Jahre Erfahrung in der Beratung von Fertigungsunternehmen und Optimierung von Produktionsabläufen. Mit der deTask CS GmbH (www.detask.de) begleitet er Digitalisierungsvorhaben in der Produktion in unterschiedlichen Branchen der Fertigungsindustrie.Ist-Analyse.-Lösungsbausteine und Varianten.-BI, KI und Cloud.-Erfolgsfaktoren.-Roadmap.

Regulärer Preis: 42,99 €
Produktbild für Applied Data Science Using PySpark

Applied Data Science Using PySpark

Discover the capabilities of PySpark and its application in the realm of data science. This comprehensive guide with hand-picked examples of daily use cases will walk you through the end-to-end predictive model-building cycle with the latest techniques and tricks of the trade.Applied Data Science Using PySpark is divided unto six sections which walk you through the book. In section 1, you start with the basics of PySpark focusing on data manipulation. We make you comfortable with the language and then build upon it to introduce you to the mathematical functions available off the shelf. In section 2, you will dive into the art of variable selection where we demonstrate various selection techniques available in PySpark. In section 3, we take you on a journey through machine learning algorithms, implementations, and fine-tuning techniques. We will also talk about different validation metrics and how to use them for picking the best models. Sections 4 and 5 go through machine learning pipelines and various methods available to operationalize the model and serve it through Docker/an API. In the final section, you will cover reusable objects for easy experimentation and learn some tricks that can help you optimize your programs and machine learning pipelines.By the end of this book, you will have seen the flexibility and advantages of PySpark in data science applications. This book is recommended to those who want to unleash the power of parallel computing by simultaneously working with big datasets.WHAT YOU WILL LEARN* Build an end-to-end predictive model* Implement multiple variable selection techniques* Operationalize models* Master multiple algorithms and implementations WHO THIS BOOK IS FORData scientists and machine learning and deep learning engineers who want to learn and use PySpark for real-time analysis of streaming data.RAMCHARAN KAKARLA is currently lead data scientist at Comcast residing in Philadelphia. He is a passionate data science and artificial intelligence advocate with five+ years of experience. He holds a master’s degree from Oklahoma State University with specialization in data mining. Prior to OSU, he received his bachelor’s in electrical and electronics engineering from Sastra University in India. He was born and raised in the coastal town of Kakinada, India. He started his career working as a performance engineer with several Fortune 500 clients including State Farm and British Airways. In his current role he is focused on building data science solutions and frameworks leveraging big data. He has published several papers and posters in the field of predictive analytics. He served as SAS Global Ambassador for the year 2015.SUNDAR KRISHNAN is passionate about artificial intelligence and data science with more than five years of industrial experience. He has tremendous experience in building and deploying customer analytics models and designing machine learning workflow automation. Currently, he is associated with Comcast as a lead data scientist. Sundar was born and raised in Tamil Nadu, India and has a bachelor's degree from Government College of Technology, Coimbatore. He completed his master's at Oklahoma State University, Stillwater. In his spare time, he blogs about his data science works on Medium.CHAPTER 1: SETTING UP THE PYSPARK ENVIRONMENTChapter Goal: Introduce readers to the PySpark environment, walk them through steps to setup the environment and execute some basic operationsNumber of pages: 20Subtopics:1. Setting up your environment & data2. Basic operationsCHAPTER 2: BASIC STATISTICS AND VISUALIZATIONSChapter Goal: Introduce readers to predictive model building framework and help them acclimate with basic data operationsNumber of pages: 30Subtopics:1. Basic Statistics2. data manipulations/feature engineering3. Data visualizations4. Model building frameworkCHAPTER 3: VARIABLE SELECTIONChapter Goal: Illustrate the different variable selection techniques to identify the top variables in a dataset and how they can be implemented using PySpark pipelinesNumber of pages: 40Subtopics:1. Principal Component Analysis2. Weight of Evidence & Information Value3. Chi square selector4. Singular Value Decomposition5. Voting based approachCHAPTER 4: INTRODUCTION TO DIFFERENT SUPERVISED MACHINE ALGORITHMS, IMPLEMENTATIONS & FINE-TUNING TECHNIQUESChapter Goal: Explain and demonstrate supervised machine learning techniques and help the readers to understand the challenges, nuances of model fitting with multiple evaluation metricsNumber of pages: 40Subtopics:1. Supervised:· Linear regression· Logistic regression· Decision Trees· Random Forests· Gradient Boosting· Neural Nets· Support Vector Machine· One Vs Rest Classifier· Naive Bayes2. Model hyperparameter tuning:· L1 & L2 regularization· Elastic netCHAPTER 5: MODEL VALIDATION AND SELECTING THE BEST MODELChapter Goal: Illustrate the different techniques used to validate models, demonstrate which technique should be used for a particular model selection task and finally pick the best model out of the candidate modelsNumber of pages: 30Subtopics:1. Model Validation Statistics:· ROC· Accuracy· Precision· Recall· F1 Score· Misclassification· KS· Decile· Lift & Gain· R square· Adjusted R square· Mean squared errorCHAPTER 6: UNSUPERVISED AND RECOMMENDATION ALGORITHMSChapter Goal: The readers explore a different set of algorithms – Unsupervised and recommendation algorithms and the use case of when to apply themNumber of pages: 30Subtopics:1. Unsupervised:· K-Means· Latent Dirichlet Allocation2. Collaborative filtering using Alternating least squaresCHAPTER 7: END TO END MODELING PIPELINESChapter Goal: Exemplify building the automated model framework and introduce reader to a end to end model building pipeline including experimentation and model trackingNumber of pages: 40Subtopics:1. ML FlowCHAPTER 8: PRODUCTIONALIZING A MACHINE LEARNING MODELChapter Goal: Demonstrate multiple model deployment techniques that can fit and serve variety of real-world use casesNumber of pages: 60Subtopics:1. Model Deployment using hdfs object2. Model Deployment using Docker3. Creating a simple Flask APICHAPTER 9: EXPERIMENTATIONSChapter Goal: The purpose of this chapter is to introduce hypothesis testing and use cases, optimizations for experiment-based data science applicationsNumber of pages: 40Subtopics:1. Hypothesis testing2. Sampling techniquesCHAPTER 10: OTHER TIPS: OPTIONALChapter Goal: This bonus chapter is optional and will offer reader some handy tips and tricks of the tradeNumber of pages: 20Subtopics:1. Tips on when to switch between python and PySpark2. Graph networks

Regulärer Preis: 56,99 €
Produktbild für Ontologies with Python

Ontologies with Python

Use ontologies in Python, with the Owlready2 module developed for ontology-oriented programming. You will start with an introduction and refresher on Python and OWL ontologies. Then, you will dive straight into how to access, create, and modify ontologies in Python. Next, you will move on to an overview of semantic constructs and class properties followed by how to perform automatic reasoning. You will also learn about annotations, multilingual texts, and how to add Python methods to OWL classes and ontologies. Using medical terminologies as well as direct access to RDF triples is also covered.Python is one of the most used programming languages, especially in the biomedical field, and formal ontologies are also widely used. However, there are limited resources for the use of ontologies in Python. Owlready2, downloaded more than 60,000 times, is a response to this problem, and this book is the first one on the topic of using ontologies with Python.WHAT YOU WILL LEARN* Use Owlready2 to access and modify OWL ontologies in Python* Publish ontologies on dynamic websites* Perform automatic reasoning in PythonUse well-known ontologies, including DBpedia and Gene Ontology, and terminological resources, such as UMLS (Unified Medical Language System)* Integrate Python methods in OWL ontologiesWHO IS THIS BOOK FORBeginner to experienced readers from biomedical sciences and artificial intelligence fields would find the book useful.Lamy Jean-Baptiste is a senior lecturer at Paris 13 University and a member of the LIMICS, a research lab focused on biomedical informatics. He is also the developer of the Owlready2 Python module that allows access to OWL ontologies. He has developed many research prototypes, and one of them (VCM iconic medical language) has been patented in the US, with three licenses sold to industrial partners.Lamy speaks regularly at artificial intelligence and medical informatics conferences, has written over 50 journal papers, and is a moderator on the Owlready forum on Nabbles. He was awarded the best paper award at MEDINFO 2019, the largest international conference in medical informatics.Chapter 1: Introduction1. Who is this book for?2. Why ontologies?3. Why Python?4. Why Owlready?5. Book outline6. AcknowledgementsChapter 2: Python Language: Adopt a Snake!1. Installing Python2. Starting Python3. Syntax4. Main datatypes5. Conditions (if)6. Loops (for)7. Generators8. Functions (def)9. Classes (class)10. Python modules11. Installing Owlready212. SummaryChapter 3: OWL Ontologies1. An ontology... what does it look like?2. Creating ontologies manually with the Protégé editor3. Example: An ontology of bacteria4. Creating a new ontology• Classes• Disjoints• Partitions • Data properties• Object properties• Restrictions• Union, intersection, and complement• Definitions (equivalent to relations)• Individuals• Other constructs5. Automatic reasoning6. Modeling exercises7. SummaryChapter 4: Accessing Ontologies in Python1. Importing Olwready2. Loading an ontology3. Imported ontologies4. Listing the content of the ontology5. Accessing to entities• Individuals• Relations• Classes• Existential restrictions• Properties6. Searching for entities7. Huge ontologies and disk cache8. Namespaces9. Modifying entity rendering as text10. Local directory of ontologies11. Reloading an ontology in the quadstore12. Example: Creating a dynamic website from an ontology13. SummaryChapter 5: Creating and Modifying Ontologies in Python1. Creating an empty ontology 2. Creating classes3. Creating properties4. Creating individuals5. Modifying entities: Relations and existential restrictions6. Creating entities within a namespace7. Renaming entities (refactoring)8. Multiple definitions and forward declarations9. Destroying entities10. Destroying an ontology11. Saving an ontology12. Importing ontologies13. Synchronization14. Example: Populating an ontology from a CSV file15. SummaryChapter 6: Constructs, Restrictions, Class Properties1. Creating constructs2. Accessing constructs parameters3. Restrictions as class properties4. Defined classes5. Example: Creating the ontology of bacteria in Python6. Example: Populating an ontology with defined classes7. SummaryChapter 7: Automatic Reasoning1. Disjoints2. Open-world assumption3. Reasoning in a closed world, or in a local closed world4. Inconsistent classes and inconsistent ontologies5. Restriction and reasoning on numbers and strings6. SWRL rules7. Example: An ontology-based decision support system8. SummaryChapter 8: Annotations, Multilingual Texts and Full Text Search1. Annotating entities2. Multilingual texts3. Annotating constructs4. Annotating properties and relations5. Creating new annotation classes6. Ontology metadata7. Full text search8. Example: Using DBpedia in Python• Loading DBpedia• A search engine for Dbpedia9. SummaryChapter 9: Using Medical Terminologies with PyMedTermino and UMLS1. UMLS2. Importing terminologies from UMLS3. Loading terminologies after initial importation4. Using ICD105. Using SNOMED CT6. Using UMLS unified concepts (CUI)7. Transcoding between terminologies8. Manipulating sets of concepts9. Importing all terminologies in UMLS10. Example: Linking the ontology of bacteria with UMLS11. Example: A multi-terminology browser12. SummaryChapter 10: Mixing Python and OWL1. Adding Python methods to OWL classes2. Associating a Python module to an ontology• Manual import• Automatic import3. Polymorphism with type inference4. Introspection5. Reading restrictions backward6. Example: using Gene Ontology and managing part-of relations7. Example: A “dating site” for proteins8. SummaryChapter 11: Working with RDF Triples and Worlds1. RDF triples2. Manipulating RDF triples with RDFlib3. Performing SPARQL requests4. Accessing RDF triples with Owlready5. Interrogating the SQLite3 database directly6. Creating several, isolated, world7. SummaryAnnex A: Description logicsAnnex B: Notations for formal ontologiesAnnex C: Reference manual

Regulärer Preis: 56,99 €
Produktbild für C++20 for Lazy Programmers

C++20 for Lazy Programmers

Ready to learn programming with less effort and more fun? Then do it the lazy way! C++20 for Lazy Programmers uses humor and fun to make you actually willing to read and eager to do the projects as you master the popular and powerful C++ language. Along the way it includes many features from the new C++20 standard, such as ranges, spans, format strings, the “spaceship” operator, and concepts (template parameter requirements), and provides brief introductions to modules and coroutines.With this unique method, you’ll stretch your abilities with a variety of projects, including your own C++ arcade game. You'll construct your own classes, templates, and abstract data types. After reading and using this book you’ll be ready to build real-world C++ applications and game projects on your own.WHAT YOU WILL LEARN:* The brand-new C++20 standard* Programming graphics and games with the SDL library, using SSDL, the "Simple SDL" wrapper library* How to use the most common C++ compilers -- Visual Studio for Windows, and g++ (with Unix or MinGW) -- and their associated debuggers* “Anti-bugging” for easy fixes to common problems * Sound practices for becoming a productive programmer* How to make your own big projects, including a C++-based arcade game * The built-in Standard Template Library (STL) functions and classes for easy and efficient programming* Powerful data types including strings, stacks, vectors, and linked lists -- not by reading about them but by building them -- preparing you further for a career in programmingWHO THIS BOOK IS FORAll who are new to C++, either self-learners or students in college-level courses.WILL BRIGGS, PhD is a professor of computer science at the University of Lynchburg in Virginia. He has 20+ years of experience teaching C++, 12 of them using earlier drafts of this book, and about as many years teaching other languages including C, LISP, Pascal, PHP, PROLOG, and Python. His primary focus is teaching of late while also active in research in artificial intelligence.Introduction 1-11 Getting started 1-91.1 A simple program 1-91.2 Creating an SSDL project 1-121.3 Shapes and the functions that draw them 1-271.4 consts and colors 1-351.5 Text 1-37Prominent examples from this chapter: a drawing of a bug's head; a neatly printed poem.2 Images and sound 2-432.1 Images and changing window characteristics 2-432.2 Multiple images together 2-482.3 Adding transparency with GIMP 2-502.4 Sound 2-54Example: a slide show (Your yard gnome's travel pics).3 Math: types, operations, consts, and math functions 3-563.1 Variables 3-563.2 const, constexpr, constinit 3-573.3 Math operators 3-593.4 Built-in functions and casting 3-62Examples: diver on a diving board; a 5-pointed star.C++20 updates: constexpr, constinit.After this chapter, constexpr/constinit show up in most examples.4 Mouse, and if 4-674.1 Mouse functions 4-674.2 if 4-694.3 Boolean values and variables 4-734.4 A hidden-object game 4-75Example: The hidden-object game.5 Loops and text input 5-795.1 Keyboard input 5-795.2 while and do-while 5-815.3 for loops 5-855.4 chars and cctype 5-905.5 switch 5-94Examples: the Monty Hall problem; menus.6 Algorithms and the development process 6-976.1 Adventures in robotic cooking 6-976.2 Writing a program from start to finish 6-100Example: a bullseye pattern.7 Functions 7-1067.1 Functions that return values 7-1067.2 Functions that return nothing 7-1097.3 Global variables and why they're evil 7-1117.4 How to write a function in four easy steps (and call it in one) 7-1137.5 Why have functions, anyway? 7-117Example: a multi-frame comic (illustrates code reuse).8 Functions (Continued) 8-1268.1 Random numbers 8-1268.2 Boolean functions 8-1318.3 Multiple values provided: using & parameters 8-1338.4 Identifier scope 8-1388.5 A final note on algorithms 8-140Examples: various functions using random number generation.9 Using the debugger 9-1419.1 A flawed program 9-1419.2 Breakpoints and watched variables 9-1459.3 Fixing the stripes 9-1459.4 Going into functions 9-1499.4 Fixing the stars 9-1499.4 Wrap-up 9-1509.4 Other debugging techniques 9-1539.4 More on antibugging 9-156Example: a national flag.10 Arrays and enum class 10-15910.1 Arrays 10-15910.2 Arrays as function parameters 10-16010.3 enum class 10-16610.4 Multidimensional arrays 10-166Examples: monthly temperatures, checkers, tic-tac-toe.C++20 update: using enum class (which significantly improves the usefulness of enum class).11 Animation with structs and sprites 11-17311.1 struct 11-17311.2 Making a movie with struct and while 11-17611.3 Sprites 11-182Examples: bouncing balls; a video aquarium.C++20 update: designated initializers for structs.12 Building your own arcade game: input, collisions, and putting it all together 12-18812.1 Determining input states 12-18812.2 Events 12-19012.3 Cooldowns and lifetimes 12-19112.4 Collisions 12-19412.5 The big game 12-195Examples: an arcade game, and the student's own game.13 Standard I/O and file operations 13-20413.1 Standard I/O programs in Visual C++ and g++ 13-20413.2 File I/O (optional) 13-210Examples: various programs reading/writing text files.Except for Chapter 21 (virtual functions), this and subsequent chapters use standard console I/O, not the SSDL graphics library.If used for a course, this chapter likely ends the first semester, so if students are going into a class with a different textbook, they are ready for the console I/O it will certainly require them to know.14 Character arrays and dynamic memory (pointers) 14-22114.1 Character arrays 14-22114.2 Dynamic allocation of arrays. 14-22414.3 Using the * notation 14-228Examples: C's string functions, written as examples or offered as exercises; code with new and deleteC++20 updates: array size deduction in new expressions.15 Classes: the basics 15-23215.1 Writing classes 15-23215.2 Constructors 15-23515.3 const objects, const member functions... 15-23915.4 ...and const parameters 15-24115.5 Multiple constructors 15-24115.6 Default parameters for code reuse 15-24415.7 Date program (so far) 15-245Examples: the Date class; the student's own Time class.16 Classes, continued 16-24816.1 inline functions for efficiency 16-24816.2 Access functions 16-24916.3 static members, inline, and constexpr/constinit 16-25016.4 Separate compilation and include files 16-25216.5 Multiple-file projects in Microsoft Visual C++ 16-25716.7 Multiple-file projects in g++ 16-25916.8 Final Date program 16-264Examples: the Date class; the student's own Time class, continued.C++20 updates: constexpr/consteval member functions; constexpr/constinit data members and their interaction with static.17 Operators, and destructors 17-26817.1 The basic string class 17-26817.2 Destructors 17-27017.3 == and != operators 17-27117.3 Other comparison operators, using the spaceship operator 17-27117.4 Assignment operators and *this 17-27317.5 Arithmetic operators 17-27517.6 [] and () operators 17-27917.7 >> and

Regulärer Preis: 62,99 €
Produktbild für PHP 8 Quick Scripting Reference

PHP 8 Quick Scripting Reference

This pocket reference has been updated with the new PHP 8 release. It is a condensed, code-rich scripting and syntax handbook for the PHP scripting language. You won’t find any technical jargon, bloated samples, drawn-out history lessons or witty stories in this book. What you will find is a web scripting language reference that is concise, to the point, and highly accessible. The book is packed with useful information and is a must-have for any PHP programmer or web developer. In it, you will find a concise reference to the PHP 8 scripting language syntax. It includes short, simple, and focused code examples; a well-laid-out table of contents; and a comprehensive index allowing easy review.PHP 8 Quick Scripting Reference presents the essentials of PHP in a well-organized format, including new features in PHP 8 such as the just in time (JIT) compiler, union types, nullsafe operator, null coalescing assignment operator, match expressions, named arguments, throw expressions, static return type, non-capturing catches, reclassified engine warnings and constructor property promotion.WHAT YOU WILL LEARN* Discover what is new in PHP 8 and how to get started with it* Work with variables, operators, strings, arrays, conditionals, loops, and other constructs* Group and reuse code with functions, methods, and namespaces* Use object-oriented features such as classes, inheritance, abstract classes, and interfaces* Import files and retrieve user dataMake use of type declarations and type conversions * Test variables, create references, and use overloading methods* Store user data with cookies and sessions* Deal with errors through error handling, exception handling, and assertionsWHO THIS BOOK IS FORExperienced PHP programmers and web developers who may be new to PHP.Mikael Olsson is a professional web entrepreneur, programmer, and author. He works for an R&D company in Finland where he specializes in software development. In his spare time he writes books and creates websites that summarize various fields of interest. The books he writes are focused on teaching their subject in the most efficient way possible, by explaining only what is relevant and practical without any unnecessary repetition or theory.1. Using PHP2. Variables3. Operators4. Strings5. Arrays6. Conditionals7. Loops8. Functions9. Class10. Inheritance11. Access Levels12. Static13. Constants14. Interface15. Abstracts16. Traits17. Importing Files18. Type Declarations19. Type Conversions20. Variable Testing21. Overloading22. Magic Methods23. User Input24. Cookies25. Sessions26. Namespaces27. References28. Advanced Variables29. Error Handling30. Exception Handling31. Assertions

Regulärer Preis: 46,99 €
Produktbild für C++ All-in-One For Dummies

C++ All-in-One For Dummies

GET READY FOR C++20 WITH ALL YOU NEED TO KNOW FOR COMPLETE MASTERY!Your comprehensive and updated guide to one of the world’s most popular programming languages is here! Whether you’re a novice or expert, you’ll find what you need to get going with the latest features of C++20. The workhorse of programming languages, C++ gives you the utmost control of data usage and interface and resource allocation. If your job involves data, proficiency in C++ means you’re indispensable!This edition gives you 8 books in 1 for total C++ mastery. Inside, internationally renowned expert John Paul Mueller takes you from the fundamentals of working with objects and classes to writing applications that use paradigms not normally associated with C++, such as those used for functional programming strategies. The book also includes online resources such as source code. You discover how to use a C++ GNU compiler to build applications and even how to use your mobile device for coding.* Conquer advanced programming and troubleshooting * Streamline your code with lambda expressions* Use C++ where you need it: for gaming, enterprise applications, and Web services* Uncover object secrets including the use of design patterns * Discover how to use functional programming techniques to make code concise and easy to readIf you want to be your organization’s C++ guru, C++ All-In-One for Dummies is where it’s at!JOHN PAUL MUELLER has produced 116 books and more than 600 articles on a range of topics that include functional programming techniques, application devel- opment using C++, and machine learning methodologies. INTRODUCTION 1About This Book 1Foolish Assumptions 4Icons Used in This Book 4Beyond the Book 5Where to Go from Here 6BOOK 1: GETTING STARTED WITH C++ 7CHAPTER 1: CONFIGURING YOUR DESKTOP SYSTEM 9Obtaining a Copy of C++ 20 10Obtaining Code::Blocks 11Installing Code::Blocks 12Working with Windows 12Working with Mac OS X 13Using the standard Linux installation 14Using the graphical Linux installation 15Touring the Essential Code::Blocks Features 17Starting Code::Blocks for the first time 18Opening the sample projects 19Viewing the essential windows 20Using Other IDEs 25CHAPTER 2: CONFIGURING YOUR MOBILE SYSTEM 27Obtaining CppDroid 28Understanding why CppDroid is such a great choice 29Getting your copy of CppDroid 31Ensuring you get a good install 32Considering Other Alternatives 32Working with C4Droid 33Getting multiple language support with AIDE 33Using web-based IDEs 34Touring the Essential CppDroid Features 35Getting started with CppDroid 35Accessing an example 37Working with a simple online project 37Accessing your source code 38Considering differences with the desktop environment 39Obtaining CppDroid Help 40Working with the Help documentation 40Getting community support 41Using the free examples 42Accessing the tutorials 43CHAPTER 3: CREATING YOUR FIRST C++ APPLICATION 45Code::Blocks Creating a Project 46Understanding projects 46Defining your first project 47Building and executing your first application 52Typing the Code 53Starting with Main 55Showing Information 55Doing some math 60Tabbing your output 66Let Your Application Run Away 67CHAPTER 4: STORING DATA IN C++ 69Putting Your Data Places: Variables 70Creating an integer variable 70Declaring multiple variables 73Changing values 74Setting one variable equal to another 74Initializing a variable 75Creating a great name for yourself 76Manipulating Integer Variables 78Adding integer variables 78Subtracting integer variables 82Multiplying integer variables 84Dividing integer variables 86Characters 88Null character 89Nonprintable and other cool characters 89Strings 93Getting a part of a string 94Changing part of a string 95Adding onto a string 96Adding two strings 97Making Decisions Using Conditional Operators 98Telling the Truth with Boolean Variables 100Reading from the Console 102CHAPTER 5: DIRECTING THE APPLICATION FLOW 105Doing This or Doing That 106Evaluating Conditions in C++ 107Finding the right C++ operators 108Combining multiple evaluations 110Including Evaluations in C++ Conditional Statements 111Deciding what if and also what else 112Going further with the else and if 113Repeating Actions with Statements That Loop 115Understanding how computers use loops 116Looping situations 116Looping for 117Performing a simple for loop 118Using multiple initialization variables 123Working with ranges 126Placing a condition within the declaration 128Letting C++ determine the type 129Looping while 130Doing while 132Breaking and continuing 133Breaking 134Continuing 135Nesting loops 136CHAPTER 6: DIVIDING YOUR WORK WITH FUNCTIONS 139Dividing Your Work 139Calling a Function 144Passing a variable 146Passing multiple variables 147Writing Your Own Functions 148Defining the AddOne() function 149Seeing how AddOne() is called 150Taking the AddOne() Function apart 150Considering the AddOne() parameter 151Understanding the AddOne() name and type 152Improving On the Basic Function 153Using multiple parameters or no parameters 153Returning nothing 156Keeping your variables local 157Forward references and function prototypes 159Writing two versions of the same function 161Calling All String Functions 163Inserting a string into a string 163Removing parts of a string 164Replacing parts of a string 164Using the string functions together 164Understanding main() 165CHAPTER 7: SPLITTING UP SOURCE CODE FILES 169Creating Multiple Source Files 170Adding a new source code file 170Removing an existing source code file 173Creating a project with multiple existing files 173Getting multiple files to interact 177Sharing with Header Files 179Adding the header only once 182Using angle brackets or quotes 182Sharing Variables among Source Files 183Using the Mysterious Header Wrappers 185CHAPTER 8: REFERRING TO YOUR DATA THROUGH POINTERS 187Understanding the Changes in Pointers for C++ 20 188Avoiding broken code 188Considering the issues 189Writing cleaner and less bug-prone code 191Heaping and Stacking the Variables 192Getting a variable’s address 196Changing a variable by using a pointer 198Pointing at a string 200Pointing to something else 203Tips on pointer variables 204Creating New Raw Pointers 205Using new 206Using an initializer 208Freeing Raw Pointers 209Working with Smart Pointers 211Creating smart pointers using std::unique_ptr and std::shared_ptr 212Defining nullable values using std::optional and std::nullopt 216Passing Pointer Variables to Functions 218Returning Pointer Variables from Functions 221PART 2: UNDERSTANDING OBJECTS AND CLASSES 225CHAPTER 1: WORKING WITH CLASSES 227Understanding Objects and Classes 227Classifying classes and objects 230Describing methods and data 231Implementing a class 232Separating method code 237The parts of a class 240Working with a Class 241Accessing members 241Using classes and raw pointers 244Using classes and smart pointers 248Passing objects to functions 249Using const parameters in functions 251Using the this pointer 252Overloading methods 256Starting and Ending with Constructors and Destructors 259Starting with constructors 259Ending with destructors 260Sampling constructors and destructors 260Adding parameters to constructors 263Building Hierarchies of Classes 264Creating a hierarchy in C++ 265Understanding types of inheritance 266Creating and Using Object Aliases 267CHAPTER 2: USING ADVANCED C++ FEATURES 269Filling Your Code with Comments 270Converting Types 272Understanding how int and string conversions work 272Seeing int and string conversions in action 273Considering other conversion issues 276Reading from the Console 277Understanding Preprocessor Directives 282Understanding the basics of preprocessing 282Creating constants and macros with #define 283Performing conditional compilation 286Exercising the basic preprocessor directives 288Using Constants 292Using Switch Statements 295Supercharging enums with Classes 298Working with Random Numbers 300Storing Data in Arrays 302Declaring and accessing an array 303Arrays of pointers 304Passing arrays to functions 306Adding and subtracting pointers 307CHAPTER 3: PLANNING AND BUILDING OBJECTS 309Recognizing Objects 310Observing the Mailboxes class 312Observing the Mailbox class 314Finding other objects 315Encapsulating Objects 316Considering the Application Programming Interface 316Understanding properties 316Choosing between private and protected 318Defining a process 318Implementing properties 319Building Hierarchies 322Establishing a hierarchy 322Protecting members when inheriting 324Overriding methods 330Specializing with polymorphism 332Getting abstract about things 333CHAPTER 4: BUILDING WITH DESIGN PATTERNS 335Delving Into Pattern History 336Introducing a Simple Pattern: the Singleton 337Using an existing pattern 337Creating a singleton pattern class 338Watching an Instance with an Observer 341Understanding the observer pattern 341Defining an observer pattern class 343Observers and the Standard C++ Library 346Automatically adding an observer 347Mediating with a Pattern 349Defining the mediator pattern scenario 350Outlining the car example 351Creating the car example 354BOOK 3: UNDERSTANDING FUNCTIONAL PROGRAMMING 367CHAPTER 1: CONSIDERING FUNCTIONAL PROGRAMMING 369Understanding How Functional Programming Differs 370Defining an Impure Language 373Considering the requirements 373Understanding the C++ functional limitations 374Seeing Data as Immutable 375Working with immutable variables 376Working with immutability in classes and structures 377Creating constant expressions 378Considering the Effects of State 381Eliminating Side Effects 382Contrasting declarations and functions 383Associating functions with side effects 384Removing side effects 385Creating a declarative C++ example 387Understanding the Role of auto 388Passing Functions to Functions 390Seeing a simple example of function input 391Using transforms 393Using Lambda Expressions for Implementation 394CHAPTER 2: WORKING WITH LAMBDA EXPRESSIONS 397Creating More Readable and Concise C++ Code 398Defining the Essential Lambda Expression 399Defining the parts of a lambda expression 399Relying on computer detection of return type 401Using the auto keyword with lambda expressions 404Using lambda expressions as macros 405Developing with Lambda Expressions 406Using lambda expressions with classes and structures 407Working with the capture clause 408Sorting data using a lambda expression 411Specifying that the lambda expression throws exceptions 413CHAPTER 3: ADVANCED LAMBDA EXPRESSIONS 415Considering the C++ 20 Lambda Extensions 416Defining an immediate function 416Using = and this in captures 417Finding other changes 418Working in Unevaluated Contexts 418Using Assignable Stateless Lambda Expressions 420Dealing with Pack Expansions 422Considering the template 422Processing the variables using recursion 423Processing the variables using a lambda expression 424BOOK 4: FIXING PROBLEMS 427CHAPTER 1: DEALING WITH BUGS 429It’s Not a Bug It’s a Feature! 430Make Your Application Features Look Like Features 431Anticipating (Almost) Everything 432Considering menus 432Dealing with textual input 435Performing string processing 437Avoiding Mistakes, Plain and Simple 441CHAPTER 2: DEBUGGING AN APPLICATION 443Programming with Debuggers 444Running the debugger 446Recognizing the parts of the Code::Blocks debugger 453Debugging with Different Tools 455Debugging a Code::Blocks Application with Command-Line Arguments 456CHAPTER 3: STOPPING AND INSPECTING YOUR CODE 457Setting and Disabling Breakpoints 458Setting a breakpoint in Code::Blocks 459Enabling and disabling breakpoints 460Watching, Inspecting, and Changing Variables 463Watching the variables 465Changing values 466CHAPTER 4: TRAVELING ABOUT THE STACK 469Stacking Your Data 470Moving about the stack 471Storing local variables 473Debugging with Advanced Features 475Viewing threads 475Tracing through assembly code 475BOOK 5: ADVANCED PROGRAMMING 479CHAPTER 1: WORKING WITH ARRAYS, POINTERS, AND REFERENCES 481Building Up Arrays 482Declaring arrays 482Arrays and pointers 484Using multidimensional arrays 488Arrays and command-line parameters 492Allocating an array on the heap 494Deleting an array from the heap 494Storing arrays of pointers and arrays of arrays 495Building constant arrays 498Pointing with Pointers 498Becoming horribly complex 499Pointers to functions 505Pointing a variable to a method 506Pointing to static methods 509Referring to References 510Reference variables 510Returning a reference from a function 511CHAPTER 2: CREATING DATA STRUCTURES 515Working with Data 515The great variable roundup 516Expressing variables from either side 518Casting a spell on your data 520Comparing casting and converting 521Casting safely with C++ 523Structuring Your Data 529Structures as component data types 531Equating structures 531Returning compound data types 532Naming Your Space 534Creating a namespace 534Employing using namespace 535Using variables 537Using part of a namespace 538CHAPTER 3: CONSTRUCTORS, DESTRUCTORS, AND EXCEPTIONS 541Constructing and Destructing Objects 542Overloading constructors 542Initializing members 543Adding a default constructor 548Functional constructors 550Calling one constructor from another 553Copying instances with copy constructors 555When constructors go bad 557Destroying your instances 558Virtually inheriting destructors 560Programming the Exceptions to the Rule 563Creating a basic try catch block 563Using multiple catch blocks 565Throwing direct instances 566Catching any exception 567Rethrowing an exception 568Using a standard category 570CHAPTER 4: ADVANCED CLASS USAGE 571Inherently Inheriting Correctly 572Morphing your inheritance 572Avoiding polymorphism 573Adjusting access 574Avoiding variable naming conflicts 575Using class-based access adjustment 576Returning something different, virtually speaking 577Multiple inheritance 581Virtual inheritance 584Friend classes and functions 588Using Classes and Types within Classes 591Nesting a class 591Types within classes 597CHAPTER 5: CREATING CLASSES WITH TEMPLATES 601Templatizing a Class 602Considering types 602Defining the need for templates 602Creating and using a template 605Understanding the template keyword 607Going Beyond the Basics 609Separating a template from the function code 609Including static members in a template 611Parameterizing a Template 612Putting different types in the parameter 613Including multiple parameters 616Working with non-type parameters 619Typedefing a Template 622Deriving Templates 623Deriving classes from a class template 623Deriving a class template from a class 626Deriving a class template from a class template 627Templatizing a Function 630Overloading and function templates 632Templatizing a method 635CHAPTER 6: PROGRAMMING WITH THE STANDARD LIBRARY 637Architecting the Standard Library 638Containing Your Classes 638Storing in a vector 639Working with std::array 642Mapping your data 643Containing instances, pointers, or references 644Working with copies 648Comparing instances 649Iterating through a container 655A map of pairs in your hand 658The Great Container Showdown 658Associating and storing with a set 658Unionizing and intersecting sets 662Listing with list 664Stacking the deque 669Waiting in line with stacks and queues 670Copying Containers 673Creating and Using Dynamic Arrays 675Working with Unordered Data 677Using std::unordered_set to create an unordered set 677Manipulating unordered sets 677Working with Ranges 679BOOK 6: READING AND WRITING FILES 681CHAPTER 1: FILING INFORMATION WITH THE STREAMS LIBRARY 683Seeing a Need for Streams 684Programming with the Streams Library 686Getting the right header file 686Opening a file 687Reading from a file 690Reading and writing a file 691Working with containers 692Handling Errors When Opening a File 693Flagging the ios Flags 695CHAPTER 2: WRITING WITH OUTPUT STREAMS 697Inserting with the

Regulärer Preis: 29,99 €
Produktbild für Programming Kotlin Applications

Programming Kotlin Applications

LEARN TO PROGRAM WITH KOTLIN, ONE OF THE FASTEST-GROWING PROGRAMMING LANGUAGES AVAILABLE TODAYProgramming Kotlin Applications: Building Mobile and Server-Side Applications with Kotlin drops readers into the fast lane for learning to develop with the Kotlin programming language. Authored by accomplished cloud consultant and technology professional Brett McLaughlin, Programming Kotlin Applications provides readers with the pragmatic and practical advice they need to build their very first Kotlin applications.Designed to give readers a thorough understanding of Kotlin that goes beyond mere mobile programming, this book will help you:* Learn how to develop your first Kotlin project* Understand how Kotlin securely protects and stores information* Advocate for using Kotlin in your own professional and personal environments* Understand Kotlin's goals and how to use it as its best* Know when to avoid using KotlinProgramming Kotlin Applications is written in a highly approachable and accessible way without the fluff and unrealistic samples that characterize some of its competitor guides. Perfect for developers familiar with another object-oriented programming language like Java or Ruby, or for people who want to advance their skillset in the Kotlin environment, this book is an indispensable addition to any programmer’s library.About the author BRETT MCLAUGHLIN has over two decades of experience working and writing in technology. He focuses on cloud and enterprise computing and has become a recognized and trusted name in helping organizations migrate to the cloud, especially with Amazon Web Services. He has led large-scale cloud migrations for NASA's Earth Science program as well as the RockCreek Group's financial platform. He is a sought-after speaker, author, and educator. Visit us at wrox.com for free code samples. Introduction xxvCHAPTER 1: OBJECTS ALL THE WAY DOWN 1Kotlin: A New Programming Language 1What is Kotlin? 2What Does Kotlin Add to Java? 3Kotlin is Object-Oriented 3Interlude: Set Up Your Kotlin Environment 4Install Kotlin (and an IDE) 4Install IntelliJ 5Create Your Kotlin Program 8Compile and Run Your Kotlin Program 9Fix Any Errors as They Appear 10Install Kotlin (and Use the Command Line) 10Command-Line Kotlin on Windows 10Command-Line Kotlin on Mac OS X 11Command-Line Kotlin on UNIX-Based Systems 12Verify Your Command-Line Installation 12Creating Useful Objects 13Pass In Values to an Object Using Its Constructor 13Print an Object with toString() 14Terminology Update: Functions and Methods 15Print an Object (and Do It with Shorthand) 15Override the toString() Method 16All Data is Not a Property Value 17Initialize an Object and Change a Variable 19Initialize a Class with a Block 19Kotlin Auto-Generates Getters and Setters 20Terminology Update: Getters, Setters, Mutators, Accessors 20Constants Can’t Change (Sort of) 21CHAPTER 2: IT’S HARD TO BREAK KOTLIN 25Upgrade Your Kotlin Class Game 25Name a File According to Its Class 26Organize Your Classes with Packages 27Put Person in a Package 28Classes: The Ultimate Type in Kotlin 31Kotlin Has a Large Number of Types 31Numbers in Kotlin 31Letters and Things 32Truth or Fiction 33Types Aren’t Interchangeable (Part 1) 33You Must Initialize Your Properties 34Types Aren’t Interchangeable (Part 2) 35You Can Explicitly Tell Kotlin What Type to Use 36Try to Anticipate How Types Will Be Used 37It’s Easy to Break Kotlin (Sort of) 37Overriding Property Accessors and Mutators 37Custom-Set Properties Can’t Be in a Primary Constructor 38Move Properties Out of Your Primary Constructors 38Initialize Properties Immediately 39Try to Avoid Overusing Names 41Override Mutators for Certain Properties 41Classes Can Have Custom Behavior 43Define a Custom Method on Your Class 43Every Property Must Be Initialized 44Assign an Uninitialized Property a Dummy Value 45Tell Kotlin You’ll Initialize a Property Later 45Assign Your Property the Return Value from a Function 46Sometimes You Don’t Need a Property! 47TYPE SAFETY CHANGES EVERYTHING 49Writing Code is Rarely Linear 49CHAPTER 3: KOTLIN IS EXTREMELY CLASSY 51Objects, Classes, and Kotlin 51All Classes Need an equals(x) Method 52Equals(x) is Used to Compare Two Objects 52Override equals(x) to Make It Meaningful 54Every Object is a Particular Type 56A Brief Introduction to Null 58Every Object Instance Needs a Unique hashCode() 59All Classes Inherit from Any 59Always Override hashCode() and equals(x) 61Default Hash Codes Are Based on Memory Location 63Use Hash Codes to Come Up with Hash Codes 63Searching (and Other Things) Depend on Useful and Fast equals(x) and hashCode() 64Multiple Properties to Differentiate Them in hashCode() 65Use == over equals(x) for Speed 66A Quick Speed Check on hashCode() 66Basic Class Methods Are Really Important 67CHAPTER 4: INHERITANCE MATTERS 69Good Classes Are Not Always Complex Classes 69Keep It Simple, Stupid 70Keep It Flexible, Stupid 71Classes Can Define Default Values for Properties 73Constructors Can Accept Default Values 74Kotlin Expects Arguments in Order 74Specify Arguments by Name 74Change the Order of Arguments (If You Need) 75Secondary Constructors Provide Additional Construction Options 76Secondary Constructors Come Second 76Secondary Constructors Can Assign Property Values 77You Can Assign null to a Property . . . Sometimes 79null Properties Can Cause Problems 81Handle Dependent Values with Custom Mutators 82Set Dependent Values in a Custom Mutator 82All Property Assignments Use the Property’s Mutator 83Nullable Values Can Be Set to null! 84Limit Access to Dependent Values 86When Possible, Calculate Dependent Values 87You Can Avoid Parentheses with a Read-Only Property 88Need Specifics? Consider a Subclass 91Any is the Base Class for Everything in Kotlin 91{ . . . } Is Shorthand for Collapsed Code 93A Class Must Be Open for Subclassing 94Terminology: Subclass, Inherit, Base Class, and More 95A Subclass Must Follow Its Superclass’s Rules 96A Subclass Gets Behavior from All of Its Superclasses 96Your Subclass Should Be Different Than Your Superclass 97Subclass Constructors Often Add Arguments 97Don’t Make Mutable What Isn’t Mutable 98Sometimes Objects Don’t Exactly Map to the Real World 99Generally, Objects Should Map to the Real World 99CHAPTER 5: LISTS AND SETS AND MAPS, OH MY! 101Lists Are Just a Collection of Things 101Kotlin Lists: One Type of Collection 101Collection is a Factory for Collection Objects 102Collection is Automatically Available to Your Code 104Mutating a Mutable List 105Getting Properties from a Mutable List 105Lists (and Collections) Can Be Typed 106Give Your Lists Types 107Iterate over Your Lists 108Kotlin Tries to Figure Out What You Mean 111Lists Are Ordered and Can Repeat 111Order Gives You Ordered Access 112Lists Can Contain Duplicate Items 112Sets: Unordered but Unique 113In Sets, Ordering is Not Guaranteed 114When Does Order Matter? 115Sort Lists (and Sets) on the Fly 115Sets: No Duplicates, No Matter What 116Sets “Swallow Up” Duplicates 116Sets Use equals(x) to Determine Existing Membership 116Using a Set? Check equals(x) 119Iterators Aren’t (Always) Mutable 119Maps: When a Single Value Isn’t Enough 119Maps Are Created by Factories 120Use Keys to Find Values 120How Do You Want Your Value? 121Filter a Collection by . . . Anything 121Filter Based on a Certain Criterion 122Filter Has a Number of Useful Variations 123Collections: For Primitive and Custom Types 123Add a Collection to Person 124Allow Collections to Be Added to Collection Properties 126Sets and MutableSets Aren’t the Same 127Collection Properties Are Just Collections 128CHAPTER 6: THE FUTURE (IN KOTLIN) IS GENERIC 129Generics Allow Deferring of a Type 129Collections Are Generic 129Parameterized Types Are Available Throughout a Class 130Generic: What Exactly Does It Refer To? 131Generics Try to Infer a Type When Possible 132Kotlin Looks for Matching Types 132Kotlin Looks for the Narrowest Type 132Sometimes Type Inference is Wrong 133Don’t Assume You Know Object Intent 133Kotlin Doesn’t Tell You the Generic Type 134Just Tell Kotlin What You Want! 134Covariance: A Study in Types and Assignment 134What about Generic Types? 135Some Languages Take Extra Work to Be Covariant 137Kotlin Actually Takes Extra Work to Be Covariant, Too 137Sometimes You Have to Make Explicit What is Obvious 137Covariant Types Limit the Input Type as Well as the Output Type 137Covariance is Really about Making Inheritance Work the Way You Expect 138Contravariance: Building Consumers from Generic Types 138Contravariance: Limiting What Comes Out Rather Than What Comes In 139Contravariance Works from a Base Class Down to a Subclass 141Contravariant Classes Can’t Return a Generic Type 141Does Any of This Really Matter? 142Unsafevariance: Learning The Rules, then Breaking Them 142Typeprojection Lets You Deal with Base Classes 143Variance Can Affect Functions, Not Just Classes 143Type Projection Tells Kotlin to Allow Subclasses as Input for a Base Class 144Producers Can’t Consume and Consumers Can’t Produce 145Variance Can’t Solve Every Problem 145CHAPTER 7: FLYING THROUGH CONTROL STRUCTURES 147Control Structures Are the Bread and Butter of Programming 147If and Else: The Great Decision Point 148!! Ensures Non-Nullable Values 148Control Structures Affect the Flow of Your Code 149if and else Follow a Basic Structure 150Expressions and if Statements 151Use the Results of an if Statement Directly 152Kotlin Has No Ternary Operator 153A Block Evaluates to the Last Statement in That Block 153if Statements That Are Assigned Must Have else Blocks 154When is Kotlin’s Version of Switch 154Each Comparison or Condition is a Code Block 155Handle Everything Else with an else Block 156Each Branch Can Support a Range 157Each Branch Usually Has a Partial Expression 158Branch Conditions Are Checked Sequentially 159Branch Conditions Are Just Expressions 159When Can Be Evaluated as a Statement, Too 160For is for Looping 161For in Kotlin Requires an Iterator 162You Do Less, Kotlin Does More 163For Has Requirements for Iteration 163You Can Grab Indices Instead of Objects with for 164Use While to Execute until a Condition is False 167While is All about a Boolean Condition 167A Wrinkle in while: Multiple Operators, One Variable 168Combine Control Structures for More Interesting Solutions 169Do . . . While Always Runs Once 170Every do . . . while Loop Can Be Written as a while Loop 170If Something Must Happen, Use do . . . while 171do . . . while Can Be a Performance Consideration 175Get Out of a Loop Immediately with Break 176Break Skips What’s Left in a Loop 176You Can Use a Label with break 177Go to the Next Iteration Immediately with Continue 178Continue Works with Labels as Well 179If versus continue: Mostly Style over Substance 179Return Returns 180CHAPTER 8: DATA CLASSES 183Classes in the Real World Are Varied but Well Explored 183Many Classes Share Common Characteristics 183Common Characteristics Result in Common Usage 185A Data Class Takes the Work Out of a Class Focused on Data 185Data Classes Handle the Basics of Data for You 185The Basics of Data Includes hashCode() and equals(x) 186Destructuring Data through Declarations 188Grab the Property Values from a Class Instance 188Destructuring Declarations Aren’t Particularly Clever 189Kotlin is Using componentN() Methods to Make Declarations Work 190You Can Add componentN() Methods to Any Class 191If You Can Use a Data Class, You Should 192You Can “Copy” an Object or Make a Copy Of an Object 192Using = Doesn’t Actually Make a Copy 192If You Want a Real Copy, Use copy() 193Data Classes Require Several Things from You 194Data Classes Require Parameters and val or var 194Data Classes Cannot Be Abstract, Open, Sealed, or Inner 195Data Classes Add Special Behavior to Generated Code 195You Can Override Compiler-Generated Versions of Many Standard Methods 196Supertype Class Functions Take Precedence 196Data Classes Only Generate Code for Constructor Parameters 197Only Constructor Parameters Are Used in equals() 199Data Classes Are Best Left Alone 200CHAPTER 9: ENUMS AND SEALED, MORE SPECIALTY CLASSES 203Strings Are Terrible as Static Type Representations 203Strings Are Terrible Type Representations 204Capitalization Creates Comparison Problems 205This Problem Occurs All the Time 206String Constants Can Help . . . Some 206Companion Objects Are Single Instance 207Constants Must Be Singular 208Companion Objects Are Singletons 209Companion Objects Are Still Objects 210You Can Use Companion Objects without Their Names 211Using a Companion Object’s Name is Optional 211Using a Companion Object’s Name is Stylistic 213Companion Object Names Are Hard 214You Can Skip the Companion Object Name Altogether 215Enums Define Constants and Provide Type Safety 216Enums Classes Provide Type-Safe Values 216Enums Classes Are Still Classes 218Enums Give You the Name and Position of Constants 219Each Constant in an enum is an Object 219Each Constant Can Override Class-Level Behavior 220Sealed Classes Are Type-Safe Class Hierarchies 221Enums and Class Hierarchies Work for Shared Behavior 222Sealed Classes Address Fixed Options and Non-Shared Behavior 222Sealed Classes Don’t Have Shared Behavior 223Sealed Classes Have a Fixed Number of Subclasses 224Subclasses of a Sealed Class Don’t Always Define Behavior 225when Requires All Sealed Subclasses to Be Handled 225when Expressions Must Be Exhaustive for Sealed Classes 226else Clauses Usually Don’t Work for Sealed Classes 228else Clauses Hide Unimplemented Subclass Behavior 229CHAPTER 10: FUNCTIONS AND FUNCTIONS AND FUNCTIONS 233Revisiting the Syntax of a Function 233Functions Follow a Basic Formula 233Function Arguments Also Have a Pattern 235Default Values in Constructors Are Inherited 237Default Values in Functions Are Inherited 238Default Values in Functions Cannot Be Overridden 239Default Values Can Affect Calling Functions 239Calling Functions Using Named Arguments is Flexible 241Function Arguments Can’t Be Null Unless You Say So 241Functions Follow Flexible Rules 243Functions Actually Return Unit by Default 243Functions Can Be Single Expressions 244Single-Expression Functions Don’t Have Curly Braces 245Single-Expression Functions Don’t Use the return Keyword 246Single-Expression Functions Can Infer a Return Type 246Type Widening Results in the Widest Type Being Returned 248Functions Can Take Variable Numbers of Arguments 249A vararg Argument Can Be Treated Like an Array 251Functions in Kotlin have Scope 251Local Functions Are Functions Inside Functions 252Member Functions Are Defined in a Class 252Extension Functions Extend Existing Behavior without Inheritance 253Extend an Existing Closed Class Using Dot Notation 253this Gives You Access to the Extension Class 255Function Literals: Lambdas and Anonymous Functions 257Anonymous Functions Don’t Have Names 257You Can Assign a Function to a Variable 258Executable Code Makes for an “Executable” Variable 259Higher-Order Functions Accept Functions as Arguments 260The Result of a Function is Not a Function 260Function Notation Focuses on Input and Output 261You Can Define a Function Inline 263Lambda Expressions Are Functions with Less Syntax 264You Can Omit Parameters Altogether 266Lambda Expressions Use it for Single Parameters 266It Makes Lambdas Work More Smoothly 267Lambda Expressions Return the Last Execution Result 267Trailing Functions as Arguments to Other Functions 268Lots of Functions, Lots of Room for Problems 268CHAPTER 11: SPEAKING IDIOMATIC KOTLIN 271Scope Functions Provide Context to Code 271Use Let to Provide Immediate Access to an Instance 272let Gives You it to Access an Instance 273The Scoped Code Blocks Are Actually Lambdas 274let and Other Scope functions Are Largely about Convenience 275You Can Chain Scoped Function Calls 275An Outer it “Hides” an Inner it 276Chaining Scope Functions and Nesting Scope Functions Are Not the Same 277Nesting Scope Functions Requires Care in Naming 277Chaining Scope Functions is Simpler and Cleaner 278Prefer Chaining over Nesting 279Many Chained Functions Start with a Nested Function 280You Can Scope Functions to Non-Null Results 280Accepting null Values Isn’t a Great Idea 282Scope Functions Give You Null Options 282Scope Functions Work on Other Functions . . . In Very Particular Ways 284With is a Scope Function for Processing an Instance 287with Uses this as Its Object Reference 287A this Reference is Always Available 288with Returns the Result of the Lambda 289Run is a Code Runner and Scope Function 289Choosing a Scope Function is a Matter of Style and Preference 290run Doesn’t Have to Operate on an Object Instance 291Apply Has a Context Object but No Return Value 292apply Operates Upon an Instance 292apply Returns the Context Object, Not the Lambda Result 293?: is Kotlin’s Elvis Operator 293Also Gives You an Instance . . . but Operates on the Instance First 294also is Just Another Scope Function 295also Executes before Assignment 296Scope Functions Summary 298CHAPTER 12: INHERITANCE, ONE MORE TIME, WITH FEELING 303Abstract Classes Require a Later Implementation 303Abstract Classes Cannot Be Instantiated 304Abstract Classes Define a Contract with Subclasses 306Abstract Classes Can Define Concrete Properties and Functions 308Subclasses Fulfill the Contract Written by an Abstract Class 310Subclasses Should Vary Behavior 310The Contract Allows for Uniform Treatment of Subclasses 311Interfaces Define Behavior but Have No Body 313Interfaces and Abstract Classes Are Similar 315Interfaces Cannot Maintain State 316A Class’s State is the Values of Its Properties 317An Interface Can Have Fixed Values 317Interfaces Can Define Function Bodies 318Interfaces Allow Multiple Forms of Implementation 319A Class Can Implement Multiple Interfaces 320Interface Property Names Can Get Confusing 321Interfaces Can Decorate a Class 321Delegation Offers Another Option for Extending Behavior 322Abstract Classes Move from Generic to Specific 322More Specificity Means More Inheritance 324Delegating to a Property 326Delegation Occurs at Instantiation 329Inheritance Requires Forethought and Afterthought 330CHAPTER 13: KOTLIN: THE NEXT STEP 331Programming Kotlin for Android 331Kotlin for Android is Still Just Kotlin 331Move from Concept to Example 333Kotlin and Java Are Great Companions 333Your IDE is a Key Component 333Kotlin is Compiled to Bytecode for the Java Virtual Machine 335Gradle Gives You Project Build Capabilities 335When Kotlin Questions Still Exist 335Use the Internet to Supplement Your Own Needs and Learning Style 336Now What? 337Index 339

Regulärer Preis: 28,99 €
Produktbild für Modern PyQt

Modern PyQt

Dive into GUI application development and create useful applications for practical and relevant topics in the fields of business, computer science, and research. This book uses a realistic approach to help get you started designing and building the applications you need while learning new tools along the way.PyQt has a vast collection of tools that you can use to create GUIs, many of which seem to go unexplored. In Modern PyQt, you will go beyond some of the fundamental topics of GUI development in order to begin building useful desktop applications. Through extensive examples and hands-on projects, you will explore how to make applications for data analysis and visualization using graphs, computer vision with OpenCV and PyQt, the basics of networking, handling databases with SQL, and more!Whether you are looking for new ideas to practice your skills as a programmer or you have a specific goal in mind and need some help to get your ideas off the ground, there is something in Modern PyQt for you!WHAT YOU WILL LEARN* Create cross-platform GUIs with Python and PyQt.* Understand the important PyQt classes, widgets, and concepts needed for building interactive and practical applications. * Find out how to embed useful Python modules into your applications to create more advanced GUIs. * Build useful applications that you can improve or make into something completely new with Python and PyQt.WHO THIS BOOK IS FORIntermediate level programmers or above in Python. GUI developers with some experience designing GUIs. Even if they have never used PyQt before, the concepts learned from other toolkits, such as Tkinter or wxPython, can be carried over for developing applications with using PyQt.Joshua Willman began using Python in 2015 when he needed to build neural networks using machine learning libraries for image classification. While building large image data sets for his research, he needed to build a GUI that would simplify the workload and labeling process, which introduced him to PyQt. Since then, he has tried to dive into everything that is Python. He currently works as a Python developer, building projects to help others learn more about coding in Python for game development, AI and machine learning, and programming using micro-controllers. More recently, he set up the site redhuli.io to explore his and others’ interests in utilizing programming for creativity.He is also the author of Beginning PyQt: A Hands-on Approach to GUI Programming.

Regulärer Preis: 62,99 €
Produktbild für Machine Learning für Zeitreihen

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.

Regulärer Preis: 39,99 €
Produktbild für Android-Apps entwickeln mit Java (9. Auflg.)

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)

Regulärer Preis: 29,90 €
Produktbild für Introduction to Programming with C++ for Engineers

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

Regulärer Preis: 77,99 €
Produktbild für Spiele programmieren mit Unity für Kids (2. Auflg.)

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)

Regulärer Preis: 24,99 €
Produktbild für Microservices mit Go

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

Regulärer Preis: 39,90 €
Produktbild für Android-Apps entwickeln mit Java

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

Regulärer Preis: 29,90 €
Produktbild für Einstieg in Data Science mit R

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

Regulärer Preis: 29,90 €
Produktbild für Anwendungsentwicklung auf der SAP Cloud Platform

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

Regulärer Preis: 79,90 €
Produktbild für Traefik API Gateway for Microservices

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

Regulärer Preis: 62,99 €
Produktbild für Spiele programmieren mit Unity

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.

Regulärer Preis: 24,99 €
Produktbild für Beginning Java MVC 1.0

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

Regulärer Preis: 52,99 €
Produktbild für JavaScript für Kids

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?

Regulärer Preis: 22,00 €