Computer und IT
WPF 4.5 und XAML
Grafische Benutzeroberflächen für Windows inkl. Entwicklung von Windows Store Apps Mit der Windows Presentation Foundation verfügen .NET-Entwickler über ein mächtiges und flexibles Instrument zur Entwicklung moderner Desktop-Applikationen – von der einfachen Oberfläche bis hin zur geschäftlichen Anwendung. Diese Bandbreite gibt den Rahmen für dieses Buch vor: Jörg Wegener beschreibt detailliert die zentralen Elemente der WPF 4.5, ihre zugrunde liegenden Konzepte und die in WPF implementierte Beschreibungssprache XAML. Zahlreiche Beispiele zeigen Ihnen den professionellen Einsatz des Frameworks in Situationen, mit denen Sie als Entwickler tagtäglich konfrontiert sind. Einen Schwerpunkt dieser Neuauflage bilden die Neuerungen von WPF 4.5 und Visual Studio 2012. Hier geht es u.a. um die Entwicklung von Apps für Windows 8 mit XAML und der Windows Runtime. Außerdem neu hinzugekommen sind die Themen: Eingabesteuerung via Maus, Tastatur und Touchscreen; das Entwurfsmuster Model-View-View-Model; Installation und Aktualisierung von Anwendungen beim Kunden; Gestaltung mit Expression Blend. Aus dem Inhalt: Einführung in WPF&XAMLLayout&SteuerelementeAufbau von AnwendungenStyles, TemplatesDaten&Datenbindungen2D-Grafik&Multimedia3D-Grafik, AnimationenIndividuelle AnpassungenEingabesteuerung in WPFWPF&Windows FormsDokumente&DruckenMehrsprachigkeit Browseranwendungen MVVM-EntwurfsmusterWindows Store Apps&WinRTAnwendungen installieren&verteilenExpression BlendAutor: Jörg Wegener hat mit seiner Firma Identage Business Services GmbH bereits zahlreiche Projekte begleitet, darunter auch internationale aus den Branchen der Telekommunikation, Energiewirtschaft und Buchhaltung. Er unterstützt seine Kunden u.a. in der richtigen Auswahl der Technologie, Architektur und Vorgehensweisen und arbeitet bevorzugt mit der Windows Presentation Foundation.
Cloud-Native Microservices with Apache Pulsar
Apply different enterprise integration and processing strategies available with Pulsar, Apache's multi-tenant, high-performance, cloud-native messaging and streaming platform. This book is a comprehensive guide that examines using Pulsar Java libraries to build distributed applications with message-driven architecture.You'll begin with an introduction to Apache Pulsar architecture. The first few chapters build a foundation of message-driven architecture. Next, you'll perform a setup of all the required Pulsar components. The book also covers work with Apache Pulsar client library to build producers and consumers for the discussed patterns.You'll then explore the transformation, filter, resiliency, and tracing capabilities available with Pulsar. Moving forward, the book will discuss best practices when building message schemas and demonstrate integration patterns using microservices. Security is an important aspect of any application; the book will cover authentication and authorization in Apache Pulsar such as Transport Layer Security (TLS), OAuth 2.0, and JSON Web Token (JWT). The final chapters will cover Apache Pulsar deployment in Kubernetes. You'll build microservices and serverless components such as AWS Lambda integrated with Apache Pulsar on Kubernetes.After completing the book, you'll be able to comfortably work with the large set of out-of-the-box integration options offered by Apache Pulsar.WHAT YOU'LL LEARN* Examine the important Apache Pulsar components * Build applications using Apache Pulsar client libraries* Use Apache Pulsar effectively with microservices* Deploy Apache Pulsar to the cloudWHO THIS BOOK IS FORCloud architects and software developers who build systems in the cloud-native technologies.RAHUL SHARMA is a software developer with around 17 years of experience in Java/J2EE and Python applications. Being an open-source enthusiast, he has contributed to various projects like Apache Crunch, and so on. In his career, he has worked with companies of various sizes, from enterprises to start-ups. He has worked on Kubernetes and microservices extensively for enterprises.MOHAMMAD ATYAB is a software developer with more than 13 years of developing products. He has worked in various languages primarily Java/J2EE, Python, C++. He has a passion of building products and has created web based scalable applications in chat bots, ecommerce, marketing and financial domains. He has worked in large enterprises as well as startups and worked extensively in the areas of Big Data and AI.DATA PROCESSING WITH APACHE PULSARChapter 1: Introduction to Apache PulsarChapter 2: Working with MessagesChapter 3: Working with Pulsar FunctionsChapter 4: Schema RegistryChapter 5: Build Microservices using PulsarChapter 6: Pulsar ConnectersChapter 7: Pulsar SecurityChapter 8: Deploy Pulsar on Kubernetes
Customer Experience visualisieren und verstehen (2. Auflg.)
Durch Journeys, Service Blueprints und Diagramme zu einer erfolgreichen Kundenausrichtung Mapping-Techniken unterstützen Unternehmen dabei, den Status quo, wichtige Zusammenhänge, aber vor allem Sicht und Bedürfnisse ihrer Kund:innen zu verstehen und zu dokumentieren. So entsteht ein teamübergreifendes Verständnis - beispielsweise auch von Multi-Channel-Plattformen oder Produkt-Ökosystemen. Zielgruppe: Produktmanager*innen und alle, die an der Entwicklung von Produkten und Dienstleistungen beteiligt sind. Autor: James Kalbach vermittelt in diesem Standardwerk die Grundlagen dieser Mapping-Techniken - beispielsweise, welche Aspekte und Dimensionen visualisiert werden können - und beschreibt den Praxiseinsatz von Service Blueprints, Customer Journey Maps, Experience Maps, Mentalen Modellen oder Ökosystem-Modellen.
Agilität neu denken (2. Auflg.)
Mit Flight Levels zu echter Business-Agilität. 2. aktualisierte und erweiterte Auflage.Alle agilen Register sind gezogen und trotzdem kommen neue Produkte nicht schneller auf den Markt? Die Konkurrenz überholt links und rechts, während die eigenen Innovationsprozesse ins Stocken geraten?Wenn Ihnen diese Situation bekannt vorkommt, dann lesen Sie die Geschichte eines Unternehmens, das die agile Transformation mustergültig vorbereitet hat. 600 Mitarbeiterinnen und Mitarbeitern wurde ein agiles Mindset antrainiert, crossfunktionale Teams und die schönsten Boards installiert, Abhängigkeiten konsequent eliminiert und Standup-Meetings streng getimeboxt. Mit dem Ergebnis: Die Time-to-Market der Produkte wurde schlechter – von Business-Agilität keine Spur.Klaus Leopold zeigt in Wort und Illustration, was bei vielen agilen Transformationen falsch läuft und warum die ersehnten Verbesserungen ausbleiben. Sie erfahren aber auch, wie man aus der Sackgasse wieder herauskommt und was Sie mithilfe des Flight-Levels-Denkmodells tun können, um erst gar nicht in die Sackgasse einzubiegen und das Ziel »mehr Business-Agilität« doch noch zu erreichen.In der 2. Auflage finden Sie eine erweiterte und aktualisierte Erklärung des Flight-Levels-Denkmodells. Mit diesem Modell zeigt Klaus Leopold Unternehmen weltweit, wie sie die Fallen der lokalen Optimierung und Skalierungsblaupausen umgehen können und wo sich stattdessen die Hebel für echte, individuelle Business-Agilität verbergen.So viel vorab: Starten Sie nicht mit der Agilisierung von Teams – das spart Nerven und sehr viel Geld!Über den Autor:Dr. Klaus Leopold ist Informatiker und unterstützt als Topmanagement-Berater seit mehr als zehn Jahren Unternehmen auf der ganzen Welt dabei, sich agil am Markt zu bewegen. Das Flight-Levels-Modell hat Klaus entwickelt, weil er in der Praxis von agilen Transformationen immer wieder ein Phänomen beobachtet: Zwar werden Teams „agilisiert“, aber diese lokalen Optimierungen ergeben in Summe kein agiles Business. Mit seinen Büchern „Agilität neu denken“, „Kanban in der Praxis“ und als Co-Autor des Standardwerks „Kanban in der IT“ zeigt er auf, wie man diesen Irrtum von Anfang an vermeidet und was bei der Ausrichtung einer Organisation auf den Markt für echte Wendigkeit sorgt.
Stylish F# 6
Why just get by in F# when you can program in style. This book goes beyond syntax and into design. It provides F# developers with best practices, guidance, and advice to write beautiful, maintainable, and correct code. This second edition, fully updated for .NET 6 and F# 6, includes all new coverage of anonymous records, the task {} computation expression, and the relationship between types and modules.Stylish F# 6 covers every design decision that a developer makes in constructing F# programs, helping you make the most educated and valuable design choices at every stage of code development. You will learn about the design of types and function signatures, the benefits of immutability, and the uses of partial function application. You will understand best practices for writing APIs to be used by F#, C#, and other languages. Each carefully vetted design choice is supported with compelling examples, illustrations, and rationales.WHAT YOU WILL LEARN* Know why, when, and how to code in immutable style* Use collection functions, piping, and function composition to build working software quickly* Be aware of the techniques available to bring error handling into the mainstream of program logic* Optimize F# code for maximum performance* Identify and implement opportunities to use function injection to improve program design* Appreciate the methods available to handle unknown data values* Understand asynchronous and parallel programming in F#, and how it differs from C# asynchronous programming* Exploit records and anonymous records as low-overhead, easily comparable containers for structured dataWHO THIS BOOK IS FORAny developer who writes F# code and wants to write it betterKIT EASON is a software developer and educator with more than 20 years of experience. He has been programming in F# since 2011 and is employed at Perpetuum Ltd., working on an extensive network of energy-harvesting vibration sensors fitted to railway rolling stock and infrastructure. Kit is an avid F# user who is passionate about teaching others. He has contributed to several publications, including Apress books Beginning F# and F# Deep Dives. He often teaches on the topic of F# and his popular videos appear on Udemy and Pluralsight. Chapter 1: The Sense of StyleChapter 2: Designing Functions Using TypesChapter 3: Missing DataChapter 4: Working Effectively with Collection FunctionsChapter 5: Immutability and MutationChapter 6: Pattern MatchingChapter 7: Record TypesChapter 8: ClassesChapter 9: Programming With FunctionsChapter 10: Asynchronous and Parallel ProgrammingChapter 11: Railway Oriented ProgrammingChapter 12: PerformanceChapter 13: Layout and NamingChapter 14: Summary
Natural Language Processing Projects
Leverage machine learning and deep learning techniques to build fully-fledged natural language processing (NLP) projects. Projects throughout this book grow in complexity and showcase methodologies, optimizing tips, and tricks to solve various business problems. You will use modern Python libraries and algorithms to build end-to-end NLP projects.The book starts with an overview of natural language processing (NLP) and artificial intelligence to provide a quick refresher on algorithms. Next, it covers end-to-end NLP projects beginning with traditional algorithms and projects such as customer review sentiment and emotion detection, topic modeling, and document clustering. From there, it delves into e-commerce related projects such as product categorization using the description of the product, a search engine to retrieve the relevant content, and a content-based recommendation system to enhance user experience. Moving forward, it explains how to build systems to find similar sentences using contextual embedding, summarizing huge documents using recurrent neural networks (RNN), automatic word suggestion using long short-term memory networks (LSTM), and how to build a chatbot using transfer learning. It concludes with an exploration of next-generation AI and algorithms in the research space.By the end of this book, you will have the knowledge needed to solve various business problems using NLP techniques.WHAT YOU WILL LEARN* Implement full-fledged intelligent NLP applications with Python* Translate real-world business problem on text data with NLP techniques* Leverage machine learning and deep learning techniques to perform smart language processing* Gain hands-on experience implementing end-to-end search engine information retrieval, text summarization, chatbots, text generation, document clustering and product classification, and moreWHO THIS BOOK IS FORData scientists, machine learning engineers, and deep learning professionals looking to build natural language applications using PythonAKSHAY R KULKARNIis a renowned AI and machine learning (ML) evangelist and thought leader. He has consulted with Fortune 500 and global enterprises to drive AI and data science-led strategic transformations. Akshay has experience building and scaling AI and ML businesses and creating significant impact. He is currently Manager of Data Science & AI at Publicis Sapient on their core data science and AI team where he is part of strategy and transformation interventions through AI. He manages high-priority growth initiatives around data science and works on AI engagements by applying state-of-the-art techniques. He is a Google Developers Expert–Machine Learning, published author of books on NLP and deep learning, and a regular speaker at major AI and data science conferences (including Strata, O’Reilly AI Conf, and GIDS). Akshay is a visiting faculty member for some of the top graduate institutes in India. In 2019, he was featured as one of Top40 under 40 Data Scientists in India. In his spare time, he enjoys reading, writing, and coding, and help aspiring data scientists. He lives in Bangalore with his family.ADARSHA SHIVANANDA is a senior data scientist on Indegene's Product and Technology team where he works on building machine learning and artificial intelligence (AI) capabilities for pharma products. He aims to build a pool of exceptional data scientists within and outside of the organization to solve problems through training programs, and always wants to stay ahead of the curve. Previously, he worked with Tredence Analytics and IQVIA. Adarsha has worked extensively in the pharma, healthcare, retail, and marketing domains. He lives in Bangalore and loves to read and teach data science.ANOOSH KULKARNI is a data scientist and senior consultant focused on artificial intelligence (AI). He has worked with global clients across multiple domains and helped them solve their business problems using machine learning (ML), natural language processing (NLP), and deep learning. Presently, he is working with Subex AI labs. Previously, he was a data scientist at one of the leading ecommerce companies in the UAE. Anoosh is passionate about guiding and mentoring people in their data science journey. He leads data science/machine learning meet ups in Bangalore and helps aspiring data scientists navigate their careers. He also conducts ML/AI workshops at universities and is actively involved in conducting webinars, talks, and sessions on AI and data science. He lives in Bangalore with his family. Chapter 1: Natural Language Processing & Artificial Intelligence OverviewChapter Goal: This is an introductory chapter. This chapter provides a quick refresher of the topics to be covered in this book. Since this book teaches projects surrounding a specific area of technology, we will provide a brief introduction to the key concepts required for these projects. We will not be working on a specific project, rather discuss some important concepts without going into details. The depth on each of these topics will be covered in the specific chaptersNo of pages: 25Sub - Topics:1. Artificial intelligence paradigm2. NLP and AI life cycle3. NLP concepts (TF-IDF, word embeddings, many more)4. Machine learning concepts (supervised learning, classification, unsupervised learning)5. Deep learning concepts (CNN, RNN, LSTM)Chapter 2: Product360 - Sentiment, Emotion & Trend Capturing SystemChapter Goal: Sentiment analysis involves finding the polarity of a sentence and labels it as positive, negative or neutral. Emotion detection involves identifying emotions(sad, anger, happy, etc) from the sentences. Data is extracted from social media like Twitter, Facebook etc. and Ecommerce website, processed and analyzed using different NLP techniques will provide a 360 degree view of that product which enables better decision making. This chapter introduces sentiment analysis to the reader and the various techniques that can be used to analyze text. We will apply sentiment, emotion and trend analysis on reviews data for any E-commerce website like Amazon, Zomato, and IMDb, etc. which contains millions of customer reviews and star ratings. For this task, we will use Python libraries such as Vader, Textblob, etc.No of pages: 30Sub - Topics1. Text mining and various available libraries.2. Data preprocessing.3. Data cleaning tricks, optimized feature engineering4. EDA5. Sentiment analysis6. Emotion and trend analysisChapter 3: TED Talks Segmentation & Topics Extraction Using Machine LearningChapter Goal: Document clustering is an unsupervised learning process for grouping documents. For example, there are number of e-books and they have to be grouped to build a structure around them saves time while finding the books. Articles grouping, product clustering are the other few examples. Once we identify the clusters, it is important to understand the properties of clusters. So, Topic modeling is performed to extract topics from a set of documents and articles to understand the content of the documents using keywords and be able to tag the articles or documents using those topics.In this chapter will see how to group TED talks based on description using various clustering techniques like K-Means and Hierarchical clustering. Then we will perform topic modeling using Latent Dirichlet Allocation (LDA) to understand what defines each cluster. Important libraries include Gensim, NLTK, Scikit-learn and word2vec for this problem. We will use over 100k articles from different American publications.No of pages: 30Sub - Topics1. Data understanding and pre-processing2. Computing TF-IDF3. K-Means and hierarchical clustering4. Evaluation and visualization5. Topic modeling using Latent Dirichlet AllocationChapter 4: Enhancing E-commerce Through Advanced Search Engine and Recommendation SystemChapter Goal: An information retrieval system will search product descriptions based on a search query text and gives the results. Search engines are the most common and best use case of information retrieval models. The concept of information retrieval started from a string or word comparison, but it won’t be accurate as it doesn’t capture semantics. Advanced deep learning techniques made information retrieval work more accurately.Recommender systems are everywhere and used to create a personalized recommendations to increase the user experience. There are many types of recommender systems from collaborative filtering to graph-based. But the one dependent on Natural language processing is content-based recommender systems. It leverages the content of the item or the demographics of the user to recommend and this information is purely in the form of text. In this chapter, we will use advanced deep learning and word embedding techniques to search and recommend items/products to customers and libraries like SciKit-learn, NLTK, Keras, Word2vec, etc. We will use Flipkart e-commerce sample data which has the product name and its description.No of pages: 30Sub - Topics:1. Information retrieval, word embeddings for IR, similarity scoring.2. Content-based recommendation systems working3. Data understanding and preprocessing4. Search engine using word embeddings5. Recommender system using KNNChapter 5: E-Commerce Product Categorization Model Using Deep learningChapter Goal: Most of the time, classification problems won’t be binary rather they will be multiclass. For example, categorizing the retail products based on the description, categorizing the call center complaints, etc. Complexity increases as the number of classes increases. Let’s solve this problem by using deep learning techniques. We leverage deep neural networks using the Keras library. Feature engineering techniques like TF-IDF and word embeddings are considered. We will use product description data for an E-commerce company to categorize the products.No of pages: 25Sub - Topics:1. Text pre-processing2. Text to features using TF-IDF and word embeddings3. Multi-class classification using deep neural networks4. Parameter tuning and optimizationChapter 6: Movie Genre TaggingChapter Goal: Categorizing movies into genres is one of the classic AI problems. Online movie booking platforms, review websites like IMDB would tag movies into respective genres. The genre can be action, adventure, comedy, romance and so on.Our goal here is to tag possible movie genres given the description of the movie. Machine/model has to predict all possible classes(genres) the movie would belong to. We have solved simple multi-class classification but, in this chapter, let's explore how to solve a multi-label learning and classification problem.No of pages: 25Sub - Topics:1. Text processing2. Data preparation for modeling3. Text to features4. Multi-label classification using different algorithms5. Parameter tuning and evaluationChapter 7: Content Recommendation for the Marketing CampaignChapter Goal: A content recommendation engine collects and analyzes data based on users' behavior on marketing content. This data is then used to offer personalized and relevant marketing materials. We can tailor the subjects of the emails based on historical interactions. We will use deep learning techniques using Keras along with word embeddings.No of pages: 25Sub - Topics: 1. Why content recommendation2. Feature engineering3. Open rate to find the right contentChapter 8: Quora Question Pair SimilarityChapter Goal: Over 100 million people visit Quora every month, so it's no surprise that many people ask similarly worded questions. Multiple questions with the same intent can cause seekers to spend more time finding the best answer to their question and make writers feel they need to answer multiple versions of the same question. The goal of this chapter is to predict which of the provided pairs of questions contain two questions with the same meaning using advanced deep learning techniques. Keras will be used to find the similarity score.No of pages: 25Sub - Topics:1. Why predicting the similar questions?2. Text pre processing3. Word embeddings4. Finding similar questionsChapter 9: Resume Parsing & Shortlisting with Machine LearningChapter Goal: In the recruitment industry, millions of people are uploading resumes and applying for jobs every day on thousands of employment platforms. Businesses have their openings listed on these platforms and job seekers come to apply. Every business has a dedicated recruitment team that manually goes through the applicant's resumes and extracts relevant data to see if they are a fit. To automate this task, this project tries to converts an unstructured form of resume data into a structured format. It's a model that analyses and extracts resume data, returns the machine-readable output and ranks the top resume’s that are best match to the given job description. This helps to store and analyze data automatically.No of pages: 25Sub - Topics:1. Resume parsing using various NLP techniques2. NER3. Shortlisting and ranking resumesChapter 10: Building Chatbot Using Transfer learningChapter Goal: Question Answering (QA) System - also termed as “Chatbot” is very useful as most of the deep learning-related problems can be modeled as a question answering problem. Consequently, the field is one of the most researched fields in computer science today. The last few years have seen considerable developments and improvement in the state of the art, much of which can be credited to the upcoming of deep learning. In this chapter, we will build end to end QA system using NLTK, modern deep learning algorithms, and transfer learning.No of pages: 25Sub - Topics:1. Q&A system explained2. Q&A architecture3. Natural Language Understanding4. Learn possible approaches and algorithms5. How to use transfer learning6. Fine Tuning and optimizing the network7. End to end implementation and evaluationChapter 11: Summarization System Using RNNChapter Goal: With the ever-growing data, reading the whole document is just time-consuming. We need to summarize the huge text corpus to make life easier. Text summarization is the process of creating a short summary of a longer document with accurate meaning. It’s widely used in headlines generation, summarizing the reviews, etc. There are many approaches to solve this problem like feature-based, graph-based, using sentence embeddings, etc. Abstractive methods like deep learning and reinforcement learning are providing excellent results since it generates an entirely new sentence which captures the meaning of source document. In this chapter, we will discuss all these Extractive and Abstractive methods to summarize the text. We will be using NLTK, Gensim, SciKit-learn, and Keras libraries.No of pages: 30Sub - Topics:1. Text summarization using Extractive methods2. Abstractive methods3. Text summarization using deep learning4. Text summarization using reinforcement learningChapter 12: Automated Text Generation Using LSTM and EncodersChapter Goal: Text Generation is a type of Language Modelling problem. Language Modelling is the core problem for several natural language processing tasks such as speech to text, conversational system, and text summarization. A trained language model learns the likelihood of occurrence of a word based on the previous sequence of words used in the text. Language models can be operated at the character level, n-gram level, sentence level, or even paragraph level. In this chapter, we will create a language model for generating natural language text by implement and training state-of-the-art recurrent neural network. We will use the Python programming language for this purpose. The objective of this model is to generate new text, given that some input text is present. We will start building the architecture. We will be using NLTK, Gensim, SciKit-learn and Keras libraries.No of pages: 25Sub - Topics: 1. Text generation concepts and application2. Text generation architecture3. Text preprocessing and feature engineering4. Building the LSTM network model5. Seq2Seq modelsChapter 13: Future of NLP & Next-Gen Artificial IntelligenceChapter Goal: In this chapter, let's summarize what we learned so far in this book. We started from basics, traditional tasks to advanced text generation problems. We implemented and explored how deep learning is perfect for natural language understanding. We learned classification, information retrieval systems, Q&A systems, and also text generation. We will also explore why deep learning and other next-gen AI algorithms like GANS, Capsule networks, Differentiable Neural Computers, Unsupervised/Semi-supervised Deep Learning, Attention Networks, Transfer Learning, Deep Reinforcement Learning, Meta-Learning, is uniquely suited to NLP or their short comes, and how these algorithms would evolve and give state-of-the-art results in a slew of tasks under NLU and NLG.No of pages: 12Sub - Topics:1. What did we learn2. Future of NLP3. Next-Gen learning algorithms for NLP4. Deep reinforcement learning5. What are the current challenges in NLP?6. Research directions to solve the challenges7. Current research in the NLP world
Java Challenges
Expand your knowledge of Java with this entertaining learning guide, which features 100+ exercises and programming challenges. Java Challenges will prepare you for your next exam or job interview, and covers many practical topics, such as strings, arrays, data structures, recursion, and date and time. The APIs and other material included in this book are Java 17 compatible.Each topic is addressed in its own separate chapter, starting with an introduction to the basics and followed by multiple exercises of varying degrees of difficulty, helping you to improve your programming skills effectively. Detailed sample solutions, including the algorithms used for all tasks, are included to maximize your understanding of each area.Author MICHAEL INDEN also describes alternative solutions and analyzes possible pitfalls and typical errors. Three appendices round out the book: one covering JShell, which is often helpful for trying out the code snippets and examples in the book, followed by an introduction to JUnit 5 for unit testing and verifying solutions, while the final appendix explains O-notation for estimating performance.After reading this book, you'll be prepared to take the next step in your career or tackle your next personal project. All source code is freely available for download via the Apress website.WHAT YOU WILL LEARN* Improve your Java knowledge by solving enjoyable but challenging programming puzzles* Solve mathematical problems, recursions, strings, arrays and more* Manage data processing and data structures like lists, sets, maps* Handle advanced recursion as well as binary trees, sorting and searching* Gamify key fundamentals for fun and easier reinforcementWHO THIS BOOK IS FORProfessional software developers, makers, as well as computer science teachers and students. At least some prior experience with Java programming is recommended.Michael Inden is an Oracle-certified Java developer with over 20 years of professional experience designing complex software systems for international companies. There, he has worked in various roles such as SW developer, SW architect, consultant, team leader, CTO, head of academy, and trainer. Currently, he is working as a freelancer.His special interests are creating high-quality applications with ergonomic GUIs, developing and solving programming puzzles, and coaching. He likes to pass on his knowledge and has led various courses and talks, both internally and externally, as well as at conferences such as JAX/W-JAX, JAX London, and Oracle Code One.Besides, he is also an author of technical books. His german books, among others "Der Weg zum Java-Profi", Java Challenge", "Python Challenge" are all published by dpunkt.verlag. 1 Introduction ................................................ 11.1 Structure of the chapters ...................................... 11.2 Basic structure of the Eclipse project ............................ 31.3 Basic framework for unit tests .................................. 41.4 Note on programming style .................................... 51.5 Trying out the examples and solutions........................... 9I Fundamentals 112 Mathematical problems ...................................... 132.1 Introduction.................................................. 132.1.1 Roman numerals....................................... 172.1.2 Number Games ........................................ 182.2 Exercises ................................................... 212.2.1 Exercise 1: Basic Arithmetic (★✩✩✩✩) ................... 212.2.2 Exercise 2: Number as text (★★✩✩✩) .................... 222.2.3 Exercise 3: Perfect numbers (★★✩✩✩) ................... 222.2.4 Exercise 4: Prime Numbers (★★✩✩✩) ................... 232.2.5 Exercise 5: Prime number pairs (★★✩✩✩) ................ 232.2.6 Exercise 6: Checksum (★★✩✩✩) ........................ 232.2.7 Exercise 7: Roman numbers (★★★★✩) .................. 242.2.8 Exercise 8: Combinatorics (★★✩✩✩) .................... 242.2.9 Exercise 9: Armstrong Numbers (★★✩✩✩) ............... 252.2.10 Exercise 10: Max Change Calculator (★★★★✩) ........... 252.2.11 Exercise 11: Related Numbers (★★✩✩✩)................. 262.2.12 Exercise 12: Prime factorization (★★★✩✩)................ 262.3 Solutions .................................................... 272.3.1 Solution 1: Basic Arithmetic (★✩✩✩✩) ................... 272.3.2 Solution 2: Number as text (★★✩✩✩) .................... 302.3.3 Solution 3: Perfect numbers (★★✩✩✩) ................... 322.3.4 Solution 4: Prime Numbers (★★✩✩✩) .................... 342.3.5 Solution 5: Prime number pairs (★★✩✩✩) ................ 36vi Inhaltsverzeichnis2.3.6 Solution 6: Checksum (★★✩✩✩) ........................ 402.3.7 Solution 7: Roman numbers (★★★★✩) ................... 412.3.8 Solution 8: Combinatorics (★★✩✩✩) ..................... 462.3.9 Solution 9: Armstrong Numbers (★★✩✩✩) ................ 492.3.10 Solution 10: Max Change Calculator (★★★★✩) ............ 522.3.11 Solution 11: Related Numbers (★★✩✩✩) ................. 542.3.12 Solution 12: Prime factorization (★★★✩✩) ................ 553 Recursion .................................................. 593.1 Introduction.................................................. 593.1.1 Mathematical examples ................................. 593.1.2 Algorithmic examples ................................... 633.1.3 Steps when multiplying the digits of a number.............. 673.1.4 Typical problems ....................................... 683.2 Exercises ................................................... 713.2.1 Exercise 1: Fibonacci (★★✩✩✩) ......................... 713.2.2 Exercise 2: Process digits (★★✩✩✩) ..................... 713.2.3 Exercise 3: GCD (★★✩✩✩) ............................. 723.2.4 Exercise 4: Reverse String (★★✩✩✩) .................... 733.2.5 Exercise 5: Array Sum (★★✩✩✩) ........................ 733.2.6 Exercise 6: Array Min (★★✩✩✩) ......................... 733.2.7 Exercise 7: Conversions (★★✩✩✩) ...................... 743.2.8 Exercise 8: Exponential Function (★★✩✩✩)............... 753.2.9 Exercise 9: Pascal’s triangle (★★✩✩✩) ................... 763.2.10 Exercise 10: Number palindromes (★★★★✩).............. 763.2.11 Exercise 11: Permutations (★★★✩✩) .................... 773.2.12 Exercise 12: Count Substrings (★★✩✩✩) ................. 773.2.13 Exercise 13: Ruler (★★✩✩✩) ........................... 783.3 Solutions .................................................... 793.3.1 Solution 1: Fibonacci (★★✩✩✩) ......................... 793.3.2 Solution 2: Process digits (★★✩✩✩) ..................... 813.3.3 Solution 3: GCD (★★✩✩✩) ............................. 823.3.4 Solution 4: Reverse String (★★✩✩✩) .................... 853.3.5 Solution 5: Array Sum (★★✩✩✩) ........................ 863.3.6 Solution 6: Array Min (★★✩✩✩) ......................... 873.3.7 Solution 7: Conversions (★★✩✩✩)....................... 883.3.8 Solution 8: Exponential Function (★★✩✩✩) ............... 923.3.9 Solution 9: Pascal’s triangle (★★✩✩✩) ................... 953.3.10 Solution 10: Number palindromes (★★★★✩) .............. 983.3.11 Solution 11: Permutations (★★★✩✩) ..................... 1013.3.12 Solution 12: Count Substrings (★★✩✩✩) ................. 1043.3.13 Solution 13: Ruler (★★✩✩✩) ............................ 108Inhaltsverzeichnis vii4 Strings ..................................................... 1114.1 Introduction.................................................. 1114.1.1 The class String ..................................... 1124.1.2 The classes StringBuffer and StringBuilder ........ 1134.1.3 Class Character ..................................... 1144.1.4 Examples related to Character and String ............. 1154.2 Exercises ................................................... 1184.2.1 Exercise 1: Number conversions (★★✩✩✩) ............... 1184.2.2 Exercise 2: Joiner (★✩✩✩✩) ............................ 1184.2.3 Exercise 3: Reverse String (★★✩✩✩) .................... 1194.2.4 Exercise 4: Palindrome (★★★✩✩) ....................... 1194.2.5 Exercise 5: No Duplicate Chars (★★★✩✩) ................ 1204.2.6 Exercise 6: Remove Duplicate Letters (★★★✩✩) .......... 1204.2.7 Exercise 7: Capitalize (★★✩✩✩) ........................ 1214.2.8 Exercise 8: Rotation (★★✩✩✩) .......................... 1224.2.9 Exercise 9: Well formed braces (★★✩✩✩) ................ 1224.2.10 Exercise 10: Anagram (★★✩✩✩) ........................ 1234.2.11 Exercise 11: Morse Code (★★✩✩✩) ..................... 1234.2.12 Exercise 12: Pattern Checker (★★★✩✩) .................. 1244.2.13 Exercise 13: Tennis score (★★★✩✩) ..................... 1244.2.14 Exercise 14: Version numbers (★★✩✩✩) ................. 1254.2.15 Exercise 15: Conversion strToLong (★★✩✩✩) ........... 1254.2.16 Exercise 16: Print Tower (★★★✩✩) ...................... 1264.3 Solutions .................................................... 1274.3.1 Solution 1: Number conversions (★★✩✩✩) ............... 1274.3.2 Solution 2: Joiner (★✩✩✩✩) ............................ 1304.3.3 Solution 3: Reverse String (★★✩✩✩) .................... 1324.3.4 Solution 4: Palindrome (★★★✩✩)........................ 1344.3.5 Solution 5: No Duplicate Chars (★★★✩✩) ................ 1374.3.6 Solution 6: Remove Duplicate Letters (★★★✩✩) ........... 1384.3.7 Solution 7: Capitalize (★★✩✩✩) ......................... 1404.3.8 Solution 8: Rotation (★★✩✩✩) .......................... 1444.3.9 Solution 9: Well formed braces (★★✩✩✩) ................ 1454.3.10 Solution 10: Anagram (★★✩✩✩) ........................ 1474.3.11 Solution 11: Morse Code (★★✩✩✩)...................... 1484.3.12 Solution 12: Pattern Checker (★★★✩✩) .................. 1504.3.13 Solution 13: Tennis score (★★★✩✩) ..................... 1524.3.14 Solution 14: Version numbers (★★✩✩✩).................. 1564.3.15 Solution 15: Conversion strToLong (★★✩✩✩) ........... 1584.3.16 Solution 16: Print Tower (★★★✩✩)....................... 161viii Inhaltsverzeichnis5 Arrays ...................................................... 1655.1 Introduction.................................................. 1655.1.1 One-dimensional arrays ................................. 1665.1.2 Multidimensional arrays ................................. 1765.1.3 Typical errors .......................................... 1835.2 Exercises ................................................... 1845.2.1 Exercise 1: Even before odd numbers (★★✩✩✩) .......... 1845.2.2 Exercise 2: Flip (★★✩✩✩) .............................. 1845.2.3 Exercise 3: Palindrome (★★✩✩✩) ....................... 1845.2.4 Exercise 4: Inplace Rotate (★★★✩✩) .................... 1855.2.5 Exercise 5: Jewels Board Init (★★★✩✩) .................. 1855.2.6 Exercise 6: Jewels Board Erase Diamonds (★★★★✩) ...... 1875.2.7 Exercise 7: Spiral Traversal (★★★★✩) .................... 1885.2.8 Exercise 8: Add One to Array As Number (★★✩✩✩) ....... 1885.2.9 Exercise 9: Sudoku Checker (★★★✩✩)................... 1895.2.10 Exercise 10: Flood-Fill (★★✩✩✩) ........................ 1905.2.11 Exercise 11: Array Merge (★★✩✩✩) ..................... 1915.2.12 Exercise 12: Array Min and Max (★★✩✩✩) ............... 1915.2.13 Exercise 13: Array Split (★★★✩✩) ....................... 1925.2.14 Exercise 14: Minesweeper Board (★★★✩✩) .............. 1935.3 Solutions .................................................... 1955.3.1 Solution 1: Even before odd numbers (★★✩✩✩) ........... 1955.3.2 Solution 2: Flip (★★✩✩✩) .............................. 1995.3.3 Solution 3: Palindrome (★★✩✩✩)........................ 2035.3.4 Solution 4: Inplace Rotate (★★★✩✩) ..................... 2055.3.5 Solution 5: Jewels Board Init (★★★✩✩) .................. 2095.3.6 Solution 6: Jewels Board Erase Diamonds (★★★★✩) ...... 2165.3.7 Solution 7: Spiral Traversal (★★★★✩) .................... 2255.3.8 Solution 8: Add One to Array As Number (★★✩✩✩) ........ 2305.3.9 Solution 9: Sudoku Checker (★★★✩✩) ................... 2325.3.10 Solution 10: Flood-Fill (★★✩✩✩) ........................ 2385.3.11 Solution 11: Array Merge (★★✩✩✩)...................... 2425.3.12 Solution 12: Array Min and Max (★★✩✩✩) ................ 2465.3.13 Solution 13: Array Split (★★★✩✩) ....................... 2495.3.14 Solution 14: Minesweeper Board (★★★✩✩) ............... 254Inhaltsverzeichnis ix6 Date processing ............................................ 2616.1 Introduction.................................................. 2616.1.1 The enumerations DayOfWeek and Month ................ 2616.1.2 The classes LocalDate, LocalTime and LocalDateTime 2626.1.3 The class ZonedDateTime ............................. 2646.1.4 The class ZoneId ..................................... 2656.1.5 Class Duration....................................... 2666.1.6 The class Period ..................................... 2676.1.7 Date arithmetic ........................................ 2686.1.8 Formatting and parsing ................................. 2706.2 Exercises ................................................... 2726.2.1 Exercise 1: Leap Years (★✩✩✩✩) ....................... 2726.2.2 Exercise 2: Basic knowledge Date-API (★★✩✩✩).......... 2726.2.3 Exercise 3: Length of Month (★★✩✩✩) ................... 2736.2.4 Exercise 4: Time Zones (★★✩✩✩) ....................... 2736.2.5 Exercise 5: Time Zone Calculation (★★✩✩✩) ............. 2736.2.6 Exercise 6: Calculations with LocalDate ................. 2746.2.7 Exercise 7: Calendar output (★★★✩✩) ................... 2746.2.8 Exercise 8: Weekdays (★✩✩✩✩) ........................ 2756.2.9 Exercise 9: Sundays and leap years (★★✩✩✩) ............ 2766.2.10 Exercise 10: TemporalAdjuster (★★★✩✩)................. 2766.2.11 Exercise 11: NthWeekdayAdjuster (★★★✩✩) ............. 2776.2.12 Exercise 12: Payday-TemporalAdjuster (★★★✩✩) ......... 2776.2.13 Exercise 13: Formatting and Parsing (★★✩✩✩) ........... 2786.2.14 Exercise 14: Fault Tolerant Parsing (★★✩✩✩) ............. 2786.3 Solutions .................................................... 2796.3.1 Solution 1: Leap Years (★✩✩✩✩) ........................ 2796.3.2 Solution 2: Basic knowledge Date-API (★★✩✩✩) .......... 2806.3.3 Solution 3: Length of Month (★★✩✩✩) ................... 2816.3.4 Solution 4: Time Zones (★★✩✩✩) ....................... 2826.3.5 Solution 5: Time Zone Calculation (★★✩✩✩).............. 2836.3.6 Solution 6: Calculations with LocalDate ................. 2846.3.7 Solution 7: Calendar output (★★★✩✩) ................... 2866.3.8 Solution 8: Weekdays (★✩✩✩✩) ........................ 2896.3.9 Solution 9: Sundays and leap years (★★✩✩✩) ............ 2926.3.10 Solution 10: TemporalAdjuster (★★★✩✩) ................. 2946.3.11 Solution 11: NthWeekdayAdjuster (★★★✩✩) .............. 2956.3.12 Solution 12: Payday-TemporalAdjuster (★★★✩✩) .......... 2976.3.13 Solution 13: Formatting and Parsing (★★✩✩✩) ............ 3016.3.14 Solution 14: Fault Tolerant Parsing (★★✩✩✩) ............. 302x Inhaltsverzeichnis7 Basic data structures: lists, sets, and maps ................... 3057.1 Introduction.................................................. 3057.1.1 The interface Collection.............................. 3057.1.2 Lists and the interface List ......................... 3067.1.3 Sets and the interface Set .............................. 3077.1.4 Key-value mappings and the interface map ................ 3077.1.5 The stack as LIFO data structure ......................... 3087.1.6 The queue as FIFO data structure........................ 3097.2 Exercises ................................................... 3117.2.1 Exercise 1: Set operations (★★✩✩✩) .................... 3117.2.2 Exercise 2: List Reverse (★★✩✩✩) ...................... 3117.2.3 Exercise 3: Remove Duplicates (★★✩✩✩) ................ 3127.2.4 Exercise 4: Maximum Profit (★★★✩✩) ................... 3127.2.5 Exercise 5: Longest sequence (★★★✩✩) ................. 3137.2.6 Exercise 6: Own stack (★★✩✩✩) ........................ 3137.2.7 Exercise 7: Well-formed braces (★★✩✩✩) ................ 3137.2.8 Exercise 8: Check Magic Triangle (★★★✩✩) .............. 3147.2.9 Exercise 9: Pascal’s triangle (★★★✩✩) ................... 3147.2.10 Exercise 10: Most Frequent Elements (★★✩✩✩) .......... 3157.2.11 Exercise 11: Addition of digits (★★★✩✩) ................. 3157.2.12 Exercise 12: Compound Key (★★✩✩✩) .................. 3167.2.13 Exercise 13: List Merge (★★✩✩✩) ....................... 3167.2.14 Exercise 14: Excel Magic Select (★★✩✩✩) ............... 3177.3 Solutions .................................................... 3187.3.1 Solution 1: Set operations (★★✩✩✩) ..................... 3187.3.2 Solution 2: List Reverse (★★✩✩✩)....................... 3237.3.3 Solution 3: Remove Duplicates (★★✩✩✩) ................ 3267.3.4 Solution 4: Maximum Profit (★★★✩✩) .................... 3277.3.5 Solution 5: Longest sequence (★★★✩✩) ................. 3307.3.6 Solution 6: Own stack (★★✩✩✩) ........................ 3337.3.7 Solution 7: Well-formed braces (★★✩✩✩) ................ 3357.3.8 Solution 8: Check Magic Triangle (★★★✩✩)............... 3407.3.9 Solution 9: Pascal’s triangle (★★★✩✩) ................... 3447.3.10 Solution 10: Most Frequent Elements (★★✩✩✩) ........... 3467.3.11 Solution 11: Addition of digits (★★★✩✩) .................. 3487.3.12 Solution 12: Compound Key (★★✩✩✩) ................... 3527.3.13 Solution 13: List Merge (★★✩✩✩) ....................... 3547.3.14 Solution 14: Excel Magic Select (★★✩✩✩)................ 356Inhaltsverzeichnis xiII More advanced and tricky topics 3618 Advanced recursion ......................................... 3638.1 Memoization ................................................. 3638.1.1 Memoization for Fibonacci numbers ...................... 3638.1.2 Memoization for Pascal’s triangle ......................... 3658.2 Backtracking ................................................. 3688.2.1 n-queens problem ...................................... 3688.3 Exercises ................................................... 3728.3.1 Exercise 1: Towers of Hanoi (★★★✩✩) ................... 3728.3.2 Exercise 2: Edit Distance (★★★★✩) ..................... 3738.3.3 Exercise 3: Longest Common Subsequence (★★★✩✩) ..... 3738.3.4 Exercise 4: Way out of labyrinth (★★★✩✩) ................ 3748.3.5 Exercise 5: Sudoku Solver (★★★★✩) .................... 3758.3.6 Exercise 6: Math Operator Checker (★★★★✩) ............ 3768.3.7 Exercise 7: Water Bucket Problem (★★★✩✩) ............. 3778.3.8 Exercise 8: All palindrome substrings (★★★★✩) ........... 3788.3.9 Exercise 9: n-queens problem (★★★✩✩) ................. 3788.4 Solutions .................................................... 3798.4.1 Solution 1: Towers of Hanoi (★★★✩✩) ................... 3798.4.2 Solution 2: Edit Distance (★★★★✩) ...................... 3858.4.3 Solution 3: Longest Common Subsequence (★★★✩✩) ..... 3918.4.4 Solution 4: Way out of labyrinth (★★★✩✩) ................ 3948.4.5 Solution 5: Sudoku Solver (★★★★✩) ..................... 3978.4.6 Solution 6: Math Operator Checker (★★★★✩) ............. 4058.4.7 Solution 7: Water Bucket Problem (★★★✩✩) .............. 4108.4.8 Solution 8: All palindrome substrings (★★★★✩) ........... 4138.4.9 Solution 9: n-queens problem (★★★✩✩).................. 4179 Binary trees ................................................ 4259.1 Introduction.................................................. 4259.1.1 Structure, terminology and examples of use ............... 4259.1.2 Binary trees ........................................... 4269.1.3 Binary trees with order: binary search trees ............... 4279.1.4 Traversals ............................................. 4299.1.5 Balanced trees and other properties ...................... 4329.1.6 Trees for the examples and exercises ..................... 4349.2 Exercises ................................................... 4369.2.1 Exercise 1: Tree Traversal (★★✩✩✩) ..................... 4369.2.2 Exercise 2: In-, Pre- und Postorder iterative (★★★★✩)...... 4369.2.3 Exercise 3: Tree Height (★★✩✩✩) ....................... 4369.2.4 Exercise 4: Lowest Common Ancestor (★★★✩✩) .......... 4379.2.5 Exercise 5: Breadth-First (★★★✩✩) ...................... 437xii Inhaltsverzeichnis9.2.6 Exercise 6: Level Sum (★★★★✩) ........................ 4389.2.7 Exercise 7: Tree Rotate (★★★✩✩) ....................... 4389.2.8 Exercise 8: Reconstruction (★★★✩✩) .................... 4399.2.9 Exercise 9: Math Evaluation (★★✩✩✩) ................... 4399.2.10 Exercsie 10: Symmetry (★★✩✩✩) ....................... 4409.2.11 Exercise 11: Check Binary Search Tree (★★✩✩✩) ......... 4419.2.12 Exercise 12: Completeness (★★★★★) ................... 4419.2.13 Exercise 13: Tree Printer (★★★★★) ...................... 4439.3 Solutions .................................................... 4469.3.1 Solution 1: Tree Traversal (★★✩✩✩) ..................... 4469.3.2 Solution 2: In-, Pre- und Postorder iterative (★★★★✩) ...... 4489.3.3 Solution 3: Tree Height (★★✩✩✩) ....................... 4569.3.4 Solution 4: Lowest Common Ancestor (★★★✩✩) .......... 4579.3.5 Solution 5: Breadth-First (★★★✩✩) ...................... 4619.3.6 Solution 6: Level Sum (★★★★✩) ........................ 4639.3.7 Solution 7: Tree Rotate (★★★✩✩) ....................... 4679.3.8 Solution 8: Reconstruction (★★★✩✩) .................... 4709.3.9 Solution 9: Math Evaluation (★★✩✩✩) ................... 4769.3.10 Solution 10: Symmetry (★★✩✩✩) ....................... 4779.3.11 Solution 11: Check Binary Search Tree (★★✩✩✩) ......... 4819.3.12 Solution 12: Completeness (★★★★★) .................... 4839.3.13 Solution 13: Tree Printer (★★★★★) ...................... 49310 Searching and sorting ....................................... 50310.1 Introduction Search ........................................... 50310.1.1 Searching in Collections and Arrays ...................... 50310.1.2 Binary search with binarySearch() .................... 50510.2 Introduction Sort ............................................. 50610.2.1 Insertion Sort .......................................... 50610.2.2 Selection Sort ......................................... 50810.2.3 Merge Sort ............................................ 51010.2.4 Quick Sort ............................................ 51110.2.5 Bucket Sort ........................................... 51410.2.6 Final Thoughts ........................................ 51510.3 Exercises ................................................... 51610.3.1 Exercise 1: Contains All (★★✩✩✩)....................... 51610.3.2 Exercise 2: Partitioning (★★★✩✩) ....................... 51610.3.3 Exercise 3: Binary Search (★★✩✩✩)..................... 51710.3.4 Exercise 4: Insertion Sort (★★✩✩✩) ..................... 51710.3.5 Exercise 5: Selection Sort (★★✩✩✩) ..................... 51810.3.6 Exercise 6: Quick Sort (★★★✩✩) ........................ 51810.3.7 Exercise 7: Bucket Sort (★★✩✩✩) ....................... 51910.3.8 Exercise 8: Search in rotated data (★★★★✩).............. 519Inhaltsverzeichnis xiii10.4 Solutions .................................................... 52110.4.1 Solution 1: Contains All (★★✩✩✩) ....................... 52110.4.2 Solution 2: Partitioning (★★★✩✩) ........................ 52210.4.3 Solution 3: Binary Search (★★✩✩✩) ..................... 52410.4.4 Solution 4: Insertion Sort (★★✩✩✩)...................... 52810.4.5 Solution 5: Selection Sort (★★✩✩✩) ..................... 52910.4.6 Solution 6: Quick Sort (★★★✩✩) ........................ 53010.4.7 Solution 7: Bucket Sort (★★✩✩✩) ....................... 53210.4.8 Solution 8: Search in rotated data (★★★★✩) .............. 53411 Conclusion and supplementary literature ..................... 54111.1 Conclusion .................................................. 54111.1.1 Lessons learned per chapter ............................ 54111.1.2 Noteworthy ............................................ 54311.2 Puzzles ..................................................... 54411.2.1 Gold bags – detect the fake ............................. 54511.2.2 Horse race – determine fastest three horses ............... 54611.3 Supplementary literature ...................................... 549III Appendix 553A Quick start JShell ........................................... 555A.1 Java + REPL => jshell ...................................... 555B Short introduction JUnit 5 ................................... 561B.1 Writing and running tests ...................................... 561B.1.1 Example: A first unit test ................................ 561B.1.2 Fundamentals of writing and running tests................. 562B.1.3 Handling expected exceptions with assertThrows() ...... 565B.2 Parameterized tests with JUnit 5 ............................... 566C Quick start O-notation ....................................... 569C.1 Estimations with the O-notation ................................ 569C.1.1 Complexity classes ..................................... 570C.1.2 Complexity and program running time .................... 572
Beginning iOS Game Center and GameKit
Create fun and polished games and gamify your apps with GameKit and Game Center. This fully updated new edition of Kyle Richter’s classic can help you reach new customers through social integrations, multiplayer, and achievements. Quickly add a level of polish to your apps that used to take weeks of hard work and late nights.Implementing a leaderboard and achievement system has never been so simple! Gone are the days of writing and maintaining your own server. You'll also see how to easily add advanced networking concepts like VoIP support in hours, not days. Game Center is heavily pushed and promoted by Apple. By adding Game Center into your game, not only do you gain access to polished and professional features but your app will see a boost in downloads and sharing.Expeditiously implement a plethora of advanced social networking concepts into your apps. Create custom Game Center Manager classes that can be rapidly deployed into any of your new or existing projects. And jump right over pitfalls commonly encountered by new and experienced Game Center developers. Become a Game Center development champ!WHAT YOU'LL LEARN* Build a reusable Game Center manager class that can be quickly used in future projects* Integrate Game Kit and Game Center leaderboards and Achievements into your project* Add real time and turned based multiplayer functionality to your game* Implement a real time voice chat systemWHO THIS BOOK IS FORExperienced developers who already have a basic understanding of iOS development but haven’t yet had a chance to work with GameKit technology will benefit from this book.Kyle Richter started writing code in the early 90's on the Commodore 64, and soon after progressed to a Mac SE. Since then he has been dedicated to working exclusively with Apple products. Kyle is currently the CEO of MartianCraft LLC a custom mobile software development shop. Kyle has been running software development companies since 2004. His company was behind the release of the first iOS trivia game, as well as the first mobile game to support true non-local multiplayer. His companies have been named to the Inc 5000 fastest growing companies in the world on three separate occasions. Kyle has worked on notable project for some of the largest brands in the world. He is also a frequent speaker on software development and entrepreneurship speaking at more than two hundred events across the globe. In his spare time he enjoys traveling, backcountry hiking, scuba diving, and cooking. He can be found on twitter @kylerichter.Beau Bolle has been tinkering with technology as long as he can remember and has over 20 years of professional software development experience. He’s worked on a wide variety of clients from startups to Fortune 500 companies on an even wider variety of projects including audio tools; social media apps; e-commerce, bug tracking, source control, and CRM systems; and enterprise apps. As CTO of MartianCraft, he is dedicated to creating an environment that fosters creativity and enables people to do their best work. In his free time, Beau enjoys traveling, camping, and hiking. He’s an avid tabletop gamer and has recently taken up leatherworking.CHAPTER 1: GETTING STARTED WITH GAME KIT AND GAME CENTERGame Kit and Game Center a HistoryGame Center Benefits and MarketingGame Kit: An OverviewSample Game: UFOsUFOs: Examining the Source CodeGetting Started with iTunes ConnectCHAPTER 2: GAME CENTER: SETTING UP AND GETTING STARTEDGame Center from the user perspectiveTesting for Game CenterAuthenticating with Game CenterThe SandboxWatching for Status ChangesWorking with GKLocalPlayerRetrieving a Friends ListFriend List AvatarsWorking with PlayersCHAPTER 3: LEADERBOARDSWhy a Leaderboard?An Overview of Leaderboards in Game CenterConfiguring a Leaderboard in iTunes ConnectPosting a ScoreSetting a Default LeaderboardAdding Score Posting to UFOsHandling Failures When Submitting a ScorePresenting a LeaderboardCustomizing the LeaderboardMapping a Player IDLocal Player ScoreA Better ApproachCHAPTER 4: ACHIEVEMENTSWhy Achievements?An Overview of Achievements in Game CenterConfiguring Achievements in iTunes ConnectResetting AchievementsAdding Achievement HooksCHAPTER 5: MATCHMAKING AND INVITATIONSWhy Add Matchmaking and Invitations to Your App?Common Matchmaking ScenariosCreating a New Match RequestPresenting Match GUIHandling Incoming InvitationsAuto-MatchingMatching ProgrammaticallyAdding a Player to a MatchiOS 5ReinvitesPlayer GroupsPlayer AttributesPlayer ActivityUsing Your Own Server (Hosted Matches)CHAPTER 6: THE PEER PICKERBenefits of the Peer PickerReal-World ExamplesWorking with SessionsPresenting a Peer PickerAdvanced GKSession InteractionThe Peer Picker DelegateSummaryCHAPTER 7: NETWORK DESIGN OVERVIEWThree Types of NetworksLess Common NetworksReliable Data vs. Unreliable DataSending Only What Is NeededPrediction and ExtrapolationFormatting MessagesPreventing Cheating and Preventing Timeout-Related DisconnectionsWhat to Do When All Else FailsCHAPTER 8: EXCHANGING DATAModifying a Single-Player GameSetting Up Our Engine for MultiplayerPutting Everything TogetherDisconnectionsCHAPTER 9: TURNED-BASED GAMING WITH GAME CENTERA New Sample ProjectGKTurnedBasedMatchmakerViewControllerStarting a New GameMaking the First MoveContinuing a Game in ProgressEnding a MatchQuitting and ForfeitingProgrammatic MatchesGKTurnBasedEventHandlerCHAPTER 10: VOICE CHATVoice Chat for Game CenterVoice Chat for Game KitPutting It TogetherCHAPTER 11: IN-APP PURCHASE WITH STOREKITSetting Up Your App in iTunes ConnectAdding Products to Your AppPurchasing a ProductSubscriptions and RenewalsTest Accounts and Testing PurchasesSubmitting a Purchase GUI ScreenshotDeveloper ApprovalReceiptsTying Everything Together in UFOs
Python Unit Test Automation
Learn how to automate unit tests of Python 3 with automation libraries, such as doctest, unittest, nose, nose2, pytest, and selenium. This book explores important concepts in software test automation and demonstrates how to automate, organize, and execute unit tests with Python. It also introduces readers to the concepts of web browser automation and logging.This new edition starts with an introduction to Python 3. Next, it covers doctest and pydoc. This is followed by a discussion on unittest, a framework that comes packaged with Python 3 itself. There is a dedicated section on creating test suites, followed by an explanation of how nose2 provides automatic test module discovery. Moving forward, you will learn about pytest, the most popular third-party library and testrunner for Python. You will see how to write and execute tests with pytest. You’ll also learn to discover tests automatically with pytest.This edition features two brand new chapters, the first of which focuses on the basics of web browser automation with Selenium. You’ll learn how to use Selenium with unittest to write test cases for browser automation and use the Selenium IDE with web browsers such as Chrome and Firefox. You’ll then explore logging frameworks such as Python’s built-in logger and the third-party framework loguru.The book concludes with an exploration of test-driven development with pytest, during which you will execute a small project using TDD methodology.WHAT YOU WILL LEARN* Start testing with doctest and unittest* Understand the idea of unit testing* Get started with nose 2 and pytest* Learn how to use logger and loguru* Work with Selenium and test driven developmentWHO THIS BOOK IS FORPython developers, software testers, open source enthusiasts, and contributors to the Python community. Ashwin Pajankar holds a Master of Technology from IIIT Hyderabad, and has over 25 years of programming experience. He started his journey in programming and electronics with BASIC programming language and is now proficient in Assembly programming, C, C++, Java, Shell Scripting, and Python. Other technical experience includes single board computers such as Raspberry Pi and Banana Pro, and Arduino. He is currently a freelance online instructor teaching programming bootcamps to more than 60,000 students from tech companies and colleges. His Youtube channel has an audience of 10000 subscribers and he has published more than 15 books on programming and electronics with many international publications.Chapter 1: Introduction to PythonChapter Goal: Brief intro into Python 3No of pagesSub -Topics1. History of Python2. Features3. Python 34. Installation5. Running a Python program6. IDEsChapter 2: GettingSstarted with Unit TestingChapter Goal: Brief acquaintance with the subject of the book and some hands onNo of pages:Sub - Topics:1. Software Testing concepts2. Docstrings3. pydoc4. DoctestChapter 3: UnittestChapter Goal: Getting to understand the Unittest frameworkNo of pages:Sub - Topics:1. xUnit2. Using unittest3. Test discovery4. Coding conventions for unittest5. Assertions in unittest6. Other useful methods7. Failing a test8. Advanced functionalitya) More command line optionsb) Test suitec) AssertRaisesWarnChapter 4: Nose and Nose 2Chapter Goal: Concepts of Nose and Nose 2No of pages:Sub - Topics:1. Introduction to nose2. Fixtures3. Testing Tools4. Reports5. Running unittests and doctests6. Advantages and disadvantages7. Introduction to nose 28. Advanced topics in nose 2a) Running tests and conventionsb) Parameterized testsc) Generating reportChapter 5: pytestChapter Goal: work with pytest1. Introduction to pytest2. Fixtures3. Command line optionsChapter 6: TestifyChapter Goal: work with testify1. Fixtures2. Advanced featuresChapter 7: Logging in PythonChapter Goal: work with logging1. Logger2. LoguruChapter 8: Additional TopicsChapter Goal: work with testify1. Naming conventions2. TDD with Python3. Selenium with pytest and logger
Diagnosis and Fault-tolerant Control Volume 2
This book presents recent advances in fault diagnosis and fault-tolerant control of dynamic processes. Its impetus derives from the need for an overview of the challenges of the fault diagnosis technique and sustainable control, especially for those demanding systems that require reliability, availability, maintainability, and safety to ensure efficient operations. Moreover, the need for a high degree of tolerance with respect to possible faults represents a further key point, primarily for complex systems, as modeling and control are inherently challenging, and maintenance is both expensive and safety-critical.Diagnosis and Fault-tolerant Control 2 also presents and compares different fault diagnosis and fault-tolerant schemes, using well established, innovative strategies for modeling the behavior of the dynamic process under investigation. An updated treatise of diagnosis and fault-tolerant control is addressed with the use of essential and advanced methods including signal-based, model-based and data-driven techniques. Another key feature is the application of these methods for dealing with robustness and reliability. VICENC PUIG is Professor of Automatic Control at the Universitat Politècnica de Catalunya (UPC), Spain. He has published more than 80 journal articles and more than 350 articles in international conference/workshop proceedings related to diagnosis and faulttolerant control.SILVIO SIMANI is Professor of Automatic Control in the Engineering Department of Ferrara University, Italy. He has published about 260 journal and conference papers, several book chapters and four monographs on fault diagnosis and sustainable control topics.CHAPTER 1 NONLINEAR METHODS FOR FAULT DIAGNOSIS 1Silvio Simani and Paolo Castaldi1.1. Introduction 11.2. Fault diagnosis tasks 21.2.1. Residual generation task 51.2.2. Residual evaluation task 81.3. Model-based fault diagnosis 91.3.1. Parity space relations 91.3.2. Observer-based approaches 121.3.3. Nonlinear filtering methods 141.3.4. Nonlinear geometric approach strategy 171.4. Data-driven fault diagnosis 201.4.1. Online identification methods 211.4.2. Machine learning approaches to fault diagnosis 241.5. Model-based and data-driven integrated fault diagnosis 341.6. Robust fault diagnosis problem 421.7. Summary 471.8. References 48CHAPTER 2 LINEAR PARAMETER VARYING METHODS 57Mickael Rodrigues, Habib Hamdi and Didier Theilliol2.1. Introduction 572.2. Preliminaries: a classical approach 602.3. Problem statement 622.4. Robust active fault-tolerant control design 652.4.1. Robust observer-based FTC design 652.4.2. Stability analysis 682.5. Application: an anaerobic bioreactor 752.6. Conclusion 812.7. References 81CHAPTER 3 FUZZY AND NEURAL NETWORK APPROACHES 85Marcin Witczak, Marcin Pazera, Norbert Kukurowski and Marcin Mrugalski3.1. Introduction 853.2. Fuzzy model design 873.2.1. Takagi–Sugeno systems 873.2.2. Generation of TS models via nonlinear embedding 883.3. Neural model design 903.3.1. Recurrent neural network 903.3.2. Identification of the neural model uncertainty 933.4. Fault estimation and diagnosis 943.4.1. Actuator fault estimation using neural networks 943.4.2. Sensor and actuator fault estimation using fuzzy logic 973.5. Fault-tolerant control 1013.5.1. An overview of the fault-tolerant scheme 1013.5.2. Robust fault estimation and control 1033.5.3. Derivation of a robust invariant set 1063.5.4. Efficient predictive FTC 1063.6. Illustrative examples 1103.6.1. Sensor and actuator fault estimation example 1103.6.2. Fault-tolerant control example 1133.7. Conclusion 1153.8. Acknowledgment 1163.9. References 116CHAPTER 4 MODEL PREDICTIVE CONTROL METHODS 121Krzysztof Patan4.1. Introduction 1214.2. Idea of MPC 1224.3. Robustness of MPC 1254.4. Neural-network-based robust MPC 1264.4.1. Neural network models 1274.4.2. Nonlinear MPC 1304.4.3. Approximate MPC 1304.4.4. Robust nonlinear MPC 1324.4.5. Robust approximate MPC 1324.5. Robust control of a pneumatic servo 1344.5.1. Robust nonlinear neural-network-based MPC 1354.5.2. Robust approximate neural-network-based MPC 1394.6. Conclusion 1404.7. References 140CHAPTER 5 NONLINEAR MODELING FOR FAULT-TOLERANT CONTROL 143Silvio Simani and Paolo Castaldi5.1. Introduction 1435.1.1. Joint fault diagnosis and control 1475.1.2. Nonlinear adaptive fault estimators 1495.1.3. Fuzzy fault-tolerant control 1615.1.4. Recursive adaptive control 1645.1.5. Sustainable control 1745.2. Fault-tolerant control strategies 1755.2.1. Fault tolerance and compensation 1775.3. Fault diagnosis and tolerant control 1805.3.1. Fault-tolerant control design 1835.4. Summary 1865.5. References 187CHAPTER 6 VIRTUAL SENSORS AND ACTUATORS 193Damiano Rotondo and Vicenç Puig6.1. Introduction 1936.2. Problem statement 1946.3. Virtual sensors and virtual actuators 1986.4. LMI-based design 2026.5. Additional considerations 2056.6. Application example 2086.6.1. Virtual actuator 2096.6.2. Virtual sensors 2106.7. Conclusion 2126.8. References 212CHAPTER 7 CONCLUSIONS 215Vicenç Puig and Silvio Simani7.1. Introduction 2157.2. Closing remarks 2197.3. References 229CHAPTER 8 OPEN RESEARCH ISSUES 241Vicenç Puig and Silvio Simani8.1. Further works and open problems 2418.1.1. Sustainable control design objectives 2438.1.2. Sustainable control concepts and approaches 2478.1.3. Sustainable control approaches and working methods 2498.1.4. Sustainable control design ambition 2538.1.5. Sustainable control innovation potentials 2588.1.6. Sustainable control expected impacts 2598.2. Summary 2618.3. References 262List of Authors 265Index 267Summary of Volume 1 271
Teach Yourself VISUALLY Windows 11
EVERYTHING YOU NEED TO KNOW ABOUT WINDOWS 11 IN A SINGLE, VISUAL BOOKTeach Yourself VISUALLY Windows 11 collects all the resources you need to master the day-to-day use of Microsoft’s new operating system and delivers them in a single resource. Fully illustrated, step-by-step instructions are combined with crystal-clear screenshots to walk you through the basic and advanced functions of Windows 11.Teach Yourself VISUALLY Windows 11 offers the best visual learning techniques with comprehensive source material about the interface and substance of Windows 11, as well as:* Stepwise guidance on working with files, digital pictures, and media* Instructions for customizing Windows 11 and sharing your computer with family members* Tutorials on installing and repairing applications, system maintenance, and computer securityThe fastest, easiest way for visual learners to get a grip on Windows 11, Teach Yourself VISUALLY Windows 11 is the best way to go from newbie to expert in no time at all.CHAPTER 1 GETTING STARTED WITH WINDOWSExplore the PC Screen 4Explore the Start Menu 5Start and Close an App 6Connect to Your Wireless Network 8Put Windows to Sleep 10Restart or Shut Down Windows 11Switch to a Microsoft Account 12Install an App 16Switch Between Running Apps 18Arrange Running Apps 20Uninstall an App 22CHAPTER 2 CUSTOMIZING WINDOWSPin an App to the Start Menu 26Open the Settings App 28Change the Lock Screen Background 30Choose a Lock Screen Status App 32Customize Syncing Between Devices 34Access an App’s Features 36Pin an App to the Taskbar 38Change the Theme 40Adjust the Volume 42Set the Time Zone 43Configure Windows to Work with Multiple Monitors 44Customize the Taskbar 46Work with Widgets 48Set Up Multiple Desktops 50CHAPTER 3 SURFING THE WEBOpen a Web Page 54Open a Web Page in a Tab 56Navigate Web Pages 58Find Text on a Page 59Navigate with the History List 60Change Your Startup Page 62Save Favorite Web Pages 64Take Advantage of the Favorites Bar 66Share a Web Page 68Search for Sites 70Download a File 72CHAPTER 4 SENDING AND RECEIVING EMAILLaunch the Mail App 76Configure Mail Settings 77Configure an Email Account 78Send an Email Message 80Format the Message Text 82Add a File Attachment 84Save a Draft of a Message 86Receive and Read Email Messages 88Reply to a Message 90Forward a Message 92Open and Save an Attachment 94Delete a Message 96Create a Folder for Saving Messages 98CHAPTER 5 GETTING SOCIAL WITH WINDOWSCreate a Contact 102Add Your Google Account 104Add Your iCloud Account 106View a Contact 108Edit a Contact 110Assign a Photo to a Contact 112Add Extra Fields to a Contact 114Filter the Contacts List 116Combine Multiple Profiles for a Contact 118View Your Calendar 120Add an Event to Your Calendar 122Create a Recurring Event 124Add an Event Reminder 125Send or Respond to an Event Invitation 126Customize Your Calendar 128CHAPTER 6 PERFORMING DAY-TO-DAY TASKS WITH APPSSearch Your PC 132Write a Note 134Make a To‐Do List 136Configure Skype 138Call Someone Using Skype 140Display a Location on a Map 142Get Directions to a Location 144Check Your Weather Forecast 146Check Another City’s Weather Forecast 148Perform Calculations 150Record a Voice Memo 152Set an Alarm 154CHAPTER 7 WORKING WITH IMAGESImport Images from a Digital Camera 158Scan an Image 160Navigate the Pictures Folder 162View Your Images 164Start a Slide Show 166Set an Image as the Photos App Tile 167Repair an Image 168Add a Photo Effect 170Crop an Image 172Rotate an Image 174Delete an Image 175Print an Image 176Take a Picture with Your PC Camera 178CHAPTER 8 WORKING WITH MULTIMEDIAImport Videos from a Digital Camera 182Navigate the Videos Folder 184Watch a Video 186Edit a Video 188Make a Movie 192Play a Music CD 196Copy Tracks from a Music CD 200Navigate the Music Folder 202Play Music 204Create a Playlist 206Switch Between Audio Devices 208CHAPTER 9 EDITING DOCUMENTSCreate and Save a Document 212Open a Document 214Change the Text Font 216Find Text 218Replace Text 220Insert Special Symbols 222Make a Copy of a Document 224Create a OneNote Notebook 226Add Pages and Sections to a Notebook 228Add Text Notes 230Add an Image to a Notebook Page 232Work with Notebook Lists 234Print a Document 236CHAPTER 10 WORKING WITH FILESSelect a File 240Change the File View 242Preview a File 243Copy a File 244Move a File 245Rename a File 246Create a New File 247Delete a File 248Restore a Deleted File 249Add a File to Your OneDrive 250Extract Files from a Compressed Folder 252Specify a Different Program When Opening a File 254CHAPTER 11 SHARING YOUR COMPUTERDisplay User Accounts 258Create a User Account 260Switch Between Accounts 262Change Your User Account Picture 264Change a User’s Password 266Delete an Account 268Add a Child to Your PC 270Set Restrictions on a Child Account 272CHAPTER 12 GETTING MORE FROM A TABLET PCUnderstanding Gestures 276Using Gestures to Control Windows 278Display the Touch Keyboard 280Input Text with the Touch Keyboard 282Customize the Touch Keyboard Size and Theme 284Adjust Screen Brightness 286Monitor Battery Life 287CHAPTER 13 IMPLEMENTING SECURITYUnderstanding Windows Security 290Check for Security Problems 292Create a Picture Password 294Sign In with a PIN 298Set Up a Fingerprint Sign‐In 300Lock Your Computer 302Configure Your PC to Lock Automatically 304Browse the Web Privately 306Control Your Private Information 308Clear Your Activity History 310CHAPTER 14 MAKING WINDOWS MORE ACCESSIBLEIncrease the Text Size 314Magnify Screen Areas 316Have Screen Text Read to You 318Change to a High‐Contrast Theme 320Apply a Color Filter 322Flash the Screen During Audio Notifications 324Make the Keyboard More Accessible 326Control Windows via Voice 328Index 330
Kultur und Innovation durch Raumkonzepte (2.Auflage)
Kultur und Innovation durch RaumkonzepteErfahren Sie, was Sie unbedingt beachten müssen, wenn Sie einen Innovationsraum in Ihrem Unternehmen aufbauen möchten.Lernen Sie, wie Sie die größte Wirkung erzielen, um Kreativität und Innovation zu fördern.Entdecken Sie, welche Möbel und Farben wie wirken, um agiles Vorgehen zu intensivieren. Mit vielen Beispielen, Interviews und Tipps von erfolgreichen Unternehmen und Profis aus der PraxisMit Einkaufsliste zur sofortigen UmsetzungIhr exklusiver Vorteil: E-Book inside beim Kauf des gedruckten BuchesDas Buch ist für Führungskräfte und Mitarbeitende gedacht, die entschlossen sind, Kreativität und Innovation zu fördern und eine kollaborative Umgebung zu schaffen, die das Beste in den Menschen hervorbringt.Hier finden Sie sowohl praktische Umsetzungstipps von Profis aus verschiedenen Bereichen als auch Erklärungen zu kreativem Verhalten, Vorlagen und Ideen. Denn die Art, wie Unternehmen Räume gestalten, unterstützt (oder behindert) die Menschen bei ihrer kreativen Arbeit.Gerade in Sachen Innovation ist das Bedürfnis nach einem passenden Raum verständlich. Physische Räume sind aber mehr als bunte Arbeitsplätze und Ausdruck einer Innovationskultur: Sie fördern darüber hinaus Kreativität, agiles Vorgehen und Teamleistung.Wenn Sie einen Raum für Innovationen aufbauen, gibt es verschiedene Aspekte, die Sie beachten sollten, damit der Raum auch wirklich erfolgreich innerhalb des Unternehmens etabliert wird.(Leseprobe als PDF)
Datenvisualisierung mit Power BI
Visualisieren Sie Ihre Daten schnell und ausdrucksstark mit Power BI, um praktisch umsetzbare Ergebnisse zu erhalten. Alexander Loth und Peter Vogel zeigen Ihnen Schritt für Schritt, wie Sie ganz einfach visuelle Analysen erstellen und so selbst komplexe Datenstrukturen verstehen sowie gewonnene Erkenntnisse effektiv kommunizieren können.Das Buch richtet sich an die folgenden Zielgruppen:Alle, die Zugang zu Daten haben und diese verstehen möchtenFührungskräfte, die Entscheidungen auf Grundlage von Daten treffennAnalysten und Entwickler, die Visualisierungen und Dashboards erstellen angehende Data ScientistsZum Verständnis dieses Buches und dem Erwerb von Power BI Kenntnissen sind weder besondere mathematische Fähigkeiten noch Programmiererfahrung nötig. Es eignet sich daher auch für Einsteiger und Anwender, die sich dem Thema Datenvisualisierung und -analysepraxisbezogen nähern möchten, ohne ausschweifende theoretische Abhandlungen. Die grundlegenden Funktionen von Power BI werden Schritt für Schritt erläutert und Sie lernen, welche Visualisierungsmöglichkeiten wann sinnvoll sind. Die Autoren zeigen Fallbeispiele auf, die weit über eine »Standardanalyse« hinausreichen und gehen auf Funktionen ein, die selbst erfahrenen Nutzern oft nicht hinlänglich bekannt sind. Sie geben Ihnen außerdem wertvolle Hinweise und Tipps, die das Arbeiten mit Power BI merklich erleichtern. So können Sie zukünftig Ihre eigenen Daten bestmöglich visualisieren und analysieren.Aus dem Inhalt:Einführung und erste Schritte in Power BIDatenquellen in Power BI anlegenVisualisierungen erstellenAggregationen, Berechnungen und ParameterDimensionsübergreifende Berechnungen mit DAX-AusdrückenMit Karten zu weitreichenden ErkenntnissenTiefgehende Analysen mit Trends, Prognosen, Clustern und VerteilungInteraktive DashboardsAnalysen teilenLeseprobe (PDF-Link)
More Java 17
Work with the essential and advanced features of the Java 17 release. This book covers features such as annotations, reflection, and generics. These topics are then complemented by details of how to use lambda expressions, allowing you to build powerful and efficient Java programs. Furthermore, added to this edition you'll find topics on network programming, Java RMI, the process API, and custom runtime images. The authors provide a multitude of diagrams and complete programs to help you visualize and better understand the topics covered in this book.More Java 17, Third Edition starts with a series of chapters on the essential language features provided by Java before moving on to Java module development and packaging, and improved interop with other languages. After reading this book, you'll have the know-how of a professional Java programmer and be able to tackle most projects with confidence.This book's source code can be accessed at github.com/Apress/more-java-17.WHAT YOU WILL LEARN* Use essential and advanced features of the Java language* Code Java annotations* Work with reflection and generics* Manage streams with the Stream APIWHO THIS BOOK IS FORThose new to Java programming who are continuing the Java learning journey; it is recommended that you read an introductory Java programming book first, such as Java 17 for Absolute Beginners, from Apress.KISHORI SHARAN has earned a master of science in computer information systems degree from Troy State University, Alabama. He is a Sun Certified Java 2 programmer. He has vast experience in providing training to professional developers in Java, JSP, EJB, and web technology. He possesses over ten years of experience in implementing enterprise-level Java applications.PETER SPÄTH graduated in 2002 as a physicist and soon afterward became an IT consultant, mainly for Java-related projects. In 2016, he decided to concentrate on writing books on various aspects, but with a main focus on software development. With two books about graphics and sound processing, three books on Android app development, and a beginner’s book on Jakarta EE development, the author continues his effort in writing software development-related literature.1. Annotations2. Inner Classes3. Reflection4. Generics5. Lambda Expressions6. Threads7. Input Output8. Working with Archive Files9. New Input Output NIO10. New Input Output 2.011. Garbage Collection12. Collections13. Streams14. Implementing Services15. The Module API16. Breaking Module Encapsulation17. Reactive Streams18. Stack Walking19. Network Programming20. JDBC API21. Java Remote Method Invocation22. Java Native Interface23. Process API24. Packaging Modules25. Custom Runtime Images
API Marketplace Engineering
This is your hands-on guide to designing, building, and operating an API Marketplace to allow your organization to expose internal services and customer data securely for use by external developers. The book shows the mutual nature of a relationship in which organizations benefit from revenue and the reach of a new digital channel and third-party developers benefit from leveraging APIs to build unique applications.Providing open access is a regulatory requirement in some sectors, such as financial services, and this book helps you to build a platform to comply with regulatory requirements while at the same time encouraging and supporting use by external development teams. The book provides the blueprints for assembling teams and systems to build and support an API ecosystem. It offers insight into how the Marketplace can be constructed in a way to allow agility and flexibility to meet aggressive startup developer timelines while balancing established enterprise requirements of stability, reliability, and governance. The goal of this book is to provide engineering teams with a view of the operational requirements and how to meet and exceed these by establishing foundational elements at design time.An API Marketplace presents a unique challenge as organizations have to share internal capability and customer data with external developers. Security practices and industry standards are contrasted and discussed in this book. Practical approaches are provided to build and support a third-party developer ecosystem, manage sandbox environments hosting APIs of varying complexities, and cover monetization strategies that are yielding positive results to achieve self-sustainability.WHAT YOU WILL LEARN* Understand the motivation and objectives for an API economy* Build key technical components of an API platform* Comply with regulatory requirements such as Open Banking* Secure APIs and customer data from external attack* Deliver APIs quickly while satisfying governance requirements* Get insight into a real-world API Marketplace implementationWHO THIS BOOK IS FORSolution architects, API product owners, delivery and development leads, and developers; anyone developing APIs for consumption by external business partners; API developers who want more insight into regulatory complianceRENNAY DORASAMY has spent the last 20 years in various technology roles, ranging from development to operations to architecture, across a number of industries. He has worked in telecoms, with government, and most recently in financial services. He has considerable hands-on integration experience working on middleware platforms from C-based messaging to Java Enterprise Edition. He is experienced in both core enterprise and digital contexts. As a full-stack engineer, he is intimately familiar with technologies such as containerization, cloud, and serverless technology for building and deploying mission-critical solutions. He is currently the Engineering Lead of an API Marketplace implementation, the first of its kind in financial services on the African continent. 1. API Engineering2. Regulation3. Consumption4. Monetization5. Platform Architecture6. Security7. API Design8. API Development9. Sandbox10. API Operations11. Conclusion
Cybersecurity Risk Management
CYBERSECURITY RISK MANAGEMENTIn Cybersecurity Risk Management: Mastering the Fundamentals Using the NIST Cybersecurity Framework, veteran technology analyst Cynthia Brumfield, with contributions from cybersecurity expert Brian Haugli, delivers a straightforward and up-to-date exploration of the fundamentals of cybersecurity risk planning and management. The book offers readers easy-to-understand overviews of cybersecurity risk management principles, user, and network infrastructure planning, as well as the tools and techniques for detecting cyberattacks. The book also provides a roadmap to the development of a continuity of operations plan in the event of a cyberattack. With incisive insights into the Framework for Improving Cybersecurity of Critical Infrastructure produced by the United States National Institute of Standards and Technology (NIST), Cybersecurity Risk Management presents the gold standard in practical guidance for the implementation of risk management best practices. Filled with clear and easy-to-follow advice, this book also offers readers:* A concise introduction to the principles of cybersecurity risk management and the steps necessary to manage digital risk to systems, assets, data, and capabilities* A valuable exploration of modern tools that can improve an organization’s network infrastructure protection* A practical discussion of the challenges involved in detecting and responding to a cyberattack and the importance of continuous security monitoring* A helpful examination of the recovery from cybersecurity incidentsPerfect for undergraduate and graduate students studying cybersecurity, Cybersecurity Risk Management is also an ideal resource for IT professionals working in private sector and government organizations worldwide who are considering implementing, or who may be required to implement, the NIST Framework at their organization. CYNTHIA BRUMFIELD is the President of DCT Associates and a veteran media, communications, and technology analyst who is now focused on cybersecurity. Backed by executive-level experience at top-tier U.S. communications trade associations, a premier investment analysis firm, and her own successful publication and consulting businesses, she has spearheaded research, analysis, consulting, publishing, and education initiatives for major organizations, including Fortune 500 corporations, security organizations, and federal government clients. In addition, she is an award-winning writer who currently runs a pioneering cybersecurity news destination, Metacurity, and writes regularly for top news outlets, including ongoing columns for CSO Online.BRIAN HAUGLI is the Managing Partner and Founder of SideChannel. He has been driving security programs for two decades and brings a true practitioner’s approach to the industry. He has led programs for the DoD, Pentagon, Intelligence Community, Fortune 500, and many others. In addition, Brian is a renowned speaker and expert on NIST guidance, threat intelligence implementations, and strategic organizational initiatives. Academic Foreword xiiiAcknowledgments xvPreface – Overview of the NIST Framework xviiBackground on the Framework xviiiFramework Based on Risk Management xixThe Framework Core xixFramework Implementation Tiers xxiFramework Profile xxiiOther Aspects of the Framework Document xxiiiRecent Developments At Nist xxiiiCHAPTER 1 CYBERSECURITY RISK PLANNING AND MANAGEMENT 1Introduction 2I. What Is Cybersecurity Risk Management? 2A. Risk Management Is a Process 3II. Asset Management 4A. Inventory Every Physical Device and System You Have and Keep the Inventory Updated 5B. Inventory Every Software Platform and Application You Use and Keep the Inventory Updated 9C. Prioritize Every Device, Software Platform, and Application Based on Importance 10D. Establish Personnel Security Requirements Including Third-Party Stakeholders 11III. Governance 13A. Make Sure You Educate Management about Risks 13IV. Risk Assessment and Management 15A. Know Where You’re Vulnerable 15B. Identify the Threats You Face, Both Internally and Externally 16C. Focus on the Vulnerabilities and Threats That Are Most Likely AND Pose the Highest Risk to Assets 17D. Develop Plans for Dealing with the Highest Risks 18Summary 20Chapter Quiz 20Essential Reading on Cybersecurity Risk Management 22CHAPTER 2 USER AND NETWORK INFRASTRUCTURE PLANNING AND MANAGEMENT 23I. Introduction 24II. Infrastructure Planning and Management Is All about Protection, Where the Rubber Meets the Road 24A. Identity Management, Authentication, and Access Control 251. Always Be Aware of Who Has Access to Which System, for Which Period of Time, and from Where the Access Is Granted 272. Establish, Maintain, and Audit an Active Control List and Process for Who Can Physically Gain Access to Systems 283. Establish Policies, Procedures, and Controls for Who Has Remote Access to Systems 284. Make Sure That Users Have the Least Authority Possible to Perform Their Jobs and Ensure That at Least Two Individuals Are Responsible for a Task 295. Implement Network Security Controls on All Internal Communications, Denying Communications among Various Segments Where Necessary 31A Word about Firewalls 316. Associate Activities with a Real Person or a Single Specific Entity 327. Use Single- or Multi-Factor Authentication Based on the Risk Involved in the Interaction 33III. Awareness and Training 34A. Make Sure That Privileged Users and Security Personnel Understand Their Roles and Responsibilities 35IV. Data Security 35A. Protect the Integrity of Active and Archived Databases 35B. Protect the Confidentiality and Integrity of Corporate Data Once It Leaves Internal Networks 36C. Assure That Information Can Only Be Accessed by Those Authorized to Do So and Protect Hardware and Storage Media 37D. Keep Your Development and Testing Environments Separate from Your Production Environment 38E. Implement Checking Mechanisms to Verify Hardware Integrity 39V. Information Protection Processes and Procedures 39A. Create a Baseline of IT and OT Systems 40B. Manage System Configuration Changes in a Careful, Methodical Way 41A Word about Patch Management 42C. Perform Frequent Backups and Test Your Backup Systems Often 43D. Create a Plan That Focuses on Ensuring That Assets and Personnel Will Be Able to Continue to Function in the Event of a Crippling Attack or Disaster 43VI. Mainte nance 44A. Perform Maintenance and Repair of Assets and Log Activities Promptly 45B. Develop Criteria for Authorizing, Monitoring, and Controlling All Maintenance and Diagnostic Activities for Third Parties 45VII. Protective Technology 46A. Restrict the Use of Certain Types of Media On Your Systems 46B. Wherever Possible, Limit Functionality to a Single Function Per Device (Least Functionality) 47C. Implement Mechanisms to Achieve Resilience on Shared Infrastructure 48Summary 49Chapter Quiz 50Essential Reading on Network Management 51CHAPTER 3 TOOLS AND TECHNIQUES FOR DETECTING CYBER INCIDENTS 53Introduction 54What Is an Incident? 55I. Detect 56A. Anomalies and Events 561. Establish Baseline Data for Normal, Regular Traffic Activity and Standard Configuration for Network Devices 572. Monitor Systems with Intrusion Detection Systems and Establish a Way of Sending and Receiving Notifications of Detected Events; Establish a Means of Verifying, Assessing, and Tracking the Source of Anomalies 58A Word about Antivirus Software 603. Deploy One or More Centralized Log File Monitors and Configure Logging Devices throughout the Organization to Send Data Back to the Centralized Log Monitor 614. Determine the Impact of Events Both Before and After they Occur 615. Develop a Threshold for How Many Times an Event Can Occur Before You Take Action 62B. Continuous Monitoring 621. Develop Strategies for Detecting Breaches as Soon as Possible, Emphasizing Continuous Surveillance of Systems through Network Monitoring 632. Ensure That Appropriate Access to the Physical Environment Is Monitored, Most Likely through Electronic Monitoring or Alarm Systems 643. Monitor Employee Behavior in Terms of Both Physical and Electronic Access to Detect Unauthorized Access 654. Develop a System for Ensuring That Software Is Free of Malicious Code through Software Code Inspection and Vulnerability Assessments 655. Monitor Mobile Code Applications (e.g., Java Applets) for Malicious Activity by Authenticating the Codes’ Origins, Verifying their Integrity, and Limiting the Actions they Can Perform 666. Evaluate a Provider’s Internal and External Controls’ Adequacy and Ensure they Develop and Adhere to Appropriate Policies, Procedures, and Standards; Consider the Results of Internal and External Audits 667. Monitor Employee Activity for Security Purposes and Assess When Unauthorized Access Occurs 678. Use Vulnerability Scanning Tools to Find Your Organization’s Weaknesses 68C. Detection Processes 681. Establish a Clear Delineation between Network and Security Detection, with the Networking Group and the Security Group Having Distinct and Different Responsibilities 692. Create a Formal Detection Oversight and Control Management Function; Define Leadership for a Security Review, Operational Roles, and a Formal Organizational Plan; Train Reviewers to Perform Their Duties Correctly and Implement the Review Process 703. Test Detection Processes Either Manually or in an Automated Fashion in Conformance with the Organization’s Risk Assessment 714. Inform Relevant Personnel Who Must Use Data or Network Security Information about What Is Happening and Otherwise Facilitate Organizational Communication 715. Document the Process for Event Detection to Improve the Organization’s Detection Systems 72Summary 72Chapter Quiz 73Essential Reading for Tools and Techniques for Detecting a Cyberattack 74CHAPTER 4 DEVELOPING A CONTINUITY OF OPERATIONS PLAN 75Introduction 77A. One Size Does Not Fit All 77I. Response 77A. Develop an Executable Response Plan 79B. Understand the Importance of Communications in Incident Response 80C. Prepare for Corporate-Wide Involvement During Some Cybersecurity Attacks 81II. Analysis 82A. Examine Your Intrusion Detection System in Analyzing an Incident 82B. Understand the Impact of the Event 83C. Gather and Preserve Evidence 84D. Prioritize the Treatment of the Incident Consistent with Your Response Plan 84E. Establish Processes for Handling Vulnerability Disclosures 85III. Mitigation 86A. Take Steps to Contain the Incident 86B. Decrease the Threat Level by Eliminating or Intercepting the Adversary as Soon as the Incident Occurs 87C. Mitigate Vulnerabilities or Designate Them as Accepted Risk 88IV. Recover 88A. Recovery Plan Is Executed During or After a Cybersecurity Incident 89B. Update Recovery Procedures Based on New Information as Recovery Gets Underway 91C. Develop Relationships with Media to Accurately Disseminate Information and Engage in Reputational Damage Limitation 92Summary 92Chapter Quiz 93Essential Reading for Developing a Continuity of Operations Plan 94CHAPTER 5 SUPPLY CHAIN RISK MANAGEMENT 95Introduction 96I. NIST Special Publication 800-161 96II. Software Bill of Materials 97III. NIST Revised Framework Incorporates Major Supply Chain Category 98A. Identify, Establish, and Assess Cyber Supply Chain Risk Management Processes and Gain Stakeholder Agreement 98B. Identify, Prioritize, and Assess Suppliers and Third-Party Partners of Suppliers 99C. Develop Contracts with Suppliers and Third-Party Partners to Address Your Organization’s Supply Chain Risk Management Goals 100D. Routinely Assess Suppliers and Third-Party Partners Using Audits, Test Results, and Other Forms of Evaluation 101E. Test to Make Sure Your Suppliers and Third-Party Providers Can Respond to and Recover from Service Disruption 102Summary 103Chapter Quiz 103Essential Reading for Supply Chain Risk Management 104CHAPTER 6 MANUFACTURING AND INDUSTRIAL CONTROL SYSTEMS SECURITY 105Essential Reading on Manufacturing and Industrial Control Security 110Appendix A: Helpful Advice for Small OrganizationsSeeking to Implement Some of the Book’s Recommendations 111Appendix B: Critical Security Controls Version 8.0 Mapped to NIST CSF v1.1 113Answers to Chapter Quizzes 121Index 131
Diagnosis and Fault-tolerant Control 1
This book presents recent advances in fault diagnosis strategies for complex dynamic systems. Its impetus derives from the need for an overview of the challenges of the fault diagnosis technique, especially for those demanding systems that require reliability, availability, maintainability and safety to ensure efficient operations. Moreover, the need for a high degree of tolerance with respect to possible faults represents a further key point, primarily for complex systems, as modeling and control are inherently challenging, and maintenance is both expensive and safety-critical.Diagnosis and Fault-tolerant Control 1 also presents and compares different diagnosis schemes using established case studies that are widely used in related literature. The main features of this book regard the analysis, design and implementation of proper solutions for the problems of fault diagnosis in safety critical systems. The design of the considered solutions involves robust data-driven, model-based approaches. VICENC PUIG is Professor of Automatic Control at the Universitat Politècnica de Catalunya (UPC), Spain. He has published more than 80 journal articles and more than 350 articles in international conference/workshop proceedings related to diagnosis and faulttolerant control.SILVIO SIMANI is Professor of Automatic Control in the Engineering Department of Ferrara University, Italy. He has published about 260 journal and conference papers, several book chapters and four monographs on fault diagnosis and sustainable control topics.Introduction ixVicenç Puig and Silvio SimaniCHAPTER 1 MATHEMATICAL MODELING AND FAULT DESCRIPTION 1Silvio Simani1.1. Introduction 11.2. Model-based FDI techniques 21.3. Modeling of faulty systems 31.3.1. Fault modeling and description 51.3.2. Mathematical description 61.4. Residual generation 111.5. Residual generation techniques 141.5.1. Residual generation via parameter estimation 151.5.2. Observer-based approaches 181.5.3. Fault detection via parity equations 241.6. Change detection and symptom evaluation 281.7. Residual generation robustness problem 301.7.1. FDI H∞ approach 321.7.2. Active and passive disturbance decoupling 351.8. Fault diagnosis technique integration 361.8.1. Fuzzy logic for residual generation 371.8.2. Neural networks for fault diagnosis 381.8.3. Neuro-fuzzy approaches to FDI 401.8.4. Fault detectability and isolability 421.8.5. NF model structure identification 431.8.6. NF residual generation for FDI 441.9. Conclusion 461.10. References 47CHAPTER 2 STRUCTURAL ANALYSIS 57Mattias Krysander and Erik Frisk2.1. Introduction 572.2. Background 582.2.1. Structural models 582.2.2. Dulmage–Mendelsohn decomposition and matchings 602.2.3. Dulmage–Mendelsohn decomposition and simulation 632.3. Fault isolability analysis 642.3.1. Fault detectability analysis 642.3.2. Fault isolability analysis 652.3.3. Canonical isolability decomposition of the overdetermined part 672.4. Testable submodels 692.4.1. Basic definitions 692.4.2. MSO algorithm 712.4.3. Residual generation based on matching 722.5. Sensor placement 742.5.1. The basic sensor placement problem 742.5.2. A structural approach 752.6. Summary and discussion 802.7. References 81CHAPTER 3 SET-BASED FAULT DETECTION AND ISOLATION 83Ye Wang and Vicenç Puig3.1. Introduction 833.2. Notations, definitions and properties 843.3. Problem statement 863.3.1. Uncertain discrete-time linear systems 863.3.2. Set-based methods 863.3.3. FDI problem statement 883.4. Proposed techniques 893.4.1. Set-membership approach 893.4.2. Zonotopic observer 903.4.3. Relationship between set-based methods 913.5. Design methods 923.5.1. Robustness conditions 923.5.2. Fault sensitivity condition 963.6. Fault detection and isolation procedures 993.6.1. Fault detection 993.6.2. Fault isolation 1003.7. Application example: quadruple-tank system 1013.7.1. Results with robustness condition 1053.7.2. Results with robustness and fault sensitivity conditions 1053.8. Conclusion 1053.9. References 109CHAPTER 4 DIAGNOSIS OF STOCHASTIC SYSTEMS 111Gregory Provan4.1. Introduction 1114.2. Stochastic diagnosis task 1134.2.1. Notation 1134.2.2. Problem formulation 1134.2.3. Representing uncertainty 1154.3. Inference methods for diagnosis task 1164.3.1. Difference with other tasks 1164.4. Model-based approach 1174.4.1. Traditional FDD methods 1174.4.2. Bayesian inversion/filtering 1204.5. Data-driven approaches 1224.5.1. ML methods 1234.5.2. Statistical methods 1244.6. Hybrid approaches: surrogate methods 1254.6.1. Fitting surrogate models via sampling 1254.7. Comparative analysis of approaches 1264.8. Summary and conclusions 1274.9. References 128CHAPTER 5 DATA-DRIVEN METHODS FOR FAULT DIAGNOSIS 131Silvio Simani5.1. Introduction 1315.2. Models for linear system fault diagnosis 1335.3. Parameter estimation methods for fault diagnosis 1355.3.1. Data-driven method in ideal conditions 1355.3.2. Data-driven methods in real scenarios 1385.3.3. Algebraic Frisch scheme 1395.3.4. Dynamic Frisch scheme 1415.3.5. MIMO case Frisch scheme 1455.4. Nonlinear dynamic system identification 1465.4.1. Piecewise affine model 1475.4.2. Hybrid model structure 1485.4.3. Nonlinear system approximation 1495.4.4. Model continuity and domain partitioning 1515.4.5. Local affine model estimation 1545.4.6. Multiple-model estimation 1585.5. Fuzzy data-driven approach to fault diagnosis 1645.5.1. Fuzzy model identification 1655.5.2. Takagi–Sugeno prototypes 1675.5.3. Data-driven fuzzy modeling 1705.5.4. Clustering methods 1705.5.5. Fuzzy c-means clustering algorithms 1725.5.6. Gustafson–Kessel clustering algorithm 1745.5.7. Optimal number of clusters 1765.6. Fuzzy model identification 1765.6.1. Nonlinear model identification 1785.6.2. Product space clustering identification 1815.6.3. Fuzzy clustering model identification 1835.6.4. Antecedent membership function estimation 1835.6.5. Estimating consequent parameters 1855.7. Conclusion 1895.8. References 189CHAPTER 6 THE ARTIFICIAL INTELLIGENCE APPROACH TO MODEL-BASED DIAGNOSIS 197Belarmino Pulido, Carlos J. Alonso-González and Anibal Bregon6.1. Introduction 1976.2. Case studies 1996.3. Knowledge-based diagnosis systems 2016.3.1. Diagnosis task and system model 2036.3.2. Diagnosis of physical devices 2066.3.3. Limits of KBS for diagnosis of physical devices 2076.4. Model-based diagnosis 2086.4.1. Formalization of consistency-based diagnosis and its first implementation, GDE 2096.5. CBD for dynamic systems 2176.5.1. Different approaches for CBD of dynamic systems 2196.5.2. PCs for the three-tank system case study 2226.6. Conclusion 2246.7. References 226List of Authors 231Index 233Summary of Volume 2 237
The Tactile Internet
The Tactile Internet will change the landscape of communication by introducing a new paradigm that enables the remote delivery of haptic data.This book answers the many questions surrounding the Tactile Internet, including its reference architecture and adapted compression methods for conveying haptic information. It also describes the key enablers for deploying the applications of the Tactile Internet.As an antecedent technology, the IoT is tackled, explaining the differences and similarities between the Tactile Internet, the Internet of Things and the Internet of Everything. The essentials of teleoperation systems are summarized and the challenges that face this paradigm in its implementation and deployment are also discussed.Finally, a teleoperation case study demonstrating an application of the Tactile Internet is investigated to demonstrate its functionalities, architecture and performance. TARA ALI-YAHIYA is Associate Professor at Paris-Saclay University, France. She is deputy head of the Networking & Stochastic and Combinatorial Optimization Team at LISN Laboratory. She has an HDR, PhD and MSc in Telecommunications and was a post-doctoral researcher at Telecom SudParis.WRYA MONNET is a faculty member of the CSE department at the University of Kurdistan Hewler, Iraq. He has 23 years of experience in industry and academia and has done post-doctoral research at Telecom SudParis, France. He worked as an R&D and embedded software engineer for 10 years.Foreword xiIan F. AkyildizPreface xiiiTara Ali-Yahiya and Wrya MonnetList of Acronyms xvCHAPTER 1 INTRODUCTION TO TACTILE INTERNET 1Tara Ali-Yahiya1. 1. Human perception and Tactile Internet 21. 2. The roadmap towards Tactile Internet 31. 3. What is Tactile Internet? 51. 4. Cyber-Physical Systems and TI 71. 4. 1. Physical world 71. 4. 2. Internet of Things 71. 4. 3. Communication 71. 4. 4. Storage and computation 81. 4. 5. Feedback 81. 4. 6. Smart computing 101. 5. References 11CHAPTER 2 REFERENCE ARCHITECTURE OF THE TACTILE INTERNET 13Tara Ali-Yahiya2. 1. Tactile Internet system architecture 132. 2. IEEE 1918. 1 use cases 152. 2. 1. Teleoperation 162. 2. 2. Automotive 172. 2. 3. Immersive virtual reality (IVR) 172. 2. 4. Internet of drones 182. 2. 5. Inter personal communication 182. 2. 6. Live haptic-enabled broadcast 192. 2. 7. Cooperative automated driving 192. 3. Conclusion 202. 4. References 20CHAPTER 3 TACTILE INTERNET KEY ENABLERS 21Tara Ali-Yahiya3. 1. Introduction 213. 1. 1. The fifth-generation system architecture 213. 1. 2. Network slicing 233. 1. 3. Network function virtualization 253. 1. 4. Software-defined networking 263. 1. 5. Edge computing 273. 1. 6. Artificial intelligence 293. 2. Conclusion 313. 3. References 31CHAPTER 4 6G FOR TACTILE INTERNET 35Pinar Kirci and Tara Ali-Yahiya4. 1. Introduction 354. 2. Thearchitectureof6G 374. 2. 1. Networkperformanceof6G 384. 2. 2. Space network 394. 2. 3. Air network 404. 2. 4. Ground network 404. 2. 5. Underwater network 414. 3. 6G channel measurements and characteristics 414. 3. 1. Optical wireless channel 414. 3. 2. Unmanned aerial vehicle (UAV) channel 424. 3. 3. Underwater acoustic channel 434. 3. 4. Satellite channel 434. 3. 5. RFandterahertznetworksin6G 454. 3. 6. Visible light communication technology 484. 3. 7. Orbital angular momentum technology 484. 4. 6GcellularInternetofThings 494. 5. Energy self-sustainability (ESS) in 6G 504. 6. IoT-integrated ultra smart city life 524. 7. AI-enabled6Gnetworks 554. 8. AI- and ML-based security management in super IoT 594. 9. Securityfor6G 604. 10. The WEAFMnecosystem (water, earth, air, fire micro/nanoecosystem) with 6G and Tactile Internet 614. 11. References 63CHAPTER 5 IOT, IOE AND TACTILE INTERNET 65Wrya Monnet5. 1. From M2MtoIoT 665. 2. Classification of remote monitoring and control systems 665. 3. IoT-enabling technologies 675. 3. 1. IoT hardware 675. 3. 2. IoT software 675. 3. 3. IoT connectivity 675. 4. Architectural design and interfaces 685. 5. IoT communication protocols 715. 5. 1. Message Queuing Telemetry Transport (MQTT) 725. 5. 2. Constrained Application Protocol (CoAP) 745. 5. 3. Data Distribution Service for real-time systems (DDS) 765. 5. 4. Open Mobile Alliance Device Management (OMA-DM) 795. 6. Internet of Everything (IoE) 805. 6. 1. Enabling technologies for the IoE 815. 7. Protocol comparisons and the readiness for TI 825. 8. TI-IoT models and challenges 835. 9. Edge computing in the IoT 855. 9. 1. Edge computing paradigms 865. 10. Real-time IoT and analytics versus real time in TI 885. 11. From IoT towardsTI 885. 12. Conclusion 905. 13. References 91CHAPTER 6 TELEROBOTICS 95Wrya Monnet6. 1. Introduction 956. 2. Teleoperation evolution to telepresence 966. 3. Tele presence applications 976. 4. Teleoperation system components 996. 4. 1. Master domains 1026. 4. 2. Network domain (communication channel) 1026. 4. 3. Slave domain 1026. 5. Architecture of bilateral teleoperation control system 1036. 5. 1. Classification of the control systems architectures 1066. 5. 2. Discrete architecture with transmission delay 1076. 6. Performance and transparency of telepresence systems 1106. 6. 1. Passivity and stability 1106. 6. 2. Time delay issues 1126. 7. Other methods for time-delay mitigation 1166. 8. Teleoperation over the Internet 1176. 9. Multiple access to a teleoperation system 1196. 10. A use case 1216. 11. Conclusion 1226. 12. References 122CHAPTER 7 HAPTIC DATA: COMPRESSION AND TRANSMISSION PROTOCOLS 127Wrya Monnet7. 1. Introduction 1277. 2. Haptic perception 1287. 2. 1. Human haptic perception 1287. 2. 2. Telerobotic tactile and haptic perception 1287. 2. 3. Tactile sensing for material recognition 1297. 2. 4. Tactile sensing for object shape recognition 1307. 2. 5. Tactile sensing for pose estimation 1317. 3. Haptic interfaces 1337. 3. 1. Haptic interface for tele presence 1337. 3. 2. Haptic and tactile sensors and actuators 1357. 4. Haptic compression 1397. 5. Haptic transport protocols 1427. 5. 1. Application layer protocols 1437. 5. 2. Transport layer protocols 1467. 6. Multi-transport protocols 1497. 7. Haptic transport protocol performance metrics 1497. 8. Conclusion 1507. 9. References 150CHAPTER 8 MAPPING WIRELESS NETWORKED ROBOTICS INTO TACTILE INTERNET 155Nicola Roberto Zema and Tara Ali-Yahiya8. 1. Wireless networked robots 1558. 2. WNR traffic requisites 1588. 2. 1. Types of traffic in WNRs 1588. 3. Traffic shaping and TI haptic codecs 1608. 3. 1. Introduction 1618. 3. 2. Mapping WNR control traffic to TI 1618. 4. WNRs in the Tactile Internet architecture 1648. 4. 1. WNRs in the TI architecture and interfaces 1658. 5. Conclusion 1698. 6. References 170CHAPTER 9 HOIP OVER 5G FOR TACTILE INTERNET TELEOPERATION APPLICATION 173Tara Ali-Yahiya, Wryamonnet and Bakhtiar M. Amin9. 1. Relatedworks 1749. 2. 5G architecture design for Tactile Internet 1799. 2. 1. Tactile edge A 1809. 2. 2. Network domain 1829. 2. 3. Protocol stack of 5G integration with IEEE 1918. 1 1829. 3. HapticsoverIP 1839. 4. Teleoperationcasestudy 1859. 4. 1. Master to slave (uplink) data rate in edge A 1879. 4. 2. Slave to master (downlink) data rate in edge B 1879. 4. 3. Encapsulating the haptic data in HoIP 1889. 4. 4. 5G network data and control handling 1889. 4. 5. Case study operational states 1909. 4. 6. Case study protocol stack 1919. 5. Simulationresults 1929. 5. 1. Simulation topology 1939. 5. 2. NS3networkarchitecture 1949. 5. 3. Simulation scenario 1969. 5. 4. Simulation results 1989. 6. Conclusion 2039. 7. References 203CHAPTER 10 ISSUES AND CHALLENGES FACING LOW LATENCY IN THE TACTILE INTERNET 209Tara Ali-Yahiya10. 1. Introduction 20910. 1. 1. Technical requirements for the TI 21110. 2. Low latency in the Tactile Internet 21210. 2. 1. Resource allocation 21210. 2. 2. Mobile edge computing 21310. 2. 3. Network coding 21410. 2. 4. Haptic communication protocols 21410. 3. Intelligence and the Tactile Internet 21610. 4. Edge intelligent 21610. 5. Openissues 21910. 6. Conclusion 22010. 7. References 221List of Authors 227Index 229
Coole Spiele mit Scratch 3 (2. Auflg.)
Mit Videospielen programmieren lernen – ohne Code zu schreiben! 2. überarbeitete und aktualisierte Auflage.Scratch, die farbenfrohe Drag-and-drop-Programmiersprache, wird auf der ganzen Welt von Millionen von Anfängern verwendet, und die zweite Ausgabe von »Coole Spiele mit Scratch« wurde jetzt vollständig aktualisiert. Die Verwendung mit Scratch 3 macht es einfacher denn je, deine Programmierfähigkeiten Block für Block aufzubauen. Du lernst spielerisch zu programmieren, indem du Videospiele erschaffst, in denen beim Katzenwerfen ins Schwarze getroffen, Asteroiden zerstört und ein KI-Feind überlistet werden können. Mit Scratch 3 geht das jetzt auch auf Mobilgeräten und dem Raspberry Pi – und immer ganz ohne Installation.»Coole Spiele mit Scratch 3« leitet Kinder und Programmierneulinge zum Programmieren an. Beispiele und Sprache des Buches sind leichtverständlich gehalten; für Kinder in den ersten Grundschulklassen wird empfohlen, die Kapitel gemeinsam mit Älteren durchzugehen.In jeden Kapitel wirst du ein Spiel erstellen und dabei die wichtigsten Programmierkonzepte kennenlernen und direkt anwenden. Von einer Skizze, die festlegt, wie das Spiel aussehen soll, führt eine Schritt-für-Schritt-Anleitung zum funktionierenden Videospiel. Diese Spiele kannst du nach eigenen Vorstellungen gestalten, indem du spezielle Funktionen, zusätzliche Level und sogar Cheat-Modi hinzufügst.Zu den Programmierbeispielen gehören Spiele wie z.B.:Maze Runner, mit acht verschiedenen Levels, durch die man entkommen mussKörbewerfen unter Schwerkraftbedingungen (und mit Katzen!), inklusive realistischer FlugbahnEin Brick-Breaker-Spiel mit Animationen und Soundeffekten von simpel bis edelAsteroidenknacker, ein Klon des klassischen Asteroids-Spiels mit einem tastaturgesteuertem RaumschiffEin Mario-Bros.-ähnliches Jump-&-Run-Spiel mit viel Action und KI-gesteuerten FeindenEs ist nie zu früh (oder zu spät), mit dem Programmieren anzufangen, und »Coole Spiele mit Scratch 3« macht den Lernprozess nicht nur lustig – es lässt die Programmiererinnen und Coder in spe auch ein Spiel daraus machen!Über den Autor:Al Sweigart ist Softwareentwickler und vermittelt Coding-Kenntnisse an Erwachsene und Kinder. Er hat mehrere Programmierlehrbücher für Einsteiger (und auch solche für Fortgeschrittene) geschrieben, unter anderem Routineaufgaben mit Python automatisieren, das ebenfalls bei dpunkt erschienen ist.
Das iPad-Buch für Senioren (3. Auflg.)
Wegweiser durch den Fachbegriff-Dschungel* Klare, verständliche Sprache* Fachbegriffe werden erläutert* Ausführliche Beispiele zu typischen AnwendungenTablet-Computer sind wegen ihrer einfachen Handhabung und vielfältigen Einsatzmöglichkeiten beliebt. Z.B. Videotelefonate mit den Enkeln haben in den Corona-Monaten für viele einen besonderen Stellenwert erlangt. Apples iPads stehen im Ruf, verlässlich zu sein, nicht so schnell zu veralten und durch ihr Design zu überzeugen. Der Umgang ist allerdings für viele nicht selbst erklärend. Gerade erste Versuche können so schnell zu einer Enttäuschung werden.Phillip Kiefer hat auch die dritte Auflage seiner bewährten Anleitung zu Apples Tablet überarbeitet und aktualisiert. Das Buch bahnt für Sie einen Weg durch den Fachbegriff-Dschungel und erläutert die Bedienung und die Funktionen der Apple-Tablets. Die Standard-Programme der iPads erklärt der Autor Ihnen mit anschaulichen Beispielen: So lernen Sie beispielsweise "Fotos" kennen, das Programm zum Betrachten, Bearbeiten, Ordnen und Versenden Ihrer Bilder. Sie erfahren, wie Sie Dokumente und Daten in der iCloud, Apples Datenspeicher im Internet, ablegen. Auch erklärt das Buch, wie Sie Ihre Passwörter einfach, aber geschützt handhaben, und vieles mehr.Erläuterungen und Bilder sind auf das neue iPadOS 15 aktualisiert.Philip Kiefer, geboren in Friedrichshafen am Bodensee, studierte Literaturwissenschaften und Philosophie in Tübingen und Oxford. Nebenher jobbte er in verschiedenen Verlagen sowie in einem Altenpflegeheim. Ende 2001 machte er sich als Autor selbstständig und hat bis heute über 150 Bücher in namhaften Verlagen veröffentlicht, darunter zahlreiche Computerbücher speziell für Senioren.
Handbuch Infrastructure as Code (2. Auflg.)
Prinzipien, Praktiken und Patterns für eine cloudbasierte IT-Infrastruktur In diesem praktischen Handbuch beschreibt Kief Morris von ThoughtWorks, wie Sie Ihre IT-Infrastruktur im Cloud-Zeitalter erfolgreich aufsetzen und betreiben. Sie erfahren, wie Sie hierfür die von zahlreichen DevOps-Teams entwickelten und erprobten Prinzipien, Praktiken und Patterns nutzen können. Diese aktualisierte Auflage wendet sich an Mitarbeitende in der Systemadministration, Infrastruktur- und Softwareentwicklung, Teamleitung und Architekturabteilung von Unternehmen. Kief Morris zeigt Ihnen, wie Sie Cloud- und Automatisierungs-Technologien einsetzen, um Änderungen einfach, sicher, schnell und verantwortungsvoll vorzunehmen. Sie lernen, wie Sie alles als Code definieren und Praktiken aus dem Softwaredesign und der Entwicklung einsetzen, um Ihr System aus kleinen und lose gekoppelten Elementen aufzubauen. Zielgruppe: Mitarbeiter*innen in Systemadministration, Softwareentwicklung und -architektur Autor:Kief Morris ist Global Director of Cloud Engineering bei ThoughtWorks.Er unterstützt Teams dabei, Cloud- und Infrastrukturtechnologien so einzusetzen, dass Unternehmen mit ihnen schnell und zuverlässig einen größeren Mehrwert schaffen können. Kief entwirft, baut und betreibt seit über 20 Jahren automatisierte IT-Server-Infrastrukturen. Angefangen hat er mit Shell-Skripten und Perl, später ist er auf CFengine, Puppet, Chef und Terraform und andere Technologien umgestiegen.
NSX-T Logical Routing
This book is a one-stop guide for IT professionals with a background in traditional and software-defined networks looking to expand or hone their skill set and has been developed through a combination of extensive research and testing in both development and production environments. It provides reliable information on a fundamental component of NSX-T, logical routing.A comprehensive understanding of this capability will help IT professionals with design, implementation, troubleshooting, and enhancements.The book starts with an introduction to the foundational components of the NSX-T platform and how NSX-T fits into the software-defined data center. The focus then moves to tunnel endpoints, which is a critical aspect of the NSX-T platform, and the differences between overlays and underlays are explained. Once the basics are covered, it provides a detailed description of how NSX-T components communicate.Next, the book introduces logical routing and its components and provides a better understanding of how these components function with one another. Several packet walks are illustrated to explain NSX-T logical routing behavior in different scenarios. After mastering logical routing, it explains how NSX-T ensures data plane availability, which is explored at various layers of NSX-T.Finally, the book explores the concepts and intricacies of routing into and out of the NSX-T environment. It deep dives into utilizing the Border Gateway Protocol (BGP), Open Shortest Path First (OSPF), and Static Routing.WHAT YOU WILL LEARN* Know how VMware NSX-T endpoints communicate* Understand how NSX-T logical routing works* Know how NSX-T provides high availability for the data plane* Understand how NSX-T operates with static and dynamic routing protocols* Configure the platformWHO THIS BOOK IS FORReaders with an intermediate to advanced skill set who wish to further their knowledge, those who focus on datacenter technology, those planning to move to a software-defined datacenter to transform the way their current datacenter works, and anyone looking to learn about VMware NSX-T and how it operatesSHASHANK MOHAN (Shank) is the ANZ Professional Services Practice Lead for Networking at VMware. He brings over a decade of experience in IT infrastructure and architecture, with a specialization in networking, virtual cloud networking (VCN), and VMware Cloud Foundation (VCF).Shank is a VMware Advanced Professional in Network Virtualization, a vExpert in NSX and Security, and NSX Advanced Load Balancer (AVI), he is also CISCO and AWS certified.Shank was born and raised in Sydney, Australia but now prefers the calm and cold capital city, Canberra. Between firmware upgrades and breaking his home lab, he makes time for weightlifting, gardening, and most importantly, his family. While Shank is a first-time author, he is a serial blogger. If you’d like to get in touch or continue to learn about virtualization, look up https://www.lab2prod.com.au/.Chapter 1: IntroductionThe Modern-Day Software-Defined Data CenterSoftware-Defined Datacenter ArchitectureVMware NSX-T: SDDC NetworkingThe Basics of NSX-TSummaryChapter 2: Tunnel EndpointsOverlay NetworkingNSX-T Transport Node CommunicationTransport Node TypesWhat Is a Tunnel Endpoint?Tunnel Endpoint CommunicationRouted Transport VLANsTunnel Endpoint ConfigurationTunnel Endpoint FailureSummaryChapter 3: Remote Tunnel EndpointsA Solution for Multiple SitesNSX-T Federation ComponentsSummaryChapter 4: Logical RoutingWhat Is Logical Routing?NSX-T Logical ComponentsLogical Routing ArchitecturePacket Flow Within the NSX-T FabricSummaryChapter 5: Data Plane AvailabilityEdge Cluster Deployment ConsiderationsEdge Failure TypesBidirectional Forwarding Detection (BFD)Equal Cost Multipathing (ECMP)SummaryChapter 6: Datacenter RoutingChapter ObjectivesCommunication with the Physical NetworkNSX-T and BGPNSX-T and OSPFNSX-T and Static RoutingDeterministic PeeringBidirectional Forwarding Detection (BFD)Unicast Reverse Path Forwarding (uRPF)Summary
Introducing Blockchain Applications
Deepen your understanding of blockchain technology and develop your own blockchain applications. This book provides a thorough review of distribution-based systems on blockchain technology, starting from the fundamental concepts that underlie it, all the way through the implementation of a blockchain network for business purposes.Author JOSEPH THACHIL GEORGE begins by introducing you to blockchain and some basic concepts of technology, including distributed systems, systems of systems, cyber-physical systems, the Byzantine Consensus, the CAP theorem, and cryptographic techniques. Next, he analyzes the structure of blocks and smart contracts and the mother of all blockchain platforms, Bitcoin. That sets the stage for an examination of transaction structure, validation, and flow, from creation to registration in the ledger and structure of the blocks, the Nakamoto consensus, and finally forks. From there, you’ll experience a deep dive into Ethereum; including the concepts of Gas and Message, smart contracts and the Ethereum virtual machine. From there, you’ll learn about the Ethereum consensus protocol, Ethereum Casper, and the Ethereum Proof-of-Stake algorithm. You’ll then see how blockchain can be connected to a distributed system, followed by a demonstration of how you can model a distributed system using Blockly4SoS and Kilobots. The concluding chapters offer a practical example that combines distributed systems with blockchain technology.After reading this book, you will understand how to implement blockchain technology in a distributed system and be able to leverage this knowledge in your own projects.WHAT YOU WILL LEARN* Learn the concept of blockchains by way of a practical example * Grasp the connection between distributed systems and blockchain technology* Learn the design of blockchain with hyperledger fabric* Learn the design of cyber-physical systems in a distributed environment WHO IS THIS BOOK FORDevelopers who are enthusiastic about the design and implementation of distributed systems.Joseph Thachil George is a Technical Consultant for International Game Technology (IGT), Rome, Italy. Additionally, Joseph is pursuing doctorate (PhD) in Computer Science and Engineering at the University of Lisbon, Portugal. He has completed M.S. in Cyber Security from the Università degli Studi di Firenze, Italy. In addition, he is also part of the research group (DISIA) of the University of Florence, Italy, and the research group (INESC-ID Lisbon) of the University of Lisbon, Portugal. His research interests cover dynamic malware analysis, Blockchain technology - hyperledger fabric, and cyber security. In IGT, he has been a part of various project related to game configuration and integration in various platform. Specialized in Java and spring boot-based projects. He has also worked in various companies in India, Angola, Portugal, and UK; he has seven years of experience in various IT companies.1: INTRODUCING BLOCKCHAIN APPLICATIONS THROUGH DISTRIBUTED SYSTEMS2: INTRODUCTION TO BLOCKCHAIN3: BITCOIN4: ETHEREUM5: PROOF OF STAKE: CONSENSUS OF THE FUTURE6: HYPERLEDGER FABRIC7: CONSENSUS ALGORITHMS FOR BLOCKCHAINS8: SAMPLE PROJECT EXERCISE: CONSENSUS ALGORITHMS FOR BLOCKCHAINS9: REAL-TIME SYSTEMS10: SCHEDULING IN REAL-TIME SYSTEMS11: ENGINEERING BASED ON MODELS12: BLOCKLY 4 SOS13: PROJECT: CYBER PHYSICAL SYSTEMS14: PROJECT USING MATLAB: SMART FARM15: PLATOON PROJECT16: BLOCKCHAIN TECHNOLOGY AND DISTRIBUTED SYSTEMS FUTURE SCOPE AND B-COIN PROJECT17: AI AND BLOCKCHAIN: MONITORING AUTONOMOUS VEHICLES MANAGEMENT PROJECT18: SUMMARY
Office 365 All-in-One For Dummies
MULTIPLY YOUR PRODUCTIVITY WITH THE WORLD'S MOST STRAIGHTFORWARD GUIDE TO THE WORLD'S MOST POPULAR OFFICE SOFTWAREMicrosoft Office 365 contains straightforward tools for virtually every office task you could possibly think of. And learning how to use this powerful software is much easier than you might expect! With the latest edition of Office 365 All-in-One For Dummies, you'll get a grip on some of the most popular and effective office software on the planet, including Word, Excel, PowerPoint, Outlook, Access, Publisher, and Teams. This expanded handbook walks you through the ins and outs of reviewing and composing documents with Word, hosting and joining meetings with Teams, crunching numbers with Excel, and answering emails with Outlook. And it's ideal for anyone who's brand new to Office and those who just need a quick refresher on the latest useful updates from Microsoft. In this one-stop reference, you'll find:* Step-by-step instructions on the installation, maintenance, and navigation of all the critical components of Office 365* Guidance for using Office 365's built-in online and cloud functionality* Complete explanations of what every part of Office 365 is used for and how to apply them to your lifeOffice 365 All-in-One For Dummies is the last handbook you'll ever need to apply Microsoft's world-famous software suite to countless everyday tasks. PETER WEVERKA is a veteran tech writer who has written dozens of Dummies titles, including the first edition of Office 365 All-in-One For Dummies. He has also authored books on PowerPoint, OneNote, Word, and Quicken.Introduction 1BOOK 1: COMMON OFFICE TASKS 5Chapter 1: Office Nuts and Bolts 7Chapter 2: Wrestling with the Text 29Chapter 3: Speed Techniques Worth Knowing About 49BOOK 2: WORD 365 57Chapter 1: Speed Techniques for Using Word 59Chapter 2: Laying Out Text and Pages 79Chapter 3: Word Styles 105Chapter 4: Constructing the Perfect Table 123Chapter 5: Taking Advantage of the Proofing Tools 147Chapter 6: Desktop Publishing with Word 167Chapter 7: Getting Word’s Help with Office Chores 185Chapter 8: Tools for Reports and Scholarly Papers 205BOOK 3: EXCEL 365 229Chapter 1: Up and Running with Excel 231Chapter 2: Refining Your Worksheet 249Chapter 3: Formulas and Functions for Crunching Numbers 265Chapter 4: Making a Worksheet Easier to Read and Understand 299Chapter 5: Advanced Techniques for Analyzing Data 317BOOK 4: POWERPOINT 365 337Chapter 1: Getting Started in PowerPoint 339Chapter 2: Fashioning a Look for Your Presentation 361Chapter 3: Entering the Text 377Chapter 4: Making Your Presentations Livelier 393Chapter 5: Delivering a Presentation 409BOOK 5: OUTLOOK 365 431Chapter 1: Outlook Basics. 433Chapter 2: Maintaining the People App 445Chapter 3: Handling Your Email 457Chapter 4: Managing Your Time and Schedule 479BOOK 6: ACCESS 365 491Chapter 1: Introducing Access 493Chapter 2: Building Your Database Tables 509Chapter 3: Entering the Data 537Chapter 4: Sorting, Querying, and Filtering for Data 547Chapter 5: Presenting Data in a Report 567BOOK 7: PUBLISHER 365 573Chapter 1: Introducing Publisher 575Chapter 2: Refining a Publication 587Chapter 3: Putting on the Finishing Touches 599BOOK 8: WORKING WITH CHARTS AND GRAPHICS 609Chapter 1: Creating a Chart 611Chapter 2: Making a SmartArt Diagram 631Chapter 3: Handling Graphics and Photos 651Chapter 4: Drawing and Manipulating Lines, Shapes, and Other Objects 667BOOK 9: OFFICE 365: ONE STEP BEYOND 701Chapter 1: Customizing an Office Program 703Chapter 2: Ways of Distributing Your Work 717BOOK 10: MICROSOFT TEAMS 725Chapter 1: Getting around in Teams 727Chapter 2: Getting Up to Speed with Teams and Channels 753Chapter 3: Communicating through Channels and Private Chat 769Chapter 4: Organizing Your Files in Teams 793Chapter 5: Getting Together for Online Meetings 809BOOK 11: FILE SHARING AND COLLABORATING 835Chapter 1: File Sharing and Collaborating 837Chapter 2: Making the Most of OneDrive 851Chapter 3: Collaborating in SharePoint 865Index 895