Programmierung
Building Custom Tasks for SQL Server Integration Services
Build custom SQL Server Integration Services (SSIS) tasks using Visual Studio Community Edition and C#. Bring all the power of Microsoft .NET to bear on your data integration and ETL processes, and for no added cost over what you’ve already spent on licensing SQL Server. New in this edition is a demonstration deploying a custom SSIS task to the Azure Data Factory (ADF) Azure-SSIS Integration Runtime (IR).All examples in this new edition are implemented in C#. Custom task developers are shown how to implement custom tasks using the widely accepted and default language for .NET development.Why are custom components necessary? Because even though the SSIS catalog of built-in tasks and components is a marvel of engineering, gaps remain in the available functionality. One such gap is a constraint of the built-in SSIS Execute Package Task, which does not allow SSIS developers to select SSIS packages from other projects in the SSIS Catalog. Examples in this book show how to create a custom Execute Catalog Package task that allows SSIS developers to execute tasks from other projects in the SSIS Catalog. Building on the examples and patterns in this book, SSIS developers may create any task to which they aspire, custom tailored to their specific data integration and ETL needs.WHAT YOU WILL LEARN* Configure and execute Visual Studio in the way that best supports SSIS task development* Create a class library as the basis for an SSIS task, and reference the needed SSIS assemblies* Properly sign assemblies that you create in order to invoke them from your task* Implement source code control via Azure DevOps, or your own favorite tool set* Troubleshoot and execute custom tasks as part of your own projects* Create deployment projects (MSIs) for distributing code-complete tasks* Deploy custom tasks to Azure Data Factory Azure-SSIS IRs in the cloud* Create advanced editors for custom task parametersWHO THIS BOOK IS FORFor database administrators and developers who are involved in ETL projects built around SQL Server Integration Services (SSIS). Readers do not need a background in software development with C#. Most important is a desire to optimize ETL efforts by creating custom-tailored tasks for execution in SSIS packages, on-premises or in ADF Azure-SSIS IRs.ANDY LEONARD is Chief Data Engineer at Enterprise Data & Analytics, an SSIS trainer, consultant, developer of the Data Integration Lifecycle Management (DILM) Suite, a Business Intelligence Markup Language (Biml) developer, and BimlHero. He is a SQL Server database and data warehouse developer, community mentor, engineer, and occasional farmer. He is co-author of Apress books SQL Server Integration Services Design Patterns and The Biml Book, and author of the Apress book Data Integration Life Cycle Management with SSIS and the Stairway to Integration Services series at SQLServerCentral.com.1. The Story of This Book2. Preparing the Environment3. Creating the Assembly Project4. Check-In the Project Code5. Signing the Assembly6. Preparing to Build7. Coding the Task8. Coding a Simple Task Editor9. Signing and Binding10. Expanding Editor Functionality11. Minimal Coding for the Complex Editor12. Editor Integration13. Implement Views and Properties14. Implement New Connection15. Implement Use32bit, Synchronized, and LoggingLevel SettingsView Properties16. Refactoring SourceConnection17. Refactoring the SSIS Package Hierarchy18. Instrumentation and Validation19. Crushing Bugs20. Adding Synchronous Execution Properties21. Testing the Task22. Building the Setup Project23. Using the Execute Catalog Package Task in an SSIS Framework24. Deploying to Azure-SSIS25. Test the Task in Azure Data Factory26. Notes from my Experience
Der Computer erscheint im Holozän
Die sieben Weltwunder wurden bereits in der Antike beschrieben, etwa zur selben Zeit wie die mechanische Rechenhilfe Abacus, ein Zählrahmen mit Holz- oder Glasperlen. Dieses Buch beschreibt und diskutiert die sieben Weltwunder der IT, ohne die unsere digitale Wirtschaft und Gesellschaft kaum überlebensfähig scheint: Computermaus, Datenbanken, Kryptografie, Graphgrammatiken, Internet, Blockchain und Soft Computing.Jedes Weltwunder der IT wird kurz charakterisiert, bevor Anwendungsoptionen für Wirtschaft und Gesellschaft exemplarisch aufgezeigt und gewürdigt werden.Das Werk richtet sich an alle, die sich mit der digitalen Transformation auseinandersetzen. Es soll helfen, digitale Entwicklungen im eigenen Unternehmen, in der Verwaltung oder im öffentlichen wie im privaten Leben zu positionieren und zu reflektieren.ANDREAS MEIER hat Musik an der Musikakademie in Wien und Mathematik an der ETH in Zürich studiert, wo er doktorierte und habilitierte. Er arbeitete in internationalen Forschungsinstitutionen und Organisationen und war an der Universität Fribourg, Schweiz für eBusiness und eCommerce verantwortlich. Er gründete und leitete das Forschungszentrum Fuzzy Management Methods (FMsquare.org).FABRICE TSCHUDI hat Kommunikationswissenschaften an der Universität Fribourg und Wirtschaftsinformatik an der Universität Bern studiert. Er setzt sich für eine Vision von digitalen Systemen ein, die zu einer lebensdienlichen Wirtschaft und Gesellschaft im Sinne von nachhaltigem Wohlergehen beitragen. Er begleitet Organisationen auf dem Weg zu „wertvoller Digitalisierung“ und ist überzeugt, dass partizipative Lern- und Arbeitsformate hierfür ein zentraler Erfolgsfaktor sind.De septem mundi miraculis - Vom Abacus zur digitalen Rechenmaschine - Die 7 Weltwunder der IT - Wo führt die Reise hin? - Literatur
Beginning Rust Programming
QUICKLY LEARN THE ROPES WITH THE RUST PROGRAMMING LANGUAGE USING THIS PRACTICAL, STEP-BY-STEP GUIDEIn Beginning Rust Programming, accomplished programmer and author Ric Messier delivers a highly practical, real-world guide to coding with Rust. Avoiding dry, theoretical content and “Hello, world”-type tutorials of questionable utility, the book dives immediately into functional Rust programming that takes advantage of the language’s blazing speed and memory efficiency.Designed from the ground up to give you a running start to using the multiparadigm system programming language, this book will teach you to:* Solve real-world computer science problems of practical importance * Use Rust’s rich type system and ownership model to guarantee memory-safety and thread-safety * Integrate Rust with other programming languages and use it for embedded devices Perfect for programmers with some experience in other languages, like C or C++, Beginning Rust Programming is also a great pick for students new to programming and seeking a user-friendly and robust language with which to start their coding career.ABOUT THE AUTHORRIC MESSIER is Senior Information Security Consultant with FireEye Mandiant. He is an author, consultant, and educator who holds GCIH, GSEC, CEH, and CISSP certifications and has published several books on information security and digital forensics. He is familiar with a wide variety of languages, including BASIC, Pascal, C, C++, C#, Rexx, Perl, Python, Java, Go, Swift, and Objective-C. VISIT US AT WROX.COM FOR FREE CODE SAMPLES.Introduction xixCHAPTER 1: GAME OF LIFE: THE BASICS 1Game of Life: The Program 2Starting with Cargo 4Putting the Pieces Together 5Bringing In External Functionality 5Namespaces 6Generating the Game Grid 7Dissecting Main 8Defining Functions 8Defining Variables 9Datatypes 11Arrays 12Control Structures 14Looking at More Function Functions 16Returning Values 16Passing Parameters 18Scope 21Compiling Programs 22Summary 24Exercises 25Additional Resources 25CHAPTER 2: EXTENDED LIFE 27Understanding Ownership 28Extending Life 30Adding Modules 32Working with Command-Line Arguments 34Option Types 36Reading from Files 39Extracting Values 41Populating from the Vector 42Outputting to the Terminal 43Using Colors 44Printing Generations 44Summary 46Exercises 48Additional Resources 48CHAPTER 3: BUILDING A LIBRARY 49References 50First Pass 53Traits and Implementations 56Self-Identification 60The Rest 60Second Pass 62The Driver 65Summary 67Exercises 69Additional Resources 69CHAPTER 4: HANGMAN 71Our Data 74The Traits 77Implementations 79Using the Option Enum 82Finishing Up the Implementation 83Reading Files and Selecting Words 84Handling Errors Concisely 85Generics and Bounds 87A Vector of Lines 88The Rest of the Story 90Initialization 91Playing the Game 92Summary 94Exercises 95Additional Resources 95CHAPTER 5: IN CONCURRENCE 97The Dining Philosophers 98Mutexes and Semaphores 101Interprocess Communications 103The Main Event 106Unix Sockets 107File and Directory Handling 109Closures 112Threading in the Main 114Creating Streams 115Cryptographic Hashing 116Creating Threads 117Summary 118Exercises 119Additional Resources 119CHAPTER 6: CLIENTS AND SERVERS 121Planning 123Network Programming 125Programming Sockets 128Rust TCP Server 131Handling Requests 134Operating System Calls 137Summary 139Exercises 140Additional Resources 140CHAPTER 7: CLIENT-SIDE APPLICATIONS 141Encryption 142Encryption Algorithms 144Going Hybrid 145Encryption Algorithms 147Transport Layer Security (TLS) 147TLS Server 151Remote Access Client 154Creating the Connection 156Validating Input 157Regular Expressions 157The Final Function 159Summary 163Exercises 164Additional Resources 164CHAPTER 8: GOING RELATIONAL 165Application Architectures 166n-Tier Applications 167Microservices 169Model-View-Controller 171Databases 172Structured Query Language 172Server or Embedded 175Accessing Databases 176Writing a Database Program 177Main and Modules 178Database Functions 183Adding Records 184Listing Records 186Summary 189Exercises 190Additional Resources 190CHAPTER 9: NO(SQL) GOING 191Assertions 192Design by Contract 195NoSQL 198Working with MongoDB 202Inserting Data 202Reading in Data from a File 206Populating the Database 207Retrieving Values 209Summary 213Exercises 214Additional Resources 214CHAPTER 10: WEB COMMUNICATIONS 215Style Guides 216Hypertext Transfer Protocol 219Programmatic Communication 222Web Communication Over TLS 227Client Communication 229Jumping Ahead 232Jumping Back 237Summary 238Exercises 239Additional Resources 240CHAPTER 11: WEB SERVER 241Offensive vs. Defensive Programming 242Web Application Communications 245Web Application Parameters 245Asynchronous JavaScript and XML 248Representational State Transfer 249APIs in Node.js and Python 250API Server in Rust 252Rust Rocket 255Summary 262Exercises 262Additional Resources 263CHAPTER 12: GETTING TO THE SYSTEM 265Extending Functionality 266Windows Registry 272Programmatic Access to the Registry 275Using Rust to Access the Registry 277System Information with Rust 282Persistence (for Fun) 287Summary 289Exercises 290Additional Resources 290CHAPTER 13: DEVICE PROGRAMMING 291Logging 292Using syslog 292Using Windows Event Logs 299Working with Raspberry Pi 305Lighting Lights 310Reading GPIO 315Summary 318Exercises 319Additional Resources 319CHAPTER 14: COLLECTING STUFF 321Arrays and Vectors 322Linked Lists 329Stacks 333Queues 336Sorting 337Search Trees 340Summary 345Exercises 346Additional Resources 346CHAPTER 15: ODDS AND SODS 347Unit Testing 348Testing Types 350Test Plans 351Unit Tests 353Recursion 360Machine Learning 364Chatbots 366Neural Networks 369Summary 371Exercises 373Additional Resources 373Index 375
Python Challenge
Ihr persönlicher Python-Coach: Fit für Prüfung, Job-Interview und Praxis – mit 100 Aufgaben und MusterlösungenMit 100 Übungsaufgaben und Programmierpuzzles inklusive Lösungen zum Knobeln und Erweitern Ihrer Kenntnisse bietet Ihnen die »Python Challenge« ein kurzweiliges Lernen, eine fundierte Vorbereitung auf die nächste Prüfung oder ein Jobinterview. Dabei werden viele praxisrelevante Themengebiete wie Strings, Datenstrukturen, Rekursion, Arrays usw. berücksichtigt.Jedes Themengebiet wird in einem eigenen Kapitel behandelt, wobei zunächst kurz auf die Grundlagen eingegangen wird. Danach folgen rund 10 bis 15 Übungsaufgaben verschiedener Schwierigkeitsgrade.So lassen sich die Python-Programmierkenntnisse effektiv verbessern. Dabei helfen insbesondere detaillierte Musterlösungen inklusive der genutzten Algorithmen zu allen Aufgaben. Ebenso werden von Michael Inden alternative Lösungswege beschrieben, aber auch mögliche Fallstricke und typische Fehler im Python-Code analysiert.Abgerundet wird das Buch durch drei Anhänge. Einer beschäftigt sich mit dem Python-Kommandozeileninterpreter, der zum Ausprobieren der Codeschnipsel und Beispiele des Buchs oftmals hilfreich ist. Der zweite gibt einen Überblick über Pytest zum Unit Testen und Prüfen der Lösungen. Der dritte erläutert die O-Notation zur Abschätzung der Performance.Leseproben:Einleitung — DownloadInhaltsverzeichnis — DownloadStrings (Auszug) — DownloadSuchen und Sortieren (Auszug) — DownloadZusatzmaterial:Python_Challenge_Import — DownloadPythonChallenge — Download
MATLAB Recipes
Learn from state-of-the-art examples in robotics, motors, detection filters, chemical processes, aircraft, and spacecraft. With this book you will review contemporary MATLAB coding including the latest MATLAB language features and use MATLAB as a software development environment including code organization, GUI development, and algorithm design and testing.Features now covered include the new graph and digraph classes for charts and networks; interactive documents that combine text, code, and output; a new development environment for building apps; locally defined functions in scripts; automatic expansion of dimensions; tall arrays for big data; the new string type; new functions to encode/decode JSON; handling non-English languages; the new class architecture; the Mocking framework; an engine API for Java; the cloud-based MATLAB desktop; the memoize function; and heatmap charts._MATLAB Recipes: A Problem-Solution Approach, Second Edition__ _provides practical, hands-on code snippets and guidance for using MATLAB to build a body of code you can turn to time and again for solving technical problems in your work. Develop algorithms, test them, visualize the results, and pass the code along to others to create a functional code base for your firm.WHAT YOU WILL LEARN* Get up to date with the latest MATLAB up to and including MATLAB 2020b* Code in MATLAB* Write applications in MATLAB* Build your own toolbox of MATLAB code to increase your efficiency and effectivenessWHO THIS BOOK IS FOREngineers, data scientists, and students wanting a book rich in examples using MATLAB.MICHAEL PALUSZEK is the co-author of MATLAB Recipes published by Apress. He is President of Princeton Satellite Systems, Inc. (PSS) in Plainsboro, New Jersey. Mr. Paluszek founded PSS in 1992 to provide aerospace consulting services. He used MATLAB to develop the control system and simulation for the Indostar-1 geosynschronous communications satellite, resulting in the launch of PSS's first commercial MATLAB toolbox, the Spacecraft Control Toolbox, in 1995. Since then he has developed toolboxes and software packages for aircraft, submarines, robotics, and fusion propulsion, resulting in PSS's current extensive product line. He is currently leading a US Army research contract for precision attitude control of small satellites and working with the Princeton Plasma Physics Laboratory on a compact nuclear fusion reactor for energy generation and propulsion.Prior to founding PSS, Mr. Paluszek was an engineer at GE Astro Space in East Windsor, NJ. At GE he designed the Global Geospace Science Polar despun platform control system and led the design of the GPS IIR attitude control system, the Inmarsat-3 attitude control systems and the Mars Observer delta-V control system, leveraging MATLAB for control design. Mr. Paluszek also worked on the attitude determination system for the DMSP meteorological satellites. Mr. Paluszek flew communication satellites on over twelve satellite launches, including the GSTAR III recovery, the first transfer of a satellite to an operational orbit using electric thrusters. At Draper Laboratory Mr. Paluszek worked on the Space Shuttle, space station and submarine navigation. His space station work included designing of control moment gyro based control systems for attitude control. Mr. Paluszek received his bachelors in electrical engineering, and master's and engineer’s degrees in aeronautics and astronautics from the Massachusetts Institute of Technology. He is author of numerous papers and has over a dozen US patents.STEPHANIE THOMAS is the co-author of MATLAB Recipes, published by Apress. She received her bachelor's and master's degrees in aeronautics and astronautics from the Massachusetts Institute of Technology in 1999 and 2001. Ms. Thomas was introduced to PSS's Spacecraft Control Toolbox for MATLAB during a summer internship in 1996 and has been using MATLAB for aerospace analysis ever since. She built a simulation of a lunar transfer vehicle in C++, LunarPilot, during the same internship. In her nearly 20 years of MATLAB experience, she has developed many software tools including the Solar Sail Module for the Spacecraft Control Toolbox; a proximity satellite operations toolbox for the US Air Force; collision monitoring Simulink blocks for the Prisma satellite mission; and launch vehicle analysis tools in MATLAB and Java, to name a few. She has developed novel methods for space situation assessment such as a numeric approach to assessing the general rendezvous problem between any two satellites implemented in both MATLAB and C++. Ms. Thomas has contributed to PSS's Attitude and Orbit Control textbook, featuring examples using the Spacecraft Control Toolbox, and written many software user guides. She has conducted SCT training for engineers from diverse locales such as Australia, Canada, Brazil, and Thailand and has performed MATLAB consulting for NASA, the US Air Force, and the European Space Agency.PART I CODING IN MATLAB1 CODING HANDBOOK2 MATLAB STYLE3 VISUALIZATION4 INTERACTIVE GRAPHICS5 TESTING AND DEBUGGING6 CLASSESPART II APPLICATIONS7 THE DOUBLE INTEGRATOR8 ROBOTICS9 ELECTRIC MOTORS10 FAULT DETECTION11 CHEMICAL PROCESSES12 AIRCRAFT13 SPACECRAFT14 AUTOMOBILES
JavaScript für Ungeduldige
Der schnelle Einstieg in modernes JavaScript.»JavaScript für Ungeduldige« ist ein vollständiger und dennoch prägnanter Leitfaden für modernes JavaScript, bis zu ES2020. Wenn Sie mit Sprachen wie Java, C#, C oder C++ umgehen können, werden Sie mit diesem Buch schnell mit JavaScript produktiv arbeiten können, ohne sich lange mit veralteten Konzepten rumschlagen zu müssen.Cay S. Horstmann deckt alles ab, was Sie über JavaScript wissen müssen, und liefert Inhalte in kleinen Häppchen, die das Lernen angenehm machen. Die praktischen Einblicke und praxisnahen Codebeispiele helfen Ihnen, die Vorteile von modernem JavaScript zu nutzen, und dabei häufige Fallstricke und veraltete Funktionen zu meiden.Das bietet »JavaScript für Ungeduldige«:Sie lernen schnell die Grundlagen von modernem JavaScript Sie vermeiden veraltete Techniken, die unnötige Komplexität und Risiken mitbringen Sie machen das Beste aus funktionalen, objektorientierten und asynchronen Programmierstilen Sie verwenden Module, um komplexe Programme effizient zu organisieren und auszuführen Sie verstehen fortgeschrittene JavaScript-Techniken, wie Metaprogrammierung und Generatoren Sie erfahren, wie Sie Ihren JavaScript-Code mit TypeScript sicherer machen
Beginning Mathematica and Wolfram for Data Science
Enhance your data science programming and analysis with the Wolfram programming language and Mathematica, an applied mathematical tools suite. The book will introduce you to the Wolfram programming language and its syntax, as well as the structure of Mathematica and its advantages and disadvantages.You’ll see how to use the Wolfram language for data science from a theoretical and practical perspective. Learning this language makes your data science code better because it is very intuitive and comes with pre-existing functions that can provide a welcoming experience for those who use other programming languages.You’ll cover how to use Mathematica where data management and mathematical computations are needed. Along the way you’ll appreciate how Mathematica provides a complete integrated platform: it has a mixed syntax as a result of its symbolic and numerical calculations allowing it to carry out various processes without superfluous lines of code. You’ll learn to use its notebooks as a standard format, which also serves to create detailed reports of the processes carried out.WHAT YOU WILL LEARN* Use Mathematica to explore data and describe the concepts using Wolfram language commands* Create datasets, work with data frames, and create tables* Import, export, analyze, and visualize data* Work with the Wolfram data repository * Build reports on the analysis* Use Mathematica for machine learning, with different algorithms, including linear, multiple, and logistic regression; decision trees; and data clusteringWHO THIS BOOK IS FORData scientists new to using Wolfram and Mathematica as a language/tool to program in. Programmers should have some prior programming experience, but can be new to the Wolfram language.JALIL VILLALOBOS ALVA is a Wolfram language programmer and Mathematica user. He graduated with a degree in engineering physics from the Universidad Iberoamericana in Mexico City. His research background comprises quantum physics, bionformatics, proteomics, and protein design. His academic interests cover the topics of quantum technology, bioinformatics, machine learning, stochastic processes, and space engineering. During his idle hours he likes to play soccer, swim, and listen to music.1. Introductiona. What is Data science?b. Data science and Statisticsc. Data scientist2. Introduction to Mathematicaa. Why Mathematica?b. Wolfram Languagec. Structure of Mathematicad. Notebookse. How Mathematica worksf. Input Form3. Data Manipulationa. Listsb. Lists of objectsc. Manipulating listsd. Operations with listse. Indexed Tablesf. Working with data framesg. Datasets4. Data Analysisa. Data Import and exportb. Wolfram data repositoryc. Statistical Analysisd. Visualizing datae. Making reports5. Machine learning with Wolfram Languagea. Linear Regressionb. Multiple Regressionc. Logistic Regressiond. Decision Tresse. Data Clustering6. Neural networks with Wolfram Languagea. Network Data and structureb. Network Layersc. Perceptron Modeld. Multi-layer Neural Networke. Using preconstructed nets from Wolfram Neural net repositoryf. LeNet Neural net for text recognition
Modern C for Absolute Beginners
Learn the C programming language easily and in a straightforward way. This book teaches the basics of C, the C Standard Library, and modern C standards. No previous programming experience is required.C is a language that is as popular today as it was decades ago. C covers a wide variety of domains. It can be used to program a microcontroller, or to develop an entire operating system. This book is an effort to introduce the reader to the C programming language in a concise and easy to follow manner.The author takes you through the C programming language, the Standard Library, and the C standards basics. Each chapter is the right balance of theory and code examples.After reading and using this book, you'll have the essentials to start programming in modern C.WHAT YOU WILL LEARN* The C programming language fundamentals* The C Standard Library fundamentals* New C Standards features* The basics of types, operators, statements, arrays, functions, and structs* The basics of pointers, memory allocation, and memory manipulation* Take advantage of best practices in CWHO THIS BOOK IS FORBeginner or novice programmers who wish to learn the C programming language. No prior programming experience is required.SLOBODAN DMITROVIĆ is a software consultant, trainer, and entrepreneur. He is the CEO and founder of “Clear Programming Paradigm”, an LLC that provides outsourcing and training services. Slobodan’s ability to summarize complex topics and provide insightful training made him a sought after consultant for the automotive, fintech, and other industries. Slobodan has a strong interest in C, C++, software architecture, training, and R&D.Part I: The C Programming LanguageChapter 1: IntroductionChapter 2: Our First ProgramChapter 3: Types and DeclarationsChapter 4: ExercisesChapter 5: OperatorsChapter 6: ExpressionsChapter 7: StatementsChapter 8: ExercisesChapter 9: ArraysChapter 10: PointersChapter 11: Command-line ArgumentsChapter 12: ExercisesChapter 13: FunctionsChapter 14: ExercisesChapter 15: StructuresChapter 16: UnionsChapter 17: Conditional ExpressionChapter 18: TypedefChapter 19: Const QualifierChapter 20: EnumerationsChapter 21: Function PointersChapter 22: ExercisesChapter 23: PreprocessorChapter 24: ExerciesChapter 25: Dynamic Memory AllocationChapter 26: Storage and ScopeChapter 27: ExercisesChapter 28: Standard Input and OutputChapter 29: File Input and OutputChapter 30: ExercisesChapter 31: Header and Source FilesPart II: The C Standard LibraryChapter 32: Introduction to C Standard LibraryPart III: Modern C StandardsChapter 33: Introduction to C 11 StandardsChapter 34: The C 17 StandardChapter 35: The Upcoming C2X StandardPart IV: Dos and Don'tsChapter 36: Do Not Use the gets FunctionChapter 37: Initialize Variables Before Using ThemChapter 38: Do Not Read Out of BoundsChapter 39: Do Not Free the Allocated Memory TwiceChapter 40: Do Not Cast the Result of mallocChapter 41: Do Not Overflow a Signed IntegerChapter 42: Cast a Pointer to void* When Printing Through printfChapter 43: Do Not Divide by ZeroChapter 44: Where to Use Pointers?Chapter 45: Prefer Functions to Function-like MacrosChapter 46: Static Global NamesChapter 47: What to Put in Header Files?Part V: AppendicesAppendix A: LinkageAppendix B: Time and DateAppendix C: Bitwise OperatorsAppendix D: Numeric LimitsAppendix E: Summary and Advice
Mach was mit Python & Raspberry Pi!
Spielerisch programmieren lernen und mit DIY-Projekten durchstarten. Entwickle deine Python-Anwendungen für den Raspberry Pi!Der Raspberry Pi ist ein preiswerter, leistungsfähiger Mini-Computer. Python ist eine leicht erlernbare, vielseitig einsetzbare Programmiersprache. Im Doppelpack sind sie die perfekte Spielwiese für alle Elektronik- und Programmierneulinge, die darauf brennen, ihre DIY-Projekte in die Tat umzusetzen.Dieses Buch führt dich auf spielerische Weise in die Python-Programmierung für den Raspberry Pi ein. Zahlreiche Beispielprojekte versetzen dich Schritt für Schritt in die Lage, deine eigenen Anwendungen für den RasPi zu entwickeln.Folgende Themen erwarten dich:Raspbian- und Python 3-Installation, Raspberry Pi-FernsteuerungEntwicklungsumgebungen im Einsatz: IDLE, Thonny und GeanyGrundlagen der Python-Programmierung: Abfragen, Schleifen, Funktionen, Variablen, Debugging&Co.Python-Anwendungen für den Raspberry Pi: von der Konsolen- und GUI-Programmierung über Grafik- und Soundanwendungen bis zur App- und WebprogrammierungDie Beispielprojekte aus dem Buch: Zahlenratespiel, Vokabeltrainer, Analoguhr, Taschenrechner, Spieleprogrammierung, Webradio, To-do-App und Wetter-AppLeseprobe (PDF-Link)
PHP 8 Revealed
Discover the new and updated features of PHP 8, such as the JIT compiler, union types, and attributes, with code examples of each. For each feature, the author includes real-life cases for its use and explains its benefits.WHAT YOU WILL LEARN* Utilize the new features of PHP 8 and modern development technologies* Work with the JIT compiler in PHP 8* Discover PHP 8 using real-life cases* Increase your available resources to become more valuable in your development teamWHO THIS BOOK IS FORExperienced PHP programmers new to PHP 8.GUNNARD ENGEBRETH began coding at the age of 11 through a “Learning BASIC” book given to him by his father. Technology was changing fast and Gunnard rode the wave from 1200 to 56k baud modems. Logging in to BBSs, Prodigy, Compuserve, Delphi and IRC he could see the world changing and he wanted to be a part of it. He soon got involved in the ansi/demo scene, making several application generators for many groups in the 90’s. Visual Basic was the next language of choice allowing him to develop “tools” for online systems such as AOL. This introduced many aspects of development, security and UI while they were still in their infancy. Once the WWW arrived via Mindspring in Atlanta, Ga. Gunnard quickly joined in the race for the web. Learning HTML, PERL and Linux (Slackware at the time) he began to build his skill-set which lead to a full-time Sysadmin position at the age of 20 (2000) at Activegrams/Silverpop. Gunnard has moved around the IT industry from SAN/NAS storage at IBM to custom Wordpress sites for marketing companies, but one thing has stayed the same, a passion for learning and problem solving. Gunnard also DJ’s Drum and Bass as Section31, Playing drums and baking bread (doughcode.com).1. Getting Started2. Setting up your development environment3. Devilbox4. Vagrant5. PHP 8 The Basics6. Whats newJIT compilerunion typesattributesThe nullsafe operatorNamed argumentsAttributesMatch expressionConstructor property promotionNew static return typeNew mixed typeThrow expressionInheritance with private methodsWeak mapsAllowing ::class on objectsNon-capturing catchesTrailing comma in parameter listsCreate DateTime objects from interfaceNew Stringable interfaceNew str_contains() function New str_starts_with() and str_ends_with() functionsNew fdiv() functionNew get_debug_type() functionNew get_resource_id() functionAbstract methods in traits improvementsObject implementation of token_get_all()Variable syntax tweaksType annotations for internal functionsext-json always available7. Breaking ChangesConsistent type errorsReclassified engine warningsThe @ operator no longer silences fatal errorsDefault error reporting levelDefault PDO error modeConcatenation precedenceStricter type checks for arithmetic and bitwise operators Reflection method signature changesStable sortingFatal error for incompatible method signatures8. FrameworksLaravelSlimPHPComposerSymphony9. The AdvancedMaintaining codeGithubGitlab Git workflowsCode StylePSR7phpDoc10. Refactoring and optimizationA. Giving Back
Using Displays in Raspberry Pi Projects
This book is about Raspberry Pi 4 display projects. The book starts by explaining how to install the latest Raspbian operating system on an SD card, and how to configure and use the GPIO ports. The core of the book explains the following topics in simple terms with fully tested and working example projects:> Simple LED projects> Bar graph LED projects> Matrix LED projects> Bitmap LED projects> LED strips> LCDs> OLED displays> E-paper displays> TFT displays> 7-inch touch screen> GUI Programming with TkinderOne unique feature of this book is that it covers almost all types of display that readers will need to use in their Raspberry Pi-based projects. The operation of each project is fully given, including block diagrams, circuit diagrams, and commented full program listings. It is therefore an easytask to convert the given projects to run on other popular platforms, such as Arduino or PIC microcontrollers. Python program listings of all Raspberry Pi projects developed in this book are available for download at Elektor.com. Readers can use these programs in their projects. Alternatively, they can modify the programs to suit their applications.Prof. Dr. Dogan Ibrahim is a Fellow of the Institution of Electrical Engineers. He is the author of over 60 technical books, published by publishers including Wiley, Butterworth, and Newnes. He is the author of over 250 technical papers, published in journals, and presented in seminars and conferences.
ABAP-Entwicklung für SAP S/4HANA
Entwickeln Sie moderne ABAP-Anwendungen mit dem Programmiermodell für SAP Fiori! Dieses Buch zeigt Ihnen, wie Sie das neue Modell ab SAP NetWeaver 7.5 anwenden können, um zukunftssicher zu entwickeln. Sie lernen die wesentlichen Konzepte wie Code-Pushdown und Simplifizierung kennen, erfahren, wie Sie mit CDS und Business-Objekten umgehen, und gestalten Ihre eigenen Fiori-Oberflächen. Inklusive Neuerungen in SAPUI5-Version 1.74 und neuen SAP-Fiori-Elements-Funktionen. Aus dem Inhalt: Architektur moderner ABAP-AnwendungenNeue ABAP-SyntaxCore Data Services (CDS)SAP Fiori ElementsBusiness Object Processing Framework (BOPF)OData und SAP GatewaySAP-S/4HANA-ReadinessSperrkonzept und BerechtigungenAnalytische und transaktionale AnwendungenAgile Entwicklung Geleitwort ... 13 Vorwort ... 15 Einleitung ... 17 1. Architektur moderner ABAP-Anwendungen ... 23 1.1 ... Eigenschaften und Architektur von SAP S/4HANA ... 23 1.2 ... Entwicklung von Unternehmensanwendungen mit SAP S/4HANA ... 34 1.3 ... Entwicklung auf Basis von SAP NetWeaver 7.50 ... 46 2. Das neue ABAP-Programmiermodell für SAP Fiori ... 53 2.1 ... ABAP-Entwicklungsumgebung und -Syntax ... 53 2.2 ... Einsatzszenarien des ABAP-Programmiermodells ... 59 2.3 ... Core Data Services ... 66 2.4 ... Entwicklung von OData-Services mit SAP Gateway ... 91 2.5 ... Code Pushdown auf die SAP-HANA-Datenbank ... 101 3. Anwendungsentwicklung im Kontext von SAP S/4HANA ... 111 3.1 ... Simplifizierung und das Principle of One von SAP ... 111 3.2 ... Simplifizierungsgrundsätze für eigene Anwendungsentwicklung ... 121 3.3 ... SAP-S/4HANA-Readiness von Anwendungen ... 129 3.4 ... Sicherheit von Anwendungen ... 141 3.5 ... Anwendungsentwicklung und der SAP-Standard ... 152 3.6 ... Automatisierte und manuelle Qualitätsprüfungen ... 154 4. Entwicklung von Geschäftsobjekten ... 163 4.1 ... Datenmodellierung ... 164 4.2 ... Transaktionale Core Data Services ... 173 4.3 ... BOPF-Metamodell ... 184 4.4 ... BOPF-Implementierung ... 200 4.5 ... Namenskonventionen ... 223 4.6 ... Entwicklung einer Benutzeroberfläche mit SAP Fiori Elements ... 226 5. Techniken der Anwendungsentwicklung ... 237 5.1 ... Sperrkonzept ... 237 5.2 ... BOPF-Puffermanagement ... 250 5.3 ... LUW-Konzept ... 265 5.4 ... Protokollierung ... 269 5.5 ... Berechtigungssteuerung ... 289 5.6 ... Tests ... 296 6. Entwicklung transaktionaler Benutzeroberflächen ... 327 6.1 ... Floorplans ... 329 6.2 ... SAP Fiori Elements ... 333 6.3 ... Annotationen ... 338 6.4 ... SAP Fiori Tools ... 417 6.5 ... Freestyle-Entwicklung von SAP-Fiori-Apps ... 422 6.6 ... Draft-Konzept ... 430 6.7 ... Ausblick auf das ABAP-RESTful-Programmiermodell ... 444 7. Operative Analytik ... 459 7.1 ... Grundlagen ... 460 7.2 ... Analytische Core Data Services ... 461 7.3 ... Visualisierung mit der Analytical List Page ... 488 7.4 ... Weitere Möglichkeiten der Visualisierung ... 514 8. Management von ABAP-Entwicklungsprojekten ... 521 8.1 ... Notwendige Skills ... 522 8.2 ... Architekturmanagement ... 523 8.3 ... Agile Entwicklung, Continuous Integration und Delivery ... 526 8.4 ... Technische Schulden ... 545 Anhang ... 549 A ... Technical Architecture Modeling ... 551 B ... Das Enterprise Procurement Model ... 555 C ... Literaturverzeichnis ... 561 D ... Die Autoren ... 563 Index ... 565
Programming Algorithms in Lisp
Master algorithms programming using Lisp, including the most important data structures and algorithms. This book also covers the essential tools that help in the development of algorithmic code to give you all you need to enhance your code.Programming Algorithms in Lisp shows real-world engineering considerations and constraints that influence the programs that use these algorithms. It includes practical use cases of the applications of the algorithms to a variety of real-world problems.WHAT YOU WILL LEARN* Program algorithms using the Lisp programming language* Work with data structures, arrays, key-values, hash-tables, trees, graphs, and more* Use dynamic programming * Program using strings* Work with approximations and compression WHO THIS BOOK IS FORIntermediate Lisp programmers wanting to do algorithms programming. A very experienced non-Lisp programmer may be able to benefit from this book as well.VSEVOLOD DOMKIN from Kyiv, Ukraine is a Lisp programmer and enthusiast, a natural language processing researcher, an occasional writer/blogger, and a teacher.IntroductionAlgorithmic ComplexityA Crash Course in LispEssential Data StructuresArraysLinked ListsKey-ValuesDerivative Data StructuresTreesGraphsStringsSelected AlgorithmsApproximationCompressionSynchronizationAfterword
Practical Rust Web Projects
Go beyond the basics of Rust and build web and serverless cloud applications. The applications explained in this practical book include web sites, RESTful APIs, a real-time web chat application, and frontend application with WebAssembly. Each chapter is organized in the following format: what this kind of application looks like; requirements for the example program; an introduction to the Rust libraries used; step-by-step implementation of the example program, including common pitfalls and best practices; and a brief comparison of libraries and frameworks in the same domain.This book will open your eyes to the world of practical web applications of Rust. After reading the book, you will be able to apply your Rust knowledge to build your own web projects.WHAT YOU WILL LEARN* Build dynamic websites with databases* Build RESTful APIs* Write a WebSocket server that can power a real-time chat app in Rust* Discover the benefits of serverless computing using Amazon Web Service's Rust support* Compile Rust to WebAssembly for high-performance frontend applicationsWHO THIS BOOK IS FORA reader with basic Rust knowledge, wishing to learn more about how to apply Rust in a real-world scenario. A developer who is evaluating the possibility to build their next project in Rust.Shing Lyu is a software engineer who is passionate about open source software. He's been working on Rust professionally at Mozilla, on the Firefox (Gecko) and Servo browser engine project. Currently, he is working at DAZN, a sports streaming platform as a backend developer, with a focus on AWS and serverless technology. Shing has worked for many world famous brands like Mozilla, Booking, and Intel. And, he is also active in the open source community. Being one of the founders of the Taiwan Rust community, he loves to share his enthusiasm for Rust with people.Chapter 1, IntroductionThis chapter gives a short introduction to why Rust is a solid tool for building all kinds of application, and a brief overview of the format and organization of the book.● Introduction● Why Rust?● Who should read this book?● Chapters overviewChapter 2, Developing websitesThis chapter will cover how to use popular web frameworks to build static and dynamic websites. We'll also touch how to build RESTful API and common requirements in web backend programming: database, authentication and authorization● What are we going to build? (A web version of the cat breed dictionary, first a static site and then server-side rendering )● Serving a static website● Generate dynamic content with templates● Fetching data from databases● Authentication and authorization● SummaryChapter 3, REST APIs● What are we going to build? (A web version of the cat breed dictionary, with a single-page app + REST API)● Defining the API with Open API specification● Building a static frontend with AJAX calls● Building a RESTful API● Serialize/Deserialize JSON● SummaryChapter 4, Chatting in realtime with WebSocketThis chapter will discuss how to build a WebSocket server that can power a real-time chat application in Rust● What are we going to build? (A chat app for cats in people can send all kinds of cat noises)● What is WebSocket● Enabling two way communication● Implementing the chat application● SummaryChapter 5, Going serverlessThis chapter will demonstrate the benefit of serverless computing using AWS's experimental Rust support.● What is serverless?● What are we going to build? (Serverless version of Chapter 4)● Pros and cons of serverless● Setting up an AWS account● Building a lambda function with Rust● Exposing the API Gateway● Cleaning it up● SummaryChapter 6, High performance web frontend using WebAssemblyThis chapter will talk about how to compile Rust to WebAssembly and make it work together with JavaScript in the web frontend● What is WebAssembly? (We'll implement the bottleneck of Book 1 Chapter 4 in WebAssembly to speed it up)● What are we going to build?● How to compile Rust to WebAssembly?● Exposing Rust function to JavaScript● Passing native data type between Rust and JavaScript● Manipulating DOM from Rust● SummaryChapter 7, Advanced topicsThis chapter will discuss other more advanced use of Rust. Each section will introduce one application, existing projects for that kind of application and their status. But we'll not go into the detail as the previous chapters.● Web scraping/Web crawling● Browser engine - Servo● Conclusion
Patterns in the Machine
Discover how to apply software engineering patterns to develop more robust firmware faster than traditional embedded development approaches. In the authors’ experience, traditional embedded software projects tend towards monolithic applications that are optimized for their target hardware platforms. This leads to software that is fragile in terms of extensibility and difficult to test without fully integrated software and hardware. Patterns in the Machine focuses on creating loosely coupled implementations that embrace both change and testability.This book illustrates how implementing continuous integration, automated unit testing, platform-independent code, and other best practices that are not typically implemented in the embedded systems world is not just feasible but also practical for today’s embedded projects.After reading this book, you will have a better idea of how to structure your embedded software projects. You will recognize that while writing unit tests, creating simulators, and implementing continuous integration requires time and effort up front, you will be amply rewarded at the end of the project in terms of quality, adaptability, and maintainability of your code.WHAT YOU WILL LEARN* Incorporate automated unit testing into an embedded project* Design and build functional simulators for an embedded project* Write production-quality software when hardware is not available* Use the Data Model architectural pattern to create a highly decoupled design and implementation* Understand the importance of defining the software architecture before implementation starts and how to do it* Discover why documentation is essential for an embedded project* Use finite state machines in embedded projectsWHO THIS BOOK IS FORMid-level or higher embedded systems (firmware) developers, technical leads, software architects, and development managers.John Taylor has been an embedded developer for over 29 years. He has worked as a firmware engineer, technical lead, system engineer, software architect, and software development manager for companies such as Ingersoll Rand, Carrier, Allen-Bradley, Hitachi Telecom, Emerson, and several start-up companies. He has developed firmware for products that include HVAC control systems, telecom SONET nodes, IoT devices, micro code for communication chips, and medical devices. He is the co-author of five US patents and holds a bachelor’s degree in mathematics and computer science.Wayne Taylor has been a technical writer for 25 years. He has worked with companies such as IBM, Novell, Compaq, HP, EMC, SanDisk, and Western Digital. He has documented compilers, LAN driver development, storage system deployment and maintenance, and dozens of low-level and system-management APIs. He also has ten years of experience as a software development manager. He is the co-author of two US patents and holds master’s degrees in English and human factors. He is a co-author of OS/2 and NetWare Programming (Van Nostrand Reinhold, 1995).1: Introduction2: Core Concepts3: Design Theory For Embedded Programming4: Persistent Storage Example5: Software Architecture6: Automated Unit Testing7: Functional Simulator8: Continuous Integration9: Data Model10: Finite State Machines11: Documentation12: File Organization and Naming13: More About Late Bindings14: Main and Initialization15: More Best Practices16: Example Code17: Rules For DevelopmentAppendix A: TerminologyAppendix B: UML Cheat SheetAppendix C: Notation for State MachinesAppendix D: Coding ConventionsAppendix E: Why C++
Pro Cryptography and Cryptanalysis with C++20
Develop strong skills and a passion for writing cryptography algorithms and security schemes/modules using C++ 20 and its new features. You will find the right methods of writing advanced cryptographic algorithms (such as, elliptic curve cryptography algorithms, lattice-based cryptography, searchable encryption, and homomorphic encryption), examine internal cryptographic mechanisms, and discover common ways in which the algorithms could be implemented and used correctly in practice.The authors avoid the complexities of the mathematical background by explaining its mathematical basis in terms that a programmer can easily understand. They show how “bad” cryptography creeps in during implementation and what “good” cryptography should look like. They do so by showing and comparing the advantages and disadvantages based on processing time, execution time, and reliability.WHAT YOU WILL LEARN* Understand where and why cryptography is used and how it gets misused * Discover what modern cryptography algorithms and methods are used for * Design and implement advanced cryptographic mechanisms * See how C++20 and its new features are impacting the future of implementing cryptographic algorithms* Practice the basics of public key cryptography, including ECDSA signatures and more* Find out 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++207: Secure Coding Guidelines8: Cryptography Libraries in C/C++20Part 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
Hands-on Question Answering Systems with BERT
Get hands-on knowledge of how BERT (Bidirectional Encoder Representations from Transformers) can be used to develop question answering (QA) systems by using natural language processing (NLP) and deep learning.The book begins with an overview of the technology landscape behind BERT. It takes you through the basics of NLP, including natural language understanding with tokenization, stemming, and lemmatization, and bag of words. Next, you’ll look at neural networks for NLP starting with its variants such as recurrent neural networks, encoders and decoders, bi-directional encoders and decoders, and transformer models. Along the way, you’ll cover word embedding and their types along with the basics of BERT.After this solid foundation, you’ll be ready to take a deep dive into BERT algorithms such as masked language models and next sentence prediction. You’ll see different BERT variations followed by a hands-on example of a question answering system.Hands-on Question Answering Systems with BERT is a good starting point for developers and data scientists who want to develop and design NLP systems using BERT. It provides step-by-step guidance for using BERT.WHAT YOU WILL LEARN* Examine the fundamentals of word embeddings* Apply neural networks and BERT for various NLP tasksDevelop a question-answering system from scratch* Train question-answering systems for your own dataWHO THIS BOOK IS FORAI and machine learning developers and natural language processing developers.Navin is the chief architect for HCL DryICE Autonomics. He is an innovator, thought leader, author, and consultant in the areas of AI, machine learning, cloud computing, big data analytics, and software product development. He is responsible for IP development and service delivery in the areas of AI and machine learning, automation, AIOPS, public cloud GCP, AWS, and Microsoft Azure. Navin has authored 15+ books in the areas of cloud computing , cognitive virtual agents, IBM Watson, GCP, containers, and microservices.Amit Agrawal is a senior data scientist and researcher delivering solutions in the fields of AI and machine learning. He is responsible for designing end-to-end solutions and architecture for enterprise products. He has also authored and reviewed books in the area of cognitive virtual assistants.Chapter 1: Introduction to Natural Language ProcessingChapter Goal: To introduce basics of natural language processing1.1 What is natural language processing1.2 What is natural language understanding1.3 Natural language processing tasks1.3.1 Tokenization1.3.2 Stemming and lemmatization1.3.3 Bag of words1.3.4 Word / Sentence vectorizationChapter 2: Introduction to Word EmbeddingsChapter Goal: To introduce the basics of word embeddings3.1 What is word embeddings3.2 Different methods of word embeddings3.2.1 Word2vec3.2.2 Glove3.2.3 Elmo3.2.4 Universal sentence encoders3.2.5 BERT3.3 Bidirectional Encoder Representations from Transformers (BERT)3.3.1 BERT – base3.3.2 BERT - largeChapter 3: BERT Algorithms ExplainedChapter Goal: Details on BERT model algorithms4.1 Masked language model4.2 Next sentence prediction (NSP)4.3 Text classification using BERT4.4 Various types of BERT based models4.4.1 ALBERT4.4.2 ROBERT4.4.3 DistilBERTChapter 4: BERT Model Applications - Question Answering SystemChapter Goal: Details on question answering system5.1 Introduction5.2 Types of QA systems5.3 QA system design using BERT5.4 DrQA system5.5 DeepPavlov QA systemChapter 5: BERT Model Applications - Other tasksChapter Goal: Details on NLP tasks performed by BERT.6.1 Introduction6.2 Other NLP Tasks:6.2.1 Sentiment analysis6.2.2. Named entity recognition6.2.3 Tag generation6.2.4 Classification6.2.5 Text summarization6.2.6 Language translationChapter 6: Future of BERT modelsChapter Goal: Provides an introduction to the new advances in the areas NLP using BERT7.1 BERT - Future capabilities
Kotlin
Das umfassende Handbuch - mit Crashkurs für Java-Umsteiger.Die Programmiersprache Kotlin ist das neue Schweizer Taschenmesser in der Softwareentwicklung. Ob Backend-Entwicklung oder mobile Apps, ob objektorientierte Paradigmen oder funktionale Programmierung mit Lambdas: Kotlin vereint die Stärken zahlreicher beliebter Sprachen zu einem modernen Werkzeug für alle Fälle. In diesem umfassenden Handbuch gibt Ihnen Michael Kofler einen Einblick in alle Sprachfeatures von Kotlin und zeigt Ihnen, wie Sie zeitgemäße Software entwickeln. Sie brauchen keine Java-Vorkenntnisse, sollten aber solide Programmiererfahrung mitbringen. Dieses Buch zeigt Ihnen die vielen Vorteile von Kotlin. Nach der Lektüre werden Sie verstehen, warum es in Zukunft für die Android-Entwicklung heißt: Kotlin first!Leseprobe (PDF-Link)
Android-Apps programmieren (3. Auflg.)
Professionelle App-Entwicklung mit Android Studio 4 - der praktische Einstieg.Mit diesem Buch erhalten Sie einen praktischen Einstieg in die Android-App-Programmierung mit Java. Sie lernen alles, was für die professionelle App-Entwicklung wichtig ist: von den Grundbausteinen einer App über die Layout-Erstellung mit XML bis hin zum Einsatz von Datenbanken.Der Autor führt Sie anhand eines durchgängigen Praxisbeispiels durch den gesamten Entwicklungsprozess einer App und zeigt Ihnen, wie Sie Android Studio effektiv einsetzen. Dabei lernen Sie Schritt für Schritt, wie Sie Daten verarbeiten und mit Room in einer Datenbank speichern, Apps mit mehreren Bildschirmseiten programmieren, Dialoge anzeigen, Berechtigungen abfragen, mit Hintergrundprozessen arbeiten, Internet-Services einbinden und vieles mehr.Abschließend erläutert der Autor, wie Sie Ihre App testen und im Google Play Store sowie auf der eigenen Website veröffentlichen. Darüber hinaus zeigt er Ihnen verschiedene Möglichkeiten der Monetarisierung auf.Grundkenntnisse in objektorientierter Programmierung, idealerweise mit Java, sowie im Umgang mit XML werden vorausgesetzt.Aus dem Inhalt:Grundlagen der App-ProgrammierungEinführung in Android StudioGradle als Build-SystemProjektanlageLayouts erstellen mit XMLActivities und SeitennavigationEinbinden einer SQLite-Datenbank mit RoomExport von DatenDialogeDatenverarbeitung im HintergrundBerechtigungenTrennung von Layout, Layout-Logik und Programmlogik mit Android-BindingInternet-Services einbindenAutomatisierte Tests und Unit TestingApp veröffentlichenPraktisches GlossarÜber den Autor:Eugen Richter hat langjährige Schulungserfahrung u.a. als Dozent an der Münchener Volkshochschule und als Ausbilder im Unternehmen. Sein thematischer Schwerpunkt liegt dabei auf der nativen Entwicklung von Apps für Android, der Cross-Plattform-Entwicklung mit Xamarin, der Cloud-Entwicklung mit .Net Core sowie auf dem Einsatz von DevOps.Inhaltsverzeichnis & Leseprobe (PDF-Link)
Android 11 (6. Auflg.)
Das Praxisbuch für professionelle Android-Apps in der 6. Auflage 2020.Sie möchten Android-Apps für Smartphones und Tablets entwickeln? Dann ist dieses Buch genau das Richtige für Sie. Ob GUI, Bluetooth, Kamera, Multimedia, Kontakte oder GPS – hier lernen Sie die Grundlagen, um robuste und performante Apps zu entwickeln. In 80 Beispielprojekten finden Sie Erfolgsrezepte für die App-Entwicklung, die Sie wirklich weiterbringen. Top-aktuell zu Android 11, mit Einstieg in Android Studio 4. Alle Beispiele sind in Kotlin programmiert, der neuen offiziellen Sprache für die Android-Entwicklung. Inkl. Kotlin-Crashkurs mit den wichtigsten Sprachelementen und Konzepten.Leseprobe (PDF-Link)
Pro Spring MVC with WebFlux
Explore the designs of the Spring MVC and WebFlux frameworks, and apply similar designs and techniques to your own code. Along with detailed analysis of the code and functionality, this book includes numerous tips and tricks to help you get the most out of Spring MVC, WebFlux, and Java-based web application development in general using Spring. You’ll see how Spring MVC is a modern web application framework built upon the latest Spring Framework 5 and Spring Boot 2. Spring MVC is suitable for building reusable web controller modules that encapsulate rich page navigation rules.Pro Spring MVC with WebFlux takes great care in covering every inch of Spring MVC with WebFlux to give you the complete picture. Along with all the best-known features of these frameworks, you’ll discover some new hidden treasures. You’ll also learn how to correctly and safely extend the frameworks to create customized solutions.This book is for anyone who wishes to write robust, modern, and useful web applications with the Spring Framework. After reading and using this book, you'll become proficient with Spring MVC and be able to apply it to your own Java web applications and microservices.WHAT YOU WILL LEARN* Use Spring MVC with WebFlux to build Java-based web applications* Employ the various Spring MVC architectures* Work with controllers and routing functions* Build microservices and web services using Spring MVC and REST* Create reactive web applications using Spring WebFlux* Secure Spring MVC and Spring WebFlux* Deploy your Spring MVC application to the cloudWho This Book Is ForThose with at least some prior experience with Java web application development. Some previous experience with Spring Boot or the Spring Framework is recommended.MARTEN DEINUM is a submitter on the open source Spring Framework project. He is also a Java/software consultant working for Conspect. He has developed and architected software, primarily in Java, for small and large companies. He is an enthusiastic open source user and longtime fan, user and advocate of the Spring Framework. He has held a number of positions including software engineer, development lead, coach, and also as a Java and Spring trainer.IULIANA COSMINA is currently a software engineer for Cloudsoft Edinburgh. She has been writing Java code since 2002. She has contributed to various types of applications, including experimental search engines, ERPs, track and trace, and banking. During her career, she has been a teacher, a team leader, a software architect, a DevOps professional, and a software manager.She is a Springcertified 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, traveling, hiking, or biking.1: Setting Up A Local Development Environment2: Spring Framework Fundamentals3: Web Application Architecture4: Spring MVC Architecture5: Implementing Controllers6: Implementing Controllers - Advanced7: REST and AJAX8: Resolving and Implmenting Views9: Introduction to Spring WebFlux10: Building Reactive Applications with Spring WebFlux11: Securing WebFlux Applications12: Spring Security13: Spring Applications in the Cloud
Advanced Programming with STM32 Microcontrollers
This book is project-based and aims to teach the software tools behind STM32 microcontroller programming. Author Majid Pakdel has developed projects using various different software development environments including Keil MDK, IAR Embedded Workbench, Arduino IDE and MATLAB. Readers should be able to use the projects as they are, or modify them to suit to their own needs. This book is written for students, established engineers, and hobbyists. STM32 microcontroller development boards including the STM32F103 and STM32F407 are used throughout the book. Readers should also find it easy to use other ARM-based development boards.Majid Pakdel was born in Mianeh, Iran in 1981. He received his BSc, MSc and PhD in electrical engineering from Amirkabir University of Technology, Isfahan University of Technology and the University of Zanjan respectively. He was a guest PhD student at Aalborg University in 2015-16.
Git für Dummies
Git hat sich als Quellcodeverwaltung durchgesetzt und ist der De-facto-Standard in der Softwareentwicklung. Alle Unternehmen, die noch nicht auf Git sind, werden die nächsten Jahre wechseln. Und nicht nur die Entwicklung - auch Administration, Sicherheit und Dokumentation finden zunehmend auf Git statt. Git ist damit heute das wichtigste Werkzeug für alle digitalen Produkte - quasi die Werkbank. Wenn Sie wissen wollen, wie Sie Git richtig implementieren und welche Regeln Sie für die Zusammenarbeit aufstellen sollten, dann sind Sie hier richtig. Dieses Buch ist eine Einführung in das effektive Arbeiten mit Git - geeignet sowohl für Berufseinsteiger als auch für erfahrene Entwickler, die zu Git wechseln. Michael Kaufmann unterstützt bei CGI, einem internationalen IT-Dienstleister, seine Kunden bei der Transformation zu agilen Organisationen - sowohl technisch im Bereich DevOps und Cloud als auch kulturell und bei der Einführung agiler Management-Methoden. Er ist gelernter Diplom-Betriebswirt, leidenschaftlicher Softwareentwickler, IT-Autodidakt, Trainer, Sprecher auf internationalen Konferenzen und seit 2015 "Microsoft Most Valuable Professional (MVP)". Ebenfalls wurde ihm von Microsoft die Auszeichnung "Microsoft Regional Director (RD)" verliehen.Über den Autor 13EINLEITUNG27Über dieses Buch 27Konventionen in diesem Buch 27Fachbegriffe 28Warum Kommandozeile? 28Der Name für den Haupt-Branch 28Was Sie nicht lesen müssen 29Törichte Annahmen über die Leser 29Wie dieses Buch aufgebaut ist 30Teil I: Grundlagen 30Teil II: Zusammenarbeit 30Teil III: Vertiefung 30Teil: IV: Der Top-Ten-Teil 30Symbole, die in diesem Buch verwendet werden 30Wie es weitergeht 31TEIL I: GRUNDLAGEN 33KAPITEL 1 WAS IST GIT?35Versionsverwaltung – zentral oder verteilt? 36Die Geschichte von Git 37Was bedeutet der Name »Git«? 38Lizenz und Betriebssysteme 39Ausblick 39Kurz und knackig 39KAPITEL 2 DER EINSTIEG AUF WINDOWS 41Die Installation von Git auf Windows 41Die richtige Kommandozeile 51Terminal: Cmder 52Cmd vs PowerShell 52Windows-Subsystem für Linux (WSL) 54Das Windows-Terminal 55Der richtige Editor 56Die Konfiguration von Git 58Authentifizierung 59Kurz und knackig 62KAPITEL 3 DER EINSTIEG AUF MACOS UND LINUX63Der Einstieg auf macOS 63Der Einstieg auf Linux 64Konfiguration 64Authentifizierung 66Arbeiten mit dem Terminal 69Richtig mit dem Terminal umgehen 70Die richtige Konsole finden 71Aufgehübscht: Oh-My-Zsh und Powerlevel10k 71Kurz und knackig 76KAPITEL 4 HINZUFÜGEN, ÄNDERN, BRANCHEN UND MERGEN77Das lokale Repository 78Das Remote-Repository 79Änderungen dem Repository hinzufügen 80Die lokale Entwicklungsumgebung aktualisieren 81Schritt für Schritt: Änderungen der Versionsverwaltung hinzufügen 81Neue Dateien hinzufügen 82Änderungen durchführen 85Arbeiten mit Verzweigungen (Branches) 87Einen Branch erstellen 88Auf einen anderen Branch wechseln 89Arbeiten mit Upstream-Branches 90Änderungen zusammenführen 92Der Fast-Forward-Merge 92Der Merge-Commit 94Konflikte lösen 95Schritt für Schritt: Branchen und Mergen 96Kurz und knackig 97KAPITEL 5 WEITERE WERKZEUGE99Visual Studio Code 99Unterstützung im Working Directory 99Arbeiten mit Branches und Tags 100Unterstützung für Remote-Repositories 100Statusbar und Editor 100Visual-Studio-Code-Erweiterungen 101Benutzeroberflächen für Git 106Sourcetree 106GitKraken 108GitHub Desktop 109Git-GUI 111GitHub für unterwegs 115Visual Studio, Eclipse, IntelliJ und Co. 117Tools mit Windows-Explorer-Integration 118TortoiseGit 118Git-Extensions 121Diff- und Merge-Tools 122Kurz und knackig 125TEIL II: ZUSAMMENARBEIT 127KAPITEL 6 GIT-DIENSTE129GitHub 130Einstieg 130GitHub-Organisationen 134Ein Repository anlegen 136Preise 140Hosting 140Bewertung 140Azure Repos 141Einstieg 141Azure-DevOps-Organisationen 142Ein Projekt erstellen 143Ein Repository erstellen 144Preise 146Hosting 146Bewertung 146GitLab 147Einstieg 147Hosting und Preise 150Bewertung 151Bitbucket 151Einstieg 151Hosting und Preise 155Bewertung 155Kurz und knackig 156KAPITEL 7 GUIDELINES BEI DER EINFÜHRUNG VON GIT157Das richtige Maß an Governance 157Eine minimale Governance-Richtlinie 158Die Wahl des passenden Git-Systems 158Der minimale Git-Workflow 159Namenskonventionen 159Minimale Review-Guidelines 159Weitere Ergänzungen für Pull-Requests 160Empfehlungen für Teams 160Anzahl und Struktur der Repositories 161Review-Guidelines 162Release-Branching 163Umgang mit komplexen Features 163Commit-Messages und Pull-Requests 164Merge-Strategien 164Training 165Kurz und knackig 165KAPITEL 8 GIT-WORKFLOWS 167Was sind Git-Workflows? 167Trunk-Based-Development 168GitHub-Flow 170Release-Flow 173Git-Flow 175Die Haupt-Branches in Git-Flow 175Feature-Branches im Git-Flow 176Release-Branches 177Hotfix-Branches 178Zusammenfassung 179Den richtigen Workflow finden 180Kurz und knackig 181KAPITEL 9 TEAMWORK MIT GIT183Watch, Stars und Forks 183Was ist ein Fork? 185Code-Reviews mit Pull-Requests 192Branch-Protection 199Automatisierung 202Code-Owners 204Der Umgang mit Commits und Messages 205Der Pull-Request-Lebenszyklus 208Kurz und knackig 209KAPITEL 10 WENIGER KOMPLEXITÄT DURCH FEATURE-FLAGS211Was sind Feature-Flags? 211Der Feature-Lebenszyklus 213Weitere Einsatzmöglichkeiten von Feature-Flags 215Wo fängt man an? 216Frameworks 217LaunchDarkly 218Feature-Flags und technische Schulden 219Kurz und knackig 221KAPITEL 11 KONTINUIERLICH BAUEN UND AUSLIEFERN223Was ist CI und CD? 223Build-Infrastruktur 225Kontinuierliche Qualität 225Tests und Code-Coverage 226Code-Analyse und Quality-Gates 228Automatisierte Deployments 229Infrastruktur als Code 229App-Stores, Registries und Paketmanager 230Die Bedeutung von Containern 232Azure Pipelines 234Ihre erste Pipeline 234Technische Schulden meistern 242GitHub Actions 249Ihr erster Workflow 249Ihre erste GitHub-Action 251Weitere CI/CD-Plattformen 254Kurz und knackig 254KAPITEL 12 OPEN-SOURCE-PROJEKTE255Geschichte 256Open Source versus Open Development 256Open Source und Sicherheit 257Ihr erstes Open-Source-Projekt 261Wann ist der richtige Zeitpunkt? 262Ist es die richtige Lösung? 262Name und Branding 262Open-Source-Checkliste 263Standardisierung und Automatisierung 264Eine Community aufbauen 264Geld verdienen mit Open Source 265Kurz und knackig 266TEIL III: VERTIEFUNG 269KAPITEL 13 UNTER DER HAUBE 271Warum ist Git so schwierig? 271Der gerichtete azyklische Graph 272Der Hash oder SHA-1 273Die Anatomie eines Commits 274Was ist denn nun eigentlich Git? 284Warum ist Git so einfach? 285Kurz und knackig 285KAPITEL 14 ZEITREISEN MIT GIT 287Geschichte ist Geschichte 287Freie Wahl der Arbeitsweise 289Änderungen rückgängig machen 289Änderungen mit Revert transparent zurücknehmen 289Commits nachbessern mit Amend 291Zeitreisen mit Reset 291Navigieren in der Zeit 296Zeitlinien manipulieren 300Zurück in die Zukunft mit Rebase 300Änderungen bündeln mit Squash 302Rosinen herauspicken 304Die Vergangenheit interaktiv manipulieren 304Die Vergangenheit mit Filter-Branch manipulieren 308Manipulierte Zeitlinien mit Force-Push übertragen 310Fragen Sie nicht, wozu Git fähig ist 310Kurz und knackig 311KAPITEL 15 MEHR ZUM BRANCHING UND MERGING313Branches und Tags 313Vorspulen mit Fast-Forward 316Ein echter Merge 317Ein Octopus-Merge 31Konflikte automatisch lösen 319Konflikte manuell lösen 320Merge-Strategien 323Recursive 323Resolve 324Octopus 325Ours 325Subtree 325Daten vom Remote laden mit »git pull« 325Kurz und knackig 326KAPITEL 16 COMMITS UND TAGS SIGNIEREN329Warum sollte man Commits signieren? 330Was ist GPG? 333Installation und Konfiguration 333Installation auf dem Mac 333Installation auf Windows 334Installation auf Linux 334Ein Schlüsselpaar generieren 334Weitere E-Mail-Adressen konfigurieren 337Die Konfiguration von Git 337Konfiguration von GitHub 338Visual Studio Code konfigurieren 338Der erste signierte Commit 339Kurz und knackig 340KAPITEL 17 GIT-SUBMODULE341Submodule in Git-Repository einbinden 341Submodule klonen 343Submodule aktualisieren 344In Submodulen arbeiten 345Kurz und knackig 347KAPITEL 18 GROẞE DATEIEN UND GROẞE REPOSITORIES349Git-LFS 349Wann sollen Sie Git-LFS verwenden? 349Installation von Git-LFS 350Git-LFS verwenden 350Große Dateien sperren 351Nachteile 351Große Repositories 352VFS for Git 352Scalar 352Kurz und knackig 354KAPITEL 19 GIT AN IHRE BEDÜRFNISSE ANPASSEN355Dateien ignorieren 355Arbeiten mit unterschiedlichen Dateitypen 357Binärdateien 357Bestimmte Dateitypen versionieren 357Inhalte vor dem Ein- oder Auschecken filtern oder bearbeiten 358Formatierung von Dateien 361Der richtige Umgang mit Zeilenenden 361Encoding 362Leerzeichen, Tabs und Spaces 362Kurz und knackig 364TEIL IV: DER TOP-TEN-TEIL 365KAPITEL 20 ZEHN TIPPS ZUM EINSTIEG IN GIT367Lernen und verwenden Sie Git auf der Konsole 367Der richtige Git-Prompt 367Richten Sie sich eine Wohlfühlkonsole ein 368Lernen Sie die Shortcuts für Ihr Terminal 368Lernen Sie einen Editor 36Lernen Sie die Shortcuts für den Editor 368Üben Sie in der Git-School 368Erstellen Sie ein Konto auf GitHub 368Verwenden Sie einen schlanken Workflow 369Arbeiten Sie mit Pull-Requests 369Kurz und knackig 369KAPITEL 21 ZEHN TIPPS ZUR ERHÖHUNG DER EFFIZIENZ371Arbeiten mit Aliasen in Git 371Besser Vergleichen mit »diff-so-fancy« 374Automatisieren mit Git-Hooks 376Clientseitige Hooks 376Serverseitige Hooks 377Bessere Commit-Messages mit Commit-Templates 378Einzelne Commits testen 37Besser Versionieren mit Git-Version 379Merges aufzeichnen mit rerere 381Autokorrektur von Kommandos 383Arbeit zwischenspeichern mit Stash 384Kurz und knackig 385KAPITEL 22 ZEHN DINGE, DIE SIE NICHT TUN SOLLTEN387Direkt auf dem Haupt-Branch arbeiten 387Mit langlebigen Branches arbeiten 387Passwörter und andere Secrets in Git speichern 388Nicht oft genug committen 388Git nicht als Versionsverwaltung nutzen 388Große Dateien speichern 388Einen Pull-Request für viele Änderungen verwenden 389Einen Reset durchführen, ohne vorher zu speichern 389Die veröffentlichte Historie modifizieren 389Einen Force-Push durchführen 389Kurz und knackig 390KAPITEL 23 ZEHN GIT-BEFEHLE, DIE SIE KENNEN SOLLTEN391Bugs finden mit git bisect 391Dateien umbenennen mit git mv und git rm 393In Git suchen mit git grep und git log 394Den Schuldigen finden mit git blame 397Aufräumen mit git clean 398Einen Brach wechseln mit git switch 398Arbeiten mit Patches: git add ––patch und git apply 399Kurz und knackig 403KAPITEL 24 ZEHN GIT-BEFEHLE, DIE IHNEN BEI PROBLEMEN HELFEN 405Magische Zeitmaschine 405Vergessen, Änderungen hinzuzufügen 406Commit-Message nachträglich ändern 406Aus Versehen auf den Haupt-Branch committed 406Commit auf falschen Branch 407Diff zeigt nichts an 407Älteren Commit rückgängig machen 407Änderungen an einer Datei rückgängig machen 408Von Neuem beginnen (a) 408Von Neuem beginnen (b) 409Kurz und knackig 409Stichwortverzeichnis 413
Introducing Microsoft Access Using Macro Programming Techniques
Learn Microsoft Access by building a powerful database application from start to finish.Microsoft Access ships with every version of Office, from Office 2019 to Office 365 Home and Personal editions. Most people understand the value of having a reliable contact database, but few realize that Access can be an incredibly valuable data tool and an excellent gateway for learning database development.INTRODUCING MICROSOFT ACCESS USING MACRO PROGRAMMING TECHNIQUES approaches database development from a practical and experiential standpoint. You will learn important data concepts as you journey through each step of creating a database using Access. The example you will build takes advantage of a massive amount of data from an external source of nutritional data (USDA). You will leverage this freely available repository of information in multiple ways, putting Access to the test in creating powerful business solutions that you can then apply to your own data sets. The tables and records in this database will be used to demonstrate key relational principles in Access, including how to use the relationship window to understand the relationships between tables and how to create different objects such as queries, forms, reports, and macros. Using this approach, you will learn how desktop database development can be a powerful solution to meet your business needs.WHAT YOU WILL LEARN* Discover the relational database and how it is different from other databases* Create database tables and establish relationships between them to create a solid relational database system* Understand the concept and importance of referential integrity (RI) in data and databases* Use different types of Access queries to extract the information you need from the database* Show database information in individual, customized windows using Access Forms* Present insightful information about the database using Access Reports* Automate your database solutions with macrosWHO THIS BOOK IS FORAnyone who wants to learn how to build a database using Microsoft Access to create customized solutions. It is also useful for those working in IT managing large contact data sets (healthcare, retail, etc.) who need to learn the basics in order to create a professional database solution. Readers should have access to some version of Microsoft Access in order to perform the exercises in this book.FLAVIO MORGADO is a food engineer with an MSc. degree in food science and technology, a VBA professional developer, and a professor of epidemiology, statistics, and medical informatics at UNIFESO, a health sciences university in Rio de Janeiro, Brazil. Flavio has written more than 30 books, including Programming Excel with VBA (Apress) and Microsoft Word Secrets (Apress), and has translated many technical books. He also loves animals and the exquisite nature of the surrounding rainforest, and when he is not teaching, writing, or developing, he can be found running or riding his mountain bike through the Teresopolis Mountains, followed by his eight dogs, or spending time on the stunningly beautiful beaches of Cabo Frio in Rio de Janeiro.Chapter 1: A Primer on DatabasesChapter 2: Creating and Using Database TablesChapter 3: Creating QueriesChapter 4: Using FormsChapter 5: Using MacrosChapter 6: Using Reports