Programmierung
Getting Started with Containers in Google Cloud Platform
Deploy, manage, and secure containers and containerized applications on Google Cloud Platform (GCP). This book covers each container service in GCP from the ground up and teaches you how to deploy and manage your containers on each service.You will start by setting up and configuring GCP tools and the tenant environment. You then will store and manage Docker container images with GCP Container Registry (ACR). Next, you will deploy containerized applications with GCP Cloud Run and create an automated CI/CD deployment pipeline using Cloud Build. The book covers GCP’s flagship service, Google Kubernetes Service (GKE), and deployment of a Kubernetes cluster using clear steps and considering GCP best practices using the GCP management console and gcloud command-line tool. Also covered is monitoring containers and containerized applications on GCP with Cloud Monitoring, and backup and restore containers and containerized applications on GCP.By the end of the book, you will know how to get started with GCP container services and understand the fundamentals of each service and the supporting services needed to run containers in a production environment. This book also assists you in transferring your skills from AWS and Azure to GCP using the knowledge you have acquired on each platform and leveraging it to gain more skills.WHAT YOU WILL LEARN* Get started with Google Cloud Platform (GCP)* Store Docker images on GCP Container Registry * Deploy Google Kubernetes Engine (GKE) cluster* Secure containerized applications on GCP* Use Cloud Build to deploy containers * Use GCP Batch for batch job processing on KubernetesWHO THIS BOOK IS FORGoogle Cloud administrators, developers, and architects who want to get started and learn more about containers and containerized applications on Google Cloud Platform (GPC)SHIMON IFRAH is an IT professional with 15+ years of experience in the design, management, and deployment of information technology systems and networks. In recent years, he has been specializing in cloud computing and containerized applications on Microsoft Azure, Amazon AWS, and Google Cloud Platform (GCP). He holds more than 20 vendor certificates from Microsoft, AWS, VMware, and Cisco. During his career in the IT industry, he has worked for some of the largest managed services and technology companies in the world, helping them administer systems for the largest enterprises. He is based out of Melbourne, Australia. Chapter 1: Get Started with Google Cloud Platform (GCP)Chapter Goal: Setup and configure GCP tools and tenant environmentNo of pages: 40Sub -Topics1. Set up your Google Cloud Platform (GCP) tenant2. Understanding GCP projects3. Understanding cloud shell4. Secure and manage your GCP account (projects and more)5. GCP Services overviewChapter 2: Store and Manage Docker Container Images with GCP Container Registry (ACR)Chapter Goal: Here we learn how to Store Docker Container images on GCP Container registryNo of pages: 40Sub - Topics1. Setup GCP Container Registry2. Push Docker images to Container Registry3. Pull images from GCP Container Registry4. Manage and secure GCP Container RegistryChapter 3: Deploy Containerized Applications with GCP Cloud RunChapter Goal: This chapter explains how to deploy containers and containerized applications on GCP cloud runNo of pages: 40Sub - Topics:1. Set up GCP cloud run 2. Deploy containers with cloud run3. Use cloud build and git to deploy containers4. Scale containerized applications on cloud run5. Monitor and manage containerized applications on cloud runChapter 4: Deploy Containerized Applications with Google Kubernetes Engine (GKE)Chapter Goal: This chapters explains how to deploy containers and containerized applications with GKENo of pages:Sub - Topics:1. Getting started with GKE2. Setup and configure GKE networking and storage3. Deploy Kubernetes dashboard (Web UI) on GKE4. Manage and secure GKE5. Run Batch jobs on Kubernetes with batch (beta)Chapter 5: Deploy Docker Containers on GCP Compute EngineChapter Goal: This chapter explains how to deploy containers and containerized applications on GCP compute engineNo of pages: 40Sub - Topics:1. Install Docker container host on Ubuntu Linux VM2. Install Docker container host on Windows server 2019 VM3. Deploy containers on GCP compute engine using GCP container-optimized OSChapter 6: Secure your GCP Environment and ContainersChapter Goal: This chanpters explains how to secure and protect containers and containerized applications on GCPNo of pages: 40Sub - Topics:1. Introduction to GCP identify infrastructure2. Setup organization policies3. Roles, service accounts and auditing capabilities4. GCP networking and firewalls configurationChapter 7: Scale Containers and Containerized Applications on GCPChapter Goal: This chapter explains how to scale containers and containerized applications on GCPNo of pages: 40Sub - Topics:1. Scale Google Kubernetes Service (GKE)2. Scale cloud run and cloud build containers3. Scale GCP Container Registry4. Scale compute engine hosts and containersChapter 8: Monitor Containers and Containerized Applications on GCP with Stackdriver MonitoringChapter Goal: Learn how to Monitor Containers and Containerized Applications on GCPNo of pages: 40Sub - Topics:1. Monitor Google Kubernetes Service (GKE)2. Monitor cloud run containers3. Monitor compute engine resources4. GCP cost management and toolsChapter 9: Backup and Restore Containers and Containerized Applications on GCPChapter Goal: This chapter explains how to backup and restore containers and containerized applications on GCPNo of pages: 40Sub - Topics:1. Backup persistent storage disks2. Backup compute engine resources3. Manage cloud storage and file storeChapter 10: Troubleshooting Containers and Containerized Applications on GCPChapter Goal: This chapters explains how to troubleshoot containers and containerized applications issues on GCPNo of pages: 40Sub - Topics:1. Troubleshoot Google Kubernetes Service (GKE)2. Troubleshoot cloud run and cloud build deployments3. Troubleshoot GCP Container Registry5. Troubleshoot compute engine resource
Spiele programmieren mit Unity
* 2D- UND 3D-SPIELE SELBST ENTWICKELN* LANDSCHAFTEN UND GEBÄUDE GESTALTEN SOWIE FIGUREN ANIMIEREN * WICHTIGE C#-PROGRAMMIER-ELEMENTE KENNENLERNEN UND ANWENDENUnity ist eine sehr beliebte Spiele-Engine, mit der du eigene 3D-Spiele entwickeln kannst. Der erfahrene Kids-Autor Hans-Georg Schumann zeigt dir, wie du mit Unity und der Programmiersprache C# schnell zu beeindruckenden Ergebnissen kommst.Schritt für Schritt lernst du, wie du Figuren durch die Welt wandern und auch gegen gefährliche Gegner kämpfen lässt. Du erstellst Landschaften mit Bäumen und Seen, gestaltest und animierst eigene Charaktere, und lernst ganz nebenbei das Programmieren in C#. Das Unity-Partikelsystem erzeugt tolle Effekte mit Licht und Schatten, die dem Spiel das nötige Reality-Gefühl geben. Und alles, was du zum Programmieren deiner Spiele brauchst, findest du auch zum Download.AUS DEM INHALT:* Unity starten und ein erstes kleines Kollisionsspiel erstellen* In die Script-Programmierung mit C# einsteigen* Einen Charakter entwerfen und ihm Eigenschaften geben* Ein Jump & Run-Spiel entwickeln* Das Prinzip von 3D verstehen und die Spielfläche mit Bäumen und Wasser gestalten* Ganze Bauwerke entstehen lassen* Die Figur klettern, schwimmen und sogar tauchen lehren* Eine Fantasie-Kreatur entwerfen und durch Animation lebendig werden lassen* Strahlen, Partikel und Sound einbinden* Künstliche Intelligenz nutzen* Energiekontrolle und andere Features aufrüsten* Installationshilfe und Fehlerbehebung Hans-Georg Schumann war Informatik- und Mathematiklehrer an einer Gesamtschule. Er hat viele erfolgreiche Bücher in der mitp-Buchreihe »... für Kids« geschrieben.
Beginning Java MVC 1.0
Get started with using the new Java MVC 1.0 framework for model, view, and controller development for building modern Java-based web, native, and microservices applications.Beginning Java MVC teaches you the basics, then dives in to models, views, controllers. Next, you learn data binding, events, application types, view engines, and more. You will be given practical examples along the way to reinforce what you have learned. Furthermore, you'll work with annotations, internationalization, security, and deployment.After reading this book, you'll have the know how to build your first full Java-based MVC application.WHAT YOU WILL LEARN* Discover the Java MVC 1.0 APIs and how to use themMaster the Model, View and Controller design pattern * Carry out data binding * Write events* Work with view enginesWHO THIS BOOK IS FORThose new to Java MVC 1.0. Some prior experience with Java programming recommended, especially with JSF or Struts. Peter Späth graduated in 2002 as a physicist and soon afterwards became an IT consultant, mainly for Java-related projects. In 2016 he decided to concentrate on writing books, with his main focus set on software development. With two books about graphics and sound processing and two books for Android and Kotlin programming, his new book addresses beginning Jakarta EE developers willing to develop enterprise-level Java applications with Java EE 8.1. About MVC - Model, View, Controller* History of MVC* MVC in Web Applications* MVC for Java* Finally, Java MVC (JSR-371)* Why MVC* Where is Hello World?2. Prerequisite - Jakarta EE / Java EE* The Nature of Java for Enterprise Applications* Glassfish, a Free Java Server* Using a Preinstalled Java Server* Learning Java for Enterprise Applications* RESTful Services3. Development Workflow* Using Gradle as a Build Framework* Using Eclipse as an IDE* More About Gradle* Developing Using the Console* Installing MVC4. Hello World for Java MVC* Starting The Hello World Project* The Hello World Model* The Hello World View* The Hello World Controller* Using Gradle to Build Hello World* Starting a Jakarta EE Server* Deploying and Testing Hello World5. Start Working With Java MVC* Handling User Input From Forms* Exception Handling in Java MVC* Non-String Post Parameters6. In-Depth Java MVC* The Model* The View: JSPs* The View: Facelets* The Controller7. In-Depth Java MVC - Part II* Injectable Context* Persisating State* Dealing With Page Fragments* Observers* Configuration8. Internationalization* Language Resources* Adding Localized Messages to the Session* Formatting of Data in the View* Using JSF for Formatting* Localized Data Conversion9. Java MVC and EJBs* About Session EJBs* Defining EJBs* Accessing EJBs* EJB Projects* EJBs with Dependencies* Asynchronous EJB Invocation* Timer EJBs10. Connecting Java MVC to a Database* Abstracting Away Database Access With JPA* Setting up a SQL Database* Creating a DataSource* Preparing the Member Registration Application* Adding EclipseLink as ORM* Controllers* Adding Data Access Objects* Updating the View* Adding Entities* Adding Relations11. Logging Java MVC Applications* System Streams* JDK Logging in Glassfish* Using JDK Standard Logging For Other Servers* Adding Log4j Logging to Your Application12. A Java MVC Example Application* The BooKlubb Database* The BooKlubb Eclipse Project* The BooKlubb Infrastructure Classes* Configure BooKlubb Database Access* The BooKlub Internationalization* The BooKlubb Entity Classes* BooKlubb Database Access Via DAOs* The BooKlubb Model* The BooKlubb Controller* The BooKlubb View* Deploying and Testing BooKlubbAppendix* Solutions to The Exercises
Getting Structured Data from the Internet
Utilize web scraping at scale to quickly get unlimited amounts of free data available on the web into a structured format. This book teaches you to use Python scripts to crawl through websites at scale and scrape data from HTML and JavaScript-enabled pages and convert it into structured data formats such as CSV, Excel, JSON, or load it into a SQL database of your choice.This book goes beyond the basics of web scraping and covers advanced topics such as natural language processing (NLP) and text analytics to extract names of people, places, email addresses, contact details, etc., from a page at production scale using distributed big data techniques on an Amazon Web Services (AWS)-based cloud infrastructure. It book covers developing a robust data processing and ingestion pipeline on the Common Crawl corpus, containing petabytes of data publicly available and a web crawl data set available on AWS's registry of open data.GETTING STRUCTURED DATA FROM THE INTERNET also includes a step-by-step tutorial on deploying your own crawlers using a production web scraping framework (such as Scrapy) and dealing with real-world issues (such as breaking Captcha, proxy IP rotation, and more). Code used in the book is provided to help you understand the concepts in practice and write your own web crawler to power your business ideas.WHAT YOU WILL LEARN* Understand web scraping, its applications/uses, and how to avoid web scraping by hitting publicly available rest API endpoints to directly get data* Develop a web scraper and crawler from scratch using lxml and BeautifulSoup library, and learn about scraping from JavaScript-enabled pages using Selenium* Use AWS-based cloud computing with EC2, S3, Athena, SQS, and SNS to analyze, extract, and store useful insights from crawled pages* Use SQL language on PostgreSQL running on Amazon Relational Database Service (RDS) and SQLite using SQLalchemy* Review sci-kit learn, Gensim, and spaCy to perform NLP tasks on scraped web pages such as name entity recognition, topic clustering (Kmeans, Agglomerative Clustering), topic modeling (LDA, NMF, LSI), topic classification (naive Bayes, Gradient Boosting Classifier) and text similarity (cosine distance-based nearest neighbors)* Handle web archival file formats and explore Common Crawl open data on AWS* Illustrate practical applications for web crawl data by building a similar website tool and a technology profiler similar to builtwith.com* Write scripts to create a backlinks database on a web scale similar to Ahrefs.com, Moz.com, Majestic.com, etc., for search engine optimization (SEO), competitor research, and determining website domain authority and ranking* Use web crawl data to build a news sentiment analysis system or alternative financial analysis covering stock market trading signals* Write a production-ready crawler in Python using Scrapy framework and deal with practical workarounds for Captchas, IP rotation, and moreWHO THIS BOOK IS FORPrimary audience: data analysts and scientists with little to no exposure to real-world data processing challenges, secondary: experienced software developers doing web-heavy data processing who need a primer, tertiary: business owners and startup founders who need to know more about implementation to better direct their technical teamJAY M. PATEL is a software developer with over 10 years of experience in data mining, web crawling/scraping, machine learning, and natural language processing (NLP) projects. He is a co-founder and principal data scientist of Specrom Analytics, providing content, email, social marketing, and social listening products and services using web crawling/scraping and advanced text mining.Jay worked at the US Environmental Protection Agency (EPA) for five years where he designed workflows to crawl and extract useful insights from hundreds of thousands of documents that were parts of regulatory filings from companies. He also led one of the first research teams within the agency to use Apache Spark-based workflows for chem and bioinformatics applications such as chemical similarities and quantitative structure activity relationships. He developed recurrent neural networks and more advanced LSTM models in Tensorflow for chemical SMILES generation.Jay graduated with a bachelor's degree in engineering from the Institute of Chemical Technology, University of Mumbai, India and a master of science degree from the University of Georgia, USA. Jay serves as an editor of a publication titled Web Data Extraction and also blogs about personal projects, open source packages, and experiences as a startup founder on his personal site, jaympatel.com.
JavaScript für Kids
Ganz nebenbei lernst du die Bestandteile von JavaScript kennen, so dass Bedingungen, Konstanten, Schleifen und Funktionen deinen Programmierer-Wortschatz im Nu erweitern. Dort, wo es nötig ist, wird auch HTML zur Unterstützung gerufen. Hans-Georg Schumann verrät dir viele Kniffe, um zum guten Programmierer zu werden: Hättest du zum Beispiel gedacht, dass Vererbung im Programm-Code eine Rolle spielt?
Learn Microservices with Spring Boot
Build Java-based microservices architecture using the Spring Boot framework by evolving an application from a small monolith to an event-driven architecture composed of several services. This revised book follows an incremental approach in teaching the structure of microservices, test-driven development, and common patterns in distributed systems such as service discovery, load balancing, routing, centralized logs, per-environment configuration, and containerization.This updated book now covers what's been added to the latest Spring Boot release, including support for the latest Java SE; more deep-dive knowledge on how Spring Boot works; testing with JUnit 5; changes in the Spring Cloud tools used for service discovery and load balancing; building Docker images using cloud-native buildpacks; a basic centralized logging solution; E2E traceability with Sleuth; centralized configuration with Consul; many dependency upgrades; support for Spring Data Neumann; and more.Author Moises Macero uses a pragmatic approach to explain the benefits of using this type of software architecture, instead of keeping you distracted with theoretical concepts. He covers some of the state-of-the-art techniques in computer programming, from a practical point of view. You’ll focus on what's important, starting with the minimum viable product but keeping the flexibility to evolve it.WHAT YOU WILL LEARN* Build microservices with Spring Boot* Discover architecture patterns for distributed systems such as asynchronous processing, eventual consistency, resilience, scalability, and more* Use event-driven architecture and messaging with RabbitMQ* Master service discovery with Consul and load balancing with Spring Cloud Load Balancer* Route requests with Spring Cloud Gateway* Keep flexible configurations per environment with Spring Cloud Consul* Trace every request from beginning to end with Sleuth and centralized logging* Deploy your microservices anywhere as Docker containers* Start all the components in the microservice architecture with Docker ComposeWHO THIS BOOK IS FORThose with at least some prior experience with Java programming. Some prior exposure to Spring Boot recommended but not required.MOISÉS MACERO GARCÍA has been a software developer since he was a kid, when he started playing around with BASIC on his ZX Spectrum. During his career, Moisés has most often worked in development and architecture for small and large projects, and for his own startups as well. He enjoys making software problems simple, and he likes working in teams where he can not only coach others, but also learn from them.Moisés is the author of the blog thepracticaldeveloper.com, where he shares solutions for technical challenges, guides, and his view on different ways of working in IT companies. He also organizes workshops for companies that need a practical approach to software engineering. In his free time, he enjoys traveling and hiking.* Introduction* Core concepts* A basic Spring Boot app* A minimal frontend with React* The data layer* Starting with Microservices* Event-Driven Architecture* Cloud native patterns* End-to-End tests with Cucumber
Python Testing with Selenium
Implement different testing techniques using Selenium WebDriver with the Python programming language. This quick reference provides simple functional test cases with a syntax-based approach for Selenium WebDriver.You’ll begin by reviewing the basics of Selenium WebDriver and its architectural design history and then move on to the configuration and installation of Selenium library for different web browsers, including the basic commands needed to start test scripts in various browsers. You’ll review action commands of keyboard and mouse for testing user interactions in a web page and see how hyperlinks are tested.The book also examines various web elements using eight different locators provided by Selenium to help you choose the one best suited to your needs. All Python scripts are ready to test real examples, all of which are explained thoroughly with problem statements. You’ll use different Python design patterns to automate test scripts that can be incorporated with Selenium.In the end, Python Testing with Selenium will provide you with the expertise to write your own test cases in future.WHAT YOU’LL LEARN* Install and configure Selenium WebDriver with Python for different web-browsers * Review basic commands of Selenium* Locate web elements * Work with UI based web elements* Assert web elements and handle exceptions* Write test scripts in Page Object Model * Write test cases with Unittest framework WHO THIS BOOK IS FORPython developers/testers who want to test their web applicationsSujay Raghavendra works mainly in the field of data science, machine/deep learning, and artificial intelligence and is currently Executive Director of Raghavendra Training & Consultancy (RTC), a start up company based in Dharwad, Karnataka, India. RTC was co-founded with his brother Sumedh Raghavendra in 2014.He also plans and evaluates new technological projects for research and product development to various companies at RTC. Some of his projects include analyzing pap smear filter for microscopic medical images, thermal heat sensing in hospitals, ocr for handwritten characters, satellite image analysis, network automation for maps, forecasting model, text analytics & predictions, etc.Raghavendra has been a consultant for helping and building research centers for technical universities and colleges and his recent interest includes automating testing cases using machine learning. He has published numerous research articles in international journals and was part of a reviewer committee in various journals and conferences.PYTHON TESTING WITH SELENIUMChapter 1: Introduction to SeleniumChapter 2: Getting StartedChapter 3: Mouse & Keyboard ActionsChapter 4: Web ElementsChapter 5: NavigationChapter 6: Buttons, Checkbox & Select ListChapter 7: Frames and Text BoxesChapter 8: AssertionsChapter 9: Exception HandlingChapter 10: WaitsChapter 11: Page ObjectsChapter 12: Using Test Cases with a Screenshot
Data Parallel C++
Learn how to accelerate C++ programs using data parallelism. This open access book enables C++ programmers to be at the forefront of this exciting and important new development that is helping to push computing to new levels. It is full of practical advice, detailed explanations, and code examples to illustrate key topics.Data parallelism in C++ enables access to parallel resources in a modern heterogeneous system, freeing you from being locked into any particular computing device. Now a single C++ application can use any combination of devices—including GPUs, CPUs, FPGAs and AI ASICs—that are suitable to the problems at hand.This book begins by introducing data parallelism and foundational topics for effective use of the SYCL standard from the Khronos Group and Data Parallel C++ (DPC++), the open source compiler used in this book. Later chapters cover advanced topics including error handling, hardware-specific programming, communication and synchronization, and memory model considerations.Data Parallel C++ provides you with everything needed to use SYCL for programming heterogeneous systems.WHAT YOU'LL LEARN* Accelerate C++ programs using data-parallel programming* Target multiple device types (e.g. CPU, GPU, FPGA)* Use SYCL and SYCL compilers * Connect with computing’s heterogeneous future via Intel’s oneAPI initiativeWHO THIS BOOK IS FORThose new data-parallel programming and computer programmers interested in data-parallel programming using C++.James Reinders is a consultant with more than three decades experience in Parallel Computing, and is an author/co-author/editor of nine technical books related to parallel programming. He has had the great fortune to help make key contributions to two of the world's fastest computers (#1 on Top500 list) as well as many other supercomputers, and software developer tools. James finished 10,001 days (over 27 years) at Intel in mid-2016, and now continues to write, teach, program, and do consulting in areas related to parallel computing (HPC and AI).Chapter 1: IntroductionSets expectation that book describes SYCL 1.2.1 with Intel extensions, and that most extensions are proof points of features that should end up in a future version of SYCL. Overview notion of different accelerator architectures doing well on different workloads, and introduce accelerator archs (but don’t overdo the topic). Overview/level setting on parallelism and relevant terminology, language landscape, SYCL history.• SYCL key feature overview (single source, C++, multi-accelerator) - intended to draw people in and show simple code• Language versions and extensions covered by this book• Mixed-architecture compute and modern architectures• Classes of parallelism• Accelerator programming landscape (OpenMP, CUDA, TBB, OpenACC, AMD HCC, Kokkos, RAJA)• Evolution of SYCLChapter 2: Where code executesDescribes which parts of code run natively on CPU versus on "devices". Differentiate between accelerator devices and the "host device". Show more code to increase reader familiarity with program structure.• Single source programming model• Built-in device selectors• Writing a custom device selectorChapter 3: Data management and ordering the uses of dataOverview the primary ways that data is accessible by both host and device(s): USM and buffers. Introduce command groups as futures for execution, and concept of dependencies between nodes forming a DAG.• Intro• Unified Shared Memory• Buffers• DAG mechanismChapter 4: Expressing parallelismThe multiple alternative constructs for expressing parallelism are hard to comprehend from the spec, and for anyone without major parallel programming experience. This chapter must position the parallelism mechanisms relative to each other, and leave the reader with a conceptual understanding of each, plus an understand of how to use the most common forms.• Parallelism within kernels• Overview of language features for expressions of parallelism• Basic data parallel kernels• Explicit ND-Range kernels• Hierarchical parallelism kernels• Choosing a parallelism/coding styleChapter 5: Error handlingSYCL uses C++-style error handling. This is different/more modern than people using OpenCL and CUDA are used to. This chapter must frame the differences, and provide samples from which readers can manage exceptions easily in their code.• Exception-based• Synchronous and asynchronous exceptions• Strategies for error management• Fallback queue mechanismChapter 6: USM in detailUSM is a key usability feature when porting code, from C++ for example. When mixed with differing hardware capabilities, the USM landscape isn’t trivial to understand. This key chapter must leave the reader with an understanding of USM on different hardware capabilities, what is guaranteed at each level, and how to write code with USM features.• Usability• Device capability levels• Allocating memory• Use of data in kernels• Sharing of data between host and devices• Data ownership and migration• USM as a usability feature• USM as a performance feature• Relation to OpenCL SVMChapter 7: Buffers in detailBuffers will be available on all hardware, and are an important feature for people writing code that doesn’t have pointer-based data structures, particularly when implicit dependence management is desired. This chapter must cover the more complex aspects of buffers in an accessible waym, including when data movement is triggered, sub-buffer dependencies, and advanced host/buffer synchronization (mutexes).• Buffer construction• Access modes (e.g. discard_write) and set_final_data• Device accessors• Host accessors• Sub-buffers for finer grained DAG dependencies• Explicit data motion• Advanced buffer data sharing between device and hostChapter 8: DAG scheduling in detailMust describe the DAG mechanism from a high level, which the spec does not do. Must describe the in-order simplifications, and common gotchas that people hit with the DAG (e.g. read data before buffer destruction and therefore kernel execution).• Queues• Common gotchas with DAGs• Synchronizing with the host program• Manual dependency managementChapter 9: Local memory and work-group barriers• "Local" memory• Managing "local" memory• Work-group barriersChapter 10: Defining kernels• Lambdas• Functors• OpenCL interop objectsChapter 11: Vectors• Vector data types• Swizzles• Mapping to hardwareChapter 12: Device-specific extension mechanism• TBDChapter 13: Programming for GPUs• Use of sub-groups• Device partitioning• Data movement• Images and samplers• TBDChapter 14: Programming for CPUs• Loop vectorization• Use of sub-groups• TBDChapter 15: Programming for FPGAs• Pipes• Memory controls• Loop controlsChapter 16: Address spaces and multi_ptr• Address spaces• The multi_ptr class• Intefacing with external codeChapter 17: Using libraries• Linking to external code• Exchanging data with librariesChapter 18: Working with OpenCL• Interoperability• Program objects• Build options• Using SPIR-V kernelsChapter 19: Memory model and atomics• The memory model• Fences• Buffer atomics• USM atomics
Python 3 for Science and Engineering Applications
If you have mastered the basics of Python and are wanting to explore the language in more depth, this book is for you. By means of concrete application examples used in different applications, you are guided on how Python can be used tackle a wide range of problems. Including general ideas and solutions, the specifics of Python and how these can be practically applied are discussed. The book illustrates many aspects of programming including algorithms, recursion, data structures, and helps develop problem-oriented thinking.Python 3 for Science and Engineering Applications includes:>practical and goal-oriented learning>basic Python techniques> modern Python 3.6+ including comprehensions, decorators andgenerators>complete code available online> more than 40 exercises, solutions documented online>no additional packages or installation required, 100% pure PythonTopics cover:>identifying large prime numbers and computing Pi> writing and understanding recursive functions with memorisation>computing in parallel and utilising all system cores>processing text data and encrypting messages>comprehending backtracking and solving Sudokus>analysing and simulating games of chance to develop optimalwinning strategies>handling genetic code and generating extremely long palindromesFelix Bittmann is a research associate at the Leibniz Institute for Educational Trajectories and a doctoral candidate at the University of Bamberg, Germany. His research interests include social inequality, the role of education in the course of life, quantitative methods, and the philosophy of science. With a focus on statistical analysis and applied research, Python is an integral and multifunctional tool of his daily workflow.
Practical Apache Lucene 8
Gain a thorough knowledge of Lucene's capabilities and use it to develop your own search applications. This book explores the Java-based, high-performance text search engine library used to build search capabilities in your applications.Starting with the basics of Lucene and searching, you will learn about the types of queries used in it and also take a look at scoring models. Applying this basic knowledge, you will develop a hello world app using basic Lucene queries and explore functions like scoring and document level boosting.Along the way you will also uncover the concepts of partial searching and matching in Lucene and then learn how to integrate geographical information (geospatial data) in Lucene using spatial queries and n-dimensional indexing. This will prepare you to build a location-aware search engine with a representative data set that allows location constraints to be specified during a search. You’ll also develop a text classifier using Lucene and Apache Mahout, a popular machine learning framework.After a detailed review of performance bench-marking and common issues associated with it, you’ll learn some of the best practices of tuning the performance of your application. By the end of the book you’ll be able to build your first Lucene patch, where you will not only write your patch, but also test it and ensure it adheres to community coding standards.WHAT YOU’LL LEARN* Master the basics of Apache Lucene* Utilize different query types in Apache Lucene* Explore scoring and document level boosting* Integrate geospatial data into your applicationWHO THIS BOOK IS FORDevelopers wanting to learn the finer details of Apache Lucene by developing a series of projects with it.Atri is a distributed systems engineer with expertise in building and scaling large data oriented systems, and an Apache Lucene/Solr committer. He has worked for Microsoft, where he was responsible for scaling the storage and query engines for Azure CosmosDB. He is also a long time PostgreSQL contributor and an Apache committer and PMC member for HAWQ, MADLib, and Apex.CHAPTER 1: MEETING THE BEAST -- HOIA LUCENE! - 15 PAGESThis chapter will go over basics of Lucene and search, and give details of basic query structures in Lucene along with the different data structures and types in Lucene which can be diverse in application and usage.1. What Is Search, Anyway?2. Meet Lucene3. Types of Structures In Lucene4. Query Types -- Done The Lucene Way5. Lucene Vs Relational DatabasesCHAPTER 2: HELLO WORLD -- THE LUCENE WAY - 10 PAGESThis chapter will try out a few basic Lucene queries on a standard data set. User will index some standard data set and query different types of queries on top of it. The user will explore scoring, document level boosting and queries like TopN hits, uses of Collectors.1. Index Data In Lucene2. Internals of a Lucene Index3. Scoring and Boosting4. Doing your first query5. TopN Hits -- Why Should I Care About the 100th Hit?6. Collectors -- The Life Of Your ApplicationCHAPTER 3: BUILD A PERSONAL DESKTOP FILE SEARCHER - 40 PAGESThis chapter will go over details of building a file searcher using Lucene which will have the capability to search across the entire file system of the user’s computer and provide search results to the user for relevant documents and files given a partial or complete keyword.1. Basics of Document Searching with Lucene2. Partial Searches and Matching3. A Bit About TF/IDF4. Build The Core of Our Searcher5. Building the File System Seek and Search Functionality6. Bringing It All TogetherCHAPTER 4: A BIT ABOUT SPATIAL INDEXING - 20 PAGESBasics of Spatial Indexing and space vectors. The chapter will cover spatial indexing and querying in Lucene and advanced level details of N dimensional indexing and searching.1. Spatial Indexing2. Lucene’s Spatial Indexing Basics3. When To Use Spatial Indexing?4. N Dimensional Indexing5. Lucene Spatial Query TypesCHAPTER 5: DEVELOPING A LOCATION AWARE SEARCH ENGINE - 40 PAGESThis chapter will go over details of building a location aware search engine with representative data set and allowing location constraints to be specified during a search.1. What is Location Aware Searching?2. Representing Data As Spatial Data3. Metadata Searches4. Combining Searches -- Actual Text and Location CombinedCHAPTER 6: CREATE A TEXT CLASSIFIER WITH APACHE MAHOUT AND LUCENE - 30 PAGESThis chapter will go over building a classifier using Apache Mahout, a popular Machine Learning framework and Lucene.1. What is Mahout?2. What is a Text Classifier Engine?3. Building The Model in Mahout4. Building the Parser in Lucene5. Bringing It All TogetherCHAPTER 7: PERFORMANCE TUNING YOUR LUCENE APPLICATIONS - 15 PAGESPerformance is key to any search applications and small changes to the application can cause amplified changes to the performance of the application. We will performance benchmark applications, learn common pitfalls and learn best practices to tune performance in search applications with Lucene.1. Lucene Performance Basics2. Performance Bench-marking3. Lucene Performance Tuning4. Lucene Performance with System Performance ToolsCHAPTER 8: YOUR FIRST LUCENE PATCH - 15 PAGESThis chapter will focus on building your first patch to the heart of the engine itself. We will go through the cycle of writing a patch, testing it, adhering to community code standards, JIRA navigation, community interaction etc.1. Lucene Internals2. Working with Git3. Writing a Patch4. Test Test Test!5. Opening a JIRA for your issue6. Community Interaction
Das neue SAPUI5-Handbuch
Für Einsteiger und SAPUI5-Profis: Programmieren Sie Schritt für Schritt Ihre erste eigene Anwendung, oder starten Sie direkt mit Performanceoptimierung und Fehleranalyse. Dieses Buch beantwortet Ihre Fragen rund um die Anwendungsentwicklung mit SAPUI5. Beginnen Sie z.B. mit der Implementierung einfacher Controls und lernen Sie im Anschluss, wie Smart Controls Ihre Arbeit vereinfachen. Sie möchten lieber gleich wissen, wie Sie Ihre Apps um eigene Controls erweitern? Schlagen Sie es einfach nach! Aus dem Inhalt: BootstrappingLifecycle ManagementOberfächen und Dialoge gestaltenKomponentenorientiertes ProgrammierenAnwendungsdeskriptorSortieren, Gruppieren und FilternEingabevalidierung Eventbasierte KommunikationEntwicklungsinfrastrukturEinführung in die Konzepte von SAP Fiori Einleitung ... 19 Teil I. Einführung ... 27 1. SAPUI5 -- ein Überblick ... 29 1.1 ... Was ist SAPUI5? ... 29 1.2 ... Anwendungsfälle ... 43 2. Grundlegender Aufbau und Ressourcen ... 47 2.1 ... Die Model-View-Controller-Architektur in SAPUI5 ... 47 2.2 ... Aufbau und Struktur einer SAPUI5-Anwendung ... 51 2.3 ... Bibliotheken und Namensräume ... 55 2.4 ... Typen von Views ... 67 2.5 ... Modelle ... 72 2.6 ... Datenbindung ... 81 2.7 ... Entwicklungs- und Laufzeitumgebung ... 89 Teil II. SAPUI5 -- Anwendungsentwicklung ... 99 3. In 7 Schritten zur ersten eigenen Anwendung ... 101 3.1 ... Ablaufumgebung aufsetzen ... 101 3.2 ... Einführung in den Aufbau einer UI5-Anwendung ... 105 3.3 ... Einführung in die Arbeit mit einfachen UI5-Controls ... 115 3.4 ... Verwendung von komplexen UI5-Controls ... 121 3.5 ... Die Programmierschnittstelle von SAPUI5 ... 127 3.6 ... Implementierung von Eventhandlern ... 131 3.7 ... Komponentenorientierte Anwendungsentwicklung ... 137 4. Das Bootstrapping ... 143 4.1 ... Einführung in das Bootstrapping von SAPUI5 ... 143 4.2 ... Komponentenerstellung ... 147 4.3 ... Weitere Konfigurationsmöglichkeiten ... 149 5. Instanziierung und Lebenszyklus ... 153 5.1 ... Einführung in das Lifecycle-Management von SAPUI5 ... 153 5.2 ... Ressourcen verwenden ... 160 6. Benutzeroberflächen und Dialoge gestalten ... 163 6.1 ... Gestaltung von einfachen Benutzeroberflächen ... 163 6.2 ... Gestaltung von komplexen Benutzeroberflächen ... 170 6.3 ... Arbeiten mit Fragmenten ... 178 6.4 ... Dialoge implementieren und verwenden ... 189 7. Arbeiten mit Layouts ... 197 7.1 ... Einführung in die Arbeit mit Layouts ... 197 7.2 ... Standardlayouts zur Anordnung von UI-Controls ... 201 7.3 ... Arbeiten mit Formularlayouts ... 205 7.4 ... Arbeiten mit Fullscreen-Layouts ... 210 8. Responsive und adaptive Benutzeroberflächen ... 217 8.1 ... Responsiv versus adaptiv ... 217 8.2 ... Implementierung responsiver SAPUI5-Anwendungen ... 219 8.3 ... Implementierung adaptiver SAPUI5-Anwendungen ... 233 9. Komponentenorientiertes Programmieren ... 241 9.1 ... Aufbau einer Komponente ... 241 9.2 ... Integration von Komponenten ... 257 10. Anwendungsdeskriptor ... 267 10.1 ... Aufbau des Anwendungsdeskriptors ... 268 10.2 ... Zugriff auf die Konfigurationsdaten zur Laufzeit ... 285 11. Routing und Navigation ... 289 11.1 ... Einführung in die Navigationskonzepte von SAPUI5 ... 289 11.2 ... Navigation am Beispiel einer Master-Detail-Anwendung ... 301 11.3 ... Erweiterte Routingkonzepte ... 315 12. Arbeiten mit Modellen ... 321 12.1 ... JSON-Modell ... 321 12.2 ... Ressourcenmodell ... 325 12.3 ... OData-Modell ... 335 13. Sortieren, gruppieren und filtern ... 351 13.1 ... Sortieren ... 352 13.2 ... Gruppieren ... 362 13.3 ... Filtern ... 371 14. CUDQ mit OData ... 381 14.1 ... Create ... 382 14.2 ... Update ... 397 14.3 ... Delete ... 406 14.4 ... Query ... 408 14.5 ... Funktionsimport ... 414 14.6 ... Das OData-Modell der 4-Version -- ein Ausblick ... 416 15. Eingabevalidierung und eigene Datentypen ... 425 15.1 ... Einführung in die Arbeit mit Datentypen ... 425 15.2 ... Implementierung eigener Datentypen ... 435 Teil III. Weiterführende Themen ... 449 16. Smart Controls ... 451 16.1 ... Einführung in Smart Controls ... 451 16.2 ... Verwendung der »SmartTable« ... 452 16.3 ... »SmartFilterBar« ... 460 16.4 ... »SmartForm« ... 468 17. Implementierung eigener Controls ... 473 17.1 ... Grundlagen der SAPUI5-Control-Entwicklung ... 473 17.2 ... UI-Controls erweitern ... 478 17.3 ... Eigene UI-Controls implementieren ... 483 17.4 ... XML Composite Controls implementieren ... 490 18. Eventbasierte Kommunikation mit dem Event Bus ... 495 18.1 ... Einführung in das eventbasierte Anwendungsdesign ... 495 18.2 ... Der Event Bus in SAPUI5 ... 497 18.3 ... Implementierung einer eventgesteuerten Anwendungskommunikation ... 499 19. Drag and Drop ... 507 19.1 ... Grundlagen der Implementierung von Drag and Drap in SAPUI5 ... 508 19.2 ... Einsatzszenarien von Drag and Drop und ihre Implementierung ... 514 20. Theming ... 527 20.1 ... CSS ... 527 20.2 ... UI Theme Designer ... 530 21. Testen von SAPUI5-Anwendungen ... 547 21.1 ... Grundlagen von Tests in SAPUI5 ... 547 21.2 ... Unit-Tests mit QUnit ... 553 21.3 ... Oberflächentests mit OPA5 ... 563 21.4 ... Daten simulieren mit dem UI5 MockServer ... 577 21.5 ... End-to-End-Tests mit UIVeri5 ... 581 22. Entwicklungsinfrastruktur ... 589 22.1 ... Einführung und Übersicht ... 589 22.2 ... Projektsetup mit dem UI5 Tooling ... 591 22.3 ... Automatisierte Tests für CI ... 600 22.4 ... Versionsverwaltung mit Git ... 606 22.5 ... Aufbau einer Continuous-Deployment-Pipeline ... 617 23. Performanceoptimierung und Fehleranalyse ... 625 23.1 ... Grundlagen der Performanceoptimierung von SAPUI5-Anwendungen ... 626 23.2 ... Der Support Assistant ... 638 23.3 ... Einführung in die Performanceanalyse ... 657 23.4 ... Typische Fehlersituationen in SAPUI5, ihre Ursache und Lösung ... 661 24. SAP Fiori ... 667 24.1 ... Überblick ... 667 24.2 ... Implementierung einer SAPUI5-Anwendung mit der SAP Web IDE ... 677 24.3 ... Fundamental Library Styles ... 699 24.4 ... SAP Fiori Elements ... 705 24.5 ... Integration in das SAP Fiori Launchpad ... 727 Die Autoren ... 739 Index ... 741
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen von Grund auf verstehen* Fundierte Einführung mit klarem didaktischen Aufbau* Mit konkreten Anwendungsbeispielen * Eine reichhaltige Fundgrube für Lehre und SelbststudiumKenntnisse von Algorithmen und Datenstrukturen sind ein Grundbaustein des Studiums der Informatik und verwandter Fachrichtungen. Das Buch behandelt diese Thematik in Verbindung mit der Programmiersprache Java und schlägt so eine Brücke zwischen den klassischen Lehrbüchern zur Theorie von Algorithmen und Datenstrukturen und den praktischen Einführungen in eine konkrete Programmiersprache.Die konkreten Algorithmen und deren Realisierung in Java werdenumfassend dargestellt. Daneben werden die theoretischen Grundlagen vermittelt, die in Programmiersprachen-Kursen oft zu kurz kommen: abstrakte Maschinenmodelle, Berechenbarkeit, Algorithmenparadigmen sowie parallele und verteilte Abläufe. Einen weiteren Schwerpunkt bilden Datenstrukturen wie Listen, Bäume, Graphen und Hashtabellen sowie deren objektorientierteImplementierung mit modernen Methoden der Softwareentwicklung.Die 6. Auflage führt einige neue Algorithmen ein und berücksichtigt die Neuerungen der aktuellen Java-Versionen, u.a. zu Themen wie Parallelisierung.Gunter Saake ist Professor für Datenbanken und Informationssysteme an der Uni Magdeburg und forscht unter anderem auf den Gebieten Datenbankintegration, digitale Bibliotheken, objektorientierte Informationssysteme und Informationsfusion. Er ist Koautor mehrerer Lehrbücher, u.a. zu Datenbankkonzepten und -implementierungstechniken, Datenbanken & Java. Kai-Uwe Sattler ist Professor für Datenbanken und Informationssysteme an der TU Ilmenau. Zu seinen Arbeitsgebieten zählen Datenbankintegration und Anfrageverarbeitung in heterogenen sowie massiv verteilten Datenbanksystemen. Er ist Koautor mehrerer Lehrbücher, u.a. zu Datenbankkonzepten und zu Datenbanken & Java.
Practical System Programming with C
This book teaches system programming with the latest versions of C through a set of practical examples and problems. It covers the development of a handful of programs, implementing efficient coding examples.Practical System Programming with C contains three main parts: getting your hands dirty with multithreaded C programming; practical system programming using concepts such as processes, signals, and inter-process communication; and advanced socket-based programming which consists of developing a network application for reliable communication.You will be introduced to a marvelous ecosystem of system programming with C, from handling basic system utility commands to communicating through socket programming. With the help of socket programming you will be able to build client-server applications in no time.The “secret sauce” of this book is its curated list of topics and solutions, which fit together through a set of different pragmatic examples; each topic is covered from scratch in an easy-to-learn way. On that journey, you’ll focus on practical implementations and an outline of best practices and potential pitfalls. The book also includes a bonus chapter with a list of advanced topics and directions to grow your skills.WHAT YOU WILL LEARN* Program with operating systems using the latest version of C * Work with Linux* Carry out multithreading with C Examine the POSIX standards* Work with files, directories, processes, and signals* Explore IPC and how to work with itWHO THIS BOOK IS FORProgrammers who have an exposure to C programming and want to learn system programming. This book will help them to learn about core concepts of operating systems with the help of C programming..Sri Manikanta Palakollu is a programmer and software developer with experience in C, C++, Java, and Python as well as Linux, POSIX, and other operating system-level programming. He is a tech reviewer for various tech book publishers. Sri also contributes to various open source projects.1. Introduction to Linux Environment• Getting familiar with Linux Kernel• Linux Kernel V/S Other OS Kernels.• File Handling Utilities• Process Utilities• Network Utilities• Backup Utilities.2. Implementation of Multithreading with C• Introduction to Threads• Threads V/S process• Introduction to Multithreading.• Importance of Multithreading.• Support of Multithreading in C• Creation of threads.• Practical Examples of Multithreading.• Use cases of Multithreading.3. Getting Started with System Programming• Understanding the POSIX Standard.• Introduction to API’s• Importance of API’s• Inbuilt API’s in C4. Files and Directories• Basic concepts in files• Files meta i-nodes• System Calls for Files• I/O Operations for Files• File Permissions.• Soft and Hard Links• System call for Directories.5. Processes and Signals• Introduction to process Environment• Environment Variables• Kernel Support for Processes• Process Creation• Concept of the Zombie process• Concept of Orphan Process• System Calls for Process management• Introduction to Signals• System calls for signals• Types of Signals6. Inter process Communication (IPC)• Introduction to IPC• Types of IPC• Creation of Named PIPES• Creation of UN-Named PIPES• Concept of Message Queues• Implementation of Message Queues• Concept of Semaphore• Implementation of Semaphore.• API for Named and unnamed PIPES• API for Message Queues• API for Semaphore.7. Shared Memory• Introduction to Shared Memory.• Kernel Support for Shared Memory.• Implementation of Shared Memory.• API for Shared Memory.8. Socket Programming• Introduction to Sockets• IPC Over Networks• API for Socket Programming• OSI Layer Protocol• TCP/IP Protocol• Client Server Architecture.• System calls for Socket Programming.• Implementation of Single Client Server Architecture.• Implementation of Multiple Client Server Architecture.9. Advanced Topics and Directions.
Practical Python Data Visualization
Quickly start programming with Python 3 for data visualization with this step-by-step, detailed guide. This book’s programming-friendly approach using libraries such as leather, NumPy, Matplotlib, and Pandas will serve as a template for business and scientific visualizations.You’ll begin by installing Python 3, see how to work in Jupyter notebook, and explore Leather, Python’s popular data visualization charting library. You’ll also be introduced to the scientific Python 3 ecosystem and work with the basics of NumPy, an integral part of that ecosystem. Later chapters are focused on various NumPy routines along with getting started with Scientific Data visualization using matplotlib. You’ll review the visualization of 3D data using graphs and networks and finish up by looking at data visualization with Pandas, including the visualization of COVID-19 data sets.The code examples are tested on popular platforms like Ubuntu, Windows, and Raspberry Pi OS. With Practical Python Data Visualization you’ll master the core concepts of data visualization with Pandas and the Jupyter notebook interface.WHAT YOU'LL LEARN* Review practical aspects of Python Data Visualization with programming-friendly abstractions * Install Python 3 and Jupyter on multiple platforms including Windows, Raspberry Pi, and Ubuntu * Visualize COVID-19 data sets with PandasWHO THIS BOOK IS FORData Science enthusiasts and professionals, Business analysts and managers, software engineers, data engineers.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 at the tender age of 7 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: DATA VISUALIZATION WITH LEATHERChapter Goal: Introduce readers to the data visualization with a simple library leatherNo of pages: 15Sub - Topics:1. Introduction to leather2. Installation to leather3. Various types of graphs with leatherCHAPTER 2: INTRODUCTION TO THE SCIENTIFIC PYTHON ECOSYSTEM AND NUMPYChapter Goal: Explore Scientific Python 3 ecosystem and constituent member libraries. We will also learn basics of the NumPy multidimensional data structure Ndarrays.No of pages: 15Sub - Topics:1. Scientific Python 3 Ecosystem2. Member libraries3. Installation of NumPy4. NumPy basics5. NdarraysCHAPTER 3: NUMPY ROUTINES AND VISUALIZATION WITH MATPLOTLIBChapter goal – Learn to visualize data with Matplotlib. Readers working in the data science and scientific domains will be thrilled to get started with this.No of pages: 15Sub - Topics:1. NumPy Ndarray creation Routines2. Installation of Matplotlib3. Visualization with Matplotlib4. Multiple graphs5. Axis, colors, and markersCHAPTER 4 : VISUALIZING IMAGES AND 3D SHAPESChapter goal – Learn to visualize greyscale and color images. We will explore basic image processing operations. We will also learn to visualize 3D shapes and wireframes.No of pages: 20Sub - Topics:1. Visualize images with Matplotlib2. Basic Operations on images3. 3D visualizationsCHAPTER 5 : VISUALIZE NETWORKS AND GRAPHSChapter goal – Network and Graph Data structures. We will learn to install network library and visualize network.No of pages: 15Sub - Topics:1. Networks and Graphs2. Installation of network library3. Visualize graphsCHAPTER 6 : GETTING STARTED WITH PANDASChapter goal – Learn to work with Pandas Series and Dataframe data structures.No of pages: 15Sub - Topics:1. Pandas library and installation2. Series3. Dataframes4. Reading data from a URLCHAPTER 7: PROCESSING AND VISUALIZING COVID-19 DATAChapter goal – Learn to work with COVID-19 Data. Visualize the number of COVID-19.No of pages: 20Sub - Topics:1. COVID-19 Pandemic2. COVID 19 data sources3. COVID 19 python libraries4. Visualization of dataAPPENDIX:
Beginning R 4
Learn how to use R 4, write and save R scripts, read in and write out data files, use built-in functions, and understand common statistical methods. This in-depth tutorial includes key R 4 features including a new color palette for charts, an enhanced reference counting system (useful for big data), and new data import settings for text (as well as the statistical methods to model text-based, categorical data).Each chapter starts with a list of learning outcomes and concludes with a summary of any R functions introduced in that chapter, along with exercises to test your new knowledge. The text opens with a hands-on installation of R and CRAN packages for both Windows and macOS. The bulk of the book is an introduction to statistical methods (non-proof-based, applied statistics) that relies heavily on R (and R visualizations) to understand, motivate, and conduct statistical tests and modeling.Beginning R 4 shows the use of R in specific cases such as ANOVA analysis, multiple and moderated regression, data visualization, hypothesis testing, and more. It takes a hands-on, example-based approach incorporating best practices with clear explanations of the statistics being done.You will:* Acquire and install R and RStudio* Import and export data from multiple file formats* Analyze data and generate graphics (including confidence intervals)* Interactively conduct hypothesis testing* Code multiple and moderated regression solutionsWHO THIS BOOK IS FORProgrammers and data analysts who are new to R. Some prior experience in programming is recommended.MATT WILEY is a tenured, associate professor of mathematics with awards in both mathematics education and honor student engagement. He earned degrees in pure mathematics, computer science, and business administration through the University of California and Texas A&M systems. He serves as director for Victoria College’s quality enhancement plan and managing partner at Elkhart Group Limited, a statistical consultancy. With programming experience in R, C++, Ruby, Fortran, and JavaScript, he has always found ways to meld his passion for writing with his joy of logical problem solving and data science. From the boardroom to the classroom, Matt enjoys finding dynamic ways to partner with interdisciplinary and diverse teams to make complex ideas and projects understandable and solvable.JOSHUA F. WILEY is a lecturer in the Monash Institute for Cognitive and Clinical Neurosciences and School of Psychological Sciences at Monash University and a senior partner at Elkhart Group Limited, a statistical consultancy. He earned his PhD from the University of California, Los Angeles, and his research focuses on using advanced quantitative methods to understand the complex interplays of psychological, social, and physiological processes in relation to psychological and physical health. In statistics and data science, Joshua focuses on biostatistics and is interested in reproducible research and graphical displays of data and statistical models. Through consulting at Elkhart Group Limited and former work at the UCLA Statistical Consulting Group, he has supported a wide array of clients ranging from graduate students, to experienced researchers, and biotechnology companies. He also develops or co-develops a number of R packages including varian, a package to conduct Bayesian scale-location structural equation models, and MplusAutomation, a popular package that links R to the commercial Mplus software.1: Installing R2: Installing Packages and Using Libraries3: Data Input and Output4: Working with Data5: Data and Samples6: Descriptive Statistics7: Understanding Probability and Distribution8: Correlation and Regression9: Confidence Intervals10: Hypothesis Testing11: Multiple Regression12: Moderated Regression13: Analysts of VarianceBibliography
The Common Lisp Condition System
Discover the functioning and example uses of the Common Lisp condition system. This book supplements already existing material for studying Common Lisp as a language by providing detailed information about the Lisp condition system and its control flow mechanisms; it also describes an example ANSI-conformant implementation of the condition system.In part 1 of The Common Lisp Condition System, the author introduces the condition system using a bottom-up approach, constructing it piece by piece. He uses a storytelling approach to convey the foundation of the condition system, dynamically providing code to alter the behavior of an existing program. Later, in part 2, you’ll implement a full and complete ANSI-conformant condition system while examining and testing each piece of code that you write.Throughout, the author demonstrates how to extend Lisp using Lisp itself by using the condition system as an example. This is done while paying proper attention to the CL restart subsystem, giving it attention on a par with the handler subsystem. After reading and using this book, you'll have learned about the inner functioning of the condition system, how to use it in your own Common Lisp coding and applications, and how to implement it from scratch, should such a need arise.WHAT YOU WILL LEARN* Examine the condition system and see why it is important in Common Lisp* Construct the condition system from scratch using foundational mechanisms provided by Common Lisp* Program the condition system and its control flow mechanisms to achieve practical results* Implement all parts of a condition system: conditions, restarts, handler- and restart-binding macros, signalling mechanisms, assertions, a debugger, and moreWHO THIS BOOK IS FORBeginning and intermediate Lisp programmers, as well as intermediate programmers of other programming languages.MICHAŁ "PHOE" HERDA is a programmer with contributions to multiple parts of the Common Lisp ecosystem: CL implementations, existing and widely-used CL utilities, documentation, and some of the new library ideas that he slowly pushes forwards and works on. The book The Common Lisp Condition System is his first work -- an attempt to create a tutorial on the condition system that was missing, even all the years after which ANSI Common Lisp was standardized.1: Basic Concepts2: Introducing the Condition System3: Implementing the Common Lisp Condition System4: Wrapping UpAppendix A: Implementation of Dynamic Variables in CAppendix B: Additional Utilities for Working with Common Lisp ConditionsAppendix C: Lisp Macros 101Appendix D: Condition System Reference
Technisches Konstruieren mit OpenSCAD
Das Design dreidimensionaler Modelle mit Werkzeugen wie Blender oder 3D Studio Max ist eine Aufgabe, die ingenieurwissenschaftlich begabte Personen nur allzu gern delegieren.OpenSCAD wählt einen erfrischend anderen Zugang. Anstatt ein Objekt als Punktwolke zu betrachten, schreibt der Modellerzeuger in einer an Javascript erinnernden Sprache ein Programm. Dieses beschreibt die zu erzeugende Geometrie als eine Serie von Arbeitsschritten. Dreidimensionale Modelle entstehen so in einem Workflow, der an die Entwicklung klassischer ingenieurwissenschaftliche Güter erinnert. Wegen der Nähe zur manuellen Fertigung mit Werkzeug ist das ein Prozess, der Ingenieuren gut in die Hände spielt.Aber Achtung: trotz der Einfachheit der Syntax ist OpenSCAD kein primitives Modellierungsprogramm. Umfangreiche Scriptingmöglichkeiten sorgen dafür, dass sich die Modelle dynamisch an geänderte Situationen anpassen.Dieses Lehrbuch demonstriert die Möglichkeiten von OpenSCAD anhand praktischer Beispiele. Freuen Sie sich auf Ersatzknöpfe für ein LeCroy-Oszilloskop, Garderobenstangenhalter, einen Halter für Seifenspender und diverse andere Beispiele aus dem realen Leben.Der mit mehr als 15 Dienstjahren Erfahrung ausgestattete Autor entwickelte dieses für Linux und Windows gleichermaßen geeignete Buch explizit für informatikaffine Personen. Wenn Sie mit irgendeiner Programmiersprache Erfahrung haben, ist dieses Buch ihr Weg zum schnellen und unbürokratischen Erzeugen dreidimensionaler Modelle.Tam Hanna programmiert und entwickelt seit mehr als 15 Jahren Microcontroller und Prozessrechnersysteme für verschiedene Anwendungsfälle. Neben seiner Consultingtätigkeit hält er Vorträge auf Kongressen, verfasst Fachartikel für diverse Magazine und agiert als Tutor. Sein viel beachteter Instagram-Kanal liefert Hintergrundinformationen zu Messtechnik und Elektronik.
Raku Recipes
Explore Raku problems and solutions using the latest version of the Raku programming language. In Raku Recipes, the emphasis is on applying Raku code to various important tasks and applications including data science, analytics, microservices, and desktop/console applications. There are also fun one-liner script recipes and instructions on how to create mini-languages of your very own.All in all, over 70 recipes cover a broad range of the tasks and problems encountered by a modern Raku developer. You’ll be able to solve problems starting from basics such as input/output and math, to more complex domains such as microservices web sockets, web hooks, and mini-bots.WHAT YOU WILL LEARN* Put Raku to use in a real world environment* Work with Raku modules, including design classes, roles, and more* Query a GeoIP database and extract information from the web* Carry out text processing such as creating a dictionary with fast searches over it and scraping markdown documents* Work with MongoDB, WikiData, and other data sources* Build data science and analytics applications using Raku* Integrate with Python, C, and other languages and libraries* Create mini-languages and shell scripting languages WHO THIS BOOK IS FORWhile some prior experience in Raku may be useful, it is not required. Prior programming experience using other scripting languages, such as Perl, is recommended, however.J.J. Merelo is a professor at the university of Granada, where he has been teaching since 1988. He has been using Perl since 1994, and Perl 6/Raku intensively since December 2016. He trains, teaches, and consults on Perl and Raku projects.* How do I start to put (Perl 6|Raku|Camelia) to use in a real world environment.* Get your tools ready.Put concepts from other languages to use in Perl 6. * Get involved in the community.* Install some external and useful modules.* Detect OS environment and change program behavior according to it.* Input and outputRead files handled as arguments * Read and process files asynchronously* Connect input and output of external utilities and files.* Read and process binary files.* Watch a file for changes* Data science and data analytics* How do I extract unique email addresses/user names from several files.* How do I create a weighted random number generator.How do I work with a spreadsheet, filtering by row or column, or sorting, or converting row into columns or the other way round. * How do I apply a series of transformations to a group of elements and then extract a single quantity from them.* How do I create a random data generator* How do I process big, structured files.* MathHow can you generate mathematical sequences and extract random elements from it. * Program a divide-and-conquer algorithm.* Work with matrices.* Compute Mandelbrot’s and Julia’s set* Look for pairs of integers with a certain property, such as friendly numbers or contiguous primes, to use infinite precision integers.Configuration and execution of programs.* Configure a program using JSON/YAML/.ini files.* Configure a command line command with flags and arguments.* Use shell environment variables in my program.* Advanced/distributed configuration with etcdCreate a Docker container for an application to distribute it easily* Automation of system tasks.* Check log for certain events.* Check logs interactively on the console.* Check git commits for patterns, metadata, or store them.Clean up your Docker image store. * Process the last persons logged to our system* Perl 6 modules* Design classes, roles and modules in Perl 6.* Document your module.* Test your module.* Release it as an open source module for every one.* Use multiple dispatch to speed up applications.Dealing with errors* Design an exception hierarchy.* Deliver meaningful error messages to the user.* Catch and deal with errors in your program.* Debug your application in CommaIDE.* Make grammars fail graciously with pretty errors.* Web and microservices on the client side* Query a GeoIP databaseDownload and extract information from a web site. * Use a web API to get information from a site.* Check IP and addresses by querying Internet services.* Text processing* Scrape markdown documents.* Generate a set of static web pages* Create a dictionary and do fast searches over it* Compute differences in plain textsMicroservices* Create a microservice.* Work with web sockets, connecting to a client.* Respond to web hooks.* Create a mini-bot for Telegram or Slack.* Test your microservice.* Work with data sources.* Work with relational databases.Interface with Redis. * Use an ORM for hight-level data description and access.* Work with MongoDB.* Extract information from WikiData* Create a desktop/console applicationUse full-console UI. * Create an application that uses system windows.* Package your application for release.* Make it work with other desktop applications by using service buses.* Use a common desktop application framework.Interface with libraries and code in other languages* Embed Python programs.* Embed Perl programs.* Run external programs and capture output.* Wrap external libraries in C with NativeCall.* Work with image processing libraries.* Speed up processing* Use data parallelism with hyper/race.Work with asynchronous input/output * Work with concurrency using channels and threads.* Create powerful concurrent programs* Monitor concurrency using CommaIDE.* Create mini-languages* Use mini-languages that show off their possibilities* Create and process a mini-language for recipes.* Process recipes and generate reports.Resume common language patterns. * Convert grammar into a full recipe-processing application that generates HTML or other external format.* Fun one-liners* How do I write a guessing name in a single line of code.* How do I compute the nth element in a sequence with a single line.How do I perform system administration task repeatedly using a single line of code.
Einstieg in Java mit Eclipse
EINSTIEG IN JAVA MIT ECLIPSE //- Einrichtung der Entwicklungsumgebung (Java, Eclipse)- Grundlagen der objektorientierten Programmierung- Einführung in Eclipse- Beschreibung der Java-Sprachelemente (Variablen, Anweisungen, einfache Datentypen, Klassen und Objekte, Aufzählungen, Arrays, Methoden, Operatoren, Verzweigungen, Schleifen, Pakete und Module)- Überblick über die Plattform Java (Bytecode, Laufzeitumgebung mit Garbage Collector, Interpreter und JIT-Compiler, Klassenbibliotheken)- Beispiele und ein Bonuskapitel unter plus.hanser-fachbuch.deBernhard Steppan hat mit diesem Buch einen ausführlichen Einstieg in Java mit Eclipse geschrieben. Das Buch ist vor allem für Leser ohne Programmierkenntnisse geeignet.Der erste Teil des Buches vermittelt das Java- und Eclipse-Basiswissen und führt in die objektorientierteProgrammierung ein.Im zweiten Teil dreht sich alles um die Feinheiten der Sprache Java. Hier entstehen die ersten kleinen Java-Anwendungen. Jedes Kapitel bietet eine Mischung aus Wissensteil und praktischen Übungen und endet mit Aufgaben, die Sie selbstständig durchführen können.Die Technologie Java bildet den Schwerpunkt des dritten Teils. Zudem werden Ihnen Klassenbibliotheken und Algorithmen vorgestellt.Ein größeres Java-Projekt steht im Mittelpunkt des vierten Teils. Anhand einer Anwendung mit grafischer Oberfläche werden Sie hier alle Elemente der vorigen Teile kennenlernen.Im fünften Teil nden Sie die Lösungen zu den Aufgaben im zweiten und dritten Teil des Buches.Ein Buch für alle, die die Java-Programmierung mithilfe der Eclipse-Entwicklungsumgebung erlernenund beherrschen wollen.AUS DEM INHALT //- Programmiergrundlagen- Objektorientierte Programmierung- Entwicklungsumgebung- Programmaufbau- Variablen- Anweisungen- Einfache Datentypen- Klassen und Objekte- Aufzählungen- Arrays- Methoden- Operatoren- Verzweigungen- Schleifen- Pakete und Module Bernhard Steppan ist ein Java-Entwickler der ersten Stunde und hat mehrere C++- und Java-Bücher geschrieben sowie zahlreiche Artikel verfasst. Er arbeitet als IT-Chefarchitekt bei DB Systel, dem Systemhaus der Deutschen Bahn.
Einstieg in SwiftUI
• Der umfangreiche Einstieg in SwiftUI• Detaillierte Beschreibungen zum Einsatz von Views, Controls und Status• Aktuell zu Xcode 12• Mit Update inside: Erhalten Sie aktuelle Infos zu kommenden SwiftUI-Updates und weiteren SwiftUI-Funktionen.Lernen Sie Apples neues SwiftUI-Framework kennen und erfahren Sie, wie Sie plattformübergreifende Nutzeroberflächen für Mac, iPhone, iPad, Apple Watch und Apple TV erstellen. Das Framework vereinfacht den Prozess der UI-Erstellung deutlich, damit Sie sich als Entwickler primär auf die Kernfunktionen Ihrer Apps konzentrieren können.SwiftUI funktioniert gänzlich anders als die bisherigen Mechanismen zur Gestaltung von Views für Apple-Plattformen. Es ist zudem tief in die Entwicklungsumgebung Xcode integriert.Für Entwickler ergeben sich so eine Vielzahl an Neuerungen, die es langfristig in der UI-Erstellung zu beachten gilt und die in diesem Buch ausführlich und detailliert beschrieben werden. Dazu gehören die grundlegende Funktionsweise von SwiftUI, das Vorgehen beim Erstellen von Views, der Austausch von Daten und Best Practices beim Einsatz des Frameworks. Auch die Integration von SwiftUI in bereits bestehende Projekte ist ein Thema.Aus dem Inhalt:• Funktionsweise von SwiftUI• Views und Controls• View-Hierarchien mit Stacks, Listen und Grids• Navigationsstrukturen• Status mittels State, Binding, ObservedObject und mehr• Integration in bestehende Projekte mittels Representable und Hosting• Effizienter Einsatz der Preview Thomas Sillmann ist leidenschaftlicher Autor, Apple-Entwickler und Trainer. Mit seiner Begeisterung für das Schreiben hat er bereits mehrere erfolgreiche Fachbücher veröffentlicht. Thomas lebt und arbeitet in Aschaffenburg.
C++ mit Visual Studio 2019 und Windows Forms-Anwendungen
C++ hat sich in den letzten Jahren rasant entwickelt: C++11, C++14, C++17 und C++20 haben viele Verbesserungen und neue Möglichkeiten gebracht. Vieles, was vor 10 Jahren noch gut und empfehlenswert war, kann heute besser und sicherer gemacht werden.Dieses Buch stellt C++ mit Visual Studio 2019 auf dem Stand von Mai 2020 umfassend dar. Das ist nicht nur der Umfang von C++17, sondern auch schon ein Teil von C++20.Es entstand aus zahlreichen Vorlesungen und Firmenseminaren. Dementsprechend richtet es sich einerseits an STUDIERENDE, die C++ lernen wollen. Der Aufbau, die vielen Beispiele und Übungsaufgaben sind erprobt und bewährt. Es eignet sich zum Selbststudium und als Lehrbuch für Vorlesungen an Fachhochschulen und Universitäten.Dieses Buch zeigt aber ebenso PROFESSIONELLEN SOFTWARE-ENTWICKLERN mit einer jahrelangen C++-Praxis den aktuellen Stand der Technik. Viele der Spracherweiterungen machen elementare Programmiertechniken einfacher und sicherer. Dazu kommen neue Konzepte, die bessere und effizientere Lösungen als noch vor einigen Jahren ermöglichen. Das kann unnötigem Aufwand und Fehlern führen, die sich leicht vermeiden lassen. Viele dieser neuen Möglichkeiten haben sich in der industriellen Praxis noch nicht etabliert.Dieses Buch erscheint in zwei weitgehend identischen Ausgaben:– IN DER VORLIEGENDEN AUSGABE werden Programme geschrieben, in denen alle Ein- und Ausgaben über eine Windows-Benutzeroberfläche erfolgen.– IN DER ANDEREN AUSGABE „C++ mit Visual Studio 2019“ werden Programme ohne eine graphische Benutzeroberfläche geschrieben. Alle Ein- und Ausgaben erfolgen mit cin und cout über die Konsole.Nach seinem Mathematikstudium an der Universität Tübingen war RICHARD KAISER einige Jahre in der Lehrerausbildung tätig, Trainer in der Industrie, Software-Entwickler (vor allem für technische Anwendungen) und Leiter der Software-Abteilung. Seit 1991 ist er Professor an der Dualen Hochschule Baden-Württemberg (Lörrach), wo er vor allem Vorlesungen über Programmiersprachen (C/C++/C#) und Mathematik hält. In den letzten Jahren hat er viele Seminare über C++ und C# für Firmen durchgeführt.Die Entwicklungsumgebung.- Steuerelemente für die Benutzeroberfläche.- Elementare Datentypen und Anweisungen in C und C++.- Sie Stringklassen string und wstring.- Arrays und Container.- Einfache selbstdefinierte Datentypen.- Zeiger, Strings und dynamisch erzeugte Variablen.- Überladene Funktionen und Operatoren.- Objektorientierte Programmierung.- Namensbereiche.- Exception-Handling.- Containerklassen der C++-Standardbibliothek.- Dateibearbeitung mit den Stream-Klassen.- Funktionsobjekte und Lambda-Ausdrücke.- Templates und STL.- C++11 Smart Pointer: shared_ptr, unique_ptr und weak_ptr.- Literatur.- Index.
Foundation Dynamic Web Pages with Python
Discover the concepts of creating dynamic web pages (HTML) with Python. This book reviews several methods available to serve up dynamic HTML including CGI, SSI, Django, and Flask.You will start by covering HTML pages and CSS in general and then move on to creating pages via CGI. It is easy to use and can serve as a foundation for the more advanced services available for launching dynamic web pages. Next you'll explore the SSI (Server Side Interface) method. This is a slightly more advanced interface included in mots web servers that adds functionality to modify static HTML pages to add such things as the current date or time, include additional HTML, and other features to a static web page before it is delivered to the user.The book also covers some of the key the Django module features, which must be added to the web server. These features include creating dynamic web pages and calling a database to provide additional information to the web page. Lastly you will explore the Flask module. While it has limited functionality on its own, it provides a very flexible environment to create a self designed system for delivery of dynamic web pages.By the time you finish this book, you will be able to choose the appropriate methodology for delivering dynamic information using fast HTML creation services.WHAT YOU'LL LEARN* Use HTML pages and CSS together to control the style of your web site.* Install and configure SSI, Django, and Flask for Apache.* Create dynamic web pages using CGI and creating a library of partial HTML pages to use in this task.* Build dynamic web pages using SSI and auxiliary Python programs to enhance the SSI functionality.* Develop dynamic web pages using Django.WHO THIS BOOK IS FORSoftware Developers with basic Python programming skills interested in learning Web DevelopmentW. David Ashley is a technical writer for SkillSoft where he specializes in open source, particularly Linux. As a member of the Linux Fedora documentation team he recently led the Libvert project documentation, and wrote the Python programs included with it. He has developed in 20 different programming languages during his 30 years as a software developer and IT consultant, including more than 18 years at IBM and 12 years with American Airlines. Chapter 1: Introduction to Web ServersChapter Goal: An introduction to web servers – specifically the Apache web server.No. of Pages: 5Sub-Topics:Glossary of termsIntroduction to the Apache web serverIntroduction to other web serversConfiguring your web serverOrganizing your web serverChapter 2: HTML Pages and CSSChapter Goal: Describes the main principles of web pages and style sheetsNo. of Pages: 20Sub-Topics:HTML tagsOrganizing HTML sectionsLinking HTML pages to a style sheetCreating a library of partial HTML pagesEnsuring coordination between the HTML page, the CSS stylesheet, and you libraryChapter 3: Using CGI and PythonChapter Goal: Using Python to create an HTML pageNo. of Pages: 25Sub-Topics:Configure CGI for use by PythonCreate a dummy page just for creating the layout of the page major elementsHTML sectionsUsing Python to create a dynamic HTML pageWhere to split a web page into multiple partsTechniques for managing the web page for use by PythonThe good and the bad of using CGIChapter 4: Using SSI and PythonChapter Goal: Configure Apache for use by SSI and PythonNo. of Pages: 45Sub-Topics:Configure SSI for use by PythonCreate a dummy page just for creating the layout of the page major elementsHTML sectionsUsing SSI and Python to create a dynamic HTML pageWhere to split a web page into multiple partsTechniques for managing the web page for use by SSI and PythonThe good and the bad of using SSIChapter 5: Using Django and PythonChapter Goal: Using Django and Python to create an HTML pageNo. of Pages: 40Sub-Topics:Configure Apache for use by Django and PythonCreate a dummy page just for creating the layout of the page major elementsHTML sectionsUsing Django and Python to create a dynamic HTML pageWhere to split a web page into multiple partsTechniques for managing the web page for use by Django and PythonThe good and the bad of using DjangoChapter 6: Using Flask and JinjaChapter Goal: Using Flask and Python to create an HTML pageNo. of Pages: 40Sub-Topics:Configure Apache for use by Flask and PythonCreate a dummy page just for creating the layout of the page major elementsHTML sectionsUsing Flask and Python to create a dynamic HTML pageWhere to split a web page into multiple partsTechniques for managing the web page for use by Flask and PythonThe good and the bad of using FlaskChapter 7: Comparing CGI, SSI, Django, and Flask Chapter Goal: Choosing the correct dynamic page creation systemNo. of Pages: 50Sub-Topics:List the advantages of each systemList the disadvantages of each systemChapter 8: Usage Options - CGI, SSI, Django, and FlaskChapter Goal: Choosing the correct dynamic page creation systemNo. of Pages: 50Sub-Topics:Discuss options for using multiple systemsSome things to remember
Supervised Learning with Python
Gain a thorough understanding of supervised learning algorithms by developing use cases with Python. You will study supervised learning concepts, Python code, datasets, best practices, resolution of common issues and pitfalls, and practical knowledge of implementing algorithms for structured as well as text and images datasets.You’ll start with an introduction to machine learning, highlighting the differences between supervised, semi-supervised and unsupervised learning. In the following chapters you’ll study regression and classification problems, mathematics behind them, algorithms like Linear Regression, Logistic Regression, Decision Tree, KNN, Naïve Bayes, and advanced algorithms like Random Forest, SVM, Gradient Boosting and Neural Networks. Python implementation is provided for all the algorithms. You’ll conclude with an end-to-end model development process including deployment and maintenance of the model.After reading Supervised Learning with Python you’ll have a broad understanding of supervised learning and its practical implementation, and be able to run the code and extend it in an innovative manner.WHAT YOU'LL LEARN* Review the fundamental building blocks and concepts of supervised learning using Python* Develop supervised learning solutions for structured data as well as text and images * Solve issues around overfitting, feature engineering, data cleansing, and cross-validation for building best fit models* Understand the end-to-end model cycle from business problem definition to model deployment and model maintenance * Avoid the common pitfalls and adhere to best practices while creating a supervised learning model using PythonWHO THIS BOOK IS FORData scientists or data analysts interested in best practices and standards for supervised learning, and using classification algorithms and regression techniques to develop predictive models.VAIBHAV VERDHAN has 12+ years of experience in Data Science, Machine Learning and Artificial Intelligence. An MBA with engineering background, he is a hands-on technical expert with acumen to assimilate and analyse data. He has led multiple engagements in ML and AI across geographies and across retail, telecom, manufacturing, energy and utilities domains. Currently he resides in Ireland with his family and is working as a Principal Data Scientist. Chapter 1: Introduction to Supervised LearningChapter Goal: Start the journey of the readers on supervised learningNo of pages: 30-40Sub -Topics1. Machine learning and how is it different from software engineering?2. Discuss reasons for machine learning being popular3. Compare between supervised, semi-supervised and unsupervised algorithms4. Statistical methods to get significant variables5. The use cases of machine learning and respective use cases for each of supervised, semi-supervised and unsupervised algorithmsChapter 2: Supervised Learning for Regression AnalysisChapter Goal: Embrace the core concepts of supervised learning to predict continuous variablesNo of pages: 40-50Sub - Topics1. Supervised learning algorithms for predicting continuous variables2. Explain mathematics behind the algorithms3. Develop Python solution using linear regression, decision tree, random forest, SVM and neural network4. Measure the performance of the algorithms using r square, RMSE etc.5. Compare and contrast the performance of all the algorithms6. Discuss the best practices and the common issues faced like data cleaning, null values etc.Chapter 3: Supervised Learning for Classification ProblemsChapter Goal: Discuss the concepts of supervised learning for solving classification problemsNo of pages : 30-40Sub - Topics:1. Discuss classification problems for supervised learning2. Examine logistic regression, decision tree, random forest, knn and naïve Bayes. Understand the statistics and mathematics behind each3. Discuss ROC curve, akike value, confusion matrix, precision/recall etc4. Compare the performance of all the algorithms5. Discuss the tips and tricks, best practices and common pitfalls like a bias-variance tradeoff, data imbalance etc.Chapter 4: Supervised Learning for Classification Problems-AdvancedChapter Goal: cover advanced classification algorithms for supervised learning algorithmsNo of pages:30-40Sub - Topics:1. Refresh classification problems for supervised learning2. Examine gradient boosting and extreme gradient boosting, support vector machine and neural network3. Compare the performance of all the algorithms4. Discuss the best practices and common pitfalls, tips and tricksChapter 5: End-to-End Model DeploymentChapter Goal: guide the reader on the end-to-end process of deploying a supervised learning model in productionNo of pages:25-301. Meaning of model deployment2. Various steps in the model deployment process3. Preparations to be made like settings, environment etc.4. Various use cases in the deployment5. Practical tips in model deployment
Modern Arm Assembly Language Programming
Gain the fundamentals of Armv8-A 32-bit and 64-bit assembly language programming. This book emphasizes Armv8-A assembly language topics that are relevant to modern software development. It is designed to help you quickly understand Armv8-A assembly language programming and the computational resources of Arm’s SIMD platform. It also contains an abundance of source code that is structured to accelerate learning and comprehension of essential Armv8-A assembly language constructs and SIMD programming concepts. After reading this book, you will be able to code performance-optimized functions and algorithms using Armv8- A 32-bit and 64-bit assembly language.Modern Arm Assembly Language Programming accentuates the coding of Armv8-A 32-bit and 64-bit assembly language functions that are callable from C++. Multiple chapters are also devoted to Armv8-A SIMD assembly language programming. These chapters discuss how to code functions that are used in computationally intense applications such as machine learning, image processing, audio and video encoding, and computer graphics.The source code examples were developed using the GNU toolchain (g++, gas, and make) and tested on a Raspberry Pi 4 Model B running Raspbian (32-bit) and Ubuntu Server (64-bit). It is important to note that this is a book about Armv8-A assembly language programming and not the Raspberry Pi.What You Will Learn* See essential details about the Armv8-A 32-bit and 64-bit architectures including data types, general purpose registers, floating-point and SIMD registers, and addressing modesUse the Armv8-A 32-bit and 64-bit instruction sets to create performance-enhancing functions that are callable from C++ * Employ Armv8-A assembly language to efficiently manipulate common data types and programming constructs including integers, arrays, matrices, and user-defined structures* Create assembly language functions that perform scalar floating-point arithmetic using the Armv8-A 32-bit and 64-bit instruction sets* Harness the Armv8-A SIMD instruction sets to significantly accelerate the performance of computationally intense algorithms in applications such as machine learning, image processing, computer graphics, mathematics, and statistics.* Apply leading-edge coding strategies and techniques to optimally exploit the Armv8-A 32-bit and 64-bit instruction sets for maximum possible performance WHO THIS BOOK IS FORSoftware developers who are creating programs for Armv8-A platforms and want to learn how to code performance-enhancing algorithms and functions using the Armv8-A 32-bit and 64-bit instruction sets. Readers should have previous high-level language programming experience and a basic understanding of C++.Daniel Kusswurm has over 35 years of professional experience as a software developer and computer scientist. During his career, he has developed innovative software for medical devices, scientific instruments, and image processing applications. On many of these projects, he successfully employed assembly language to significantly improve the performance of computationally intense algorithms or solve unique programming challenges. His educational background includes a BS in electrical engineering technology from Northern Illinois University along with an MS and PhD in computer science from DePaul University. Daniel Kusswurm is also the author of Modern X86 Assembly Language Programming (ISBN-13: 978-1484200650) and Modern X86 Assembly Language Programming, Second Edition (ISBN-13: 978-1484240625), both published by Apress.Modern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 1 of 6Daniel KusswurmIntroductionBook overviewTarget audienceContent overviewSource codeTerminology and conventionsAdditional resourcesChapter 1 – Armv8-32 ArchitectureArmv8-32 OverviewData typesFundamental data typesNumerical data typesSIMD data typesInternal architectureGeneral-purpose register fileApplication Program Status Register (APSR)Instruction set overviewInstruction operandsMemory addressing modesChapter 2 – Armv8-32 Core Programming – Part 1Integer arithmeticAddition and subtraction (Ch02_01)Multiplication (Ch02_02)Division (Ch02_03)Integer operationsLoad instructions (Ch02_04)Move instructions (Ch02_05, Ch02_06)Logical operations (Ch02_07)Chapter 3 – Armv8-32 Core Programming – Part 2Basic stack argumentsStack arguments (Ch03_01)Stack arguments using mixed data types (Ch03_02)Advanced stack useModern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 2 of 6Daniel KusswurmStack use with local storage (Ch03_03)Stack use with frame pointer (Ch03_04)Using the APSR condition flagsCompare instructions (Ch03_05)Looping (Ch03_06)Chapter 4 – Armv8-32 Core Programming – Part 3Integer arraysArray arithmetic (Ch04_01)Array arithmetic using mixed-type integers (Ch04_02)Integer matricesMatrix example #1 (Ch04_03)Matrix example #2 (Ch04_04)Advanced programmingAdvanced array operations (Ch04_05)Structures (Ch04_06)Chapter 5 – Armv8-32 Floating-Point ArchitectureFloating-point programming conceptsBinary encodingsNaNsDenormalsFlush to zeroFloating-point registersSingle-precision registersDouble-precision registersFPSCR (floating-point status and control register)Rounding modesExceptionsChapter 6 – Armv8-32 Floating-Point ProgrammingFloating-point arithmeticFP arithmetic example #1 (Ch06_01)FP arithmetic example #2 (Ch06_02)FP arithmetic example #3 (Ch06_03)Floating-point compares and conversionsFP compares (Ch06_04)FP conversions (Ch06_05)Floating-point arrays and matricesModern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 3 of 6Daniel KusswurmFP arrays (Ch06_06)FP matrices (Ch06_07)Advanced floating-point programmingUsing C++ floating-point library functions (Ch06_08)Chapter 7 – Armv8-32 SIMD ArchitectureArmv8-32 SIMD Architecture OverviewSIMD programming conceptsWraparound and saturated arithmeticSIMD architectureRegister setsData typesSIMD arithmetic operationsPacked integer arithmeticPacked floating-point arithmeticChapter 8 – Armv8-32 SIMD Integer ProgrammingPacked integer arithmeticAddition and subtraction (Ch08_01)Multiplication (Ch08_02)Shift and logical operations (Ch08_03)Packed integer image processingPixel minimum and maximum (Ch08_04)Mean intensity (Ch08_05)Image thresholding (Ch08_06)Chapter 9 – Armv8-32 SIMD Floating-Point ProgrammingPacked floating-point arithmeticAddition, subtraction, multiplication, division (Ch09_01)Compares (Ch09_02)Conversions (Ch09_03)Packed floating-point arraysMinimum and maximum (Ch09_04)Least squares (Ch09_05)Packed floating-point matrices4x4 matrix transposition (Ch09_06)4x4 matrix multiplication (Ch09_07)Modern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 4 of 6Daniel KusswurmChapter 10 – Armv8-64 ArchitectureArmv8-64 OverviewData typesNumerical data typesSIMD data typesInternal architectureGeneral-purpose register fileFloating-point and SIMD registersStatus flags and condition codesInstruction set overviewOperandsMemory addressing modesChapter 11 – Armv8-64 Core Programming – Part 1Integer arithmeticAddition & subtraction (Ch11_01)Multiplication (Ch11_02)Division (Ch11_03)Integer operationsLoad and store instructions (Ch11_04)Move instructions (Ch11_05)Logical instructions (Ch11_06)Shift instructions (Ch11_07)Chapter 12 – Armv8-64 Core Programming – Part2Stack arguments and local storageStack arguments using mixed data types (Ch12_01)Stack arguments with local storage (Ch12_02)Using condition codesCompare instructions (Ch12_03)Looping (Ch12_04)Integer arrays and matricesArray programming example (Ch12_05)Matrix programming example (Ch12_06)Chapter 13 – Armv8-64 Floating-Point ProgrammingFloating-point arithmeticSingle-precision arithmetic (Ch13_01)Modern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 5 of 6Daniel KusswurmDouble-precision arithmetic example #1 (Ch13_02)Double-precision arithmetic example #2 (Ch13_03)Floating-point compares and conversionsCompare instructions (Ch13_04)Conversion instructions (Ch13_05)Floating-point arrays and matricesArray programming example (Ch13_06)Matrix programming example (Ch13_07)Advanced floating-point programmingUsing C++ floating-point library functions (Ch13_08)Chapter 14 – Armv8-64 SIMD Integer ProgrammingPacked integer arithmeticAddition and subtraction (Ch14_01)Shift operations (Ch14_02)Multiplication (Ch14_03)Packed integer image processingPixel min/max (Ch14_04)Gray-scale pixel clipping (Ch14_05)Image statistics (Ch14_06)Chapter 15 – Armv8-64 SIMD Floating-Point ProgrammingPacked floating-point arithmeticAddition subtraction, multiplication, division (Ch15_01)Compares (Ch15_02)Conversions (Ch15_03)Packed floating-point arraysCorrelation coefficient (Ch15_04)Image conversion – RGB to grayscale (Ch15_05)Packed floating-point matrices4x4 matrix multiplication (Ch15_06)4x4 matrix-vector multiplication (Ch15_07)Chapter 16 – Armv8-64 Advanced SIMD ProgrammingArmv8 microarchitecture overviewOptimization guidelinesSignal processingFMA convolution (Ch16_01)Modern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 6 of 6Daniel KusswurmVector and matrix operationsVector cross products (Ch16_02)Matrix-vector products (Ch16_03)Matrix inversion (Ch16_04)Appendix A – Source Code and Software Development ToolsSource codeHardware platformHost operating systemsSetup and configurationSoftware toolsg++gasmakeBuilding and executing the source code projectsAppendix B – References and Additional ResourcesArmv8 programming referencesAlgorithm referencesSoftware development resourcesAdditional resources