Computer und IT
Algorithmen in Python
Inhalt Algorithmen gehören zum Rüstzeug guter Entwickler und Programmierer. Dieses Buch stellt Ihnen eine Vielzahl an problemlösenden Techniken für den Programmieralltag vor und zeigt, wie Sie diese Techniken in Ihre Anwendungen implementieren. Dabei lernen Sie 32 Klassiker der Informatik kennen, vom einfachen Such-Algorithmus bis zu genetischen Algorithmen und neuronalen Netzen in der KI. Randvoll mit Codebeispielen in Python sowie Profitipps für Programmierer. Selbst wenn Ihnen einiges bekannt vorkommen wird, es warten zahlreiche Aha-Erlebnisse auf Sie. Ideal für alle, die ihre ersten Schritte in der Programmierung hinter sich haben und jetzt voll durchstarten wollen! - Programmieren trainieren mit bekannten und modernen Klassikern - Von der Suche bis zu k-Means, vom Dreizeiler bis zur dynamischen Programmierung und KI - Für Studium, Coding-Katas, Workouts oder in Eigeninitiative - Titel der amerikanischen Originalausgabe: "Classic Computer Science Problems in Python"
Computational Models for Cognitive Vision
LEARN HOW TO APPLY COGNITIVE PRINCIPLES TO THE PROBLEMS OF COMPUTER VISIONComputational Models for Cognitive Vision formulates the computational models for the cognitive principles found in biological vision, and applies those models to computer vision tasks. Such principles include perceptual grouping, attention, visual quality and aesthetics, knowledge-based interpretation and learning, to name a few. The author’s ultimate goal is to provide a framework for creation of a machine vision system with the capability and versatility of the human vision.Written by Dr. Hiranmay Ghosh, the book takes readers through the basic principles and the computational models for cognitive vision, Bayesian reasoning for perception and cognition, and other related topics, before establishing the relationship of cognitive vision with the multi-disciplinary field broadly referred to as “artificial intelligence”. The principles are illustrated with diverse application examples in computer vision, such as computational photography, digital heritage and social robots. The author concludes with suggestions for future research and salient observations about the state of the field of cognitive vision.Other topics covered in the book include:· knowledge representation techniques· evolution of cognitive architectures· deep learning approaches for visual cognitionUndergraduate students, graduate students, engineers, and researchers interested in cognitive vision will consider this an indispensable and practical resource in the development and study of computer vision.HIRANMAY GHOSH, PHD, was a Research Advisor to TATA Consultancy Services and an Adjunct Faculty Member with the National Institute of Technology Karnataka. During his long professional career, he has served several reputed organizations, including CMC, ECIL and C-DOT and TCS. He was an Adjunct Faculty Member with IIT Delhi, and with the National Institute of Technology Karnataka. He is a Senior Member of IEEE, Life Member of IUPRAI, and a Member of ACM. About the Author ixAcknowledgments xiPreface xiiiAcronyms xv1 INTRODUCTION 11.1 What Is Cognitive Vision 21.2 Computational Approaches for Cognitive Vision 31.3 A Brief Review of Human Vision System 41.4 Perception and Cognition 61.5 Organization of the Book 72 EARLY VISION92.1 Feature Integration Theory 92.2 Structure of Human Eye 102.3 Lateral Inhibition 132.4 Convolution: Detection of Edges and Orientations 142.5 Color and Texture Perception 172.6 Motion Perception 192.6.1 Intensity-Based Approach 192.6.2 Token-Based Approach 202.7 Peripheral Vision 212.8 Conclusion 243 BAYESIAN REASONING FOR PERCEPTION AND COGNITION 253.1 Reasoning Paradigms 263.2 Natural Scene Statistics 273.3 Bayesian Framework of Reasoning 283.4 Bayesian Networks 323.5 Dynamic Bayesian Networks 343.6 Parameter Estimation 363.7 On Complexity of Models and Bayesian Inference 383.8 Hierarchical Bayesian Models 393.9 Inductive Reasoning with Bayesian Framework 413.9.1 Inductive Generalization 413.9.2 Taxonomy Learning 453.9.3 Feature Selection 463.10 Conclusion 474 LATE VISION 514.1 Stereopsis and Depth Perception 514.2 Perception of Visual Quality 534.3 Perceptual Grouping 554.4 Foreground–Background Separation 594.5 Multi-stability 604.6 Object Recognition 614.6.1 In-Context Object Recognition 624.6.2 Synthesis of Bottom-Up and Top-Down Knowledge 644.6.3 Hierarchical Modeling 654.6.4 One-Shot Learning 664.7 Visual Aesthetics 674.8 Conclusion 695 VISUAL ATTENTION 715.1 Modeling of Visual Attention 725.2 Models for Visual Attention 755.2.1 Cognitive Models 755.2.2 Information-Theoretic Models 775.2.3 Bayesian Models 785.2.4 Context-Based Models 795.2.5 Object-Based Models 815.3 Evaluation 825.4 Conclusion 846 Cognitive Architectures 876.1 Cognitive Modeling 886.1.1 Paradigms for Modeling Cognition 886.1.2 Levels of Abstraction 916.2 Desiderata for Cognitive Architectures 926.3 Memory Architecture 946.4 Taxonomies of Cognitive Architectures 976.5 Review of Cognitive Architectures 996.5.1 STAR: Selective Tuning Attentive Reference 1006.5.2 LIDA: Learning Intelligent Distribution Agent 1026.6 Biologically Inspired Cognitive Architectures 1056.7 Conclusions 1067 KNOWLEDGE REPRESENTATION FOR COGNITIVE VISION 1097.1 Classicist Approach to Knowledge Representation 1097.1.1 First Order Logic 1117.1.2 Semantic Networks 1137.1.3 Frame-Based Representation 1147.2 Symbol Grounding Problem 1177.3 Perceptual Knowledge 1187.3.1 Representing Perceptual Knowledge 1197.3.2 Structural Description of Scenes 1207.3.3 Qualitative Spatial and Temporal Relations 1227.3.4 Inexact Spatiotemporal Relations 1247.4 Unifying Conceptual and Perceptual Knowledge 1277.5 Knowledge-Based Visual Data Processing 1287.6 Conclusion 1298 DEEP LEARNING FOR VISUAL COGNITION 1318.1 A Brief Introduction to Deep Neural Networks 1328.1.1 Fully Connected Networks 1328.1.2 Convolutional Neural Networks 1348.1.3 Recurrent Neural Networks 1378.1.4 Siamese Networks 1408.1.5 Graph Neural Networks 1408.2 Modes of Learning with DNN 1428.2.1 Supervised Learning 1428.2.1.1 Image Segmentation 1428.2.1.2 Object Detection 1448.2.2 Unsupervised Learning with Generative Networks 1448.2.3 Meta-Learning: Learning to Learn 1468.2.3.1 Reinforcement Learning 1488.2.3.2 One-Shot and Few-Shot Learning 1488.2.3.3 Zero-Shot Learning 1508.2.3.4 Incremental Learning 1508.2.4 Multi-task Learning 1528.3 Visual Attention 1548.3.1 Recurrent Attention Models 1558.3.2 Recurrent Attention Model for Video 1588.4 Bayesian Inferencing with Neural Networks 1598.5 Conclusion 1609 APPLICATIONS OF VISUAL COGNITION 1639.1 Computational Photography 1639.1.1 Color Enhancement 1649.1.2 Intelligent Cropping 1669.1.3 Face Beautification 1679.2 Digital Heritage 1689.2.1 Digital Restoration of Images 1689.2.2 Curating Dance Archives 1709.3 Social Robots 1729.3.1 Dynamic and Shared Spaces 1739.3.2 Recognition of Visual Cues 1749.3.3 Attention to Socially Relevant Signals 1759.4 Content Re-purposing 1779.5 Conclusion 17910 CONCLUSION 18110.1 “What Is Cognitive Vision” Revisited 18110.2 Divergence of Approaches 18310.3 Convergence on the Anvil? 185References 187Index 215
Human Compatible
Künstliche Intelligenz und wie der Mensch die Kontrolle über superintelligente Maschinen behält »Das bedeutendste Buch über KI in diesem Jahr.«- The Guardian, 24.09.2019Werden Maschinen bald auf nahezu allen Gebieten intelligenter sein als der Mensch? Auch wenn das vielversprechend klingt, ist die Entwicklung einer Superintelligenz zugleich ein ernstzunehmendes Risiko. Denn ist diese einmal da, können wir nicht mehr einfach den Stecker ziehen. Niemand kann die Chancen und Risiken der künstlichen Intelligenz besser beurteilen als Stuart Russell, der seit mehr als einer Dekade an vorderster Front der KI-Forschung arbeitet. Er veranschaulicht mit brillanten Analogien, wie sich natürliche und künstliche Intelligenz voneinander unterscheiden, und macht deutlich, weshalb wir vermeiden müssen, dass die Maschinen für uns unkontrollierbar werden. Fundiert, eindringlich und visionär zeigt Human Compatible neue Perspektiven und Lösungswege für die KI-Forschung auf, um zu gewährleisten, dass superintelligente Maschinen unsere Ziele verfolgen und nicht ihre eigenen.
Das 3D-Scanner-Praxisbuch
3D-Scannen verständlich erklärt und zum Eigen-Nachbau.Mario Lukas beleuchtet in seinem Buch »Das 3D-Scanner-Praxisbuch« das gesamte Wissens- und Erfahrungsspektrum zum Thema »3D-Scanner«. Er beschreibt dabei alle wichtigen Aspekte und Schritte: Aufbau und Einrichtung der Scanner, die richtige Vorbereitung der Vorlagen, den Scan, die Aufbereitung von Punktwolke und Gittermodell und schließlich den 3D-Ausdruck.Lernen Sie dabei vier verschiedene Arten von Scannern kennen:Laserscanner (FabScanPi)Fotogrammetrie-Scanner (OpenScan-Pi-3D-Scanner)Tiefensensoren-basierte ScannerPersonenscans (Kinect) und Streifenlicht-ScannerIm Praxisteil des Buches beschreibt der Autor ausführlich in Schritt-für-Schritt-Anleitungen den Bau eines Laser-Scanners aus einem Raspberry Pi und einer Raspberry-Pi-Camera sowie den Bau eines Scanners für große Objekte und Personen mit einer Kinect-Videospielkonsole.Die Software-Bearbeitungskette im Post-Scanning-Prozess zur Erzielung hochwertiger Scan-Ergebnisse machen das Buch zu einem Standardwerk des 3D-Scannings. Beispiele aus dem Praxiseinsatz in der Maker-Werkstatt und drei vollständige Beispielprojekte bieten Ihnen viel Inspiration für Ihre eigenen Projekte. Lukas gelingt es mit diesem Buch, die spannende Entwicklung im 3D-Scanning-Bereich umfassend darzustellen und für die Maker-Welt zu öffnen.Über den Autor:Mario Lukas hat Informatik an der RWTH Aachen studiert und arbeitet als Software-Entwickler. Er publizierte Artikel zu seiner Maker-Tätigkeit in diversen Fachmagazinen und ist Co-Autor der bei dpunkt erschienenen Bücher „Licht und Spaß“ und „Das Calliope-Buch“.Hauptsächlich beschäftigt er sich mit den Themen „3D-Scannen“ und „3D-Druck“. Mehrfach konnte er bei nationalen und internationalen Wettbewerben mit seinen Kreationen gute Platzierungen belegen. Mario betreut seit Jahren federführend das FabScanPi-3D-Scanner-Projekt. Er ist einer der Gründungsväter des Vereins Freie Maker e.V.
Hands-on Booting
Master the booting procedure of various operating systems with in-depth analysis of bootloaders and firmware. The primary focus is on the Linux booting procedure along with other popular operating systems such as Windows and Unix.Hands-on Booting begins by explaining what a bootloader is, starting with the Linux bootloader followed by bootloaders for Windows and Unix systems. Next, you’ll address the BIOS and UEFI firmware by installing multiple operating systems on one machine and booting them through the Linux bootloader. Further, you’ll see the kernel's role in the booting procedure of the operating system and the dependency between kernel, initramfs, and dracut. You’ll also cover systemd, examining its structure and how it mounts the user root filesystem. In the final section, the book explains troubleshooting methodologies such as debugging shells followed by live images and rescue mode.On completing this book, you will understand the booting process of major operating systems such as Linux, Windows, and Unix. You will also know how to fix the Linux booting issues through various boot modes.WHAT YOU WILL LEARN* Examine the BIOS and UEFI firmware * Understanding the Linux boot loader (GRUB)* Work with initramfs, dracut, and systemd* Fix can’t-boot issues on Linux WHO THIS BOOK IS FORLinux users, administrators, and developers.Yogesh has been with Red Hat for the past 10 years. He is presently working as a principal technical support engineer in the Linux kernel domain. He specializes in troubleshooting and tuning the performance issues of Linux enterprise servers. The Linux boot process is his forte and he regularly speaks at open source conferences and forums. He also conducts workshops on operating systems for engineering students.Chapter 1: IntroductionChapter Goal: Why should we learn booting? Why is it important?No of pages : 2Sub -Topics1. Why booting?2. What booting really is?3. What happens when you start your computer4. Supply goes to CPUChapter 2: Multi-BootChapter Goal: First stage of booting is firmware and boot loader. There are different firmware's and every OS vendor has their own boot loader. To make readers understand it better, in this chapter we will install different operating systems (windows, Linux, Unix etc.) on one machine and would boot them through Linux boot loader.No of pages: 75 pagesSub - Topics1. BIOS firmware2. Creating partition layout3. Installation sequence of different operating systems:a) Windows XPb) Solaris 2008c) PC-BSD 9.0d) Windows server 2k3e) Windows sevenf) Fedora 15g) Red Hat Enterprise Linux 74. Booting sequence of every operating system.5. Multi booting every operating system through Linux bootloader GRUB & through windows boot loaders (NTLDR / BCD)6. UEFI firmwarea. Why UEFI when we already have BIOS?b. Advantages of UEFI7. Creating GPT partition table8. Installation sequence of latest operating systems:a. Oracle Solaris 11b. Windows 10c. Fedora 31d. Red Hat Enterprise Linux 89. Booting sequence and flowchart of each and every OS.10. The 100 operating systems booting through one boot loader project.Chapter 3: GRUB BootloaderChapter Goal: This topic will cover the GRUB bootloader in much depth.No of pages : 40 pages.Sub - Topics:1.What is new in GRUB version 2? and why do we need it?2.GRUB 2’s structure on BIOS based system.3. GRUB 2’s structure on UEFI based system.4. Manual booting with GRUB 2.5. UEFI shell in detail.6. How to fix the corrupted GRUB.7. Some can’t boot scenarios (related to bootloader) and how to fix them.8. Secure Boot1. What is secure boot?2. Linux and secure boot?3. Shim bootloader of Ubuntu.4. How to add new keys to UEFI?5. How to sign kernel modules?Chapter 4: KernelChapter Goal: This chapter covers the kernel’s role in operating system’s booting sequence.No of pages: 15Sub - Topics:1. The kernel (vmlinuz) as an image file.2. Who and how vmlinuz file is extracted?3. Kernel will start the first process of Linux which is Systemd.Chapter 5: InitramfsChapter Goal: In order to understand the rest of booting sequence we need to understand the basics of initramfs, and why we need initramfs ?No of pages: 15Sub - Topics:1. Why Initramfs?2. Structure of Initramfs.3. How kernel extracts the initramfs in memory?4. How kernel mounts the initramfs as root?Chapter 6: DracutChapter Goal: Dracut is a tool which generates the initramfs. Initramfs is responsible for loading the appropriate modules which are necessary for successful booting.No of pages: Around 17Sub - Topics:1. How dracut makes initramfs image?2. How dracut choose modules to add in initramfs?3. How to customize the initramfs?4. Dracut command line options.5. How to blacklist or add modules in initramfs?Chapter 7: SystemdChapter Goal: The systemd process (first process of Linux) will be launched from initramfs. Once it launched its purpose is to mount the root filesystem and switch to it.No of pages: 55Sub - Topics:1. Structure of systemd.2. How does systemd reduces boot time?3. Booting flow of systemd inside initramfs.4. Plymouth5. Switching to new root filesystem.Chapter 8: Debugging ShellsChapter Goal: Systemd provide various shells to debug the cant boot issues. This topic will cover the booting flow to reach to these shells as well as how to use these shells to fix the cant boot issues.No of pages: 35Sub - Topics:1. Various dracut shells inside initramfs.2. Emergency shell.3. The default Rescue mode.4. Flowchart of so far booting sequence.Chapter 9: Live ImagesChapter Goal: The chapter will cover how does Live images of Operating System boots.No of pages: 4Sub-Topics:1. Filesystem used inside Live images.2. How does the live images boot.Chapter 10: Rescue ModeChapter Goal: Rescue mode plays a vital role in fixing the cant boot issues.No of pages: 15.
Configuration of a Simple Samba File Server, Quota and Schedule Backup
This work is a step-by-step how to guide for configuring Samba file server, Quota andscheduled backup of important files. The paper provides an installation guide for,1. Samba server.2. Quota.3. Scheduled backup of important files.I am Dr. Hidaia Mahmoud Mohamed Alassouli. I completed my PhD degree in Electrical Engineering from Czech Technical University by February 2003, and my M. Sc. degree in Electrical Engineering from Bahrain University by June 1995. I completed also one study year of most important courses in telecommunication and computer engineering courses in Islamic university in Gaza. So, I covered most important subjects in Electrical Engineering, Computer Engineering and Telecommunications Engineering during my study. My nationality is Palestinian from gaza strip.I obtained a lot of certified courses in MCSE, SPSS, Cisco (CCNA), A+, Linux.I worked as Electrical, Telecommunicating and Computer Engineer in a lot of institutions. I worked also as a computer networking administrator. I had considerable undergraduate teaching experience in several types of courses in many universities. I handled teaching the most important subjects in Electrical and Telecommunication and Computer Engineering. I could publish a lot of papers a top-tier journals and conference proceedings, besides I published a lot of books in Publishing and Distribution houses.I wrote a lot of important Arabic articles on online news websites. I also have my own magazine website that I publish on it all my articles: http:// www.anticorruption.000space.comMy personal website: www.hidaia-alassouli.000space.comEmail: hidaia_alassouli@hotmail.com
Creation of Postfix Mail Server Based on Virtual Users and Domains
It is common these days for a single system to host many domains, for example uniswa.com and mtn.com or acme .com may run on a single host machine, but behave as if they were on three different hosts. A system usually has a canonical domain, it has its usual or local domain name, and additional domains are configured as virtual domains. The purpose behind this work is to create a mail server solution based on Postfix that is based on virtual users and domains, i..e. users and domains that are in a MySQL database. The goal is to have completely virtual users and domains. bob@uniswa.com != bob@acme.com. This means creating a separate name spaces for reach domain.It will also demonstrate the installation and configuration of Courier-Imap (IMAP/POP3), so it can authenticate against the same MySQL database Postfix uses. The resulting postfix server is capable of quota which is not built into Postfix by default; the project will demonstrate how to patch postfix appropriately. Passwords are stored in encrypted form in the database. The work also covers the installation of Mail Scanner, SpamAssassin and ClamAv so that emails will be scanned for spams and viruses. The administration of MySQL database can be done through a web based tool Postfixadmin or can be done manually in the MySQL shell. Postfixadmin is a web based management tool created for Postfix that handles Postfix style virtual domains and users that are stored in MySQL. The squirrelmail web based email client is installed, in order to check emails from anywhere in world via internet. All installations were done in Fedora 5 Linux machine.I am Dr. Hidaia Mahmoud Mohamed Alassouli. I completed my PhD degree in Electrical Engineering from Czech Technical University by February 2003, and my M. Sc. degree in Electrical Engineering from Bahrain University by June 1995. I completed also one study year of most important courses in telecommunication and computer engineering courses in Islamic university in Gaza. So, I covered most important subjects in Electrical Engineering, Computer Engineering and Telecommunications Engineering during my study. My nationality is Palestinian from gaza strip.I obtained a lot of certified courses in MCSE, SPSS, Cisco (CCNA), A+, Linux.I worked as Electrical, Telecommunicating and Computer Engineer in a lot of institutions. I worked also as a computer networking administrator. I had considerable undergraduate teaching experience in several types of courses in many universities. I handled teaching the most important subjects in Electrical and Telecommunication and Computer Engineering. I could publish a lot of papers a top-tier journals and conference proceedings, besides I published a lot of books in Publishing and Distribution houses.I wrote a lot of important Arabic articles on online news websites. I also have my own magazine website that I publish on it all my articles: http:// www.anticorruption.000space.comMy personal website: www.hidaia-alassouli.000space.comEmail: hidaia_alassouli@hotmail.com
Investigation of the Usefulness of the PowerWorld Simulator Program
The objective of this project is to investigate the usefulness of the power system simulator PowerWorld program developed by Glover, Overbye &Sarma. The results obtained from the power simulator program were presented for different case studies.I am Dr. Hidaia Mahmoud Mohamed Alassouli. I completed my PhD degree in Electrical Engineering from Czech Technical University by February 2003, and my M. Sc. degree in Electrical Engineering from Bahrain University by June 1995. I completed also one study year of most important courses in telecommunication and computer engineering courses in Islamic university in Gaza. So, I covered most important subjects in Electrical Engineering, Computer Engineering and Telecommunications Engineering during my study. My nationality is Palestinian from gaza strip.I obtained a lot of certified courses in MCSE, SPSS, Cisco (CCNA), A+, Linux.I worked as Electrical, Telecommunicating and Computer Engineer in a lot of institutions. I worked also as a computer networking administrator. I had considerable undergraduate teaching experience in several types of courses in many universities. I handled teaching the most important subjects in Electrical and Telecommunication and Computer Engineering. I could publish a lot of papers a top-tier journals and conference proceedings, besides I published a lot of books in Publishing and Distribution houses.I wrote a lot of important Arabic articles on online news websites. I also have my own magazine website that I publish on it all my articles: http:// www.anticorruption.000space.comMy personal website: www.hidaia-alassouli.000space.comEmail: hidaia_alassouli@hotmail.com
OCP Oracle Certified Professional Java SE 11 Programmer II Study Guide
THIS OCP ORACLE CERTIFIED PROFESSIONAL JAVA SE 11 PROGRAMMER I STUDY GUIDE: EXAM 1Z0-815 AND THE PROGRAMMER II STUDY GUIDE: EXAM 1Z0-816 WERE PUBLISHED BEFORE ORACLE ANNOUNCED MAJOR CHANGES TO ITS OCP CERTIFICATION PROGRAM AND THE RELEASE OF THE NEW DEVELOPER 1Z0-819 EXAM.NO MATTER THE CHANGES, REST ASSURED BOTH OF THE PROGRAMMER I AND II STUDY GUIDES COVER EVERYTHING YOU NEED TO PREPARE FOR AND TAKE EXAM 1Z0-819. IF YOU’VE PURCHASED ONE OF THE PROGRAMMER STUDY GUIDES, PURCHASE THE OTHER ONE AND YOU’LL BE ALL SET.NOTE: The OCP Java SE 11 Programmer I Exam 1Z0-815 and Programmer II Exam 1Z0-816 have been retired (as of October 1, 2020), and Oracle has released a new Developer Exam 1Z0-819 to replace the previous exams. The Upgrade Exam 1Z0-817 remains the same.THE COMPLETELY-UPDATED PREPARATION GUIDE FOR THE NEW OCP ORACLE CERTIFIED PROFESSIONAL JAVA SE 11 PROGRAMMER II EXAM—COVERS EXAM 1Z0-816Java, a platform-independent, object-oriented programming language, is used primarily in mobile and desktop application development. It is a popular language for client-side cloud applications and the principal language used to develop Android applications. Oracle has recently updated its Java Programmer certification tracks for Oracle Certified Professional.OCP Oracle Certified Professional Java SE 11 Programmer II Study Guide ensures that you are fully prepared for this difficult certification exam. Covering 100% of exam objectives, this in-depth study guide provides comprehensive coverage of the functional-programming knowledge necessary to succeed. Every exam topic is thoroughly and completely covered including exceptions and assertions, class design, generics and collections, threads, concurrency, IO and NIO, and more. Access to Sybex's superior online interactive learning environment and test bank—including self-assessment tests, chapter tests, bonus practice exam questions, electronic flashcards, and a searchable glossary of important terms—provides everything you need to be fully prepared on exam day. This must-have guide:* Covers all exam objectives such as inheriting abstract classes and interfaces, advanced strings and localization, JDBC, and Object-Oriented design principles and patterns* Explains complex material and reinforces your comprehension and retention of important topics* Helps you master more advanced areas of functional programming* Demonstrates practical methods for building Java solutionsOCP Oracle Certified Professional Java SE 11 Programmer II Study Guide will prove invaluable for anyone seeking achievement of this challenging exam, as well as junior- to senior-level programmers who uses Java as their primary programming language.SCOTT SELIKOFF, OCA/OCP 8 AND OCP 11, has been a professional Java Enterprise architect for over 20 years. He is the founder of Selikoff Solutions, LLC, specializing in building custom mobile and server solutions for businesses in the tri-state New York City area. JEANNE BOYARSKY, OCA/OCP 8 AND OCP 11, is a Java Champion and has worked as a Java developer for a major bank for more than 18 years. She is a senior moderator at CodeRanch, and trains and mentors students of all levels, including the programming division of a FIRST robotics team.Introduction xxiAssessment Test xlivCHAPTER 1 JAVA FUNDAMENTALS 1Applying the final Modifier 2Declaring final Local Variables 3Adding final to Instance and static Variables 4Writing final Methods 5Marking Classes final 5Working with Enums 6Creating Simple Enums 6Using Enums in Switch Statements 8Adding Constructors, Fields, and Methods 9Creating Nested Classes 12Declaring an Inner Class 12Creating a static Nested Class 15Writing a Local Class 17Defining an Anonymous Class 18Reviewing Nested Classes 21Understanding Interface Members 22Relying on a default Interface Method 23Using static Interface Methods 27Introducing private Interface Methods 28Introducing private static Interface Methods 29Reviewing Interface Members 31Introducing Functional Programming 32Defining a Functional Interface 32Declaring a Functional Interface with Object Methods 34Implementing Functional Interfaces with Lambdas 36Writing Lambda Expressions 38Working with Lambda Variables 40Summary 43Exam Essentials 44Review Questions 46CHAPTER 2 ANNOTATIONS 59Introducing Annotations 60Understanding Metadata 60Purpose of Annotations 61Creating Custom Annotations 64Creating an Annotation 64Specifying a Required Element 65Providing an Optional Element 66Selecting an Element Type 67Applying Element Modifiers 67Adding a Constant Variable 68Reviewing Annotation Rules 68Applying Annotations 69Using Annotations in Declarations 69Mixing Required and Optional Elements 71Creating a value() Element 71Passing an Array of Values 73Declaring Annotation-Specific Annotations 74Limiting Usage with @Target 74Storing Annotations with @Retention 77Generating Javadoc with @Documented 77Inheriting Annotations with @Inherited 79Supporting Duplicates with @Repeatable 79Reviewing Annotation-Specific Annotations 81Using Common Annotations 83Marking Methods with @Override 83Declaring Interfaces with @FunctionalInterface 84Retiring Code with @Deprecated 85Ignoring Warnings with @SuppressWarnings 86Protecting Arguments with @SafeVarargs 88Reviewing Common Annotations 89Summary 91Exam Essentials 92Review Questions 94CHAPTER 3 GENERICS AND COLLECTIONS 105Using Method References 107Calling Static Methods 108Calling Instance Methods on a Particular Object 109Calling Instance Methods on a Parameter 109Calling Constructors 110Reviewing Method References 110Using Wrapper Classes 111Using the Diamond Operator 113Using Lists, Sets, Maps, and Queues 114Common Collections Methods 115Using the List Interface 119Using the Set Interface 124Using the Queue Interface 126Using the Map Interface 128Comparing Collection Types 135Sorting Data 137Creating a Comparable Class 137Comparing Data with a Comparator 141Comparing Comparable and Comparator 142Comparing Multiple Fields 143Sorting and Searching 145Working with Generics 147Generic Classes 148Generic Interfaces 151Raw Types 152Generic Methods 153Bounding Generic Types 154Putting It All Together 159Summary 161Exam Essentials 163Review Questions 164CHAPTER 4 FUNCTIONAL PROGRAMMING 175Working with Built-in Functional Interfaces 176Implementing Supplier 178Implementing Consumer and BiConsumer 179Implementing Predicate and BiPredicate 180Implementing Function and BiFunction 181Implementing UnaryOperator and BinaryOperator 183Checking Functional Interfaces 184Convenience Methods on Functional Interfaces 185Returning an Optional 187Creating an Optional 188Dealing with an Empty Optional 189Using Streams 191Understanding the Pipeline Flow 191Creating Stream Sources 194Using Common Terminal Operations 197Using Common Intermediate Operations 204Putting Together the Pipeline 209Working with Primitive Streams 213Creating Primitive Streams 214Mapping Streams 217Using Optional l with Primitive Streams 219Summarizing Statistics 220Learning the Functional Interfaces for Primitives 221Working with Advanced Stream Pipeline Concepts 224Linking Streams to the Underlying Data 224Chaining Optionals 224Collecting Results 227Summary 234Exam Essentials 236Review Questions 238CHAPTER 5 EXCEPTIONS, ASSERTIONS, AND LOCALIZATION 247Reviewing Exceptions 248Handling Exceptions 248Distinguishing between throw and throws 250Examining Exception Categories 250Inheriting Exception Classes 252Creating Custom Exceptions 253Declaring Exception Classes 253Adding Custom Constructors 253Printing Stack Traces 255Automating Resource Management 256Constructing Try-With-Resources Statements 256Learning the New Effectively Final Feature 259Understanding Suppressed Exceptions 261Declaring Assertions 264Validating Data with the assert Statement 264Enabling Assertions 266Disabling Assertions 267Applying Assertions 267Writing Assertions Correctly 268Working with Dates and Times 268Creating Dates and Times 269Formatting Dates and Times 271Supporting Internationalization and Localization 276Picking a Locale 276Localizing Numbers 279Localizing Dates 283Specifying a Locale Category 284Loading Properties with Resource Bundles 285Creating a Resource Bundle 286Picking a Resource Bundle 288Selecting Resource Bundle Values 289Formatting Messages 291Using the Properties Class 292Summary 293Exam Essentials 294Review Questions 295CHAPTER 6 MODULAR APPLICATIONS 309Reviewing Module Directives 310Comparing Types of Modules 311Named Modules 311Automatic Modules 312Unnamed Modules 315Comparing Module Types 315Analyzing JDK Dependencies 316Identifying Built-in Modules 316Using jdeps 318Migrating an Application 321Determining the Order 321Exploring a Bottom-Up Migration Strategy 322Exploring a Top-Down Migration Strategy 324Splitting a Big Project into Modules 325Failing to Compile with a Cyclic Dependency 326Creating a Service 328Declaring the Service Provider Interface 329Creating a Service Locator 330Invoking from a Consumer 332Adding a Service Provider 333Merging Service Locator and Consumer 334Reviewing Services 337Summary 337Exam Essentials 338Review Questions 339CHAPTER 7 CONCURRENCY 345Introducing Threads 347Distinguishing Thread Types 348Understanding Thread Concurrency 348Defining a Task with Runnable 349Creating a Thread 351Polling with Sleep 353Creating Threads with the Concurrency API 355Introducing the Single-Thread Executor 355Shutting Down a Thread Executor 356Submitting Tasks 357Waiting for Results 358Submitting Task Collections 362Scheduling Tasks 363Increasing Concurrency with Pools 366Writing Thread-Safe Code 367Understanding Thread-Safety 367Protecting Data with Atomic Classes 369Improving Access with Synchronized Blocks 371Synchronizing on Methods 373Understanding the Lock Framework 375Orchestrating Tasks with a CyclicBarrier 379Using Concurrent Collections 382Understanding Memory Consistency Errors 383Working with Concurrent Classes 383Obtaining Synchronized Collections 388Identifying Threading Problems 389Understanding Liveness 390Managing Race Conditions 393Working with Parallel Streams 394Creating Parallel Streams 395Performing a Parallel Decomposition 396Processing Parallel Reductions 398Avoiding Stateful Operations 403Summary 404Exam Essentials 405Review Questions 406CHAPTER 8 I/O 419Understanding Files and Directories 420Conceptualizing the File System 420Storing Data as Bytes 422Introducing the File Class 422Introducing I/O Streams 426Understanding I/O Stream Fundamentals 426Learning I/O Stream Nomenclature 427Common I/O Stream Operations 433Reading and Writing Data 433Closing the Stream 435Manipulating Input Streams 436Flushing Output Streams 438Reviewing Common I/O Stream Methods 439Working with I/O Stream Classes 440Reading and Writing Binary Data 440Buffering Binary Data 441Reading and Writing Character Data 443Buffering Character Data 444Serializing Data 445Printing Data 452Review of Stream Classes 457Interacting with Users 458Printing Data to the User 459Reading Input as a Stream 460Closing System Streams 460Acquiring Input with Console 461Summary 464Exam Essentials 464Review Questions 466CHAPTER 9 NIO.2 475Introducing NIO.2 476Introducing Path 477Creating Paths 478Understanding Common NIO.2 Features 483Interacting with Paths 486Viewing the Path with toString(), getNameCount(), and getName() 486Creating a New Path with subpath() 487Accessing Path Elements with getFileName(), getParent(), and getRoot() 488Checking Path Type with isAbsolute() and toAbsolutePath() 490Joining Paths with resolve() 491Deriving a Path with relativize() 491Cleaning Up a Path with normalize() 493Retrieving the File System Path with toRealPath() 493Reviewing Path Methods 494Operating on Files and Directories 495Checking for Existence with exists() 495Testing Uniqueness with isSameFile() 496Making Directories with createDirectory() and createDirectories() 497Copying Files with copy() 498Moving or Renaming Paths with move() 500Deleting a File with delete() and deleteIfExists() 500Reading and Writing Data with newBufferedReader() and newBufferedWriter() 501Reading a File with readAllLines() 502Reviewing Files Methods 502Managing File Attributes 503Discovering File Attributes 503Improving Attribute Access 506Applying Functional Programming 508Listing Directory Contents 508Traversing a Directory Tree 510Searching a Directory with find() 514Reading a File with lines() 515Comparing Legacy java.io.File and NIO.2 Methods 517Summary 518Exam Essentials 518Review Questions 520CHAPTER 10 JDBC 529Introducing Relational Databases and SQL 530Identifying the Structure of a Relational Database 532Writing Basic SQL Statements 533Introducing the Interfaces of JDBC 535Connecting to a Database 537Building a JDBC URL 537Getting a Database Connection 539Working with a PreparedStatement 542Obtaining a PreparedStatement 543Executing a PreparedStatement 543Working with Parameters 546Updating Multiple Times 549Getting Data from a ResultSet 551Reading a ResultSet 551Getting Data for a Column 555Using Bind Variables 556Calling a CallableStatement 557Calling a Procedure without Parameters 558Passing an IN Parameter 559Returning an OUT Parameter 559Working with an INOUT Parameter 560Comparing Callable Statement Parameters 560Closing Database Resources 561Summary 564Exam Essentials 564Review Questions 566CHAPTER 11 SECURITY 575Designing a Secure Object 576Limiting Accessibility 576Restricting Extensibility 577Creating Immutable Objects 578Cloning Objects 581Introducing Injection and Input Validation 583Preventing Injection with a PreparedStatement 583Invalidating Invalid Input with Validation 586Working with Confidential Information 588Guarding Sensitive Data from Output 589Protecting Data in Memory 589Limiting File Access 590Serializing and Deserializing Objects 591Specifying Which Fields to Serialize 591Customizing the Serialization Process 592Pre/Post-Serialization Processing 593Reviewing Serialization Methods 596Constructing Sensitive Objects 597Making Methods final 598Making Classes final 598Making the Constructor private 599Preventing Denial of Service Attacks 600Leaking Resources 600Reading Very Large Resources 600Including Potentially Large Resources 601Overflowing Numbers 601Wasting Data Structures 602Summary 603Exam Essentials 604Review Questions 605APPENDICES 611APPENDIX A THE UPGRADE EXAM 611Working with Local Variable Type Inference 612Type Inference of var 613Examples with var 614Review of var Rules 617Introducing Modules 617Exploring a Module 618Benefits of Modules 619Creating and Running a Modular Program 621Creating the Files 622Compiling Our First Module 623Running Our First Module 625Packaging Our First Module 627Updating Our Example for Multiple Modules 628Updating the Feeding Module 628Creating a Care Module 629Creating the Talks Module 631Creating the Staff Module 634Diving into the module-info File 635exports 635requires transitive 636provides, uses, and opens 639Discovering Modules 639The java Command 639The jar Command 643The jdeps Command 643The jmod Command 645Reviewing Command-Line Options 645Summary 648Exam Essentials 649Review Questions 650APPENDIX B ANSWERS TO REVIEW QUESTIONS 657Chapter 1: Java Fundamentals 658Chapter 2: Annotations 662Chapter 3: Generics and Collections 665Chapter 4: Functional Programming 669Chapter 5: Exceptions, Assertions, and Localization 672Chapter 6: Modular Applications 676Chapter 7: Concurrency 678Chapter 8: I/O 682Chapter 9: NIO.2 685Chapter 10: JDBC 689Chapter 11: Security 691Appendix A: The Upgrade Exam 693Index 697
JavaScript
ALL OF JAVASCRIPT'S NEWEST FEATURES, IN DEPTH, MADE EASY TO UNDERSTAND.JavaScript is a rapidly changing language and it can be challenging to keep up with all the new toys being added. JavaScript: The New Toys explores the newest features of the world's most popular programming language while also showing readers how to track what's coming next. After setting the stage by covering who manages the process of improving JavaScript, how new features get introduced, terminology, and a high-level overview of new features, it details each new or updated item in depth, with example uses, possible pitfalls, and expert recommendations for updating old habits in light of new features. JavaScript: The New Toys:* Covers all the additions to JavaScript in ES2015-ES2020 plus a preview of what's coming next* Explores the latest syntax: nullish coalescing, optional chaining,```let```and```const```,```class```syntax, private methods, private fields,```new.target```, numeric separators, BigInt, destructuring, default parameters, arrow functions,```async```functions,```await```, generator functions,```...```(rest and spread), template literals, binary and octal literals,```**```(exponentiation), computed property/method names,```for-of```,```for-await-of```, shorthand properties, and others* Details the new features and patterns including modules, promises, iteration, generators, Symbol, Proxy, reflection, typed arrays, Atomics, shared memory, WeakMap, WeakSet, and more* Highlights common pitfalls and explains how to avoid them* Shows how to follow the improvements process and even participate in the process yourself* Explains how to use new features even before they're widely supportedWith its comprehensive coverage and friendly, accessible style, JavaScript: The New Toys provides an invaluable resource for programmers everywhere, whether they work in web development, Node.js, Electron, Windows Universal Apps, or another JavaScript environment.About the authorT.J. CROWDER is a software engineer with 30 years of experience, including over 15 years of professional work in JavaScript. He runs Farsight Software, a software contracting and product company. He's often found helping people on Stack Overflow, where he's a top 10 all-time contributor and the top JavaScript contributor. When not working or writing, he…no, sorry, he's always working or writing – or spending time with his wonderful, supportive wife and fantastic son.Visit us at www.wiley.com for free code samples.Introduction xxxiCHAPTER 1: THE NEW TOYS IN ES2015–ES2020, AND BEYOND 1Definitions, Who’s Who, and Terminology 2What are the “New Toys”? 4How Do New Toys Get Created? 6Keeping Up with the New Toys 9Using Today’s Toys in Yesterday’s Environments, and Tomorrow’s Toys Today 10Review 15CHAPTER 2: BLOCK-SCOPED DECLARATIONS: LET AND CONST 17An Introduction to let and const 18True Block Scope 18Repeated Declarations are an Error 19Hoisting and the Temporal Dead Zone 20A New Kind of Global 22const: Constants for JavaScript 24Block Scope in Loops 26Old Habits to New 36CHAPTER 3: NEW FUNCTION FEATURES 39Arrow Functions and Lexical this, super, etc. 40Default Parameter Values 45“Rest” Parameters 50Trailing Commas in Parameter Lists and Function Calls 52The Function name Property 53Function Declarations in Blocks 55Function Declarations in Blocks: Standard Semantics 57Old Habits to New 60CHAPTER 4: CLASSES 65What is a Class? 66Introducing the New class Syntax 66Comparing with the Older Syntax 75Creating Subclasses 77Leaving Off Object.prototype 97new.target 98class Declarations vs. class Expressions 101More to Come 103Old Habits to New 104CHAPTER 5: NEW OBJECT FEATURES 105Computed Property Names 106Shorthand Properties 107Getting and Setting an Object’s Prototype 107Method Syntax, and super Outside Classes 109Symbol 112New Object Functions 120Symbol.toPrimitive 123Property Order 125Property Spread Syntax 127Old Habits to New 128CHAPTER 6: ITERABLES, ITERATORS, FOR-OF, ITERABLE SPREAD, GENERATORS 131Iterators, Iterables, the for-of Loop, and Iterable Spread Syntax 131Generator Functions 146Old Habits to New 163CHAPTER 7: DESTRUCTURING 165Overview 165Basic Object Destructuring 166Basic Array (and Iterable) Destructuring 169Defaults 170Rest Syntax in Destructuring Patterns 172Using Different Names 173Computed Property Names 174Nested Destructuring 174Parameter Destructuring 175Destructuring in Loops 178Old Habits to New 179CHAPTER 8: PROMISES 181Why Promises? 182Promise Fundamentals 182Using an Existing Promise 186Adding Handlers to Already Settled Promises 201Creating Promises 202Other Promise Utility Methods 207Promise Patterns 210Handle Errors or Return the Promise 210Promises in Series 211Promises in Parallel 213Promise Subclasses 218Old Habits to New 219CHAPTER 9: ASYNCHRONOUS FUNCTIONS, ITERATORS, AND GENERATORS 221async Functions 222async Iterators, Iterables, and Generators 232for-await-of 238Old Habits to New 238CHAPTER 10: TEMPLATES, TAG FUNCTIONS, AND NEW STRING FEATURES 241Template Literals 241Improved Unicode Support 250Iteration 255New String Methods 256Updates to the match, split, search, and replace Methods 259Old Habits to New 260CHAPTER 11: NEW ARRAY FEATURES, TYPED ARRAYS 263New Array Methods 264Iteration, Spread, Destructuring 276Stable Array Sort 276Typed Arrays 277Old Habits to New 292CHAPTER 12: MAPS AND SETS 293Maps 293Sets 300WeakMaps 304WeakSets 314Old Habits to New 316CHAPTER 13: MODULES 319Introduction to Modules 319Module Fundamentals 320Renaming Exports 331Re-Exporting Exports from Another Module 332Renaming Imports 333Importing a Module’s Namespace Object 333Exporting Another Module’s Namespace Object 334Importing a Module Just for Side Effects 335Import and Export Entries 335Imports are Live and Read-Only 338Module Instances are Realm-Specific 340How Modules are Loaded 341Import/Export Syntax Review 348Dynamic Import 350Tree Shaking 357Bundling 359Import Metadata 360Worker Modules 360Old Habits to New 362CHAPTER 14: REFLECTION—REFLECT AND PROXY 365Reflect 365Proxy 371Old Habits to New 395CHAPTER 15: REGULAR EXPRESSION UPDATES 397The Flags Property 398New Flags 398Named Capture Groups 400Lookbehind Assertions 405Unicode Features 408Old Habits to New 413CHAPTER 16: SHARED MEMORY 417Introduction 417Here There Be Dragons! 418Browser Support 418Shared Memory Basics 420Memory is Shared, Not Objects 426Race Conditions, Out-of-Order Stores, Stale Values, Tearing, and More 427The Atomics Object 429Shared Memory Example 434Here There Be Dragons! (Again) 455Old Habits to New 460CHAPTER 17: MISCELLANY 461BigInt 462New Integer Literals 465New Math Methods 467Exponentiation Operator (**) 468Date.prototype.toString Change 470Function.prototype.toString Change 471Number Additions 471Symbol.isConcatSpreadable 474Various Syntax Tweaks 475Various Standard Library / Global Additions 479Annex B: Browser-Only Features 482Tail Call Optimization 488Old Habits to New 491CHAPTER 18: UPCOMING CLASS FEATURES 493Public and Private Class Fields, Methods, and Accessors 493Old Habits to New 514CHAPTER 19: A LOOK AHEAD . . .517Top-Level await 518WeakRefs and Cleanup Callbacks 525RegExp Match Indices 533String.prototype.replaceAll 535Atomics asyncWait 535Various Syntax Tweaks 536Legacy Deprecated RegExp Features 537Thank You for Reading! 538APPENDIX: FANTASTIC FEATURES AND WHERE TO FIND THEM 539Index 557
Beginning Unity Android Game Development
Master the art of programming games for Android using the Unity3D game engine. This book will help you understand basic concepts of game development in Unity. By the end of Beginning Unity Android Game Development, you will have the knowledge to confidently build an Android game.The book starts by explaining simple programming concepts to make beginners comfortable with the jargon. You will then learn to navigate around the Unity interface and use basic tools (hand, move, rotate, scale, and rect). You will also be acquainted with the creation of basic 3D objects in the game while understanding the purpose of several of Unity’s windows.In the last chapters, you will learn to create a simple game for Android using the concepts studied in the previous chapters. Scripts will be written to handle the behaviors of the player and enemies as well as to handle other aspects of the game. The author shares tips along the way to help improve in-game performance, such as switching to the universal rendering pipeline when targeting mobile platforms.At the end of the book, you will have a solid knowledge in making basic Android games that can be upgraded later to make more complex games.WHAT YOU WILL LEARN* Explore basic Unity and C# programming concepts and scripting for Android games* Navigate around the Unity interface and use its basic tools* Make the most of popular components and features of Unity* Write an Android game with optimizationsWHO THIS BOOK IS FORAbsolute beginners learning to program games for the Android platform using Unity3D. Basic knowledge of programming would be beneficial for the reader but is not required.Kishan started out by learning programming at a young age with Python. Finding a bigger interest in game development, he has been developing games using the Unity game engine for over four years now. He is also a Linux lover and has worked on his own distribution. Currently, he resides in his home country, Mauritius, where he often participates in major technical events and hackathons with Cyberstorm.mu while developing quality games and improving his portfolio with new skills.CHAPTER 1: PROGRAMMING CONCEPTSChapter Goal: This chapter is intended to make the reader feel comfortable with basic programming concepts and operations. It will make further topics about game dev scripting more accessible to those with no past programming experience.Sub -Topics:1. Fundamentals of programming2. Variables, constants, and types3. Arithmetic operations4. Boolean expressions5. Selection6. Iteration7. FunctionsCHAPTER 2: INTRODUCTION TO UNITYChapter Goal: This chapter provides an introduction to the Unity game engine and IDE. It shows how to navigate around, create basic objects and using transform tools to move, scale and rotate. The purpose of the Scene, Game, Hierarchy, Inspector, Project and Asset Store windows are also discussed.Sub -Topics:1. Creating a Unity account2. Downloading Unity and required add-ons3. Scene view4. Game view5. Hierarchy window6. Inspector window7. Using the transform tools8. Project window9. Asset store windowCHAPTER 3: GAMEOBJECTS, PREFABS, MATERIALS, AND COMPONENTSChapter Goal: We learn more about GameObjects, the benefits of making prefabs, and the use of several components. A small overview of the need to use materials is also provided.Sub -Topics:1. What are GameObjects and Prefabs2. Transform component3. Camera component4. Lighting component5. Renderer component6. Collider component7. Rigidbody component8. Audio source component9. Particle emitter component10. Trail renderer component11. MaterialsCHAPTER 4: USER INTERFACEChapter Goal: The Canvas component is introduced and the reader will learn about making a game more interactive using touch input.Sub -Topics:1. The Canvas component2. Text3. Image/RawImage4. Slider5. Input field6. Button7. Introduction to input axesCHAPTER 5: BUILDING OUR FIRST ANDROID GAME - SPHERE SHOOTERChapter Goal: After creating a new project, we learn about switching to a more lightweight rendering pipeline. The reader will learn how to create the game environment, first enemy, player tank and bullets. Scripts will also need to be written to handle player movement, shooting, enemy instantiation and behavior.Sub -Topics:1. The lightweight rendering pipeline2. Creating game terrain and adjusting lighting3. Making prefabs for the player, first enemy, and bullets4. Player movement5. Player shooting6. Spawning enemies7. Enemy movement8. Enemy destruction9. Game overCHAPTER 6: IMPROVING THE GAME - SPHERE SHOOTERChapter Goal: We will learn how to make the game more interesting by creating simple but elegant canvas elements, introduce concepts such as health and score, make two more types of enemies, introduce pickups, add more sound effects to the game along with particle systems, implement mobile controls and exporting a build ready to be played.Sub -Topics1. Fancy Menu when starting the game and dying2. Adding the concept of score3. Adding the concept of health4. Implementing particle systems5. Making a new faster enemy6. Making a new bigger enemy7. Creating a health pickup8. Adding sound effects9. Mobile joysticks10. Editing player settings and exporting11. What next?
IoT mit SAP
Wie können Sie das Internet der Dinge (IoT) gewinnbringend nutzen? Dieser praktische Leitfaden führt Sie durch das Angebot der SAP-IoT-Plattform – immer orientiert an typischen Anwendungsfällen in Industrie und Wirtschaft. Sie erfahren, welche IoT-Services Ihnen auf der SAP Cloud Platform und mit SAP Leonardo zur Verfügung stehen und wie Sie diese einsetzen, um Ihre eigene Architektur aufzusetzen. Darüber hinaus lernen Sie SAP-Standardlösungen für Asset Management und Real-Time Track and Trace kennen, die Sie direkt implementieren können. Aus dem Inhalt: ReferenzarchitekturDigitaler ZwillingEdge ComputingSAP Cloud PlatformSAP Leonardo IoTDigital Supply ChainSAP Asset Intelligence Network (AIN)SAP Predictive Maintenance and ServiceSicherheit und Backend-AnbindungImplementierungsbeispiele für kundeneigene IoT-LösungenUse Cases und Projektmethoden Vorwort ... 15 Einleitung ... 17 1. Was ist das Internet der Dinge? ... 25 1.1 ... Das Internet der Dinge in Alltag und Industrie ... 25 1.2 ... Internet der Dinge: Begriffsabgrenzungen ... 33 1.3 ... Historische Entwicklung des Internets der Dinge ... 37 1.4 ... Weiterentwicklung und Potenzial des Internets der Dinge ... 43 2. Technische Grundlagen und Komponenten ... 47 2.1 ... Eigenschaften von IoT-Systemen ... 48 2.2 ... Architektur von IoT-Systemen ... 63 2.3 ... Funktionale Anforderungen an IoT-Systeme ... 81 2.4 ... Computing-Konzepte im Umfeld von IoT-Systemen ... 93 Die SAP-IoT-Plattform ... 99 3. IoT im Kontext von SAP ... 101 3.1 ... IoT in der SAP-Strategie ... 101 3.2 ... Einführung in die SAP-IoT-Plattform ... 116 3.3 ... Marktpositionierung der SAP-IoT-Plattform ... 130 4. SAP Cloud Platform ... 137 4.1 ... Erste Schritte mit der SAP Cloud Platform ... 137 4.2 ... Integrationsservices ... 144 4.3 ... Services für Datenspeicherung und -verwaltung ... 172 4.4 ... Services für Benutzeroberflächen und Sicherheit ... 176 4.5 ... Services für Entwicklung und Betrieb ... 184 5. IoT-Services der SAP Cloud Platform ... 195 5.1 ... SAP Cloud Platform IoT ... 196 5.2 ... SAP Leonardo IoT ... 206 6. SAP Edge Services ... 229 6.1 ... Komponenten und Funktionen der SAP Edge Services ... 230 6.2 ... SAP Edge Services installieren und testen ... 237 SAP-IoT-Standardlösungen für die digitale Supply Chain ... 249 7. Asset Management: digitaler Service, Wartung und Instandhaltung ... 251 7.1 ... Industrietrends und Kernkonzepte ... 252 7.2 ... Digitale Prozesse und neue Geschäftsmodelle ... 259 7.3 ... SAP Intelligent Asset Management Suite ... 265 7.4 ... Integration mit den Backend-Systemen ... 288 7.5 ... Kundenbeispiele ... 292 8. Realtime Track and Trace in der Logistik ... 295 8.1 ... Industrietrends und Anforderungen ... 296 8.2 ... Echtzeit-Logistikmanagement mit SAP ... 305 8.3 ... Relevante IoT-Technologien ... 313 8.4 ... Partner- und Kundenbeispiele ... 319 Individuelle IoT-Lösungen mit SAP ... 327 9. Füllstand von Behältern überwachen und Nachschub anstoßen ... 329 9.1 ... Softwarearchitektur und Integration ... 330 9.2 ... Nutzen und betriebswirtschaftliche Relevanz des Szenarios ... 351 10. Pay per Use und Abonnement-Modelle ... 353 10.1 ... Softwarearchitektur und Integration ... 354 10.2 ... Nutzen und betriebswirtschaftliche Relevanz des Szenarios ... 378 11. Edge Computing bei speziell zu schützenden Geräten ... 379 11.1 ... Softwarearchitektur und Integration ... 380 11.2 ... Nutzen und betriebswirtschaftliche Relevanz des Szenarios ... 399 12. IoT-Szenarien mit Objekterkennung ... 401 12.1 ... Objekterkennung, neuronale Netze und künstliche Intelligenz ... 402 12.2 ... Softwarearchitektur und Integration ... 405 12.3 ... Nutzen und betriebswirtschaftliche Relevanz ... 419 IoT-Projekte mit SAP-Software umsetzen ... 421 13. Vorbereitung eines IoT-Projekts ... 423 13.1 ... Den passenden Use Case finden ... 424 13.2 ... Den passenden IoT-Hardwarehersteller auswählen ... 444 13.3 ... Bestehende Hardware integrieren ... 448 13.4 ... Strategische Partnerschaften schließen ... 452 14. Methoden zur Durchführung eines IoT-Projekts ... 465 14.1 ... Design Thinking ... 466 14.2 ... Agil zum Projekterfolg ... 476 14.3 ... Aufbau eines digitalen Geschäftsmodells ... 485 14.4 ... Sicherheit von IoT-Systemen ... 490 A. Literatur und Quellenverzeichnis ... 495 B. Das Autorenteam ... 509 Index ... 511
Quick Configuration of Openldap and Kerberos In Linux and Authenicating Linux to Active Directory
This paper is a step-by-step how to guide for configuring of Openldap server, Kerberos server and shows the procedure for authentication of Linux Machine to Active Directory. The paper provides an installation guide for,1.OpenLDAP server and client.2.Kerberos server and client.3.Procedure for authenticating Linux Machine to Active Directory.I am Dr. Hidaia Mahmoud Mohamed Alassouli. I completed my PhD degree in Electrical Engineering from Czech Technical University by February 2003, and my M. Sc. degree in Electrical Engineering from Bahrain University by June 1995. I completed also one study year of most important courses in telecommunication and computer engineering courses in Islamic university in Gaza. So, I covered most important subjects in Electrical Engineering, Computer Engineering and Telecommunications Engineering during my study. My nationality is Palestinian from gaza strip.I obtained a lot of certified courses in MCSE, SPSS, Cisco (CCNA), A+, Linux.I worked as Electrical, Telecommunicating and Computer Engineer in a lot of institutions. I worked also as a computer networking administrator. I had considerable undergraduate teaching experience in several types of courses in many universities. I handled teaching the most important subjects in Electrical and Telecommunication and Computer Engineering. I could publish a lot of papers a top-tier journals and conference proceedings, besides I published a lot of books in Publishing and Distribution houses.I wrote a lot of important Arabic articles on online news websites. I also have my own magazine website that I publish on it all my articles: http:// www.anticorruption.000space.comMy personal website: www.hidaia-alassouli.000space.comEmail: hidaia_alassouli@hotmail.com
E-Fam Exodus (heise online Welten)
Ein Fall für John Mayer und Otto - ein Krimi aus der Edition heise online Welten Die Mega-City Neun, Heimat von Millionen Bürgern, arbeitet an ihrem eigenen Zerfall. Einige Bewohner, darunter hochrangige Persönlichkeiten, hauchen unfreiwillig die Lebensgeister aus. Bei dem Versuch, einem Programmierer das Leben zu retten, kommt Privatermittler John Mayer einem verbindenden Element zwischen all den Todesfällen auf die Schliche und wird so selbst zum Gejagten. Zur Flucht gezwungen muss er sich eingestehen, dass auch sein treuer Begleiter, der E-Fam Otto, in die Geschehnisse verstrickt sein könnte. Welchem Plan folgt der Elektronische Famulus? Johns Vertrauen wird auf eine harte Probe gestellt. Doch zum Verschnaufen bleibt keine Zeit, altbekannte Gegenspieler sind ihm dicht auf den Fersen. Der Autor Arno Endler, geboren als Sonntagskind 1965 in Neuwied, infizierte sich im Alter von 12 Jahren mit dem Science-Fiction-Virus. Als Schüler durchstöberte er bereits sämtliche Buchhandlungen seiner Heimatstadt auf der Suche nach Büchern des Genres und litt nur an einem Mangel an Taschengeld. Er studierte Steuerrecht und betreute als Landesbeamter verschiedene IT-bezogene Projekte. Seit dem Jahr 2008 wagte er schriftstellerisch Blicke in die nähere und fernere Zukunft und publizierte Dutzende Kurzgeschichten im c't-Magazin. Seit 2016 schreibt er für die Serie Perry Rhodan NEO und veröffentlichte mehrere Romane in verschiedenen Verlagen.
IoT Development for ESP32 and ESP8266 with JavaScript
This book introduces a new approach to embedded development, grounded in modern, industry-standard JavaScript. Using the same language that powers web browsers and Node.js, the Moddable SDK empowers IoT developers to apply many of the same tools and techniques used to build sophisticated websites and mobile apps.The Moddable SDK enables you to unlock the full potential of inexpensive microcontrollers like the ESP32 and ESP8266. Coding for these microcontrollers in C or C++ with the ESP-IDF and Arduino SDKs works for building basic products but doesn't scale to handle the increasingly complex IoT products that customers expect. The Moddable SDK adds the lightweight XS JavaScript engine to those traditional environments, accelerating development with JavaScript while keeping the performance benefits of a native SDK.Building user interfaces and communicating over the network are two areas where JavaScript really shines. _IoT Development for ESP32 and ESP8266 with JavaScript_ shows you how to build responsive touch screen user interfaces using the Piu framework. You'll learn how easy it is to securely send and receive JSON data over Wi-Fi with elegant JavaScript APIs for common IoT protocols, including HTTP/HTTPS, WebSocket, MQTT, and mDNS. You'll also learn how to integrate common sensors and actuators, Bluetooth Low Energy (BLE), file systems, and more into your projects, and you'll see firsthand how JavaScript makes it easier to combine these diverse technologies.If you're an embedded C or C++ developer who has never worked in JavaScript, don't worry. This book includes an introduction to the JavaScript language just for embedded developers experienced with C or C++.WHAT YOU'LL LEARN* Building, installing, and debugging JavaScript projects on the ESP32 and ESP8266* Using modern JavaScript for all aspects of embedded development with the Moddable SDK* Developing IoT products with animated user interfaces, touch input, networking, BLE, sensors, actuators, and moreWHO THIS BOOK IS FOR* Professional embedded developers who want the speed, flexibility, and power of web development in their embedded software work* Makers who want a faster, easier way to build their hobby projects* Web developers working in JavaScript who want to extend their skills to hardware productsPETER HODDIE is an engineer and entrepreneur focused on client software. He is recognized for crafting compact and efficient code that pushes the boundaries of user experience on consumer hardware. The software he and his teams have built has powered mass-market consumer products from companies including Apple, Palm, Sling, HP, and Sony. Peter recognizes that the first users of any product are the developers creating it, and that those developers cannot build compelling consumer products on a foundation that’s unstable, complex, or confusing. He therefore champions investments in great tools and a simple runtime architecture.Peter has founded several companies, including Kinoma, which merged into Marvell Semiconductor. He led QuickTime development at Apple during the 1990s as a Distinguished Engineer. He contributed to the development of the QuickTime file format and its adoption by ISO into the MPEG-4 standard. He is currently a member of the JavaScript language standards committee (ECMA TC39) and chair of ECMA TC53 for "Smart wearable systems and sensor-based devices". Peter is particularly proud of his work putting both the KinomaJS framework and Darwin Streaming Server into open source. He continues to come to terms with the 10 patents that bear his name.LIZZIE PRADER is an engineer whose educational background is in theoretical computer science, but is currently better described as an engineer focused on developers’ needs. She recognizes the importance of customer support during all stages of a project, and enjoys working with developers to smooth the on-ramp to embedded development. Working with users of all skill levels—from professional engineers to makers and hobbyists to absolute programming beginners—has made her an advocate of well-organized documentation and readable code.Prior to Moddable, Lizzie worked as a developer relations engineer at Kinoma. Her main goal was to help customers get the most out of Kinoma’s software and hardware prototyping products, both through direct contact with developers and by creating a variety of resources including sample code, tutorials, and blog postsChapter 1: Getting StartedThe goal of this section is to get the reader set-up with the hardware, development environment, and their basic JavaScript skills. This equips them to run the examples in the remaining chapters.Chapter 2: NetworkingThe goal of this section is to teach the reader how to use Wi-Fi to communicate with cloud services and other devices. It provides guidance on when it is appropriate to use the various network services. It also explains how to use standard JSON to communicate with network services.Chapter 3: Bluetooth Low Energy (BLE)This is the only chapter which only applies to the ESP32, as the ESP8266 does not have BLE hardwareChapter 4: Files and DataThis section explains how to access and store data. In addition to introducing the file system, it explains why a file system isn’t always the best choice for an IoT product and introduces alternativesChapter 5: Working with hardware (Sensors and actuators)This section introduces the hardware protocols supported by the Moddable SDK and gets the reader started with a few sensors and actuators. In addition to demonstrating how to use a few specific sensors, it provides guidance on how to build JavaScript modules for other off-the-shelf sensors. This chapter introduces Timers, a common tool for working with hardware used to delay operations and perform periodic actions.Chapter 6: Graphics for IoTThis chapter explains why graphical user interfaces are a valuable addition to IoT products. It introduces the fundamentals of working with graphics on MCUs that were not designed to support graphics. The reader will learn about key performance bottlenecks so that they will have the knowledge needed to build modern graphical displays for their IoT projects using the ESP8266 and ESP32. The chapter also describes the relationship between the Commodetto Graphics Library and the Piu User Interface framework so the reader can choose the tool that is best for their project.Chapter 7: Commodetto Graphics LibraryThis section introduces use of the Commodetto graphics library to build user displays. It contains examples of using each graphic operation provided by the Poco rendering engine.Chapter 8: Piu User Interface FrameworkThis section provides an overview of the Piu user interface framework and examples of the most commonly used objects from the Piu APIChapter 9: Adding native codeThis section describes how to increase the performance and features of the reader’s IoT projects through the strategic use of native C code. It teaches how to integrate C code into a JavaScript application. It provides guidance on when it is appropriate to use C code, by explaining the benefits and risks of using native code.Chapter 10: SecurityChapter 11: What’s Next?This section covers a few advanced topics and provides links to additional developer resources. The goal is to provide readers with the information necessary to move on to developing more complex and customizable applications.
Beginning Sensor Networks with XBee, Raspberry Pi, and Arduino
Build sensor networks with Python and MicroPython using XBee radio modules, Raspberry Pi, and Arduino boards. This revised and updated edition will put all of these together to form a sensor network, and show you how to turn your Raspberry Pi into a MySQL database server to store your sensor data!You'll review the different types of sensors and sensor networks, along with new technology, including how to build a simple XBee network. You'll then walk through building an sensor nodes on the XBee, Raspberry Pi, and Arduino, and also learn how to collect data from multiple sensor nodes. The book also explores different ways to store sensor data, including writing to an SD card, sending data to the cloud, and setting up a Raspberry Pi MySQL server to host your data. You'll even learn how to connect to and interact with a MySQL database server directly from an Arduino! Finally you'll see how to put it all together by connecting your sensor nodes to your new Raspberry Pi database server.If you want to see how well XBee, Raspberry Pi, and Arduino can get along, especially to create a sensor network, then Beginning Sensor Networks with XBee, Raspberry Pi, and Arduino is just the book you need.WHAT YOU'LL LEARN* Code your sensor nodes with Python and MicroPython* Work with new XBee 3 modules* Host your data on Raspberry Pi* Get started with MySQL* Create sophisticated sensor networksWHO THIS BOOK IS FORThose interested in building or experimenting with sensor networks and IoT solutions, including those with little or no programming experience. A secondary target includes readers interested in using XBee modules with Raspberry Pi and Arduino, those interested in controlling XBee modules with MicroPython.Charles Bell conducts research in emerging technologies. He is a member of the Oracle MySQL Development team and is the team lead for the MySQL Utilities team. He lives in a small town in rural Virginia with his loving wife. He received his Doctor of Philosophy in Engineering from Virginia Commonwealth University in 2005. Dr. Bell is an expert in the database field and has extensive knowledge and experience in software development and systems engineering. His research interests include 3D printers, microcontrollers, three-dimensional printing, database systems, software engineering, and sensor networks. He spends his limited free time as a practicing Maker focusing on microcontroller projects and refinement of three-dimensional printers. Dr. Bell maintains a blog on his research projects and many other interests.Chapter 1: Introduction to Sensor NetworksChapter Goal: Provide the reader with the basics of sensor network terminology.• Anatomy of a Sensor Network• Communication Media• Types of Sensor Nodes• SensorsChapter 2: Brief Introduction to XBeeChapter Goal: Explain the XBee modules, their protocols, and demonstrate basic usage.• What is an XBee?• XBee Primer• Introducing MicroPython• An XBee Wireless Chat Room• Building an XBee-ZB Mesh Network• Component Shopping List• Troubleshooting Tips and Common IssuesChapter 3: How to Program in MicroPythonChapter Goal: Teach readers how to program in MicroPython• Basic Concepts• Variables and Statements• Loops• Methods and Classes• MicroPython Libraries• Built-In and Standard LibrariesChapter 4: XBee-based Sensor NodesChapter Goal: Demonstrate how to create sensor nodes using XBee modules.• How to Host Sensors with XBee• Building an XBee Environment Sensor• Example: Using XBee Modules to Gather DataChapter 5: Raspberry Pi-based Sensor NodesChapter Goal: Demonstrate how to create sensor nodes using Raspberry Pi including introducing the Raspberry Pi.• What is a Raspberry Pi?• Raspberry Pi Tutorial• Hosting Sensors with Raspberry Pi• Project: Building a Raspberry Sensor Node• Project: Building a Raspberry Barometric Pressure Sensor Node• Project: Creating a Raspberry Pi Data Collector for XBee Sensor Nodes• Component Shopping ListChapter 6: Arduino-based Sensor NodesChapter Goal: Demonstrate how to create sensor nodes using an Arduino including introducing the Arduino platform.• What is an Arduino?• Arduino Tutorial• Hosting Sensors with Arduino• Project: Building an Arduino Temperature Sensor• Project: Using an Arduino as A Data Collector for XBee Sensor Nodes• Component Shopping ListChapter 7: Methods for Storing Sensor DataChapter Goal: Explain how to store sensor data on the sensor or data nodes.• Storage Methods• Local Storage Options for the Arduino• Local Storage Options for the Raspberry Pi• Remove Storage Options• Component Shopping ListChapter 8: Turning Your Raspberry Pi into a Database ServerChapter Goal: Introduce MySQL and demonstrate how to setup a Raspberry Pi as a MySQL Database server.• What is MySQL?• Getting Started with MySQL• Building a Raspberry Pi MySQL Server• Component Shopping ListChapter 9: MySQL and Arduino: United at Last!Chapter Goal: Introduce MySQL Connector/Arduino and demonstrate how to connect Arduino directly to a MySQL server to store data via several example projects.• Introducing Connector/Arduino• Building Connector/Arduino-Enabled Sketches• Troubleshooting Connector/Arduino• A Tour of the MySQL Connector/Arduino Code• Project: Building an Arduino MySQL Client• Project: Inserting Data from Variables• Project: How to Perform SELECT Queries• Component Shopping ListChapter 10: Building Your Network: Arduino Wireless Aggregator + Wireless Sensor Node + Raspberry Pi ServerChapter Goal: Provide an overview of how sensor networks are constructed and provide a foundation for further exploration including a simple, complete project.• Data Aggregator Nodes• Component Shopping ListChapter 11: Putting It All Together• Sensor Networks Best Practices• Choosing Sensor Nodes• Project: Home Temperature Monitoring• Optional Component Shopping List
Practical hapi
Understand the core concepts of hapi and learn to build RESTful APIs that are quick, useful, and productive. Created by the mobile team at Walmart Labs, hapi is a light Node.js framework that is perfect for building API servers, websites, and HTTP proxy applications.With this quick guide, you'll learn the basics of hapi and use those skills to build an application and a REST API with MySQL. You'll then wrap up with a Capstone project of industry relevance, understanding solution design, and how hapi fits into industry relevant projects for data driven apps.Used by companies such as PayPal and Mozilla, hapi is a key framework for anyone serious about enterprise web development. Practical hapi will ensure you focus your time on critical project tasks instead of building infrastructure.WHAT YOU'LL LEARN* Utilize the power of RESTful APIs and Node.js* Build your first hapi application based on its core concepts* Work with promises and asynchronous programming effectively* Use Sequelize for database connectivityWHO THIS BOOK IS FORAnyone with basic knowledge of JavaScript or Node.js who wants to learn to work with hapi. A primer for the relevant Node.js and JavaScript is provided so those with general programming experience can also use this book.KANIKA SUD has been working on the web for over 10 years now. Her work spans enterprise CMSes in JAVA, backend technologies in the LAMP stack and MEAN stack. She has also worked on open source e-commerce CMSes and UX strategy.1. Understanding RESTful APIs2. Beginning Node.js3. Asynchronous JavaScript4. Your First hapi Application5. Building on the Basics: Validation, Authentication, and Plugins6. Database Connectivity7. Capstone Project- REST API for Polling App8. Appendix
Webpack for Beginners
Learn how to use Webpack from installation to configuration without the hassle of complex examples. Webpack has become one of the most popular module bundlers in recent years; it’s widely used by developers, companies, and organizations of all sizes, and many web frameworks use it for the management of their assets. If you are serious about web development these days then you must learn and understand Webpack.You will begin by installing and configuring Webpack, and learn how to write modular code. You’ll then move onto understanding the usage of loaders and plugins with practical use cases, how to make aliases and resolve folders, cache busting, and installing third-party libraries such as jQuery, Bootstrap, QuillJS, and more. By the end of this book you will feel confident and ready to start using Webpack in your projects.Free from complex examples and intended to be as easy-to-follow as possible, this book is ideal for anyone who knows basic HTML, JavaScript, and how to work on the command line. Upgrade your developer skillset using Webpack for Beginners today.WHAT YOU WILL LEARN* Install and configure Webpack beyond the default settings* Efficiently work with plugins and loaders* Optimize Webpack for production* Use instant refreshing with the Webpack dev server and hot module replacement* Explore how to install some common JavaScript librariesWHO THIS BOOK IS FORThis book is conceived for beginners and newcomers to Webpack, and assumes you have some very basic knowledge in JavaScript, HTML and working on the command line. This step-by-step guide will help you understand and clarify everything you need to know to bundle your JavaScript hassle-free.Mohamed Bouzid has over 11 years' experience in technology and web development. From humble beginnings as a global freelancer, he has transitioned to the entrepreneurial world making products that people love and use every day. When not coding he can be found at the gym or at the coffee shop where he talks with friends about life, startups, and tech. 1. Webpack: First Steps2. Write Modular Code3. Loaders and Plugins4. Cache5. Resolving Folders6. Webpack DevServer7. Installing Third Party Libraries8. Conclusion
Dynamics 365 Essentials
Discover what the Common Data Service is and how Dynamics 365 fits in the Power Platform. Learn how to set up core Dynamics 365 Customer Engagement functionality and build more customized processes using model-driven apps. This book covers the Dynamics 365 Online system for sales, customer service, marketing, field service, and Outlook integration.In this second edition, core platform changes from the Common Data Service are included and you will know what this means for Dynamics 365. Updated features include processes, the latest form and view designer, and Business Process Flows. The book also includes new chapters on portals and power virtual agents.After reading DYNAMICS 365 ESSENTIALS, you will have mastered the core functionality available in Dynamics 365 CE and model-driven applications, and will be able to set it up for a range of different business scenarios.WHAT YOU WILL LEARN* Set up the core standard features of Dynamics 365 CE* Create model-driven apps within Dynamics 365 customized to specific business needs* Customize Dynamics 365 CE and leverage process automation functionality through the UI* Study the Common Data Service for AppsWHO THIS BOOK IS FORConsultants, business analysts, administrators, and project managers who are looking for more information about Dynamics 365SARAH CRITCHLEY is a Microsoft Dynamics Business Applications MVP, published author, and an experienced technical consultant who has worked on numerous business system implementations, now working as Lead Architect for Customer Service at Hitachi Solutions NA. She manages the strategy around all customer service technology, including Dynamics 365 Customer Service, Omni Channel Engagement, Forms Pro, Power Virtual Agent, and more. Having led software projects in numerous industries, including healthcare and the public sector, she works across all areas of the project life cycle: demonstrations, design, architecture, documentation, customization, and development. Sarah is heavily involved in community projects where she led and grew the Dynamics 365 & Power Platform UG in the UK for over three years, running technical events, and presenting on a variety of topics at conferences around the world.INTRODUCTION – PAGES - 5CHAPTER GOAL: Discuss what Dynamics 365 CE is, the latest news e.g. version 9.0 and the unified client (mention web refresh) , what the sections will cover. This book will be split into two – ‘Setup’ and ‘Configuration’ – the fact that you should be looking at best ways to do it and less technical debt.PART I - SETUPCHAPTER 1: CUSTOMER MANAGEMENTCHAPTER GOAL: For the reader to learn about how customers are used within Dynamics 365 CE, what they link to and how they operate in the context of Activities and Microsoft OutlookNO OF PAGES 20SUB -TOPICS1. Account and Contacts1. Outlook Integration for Dynamics 365 CE Online2. Timeline and Activity ManagementCHAPTER 2: CUSTOMER SERVICECHAPTER GOAL: For the reader to learn how to deliver a more omni channel customer service experience using the standard features of Dynamics 365 CENO OF PAGES: 40SUB - TOPICS1. Case Management (including Categories)2. Routing and Queues3. Knowledge Base Implementation and Feedback4. Microsoft Portals Configuration for Self-Service5. SLAs and Entitlements6. Social Engagement7. Setting up Cognitive Services for Knowledge Article SuggestionsCHAPTER 3: SALESCHAPTER GOAL: For the reader to learn what the standard sales lifecycle is, common customization points and how-to setup the standard Product CatalogNO OF PAGES : 25SUB - TOPICS:1. Product Catalog Setup and Management2. Leads to Invoice Sales Lifecycle with Product Catalog Integration2. Setting up Product Suggestion Model using Cognitive Services3. Creating Microsoft Word Templates for Quotes, Orders and InvoicesCHAPTER 4: SECURITY MODELCHAPTER GOAL: For readers to understand how the Dynamics 365 CE Security Model works and operatesNO OF PAGES:10SUB - TOPICS:1. 1.Security Model Overview2. Business Units, Teams and Users3. Access Teams4. Hierarchal and Positional SecurityCHAPTER 5: FIELD SERVICE AND RESOURCE SCHEDULINGCHAPTER GOAL: For readers to understand the basics of Field Service and Resourcing Capability which comes as standardNO OF PAGES: 15TBC. This is changing and will need to be updatedCHAPTER 6: MOBILE APPLICATIONCHAPTER GOAL: For readers to learn how to setup Dynamics 365 CE for MobileNO OF PAGES: 201. Setup3. Task Flows4. OfflineCHAPTER 7: REPORTINGCHAPTER GOAL: For readers to understand the capabilities of Dynamics 365 CE ReportingNO OF PAGES: 205. Views6. Dashboards7. Reports in Dynamics 365 Online8. ChartsPART II - CONFIGURATIONCHAPTER 8: PROCESSESCHAPTER GOAL: For readers to understand the capabilities for configuring Dynamics 365 CE through custom processesNO OF PAGES: 301. Business Process Flows2. Business Rules3. Workflows4. ActionsCHAPTER 9: UI CUSTOMIZATION AND RELATIONSHIPSCHAPTER GOAL: For readers to learn how to customize the user interface of Dynamics 365 and the relationshipsNO OF PAGES: 151. Forms2. Relationships3. Custom Controls4. MobileCHAPTER 10: APP FRAMEWORKCHAPTER GOAL: For readers to understand what the App Framework is and how to create ‘Apps’ within Dynamics 365NO OF PAGES: 151. App Framework Overview2. App Designer3. Site Map Designer4. ConfigurationCHAPTER 11: POWER AUTOMATIONCHAPTER GOAL: For readers to understand Microsoft Flow’s basic capabilitiesNO OF PAGES: 20This is changing and will need to be updatedCHAPTER 12: MANAGED VS UNMANAGED SOLUTIONSCHAPTER GOAL: Discussion on solutions design and layeringCHAPTER 13: COMMON DATA SERVICE FOR APPSCHAPTER GOAL: For readers to understand what the Common Data Service is and how to get started with integrations through the UI.NO OF PAGES: 20CHAPTER 14: GETTING STARTED WITH CDS PORTALSCHAPTER GOAL: To connect a portal to a CDS for Apps environment that does not have any Dynamics 365 applications (Sales, Service, or Marketing) preinstalledCHAPTER 15: DYNAMICS 365 FOR MARKETING
Getting Started with Advanced C#
Understand and work with the most important features of advanced C# in different programming environments. This book teaches you the fundamental features of advanced C# and how to incorporate them in different programming techniques using Visual Studio 2019.The book is divided into two parts. Part I covers the fundamentals and essentials of advanced programming in C#. You will be introduced to delegates and events and then move on to lambda expressions. Part II teaches you how to implement these features in different programming techniques, starting with generic programming. After that, you will learn about thread programming and asynchronous programming, to benefit from a multi-threaded environment. Finally, you will learn database programming using ADO.NET to connect to a MySQL database and you will know how to exercise SQL statements and stored procedures through your C# applications.WHAT YOU WILL LEARN* Use delegates, events, and lambda expressions in advanced programming* Make your application flexible by utilizing generics* Create a fast application with multi-threading and asynchronous programming* Work in Visual Studio Community Edition, which is the most common IDE for using C#* Understand alternative implementations along with their pros and consWho This Book Is ForDevelopers and programmers who are already working in C#VASKARAN SARCAR obtained his Master of Engineering in software engineering from Jadavpur University, Kolkata (India) and an MCA from Vidyasagar University, Midnapore (India). He was a National Gate Scholar (2007-2009) and has more than 12 years of experience in education and the IT industry. Vaskaran devoted his early years (2005-2007) to teaching at various engineering colleges and later he joined HP India PPS R&D Hub Bangalore and worked there until August, 2019. At the time of his retirement from the IT industry, he was a senior software engineer and a team lead at HP. To follow his dream and passion, Vaskaran is now a full-time author. Other Apress books by Vaskaran include: Interactive Object-Oriented Programming in Java (second edition), Java Design Patterns (second edition), Design Patterns in C#, Interactive C#, Interactive Object-Oriented Programming in Java, and Java Design Patterns.INTRODUCTIONPART-ICHAPTER 1: DELEGATESSubtopics:· What is a delegate?· How to create and use delegates?· What is a multicast delegate (Chaining of Delegates) and its uses?· Adding and removing methods from a multicast delegate.· Covariance and contravariance in non-generic delegates.CHAPTER 2: EVENTSSubtopics:· Events overview* Creation of events and example of simple events* Subscribing single and multiple events* Passing data to events* Discussion on event accessorsCHAPTER 3: ANONYMOUS FUNCTION AND LAMBDA EXP.Subtopics:· A quick introduction to anonymous function and lambda expression.* Lambda’s with and without parameters* Types and scopes of a lambda expressionExpression syntaxes with exampleCHAPTER 4: LINQSubtopics:* LINQ overview* Different case studies with simple and complicated query expressions* Retrieving customized data from a query expression* Comparing a method call syntax and a query syntax. PART-IICHAPTER 5: GENERIC PROGRAMMINGSubtopics:* Generics overviewComparing a generic program with its counterpart-a non-generic program * Self-referenced generics* Use of ‘default’ in a generic programHow to put constraints in a generic program * Covariance and contravariance in the context of a generic programCHAPTER 6: DATABASE PROGRAMMINGSubtopics:· How to connect to a database· Exercise simple queries to database and retrieving results from the database.CHAPTER 7: THREAD PROGRAMMINGSubtopics:Threads overview * Different case studies with multithreaded programs* Use of ParameterizedThreadStart delegate in a multithreaded environment * Passing multiple parameters to a thread* Discussion on Synchronization and deadlock with examplesCHAPTER 8: ASYNCHRONOUS PROGRAMMINGSubtopics:Brief overview * Different techniques to implement an asynchronous program(e.g. using async/await, thread, thread pool etc)CHAPTER 9: DYNAMIC PROGRAMMINGSubtopics:* DLR overview* Dynamic type and its uses* Dynamic type checking* Runtime look up etc.
Konstruktion für die Additive Fertigung 2019
Dieses Buch thematisiert grundlegende Spezifikationen von Bauteilen und Prozessen, Methoden zur Abschätzung der Bauteileignung und Anwendung der Additiven Fertigung sowie zur Entwicklung von Konzepten und Entwürfen. Der Inhalt ist in vier Schwerpunktkapitel unterteilt: Zuerst wird auf die Integration additiver Fertigungsverfahren in bestehende Prozesse und Maßnahmen zur Steigerung der Wertschöpfung eingegangen. Nachfolgend sind Konstruktionen von Bauteilen, deren Gestaltung zur Sicherstellung funktionaler Anforderungen und Herstellbarkeit sowie Methoden zur Bauteiloptimierung dargestellt. Weiterhin werden Ansätze zur rechnergestützten Simulation sowie physischen Validierung von Bauteilen und deren Erprobung beschrieben. Daraus abgeleitet werden Maßnahmen zur Sicherstellung von Qualitätsaspekten charakterisiert. Die kapitelübergreifenden Inhalte werden vor dem Hintergrund zum Aufbau neuer Geschäftsmodelle diskutiert und legen den aktuellen Stand der Forschung im Bereich der Additiven Fertigung dar. Dieser Konferenzband baut auf den Inhalten des Vorjahresbandes "Konstruktion für die Additive Fertigung 2018" auf.
Efficient Processing of Deep Neural Networks
This book provides a structured treatment of the key principles and techniques for enabling efficient processing of deep neural networks (DNNs). DNNs are currently widely used for many artificial intelligence (AI) applications, including computer vision, speech recognition, and robotics. While DNNs deliver state-of-the-art accuracy on many AI tasks, it comes at the cost of high computational complexity. Therefore, techniques that enable efficient processing of deep neural networks to improve key metrics—such as energy-efficiency, throughput, and latency—without sacrificing accuracy or increasing hardware costs are critical to enabling the wide deployment of DNNs in AI systems. The book includes background on DNN processing; a description and taxonomy of hardware architectural approaches for designing DNN accelerators; key metrics for evaluating and comparing different designs; features of DNN processing that are amenable to hardware/algorithm co-design to improve energy efficiency and throughput; and opportunities for applying new technologies. Readers will find a structured introduction to the field as well as formalization and organization of key concepts from contemporary work that provide insights that may spark new ideas. * Preface * Acknowledgments * Introduction * Overview of Deep Neural Networks * Key Metrics and Design Objectives * Kernel Computation * Designing DNN Accelerators * Operation Mapping on Specialized Hardware * Reducing Precision * Exploiting Sparsity * Designing Efficient DNN Models * Advanced Technologies * Conclusion * Bibliography * Authors' Biographies
Introducing Disaster Recovery with Microsoft Azure
Explore and learn the key building blocks of Microsoft Azure services and tools for implementing a disaster-recovery solution of any on-premises or cloud-based application. In this book, you will go through various aspects of planning, designing, and configuring a robust recovery solution on Azure.Introducing Disaster Recovery with Microsoft Azure starts by explaining the disaster-recovery landscape and how Azure disaster recovery is different from the traditional approach. You will learn how to leverage Azure site recovery and various Azure-based services to design and implement a recovery solution and much more. Moving forward, you will design and implement various scenarios such as on-premises to Azure, Azure to Azure, and on-premises to on-premises disaster recovery. You will also learn common considerations and technicalities of implementing recovery solutions for various multi-tier, monolithic, and modern micro-services enterprise applications. Finally, you will go through real-life examples, scenarios, and exercises.After reading this book, you will be able to design and implement disaster recovery on Azure in different scenarios. You will also look at a few real-world scenarios that will provide more practical insights.WHAT YOU WILL LEARN* Discover the fundamental building blocks of disaster recovery on Azure* Examine various application-specific considerations for disaster recovery* Leverage various PaaS capabilities to achieve maximum benefit* Design and implement a multi-regional Azure to Azure disaster recovery planWHO THIS BOOK IS FORConsultants, architects, and Azure administrators.BAPI CHAKRABORTY has over 14 years of IT experience in the field of on-premises and cloud infrastructure architecture, solution design, migration, deployment, and support practices. He has worked with customers and partners from various industries and understands their unique demands and requirements to achieve business goals. Bapi holds various industry and product certification including Microsoft, AWS, and IASA.YASHAJEET CHOWDHURY has over 17 years of IT experience in the field of On-premises and Cloud infrastructure architecture, solution design, migration, deployment, and support practices. He has deep technical hands-on experience on various Infrastructure services including Datacenter consolidation/migration, Virtualization, Cloud Computing & other Infrastructure offerings for various small and enterprise customers.Yash holds strong knowledge in Architecting, Designing, Implementation and many professional technical certifications including Microsoft and IBM.CHAPTER 1: DISASTER RECOVERY AND CLOUDCHAPTER GOAL: How cloud has changed the DR landscapeNO OF PAGES 20SUB -TOPICS1. How cloud has changed the DR landscape2. cost, security, storage, archival, maintenance, accessibility3. How traditional DR is different from new age DR4. Why Azure as a DR site5. options, storage, capabilities, pricing, integrated monitoring, tools, platform capability, competitive advantages6. benefits for existing customers, end to end orchestrationCHAPTER 2: INTRODUCING AZURE SITE RECOVERYCHAPTER GOAL: Understand Disaster recovery with Azure site recovery and Azure MigrateNO OF PAGES: 20SUB - TOPICS1. Supported scenarios including migration, supportability matrix,2. DR dependencies on Azure3. Storage, network, etc.4. Concepts of ASR for each scenarionetworking ER, Migration , tools, recovery plans, roles and RBAC, sites, config & process server etc.CHAPTER 3: DESIGNING AND IMPLEMENTING SIMPLE AZURE TO AZURE DR - SCENARIOCHAPTER GOAL: Understand Disaster recovery scenario for Azure to Azure scenarioNO OF PAGES : 20SUB - TOPICS:1. Questions to ask, decisions to make, data to collect, assess, Planning and designing the DR2. High level configurations3. Backup as a strategy4. Design and implement a multi regional A2A DR - scenario (5)5. High level configurations6. Common challenges and how to remediate themCHAPTER 4: ON-PREMISES TO AZURE DRCHAPTER GOAL: Understand Disaster recovery scenario for On-premises to Azure DR scenarioNO OF PAGES: 40SUB - TOPICS:1. Hyper-V (with SCVMM) to Azure2. Hyper-V (without SCVMM) to Azure3. Physical systems to Azure4. Azure Stack to Azure5. Planning6. Designing7. Configuring8. Common challenges and how to remediate themCHAPTER 5: ON-PREMISES TO ON-PREM USING ASRNO OF PAGES: 10CHAPTER GOAL: understand On-premises only scenario1. On-premises to On-prem using ASR2. Planning3. Designing4. Configuring5. Common challenges and how to remediate themCHAPTER 6: APP SPECIFIC DR SCENARIOSNO OF PAGES: 20CHAPTER GOAL: understand application specific DR scenario1. ADDS2. SQL3. Oracle4. RDS etc.CHAPTER 7: AUTOMATION AND MONITORINGNO OF PAGES: 10CHAPTER GOAL: understand automation and monitoring for Disaster recovery solution Common Automation and Monitoring scenarios for DR on AzureCHAPTER 8: SUMMARY, BEST PRACTICES AND EXERCISESNO OF PAGES: 10CHAPTER GOAL: Summary, Best Practices and Exercises for executing Azure Disaster Recovery1. Summary2. Best Practices3. Exercises
Configuration of Microsoft ISA Proxy Server and Linux Squid Proxy Server
The paper concerns about basic Microsoft ISA server and Linux Squid Server configuration As a lot of technicians switch between ISA server and Squid server, I decided to write this paper to present some reference when configuring ISA and Squid. There a lot of issues that not covered, and you can go to the manual of ISA server and Squid server for detailed configuration of ISA and Squid. The paper is composed from two parts 1.Microsoft ISA server 2004 Configuration2.Linux Squid Server ConfigurationNote that, this work was done without proper simulation, because of the lack of resources, as testing firewall configuration requires many computers, with one of them should have many network cards. Also the ISA server is not used in the computer center now.I am Dr. Hidaia Mahmoud Mohamed Alassouli. I completed my PhD degree in Electrical Engineering from Czech Technical University by February 2003, and my M. Sc. degree in Electrical Engineering from Bahrain University by June 1995. I completed also one study year of most important courses in telecommunication and computer engineering courses in Islamic university in Gaza. So, I covered most important subjects in Electrical Engineering, Computer Engineering and Telecommunications Engineering during my study. My nationality is Palestinian from gaza strip.I obtained a lot of certified courses in MCSE, SPSS, Cisco (CCNA), A+, Linux.I worked as Electrical, Telecommunicating and Computer Engineer in a lot of institutions. I worked also as a computer networking administrator. I had considerable undergraduate teaching experience in several types of courses in many universities. I handled teaching the most important subjects in Electrical and Telecommunication and Computer Engineering. I could publish a lot of papers a top-tier journals and conference proceedings, besides I published a lot of books in Publishing and Distribution houses.I wrote a lot of important Arabic articles on online news websites. I also have my own magazine website that I publish on it all my articles: http:// www.anticorruption.000space.comMy personal website: www.hidaia-alassouli.000space.comEmail: hidaia_alassouli@hotmail.com