Programmierung
Generative AI Apps with LangChain and Python
Future-proof your programming career through practical projects designed to grasp the intricacies of LangChain’s components, from core chains to advanced conversational agents. This hands-on book provides Python developers with the necessary skills to develop real-world Large Language Model (LLM)-based Generative AI applications quickly, regardless of their experience level.Projects throughout the book offer practical LLM solutions for common business issues, such as information overload, internal knowledge access, and enhanced customer communication. Meanwhile, you’ll learn how to optimize workflows, enhance embedding efficiency, select between vector stores, and other optimizations relevant to experienced AI users. The emphasis on real-world applications and practical examples will enable you to customize your own projects to address pain points across various industries._Developing LangChain-based Generative AI LLM Apps with Python_ employs a focused toolkit (LangChain, Pinecone, and Streamlit LLM integration) to practically showcase how Python developers can leverage existing skills to build Generative AI solutions. By addressing tangible challenges, you’ll learn-by-be doing, enhancing your career possibilities in today’s rapidly evolving landscape.WHAT YOU WILL LEARN* Understand different types of LLMs and how to select the right ones for responsible AI.* Structure effective prompts.* Master LangChain concepts, such as chains, models, memory, and agents.* Apply embeddings effectively for search, content comparison, and understanding similarity.* Setup and integrate Pinecone vector database for indexing, structuring data, and search.* Build Q & A applications for multiple doc formats.* Develop multi-step AI workflow apps using LangChain agents.WHO THIS BOOK IS FORPython programmers who aim to develop a basic understanding of AI concepts and move from LLM theory to practical Generative AI application development using LangChain; those seeking a structured guide to enhance their careers by learning to create robust, real-world LLM-powered Generative AI applications; data scientists, analysts, and experienced developers new to LLMs.RABI JAY has over 15 years of experience driving digital transformation with a unique blend of technical depth and business acumen. His background as a Java and SAP ABAP developer provides insights into the enterprise systems LLMs often needed to integrate with. As a leader in Deloitte’s Digital / Cloud Native practice, he has gained cross-industry experience applying AI solutions, positioning him to identify where LLMs offer the greatest potential for business impact.He is passionate about making complex technology accessible, leading him to authoring books on SAP NetWeaver Portal Technology and "Enterprise AI in the Cloud" along with regular contributions to industry publications. His role as a technical reviewer for Large Language Model Based Solutions, Modern Python Development Using ChatGPT, and as Vice President at HCL America, focused on digital transformation, demonstrate his active engagement in the LLM field. Additionally, he runs a LinkedIn newsletter ("Enterprise AI Transformation") and free LinkedIn course (“Generative AI for Business Innovation”).Chapter 1: Introduction to LangChain and LLMs.- Chapter 2: Integrating LLM APIs with LangChain.- Chapter 3: Building Q&A and Chatbot Apps.- Chapter 4: Exploring LLMs.- Chapter 5: Mastering Prompts for Creative Content.- Chapter 6: Building Chatbots and Automated Analysis Systems Using Chains.- Chapter 7: Building Advanced Q&A and Search applications Using Retrieval-Augmented Generation (RAG).- Chapter 8: Your First Agent App.- Chapter 9: Building Different Types of Agents.- Chapter 10: Projects: Building Agent Apps for Common Use Cases. - Chapter 11: Building & Deploying a ChatGPT Like App Using Streamlit.
Hands-on Deep Learning
This book discusses deep learning, from its fundamental principles to its practical applications, with hands-on exercises and coding. It focuses on deep learning techniques and shows how to apply them across a wide range of practical scenarios.The book begins with an introduction to the core concepts of deep learning. It delves into topics such as transfer learning, multi-task learning, and end-to-end learning, providing insights into various deep learning models and their real-world applications. Next, it covers neural networks, progressing from single-layer perceptrons to multi-layer perceptrons, and solving the complexities of backpropagation and gradient descent. It explains optimizing model performance through effective techniques, addressing key considerations such as hyperparameters, bias, variance, and data division. It also covers convolutional neural networks (CNNs) through two comprehensive chapters, covering the architecture, components, and significance of kernels implementing well-known CNN models such as AlexNet and LeNet. It concludes with exploring autoencoders and generative models such as Hopfield Networks and Boltzmann Machines, applying these techniques to a diverse set of practical applications. These applications include image classification, object detection, sentiment analysis, COVID-19 detection, and ChatGPT.By the end of this book, you will have gained a thorough understanding of deep learning, from its fundamental principles to its innovative applications, enabling you to apply this knowledge to solve a wide range of real-world problems.WHAT YOU WILL LEARN* What are deep neural networks?* What is transfer learning, multi-task learning, and end-to-end learning?* What are hyperparameters, bias, variance, and data division?* What are CNN and RNN?WHO THIS BOOK IS FORMachine learning engineers, data scientists, AI practitioners, software developers, and engineers interested in deep learningHARSH BHASIN is a researcher and practitioner. He has completed his PhD in Diagnosis and Conversion Prediction of Mild Cognitive Impairment Using Machine Learning from Jawaharlal Nehru University, New Delhi. He worked as a Deep Learning consultant for various firms and taught at various Universities, including Jamia Hamdard, and DTU. He is currently associated with Bennett University.Harsh has authored 11 books, including _Programming in C#_ and _Algorithms._ He has authored more than 40 papers that have been published in international conferences and renowned journals, including Alzheimer’s and Dementia, Soft Computing, Springer, BMC Medical Informatics & Decision Making, AI & Society, etc. He is the reviewer of a few renowned journals and has been the editor of a few special issues. He has been a recipient of Visvesvaraya Fellowship, Ministry of Electronics and Information Technology.His areas of expertise include Deep Learning, Algorithms and Medical Imaging. Apart from his professional endeavours, he is deeply interested in Hindi Poetry: the progressive era and Hindustani Classical Music: percussion instruments.Chapter 1: Revisiting Machine Learning.- Chapter 2: Introduction to Deep Learning.- Chapter 3: Neural Networks.- Chapter 4: Training Deep Networks.- Chapter 5: Hyperparameter Tuning.- Chapter 6: Convolutional Neural Networks: Part 1.- Chapter 7: Convolutional Neural Networks : Part 2.- Chapter 8: Transfer Learning.- Chapter 9: Recurrent Neural Networks.- Chapter 10: LSTM and GRU.- Chapter 11: Autoencoders.- Chapter 12: Introduction to Generative Models.- Appendices A-G.
Java 23 for Absolute Beginners
Write your first code in Java 23 using simple, step-by-step examples that model real-word objects and events, making learning easy. With this book you will be able to pick up core programming concepts without fuss and write efficient Java code in no time. Clear code descriptions and layout ensure you get your code running as soon as possible. Author Iuliana Cosmina focuses on practical knowledge and getting you up to speed quickly—all the bits and pieces a novice needs to get started programming in Java.In this edition, you will discover how Java has changed since version 17, and how to design and write code using the most recently introduced Java features such as new collection methods, virtual threads, pattern and record matching in switch expressions, structured concurrency tasks, unnamed classes and instance methods, and many more.This book is a complete Java guide, covering the following topics: setting up a development environment, programming concepts and well-known programming principles, writing Java code following industry-specific design patterns and coding conventions, executing it, debugging, testing, documenting it and even using specialized tools such as IntelliJ IDEA for writing Java code, Maven for building, JUnit Jupiter for testing, and in-memory and Docker-hosted databases or data storage. After reading this book, you’ll have all the necessary skills and knowledge to pass an interview for a starting Java development position.WHAT YOU WILL LEARN* Set up a Java development environment* Use the Java language to write high-quality code* Understand fundamental programming concepts and algorithms* Use virtual threads, records, and other Java renown features* Debug, test, and document Java code* Improve performance by customizing the Garbage CollectorWHO THIS BOOK IS FORThose who are new to programming and want to learn Java and use it to build efficient solutionsIULIANA COSMINA is currently a software engineer for Cloudsoft, Edinburgh. She has been writing Java code since 2002 and contributed to various types of applications such as experimental search engines, ERPs, track and trace, and banking. During her career, she has been a teacher, a team leader, software architect, DevOps professional, and software manager. She is a Spring-certified Professional, as defined by Pivotal, the makers of Spring Framework, Boot, and other tools, and considers Spring the best Java framework to work with. When she is not programming, she spends her time reading, blogging, learning to play piano, travelling, hiking, or biking.1. An Introduction to Java and its History.- 2. Preparing your Development Environment.- 3. Getting Your Feet Wet.- 4. Java Syntax.- 5. Data Types.- 6. Operators.- 7. Controlling the Flow.- 8. The Stream API.- 9. Debugging, Testing, and Documenting.- 10. Making Your Application Interactive.- 11. Working With Files.- 12. The Publish-Subscribe Framework.- 13. Garbage Collection.- Appendix A.
Programmieren mit JavaScript
JavaScript hat sich mittlerweile von einer, am Anfang teils nicht ganz ernst genommenen, Skriptsprache im Browser zu einer der wichtigsten Programmiersprachen überhaupt entwickelt. Im Kern immer noch als die Sprache im Webbrowser schlechthin populär, erobert JavaScript nach und nach immer mehr Anwendungsgebiete. Bei der clientseitigen Webentwicklung gibt es im Grunde keine Alternative zu JavaScript für die Entwicklung interaktiver und dynamischer Webanwendungen. Nahezu alle Frameworks basieren zudem auf JavaScript. Aber auch zur Unterstützung vieler weiterer Arten von Software kann man JavaScript einsetzen bzw. gibt es auf JavaScript aufsetzende Frameworks.Insbesondere boomt aber die serverseitige Entwicklung mit JavaScript. Beispielsweise mit Node.js können Entwickler JavaScript auf Serverseite ausführen, was die Entwicklung von skalierbaren und leistungsstarken Webanwendungen ermöglicht. Node.js wird zudem häufig für die Erstellung von APIs, Echtzeit-Anwendungen und Microservices verwendet.Entdecken Sie in diesem Buch nun die mittlerweile fast grenzenlosen Möglichkeiten von JavaScript. Von den Grundlagen bis hin zu fortgeschrittenen Techniken werden alle Aspekte der Sprache abgedeckt. Tauchen Sie ein in die Welt von JavaScript und erweitern Sie Ihr Wissen mit praxisnahen Beispielen und bewährten Methoden. Egal, ob Sie mit JavaScript beginnen und die Grundlagen erlernen möchten, oder als erfahrene(r) Entwicklerin bzw. Entwickler das Können vertiefen wollen. Hier finden Sie das Wissen und die Werkzeuge, um Ihre JavaScript-Fähigkeiten auf das nächste Level zu bringen. Einleitung. Erste Beispiele – Der Sprung ins kalte Wasser. Versionen von JavaScript und Einbindung in Webseiten. Elementare JavaScript-Grundstrukturen. Kontrollflussanweisungen. Arrays, JSON und andere iterierbare Elemente. Funktionen, Prozeduren und Methoden. Module. Objekte und JavaScript. Eingebaute Objektdeklarationen. Der DOM – das Mysterium der JavaScript-Welt. Ausnahmebehandlung. Asynchrone Programmierung. Erweiterte Techniken. Eine Frage der Qualität. RALPH STEYER wurde in Wiesbaden geboren und hat nach dem Abitur in Frankfurt Mathematik studiert. Seit 1996 arbeitet er selbstständig als Diplom-Mathematiker im Bereich EDV-Schulung, Programmierung und Beratung. Seine Spezialgebiete sind Internetprogrammierung und objektorientierte Software-Entwicklung. Unter anderem unterrichtet er an Hochschulen sowie für verschiedene Schulungsanbieter. Ralph Steyer ist zudem Autor zahlreicher Fachbücher und Videotrainings zu verschiedenen Programmierthemen.
Spiele programmieren mit Scratch
* 12 COOLE COMPUTERSPIELE GANZ EINFACH MIT SCRATCH ERSTELLEN* VON DEN GRUNDLAGEN BIS ZU CLEVEREN TRICKS WIE BERÜHRUNGEN ERKENNEN UND PUNKTE ZÄHLEN * FÜR KINDER AB 9 JAHREN OHNE VORKENNTNISSE* AKTUELL ZU SCRATCH 3.0Mit diesem Buch lernen Kinder ganz einfach und spielerisch das Programmieren. Hierzu ist nichts weiter nötig als ein PC, die kostenlose Programmiersprache Scratch und dieses Buch.Scratch ist eine visuelle Programmiersprache und damit besonders gut für Kinder und die ersten Gehversuche in der Welt der Programmierung geeignet. Das Buch enthält eine kurze Einführung in die Verwendung von Scratch sowie Anleitungen für 12 spannende Spiele, die Kinder ganz leicht selbstständig umsetzen können. Durch die intuitive Bedienung von Scratch können die Spiele einfach angepasst werden, um der eigenen Kreativität freien Lauf zu lassen.Während sie die Spiele aus dem Buch umsetzen, lernen Kinder spielerisch wichtige Grundlagen der Programmierung wie z.B. die Funktionsweise von Schleifen, Variablen und Funktionen, die später auf andere Programmiersprachen übertragen werden können.Für das Programmieren kleiner Spiele unterwegs enthält das Buch zusätzlich eine kurze Einführung in die Smartphone-App ScratchJr.SPIELE IM BUCH:* Zahlenraten* Versteckspiel* Baseball* Asteroiden abschießen* Tennis* Adventure: Verwunschenes Haus* und viele mehrThomas Kaffka arbeitet als Dozent für IT an einem Gymnasium und in zwei Bildungseinrichtungen, die Schülerinnen und Schülern die IT näherbringen. Er war viele Jahre als Softwareingenieur und Projektleiter in Softwarehäusern sowie Wirtschaftsprüfungs- und Beratungsgesellschaften tätig.
Java For Dummies
LEARN TO CODE WITH JAVA AND OPEN THE GATE TO A REWARDING CAREERNow in its 9th edition, Java For Dummies gives you the essential tools you need to understand the programming language that 17 million software developers rely on. This beginner-friendly guide simplifies every step of the learning process. You'll learn the basics of Java and jump into writing your own programs. Along the way, you'll gain the skills you need to reuse existing code, create new objects, troubleshoot when things go wrong, and build working programs from the ground up. Java For Dummies will help you become a Java developer, even if you're brand new to the world of coding.* Learn the basic syntax and building blocks of Java* Begin to write your own programs in the latest Java version* Test out your code and problem-solve any errors you find* Discover techniques for writing code fasterThis is the must-have Dummies resource for beginning programmers and students who need a step-by-step guide to getting started with Java. You'll also love this book if you're a seasoned programmer adding another language to your repertoire. DR. BARRY BURD is a professor of Mathematics and Computer Science at Drew University in Madison, NJ. He’s a co-leader of the Garden State Java User Group and New York JavaSIG. In 2020, he was honored to be named a Java Champion. He’s the author of Beginning Programming with Java For Dummies and Flutter For Dummies.
AI Solutions for the United Nations Sustainable Development Goals (UN SDGs)
Learn the United Nations Sustainable Development Goals (UN SDGs) and see how machine learning can significantly contribute to their realization. This book imparts both theoretical knowledge and hands-on experience in comprehending and constructing machine learning-based applications for addressing multiple UN SDGs using JavaScript. The reading begins with a delineation of diverse UN SDG targets, providing an overview of previous successful applications of machine learning in solving realistic problems aligned with these targets. It thoroughly explains fundamental concepts of machine learning algorithms for prediction and classification, coupled with their implementation in JavaScript and HTML programming. Detailed case studies examine challenges related to renewable energy, agriculture, food production, health, environment, climate change, water quality, air quality, and telecommunications, corresponding to various UN SDGs. Each case study includes related works, datasets, machine learning algorithms, programming concepts, and comprehensive explanations of JavaScript and HTML codes used for web-based machine learning applications. The results obtained are meticulously analyzed and discussed, showcasing the pivotal role of machine learning in advancing the relevant SDGs. By the end of this book, you’ll have a firm understanding of SDG fundamentals and the practical application of machine learning to address diverse challenges associated with these goals. You will: * Understand the fundamental concepts of the UN SDGs, AI, and machine learning algorithms. * Employ the correct machine learning algorithms to address challenges on the United Nations Sustainable Development Goals (UN SDGs)? * Develop web-based machine learning applications for the UN SDGs using Javascript, and HTML. * Analyze the impact of a machine learning-based solution on a specific UN SDG. Learn the United Nations Sustainable Development Goals (UN SDGs) and see how machine learning can significantly contribute to their realization. This book imparts both theoretical knowledge and hands-on experience in comprehending and constructing machine learning-based applications for addressing multiple UN SDGs using JavaScript. The reading begins with a delineation of diverse UN SDG targets, providing an overview of previous successful applications of machine learning in solving realistic problems aligned with these targets. It thoroughly explains fundamental concepts of machine learning algorithms for prediction and classification, coupled with their implementation in JavaScript and HTML programming. Detailed case studies examine challenges related to renewable energy, agriculture, food production, health, environment, climate change, water quality, air quality, and telecommunications, corresponding to various UN SDGs. Each case study includes related works, datasets, machine learning algorithms, programming concepts, and comprehensive explanations of JavaScript and HTML codes used for web-based machine learning applications. The results obtained are meticulously analyzed and discussed, showcasing the pivotal role of machine learning in advancing the relevant SDGs. By the end of this book, you’ll have a firm understanding of SDG fundamentals and the practical application of machine learning to address diverse challenges associated with these goals. What You’ll Learn * Understand the fundamental concepts of the UN SDGs, AI, and machine learning algorithms. * Employ the correct machine learning algorithms to address challenges on the United Nations Sustainable Development Goals (UN SDGs)? * Develop web-based machine learning applications for the UN SDGs using Javascript, and HTML. * Analyze the impact of a machine learning-based solution on a specific UN SDG. Who This Book Is For Data scientists, machine learning engineers, software professionals, researchers, and graduate students. Dr. 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 by 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 Machine Learning Applications Development and the UN SDGs.- Chapter 2: Utilizing Machine Learning Algorithms for Power generation prediction and classification in Wind Farms.- Chapter 3: Crop Recommendation System Using Machine Learning Algorithms for achieving SDGs 2, 9, and 12.- Chapter 4: Aligning Manufacturing Emissions with SDGs 9 and 13 Using Machine Learning Algorithms.- Chapter 5: Water Potability Testing Using Machine Learning.- Applying Machine Learning for Air Quality Monitoring Targeting SDG 3 and 13.- Chapter 7: Clustering the Development of Worldwide Internet Connectivity with Unsupervised Learning for SDGs 7, 9, and 11.
SQL Schnelleinstieg
Datenbanken abfragen und verwalten in 14 TagenMit diesem Buch gelingt Ihnen der einfache Einstieg in das Datenbankmanagement mit der Abfragesprache SQL. Alle Grundlagen werden in 14 Kapiteln leicht verständlich anhand von Beispielen erläutert.Der Autor führt Sie Schritt für Schritt in den Einsatz von SQL und die Grundlagen relationaler Datenbanken ein: von der fundamentalen Syntax und den ersten Datenbankabfragen über das Verknüpfen von Tabellen bis hin zur Datenbankerstellung und der Zugriffskontrolle.Alle Beispiele beziehen sich auf eine Beispieldatenbank, die auf der Webseite des Verlags zum Download bereitsteht, und lassen sich leicht auf eigene Anwendungsfälle übertragen. Die Besonderheiten bei der Verwendung von PostgreSQL und MySQL werden bei jedem Beispiel beschrieben.So sind Sie perfekt auf den Einsatz von SQL im professionellen Umfeld vorbereitet.Aus dem Inhalt:Alle Grundlagen einfach erläutertSQL-Syntax und Datenbank-AbfragenFiltern mit BedingungenGruppierung von Daten und AggregatfunktionenVerknüpfen von Tabellen und ErgebnissenSkalarfunktionen und UnterabfragenDatenbanken erstellen und anpassenRechteverwaltung und ZugriffskontrolleKomplexe SQL-Konzepte – Trigger, Indizes und ViewsLeseprobe (PDF-Link)Über den Autor:Erik Schönwälder arbeitet als wissenschaftlicher Mitarbeiter (Doktorand) an der Technischen Universität Dresden am Lehrstuhl für Datenbanken. Als Dozent lehrt er hauptsächlich Themen wie Datenbank-Engineering, Information Retrieval, SQL und NoSQL. Auch außerhalb der Universität unterrichtet er seine Fachgebiete online, beispielsweise bei der Heise Academy oder auf Udemy.
Erstellung hochwertiger Shader für Unity®
Shader gelten oft als mystisch und schwer zu entwickeln, selbst für erfahrene Programmierer, Künstler und Entwickler aus anderen Bereichen des Spieldesigns. Dieses Buch räumt mit dieser Vorstellung auf, indem es Ihr Wissen über in Stufen aufbaut. Es beginnt mit grundlegenden Shader-Mathematiken, erklärt, wie sich die Denkweise der Shader-Entwicklung von anderen Arten von Kunst und Programmierung unterscheidet, und geht dann langsam auf Themen wie Vertex- und Fragment-Shader, Beleuchtung, Tiefenbasierte Effekte, Texture Mapping und Shader Graph ein.Jedes dieser Themen wird mit einer umfassenden Aufschlüsselung, der benötigten Theorie und einigen praktischen Anwendungen für die im jeweiligen Kapitel gelernten Techniken präsentiert. Der HLSL (High Level Shading Language)-Code und Shader Graphs werden für jeden relevanten Abschnitt bereitgestellt, ebenso wie zahlreiche Screenshots.Am Ende des Buches werden Sie ein gutes Verständnis für den Shader-Entwicklungsprozess haben und bestens gerüstet sein, um Ihre eigenen ästhetischen und leistungsstarken Shader-Effekte für Ihre Spiele zu erstellen!WAS SIE IN DIESEM BUCH LERNEN Shaders in den Rendering-Pipelines von Unity zu verwenden Shader zu schreiben und ihr Verhalten mit C#-Skripting zu ändern Shader Graph für eine Entwicklung ohne Code zu nutzen Die wichtige Mathematik hinter Shadern zu verstehen, insbesondere Raumtransformationen Die Leistung von Shadern zu analysieren, um Optimierungspotenziale zu identifizieren ZUM INHALT Kapitel 1: Einführung in Shader in Unity. Kapitel 2: Mathematik für die Shader-Entwicklung. Kapitel 3: Ihr allererster Shader. Kapitel 4: Shader-Grafik. Kapitel 5: Texturen, UV-Koordinaten & Normal Mapping. Kapitel 6: Transparenz. Kapitel 7: Der Tiefenpuffer. Kapitel 8: Transparenz und Alpha. Kapitel 9: Weitere Shader-Grundlagen. Kapitel 10: Beleuchtung und Schatten. Kapitel 11: Bildeffekte und Nachbearbeitung. Kapitel 12: Erweiterte Shader. Kapitel 13: Profiling und Optimierung. Kapitel 14: Shader-Rezepte für Ihre Spiele. ZIELGRUPPENDieses Buch richtet sich an Anfänger in der Shader-Entwicklung oder Leser, die den Schritt von Shader-Code zum Shader Graph machen möchten. Es enthält auch einen Abschnitt über Shader-Beispiele für diejenigen, die bereits die Grundlagen von Shadern kennen und nach spezifischen Anwendungsfällen suchen.DANIEL ILETT ist Doktorand an der University of Warwick. Als leidenschaftlicher Spieleentwickler hat er sich auf Shader und technische Kunst spezialisiert. Er ist Autor verschiedener Lehr- und Tutorial-Inhalte, darunter Videos und schriftliche Arbeiten, die sich an Anfänger und fortgeschrittene Entwickler richten. Darüber hinaus arbeitet er freiberuflich an Shadern und visuellen Effekten für Spiele.
Helidon Revealed
This book is your comprehensive introduction to Project Helidon, Oracle’s Java-based microservices framework for building cloud-native applications. The book introduces the two flavors of Helidon—Helidon SE and Helidon MP—and shows how to quickly build applications with each one.The book begins by placing the Helidon framework in context and explaining the MicroProfile and Jakarta EE specifications that underlie the building of microservices-based applications. From there, you will learn about the individual components of Helidon SE and Helidon MP, and you will see examples of building applications for both flavors, and for MicroProfile and Jakarta EE. Finally, the book shows how to convert Helidon applications from Java bytecode into native binaries for instant application startup and peak performance.WHAT YOU WILL LEARN* Choose correctly between Helidon SE and Helidon MP* Create starter applications using the Helidon SE and Helidon MP quick starts* Create server and client applications with Helidon SE components* Create a microservices-based application with the MicroProfile specifications* Create a database application with the Jakarta NoSQL specificationWHO THIS BOOK IS FORJava developers who create microservices applications; those interested in building such applications using the Helidon framework; and developers of microservices applications who want functionality such as native-image support through GraalVM, compatibility with MicroProfile, easy connectivity to database engines, and support for reactive development patternsMICHAEL REDLICH has been an active member within the Java community for the past 25 years. He founded the Garden State Java User Group in 2001 that remains in continuous operation. Since May 2016, Mike has served as a Java community news editor for InfoQ where his contributions include news items, technical articles and technical reviews for external authors. He has been the lead Java Queue Editor since July 2021. Mike was named a Java Champion in April 2023.Mike has presented at venues such as Oracle Code One, JCON, Emerging Technologies for the Enterprise, Trenton Computer Festival (TCF), TCF IT Professional Conference, and numerous Java User Groups. Mike serves as a committer on the Jakarta NoSQL and Jakarta Data specifications, and participates on the leadership council of the Jakarta EE AmbassadorsMike recently retired from ExxonMobil Technology & Engineering in Clinton, New Jersey with 33½ years of service. His experience included developing custom scientific laboratory applications, web applications, chemometrics, polymer physics, infrared spectroscopy and automotive testing. He also has experience as a Technical Support Engineer at Ai-Logix, Inc. (now AudioCodes) where he provided technical support and developed telephony applications for customers.Mike makes his home in Flemington, New Jersey with his lovely wife, Rowena, where they spend quality time cycling and traveling to New Orleans, Louisiana and Newport, Rhode Island throughout the year.PART I. GETTING STARTED.- 1. Introduction to Project Helidon.- 2. The MicroProfile Specification.- 3. The Jakarta EE Specifications.- PART II. HELIDON SE.- 4. Generating a Project with Helidon SE.- 5. Helidon Web Server.- 6. Helidon Web Client.- 7. Helidon Config.- 8. Helidon DB Client.- 9. Helidon Security.- PART III. HELIDON MP.- 10. Generating a Project with Helidon MP.- 11. Helidon Metrics.- 12. Helidon Fault Tolerance.- 13. Helidon Health Checks.- Appendix A. MicroProfile Release History.- Appendix B. The Jakarta EE Specifications.- Appendix C. Helidon Reactive Web Server.
Einstieg in Python (2. Auflg.)
Einstieg in Python - Grundlagen der Python-Programmierung leicht und verständlich erklärt, in 2. Auflage aus Dezember 2024Sie wollen endlich programmieren lernen und ihre ersten Projekte umsetzen. Hierfür bietet sich Python als eine der populärsten Programmiersprachen an. Mit diesem Buch gelingt Ihnen mühelos ein Einstieg, denn Sie werden auf Ihrer Entdeckungsreise vom erfahrenden Trainer Michael Inden begleitet. Er erklärt Ihnen die Grundlagen der Python-Programmierung leicht und verständlich. Generell wird die trockene Theorie auf ein Minimum reduziert. Ergänzend werden immer wieder auch Python-spezifische Besonderheiten wie Built-in-Funktionen, Slicing, Comprehensions, Generatoren usw. erklärt, die das Entwicklen erleichtern und Ihre Programme gleich von Anfang an Python-like, stilistisch schön – kurz Pythonic – machen.Eine große Rolle spielt der interaktive Einstieg mithilfe der Python-Kommandozeile. Damit können kleine Programme direkt ausprobiert werden und Erfolgserlebnisse stellen sich schnell ein. Dieses Vorgehen eignet sich ideal, um sich Python im Selbststudium sowie im eigenen Tempo anzueignen. Allmählich werden die Themen anspruchsvoller und die zu erstellenden Programme größer. Schließlich erfahren Sie, wie Sie eine Entwicklungsumgebung einsetzen, und lernen die objektorientierte Programmierung kennen. Mit den erworbenen Grundlagen können Sie sich immer gezielter mit eigenen Projekten beschäftigen. Erste Ideen liefern drei etwas umfangreichere Programmierbeispiele aus der Praxis, die zudem einen Einblick in das schrittweise, erfolgreiche Entwickeln von Applikationen geben.Das Buch besteht aus in sich abgeschlossenen, aufeinander aufbauenden Kapiteln zu den wesentlichen Bereichen der Programmiersprache Python und den relevanten Sprachelementen. Aufgaben und Musterlösungen runden viele Kapitel ab, sodass Sie das zuvor Gelernte direkt anhand neuer Problemstellungen praktizieren und Ihr Wissen vertiefen können.Zahlreiche kurze Codebeispiele verdeutlichen die Lerninhalte und laden zum Experimentieren ein. Gleich von Anfang an lernen Sie, Ihren Sourcecode sauber zu strukturieren und einen guten Stil zu entwickeln. Dabei hilft ein Kapitel zu Programmierregeln, sogenannten Coding Conventions und zum Testen mit Pytest.Diese zweite Auflage ergänzt Kapitel zur Bildverarbeitung sowie zu populären LLMs und deren vielfältigen Einsatzmöglichkeiten. Schließlich werden die Neuerungen aus Python 3.13 im Anhang vorgestellt.Leseprobe (PDF-Link)
C++ Essentials For Dummies
THE QUICK AND CRYSTAL-CLEAR GUIDE TO C++ PROGRAMMINGC++ Essentials For Dummies is your useful reference to the key concepts of C++, the popular general-purpose language utilized everywhere from building games to writing parts of operating systems. With minimal review and background material—and absolutely no fluff—this book gets straight to the essential topics you need to know to ramp up, brush up, or level up.* Get a helpful intro to the basic concepts of coding in C++* Review what you already know or pick up essential new skills* Create projects that run smoothly with the C++ language* Keep this concise reference book handy for jogging your memory as you workGreat for supplementing classroom learning, reviewing for a certification, or staying knowledgeable on the job, C++ Essentials For Dummies is a fantastic refresher guide that you can always turn to for answers. JOHN PAUL MUELLER produced more than 100 books and more than 600 articles on a range of topics, including functional programming techniques, application development using C++, and machine learning methodologies. RONALD MAK teaches computer science and data science at San Jose State University. He was formerly a senior scientist at NASA and JPL, and has written books on software design, compiler construction, and numerical computing.
Python lernen mit KI-Tools
Python lernen mit KI-Tools - Einstieg in die Programmierung mit KI-Unterstützung, als Erstauflage aus Dezember 2024.Python eignet sich hervorragend für den Einstieg in die Programmierung. Dieser abwechslungsreiche Praxiskurs führt Sie Schritt für Schritt in die Sprache ein, beginnend mit grundlegenden Konzepten über Funktionen und Datenstrukturen bis hin zur objektorientierten Programmierung. Das Buch geht auch auf die spannenden neuen Möglichkeiten ein, die KI-Assistenten wie ChatGPT Programmiererinnen und Programmierern bieten, und zeigt effektives Prompting, das Testen von Code und das Debugging mit KI.Durch zahlreiche Übungen, bei denen KI-Tools zum Einsatz kommen, sowie Fallstudien, kurze Verständnistests und kleinere Projekte in Jupyter Notebooks können Sie die neu erlernten Programmierkonzepte gleich ausprobieren. Auf diese Weise festigen Sie Ihr Verständnis für die konkrete Programmierpraxis und erfahren, wie KI-Assistenten Sie auch zukünftig im Programmieralltag unterstützen können.Starten Sie mit den Grundlagen, einschließlich Sprachsyntax und SemantikEntwickeln Sie eine klare Vorstellung von den jeweiligen ProgrammierkonzeptenLernen Sie Variablen, Anweisungen, Funktionen und Datenstrukturen kennenArbeiten Sie mit Dateien und DatenbankenVerstehen Sie Objekte, Methoden und objektorientierte ProgrammierungWenden Sie Debugging-Techniken an, um Syntax-, Laufzeit- und Semantikfehler zu behebenNutzen Sie KI-Tools von Anfang an, um Ihren Lernprozess zu beschleunigenLeseprobe (PDF-Link)Zum Autor:Allen B. Downey ist Redakteur bei Brilliant und emeritierter Professor für Informatik am Olin College of Engineering, Massachusetts. Er hat am Wellesley- und am Colby-College und an der Universität von Berkeley Informatik unterrichtet. Seinen Doktortitel in Informatik hat er an der U.C. Berkeley erworben, seinen Master am MIT. Seine zahlreichen bei O’Reilly erschienenen Bücher sind bekannt für ihre ausgefeilte und praxiserprobte Didaktik.
Python lernen mit KI-Tools
Nutzen Sie KI-Assistenten, um Python schneller und effektiver zu lernen! Eine der ersten Einführungen in die Programmierung, die virtuelle Assistenten wie ChatGPT (LLMs) aktiv und didaktisch durchdacht für einen besseren Lernerfolg nutzt Die Übungsaufgaben werden mit ChatGPT gelöst und dabei auch der Einsatz von KI-Assistenten als Hilfsmittel für die Programmierung gezeigt Inklusive Prompting, Testen von Code und Debugging mit LLMs Als Lernumgebung werden Jupyter Notebooks genutzt Python eignet sich hervorragend für den Einstieg in die Programmierung. Dieser abwechslungsreiche Praxiskurs führt Sie Schritt für Schritt in die Sprache ein, beginnend mit grundlegenden Konzepten über Funktionen und Datenstrukturen bis hin zur objektorientierten Programmierung. Das Buch geht auch auf die spannenden neuen Möglichkeiten ein, die KI-Assistenten wie ChatGPT Programmiererinnen und Programmierern bieten, und zeigt effektives Prompting, das Testen von Code und das Debugging mit KI. Durch zahlreiche Übungen, bei denen KI-Tools zum Einsatz kommen, sowie Fallstudien, kurze Verständnistests und kleinere Projekte in Jupyter Notebooks können Sie die neu erlernten Programmierkonzepte gleich ausprobieren. Auf diese Weise festigen Sie Ihr Verständnis für die konkrete Programmierpraxis und erfahren, wie KI-Assistenten Sie auch zukünftig im Programmieralltag unterstützen können. Starten Sie mit den Grundlagen, einschließlich Sprachsyntax und Semantik Entwickeln Sie eine klare Vorstellung von den jeweiligen Programmierkonzepten Lernen Sie Variablen, Anweisungen, Funktionen und Datenstrukturen kennen Arbeiten Sie mit Dateien und Datenbanken Verstehen Sie Objekte, Methoden und objektorientierte Programmierung Wenden Sie Debugging-Techniken an, um Syntax-, Laufzeit- und Semantikfehler zu beheben Nutzen Sie KI-Tools von Anfang an, um Ihren Lernprozess zu beschleunigen
Let's code Lua!
Let's code Lua!Entdecke die vielfältigen Möglichkeiten von Lua! In diesem Buch lernst du spielerisch das Programmieren und erschaffst dabei deine eigenen Games, ganz ohne Vorkenntnisse. Die Programmiersprache Lua ist ideal für Einsteiger, da sie leicht zu lernen ist und schnelle Erfolgserlebnisse bringt.Tauche ein in die spannende Fantasywelt des jungen Zauberers Marvin und programmiere Schritt für Schritt unterhaltsame Minispiele. Von interaktiven Geschichten über »Feuer, Wasser, Eis« bis zu einem 2D-Actionspiel in der »Cave of Doom«. So eignest du dir die Grundlagen der Programmierung an – wie Variablen, Arrays und Schleifen. Maxime Wegesin bringt dir in diesem Buch alles bei, was du brauchst, um coole Games zu programmieren!Aus dem Inhalt:Der spielerische ProgrammieeinstiegHow to Code: die Grundlagen mit LuaSchritt für Schritt zum ersten GameVariablen, Ausdrücke, Arrays und SchleifenInteraktive Geschichten, Monster bekämpfenSpiel für Spiel dazulernenEinführung in das Löve-FrameworkSpiele mit Grafik, Sound und InputZeig, was du gelernt hast in der »Cave of Doom«Über den Autor:Maxime Wegesin hat 2014 an der Uni Bonn seinen Master of Science in Mathematik abgeschlossen. Schon während seines Studiums begleitete er mehrere Programmierkurse und entdeckte seine Leidenschaft dafür, anderen das Programmieren näherzubringen.
Let's Code! (2. Auflage)
Let's Code! Programmieren lernen in der Minecraft-Welt, in 2. Auflage von Dezember 2024.Willkommen in TurtleCity! Du hast nicht nur ein Buch aufgeschlagen, du bist auch in Minecraft unterwegs und lernst dort Programmieren: Eine Robo-Schildkröte folgt genau deinen Befehlen. Du lässt sie verrückte Sachen bauen, nach Schätzen graben, und zusammen geht ihr so manche Challenge an. So lernst du das ABC der Programmierung von Schleifen über Variablen bis zu Unterprogrammen fast wie nebenbei. Lasse dich von den Aufgaben und Projekten überraschen! Sie haben in Workshops schon hunderte Kinder und Jugendliche begeistert und sind entsprechend erprobt. Programmieren zu lernen, fördert das logische Denken, Hartnäckigkeit und Kreativität. Aber vor allem – und das gilt auch für Große – macht es Spaß! Für Kinder, Jugendliche und alle, die Lust haben, ab 8 Jahren. Die Minecraft-Erweiterung ist kostenlos, einfach zu installieren und für Windows, Linux sowie macOS geeignet. Mit Kapiteln für Eltern und Lehrkräfte.Inklusive dem neuen ComputerCraft-Mod und wichtigen Lua-Grundlagen!Aus dem Inhalt:Installation nach AnleitungDie Schritte der Schildkröte fernsteuernWenn – dann: Bedingungen einbauenEinmal, zweimal, hundert Mal ... mit wenigen Befehlen viel erreichenImmer wieder, bis ... Schleifen programmierenInteraktion mit Redstone-SchaltungenBaumfäller, Schürf-Roboter und andere nützliche Helfer programmierenProgramme speichern und wieder ladenDer neue ComputerCraft-Mod: Steuere die Schildkröten mit LuaWeiterführende Infos zur ProgrammierungKapitel für Eltern und für Lehrkräfte
Schrödinger programmiert C# (4. Auflg.)
Schrödinger ist unser Mann fürs Programmieren. Er kann schon was, aber noch nicht C#. Zum Glück hat er einen richtigen Profi an seiner Seite, der auf jede Frage eine Antwort weiß. Und weil Schrödinger zwar schlau ist, aber auch ein wenig ungeduldig, gibt es nach der nötigen Theorie immer sofort etwas zu tun. Mit viel Code und Beispielen, die ihr nicht wieder vergesst. Ob es ums Einparken ohne Crash geht oder um Schuhschränke, die immer größer werden: Die Übungen schafft ihr (aber nicht immer mit links), die Pausen sind verdient, und am Ende jedes Kapitels dürft ihr euch einen Spickzettel einstecken – Achievement Unlocked, Ready for Next Level. Fantastisch illustriert. Für Einsteiger, Umsteiger und Fans.1. Gründlicher EinstiegSchrödinger macht's vor: Es geht direkt los mit dem Coden – vom Einfachen zum Schwierigen und von Anfang an mit kurzen Übungen. Lasst euch durch Visual Studio führen und macht euch mit Variablen, Schleifen und Co. vertraut.2. So macht guter Code SpaßWie ihr.NET umfassend nutzt, eigene Datentypen und sinnvolle Objekte erstellt, richtig mit Fehlern und Ausnahmen umgeht, lernt ihr hier. Und zwar immer gleich so, dass sich euer Code in der Welt der Profis sehen lassen kann.3. GUIs, Design Patterns, AppsFür grafische Oberflächen lernt ihr XAML, für einen robusten Aufbau das Architekturmuster MVVM. Ob es um den Desktop geht oder um mobile Apps: So nehmt ihr eure Nutzer in den Blick und entwickelt ansprechende GUIs.4. Mitmachen und genießenZu jedem Kapitel gibt es viele Beispiele, die Spaß machen, und Aufgaben mit Lösungen. Schrödinger stellt die Fragen, die ihr auch stellen würdet, Bernhard Wurm hat den Code kommentiert, und Leo Leowald hat zu jedem Thema eine Zeichnung parat ... also, dann kann's ja losgehen!Aus dem InhaltOperatoren, Schleifen, DatentypenKlassen, Objekte und VererbungDatenbanken und LINQGUI-Entwicklung mit XAMLawait/async geschickt verwendenDateizugriffe und StreamsMultithreadingMit Ausnahmen und Fehlern umgehenÜber den Autor:Bernhard Wurm ist Softwareentwickler aus Leidenschaft und kann sich noch sehr gut an seine ersten Programmierversuche erinnern.Leseprobe (PDF-Link)
The Definitive Guide to Modern Java Clients with JavaFX
Build enhanced visual experiences and design and deploy modern, easy-to-maintain, client applications across a variety of platforms. This book will show you how these applications can take advantage of JavaFX’s latest user interface components, 3D technology, and cloud services to create immersive visualizations and allow high-value data manipulation. This book is a professional reference for building Java applications for desktop, mobile, and embedded in the Cloud age. It offers end-to-end coverage of the latest features in JavaFX 21 and 23. This third edition has been updated to include new features introduced in JavaFX 21 and 23, including NEW APIs: Map, FlatMap, and OrElse fluent bindings for ObservableValue, along with the new Subscription API. Additionally, it's updated to account for new bug fixes and overall improvements to existing functionality in Java. After reading this book, you will be equipped to upgrade legacy client applications, develop cross-platform applications in Java, and build enhanced desktop and mobile native clients. What You Will Learn * Create modern client applications in Java using the latest JavaFX 17 and Java 17 LTS * Build enterprise clients that will enable integration with existing cloud services * Use advanced visualization and 3D features * Deploy on desktop, mobile, and embedded devices Build enhanced visual experiences and design and deploy modern, easy-to-maintain, client applications across a variety of platforms. This book will show you how these applications can take advantage of JavaFX’s latest user interface components, 3D technology, and cloud services to create immersive visualizations and allow high-value data manipulation. This book is a professional reference for building Java applications for desktop, mobile, and embedded in the Cloud age. It offers end-to-end coverage of the latest features in JavaFX 21 and 23. This third edition has been updated to include new features introduced in JavaFX 21 and 23, including NEW APIs: Map, FlatMap, and OrElse fluent bindings for ObservableValue, along with the new Subscription API. Additionally, it's updated to account for new bug fixes and overall improvements to existing functionality in Java. After reading this book, you will be equipped to upgrade legacy client applications, develop cross-platform applications in Java, and build enhanced desktop and mobile native clients. What You Will Learn * Create modern client applications in Java using the latest JavaFX 21 and 23 * Build enterprise clients that will enable integration with existing cloud services * Use advanced visualization and 3D features * Deploy on desktop, mobile, and embedded devices Who This Book Is For Professional Java developers who are interested in learning the latest client Java development techniques to fill out their skills set 1: Getting Started with Client Java.- 2: JavaFX Fundamentals.- 3: Properties and Bindings.- 4: JavaFX Controls Deep Dive.- 5: Mastering Visual and CSS Design.- 6: High Performance Graphics.- 7: Bridging Swing JavaFX Style.- 8: JavaFX 3D.- 9: JavaFX to Web and Cloud.- 10: Packaging Apps for the Desktop.- 11: Native Mobile Apps.- 12: JavaFX 11 on Raspberry Pi.- 13: Machine Learning and JavaFX.- 14: Java Science. Stephen Chin is VP of Developer Relations at Neo4j and author of additional titles, including Raspberry Pi with Java, Pro JavaFX Platform, and DevOps Tools for Java Developers. He has keynoted numerous conferences around the world, including AI DevSummit, Devoxx, DevNexus, JNation, JavaOne, Joker, swampUP, and Open Source India. Stephen is an avid motorcyclist who has done evangelism tours in Europe, Japan, and Brazil, interviewing hackers in their natural habitat. When he is not traveling, he enjoys teaching kids how to do AI, and embedded and robot programming, together with his daughters. Johan Vos started to work with Java in 1995. He was part of the Blackdown team, porting Java to Linux. His main focus is on end-to-end Java, combining backend systems and mobile/embedded devices. He received a Duke Choice award in 2014 for his work on Javafx on mobile. In 2015, he co-founded Gluon, which allows enterprises to create (mobile) Java Client applications leveraging their existing backend infrastructure. Gluon received a Duke Choice award in 2015. Johan is a Java Champion and an Oracle Developer Champion, a member of the BeJUG steering group and the Devoxx steering group, and he is a JCP member. He has been a speaker at numerous conferences on Java. James Weaver is a Java developer, author, and speaker with a passion for cloud-native applications, machine learning, and quantum computing. He is a Java Champion, and a JavaOne Rockstar. James has written books, including Inside Java, Beginning J2EE, the Pro JavaFX series, and Java with Raspberry Pi. As a Pivotal Developer Advocate, James speaks internationally at software technology conferences. He tweets as @JavaFXpert.
Fullstack-Entwicklung mit SAP
Erfahren Sie, was Sie brauchen, um eigene Apps in der Fullstack-Entwicklung zu erstellen. Erfahren Sie, wie OData und Core Data Services (CDS) im Backend mit SAP Fiori, SAPUI5 und TypeScript im Frontend zusammenspielen und lernen Sie bewährte Tools kennen. Ob moderne oder ältere Landschaften: Mit diesem Buch meistern Sie die Fullstack-Entwicklung. Aus dem Inhalt: SAPUI5SAP Fiori ElementsOData V4 und OData V2Core Data Services (CDS)TypeScriptSAP Cloud Application Programming ModelABAP RESTful Application Programming ModelSAP Gateway Service BuilderEntwicklung von BenutzeroberflächenFlexible Programming ModelErweiterbarkeit und Bereitstellung Einleitung ... 17 Einführung ... 25 TEIL I. Einführung ... 25 1. Einführung in die Fullstack-Entwicklung ... 27 1.1 ... Was ist ein Fullstack-Entwickler? ... 28 1.2 ... SAP-Programmiermodelle ... 33 1.3 ... HTTP-Grundlagen ... 52 1.4 ... Zusammenfassung ... 56 2. Einführung in SAPUI5 und SAP Fiori ... 57 2.1 ... SAPUI5 versus SAP Fiori ... 57 2.2 ... SAP Fiori Launchpad ... 67 2.3 ... SAP Fiori Design Guidelines ... 73 2.4 ... Entwicklungswerkzeuge ... 74 2.5 ... Zusammenfassung ... 81 3. Einführung in OData ... 83 3.1 ... Einführung ... 84 3.2 ... OData-Services entwickeln ... 102 3.3 ... OData testen ... 116 3.4 ... Zusammenfassung ... 131 4. Einführung in CDS ... 133 4.1 ... Entwicklung von Core Data Services ... 134 4.2 ... Assoziationen und Navigationseigenschaften ... 146 4.3 ... CDS-View-Erweiterung ... 150 4.4 ... Berechtigungen ... 153 4.5 ... Zusammenfassung ... 157 5. Einführung in TypeScript ... 159 5.1 ... TypeScript-Grundlagen ... 159 5.2 ... TypeScript der nächsten Generation ... 165 5.3 ... Klassen und Interfaces ... 174 5.4 ... Generics ... 182 5.5 ... Modulentwicklung ... 188 5.6 ... Zusammenfassung ... 190 TEIL II. Entwicklung ... 191 6. Entwicklung von OData-V4-Services mit dem ABAP RESTful Application Programming Model (Managed Scenario) ... 193 6.1 ... Entwicklung von Business-Objekten ... 194 6.2 ... Aktionen ... 224 6.3 ... Erweiterte Funktionen ... 228 6.4 ... Berechtigungsprüfung ... 237 6.5 ... Verschachtelte Business-Objekte ... 240 6.6 ... Zusammenfassung ... 242 7. Entwicklung von OData-V4-Services mit dem SAP Cloud Application Programming Model ... 243 7.1 ... Domänenmodellierung ... 244 7.2 ... Service-Bereitstellung ... 259 7.3 ... Aufsetzen einer SAP-Cloud-Application-Programming-Model-Anwendung ... 267 7.4 ... Autorisierungsprüfungen ... 281 7.5 ... Zusammenfassung ... 283 8. Entwicklung von OData-V2-Services mit dem SAP Gateway Service Builder ... 285 8.1 ... Servicemodellierung in der Transaktion SEGW ... 286 8.2 ... Create, Read, Update, Delete und Query ... 299 8.3 ... SADL-basierte OData-Services ... 328 8.4 ... Zusammenfassung ... 336 9. Entwicklung von SAPUI5-Freestyle-Anwendungen ... 337 9.1 ... SAPUI5 (Basic-)Projekt anlegen ... 339 9.2 ... View aufbauen und UI-Komponenten verwenden ... 350 9.3 ... Applikationslogik, Formatter und Event Handler implementieren ... 362 9.4 ... Datenbindung ... 367 9.5 ... Navigation und Routing ... 386 9.6 ... Mehrsprachigkeit/Internationalization (i18n) ... 396 9.7 ... Deployment ... 398 9.8 ... Zusammenfassung ... 403 10. Entwicklung von SAPUI5-Freestyle-Anwendungen mit OData-V4-Services ... 405 10.1 ... Projekt anlegen ... 407 10.2 ... OData-Model-V4 ... 412 10.3 ... Startseite implementieren ... 425 10.4 ... Navigation einbauen ... 432 10.5 ... Detailseite implementieren ... 434 10.6 ... Fragmente ... 435 10.7 ... SAPUI5-Projekte von einem Git Repository klonen ... 447 10.8 ... Zusammenfassung ... 450 11. Entwicklung von SAPUI5-Freestyle-Anwendungen mit OData-V2-Services ... 453 11.1 ... Projekt anlegen ... 455 11.2 ... OData-Model-V2 ... 460 11.3 ... Startseite implementieren ... 472 11.4 ... Navigation einbauen ... 481 11.5 ... Detailseite implementieren ... 484 11.6 ... Fragmente ... 488 11.7 ... SAPUI5-Projekte von einem Git Repository klonen ... 500 11.8 ... Zusammenfassung ... 503 12. Entwicklung von Benutzeroberflächen mit SAP Fiori Elements ... 505 12.1 ... List Report ... 506 12.2 ... Object Page ... 514 12.3 ... Overview Page ... 527 12.4 ... Generische Annotationen ... 540 12.5 ... Zusammenfassung ... 543 13. Entwicklung von Benutzeroberflächen mit dem Flexible Programming Model ... 545 13.1 ... Einleitung ... 545 13.2 ... Programming Model Explorer ... 546 13.3 ... Building Blocks ... 553 13.4 ... Implementieren des Flexible Programming Model ... 561 13.5 ... Zusammenfassung ... 579 TEIL III. Fortgeschrittene Themen ... 581 14. Datei-Upload ... 583 14.1 ... Media Entitys ... 583 14.2 ... OData V2 ... 584 14.3 ... OData V4 ... 597 14.4 ... Zusammenfassung ... 600 15. Formularvalidierung und Error Handling ... 601 15.1 ... Formularvalidierung ... 601 15.2 ... Fehlerbehandlung ... 619 15.3 ... Zusammenfassung ... 626 16. Entity Tags und Soft State ... 627 16.1 ... Soft-State-Aktivierung ... 627 16.2 ... ETags ... 631 16.3 ... Zusammenfassung ... 633 17. Erweiterbarkeit ... 635 17.1 ... Adaptation Projects ... 635 17.2 ... Key-User-Erweiterbarkeit ... 647 17.3 ... Zusammenfassung ... 653 18. Bereitstellung ... 655 18.1 ... Continuous Integration, Continuous Delivery und Continuous Deployment ... 656 18.2 ... Bereitstellung in SAP S/4HANA ... 672 18.3 ... Bereitstellung in der SAP Business Technology Platform ... 676 18.4 ... Zusammenfassung ... 680 Das Autorenteam ... 681 Index ... 683
Let's code Lua!
Entdecke das Programmieren mit Lua! In diesem Buch lernst du spielerisch die Grundlagen der Programmierung und erschaffst dabei deine eigenen Games, ganz ohne Vorkenntnisse. Die Programmiersprache Lua ist ideal für Einsteiger, da sie leicht zu lernen ist und schnelle Erfolgserlebnisse bring. So programmierst du Schritt für Schritt unterhaltsame textbasierte Minispiele und tauchst ein in die spannende Fantasywelt des jungen Zauberers Marvin. Von einem Quiz über interaktive Geschichten bis zu einem 2D Actionspiel in der »Cave of Doom«. Spiel für Spiel eignest du dir die Grundlagen der Programmierung an – wie Variablen, Schleifen und Funktionen. Dieses Buch bringt dir alles bei, was du brauchst, um eigene Spielideen in coole Games zu verwandeln! Aus dem Inhalt: Der spielerische Einstieg in die ProgrammierungHow to Code: die Grundlagen lernen mit LuaSchritt für Schritt zum ersten eigenen GameVariablen und Ausdrücke, Arrays und FunktionenQuiz, interaktive Geschichten, Monster bekämpfen!Spiel für Spiel dazulernenEinführung in Löve2DSpiele mit Grafik, Sound und InputHier kommt alles zusammen: die Cave of Doom Vorwort ... 15 TEIL I. Reisevorbereitungen ... 19 1. Eine (sehr) kurze Geschichte der Programmierung ... 21 2. Richte deine Entwicklungsumgebung ein ... 25 Der Lua-Interpreter ... 25 Notepad für Coder ... 29 3. Hacker's Delight: das Terminal ... 31 Ordner und dir ... 31 Ordner wechsel dich! ... 33 Ein Ordner für unseren Code ... 33 Dein erstes Programm ... 34 Herzlichen Glückwunsch! ... 35 TEIL II. Reise nach Lua ... 37 4. Daten, Daten, Daten ... 39 Wie sehen Lua-Programme aus? ... 39 Kommentare ... 40 Variablen und Ausdrücke ... 41 Variablennamen ... 43 Mehrfachdeklaration und -zuweisung ... 44 Zahlen ... 45 Strings ... 48 Ein Datentyp für ... nichts ... 51 Zusammenfassung ... 51 Game: Marvin und der Mond ... 52 5. Der Computer lernt zuhören ... 55 Eingabe erwartet ... 55 Mehr Kontrolle über die Ausgabe ... 56 Escape-Sequenzen ... 56 Lua hilft gern ... 58 Fehlermeldungen ... 59 Zusammenfassung ... 60 Game: Der Abschied ... 61 6. Kleine Helfer für den Programmierer ... 63 Wie rufe ich eine Funktion auf? ... 63 Ein kleiner Spaziergang durch die Bibliothek ... 65 Zusammen stark ... 69 Zusammenfassung ... 70 Game: Marvin auf Reisen ... 71 7. Entscheidungen treffen ... 73 Wenn ja, dann Schwert ... 73 Ansonsten was? ... 75 Viele Bedingungen ... 75 Codeblöcke und die Lebensdauer von Variablen ... 77 Zur Formatierung ... 80 Zusammenfassung ... 80 Game: Ein Höhlenabenteuer ... 81 8. Rechnen mit Wahrheit ... 85 Wann erhältst du einen Boolean? ... 85 Und, oder, nicht? ... 87 Kompliziertere Bedingungen ... 88 Sind auch andere Ausdrücke als Bedingungen erlaubt? ... 89 Zusammenfassung ... 90 Game: Feuer, Wasser, Eis ... 91 9. Ich wiederhole mich sehr gern ... 97 while und repeat ... 97 Endlosschleifen und break ... 99 Die for-Schleife ... 100 Zusammenfassung ... 102 Game: Markt der Magier ... 103 10. Neue Helfer rekrutieren ... 111 Eigene Funktionen definieren ... 112 Call by Value ... 114 Funktionen und ihre Variablen ... 115 Eine Funktion für Zufallsnamen ... 116 Zahlen, Strings, Booleans ... und Funktionen? ... 117 Zusammenfassung ... 118 Game: Die Zauberschule ... 119 11. Daten am laufenden Band ... 127 Arrays und Indizes ... 127 Arrays wachsen und schrumpfen lassen ... 128 Das Array und die for-Schleife ... 130 Zauberhafter Umgang mit Arrays ... 131 Mehrdimensionale Arrays ... 134 Zusammenfassung ... 137 Game: Der Keller ... 138 12. Ein Held ist keine Zahl ... 145 Vom Array zur Table ... 145 Der Schlüssel zum Verständnis ... 146 Tables erweitern ... 147 Arrays sind auch nur Tables ... 148 Eine Table, zwei Variablen ... 149 for-Schleife revisited ... 150 Objektorientierte Programmierung ... 151 Ein Objekt für Ork-Krieger ... 152 Ork-Krieger haben ihre Methoden ... 153 Eine Fabrik für Charaktere ... 156 Meister aller Klassen ... 157 Charakter ist nicht gleich Charakter! ... 159 Zusammenfassung ... 162 Game: Die Rückkehr ... 163 13. Codemonster in Stücke schneiden ... 173 Unser erstes eigenes Modul ... 173 Module und die Hauptdatei ... 175 Variablen und Konstanten in Modulen ... 176 Module, Module, Module ... 178 Zusammenfassung ... 179 Game: Cave of Doom ... 180 14. Herzlichen Glückwunsch! ... 201 Epilog ... 202 TEIL III. Aufbruch in eine neue Welt ... 203 15. What is Löve? ... 205 Was ist ein Framework, und wozu brauchen wir es? ... 205 Installation ... 206 Ein kleiner Überblick über Löve ... 208 Zusammenfassung ... 215 16. Bewegung auf Tastendruck ... 217 Einrichten des Projekts ... 217 Wir laden das Spiel in Löve ... 218 Bei jedem Tastendruck eine neue Runde ... 219 Eine Löve-Anwendung beenden ... 222 Eine Hauptschleife, viele Zustände ... 222 Zusammenfassung ... 225 17. Cave of Doom wird bunt ... 227 Hübsche Kacheln für die Höhle ... 227 Charaktere und Animation ... 239 Textausgabe ... 249 Der Vollbildmodus ... 259 Zusammenfassung ... 259 18. Es ist so still im Dungeon ... ... 261 Sounds laden und abspielen ... 261 Spiel denselben Song noch mal! ... 265 Auch Sounds können Schlange stehen ... 267 Zusammenfassung ... 276 19. Zum Abschluss ... 277 Anhang ... 279 A ... Wie geht es von hier weiter? ... 279 B ... Der komplette Code für Cave of Doom ... 285 C ... Die Lua-Standardbibliothek ... 307 Index ... 313
Let's code!
Willkommen in TurtleCity! Du hast nicht nur ein Buch aufgeschlagen, du bist auch in Minecraft unterwegs und lernst dort Programmieren: Eine Robo-Schildkröte folgt genau deinen Befehlen. Du lässt sie verrückte Sachen bauen, nach Schätzen graben, und zusammen geht ihr so manche Challenge an. So lernst du das ABC der Programmierung von Schleifen über Variablen bis zu Unterprogrammen fast wie nebenbei. Lasse dich von den Aufgaben und Projekten überraschen! Sie haben in Workshops schon hunderte Kinder und Jugendliche begeistert und sind entsprechend erprobt. Programmieren zu lernen, fördert das logische Denken, Hartnäckigkeit und Kreativität. Aber vor allem – und das gilt auch für Große – macht es Spaß! Für Kinder, Jugendliche und alle, die Lust haben, ab 8 Jahren. Die Minecraft-Erweiterung ist kostenlos, einfach zu installieren und für Windows, Linux sowie macOS geeignet. Mit Kapiteln für Eltern und Lehrkräfte. Inklusive dem neuen ComputerCraft-Mod und wichtigen Lua-Grundlagen! Aus dem Inhalt: Installation nach AnleitungDie Schritte der Schildkröte fernsteuernWenn – dann: Bedingungen einbauenEinmal, zweimal, hundert Mal ... mit wenigen Befehlen viel erreichenImmer wieder, bis ... Schleifen programmierenInteraktion mit Redstone-SchaltungenBaumfäller, Schürf-Roboter und andere nützliche Helfer programmierenProgramme speichern und wieder ladenDer neue ComputerCraft-Mod: Steuere die Schildkröten mit LuaWeiterführende Infos zur ProgrammierungKapitel für Eltern und für Lehrkräfte Vorwort ... 11 Einführung ... 13 »ComputerCraftEdu« -- Basis für die Programmierung in Minecraft ... 14 Minetest -- Open Source, inspiriert von Minecraft ... 16 Installation & Vorbereitung ... 19 Vorbereitung und Installation ... 20 Erster Start ... 23 Level 1: Dein neues Haustier: Robokröti! ... 25 Minecraft starten und die Abenteuerwelt laden ... 25 Grundausstattung: Gibt es beim Butler ... 28 Robokröti muss an die frische Luft ... 29 Die Kröte mit der Fernbedienung steuern ... 31 Lauf los, Robokröti! ... 31 Deine Challenge: Finde den mysteriösen Gegenstand! ... 34 Lösung: der mysteriöse Gegenstand ... 35 Style mich! ... 35 Level 2: Wie komme ich hier nur wieder raus? Oder: Das erste Programm! ... 37 Dein erstes Programm ... 40 Neues Programm erstellen ... 40 Challenge: Schreibe ein Labyrinth-Programm! ... 41 Tipps & Tricks ... 42 Level 3: Lass die Kröten tanzen! Oder: Schleifen ... 45 Challenge 1: Wie viele Schildkröten passen gleichzeitig in dein Labyrinth? ... 51 Gemeinsame Disko -- ein Ausflug nach TurtleCity ... 53 Smaragdmäher! Oder: verschachtelte Schleifen ... 53 Lösung -- die ersten beiden Reihen ... 56 Schleifen in Schleifen ... 57 Challenge 2: Alternative Mähmethode ... 59 Level 4: Ich kann sehen! Oder: Ich bin zu faul zum Selberzählen ... 61 Das unbekannte Labyrinth -- Automatik-Kröte. Oder: »WENN ... DANN« ... 68 Challenge 1: Erkenne das Ende! ... 73 Challenge 2: Unterirdisch! ... 75 Level 5: Wir lassen bauen! ... 77 Bau mir was, Schildkröte! ... 77 Bau gleich mal richtig viel, Schildkröte! ... 80 Challenge: Todessprung-Treppenhaus ... 82 Lösung: Todessprung-Challenge ... 82 Baue bis zu den Wolken: Auswahl des richtigen Slots/Materials ... 83 Kann man das essen? Oder: Programme speichern und teilen ... 85 Ich brauche mehr Platz! Oder: Unterprogramme ... 91 Dein erstes Unterprogramm ... 91 Unterprogramme praktisch einsetzen: Schreibe deinen Namen! ... 93 So geht's: dein Name in Blöcken gebaut ... 95 Level 6: Binärer Alptraum! Oder: wahr oder falsch? ... 99 Variablen und Unterprogramme ... 103 Ich kann zählen! Oder: der schiefe Turm von Krötenburg ... 104 Variablen-Basics ... 104 Challenge: Schiefer Turm mit Variablen ... 107 Level 7: Übersinnliche Fähigkeiten: Redstone ... 109 Redstone erkennen und aktivieren ... 109 Challenge: Redstone erkennen und weitersagen ... 113 Weitere Redstone-Experimente ... 115 Level 8: End-Boss: Baumfäller-Roboter! ... 117 Teil 1: Finde Bäume! Der Baumfäller-Roboter ... 117 Teil 2: Ernte den Baum! ... 125 Wie fällt man einen Baum? ... 126 Challenge 1: Bau alles zusammen und teste es! ... 130 Das komplette Programm -- Teil 1 und 2 zusammen ... 130 Challenge 2: Ein noch besseres Baumfäller-Programm ... 132 Lösung: die bessere Baumfäller-Schildkröte ... 133 Challenge 3: Roboter in der Wildnis ... 134 TurtleCity ... 137 Was ist TurtleCity? ... 137 Zugang zu TurtleCity ... 138 Starthilfe -- wie bekomme ich alles, was ich brauche? ... 139 Spielmodus -- Abenteuer- und Überlebensmodus ... 140 Bauplätze -- eigene Grundstücke sichern ... 141 Kaufen, kaufen, kaufen! ... 142 Autobahnen -- schneller ist besser! ... 144 Du hast Post -- Briefe und Gegenstände verschicken ... 146 Übersicht: Karte von TurtleCity ... 147 Erstelle deine eigene Mod -- mit MCreator ... 149 MCreator installieren ... 149 Erstelle einen Arbeitsbereich ... 154 Erstelle den neuen Block ... 156 Drop-Eigenschaft -- was springt für mich dabei heraus? ... 160 Ausprobieren! ... 161 Deine Challenge: Droppe mehr als einen Dia! ... 164 Das Zufallsprogramm ... 164 Lust auf mehr? ... 169 Wie geht's weiter? ... 171 Lua -- die Sprache hinter den Blöcken ... 171 Noch mehr Schildkröten und Computer gefällig? ... 172 Danke und viel Spaß! ... 174 Weitere Infos, Hilfe, Fragen & Antworten ... 175 Welten verwalten, sichern & wiederherstellen ... 175 Bauen AFK (away from keyboard) ... 178 Fehler & Lösungen ... 179 Mods allgemein ... 180 Kontakt zum Autor, Updates und mehr ... 181 Tipps und Tricks für Eltern, Pädagogen & Lehrkräfte ... 183 Einsatz von Minecraft und der Schildkröte im Unterricht ... 184 Das KidsLab Mod-Pack ... 187 Minetest im Unterricht ... 188 Index ... 189
Programmieren lernen mit Java
Programmieren lernen leicht gemacht: Dieses Buch führt Sie auf besonders verständliche Weise in die Programmierung mit Java ein. Schritt für Schritt erfahren Sie alles, was Sie wissen müssen: angefangen bei der Installation und den absoluten Java-Basics bis zur objektorientierten Programmierung. Auch die Entwicklung von Benutzeroberflächen und die Arbeit mit Dateien wird ausführlich erläutert.Am Ende binden Sie sogar eine Datenbank ein.Anschauliche Beispiele stellen sicher, dass Sie den Stoff gut nachvollziehen können. Viele Übungsaufgaben mit Musterlösungen helfen Ihnen, Ihre neuen Kenntnisse zu festigen.So ausgerüstet, werden Ihnen Ihre ersten eigenen Java-Programme sicher gelingen!Aus dem Inhalt: Grundlagen Java und Eclipse Variablen und ihre Reichweite Bedingungen, Schleifen & Co. Die Welt der Objekte Klassen, Objekte, Methoden Zugriffsschutz richtig setzen Fehler und Ausnahmen Grafische Benutzeroberflächen Fenster, Schaltflächen & Co. GUI-Komponenten mit dem WindowBuilder Animationen erstellen Dateien und Datenbanken Lese- und Schreibzugriff Datenbanken mit JDBC Datensätze präsentieren
Einstieg in SQL
Den leichten Einstieg in SQL und die Modellierung von Daten finden Sie hier! Schritt für Schritt führt Sie Michael Laube in diesem Leitfaden durch die SQL-Kommandos und macht Sie mit allen wichtigen Befehlen vertraut. Auf diesem Fundament aufbauend lernen Sie, wie Sie Ihre Daten richtig modellieren, verknüpfen und bearbeiten. Mithilfe dieser Anleitungen wird die Datenmodellierung mit SQL einfach und unkompliziert: So schaffen Sie Ordnung und sorgen für performante Abfragen. Aus dem Inhalt: Grundlagen kennenlernen und verstehenGrundfunktionen der TabellenabfrageZeilen einfügen, ändern und löschen (INSERT, UPDATE und DELETE)Tabellen mit CREATE TABLE anlegenMengenoperationenDatenbanken modellierenDatenmodelle optimierenDatenmodelle in Tabellen überführenBeziehungen zwischen Tabellen: JOINsTransaktionenSkalarfunktionenBedingungslogikMit Zeit und Datum arbeitenSpaltenwerte mit GROUP BY gruppierenUnterabfragenVIEWS: Abfragen in virtuellen Tabellen speichernPerformance optimieren 1. Grundlagen kennenlernen und verstehen ... 21 1.1 ... Die Tabelle als zentrales Element ... 21 1.2 ... Eine kleine Historie von SQL ... 23 1.3 ... Datenbanksysteme ... 24 1.4 ... SQL -- ein Standard und seine Umsetzung ... 25 1.5 ... Zu diesem Buch ... 27 1.6 ... MySQL unter Windows installieren ... 28 1.7 ... Die MySQL-Übungsdatenbank anlegen ... 36 1.8 ... Eine erste Abfrage an die Datenbank senden ... 39 1.9 ... Kommentarfunktion ... 42 2. Los geht's: Die Grundfunktionen der Tabellenabfrage (SELECT) ... 47 2.1 ... Mit einer SELECT-Anweisung Tabellen abfragen ... 47 2.2 ... Zeilen in einer Abfrage mit WHERE filtern ... 51 2.3 ... Filterbedingungen mit AND (NOT) und OR (NOT) logisch verknüpfen ... 91 2.4 ... Ergebniszeilen einer SELECT-Anweisung einschränken ... 109 2.5 ... Datensätze sortiert abfragen ... 111 2.6 ... Konstanten in die Spaltenauswahlliste aufnehmen ... 124 2.7 ... Spalten einen Alias zuordnen ... 127 2.8 ... Gleiche Ergebniszeilen ausschließen (DISTINCT) ... 131 3. Zeilen einfügen (INSERT), ändern (UPDATE) und löschen (DELETE, TRUNCATE) ... 135 3.1 ... Zeilen mit einer INSERT-Anweisung einfügen ... 135 3.2 ... Zeilen mit einer UPDATE-Anweisung ändern ... 145 3.3 ... Zeilen mit einer DELETE-Anweisung löschen ... 156 3.4 ... Alle Zeilen einer Tabelle mit einer TRUNCATE-Anweisung löschen ... 161 4. Tabellen anlegen (CREATE TABLE) ... 165 4.1 ... Datentypen ... 165 4.2 ... Datentypen umwandeln ... 179 4.3 ... Explizite und implizite Typkonvertierung ... 180 4.4 ... Einfache Tabellen mit CREATE TABLE erstellen ... 187 4.5 ... Spalten Einschränkungen (CONSTRAINTS) zuordnen ... 199 4.6 ... Spalten auf Tabellenebene Einschränkungen (CONSTRAINT) zuordnen ... 214 5. Mengenoperationen anwenden ... 229 5.1 ... Mengenoperationen auf Ergebnistabellen anwenden ... 229 5.2 ... Eine Vereinigungsmenge bilden (UNION) ... 236 5.3 ... Die Schnittmenge von Ergebnistabellen bilden (INTERSECT) ... 245 5.4 ... Eine Differenzmenge aus Ergebnistabellen bilden (EXCEPT) ... 250 5.5 ... Mengenoperationen in Kombination mit einer WHERE-Klausel verwenden ... 253 5.6 ... Vereinigungsmengen in Kombination mit einer ORDER BY-Klausel ... 255 6. Benutzer, Rollen und ihre Berechtigungen ... 259 6.1 ... Benutzer anlegen (CREATE USER) ... 260 6.2 ... Benutzer entfernen ... 261 6.3 ... Eine Verbindung für einen Datenbankbenutzer erstellen ... 262 6.4 ... Berechtigungen verwalten ... 268 6.5 ... Mit Rollen Berechtigungen zuordnen ... 270 6.6 ... Übungen ... 273 7. Datenbanken modellieren ... 279 7.1 ... Anforderungskatalog ... 279 7.2 ... Entitäten identifizieren und modellhaft abbilden ... 280 7.3 ... Beziehungen zwischen Entitäten festlegen ... 287 7.4 ... Datenmodelle in der UML-Notation darstellen ... 302 7.5 ... Übungen ... 305 8. Datenmodelle optimieren (Normalisierung) ... 309 8.1 ... Redundanzen erkennen ... 309 8.2 ... Die 1. Normalform anwenden ... 312 8.3 ... Die 2. Normalform anwenden ... 314 8.4 ... Die 3. Normalform anwenden ... 316 8.5 ... Denormalisierung ... 318 8.6 ... Übungen ... 320 9. Datenmodelle in Tabellen überführen ... 323 9.1 ... Die Ausbildungsdatenbank anlegen ... 323 9.2 ... Tabellen mit Beziehungen zu anderen Tabellen erstellen ... 325 9.3 ... Übung ... 332 9.4 ... Die referenzielle Integrität verstehen ... 334 10. Operationen auf Tabellen in Beziehungen anwenden ... 341 10.1 ... Zeilen in Tabellen einfügen, die in Beziehung zueinander stehen ... 341 10.2 ... Zeilen aus Tabellen, die in Beziehung stehen, mit JOIN verbunden abfragen ... 351 10.3 ... Beziehungen (Schlüsselbeziehungen) ändern ... 388 10.4 ... Beziehungen (Schlüsselbeziehungen) aufheben oder löschen ... 399 11. Transaktionen ... 411 11.1 ... Forderungen an relationale Datenbanksysteme ... 412 11.2 ... Transaktionen verstehen ... 414 11.3 ... Übungen ... 421 12. Tabellenstrukturen verändern ... 423 12.1 ... Eine Tabelle umbenennen ... 423 12.2 ... Spalten einer Tabelle ändern ... 425 12.3 ... Spalten hinzufügen und entfernen ... 438 12.4 ... Beziehungen zwischen Tabellen herstellen und entfernen ... 440 12.5 ... Übungen ... 443 13. Mit SQL rechnen ... 451 13.1 ... Spaltenwerte addieren ... 452 13.2 ... Spaltenwerte subtrahieren ... 454 13.3 ... Spaltenwerte multiplizieren ... 455 13.4 ... Spaltenwerte dividieren ... 455 13.5 ... Den Restwert einer Division von Spaltenwerten berechnen ... 456 13.6 ... Nach dem Ergebnis einer Berechnung filtern ... 457 13.7 ... Nach dem Ergebnis einer Berechnung sortieren lassen ... 458 13.8 ... Übungen ... 459 14. Skalarfunktionen anwenden ... 463 14.1 ... Funktionen für Textwerte ... 464 14.2 ... Funktionen für Zahlenwerte ... 476 14.3 ... Verschachtelte Funktionsaufrufe ... 482 15. Bedingungslogik ... 487 15.1 ... Die CASE-Klausel ... 487 15.2 ... Bedingungslogik in einer Spaltenauswahlliste einer SELECT-Anweisung anwenden ... 488 15.3 ... Bedingungslogik in einer ORDER BY-Klausel anwenden ... 490 15.4 ... Übungen ... 492 16. Mit Zeit und Datum arbeiten ... 495 16.1 ... Datumsformate ... 496 16.2 ... Skalarfunktionen für Zeit- und Datumsangaben in SQL nutzen ... 496 16.3 ... Zeit- und Datumsangaben formatieren ... 499 16.4 ... Datumsangaben extrahieren (EXTRACT) ... 515 16.5 ... Mit Datumsangaben rechnen ... 520 17. Spaltenwerte gruppieren (GROUP BY) ... 529 17.1 ... Die Aggregatfunktion COUNT anwenden ... 530 17.2 ... Die Aggregatfunktion SUM anwenden ... 535 17.3 ... Die Aggregatfunktion AVG anwenden ... 537 17.4 ... Die Aggregatfunktion MAX anwenden ... 539 17.5 ... NULL-Werte berücksichtigen ... 541 17.6 ... Nach aggregierten Werten einer Gruppierung filtern (HAVING) ... 545 17.7 ... Nach zwei oder mehr Spalten gruppieren ... 548 18. Mächtiges Werkzeug: Die Unterabfragen (Subqueries) ... 553 18.1 ... Unterabfragen, die in Korrelation zueinander stehen ... 554 18.2 ... Unterabfragen, die nicht in Korrelation zueinander stehen ... 560 18.3 ... Vergleichsoperatoren auf Unterabfragen mit ANY, SOME und ALL anwenden ... 566 18.4 ... Auf die Existenz von Ergebniszeilen aus Unterabfragen prüfen (EXISTS) ... 571 19. Views: Abfragen in virtuellen Tabellen speichern ... 575 19.1 ... Einfache Views anlegen ... 576 19.2 ... Views und ORDER BY ... 581 19.3 ... INSERT, UPDATE und DELETE auf Views anwenden ... 584 19.4 ... Views entfernen oder ersetzen ... 596 20. Abfragen mit einem Index optimieren ... 599 20.1 ... Einführung ... 599 20.2 ... Syntax: Index erstellen ... 602 20.3 ... Eine Tabelle mit vielen Zeilen generieren ... 602 20.4 ... Einen Index für eine Tabelle anlegen ... 604 20.5 ... Einen Index über mehrere Spalten anlegen ... 606 20.6 ... Den Index einer Tabelle löschen ... 609 20.7 ... Fremdschlüsselspalten indexieren ... 609 20.8 ... Übungen ... 613 21. Skalarfunktionen entwickeln ... 617 21.1 ... Funktionen mit einem Rückgabewert erstellen ... 618 21.2 ... Funktionen mit Parameter entwickeln ... 623 21.3 ... Funktionen entfernen ... 627 21.4 ... Übungen ... 628 22. Prozeduren entwickeln ... 631 22.1 ... Prozeduren ausführen ... 631 22.2 ... Prozeduren anlegen ... 632 22.3 ... Übung ... 636 Index ... 639
Schrödinger programmiert C#
Schrödinger ist unser Mann fürs Programmieren. Er kann schon was, aber noch nicht C#. Zum Glück hat er einen richtigen Profi an seiner Seite, der auf jede Frage eine Antwort weiß. Und weil Schrödinger zwar schlau ist, aber auch ein wenig ungeduldig, gibt es nach der nötigen Theorie immer sofort etwas zu tun. Mit viel Code und Beispielen, die du nicht wieder vergisst. Ob es ums Einparken ohne Crash geht oder um Schuhschränke, die immer größer werden: Die Übungen schafft ihr (aber nicht immer mit links), die Pausen sind verdient, und am Ende jedes Kapitels dürft ihr euch einen Spickzettel einstecken – Achievement Unlocked, Ready for Next Level. Fantastisch illustriert. Für Einsteiger, Umsteiger und Fans. Aus dem Inhalt: Operatoren, Schleifen, DatentypenKlassen und VererbungWichtige EntwurfsmusterGUI-Entwicklung mit XAMLLINQ einsetzenasync/await geschickt verwendenDateizugriffe und StreamsMultithreadingInternetzugriffMit Fehlern und Ausnahmen umgehen 1. Ein guter Start ist der halbe Sieg. Compiler und Entwicklungsumgebungen ... 25 Compiler und Compiler ... 26 Du brauchst eine IDE! ... 30 Der Spaß geht los! ... 32 Dein erstes Projekt ... 33 Theorie und Praxis ... 39 Was gelernt! ... 41 2. Ein netter Typ. Datentypen und deren Behandlung ... 43 Dieses Glas für diesen Wein ... 44 Grundlagen im Kamelreiten ... 48 Übungen für den Barkeeper ... 50 Rechnen mit Transvestiten ... 50 Alles nur Klone! ... 56 Ja oder nein? ... 57 Was gibt's zu essen? ... 58 Das ständige Hin und Her zwischen ja und nein ... 60 Gut kommentieren! ... 61 Kommentare im Einsatz ... 62 Andere für sich denken lassen ... 62 Compiler-Spiele ... 63 Viele neue Freunde ... 64 3. Alles unter Kontrolle. Bedingungen, Schleifen und Arrays ... 65 Bedingungen ... 66 In der Kürze liegt die Würze ... 69 Durch Variationen bleibt es interessant ... 70 Der Herr der Fernbedienung ... 72 Ist noch Bier da? ... 74 Switch-Expressions ... 77 Pattern-Matching ... 78 Zwillinge ... 79 Zwillinge ... 79 Ein Schuhschrank muss her ... 82 Arbeiten in den Tiefen des Schuhschranks -- von Kopf bis Fuß ... 83 Die ganze Welt ist Mathematik und aller guten Dinge sind vier ... 85 Schau's dir an mit dem Debugger ... 86 Solange du nicht fertig bist, weitermachen ... ... 87 Ich habe es mir anders überlegt ... 88 Oder mach doch weiter ... ... 89 Zurück zu den Schuhschränken ... 90 Wenn aus einem Schuhschrank eine Lagerhalle wird ... 91 Wiederholung, Wiederholung! ... 93 Code muss man auch lesen können ... 94 Jetzt kommt das coole Zeug! ... 96 Arrays verbinden ab C# 12 ... 100 Der Blick durchs Fenster ... 102 ... oder einmal alles ... 103 4. Sexy Unterwäsche -- von kleinen Teilen bis gar nichts. Strings, Characters und Nullable Types ... 105 Zeichenketten -- Strings ... 106 Kleine Teile -- einzelne Zeichen ... 107 Kleine und große Teile ... 108 Einfacher und schneller ... 109 Noch einfacher: Variablen im Text verwenden ... 112 Etwas Besonderes sollte es sein ... 113 Verdrehte Welt ... 114 Sein oder nicht sein? ... 117 Verweise auf nichts ... 120 Nichts im Einsatz ... 122 Damit bei so viel null nichts verloren geht ... 123 5. Eine endliche Geschichte. Enumerationen ... 125 Rot -- Gelb -- Grün ... 126 Tageweise ... 128 Tell me why I don't like mondays ... ... 131 WoW-Völker ... 132 Eine Mischung aus Zahlen und Arrays ... 134 Stimmungsbilder in der Praxis ... 137 Haltet das Banner hoch! ... 140 Auf wenige Sätze heruntergebrochen ... 143 6. Teile und herrsche. Methoden ... 145 Teilen statt Kopieren ... 146 Originale und überteuerte Kopien ... 149 Eins ist nicht genug ... 153 Wenn sich nichts bewegt und alles statisch ist ... 155 Ich hätte gerne das Original! ... 155 Sommerschlussverkauf -- alles muss raus ... 156 Tauschgeschäfte, die nicht funktionieren ... 158 TryParse und Enums ... 159 Zum Schluss noch ganz kurz ... ... 161 Ich will das ganz anders oder auch gar nicht -- Methoden überladen ... 163 Das Ganze noch einmal umgerührt ... 166 Ein knurrender Magen spornt bestimmt zu Höchstleistungen an ... 168 Originale zurücksenden ... 169 Maximale Originale ... 171 Eine kleine Zusammenfassung für dich ... 172 7. Klassengesellschaft. Objekte, Eigenschaften und Sichtbarkeiten ... 173 Mein Alter, meine Augenfarbe, mein Geburtsdatum ... 174 Eine Aufgabe für den Accessor ... 178 Ich sehe was, was du nicht siehst ... 179 Eigenschaften aufpoliert und bereit für die Bühne ... 180 Tanzen mit Elvis -- wenn keiner da ist, ist keiner da ... 182 Geheimniskrämerei und Kontrollfreak ... 183 Darf ich jetzt oder nicht? ... 184 Zusammen, was zusammengehört! ... 188 Zusammen und doch getrennt ... 190 Laufen, kämpfen, sterben ... 192 Vom Leben und Sterben ... 193 Geburtenkontrolle und detektivisches Talent ... 197 Mehrlingsgeburt ... 201 Partielle Klassen ... 204 Meine partiellen Daten ... 206 Gemeinsame Werte von dicken Freunden ... 207 Eigene Wertetypen ... 208 Strukturen überall ... 210 Strukturen ohne Namen ... 214 Ich habe viele Namen ... 216 Eigene Typen nochmals vom Sofa aus betrachtet ... 217 Die Nachteile der Wertetypen ausgetrickst ... 220 Gelernt ist gelernt! ... 223 8. Es wird Zeit für Übersicht! Namespaces ... 225 Eine Ordnung für die Klassen ... 226 Was ist denn nur in diesem Namespace vorhanden? ... 229 Vorhandene Systembausteine ... 231 Visual Studio findet die Namespaces für dich ... 234 Statische Klassen einbinden ... 234 Mathematik für Einsteiger ... 235 Zum Mitnehmen ... 236 9. Erben ohne Sterben. Objektorientierte Programmierung ... 237 Geisterstunde ... 238 Schleimgeister sind spezielle Geister ... 240 Fünf vor zwölf ... 242 Geister fressen, Schleimgeister fressen, Kannibalen fressen -- alles muss man einzeln machen ... 248 Enterben ... 249 Geister haben viele Gestalten ... 249 Geister, die sich nicht an die Regeln halten ... 252 Gestaltwandler unter der Lupe ... 253 Nochmals drüber nachgedacht ... 254 Hier noch ein Merkzettel ... 258 10. Abstrakte Kunst. Abstrakte Klassen und Interfaces ... 259 Abstrakte Klassen ... 260 Unverstandene Künstler ... 262 Das Meisterwerk nochmals betrachtet ... 264 Abstrakte Kunst am Prüftisch ... 265 Allgemein ist konkret genug ... 267 Fabrikarbeit ... 268 Alles unter einem Dach ... 269 Kaffee oder Tee? Oder doch lieber eine Cola? ... 270 Kaffeemaschine im Einsatz ... 272 Eine Cola bitte ... 274 Freundin vs. Chef -- Runde 1 ... 276 Bei perfekter Verwendung ... ... 277 Freundin vs. Chef -- Runde 2 ... 278 Freundin vs. Chef -- Runde 3 ... 280 Interfaces außer Rand und Band ... 281 In der Praxis: Mehr als nur Beschreibungen ... 282 Abstraktion und Interfaces auf einen Blick ... 287 11. Gleich und doch ganz anders. Records, der Star unter den eigenen Datentypen ... 289 Immutability -- die Würfel sind gefallen ... 290 Orcs, Trolle und Elfen als Klassen, Strukturen und Records ... 293 12. Airbags können Leben retten. Exceptionhandling ... 297 Mach's stabil! ... 298 Einen Versuch war es wert ... 300 Nur unter bestimmten Umständen ... 303 Fehler über Fehler ... 304 Über das Klettern auf Bäume ... 308 Klettern auf nicht vorhandene Bäume -- NullReferenceException ... 308 Auf Sträucher klettern -- FormatException ... 309 Sträucher im Sägewerk -- ArgumentException ... 310 Bezahlung ohne Ware -- ArgumentNullException ... 310 Bewusste Fehler ... 311 Selbst definierte Fehler ... 312 Fehler in freier Wildbahn ... 313 Das Matruschka-Prinzip ... 314 Alles noch einmal aufgerollt ... 316 Dein Fehler-Cheat-Sheet ... 320 13. Ein ordentliches Ablagesystem muss her. Collections und Laufzeitkomplexität ... 321 Je größer der Schuhschrank, desto länger die Suche ... 322 Komplizierte Laufschuhe ... 323 Geschwindigkeitsprognosen ... 326 Es muss nicht immer gleich quadratisch sein ... 328 Geschwindigkeitseinschätzung und Buchstabensuppe ... 330 Selbstwachsende Schuhschränke ... 334 Eine Array-Liste ... 335 Ringboxen ... 336 Listige Arrays und ihre Eigenheiten ... 337 Listige Arrays und ihre Verwendung ... 337 The Need for Speed ... 338 The Need for Speed ... 338 The Need for Speed ... 338 The Need for Speed ... 338 Es wird konkreter ... 339 Sortieren bringt Geschwindigkeit -- SortedList ... 342 Listenreiche Arbeit ... 344 Es geht noch schneller! ... 346 Im Rausch der Geschwindigkeit ... 348 Alternative Initialisierungen ... 350 Wörterbücher in der Anwendung... oder was im Regelfall schiefgeht ... 351 Von Bäumen und Ästen ... 355 Ein Verwendungsbeispiel ... 356 Alles eindeutig -- das HashSet ... 357 Schnelles Arbeiten mit Sets ... 358 Das große Bild ... 360 Der große Test, das Geheimnis und die Verwunderung ... 363 Noch einmal durchleuchtet ... 368 Dein Merkzettel rund um die Collections aus Laufzeiten ... 373 14. Allgemein konkrete Implementierungen. Generizität ... 375 Konkrete Typen müssen nicht sein ... 376 Das große Ganze ... 377 Mülltrennung leicht gemacht ... 378 Der Nächste bitte ... 381 Allgemein, aber nicht für jeden! ... 383 Immer das Gleiche und doch etwas anderes ... 385 Fabrikarbeit ... 387 Aus allgemein wird konkret ... 388 Hier kommt nicht jeder Typ rein. ... 389 Ähnlich, aber nicht gleich! ... 390 Varianzen hin oder her ... 392 Varianzen in der Praxis ... 395 WoW im Simulator ... 398 Damit's auch hängen bleibt ... 400 15. Linke Typen, auf die man sich verlassen kann. LINQ ... 401 Shoppen in WoW ... 405 Gesund oder gut essen? ... 408 Listen zusammenführen ... 409 Fix geLINQt statt handverlesen ... 416 Merkzettel ... 420 16. Blumen für die Dame. Delegaten und Ereignisse ... 421 Ein Delegat übernimmt die Arbeit ... 422 Im Strudel der Methoden ... 425 Die Butlerschule ... 428 Die Wahl des Butlers ... 431 Ereignisreiche Tage ... 432 Eine Runde für alle ... 435 Auf in die Bar! ... 436 Wiederholung, Wiederholung ... 439 Die delegierte Zusammenfassung ... 442 17. Der Standard ist nicht genug. Extension-Methoden und Lambda-Expressions ... 443 Extension-Methoden ... 444 Auf die Größe kommt es an ... 448 Erweiterungen nochmals durchschaut ... 450 Softwareentwicklung mit Lambdas ... 452 Lambda-Expressions auf Collections loslassen ... 455 Ein Ausritt auf Lamas ... 456 Filtern ... 456 Gruppieren ... 458 Verknüpfen ... 459 Gruppieren und Verknüpfen kombiniert ... 460 Left Join ... 461 VerLINQte LAMbdAS ... 463 Lamas im Schnelldurchlauf ... 466 18. Die Magie der Attribute. Arbeiten mit Attributen ... 467 Die Welt der Attribute ... 468 Die Magie erleben ... 470 Das Ablaufdatum-Attribut ... 472 Die Magie selbst erleben ... 473 Eine magische Reise in dein Selbst ... 474 In den Tiefen des Kaninchenbaus ... 477 Der Attribut-Meister erstellt eigene Attribute! ... 480 Meine Klasse, meine Zeichen ... 482 Selbstreflexion ... 484 Die Psychologie lehrt uns: Wiederholung ist wichtig! ... 488 19. Ich muss mal raus. Dateizugriff und das Internet ... 489 Daten speichern ... 490 Rundherum oder direkt rein ... 491 Rein in die Dose, Deckel drauf und fertig ... 493 Deine Geheimnisse sind bei mir nicht sicher ... 494 Das Mysterium der Dateiendungen ... 497 Das Gleiche und doch etwas anders ... 500 Das Lexikon vom Erstellen, Lesen, Schreiben, Umbenennen ... 501 Ran an die Tastatur, rein in die Dateien ... 506 Von der Sandburg zum Wolkenkratzer ... 508 Fließbandarbeit ... 512 Wenn das Fließband nicht ganz richtig läuft ... 515 Dem Fließband vorgeschalteter Fleischwolf ... 519 Nutze die Attributmagie! ... 521 X(M)L entspricht XXL ... 522 Der Größenvergleich ... 523 Die kleinste Größe -- JSON ... 524 Wir sind viele ... 525 Schru00F6dinger ... 529 Das World Wide Web. Unendliche Weiten ... 532 Deine Seite, meine Seite ... 534 Probe, Probe, Leseprobe ... 536 Punkt für Punkt fürs Hirn ... 538 20. Komm zurück, wenn du fertig bist. Asynchrone und parallele Programmierung ... 539 Zum Beispiel ein Download-Programm ... 540 Was so alles im Hintergrund laufen kann ... 547 Gemeinsam geht es schneller ... 549 Jetzt wird es etwas magisch ... 553 Wenn jeder mit anpackt, dann geht alles schneller ... 555 Rückzug bei Kriegsspielen ... 558 async/await/cancel ... 560 Unkoordinierte Koordination ... 562 Anders und doch gleich ... 567 Gemeinsam Kuchen backen ... 568 Wenn das Klo besetzt ist ... 573 Das Producer-Consumer-Problem ... 573 Dein Spickzettel ... 579 21. Nimm doch, was andere schon gemacht haben. Die Paketverwaltung NuGet ... 581 Bibliotheken für Code ... 582 Fremden Code aufspüren ... 585 Eigene NuGet-Pakete erstellen ... 588 Pakete statt Projekte ... 591 Die Welt ist schon fertig ... 592 22. Die schönen Seiten des Lebens. Einführung in XAML ... 593 Unendliche Weiten ... 594 Hinzufügen der Komponenten für MAUI-Apps in Visual Studio ... 597 Die MAUI-Architektur ... 598 Diese X-Technologien ... 600 Grundstruktur des Projekts ... 602 Ruf deine Freundin an ... 608 Layouthelferlein ... 612 Tabellen über Tabellen ... 613 Schrödingers Notizen ... 617 Das ist alles eine Stilfrage ... 631 Von der Seite in die Anwendung ... 633 Sonne, Strand und XAML ... 636 23. Models sind doch schön anzusehen. Das Model-View-ViewModel-Entwurfsmuster ... 639 Mein erstes eigenes Model ... 644 Eine Technik, sie alle zu binden! ... 648 Eine Eigenschaft für alle Infos ... 650 Wenn nur jeder wüsste, was er zu tun hätte ... 651 Los geht's! Notify-Everybody ... 654 Ein Laufsteg muss es sein! ... 657 Über Transvestiten und Bindungsprobleme ... 666 Über Bindungsprobleme und deren Lösungen ... 667 Alleine oder zu zweit? ... 668 Aus Klein mach Groß und zurück ... 669 Klein aber fein ... 670 Notizen über Models ... 673 Auf mein Kommando ... 683 Dem Zufall das Kommando überlassen ... 689 MVVM Punkt für Punkt ... 694 24. Weniger ist mehr. MVVM Community Toolkit ... 695 Programmcode generieren lassen ... 696 Lass uns mal rechnen, aber möglichst ohne Aufwand ... 701 Das solltest du trotz Automatik noch wissen ... 710 25. Funktioniert das wirklich? Unit-Testing ... 715 Das Problem: Testen kann lästig werden ... 716 Die Lösung: Unit-Tests -- Klassen, die Klassen testen ... 717 Das Testprojekt erstellen ... 720 Die Ausführung ist das A und O! ... 722 Spezielle Attribute ... 723 Unit-Tests sind nicht alles ... 723 Testgetriebene Softwareentwicklung -- oder wie du Autofahren lernst ... 724 Darfst du schon fahren? ... 725 Let's do it! ... 730 Dein Test-Merkzettel ... 731 26. Schrödingers Zukunft. Vorschau auf C# 13 und .NET9 ... 733 Schrittweise verfeinert ... 733 Params für alle ... 734 Alles erweitern! ... 735 Lange Eigenschaften gekürzt ... 739 Neuerungen in LINQ ... 740 Warten auf Godot ... 742 Index ... 743