Programmierung
R Alles-in-einem-Band für Dummies
Wenn Sie R von Grund auf kennenlernen und auch die fortgeschrittenen Techniken zur Lösung gängiger Aufgaben bei der Datenanalyse mit R beherrschen möchten, dann liegen Sie mit diesem Buch goldrichtig. Es bietet Ihnen nicht nur einen Überblick über die Programmierung in R und die Arbeit mit der Sprache, sondern geht auch auf die Arten von Projekten und Anwendungen ein, die R-Entwicklerinnen und -Entwickler häufig in Angriff nehmen müssen. Statistische Analysen, Datenvisualisierungen, maschinelles Lernen und Datenmanagement mit R: All das lernen Sie mit diesem Buch intensiv kennen.Joseph Schmuller forscht an der Universität North Florida und hat Statistik auf ganz verschiedenen Niveaus unterrichtet. Er war Mitglied der American Statistical Association und hat mehr als 25 Jahre Erfahrung in der Informatik. Er ist Autor verschiedener erfolgreicher Computerbücher, unter anderem von "Statistik mit Excel für Dummies" und "Statistik mit R für Dummies".
Beginning Helidon
Learn how to build cloud-native microservices with Helidon - an open-source Java framework from Oracle. This book will show you how to take full advantage of the cloud by optimizing applications with fast start times, low memory consumption, and a small disk footprint.The open-source Helidon framework provides all that, and more. It’s based on Java 17, giving you full access to new code features. This book reveals how Helidon also supports modern enterprise Java standards such as MicroProfile. Plus, you'll see how Helidon lets you use GraalVM to build lightning-fast native executables, and its unique reactive layer allows you to develop efficient low-level APIs.Each chapter in the book teaches a new Helidon concept through practical examples based on real-life use-cases. You’ll learn how to add observability and security to your microservices, how to work with databases, and call other services. You'll also look at all MicroProfile 5.0 platform specifications as well as some stand-alone specs such as Messaging and Long Running Actions. Best of all, everything covered in this book makes it a great study guide for the upcoming Oracle Helidon certification - the perfect way to prove your new skills to a prospective employer!WHAT YOU'LL LEARN* Package microservices using JLink and GraalVM* Deploy microservices to Kubernetes * Review MicroProfile 5.0 specifications in detail* Understand the basics of Helidon Reactive APIsWHO THIS BOOK IS FORDevelopers and architects who want to start developing cloud-native applications; developers who already use different Java framework and want to learn about Helidon; those interested in developing portable applications using MicroProfile and Jakarta EEDMITRY KORNILOV is the Director of Software Development at Oracle. He is leading the project Helidon and actively participating in Jakarta EE and MicroProfile communities. Dmitry is an open-source enthusiast and speaker who has earned the "Star Spec Lead" and "Outstanding Spec Lead" awards.DANIEL KEC is a Java Developer at Oracle working on the Helidon project.DMITRY ALEKSANDROV is a software developer at Oracle, Java Champion, and Oracle Groundbreaker. He is currently working on Project Helidon. He is a co-lead of the Bulgarian Java User Group and co-organizer of jPrime Conf.1:Introduction.- 2: Your First Application.- 3: Configuration.- 4: Observability.- 5: Communicating with other Services.- 6: Accessing Data.- 7: Resiliency.- 8:Security.- 9: Using Open API.- 10: Testing Your Application.- 11: Scheduling Tasks.- 12: Integration with other Technologies.- 13: Going Reactive.- 14: Long Running Actions.- 15: Helidon SE.
Datenbankentwicklung lernen mit SQL Server 2022
Alles, was ein gutes Lehrbuch bieten sollte: Klar definierte Lernziele, gute Beispiele und viele praktische Übungsaufgaben- Aktualisierte Neuauflage der bewährten Einführung in die Datenbankentwicklung- Basiert auf der kostenlos erhältlichen Version SQL Server 2022 Express- Jetzt komplett überarbeitet und an alle Neuerungen der SQL-Server-Version von 2022 angepasstSQL Server 2022 und die kostenlose Version SQL Server 2022 Express sind ideal, um in die professionelle Datenbankentwicklung einzusteigen. Sie können mit ihnen komplexe Datenbankprojekte verwirklichen, die die Funktionalität einer Desktop-Datenbank wie Microsoft Access deutlich übersteigen.Wenn Sie tiefer in die Datenbankentwicklung mit einem professionellen Datenbankserver einsteigen wollen, ist dieses Buch genau das Richtige für Sie. Es vermittelt leicht verständlich sowohl die Datenbankgrundlagen als auch das Programmierwissen, das Sie benötigen, um die umfangreichen Möglichkeiten von SQL Server 2022 zu nutzen. Aufgrund des didaktisch durchdachten Konzepts mit vielen Übungen und Praxistipps ermöglicht dieses Buch Ihnen eine fundierte Einarbeitung in die Entwicklung von Datenbanken. Das Buch basiert auf der kostenfrei erhältlichen Version SQL Server 2022 Express, eignet sich aber auch für größere SQL-Server-Editionen.Robert Panther ist Diplom-Informatiker (FH), er beschäftigt sich mittlerweile seit über 20 Jahren intensiv mit dem Microsoft SQL Server. Als Executive Consultant für CGI in Deutschland hat er als Entwickler, Administrator und Datenbank-Architekt zahlreiche Projekte erfolgreich mitgestaltet. Darüber hinaus schreibt er Fachartikel und Bücher rund um sein Spezialgebiet, ist regelmäßiger Sprecher auf Fachkonferenzen (Deutsche SQL Server Konferenz, BASTA!, SQLCON, Frankfurter Datenbanktage/IT-Tage) und in der Microsoft Data Platform Community (PASS) aktiv.
C++ für Kids
Um wie ein Profi Spiele zu programmieren, brauchst du erst einmal Grundlagen. Am besten dazu geeignet ist C++, das dir in diesem Buch Schritt für Schritt und leicht verständlich beigebracht wird. Dabei wirst du vertraut mit Konstanten und Variablen, Zweigen und Schleifen, Klassen und Objekten und vielem mehr. Der Spaß kommt dabei nicht zu kurz! Du bleibst stets nah am Thema Spiele, denn alle Projekte nutzen Beispiele aus der Spieleprogrammierung. So entwickelst du schnell erste kleine Spiele wie Zahlenraten oder du navigierst Objekte auf einem Spielfeld. Neben fundierten C++-Grundlagen bekommst du im Verlauf des Buches auch Profiwissen serviert: über Arrays, Zeiger, die objektorientierte Programmierung und das Wichtigste der Grafik-Programmierung, z.B. Figuren zu animieren und laufen oder springen zu lassen. Am Ende hast du drei komplette Spiele selbstständig programmiert! Alle Projektdateien sowie die Lösungen zu den Fragen und Aufgaben gibt es zum Download• C++ ganz einfach lernen und objektorientiert programmieren• Schritt für Schritt drei komplette Spiele entwickeln• Zahlreiche Übungsfragen und Aufgaben am Ende der Kapitel
Programmieren mit MATLAB
Die Grundkenntnisse des Programmierens mit MATLAB erlernenDieses Lehrbuch vermittelt die wichtigsten Grundlagen zur Programmierung mit MATLAB für Studierende der Ingenieurwissenschaften. Es beginnt mit der Vorstellung der elementaren Prinzipien der Datenverarbeitung und vermittelt darauf aufbauend die Grundkenntnisse des Programmierens anschaulich mithilfe der in MATLAB integrierten Programmiersprache.Zahlreiche Anwendungen vertiefen das Wissen und führen zusätzlich in numerische Verfahren in MATLAB ein. Wo für spezielle Probleme das Basismodul von MATLAB nicht mehr ausreicht, wird für eine intensivere Nutzung auf die MATLAB-Toolboxen verwiesen, deren Installation zum Verständnis dieses Buches jedoch nicht notwendig ist.Die 7. Auflage wurde komplett überarbeitet, alle Beispiele und Anwendungen sind auf die neueste MATLB-Version R2022b ausgerichtet.Umfangreiches Zusatzmaterial finden Sie online auf der Website zum Buch: www.Stein-Ulrich.de/Matlab und unter plus.hanser-fachbuch.de. Dr. Ulrich Stein ist Professor für Maschinenbauinformatik/Physik/Mathematik im Heinrich Blasius-Institut am Department Maschinenbau und Produktion der HAW Hamburg.
Scripting
Die Kunst, Probleme in 10 Zeilen zu lösen. Das Praxisbuch für Administratoren und DevOps-Teams. Scripting ist die Kunst, Probleme in wenigen Zeilen zu lösen. Denn viele Aufgaben in der IT erfordern keine komplexen Lösungen in einer Hochsprache – oft reichen ein paar Zeilen Python-, Bash- oder PowerShell-Code.Michael Kofler zeigt Ihnen in diesem Praxisbuch, wie Sie die Macht der Scripting-Umgebungen nutzen. Anhand zahlreicher Praxisbeispiele erfahren Sie, wie Sie Aufgaben automatisieren und wie Ihnen Shell- oder Pythonscripts viel Arbeit abnehmen können. Mit dabei ist ein Überblick über moderne Shell-Werkzeuge und IDEs: Visual Studio Code, Git, SSH und mehr.Für alle SystemeEgal, ob Sie mit Linux, Windows oder dem Mac arbeiten, ob Sie lokale Systeme administrieren oder per SSH auf die Cloud zugreifen: Crashkurse für die Bash/ZSH, PowerShell und Python machen Sie fit fürs Scripting.Keep it simple, Stupid!Wenn Sie schon länger in der IT arbeiten, wissen Sie, dass nichts über das KISS-Prinzip geht. Einfache Scripts zerlegen komplexe Probleme in kleine Schritte und erleichtern die Arbeit in der Systemadministration oder der Softwareentwicklung.Musterlösungen und BeispielscriptsMöchten Sie Markdown-Dokumente automatisiert erstellen oder Script-gestützte Sicherungen durchführen? Webinhalte scrapen oder Ihre Lösungen in Docker-Containern weitergeben? Für viele Szenarien finden Sie Musterlösungen, die Sie als Grundlage für eigene Scripts nutzen können.Aus dem Inhalt:Bash, ZSH und die Linux-ToolboxPowerShell und CmdLetsPython und PipSSH, VSCode, Git, Curl: Werkzeugenkasten für moderne ScriptsScripts automatisch ausführen: Cron und Task SchedulerBackups automatisierenBilder verarbeitenMonitoring: Logging-Dateien auswertenWeb-Scraping und -MiningScripting in der AWS-CloudScripte in Docker-ContainernÜber den Autor:Michael Kofler ist der renommierteste Fachbuchautor im deutschsprachigen Raum und behandelt von Linux über Swift bis zur IT-Security alles, was Sie in der Systemadministration oder der Softwareentwicklung wissen müssen.Leseprobe (PDF-Link)
IT-Handbuch für Fachinformatiker*innen (11. Auflg.)
Der Ausbildungsbegleiter. Standardwerk für die Ausbildung in 11. Auflage.Mit diesem bewährtem Klassiker in elfter Auflage haben Sie das ganze Wissen zur Hand, das Fachinformatikerinnen und Fachinformatiker in ihrer Ausbildung benötigen: Hardware, Betriebssysteme, Programmiergrundlagen, Daten- und Prozessanalyse, Netzwerke, Datenbanken und Multimedia. Aktuell und mit neuen Themen zur Neuordnung der IT-Berufe. Die zahlreichen Prüfungsfragen und Praxisübungen unterstützen Sie beim Lernen und bei der Vorbereitung auf die Abschluss- oder Zwischenprüfung.IT-Grundlagen von A bis ZGrundlagen von IT und Betriebssystemen verstehen:Alles, was Sie über die mathematischen und technischen Voraussetzungen von Computern, Dateiformate und -verwaltung sowie Theorie und Praxis der Betriebssysteme wissen müssen.Programmieren lernen und Datenbanken einsetzen:Legen Sie die theoretischen Grundlagen für die Programmierung eigener Anwendungen und lernen Sie, was es auf sich hat mit Algorithmen, Datenstrukturen, Objektorientierung und Datenbanken.Netzwerktechnik in Theorie und Praxis:Mit der vollständigen Einführung in die Begriffswelt der Netzwerke und TCP/IP, die Einrichtung von Servern unter Windows und Linux sowie den Einsatz von Serverdiensten sind Sie für alle Anwendungsfälle gerüstet.Big Data, Machine Learning und Prozessanalyse:Lernen Sie die Themen Datenanalyse, Machine Learning und Künstliche Intelligenz kennen – nicht nur für den Ausbildungsgang FIDP unverzichtbar. Für die Implementierung kommen praxiserprobte Python-Bibliotheken wie NumPy und Scikit-Learn zum Einsatz.Erstellen und gestalten Sie Websites:Lernen Sie die Grundlagen der Website-Programmierung mit HTML5, CSS3, PHP und JavaScript kennen und erstellen Sie eine REST-API und -Clients. Inklusive Node.js und React.Aus dem InhaltÜberblick IT-AusbildungMathematische und technische GrundlagenHardware und Betriebssysteme, DatenbankenWindows, Linux, macOS – Grundlagen und PraxisNetzwerktechnik und -praxis, IT-SicherheitDatenanalyse, Machine Learning, KIProgrammierung in Java, Python, JavaScript und PHPAlgorithmen und DatenstrukturenProzessanalyseSoftware-EngineeringInternet- und WebtechnologienÜber den Autor:Sascha Kersken arbeitet seit vielen Jahren als Softwareentwickler sowie als Trainer für EDV-Schulungen in den Themengebieten Netzwerke und Internet, interaktive Medien und Programmierung.
Schrödinger lernt HTML5, CSS und JavaScript (4. Auflg.)
Drei Sprachen in einem Schrödinger-Band! Das etwas andere Fachbuch - 4. aktualisierte Auflage 2023.Eine runde Sache: Schrödinger wird Webentwickler! Zum Glück hat er einen Kumpel, der auf jede Frage eine Antwort weiß, wenn er nur genug Kaffee bekommt. Zusammen lernt ihr HTML, CSS und JavaScript und erstellt die Webauftritte für seine Firma und einen Verein. Mit viel Witz, allen nötigen Erklärungen, Unmengen an Code, Tipps, Übungen und der verdienten Erholung. Von "Hallo Webwelt" über AJAX bis zu Geolocation und TouchScreens: alles auf dem neuesten Stand und, wenn du willst, mit deinem eigenen Webserver. Umwerfende Beispiele, fantastisch illustriert.1. Gründlicher EinstiegSchrödinger ist zwar pfiffig, fängt aber ganz von vorn an zu lernen – und du bist dabei. HTML-Seiten aufbauen, ersten JavaScript-Code schreiben, grafische Gestaltung umsetzen: Alles wird Schritt für Schritt erklärt und ausprobiert.2. Voller Durchblick durch moderne WebstandardsFür Einsteiger und Umsteiger perfekt. Unmengen an Beispielen und Übungen. HTML, CSS und JavaScript von Anfang an – alles in einem Buch und mit farbigem Syntax-Highlighting. Aktuelle Profi-Praxis mit Sinn für guten Code.3. Lernen – Anwenden – WiederholenMit Schrödinger wird immer Hand angelegt. Neue Konzepte und Sprachelemente werden in Ruhe vorgestellt (grün). Dann geht es ab in die Werkstatt (violett), wo ihr Code schreibt oder verbessert. In Schrödingers Wohnzimmer (orange) könnt ihr üben, wiederholen und euch auch etwas Erholung gönnen.Aus dem Inhalt:Ausführlicher Einstieg in HTML, CSS und JavaScriptDesigns umsetzen und gute GUIs erstellenEreignisse behandeln und Funktionen einsetzenServerkommunikation, AJAX und Websockets nutzenMit oder ohne HTML5 und CSS3Karten einbinden und GPS-Daten auswertenZeichnen mit CanvasResponsive Webdesign und ToucheventsWebseiten für einfach alles, was einen Bildschirm hatVideo- und Audiomaterial einbindenÜber den Autor: Kai Günster ist Web- und Softwareentwickler und hat Spaß an immer neuen Details. Er hält HTML5 für die beste Erfindung seit der Laugenbrezel und JavaScript für die Zukunft der GUI-Entwicklung.Leseprobe (PDF-Link)
Pro Spring 6
Master the Spring Framework, its fundamentals and core topics, and share the authors’ insights and real-world experiences. This book goes well beyond the basics: you'll learn how to leverage the latest Spring Framework 6 to build the various tiers and parts of today's modern, complex enterprise Java applications systems, top to bottom, including data access, SQL generation with jOOQ, persistence with Hibernate, transactions, set up security, classic web and presentation tiers and adding in some reactivity. Spring 6 will be based on the latest available Long Term Support (LTS) release, Java 17. So, you will be able to do the following in your Spring applications: use records, use new utility methods in String class; utilize Local-Variable Syntax for Lambda Parameters; Nested Based Access Control, and more. Integrating Spring with the most used frameworks and libraries is covered in this book, such as Testcontainers, Hibernate, jOOQ, Kafka and many others.A full sample application allows you to apply many of the technologies and techniques covered in Pro Spring 6 and see how they work together. This book updates the perennial bestseller with the latest that Spring Framework 6 has to offer. Now in its sixth edition, this popular title is by far the most comprehensive and definitive treatment of Spring available. After reading this book, you'll be armed with the power of Spring to build complex applications, top to bottom. The agile, lightweight, open-source Spring Framework continues to be the de facto leading enterprise Java application development framework for today's Java programmers and developers.WHAT YOU WILL LEARN* What’s new in Spring Framework 6 and how to use it with the latest LTS version of Java, Java 17* How to integrate Spring with the most renowned and practical frameworks and dependencies* How to build complex enterprise cloud-native applications using Spring 6* How to master data access, persistence and transactions* How to use with Spring Batch, Integration and other key Spring projectsTHIS BOOK IS FORExperienced Java and enterprise Java developers and programmers. Some experience with Spring highly recommended.IULIANA COSMINA is a Spring Certified Web Developer and is also Spring Certified Core Spring Professional. She is a Spring certified expert, as defined by Pivotal, the makers of Spring Framework, Boot and other tools. She has authored books with Apress on Core Spring certification and Spring Certified web development. She is a Lead Engineer at Cloudsoft, Edinburgh and is an active coder and software contributor on Apache Brooklyn, GitHub, StackOverflow and more.ROB HARROP is a software consultant specializing in delivering high-performance, highly-scalable enterprise applications. He is an experienced architect with a particular flair for understanding and solving complex design issues. With a thorough knowledge of both Java and .NET, Harrop has successfully deployed projects across both platforms. He also has extensive experience across a variety of sectors, retail and government in particular. Harrop is the author of five books, including Pro Spring, a widely-acclaimed, comprehensive resource on the Spring Framework.CHRIS SCHAEFER is a Principle Software Developer for Spring project at Pivotal, the makers of Spring Framework, Boot and other Spring tools.CLARENCE HO is the Senior Java Architect of a HK-based software consultancy firm, SkywideSoft Technology Limited. Having been worked in the IT field for over 20 years, Clarence had been the team leader of many in-house application development projects, as well as providing consultancy services on enterprise solutions to clients.Chapter 1: Introducing SpringChapter 2: Getting StartedChapter 3: Introducing IoC and DI in SpringChapter 4: Advanced Spring Configuration and Spring BootChapter 5: Spring AOPChapter 6: Spring JDBCChapter 7: Spring with HibernateChapter 8: Spring with JPAChapter 9: Spring Transaction ManagementChapter 10: Spring Data with SQL and NoSQL databasesChapter 11: Validation, Formatting and Type ConversionChapter 12: Task Scheduling - some new things might be needed here.Chapter 13: Spring RemotingChapter 14: Spring Native and Other GoodiesChapter 15: Spring MVCChapter 16: Spring REST SupportChapter 17: Securing Spring Web ApplicationsChapter 18: Monitoring Spring ApplicationsChapter 19: Spring WebSocket SupportChapter 20: Reactive Spring
TypeScript - Ein praktischer Einstieg
Ein großartiger Ausgangspunkt für alle, die neu in TypeScript einsteigen!* Vermittelt JavaScript-Entwicklerinnen und -Entwicklern, die keine Vorkenntnisse zu Typisierung und Typsystemen mitbringen, die Grundlagen von TypeScript.* Mit verständlichen, jeweils eigenständigen Codebeispielen, wertvollen Hilfestellungen und Tipps nach dem Motto: aus alt und unsicher (JS) mach neu und sicher (TS).* Gut lesbar, mit viel Humor geschrieben.JavaScript lässt Entwicklerinnen und Entwicklern viele Freiheiten, was im Programmieralltag – insbesondere bei umfangreicher Codebasis – häufig zu Problemen führt. TypeScript wurde entwickelt, um hier Abhilfe zu schaffen, und hat in den letzten Jahren erfolgreich die JavaScript-Welt erobert. Mit einem durchdachten Typsystem unterstützt es ein strukturiertes Programmieren, das Refaktorieren von Code und das Entwickeln skalierender Webanwendungen.Josh Goldberg orientiert sich in seiner Einführung immer am Programmieralltag. Kompakt beschreibt er, wie das Typsystem beschaffen ist, wie es mit JavaScript interagiert und wie Entwicklerinnen und Entwickler ihren Code lesbarer und wartbarer gestalten können. Für Goldberg ist das Typsystem von TypeScript nicht nur ein Mittel, um Fehler zu beseitigen, sondern ein wunderschönes System, mit dem Entwickler festlegen, wie ihr JavaScript funktionieren soll, und das ihnen dabei hilft, sich an diese Vorgaben zu halten.Josh Goldberg ist Softwareberater und Open-Source-Maintainer. Er trägt aktiv zu TypeScript und den Projekten dieses Ökosystems wie typescript-eslint und TypeStat bei. Zuvor war Josh Frontend-Entwickler im Web-Platform-Team von Codecademy, wo er die Verwendung von TypeScript im Unternehmen vorantrieb und half, ein TypeScript-Tutorial zu entwickeln.
Eine Tour durch C++
Der praktische Leitfaden für modernes C++. Eine Übersetzung der 3. Auflage in deutscher Erstauflage aus Juni 2023. Erhältlich als digitale und gedruckte Fassung.Dieses Buch bietet erfahrenen Programmierern einen praktischen Überblick über C++20 nach ISO-Standard und damit ein klares Verständnis für den Einsatz von modernem C++. Anhand vieler Codebeispiele und hilfreicher Praxistipps wird ein Großteil der Hauptfeatures der Sprache sowie der Standardbibliothek behandelt, die für den effektiven Einsatz unverzichtbar sind.Stroustrup stellt die einzelnen Sprachfeatures von C++ vor und zeigt, wie sie im Kontext der unterstützten Programmierstile eingesetzt werden, beispielsweise der objektorientierten oder generischen Programmierung. Seine Tour beginnt mit den Grundlagen und setzt den Fokus anschließend auf fortgeschrittene Techniken, wobei er insbesondere auf die neueren Sprach-features eingeht.Dieses Buch deckt zahlreiche Features ab, die mit C++20 neu eingeführt wurden, darunter Module, Konzepte, Koroutinen und Bereiche. Selbst einige schon jetzt verfügbare Komponenten, die nicht vor C++23 in den Standard integriert werden sollen, werden vorgestellt.Wenn Sie bereits Programmierkenntnisse in C++ oder einer anderen Sprache haben, ist dies die kompakteste und verständlichste Einführung, um die Besonderheiten und Vorteile von modernem C++ kennenzulernen.Aus dem Inhalt:Die Grundlagen: Funktionen, Referenzen, Zeiger und mehrBenutzerdefinierte TypenModularitätFehlerbehandlungKlassenOperationenTemplatesKonzepte und generische ProgrammierungDie StandardbibliothekStrings und reguläre AusdrückeStreamsAlgorithmenBereiche (Ranges)Zeiger und ContainerUtilitiesNumerikNebenläufigkeitZahlreiche Ratschläge für die effektive Programmierung aus den »C++ Core Guidelines«Positiv besprochen auf heise online im Oktober 2023:»Dem mitp-Verlag ist mit der Übersetzung der dritten Auflage des englischen Originals ein lesenswertes Buch gelungen, das sich zudem durch eine sinnvolle didaktische Struktur auszeichnet. Alle Kapitel enden mit einer Liste von Ratschlägen, mit zum Teil kontroversen Empfehlungen, die Leserinnen und Lesern aber in jedem Fall wertvolle Hilfestellung bei der Umsetzung von Programmierarbeiten in der Praxis leisten dürften.«Über den Autor:Bjarne Stroustrup hat C++ entwickelt und die erste Implementierung geschrieben. Derzeit ist er Professor an der Columbia University und hat zuvor bei AT&T Bell Labs an der Texas A&M University sowie bei Morgan Stanley gearbeitet. Dr. Stroustrup erhielt zahlreiche Auszeichnungen, unter anderem den The National Academy of Engineering's Charles Stark Draper Prize for Engineering für die Konzeptionierung und Entwicklung der Programmiersprache C++. Er ist Mitglied der National Academy of Engineering und Fellow von IEEE, ACM, CHM und dem Churchill College Cambridge.Leseprobe (PDF-Link)
Introduction to Prescriptive AI
Gain a working knowledge of prescriptive AI, its history, and its current and future trends. This book will help you evaluate different AI-driven predictive analytics techniques and help you incorporate decision intelligence into your business workflow through real-world examples.The book kicks off with an introduction to decision intelligence and provides insight into prescriptive AI and how it can be woven into various business strategies and frameworks. You'll then be introduced to different decision intelligence methodologies and how to implement them, along with advantages and limitations of each. Digging deeper, the authors then walk you through how to perform simulations and interpret the results. A full chapter is devoted to embedding decision intelligence processes and outcomes into your business workflow using various applications. The book concludes by exploring different cognitive biases humans are prone to, and how those biases can be eliminated by combining machine and human intelligence.Upon completing this book, you will understand prescriptive AI, tools, and techniques and will be ready to incorporate them into your business workflow.WHAT YOU WILL LEARN* Implement full-fledged decision intelligence applications using Python* Leverage the tools, techniques, and methodologies for prescriptive AI* Understand how prescriptive AI can be used in different domains through practical examples* Interpret results and integrate them into your decision makingWHO THIS BOOK IS FORData Scientists and Machine Learning Engineers, as well as business professionals who want to understand how AI-driven decision intelligence can help grow their business.AKSHAY R. KULKARNI is an artificial intelligence (AI) and machine learning (ML) evangelist and a thought leader. He has consulted several Fortune 500 and global enterprises to drive AI and data science–led strategic transformations. He is a Google developer, an author, and a regular speaker at major AI and data science conferences (including the O’Reilly Strata Data & AI Conference and Great International Developer Summit (GIDS)) . He is a visiting faculty member at some of the top graduate institutes in India. In 2019, he was featured as one of India’s “top 40 under 40” data scientists. In his spare time, Akshay enjoys reading, writing, coding, and helping aspiring data scientists. He lives in Bangalore with his family.ADARSHA SHIVANANDA is a data science and MLOps leader. He is working on creating world-class MLOps capabilities to ensure continuous value delivery from AI. He aims to build a pool of exceptional data scientists within and outside organizations to solve problems through training programs. He always wants to stay ahead of the curve. Adarsha has worked extensively in the pharma, healthcare, CPG, retail, and marketing domains. He lives in Bangalore and loves to read and teach data science.AVINASH MANURE is a seasoned Machine Learning Professional with 10+ years of experience building, deploying, and maintaining state-of-the-art machine learning solutions across different industries. He has 6+ years of experience leading and mentoring high-performance teams in developing ML systems catering to different business requirements. He is proficient in deploying complex machine learning and statistical modeling algorithms/techniques for identifying patterns and extracting valuable insights for key stakeholders and organizational leadership.Chapter 1: Decision Intelligence Overview.- Chapter 2: Decision Intelligence Requirements.- Chapter 3: Decision Intelligence Methodologies.- Chapter 4: Interpreting Results from Different Methodologies.- Chapter 5: Augmenting Decision Intelligence Results into the Business Workflow.- Chapter 6: Actions, Biases and Human-in-the-Loop.- Chapter 7: Case Studies.
Pro Cryptography and Cryptanalysis with C++23
Develop strong skills for writing cryptographic algorithms and security schemes/modules using C++23 and its new features. This book will teach you the right methods for writing advanced cryptographic algorithms, such as elliptic curve cryptography algorithms, lattice-based cryptography, searchable encryption, and homomorphic encryption. You'll also examine internal cryptographic mechanisms and discover common ways in which the algorithms can be implemented and used correctly in practice.The authors explain the mathematical basis of cryptographic algorithms in terms that a programmer can easily understand. They also show how “bad” cryptography can creep in during implementation and what “good” cryptography should look like by comparing advantages and disadvantages based on processing time, execution time, and reliability.WHAT YOU WILL LEARN* Discover what modern cryptographic algorithms and methods are used for * Design and implement advanced cryptographic mechanisms * See how C++23 and its new features are impact the implementation of cryptographic algorithms* Practice the basics of public key cryptography, including ECDSA signatures and more* See how most of the algorithms can be brokenWHO THIS BOOK IS FORProfessional programmers, developers, and software engineers who are developing cryptography algorithms and security schemes/modules in C++. Prior C++ programming and IDE experience and some basic experience of cryptography concepts (symmetric and asymmetric) highly recommended.MARIUS IULIAN MIHAILESCU, PHD is CEO at Dapyx Solution Ltd., a company based in Bucharest, Romania and involved in information security- and cryptography-related research projects. He is a lead guest editor for applied cryptography journals and a reviewer for multiple publications with information security and cryptography profiles. He authored and co-authored more than 30 articles in conference proceedings, 25 articles in journals, and three books. For more than six years he has served as a lecturer at well-known national and international universities (University of Bucharest, “Titu Maiorescu” University, Kadir Has University in, Istanbul, Turkey). He has taught courses on programming languages (C#, Java, C++, Haskell), and object-oriented system analysis and design with UML, graphs, databases, cryptography and information security. He served for three years as IT officer at Royal Caribbean Cruises Ltd. where he dealt with IT infrastructure, data security, and satellite communications systems. He received his PhD in 2014 and his thesis was on applied cryptography over biometrics data. He holds two MSc in information security and software engineering.STEFANIA LOREDANA NITA, PHD is a software developer at the Institute of Computer Science of the Romanian Academy and a PhD with her thesis on advanced cryptographic schemes using searchable encryption and homomorphic encryption. She has served more than two years as an assistant lecturer at the University of Bucharest where she taught courses on subjects such as advanced programming techniques, simulation methods, and operating systems. She has authored and co-authored more than 15 workpapers at conferences and journals, and has authored two books on he Haskell programming language. She is a lead guest editor for special issues on information security and cryptography such as Advanced Cryptography and Its Future: Searchable and Homomorphic Encryption. She holds an MSc in software engineering and two BSc in computer science and mathematics.Part I: Foundations1: Introduction2: Cryptography Fundamentals3: Mathematical Background and Its Applicability4: Large Integer Arithmetic5: Floating Point Arithmetic6: New Features in C++237: Secure Coding Guidelines8: Cryptography Libraries in C/C++23Part II: Pro Cryptography9: Elliptic Curve Cryptography10: Lattice-based Cryptography11: earchable Encryption12: Homomorphic Encryption13: (Ring) Learning with Errors Cryptography14: Chaos-based Cryptography15: Big Data Cryptography16:Cloud Computing CryptographyPart III: Pro Cryptanalysis17: Getting Started with Cryptanalysis18: Cryptanalysis Attacks and Techniques19: Linear and Differential Cryptanalysis20: Integral Cryptanalysis21: Brute Force and Buffer Overflow Attacks22: Text Characterization23: Implementation and Practical Approach of Cryptanalysis Methods
Functional Programming in R 4
Master functions and discover how to write functional programs in R. In this book, updated for R 4, you'll learn to make your functions pure by avoiding side effects, write functions that manipulate other functions, and construct complex functions using simpler functions as building blocks.In Functional Programming in R 4, you’ll see how to replace loops, which can have side-effects, with recursive functions that can more easily avoid them. In addition, the book covers why you shouldn't use recursion when loops are more efficient and how you can get the best of both worlds.Functional programming is a style of programming, like object-oriented programming, but one that focuses on data transformations and calculations rather than objects and state. Where in object-oriented programming you model your programs by describing which states an object can be in and how methods will reveal or modify that state, in functional programming you model programs by describing how functions translate input data to output data. Functions themselves are considered to be data you can manipulate and much of the strength of functional programming comes from manipulating functions; that is, building more complex functions by combining simpler functions.WHAT YOU'LL LEARN* Write functions in R 4, including infix operators and replacement functions* Create higher order functions* Pass functions to other functions and start using functions as data you can manipulate* Use Filer, Map and Reduce functions to express the intent behind code clearly and safely* Build new functions from existing functions without necessarily writing any new functions, using point-free programming* Create functions that carry data along with themWHO THIS BOOK IS FORThose with at least some experience with programming in R.THOMAS MAILUND is Senior Software Architect at Kvantify, a quantum computing company from Denmark. He has a background in math and computer science. He now works on developing algorithms for computational problems applicable for quantum computing. He previously worked at the Bioinformatics Research Centre, Aarhus University, on genetics and evolutionary studies, particularly comparative genomics, speciation, and gene flow between emerging species. He has published Beginning Data Science in R with Apress, as well as other books out there.1. Functions in R2. Pure Functional Programming3. Scope and Closures4. Higher-order Functions5. Filer, Map, and Reduce6. Point-free Programming Afterword
C von A bis Z (5. Auflg.)
Das umfassende Handbuch. Hochdosiertes C-Wissen in 5. Auflage.Der beliebte Klassiker unter den Programmierbüchern neu aufgelegt! Aktuell zum Standard C23, von einem Autorenteam aus Praxis und Lehre. Lassen Sie sich umfassend einführen oder nutzen Sie das Buch als Nachschlagewerk. Von den Grundlagen über die dynamische Speicherverwaltung bis zur plattformübergreifenden Entwicklung. Randvoll mit hilfreichen Übungen, Beispielen und Praxistipps – C-Wissen pur!C von A bis ZLernen Sie C:C vereint die Eigenschaften Maschinennähe und Portabilität. Seit Jahren ist sie damit eine Programmiersprache erster Wahl. Hier erhalten Sie einen ausführlichen Einstieg.Einsteigen, programmieren, nachschlagen:Zu jedem C-Thema finden Sie ausführliche Erklärungen. Sowohl Einsteiger als auch Profis kommen voll auf ihre Kosten.Datentypen, Operatoren, Funktionen... :... Arrays, Pointer, dynamische Speicherverwaltung und Zeitroutinen bleiben kein Geheimnis. Praktische Beispiele veranschaulichen das Gelernte.Vollständiges C-Wissen:Threadprogrammierung, Sicherheit, Netzwerkprogrammierung und Datenbanken – auch anspruchsvolle Themen lässt dieses Buch nicht aus.Aus dem InhaltDatenstrukturenAlgorithmenSicherheitDynamische SpeicherverwaltungNetzwerkprogrammierungCross-Plattform-EntwicklungParallele ProgrammierungAuf Datenbanken zugreifenÜber den Autor:Jürgen Wolf ist Programmierer, Digitalfotograf und Autor aus Leidenschaft. C/C++, Linux und die Bildbearbeitung mit Photoshop Elements und GIMP sind seine Themen.René Krooß ist Diplom-Informatiker, begeisterter Programmierer und Experte für Prozessorstrukturen, Betriebssysteme, Hardware-Programmierung und Algorithmen.Leseprobe (PDF-Link)
C von A bis Z
Unser beliebter Klassiker in fünfter Auflage. Zum aktuellen Standard C23 und mit einem Autorenteam aus Praxis und Lehre. Lassen Sie sich umfassend einführen oder nutzen Sie das Buch als Nachschlagewerk. Von den Grundlagen über die dynamische Speicherverwaltung bis zur plattformübergreifenden Entwicklung. Randvoll mit hilfreichen Beispielen und Praxistipps – C-Wissen pur! Aus dem Inhalt: DatenstrukturenAlgorithmenSicherheitDynamische SpeicherverwaltungNetzwerkprogrammierungCross-Plattform-EntwicklungParallele ProgrammierungAuf Datenbanken zugreifenCodebeispiele und Praxistipps Vorwort ... 25 1. Einstieg in C ... 27 1.1 ... Übersicht zu C ... 27 1.2 ... Der ANSI-C-Standard ... 29 1.3 ... Der POSIX-Standard ... 32 1.4 ... Vor- und Nachteile der Programmiersprache C ... 33 1.5 ... C in diesem Buch ... 34 1.6 ... Was benötigen Sie für C? ... 35 1.7 ... Welcher Compiler und welches Betriebssystem? ... 37 1.8 ... Unterschiede zwischen Windows und Linux ... 38 1.9 ... Eine Programmierumgebung einrichten am Beispiel von Pelles C 8.00 für Windows ... 38 1.10 ... Eine Programmierumgebung einrichten - Nano/GCC für Linux ... 47 2. Eine günstige Programmierplattform - der Raspberry Pi ... 49 2.1 ... Was genau ist der Raspberry Pi? ... 50 2.2 ... Installation eines Linux-Betriebssystems am Beispiel von Raspberry Pi OS ... 54 2.3 ... Die Konfiguration des Raspberry Pi im Detail ... 63 2.4 ... Das Tool raspi-config ... 63 3. Das erste Programm ... 69 3.1 ... Was leistet der Editor? ... 70 3.2 ... Was leistet der Compiler? ... 70 3.3 ... Was sind Include-Dateien, und wozu benötigt man sie? ... 71 3.4 ... Das erste Programm - die Ausgabe eines Textes in der Konsole ... 71 3.5 ... Das Hallo-Welt-Programm im Detail ... 72 3.6 ... Wie kompiliert man ein Programm und führt es anschließend aus? ... 75 4. Grundlagen ... 77 4.1 ... Symbole ... 77 4.2 ... Zeichensätze ... 84 4.3 ... Strings ... 89 4.4 ... Das Einführungsbeispiel mit Strings ... 90 5. Basisdatentypen ... 91 5.1 ... Was ist ein Byte, und wie werden Zahlen in C gespeichert? ... 91 5.2 ... Was ist eine Variable, und was ist ein Variablentyp? ... 92 5.3 ... Was ist ein Operand? ... 93 5.4 ... Was ist ein Parameter? ... 93 5.5 ... Wie speichert ein Prozessor Variablen, Parameter und Operanden? ... 93 5.6 ... Was sind Speicheradressen, und warum sind sie wichtig für C? ... 93 5.7 ... Deklaration und Definition von Variablen ... 94 5.8 ... Array-Datentypen (Datenfelder) ... 96 5.9 ... Standard-Datentypen ... 96 5.10 ... Ganzzahlige Typen mit vorgegebener Breite - ... 103 5.11 ... Die Gleitpunkttypen »float« und »double« ... 107 5.12 ... Komplexe Gleitpunkttypen - ... 115 5.13 ... Der Datentyp »char«, Standardgröße 1 Byte ... 117 5.14 ... Nationale contra internationale Zeichensätze ... 123 5.15 ... Boolesche Werte - ... 127 5.16 ... Der Unterschied zwischen vorzeichenlosen und vorzeichenbehafteten Zahlen ... 128 5.17 ... Limits für Ganzzahl- und Gleitpunktdatentypen ... 130 5.18 ... Der Typ »void« ... 134 5.19 ... Numerische Konstanten ... 134 5.20 ... Umwandlungsvorgaben für formatierte Ein-/Ausgabe ... 136 6. Formatierte Ein-/Ausgabe mit »scanf()« und »printf()« ... 145 6.1 ... Formatierte Eingabe mit »scanf()« ... 145 6.2 ... Formatierte Ausgabe mit »printf()« ... 155 7. Operatoren ... 159 7.1 ... Was sind Operatoren, und wozu benötigt man sie in C? ... 159 7.2 ... Arithmetische Operatoren ... 160 7.3 ... Erweiterte Darstellung arithmetischer Operatoren ... 164 7.4 ... Inkrement- und Dekrement-Operatoren ... 165 7.5 ... Bit-Operatoren ... 167 7.6 ... Makros für logische Operatoren und Bit-Operatoren - ... 175 7.7 ... Der »sizeof«-Operator ... 176 8. Typumwandlung ... 179 8.1 ... Automatische implizite Datentypumwandlung durch den CCompiler ... 179 8.2 ... Wozu benötigt man das benutzerdefinierte explizite Typecasting? ... 184 8.3 ... Explizite Datentypumwandlung mit Typecasting an Beispielen ... 184 9. Kontrollstrukturen ... 187 9.1 ... Verzweigungen mit der »if«-Bedingung ... 188 9.2 ... Die Verzweigung mit »else if« ... 192 9.3 ... Die Verzweigung mit »else« ... 194 9.4 ... Der !-Operator (logischer NOT-Operator) ... 198 9.5 ... Logisches UND (&&) - logisches ODER (||) ... 200 9.6 ... Der Bedingungsoperator »?:« ... 203 9.7 ... Fallunterscheidung: die »switch«-Verzweigung ... 205 9.8 ... Die »while«-Schleife ... 210 9.9 ... Die »do while«-Schleife ... 214 9.10 ... Die »for«-Schleife ... 219 9.11 ... Kontrollierter Ausstieg aus Schleifen mit »break« ... 227 9.12 ... Direkte Sprünge mit »goto« ... 229 9.13 ... Einige Anmerkungen zum Notationsstil, ehe Sie weiterlesen ... 229 9.14 ... Einige Anmerkungen zu einem guten Programmierstil ... 230 10. Funktionen ... 233 10.1 ... Was sind Funktionen? ... 233 10.2 ... Wozu dienen Funktionen? ... 234 10.3 ... Definition von Funktionen ... 234 10.4 ... Funktionsaufruf ... 235 10.5 ... Funktionsdeklaration ... 237 10.6 ... Lokale Variablen ... 239 10.7 ... Globale Variablen ... 241 10.8 ... Statische Variablen ... 243 10.9 ... Schlüsselwörter für Variablen - Speicherklassen ... 244 10.10 ... Typ-Qualifizierer ... 245 10.11 ... Geltungsbereich von Variablen ... 246 10.12 ... Speicherklassen-Spezifizierer für Funktionen ... 248 10.13 ... Datenaustausch zwischen Funktionen ... 249 10.14 ... Wertübergabe an Funktionen (Call-by-Value) ... 250 10.15 ... Der Rückgabewert von Funktionen ... 254 10.16 ... Die Hauptfunktion »main()« ... 256 10.17 ... Was bedeutet der Rückgabewert beim Beenden eines Programms? ... 258 10.18 ... Funktionen der Laufzeitbibliothek ... 262 10.19 ... Getrenntes Kompilieren von Quelldateien ... 263 10.20 ... Rekursive Funktionen (Rekursion) ... 265 10.21 ... »inline«-Funktionen ... 278 11. Präprozessor-Direktiven ... 281 11.1 ... Mit »#include« Dateien einbinden ... 282 11.2 ... Wichtige vordefinierte Headerdateien für C ... 283 11.3 ... Makros und Konstanten - »#define« ... 285 11.4 ... Bedingte Kompilierung mit »#ifdef« ... 294 11.5 ... Vordefinierte Präprozessor-Direktiven (ANSI C) ... 300 11.6 ... Einen Makroparameter durch einen String ersetzen ... 302 11.7 ... »#undef« - Makronamen wieder aufheben ... 304 11.8 ... Fehlermeldungen ausgeben mit »#error« ... 304 11.9 ... »#pragma« (gilt nur für Windows) ... 306 12. Arrays ... 307 12.1 ... Arrays deklarieren ... 308 12.2 ... Initialisierung und Zugriff auf Arrays ... 309 12.3 ... Arrays vergleichen ... 316 12.4 ... Anzahl der Elemente eines Arrays ermitteln ... 318 12.5 ... Übergabe von Arrays an Funktionen ... 319 12.6 ... Arrays aus Funktionen zurückgeben ... 322 12.7 ... Programmbeispiel zu Arrays ... 323 12.8 ... Array-Werte über die Tastatur einlesen ... 327 12.9 ... Mehrdimensionale Arrays ... 328 12.10 ... Arrays in eine Tabellenkalkulation einlesen (CSV-Dateien) ... 343 12.11 ... Strings/Zeichenketten (»char«-Array) ... 345 12.12 ... Einlesen von Strings ... 352 12.13 ... Die Standard-Bibliothek ... 355 13. Zeiger (Pointer) ... 369 13.1 ... Der Unterschied zwischen einer normalen Variablen und einem Zeiger ... 369 13.2 ... Zeiger deklarieren ... 370 13.3 ... Zeiger initialisieren ... 371 13.4 ... Zeigerarithmetik ... 384 13.5 ... Zeiger, die auf andere Zeiger verweisen ... 385 13.6 ... Typensicherung bei der Dereferenzierung ... 388 13.7 ... Zeiger als Funktionsparameter (Call-by-Reference) ... 389 13.8 ... Array und Zeiger ... 396 13.9 ... Zeiger auf Strings ... 403 13.10 ... Zeiger auf Zeiger und Stringtabellen ... 405 13.11 ... Zeiger auf Funktionen ... 415 13.12 ... void-Zeiger ... 420 13.13 ... Äquivalenz zwischen Zeigern und Arrays ... 424 13.14 ... Der »restrict«-Zeiger ... 426 14. Kommandozeilenargumente ... 429 14.1 ... Argumente an die Hauptfunktion übergeben ... 430 14.2 ... Argumente aus der Kommandozeile auswerten ... 435 15. Dynamische Speicherverwaltung ... 441 15.1 ... Das Speicherkonzept ... 442 15.2 ... Speicherallokation mit »malloc()« ... 444 15.3 ... Das NULL-Mysterium ... 447 15.4 ... Speicherreservierung und ihre Probleme ... 451 15.5 ... »free()« - Speicher wieder freigeben ... 452 15.6 ... Dynamische Arrays ... 460 15.7 ... Speicher dynamisch reservieren mit »realloc()« und »calloc()« ... 464 15.8 ... Speicher vom Stack anfordern mit »alloca()« (nicht ANSI C) ... 468 15.9 ... Ergänzende Anmerkungen zu »free()« ... 468 15.10 ... Zweidimensionale dynamische Arrays ... 469 15.11 ... Was muss man tun, wenn die Speicherallokation fehlschlägt? ... 472 16. Strukturen ... 479 16.1 ... Benutzerdefinierte Typendefinitionen mit »typedef« ... 479 16.2 ... Was ist ein strukturierter Datentyp, und wozu benötigt man ihn in C? ... 479 16.3 ... Strukturen mit »typedef struct« deklarieren ... 480 16.4 ... Initialisierung und Zugriff auf Strukturen ... 482 16.5 ... Strukturen als Wertübergabe an eine Funktion benutzen ... 491 16.6 ... Strukturen als Rückgabewert einer Funktion benutzen ... 493 16.7 ... Strukturen miteinander vergleichen ... 495 16.8 ... Arrays von Strukturen erstellen ... 497 16.9 ... Strukturen in Strukturen (Nested Structures) ... 504 16.10 ... Weitere spezielle Datentypen ... 514 16.11 ... Attribute von Strukturen verändern ... 524 16.12 ... Bitfelder ... 528 16.13 ... Das »offsetof«-Makro ... 535 17. Ein-/Ausgabe-Funktionen ... 537 17.1 ... Was ist eine Datei aus Sicht der Programmiersprache C? ... 537 17.2 ... Formatierte und unformatierte Ein-/Ausgabe ... 538 17.3 ... Höhere Ein-/Ausgabe-Funktionen mit ... 538 17.4 ... Streams (Ein-/Ausgabe-Datenströme) ... 566 17.5 ... Spezielle Ein-/Ausgabe-Funktionen für Streams ... 595 17.6 ... Low-Level-Datei-I/O-Funktionen (nicht ANSI C) ... 641 18. Attribute von Dateien und das Arbeiten mit Verzeichnissen (nicht ANSI C) ... 673 18.1 ... Die Attribute einer Datei mit »stat()« ermitteln ... 673 18.2 ... Prüfen des Zugriffsrechts mit »access()« ... 691 18.3 ... Verzeichnisfunktionen ... 693 19. Arbeiten mit variabel langen Argumentlisten - ... 705 19.1 ... Was ist eine Ellipse, und wie werden mit ihr Parameter übergeben? ... 705 19.2 ... Wie kann man mit die Parameterliste abfragen? ... 706 19.3 ... Makros in - »va_list«, »va_arg«, »va_start« und »va_end« ... 706 19.4 ... Die Argumentliste am Anfang oder Ende kennzeichnen ... 707 19.5 ... »vprintf()«, »vsprintf()«, »vfsprintf()« und »vsnsprintf()« ... 712 19.6 ... Variadic Makros - __VA_ARGS__ ... 716 20. Zeitroutinen ... 721 20.1 ... Die Headerdatei ... 721 20.2 ... Laufzeitmessung (Profiling) ... 734 20.3 ... Besonderheiten beim Raspberry Pi ... 735 21. Weitere Headerdateien und ihre Funktionen (ANSI C) ... 737 21.1 ... Testmöglichkeiten und Fehlersuche - ... 738 21.2 ... Zeichenklassifizierung und Umwandlung - ... 739 21.3 ... Mathematische Funktionen - , und ... 744 21.4 ... Einige nützliche Funktionen in ... 758 21.5 ... Länderspezifische Eigenheiten - ... 778 21.6 ... Nichtlokale Sprünge - ... 782 21.7 ... Einige nützliche Funktionen in ... 786 21.8 ... Die »mem...«-Funktionen zur Speichermanipulation - ... 791 22. Dynamische Datenstrukturen ... 797 22.1 ... Lineare Listen (einfach verkettete Listen) ... 797 22.2 ... Doppelt verkettete Listen ... 832 22.3 ... Stacks nach dem LIFO-(Last-in-first-out-)Prinzip ... 849 22.4 ... Queues nach dem FIFO-Prinzip ... 870 22.5 ... Dynamisches Array mit flexiblen Elementen ... 879 23. Algorithmen ... 881 23.1 ... Was sind Algorithmen? ... 881 23.2 ... Einige einfache Beispiele für Algorithmen ... 883 23.3 ... Kryptografische Algorithmen ... 969 24. MySQL und C ... 1027 24.1 ... Aufbau eines Datenbanksystems ... 1027 24.2 ... MySQL installieren ... 1033 24.3 ... Crashkurs SQL ... 1037 24.4 ... Die MySQL-C-API ... 1052 24.5 ... MySQL und C mit CGI ... 1083 24.6 ... Funktionsübersicht ... 1101 24.7 ... Datentypenübersicht der C-API ... 1105 24.8 ... Weiterführende Literatur zu Datenbanken ... 1105 25. Netzwerkprogrammierung und Cross-Plattform-Entwicklung ... 1107 25.1 ... Begriffe zur Netzwerktechnik ... 1107 25.2 ... Was sind Sockets und wie legt man sie in C an? ... 1114 25.3 ... Headerdateien für die Netzwerkprogrammierung ... 1115 25.4 ... Das Client-Server-Prinzip ... 1118 25.5 ... Erstellen einer Client-Anwendung ... 1120 25.6 ... Erstellen einer Server-Anwendung ... 1130 25.7 ... Ein einfacher TCP-Echo-Server ... 1135 25.8 ... Cross-Plattform-Development ... 1143 25.9 ... Weitere Anmerkungen zur Netzwerkprogrammierung und Literaturempfehlungen ... 1166 26. Paralleles Rechnen ... 1173 26.1 ... Was ist Multitasking und wie wird es realisiert? ... 1173 26.2 ... Braucht man spezielle Prozessoren für Multitasking? ... 1174 26.3 ... Braucht man spezielle Multitasking-Betriebssysteme? ... 1177 26.4 ... Programmiertechniken der Parallelisierung ... 1177 26.5 ... Vom Prozess zum Thread ... 1179 26.6 ... Mit POSIX-Threads programmieren ... 1182 27. Sicheres Programmieren ... 1193 27.1 ... Buffer Overflow (Speicherüberlauf) ... 1194 27.2 ... Warum sind Buffer Overflows kritisch für die Sicherheit? ... 1195 27.3 ... Wie man Buffer Overflows vermeidet ... 1202 27.4 ... Gegenmaßnahmen zum Buffer Overflow, wenn das Programm fertig ist ... 1205 27.5 ... Stack Overflow (Stapelüberlauf) ... 1210 27.6 ... Was verursacht Stack Overflows? ... 1210 27.7 ... Warum ist ein Stapelüberlauf kritisch für die Sicherheit? ... 1210 27.8 ... Wie man Stack Overflows verhindert ... 1211 27.9 ... Memory Leaks (Speicherlecks) ... 1212 27.10 ... Bibliotheken und Tools zu Memory Leaks ... 1216 27.11 ... Tipps zu Sicherheitsproblemen ... 1217 28. Wie geht's jetzt weiter? ... 1219 28.1 ... GUI-Programmierung - grafische Oberflächen ... 1220 28.2 ... Grafikprogrammierung unter Windows ... 1223 Anhang ... 1241 A ... Operatoren ... 1241 Index ... 1247
Designing Applications for Google Cloud Platform
Learn how to use Google Cloud Platform (GCP) and its services to design, build, and deploy applications. This book includes best practices, practical examples, and code snippets written in Java, making it a key resource for developers seeking hands-on experience with GCP.You'll begin with an introduction to GCP services and a review of what Java offers while developing applications for GCP. Next, you'll be walked through how to set up Google App Engine, Google Storage Cloud, and Google Cloud SQL with use cases, as well as application development and deployment. As the book progresses, you'll be exposed to advanced GCP services, deploying and scaling applications on GCP services, and troubleshooting and optimization of Java applications on GCP. The book uses real-world examples to help you understand how GCP services can solve everyday problems.After completing this book, you will understand Google Cloud Platform and its services, and will have the knowledge needed to design, build, and deploy your own applications on GCP using Java.WHAT YOU'LL LEARN* Create a GCP project, configure authentication and authorization, and deploy a sample application.* Use GCP services to solve common problems and apply them to real-world scenarios* Implement GCP services such as Datastore, SQL, and Spanner* Leverage GCP tools such as the SDK and Cloud ShellWHO THIS BOOK IS FORSoftware developers, Cloud architects, and managers looking to design and build applications for Google Cloud Platform. This book is for those with software development experience who are familiar with Java programming. It is also suitable for those new to GCP who have a basic understanding of cloud computing concepts.ASHUTOSH SHASHI is a TOGAF 9 certified enterprise architect, a seasoned software engineer, and a cloud architect with over 18 years of experience in the industry. He has worked on multiple projects using various technologies and platforms, from small startups to large enterprise systems. He has helped many organizations design and build robust and scalable applications on GCP. Apart from GCP, he has extensive experience and expertise in AWS and Azure cloud platforms. Ashutosh lives in Duluth, Georgia, US. In his free time, he enjoys hiking and spending time with his family. He also loves to travel and explore different cultures.Chapter 1: Introduction to Google Cloud Platform.- Chapter 2: Setting up the Development Environment.- Chapter 3: Google App Engine.- Chapter 4: Data Storage in Google Cloud.- 5: Google Cloud SQL.- Chapter 6: Advanced GCP Services.- Chapter 7: Deployment and Scaling.- Chapter 8: Troubleshooting and Optimization.- Chapter 9: Conclusion.
Pro Jakarta EE 10
Welcome to your in-depth professional guide to the open source Eclipse Jakarta EE 10 platform. This book will help you build more complex native enterprise Java-based cloud and other applications that can run in corporate and other mission-critical settings. The majority of the key Jakarta EE 10 APIs or features are dissected in this book, including JSF, JSP, JPA, CDI, REST, Microprofiles, WebSockets, and many more. Along the way, various open source Apache, Eclipse, and other projects are integrated and used for more complete workflows and treatment in general.Jakarta EE 10 comes with a significant number of improvements over Java EE 9 technologies and adopts a series of new technologies. This book starts out with a concise development procedure proposal and shows NetBeans as an alternative IDE to Eclipse. It also talks about versioning, software repositories, and continuous integration techniques. The web tier of enterprise application architectures is covered, including state-of-the-art techniques such as web sockets and front end (JavaScript) related frameworks.The book presents a survey of architecture-related advanced topics, including micro profiles. In a supporting technologies chapter, JSON and XML processing methods are revisited and deepened, and the usage of scripting engines is introduced.A resources chapter discusses enterprise resource integration, such as resource adapters and Hibernate as a mapper between the SQL and the Java world. Also covered is the usage of no-SQL databases. A security chapter shows advanced security enhancement techniques for use of Jakarta EE in corporate environments. The last chapter talks about advanced logging and monitoring techniques, serving both developers and operations staff.WHAT YOU WILL LEARN* Build complex Jakarta EE applications that run in corporate or other enterprise settings* Create a professional development workflow using Jakarta EE* Build more advanced web development applications* Work with more advanced supporting technologies to increase application maturity and stability in a corporate environment * Do enterprise resource integration, including custom resource adapters* Utilize security enhancements of enterprise-level Jakarta EE applications* Leverage techniques to monitor and log in a corporate environment, including memory usage and performance troubleshootingWHO THIS BOOK IS FORExperienced Java programmers and web developers, especially those with some prior experience with the Java EE platformPETER SPÄTH graduated in 2002 as a physicist and soon after became an IT consultant, mainly for Java-related projects. In 2016 he decided to concentrate on writing books, with his main focus set on software development. He has written two books on graphics and sound processing and two books on Android and Kotlin programming. His new book addresses Jakarta EE developers who want to develop enterprise-level Java applications using Java 8.1. About MVC - Model, View, Controller* History of MVC* MVC in Web Applications* MVC for Java* Finally, Java MVC (JSR-371)* Why MVC* Where is Hello World?2. Prerequisite - Jakarta EE / Java EE* The Nature of Java for Enterprise Applications* Glassfish, a Free Java Server* Using a Preinstalled Java Server* Learning Java for Enterprise Applications* RESTful Services3. Development Workflow* Using Gradle as a Build Framework* Using Eclipse as an IDE* More About Gradle* Developing Using the Console* Installing MVC4. Hello World for Java MVC* Starting The Hello World Project* The Hello World Model* The Hello World View* The Hello World Controller* Using Gradle to Build Hello World* Starting a Jakarta EE Server* Deploying and Testing Hello World5. Start Working With Java MVC* Handling User Input From Forms* Exception Handling in Java MVC* Non-String Post Parameters6. In-Depth Java MVC* The Model* The View: JSPs* The View: Facelets* The Controller7. In-Depth Java MVC - Part II* Injectable Context* Handling State* Dealing With Page Fragments* Observers* Accessing the Context* Configuration8. Internationalization* Formatting of Data in the View* Localized Messages* Localized Data Conversion9. Connecting Java MVC to a Database* Using Plain JDBC* Using JPA10. Java MVC and EJBs* What are EJBs* Starting an EAR Project* Defining EJBs* Referring to EJBs from Java MVC11. Logging Java MVC Applications* Using Java Standard Logging* Using Log4j2* Using SLF4J12. A Java MVC Example Application* The BooKlubb Member Administration* The BooKlubb Model* The BooKlubb Controller* The BooKlubb View* Deploying and Testing BooKlubb(13. Debugging Java MVC Applications* Debugging From Eclipse* Starting a Debugging Session* Breakpoints14. Security in Java MVC* Standard Security Means* Built-In Additional Security Means)
COBOL - Altsysteme warten und erweitern
Altsysteme warten und erweitern. 416 Seiten als ePub oder PDF erhältlich.Dieses Buch richtet sich an erfahrene Entwickler objektorientierter Sprachen wie C++ oder Java. Es vermittelt die Funktionsweise der Programmiersprache COBOL, um die in zahlreichen Implementierungen auf unterschiedlichen Plattformen immer noch produktiv laufenden COBOL-Programme zu verstehen, zu warten und bei Bedarf mit zusätzlichen Funktionalitäten zu erweitern. Dafür bietet es Ihnen sowohl eine grundlegende Einführung in die Programmierung mit COBOL als auch eine thematisch gegliederte Referenz der Befehle mit praktischen Beispielen.Da reine COBOL-Programme in der Praxis selten zu finden sind, geht ein weiterführendes Kapitel speziell auf die Anbindung an relationale Datenbanken und hierarchische Datenbanksysteme wie IMS ein. Auch COBOL auf Host-Systemen und die Besonderheiten der CICS-Programmierung werden thematisiert.Mit diesem praktischen Handbuch sind Sie in der Lage, COBOL-Programme in Produktivumgebungen selbstständig zu warten und weiterzuentwickeln.Aus dem Inhalt:Grundlegende SprachelementeDatenfelder, Daten-strukturen und DatensätzeOperationen und KontrollstrukturenTabellenverarbeitungInterne und externe UnterprogrammeSequenzielle und index-sequenzielle DateienDatenbankanbindung (SQL, IMS)Host-Systeme und CISLeseprobe (PDF-Link)Kostenlose Downloads zum Buch (zip-File vom mitp-Server)
App-Entwicklung mit Flutter für Dummies
Wie Sie mit dem Flutter-Framework Android- und iOS-Apps mit nur einer Code Base und ohne Qualitätsverlust entwickeln, das erfahren Sie hier! Nach einer Einführung in die Programmiersprache Dart lernen Sie das User Interface Design, die Anbindung an Schnittstellen oder Datenbanken, State-Management und Routing in der App kennen, bevor Sie die App auf Fehler testen und in den Stores von Google und Apple veröffentlichen. Alle Schritte vollziehen Sie im Buch an einer durchgängigen Beispiel-App nach. Cross-Plattform-App-Entwicklung? Mit diesem Buch echt einfach! Mira Jago ist Quereinsteigerin in die Programmierung, Tech-Mentorin für Startups und Unternehmerin mit eigener Flutter-Agentur in Hannover. Außerdem gibt sie Kurse zu Flutter. Die Nachfrage ist so hoch, dass sie sich am liebsten klonen würde.Verena Zaiser baute mit 11 Jahren ihre erste eigene Website. Schon in der Schulzeit programmierte sie für Kunden. Sie studierte Informatik und ist heute freiberufliche Mobile-App-Entwicklerin in Stuttgart - natürlich immer mit Flutter.
Spektrum Kompakt - Künstliche Gespräche
Bis vor wenigen Jahren waren Unterhaltungen mit Maschinen mühselig: Häufig musste man das richtige Schlagwort treffen, um verstanden zu werden – und selbst dann war der Erfolg nicht garantiert. Ganz andere Erfahrungen macht man hingegen mit dem im November 2022 erschienenen KI-Chat-bot »ChatGPT«. Nur allzu schnell kann man vergessen, dass es sich dabei um einen Algorithmus handelt. Auch wenn das System gelegentlich Fehler macht, ertappe ich mich häufg dabei, dass ein Gespräch in mir Emotionen wie Dankbarkeit (wenn ChatGPT mir weiterhelfen konnte) oder Ärger (wenn die KI mich doch missversteht) hervorruft. Aber wie viel können wir von den künstlichen Gesprächspartnern erwarten? In dieser Ausgabe ergründen wir die Funktionsweise der neuen Technologien und zeigen ihre Potenziale und ihre Grenzen auf. Dieses Editorial habe ich übrigens selbst geschrieben – keine KI. Viel Spaß bei der Lektüre wünscht Ihnen Manon Bischoff, Redaktion Spektrum der Wissenschaft
Visual Studio Code Distilled
Use Visual Studio Code to write and debug code quickly and efficiently on any platform, for any device, using any programming language, and on the operating system of your choice.Visual Studio Code is an open source and cross-platform development tool that focuses on code editing across a variety of development scenarios, including web, mobile, and cloud development. This third edition has been updated to match the latest releases of the environment. Additional updates relate to .NET 7 and explain how to consume AI services from code you write in Visual Studio Code. This new edition is also refreshed with the latest updates, such as enhanced merge editor, creating extensions, support for the Julia language, and much more.The book teaches you how to be immediately productive with Visual Studio Code, from the basics to some of the more complex topics. You will learn how to work on individual code files, complete projects, and come away with an understanding of advanced code-editing features that will help you focus on productivity, and source code collaboration with Git.WHAT YOU WILL LEARN* Get started with practical guidance on Visual Studio Code, including expansive guidance on writing apps with C# and Python* Understand how to edit individual files and how to work with folders by working on the latest workspace trust and multi-root workspaces* Debug code on multiple platforms through real-world guidance, such as working under corporate networks* Package code into Docker containers and deploy these to Azure* Acquire valuable tips, tricks, and suggestions from hard-earned, real-world experience to be more productiveWHO THIS BOOK IS FORAll developers (including JavaScript, Java, NodeJS), not just those with a Microsoft background, who will benefit from learning and using VS code as a cross-platform and cross-language toolALESSANDRO DEL SOLE is Senior Software Engineer for a healthcare company, building mobile apps for doctors and dialysis patients. He has been in the software industry for more than 20 years, focusing on Microsoft technologies such as .NET, C#, Visual Studio, and Xamarin. He has been a trainer, consultant, and a Microsoft MVP since 2008 and is the author of many technical books. He is a Xamarin Certified Mobile Developer, Microsoft Certified Professional, and a Microsoft Programming Specialist in C#.Chapter 1: Introducing Visual Studio CodeChapter Goal: this chapter will introduce Visual Studio Code as a development tool from Microsoft, discussing its open source and cross-platform nature, its goals and most typical usage scenarios, explaining how it works on Windows, macOS and Linux distributions.Chapter 2: Getting to know the WorkspaceChapter Goal: this chapter will explain the VS Code workspace, its menus, commands, toolbars, shortcuts and areas in the user interface the developer must know to get familiar with the environment.Chapter 3: Language support and code editing featuresChapter Goal: this chapter will explain what languages are supported out of the box and which are instead supported through extensibility and, more important, it will cover all the powerful code editing features that represent the core of this tool. This is definitely the most important chapter. This is updated according to the latest releases (e.g. support for Julia language).Chapter 4: Working with files and foldersChapter Goal: this chapter explains how to edit individual files and how to work with folders that contain multiple files (or projects) in a structured way, making the natural step forward after learning about code editing features. This is updated according to the releases of the latest 15 months (e.g. workspace trust, multi-root workspaces).Chapter 5: Customizing VS CodeChapter Goal: this chapter will talk about customizing preferences in the VS Code environment, such as themes, keyboard shortcuts, the code editor, network preferences and much more. This is updated according to the releases of the latest 15 monthsChapter 6: Managing extensionsChapter Goal: this chapter will explain how to extend Visual Studio Code by installing extensions such as additional languages, debuggers, code snippets and team collaboration tools. It will also provide a list of must-have extensions and it will explain how to customize extension settings. As a new topic, guidance on how to create extensions will be provided (this is also the reason why this chapter has been renamed).Chapter 7: Source control with GitChapter Goal: this chapter will discuss source control with Git, which is about how people in the development team can collaborate over the code. Common features such as committing changes, merging and branching will be discussed. As a bonus, this chapter will also discuss how to leverage the integrated Git support against Microsoft Azure DevOps and GitHub via an extension. This is updated according to the releases of the latest 15 months (e.g. enhanced merge editor)Chapter 8: Automating tasksChapter Goal: this chapter will discuss how to execute external tools and commands from VS Code (such as compilers), explaining how this goes beyond being a simple code editor. This is updated according to the releases of the latest 15 monthsChapter 9: Building and debugging codeChapter Goal: this is another key chapter, as it explains how powerful VS Code is as a development tool and not as a simple code editor, due to its capability of running and debugging code with integrated debuggers for .NET and Node.JS and with debuggers that can be installed as extensions. Examples of running and debugging code will be provided for .NET (C#), Node.JS (Java) and Docker. This has been renamed to appear less specific, but it will be updated to target .NET 7.Chapter 10: Writing applications with PythonChapter Goal: this chapter explains how VS Code can be used to build apps with the popular Python language, leveraging all the enhanced editing features described in Chapter 3 and the task automation features described in Chapter 8. It comes with fully working code examples.Chapter 11: Building applications for the CloudChapter Goal: this chapter explains how to set up VS Code to work with Microsoft Azure, installing the appropriate extensions and with practical examples about writing and deploying Azure functions. As a new topic, this chapter also describes how to package code into Docker containers and deploy these to Azure.Chapter 12: Consuming AI Services with VS CodeChapter Goal: this is a brand new chapter that wants to address a trending topic of these days: consuming AI services. In this chapter, code examples will be provided about consuming some of the AI services offered by MS Azure (e.g. Computer Vision API).
Fokus!
Du bist Product Owner. Die Aufgabe könnte kaum komplexer sein: Die Qualität eures Produkts hängt von deiner Arbeit ebenso ab wie ein wertschätzendes Miteinander. Auch Infrastruktur, Stakeholder und Terminpläne brauchen deine Aufmerksamkeit. Ihr liefert häufig und du musst stets wissen, wie es um den Fortschritt bestellt ist. Dieses Handbuch hilft dir, die Rolle in allen Facetten gut auszufüllen. Es bietet einen Überblick über Prinzipien, Aufgaben und Artefakte in Scrum, lehrt Grundlagen gelungener Kommunikation und eine Fülle ganz konkreter Vorgehensweisen. Du profitierst von der vielseitigen Erfahrung der Autor*innen im Coaching und in der Produktentwicklung. Lerne pfiffige Abläufe und robuste Methoden für verschiedene Projektsituationen kennen. Für den Einstieg und als Begleiter in der Praxis. Aus dem Inhalt: Weshalb Unternehmen agil arbeitenAufgaben in der Product-Owner-RolleMeetings und Retrospektiven gestaltenProduktstrategie und ZieleStory Mapping und ReleaseplanungKommunikation: POs als VermittlerGekonnt priorisierenDesign Thinking: Nutzer*innen beobachten und verstehenDatengetriebene ProduktentwicklungRisiken erkennenAgilität für ganze Unternehmen Vorwort ... 17 1. Gesucht: Product Owner (m/w/d) ... 19 1.1 ... Scrum - eine agile Allzweckmethode? ... 20 1.2 ... Product Owner*in - was ist das eigentlich? ... 25 1.3 ... Fünf Dinge, um die du dich wirklich kümmern musst ... 31 1.4 ... Was ist NICHT dein Job?! ... 40 2. Alles im Blick: die Produktübersicht ... 43 2.1 ... Viele verschiedene Perspektiven einbeziehen ... 44 2.2 ... Alles auf einem Blatt ... 45 2.3 ... Deine Vision zählt ... 48 2.4 ... Die Bedürfnisse der Kundschaft kennenlernen ... 50 2.5 ... Die Produktstruktur entwickeln ... 52 2.6 ... Der Return muss stimmen: Nutzen und wirtschaftliche Anreize ... 58 2.7 ... Unwägbarkeiten und Risiken konstruktiv wenden ... 60 2.8 ... Rechtliche Rahmenbedingungen einbeziehen ... 65 2.9 ... Die Abhängigkeiten ermitteln ... 66 2.10 ... Die Kommunikation mit den Stakeholder*innen aufbauen ... 70 2.11 ... Experimentiere dich an den Auftrag ran ... 73 2.12 ... Deine persönliche Überblicksroutine ... 75 3. Das Fundament: Projektmanagement ... 77 3.1 ... Meilensteine, Iterationen und das Produkt-Ziel ... 78 3.2 ... Deine Vorgehensstrategie entwickeln ... 83 3.3 ... Wie sag ich es den anderen? ... 88 3.4 ... Vom ersten Meilenstein zum Product Backlog ... 90 3.5 ... Produktarten und ihre Herausforderungen ... 93 4. Zeit für Feedback ... 99 4.1 ... Die Wissensspirale ... 100 4.2 ... Feedback: ehrliche Rückmeldungen für die Weiterentwicklung nutzen ... 102 4.3 ... Voraussetzungen für gute Feedback-Gespräche ... 104 4.4 ... Feedback-Regeln ... 107 4.5 ... Der Feedback-Canvas ... 108 4.6 ... Vom Umgang mit Feedback und Fehlern ... 110 4.7 ... Lernmomente gestalten ... 111 4.8 ... Impulse im Entwicklungsalltag aufgreifen ... 111 5. Product Discovery: Raten oder Daten? ... 123 5.1 ... Was ist Product Discovery? ... 124 5.2 ... Immer ist ein guter Zeitpunkt ... 126 5.3 ... Die Haltung entscheidet ... 126 5.4 ... Methoden zur Product Discovery ... 128 5.5 ... Design Thinking ... 139 5.6 ... Serendipität ... 141 5.7 ... Vorsicht vor Denkfehlern! ... 142 5.8 ... Hypothesen bilden und testen ... 143 5.9 ... Wie weiter? ... 144 6. Zuhören, verstehen, ansprechen: dein Kommunikationsjob ... 147 6.1 ... Verständlichkeit und Verständigung herstellen ... 149 6.2 ... Zusammenarbeit durch angemessene Kommunikation initiieren ... 154 6.3 ... Agil kommunizieren ... 159 6.4 ... Gesprächsführung übernehmen in alltäglichen und herausfordernden Situationen ... 161 6.5 ... Kreative Prozesse moderieren ... 171 6.6 ... Schneller entscheiden, statt immer zu warten ... 175 7. Frisch sortiert ist halb gewonnen: das Refinement ... 187 7.1 ... Hol dein Team zusammen ... 188 7.2 ... Stories und Backlog-Einträge schreiben ... 188 7.3 ... Geschickt schneiden ... 195 7.4 ... Akzeptanzkriterien finden ... 200 7.5 ... Definition of Done ... 204 7.6 ... Gut geschätzt: Story Points & Co. ... 207 7.7 ... Sortieren und priorisieren (und mal Nein sagen können) ... 214 7.8 ... Das Refinement ritualisieren: Wie machen wir das regelmäßig? ... 217 8. Interview: Auf einen Kaffee mit Product Ownerin Jil ... 221 8.1 ... Die Product-Owner-Rolle in der Praxis ... 222 8.2 ... Mit Daten arbeiten ... 223 8.3 ... Kommunikation ist das A und O ... 223 8.4 ... Fragen sind »The Only Way«! ... 225 8.5 ... Dein allerbester Freund aus dem Tech-Team ... 226 8.6 ... Geh mit dem Problem ins Team, nicht mit der Lösung ... 226 8.7 ... Tools helfen, den Überblick zu behalten ... 227 8.8 ... Der Blick ins Product Backlog ... 228 8.9 ... Scrum? Kanban? Scrumban! ... 230 8.10 ... Ein gutes Reporting-Tool ist Pflicht ... 231 9. Was liegt an? Planning und Daily ... 233 9.1 ... Das Sprint Planning vorbereiten ... 235 9.2 ... Das Sprint-Ziel formulieren ... 239 9.3 ... Aushandeln: Was kommt in den Sprint? ... 243 9.4 ... Daily zur Information nutzen ... 246 9.5 ... Dem Team Orientierung geben ... 248 9.6 ... Sind wir done done? Die Definition of Done nutzen ... 249 9.7 ... Wertvoll und nützlich? Features abnehmen ... 249 9.8 ... Refinement: Anforderungen erkennen ... 250 9.9 ... Sprint-Wechsel vorbereiten ... 252 9.10 ... Den Sprint abbrechen ... 252 9.11 ... Dann machen wir eben was anderes: der Pivot ... 256 10. Gemeinsam führen ... 259 10.1 ... Wer macht was? ... 260 10.2 ... Die Grundlagen im Agilen Manifest ... 261 10.3 ... Führen und Managen ... 262 10.4 ... Cynefin Framework ... 265 10.5 ... Dich selbst führen ... 268 10.6 ... Mit anderen führen ... 273 11. Tech für Anfänger*innen ... 281 11.1 ... Zuverlässig und mit hoher Qualität entwickeln und liefern ... 282 11.2 ... Anwendungen professionell betreiben ... 294 11.3 ... Rechtliche und Sicherheitsanforderungen sicherstellen ... 298 11.4 ... Aus- und Weiterbildung ... 303 12. Kurs anpassen: das Review ... 305 12.1 ... Das Sprint Review ... 306 12.2 ... Das Review Meeting vorbereiten ... 307 12.3 ... Zum Start ... 314 12.4 ... Der Stand der Dinge ... 317 12.5 ... Die Entwicklungen im Umfeld ... 322 12.6 ... Wie weiter? ... 325 12.7 ... Was nicht ins Review gehört ... 327 13. Auf eine gute Zusammenarbeit! Die Retrospektive ... 329 13.1 ... Wie wird's gemacht? ... 330 13.2 ... Die richtigen Rahmenbedingungen ... 331 13.3 ... Psychologische Sicherheit ... 331 13.4 ... Lass uns über Gefühle sprechen ... 333 13.5 ... Die Retrospektive für kritisches Feedback nutzen ... 334 13.6 ... Ein typischer Ablauf ... 335 13.7 ... Nach der Retro ist vor der Retro ... 337 14. Guter Rat von Lennart ... 339 14.1 ... Was macht ein Agile Coach? ... 339 14.2 ... Der Unterschied zur Scrum-Master-Rolle ... 340 14.3 ... Wie ein agiler Coach unterstützt ... 340 14.4 ... Tipps für das Stakeholder-Management ... 341 14.5 ... Es gibt keine schlechten Nachrichten ... 342 14.6 ... Wenn Führung fordert ... 343 14.7 ... Der Weg zum Agile Coach ... 344 15. Heiße Konflikte willkommen! ... 347 15.1 ... Konflikte für Innovationen nutzen ... 348 15.2 ... Die Basis für Austausch schaffen ... 353 15.3 ... Höflich miteinander umgehen ... 363 15.4 ... Das Kritische ansprechen: der Elefant im Raum ... 365 15.5 ... Nein sagen (können/dürfen/müssen) ... 370 15.6 ... Grenzen der Kommunikation anerkennen und für sich selbst sorgen ... 372 16. Liefern mit Stil ... 377 16.1 ... Wie oft liefern? ... 379 16.2 ... Was ist alles zu tun? ... 381 16.3 ... Liefern ist kein Endpunkt ... 390 17. Umfeld und Unterstützung: die Sicht aufs Unternehmen ... 391 17.1 ... Warum Organisationsentwicklung? ... 392 17.2 ... Vom ersten Scrum Team zum agilen Unternehmen ... 399 17.3 ... Hypothesengeleitete Entwicklung ... 415 18. Gut gemacht! ... 421 18.1 ... Probiere es einfach aus! ... 421 18.2 ... Danke ... 422 Anhang ... 423 A ... Elefanten-Carpaccio (Beispiellösung) ... 423 B ... Literaturverzeichnis ... 427 Das Team, das dieses Buch geschrieben hat ... 437 Index ... 439
Python lernen - kurz & gut
Der praktische Schnelleinstieg in die Python-Programmierung- Kompakt und verständlich vermittelt dieses Buch den Umgang mit Python 3- Ein interaktiver Einstieg erlaubt direktes Ausprobieren und verschafft schnelle Erfolgserlebnisse- Sie lernen die Python-Grundlagen und einen guten Stil beim Entwickeln- Der Sourcecode, die Beispiele und ergänzende umfangreiche Praxisprojekte sind als Download verfügbar und erleichtern das VerständnisDieses Buch ist für vielbeschäftigte Programmierer:innen, die eine knappe und dennoch gut verständliche Einführung in Python als immer populärer werdende Programmiersprache suchen. Python lernen – kurz & gut bietet einen unterhaltsamen Einstieg und informiert Sie über viele Python-Bestandteile, die Ihnen helfen werden, schnell durchzustarten:- Installation von Python- Schnelleinstieg in die wichtigsten Aspekte- Basisbausteine wie Strings, Enums, Zufallszahlen, Fallunterscheidungen und Schleifen- Klassen und objektorientierte Programmierung- Datencontainer wie Listen, Mengen und Tupel- Fortgeschrittene Themen zu Collections wie Iteratoren, Generatoren, Slicing, Sortierungen und Comprehensions- Datumsverarbeitung inklusive Berechnungen- Dateiverarbeitung und JSON sowie Behandlung von FehlernTrotz seines kompakten Formats liefert dieses Buch eine fundierte Einführung und eine Fülle an leicht nachvollziehbaren Beispielen, die zum Experimentieren einladen. Es unterstützt Sie optimal dabei, Ihre Python-Kenntnisse auf- und auszubauen. Insbesondere wenn Sie bereits ein wenig mit z.B. Java oder C++ vertraut sind, ist dieses Buch die ideale Wahl, um solide in Python einzusteigen.Zum Autor:Michael Inden ist Java- und Python-Enthusiast mit über zwanzig Jahren Berufserfahrung. Nach seinem Studium in Oldenburg hat er bei diversen internationalen Firmen in verschiedenen Rollen etwa als Softwareentwickler, -architekt, Consultant, Teamleiter, CTO sowie Leiter Academy gearbeitet. Seit Anfang 2022 ist er als Head of Development in Zürich tätig. Sein besonderes Interesse gilt dem Design qualitativ hochwertiger Applikationen sowie dem Coaching. Sein Wissen gibt er gerne als Trainer in internen sowie externen Schulungen und auf Konferenzen weiter, etwa bei der JAX/W-JAX, JAX London, Oracle Code One, ch.open sowie bei der Java User Group Switzerland. Zudem hält er Vorlesungen zum Thema Einstieg in Python im Rahmen eines CAS Machine Learning for Software Engineers.