Programmierung
Einführung in die moderne Assembler-Programmierung
Einführung in die moderne Assembler-Programmierung. RISC-V spielerisch und fundiert lernen.Wir nutzen dabei den offenen Prozessor-Standard RISC-V, der auch gezielt für Forschung und Lehre entwickelt wurde. Das macht die Sache für alle einfacher, denn der Kern-Befehlssatz, den wir hier vorstellen, umfasst weniger als 50 Instruktionen. Noch besser: Wer RISC-V lernt, lernt fürs Leben, denn der Befehlssatz ist »eingefroren« und ändert sich nicht mehr.Leseprobe (PDF-Link)Über den Autor:Scot W. Stevenson programmiert seit den Tagen von Acht-Bit-Prozessoren, wie dem 6502 in Assembler. Vom Bytegeschiebe konnten ihn weder sein Medizinstudium, ein Graduiertenkolleg Journalismus, mehr als zwei Jahrzehnte als Nachrichtenredakteur noch ein Blog über die USA abbringen. Er behauptet trotzdem, jederzeit damit aufhören zu können.Für alle, die speziell RISC-V-Assembler-Programmierung lernen wollen, gehen wir im Mittelteil den Aufbau des Prozessors durch, wobei der Schwerpunkt auf der Software liegt. Wir stellen die einzelnen Befehle vor, warnen vor Fallstricken und verraten Tricks. Die Schwachstellen des Standards werden beleuchtet und der Einsatz von KI als Hilfsmittel besprochen. Als offener, freier Standard wird RISC-V auch zunehmend für Hobby- und Studentenprojekte eingesetzt, wo der Compiler nur schlecht oder gar nicht an die Hardware angepasst ist, falls es überhaupt einen gibt.Der letzte Teil zeigt, dass dieses Buch auch aus schierer Begeisterung für Assembler heraus entstand. Wer sich diebisch über jedes eingesparte Byte freut, wird es lieben.
Machine Learning - kurz & gut
Der kompakte Schnelleinstieg in Machine Learning und Deep Learning - Die 3. Auflage des Bestsellers wurde ergänzt durch Kapitel zu Large Language Models wie ChatGPT und zu MLOps - Anhand konkreter Datensätze lernst du einen typischen Workflow kennen: vom Datenimport über Datenbereinigung, Datenanalyse bis hin zur Datenvisualisierung - Nicht nur für zukünftige Data Scientists und ML-Profis geeignet, sondern durch seine durchdachte Didaktik auch für Interessierte, die nur am Rande mit ML zu tun haben, wie z.B. Softwareentwickler*innen Machine Learning beeinflusst heute beinahe alle Bereiche der Technik und der Gesellschaft. Dieses Buch bietet Interessierten, die einen technischen Hintergrund haben, die schnellstmögliche Einführung in das umfangreiche Themengebiet des maschinellen Lernens und der statistischen Datenanalyse. Dabei werden folgende Themen behandelt und mit praktischen Beispielen veranschaulicht: - Datenvorbereitung, Feature-Auswahl, Modellvalidierung - Supervised und Unsupervised Learning - Neuronale Netze und Deep Learning - Reinforcement Learning - LLMs – moderne Sprachmodelle - MLOps – Machine Learning für die Praxis Anhand von Beispieldatensätzen lernst du einen typischen Workflow kennen: vom Datenimport über Datenbereinigung, Datenanalyse bis hin zur Datenvisualisierung. Mit den Codebeispielen kannst du in Jupyter Notebooks experimentieren. Sie basieren auf Python und den Bibliotheken Scikit-Learn, Pandas, NumPy, TensorFlow und Keras. Nach der Lektüre dieses Buchs hast du einen Überblick über das gesamte Thema und kannst Ansätze einordnen und bewerten. Das Buch vermittelt dir eine solide Grundlage, um erste eigene Machine-Learning-Modelle zu trainieren und vertiefende Literatur zu verstehen.
Generative Artificial Intelligence
This book explains the field of Generative Artificial Intelligence (AI), focusing on its potential and applications, and aims to provide you with an understanding of the underlying principles, techniques, and practical use cases of Generative AI models.The book begins with an introduction to the foundations of Generative AI, including an overview of the field, its evolution, and its significance in today’s AI landscape. It focuses on generative visual models, exploring the exciting field of transforming text into images and videos. A chapter covering text-to-video generation provides insights into synthesizing videos from textual descriptions, opening up new possibilities for creative content generation. A chapter covers generative audio models and prompt-to-audio synthesis using Text-to-Speech (TTS) techniques. Then the book switch gears to dive into generative text models, exploring the concepts of Large Language Models (LLMs), natural language generation (NLG), fine-tuning, prompt tuning, and reinforcement learning. The book explores techniques for fixing LLMs and making them grounded and indestructible, along with practical applications in enterprise-grade applications such as question answering, summarization, and knowledge-based generation.By the end of this book, you will understand Generative text, and audio and visual models, and have the knowledge and tools necessary to harness the creative and transformative capabilities of Generative AI.WHAT YOU WILL LEARN* What is Generative Artificial Intelligence?* What are text-to-image synthesis techniques and conditional image generation?* What is prompt-to-audio synthesis using Text-to-Speech (TTS) techniques?* What are text-to-video models and how do you tune them?* What are large language models, and how do you tune them?WHO THIS BOOK IS FORThose with intermediate to advanced technical knowledge in artificial intelligence and machine learningSHIVAM SOLANKI is an accomplished Senior Advisory Data Scientist leading the AI team for a worldwide partner ecosystem to solve challenging problems using Artificial Intelligence (AI). Shivam holds a master’s degree from Texas A&M University with major coursework in Applied Statistics. Throughout his career, he has delved into various AI fields, including Machine Learning, Deep Learning, and Natural Language Processing (NLP). His expertise extends to Generative AI, where his practical experience and in-depth knowledge empower him to navigate its intricacies. As a researcher in Artificial Intelligence, Shivam has filed two patents for Machine Learning and Natural Language Processing (NLP), co-authored a book on Deep Learning, and published a paper in Generative AI.DRUPAD KHUBLANI is a skilled Senior Data Scientist and part of the revenue management team in a real estate company. His leadership in partnering with teams across marketing, call center operations, product management, customer experience, and operations has cultivated a wealth of experience, empowering him to extract actionable insights and co-create innovative solutions Drupad completed his graduate and postgraduate studies from the Indian Institute of Technology (Indian School of Mines) and Texas A&M University. Collaborating with Dr. Jean-Francois Chamberland on the development of technology to identify obstacles and gauge distances using only a monocular camera highlights Drupad's inventive approach and dedication to real-world applications, alongside his accomplishments in both the commercial and academic arenas.Chapter 1: Introduction to Generative AI.- Chapter 2: Text-to-Image Generation.- Chapter 3: From Script to Screen: Unveiling Text-to-Video Generation .- Chapter 4: Bridging Text and Audio in Generative AI.- Chapter 5: Introduction to Language Models (LLMs).- Chapter 6: Generative LLMs.- Chapter 7: Advanced Techniques for LLMs.- Chapter 8: Building Demo Applications using LLMs.- Chapter 9: Enterprise-Grade Apps using LLMs.
Deep Reinforcement Learning with Python
Gain a theoretical understanding to the most popular libraries in deep reinforcement learning (deep RL). This new edition focuses on the latest advances in deep RL using a learn-by-coding approach, allowing readers to assimilate and replicate the latest research in this field.New agent environments ranging from games, and robotics to finance are explained to help you try different ways to apply reinforcement learning. A chapter on multi-agent reinforcement learning covers how multiple agents compete, while another chapter focuses on the widely used deep RL algorithm, proximal policy optimization (PPO). You'll see how reinforcement learning with human feedback (RLHF) has been used by chatbots, built using Large Language Models, e.g. ChatGPT to improve conversational capabilities.You'll also review the steps for using the code on multiple cloud systems and deploying models on platforms such as Hugging Face Hub. The code is in Jupyter Notebook, which canbe run on Google Colab, and other similar deep learning cloud platforms, allowing you to tailor the code to your own needs.Whether it’s for applications in gaming, robotics, or Generative AI, Deep Reinforcement Learning with Python will help keep you ahead of the curve.WHAT YOU'LL LEARN* Explore Python-based RL libraries, including StableBaselines3 and CleanRL * Work with diverse RL environments like Gymnasium, Pybullet, and Unity ML* Understand instruction finetuning of Large Language Models using RLHF and PPO* Study training and optimization techniques using HuggingFace, Weights and Biases, and Optuna WHO THIS BOOK IS FORSoftware engineers and machine learning developers eager to sharpen their understanding of deep RL and acquire practical skills in implementing RL algorithms fromscratch.Nimish is a seasoned entrepreneur and an angel investor, with a rich portfolio of tech ventures in SaaS Software and Automation with AI across India, the US and Singapore. He has over 30 years of work experience. Nimish ventured into entrepreneurship in 2006 after holding leadership roles at global corporations like PwC, IBM, and Oracle.Nimish holds an MBA from Indian Institute of Management, Ahmedabad, India (IIMA), and a Bachelor of Technology in Electrical Engineering from Indian Institute of Technology, Kanpur, India (IITK).Chapter 1: Introduction to Reinforcement Learning.- Chapter 2: The Foundation – Markov Decision Processes.- Chapter 3: Model Based Approaches.- Chapter 4: Model Free Approaches.- Chapter 5: Function Approximation and Deep Reinforcement Learning.- Chapter 6: Deep Q-Learning (DQN).- Chapter 7: Improvements to DQN.- Chapter 8: Policy Gradient Algorithms.- Chapter 9: Combining Policy Gradient and Q-Learning.- Chapter 10: Integrated Planning and Learning.- Chapter 11: Proximal Policy Optimization (PPO) and RLHF.- Chapter 12: Introduction to Multi Agent RL (MARL).- Chapter 13: Additional Topics and Recent Advances.
Pro Spring Boot 3
This book will teach you how to build complex Spring applications and microservices out of the box, with minimal concern over things like configurations. Pro Spring Boot 3 will show you how to fully leverage Spring Boot 3's robust features and how to apply them to create enterprise-ready applications, microservices, and web/cloud applications that just work.Special focus is given to what's been added in the new Spring Boot 3 release, including support for Java 17 and 19; changes to Spring Security; Spring Boot Actuator with Micrometer updates; GraalVM support; RSocket service interfaces; many dependency upgrades; more flexible support for Spring Data JDBC, the new AOT (Ahead-of-Time Transformation); and much more.This book is your authoritative, pragmatic guide for increasing your enterprise Java and cloud application productivity while decreasing development time. It's a no-nonsense reference packed with casestudies that increase in complexity over the course of the book. The author, a senior solutions architect and Principal Technical instructor with VMware, the company behind the Spring Framework, shares his experience, insights, and firsthand knowledge about how Spring Boot technology works and best practices for getting the most out of it.This is an essential book for your Spring learning and reference library.WHAT YOU WILL LEARN* Build web/cloud, microservices, and enterprise applications with the Spring Boot 3 framework* Persist data with JDBC, JPA, and NoSQL databases* Message with JMS, RabbitMQ, WebSockets, and RSocket* Gain a review of Spring Cloud projects* Extend Spring Boot by creating your own Spring Boot Starter and @Enable feature* Test and deploy with Spring Boot with best practices* Understand the new AOT (Ahead-Of-Time Transformations) and the GraalVM support to go native* Use the latest version of Spring SecurityWHO THIS BOOK IS FORExperienced Spring and Java developers seeking increased productivity gains and decreased complexity and development time in their applications and software services.FELIPE GUTIERREZ is a solutions software architect with bachelor’s and master’s degrees in computer science from Instituto Tecnologico y de Estudios Superiores de Monterrey Campus Ciudad de Mexico. Felipe has over 25 years of IT experience and has developed programs for companies in multiple vertical industries, such as government, retail, healthcare, education, and banking. He is currently working as Staff Engineer for VMware, specializing in content development for Tanzu Learning and the new Spring Academy learning site, Spring Framework, Spring Cloud Native Applications, Groovy, and RabbitMQ, among other technologies. He has also worked as a solutions architect for big companies like Nokia, Apple, Redbox, IBM, and Qualcomm. He is the author of Spring Boot Messaging (Apress, 2017) and Spring Cloud Data Flow (Apress, 2020).1. Spring Boot - Quick Start.- 2. Spring Boot - Internals.- 3. Spring Boot - Web Development.- 4. Spring Boot – SQL Data Access.- 5. Spring Data with Spring Boot.- 6. Spring Data NoSQL with Spring Boot.-7. Spring Boot Reactive.- 8. Spring Boot Testing.- 9. Spring Boot Security.- 10. Messaging with Spring Boot.-11. Spring Boot Actuator.- 12. Spring Boot Native and AOT.- 13. Spring Cloud with Spring Boot.- 14. Extending Spring Boot.- 15. Spring Boot New Projects.- Appendix A. Spring Boot Migration.- Appendix B. Spring Boot GraphQL.
Beginning Mathematica and Wolfram for Data Science
Enhance your data science programming and analysis with the Wolfram programming language and Mathematica, an applied mathematical tools suite. This second edition introduces the latest LLM Wolfram capabilities, delves into the exploration of data types in Mathematica, covers key programming concepts, and includes code performance and debugging techniques for code optimization.You’ll gain a deeper understanding of data science from a theoretical and practical perspective using Mathematica and the Wolfram Language. Learning this language makes your data science code better because it is very intuitive and comes with pre-existing functions that can provide a welcoming experience for those who use other programming languages. Existing topics have been reorganized for better context and to accommodate the introduction of Notebook styles. The book also incorporates new functionalities in code versions 13 and 14 for imported and exported data.You’ll see how to use Mathematica, where data management and mathematical computations are needed. Along the way, you’ll appreciate how Mathematica provides an entirely integrated platform: its symbolic and numerical calculation result in a mized syntax, allowing it to carry out various processes without superfluous lines of code. You’ll learn to use its notebooks as a standard format, which also serves to create detailed reports of the processes carried out.WHAT YOU WILL LEARN* Create datasets, work with data frames, and create tables* Import, export, analyze, and visualize data* Work with the Wolfram data repository* Build reports on the analysis* Use Mathematica for machine learning, with different algorithms, including linear, multiple, and logistic regression; decision trees; and data clusteringWHO THIS BOOK IS FORData scientists who are new to using Wolfram and Mathematica as a programming language or tool. Programmers should have some prior programming experience, but can be new to the Wolfram language.JALIL VILLALOBOS ALVA is a Wolfram language programmer and Mathematica user. He graduated with a degree in engineering physics from the Universidad Iberoamericana in Mexico City. His research background comprises quantum physics, bionformatics, proteomics, and protein design. His academic interests cover the topics of quantum technology, bioinformatics, machine learning, artificial intelligence, stochastic processes, and space engineering. During his idle hours he likes to play soccer, swim, and listen to music.1. Introduction to Mathematica.- 2. Data Manipulation.- 3. Working with Data and Datasets.- 4. Import and Export.- 5. Data Visualization.- 6. Statistical Data Analysis.- 7. Data Exploration.- 8. Machine Learning with the Wolfram Language.- 9. Neural Networks with the Wolfram Language.- 10. Neural Network Framework.
SAP Integration Suite
Verbinden und automatisieren Sie Ihre Geschäftsanwendungen mit der SAP Integration Suite. Lernen Sie die Funktionen der Plattform kennen und finden Sie heraus, wie Sie damit eine integrierte Unternehmenslandschaft verwalten. Sie nutzen noch SAP PO oder PI? Die Experten zeigen Ihnen, wie Sie Ihre Schnittstellen migrieren und für den Einsatz in der SAP Integration Suite optimieren. Aus dem Inhalt: Plug-and-Play-IntegrationCloud IntegrationB2B- und DrittanbieterintegrationIntegration AdvisorTrading Partner ManagementAPI ManagementOpen ConnectorsSAP Event Mesh und Advanced Event MeshIntegration AssessmentEdge Integration CellCloud ConnectorPO/PI-Migration Einleitung ... 13 1. Einführung ... 19 1.1 ... Was ist Integration? ... 19 1.2 ... Konzept der Enterprise Application Integration ... 22 1.3 ... Integrationsmuster ... 24 1.4 ... SAP Integration Suite im Rahmen aktueller Trends ... 28 1.5 ... Historische Entwicklung der SAP-Integrationsplattformen ... 30 2. SAP Business Technology Platform ... 33 2.1 ... Funktionen und Lizenzierung ... 34 2.2 ... Laufzeitumgebungen ... 36 2.3 ... Grundkonfiguration eines Tenants ... 37 2.4 ... Verwaltung des SAP-BTP-Accounts ... 40 2.5 ... Services und Instanzen ... 46 2.6 ... Destinationen ... 56 2.7 ... Zusammenfassung ... 57 3. SAP Integration Suite auf einen Blick ... 59 3.1 ... Bedeutung der SAP Integration Suite ... 59 3.2 ... Architektur und Komponenten ... 60 3.3 ... Vorteile und Nachteile der SAP Integration Suite ... 69 3.4 ... Bedeutung des Apache Camel Frameworks in der SAP Integration Suite ... 70 3.5 ... SAP Integration Solution Advisory Methodology ... 73 3.6 ... Oberfläche ... 75 3.7 ... Zusammenfassung ... 97 4. Plug-and-Play-Integration ... 99 4.1 ... Vordefinierte Pakete mit dem SAP Business Accelerator Hub ... 99 4.2 ... SAP Discovery Center ... 104 4.3 ... GitHub-Integration für Best Practices und Code-Beispiele ... 109 4.4 ... Zusammenfassung ... 116 5. Cloud Integration ... 117 5.1 ... Artefakte, Integrationsobjekte und Adapter ... 117 5.2 ... Simulieren, Testen und Debuggen ... 190 5.3 ... Kundenspezifische Adapter entwickeln ... 198 5.4 ... Designrichtlinien zur Anwendung von Komponenten ... 209 5.5 ... Zusammenfassung ... 214 6. B2B- und B2G-Integration ... 215 6.1 ... Integration Advisor ... 216 6.2 ... Trading Partner Management ... 235 6.3 ... Zusammenfassung ... 250 7. Drittanbieterintegration ... 251 7.1 ... API Management ... 252 7.2 ... Open Connectors ... 287 7.3 ... Zusammenfassung ... 304 8. Enterprise Messaging ... 305 8.1 ... Eventgesteuerte Architektur ... 305 8.2 ... SAP Event Mesh ... 312 8.3 ... SAP Integration Suite, Advanced Event Mesh ... 334 8.4 ... Beispiel einer Industrie-4.0-Integration mit Event Mesh ... 336 8.5 ... Zusammenfassung ... 338 9. Cloud Connector ... 339 9.1 ... Grundlagen ... 339 9.2 ... Wichtigste Einstellungen ... 340 9.3 ... Principal Propagation ... 344 9.4 ... Zusammenfassung ... 346 10. Hybride Szenarien ... 347 10.1 ... Cloud Integration Content in SAP Process Orchestration ... 348 10.2 ... Edge Integration Cell ... 359 10.3 ... Zusammenfassung ... 373 11. Migration von SAP Process Orchestration nach SAP Integration Suite ... 375 11.1 ... Verbindung über den Cloud Connector einrichten ... 376 11.2 ... Einzelne Integrationsobjekte migrieren ... 382 11.3 ... Migration von ABAP-Proxys ... 389 11.4 ... Migration Assessment und Migration Tooling ... 396 11.5 ... Zusammenfassung ... 407 12. Praxisbeispiele ... 409 12.1 ... API für Aufträge anbieten ... 409 12.2 ... Metriken für das API Management ... 423 12.3 ... Groovy-Code-Snippets ... 426 12.4 ... Z-Feld-Erweiterung von Standardschnittstellen ... 431 12.5 ... Zusammenfassung ... 436 Anhang ... 437 A ... Glossar ... 437 B ... Abkürzungsverzeichnis ... 443 Autoren ... 445 Index ... 447
Einstieg in JavaScript
Lernen Sie Schritt für Schritt die Grundlagen der modernen JavaScript-Programmierung. Das Buch führt Sie in alle relevanten Bereiche ein: HTML und CSS, Objekte, anonyme Funktionen, Ereignisbehandlung, jQuery und Ajax. Zahlreiche anschauliche Beispielanwendungen erleichtern das Verständnis und dienen Ihnen als Vorlage für Ihre eigenen Projekte. Schon bald entwickeln Sie anspruchsvolle interaktive Programme für Ihre Website. Aus dem Inhalt: Für den EinstiegGrundlagen der ProgrammierungJavaScript-Basics: Objekte, Ereignisbehandlung, DOMJavaScript einsetzenFormulare erstellenValidierung von FormularenSchneller Datenaustausch (Ajax)CSS-Eigenschaften ändernAnimationen erstellenBrowserunabhängige Methoden verwenden (jQuery)HTML-Eigenschaften nutzenJavaScript mobilMethoden von Onsen UIWaytracking, Lage- und Beschleunigungssensoren Materialien zum Buch ... 15 1. Einführung ... 17 1.1 ... Was mache ich mit JavaScript? ... 17 1.2 ... Was kann JavaScript nicht? ... 18 1.3 ... Browser und mobile Browser ... 19 1.4 ... ECMAScript ... 19 1.5 ... Aufbau des Buchs ... 20 1.6 ... Erstes Beispiel mit HTML und CSS ... 21 1.7 ... Einige Sonderzeichen ... 28 1.8 ... JavaScript im Dokument ... 29 1.9 ... JavaScript aus externer Datei ... 31 1.10 ... Kommentare ... 32 1.11 ... Kein JavaScript möglich ... 33 2. Grundlagen der Programmierung ... 37 2.1 ... Speicherung von Werten ... 37 2.2 ... Berechnungen durchführen ... 46 2.3 ... Verschiedene Zweige eines Programms ... 53 2.4 ... Programmteile wiederholen ... 67 2.5 ... Fehler finden, Fehler vermeiden ... 80 2.6 ... Eigene Funktionen ... 89 3. Eigene Objekte ... 113 3.1 ... Objekte und Eigenschaften ... 113 3.2 ... Methoden ... 116 3.3 ... Private Member ... 118 3.4 ... Setter und Getter ... 120 3.5 ... Statische Member ... 122 3.6 ... Statische Blöcke ... 124 3.7 ... Verweis auf Nichts ... 125 3.8 ... Objekt in Objekt ... 127 3.9 ... Vererbung ... 129 3.10 ... Operationen mit Objekten ... 131 3.11 ... Objekte kopieren ... 137 4. Formulare und Ereignisse ... 141 4.1 ... Erstes Formular und erstes Ereignis ... 141 4.2 ... Senden und Zurücksetzen ... 144 4.3 ... Pflichtfelder und Kontrolle ... 149 4.4 ... Radiobuttons und Checkboxen ... 153 4.5 ... Auswahlmenüs ... 155 4.6 ... Weitere Formular-Ereignisse ... 158 4.7 ... Maus-Ereignisse ... 161 4.8 ... Wechsel des Dokuments ... 164 4.9 ... Weitere Typen und Eigenschaften ... 166 4.10 ... Dynamisch erstelltes Formular ... 183 5. Das Document Object Model (DOM) ... 187 5.1 ... Baum und Knoten ... 187 5.2 ... Knoten abrufen ... 189 5.3 ... Kindknoten ... 191 5.4 ... Knoten hinzufügen ... 193 5.5 ... Knoten ändern ... 196 5.6 ... Knoten löschen ... 200 5.7 ... Eine Tabelle erzeugen ... 201 6. Standardobjekte nutzen ... 205 6.1 ... Felder für große Datenmengen ... 205 6.2 ... Zeichenketten verarbeiten ... 234 6.3 ... Zahlen und Mathematik ... 246 6.4 ... Arbeiten mit Zeitangaben ... 257 6.5 ... Zeitliche Abläufe ... 268 6.6 ... Weitere Datenstrukturen ... 277 6.7 ... JSON ... 282 7. Änderungen mit Ajax ... 291 7.1 ... Hallo Ajax ... 291 7.2 ... Parameter senden ... 295 7.3 ... XML-Datei lesen ... 298 7.4 ... JSON-Datei lesen ... 308 8. Gestaltung mit Cascading Style Sheets (CSS) ... 313 8.1 ... Aufbau und Regeln ... 314 8.2 ... Ändern von Eigenschaften ... 321 8.3 ... Weitere Möglichkeiten ... 336 9. Zweidimensionale Grafiken und Animationen mit SVG ... 343 9.1 ... Eine SVG-Datei erstellen ... 343 9.2 ... Grundformen ... 346 9.3 ... Pfade ... 349 9.4 ... Animationen ... 354 9.5 ... Rotationen ... 358 9.6 ... SVG und JavaScript ... 360 9.7 ... Dynamische SVG-Elemente ... 361 10. Dreidimensionale Grafiken und Animationen mit Three.js ... 367 10.1 ... Eine erste 3D-Grafik ... 368 10.2 ... Verschieben der Kamera ... 373 10.3 ... Animation ... 375 10.4 ... Verschiedene Formen ... 376 11. jQuery ... 377 11.1 ... Aufbau ... 377 11.2 ... Selektoren und Methoden ... 380 11.3 ... Ereignisse ... 383 11.4 ... Animationen ... 386 11.5 ... Beispiel: sinusförmige Bewegung ... 390 11.6 ... jQuery und Ajax ... 392 12. Mobile Apps mit Onsen UI ... 397 12.1 ... Aufbau einer Seite ... 397 12.2 ... Elemente innerhalb einer Seite ... 404 13. Mathematische Ausdrücke mit MathML und MathJax ... 425 13.1 ... Grundelemente ... 425 13.2 ... Klammern und Tabellen ... 428 13.3 ... Zusammenfassende Ausdrücke ... 430 13.4 ... Brüche ... 432 13.5 ... Mathematische Zeichen ... 434 13.6 ... Dynamisch erzeugte Ausdrücke ... 436 14. Beispielprojekte ... 441 14.1 ... Geldanlage ... 441 14.2 ... Fitnesswerte ... 442 14.3 ... Volkslauf ... 443 14.4 ... Kreditkarte prüfen ... 445 14.5 ... Patience ... 445 14.6 ... Memory ... 446 14.7 ... Snake ... 447 15. Medien, Zeichnungen und Sensoren ... 449 15.1 ... Mediendateien abspielen ... 449 15.2 ... Canvas ... 455 15.3 ... Sensoren ... 464 Anhang ... 481 A ... Installation und Schlüsselwörter ... 481 Index ... 487
Python
Diese Python-Einführung konzentriert sich auf das Wesentliche: Sie erfahren, wie Sie die Sprache in eigenen Projekten einsetzen, und lernen alle Grundlagen kennen – Datenstrukturen und Typen, Programmierlogik, den Umgang mit Modulen, die Vorteile der funktionalen und objektorientierten Programmierung. So erfahren Sie praxisgerecht, wie Sie mit Python Daten verarbeiten, wiederkehrende Aufgaben automatisieren und viele andere Probleme lösen. Neu in dieser Auflage: Pair Programming mit ChatGPT und Python in Excel Aus dem Inhalt: Hello World! Python installieren und einrichtenPython lernen mit KI-UnterstützungVariablen, Datenstrukturen, Zeichenketten und OperatorenListen, Tupel, Arrays, Sets und DictionarysVerzweigungen und Schleifen, Umgang mit FehlernFunktionen und funktionale ProgrammierungObjektorientierte Programmierung: Klassen, Konstrukte, MethodenModule und Python-InternaDaten lesen, schreiben und verarbeitenPython und die SystemadministrationGrafikprogrammierung und OberflächenWissenschaftliches Arbeiten mit Python, Datenverarbeitung in Excel Vorwort ... 13 TEIL I. Python lernen ... 15 1. Hello, World! ... 17 1.1 ... Python installieren ... 17 1.2 ... »Hello, World!« in der Python-Shell ... 21 1.3 ... »Hello, World!« als eigenständiges Programm ... 24 1.4 ... Elementare Syntaxregeln ... 30 1.5 ... Wiederholungsfragen ... 36 2. Python lernen mit KI-Unterstützung ... 37 2.1 ... Mein Programm funktioniert nicht! Warum? ... 39 2.2 ... Mit welcher Funktion löse ich ein bestimmtes Problem? ... 46 2.3 ... Sprachkonzepte erklären ... 47 2.4 ... Programmieren mit ChatGPT ... 48 3. Variablen ... 55 3.1 ... Grundregeln ... 55 3.2 ... Datentypen ... 57 3.3 ... Gültigkeitsbereich von Variablen ... 58 3.4 ... Wiederholungsfragen ... 60 4. Operatoren ... 61 4.1 ... Überblick ... 61 4.2 ... Details und Sonderfälle ... 63 4.3 ... Wiederholungsfragen ... 70 5. Zahlen ... 71 5.1 ... Ganze Zahlen ... 72 5.2 ... FlieT1ss kommazahlen ... 74 5.3 ... Komplexe Zahlen, Brüche und Festkommazahlen ... 76 5.4 ... Boolesche Werte ... 78 5.5 ... Wiederholungsfragen ... 79 6. Zeichenketten ... 80 6.1 ... Grundregeln ... 80 6.2 ... Zugriff auf Teilzeichenketten ... 84 6.3 ... Zeichenkettenfunktionen ... 86 6.4 ... Zeichenketten formatieren und konvertieren ... 89 6.5 ... Lokalisierung ... 94 6.6 ... Reguläre Ausdrücke ... 97 6.7 ... Wiederholungsfragen und Übungen ... 99 7. Datum und Zeit ... 100 7.1 ... Zeit ermitteln und darstellen ... 100 7.2 ... Mit Zeiten rechnen ... 105 7.3 ... Wiederholungsfragen und Übungen ... 107 8. Listen, Tupel, Sets und Dictionaries ... 108 8.1 ... Listen ... 109 8.2 ... Funktionen zur Verarbeitung von Listen ... 112 8.3 ... Tupel (Sequenzen) ... 119 8.4 ... Sets (Mengen) ... 122 8.5 ... Dictionaries ... 124 8.6 ... Arrays ... 128 8.7 ... Wiederholungsfragen und Übungen ... 130 9. Verzweigungen und Schleifen ... 131 9.1 ... »if«-Verzweigung ... 131 9.2 ... Beispiel: Schaltjahrtest ... 135 9.3 ... »for«-Schleife ... 136 9.4 ... »while«-Schleife ... 144 9.5 ... Beispiele für Schleifen ... 145 9.6 ... Pattern Matching ... 150 9.7 ... Wiederholungsfragen und Übungen ... 151 10. Funktionen ... 153 10.1 ... Eigene Funktionen definieren ... 154 10.2 ... Lokale und globale Variablen ... 158 10.3 ... Parameter ... 161 10.4 ... Rekursion ... 167 10.5 ... Lambda-Funktionen ... 169 10.6 ... Funktionale Programmierung ... 171 10.7 ... Generatoren ... 174 10.8 ... Wiederholungsfragen und Übungen ... 177 11. Umgang mit Fehlern (Exceptions) ... 180 11.1 ... Fehlerabsicherung mit »try« und »except« ... 181 11.2 ... Selbst Exceptions auslösen (»raise«) ... 187 11.3 ... Programmunterbrechungen abfangen ... 187 11.4 ... Wiederholungsfragen und Übungen ... 190 12. Objektorientierte Programmierung ... 192 12.1 ... Crashkurs ... 193 12.2 ... »Hello, Class!« ... 197 12.3 ... Klassen- und Instanzvariablen ... 201 12.4 ... Methoden ... 206 12.5 ... Operator Overloading ... 212 12.6 ... Datenklassen ... 216 12.7 ... Vererbung ... 218 12.8 ... Vererbungsbeispiel: Schachfiguren ... 220 12.9 ... Wiederholungsaufgaben und Übungen ... 226 13. Module ... 229 13.1 ... Module nutzen (»import«) ... 229 13.2 ... Modul-Interna ... 232 13.3 ... Module installieren (»pip«) ... 234 13.4 ... Eigene Module entwickeln ... 239 13.5 ... Wiederholungsfragen und Übungen ... 243 14. Interna ... 244 14.1 ... Python-Scripts ausführen ... 244 14.2 ... Interna der Variablenverwaltung ... 250 14.3 ... Garbage Collection ... 254 14.4 ... Shared References ... 256 14.5 ... Type Annotation ... 256 14.6 ... Namensräume erforschen ... 259 14.7 ... Python-Compiler ... 261 14.8 ... Systemfunktionen ... 262 14.9 ... Wiederholungsfragen ... 265 TEIL II. Python anwenden ... 267 15. Dateien lesen und schreiben ... 269 15.1 ... Verzeichnisse ... 269 15.2 ... Textdateien lesen und schreiben ... 275 15.3 ... Beispiel: Indexeinträge in Textdateien ändern ... 279 15.4 ... Standardeingabe und Standardausgabe ... 281 15.5 ... JSON-Dateien verarbeiten ... 283 15.6 ... XML-Dateien verarbeiten ... 287 15.7 ... Wiederholungsfragen und Übungen ... 292 16. Netzwerkfunktionen ... 293 16.1 ... Download und Upload von Dateien ... 293 16.2 ... REST-APIs nutzen ... 297 16.3 ... Mails versenden ... 301 17. Systemadministration ... 305 17.1 ... Linux-Kommandos aufrufen ... 305 17.2 ... Linux-Accounts einrichten ... 308 17.3 ... MySQL/MariaDB-Datenbankzugriff ... 312 17.4 ... Mehrere gleichartige Datenbanken analysieren ... 317 18. Grafische Benutzeroberflächen ... 321 18.1 ... »Hello, Qt!« ... 322 18.2 ... Buttons platzieren und nutzen ... 324 18.3 ... Textfelder, Grid-Layout und Nachrichtenboxen ... 328 18.4 ... Dateiauswahl ... 333 18.5 ... Listenfelder ... 336 19. Grafikprogrammierung ... 340 19.1 ... Grafische Grundfunktionen ... 340 19.2 ... Grafik in einem Widget ... 347 19.3 ... SpaT1ss mit Sinus und Cosinus ... 350 19.4 ... Temperaturkurve zeichnen ... 357 20. Wissenschaftliche Anwendung ... 364 20.1 ... Anaconda, IPython und Jupyter-Notebooks ... 364 20.2 ... NumPy ... 374 20.3 ... pandas ... 379 20.4 ... SciPy ... 384 20.5 ... Matplotlib ... 388 20.6 ... Python in Excel ... 396 A. Lösungen ... 405 A.1 ... Kapitel 1: »Hello, World!« ... 405 A.2 ... Kapitel 3: Variablen ... 406 A.3 ... Kapitel 4: Operatoren ... 407 A.4 ... Kapitel 5: Zahlen ... 408 A.5 ... Kapitel 6: Zeichenketten ... 409 A.6 ... Kapitel 7: Datum und Uhrzeit ... 411 A.7 ... Kapitel 8: Listen, Tupel, Sets und Dictionaries ... 413 A.8 ... Kapitel 9: Verzweigungen und Schleifen ... 417 A.9 ... Kapitel 10: Funktionen ... 421 A.10 ... Kapitel 11: Umgang mit Fehlern ... 426 A.11 ... Kapitel 12: Objektorientierte Programmierung ... 427 A.12 ... Kapitel 13: Module ... 432 A.13 ... Kapitel 14: Interna ... 433 A.14 ... Kapitel 15: Dateien lesen und schreiben ... 435 Index ... 439
Beginning Python
Gain a fundamental understanding of Python’s syntax and features with this revised introductory and practical reference. Covering a wide array of Python–related programming topics, including addressing language internals, database integration, network programming, and web services, you’ll be guided by sound development principles.Updated to reflect the latest in Python programming paradigms and several of the most crucial features found in Python 3, _Beginning Python, Fourth Edition_ also covers advanced topics such as extending Python and packaging/distributing Python applications. Ten accompanying projects will ensure you can get your hands dirty in no time.YOU WILL:* Become a proficient Python programmer by following along with a friendly, practical guide to the language’s key features* Write code faster by learning how to take advantage of advanced features such as magic methods, exceptions, and abstraction* Gain insight into modern Python programming paradigms including testing, documentation, packaging, and distribution* Work through several interesting projects, including a P2P file–sharing application, chat client, video game, remote text editor, and moreWHO THIS BOOK IS FORProgrammers, novice and otherwise, seeking a comprehensive introduction to the Python programming language.MAGNUS LIE HETLAND is an experienced Python programmer, having used the language since the late 1990s. He is also an associate professor of algorithms at the Norwegian University of Science and Technology, having taught algorithms for the better part of a decade. Hetland is the author of Practical Python and Beginning Python, first and second editions, as well as several scientific papers.FABIO NELLI is an IT Scientific Application Specialist at IRBM Science Park, a private research center in Pomezia, Roma, Italy. He has been a computer consultant for many years at IBM, EDS, Merck Sharp, and Dohme, along with several banks and insurance companies. He has an Organic Chemistry degree and many years of experience in Information technologies and Automation systems applied to Life Sciences (Tech Specialist at Beckman Coulter Italy and Spain). He is currently developing Java applications that interface Oracle databases with scientific instrumentation generating data and web server applications providing analysis of the results to researchers in real time.Ch. 1 Instant hacking : the basics.- Ch. 2 Lists and tuples.- Ch. 3 Working with strings.- Ch. 4 Dictionaries : when indices won't do.- Ch. 5 Conditionals, loops, and some other statements.- Ch. 6 Abstraction.- Ch. 7 More abstraction.- Ch. 8 Exceptions.- Ch. 9 Magic methods, properties, and iterators.- Ch. 10 Batteries included.- Ch. 11 Files and stuff.- Ch. 12 Graphical user interfaces.- Ch. 13 Database support.- Ch. 14 Network programming.- Ch. 15 Python and the Web.- Ch. 16 Testing, 1-2-3.- Ch. 17 Extending Python.- Ch. 18 Packaging your programs.- Ch. 19 Playful programming.- Ch. 20 Project 1 : instant markup.- Ch. 21 Project 2 : painting a pretty picture.- Ch. 22 Project 3 : XML for all occasions.- Ch. 23 Project 4 : in the news.- Ch. 24 Project 5 : a virtual tea party.- Ch. 25 Project 6 : remote editing with CGI.- Ch. 26 Project 7 : your own bulletin board.- Ch. 27 Project 8 : file sharing with XML-RPC.- Ch. 28 Project 9 : file sharing II - now with GUI!.- Ch. 29 Project 10 : do-it-yourself arcade game.- Appendix A: The Short Version.- Appendix B: Python Reference.
Neuronale Netze selbst programmieren (2. Auflage)
Neuronale Netze selbst programmieren. In 2., aktualisierter und erweiterter Auflage (erscheint Ende Juni)Neuronale Netze sind Schlüsselelemente des Deep Learning und der Künstlichen Intelligenz, die heute zu Erstaunlichem in der Lage sind. Dennoch verstehen nur wenige, wie Neuronale Netze tatsächlich funktionieren.Diese aktualisierte Neuauflage des Bestsellers nimmt Sie mit auf eine unterhaltsame Reise, die mit ganz einfachen Ideen beginnt und Ihnen Schritt für Schritt zeigt, wie Neuronale Netze arbeiten. Dafür brauchen Sie keine tieferen Mathematik-Kenntnisse, denn alle mathematischen Konzepte werden behutsam und mit vielen Illustrationen erläutert.Dann geht es in die Praxis: Sie programmieren Ihr eigenes Neuronales Netz mit Python und bringen ihm bei, handgeschriebene Zahlen zu erkennen, bis es eine optimale Performance erreicht. Zum Schluss erstellen Sie das Neuronale Netz mit PyTorch und lernen so eine professionelle Arbeitsumgebung kennen.Tariq Rashid hat eine besondere Fähigkeit, schwierige Konzepte verständlich zu erklären, dadurch werden Neuronale Netze für jeden Interessierten zugänglich und praktisch nachvollziehbar.Über den Autor:Tariq Rashid ist Physiker, hat einen Master in Machine Learning und Data Mining und leitet die Londoner Python-Meetup-Gruppe mit 3.000 Mitgliedern. Seine persönliche Mission ist es, spannende, aber komplexe technische Ideen besser zu vermitteln.Er hat eine besondere Gabe, schwierige Konzepte verständlich zu erklären. Dadurch werden neuronale Netze für alle technisch Interessierten zugänglich und praktisch nachvollziehbar.
Einstieg in JavaScript (5. Auflg.)
Lernen Sie Schritt für Schritt die Grundlagen der modernen JavaScript-Programmierung. Das Buch führt Sie in alle relevanten Bereiche ein: HTML und CSS, Objekte, anonyme Funktionen, Ereignisbehandlung, jQuery und Ajax. Zahlreiche anschauliche Beispielanwendungen erleichtern das Verständnis und dienen Ihnen als Vorlage für Ihre eigenen Projekte. Schon bald entwickeln Sie anspruchsvolle interaktive Programme für Ihre eigene Website.JavaScript programmieren lernen1. Sprachgrundlagen JavaScriptSchritt für Schritt lernen Sie die Grundlagen der JavaScript-Programmierung. Von der ersten einfachen Textausgabe im Browser bis zur fertigen Anwendung – alles anhand anschaulicher Beispiele aus der Praxis.2. Interaktive und mobile Anwendungen entwickelnSie erfahren, wie Sie XML- und JSON-Daten mit dem Webserver austauschen, CSS-Eigenschaften ändern, Animationen erstellen und was JavaScript auf Smartphones, Tablets und Co. alles kann.3. Viele Beispielprogramme, auch als ProjektvorlagenFeiertagsrechner, Fitnesswerte oder lieber ein Spiel wie Memory oder Snake? Wählen Sie aus über 200 Beispielprojekten aus, wie Sie in JavaScript einsteigen. Erlernen Sie schrittweise den Aufbau der Anwendungen und nutzen Sie sie als Vorlage für eigene Erweiterungen.Aus dem Inhalt:JavaScript-Basics: Sprachgrundlagen, Objekte, Ereignisbehandlung, DOMSchneller Datenaustausch (Ajax)CSS mit JavaScript erweiternHTML-Eigenschaften nutzenBrowserunabhängige Methoden verwenden (jQuery)Dynamische Grafiken erstellenJavaScript für mobile AnwendungenWaytracking, Lage- und BeschleunigungssensorenÜber den Autor:Thomas Theis ist Dipl.-Ing. Technische Informatik. Als Softwareentwickler verfügt er über langjährige Erfahrung, ebenso wie als IT-Dozent unter anderem an der Fachhochschule Aachen; er leitet Programmier-Schulungen zu JavaScript, C/C++, PHP und C# und ist Autor vieler erfolgreicher Fachbücher.Leseprobe (PDF-Link)
Software Development, Design, and Coding
Learn the principles of good software design and then turn those principles into great code. This book introduces you to software engineering — from the application of engineering principles to the development of software. You'll see how to run a software development project, examine the different phases of a project, and learn how to design and implement programs that solve specific problems. This book is also about code construction — how to write great programs and make them work.This new third edition is revamped to reflect significant changes in the software development landscape with updated design and coding examples and figures. Extreme programming takes a backseat, making way for expanded coverage of the most crucial agile methodologies today: Scrum, Lean Software Development, Kanban, and Dark Scrum. Agile principles are revised to explore further functionalities of requirement gathering. The authors venture beyond imperative and object-oriented languages, exploring the realm of scripting languages in an expanded chapter on Code Construction. The Project Management Essentials chapter has been revamped and expanded to incorporate "SoftAware Development” to discuss the crucial interpersonal nature of joint software creation.Whether you're new to programming or have written hundreds of applications, in this book you'll re-examine what you already do, and you'll investigate ways to improve. Using the Java language, you'll look deeply into coding standards, debugging, unit testing, modularity, and other characteristics of good programs.YOU WILL LEARN* Modern agile methodologies* How to work on and with development teams* How to leverage the capabilities of modern computer systems with parallel programming* How to work with design patterns to exploit application development best practices* How to use modern tools for development, collaboration, and source code controlsWHO THIS BOOK IS FOREarly career software developers, or upper-level students in software engineering coursesJOHN F. DOOLEY is the William and Marilyn Ingersoll Professor Emeritus of Computer Science at Knox College in Galesburg, Illinois. Before returning to teaching in 2001, Professor Dooley spent more than 16 years in the software industry as a developer, designer, and manager working for companies such as Bell Telephone Laboratories, McDonnell Douglas, IBM, and Motorola, along with an obligatory stint as head of development at a software startup. He has written more than two dozen professional journal and conference publications and seven books to his credit, along with numerous presentations. He has been a reviewer for the Association for Computing Machinery Special Interest Group on Computer Science Education (SIGCSE) Technical Symposium for the last 36 years and reviews papers for the IEEE Transactions on Education, the journal Cryptologia, and other professional conferences. He has created short courses in software development and three separate Software Engineering courses at the advanced undergraduate level.DR. VERA A. KAZAKOVA is a Computer Science educator and researcher, with expertise in artificial intelligence, experiential learning, and collaborative methodologies. With a PhD in AI focused on nature-inspired computation and emergent division of labor, her research spans CS Education, Evolutionary Computation, Narrative Generation, Decentralized Multi-Agent Systems, and Cyber Social Science. Dr. Kazakova also has extensive experience as a CS educator, having taught programming, artificial intelligence, research, and software development courses. Dr. Kazakova has coined the term "Soft-Aware Development" to encapsulate a holistic approach for building software, building stakeholder relationships, and building up each developer along the way. An ardent proponent of experiential learning and agile methodologies, Dr. Kazakova champions a multi-sprint learning architecture that enables students to adapt and iterate, fostering a shared environment of continuous growth. Her passion for collaboration, from simplistic autonomous agents to human developers, and members of large online communities, sets her apart as an advocate for a more interconnected, empathetic, and empowering approach to CS research, education, and software development.Chapter 1: Introduction to Software Development.- PART ONE: MODELS AND TEAM PRACTICES.- Chapter 2: Software Process Models.- Chapter 3: Project Management Essentials.- Chapter 4: Ethics and Professional Practice.- Chapter 5: Intellectual Property, Obligations, and Ownership.- Chapter 6: Requirements.- PART TWO: DESIGN PRACTICES.- Chapter 7: Software Architecture.- Chapter 8: Design Principles.- Chapter 9: Structured Design.- Chapter 10: Object-Oriented Overview.- Chapter 11: Object-Oriented Analysis and Design.- Chapter 12: Object-Oriented Design Principles.- Chapter 13: Design Patterns.- Chapter 14:Parallel Programming.- Chapter 15:Parallel; Design Patterns.- PART THREE: CODING PRACTICES.- Chapter 16: Code Construction.- Chapter 17: Debugging.- Chapter 18: Unit Testing.- Chapter 19:P Code Reviews and Inspections.- Chapter 20: Wrapping It All Up.
Clean Code Kochbuch
Clean Code Kochbuch. Rezepte für gutes Code Design und bessere Softwarequalität. In 1. Auflage (erscheint Ende Juni 2024)Code Smells erkennen und mithilfe inspirierender Rezepte beseitigenSoftware-Engineers und -Architekten, die mit großen, komplexen Code-Basen arbeiten, müssen diese skalieren und effektiv pflegen. In seinem Kochbuch geht Maximiliano Contieri über das Konzept des Clean Code hinaus: Er demonstriert, wie Sie Verbesserungsmöglichkeiten identifizieren und lernen, deren Auswirkungen auf den Produktionscode zu bewerten. Wenn es um Zuverlässigkeit und die Entwicklungsfähigkeit eines Systems geht, bieten diese Techniken Vorteile, die sich auf Dauer auszahlen werden.Anhand von Beispielen in JavaScript, PHP, Python, Java und vielen anderen Programmiersprachen bietet dieses Kochbuch bewährte Rezepte, die Sie bei der Skalierung und Wartung großer Systeme unterstützen. Jeder Teil behandelt grundlegende Konzepte wie Lesbarkeit, Kopplung, Testbarkeit, Sicherheit und Erweiterbarkeit sowie Code-Smells und Rezepte zu deren Beseitigung.Über den Autor: Maximiliano Contieri ist seit 25 Jahren in der Softwarebranche tätig und arbeitet gleichzeitig als Hochschullehrer. Im Laufe der Jahre war er ein eifriger Autor auf verschiedenen bekannten Blogging-Plattformen und veröffentlichte jede Woche mehrere Artikel zu einer Vielzahl von Themen wie Clean Code, Refactoring, Softwaredesign, testgetriebene Entwicklung und Code Smells.
Neuronale Netze selbst programmieren
Neuronale Netze und Grundlagen der Künstlichen Intelligenz verständlich dargestellt - Der Bestseller hat Furore gemacht, weil der Autor diese sowohl trockene als auch schwierige Materie außergewöhnlich klar erklärt. - Neu in der vollständig aktualisierten 2. Auflage: Das neuronale Netz wird abschließend mit PyTorch erstellt, um es in ein typisches professionelles Szenario zu überführen. - Neuronale Netze sind Grundlage vieler Anwendungen im Alltag wie Spracherkennung, Gesichtserkennung auf Fotos, das selbstfahrende Auto, Umwandlung von Sprache in Text etc. Neuronale Netze sind Schlüsselelemente des Deep Learning und der künstlichen Intelligenz, die heute zu Erstaunlichem in der Lage sind. Sie sind Grundlage vieler Anwendungen im Alltag wie beispielsweise Spracherkennung, Gesichtserkennung auf Fotos oder die Umwandlung von Sprache in Text. Dennoch verstehen nur wenige, wie neuronale Netze tatsächlich funktionieren. Dieser Bestseller, jetzt in erweiterter 2. Auflage, nimmt Sie mit auf eine unterhaltsame Reise, die mit ganz einfachen Ideen beginnt und Ihnen Schritt für Schritt zeigt, wie neuronale Netze arbeiten: - Zunächst lernen Sie die mathematischen Konzepte kennen, die den neuronalen Netzen zugrunde liegen. Dafür brauchen Sie keine tieferen Mathematikkenntnisse, denn alle mathematischen Ideen werden behutsam und mit vielen Illustrationen erläutert. Eine Kurzeinführung in die Analysis unterstützt Sie dabei. - Dann geht es in die Praxis: Nach einer Einführung in die populäre und leicht zu lernende Programmiersprache Python bauen Sie allmählich Ihr eigenes neuronales Netz mit Python auf. Sie bringen ihm bei, handgeschriebene Zahlen zu erkennen, bis es eine Performance wie ein professionell entwickeltes Netz erreicht. - Im nächsten Schritt verbessern Sie die Leistung Ihres neuronalen Netzes so weit, dass es eine Zahlenerkennung von 98 % erreicht – nur mit einfachen Ideen und simplem Code. Sie testen das Netz mit Ihrer eigenen Handschrift und werfen noch einen Blick in das mysteriöse Innere eines neuronalen Netzes. - Neu in der 2. Auflage: Sie erstellen das neuronale Netz abschließend mit PyTorch und überführen es damit in ein typisches professionelles Szenario.
Raspberry Pi programmieren mit Python (6. Auflg.)
Raspberry Pi – der Mini-Computer zum ExperimentierenDer Raspberry Pi ist ein preiswerter Computer in der Größe einer Kreditkarte. In Kombination mit der Programmiersprache Python bietet er eine hervorragende Umgebung für die schnelle Realisierung technischer Ideen und Projekte. In diesem Buch lernen Sie alle Grundlagen, die Sie brauchen, um mit dem Raspberry Pi oder dem Raspberry Pi Zero spannende Projekte zu realisieren.Zahlreiche Projekte mit Sensoren, Kamera u.v.m.Sie finden in diesem Buch eine Fülle von kleinen Projekten, die auf die besondere Hardware des Raspberry Pi und das Linux-Betriebssystem Raspberry Pi OS zugeschnitten sind. Dazu gehören sowohl Schaltungen mit Sensoren (Temperatur, Licht, Alkohol), Relais, AD-Wandlern und LEDs als auch die Verwendung des Kameramoduls und des 1-Wire- sowie SPI-Bus zur Datenkommunikation. Zahlreiche Illustrationen und einfache Beispiele zum Ausprobieren erleichtern das Verständnis.Die Programmiersprache Python als GrundlagePython ist – auch für Programmiereinsteiger – einfach zu lernen und deshalb Teil des Gesamtkonzepts des Raspberry Pi. Dieses Buch vermittelt Ihnen anhand anschaulicher Beispiele sowohl die Grundlagen von Python als auch fortgeschrittene Techniken wie Objektorientierung, Internetprogrammierung und grafische Benutzungsoberflächen. Am Ende jedes Kapitels finden Sie Aufgaben mit Lösungen zum Download, mit denen Sie Ihr Wissen festigen, erweitern und vertiefen können.Aus dem Inhalt:GerätesteuerungMesswerterfassung und -visualisierungInteraktive Spiele mit Schaltern und SensorenAnimationen und SimulationenAutomatische TextproduktionDigitale BildverarbeitungMorsezeichen senden und Signalmuster erkennenProjekte mit dem Sense HATFarben und Bewegung wahrnehmenSteuerung mit Potentiometer und AD-WandlerAuswertung von Daten aus dem InternetWebserver und Webcam Über den Autor:Michael Weigend hat an der Universität Potsdam in Informatik promoviert. Er war für mehr als 30 Jahre als Lehrer tätig und hat 20 Jahre lang an der FernUniversität Hagen Seminare zur Didaktik der Informatik gegeben. An der Universität Münster hält er im Rahmen eines Lehrauftrags Vorlesungen zur Python-Programmierung. Michael Weigend engagiert sich in mehreren nationalen und internationalen Communities für den Computer-Einsatz in der Bildung, darunter Constructionism, International Federation for Information Processing (TC 3 Computers in Education) , Bebras – International Contest on Informatics and Computational Thinking. Er hat über 60 wissenschaftliche Artikel veröffentlicht und mehrere Bücher zu den Themen Programmierung, Web Development und visuelle Modellierung geschrieben.Leseprobe (PDF-Link)
C++ (3. Auflage)
Modern C++ ist die zeitgemäße Art, in C++ zu programmieren. Dieses Standardwerk führt Sie in die Softwareentwicklung mit C++ ein. Sie lernen, wie Sie Programme mit höchsten Ansprüchen an Funktionalität, Effizienz und Sicherheit entwickeln. Torsten T. Will vermittelt Ihnen in diesem Buch ausführlich und praxisnah den Sprachkern, die objektorientierte Programmierung mit C++ sowie die Standardbibliothek. Dabei lernen Sie den aktuellen Standard und seine direkten Vorgänger kennen. Mit Best Practices für sauberen Code und zahlreichen Praxisbeispielen zum Nachprogrammieren. Alle Listings stehen zum Download bereit oder können im interaktiven Compiler-Explorer getestet und bearbeitet werden. Ein Handbuch für alle, die C++ richtig verstehen wollen.Hier lernen Sie1. C++-Grundlagen und OOPDie Sprachgrundlagen von C++ und die Konzepte der objektorientierten Programmierung werden ausführlich beschrieben. Auch C++-Einsteiger ohne Vorkenntnisse werden sich schnell zurechtfinden.2. Modern C++ – mehr als FeaturesSie lernen modernes C++ nach aktuellem Standard. Es wird erklärt, welche Sprachmittel ab welcher Version funktionieren – C++23, C++20 oder C++ 17. Wichtiger noch: Lernen Sie, wie Sie die neueren Features gewinnbringend einsetzen.3. Standardbibliothek und mehrDie Werkzeuge und Konzepte der Standardbibliothek werden umfassend behandelt. Lernen Sie zum Beispiel, die verschiedenen Container-Typen einzusetzen, mit Streams umzugehen und nebenläufige Anwendungen zu entwickeln.4. Besser CodenBesonderer Wert wird darauf gelegt, dass Sie von Anfang an guten, d. h. kompakten, sicheren und effizienten Code entwickeln. Dazu gibt es Extra-Kapitel, die jeweils bestimmte Aspekte behandeln, die für guten Code wichtig sind.Aus dem Inhalt:SprachgrundlagenFehlerbehandlungObjektorientierte ProgrammierungZeigerTemplatesContainerStandardbibliothekC++ Core GuidelinesÜber den Autor:Torsten T. Will, Jahrgang 1970, beschäftigte sich schon während seines Diploms in Informatik mit Programmiersprachen und ihren Konzepten. C++ hat ihn von Anfang an fasziniert und begleitet. Von Haskell über Java und Python zu Rust finden verschiedene Sprachen sein Interesse. Seit 2004 schreibt er im Fachmagazin c't gelegentlich über C++ und Python. Was dann noch an Zeit übrig bleibt, geht in die Fotografie.Leseprobe (PDF-Link)
Introduction to Python Network Automation Volume I - Laying the Groundwork
Welcome to _Introduction to Python Network Automation Volume I: Laying the Groundwork_. In this first part of our comprehensive guide, you'll embark on a transformative journey into the world of network automation. Whether you're new to the IT field or seeking to strengthen your existing skills, this book serves as your roadmap to mastering the foundational skills essential for success in network automation.You'll begin your exploration by delving into the fundamentals of Python network automation, laying a solid foundation for your learning journey. Equipped with essential Python skills, you'll leverage them for network administration tasks, particularly on the Windows platform. Reinforce your understanding through targeted exercises designed to enhance your proficiency and navigate the complexities of VMware Workstation as you master virtualization techniques crucial for setting up your network automation environment.You’ll then venture into Linux fundamentals, learning to set up and configure server environments tailored for network automation tasks while gaining a deep understanding of file systems and TCP/IP services in Linux. Explore the power of regular expressions as you streamline network automation tasks with precision and efficiency. Discover GNS3, a vital tool for network emulation, enabling you to test and validate network designs and put your skills to the test by tackling real-world network challenges in a comprehensive lab scenario. This book provides the essential knowledge and practical experience needed to thrive in the rapidly evolving field of network automation. Whether you're new to network automation or seeking to strengthen your existing skills, this book will unlock the vast potential of network automation and empower you to excel in this exciting field.WHAT YOU'LL LEARN* Learn Python fundamentals and effective network automation strategies.* Use Python for various network administration tasks, improving efficiency.* Understand Linux basics and IP service installation techniques.* Apply regular expressions in Python for data processing.* Create a network automation lab with VMware Workstation for hands-on practice.WHO THIS BOOK IS FORIT engineers and developers, network managers and students, who would like to learn network automation using Python.Brendan Choi is a highly accomplished Tech Lead at Secure Agility, possessing over 19 years of extensive hands-on experience in Enterprise Network Automation and diverse IT technologies. As a Certified Cisco, VMware, and Fortinet Engineer, Brendan has worked with globally renowned enterprises including Cisco Systems, Telstra, NTT (Dimension Data), Fujitsu and various reputable Enterprise IT integrators. He is dedicated to streamlining work processes and ensuring uninterrupted IT service delivery through infrastructure and business process automation. Brendan is the author of "Python Network Automation: By building an integrated virtual lab" for Acorn Publishing and has authored the 1st and 2nd editions of "Introduction to Python Network Automation: The first journey". He is currently writing “Introduction to Ansible Network Automation: KISS” for Apress and has trained over 200 Network and Systems Engineers on Python and Ansible Network Automation. Brendan's keen interest lies in Cloud, Enterprise Networking, Security, and Virtualization technologies, and he shares his knowledge, experience, and enthusiasm with the community through his blog and YouTube channel.Chapter 1: Introduction to Python Network Automation.- Chapter 2: Learning Python Fundamentals on Windows.- Chapter 3: Practicing More Python Exercises.- Chapter 4: Navigating VMware Workstation.- Chapter 5: Creating an Ubuntu Linux Server.- Chapter 6: Creating a Fedora Linux Server.- Chapter 7: Mastering File Systems in Linux.- Chapter 8: Understanding TCP/IP Services in Linux.- Chapter 9: Using Regular Expressions for Network Automation.- Chapter 10: Exploring GNS3 Essentials.- Chapter 11: Cisco IOS, Linux, TFTP, and Telnet Lab.- Chapter 12: Setting Up a Python Automation Lab.- Chapter 13: Basic Telnet Lab.-Chapter 14: SSH, Paramiko, and Netmiko Lab.- Chapter 15: Automating Tasks with Cron in Python Lab.- Chapter 16: SNMP Discovery with Python Lab.- Chapter 17: Ansible and pyATS in virtualenv Lab.- Chapter 18: Sendmail and Twilio Notifications via Docker Lab.- Chapter 19: Cisco IOS Upgrade Tools Development 1.- Chapter 20: Cisco IOS Upgrade Tools Development 2.- Chapter 21: Building a Cisco IOS Upgrade Application.- Chapter 22: Upgrading Cisco IOS Routers Lab.- Chapter 23: Installing NetBox with Python.
Java Testing with Selenium
Master the art of automated testing using Selenium with Java in this comprehensive guide. Whether you're a beginner or an experienced tester, the book equips you with the knowledge and techniques to build robust and maintainable test suites, ensuring the quality and reliability of your web applications.This book starts introducing the basics of automated testing and the importance of Selenium. It then covers the setup and configuration of the Selenium WebDriver in Java, providing a solid foundation for your testing environment. You'll learn essential aspects of Selenium testing in Java, including working with different browsers, locating web elements using locators, and performing actions on them. From there, you’ll explore how to handle dynamic web pages and effective wait mechanisms and verifications to ensure accurate and reliable test results. The book also guides you in setting up Selenium in Java for continuous integration and emphasizes best practices for test codeorganization and maintainability, such as the Page Object Model (POM) and structuring test suites effectively. By the end, you’ll have the expertise to address advanced scenarios, such as working with iframes, and know how TestNG enhances Selenium automation, enabling structured tests, data-driven insights, and swift parallel executions.Throughout the book, you'll benefit from real-world examples and practical exercises that reinforce the concepts. The clear explanations and step-by-step guidance make it easy to follow along and apply the knowledge to your own testing projects.WHAT YOU WILL LEARN* Understand the fundamentals of automated testing and the role of Selenium in web application testing* Set up the Selenium WebDriver in Java and configure the testing environment* Work with different web browsers and their drivers to perform cross-browser testing* Identify and locate web elements using various locators, such as IDs, class names, CSS selectors, and XPath expressions* Perform actions on web elements, such as clicking buttons, entering text, submitting forms, and navigating through web pages* Handle dynamic pages by implementing effective wait mechanisms, including implicit waits, explicit waits, and fluent waits* Verify and assert expected conditions and outcomes using assertions and verification techniques provided by Selenium in Java* Apply best practices for test code organization and maintainability, including using the Page Object Model (POM) design pattern* Handle advanced scenarios, such as working with iframes, and elevating Selenium automation through TestNG’s structured frameworks, data utilization, and parallel processingWHO THIS BOOK FORSoftware testers, quality assurance professionals, and developers interested in mastering automated testing with Selenium and Java. Suitable for various experience levels. Offers practical insights and techniques to automate web application testing accurately and reliably. Benefits testers, developers, and individuals familiar with Java and web testing, empowering them to write robust, maintainable test code and integrate Selenium seamlessly into their workflows.SUJAY RAGAHVENDRA is a distinguished expert in the field of machine learning and software testing, with a strong background in Python programming. With a deep passion for both disciplines, He has dedicated his career to exploring the intersection of these fields and delivering innovative solutions.Recognizing the critical role of testing in software development, Sujay expanded his expertise to include automated testing using Selenium with Python. With his books Python Testing with Selenium: Learn to Implement Different Testing Techniques Using the Selenium WebDriver and Beginner's Guide to Streamlit with Python: Build Web-Based Data and Machine Learning Applications, Sujay shares his extensive knowledge and practical insights into leveraging Selenium's capabilities with Python for efficient and reliable testing. This new book provides a comprehensive guide for professionals looking to master automated testing techniques, harnessing the power of Python and Selenium to ensure the quality and functionality of web applications.Sujay's expertise in both machine learning and software testing allows him to bring a unique perspective to the field of automated testing. He explores ways to integrate machine learning concepts into testing practices, enabling readers to discover innovative approaches to test analysis, anomaly detection, and intelligent test execution.With a solid foundation in programming, Sujay leverages his expertise to provide readers with practical examples, best practices, and coding techniques specific to Python and Selenium. His clear explanations and step-by-step guidance make it easy for readers to implement effective testing strategies and optimize their automation workflows.Beyond writing, Sujay actively contributes to the testing community through workshops, speaking engagements, and mentorship programs. He strive to empower professionals with the knowledge and skills needed to excel in automated testing, ensuring the delivery of high-quality software products. Through his work, Sujay continues to bridge the gap between machine learning, software testing, and programming, inspiring others to embrace the synergy of these disciplines and drive advancements in the field of automated testing.Chapter 1: Introduction to Selenium.- Chapter 2: Getting Started.- Chapter 3: Mouse and Keyboard Actions.- Chapter 4: Web Elements.- Chapter 5: Navigation.- Chapter 6: Buttons.- Chapter 7: Frames and Textboxes.- Chapter 8: Assertions.- Chapter 9: Exceptions.- Chapter 10: Waits.- Chapter 11: Page Object Models.- Chapter 12: Selenium with TestNG Framework.
Machine Learning For Network Traffic and Video Quality Analysis
This book offers both theoretical insights and hands-on experience in understanding and building machine learning-based Network Traffic Monitoring and Analysis (NTMA) and Video Quality Assessment (VQA) applications using JavaScript. JavaScript provides the flexibility to deploy these applications across various devices and web browsers.The book begins by delving into NTMA, explaining fundamental concepts and providing an overview of existing applications and research within this domain. It also goes into the essentials of VQA and offers a survey of the latest developments in VQA algorithms. The book includes a thorough examination of machine learning algorithms that find application in both NTMA and VQA, with a specific emphasis on classification and prediction algorithms such as the Multi-Layer Perceptron and Support Vector Machine. The book also explores the software architecture of the NTMA client-server application. This architecture is meticulously developed using HTML, CSS, Node.js, and JavaScript. Practical aspects of developing the Video Quality Assessment (VQA) model using JavaScript and Java are presented. Lastly, the book provides detailed guidance on implementing a complete system model that seamlessly merges NTMA and VQA into a unified web application, all built upon a client-server paradigm.By the end of the book, you will understand NTMA and VQA concepts and will be able to apply machine learning to both domains and develop and deploy your own NTMA and VQA applications using JavaScript and Node.js.What You Will Learn* What are the fundamental concepts, existing applications, and research on NTMA?* What are the existing software and current research trends in VQA?* Which machine learning algorithms are used in NTMA and VQA?* How do you develop NTMA and VQA web-based applications using JavaScript, HTML, and Node.js?Who This Book Is ForSoftware professionals and machine learning engineers involved in the fields of networking and telecommunicationsDR. TULSI PAWAN FOWDUR received his BEng (Hons) degree in Electronic and Communication Engineering with honors from the University of Mauritius in 2004. He was also the recipient of a Gold medal for having produced the best degree project at the Faculty of Engineering in 2004. In 2005 he obtained a full-time PhD scholarship from the Tertiary Education Commission of Mauritius and was awarded his PhD degree in Electrical and Electronic Engineering in 2010 by the University of Mauritius. He is also a Registered Chartered Engineer of the Engineering Council of the UK, Fellow of the Institute of Telecommunications Professionals of the UK, and a Senior Member of the IEEE. He joined the University of Mauritius as an academic in June 2009 and is presently an Associate Professor at the Department of Electrical and Electronic Engineering of the University of Mauritius. His research interests include mobile and wireless communications, multimedia communications, networking and security, telecommunications applications development, the Internet of Things, and AI. He has published several papers in these areas and is actively involved in research supervision, reviewing papers, and also organizing international conferences.LAVESH BABOORAM received his BEng (Hons) degree in Telecommunications Engineering with Networking with honors from the University of Mauritius in 2021. He was also awarded a Gold medal for having produced the best degree project at the Faculty of Engineering in 2021. Since 2022, he has been an MSc Applied Research student at the University of Mauritius. With in-depth knowledge of telecommunications applications design, analytics, and network infrastructure, he aims to pursue research in networking, multimedia communications, Internet of Things, artificial intelligence, and mobile and wireless communications. He joined Mauritius Telecom in 2022 and is currently working in the Customer Experience and Service Department as a Pre-Registration Trainee Engineer.Chapter 1: Introduction to NTMA and VQA.- Chapter 2: Network Traffic Monitoring and Analysis.- Chapter 3: Video Quality Assessment.- Chapter 4: Machine Learning Techniques for NTMA and VQA.- Chapter 5: NTMA Application with JavaScript.- Chapter 6: Video Quality Assessment Application Development with JavaScript.- Chapter 7: NTMA and VQA Integration.
Rust. Das umfassende Handbuch.
Rust. Das umfassende Handbuch (Juni 2024)Rust ist die neue erste Wahl für moderne, sichere Software – nicht nur im systemnahen Kontext. Cleveres Speichermanagement und eine hervorragende Safety sind die bekanntesten Vorzüge dieser vielseitigen Sprache. In umfassende und fundierte Kenntnisse zu investieren, lohnt sich!Wenn Sie die vielen beliebten Features genießen und in professionellen Code ummünzen möchten, ist dieses Buch Ihr idealer Begleiter. Mit vielen gut kommentierten Beispielen, Best Practices und gelegentlich auch Warnungen stellt es Sprachfeatures und Konzepte detailliert vor. Erfahrene Profis können alle Kapitel auch einzeln lesen, um sich gezielt mit fortgeschrittenen Themen zu befassen.Ihr Weg zum Rust-Profi1. Fundierter EinstiegWenn Sie noch nie mit Rust gearbeitet haben, steigen Sie hier einfach vorne ein. Nutzen Sie das Übungsbeispiel – ein Bestellsystem für Restaurants – , um nach und nach alle Sprachfeatures im Praxiskontext kennenzulernen.2. Detaillierte ErklärungenRust unterstützt anspruchsvolle Programmierweisen. Ob Sie systemnah, stark asynchron, objektorientiert oder funktional unterwegs sind: Marc Marburger erklärt die Konzepte mit Überblick und didaktischem Geschick.3. Über den TellerrandFreuen Sie sich auch auf weniger alltägliche Themen wie etwa Unsafe Rust, automatisierte Doku und Foreign Functions. Zum Beispiel implementieren Sie eine Library, um auf native iOS- und Android-Apps zuzugreifen und lernen, auch selbst APIs für mobile Apps anzubieten.Aus dem InhaltRust installieren, Toolchain aufsetzenFundierter EinstiegSpeichermanagementCollections und IteratorenMultithreadingI/O und NetzwerkprotokolleDoku und Tests automatisierenAPI für iOS und Android anbieten
EWM mit SAP S/4HANA - Architektur und Programmierung
EWM anpassen und erweitern, ganz nach Ihren Vorstellungen! Anhand praxisnaher Beispiele aus der Lagerverwaltung spielen Sie Lösungswege für Ihre Eigenentwicklungen durch – mit kommentiertem Code aus der Entwickler- und Beraterpraxis. Nutzen Sie Funktionsbausteine und BAdIs, um Benutzeroberflächen anzupassen, Prozesse zu automatisieren und Standardabläufe auf Ihre Anforderungen zuzuschneiden. Aktuell zu Embedded und Decentralized EWM in SAP S/4HANA! Aus dem Inhalt: Flexible LagerverwaltungLieferabwicklungLagerlogistikBestandsverwaltungQualitätsprüfungFrameworks und EntwicklungswerkzeugeIntegration mit ERP-SystemenFunktionsbausteine, Methoden und APIs Nützliche Business Add-insMigration Geleitwort ... 13 Einleitung ... 15 1. Flexible Lagerverwaltung mit Extended Warehouse Management ... 21 1.1 ... Lagerverwaltung mit standardisierter Software -- Deployment, Konfiguration und Erweiterung ... 22 1.2 ... Flexibilität von EWM ... 23 1.3 ... Zusammenfassung ... 28 2. Architektur ... 29 2.1 ... Lieferabwicklung ... 30 2.2 ... Lagerlogistik ... 53 2.3 ... Bestandsverwaltung ... 75 2.4 ... Qualitätsprüfung ... 86 2.5 ... Integration mit ERP-Systemen ... 109 2.6 ... Zusammenfassung ... 156 3. Frameworks und Entwicklungswerkzeuge in EWM ... 159 3.1 ... Lagerverwaltungsmonitor ... 159 3.2 ... Easy Graphics Framework und Kennzahlenservices ... 170 3.3 ... Radio Frequency Framework ... 189 3.4 ... Post Processing Framework ... 237 3.5 ... Key-User-Erweiterbarkeit für benutzerdefinierte Felder ... 250 3.6 ... Arbeitsplatz ... 260 3.7 ... Zusammenfassung ... 281 4. Erweiterungen der SAP Best Practices für Embedded EWM ... 283 4.1 ... Einführung in die SAP Best Practices für Embedded EWM ... 284 4.2 ... Einfacher Wareneingang vom Lieferanten: 1FS ... 292 4.3 ... Wareneingang vom Lieferanten mit Chargenverwaltung: 1V5 ... 310 4.4 ... Einfacher Warenausgang zum Kunden (Kommissionier-Handling-Units als Versand-Handling-Units): 1G2 ... 347 4.5 ... Erweiterter Warenausgang zum Kunden (Wellen, Kommissionier-Handling-Units, Verpacken, Bereitstellen und Verladen): 1V7 ... 374 4.6 ... Permanente Inventur: 1FW ... 401 4.7 ... Zusammenfassung ... 409 5. Funktionsbausteine, Methoden und APIs für EWM ... 411 5.1 ... Transaction Manager für eine Logical Unit of Work in EWM ... 412 5.2 ... API-Konzept für EWM ... 415 5.3 ... Externe APIs ... 416 5.4 ... Serviceklasse zum Füllen von Bestandsfeldern ... 417 5.5 ... Datum und Uhrzeit für die Zeitzone der Lagernummer ... 418 5.6 ... Anwendungsübergreifende Konstanten ... 419 5.7 ... Anwendungsprotokoll anlegen und erweitern ... 420 5.8 ... EWM-Lieferungen und -Lageranforderungen lesen ... 422 5.9 ... EWM-Lieferungen und -Lageranforderungen bearbeiten ... 424 5.10 ... Lagerproduktstamm lesen ... 426 5.11 ... Lagerproduktstamm anlegen/ändern ... 428 5.12 ... Serviceklasse für Chargenverwaltung ... 430 5.13 ... Lageraufgabe lesen ... 432 5.14 ... Lageraufgabe anlegen, quittieren und stornieren ... 432 5.15 ... Handling Units von der Datenbank selektieren ... 434 5.16 ... Handling Units lesen, anlegen und ändern ... 436 5.17 ... Bestand lesen ... 438 5.18 ... Bestand umbuchen ... 440 5.19 ... Wellen lesen, freigeben, splitten und zusammenführen ... 443 5.20 ... Transporteinheit lesen ... 447 5.21 ... Transporteinheit ändern ... 449 5.22 ... Packspezifikationen finden und lesen ... 450 5.23 ... Packspezifikationen anlegen, ändern, kopieren und löschen ... 451 5.24 ... Serviceklasse für RF-Framework ... 452 5.25 ... Zusammenfassung ... 453 6. Nützliche Business Add-ins in EWM ... 455 6.1 ... Lieferabwicklung ... 457 6.2 ... Wellenmanagement ... 467 6.3 ... Lageraufgaben ... 476 6.4 ... Lagerauftragserstellung ... 500 6.5 ... Ausnahmebehandlung ... 509 6.6 ... Zusammenfassung ... 510 Anhang ... 511 A ... Programmierrichtlinien für Erweiterungen in EWM ... 511 B ... Migration von SAP EWM nach EWM in SAP S/4HANA ... 519 Das Autorenteam ... 529 Index ... 531
Rust
Werden Sie Rust-Profi und entwickeln Sie moderne, sichere Software! Rust ist für sein cleveres Speichermanagement, hervorrangende Sicherheit und viele beliebte Features bekannt. Nutzen Sie das hervorrangende Design dieser Sprache, um moderne und robuste Software auf professionellem Niveau zu entwickeln! Dieses Handbuch begleitet Sie beim Einstieg und stellt Rust dann detailliert vor – sowohl für systemnahe Prorammierung als auch für Enterprise- und Cloud-Anwendungen. Mit vielen gut kommentierten Codebeispielen, Best Practices und einer durchgehenden Demo-Anwendung. Zugleich lassen sich alle Kapitel gut einzeln lesen und zum Nachschlagen verwenden. Der ideale Weg zu fundierten und umfassenden Kenntnissen! Aus dem Inhalt: Rust installieren, Toolchain aufsetzenFundierter EinstiegSpeichermanagementTraits und ClosuresCollections und IteratorenAsynchrone ProgrammierungMultithreadingArbeiten mit TextDokumentation und Test automatisierenSchnittstellen zu anderen Sprachen Materialien zum Buch ... 18 1. Über dieses Buch ... 19 1.1 ... Was Sie in diesem Buch lernen werden ... 20 1.2 ... Was dieses Buch Ihnen zeigen möchte ... 21 1.3 ... Noch mehr Informationen und Guides ... 22 1.4 ... Danksagung ... 24 2. Die Installation, die IDE und »Hallo Rust« ... 25 2.1 ... Wie Sie Rust installieren ... 25 2.2 ... Eine Entwicklungsumgebung wählen ... 28 2.3 ... Das erste Programm ... 30 2.4 ... Wie es weitergeht ... 33 3. Variablen und Datentypen ... 35 3.1 ... Prelude: Die Standardimporte ... 35 3.2 ... Variablen ... 36 3.3 ... Konstanten ... 56 3.4 ... Skalare Datentypen ... 60 3.5 ... Wie Rust mit »Option« auf null verzichtet ... 81 3.6 ... Zusammenfassung ... 84 4. Speichernutzung und Referenzen ... 87 4.1 ... Wichtige Speicherbereiche ... 87 4.2 ... Eigentumsverhältnisse im Speicher ... 89 4.3 ... Referenzen und der leihweise Zugriff ... 98 4.4 ... Mit Box Objekte im Heap ablegen ... 111 4.5 ... Zusammenfassung ... 121 5. Strings ... 123 5.1 ... Der String-Slice ... 123 5.2 ... Der String ... 134 5.3 ... Wie Sie Strings formatieren ... 147 5.4 ... Zusammenfassung ... 154 6. Collections ... 157 6.1 ... Tupel ... 157 6.2 ... Arrays ... 166 6.3 ... Elementbereiche ... 173 6.4 ... Vektoren ... 182 6.5 ... Slices ... 214 6.6 ... HashMap und BTreeMap ... 231 6.7 ... Hashes ... 245 6.8 ... Mengen verwalten ... 248 6.9 ... Die Entry API ... 251 6.10 ... Elemente verschiedener Datentypen in eine Collection einfügen ... 257 6.11 ... Zusammenfassung ... 260 7. Funktionen ... 263 7.1 ... Der Aufbau einer Funktion ... 264 7.2 ... Funktionszeiger ... 268 7.3 ... Referenzen und Lebenszeiten in Funktionen ... 271 7.4 ... Konstante Funktionen ... 280 7.5 ... Anonyme Funktionen und Closures ... 285 7.6 ... Funktions-Traits ... 302 7.7 ... Zusammenfassung ... 311 8. Anweisungen, Ausdrücke und Muster ... 313 8.1 ... Von der Anweisung zum Ausdruck und Muster ... 313 8.2 ... Die Zuweisung im Detail ... 316 8.3 ... Speicherausdrücke ... 319 8.4 ... Operatoren ... 325 8.5 ... Konditionale Ausdrücke ... 330 8.6 ... Schleifen ... 342 8.7 ... Muster ... 350 8.8 ... Zusammenfassung ... 364 9. Fehlerbehandlung ... 367 9.1 ... Fehler, von denen sich das Programm nicht erholen kann ... 367 9.2 ... Erwartbare Fehler behandeln ... 381 9.3 ... Zusammenfassung ... 418 10. Strukturen ... 421 10.1 ... Daten zusammenhängend ablegen ... 422 10.2 ... Records: Der Struktur-Urtyp ... 423 10.3 ... Strukturen und Instanzen ... 426 10.4 ... Lebenszeiten: Wenn Felder Referenzen enthalten ... 441 10.5 ... Wie Sie dem Compiler mit PhantomData wichtige Typinformationen übergeben ... 449 10.6 ... Eine Datenstruktur ohne feste Größe ... 460 10.7 ... Die drei Strukturen ... 462 10.8 ... Muster ... 466 10.9 ... Daten und Verhalten sind getrennt ... 468 10.10 ... Strukturen in der Praxis: Das Bestellsystem überarbeiten ... 475 10.11 ... Assoziierte Funktionen und die new-Konvention ... 480 10.12 ... Methoden ... 486 10.13 ... Referenzen in assoziierten Funktionen und Methoden ... 501 10.14 ... Praxisbeispiel: Simulationsfähigkeiten im Restaurant-System ... 503 10.15 ... Rekursion in Strukturen ... 507 10.16 ... Typ-Aliasse ... 510 10.17 ... Zusammenfassung ... 512 11. Traits ... 515 11.1 ... Marker-Traits ... 516 11.2 ... Trait-Implementierungsblöcke ... 517 11.3 ... Sie können ein Trait jeweils für T und &T implementieren ... 541 11.4 ... Super-Traits ... 546 11.5 ... Trait-Objekte ... 549 11.6 ... Beispielprojekt: Trait-Objekte von »Form« ... 564 11.7 ... Undurchsichtige Datentypen zurückgeben ... 574 11.8 ... Traits in der Praxis ... 578 11.9 ... Zusammenfassung ... 627 12. Enumerationen ... 631 12.1 ... Die Eigenschaften einer Enumeration ... 632 12.2 ... Verschiedene Variant-Typen ... 644 12.3 ... Enumerationen und Muster ... 656 12.4 ... Implementierungsblöcke und Verhalten ... 660 12.5 ... Zusammenfassung ... 667 13. Module, Pfade und Crates ... 669 13.1 ... Das Modul ... 669 13.2 ... Pfade ... 697 13.3 ... Vom Crate zum Paket, vom Paket zum Workspace ... 721 13.4 ... Zusammenfassung ... 777 14. Generische Programmierung ... 781 14.1 ... Von der Vorlage zur Konkretisierung: Monomorphisierung ... 781 14.2 ... Typparameter, generische Konstanten und Lebenszeiten ... 783 14.3 ... Syntaktische Elemente, die generisch sein können ... 785 14.4 ... Mehr zu Trait-Grenzen ... 789 14.5 ... Zusammenfassung ... 794 15. Iteratoren ... 797 15.1 ... Wie Sie einen Iterator beziehen ... 798 15.2 ... Iterator-Adapter ... 805 15.3 ... Einen Iterator konsumieren ... 816 15.4 ... Zusammenfassung ... 822 16. Nebenläufige und asynchrone Programmierung ... 823 16.1 ... Nebenläufige Programmierung ... 824 16.2 ... Smart Pointer ... 876 16.3 ... Asynchrone Programmierung ... 893 16.4 ... Zusammenfassung ... 915 17. Makros ... 917 17.1 ... Deklarative Makros ... 917 17.2 ... Prozedurale Makros ... 939 17.3 ... Zusammenfassung ... 950 18. Automatische Tests und Dokumentation ... 953 18.1 ... Tests ... 954 18.2 ... Rust-Projekte dokumentieren ... 966 18.3 ... Zusammenfassung ... 979 19. Unsafe Rust und das Foreign Function Interface ... 981 19.1 ... Unsafe Rust ... 981 19.2 ... Primitive Zeiger ... 987 19.3 ... Union ... 998 19.4 ... Foreign Function Interface ... 1001 19.5 ... Zusammenfassung ... 1005 Index ... 1007
C++
Dieses Standardwerk führt Sie in die moderne C++-Entwicklung ein. Entwickeln Sie Software mit hohen Ansprüchen an Funktionalität, Effizienz und Sicherheit. Ausführlich werden der Sprachkern, die objektorientierte Programmierung und die Standardbibliothek behandelt. Sie lernen zum Beispiel, mit Streams umzugehen, Containertypen zu nutzen und nebenläufige Anwendungen zu entwicklen. Nicht zuletzt geht es dem Autor um das Wie: Freuen Sie sich auf ein Lehrbuch über die Konzepte des Modern C++, die C++ Core Guidelines, Sprachversionen und vor allem über guten Code. Aus dem Inhalt: SprachgrundlagenFehlerbehandlungObjektorientierte ProgrammierungZeigerSchnittstelle zu CTemplatesContainerStandardbibliothekC++ Core GuidelinesExtra: Tutorials zum Thema „guter Code“ Vorwort ... 25 TEIL I. Grundlagen ... 29 1. Das C++-Handbuch ... 31 1.1 ... Neu und modern ... 32 1.2 ... »Dan«-Kapitel ... 32 1.3 ... Darstellung in diesem Buch ... 33 1.4 ... Verwendete Formatierungen ... 33 1.5 ... Sorry for my Denglish ... 34 2. Programmieren in C++ ... 37 2.1 ... Übersetzen ... 38 2.2 ... Übersetzungsphasen ... 39 2.3 ... Aktuelle Compiler ... 40 2.4 ... Entwicklungsumgebungen ... 41 2.5 ... Die Kommandozeile unter Ubuntu ... 43 2.6 ... Die IDE »Visual Studio Code« unter Windows ... 47 2.7 ... Das Beispielprogramm beschleunigen ... 54 3. C++ für Umsteiger ... 55 4. Die Grundbausteine von C++ ... 63 4.1 ... Ein schneller Überblick ... 66 4.2 ... Ohne Eile erklärt ... 71 4.3 ... Operatoren ... 100 4.4 ... Eingebaute Datentypen ... 116 4.5 ... Undefiniertes und unspezifiziertes Verhalten ... 157 5. Guter Code, 1. Dan: Lesbar programmieren ... 159 5.1 ... Kommentare ... 160 5.2 ... Dokumentation ... 160 5.3 ... Einrückungen und Zeilenlänge ... 161 5.4 ... Zeilen pro Funktion und Datei ... 162 5.5 ... Klammern und Leerzeichen ... 163 5.6 ... Namen ... 164 6. Höhere Datentypen ... 167 6.1 ... Der Zeichenkettentyp »string« ... 168 6.2 ... Streams ... 174 6.3 ... Behälter und Zeiger ... 181 6.4 ... Die einfachen Sequenzcontainer ... 183 6.5 ... Algorithmen ... 189 6.6 ... Zeiger und C-Arrays ... 189 7. Funktionen ... 191 7.1 ... Deklaration und Definition einer Funktion ... 192 7.2 ... Funktionstyp ... 193 7.3 ... Funktionen verwenden ... 194 7.4 ... Eine Funktion definieren ... 195 7.5 ... Mehr zu Parametern ... 197 7.6 ... Funktionskörper ... 201 7.7 ... Parameter umwandeln ... 203 7.8 ... Funktionen überladen ... 205 7.9 ... Defaultparameter ... 208 7.10 ... Beliebig viele Argumente ... 209 7.11 ... Alternative Schreibweise zur Funktionsdeklaration ... 210 7.12 ... Spezialitäten ... 211 8. Anweisungen im Detail ... 215 8.1 ... Der Anweisungsblock ... 218 8.2 ... Die leere Anweisung ... 221 8.3 ... Deklarationsanweisung ... 221 8.4 ... Die Ausdrucksanweisung ... 224 8.5 ... Die »if«-Anweisung ... 224 8.6 ... Die »while«-Schleife ... 229 8.7 ... Die »do-while«-Schleife ... 231 8.8 ... Die »for«-Schleife ... 232 8.9 ... Die bereichsbasierte »for«-Schleife ... 234 8.10 ... Die »switch«-Verzweigung ... 236 8.11 ... Die »break«-Anweisung ... 240 8.12 ... Die »continue«-Anweisung ... 241 8.13 ... Die »return«-Anweisung ... 242 8.14 ... Die »goto«-Anweisung ... 243 8.15 ... Der »try-catch«-Block und »throw« ... 245 8.16 ... Zusammenfassung ... 247 9. Ausdrücke im Detail ... 249 9.1 ... Berechnungen und Seiteneffekte ... 250 9.2 ... Arten von Ausdrücken ... 251 9.3 ... Literale ... 253 9.4 ... Bezeichner ... 253 9.5 ... Klammern ... 254 9.6 ... Funktionsaufruf und Indexzugriff ... 254 9.7 ... Zuweisung ... 255 9.8 ... Typumwandlung ... 257 10. Fehlerbehandlung ... 259 10.1 ... Fehlerbehandlung mit Fehlercodes ... 261 10.2 ... Was ist eine Ausnahme? ... 264 10.3 ... Kleinere Fehlerbehandlungen ... 267 10.4 ... Weiterwerfen -- »rethrow« ... 268 10.5 ... Die Reihenfolge im »catch« ... 268 10.6 ... Typen für Exceptions ... 271 10.7 ... Wenn eine Exception aus »main« herausfällt ... 272 11. Guter Code, 2. Dan: Modularisierung ... 273 11.1 ... Programm, Bibliothek, Objektdatei ... 273 11.2 ... Bausteine ... 274 11.3 ... Trennen der Funktionalitäten ... 275 11.4 ... Ein modulares Beispielprojekt ... 277 TEIL II. Objektorientierte Programmierung und mehr ... 289 12. Von der Struktur zur Klasse ... 291 12.1 ... Initialisierung ... 294 12.2 ... Rückgabe eigener Typen ... 295 12.3 ... Methoden statt Funktionen ... 297 12.4 ... Das bessere »drucke« ... 300 12.5 ... Eine Ausgabe wie jede andere ... 302 12.6 ... Methoden inline definieren ... 303 12.7 ... Implementierung und Definition trennen ... 304 12.8 ... Initialisierung per Konstruktor ... 305 12.9 ... Struktur oder Klasse? ... 313 12.10 ... Zwischenergebnis ... 318 12.11 ... Eigene Datentypen verwenden ... 318 12.12 ... Typinferenz mit »auto« ... 335 12.13 ... Eigene Klassen in Standardcontainern ... 339 13. Namensräume und Qualifizierer ... 343 13.1 ... Der Namensraum »std« ... 344 13.2 ... Anonymer Namensraum ... 347 13.3 ... »static« macht lokal ... 349 13.4 ... »static« teilt gern ... 350 13.5 ... Ferne Initialisierung oder »static inline«-Datenfelder ... 353 13.6 ... Garantiert zur Compilezeit initialisiert mit »constinit« ... 354 13.7 ... »static« macht dauerhaft ... 354 13.8 ... »inline namespace« ... 356 13.9 ... Zusammenfassung ... 358 13.10 ... »const« ... 358 13.11 ... Flüchtig mit »volatile« ... 380 14. Guter Code, 3. Dan: Testen ... 383 14.1 ... Arten des Tests ... 383 14.2 ... Frameworks ... 391 14.3 ... Boost.Test ... 396 14.4 ... Hilfsmakros für Assertions ... 400 14.5 ... Ein Beispielprojekt mit Unittests ... 403 15. Vererbung ... 417 15.1 ... Beziehungen ... 418 15.2 ... Vererbung in C++ ... 421 15.3 ... Hat-ein versus ist-ein ... 422 15.4 ... Gemeinsamkeiten finden ... 422 15.5 ... Abgeleitete Typen erweitern ... 425 15.6 ... Methoden überschreiben ... 426 15.7 ... Wie Methoden funktionieren ... 427 15.8 ... Virtuelle Methoden ... 429 15.9 ... Konstruktoren in Klassenhierarchien ... 431 15.10 ... Typumwandlung in Klassenhierarchien ... 433 15.11 ... Wann virtuell? ... 434 15.12 ... Andere Designs zur Erweiterbarkeit ... 436 16. Der Lebenszyklus von Klassen ... 439 16.1 ... Erzeugung und Zerstörung ... 440 16.2 ... Temporary: kurzlebige Werte ... 442 16.3 ... Der Destruktor zum Konstruktor ... 444 16.4 ... Yoda-Bedingung ... 449 16.5 ... Konstruktion, Destruktion und Exceptions ... 450 16.6 ... Kopieren ... 452 16.7 ... Zuweisungsoperator ... 455 16.8 ... Streichen von Methoden ... 459 16.9 ... Verschiebeoperationen ... 461 16.10 ... Operatoren ... 466 16.11 ... Eigene Operatoren in einem Datentyp ... 470 16.12 ... Besondere Klassenformen ... 478 17. Guter Code, 4. Dan: Sicherheit, Qualität und Nachhaltigkeit ... 483 17.1 ... Die Nullerregel ... 483 17.2 ... RAII -- Resource Acquisition Is Initialization ... 489 18. Spezielles für Klassen ... 499 18.1 ... Dürfen alles sehen -- »friend«-Klassen ... 499 18.2 ... Non-public-Vererbung ... 504 18.3 ... Signaturklassen als Interfaces ... 510 18.4 ... Multiple Vererbung ... 514 18.5 ... Rautenförmige multiple Vererbung -- »virtual« für Klassenhierarchien ... 524 18.6 ... Literale Datentypen -- »constexpr« für Konstruktoren ... 528 19. Guter Code, 5. Dan: Klassisches objektorientiertes Design ... 531 19.1 ... Objekte in C++ ... 533 19.2 ... Objektorientiert designen ... 534 TEIL III. Fortgeschrittene Themen ... 555 20. Zeiger ... 557 20.1 ... Adressen ... 558 20.2 ... Zeiger ... 560 20.3 ... Gefahren von Aliasing ... 562 20.4 ... Heapspeicher und Stapelspeicher ... 563 20.5 ... Smarte Pointer ... 567 20.6 ... Rohe Zeiger ... 576 20.7 ... C-Arrays ... 582 20.8 ... Iteratoren ... 588 20.9 ... Zeiger als Iteratoren ... 590 20.10 ... Zeiger im Container ... 590 20.11 ... Die Ausnahme: wann das Wegräumen nicht nötig ist ... 591 21. Makros ... 595 21.1 ... Der Präprozessor ... 596 21.2 ... Vorsicht vor fehlenden Klammern ... 600 21.3 ... Featuremakros ... 601 21.4 ... Information über den Quelltext ... 602 21.5 ... Warnung vor Mehrfachausführung ... 603 21.6 ... Typvariabilität von Makros ... 604 21.7 ... Zusammenfassung ... 607 22. Schnittstelle zu C ... 609 22.1 ... Mit Bibliotheken arbeiten ... 610 22.2 ... C-Header ... 611 22.3 ... C-Ressourcen ... 614 22.4 ... »void«-Pointer ... 615 22.5 ... Daten lesen ... 616 22.6 ... Das Hauptprogramm ... 617 22.7 ... Zusammenfassung ... 618 23. Templates ... 619 23.1 ... Funktionstemplates ... 621 23.2 ... Funktionstemplates in der Standardbibliothek ... 631 23.3 ... Eine Klasse als Funktion ... 637 23.4 ... C++ Concepts ... 654 23.5 ... Templateklassen ... 662 23.6 ... Templates mit variabler Argumentanzahl ... 677 23.7 ... Eigene Literale ... 681 TEIL IV. Die Standardbibliothek ... 693 24. Container ... 695 24.1 ... Grundlagen ... 696 24.2 ... Iteratoren-Grundlagen ... 709 24.3 ... Allokatoren: Speicherfragen ... 714 24.4 ... Containergemeinsamkeiten ... 717 24.5 ... Ein Überblick über die Standardcontainerklassen ... 719 24.6 ... Die sequenziellen Containerklassen ... 723 24.7 ... Assoziativ und geordnet ... 769 24.8 ... Nur assoziativ und nicht garantiert ... 805 24.9 ... Containeradapter ... 837 24.10 ... Sonderfälle: »string«, »basic_string« und »vector« ... 840 24.11 ... Sonderfälle: »vector«, »array« und »bitset« ... 842 24.12 ... Sonderfall: Value-Array mit »valarray<>« ... 845 25. Containerunterstützung ... 855 25.1 ... Algorithmen ... 857 25.2 ... Iteratoren und Ranges ... 858 25.3 ... Iteratoradapter ... 860 25.4 ... Algorithmen der Standardbibliothek ... 861 25.5 ... Parallele Ausführung ... 863 25.6 ... Liste der Algorithmusfunktionen und Range-Adapter ... 866 25.7 ... Elemente verknüpfende Algorithmen aus »« und »« ... 892 25.8 ... Kopie statt Zuweisung -- Werte in uninitialisierten Speicherbereichen ... 899 25.9 ... Eigene Algorithmen ... 901 25.10 ... Eigene Views und Range-Adapter schreiben ... 903 26. Guter Code, 6. Dan: Für jede Aufgabe der richtige Container ... 907 26.1 ... Alle Container nach Aspekten sortiert ... 907 26.2 ... Rezepte für Container ... 913 26.3 ... Algorithmen je nach Container unterschiedlich implementieren ... 919 27. Streams, Dateien und Formatierung ... 921 27.1 ... Ein- und Ausgabekonzept mit Streams ... 922 27.2 ... Globale, vordefinierte Standardstreams ... 922 27.3 ... Methoden für die Aus- und Eingabe von Streams ... 925 27.4 ... Fehlerbehandlung und Zustand von Streams ... 929 27.5 ... Streams manipulieren und formatieren ... 933 27.6 ... Streams für die Dateiein- und Dateiausgabe ... 945 27.7 ... Streams für Strings ... 961 27.8 ... Streampuffer ... 966 27.9 ... »filesystem« ... 969 27.10 ... Formatieren ... 971 28. Standardbibliothek -- Extras ... 979 28.1 ... »pair« und »tuple« ... 979 28.2 ... Reguläre Ausdrücke ... 987 28.3 ... Zufall ... 997 28.4 ... Mathematisches ... 1006 28.5 ... Systemfehlerbehandlung mit »system_error« ... 1033 28.6 ... Laufzeittypinformationen -- »« und »« ... 1043 28.7 ... Hilfsklassen rund um Funktoren -- »« ... 1047 28.8 ... »optional« für einen oder keinen Wert ... 1055 28.9 ... »variant« für einen von mehreren Typen ... 1056 28.10 ... »any« hält jeden Typ ... 1058 28.11 ... Spezielle mathematische Funktionen ... 1059 28.12 ... Schnelle Umwandlung mit »« ... 1060 29. Threads -- Programmieren mit Mehrläufigkeit ... 1063 29.1 ... C++-Threading-Grundlagen ... 1064 29.2 ... Gemeinsame Daten ... 1082 29.3 ... Andere Möglichkeiten zur Synchronisation ... 1100 29.4 ... Im eigenen Speicher mit »thread_local« ... 1104 29.5 ... Mit »condition_variable« auf Ereignisse warten ... 1105 29.6 ... Einmal warten mit »future« ... 1110 29.7 ... Atomics ... 1122 29.8 ... Koroutinen ... 1127 29.9 ... Zusammenfassung ... 1133 A. Guter Code, 7. Dan: Richtlinien ... 1137 A.1 ... Guideline Support Library ... 1138 A.2 ... C++ Core Guidelines ... 1139 B. Cheat Sheet ... 1153 Index ... 1157