Computer und IT
Cyber Breach Response That Actually Works
YOU WILL BE BREACHED—THE ONLY QUESTION IS WHETHER YOU'LL BE READYA cyber breach could cost your organization millions of dollars—in 2019, the average cost of a cyber breach for companies was $3.9M, a figure that is increasing 20-30% annually. But effective planning can lessen the impact and duration of an inevitable cyberattack. Cyber Breach Response That Actually Works provides a business-focused methodology that will allow you to address the aftermath of a cyber breach and reduce its impact to your enterprise.This book goes beyond step-by-step instructions for technical staff, focusing on big-picture planning and strategy that makes the most business impact. Inside, you’ll learn what drives cyber incident response and how to build effective incident response capabilities. Expert author Andrew Gorecki delivers a vendor-agnostic approach based on his experience with Fortune 500 organizations.* Understand the evolving threat landscape and learn how to address tactical and strategic challenges to build a comprehensive and cohesive cyber breach response program* Discover how incident response fits within your overall information security program, including a look at risk management* Build a capable incident response team and create an actionable incident response plan to prepare for cyberattacks and minimize their impact to your organization* Effectively investigate small and large-scale incidents and recover faster by leveraging proven industry practices* Navigate legal issues impacting incident response, including laws and regulations, criminal cases and civil litigation, and types of evidence and their admissibility in courtIn addition to its valuable breadth of discussion on incident response from a business strategy perspective, Cyber Breach Response That Actually Works offers information on key technology considerations to aid you in building an effective capability and accelerating investigations to ensure your organization can continue business operations during significant cyber events.ANDREW GORECKI is a cybersecurity professional with experience across various IT and cybersecurity disciplines, including engineering, operations, and incident response. Originally from Europe, he provided consulting services across various industry sectors in the U.S., the UK, and other European countries. At the time of writing, he manages a team of incident response consultants within the X-Force IRIS competency of IBM Security where he leads investigations into large-scale breaches for Fortune 500 organizations, delivers proactive incident response services, and provides executive-level consulting on building and optimizing incident response programs. Foreword xxiiiIntroduction xxvCHAPTER 1 UNDERSTANDING THE BIGGER PICTURE 1Evolving Threat Landscape 2Identifying Threat Actors 2Cyberattack Lifecycle 4Cyberattack Preparation Framework 5Cyberattack Execution Framework 6Defining Cyber Breach Response 8Events, Alerts, Observations, Incidents, and Breaches 9Events 9Alerts 9Observations 10Incidents 10Breaches 11What is Cyber Breach Response? 12Identifying Drivers for Cyber Breach Response 13Risk Management 13Conducting Risk Management 13Risk Assessment Process 14Managing Residual Risk 17Cyber Threat Intelligence 18What is Cyber Threat Intelligence? 18Importance of Cyber Threat Intelligence 19Laws and Regulations 20Compliance Considerations 20Compliance Requirements for Cyber Breach Response 21Changing Business Objectives 22Incorporating Cyber Breach Response into aCybersecurity Program 23Strategic Planning 23Designing a Program 24Implementing Program Components 25Program Operations 26Continual Improvement 27Strategy Development 27Strategic Assessment 28Gap Analysis 28Maturity Assessment 30Strategy Definition 32Vision and Mission Statement 32Goals and Objectives 33Establishing Requirements 33Defining a Target Operating Model 35Developing a Business Case and Executive Alignment 35Strategy Execution 37Enacting an Incident Response Policy 37Assigning an Incident Response Team 38Creating an Incident Response Plan 38Documenting Legal Requirements 38Roadmap Development 39Governance 40Establishing Policies 40Enterprise Security Policy 41Issue-Specific Policies 41Identifying Key Stakeholders 42Executive Leadership 42Project Steering Committee 42Chief Information Security Officer 43Stakeholders with Interest in Cyber Breach Response 43Business Alignment 44Continual Improvement 44Necessity to Determine if the Program is Effective 45Changing Threat Landscape 45Changing Business Objectives 45Summary 46Notes 47CHAPTER 2 BUILDING A CYBERSECURITY INCIDENT RESPONSE TEAM 51Defining a CSIRT 51CSIRT History 52The Role of a CSIRT in the Enterprise 52Defining Incident Response Competencies and Functions 55Proactive Functions 55Developing and Maintaining Procedures 56Conducting Incident Response Exercises 56Assisting with Vulnerability Identification 57Deploying, Developing, and Tuning Tools 58Implementing Lessons Learned 59Reactive Functions 59Digital Forensics and Incident Response 59Cyber Threat Intelligence 60Malware Analysis 60Incident Management 61Creating an Incident Response Team 61Creating an Incident Response Mission Statement 62Choosing a Team Model 62Centralized Team Model 63Distributed Team Model 64Hybrid Team Model 65An Integrated Team 66Organizing an Incident Response Team 66Tiered Model 66Competency Model 68Hiring and Training Personnel 69Technical Skills 69Soft Skills 71Pros and Cons of Security Certifications 72Conducting Effective Interviews 73Retaining Incident Response Talent 74Establishing Authority 75Full Authority 75Shared Authority 76Indirect Authority 76No Authority 76Introducing an Incident Response Team to the Enterprise 77Enacting a CSIRT 78Defining a Coordination Model 78Communication Flow 80Incident Officer 80Incident Manager 81Assigning Roles and Responsibilities 82Business Functions 82Human Resources 82Corporate Communications 83Corporate Security 83Finance 84Other Business Functions 85Legal and Compliance 85Legal Counsel 85Compliance Functions 86Information Technology Functions 87Technical Groups 87Disaster Recovery 88Outsourcing Partners and Vendors 89Senior Management 89Working with Outsourcing Partners 90Outsourcing Considerations 91Proven Track Record of Success 91Offered Services and Capabilities 91Global Support 92Skills and Experience 92Outsourcing Costs and Pricing Models 92Establishing Successful Relationships with Vendors 93Summary 94Notes 95CHAPTER 3 TECHNOLOGY CONSIDERATIONS IN CYBER BREACH INVESTIGATIONS 97Sourcing Technology 98Comparing Commercial vs. Open Source Tools 98Commercial Tools 98Open Source Software 98Other Considerations 99Developing In-House Software Tools 100Procuring Hardware 101Acquiring Forensic Data 102Forensic Acquisition 102Order of Volatility 103Disk Imaging 103System Memory Acquisition 105Tool Considerations 106Forensic Acquisition Use Cases 107Live Response 108Live Response Considerations 109Live Response Tools 109Live Response Use Cases 112Incident Response Investigations in Virtualized Environments 113Traditional Virtualization 115Cloud Computing 115Forensic Acquisition 115Log Management in Cloud Computing Environments 117Leveraging Network Data in Investigations 118Firewall Logs and Network Flows 118Proxy Servers and Web Gateways 120Full-Packet Capture 120Identifying Forensic Evidence in Enterprise Technology Services 123Domain Name System 123Dynamic Host Confi guration Protocol 125Web Servers 125Databases 126Security Tools 127Intrusion Detection and Prevention Systems 127Web Application Firewalls 127Data Loss Prevention Systems 128Antivirus Software 128Endpoint Detection and Response 129Honeypots and Honeynets 129Log Management 130What is Logging? 130What is Log Management? 132Log Management Lifecycle 133Collection and Storage 134Agent-Based vs. Agentless Collection 134Log Management Architectures 135Managing Logs with a SIEM 137What is SIEM? 138SIEM Considerations 139Summary 140Notes 141CHAPTER 4 CRAFTING AN INCIDENT RESPONSE PLAN 143Incident Response Lifecycle 143Preparing for an Incident 144Detecting and Analyzing Incidents 145Detection and Triage 146Analyzing Incidents 146Containment, Eradication, and Recovery 147Containing a Breach 147Eradicating a Threat Actor 148Recovering Business Operations 149Post-Incident Activities 149Understanding Incident Management 150Identifying Process Components 151Defining a Process 151Process Controls 153Process Enablers 155Process Interfaces 155Roles and Responsibilities 158Service Levels 159Incident Management Workfl ow 160Sources of Incident Notifi cations 160Incident Classifi cation and Documentation 162Incident Categorization 163Severity Assignment 163Capturing Incident Information 167Incident Escalations 169Hierarchical Escalations 169Functional Escalation 169Creating and Managing Tasks 169Major Incidents 170Incident Closure 171Crafting an Incident Response Playbook 171Playbook Overview 171Identifying Workfl ow Components 173Detection 173Analysis 174Containment and Eradication 176Recovery 176Other Workflow Components 177Post-Incident Evaluation 177Vulnerability Management 177Purpose and Objectives 178Vulnerability Management Lifecycle 178Integrating Vulnerability Management and Risk Management 180Lessons Learned 180Lessons-Learned Process Components 181Conducting a Lessons-Learned Meeting 183Continual Improvement 184Continual Improvement Principles 184The Deming Cycle 184DIKW Hierarchy 185The Seven-Step Improvement Process 187Step 1: Define a Vision for Improvement 188Step 2: Define Metrics 188Step 3: Collect Data 189Step 4: Process Data 190Step 5: Analyze Information 191Step 6: Assess Findings and Create Plan 191Step 7: Implement the plan 192Summary 192Notes 193CHAPTER 5 INVESTIGATING AND REMEDIATING CYBER BREACHES 195Investigating Incidents 196Determine Objectives 197Acquire and Preserve Data 198Perform Analysis 200Contain and Eradicate 202Conducting Analysis 202Digital Forensics 203Digital Forensics Disciplines 203Timeline Analysis 205Other Considerations in Digital Forensics 206Cyber Threat Intelligence 207Cyber Threat Intelligence Lifecycle 208Identifying Attacker Activity with Cyber Threat Intelligence 209Categorizing Indicators 212Malware Analysis 214Classifying Malware 214Static Analysis 216Dynamic Analysis 217Malware Analysis and Cyber Threat Intelligence 217Threat Hunting 218Prerequisites to Threat Hunting 218Threat Hunting Lifecycle 219Reporting 221Evidence Types 223System Artifacts 223Persistent Artifacts 223Volatile Artifacts 225Network Artifacts 226Security Alerts 227Remediating Incidents 228Remediation Process 229Establishing a Remediation Team 230Remediation Lead 231Remediation Owner 232Remediation Planning 233Business Considerations 233Technology Considerations 234Logistics 235Assessing Readiness 235Consequences of Alerting the Attacker 236Developing an Execution Plan 237Containment and Eradication 238Containment 238Eradication 239Monitoring for Attacker Activity 240Summary 241Notes 242CHAPTER 6 LEGAL AND REGULATORY CONSIDERATIONS IN CYBER BREACH RESPONSE 243Understanding Breaches from a Legal Perspective 244Laws, Regulations, and Standards 244United States 245European Union 246Standards 246Materiality in Financial Disclosure 247Cyber Attribution 248Motive, Opportunity, Means 248Attributing a Cyber Attack 249Engaging Law Enforcement 251Cyber Insurance 252Collecting Digital Evidence 252What is Digital Evidence? 253Digital Evidence Lifecycle 253Information Governance 254Identification 254Preservation 255Collection 255Processing 255Reviewing 256Analysis 256Production 257Presentation 258Admissibility of Digital Evidence 258Federal Rules of Evidence 258Types of Evidence 260Direct Evidence 260Circumstantial Evidence 260Admission of Digital Evidence in Court 261Evidence Rules 261Hearsay Rule 261Business Records Exemption Rule 262Best Evidence 262Working with Legal Counsel 263Attorney-Client Privilege 263Attorney Work-Product 264Non-testifying Expert Privilege 264Litigation Hold 265Establishing a Chain of Custody 265What is a Chain of Custody? 266Establishing a Defensible Protocol 266Traditional Forensic Acquisition 267Live Response and Logical Acquisition 268Documenting a Defensible Protocol 269Documentation 269Accuracy 270Auditability and Reproducibility 270Collection Methods 270Data Privacy and Cyber Breach Investigations 271What is Data Privacy? 271Handling Personal Data During Investigations 272Enacting a Policy to Support Investigations 272Cyber Breach Investigations and GDPR 273Data Processing and Cyber Breach Investigations 274Establishing a Lawful Basis for the Processing of Personal Data 275Territorial Transfer of Personal Data 276Summary 277Notes 278Index 281
Django Standalone Apps
Develop standalone Django apps to serve as the reusable building blocks for larger Django projects. This book explores best practices for publishing these apps, with special considerations for testing Django apps, and strategies for extracting existing functionality into a separate package.This jumpstart reference is divided into four distinct and sequential sections, all containing short, engaging chapters that can be read in a modular fashion, depending on your level of experience. The first section covers the structure and scope of standalone Django apps. The second section digs into questions about pulling code out of existing projects and into new standalone apps for reuse. The third section details additional, advanced technical best practices toward making standalone apps as broadly useful as possible. The fourth and final section covers strategies for managing a published Django app.Django Standalone Apps is the perfect resource for developers who have at least some prior experience working with Django web applications and want to simplify their deployments and share their knowledge as open source packages.WHAT YOU'LL LEARN* Scope a standalone Django app project for optimum usefulness* Extract code from existing projects to reuse* Test a standalone app outside of your Django project* Reuse your own code for increased delivery cadence and code quality* Review best practices for maintaining a Django app packageWHO THIS BOOK IS FORProfessional developers who work with Django. Deep expertise is not required or expected, but readers should have working familiarity with Django.Ben is cofounder of a web development consultancy and has been working professionally with Django for almost a decade. He has architected and led development on Django-based web applications including, custom content management systems, media platforms, and multi tenant back office solutions.He lives in the Rochester, NY, area, and graduated from the University of Virginia with a degree in Economics. Previously he managed the data and analytics services for a market research firm and was an IT strategy consultant for a global management consulting firm. His own standalone apps include Django Organizations, a long term project for managing multi user accounts in Django projects.Chapter 1: Defining the Scope of a Django Standalone AppChapter 2: Structuring Django Standalone AppsChapter 3: TestingChapter 4: Model MigrationsChapter 5: TemplatesChapter 6: Using Static FilesChapter 7: Namespacing in Your AppChapter 8: Creating a Basic PackageChapter 9: Scooping and Drawing BoundariesChapter 10: Separating Your AppChapter 11: Adding Your App Back InChapter 12: Handling App SettingsChapter 13: InternationalizationChapter 14: Managing Version CompatibilityChapter 15: Mixed Dependency SupportChapter 16: ModularityChapter 17: Better PackagingChapter: 18: LicensingChapter: 19: Documenting Your Standalone AppChapter 20: Additional TestingChapter 21: AutomatingChapter 22: Databases and other backend specific considerationsChapter 23: CollaboratingChapter 24: Using App Templates
Securing Critical Infrastructures
This book explains the modern techniques required to protect a cyber security critical infrastructure. Three fundamental techniques are presented, namely: network access control, physical access control, encryption and decryption techniques.Dr. Kamara had won two awards for community building in higher education and is an author of two other books:The Implications of Internet Usage, 2013The Impacts of Cognitive Theory on Human and Computer Science Development, 2016
Microsoft Dynamics 365 Business Central
Das Anwenderbuch für den kompakten Einstieg in Microsoft Dynamics 365 Business Central!Als integrierte Unternehmenslösung unterstützt Microsoft Dynamics 365 Business Central durchgängig die Geschäftsprozesse in Unternehmen. Der Buchaufbau orientiert sich an den Unternehmensbereichen Beschaffung, Vertrieb, Lager, Produktion und Produktionsplanung sowie Finanzmanagement.Ausgehend von der Bedienung des Systems, Aspekten zur Systemeinrichtung und zugrunde liegenden Konzepten erklären die Autoren am Beispiel der verschiedenen Rollen, wie Sie die zentralen Geschäftsabläufe im Unternehmen abwickeln – vom Einkauf über die Produktion bis hin zum Vertrieb.Neben dem Umgang mit der Software lernen Sie auch, wie Geschäftsprozesse in Dynamics 365 Business Central abgebildet werden. Mithilfe von Schrittanleitungen lösen Sie zentrale Aufgaben im jeweiligen Fachgebiet und vertiefen Ihre neu erworbenen Kenntnisse. Michaela Gayer ist als Microsoft Certified Trainer für Microsoft Dynamics NAV tätig. Sie arbeitet bereits seit den 1990er Jahren mit dem Produkt und sammelte dabei Erfahrung in Programmierung, Consulting, Projektleitung, Verkauf und Training. Seit 2013 ist sie auch erfolgreich als Autorin für Videotrainings tätig.Christian Hauptmann ist freiberuflicher Trainer und Berater für Dynamics NAV in Österreich und Deutschland. Er arbeitet seit 20 Jahren mit Microsoft Dynamics NAV in zahlreichen Projekten und verfügt über umfangreiches Wissen in den verschiedenen Bereichen der ERP-Software.Jürgen Ebert arbeitet seit fast 25 Jahren als Berater, Trainer und Programmierer im Microsoft Dynamics NAV-Umfeld. Seit mehr als 10 Jahren ist er selbstständiger Microsoft Certified Business Management Solutions Specialist.Zu seinen Kunden zählen Marktführer in ihrer Branche ebenso wie „hidden champions“.
Game Design und Produktion
Dieses Grundlagenlehrbuch für angehende Computerspieldesigner erläutert zunächst die allgemeinen Zusammenhänge des menschlichen Spielens. Dabei kommt es dem Autor auch darauf an, die Übergänge zu den neuen vernetzten Medien und den Gemeinschaften in den sogenannten virtuellen Räumen zu betrachten.Im weiteren Verlauf wird der Stand der Technik bezüglich der Produktion von Computerspielen beschrieben, wobei auf die Spielentwicklung (Game Design) ebenso eingegangen wird wie auf die Programmierung, Funktionsweisen und Jobprofile der Spieleindustrie. Hier liegt der Schwerpunkt auf allgemeinen Prinzipien, da die Computertechnologie einem sehr schnellen Wandel unterliegt.Das Buch verweist in Kästen und Anmerkungen auf einschlägige Literatur, Spiele und andere Medien und soll so zur Vertiefung des Gebiets anregen. Zudem gibt das Buch einen Überblick über Spielformen von Online- und Offline-Spielen und klärt Kernbegriffe des Aufbaus von Computerspielen. Anschaulich geschrieben, vermittelt dieses Lehrbuch wichtige Grundlagen des Designs und der Entwicklung von Computerspielen vor dem Hintergrund moderner spieltheoretischer Grundlagen.In der zweiten Auflage: Aktualisierung der Beispiele, neue Engines (Kapitel über die Unreal Engine), Technik, Technologie, Skills. Prof. Gunther Rehfeld lehrt am Department Medientechnik der HAW Hamburg und forscht zu Online-Computerspielen, Dramaturgie und aktivierenden Spielformaten.
Die Methode Building Information Modeling
Arnim J. Spengler und Jacqueline Peter bieten einen Schnelleinstieg in die BIM-Methodik. Zunächst geben sie einen grundsätzlichen Einblick, zeigen die Bedeutung von BIM auf und klären die wichtigsten Begrifflichkeiten des Themenfeldes. Danach wird die Methodik aus den unterschiedlichen Sichtweisen aller Akteure im Bauwesen entlang des Lebenszyklus eines Bauwerks beleuchtet sowie die wichtigsten Normen, Richtlinien und Vereinigungen vorgestellt und untereinander in Bezug gesetzt. Eine SWOT-Analyse zeigt kurz und prägnant Stärken, Schwächen, Risiken und Chancen von BIM. Im Anschluss gewähren die Autoren einen schnellen Einblick in die Forschung und geben einen kurzen Ausblick über neue Technologien wie Blockchain, Künstliche Intelligenz, Robotik und IoT in Verbindung mit der BIM-Methodik. Die Autoren: Arnim J. Spengler, M.Sc., forscht an der Universität Duisburg-Essen im Bereich Robotik und digitales Bauen, ist Teil der Projektgruppe „BIM-Competence-Center“ des MHKBG NRW, Mitgründer des BIM-Clusters NRW und des Construction-Tech Startups BuildersMind GmbH. Jacqueline Peter, M.Sc., lehrt und forscht am Institut für Digitalisierung im Bauwesen an der Universität Duisburg-Essen und ist stellvertretendes Koordinierungsmitglied im BIM-Cluster NRW.
Linux Bible
THE INDUSTRY FAVORITE LINUX GUIDELinux Bible, 10th Edition is the ultimate hands-on Linux user guide, whether you're a true beginner or a more advanced user navigating recent changes. this updated tenth edition covers the latest versions of Red Hat Enterprise Linux (RHEL 8), Fedora 30, and Ubuntu 18.04 LTS. It includes information on cloud computing, with new guidance on containerization, Ansible automation, and Kubernetes and OpenShift. With a focus on RHEL 8, this new edition teaches techniques for managing storage, users, and security, while emphasizing simplified administrative techniques with Cockpit. Written by a Red Hat expert, this book provides the clear explanations and step-by-step instructions that demystify Linux and bring the new features seamlessly into your workflow.This useful guide assumes a base of little or no Linux knowledge, and takes you step by step through what you need to know to get the job done.* Get Linux up and running quickly* Master basic operations and tackle more advanced tasks* Get up to date on the recent changes to Linux server system management* Bring Linux to the cloud using Openstack and Cloudforms* Simplified Linux administration through the Cockpit Web Interface * Automated Linux Deployment with Ansible * Learn to navigate Linux with Amazon (AWS), Google (GCE), and Microsofr Azure Cloud services Linux Bible, 10th Edition is the one resource you need, and provides the hands-on training that gets you on track in a flash.CHRISTOPHER NEGUS has been teaching and writing about Linux and UNIX for more than 25 years. He is an instructor and principal technical writer for Red Hat, Inc., and the author of dozens of Linux and UNIX books, including Red Hat Linux Bible (all editions), CentOS Bible, Fedora Bible, Ubuntu Linux Toolbox, Linux Troubleshooting Bible, Linux Toys, and Linux Toys II.Acknowledgments xiIntroduction xxxvPART I: GETTING STARTED 1CHAPTER 1: STARTING WITH LINUX 3Understanding What Linux Is 4Understanding How Linux Differs from Other Operating Systems 6Exploring Linux History 7Free-flowing UNIX culture at Bell Labs 7Commercial UNIX 9GNU transitions UNIX to freedom 11BSD loses some steam 12Linus builds the missing piece 13OSI open source definition 14Understanding How Linux Distributions Emerged 16Choosing a Red Hat distribution 16Choosing Ubuntu or another Debian distribution 19Finding Professional Opportunities with Linux Today 19Understanding how companies make money with Linux 20Becoming Red Hat certified 21Summary 25CHAPTER 2: CREATING THE PERFECT LINUX DESKTOP 27Understanding Linux Desktop Technology 28Starting with the Fedora GNOME Desktop Live image 30Using the GNOME 3 Desktop 31After the computer boots up 31Setting up the GNOME 3 desktop 38Extending the GNOME 3 desktop 39Starting with desktop applications 41Stopping the GNOME 3 desktop 46Using the GNOME 2 Desktop 46Using the Metacity window manager 48Changing GNOME’s appearance 49Using the GNOME panels 50Adding 3D effects with AIGLX 54Summary 57Exercises 57PART II: BECOMING A LINUX POWER USER 59CHAPTER 3: USING THE SHELL 61About Shells and Terminal Windows 62Using the shell prompt 63Using a Terminal window 63Using virtual consoles 65Choosing Your Shell 65Running Commands 66Understanding command syntax 67Locating commands 70Recalling Commands Using Command History 72Command-line editing 73Command-line completion 75Command-line recall 76Connecting and Expanding Commands 78Piping between commands 78Sequential commands 79Background commands 79Expanding commands 80Expanding arithmetic expressions 80Expanding variables 80Using Shell Variables 81Creating and using aliases 81Exiting the shell 83Creating Your Shell Environment 84Configuring your shell 84Setting your prompt 85Adding environment variables 87Getting Information about Commands 88Summary 90Exercises 90CHAPTER 4: MOVING AROUND THE FILESYSTEM 93Using Basic Filesystem Commands 96Using Metacharacters and Operators 98Using file-matching metacharacters 98Using file-redirection metacharacters 99Using brace expansion characters 101Listing Files and Directories 101Understanding File Permissions and Ownership 105Changing permissions with chmod (numbers) 106Changing permissions with chmod (letters) 107Setting default file permission with umask 108Changing file ownership 109Moving, Copying, and Removing Files 109Summary 111Exercises 111CHAPTER 5: WORKING WITH TEXT FILES 113Editing Files with vim and vi 113Starting with vi 115Skipping around in the file 119Searching for text 119Using ex mode 120Learning more about vi and vim 120Finding Files 120Using locate to find files by name 121Searching for files with find 122Searching in files with grep 128Summary 129Exercises 129CHAPTER 6: MANAGING RUNNING PROCESSES 131Understanding Processes 131Listing Processes 132Listing processes with ps 132Listing and changing processes with top 134Listing processes with System Monitor 136Managing Background and Foreground Processes 137Starting background processes 138Using foreground and background commands 139Killing and Renicing Processes140Killing processes with kill and killall 140Setting processor priority with nice and renice 142Limiting Processes with cgroups 143Summary 144Exercises 145CHAPTER 7: WRITING SIMPLE SHELL SCRIPTS 147Understanding Shell Scripts 147Executing and debugging shell scripts 148Understanding shell variables 149Performing arithmetic in shell scripts 152Using programming constructs in shell scripts 153Trying some useful text manipulation programs 159Using simple shell scripts 161Summary 163Exercises 163PART III: BECOMING A LINUX SYSTEM ADMINISTRATOR 165CHAPTER 8: LEARNING SYSTEM ADMINISTRATION 167Understanding System Administration 167Using Graphical Administration Tools 169Using the root User Account 174Exploring Administrative Commands, Configuration Files, and Log Files 178Administrative commands 178Administrative configuration files 179Using Other Administrative Accounts 185Checking and Configuring Hardware 186Checking your hardware 187Managing removable hardware 189Working with loadable modules 191Summary 193Exercises 193CHAPTER 9: INSTALLING LINUX 195Choosing a Computer 196Installing Fedora from Live Media 198Installing Red Hat Enterprise Linux from Installation Media 201Understanding Cloud-Based Installations 204Installing Linux in the Enterprise 205Exploring Common Installation Topics 207Upgrading or installing from scratch 207Dual booting 208Installing Linux to run virtually 209Using installation boot options 210Using specialized storage 213Partitioning hard drives 214Using the GRUB boot loader 217Summary 219Exercises 219CHAPTER 10: GETTING AND MANAGING SOFTWARE 221Managing Software on the Desktop 221Going Beyond the Software Window 223Understanding Linux RPM and DEB Software Packaging 224Understanding DEB packaging 225Understanding RPM packaging 226Managing RPM Packages with YUM 229Transitioning from yum to dnf 229Understanding how yum works 229Using YUM with third-party software repositories 233Managing software with the yum command 233Installing, Querying, and Verifying Software with the rpm Command 241Installing and removing packages with rpm 241Querying rpm information 242Verifying RPM packages 244Managing Software in the Enterprise 245Summary 246Exercises 247CHAPTER 11: MANAGING USER ACCOUNTS 249Creating User Accounts 249Adding users with useradd 252Setting user defaults 255Modifying users with usermod 257Deleting users with userdel 258Understanding Group Accounts 259Using group accounts 259Creating group accounts 260Managing Users in the Enterprise 261Setting permissions with Access Control Lists 262Centralizing User Accounts 269Summary 270Exercises 270CHAPTER 12: MANAGING DISKS AND FILESYSTEMS 273Understanding Disk Storage 273Partitioning Hard Disks 275Understanding partition tables 275Viewing disk partitions 276Creating a single-partition disk 277Creating a multiple-partition disk 281Using Logical Volume Manager Partitions 285Checking an existing LVM 286Creating LVM logical volumes 289Growing LVM logical volumes 290Mounting Filesystems 291Supported filesystems 291Enabling swap areas 293Disabling swap area 294Using the fstab file to define mountable file systems 295Using the mount command to mount file systems 297Mounting a disk image in loopback 298Using the umount command 299Using the mkfs Command to Create a Filesystem 300Managing Storage with Cockpit 301Summary 303Exercises 303PART IV: BECOMING A LINUX SERVER ADMINISTRATOR 305CHAPTER 13: UNDERSTANDING SERVER ADMINISTRATION 307Starting with Server Administration 308Step 1: Install the server 308Step 2: Configure the server 310Step 3: Start the server 311Step 4: Secure the server 312Step 5: Monitor the server 314Checking and Setting Servers 316Managing Remote Access with the Secure Shell Service 316Starting the openssh-server service 317Using SSH client tools 318Using key-based (passwordless) authentication 324Configuring System Logging 326Enabling system logging with rsyslog 326Watching logs with logwatch 331Checking System Resources with sar 332Checking System Space 334Displaying system space with df 334Checking disk usage with du 334Finding disk consumption with find 335Managing Servers in the Enterprise 336Summary 336Exercises 337CHAPTER 14: ADMINISTERING NETWORKING 339Configuring Networking for Desktops 340Checking your network interfaces 342Configuring network interfaces 349Configuring a network proxy connection 352Configuring Networking from the Command Line 353Configure networking with nmtui 354Editing a NetworkManager TUI connection 354Understanding networking configuration files 355Setting alias network interfaces 360Setting up Ethernet channel bonding 361Setting custom routes 363Configuring Networking in the Enterprise 364Configuring Linux as a router 364Configuring Linux as a DHCP server 365Configuring Linux as a DNS server 365Configuring Linux as a proxy server 366Summary 366Exercises 367CHAPTER 15: STARTING AND STOPPING SERVICES 369Understanding the Initialization Daemon (init or systemd) 370Understanding the classic init daemons 371Understanding systemd initialization 377Checking the Status of Services 384Checking services for SysVinit systems 385Stopping and Starting Services 387Stopping and starting SysVinit services 387Enabling Persistent Services 391Configuring persistent services for SysVinit 391Configuring a Default Runlevel or Target Unit 394Configuring the SysVinit default runlevel 394Adding New or Customized Services 396Adding new services to SysVinit 396Adding new services to systemd 399Summary 401Exercises 401CHAPTER 16: CONFIGURING A PRINT SERVER 403Common UNIX Printing System 403Setting Up Printers 405Adding a printer automatically 405Using web-based CUPS administration 406Using the Print Settings window 409Working with CUPS Printing 415Configuring the CUPS server (cupsdconf) 415Starting the CUPS server 417Configuring CUPS printer options manually 417Using Printing Commands 418Printing with lp 419Listing status with lpstat -t 419Removing print jobs with lprm 419Configuring Print Servers 420Configuring a shared CUPS printer 420Configuring a shared Samba printer 422Summary 424Exercises 424CHAPTER 17: CONFIGURING A WEB SERVER 427Understanding the Apache Web Server 427Getting and Installing Your Web Server 428Understanding the httpd package 428Installing Apache 431Starting Apache 432Securing Apache 433Understanding the Apache configuration files 435Adding a virtual host to Apache 440Allowing users to publish their own web content 442Securing your web traffic with SSL/TLS 443Troubleshooting Your Web Server 449Checking for configuration errors 449Accessing forbidden and server internal errors 451Summary 453Exercises 453CHAPTER 18: CONFIGURING AN FTP SERVER 455Understanding FTP 455Installing the vsftpd FTP Server 457Starting the vsftpd Service 458Securing Your FTP Server 461Opening up your firewall for FTP 461Configuring SELinux for your FTP server 463Relating Linux file permissions to vsftpd 465Configuring Your FTP Server 465Setting up user access 465Allowing uploading 467Setting up vsftpd for the Internet 468Using FTP Clients to Connect to Your Server 469Accessing an FTP server from Firefox 470Accessing an FTP server with the lftp command 470Using the gFTP client 472Summary 473Exercises 473CHAPTER 19: CONFIGURING A WINDOWS FILE SHARING (SAMBA) SERVER 475Understanding Samba 475Installing Samba 476Starting and Stopping Samba 478Starting the Samba (smb) service 478Starting the NetBIOS (nmbd) name server 480Stopping the Samba (smb) and NetBIOS (nmb) services 481Securing Samba 482Configuring firewalls for Samba 482Configuring SELinux for Samba 484Configuring Samba host/user permissions 486Configuring Samba 486Configuring the [global] section 486Configuring the [homes] section487Configuring the [printers] section 489Accessing Samba Shares 493Accessing Samba shares in Linux 493Accessing Samba shares in Windows 496Using Samba in the Enterprise 497Summary 497Exercises 498CHAPTER 20: CONFIGURING AN NFS FILE SERVER 499Installing an NFS Server 502Starting the NFS service 502Sharing NFS Filesystems 503Configuring the /etc/exports file 504Exporting the shared filesystems 507Securing Your NFS Server 508Opening up your firewall for NFS 508Allowing NFS access in TCP wrappers 510Configuring SELinux for your NFS server 511Using NFS Filesystems 512Viewing NFS shares 512Manually mounting an NFS filesystem 512Mounting an NFS filesystem at boot time 513Using autofs to mount NFS filesystems on demand 517Unmounting NFS filesystems 520Summary 521Exercises 521CHAPTER 21: TROUBLESHOOTING LINUX 523Boot-Up Troubleshooting 523Understanding Startup Methods 524Starting from the firmware (BIOS or UEFI) 526Troubleshooting the GRUB boot loader 528GRUB 2 Boot loader 530Starting the kernel 532Troubleshooting Software Packages 542Fixing RPM databases and cache 545Troubleshooting Networking 547Troubleshooting outgoing connections 547Troubleshooting incoming connections 550Troubleshooting Memory 553Uncovering memory issues 554Troubleshooting in Rescue Mode 559Summary 561Exercises 561PART V: LEARNING LINUX SECURITY TECHNIQUES 563CHAPTER 22: UNDERSTANDING BASIC LINUX SECURITY 565Implementing Physical Security 565Implementing disaster recovery 566Securing user accounts 566Securing passwords 570Securing the filesystem 576Managing software and services 579Advanced implementation 580Monitoring Your Systems 580Monitoring log files 581Monitoring user accounts 584Monitoring the filesystem 587Auditing and Reviewing Linux 595Conducting compliance reviews 595Conducting security reviews 596Summary 596Exercises 597CHAPTER 23: UNDERSTANDING ADVANCED LINUX SECURITY 599Implementing Linux Security with Cryptography 599Understanding hashing 600Understanding encryption/decryption 602Implementing Linux cryptography 610Implementing Linux Security with PAM 618Understanding the PAM authentication process 619Administering PAM on your Linux system 622Obtaining more information on PAM 633Summary 633Exercises 633CHAPTER 24: ENHANCING LINUX SECURITY WITH SELINUX 635Understanding SELinux Benefits 635Understanding How SELinux Works 637Understanding Type Enforcement 637Understanding Multi-Level Security 638Implementing SELinux security models 639Configuring SELinux 645Setting the SELinux mode 645Setting the SELinux policy type 647Managing SELinux security contexts 648Managing SELinux policy rule packages 651Managing SELinux via Booleans 653Monitoring and Troubleshooting SELinux 654Understanding SELinux logging 654Troubleshooting SELinux logging 656Troubleshooting common SELinux problems 657Putting It All Together 659Obtaining More Information on SELinux 659Summary 660Exercises 660CHAPTER 25: SECURING LINUX ON A NETWORK 663Auditing Network Services 663Evaluating access to network services with nmap 665Using nmap to audit your network services advertisements 668Working with Firewalls 672Understanding firewalls 673Implementing firewalls 674Summary 688Exercises 688PART VI: ENGAGING WITH CLOUD COMPUTING 691CHAPTER 26: SHIFTING TO CLOUDS AND CONTAINERS 693Understanding Linux Containers 694Namespaces 695Container registries 695Base images and layers 696Starting with Linux Containers 697Pulling and running containers 697Starting and stopping containers 701Building a container image 702Tagging and pushing an image to a registry 705Using containers in the enterprise 706Summary 706Exercises 707CHAPTER 27: USING LINUX FOR CLOUD COMPUTING 709Overview of Linux and Cloud Computing 710Trying Basic Cloud Technology 713Setting Up a Small Cloud 714Configuring hypervisors 715Configuring storage 718Creating virtual machines 720Managing virtual machines 724Migrating virtual machines 725Summary 727Exercises 727CHAPTER 28: DEPLOYING LINUX TO THE CLOUD 729Getting Linux to Run in a Cloud 729Creating Linux Images for Clouds 731Configuring and running a cloud-init cloud instance 731Investigating the cloud instance 733Cloning the cloud instance 734Using cloud-init in enterprise computing 738Using OpenStack to Deploy Cloud Images 739Starting from the OpenStack Dashboard 739Using Amazon EC2 to Deploy Cloud Images 744Summary 746Exercises 746CHAPTER 29: AUTOMATING APPS AND INFRASTRUCTURE WITH ANSIBLE 749Understanding Ansible 750Exploring Ansible Components 751Inventories 751Playbooks 752Stepping Through an Ansible Deployment 753Installing Ansible 756Running Ad-Hoc Ansible Commands 760Automating Tasks with Ansible Tower Automation Framework 762Summary 763Exercises 763CHAPTER 30: DEPLOYING APPLICATIONS AS CONTAINERS WITH KUBERNETES 765Understanding Kubernetes 766Kubernetes masters 766Kubernetes workers 767Kubernetes applications 767Kubernetes interfaces 768Trying Kubernetes 768Getting Kubernetes 769Running the Kubernetes Basics tutorial 771Enterprise-Quality Kubernetes with OpenShift 782Summary 783Exercises 783PART VII: APPENDIXES 785Appendix A: Media 787Appendix B: Exercise Answers 797Index 863
Pro ASP.NET Core 3
Now in its 8th edition, PRO ASP.NET CORE has been thoroughly updated for ASP.NET Core 3 and online for ASP.NET Core 5 and .NET 5.0. This comprehensive, full-color guide is the only book you need to learn ASP.NET Core development.Professional developers get ready to produce leaner applications for the ASP.NET Core platform. This edition puts ASP.NET Core 3 into context, and takes a deep dive into the tools and techniques required to build modern, extensible web applications. New features and capabilities such as MVC 3, Razor Pages, Blazor Server, and Blazor WebAssembly are covered, along with demonstrations of how they can be applied in practice.Following the same popular format and style found in previous editions, author Adam Freeman explains how to get the most out of ASP.NET Core 3. Starting with the nuts-and-bolts topics, he teaches readers about middleware components, built-in services, request model binding, and more. Moving along, he introduces increasingly more complex topics and advanced features, including endpoint routing and dependency injection.Written for professionals wanting to incorporate the latest functionality of ASP.NET Core 3 into their projects, this book also serves as a complete reference on ASP.NET Core. Beginners with some background in Microsoft web development will also greatly benefit from the in-depth coverage provided throughout.WHAT YOU WILL LEARN:* Build a solid foundation and skill set for working with the entire ASP.NET Core platform* Apply ASP.NET Core 3 and ASP.NET Core 5 features in your developer environment; plentiful reusable templates* See how to create RESTful web services, web applications, and client-side applications* Leverage existing knowledge to efficiently get up and running with new programming modelsADAM FREEMAN is an experienced IT professional who has held senior positions in a range of companies, most recently serving as chief technology officer and chief operating officer of a global bank. Now retired, he spends his time writing and long-distance running.“The Rolls-Royce of ASP.NET books, (or if you’re American, the Cadillac). Very thorough!”LES JACKSON, MCSD, DOTNET PLAYBOOK“The author’s instruction is direct, easy to understand and supplemented with clear code examples... Whether you are a beginner learning ASP.NET Core 3.1 app development, or an experienced professional ready to master advanced concepts, I consider this book a 'must have' for you!"JEREMY LIKNESS, SENIOR PROGRAM MANAGER, MICROSOFT“…the best single resource for teaching MVC web apps using ASP.NET. “CHARLES CARTER, MSCS, MSWE, JD, CLOUD APPLICATION DEVELOPMENT INSTRUCTOR, MICROSOFT SOFTWARE AND SYSTEMS ACADEMYADAM FREEMAN is an experienced IT professional who has held senior positions in a range of companies, most recently serving as chief technology officer and chief operating officer of a global bank. Now retired, he spends his time writing and long-distance running.Part 11. Putting ASP.NET Core into Context2. Getting Started3. Your First ASP.NET Core Application4. Using the Development Tools5. Essential C# Features6. Unit Testing ASP.NET Core Applications7. SportsStore8. SportsStore: Navigation & Cart9. SportsStore: Completing the Cart10. SportsStore: Adminstration11. SportsStore: Security & DeploymentPart 212. Understanding the ASP.NET Core Platform13. Using URL Routing14. Using Dependency Injection15. Using the Platform Features, Part 116. Using the Platform Features, Part 217. Working with DataPart 318. Creating the Example Project19. Creating RESTFul Web Services20. Advanced Web Service Features21. Using Controllers with Views22. Using Controllers with Views, Part 223. Using Razor Pages24. Using View Components25. Using Tag Helpers26. Using the Built-In Tag Helpers27. Using the Forms Tag Helpers28. Using Model Binding29. Using Model Validation30. Using Filters31. Creating Form ApplicationsPart 432. Creating the Example Application33. Using Blazor Server, Part 134. Using Blazor Server Part 235. Advanced Blazor Features36. Blazor Forms and Data37. Blazor Web Assembly38. Using ASP.NET Core Identity39. Applying ASP.NET Core Identity
SAS Stored Processes
Customize the SAS Stored Process web application to create amazing tools for end users. This book shows you how to use stored processes—SAS programs stored on a server and executed as required by requesting applications.Never before have there been so many ways to turn data into information and build applications with SAS. This book teaches you how to use the web technologies that you frequently see used on impressive websites. By using SAS STORED PROCESSES, you will be able to build applications that exploit CSS, JavaScript, and HTML libraries and enable you to build powerful and impressive web applications using SAS as the backend.While this approach is not common with SAS users, some have had amazing results. People who have SAS skills usually do not have web development skills, and those with web development skills usually do not have SAS skills. Some people have both skills but are unaware of how to connect them with the SAS Stored Process web application. This book shows you how to leverage your skills for success.WHAT YOU WILL LEARN* Know the benefits of stored processes* Write your own tools in SAS* Make a stored process generate its own HTML menu* Pass data between stored processes* Use stored processes to generate pure JavaScript* Utilize data generated by SAS* Convert a SAS program into a stored processWHO THIS BOOK IS FORSAS programmers looking to improve their existing programming skills to develop web applications, and programming managers who want to make better use of the SAS software they already licensePHILIP MASON is a SAS expert with 34 years of experience. He shares his expertise with others in many industries. Over the last few years he has been working on building web applications using SAS and other technologies. For most of the last decade Phil has enjoyed working around SAS architecture, and has been mentoring and training people in SAS. He has worked with big data, business intelligence, analytics, and tuning and building web applications using SAS Stored Processes, HTML, and JavaScript. He is the author of several books on SAS.
Building Single Page Applications in .NET Core 3
Attention .NET developers who no longer want to use JavaScript for your front end. Quickly and efficiently learn how to use C# for your single-page application (SPA) thanks to Blazor.Today’s reality is that most modern applications are web-based and if you want the same user experience as a desktop application, you need to be able to create a single-page application. While there are multiple frameworks and libraries to choose from (including Angular, React, and VueJS), you still need to know how to code in JavaScript. But now there is another option from Microsoft. Blazor is an open-source framework that enables developers to create web applications using C# and HTML, and everything you need to get started is covered in this guide. You will learn the steps, through build-along coding examples, that will allow you to use the same language for both the front end and the back end of your application.This book is designed to get you comfortable creating a single-page application in the shortest time possible. Get ready to create a complete business application that teaches and reinforces the skills you need in a Blazor production environment.WHAT YOU WILL LEARN* Develop the front end of an application using C# and .NET Core* Use this quick-start for .NET developers who need to improve their application with a single-page front end* Take a code-first approach that models an actual business application* Gain insights for developing a high-functioning and maintainable application* Study guidance on repurposing your .NET skill setWHO THIS BOOK IS FORC# and .NET developers who have some experience in web developmentMICHELE APONTE is a programmer working with Java, .NET, and JavaScript at software and IT consulting companies in his native Italy since 1993. Combining his training, consulting, and development skills, in 2013 Michele founded “Blexin” to help customers migrate older software and systems to new technologies in order to improve their businesses. Passionate about programming, Michele embraces sharing with the community. He founded DotNetCampania, a Microsoft User Group in 2008, and has organized many regional conferences. Recognized as a Microsoft MVP, he often presents on Microsoft and JavaScript topics at tech conferences throughout Italy. Chapter 1: The Case for BlazorChapter 2: Blazor Server vs Blazor WebAssemblyChapter 3: Create Your Single Page ApplicationChapter 4: Build Your Reusable Blazor LibraryChapter 5: Deploy Your Application
Thinking in Pandas
Understand and implement big data analysis solutions in pandas with an emphasis on performance. This book strengthens your intuition for working with pandas, the Python data analysis library, by exploring its underlying implementation and data structures.Thinking in Pandas introduces the topic of big data and demonstrates concepts by looking at exciting and impactful projects that pandas helped to solve. From there, you will learn to assess your own projects by size and type to see if pandas is the appropriate library for your needs. Author Hannah Stepanek explains how to load and normalize data in pandas efficiently, and reviews some of the most commonly used loaders and several of their most powerful options. You will then learn how to access and transform data efficiently, what methods to avoid, and when to employ more advanced performance techniques. You will also go over basic data access and munging in pandas and the intuitive dictionary syntax. Choosing the right DataFrame format, working with multi-level DataFrames, and how pandas might be improved upon in the future are also covered.By the end of the book, you will have a solid understanding of how the pandas library works under the hood. Get ready to make confident decisions in your own projects by utilizing pandas—the right way.WHAT YOU WILL LEARN* Understand the underlying data structure of pandas and why it performs the way it does under certain circumstances* Discover how to use pandas to extract, transform, and load data correctly with an emphasis on performance* Choose the right DataFrame so that the data analysis is simple and efficient.* Improve performance of pandas operations with other Python librariesWHO THIS BOOK IS FORSoftware engineers with basic programming skills in Python keen on using pandas for a big data analysis project. Python software developers interested in big data.Hannah Stepanek is a software developer with a passion for performance and is an open source advocate. She has over seven years of industry experience programming in Python and spent about two of those years implementing a data analysis project using pandas.Hannah was born and raised in Corvallis, OR, and graduated from Oregon State University with a major in Electrical Computer Engineering. She enjoys engaging with the software community, often giving talks at local meetups as well as larger conferences. In early 2019, she spoke at PyCon US about the pandas library and at OpenCon Cascadia about the benefits of open source software. In her spare time she enjoys riding her horse Sophie and playing board games.
Modern Data Mining Algorithms in C++ and CUDA C
Discover a variety of data-mining algorithms that are useful for selecting small sets of important features from among unwieldy masses of candidates, or extracting useful features from measured variables.As a serious data miner you will often be faced with thousands of candidate features for your prediction or classification application, with most of the features being of little or no value. You’ll know that many of these features may be useful only in combination with certain other features while being practically worthless alone or in combination with most others. Some features may have enormous predictive power, but only within a small, specialized area of the feature space. The problems that plague modern data miners are endless. This book helps you solve this problem by presenting modern feature selection techniques and the code to implement them. Some of these techniques are:* Forward selection component analysis* Local feature selection* Linking features and a target with a hidden Markov model* Improvements on traditional stepwise selection* Nominal-to-ordinal conversionAll algorithms are intuitively justified and supported by the relevant equations and explanatory material. The author also presents and explains complete, highly commented source code.The example code is in C++ and CUDA C but Python or other code can be substituted; the algorithm is important, not the code that's used to write it.WHAT YOU WILL LEARN* Combine principal component analysis with forward and backward stepwise selection to identify a compact subset of a large collection of variables that captures the maximum possible variation within the entire set.* Identify features that may have predictive power over only a small subset of the feature domain. Such features can be profitably used by modern predictive models but may be missed by other feature selection methods.* Find an underlying hidden Markov model that controls the distributions of feature variables and the target simultaneously. The memory inherent in this method is especially valuable in high-noise applications such as prediction of financial markets.* Improve traditional stepwise selection in three ways: examine a collection of 'best-so-far' feature sets; test candidate features for inclusion with cross validation to automatically and effectively limit model complexity; and at each step estimate the probability that our results so far could be just the product of random good luck. We also estimate the probability that the improvement obtained by adding a new variable could have been just good luck. Take a potentially valuable nominal variable (a category or class membership) that is unsuitable for input to a prediction model, and assign to each category a sensible numeric value that can be used as a model input.WHO THIS BOOK IS FORIntermediate to advanced data science programmers and analysts.Timothy Masters has a PhD in statistics and is an experienced programmer. His dissertation was in image analysis. His career moved in the direction of signal processing, and for the last 25 years he's been involved in the development of automated trading systems in various financial markets.1) Introduction 72) Forward Selection Component Analysis 11A) Introduction to Forward Selection Component Analysis 12B) The Mathematics and Code Examples 16Maximizing the Explained Variance 18Code for the Variance Maximization Criterion 20Backward Refinement 24Multi-Threading Backward Refinement 28Orthogonalizing Ordered Components 36C) Putting It All Together 39Components From a Forward-Only Subset 44Components From a Backward Refined Subset 46D) An Example With Contrived Variables 483) Local Feature Selection 53A) Intuitive Overview of the Algorithm 54What This Algorithm Reports 60B) A Brief Detour: the Simplex Algorithm 62The Linear Programming Problem 63Interfacing to the Simplex Class 64A Little More Detail 67C) A More Rigorous Approach to LFS 69Intra-Class and Inter-Class Separation 73Computing the Weights 77Maximizing Inter-Class Separation 81Minimizing Intra-Class Separation 86Testing a Trial Beta 88A Quick Note on Threads 93D) CUDA Computation of Weights 94Integrating the CUDA Code Into the Algorithm 95Initializing the CUDA Hardware 97Computing Differences from the Current Case 100 Computing the Distance Matrix 102Computing the Minimum Distances 104Computing the Terms for the Weight Equation 112Transposing the Term Matrix 113Summing the Terms For the Weights 114Moving the Weights to the Host 116E) An Example of Local Feature Selection 117F) A Note on Run Time 1184) Memory in Time Series Features 119A) A Gentle Mathematical Overview 122The Forward Algorithm 123The Backward Algorithm 128Correct Alpha and Beta, For Those Who Care 131B) Some Mundane Computations 136Means and Covariances 136Densities 138The Multivariate Normal Density Function 139C) Starting Parameters 141 Outline of the Initialization Algorithm 141Perturbing Means 142Perturbing Covariances 143Perturbing Transition Probabilities 144A Note on Random Number Generators 145D) The Complete Optimization Algorithm 146Computing State Probabilities 147Updating the Means and Covariances 151Updating Initial and Transition Probabilities 153 E) Assessing HMM Memory in a Time Series 159F) Linking Features to a Target 164Linking HMM States to the Target 173A Contrived and Inappropriate Example 183A Sensible and Practical Example 1865) Stepwise Selection on Steroids 189A) The Feature Evaluation Model 192Code For the Foundation Model 193B) The Cross-Validated Performance Measure 198C) The Stepwise Algorithm 201Finding the First Variable 207Adding a Variable to an Existing Model 210D) Demonstrating the Algorithm Three Ways 2146) Nominal-to-Ordinal Conversion 217A) Implementation Overview 221B) Testing For a Legitimate Relationship 222C) An Example From Equity Price Changes 223D) Code for Nominal-to-Ordinal Conversion 227The Constructor 228Printing the Table of Counts 232Computing the Mapping Function 234Monte-Carlo Permutation Tests 2377) Index 353
Dialog zwischen Mensch und Maschine
Dieses Buch beschreibt, wie sich die Interaktion zwischen Menschen und Maschinen in den nächsten Jahren dramatisch verändern wird und wie Unternehmen sowie Institutionen den größtmöglichen Nutzen aus dieser Entwicklung ziehen können. Conversational User Interfaces (CUI) sind die nächste Evolutionsstufe der Schnittstelle zwischen Menschen und den Inhalten oder Diensten des Internets. Wenn Nutzer in natürlicher Sprache mit ihnen reden, können intelligente Assistants, Voice-Systeme und Bots wertvolle Antworten geben und Handlungen auslösen: Sie buchen eine Fahrkarte, verlängern einen Vertrag oder starten eine Überweisung. So entsteht ein neues Ökosystem, das viele Prozesse in Unternehmen und im Alltag revolutionieren wird. Alle Marktteilnehmer müssen sich neu positionieren und verorten. Dieses Buch hilft dabei, die Funktionsweisen und Konsequenzen beim Einsatz von CUIs grundlegend zu verstehen und beantwortet unter anderem folgende Fragen: Woraus setzen sich CUIs und intelligente Assistenten zusammen? Wie funktioniert Natural Language Generation? Welche technischen Herausforderungen entstehen für Unternehmen? Welche Rolle spielt Werbung in dem neuen Ökosystem? Wie funktioniert der berührungslose Konsum? Eine inspirierende Lektüre, die Sie dabei unterstützt, sich in den nächsten Jahren unter den Leadern zu positionieren. Extra: eine Anleitung zum Gestalten Ihres eigenen Test-Bots – dem Friesenbot. Kostenlos für Leser: Testen Sie Ihr Wissen mit Fragen und Antworten zum Buch in der Springer-Nature-Flashcards-App.
Robust Methods for Dense Monocular Non-Rigid 3D Reconstruction and Alignment of Point Clouds
Vladislav Golyanik proposes several new methods for dense non-rigid structure from motion (NRSfM) as well as alignment of point clouds. The introduced methods improve the state of the art in various aspects, i.e. in the ability to handle inaccurate point tracks and 3D data with contaminations. NRSfM with shape priors obtained on-the-fly from several unoccluded frames of the sequence and the new gravitational class of methods for point set alignment represent the primary contributions of this book.ABOUT THE AUTHOR:VLADISLAV GOLYANIK is currently a postdoctoral researcher at the Max Planck Institute for Informatics in Saarbrücken, Germany. The current focus of his research lies on 3D reconstruction and analysis of general deformable scenes, 3D reconstruction of human body and matching problems on point sets and graphs. He is interested in machine learning (both supervised and unsupervised), physics-based methods as well as new hardware and sensors for computer vision and graphics (e.g., quantum computers and event cameras).VLADISLAV GOLYANIK is currently a postdoctoral researcher at the Max Planck Institute for Informatics in Saarbrücken, Germany. The current focus of his research lies on 3D reconstruction and analysis of general deformable scenes, 3D reconstruction of human body and matching problems on point sets and graphs. He is interested in machine learning (both supervised and unsupervised), physics-based methods as well as new hardware and sensors for computer vision and graphics (e.g., quantum computers and event cameras).Scalable Dense Non-rigid Structure from Motion.- Shape Priors in Dense Non-rigid Structure from Motion.- Probabilistic Point Set Registration with Prior Correspondences.- Point Set Registration Relying on Principles of Particle Dynamics.
Discord For Dummies
CONNECT WITH THE NEWEST AND MOST VIBRANT ONLINE COMMUNITYThough it was originally a virtual meeting place primarily for gamers, Discord’s userbase has quintupled in size in just two years and branched to include discussions on a multitude of topics. Discord For Dummies shows readers how to connect with the massive Discord audience, both within and well beyond the gaming niche.Celebrated writer, broadcaster, gamer, and technologist Tee Morris teaches readers how to set up a profile, establish channels, and join other conversations. Along the way, he’ll show you how to grow your audience and utilize Discord in your business. You’ll also learn to:· Play by the rules of Discord, both written and unwritten· Build a Discord studio· Create a community· Acquire must-have accessoriesWith an audience of over 250,000,000 active users, you can’t afford to ignore the Discord community. Discord For Dummies is perfect for businesses seeking a larger audience, established media looking for a presence in private chat, and groups looking to organize their communication.TEE MORRIS is a writer, broadcaster, and cutting-edge technologist. An early adopter of using social media to reach audiences for his sci-fi and fantasy novels, he continues to blog, podcast, and stream content of all kinds. He's the author of Twitch For Dummies and co-author of Podcasting For Dummies.
Don't Teach Coding
THE DEFINITIVE RESOURCE FOR UNDERSTANDING WHAT CODING IS, DESIGNED FOR EDUCATORS AND PARENTSEven though the vast majority of teachers, parents, and students understand the importance of computer science in the 21st century, many struggle to find appropriate educational resources. Don't Teach Coding: Until You Read This Book fills a gap in current knowledge by explaining exactly what coding is and addressing why and how to teach the subject. Providing a historically grounded, philosophically sensitive description of computer coding, this book helps readers understand the best practices for teaching computer science to their students and their children.The authors, experts in teaching computer sciences to students of all ages, offer practical insights on whether coding is a field for everyone, as opposed to a field reserved for specialists. This innovative book provides an overview of recent scientific research on how the brain learns coding, and features practical exercises that strengthen coding skills. Clear, straightforward chapters discuss a broad range of questions using principles of computer science, such as why we should teach students to code and is coding a science, engineering, technology, mathematics, or language? Helping readers understand the principles and issues of coding education, this book:* Helps those with no previous background in computer science education understand the questions and debates within the field* Explores the history of computer science education and its influence on the present* Views teaching practices through a computational lens* Addresses why many schools fail to teach computer science adequately* Explains contemporary issues in computer science such as the language wars and trends that equate coding with essential life skills like reading and writingDon't Teach Coding: Until You Read This Book is a valuable resource for K-12 educators in computer science education and parents wishing to understand the field to help chart their children’s education path.STEPHEN R. FOSTER, PHD, is a researcher, author, and co-founder of several social enterprises with a mission to teach teachers how to teach coding. An expert in video game end-user programming and computer science education, Stephen has coded to generate peer-reviewed scientific results, coded to build educational technology solutions for teachers and students, and coded to bootstrap educational startups and non-profit organizations. LINDSEY D. HANDLEY, PHD, is a teacher, researcher, entrepreneur, author, and co-founder, with Stephen Foster, of ThoughtSTEM and MetaCoders.org, which have helped hundreds of thousands of beginning coders. She is a passionate advocate of both using science to improve education and of improving the teaching of science worldwide. About the Authors xiAcknowledgments xiiiINTRODUCTION 1Who is This Book For? 3Let’s Do It! 3CHAPTER 1: PROLOGUES 5A Wizard’s Tale 5The Sorting of Wizards 5The Call to Action 10A Language Without 10Our Strange Protagonists 10(cons 'Apple 'Soft) 13Tower of Babel 15Confessions 16Penances 17A Language Within 17Installing Languages 17Writing in Tongues 19Kiss, Gift, Poison 20Nova: Va o no va? 22Hello, Hello, Hello 23Languages Without 25Tongueless Languages 27Babbage’s Calculus Club 29Diffs 31Finite Descriptions of the Infinite 31Bottling the Human Will 33Machines Anchor Language 35Now That It’s Out of Our System 39Languages Within 40Signed Languages 42Silent Battles 43Our Strange Citizens of Broca’s Area 49CHAPTER 2: BEGINNINGS 51A Wizard’s Tale 51The Leap of Faith 51The Forge 53They Slept 56A Language Without 56Syntax – Building Materials 59A Meta-Linguistic Meander 60Back to Syntax 62Semantics: “When your eyes see this, do this with your mind . . . ” 63Checking Assumptions 65We Have a “Language.” Now What? 66A Language Within 66Cats 66Stories and Back Stories 71Ab(stract) 74Shortest Path: Dijkstra to You 75A Brave New Syntax 79Languages Without 81The Unwritten, Unwritable Backstory 83Three Old Friends: Language, Math, Algorithms 84Algorithms of Antiquity 88A Brief Story of Stories 90Languages Within 91Foreign Language: A Friend, Perhaps a Mentor 96Zapping Broca’s Area 97More Monkey Business 98CHAPTER 3: MIDDLES 101A Wizard’s Tale 101Purgatory 101Descent 103Ascent 105A Language Without 106(Stories (Within Stories)) 106Order Word 111Easing the Transition 113Magic Tricks 114A Language Within 122Implicit Learning 122Animation 122Napoleon’s Risky Maneuver 126Noughts and Crosses 131Round Stories; Square Frames 132Languages Without 133Illusions of Mind 133Dactylonomy: Digits to Digital 134Externalization 137The Spark of the Pascaline 139The Best of all Possible Languages 141Automatons 144King Ludd 147The Song for the Luddites 149Languages Within 152The Machine Within 152Potions for the Mind 152Science and Schools 154Mindset 156Metacognition 158Deliberate Practice 160Second LanguageAcquisition 160Krash Course 162Fluency and Expertise 164What It Feels Like to Upgrade Your Own Wetware 166Meta-teaching 168A Universal Educational Language 169The Loop of Being Human 173CHAPTER 4: ENDS 175A Wizard’s Tale 176Learn to Teach; Teach to Learn 176Montage 178Loop Back 183The Beginning 184A Language Without 184Our Road Thus Far 184Definitions 185Becoming the Machine 187Loops 188Mad Libs 190Turing Completeness 191Ifs 196Extending Language 199A Language Within 200So lernt man lernen: Der Weg zum Erfolg 200Designing Your Deck 207The System 210Unburdening Yourself 213Parting Exercises 214Languages Without 215The Flood and the Tower 215Soft is the New Hard, and the Old Hard 216Abstraction’s Arrow 218Languages Within 224The Education Bottleneck 224History’s First Coding Students 225(environment (mind (fluency))) 228Co-Authoring the EdTech Story 233Babbages and Lovelaces of Education 238This Final Section Has No Name 240CONCLUSION 241Next Steps: Learning Sciences 241Next Steps: Languages to Learn 242Next Steps: Coding 242Next Steps: Software Engineering 242Next Steps: Hacker Culture 243Next Steps: History 243Naming Things: Computer Science 244Naming Things: Philosophy of Mind 245Naming Things: Learning Science 245Thank You 246Bibliography 247Index 259
Artificial Intelligence for Business
Artificial Intelligence for Business: A Roadmap for Getting Started with AI will provide the reader with an easy to understand roadmap for how to take an organization through the adoption of AI technology. It will first help with the identification of which business problems and opportunities are right for AI and how to prioritize them to maximize the likelihood of success. Specific methodologies are introduced to help with finding critical training data within an organization and how to fill data gaps if they exist. With data in hand, a scoped prototype can be built to limit risk and provide tangible value to the organization as a whole to justify further investment. Finally, a production level AI system can be developed with best practices to ensure quality with not only the application code, but also the AI models. Finally, with this particular AI adoption journey at an end, the authors will show that there is additional value to be gained by iterating on this AI adoption lifecycle and improving other parts of the organization. JEFFREY L. COVEYDUC is Vice President and Master Inventor at IBM. His diverse background consists of positions that encompass the creation of innovative, technologically advanced global AI solutions and client adoption. JASON L. ANDERSON is a Partner and CTO with the data consultancy, Comp Three, where he established a new AI line of business. He is also a former IBM Cognitive Architect and Master Inventor. He received both BS and MS degrees in Computer Science from California Polytechnic State University, SLO. Preface ixAcknowledgments xiCHAPTER 1 INTRODUCTION 1Case Study #1: FANUC Corporation 2Case Study #2: H&R Block 4Case Study #3: BlackRock, Inc. 5How to Get Started 6The Road Ahead 10Notes 11CHAPTER 2 IDEATION 13An Artificial Intelligence Primer 13Becoming an Innovation-Focused Organization 23Idea Bank 25Business Process Mapping 27Flowcharts, SOPs, and You 28Information Flows 29Coming Up with Ideas 31Value Analysis 31Sorting and Filtering 34Ranking, Categorizing, and Classifying 35Reviewing the Idea Bank 37Brainstorming and Chance Encounters 38AI Limitations 41Pitfalls 44Action Checklist 45Notes 46CHAPTER 3 DEFINING THE PROJECT 47The What, Why, and How of a Project Plan 48The Components of a Project Plan 49Approaches to Break Down a Project 53Project Measurability 62Balanced Scorecard 63Building an AI Project Plan 64Pitfalls 66Action Checklist 69CHAPTER 4 DATA CURATION AND GOVERNANCE 71Data Collection 73Leveraging the Power of Existing Systems 81The Role of a Data Scientist 81Feedback Loops 82Making Data Accessible 84Data Governance 85Are You Data Ready? 89Pitfalls 90Action Checklist 94Notes 94CHAPTER 5 PROTOTYPING 97Is There an Existing Solution? 97Employing vs. Contracting Talent 99Scrum Overview 101User Story Prioritization 103The Development Feedback Loop 105Designing the Prototype 106Technology Selection 107Cloud APIs and Microservices 110Internal APIs 112Pitfalls 112Action Checklist 114Notes 114CHAPTER 6 PRODUCTION 117Reusing the Prototype vs. Starting from a Clean Slate 117Continuous Integration 119Automated Testing 124Ensuring a Robust AI System 128Human Intervention in AI Systems 129Ensure Prototype Technology Scales 131Cloud Deployment Paradigms 133Cloud API’s SLA 135Continuing the Feedback Loop 135Pitfalls 135Action Checklist 137Notes 137CHAPTER 7 THRIVING WITH AN AI LIFECYCLE 139Incorporate User Feedback 140AI Systems Learn 142New Technology 144Quantifying Model Performance 145Updating and Reviewing the Idea Bank 147Knowledge Base 148Building a Model Library 150Contributing to Open Source 155Data Improvements 157With Great Power Comes Responsibility 158Pitfalls 159Action Checklist 161Notes 161CHAPTER 8 CONCLUSION 163The Intelligent Business Model 164The Recap 164So What are You Waiting For? 168APPENDIX A AI EXPERTS 169AI Experts 169Chris Ackerson 169Jeff Bradford 173Nathan S. Robinson 175Evelyn Duesterwald 177Jill Nephew 179Rahul Akolkar 183Steven Flores 187APPENDIX B ROADMAP ACTION CHECKLISTS 191Step 1: Ideation 191Step 2: Defining the Project 191Step 3: Data Curation and Governance 192Step 4: Prototyping 192Step 5: Production 193Thriving with an AI Lifecycle 193APPENDIX C PITFALLS TO AVOID 195Step 1: Ideation 195Step 2: Defining the Project 196Step 3: Data Curation and Governance 199Step 4: Prototyping 203Step 5: Production 204Thriving with an AI Lifecycle 206Index 209
Modern Big Data Architectures
PROVIDES AN UP-TO-DATE ANALYSIS OF BIG DATA AND MULTI-AGENT SYSTEMSThe term Big Data refers to the cases, where data sets are too large or too complex for traditional data-processing software. With the spread of new concepts such as Edge Computing or the Internet of Things, production, processing and consumption of this data becomes more and more distributed. As a result, applications increasingly require multiple agents that can work together. A multi-agent system (MAS) is a self-organized computer system that comprises multiple intelligent agents interacting to solve problems that are beyond the capacities of individual agents. Modern Big Data Architectures examines modern concepts and architecture for Big Data processing and analytics.This unique, up-to-date volume provides joint analysis of big data and multi-agent systems, with emphasis on distributed, intelligent processing of very large data sets. Each chapter contains practical examples and detailed solutions suitable for a wide variety of applications. The author, an internationally-recognized expert in Big Data and distributed Artificial Intelligence, demonstrates how base concepts such as agent, actor, and micro-service have reached a point of convergence—enabling next generation systems to be built by incorporating the best aspects of the field. This book:* Illustrates how data sets are produced and how they can be utilized in various areas of industry and science* Explains how to apply common computational models and state-of-the-art architectures to process Big Data tasks* Discusses current and emerging Big Data applications of Artificial IntelligenceModern Big Data Architectures: A Multi-Agent Systems Perspective is a timely and important resource for data science professionals and students involved in Big Data analytics, and machine and artificial learning.DOMINIK RYŻKO is an Assistant Professor at the Institute of Computer Science at Warsaw University of Technology. His research interests include Big Data and Distributed Artificial Intelligence. He is widely published, serves on program committees at international conferences, and is Vice President of artificial intelligence and analytics at Adform, a global ad-tech platform provider. He also spent three years at Allegro Group as the Chief Data Scientist where he oversaw Data Science activities, design and methodology of experiments, and model building. List of Figures ixList of Tables xiPreface xiiiAcknowledgments xvAcronyms xviiCHAPTER 1 INTRODUCTION 11.1 Motivation 11.2 Assumptions 31.3 For Whom is This Book? 41.4 Book Structure 4CHAPTER 2 EVOLUTION OF IT ARCHITECTURES AND PARADIGMS 72.1 Evolution of IT Architectures 72.1.1 Monolith 72.1.2 Service Oriented Architecture 92.1.3 Microservices 122.2 Actors and Agents 152.2.1 Actors 152.2.2 Agents 172.3 From ACID to BASE, CAP, and NoSQL – The Database (R)evolution 222.4 The Cloud 242.5 From Distributed Sensor Networks to the Internet of Things and Cyber-Physical Systems 272.6 The Rise of Big Data 28CHAPTER 3 SOURCES OF DATA 313.1 The Internet 323.1.1 The Semantic Web 323.1.2 Linked Data 353.1.3 Knowledge Graphs 363.1.4 Social Media 383.1.5 Web Mining 383.2 Scientific Data 403.2.1 Biomedical Data 403.2.2 Physics and Astrophysics Data 413.2.3 Environmental Sciences 443.3 Industrial Data 453.3.1 Smart Factories 453.3.2 SmartGrid 473.3.3 Aviation 473.4 Internet of Things 48CHAPTER 4 BIG DATA TASKS 514.1 Recommender Systems 514.2 Search 524.3 Ad-tech and RTB Algorithms 554.4 Cross-Device Graph Generation 574.5 Forecasting and Prediction Systems 584.6 Social Media Big Data 594.7 Anomaly and Fraud Detection 614.8 New Drug Discovery 634.9 Smart Grid Control and Monitoring 644.10 IoT and Big Data Applications 65CHAPTER 5 CLOUD COMPUTING 675.1 Cloud Enabled Architectures 675.1.1 Cloud Management Platforms 675.1.2 Efficient Cloud Computing 735.1.3 Distributed Storage Systems 755.2 Agents and the Cloud 825.2.1 Multi-agent Versus Cloud Paradigms 835.2.2 Agents in the Cloud 83CHAPTER 6 BIG DATA ARCHITECTURES 876.1 Big Data Computation Models 876.1.1 MapReduce 876.1.2 Directed Acyclic Graph Models 896.1.3 All-Pairs 926.1.4 Very Large Bitmap Operations 936.1.5 Message Passing Interface 946.1.6 Graphical Processing Unit Computing 956.2 Publish-Subscribe Systems 976.3 Stream Processing 996.3.1 Information Flow Processing Concepts 996.3.2 Stream Processing Systems 1016.4 Higer Level Big Data Architectures 1106.4.1 Spark 1106.4.2 Lambda 1126.4.3 Multi-Agent View of the Lambda Architecture 1136.4.4 Questioning the Lambda 1156.5 Industry and Other Approaches 1166.6 Actor and Agent-Based Big Data Architectures 118CHAPTER 7 BIG DATA ANALYTICS, MINING, AND MACHINE LEARNING 1217.1 To SQL or Not to SQL 1227.1.1 SQL Hadoop Interfaces 1237.1.2 From Shark to SparkSQL 1257.2 Big Data Mining and Machine Learning 1287.2.1 Graph Mining 1337.2.2 Agent Based Machine Learning and Data Mining 134CHAPTER 8 PHYSICALLY DISTRIBUTED SYSTEMS – MOBILE CLOUD, INTERNET OF THINGS, EDGE COMPUTING 1378.1 Mobile Cloud 1388.2 Edge and Fog Computing 1458.2.1 Business Case: Mobile Context Aware Recommender System 1478.3 Internet of Things 1488.3.1 IoT Fundamentals 1488.3.2 IoT and the Cloud 1518.3.3 MAS in IoT 156CHAPTER 9 SUMMARY 159Bibliography 161Index 179
Die Digitalisierung der Controlling-Funktion
Der digitale Wandel hat die Unternehmen fest im Griff. Auf die Controlling-Funktion wirkt sich die Digitalisierung mehrdimensional aus und verändert Controlling-Prozesse, Controlling-Methoden sowie das Rollenbild des Controllers. Dieses Herausgeberwerk zeigt auf, wie die Chancen der Digitalisierung für die Controlling-Funktion wertschöpfend genutzt werden können. Die Autoren beschreiben einzelne Dimensionen der Digitalisierung im Controlling und vermitteln notwendige Grundlagen und Konzepte. Fallbeispiele aus der Controlling-Praxis ergänzen die theoretischen Grundlagen und zeigen branchenübergreifende Lösungsansätze auf.
Recent Advances in Hybrid Metaheuristics for Data Clustering
AN AUTHORITATIVE GUIDE TO AN IN-DEPTH ANALYSIS OF VARIOUS STATE-OF-THE-ART DATA CLUSTERING APPROACHES USING A RANGE OF COMPUTATIONAL INTELLIGENCE TECHNIQUESRecent Advances in Hybrid Metaheuristics for Data Clustering offers a guide to the fundamentals of various metaheuristics and their application to data clustering. Metaheuristics are designed to tackle complex clustering problems where classical clustering algorithms have failed to be either effective or efficient. The authors—noted experts on the topic—provide a text that can aid in the design and development of hybrid metaheuristics to be applied to data clustering. The book includes performance analysis of the hybrid metaheuristics in relationship to their conventional counterparts. In addition to providing a review of data clustering, the authors include in-depth analysis of different optimization algorithms. The text offers a step-by-step guide in the build-up of hybrid metaheuristics and to enhance comprehension. In addition, the book contains a range of real-life case studies and their applications. This important text:* Includes performance analysis of the hybrid metaheuristics as related to their conventional counterparts* Offers an in-depth analysis of a range of optimization algorithms* Highlights a review of data clustering* Contains a detailed overview of different standard metaheuristics in current use* Presents a step-by-step guide to the build-up of hybrid metaheuristics* Offers real-life case studies and applicationsWritten for researchers, students and academics in computer science, mathematics, and engineering, Recent Advances in Hybrid Metaheuristics for Data Clustering provides a text that explores the current data clustering approaches using a range of computational intelligence techniques. SOURAV DE, PhD, is an Associate Professor of Computer Science and Engineering at Cooch Behar Government Engineering College, West Bengal, India. SANDIP DEY, PhD, is an Assistant Professor of Computer Science at Sukanta Mahavidyalaya, Dhupguri, Jalpaiguri, India. SIDDHARTHA BHATTACHARYYA, PhD, is a Professor of Computer Science and Engineering at CHRIST (Deemed to be University), Bangalore, India. List of Contributors xiiiSeries Preface xvPreface xvii1 METAHEURISTIC ALGORITHMS IN FUZZY CLUSTERING 1Sourav De, Sandip Dey, and Siddhartha Bhattacharyya1.1 Introduction 11.2 Fuzzy Clustering 11.2.1 Fuzzy c-means (FCM) clustering 21.3 Algorithm 21.3.1 Selection of Cluster Centers 31.4 Genetic Algorithm 31.5 Particle Swarm Optimization 51.6 Ant Colony Optimization 61.7 Artificial Bee Colony Algorithm 71.8 Local Search-Based Metaheuristic Clustering Algorithms 71.9 Population-Based Metaheuristic Clustering Algorithms 81.9.1 GA-Based Fuzzy Clustering 81.9.2 PSO-Based Fuzzy Clustering 91.9.3 Ant Colony Optimization–Based Fuzzy Clustering 101.9.4 Artificial Bee Colony Optimization–Based Fuzzy Clustering 101.9.5 Differential Evolution–Based Fuzzy Clustering 111.9.6 Firefly Algorithm–Based Fuzzy Clustering 121.10 Conclusion 13References 132 HYBRID HARMONY SEARCH ALGORITHM TO SOLVE THE FEATURE SELECTION FOR DATA MINING APPLICATIONS 19Laith Mohammad Abualigah, Mofleh Al-diabat, Mohammad Al Shinwan, Khaldoon Dhou, Bisan Alsalibi, Essam Said Hanandeh, and Mohammad Shehab2.1 Introduction 192.2 Research Framework 212.3 Text Preprocessing 222.3.1 Tokenization 222.3.2 StopWords Removal 222.3.3 Stemming 232.3.4 Text Document Representation 232.3.5 TermWeight (TF-IDF) 232.4 Text Feature Selection 242.4.1 Mathematical Model of the Feature Selection Problem 242.4.2 Solution Representation 242.4.3 Fitness Function 242.5 Harmony Search Algorithm 252.5.1 Parameters Initialization 252.5.2 Harmony Memory Initialization 262.5.3 Generating a New Solution 262.5.4 Update Harmony Memory 272.5.5 Check the Stopping Criterion 272.6 Text Clustering 272.6.1 Mathematical Model of the Text Clustering 272.6.2 Find Clusters Centroid 272.6.3 Similarity Measure 282.7 k-means text clustering algorithm 282.8 Experimental Results 292.8.1 Evaluation Measures 292.8.1.1 F-measure Based on Clustering Evaluation 302.8.1.2 Accuracy Based on Clustering Evaluation 312.8.2 Results and Discussions 312.9 Conclusion 34References 343 ADAPTIVE POSITION–BASED CROSSOVER IN THE GENETIC ALGORITHM FOR DATA CLUSTERING 39Arnab Gain and Prasenjit Dey3.1 Introduction 393.2 Preliminaries 403.2.1 Clustering 403.2.1.1 k-means Clustering 403.2.2 Genetic Algorithm 413.3 RelatedWorks 423.3.1 GA-Based Data Clustering by Binary Encoding 423.3.2 GA-Based Data Clustering by Real Encoding 433.3.3 GA-Based Data Clustering for Imbalanced Datasets 443.4 Proposed Model 443.5 Experimentation 463.5.1 Experimental Settings 463.5.2 DB Index 473.5.3 Experimental Results 493.6 Conclusion 51References 574 APPLICATION OF MACHINE LEARNING IN THE SOCIAL NETWORK 61Belfin R. V., E. Grace Mary Kanaga, and Suman Kundu4.1 Introduction 614.1.1 Social Media 614.1.2 Big Data 624.1.3 Machine Learning 624.1.4 Natural Language Processing (NLP) 634.1.5 Social Network Analysis 644.2 Application of Classification Models in Social Networks 644.2.1 Spam Content Detection 654.2.2 Topic Modeling and Labeling 654.2.3 Human Behavior Analysis 674.2.4 Sentiment Analysis 684.3 Application of Clustering Models in Social Networks 684.3.1 Recommender Systems 694.3.2 Sentiment Analysis 704.3.3 Information Spreading or Promotion 704.3.4 Geolocation-Specific Applications 704.4 Application of Regression Models in Social Networks 714.4.1 Social Network and Human Behavior 714.4.2 Emotion Contagion through Social Networks 734.4.3 Recommender Systems in Social Networks 744.5 Application of Evolutionary Computing and Deep Learning in Social Networks 744.5.1 Evolutionary Computing and Social Network 754.5.2 Deep Learning and Social Networks 754.6 Summary 76Acknowledgments 77References 785 PREDICTING STUDENTS’ GRADES USING CART, ID3, AND MULTICLASS SVM OPTIMIZED BY THE GENETIC ALGORITHM (GA): A CASE STUDY 85Debanjan Konar, Ruchita Pradhan, Tania Dey, Tejaswini Sapkota, and Prativa Rai5.1 Introduction 855.2 Literature Review 875.3 Decision Tree Algorithms: ID3 and CART 885.4 Multiclass Support Vector Machines (SVMs) Optimized by the Genetic Algorithm (GA) 905.4.1 Genetic Algorithms for SVM Model Selection 925.5 Preparation of Datasets 935.6 Experimental Results and Discussions 955.7 Conclusion 96References 966 CLUSTER ANALYSIS OF HEALTH CARE DATA USING HYBRID NATURE-INSPIRED ALGORITHMS 101Kauser Ahmed P, Rishabh Agrawal6.1 Introduction 1016.2 RelatedWork 1026.2.1 Firefly Algorithm 1026.2.2 k-means Algorithm 1036.3 Proposed Methodology 1046.4 Results and Discussion 1066.5 Conclusion 110References 1117 PERFORMANCE ANALYSIS THROUGH A METAHEURISTIC KNOWLEDGE ENGINE 113Indu Chhabra and Gunmala Suri7.1 Introduction 1137.2 Data Mining and Metaheuristics 1147.3 Problem Description 1157.4 Association Rule Learning 1167.4.1 Association Mining Issues 1167.4.2 Research Initiatives and Projects 1167.5 Literature Review 1177.6 Methodology 1197.6.1 Phase 1: Pattern Search 1207.6.2 Phase 2: Rule Mining 1207.6.3 Phase 3: Knowledge Derivation 1217.7 Implementation 1217.7.1 Test Issues 1217.7.2 System Evaluation 1217.7.2.1 Indicator Matrix Formulation 1227.7.2.2 Phase 1: Frequent Pattern Derivation 1237.7.2.3 Phase 2: Association Rule Framing 1237.7.2.4 Phase 3: Knowledge Discovery Through Metaheuristic Implementation 1237.8 Performance Analysis 1247.9 Research Contributions and Future Work 1257.10 Conclusion 126References 1268 MAGNETIC RESONANCE IMAGE SEGMENTATION USING A QUANTUM-INSPIRED MODIFIED GENETIC ALGORITHM (QIANA) BASED ON FRCM 129Sunanda Das, Sourav De, Sandip Dey, and Siddhartha Bhattacharyya8.1 Introduction 1298.2 Literature Survey 1318.3 Quantum Computing 1338.3.1 Quoit-Quantum Bit 1338.3.2 Entanglement 1338.3.3 Measurement 1338.3.4 Quantum Gate 1348.4 Some Quality Evaluation Indices for Image Segmentation 1348.4.1 F(I) 1348.4.2 F’(I) 1358.4.3 Q(I) 1358.5 Quantum-Inspired Modified Genetic Algorithm (QIANA)–Based FRCM 1358.5.1 Quantum-Inspired MEGA (QIANA)–Based FRCM 1368.6 Experimental Results and Discussion 1398.7 Conclusion 147References 1479 A HYBRID APPROACH USING THE K-MEANS AND GENETIC ALGORITHMS FOR IMAGE COLOR QUANTIZATION 151Marcos Roberto e Souza, Anderson Carlos Sousa e Santos, and Helio Pedrini9.1 Introduction 1519.2 Background 1529.3 Color Quantization Methodology 1549.3.1 Crossover Operators 1579.3.2 Mutation Operators 1589.3.3 Fitness Function 1589.4 Results and Discussions 1599.5 Conclusions and Future Work 168Acknowledgments 168References 168Index 173
Machine Vision Inspection Systems, Image Processing, Concepts, Methodologies, and Applications
This edited book brings together leading researchers, academic scientists and research scholars to put forward and share their experiences and research results on all aspects of an inspection system for detection analysis for various machine vision applications. It also provides a premier interdisciplinary platform to present and discuss the most recent innovations, trends, methodology, applications, and concerns as well as practical challenges encountered and solutions adopted in the inspection system in terms of image processing and analytics of machine vision for real and industrial application.Machine vision inspection systems (MVIS) utilized all industrial and non-industrial applications where the execution of their utilities based on the acquisition and processing of images. MVIS can be applicable in industry, governmental, defense, aerospace, remote sensing, medical, and academic/education applications but constraints are different. MVIS entails acceptable accuracy, high reliability, high robustness, and low cost. Image processing is a well-defined transformation between human vision and image digitization, and their techniques are the foremost way to experiment in the MVIS. The digital image technique furnishes improved pictorial information by processing the image data through machine vision perception. Digital image processing has widely been used in MVIS applications and it can be employed to a wide diversity of problems particularly in Non-Destructive testing (NDT), presence/absence detection, defect/fault detection (weld, textile, tiles, wood, etc.,), automated vision test & measurement, pattern matching, optical character recognition & verification (OCR/OCV), barcode reading and traceability, medical diagnosis, weather forecasting, face recognition, defence and space research, etc. This edited book is designed to address various aspects of recent methodologies, concepts and research plan out to the readers for giving more depth insights for perusing research on machine vision using image processing techniques.MUTHUKUMARAN MALARVEL obtained his PhD in Digital Image Processing and he is currently working as an Associate Professor in the Department of Computer Science and Engineering at Chitkara University, Punjab, India. His research interests include digital image processing, machine vision systems, image statistical analysis & feature extraction, and machine learning algorithms. SOUMYA RANJAN NAYAK obtained his PhD in computer science and engineering from the Biju Patnaik University of Technology, India. He has more than a decade of teaching and research experience and currently is working as an Assistant Professor, Amity University, Noida, India. His research interests include image analysis on fractal geometry, color and texture analysis jointly and separately. SURYA NARAYAN PANDA is a Professor and Director Research at Chitkara University, Punjab, India. His areas of interest include Cybersecurity, Networking, Advanced Computer Networks, Machine Learning, and Artificial Intelligence. He has developed the prototype of Smart Portable Intensive Care Unit through which the doctor can provide immediate virtual medical assistance to emergency cases in the ambulance. He is currently involved in designing different healthcare devices for real-time issues using AI and ML. PRASANT KUMAR PATTNAIK Ph.D. (Computer Science), Fellow IETE, Senior Member IEEE is a Professor at the School of Computer Engineering, KIIT Deemed to be University, Bhubaneswar, India. He has more than a decade of teaching and research experience. His areas of interest include Mobile Computing, Cloud Computing, Cyber Security, Intelligent Systems and Brain Computer Interface. NITTAYA MUANGNAK is a lecturer at Kasetsart University, Thailand. Her PhD research has been on medical image analysis, particularly retinal fundus image, at Sirindhorn International Institute of Technology, Thammasat University in Thailand. Preface xi1 LAND-USE CLASSIFICATION WITH INTEGRATED DATA 1D. A. Meedeniya, J. A. A. M Jayanetti, M. D. N. Dilini, M. H. Wickramapala and J. H. Madushanka1.1 Introduction 21.2 Background Study 31.2.1 Overview of Land-Use and Land-Cover Information 31.2.2 Geographical Information Systems 41.2.3 GIS-Related Data Types 41.2.3.1 Point Data Sets 41.2.3.2 Aerial Data Sets 51.2.4 Related Studies 61.3 System Design 61.4 Implementation Details 101.4.1 Materials 101.4.2 Preprocessing 111.4.3 Built-Up Area Extraction 111.4.4 Per-Pixel Classification 121.4.5 Clustering 141.4.6 Segmentation 141.4.7 Object-Based Image Classification 161.4.8 Foursquare Data Preprocessing and Quality Analysis 201.4.9 Integration of Satellite Images with Foursquare Data 211.4.10 Building Block Identification 211.4.11 Overlay of Foursquare Points 221.4.12 Visualization of Land Usage 231.4.13 Common Platform Development 231.5 System Evaluation 251.5.1 Experimental Evaluation Process 251.5.2 Evaluation of the Classification Using Base Error Matrix 281.6 Discussion 311.6.1 Contribution of the Proposed Approach 311.6.2 Limitations of the Data Sets 321.6.3 Future Research Directions 331.7 Conclusion 34References 352 INDIAN SIGN LANGUAGE RECOGNITION USING SOFT COMPUTING TECHNIQUES 37Ashok Kumar Sahoo, Pradeepta Kumar Sarangi and Parul Goyal2.1 Introduction 372.2 Related Works 382.2.1 The Domain of Sign Language 392.2.2 The Data Acquisition Methods 412.2.3 Preprocessing Steps 422.2.3.1 Image Restructuring 432.2.3.2 Skin Color Detection 432.2.4 Methods of Feature Extraction Used in the Experiments 442.2.5 Classification Techniques 452.2.5.1 K-Nearest Neighbor 452.2.5.2 Neural Network Classifier 452.2.5.3 Naive Baÿes Classifier 462.3 Experiments 462.3.1 Experiments on ISL Digits 462.3.1.1 Results and Discussions on the First Experiment 472.3.1.2 Results and Discussions on Second Experiment 492.3.2 Experiments on ISL Alphabets 512.3.2.1 Experiments with Single-Handed Alphabet Signs 512.3.2.2 Results of Single-Handed Alphabet Signs 522.3.2.3 Experiments with Double-Handed Alphabet Signs 532.3.2.4 Results on Double-Handed Alphabets 542.3.3 Experiments on ISL Words 582.3.3.1 Results on ISL Word Signs 592.4 Summary 63References 633 STORED GRAIN PEST IDENTIFICATION USING AN UNMANNED AERIAL VEHICLE (UAV)-ASSISTED PEST DETECTION MODEL 67Kalyan Kumar Jena, Sasmita Mishra, Sarojananda Mishra and Sourav Kumar Bhoi3.1 Introduction 683.2 Related Work 693.3 Proposed Model 703.4 Results and Discussion 723.5 Conclusion 77References 784 OBJECT DESCRIPTOR FOR MACHINE VISION 85Aparna S. Murthy and Salah Rabba4.1 Outline 854.2 Chain Codes 874.3 Polygonal Approximation 894.4 Moments 924.5 HU Invariant Moments 964.6 Zernike Moments 974.7 Fourier Descriptors 984.8 Quadtree 994.9 Conclusion 102References 1145 FLOOD DISASTER MANAGEMENT: RISKS, TECHNOLOGIES, AND FUTURE DIRECTIONS 115Hafiz Suliman Munawar5.1 Flood Management 1155.1.1 Introduction 1155.1.2 Global Flood Risks and Incidents 1165.1.3 Causes of Floods 1185.1.4 Floods in Pakistan 1195.1.5 Floods in Australia 1215.1.6 Why Floods are a Major Concern 1235.2 Existing Disaster Management Systems 1245.2.1 Introduction 1245.2.2 Disaster Management Systems Used Around the World 1245.2.2.1 Disaster Management Model 1255.2.2.2 Disaster Risk Analysis System 1265.2.2.3 Geographic Information System 1265.2.2.4 Web GIS 1265.2.2.5 Remote Sensing 1275.2.2.6 Satellite Imaging 1275.2.2.7 Global Positioning System for Imaging 1285.2.3 Gaps in Current Disaster Management Technology 1285.3 Advancements in Disaster Management Technologies 1295.3.1 Introduction 1295.3.2 AI and Machine Learning for Disaster Management 1305.3.2.1 AIDR 1305.3.2.2 Warning Systems 1305.3.2.3 QCRI 1315.3.2.4 The Concern 1315.3.2.5 BlueLine Grid 1315.3.2.6 Google Maps 1325.3.2.7 RADARSAT-1 1325.3.3 Recent Research in Disaster Management 1325.3.4 Conclusion 1375.4 Proposed System 1375.4.1 Image Acquisition Through UAV 1385.4.2 Preprocessing 1385.4.3 Landmarks Detection 1385.4.3.1 Buildings 1395.4.3.2 Roads 1395.4.4 Flood Detection 1405.4.4.1 Feature Matching 1405.4.4.2 Flood Detection Using Machine Learning 1415.4.5 Conclusion 143References 1436 TEMPORAL COLOR ANALYSIS OF AVOCADO DIP FOR QUALITY CONTROL 147Homero V. Rios-Figueroa, Micloth López del Castillo-Lozano, Elvia K. Ramirez-Gomez and Ericka J. Rechy-Ramirez6.1 Introduction 1476.2 Materials and Methods 1486.3 Image Acquisition 1496.4 Image Processing 1506.5 Experimental Design 1506.5.1 First Experimental Design 1506.5.2 Second Experimental Design 1516.6 Results and Discussion 1516.6.1 First Experimental Design (RGB Color Space) 1516.6.2 Second Experimental Design (L*a*b* Color Space) 1526.7 Conclusion 156References 1567 IMAGE AND VIDEO PROCESSING FOR DEFECT DETECTION IN KEY INFRASTRUCTURE 159Hafiz Suliman Munawar7.1 Introduction 1607.2 Reasons for Defective Roads and Bridges 1617.3 Image Processing for Defect Detection 1627.3.1 Feature Extraction 1627.3.2 Morphological Operators 1637.3.3 Cracks Detection 1647.3.4 Potholes Detection 1657.3.5 Water Puddles Detection 1667.3.6 Pavement Distress Detection 1677.4 Image-Based Defect Detection Methods 1697.4.1 Thresholding Techniques 1707.4.2 Edge Detection Techniques 1707.4.3 Wavelet Transform Techniques 1717.4.4 Texture Analysis Techniques 1717.4.5 Machine Learning Techniques 1727.5 Factors Affecting the Performance 1727.5.1 Lighting Variations 1737.5.2 Small Database 1737.5.3 Low-Quality Data 1737.6 Achievements and Issues 1737.6.1 Achievements 1747.6.2 Issues 1747.7 Conclusion 174References 1758 METHODOLOGY FOR THE DETECTION OF ASYMPTOMATIC DIABETIC RETINOPATHY 179Jaskirat Kaur and Deepti Mittal8.1 Introduction 1808.2 Key Steps of Computer-Aided Diagnostic Methods 1818.3 DR Screening and Grading Methods 1838.4 Key Observations from Literature Review 1888.5 Design of Experimental Methodology 1898.6 Conclusion 192References 1939 OFFLINE HANDWRITTEN NUMERAL RECOGNITION USING CONVOLUTION NEURAL NETWORK 197Abhisek Sethy, Prashanta Kumar Patra and Soumya Ranjan Nayak9.1 Introduction 1989.2 Related Work Done 1999.3 Data Set Used for Simulation 2019.4 Proposed Model 2029.5 Result Analysis 2049.6 Conclusion and Future Work 207References 20910 A REVIEW ON PHISHING—MACHINE VISION AND LEARNING APPROACHES 213Hemamalini Siranjeevi, Swaminathan Venkatraman and Kannan Krithivasan10.1 Introduction 21310.2 Literature Survey 21410.2.1 Content-Based Approaches 21410.2.2 Heuristics-Based Approaches 21510.2.3 Blacklist-Based Approaches 21510.2.4 Whitelist-Based Approaches 21610.2.5 CANTINA-Based Approaches 21610.2.6 Image-Based Approaches 21610.3 Role of Data Mining in Antiphishing 21710.3.1 Phishing Detection 21910.3.2 Phishing Prevention 22010.3.3 Training and Education 22210.3.4 Phishing Recovery and Avoidance 22210.3.5 Visual Methods 22310.4 Conclusion 224Acknowledgments 224References 224Index 231
SQL Server Database Programming with Visual Basic.NET
A GUIDE TO THE PRACTICAL ISSUES AND APPLICATIONS IN DATABASE PROGRAMMING WITH UPDATED VISUAL BASIC.NETSQL Server Database Programming with Visual Basic.NET offers a guide to the fundamental knowledge and practical techniques for the design and creation of professional database programs that can be used for real-world commercial and industrial applications. The author—a noted expert on the topic—uses the most current version of Visual Basic.NET, Visual Basic.NET 2017 with Visual Studio.NET 2017. In addition, he introduces the updated SQL Server database and Microsoft SQL Server 2017 Express. All sample program projects can be run in the most updated version, Visual Basic.NET 2019 with Visual Studio.NET 2019.Written in an accessible, down-to-earth style, the author explains how to build a sample database using the SQL Server management system and Microsoft SQL Server Management Studio 2018. The latest version of ASP.NET, ASP.NET 4.7, is also discussed to provide the most up-to-date Web database programming technologies. This important book:* Offers illustrative practical examples and detailed descriptions to aid in comprehension of the material presented* Includes both fundamental and advanced database programming techniques* Integrates images into associated database tables using a DevExpress UI tools -WindowsUIWritten for graduate and senior undergraduate students studying database implementations and programming courses, SQL Server Database Programming with Visual Basic.NET shows how to develop professional and practical database programs in Visual Basic.NET 2017/Visual Basic.NET 2019.YING BAI, PHD, is a Professor in the Department of Computer Science and Engineering at Johnson C. Smith University (JCSU). He has published multiple books with Wiley-IEEE Press including Practical Microcontroller Engineering with ARM Technology, Practical Database Programming with Visual C#.NET and Practical Database Programming with Java. About the Author xixPreface xxiAcknowledgment xxiiiAbout the Companion Website xxivCHAPTER 1 INTRODUCTION 11.1 Outstanding Features About This Book 21.2 This Book is For 21.3 What This Book Covers 21.4 How This Book is Organized and How to Use This Book 51.5 How to Use Source Codes and Sample Database 61.6 Instructors and Customers Supports 8CHAPTER 2 INTRODUCTION TO DATABASES 9Ying Bai and Satish Bhalla2.1 What are Databases and Database Programs? 102.1.1 File Processing System 102.1.2 Integrated Databases 112.2 Develop a Database 122.3 Sample Database 132.3.1 Relational Data Model 132.3.2 Entity-Relationship Model (ER) 172.4 Identifying Keys 182.5 Define Relationships 182.6 ER Notation 222.7 Data Normalization 232.7.1 First Normal Form (1NF) 232.7.2 Second Normal Form (2NF) 242.7.3 Third Normal Form (3NF) 262.8 Database Components in Some Popular Databases 282.8.1 Microsoft Access Databases 282.8.2 SQL Server Databases 292.8.3 Oracle Databases 322.9 Create Microsoft SQL Server 2017 Express Sample Database 352.9.1 Create the LogIn Table 362.9.2 Create the Faculty Table 372.9.3 Create Other Tables 392.9.4 Create Relationships Among Tables 452.9.4.1 Create Relationship Between the LogIn and the Faculty Tables 462.9.4.2 Create Relationship Between the LogIn and the Student Tables 492.9.4.3 Create Relationship Between the Faculty and the Course Tables 502.9.4.4 Create Relationship Between the Student and the StudentCourse Tables 502.9.4.5 Create Relationship Between the Course and the StudentCourse Tables 512.9.5 Store Images to the SQL Server 2017 Express Database 532.10 Chapter Summary 61Homework 63CHAPTER 3 INTRODUCTION TO ADO.NET 673.1 The ADO and ADO.NET 673.2 Overview of the ADO.NET 693.3 The Architecture of the ADO.NET 703.4 The Components of ADO.NET 713.4.1 The Data Provider 723.4.1.1 The ODBC Data Provider 733.4.1.2 The OLEDB Data Provider 733.4.1.3 The SQL Server Data Provider 743.4.1.4 The Oracle Data Provider 743.4.2 The Connection Class 743.4.2.1 The Open() Method of the Connection Class 773.4.2.2 The Close() Method of the Connection Class 773.4.2.3 The Dispose() Method of the Connection Class 783.4.3 The Command and the Parameter Classes 783.4.3.1 The Properties of the Command Class 793.4.3.2 The Constructors and Properties of the Parameter Class 793.4.3.3 Parameter Mapping 803.4.3.4 The Methods of the ParameterCollection Class 823.4.3.5 The Constructor of the Command Class 833.4.3.6 The Methods of the Command Class 843.4.4 The DataAdapter Class 873.4.4.1 The Constructor of the DataAdapter Class 873.4.4.2 The Properties of the DataAdapter Class 873.4.4.3 The Methods of the DataAdapter Class 883.4.4.4 The Events of the DataAdapter Class 883.4.5 The DataReader Class 903.4.6 The DataSet Component 923.4.6.1 The DataSet Constructor 943.4.6.2 The DataSet Properties 943.4.6.3 The DataSet Methods 943.4.6.4 The DataSet Events 943.4.7 The DataTable Component 973.4.7.1 The DataTable Constructor 983.4.7.2 The DataTable Properties 983.4.7.3 The DataTable Methods 993.4.7.4 The DataTable Events 1003.4.8 ADO.NET Entity Framework 1023.4.8.1 Advantages of Using the Entity Framework 6 1043.4.8.2 The ADO.NET 4.3 Entity Data Model 1063.4.8.3 Using Entity Framework 6 Entity Data Model Wizard 1103.5 Chapter Summary 118Homework 120CHAPTER 4 INTRODUCTION TO LANGUAGE INTEGRATED QUERY (LINQ) 1234.1 Overview of Language Integrated Query 1234.1.1 Some Special Interfaces Used in LINQ 1244.1.1.1 The IEnumerable and IEnumerable(Of T) Interfaces 1244.1.1.2 The IQueryable and IQueryable(Of T) Interfaces 1254.1.2 Standard Query Operators 1264.1.3 Deferred Standard Query Operators 1274.1.4 Non-Deferred Standard Query Operators 1314.2 Introduction to LINQ Query 1354.3 The Architecture and Components of LINQ 1374.3.1 Overview of LINQ to Objects 1384.3.2 Overview of LINQ to DataSet 1394.3.3 Overview of LINQ to SQL 1394.3.4 Overview of LINQ to Entities 1404.3.5 Overview of LINQ to XML 1404.4 LINQ to Objects 1414.4.1 LINQ and ArrayList 1424.4.2 LINQ and Strings 1434.4.2.1 Query a String to Determine the Number of Numeric Digits 1444.4.2.2 Sort Lines of Structured Text By any Field in the Line 1454.4.3 LINQ and File Directories 1474.4.3.1 Query the Contents of Files in a Folder 1484.4.4 LINQ and Reflection 1504.5 LINQ to DataSet 1524.5.1 Operations to DataSet Objects 1524.5.1.1 Query Expression Syntax 1534.5.1.2 Method-Based Query Syntax 1544.5.1.3 Query the Single Table 1574.5.1.4 Query the Cross Tables 1594.5.1.5 Query Typed DataSet 1624.5.2 Operations to DataRow Objects Using the Extension Methods 1654.5.3 Operations to DataTable Objects 1694.6 LINQ to SQL 1704.6.1 LINQ to SQL Entity Classes and DataContext Class 1714.6.1.1 Add LINQ to Data Reference 1714.6.1.2 Add LINQ To SQL Tools 1714.6.2 LINQ to SQL Database Operations 1754.6.2.1 Data Selection Query 1754.6.2.2 Data Insertion Query 1774.6.2.3 Data Updating Query 1784.6.2.4 Data Deletion Query 1794.6.3 LINQ to SQL Implementations 1824.7 LINQ to Entities 1824.7.1 The Object Services Component 1834.7.2 The ObjectContext Component 1834.7.3 The ObjectQuery Component 1844.7.4 LINQ to Entities Flow of Execution 1844.7.5 Implementation of LINQ to Entities 1864.8 LINQ to XML 1874.8.1 LINQ to XML Class Hierarchy 1874.8.2 Manipulate XML Elements 1884.8.2.1 Creating XML from Scratch 1884.8.2.2 Insert XML 1904.8.2.3 Update XML 1914.8.2.4 Delete XML 1924.8.3 Manipulate XML Attributes 1924.8.3.1 Add XML Attributes 1924.8.3.2 Get XML Attributes 1934.8.3.3 Delete XML Attributes 1934.8.4 Query XML with LINQ to XML 1944.8.4.1 Standard Query Operators and XML 1944.8.4.2 XML Query Extensions 1954.8.4.3 Using Query Expressions with XML 1964.8.4.4 Using XPath and XSLT with LINQ to XML 1964.8.4.5 Mixing XML and Other Data Models 1974.9 Visual Basic.NET Language Enhancement for LINQ 1994.9.1 Lambda Expressions 1994.9.2 Extension Methods 2014.9.3 Implicitly Typed Local Variables 2054.9.4 Query Expressions 2064.10 Chapter Summary 208Homework 209CHAPTER 5 DATA SELECTION QUERY WITH VISUAL BASIC.NET 215PART I DATA QUERY WITH VISUAL STUDIO.NET DESIGN TOOLS AND WIZARDS 2165.1 A Completed Sample Database Application Example 2165.2 Visual Studio.NET Design Tools and Wizards 2195.2.1 Data Components in the Toolbox Window 2205.2.1.1 The DataSet 2205.2.1.2 DataGridView 2215.2.1.3 BindingSource 2225.2.1.4 BindingNavigator 2225.2.1.5 TableAdapter 2235.2.1.6 TableAdapter Manager 2235.2.2 Data Source Window 2235.2.2.1 Add New Data Sources 2245.2.2.2 Data Source Configuration Wizard 2245.2.2.3 DataSet Designer 2285.3 Query Data from SQL Server Database Using Design Tools and Wizards 2315.3.1 Application User Interface 2315.3.1.1 The LogIn Form 2325.3.1.2 The Selection Form 2325.3.1.3 The Faculty Form 2325.3.1.4 The Course Form 2345.3.1.5 The Student Form 2345.4 Use Visual Studio Wizards and Design Tools to Query and Display Data 2365.4.1 Query and Display Data using the DataGridView and Detail Controls 2365.4.1.1 View the Entire Table 2385.4.1.2 View Each Record or the Specified Columns with Detail View 2415.4.2 Use DataSet Designer to Edit the Structure of the DataSet 2435.4.3 Bind Data to the Associated Controls in LogIn Form 2455.4.4 Develop Codes to Query Data Using the Fill() Method 2495.4.5 Use Return a Single Value to Query Data for LogIn Form 2515.4.6 Develop the Codes for the Selection Form 2545.4.7 Query Data from the Faculty Table for the Faculty Form 2565.4.8 Develop Codes to Query Data from the Faculty Table 2585.4.8.1 Develop Codes to Query Data Using the TableAdapter Method 2585.4.8.2 Develop Codes to Query Data Using the LINQ to DataSet Method 2615.4.9 Query Data from the Course Table for the Course Form 2625.4.9.1 Build the Course Queries Using the Query Builder 2635.4.9.2 Bind Data Columns to the Associated Controls in the Course Form 2655.4.9.3 Develop Codes to Query Data for the Course Form 267PART II DATA QUERY WITH RUNTIME OBJECTS 2715.5 Introduction to Runtime Objects 2725.5.1 Procedure of Building a Data-Driven Application Using Runtime Object 2745.6 Query Data from SQL Server Database Using Runtime Object 2745.6.1 Access to SQL Server Database 2745.6.2 Declare Global Variables and Runtime Objects 2765.6.3 Query Data Using Runtime Objects for the LogIn Form 2785.6.3.1 Connect to the Data Source with the Runtime Object 2785.6.3.2 Coding for Method 1: Using the TableAdapter to Query Data 2795.6.3.3 Coding for Method 2: Using the DataReader to Query Data 2815.6.4 The Coding for the Selection Form 2835.6.5 Query Data Using Runtime Objects for the Faculty Form 2845.6.5.1 Using Three Query Methods to Retrieve Images from SQL Server Database 2905.6.6 Query Data Using Runtime Objects for the Course Form 2905.6.6.1 Retrieve Data from Multiple Tables Using Tables JOINS 2935.6.7 Query Data Using Runtime Objects for the Student Form 3015.6.7.1 Query Student Data Using Stored Procedures 3025.6.7.2 Query Data Using Stored Procedures for Student Form 3065.6.7.3 Query Data Using More Complicated Stored Procedures 3155.7 Chapter Summary 320Homework 321CHAPTER 6 DATA INSERTING WITH VISUAL BASIC.NET 327PART I INSERT DATA WITH VISUAL BASIC.NET DESIGN TOOLS AND WIZARDS 3286.1 Insert Data Into a Database 3286.1.1 Insert New Records into a Database Using the TableAdapter.Insert Method 3296.1.2 Insert New Records into a Database Using the TableAdapter.Update Method 3296.2 Insert Data into the SQL Server Database Using a Sample Project InsertWizard 3306.2.1 Create InsertWizard Project Based on the SelectWizard Project 3306.2.2 Application User Interfaces 3316.2.3 Validate Data Before the Data Insertion 3316.2.3.1 Visual Basic Collection and .NET Framework Collection Classes 3316.2.3.2 Validate Data Using the Generic Collection 3326.2.4 Initialization Coding Process for the Data Insertion 3356.2.5 Build the Insert Query 3366.2.5.1 Configure the TableAdapter and Build the Data Inserting Query 3366.2.6 Develop Codes to Insert Data Using the TableAdapter.Insert Method 3376.2.7 Develop Codes to Insert Data Using the TableAdapter.Update Method 3416.2.8 Insert Data into the Database Using the Stored Procedures 3456.2.8.1 Create the Stored Procedure Using the TableAdapter Query Configuration Wizard 3466.2.8.2 Modify the Codes to Perform the Data Insertion Using the Stored Procedure 346PART II DATA INSERTION WITH RUNTIME OBJECTS 3506.3 The General Run Time Objects Method 3516.4 Insert Data into the SQL Server Database Using the Run Time Object Method 3526.4.1 Insert Data into the Faculty Table for the SQL Server Database 3536.4.1.1 Validate Data Before the Data Insertion 3536.4.1.2 Insert Data into the Faculty Table 3556.4.1.3 Validate Data After the Data Insertion 3576.5 Insert Data into the Database Using Stored Procedures 3606.5.1 Insert Data into the SQL Server Database Using Stored Procedures 3606.5.1.1 Develop Stored Procedures in SQL Server Database 3616.5.1.2 Develop Codes to Call Stored Procedures to Insert Data into the Course Table 3636.6 Insert Data into the Database Using the LINQ To SQL Method 3686.6.1 Insert Data Into the SQL Server Database Using the LINQ to SQL Queries 3696.7 Chapter Summary 369Homework 370CHAPTER 7 DATA UPDATING AND DELETING WITH VISUAL BASIC.NET 377PART I DATA UPDATING AND DELETING WITH VISUAL STUDIO.NET DESIGN TOOLS AND WIZARDS 3787.1 Update or Delete Data Against Databases 3787.1.1 Updating and Deleting Data from Related Tables in a DataSet 3797.1.2 Update or Delete Data Against Database Using TableAdapter DBDirect Methods - TableAdapter.Update and TableAdapter.Delete 3797.1.3 Update or Delete Data Against Database Using TableAdapter.Update Method 3807.2 Update and Delete Data For Microsoft SQL Server Database 3817.2.1 Create a New Project Based on the InsertWizard Project 3817.2.2 Application User Interfaces 3827.2.3 Validate Data Before the Data Updating and Deleting 3827.2.4 Build the Update and Delete Queries 3827.2.4.1 Configure the TableAdapter and Build the Data Updating Query 3837.2.4.2 Build the Data Deleting Query 3847.2.5 Develop Codes to Update Data Using the TableAdapter DBDirect Method 3857.2.5.1 Modifications of the Codes 3857.2.5.2 Creations of the Codes 3857.2.6 Develop Codes to Update Data Using the TableAdapter.Update Method 3877.2.7 Develop Codes to Delete Data Using the TableAdapter DBDirect Method 3887.2.8 Develop Codes to Delete Data Using the TableAdapter.Update Method 3907.2.9 Validate the Data After the Data Updating and Deleting 391PART II DATA UPDATING AND DELETING WITH RUNTIME OBJECTS 3957.3 The Run Time Objects Method 3957.4 Update and Delete Data for SQL Server Database Using the Run Time Objects 3967.4.1 Update Data Against the Faculty Table in the SQL Server Database 3977.4.1.1 Develop Codes to Update the Faculty Data 3977.4.1.2 Validate the Data Updating 3997.4.2 Delete Data from the Faculty Table in the SQL Server Database 3997.4.2.1 Develop Codes to Delete Data 3997.4.2.2 Validate the Data Deleting 4017.5 Update and Delete Data against SQL Server Database Using Stored Procedures 4047.5.1 Modify an Existing Project to Create Our New Project 4057.5.2 Create the Codes to Update and Delete Data from the Course Table 4057.5.2.1 Develop Two Stored Procedures in the SQL Server Database 4077.5.2.2 Call the Stored Procedures to Perform the Data Updating and Deleting 4097.5.3 Update and Delete Data against Databases Using the LINQ to SQL Query 4127.5.3.1 Update and Delete Data Using LINQ to SQL Query for Student Table 4137.5.3.2 Create a New Object of the DataContext Class for Student Form 4147.5.3.3 Develop the Codes for the Select Button Click Event Procedure 4157.5.3.4 Develop the Codes for the Insert Button Click Event Procedure 4167.5.3.5 Develop the Codes for the Update Button Click Event Procedure 4197.5.3.6 Develop the Codes for the Delete Button Click Event Procedure 4197.5.3.7 Run the Project to Test Data Updating and Deleting Actions for Student Table 4217.6 Chapter Summary 423Homework 423CHAPTER 8 ACCESSING DATA IN ASP.NET 4298.1 What is .NET Framework? 4308.2 What is ASP.NET? 4318.2.1 ASP.NET Web Application File Structure 4338.2.2 ASP.NET Execution Model 4338.2.3 What is Really Happened When a Web Application is Executed? 4348.2.4 The Requirements to Test and Run the Web Project 4358.3 Develop ASP.NET Web Application to Select Data from SQL Server Databases 4358.3.1 Create the User Interface – LogIn Form 4368.3.2 Develop the Codes to Access and Select Data from the Database 4388.3.3 Validate the Data in the Client Side 4428.3.4 Create the Second User Interface – Selection Page 4438.3.5 Develop the Codes to Open the Other Page 4448.3.6 Modify the Codes in the LogIn Page to Transfer to the Selection Page 4468.3.7 Create the Third User Interface – Faculty Page 4478.3.8 Develop the Codes to Select the Desired Faculty Information 4488.3.8.1 Develop the Codes for the Page_Load Event Procedure 4498.3.8.2 Develop the Codes for the Select Button Click Event Procedure 4508.3.8.3 Develop the Codes for Other Procedures 4528.3.9 Create the Fourth User Interface – Course Page 4548.3.9.1 The AutoPostBack Property of the List Box Control 4578.3.10 Develop the Codes to Select the Desired Course Information 4578.3.10.1 Coding for the Course Page Loading and Ending Event Procedures 4588.3.10.2 Coding for the Select Button’s Click Event Procedure 4598.3.10.3 Coding for the SelectedIndexChanged Event Procedure of the CourseList Box 4618.3.10.4 Coding for Other User Defined Subroutine Procedures 4638.4 Develop ASP.NET Web Application to Insert Data Into SQL Server Databases 4658.4.1 Develop the Codes to Perform the Data Insertion Function 4668.4.2 Develop the Codes for the Insert Button Click Event Procedure 4668.4.3 Validate the Data Insertion 4738.5 Develop Web Applications to Update and Delete Data in SQL Server Databases 4738.5.1 Modify the Codes for the Faculty Page 4748.5.2 Develop the Codes for the Update Button Click Event Procedure 4758.5.3 Develop the Codes for the Delete Button Click Event Procedure 4798.5.3.1 Relationships Between Five Tables in Our Sample Database 4808.5.3.2 Data Deleting Sequence 4818.5.3.3 Use the Cascade Deleting Option to Simplify the Data Deleting 4818.5.3.4 Create the Stored Procedure to Perform the Data Deleting 4838.5.3.5 Develop the Codes to Call the Stored Procedure to Perform the Data Deleting 4868.6 Develop ASP.NET Web Applications with LINQ to SQL Query 4898.6.1 Create a New Object of the DataContext Class 4918.6.2 Develop the Codes for the Data Selection Query 4928.6.3 Develop the Codes for the Data Insertion Query 4938.6.4 Develop the Codes for the Data Updating and Deleting Queries 4968.7 Chapter Summary 500Homework 500CHAPTER 9 ASP.NET WEB SERVICES 5059.1 What are Web Services and Their Components? 5069.2 Procedures to Build a Web Service 5089.2.1 The Structure of a Typical Web Service Project 5089.2.2 The Real Considerations When Building a Web Service Project 5099.2.3 Introduction to Windows Communication Foundation (WCF) 5099.2.3.1 What is the WCF? 5109.2.3.2 WCF Data Services 5109.2.3.3 WCF Services 5119.2.3.4 WCF Clients 5119.2.3.5 WCF Hosting 5129.2.3.6 WCF Visual Studio Templates 5129.2.4 Procedures to Build an ASP.NET Web Service 5139.3 Build ASP.NET Web Service Project to Access SQL Server Database 5149.3.1 Files and Items Created in the New Web Service Project 5159.3.2 A Feeling of the Hello World Web Service Project As it Runs 5189.3.3 Modify the Default Namespace 5209.3.4 Create a Base Class to Handle Error Checking for Our Web Service 5229.3.5 Create a Customer Returned Class to Hold All Retrieved Data 5229.3.6 Add Web Methods into Our Web Service Class 5249.3.7 Develop the Codes for Web Methods to Perform the Web Services 5249.3.7.1 Web Service Connection Strings 5249.3.7.2 Modify the Existing HelloWorld Web Method 5279.3.7.3 Develop the Codes to Perform the Database Queries 5289.3.7.4 Develop the Codes for Subroutines Used in the Web Method 5309.3.8 Develop the Stored Procedure to Perform the Data Query 5339.3.8.1 Develop the Stored Procedure WebSelectFacultySP 5339.3.8.2 Add Another Web Method to Call the Stored Procedure 5349.3.9 Use DataSet as the Returning Object for the Web Method 5369.3.10 Build Windows-based Web Service Clients to Consume the Web Services 5389.3.10.1 Create a Web Service Proxy Class 5399.3.10.2 Develop the Graphic User Interface for the Windows-based Client Project 5419.3.10.3 Develop the Code to Consume the Web Service 5419.3.11 Build Web-based Web Service Clients to Consume the Web Service 5489.3.11.1 Create a New Web Site Project and Add an Existing Web Page 5489.3.11.2 Add a Web Service Reference and Modify the Web Form Window 5499.3.11.3 Modify the Designer and Codes for the Related Event Procedures 5509.3.12 Deploy the Completed Web Service to Production Servers 5559.3.12.1 Publish the Desired Web Service 5579.4 Build ASP.NET Web Service Project to Insert Data Into SQL Server Database 5599.4.1 Create a New Web Service Project WebServiceSQLInsert 5599.4.2 Develop Four Web Service Methods 5609.4.2.1 Develop Codes for the First Web Method SetSQLInsertSP 5619.4.2.2 Develop Codes for User Defined Functions and Subroutine Procedures 5639.4.2.3 Develop the Second Web Method GetSQLInsert 5659.4.2.4 Develop the Third Web Method SQLInsertDataSet 5689.4.2.5 Develop the Fourth Web Method GetSQLInsertCourse 5729.4.3 Build Windows-based Web Service Clients to Consume the Web Services 5789.4.3.1 Create a Windows-Based Consume Project and a Web Service Proxy Class 5789.4.3.2 Develop the Graphic User Interface for the Client Project 5799.4.3.3 Develop the Code to Consume the Web Service 5819.4.4 Build Web-based Web Service Clients to Consume the Web Services 5949.4.4.1 Create a New Web Site Project and Add an Existing Web Page 5949.4.4.2 Add a Web Service Reference and Modify the Web Form Window 5959.4.4.3 Modify the Codes for the Related Event Procedures 5969.5 Build ASP.NET Web Service to Update and Delete Data for SQL Server Database 6069.5.1 Modify the Default Namespace and Add Database Connection String 6079.5.2 Create Our Customer-Built Base and Returned Classes 6089.5.3 Create a Web Method to Call Stored Procedure to Update Student Records 6099.5.4 Create a Web Method to Call Stored Procedure to Delete Student Records 6119.5.5 Develop Two Stored Procedures WebUpdateStudentSP and WebDeleteStudentSP 6139.5.5.1 Develop the Stored Procedure WebUpdateStudentSP 6139.5.5.2 Develop the Stored Procedure WebDeleteStudentSP 6169.6 Build Windows-Based Web Service Clients to Consume the Web Services 6189.6.1 Modify the Student Form Window 6189.6.2 Add a New Web Reference to Our Client Project 6199.6.3 Build the Codes to the Update Button Click Event Procedure 6209.6.4 Build the Codes to the Delete Button Click Event Procedure 6219.7 Build Web-Based Web Service Clients to Consume the Web Services 6249.7.1 Create a New Web Site Application Project and Add an Existing Web Page 6259.7.2 Add a Web Service Reference and Modify the Web Form Window 6259.7.3 Modify the Codes Inside the Back Button Click Event Procedure 6269.7.4 Add the Codes to the Update Button Click Event Procedure 6269.7.5 Develop Codes for the Delete Button Click Event Procedure 6289.8 Chapter Summary 631Homework 632Appendix A: Install and Configure SQL Server 2017 Express Database 637Appendix B: Download and Install DevExpress .NET UI Controls 649Appendix C: Download & Install FrontPage Server Extension for Windows 10 651Appendix D: How to Use Sample Database 655Index 657
Beginning Ring Programming
Gain a gentle introduction to the world of Ring programming with clarity as a first concern using a lot of practical examples. The first part lays the foundations of the language and its basic features (data types, control structures, functions, and classes). The unique way to rigorously structure Ring programs is also explained.Then, in the second part you’ll discover Ring inputs, outputs, and what is in between. You’ll use the basic constructs of computer logic (sequence, selection, and iteration) to build simple and complex logic flows. You’ll go over the common mistakes that lead to code complexity, by example, and cover several strategies to solve them (refactoring, code cleansing, and good variable naming). Then, you’ll see a visual illustration of how Ring deals with scopes at the local, object, and global levels.In part three, you’ll play with two artifacts vital to Ring programming: functions and objects. You’ll learn how they can be composed to solve a problem and how advanced programming paradigms, such as declarative and natural, are beautifully implemented on top of them. As part of the discussion, you’ll also work on game programming. You’ll learn how you design your game declaratively, in Ring code, just as if you were designing it in visual software.Finally, the author lays out how programming can be understood in a gamified context. You will be told the truth about how gaming can be a better metaphor to achieve mastery of Ring programming.This book is for those who are passionate about writing beautiful, expressive, and learnable code. It has been designed so you can enjoy a beginner-friendly set of knowledge about Ring, and benefit from a one-stop collection of lessons learned from real-world, customer-facing programming projects.WHAT YOU WILL LEARN* Get started with Ring and master its data types, I/O, functions, and classes* Carry out structural, object-oriented, functional, declarative, natural, and meta programming in Ring* Use the full power of Ring to refactor program code and develop clean program architectures* Quickly design professional-grade video games on top of the Ring game engineWHO THIS BOOK IS FORBeginners looking for a consistent and hackable programming environment with a strong flavor of learnability and expressiveness.Mansour Ayouni is one of the leading contributors to the new Ring programming language. He wrote his first BASIC computer statement, in the mid-80s, using only pen and paper, when he was 10 years old. It wasn’t in a California garage though nor under the lights of the prestigious Evil tour of Paris, but in the rural village of Regueb in the center of Tunisia (North Africa) where there was no electricity nor computers at all. Over the years, programming took him in an otherwise impossible international journey. From Tunisia, to Niger, to Canada, he contributed to the development of dozens of software products ranging from lawyer office management solutions to banking and nuclear waste management systems. During his career, he used to oversee programmers from three cultures and lead software teams in various companies such as Whitecape, Keyrus, and Webgenetics. Now, he is a member of the Ring core team and running Kalidia Consulting helping businesses make effective software. Chapter 1: Getting Started with RingChapter 2: Data Types in RingChapter 3: Ins of RingChapter 4: Outs of RingChapter 5: Ring AlgorithmsChapter 6: Juggling with ScopesChapter 7: Functions, Objects and BeyondChapter 8: Designing Games in RingChapter 9: A Gamified Foundation for Mastering RingAppendix A: A Dialogue with Mahmoud Fayed
Mastering 3D Printing
Get the most out of your printer, including how to design models, choose materials, work with different printers, and integrate 3D printing with traditional prototyping to make techniques like sand casting more efficient.This book is for new 3D printer owners, makers of all kinds, entrepreneurs, technology educators, and anyone curious about what you can do with a 3D printer.In this revised and expanded new edition of Mastering 3D Printing, which has been a trusted resource through five years of evolution in the 3D printing industry, you’ll gain a comprehensive understanding of 3D printing. This book presumes no foreknowledge and describes what you need to know about how printers work, how to decide which type of printer (filament, resin, or powder) makes the most sense for you, and then how to go forward in the case of filament and resin printers.This new edition now includes material about consumer resin printing, the evolution of lower-cost metal printing, and the plethora of both materials and applications.WHAT YOU’LL LEARN* Choose among the different 3D printing technologies* Create or find 3D models to print* Make both easy and challenging prints come out as you imagined* Assess whether your business, factory, home or classroom will benefit from 3D printing* Work with applications that are good candidates for first projects in home and industrial applicationsWHO THIS BOOK IS FORPeople who are encountering 3D printing for the first time, or for those who want to level up their skills. It is designed for the nontechnical adult and minimizes jargon. However more sophisticated users will still find tips and insights of value.As an engineer and management consultant, JOAN HORVATH has coordinated first-of-a-kind interdisciplinary technical and business projects, helping people with no common vocabulary (startups, universities, small towns, etc). work together. Her experience as a systems engineer has spanned software development, spacecraft flight operations, risk management, and spacecraft/ground system test and contingency planning.As an educator, Joan’s passion is bringing science and technology to the non-specialist in a comprehensible and entertaining way that will stay with the learner for a lifetime. As an educator, Joan’s passion is bringing science and technology to the non-specialist in a comprehensible and entertaining way that will stay with the learner for a lifetime.RICH CAMERON is a cofounder of Pasadena-based Nonscriptum LLC. Nonscriptum consults for educational and scientific users in the areas of 3D printing and maker technologies. Rich (known online as "Whosawhatsis") is an experienced open source developer who has been a key member of the RepRap 3D-printer development community for many years. His designs include the original spring/lever extruder mechanism used on many 3D printers, the RepRap Wallace, and the Deezmaker Bukito portable 3D printer. By building and modifying several of the early open source 3D printers to wrestle unprecedented performance out of them, he has become an expert at maximizing the print quality of filament-based printers. When he's not busy making every aspect of his own 3D printers better, from slicing software to firmware and hardware, he likes to share that knowledge and experience online so that he can help make everyone else’s printers better too.MASTERING 3D PRINTINGPart I: 3D Printer Hardware and SoftwareChapter 1: Why Use a 3D Printer?Chapter 2: 3D Printers and Printable MaterialsChapter 3: 3D Printer Workflow and SoftwareChapter 4: Selecting a Printer: Comparing TechnologiesChapter 5: Operating and Troubleshooting Your 3D PrinterChapter 6. Surface Finishing and Filament PrintsPart II: Designing for 3D PrintingChapter 7: 3D ModelsChapter 8: Design Rules for 3D PrintingChapter 9: Special GeometriesPart III: ApplicationsChapter 10: Manufacturing Plastic PartsChapter 11: Metal 3D Printing and CastingChapter 12: Prototyping and 3D VisualizationChapter 13: Printers in the classroomChapter 14: The Future: Research AreasAppendix & Links