Programmierung
Multi-Platform Graphics Programming with Kivy
Modern science requires computer graphics models to provide realistic visual renderings. Learning the appropriate programming tools for 2D and 3D modeling doesn’t have to be so difficult. This book reviews the best programming tools to achieve this and explains how to apply them to mobile platforms like Android.Multi-Platform Graphics Programming with Kivy provides a straightforward introductory approach for designing 2D, 3D, and stereoscopic applications, using analytical equations from vector algebra. Throughout the book you’ll look closely at this approach and develop scenes in Kivy, taking advantage of powerful mathematical functions for arrays by NumPy for Python.Unbuntu is used to develop the programs, which allows you to easily convert to Android platform. Each chapter contains step-by-step descriptions on each subject and provides complete program listings.WHAT YOU’LL LEARN* Work with Kivy, a modern, powerful multi-platform graphics system* Convert and run programs on Android devices* Program, fill faces, and rotate 2D and 3D polygons* Apply the concepts of 2D and 3D applications* Develop stereoscopic scenes* Review a straightforward introduction to 2D, 3D, and stereoscopic graphics applications* Use simple analytical equations from vector algebraWHO THIS BOOK IS FORThe primary audience is students and researchers in graphics programming with experience in analytical equations.Moisés Cywiak is a researcher in physical optical sciences with over 20 years of teaching experience in physics, mathematics, electronic engineering, and programming in C, C++, and python, in Centro de Investigaciones en Óptica A.C.David Cywiak received his Ph.D. degree in physics in 2014 from Universidad de Guanajuato. From 2012 to 2013 he collaborated as a guest researcher at the Dalton Cardiovascular Research Center, University of Missouri-Columbia, in the development of an optical-photoacoustic system intended for the detection of photoacoustic signals generated by cancerous cells. Since 2014 he has been working as a metrologist in the Thermometry Department at Centro Nacional de Metrologia, México. His research includes photoacoustics, optical engineering and radiation thermometry. He has over 7 years of experience teaching physics, mathematics and programming in C for undergraduate students. He also has over 5 years of experience teaching Temperature measurement techniques and calibration of instruments in the thermometry area for industry professionals.Chapter 1: Preliminaries. Software installation1.1. installing pip3 and IDLE1.2. Installing kivy1.3. Installing buildozerChapter 2: Polygon rotation in two dimensions2.1. Rotation equations2.2. Mapping equations to the screenChapter 3: Two dimensional polygon programming3.1. Polygon structure3.2. Drawing the edges of the polygon3.3. Filling the polygon with lines3.4. Rotating the polygon3.5. The kivy platform3.6. main.py listing3.7. File.kv lisitng3.8. Using buildozerChapter 4: Three-dimensional projections and rotations4.1. Projection of a three-dimensional point into a plane4.2. Rotation of a point in a planeChapter 5: Programming three-dimensional polygons5.1. Polygon structure5.2. Basic functions5.3. main.py listing5.4. File.kvChapter 6: Stereoscopic 3D Programming6.1. Basics of a stereoscopic view6.2. Programming and ORing the images6.3. Projections6.4. Polygon structure6.5. DrawAxes function6.6. Points of projection6.7. main.py listing6.8. File.kvChapter 7: 3D plots programming7.1. Program basic operations7.2. Function overview7.3. Generating the axes, the mesh and the function7.4. Plotting the function in the screen7.5. Rotating the plot7.6. main.py listing7.7. File.kv listingChapter 8: Stereoscopic 3D plots8.1. Creating the function, coordinates and mesh8.2. Creating two images for stereoscopic effects8.3. Drawing the plot8.4. main.py listing8.5. File.kv listing8.6. Surfaces with saddle pointsChapter 9: 3D parametric plots9.1. Parametric equations9.2. Plotting9.3. main.py9.4. File.kvChapter 10: Stereoscopic 3D parametric plots10.1. Generating the function10.2. Creating PIL images for the stereoscopic effect10.3. Plotting the function10.4. main.py10.5. File.kvChapter 11: Sympy11.1. Analytical expressions and symbols11.2. Declaring functions with analytical expressions11.3. Solving equations11.4. Solving simultaneous equations11.5. Differentiation11.6. IntegrationChapter 12: Plotting functions in spherical coordinates12.1. Spherical coordinates12.2. Spherical differential equation example12.3. The associated Legendre polynomials12.4. Plotting 3D spherical coordinates12.5. main.py listing12.6. File.kv listing12.7. Incorporating sympy into the Android projectChapter 13. Stereoscopic plots of spherical functions13.1. Creating the stereoscopic scenes13.2. main.py listing13.3. File.kv listingChapter 14. Stereoscopic simple numerical method for the gravitational N-body problem14.1. The gravitational N-body problem14.2. Motion equations14.3. Numerical approach of the dynamic equations14.4. Capturing numerical data14.5. Five planets example14.6. main.py listing14.7. File.kvChapter 15. Stereoscopic cylindrical coordinates plotting. Aberrations of optical lenses15.1. Ideal lens focusing. The Fresnel diffraction integral15.2. Departure from the ideal lens15.3. The wave aberration function in cylindrical coordinates15.4. Stereoscopic plot of the wave aberration terms in cylindrical coordinates15.5. main.py listing15.6. File.kv listingChapter 16. Stereoscopic plotting of three-dimensional conics16.1. Analytical approach16.2. Stereoscopic ellipsoid plotting16.3. main.py (Ellipsoid)16.4. File.kv16.5. HyperboloidChapter 1: Preliminaries. Software installation1.1. installing pip3 and IDLE1.2. Installing kivy1.3. Installing buildozerChapter 2: Polygon rotation in two dimensions2.1. Rotation equations2.2. Mapping equations to the screenChapter 3: Two dimensional polygon programming3.1. Polygon structure3.2. Drawing the edges of the polygon3.3. Filling the polygon with lines3.4. Rotating the polygon3.5. The kivy platform3.6. main.py listing3.7. File.kv lisitng3.8. Using buildozerChapter 4: Three-dimensional projections and rotations4.1. Projection of a three-dimensional point into a plane4.2. Rotation of a point in a planeChapter 5: Programming three-dimensional polygons5.1. Polygon structure5.2. Basic functions5.3. main.py listing5.4. File.kvChapter 6: Stereoscopic 3D Programming6.1. Basics of a stereoscopic view6.2. Programming and ORing the images6.3. Projections6.4. Polygon structure6.5. DrawAxes function6.6. Points of projection6.7. main.py listing6.8. File.kvChapter 7: 3D plots programming7.1. Program basic operations7.2. Function overview7.3. Generating the axes, the mesh and the function7.4. Plotting the function in the screen7.5. Rotating the plot7.6. main.py listing7.7. File.kv listingChapter 8: Stereoscopic 3D plots8.1. Creating the function, coordinates and mesh8.2. Creating two images for stereoscopic effects8.3. Drawing the plot8.4. main.py listing8.5. File.kv listing8.6. Surfaces with saddle pointsChapter 9: 3D parametric plots9.1. Parametric equations9.2. Plotting9.3. main.py9.4. File.kvChapter 10: Stereoscopic 3D parametric plots10.1. Generating the function10.2. Creating PIL images for the stereoscopic effect10.3. Plotting the function10.4. main.py10.5. File.kvChapter 11: Sympy11.1. Analytical expressions and symbols11.2. Declaring functions with analytical expressions11.3. Solving equations11.4. Solving simultaneous equations11.5. Differentiation11.6. IntegrationChapter 12: Plotting functions in spherical coordinates12.1. Spherical coordinates12.2. Spherical differential equation example12.3. The associated Legendre polynomials12.4. Plotting 3D spherical coordinates12.5. main.py listing12.6. File.kv listing12.7. Incorporating sympy into the Android projectChapter 13. Stereoscopic plots of spherical functions13.1. Creating the stereoscopic scenes13.2. main.py listing13.3. File.kv listingChapter 14. Stereoscopic simple numerical method for the gravitational N-body problem14.1. The gravitational N-body problem14.2. Motion equations14.3. Numerical approach of the dynamic equations14.4. Capturing numerical data14.5. Five planets example14.6. main.py listing14.7. File.kvChapter 15. Stereoscopic cylindrical coordinates plotting. Aberrations of optical lenses15.1. Ideal lens focusing. The Fresnel diffraction integral15.2. Departure from the ideal lens15.3. The wave aberration function in cylindrical coordinates15.4. Stereoscopic plot of the wave aberration terms in cylindrical coordinates15.5. main.py listing15.6. File.kv listingChapter 16. Stereoscopic plotting of three-dimensional conics16.1. Analytical approach16.2. Stereoscopic ellipsoid plotting16.3. main.py (Ellipsoid)16.4. File.kv16.5. Hyperboloid16.6. main.py (Hyperboloid)Chapter 17. Two-dimensional Fourier transform17.1. One-dimensional Fourier transform17.2. Rectangular and sinc functions17.3. Code for calculating the discrete one-dimensional Fourier transform17.4. Two-dimensional Fourier transform17.5. Discrete two-dimensional Fourier transform17.6. main.py lisitng17.7. File.kv listing17.8. The Fourier transform of the circular function17.9. Analytical formulation for the Fourier transform of the circular functionChapter 18. Stereoscopic two-dimensional Fourier transform18.1. Piloting the functions18.2. main.py listing18.3. File.kv listing16.6. main.py (Hyperboloid)Chapter 17. Two-dimensional Fourier transform17.1. One-dimensional Fourier transform17.2. Rectangular and sinc functions17.3. Code for calculating the discrete one-dimensional Fourier transform17.4. Two-dimensional Fourier transform17.5. Discrete two-dimensional Fourier transform17.6. main.py lisitng17.7. File.kv listing17.8. The Fourier transform of the circular function17.9. Analytical formulation for the Fourier transform of the circular functionChapter 18. Stereoscopic two-dimensional Fourier transform18.1. Piloting the functions18.2. main.py listing18.3. File.kv listing
Introduction to Python for Kids
Want to create cool games and apps to impress your friends (or yourself), but not sure where to start? Or, have you tried your hand at programming, but got utterly bored after combing through hundreds of pages of dry text? Then you’ve come to the right place! This book is the perfect blend of education and fun for kids 8 years and above looking to learn the magic of Python, one of the easiest and most powerful programming languages around, all while solving fun puzzles and building your own projects on the way.Yes, there’ll be chapters on the fundamentals of Python, such as variables, numbers, strings, automation with conditions, loops and functions, objects, and files. But, early on in the book you’ll get started with Turtle, a Python package that was custom-made for kids like you. It lets you literally draw and animate on your computer! Every concept will be interspersed with a fun mini project with Turtle, so you’ll never get bored. Once you get the fundamentals down, you’ll dive right into Tkinter and Pygame, more fun Python packages (goodbye theory!) and you’ll learn all about creating apps and games like the ones you see and use every day (bouncing ball, temperature converter, calculator, rock-paper-scissors, and so much more!).There are also four capstone projects at the end of the book that convert everything you’ve learned so far into full-blown apps and games that you can show off to your friends, parents, and even teachers! You’ll be creating a snake game with Turtle, a tic tac toe game with Tkinter, a full-fledged paint app, again with Tkinter, and finally, a classic space shooters game with Pygame (the cherry on top). Every project chapter will be accompanied with the logic behind the game/app and an explanation on how you’ve arrived at the logic. You’ll develop strong problem solving skills that’ll help you create future projects on your own.There are also two chapters dedicated to just creating fun mini projects and puzzles, one of them placed in the middle of the book to give you a welcome break from all the learning. The book ends with an overview on web development with Python and ideas for more fun projects and puzzles you can solve on your own. Become the “most likely to succeed” kid in your grade while having the most fun getting there!WHAT YOU'LL LEARN* Gain a gentle, but thorough introduction into the world of programming and Python* Create programs and solve problems with core Python concepts* Build mini projects and capstone projects (showcase worthy) with Turtle, Tkinter, and Pygame * Develop programming skills while doing the puzzles and activities described in the book WHO THIS BOOK IS FORKids 8 years and above.Aarthi Elumalai is a programmer, educator, entrepreneur, and innovator. She has a Bachelor of Engineering degree in Computer Science from Anna University, Chennai.Since then, she has managed a team of programmers and worked with 100s of clients. She is also launched a dozen web apps, plugins and software that are being used by thousands of customers online.She has over 15 years of experience in programming. She started coding in Basics at the age of 12, but her love for programming took root when she came across C programming at the age of 15.She is the founder of DigiFisk, an E-learning platform that has more than 60,000 students all over the world. Her courses are well-received by the masses, and her unique, project-based approach is a refreshing change to many. She teaches the complex world of programming by solving a ton of practical exercises and puzzles along the way. Her courses and books always come with hands-on training in creating real world projects using the knowledge learned so her students get better equipped for the real world.When she is not working on her next course or book, you'll see her researching her next product idea and refining her existing products. She is currently committed to bringing the sheer power of artificial intelligence to make life easier for small business owners.Chapter 1. Did You Know?.- Chapter 2. Let's Install Python.- Chapter 3. Your First Python Program.- Chapter 4. Python Loves Numbers.- Chapter 5. Let's Play With Our Numbers.- Chapter 6. Draw Cool Stuff with Turtle.- Chapter 7. A Turtle Deep Dive.- Chapter 8. Play with Letters and Words.- Chapter 9. Follow My Command! . Chapter 10. Automate a Little.- Chapter 11. Lots and Lots of Information.- Chapter 12. Fun Mini Projects Galore.- Chapter 13. Automate with Functions.- Chapter 14. Let’s Create Real World Objects.- Chapter 15. Python and Files.- Chapter 16. Create Cool apps with TKinter.-Chapter 17. Tic Tac Toe Game with Tkinter .- Chapter 18. Project: Paint App with Tkinter.- Chapter 19. Project: Snake Game with Turtle .- Chapter 20. Become a Game Developer with PyGame.- Chapter 21. Project: Space Shooters Game with PyGame.- Chapter 22. Web Development with Python.- Chapter 23. More Mini Projects.- Chapter 24. What’s Next?.
Introduction to Video Game Engine Development
Start your video game development journey by learning how to build a 2D game engine from scratch. Using Java (with NetBeans as your IDE and using Java’s graphics framework) or by following along in C# (with Visual Studio as your IDE and using the MonoGame framework), you’ll cover the design and implementation of a 2D game engine in detail. Each class will be reviewed with demonstration code. You’ll gain experience using the engine by building a game from the ground up.Introduction to Video Game Engine Development reviews the design and implementation of a 2D game engine in three parts. Part 1 covers the low-level API class by class. You’ll see how to abstract lower-level functionality and design a set of classes that interact seamlessly with each other. You’ll learn how to draw objects, play sounds, render text, and more. In Part 2, you’ll review the mid-level API that is responsible for drawing the game, loading resources, and managing user input. Lastly, in Part 3, you’ll build a game from the ground up following a step-by-step process using the 2D game engine you just reviewed.On completing this book, you’ll have a solid foundation in video game engine design and implementation. You’ll also get exposure to building games from scratch, creating the solid foundation you’ll need to work with more advanced game engines, and industry tools, that require learning complex software, APIs, and IDEs.WHAT YOU WILL LEARN* Gain experience with lower-level game engine APIs and abstracting framework functionality* Write application-level APIs: launching the game, loading resources, settings, processing input, and more * Discover cross-platform APIs in the game engine projects written in both Java and C#/MonoGame * Develop games with an SDK-based game engine and simplified tool chain focused on direct control of the game through code* Master creating games by using the game engine to build a game from the ground up with only code and an IDEWHO THIS BOOK IS FORThose of you out there with some programming experience, moderate to advanced, who want to learn how to write video games using modern game engine designs.Victor Brusca is an experienced software developer specializing in building cross-platform applications and APIs. He regards himself as a self-starter with a keen eye for detail, an obsessive protection of systems/data, and a desire to write well-documented, well-encapsulated code. With over 14 years' software development experience, he has been involved in game and game engine projects on J2ME, T-Mobile SideKick, WebOS, Windows Phone, Xbox 360, Android, iOS, and web platforms.Chapter 1: MmgBase API IntroductionChapter 2: Base ClassesChapter 3: Helper ClassesChapter 4: Other ClassesChapter 5: Advanced ClassesChapter 6: Widget ClassesChapter 7: Animation ClassesChapter 8: Game Screen ClassesChapter 9: MmgCore API IntroductionChapter 10: Static Main Entry PointChapter 11: Dynamic SettingsChapter 12: Event HandlersChapter 13: Resource LoadingChapter 14: Game ScreensChapter 15: Game Build IntroductionChapter 16: PongClone Project SetupChapter 17: PongClone Main Menu ScreenChapter 18: PongClone Game ScreenChapter 19: Conclusion
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 second edition of VISUAL STUDIO CODE DISTILLED has been updated and expanded with two new chapters on writing apps with Python and building apps for the cloud and deployment to Azure.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* Comprehend Visual Studio Code in a way that is not just theory or a list of features, but an approach driven by developer tasks and needs* Understand integrated support for team collaboration with Git for executing and debugging code, and the many ways you can extend and customize Visual Studio Code* Debug code on multiple platforms through real-world guidance, such as working under corporate networks* Expand your coding intelligence from web to mobile to the cloud* 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 2: Getting to Know the EnvironmentChapter 3: Language Support and Code Editing FeaturesChapter 4: Working with Files and FoldersChapter 5: Customizing Visual Studio CodeChapter 6: Installing and Managing ExtensionsChapter 7: Source Control with GitChapter 8:Automating TasksChapter 9: Building and Debugging Applications: .NET 5 and Other PlatformsChapter 10: Building Applications with PythonChapter 11: Deploying Applications to Azure
Visual Studio Code for Python Programmers
BECOME PROFICIENT AND EFFICIENT WITH VISUAL STUDIO CODE AND LEARN HOW TO INTEGRATE ALL YOUR EXTERNAL TOOLS!Visual Studio Code for Python Programmers helps Python developers become not just familiar, but productive in Visual Studio Code. To start, you’ll find the steps for installing Visual Studio Code on Windows, Mac and Linux platforms, along with an introduction to the editing features of the workspace. Coverage of more advanced functionality includes managing source code, debugging, unit testing, and Jupyter Notebook support. The book finishes with a walk-through of real-world projects which utilize Visual Studio Code features introduced in the book.For developers, the choice of an editor is a very personal one. You have idiosyncratic needs and wants that are unique to you as a developer. This book will help you learn how to customize Visual Studio Code to meet your needs and Python development workflow.* Introduces you to the features of the Visual Studio Code workspace and how those features can be customized* Demonstrates how Visual Studio Code allows you to choose your structure according to your needs* Covers editing code in Python, including syntax highlighting, code completion, object definition, refactoring, and code navigation* Describes Git integration and how to perform common Git functions (commits, checkouts, branches, and merges) from within Visual Studio Code* Highlights debugging features for Python developersA final section on Real World Applications will step you through several examples (and features integration with Django, Flask, Jupyter Notebook, Docker, and Azure), so you can hit the ground running with Visual Studio Code.APRIL SPEIGHT is a developer who specializes in Python and conversational design for chat bots and AI Assistants. Her passion for learning and teaching Python led to her first published title, Bite-Size Python: An Introduction to Python Programming. She currently works on content creation and developer community engagement for Spatial Computing and Mixed Reality at Microsoft. Introduction xixPART I WELCOME TO VISUAL STUDIO CODE 1CHAPTER 1 GETTING STARTED 3Installing Visual Studio Code 4The Visual Studio Code User Interface 4Activity Bar 5Side Bar 6Editor 7Panels 11Status Bar 12Command Palette 12Extensions 14Customizations 15Settings 16Color Themes and Icons 18Keybindings 18Display Langage 18Summary 19CHAPTER 2 HELLO WORLD FOR PYTHON 21Installing a Python Interpreter 21macOS 22Linux 22Windows 22Installing the Python Extension for Visual Studio Code 22Creating a Python File 23Selecting an Interpreter 24Setting a Default Interpreter 26Settings Editor 26settings.json File 26Selecting a Linter 26Editing a Python File 27Running a Python File 29Workflow Recap 30Summary 31CHAPTER 3 EDITING CODE 33Quick Fixes 34Code Completion, Definitions, and Declarations 35Formatting 38Edit Formatting Settings in the Settings Editor 39Edit Formatting Settings in settings.json 40Linting 41Enable and Disable Linting 41Run Linting 42Linting Settings 43Refactoring 44Extract Variable 44Extract Method 45Sort Imports 46Snippets 47Summary 48PART II ADDITIONAL VISUAL STUDIO CODE FEATURES 51CHAPTER 4 MANAGING PROJECTS AND COLLABORATION 53Files and Folders 53Open a Project 54Navigate Files 56Search across Files 57Close a File or Folder 60Environments 60Virtual Environments 61Conda Environments 61Source Control 63Initialize a Repository 65Commit Changes 66Branches 69Remotes 70Gutter Indicators 71View Diffs 71Push and Merge Commits 73Pull Requests 74Live Share 74Install Live Share 75Sign In to Live Share 76Share a Project 76Join a Session 78Editing and Collaboration 80Follow a Participant 80Share a Terminal 81Summary 82CHAPTER 5 DEBUGGING 83Starting a Debug Session 84Debug Commands 89Continue 89Step Over 90Step Into 90Step Out 91Stop 91Restart 92Call Stack 92Triggering a Breakpoint 93Logpoints 95Watch 96The Debug Console 98Launch Configurations 101Summary 104CHAPTER 6 UNIT TESTING 105Enable and Discover Tests 105Run Tests 109Debug Tests 113Summary 115CHAPTER 7 JUPYTER NOTEBOOK 117Creating and Opening a Jupyter Notebook 118Code Cell Modes 120Adding Cells 121Editing Cells 122Running a Cell 124Running a Single Cell 124Running All Code Cells 124Running Cells Above and Below a Code Cell 125Additional Commands 126Viewing Variables and Data 126Viewing Plots 128Debugging a Jupyter Notebook 129Connecting to a Remote Server 130Exporting a Notebook 131Summary 132CHAPTER 8 USING GIT AND GITHUB WITH VISUAL STUDIO CODE 135Getting Started 135GitHub Pull Requests and Issues Extension 136Publish a Project to GitHub 139Push Changes to GitHub 141Manage Pull Requests and Issues 143Pull Requests 144Issues 147Clone Repository 152Timeline View 154Summary 156CHAPTER 9 DEPLOY A DJANGO APP TO AZURE APP SERVICE WITH THE AZURE APP SERVICE EXTENSION 157Getting Started 157Creating a Django Project 159Creating an App 161Creating a Home Page 163Creating Website Pages 166Deploying to Azure 168Summary 175CHAPTER 10 CREATE AND DEBUG A FLASK APP 177Getting Started 177Create a Flask App 178Create and Render a Template 180Debug the Flask App 184Summary 187CHAPTER 11 CREATE AND DEPLOY A CONTAINER WITH AZURE CONTAINER REGISTRY AND AZURE APP SERVICE 189Getting Started 189Create a Container 191Add Docker Files to the Project 191Build an Image 193Build and Run a Container 195Debug a Container 197Push an Image to the Registry 197Create an Azure Container Registry 198Determine the Image’s Registry Location 199Deploy the Container Image to Azure 201Make Changes to the App and Deploy 205Multicontainer Apps 206Summary 207CHAPTER 12 DEPLOY AN AZURE FUNCTION TRIGGER BY A TIMER 209Getting Started 210Create an Azure Function 211Invoke the Function Locally 213Add the Code to the Function 214Deploy the Function to Azure 215Summary 220APPENDIX GETTING STARTED WITH AZURE 221Index 225
SPS-Programmierung mit dem Raspberry Pi und dem OpenPLC-Projekt
Einführung in die SPS-Programmierung mit dem Open-Source-Projekt auf dem Raspberry Pi und Modbus-Beispiele'mit dem'Arduino Uno und ESP8266Die SPS-Programmierung ist heute in der Industrie und in der Hausauto-mation sehr weit verbreitet. In diesem Buch beschreibt der Autor, wie der Raspberry Pi 4 als SPS eingesetzt werden kann. Angefangen mit der Softwareinstallation auf dem Raspberry Pi und dem SPS-Editor auf dem PC geht es nach einer Beschreibung der Hardware an das Programmieren.Es folgen interessante Beispiele nach IEC 61131-3 in den verschiedenen Programmiersprachen. Ausführlich wird auch erklärt, wie der SPS-Editor benutzt wird und wie die Programme auf den Raspberry Pi geladen und ausgeführt werden. Angefangen mit der Programmierung mit KOP (Kontaktplan) über ST (Structured Control Language) bis zu AS (Special Function Chart) werden alle IEC-Sprachen mit Beispielen behandelt. Diese können auf der Website des Autors heruntergeladen werden.Auch die Vernetzung kommt nicht zu kurz. Der Arduino Uno und der ESP8266 werden als ModbusRTU- bzw. ModbusTCP-Module program-miert, um ZugriŸ auf externe Peripherie zu erhalten. Damit ist es möglich, Sensoren einzulesen und Verbraucher zu schalten. Interessant dürften auch E/A-Schaltungen sein, die dem 24V-Industriestandard entsprechen.Befehlsübersichten für ST und KOP runden das Buch ab.Nach dem Durcharbeiten des Buches ist der Leser in der Lage, eigene SPS-Steuerungen mit dem Raspberry Pi zu verwirklichen.Josef Bernhardt hat sich schon früh mit Elektronik beschäftigt. Mit zwölf Jahren baute er seinen ersten Detektorempfänger. Die ersten Programmiererfahrungen sammelte er in den 80er-Jahren mit dem Commodore VC20. Auch Assemblerprogrammierung auf dem 8088-Prozessor ist ihm nicht fremd. Er kann auf über 30 Jahre Elektronikentwicklung an der Uni Regensburg zurückblicken. Dort war er im Bereich Elektronik- und Softwareentwicklung tätig. Mit der eigenen SMD-Fertigung setzt er auch Elektronikprojekte von Kunden um. Der Spaß an Elekt-ronik und Programmierung sowie sein Interesse an allem Neuen begleiten ihn schon sein ganzes Leben lang.
Captain CiaoCiao erobert Java
Bessere Java-Skills entwickeln und trainieren. Das Trainingsbuch für besseres Java.Das große Java-Trainingsbuch – vom Autor des Klassikers »Java ist auch eine Insel«. Heben Sie Ihre Coding-Fähigkeiten auf das nächste Level und testen Sie Ihre Java-Kenntnisse an kniffligen Programmieraufgaben rund um den Piratenkapitän CiaoCiao. Christian Ullenboom bietet Ihnen alles, was Sie dazu brauchen: Übungen zu Features und Kniffen, die man als Profi im Detail kennen sollte, sowie ein intensives Training für Clean Code und durchdachtes Design, das auch komplexe Software trägt. Zahlreiche Best Practices und ausführlich kommentierte Lösungen zu den Aufgaben machen dieses Buch zum perfekten Workout für die professionelle Softwareentwicklung mit Java.Aus dem InhaltAlle BasicsAufgaben in drei SchwierigkeitsstufenThemen auf vielen NiveausThreadsicherheitStrings und reguläre AusdrückeFunktionale ProgrammierungComparator- und Comparable-InterfaceXML, JSON und mehr verarbeitenSchnittstellen zum BetriebssystemReflection-API von A bis ZStreams, Datenbanken u. v. m.Annotations gekonnt einsetzenInhalt (PDF-Link)Leseprobe (PDF-Link)
ABAP in Eclipse
Master Advanced Business Application Programming (ABAP) Development Tools by installing, customizing, and using them in Eclipse.The book begins by describing the installation and customization of ABAP Development Tools in Eclipse and how to adjust the IDE to meet your requirements. You will discover the ABAP Development Tools functionality that helps you be more efficient in programming in the ABAP language, including refactoring, markers, quick fixes, unit testing, and much more. Moving on, you will cover the available Eclipse plugins that you can use with ABAP Development Tools to make Eclipse even more developer-friendly: ABAP Continuous Integration and ABAP Extensions. Finally, you will learn how to create your own Eclipse plugin that is integrated with ABAP Development Tools.This book is perfect for every ABAP developer who wants to get started with ABAP Development Tools in Eclipse, as well as experienced ADT users who would like to take advantage of hidden functions or external extensions for ADT and Eclipse.WHAT YOU WILL LEARN* Install and configure your ABAP in Eclipse to meet your personal requirements* Discover the functionalities of ABAP in Eclipse that will accelerate your development* Use additional extensions to make your work with Eclipse more enjoyable* Create your own plugin that works with ABAP in EclipseWHO THIS BOOK IS FORABAP developers that want or need to switch to Eclipse and current ABAP in Eclipse users who want to learn its possibilities and hidden features.Łukasz is IT manager for SAP applications at Hager Group. He has been active in the SAP community for more than ten years. He mostly shares his knowledge on his blog (Abap Blog). He is a creator of the following Eclipse plugins: ABAP Favorites, ABAP Extensions, and ABAP Quick Fix. He also shares his ABAP projects or frameworks on GitHub as fidley; these include: Fast ALV Grid, JSON2ABAPType, Customers, and ALV Grid in a Nutshell. He was a speaker at the last four #sitWROs and attended a few others around Europe. SAP Developer Hero 2016 and SAP Champion from 2019. He can also teach you how to brew a beer. Chapter 1: Installation, Basic ConfigurationCHAPTER GOAL: PROVIDE INFORMATION ABOUT HOW TO GET STARTED WITH ABAP IN ECLIPSESUB -TOPICS1. How to install Eclipse & ABAP Development Tools2. How to create ABAP Projects and structure of the project explorer3. Perspectives4. Standard Eclipse and ADT Views5. Eclipse PreferencesChapter 2: Eclipse and ADT PreferencesCHAPTER GOAL: EXPLAIN POSSIBILITIES OF CONFIGURATION OF YOUR ECLIPSE ENVIRONMENTSUB -TOPICS1. Update sites2. Debug preferences3. ABAP Development Preferences4. Syntax highlighting5. Eclipse PreferencesChapter 3: How to Use ABAP in Eclipse to Accelerate your WorkCHAPTER GOAL: DESCRIBE ALL KNOWN FUNCTIONALITIES OF ABAP IN ECLIPSE THAT WILL MAKE THE DEVELOPER LIFE EASIERSUB - TOPICS1. Refactoring2. Quick fixes3. Completion assistant4. Markers5. Formatting, Formatting of block6. Block Selection7. ATC8. Unit Test9. etc.. all functionalities of10. Shortcuts CheatSheetChapter 4: Eclipse Extensions that will make the differenceCHAPTER GOAL: DESCRIPTION OF ECLIPSE PLUGINS FOR ABAP AND GLOBAL, THAT CAN ENHANCE HUGELY THE WORK WITH ADTNO OF PAGES :SUB - TOPICS:1. ABAP CI plugin2. abapGit Plugin3. ABAP Favorites4. ABAP Extensions5. ABAP Quick Fixes6. ABAP Tags7. Darkest Dark8. Any Edit9. etc.Chapter 5: CHAPTER GOAL: EXPLAIN THE WAY OF CREATION OF ECLIPSE PLUGINSSUB - TOPICS:1. Basic information about creating an Eclipse plugin2. Creation of Eclipse plugin with TreeView or Table control and testing it3. Explanation of features and update sitesChapter 6: Extending ABAP Development ToolsCHAPTER GOAL: SHOW EXAMPLE OF SIMPLE ECLIPSE PLUGIN THAT WORKS WITH ABAP DEVELOPMENT TOOLS TO SUPPORT THE DEVELOPER & HOW TO CREATE YOUR OWN QUICK FIXES FOR ATC CHECKSSUB - TOPICS:1. Creation of Eclipse plugins calling ABAP backend2. Creating quick fix for ATC Checks
Mastering Voice Interfaces
Build great voice apps of any complexity for any domain by learning both the how's and why's of voice development. In this book you’ll see how we live in a golden age of voice technology and how advances in automatic speech recognition (ASR), natural language processing (NLP), and related technologies allow people to talk to machines and get reasonable responses. Today, anyone with computer access can build a working voice app. That democratization of the technology is great. But, while it’s fairly easy to build a voice app that runs, it's still remarkably difficult to build a great one, one that users trust, that understands their natural ways of speaking and fulfills their needs, and that makes them want to return for more.We start with an overview of how humans and machines produce and process conversational speech, explaining how they differ from each other and from other modalities. This is the background you need to understand the consequences of each design and implementation choice as we dive into the core principles of voice interface design. We walk you through many design and development techniques, including ones that some view as advanced, but that you can implement today. We use the Google development platform and Python, but our goal is to explain the reasons behind each technique such that you can take what you learn and implement it on any platform.Readers of Mastering Voice Interfaces will come away with a solid understanding of what makes voice interfaces special, learn the core voice design principles for building great voice apps, and how to actually implement those principles to create robust apps. We’ve learned during many years in the voice industry that the most successful solutions are created by those who understand both the human and the technology sides of speech, and that both sides affect design and development. Because we focus on developing task-oriented voice apps for real users in the real world, you’ll learn how to take your voice apps from idea through scoping, design, development, rollout, and post-deployment performance improvements, all illustrated with examples from our own voice industry experiences.WHAT YOU WILL LEARN* Create truly great voice apps that users will love and trust* See how voice differs from other input and output modalities, and why that matters* Discover best practices for designing conversational voice-first applications, and the consequences of design and implementation choices* Implement advanced voice designs, with real-world examples you can use immediately.* Verify that your app is performing well, and what to change if it doesn't Who This Book Is ForAnyone curious about the real how’s and why’s of voice interface design and development. In particular, it's aimed at teams of developers, designers, and product owners who need a shared understanding of how to create successful voice interfaces using today's technology. We expect readers to have had some exposure to voice apps, at least as users.Ann Thymé-Gobbel's career has focused on how people use speech and natural language to communicate with each other and with technology. After completing her PhD in cognitive science and linguistics from UC San Diego, she's held a broad set of voice-related UI/UX design roles in both large corporations and small start-ups, working with diverse teams in product development, client project engagements, and R&D. Her past work includes design, data analysis and establishing best practices at Nuance, voice design for mobile and in-home devices at Amazon Lab 126, and creating natural language conversations for multimodal healthcare apps at 22otters. Her research has covered automatic language detection, error correction, and discourse structure. She is currently Director of UI/UX Design at Loose Cannon Systems, the team bringing to market Milo, a handsfree wearable communicator. Ann never stops doing research: she collects and analyzes data at every opportunity and enjoys sharing her findings with others, having presented and taught at conferences internationally.Charles Jankowski has over 30 years’ experience in industry and academia developing applications and algorithms for real-world users incorporating advanced speech recognition, speaker verification, and natural language technologies. He has used state-of-the-art machine learning processes and techniques for data analysis, performance optimization, and algorithm development. Charles has highly in-depth technical experience with state-of-the-art technologies, effective management of cross-functional teams for all facets of application deployment, and outstanding relationships with clients. Currently, he is Director of NLP at Brain Technologies, creating the Natural iOS application with which you can “Say it and Get it.” Previously he was Director of NLP and Robotics at CloudMinds, Director of Speech and Natural Language at 22otters, Senior Speech Scientist at Performance Technology Partners, and Director of Professional Services at Nuance. He has also been an independent consultant. Charles holds S.B., S.M., and Ph.D. degrees from MIT, all in electrical engineering.PART 1 – Voice System FoundationsChapter 1: Say Hello to Voice SystemsChapter goal: Introduce the reader to voice-first technology, its core concepts, and typical phases of development through an explanatory background for the current state and challenges of voice.No of pages - 20Sub-topics1. Voice-first, voice-only, and conversational everything2. Introduction to voice technology components (Speech to text, Natural languageunderstanding, Dialog management, Natural language generation, Text to speech)3. The phases of voice development success (Plan, Design, Build, Test, Deploy &Assess, Iterate)4. Hope is not a strategy – but to plan & execute isChapter 2: Keeping Voice in MindChapter goal: Explain to the reader how humans and computers “talk” and “listen.”What’s easy and hard for the human user and the technology in a dialog, and why.No of pages - 15Sub-topics1. Why voice is different2. Hands-on: A pre-coding thought experiment3. Voice dialog and its participants• The Human: spoken natural language understanding• The Computer: voice system recognition and interpretation• Human-computer voice dialog - Successful voice-first development is all aboutcoordinating human abilities with the technology to allow conversations betweentwo very different dialog participants.Chapter 3: Running a Voice Implementation—and Noticing IssuesChapter goal: Allow the reader to put into practice their newly learned foundation byimplementing and running a simple voice application in the Google Assistant framework,and experiencing how quickly even a simple voice interaction needs improvement.No of pages - 15Sub-topics1. Hands-on: Preparing a restaurant finder2. Introducing voice platforms3. Hands-on: Implementing the restaurant finderBasic setup, Specifying a first intent, Doing something, What the user says,What the VUI says, Connecting Dialogflow to Actions on Google, Testingthe app, Saving the voice interaction4. Google’s voice development ecosystem, and why we're using it here5. The pros and cons of relying on tools6. Hands-on: Making changes - testing and iterating (Adding phrases to handle the same meaning, additional content, and more specific)PART 2 – Planning Voice System InteractionsChapter 4: Defining your Vision: Building What, How, and Why for WhomChapter goal: Introduce voice-focused requirement discovery, highlighting differencesfrom other modalities and devices and showingNo of pages - 25Sub-topics1. Functional requirements: What are you building? (General and detailed functionality)2. Non-functional business requirements: Why are you building it? (Purpose, underlyingservice and existing automation, branding and terminology, data needs, access andavailability, legal and business constraints)3. Non-functional user requirements: Who will use it and what do they want? (Userpopulation demographics and characteristics, engagement patterns, mental modelsand domain knowledge, environment and state of mind)4. Non-functional system requirements; How will you build it? (Available options forrecognizer, parser, and interpreter, external data sources, data storage and data access, other system concerns)Chapter 5: From Discovery to UX and UI Design: Tools of the Voice-First TradeChapter goal: Show how to turn discovery findings into high-level architectural designs,using flows diagrams, sample dialogs, and detailed dialog management specs.No of pages - 20Sub-topics1. Where to find early user data on any budget (online research, crowd sourcing, dialogparticipant observation, focus groups, interviews, and surveys)2. How discovery results feed into VUI design decisions (dialog manager graphs)3. Capturing and documenting VUI design (dialog flows, sample dialogs, detaileddesign specifications, VUI design documentation approaches)4. Prototyping and testing your assumptions (early voice UX and prototypingapproaches)PART 3 – Building Voice System InteractionsChapter 6: Applying Human 'Rules of Dialog' to Reach Conversation ResolutionChapter goal: Learn that voice-first dialogs have resolutions. Learn how to design andimplement fully specified requests in the 3 core dialog types: question-answer, actionrequests, and task completion requests.No of pages - 30Sub-topics1. Dialog acts, games and turns – and Grice2. Question answering3. Action requests4. Task completion requests5. Fully specified request (Single slot and Multi-slot requests)6. Determining dialog acts based on feature discovery7. Dialog completion (Responding to 'goodbye' and 'thanks')Chapter 7: Resolving Incomplete Requests Through DisambiguationChapter goal: Explain how to handle incomplete and ambiguous requests, includingcommon disambiguation methods (yes/no, A/B sets, lists and menus) and when to apply each.No of pages - 30Sub-topics1. Incomplete requests - how to reach completeness2. Ambiguous requests3. Disambiguation methods (Logic-based assumptions, Yes/No questions, A/B sets,Static lists, Dynamic lists, Open sets, Menus)4. Testing on the device to find and solve issues5. Toward code independence: using webhooks (fulfillment, contexts, contextparameters, and follow-up)Chapter 8: Conveying Reassurance with Confidence and ConfirmationChapter goal: Teach the importance of conveying reassurance and how to apply different confirmation strategies. Introduce discourse markers and backchannels.No of pages - 30Sub-topics1. Conveying reassurance and shared certainty - Setting expectations2. Webhooks, Take 2 (Dialogflow system architecture, webhook request and response,Implementing the webhook)3. Confirmation methods (Non-verbal confirmation, Generic acknowledgment, Implicitand Explicit confirmations)4. Confirmation placement – confirming slots versus intents5. Disconfirmation: dealing with “no”6. Additional reassurance techniques and pitfalls (System pronunciation, Backchannels,Discourse markers, VUI architecture)7. Choosing the right reassurance methodChapter 9: Helping Users Succeed Through ConsistencyChapter goal: Explore how to navigate an audio interaction that is by nature fleeting andsequential. Provide design and implementation that incorporates consistency throughcorrectly scoped global commands, landmarks, non-verbal audio.No of pages - 20Sub-topics1. Universals (Uses: clarification and additional information, allow a do-over, providean exit)2. Navigation (Landmarks, Non-verbal audio, Content playback navigation, Listnavigation)3. Consistency, variation and randomization (built-in global intents, consistency acrossVUIs and frameworksChapter 10: Creating Robust Coverage for Speech-to-Text ResolutionChapter goal: Teach the nuts and bolts of the computer-side of "listening," starting withthe mapping of sounds to words and how to create solid synonym coverage. Topicsinclude different approaches to recognition, including regular expressions and statisticalmodels, dictionaries, domain knowledge, normalizing, and bootstrapping.No of pages - 25Sub-topics1. Recognition is speech-to-text interpretation2. Recognition engines3. Grammar concepts (Coverage, Recognition space, Static or dynamic, End-pointing,Multiple hypotheses)4. Types of grammars (Rule-based grammars, Statistical models, Hot words, Wakewords and invocation names)5. Working with grammars (Writing rule-based regular expressions)6. How to succeed with grammars (Bootstrapping, Normalizing punctuation andspellings, Handling unusual pronunciations, Using domain knowledge, the strengthsand limitations of STT)7. A simple example (Sample phrases in Dialogflow, Regular expressions in thewebhook)8. Limitations on grammar creation and useChapter 11: Reaching Understanding Through Parsing and Intent ResolutionChapter goal: Explore the second part of computer "listening": interpreting the meaning.Topics cover intent resolution, parsing and multiple passes, the use of tagging guides and middle layers.No of pages - 20Sub-topics1. From words to meaning (NLP, NLU)2. Parsing3. Machine learning and NLU4. Ontologies, knowledge bases and content databases5. Intents (Intent tagging and tagging guides, Middle layers: semantic tags versus systemendpoints)6. Putting it all together (Matching wide or narrow, Multiple grammars, multiple passes)7. A simple example (The Stanford Parser revisited, Determining intent, Machinelearning and using knowledge)Chapter 12: Applying Accuracy Strategies to Avoid MisunderstandingsChapter goal: Explain how misunderstandings happen and how to avoid them throughtechniques that minimize errors and the need to start over. Topics include design andimplementation of a wide set of robustness techniques, including powerful advancedtechniques.No of pages - 25Sub-topics1. Accuracy robustness underlying concepts2. Accuracy robustness strategies (Examples, Providing help, Just-in-time information,Hidden options and "none of those", Recognize-and-reject, One-step-correction,Tutorials, Spelling, Narrowing recognition space)3. Advanced techniques (Multi-tiered behavior and confidence scores, N-best and skiplists, Probabilities, Contextual latency)Chapter 13: Choosing Strategies to Recover from MiscommunicationChapter goal: Explore how to recover when miscommunication happens. Show how torecover and get users back on track quickly, and when to stop trying. Topics includedesign and implementation of several recovery strategies.No of pages - 15Sub-topics1. Recovery from what?2. Recovery strategies (Meaningful contextual prompts, Escalating prompts, Taperedprompts, Rapid reprompt, Backoff strategies)3. When to stop trying (Max error counts, Transfers)4. Choosing recovery strategy (Recognition, intent, or fulfillment errors)Chapter 14: Using Context and Data to Create Smarter ConversationsChapter goal: Explain why context is king in spoken conversation. Show how to accessand update data from various sources, and how to use that data within and across dialogs to create smarter interactions. Topics focus on how to design and implement context aware dialogs using anaphora, proactive behaviors, proximity, geo-location, domain knowledge, and other powerful methods.No of pages - 25Sub-topics1. Why there’s no conversation without context2. Reading and writing data (External accounts and services)3. Persistence within and across conversations4. Context-aware and context-dependent dialogs (Discourse markers andacknowledgments, Anaphora resolution, Follow-up dialogs and linked requests,Proactive behaviors, Topic, domain and world knowledge, Geo location-basedbehavior, Proximity and relevance, Number and type of devices, Time and day, Useridentity, preferences and account types, User utterance wording, System conditions5. Tracking context in modular and multiturn dialogsChapter 15: Creating Secure Personalized ExperiencesChapter goal: Cover personalization and customization. Topics include identification,authentication, privacy and security concerns, system persona audio, and working withTTS versus recorded prompts.No of pages - 25Sub-topics1. The importance of knowing who’s talking2. Individualized targeted behaviors (Concepts in personalization and customization,Implementing individualized experiences3. Authorized secure access4. Approaches to identification and authentication (Implementing secure gated access)5. Privacy and security concerns6. System persona (Defining and implementing a system persona, How persona affectsdialogs7. System voice audio (TTS or voice talent, generated or recorded, Finding and workingwith voice talents, One or several voices, Prompt management)8. Emotion and style9. Voice for specific user groupsPART 4 – Verifying and Deploying Voice System InteractionsChapter 16: Testing and Measuring Performance in Voice SystemsChapter goal: Explain the do’s and don’ts of QA testing a voice system. Topics includeuser testing methods that work best for voice, the code needed to support them, and how to improve system performance based on findings.No of pages - 20Sub-topics1. Testing voice system performance (Recognition testing, Dialog traversal: functionalend-to-end testing, Wake word and speech detection testing, Additional systemintegration testing)2. Testing usability and task completion (Voice usability testing concepts, Wizard of Ozstudies)3. Tracking and measuring performance (Recognition performance metrics, Taskcompletion metrics, User satisfaction metrics)Chapter 17: Tuning and Deploying Voice SystemsChapter goal: Show how to improve, or tune, voice solutions before and after deploying a voice system. Teach what real user data says about the system performance, what to log and track, how to measure accuracy, and how to interpret the data.No of pages - 25Sub-topics1. Tuning: what is it and why do you do it? (Why recognition accuracy isn’t enough,Analyzing causes of poor system performance)2. Tuning types and approaches (Log-based versus transcription-based tuning, Coveragetuning, Recognition accuracy tuning, Finding and using recognition accuracy data,Task completion tuning, Dialog tuning, Prioritizing tuning efforts)3. Mapping observations to the right remedy (Reporting and using tuning results)4. How to maximize deployment success (Know when to tune, Understand tuningcomplexities to avoid pitfalls)
Extending Kubernetes
Rely on this comprehensive guide to understand the extension patterns and discover the extension plugins for Kubernetes.In this book, state-of-the-art extension patterns and extension points of Kubernetes are covered in depth with real-life use cases and examples. There are comprehensive discussions in the text on all possible aspects of Kubernetes, starting from end-user to the fully-automated controller development. The book focuses on creating applications that work on Kubernetes and also interact and operate Kubernetes itself.The book starts with a recap of Kubernetes, its rich configuration options, extension patterns, and points. The journey of extending Kubernetes starts with the CLI tool plugins. By the end of this section, you will be able to create and manage kubectl plugins. Then, the API access plugins with authentication and authorization webhooks are presented. In this section, you will learn how to extend and interfere with the API flow of Kubernetes. You then move on to learn how to extend Kubernetes API with new resources and controllers. You will make Kubernetes API work for you by creating a Kubernetes operator. Extensions for Kubernetes schedulers are covered to create a custom scheduler and run it side-by-side with the default scheduler. Finally, the last extension points will be discussed for the infrastructure, such as networking or storage. At the end of the text, you will learn the upcoming extension points. This book is designed to cover all the extension points of Kubernetes with state-of-the-art implementations.This book is intended for those who wish to understand Kubernetes in depth and go further by making Kubernetes work for their custom requirements. By the end of this book, readers with a cloud-native mindset will broaden their vision to create future-proof applications. Rather than focus on overwhelming theoretical information and YAML files for Kubernetes resources, readers are provided with the philosophy behind Kubernetes extensions. With real-life examples and hands-on development steps, you will be more confident in working with Kubernetes.WHAT YOU WILL LEARN* Know the Kubernetes extension patterns and available extension points * Be familiar with the philosophy behind Kubernetes extensions and how they should be integrated into the clusters* Design Kubernetes extensions and make Kubernetes work for you* Develop, deploy, and operate plugins for Kubernetes ranging from the CLI tool to custom resources, schedulers, infrastructure, and more * Study real-life use cases for extending Kubernetes with code examplesWHO THIS BOOK IS FORSoftware engineers, developers, DevOps engineers, cloud security analysts, architects, and managers who have Kubernetes in their short- and long-term plansONUR YILMAZ is a senior software engineer at a multinational enterprise software company. He is a Certified Kubernetes Administrator (CKA) and works on Kubernetes and cloud management systems. He is a keen supporter of cutting-edge technologies, including Docker, Kubernetes, and cloud-native applications. He is the author of multiple books on Kubernetes, Docker, serverless architectures, and cloud-native continuous integration and delivery. He has one master and two bachelor degrees in the engineering field.Chapter 1: IntroductionCHAPTER GOAL: Provide an introduction to Kubernetes, configuration options, extension patterns, and extension points with real-life use casesNO OF PAGES: 25-30SUB-TOPICS:1. Kubernetes Recap2. Configuring Kubernetes Cluster3. Kubernetes Extension Patterns4. Kubernetes Extension PointsChapter 2: kubectl pluginsCHAPTER GOAL: Understand how to extend Kubernetes CLI tool, kubectl, for the custom requirements. How to develop, install and release new plugins for kubectlNO OF PAGES: 30-35SUB-TOPICS:* kubectl Installation and Usage* kubectl Plugin Design* Create Your First kubectl Plugin* Plugin Repository and LifecycleCHAPTER 3: API FLOW EXTENSIONSCHAPTER GOAL: Understand the flow of Kubernetes API server to handle requests. Learn how to extend the flow with authentication, authorization, and admission controls.NO OF PAGES: 25-30SUB -TOPICS:* Authentication WebhooksAuthorization Webhooks * Dynamic Admission ControlCHAPTER 4: EXTENDING KUBERNETES APICHAPTER GOAL: Discuss how Kubernetes API can be extended with custom resources and the automation of the custom resources, namely operators.NO OF PAGES: 50-55SUB-TOPICS:* Kubernetes API Overview* Kubernetes Client Libraries* Custom Resources in Kubernetes* Operator Pattern in Kubernetes* kubebuilder Framework* Operators in ActionCHAPTER 5: SCHEDULER EXTENSIONSCHAPTER GOAL: Learn how Kubernetes scheduling mechanism works and how it could be extended. Write, deploy, and use a custom scheduler for Kubernetes cluster.NO OF PAGES: 35-40SUB-TOPICS:* Kubernetes Scheduler OverviewDevelop and Deploy a Custom Scheduler * Configure and Manage Multiple Schedulers CHAPTER 6: INFRASTRUCTURE EXTENSIONSCHAPTER GOAL: Discover how Kubernetes interacts with the infrastructure in terms of storage and networking. Learn how to extend Kubernetes clusters with new pod networking and volume drivers.NO OF PAGES: 25-30SUB-TOPICS:* Storage Plugins* Network Plugins (They are still in development, and in alpha stage, if they become stable, it is an excellent asset to have in the book) CHAPTER 7: UPCOMING EXTENSION POINTSCHAPTER GOAL: Summarize the extension points of Kubernetes and discuss the upcoming trends and libraries in the market.NO OF PAGES: 20-25
Programmieren lernen für Dummies (2. Auflg.)
Haben Sie auch schon mal den Wunsch verspürt, programmieren zu können? Oder wenigstens zu verstehen, wie Computer ticken, die unser Leben bestimmen? Dieses Buch führt in die Denkweise von Programmierern und die Funktionsweise von Programmen ein und zeigt Ihnen, worauf Sie beim Programmieren achten müssen: Geben Sie eindeutige Anweisungen, sichern Sie sich immer gegen alle Eventualitäten ab und kommen Sie mit den gegebenen, beschränkten Mitteln aus. Gut, dass der Computer wenigstens nicht murrt, wenn er monotone Tätigkeiten ausführen muss! Am Ende des Buches angelangt, haben Sie einen wichtigen Ausschnitt unserer Welt besser kennen gelernt und Einblicke in allgemeine Programmierkonzepte und zwei Programmiersprachen erhalten. Dann sind Sie in der Lage, fundiert zu entscheiden, ob und wie Sie Ihr Wissen weiter vertiefen wollen. Daniel Lorig programmiert bereits seit seiner Schulzeit und hat 2010 sein Master-Studium in Informatik an der Universität des Saarlandes in Saarbrücken abgeschlossen. Danach hat er als Softwareentwickler in einem saarländischen Unternehmen gearbeitet. Mittlerweile selbstständig, liegt sein Fokus nun auf der Programmierung und Gestaltung von Webseiten.Über den Autor 7Einleitung 21TEIL I: GRUNDLAGEN DER PROGRAMMIERUNG29Kapitel 1: Von der Idee zum Programm 31Kapitel 2: Programmiersprachen: Ein Überblick 41Kapitel 3: So lernen Sie programmieren 53Kapitel 4: Was sich alles programmieren lässt 61Kapitel 5: Algorithmen erstellen 77Kapitel 6: Wichtige Konzepte in Programmiersprachen 87Kapitel 7: Fortgeschrittene Programmiertechniken 107TEIL II: PROGRAMMIEREN MIT JAVA135Kapitel 8: Compiler und Entwicklungsumgebung 137Kapitel 9: Die ersten Schritte in der Java-Programmierung 145Kapitel 10: Variablen und Datentypen in Java 161Kapitel 11: Ablaufsteuerung in Java 177Kapitel 12: Objektorientierte Programmierung in Java 189Kapitel 13: Weitere Features von Java 221Kapitel 14: Die Klassenbibliothek von Java 241Kapitel 15: Grafische Benutzeroberflächen 263TEIL III: PROGRAMMIERUNG FÜR DAS WEB MIT PHP291Kapitel 16: Einführung in HTML 293Kapitel 17: Werkzeuge für die Webprogrammierung 311Kapitel 18: Einstieg in die PHP-Programmierung 321Kapitel 19: Datenbankprogrammierung 349Kapitel 20: Dynamische Webseiten programmieren 365TEIL IV: WERKZEUGE FÜR PROGRAMMIERER399Kapitel 21: Fehler finden und beseitigen 401Kapitel 22: Die Macht des Internets nutzen 419Kapitel 23: Versionskontrolle 427TEIL V: DER TOP-TEN-TEIL439Kapitel 24: (Ungefähr) 10 externe Zusatzbibliotheken für Java 441Kapitel 25: (Mehr als) 10 nützliche Webseiten für Programmierer 447Stichwortverzeichnis 453
Pro PHP 8 MVC
Examine the building blocks that make any good MVC framework using PHP 8. This book exposes all the considerations that many developers take for granted when using a popular framework, and teaches you how to make this MVC framework your own.You'll quickly get started writing your first bit of framework code, then, you build a variety of examples using aspects of an MVC framework, including a router, a template engine, a database library, a persistence engine (ORM), and a testing framework. In the next section, you'll implement sessions, caches, file systems, queues, logging, and mail. You'll wrap up by building a larger scale sample web application: a sales website for a company that sells rockets.Along the way, this book lays bare all the secret parts of MVC to take with you to apply to your own PHP-based MVC projects.WHAT YOU WILL LEARN* Build PHP-based web applications using the model view controller (MVC) architecture * Write your first bit of framework code* Compare the code you write with how the popular frameworks do the same kinds of thingsCreate various aspects of applications, engines, and other frameworks * Wrap up with a sample case study applicationWHO THIS BOOK IS FORExperienced PHP and web developers. Some prior experience with PHP and web development at least recommended.Christopher Pitt is an experienced PHP and JavaScript/CSS web developer and writer, working at SilverStripe. He usually works on application architecture, though sometimes you’ll find him building compilers or robots. He is also the author of several web development books and is a contributor on various open source projects such as AdonisJs and Masonite.1: Ways to Use PHP2: Writing Our First Bit of Code3: Building a Router4: Building a Template Engine5: Building a Validator6: Building a Database Library7: Building an Object-Relational Mapper Library8: Building a Dependency Injection Container9: Testing Our Framework10: Config, Cache, Sessions, Filesystems11: Queues, Logging, Emails12: Publishing Your CodeAfterword: Wrapping Up
Introduction to Python Network Automation
Learn and implement network automation within the Enterprise network using Python 3. This introductory book will be your guide to building an integrated virtual networking lab to begin your Network Automation journey and master the basics of Python Network Automation.The book features a review of the practical Python network automation scripting skills and tips learned from the production network, so you can safely test and practice in a lab environment first, various Python modules such as paramiko and netmiko, pandas, re, and much more. You'll also develop essential skills such as Python scripting, regular expressions, Linux and Windows administration, VMware virtualization, and Cisco networking from the comfort of your laptop/PC with no actual networking hardware. Finally, you will learn to write a fully automated and working Cisco IOS XE upgrade application using Python.Introduction to Python Network Automation uses a canonical order, where you begin at the bottom and by the time you have completed this book, you will at least reach the intermediate level of Python coding for enterprise networking automation using native Python tools.WHAT YOU'LL LEARN* Build a proper GNS3-based networking lab for Python network automation needs* Write the basics of Python code in both the Windows and Linux environments* Control network devices using telnet, SSH, and SNMP protocols using Python codes* Understand virtualization and how to use VMware workstation* Examine virtualization and how to use VMware Workstation Pro* Develop a working Cisco IOS upgrade application WHO THIS BOOK IS FORIT engineers and developers, network managers and students, who would like to learn network automation using Python.Brendan is currently working as a Senior Technical Consultant for Australia’s leading Telco, Telstra. Telstra is the largest Australian Internet Service Provider (ISP) as well as one of the leading IT System Integrator and Managed Services Provider in Australian IT industry. He has more than 15 years of hands-on experience working with Cisco Networking, Unified Collaboration, VMware Virtualization and Operating System Administration. He began his IT career in Cisco Systems and then moved onto various roles in leading System Integrators in Australian IT scenes. He is currently working on a number of external clients’ environment and supports a diverse IT ecosystem, currently focusing on Python Network Automation. This book is largely based on Python network Automation he has developed in his previous job and the original book, “Python Network Automation: by building a virtual lab”. Also, this book is a memoir of Network Automation Journey leveraging off the power of Python as the preferred Programming Language.INTRODUCTION TO PYTHON NETWORK AUTOMATIONChapter 1: Introduction to Python Network AutomationChapter 2: Learn Python Basics on WindowsChapter 3: More Python ExercisesChapter 4: Introduction to VMware WorkstationChapter 5: Creating Virtual Machines Using Ubuntu 20 Server ImageChapter 6: Creating Virtual Machines Using CentOS 8 Server ImageChapter 7: Linux FundamentalsChapter 8: Linux Basic AdministrationChapter 9: Regular Expressions for Network AutomationChapter 10: GNS3 BasicsChapter 11 Cisco IOS LabsChapter 12. Building a Python Automation Lab EnvironmentChapter 13. Python Network Automation Lab: Basic TelnetChapter 14. Python Network Automation Labs: SSH Paramiko and NetmikoChapter 15. Python Network Automation Labs: Cron and SNMPv3Chapter 16. Python Network Automation Labs: Ansible, pyATS, Docker, and Twilio APIChapter 17. Upgrading Multiple Cisco IOS XE RoutersChapter 18. Python Network Automation Lab: Cisco IOS Upgrade mini-tools DevelopmentChapter 19. Python Network Automation Labs Combining and Completing Cisco IOS Upgrade Application
How to Make a Game
Get a head start on making your games efficiently by avoiding common design and development pitfalls. Video games combine art and programming; this unique position has opened up opportunities for many pitfalls. This book takes you through the fundamentals of game making and the usual mistakes and bad practices that can harm your games.We start with the common difficulties and challenges, ways to find the gaps, and game design. Next, we discuss game engines and other tools you need to choose while making a game, how you should choose them, and the design documents you need to make. We also cover simple but important tweaks in game mechanics as well as the look and feel of your game. We will also discuss conventions for naming, code structuring, project structuring, and coding.Your thought process will be guided in a way that you can look for the proper approach to make a successful game. The book sheds light upon how to improve the overall game experience and finalize the game for release. Along the journey, we will explore some interesting stories of games and mythology as well.By the end of the book, you will know about the basic life cycle of a game development process and how to not make a game.WHAT YOU WILL LEARN* Discover the fundamentals of game design * See some intermediate coding tricks to make your games better* Grasp the pitfalls to avoid while designing and programming games* Master the different conventions and practices for file naming and structuring your projects WHO THIS BOOK IS FORPeople who want to make games. Basic programming experience is assumed.MINHAZ-US-SALAKEEN FAHME is the co-founder and CEO of Battery Low Interactive Ltd—a company that makes wishes come true. It started as a game studio in 2015 and over the years, grew into a bunch of wings- each working dedicatedly on serious games; web and app development; business and marketing solutions using augmented reality and virtual reality; digital marketing; and small-scale indie games. With their outreach campaigns, Battery Low has reached half a million kids with the experience of immersive technology for the first time. Fahme also conducts sessions on AR, VR, MR, game design, entrepreneurship, career, and leadership for youth and entrepreneurs in educational institutions, national, and international events. He is a blogger and game designer/writer by passion while cats, travels, live concerts, epic fantasies keep him running.TANIMUL HAQUE KHAN is the head of the Unity department of Brain Station 23, a service-based company. He along with his team has been providing AR/VR enterprise solutions since 2018. He has been working with Unity technologies since 2015. He has played an uncountable number of games across multiple platforms mostly on PC and console. He is one of the most well-recognized Unity developers in Bangladesh. Aside from the tech industry he has also co-founded the very first cat cafe in Bangladesh known as Capawcino.Chapter 1: Don'tChapter Goal: In this chapter, you will get introduced to the core difficulties and challenges of the game making journey.Chapter 2: The Fault in Our StarsChapter Goal: This chapter will discuss the first encounters with games as well as the process of finding the gaps and lacking. We will also discuss game analysis in this chapter.Chapter 3: Don't Reinvent the WheelChapter Goal: We will discuss the game engine and the purpose they serve as powerful and necessary tools in game development.Chapter 4: Choose Your ArsenalChapter Goal: We will learn about game engines in greater detail including their pros n cons by building a RPG.Chapter 5: It's All in My Head/ Don't Keep It All in Your HeadChapter Goal: Learn to make Game Design Document, writing practices, and hurdles that may be stopping you from writing it.Chapter 6: A Stitch in Time Saves NineChapter Goal: This chapter teaches conventions of file naming, structuring, project structuring, coding (with some examples)Chapter 7: Git GoodChapter Goal: We will learn about version controlChapter 8: Get Smart!Chapter Goal: This chapter shows the ill effects of hard code. This would enable you to differentiate between good and bad approaches towards code and learn how to eliminate them.Chapter 9: Game Design - The Three musketeers!Chapter Goal: You will learn the overall journey of game design, understanding all the components, their role, and how to roll them properly.Chapter 10: Game Feel and EffectsChapter Goal: We will learn about camera effect, audio effect, particle effect in this chapter.Chapter 11: Input MattersChapter Goal: Learn about choosing input styles properly.Chapter 12: Help!Chapter Goal: This chapter will helping you transcend through reality (pseudo code), dynamic difficulty.Chapter 13: Platform Choosing (Pros n Cons)Chapter Goal: This chapter will help you choose the right platform to publish your game.Chapter 14: The Great Filter/Fermi ParadoxChapter Goal: In this chapter, you will learn how to test your game and how to approach publishing and assessing the success.Chapter 15: Gameover - The Myth of Sisyphus/Insanity Loop/Core LoopChapter Goal: In the final chapter, we will evaluate all we have learnt by studying this game, its success, and the future
SAP S/4HANA Embedded Analytics
Imagine you are a business user, consultant, or developer about to enter an SAP S/4HANA implementation project. You are well-versed with SAP’s product portfolio and you know that the preferred reporting option in S/4HANA is embedded analytics. But what exactly is embedded analytics? And how can it be implemented? And who can do it: a business user, a functional consultant specialized in financial or logistics processes? Or does a business intelligence expert or a programmer need to be involved? Good questions!This book will answer these questions, one by one. It will also take you on the same journey that the implementation team needs to follow for every reporting requirement that pops up: start with assessing a more standard option and only move on to a less standard option if the requirement cannot be fulfilled. In consecutive chapters, analytical apps delivered by SAP, apps created using Smart Business Services, and Analytical Queries developed either using tiles or in a development environment are explained in detail with practical examples. The book also explains which option is preferred in which situation. The book covers topics such as in-memory computing, cloud, UX, OData, agile development, and more.Author Freek Keijzer writes from the perspective of an implementation consultant, focusing on functionality that has proven itself useful in the field. Practical examples are abundant, ranging from “codeless” to “hardcore coding.”WHAT YOU WILL LEARN* Know the difference between static reporting and interactive querying on real-time data* Understand which options are available for analytics in SAP S/4HANA* Understand which option to choose in which situation* Know how to implement these optionsWho This Book is ForSAP power users, functional consultants, developersFREEK KEIJZER has a background in science (physics), industry (manufacturing, process industry) and ICT (SAP system integration), holding various project management, people management, and specialist positions. He holds degrees in natural sciences (PhD) and information management (MIM). In 1996, he became involved in an SAP implementation, initially as an R/3 key user, later as internal project leader, interim manager of the support organization, and (international) information manager. Since 2001, he has focused on SAP BI consultancy, working for three consultancy firms and more than 50 clients. His responsibilities as a consultant include product development, team competence development, sales support, and resourcing. Freek's specialties (technical) include SAP Business Intelligence, Hana, NetWeaver, and ERP integration. His roles include project leader, lead consultant, business consultant, (interim) manager, and scrum master.Since 2015, Freek has been a brewer/owner of the Rubelijn craft beer brand.CHAPTER 1: BEFORE THE WORK STARTSCHAPTER GOAL: Miscellaneous intro topics.NO OF PAGES: 40SUB -TOPICS1. Business Intelligence: the art of enriching data2. HANA changing the OLTP versus OLAP game3. Cloud flavors: SaaS versus IaaS4. The latest thing: CDS-views5. Frontend: Fiori and UI56. SAP’s BI portfolio7. S/4HANA and Embedded AnalyticsCHAPTER 2: NO WORK: USE WHAT IS DELIVEREDCHAPTER GOAL: S/4HANA comes with rich analytical apps that can be used immediately. This chapter focuses on the content delivered by SAP.NO OF PAGES: 20SUB - TOPICS1. Discover analytical apps2. Activate them3. Use themCHAPTER 3: SOME WORK: SMART BUSINESS SERVICECHAPTER GOAL: S/4HANA has built-in functions for codeless creation of simple analytical apps. Target group of these functions are power users, but in practice functional (non-BI) consultants are most suitable to use this functionality.Functions are made available as a group of Fiori-tiles under the product name “Smart Business Service”.NO OF PAGES : 30SUB - TOPICS:1. Tiles “KPI Design”2. Tiles “Report Design”3. Tile “Analysis Path Framework Modeling”4. The end-result: again tilesCHAPTER 4: MORE WORK: BUILDING ANALYTICAL QUERIES USING TILESCHAPTER GOAL: S/4HANA comes with tiles to create so-called “Analytical Queries” starting from SAP-delivered CDS-views. Analytical Queries are not static reports, but versatile, interactive queries on real-time data.For the SaaS version of S/4HANA, this is the only option to create Analytical Queries.NO OF PAGES: 40SUB - TOPICS:1. Discovery of SAP-delivered CDS-views with tile “View Browser”2. Enriching CDS-views with tiles “Custom CDS Views”3. Building an Analytical Query with tile “Custom Analytical Query”4. Running the query with tile “Query Browser”5. How to navigate within an Analytical Query.6. Creating a dedicated tile for the queryCHAPTER 5: MOST WORK: BUILDING ANALYTICAL QUERIES IN A DEVELOPMENT ENVIRONMENTCHAPTER GOAL: Starting from real-life business requirements, often the conclusion is reached that SAP-delivered CDS-views won’t do the trick. For a SaaS version of S/4HANA, the process following this conclusion is called “managing expectations”. For an on-premise version, a development environment can be applied. And then … the sky is the limit! Development can start not only from SAP-delivered CDS-views but also from tables.NO OF PAGES: 60SUB - TOPICS:1. Layered approach towards the analytical query2. Data-integration3. “Cube-view”4. Analytical query5. Examples transaction data6. Examples master data7. Example: Replacing custom ABAP-report by analytical query8. Performance considerations; balance between performance and support-friendliness9. Access and data authorizationCHAPTER 6: EXTENSIBILITY, ODATA AND BEYONDCHAPTER GOAL: Miscellaneous outro topics related to Embedded AnalyticsNO OF PAGES: 20SUB - TOPICS:1. S/4HANA Extensibility2. OData and APIs3. Agile development and Devops4. Ideal skill-set for an Embedded Analytics expert
Transactional Machine Learning with Data Streams and AutoML
Understand how to apply auto machine learning to data streams and create transactional machine learning (TML) solutions that are frictionless (require minimal to no human intervention) and elastic (machine learning solutions that can scale up or down by controlling the number of data streams, algorithms, and users of the insights). This book will strengthen your knowledge of the inner workings of TML solutions using data streams with auto machine learning integrated with Apache Kafka.Transactional Machine Learning with Data Streams and AutoML introduces the industry challenges with applying machine learning to data streams. You will learn the framework that will help you in choosing business problems that are best suited for TML. You will also see how to measure the business value of TML solutions. You will then learn the technical components of TML solutions, including the reference and technical architecture of a TML solution.This book also presents a TML solution template that will make it easy for you to quickly start building your own TML solutions. Specifically, you are given access to a TML Python library and integration technologies for download. You will also learn how TML will evolve in the future, and the growing need by organizations for deeper insights from data streams.By the end of the book, you will have a solid understanding of TML. You will know how to build TML solutions with all the necessary details, and all the resources at your fingertips.WHAT YOU WILL LEARN* Discover transactional machine learningMeasure the business value of TML * Choose TML use cases* Design technical architecture of TML solutions with Apache Kafka* Work with the technologies used to build TML solutions* Build transactional machine learning solutions with hands-on code together with Apache Kafka in the cloudWHO THIS BOOK IS FORData scientists, machine learning engineers and architects, and AI and machine learning business leaders.Sebastian Maurice is founder and CTO of OTICS Advanced Analytics Inc. and has over 25 years of experience in AI and machine learning. Previously, Sebastian served as Associate Director within Gartner Consulting focusing on artificial intelligence and machine learning. He was instrumental in developing and growing Gartner’s AI consulting business. He has led global teams to solve critical business problems with machine learning in oil and gas, retail, utilities, manufacturing, finance, and insurance. Dr. Maurice also brings deep experience in oil and gas (upstream) and was one of the first in Canada to apply machine learning to oil production optimization, which resulted in a Canadian patent: #2864265.Sebastian is also a published author with seven publications in international peer-reviewed journals and books. One of his publications (International Journal of Engineering Education, 2004) was cited as landmark work in the area of online testing technology. He also developed the world’s first Apache Kafka connector for transactional machine learning: MAADS-VIPER.Dr. Maurice received his PhD in electrical and computer engineering from the University of Calgary, and has a master’s in electrical engineering, and a master’s in agricultural economics, with bachelors in pure mathematics and bachelors (hon) in economics.Dr. Maurice also teaches a course on data science at the University of Toronto and actively helps to develop AI course content at the University of Toronto. He is also active in the AI community and an avid blogger and speaker. He also sits on the AI advisory board at McMaster University.Chapter 1: Introduction: Big data, Auto Machine Learning and Data StreamsChapter 2: Transactional Machine LearningChapter 3: Industry Challenges with Data Streams and AutoMLChapter 4: The Business Value of Transactional Machine LearningChapter 5: The Technical Components and Architecture for Transactional Machine LearningOverview of a TML SolutionChapter 6: Template for Transactional Machine Learning SolutionsCHAPTER 7: Visualize Your TML Model Insights: Optimization, Predictions and AnomaliesChapter 8: Evolution and Opportunities For Transactional Machine Learning in Almost Every IndustryChapter 9: Conclusion and Final Thoughts.
Learn to Program with Kotlin
Teach yourself programming starting with the basics and progressing to a series of exciting projects using Kotlin, one of today's hottest programming languages. This book starts with the absolute basics and then introduces just enough syntax to get into some fascinating projects. These include text processing: a statistical analysis of Jane Austen's novels, solving anagrams, and working with palindromes; image processing: cropping and resizing images, and pixel transformation; and computer vision: finding digits, parsing images, and reading speed signs.The projects are developed in tiny steps and complete solutions are provided. Some of these projects include core data science concepts, giving you skills in one of the most important areas of modern programming. Along the way you’ll cover functional programming, object-oriented programming (OOP), refactoring, and writing unit tests.After reading Learn to Program with Kotlin, you'll come away with practical insights and code to get you started right away with programming using Kotlin for your own projects.WHAT YOU WILL LEARN* Gain the basics of Kotlin using the IntelliJ Java IDE* Implement OOP with Kotlin along with unit testing and code refactoring using a series of text-related projects* Harness functional programming with Kotlin by building an image-processing library* Write software to locate and read speed signs in photosWHO IS THIS BOOK FORAnyone who wants to learn how to program or code from scratch. Also great for experienced programmers who want to know more about Kotlin. Tim Lavers is a senior software engineer at KPMG with expertise in Java, Kotlin, and other programming languages employed for data engineering and enterprise software projects. He is also a mathematical hobbyist in his spare time.PART 1 - BASICSThe very basics of programming in Kotlin using the IntelliJ code editor.Chapter 1: Getting StartedChapter 2: Simple patternsChapter 3: Arrays and loopsChapter 4: Binary choicesChapter 5: IntegersChapter 6: Values and variablesChapter 7: StringsChapter 8: Data structuresChapter 9: The file systemPART II - TEXTObject-Oriented Programming, Unit Testing and code refactoring through a series of fascinating text-related projects.Chapter 10: Project AustenChapter 11: AnagramsChapter 12: PalindromesChapter 13: Word switchPART III - IMAGESThis part of the book introduces Functional Programming by building a basic image processing library.The culmination of this is a CGI (Computer Generated Imagery) project.Chapter 14: Colour picturesChapter 15: Pixel transformationsChapter 16: Cropping and resizing imagesChapter 17: Project DinoPART IV - VISIONWe cap it all of with a project in which we write software to locate and read speed signs in photos.Chapter 18: OverviewChapter 19: Finding digitsChapter 20: Parsing the imagesChapter 21: Reading speed signs
JavaServer Faces und Jakarta Server Faces 2.3 (3.Auflg.)
Das Arbeitsbuch für Java-Webentwickler in aktualisierter 3. Auflage.JavaServerTM Faces und Jakarta Server Faces 2.3 sind ein Framework für die Entwicklung von Benutzerschnittstellen für bzw. als Teil einer Java-Web-Anwendung. Dieses Arbeitsbuch führt Sie Schritt für Schritt in die Programmierung mit JSF ein. Sie erfahren, wie Sie damit moderne Benutzerschnittstellen für die Praxis entwickeln.Und natürlich geht es auch darum, wie JSF in eine Java-Web-Anwendung zu integrieren sind. Behandelt werden auch Themen wie die Anbindung an eine Datenbank mit JPA, die Verwendung von CDI sowie Authentifizierung und Autorisierung.Verfolgen Sie Schritt für Schritt die Entwicklung einer betrieblichen Anwendung und lernen Sie so anhand realer Aufgabenstellungen alle wichtigen Aspekte von JSF 2.3 kennen. Mit Hilfe der Übungen, deren Lösungen sich von der Website zum Buch und von GitHub herunterladen lassen, können Sie das Gelernte selbst ausprobieren und umsetzen.Aus dem Inhalt:EinleitungJSF im DetailContext und Dependency InjectionWeiterführende ThemenClassic ModelsSpezialthemenVerwendete SystemeAusblick/Anhang: Die Tags der Standardbibliotheken
Programming Microcontrollers with Python
For the first time microcontrollers are powerful enough to be programmed in Python. The landscape of embedded systems development is changing, microcontrollers are becoming more powerful, and the rise of the internet of things is leading more developers to get into hardware. This book provides the solid foundation to start your journey of embedded systems development and microcontroller programming with Python.You’ll quickly realize the value of using Python. The theme of the book is simplicity and the cleanness and elegance of Python makes that possible. Featuring a step-by-step approach, this single source guide balances complexity and clarity with insightful explanations that you’ll easily grasp.Python is quickly becoming the language of choice for applications such as machine learning and computer vision on embedded devices. What would previously be daunting and exceedingly difficult to do in C or C++ is now possible with Python because of its level of abstraction. Programming Microcontrollers with Python is your path to bringing your existing skills to the embedded space.WHAT YOU’LL LEARN* Review microcontroller basics and the hardware and software requirements * Understand an embedded system’s general architecture* Follow the steps needed to carry a product to market * Take a crash course in Python programming * Program a microcontroller* Interface with a microcontroller using LCD and Circuit Python* Use and control sensorsWHO THIS BOOK IS FORThose getting started with microcontrollers, those new to C, C++, and Arduino programming, web developers looking to get into IoT, or Python programmers who wish to control hardware devices.Armstrong Subero started learning electronics at the age of 8. One of the happiest memories in his childhood was when he finally figured out how to make a light bulb. It took off from there as he taught himself more advanced topics in electronics, before delving into computer architecture, and eventually discovering the joys of microcontrollers and FPGAs.He currently works for the Ministry of National Security in his country and writes software, design circuits, courses, robots as well as write books, and blogs about technology on trinirobotics.com in his free time. He is also a contributing author to Free Code Camp and has degrees in Computer Science and Liberal Arts and Sciences from Thomas Edison State University. He is the author of "Programming PIC Microcontrollers in XC8" and "Codeless Data Structures and Algorithms" both published by Apress Media LLC. Preface• Why Did I Write This Book?• Who Is This Book For?• What You Will Need For This Book?• What Will I learn in This Book?• About the Author• Errata and SuggestionsChapter 1: Getting Ready In this chapter we begin learning about microcontrollers what they are and the various languages we can use for them. Things like what software and hardware you will need to follow along with the book as well as the recommended boards to use CircuitPython is covered in this chapter.• Introduction to Microcontrollers• Microcontroller Programming Languages• Assembly Language• C• C++• BASIC• Rust• Python• Selecting a Board• Adafruit Metro M0 Express• Adafruit Feather M0 Express• Adafruit Metro M4 Express• Adafruit Grand Central M4 Express• The Arduino Zero• The STM32F746ZG Nucleo• Device Comparison• The Component List• The Mu Editor• Putty• Setting up Your Own Board• ConclusionChapter 2: Electronics Primer picks up where chapter one leaves off and we move our discussion into the realm of electronics giving an overview of passive analog electronic components such as resistors, capacitors, and inductors. Along the way we learn about breadboards before diving into semiconductor electronics and basic digital electronics.• Electrical Wires• The Breadboard• Electronic Schematics• Passive Components• Resistors• Capacitors• Polarized Capacitors• Non-Polarized Capacitors• Capacitor Schematic Symbols• Inductors• Semiconductors• Diode• Light Emitting Diode• Transistor• Metal Oxide Semiconductor Field Effect Transistors• Integrated Circuits• Digital Logic• Logic Level Conversion• Flip-Flop• Registers and Shift Register• Multiplexers and Demultiplexers• ConclusionChapter 3: Embedded Systems Overview covers the software side of things. We learn about embedded systems, its structure, hardware and software systems and the general architecture of embedded systems. Things like toolchains, testing and a heavy emphasis on software architecture is covered. For those of you reading this book to make and sell your own product, I cover the steps you need to take to carry a product to market.• An Overview of Embedded Systems• Microcontroller vs Applications Processor• Embedded Systems Structure• The Hardware System• The software System• The Toolchain• Software Testing• Embedded Software Architecture• The Driver Layer• Hardware Abstraction Layers (HAL)• Board Support Package (BSP)• Middleware• Software Framework• Code Generator• Platform• Embedded Systems Constrains• Cost• Performance• Energy budget• Embedded Systems Classification• Small Scale Systems• Medium Scale Systems• High Performance Systems• Distributed Embedded Systems• Seven Steps to Developing an Embedded Product• ConclusionChapter 4: Python Programming looks at the python programming language you get a crash course in the core features of the language that you can use to write your own programs. If is written in such a way that even if you never used python, but have some experience programming you will be able to follow along.• Writing Python Programs• Whitespace• Comments• Variables and Constants• Data Types• Operators• Lists• Tuples• If Statement• Else statement• For Loop• While Loop• Functions• Lambda Functions• Exception Handling• Object Oriented Programming• Random and Time• Python vs CircuitPython• How Does My Python Program Run?• ConclusionChapter 5: Digital Control introduces us to programming the input and output on microcontrollers. We finally start to use microcontrollers and we learn a little bit about how microcontrollers work and learn how to interface them to switches and LEDs.• Microcontroller I/O• Output and Input on Microcontroller Hardware• Going Deeper into Microcontroller I/O• Output in CircuitPython• LED Control• Output with MCU Schematic• Output Circuit Connection Tips• Output with CircuitPython Program• LED Blink with CircuitPython Program• Pull-up vs Pull-Down Resistors• Switch Debouncing• Input in CircuitPython• Input with MCU Schematic (Pullup)• Pushbutton Pullup Circuit Connection Tips• Pushbutton Pullup with CircuitPython Program• Input with MCU Schematic (Pulldown)• Pushbutton Pulldown Circuit Connection Tips• Pushbutton Pulldown with CircuitPython Program• ConclusionChapter 6: Data Conversion covers analog input on our microcontroller, and we cover how analog to digital conversion works on the microcontroller. Using this information, we learn how to read potentiometers, photoresistors and temperature sensors using our microcontroller.• Analog To Digital Conversion• ADC Hardware• Going Deeper into ADC• The Potentiometer• Analog to Digital Conversion in CircuitPython• ADC with MCU Schematic• ADC Circuit Connection Tips• CircuitPython with Potentiometer Program• Photoresistor• Photoresistor with MCU Schematic• Photoresistor Circuit Connection Tips• Photoresistor with Circuitpython Program• Temperature Sensor• Temperature Sensor with MCU Schematic• Temperature Sensor Circuit Connection Tips• Temperature Sensor with Circuitpython Program• ConclusionChapter 7: Communication Protocol discusses serial communication protocols on microcontrollers, and we use USART, SPI and I2C. We cover not only how to use these protocols, but also how they operate internally. In this chapter we will cover how to use USB-UART and also how we can read the information from a accelerometer and gyroscope.• Microcontroller Communications• USART Communications• Deeper into UART• UART in CircuitPython• USB-UART with MCU Schematic• MCU with USB-UART Circuit Connection Tips• UART with CircuitPython Program• SPI Communications• Deeper into SPI• Board with Potentiometer Circuit Connection Tips• SPI with CircuitPython Program• I2C Communications• Deeper into I2C• I2C Support in CircuitPython• The MPU6050• I2C with MCU Schematic• I2C Circuit Connection Tips• I2C with CircuitPython Program• Adding Libraries• MPU6050 with CircuitPython Program• ConclusionChapter 8: Display Interfacing teaches us the basics of display interfacing with microcontrollers. We learn about how the LCD works and learn how to use them with our CircuitPython microcontroller. We also learn about OLEDs and learn how we can drive an OLED using CircuitPython.• The Liquid Crystal Display• Using a GLCD• Monochrome GLCD Schematic• PCD8544 with CircuitPython• Troubleshooting• The Framebuffer• OLED• Using an OLED• MCU with OLED Schematic• CircuitPython with OLED Program• ConclusionChapter 9: Controlling DC Actuators is about controlling DC actuators. We will learn about things like DC motors, stepper motors and servo motors and learn how to control them with the microcontroller devices. PWM is covered in this chapter as well.• DC Motors• Driving DC Motors• Pulse Width Modulation• PWM in CircuitPython• PWM with CircuitPython Program• Controlling Motor Speed• The H-Bridge• H-Bridge with MCU Schematic• H-Bridge with CircuitPython Program• Servo Motors• Servo Motors in CircuitPython• Servo Motor with MCU Schematic• Servo Motor with CircuitPython Program• Stepper Motors• Stepper Motors in CircuitPython• Stepper Motor with MCU Schematic• Stepper Motor with CircuitPython Program• ConclusionChapter 10: Python MCU Interfacing presents specifics of using and controlling some sensors you are likely to want to use in your own projects. These include RGB LEDs, ultrasonic sensors, piezo speakers, and humidity sensors.• RGB LED• RGB LED with MCU Schematic• RGB LED Circuit Connection Tips• Libraries We’ll Need• RGB LED with Circuitpython Program• HC-SR04• HC-SR04 with MCU Schematic• HC-SR04 Circuit Connection Tips• Libraries We’ll Need• HC-SR04 with Circuitpython Program• Piezo Speaker• Piezo with MCU Schematic• Piezo Circuit Connection Tips• Libraries We’ll Need• Piezo with Circuitpython Program• DHT11• DHT11 with MCU Schematic• DHT11 Sensor Circuit Connection Tips• Libraries We’ll Need• DHT11 Sensor with CircuitPython Program• Conclusion
Oracle Database Programming with Visual Basic.NET
ORACLE DATABASE PROGRAMMING WITH VISUAL BASIC.NETDISCOVER A DETAILED TREATMENT OF THE PRACTICAL CONSIDERATIONS AND APPLICATIONS OF ORACLE DATABASE PROGRAMMING WITH VISUAL BASIC 2019Oracle Database Programming with Visual Basic.NET: Concepts, Designs, and Implementations delivers a comprehensive exploration of the foundations of Oracle database programming using Visual Basic.NET. Using Visual Basic.NET 2019, Visual Studio.NET 2019, and Oracle 18c XE, the book introduces the Oracle database development system, Oracle SQL Developer and Modeler, and teaches readers how to implement a sample database solution. The distinguished author also demonstrates the use of dotConnect for Oracle to show readers how to create an effective connection to an Oracle 18c XE database. The current versions of the .NET framework, ASP.NET, and ASP.NET 4.7 are also explored and used to offer readers the most up to date web database programming techniques available today. The book provides practical example projects and detailed, line-by-line descriptions throughout to assist readers in the development of their database programming skill. Students will also benefit from the inclusion of:* A thorough introduction to databases, including definitions, examples, descriptions of keys and relationships, and some database components in popular databases, like Access, SQL, and Oracle* An exploration of ADO.NET, including its architecture and components, like the DataReader class, DataSet component, DataTable component, and the command and parameter classes* A discussion of Language Integrated Query (LINQ), including its architecture and components, its relationship to objects, DataSet, Oracle, and Entities* An explanation of how to access data in ASP.NET and ASP.NET Web Services with multiple real project examples.Perfect for college and university students taking courses related to database programming and applications, Oracle Database Programming with Visual Basic.NET will also earn a place in the libraries of programmers and software engineers seeking a comprehensive reference for database coding in Visual Basic.NET. YING BAI, PHD, is Professor in the Department of Computer Science and Engineering at Johnson C. Smith University. He is the author of Practical Microcontroller Engineering with ARM Technology, Practical Database Programming with Visual Basic.NET, 2nd Edition, Practical Database Programming with Java, and Practical Database Programming with Visual C#.NET.
JavaServer™ Faces und Jakarta Server Faces 2.3
DAS ARBEITSBUCH FÜR JAVA-WEBENTWICKLER // - Steigen Sie mit diesem fundierten Arbeitsbuch in die Entwicklung von Benutzerschnittstellen mit JavaServerTM Faces und Jakarta Server Faces 2.3 ein. - Anhand einer Beispielanwendung werden alle wichtigen Aspekte von JSF erläutert. - Vertiefen und erweitern Sie Ihre Fertigkeiten mit den zahlreichen Übungen. - Verwendet werden ausschließlich Open-Source-Systeme, so dass Sie alle Übungen und Beispiele ohne weitere Lizenzkosten nachvollziehen können. - Im Internet: Quell-Code zu den Beispielen und Lösungen der Übungen auf der Autorenwebsite zum Buch und GitHub - Ihr exklusiver Vorteil: E-Book inside beim Kauf des gedruckten Buches JavaServerTM Faces und Jakarta Server Faces 2.3 sind ein Framework für die Entwicklung von Benutzerschnittstellen für bzw. als Teil einer Java-Web-Anwendung. Dieses Arbeitsbuch führt Sie Schritt für Schritt in die Programmierung mit JSF ein. Sie erfahren, wie Sie damit moderne Benutzerschnittstellen für die Praxis entwickeln. Und natürlich geht es auch darum, wie JSF in eine Java-Web-Anwendung zu integrieren sind. Behandelt werden auch Themen wie die Anbindung an eine Datenbank mit JPA, die Verwendung von CDI sowie Authentifizierung und Autorisierung. Verfolgen Sie Schritt für Schritt die Entwicklung einer betrieblichen Anwendung und lernen Sie so anhand realer Aufgabenstellungen alle wichtigen Aspekte von JSF 2.3 kennen. Mit Hilfe der Übungen, deren Lösungen sich von der Website zum Buch und von GitHub herunterladen lassen, können Sie das Gelernte selbst ausprobieren und umsetzen. AUS DEM INHALT // Einleitung/JSF im Detail/Context und Dependency Injection/Weiterführende Themen/Classic Models/Spezialthemen/Verwendete Systeme/Ausblick/Anhang: Die Tags der Standardbibliotheken
C für Dummies (3. Auflg.)
Der Programmiersprachenklassiker C ist beliebt wie eh und je: denn mit C bringt man Computer zum Laufen. C steckt in der Software vieler Betriebssysteme. Dan Gookin bietet in diesem Buch eine wunderbar anschauliche und humorvolle Einführung.C erfreut sich als Klassiker unter den Programmiersprachen großer Beliebtheit, denn es steckt nach wie vor in vielen Betriebssystemen, Schnittstellen und Treibern, aber auch in Compilern und neueren eingebetteten Systemen. Wer C lernen und dabei auch noch Spaß haben möchte, sollte zu diesem Buch vom Urvater der Dummies, Dan Gookin, greifen. Mit viel Humor und vielen anschaulichen Beispielen macht er die Programmiersprache C lebendig.Dan Gookin schrieb das erste "... für Dummies"-Buch "DOS für Dummies" und hat seitdem unzählige Bücher für die Reihe verfasst. Er versteht es besonders gut, anschaulich und humorvoll zu erklären.
Pointers in C Programming
Gain a better understanding of pointers, from the basics of how pointers function at the machine level, to using them for a variety of common and advanced scenarios. This short contemporary guide book on pointers in C programming provides a resource for professionals and advanced students needing in-depth hands-on coverage of pointer basics and advanced features. It includes the latest versions of the C language, C20, C17, and C14.You’ll see how pointers are used to provide vital C features, such as strings, arrays, higher-order functions and polymorphic data structures. Along the way, you’ll cover how pointers can optimize a program to run faster or use less memory than it would otherwise.There are plenty of code examples in the book to emulate and adapt to meet your specific needs.WHAT YOU WILL LEARN* Work effectively with pointers in your C programming* Learn how to effectively manage dynamic memory* Program with strings and arrays* Create recursive data structures* Implement function pointersWHO THIS BOOK IS FORIntermediate to advanced level professional programmers, software developers, and advanced students or researchers. Prior experience with C programming is expected.Thomas Mailund is an associate professor in bioinformatics at Aarhus University, Denmark. He has a background in math and computer science, including experience programming and teaching in the C and R programming languages. For the last decade, his main focus has been on genetics and evolutionary studies, particularly comparative genomics, speciation, and gene flow between emerging species.1. Pointers and the random access memory model2. Memory management3. Strings and arrays4. Recursive data structures5. Function pointers
JavaScript - Das Handbuch für die Praxis
Seit 25 Jahren das begleitende Grundlagenwerk zu JavaScript - Durchgehend überarbeiteter Bestseller in der 7. Auflage - Deckt die Version ES2020 inkl. Tools/Extensions & Node.js ab < - Vermittelt umfassendes und tiefgehendes JavaScript-Know-how JavaScript ist die Programmiersprache des Webs und der Bestseller "JavaScript: Das Handbuch für die Praxis" seit fast 25 Jahren und über sieben Auflagen ein geschätztes Grundlagenwerk für diese Sprache. Umfassend und detailliert dokumentiert Flanagan die wichtigsten client- und serverseitigen APIs. Die 7. Auflage wurde vollständig aktualisiert und deckt die Version 2020 von JavaScript ab. Freuen Sie sich auf spannende und inspirierende Codebeispiele und neue Kapitel über Klassen, Module, Iteratoren, Generatoren, Promises und async/await. Das Buch wendet sich an JavaScript-Neulinge mit Programmierkenntnissen sowie JavaScript-Programmierende, die ihr Verständnis vertiefen wollen. Die Zeit, die Sie in die Lektüre investieren, wird sich durch eine deutlich gesteigerte Produktivität garantiert rasch auszahlen.