Allgemein
Deep Learning Projects Using TensorFlow 2
Work through engaging and practical deep learning projects using TensorFlow 2.0. Using a hands-on approach, the projects in this book will lead new programmers through the basics into developing practical deep learning applications.Deep learning is quickly integrating itself into the technology landscape. Its applications range from applicable data science to deep fakes and so much more. It is crucial for aspiring data scientists or those who want to enter the field of AI to understand deep learning concepts.The best way to learn is by doing. You'll develop a working knowledge of not only TensorFlow, but also related technologies such as Python and Keras. You'll also work with Neural Networks and other deep learning concepts. By the end of the book, you'll have a collection of unique projects that you can add to your GitHub profiles and expand on for professional application.WHAT YOU'LL LEARN* Grasp the basic process of neural networks through projects, such as creating music* Restore and colorize black and white images with deep learning processesWHO THIS BOOK IS FORBeginners new to TensorFlow and Python. VINITA SILAPARASETTY is a Data Scientist at Trendwise Analytics. Deep Learning is a topic she's passionate about, and she has experience working on deep learning projects and experimenting with neural networks. She aspires to share her love for deep learning with beginners and make it simple and easy to understand, so as to ignite a similar passion in them.Chapter 1— Perceptrons• Introduction to Perceptrons• Working of a Perceptron• Program to understand the working of a PerceptronChapter 2: Neural Networks• Introduction to Neural Networks• Types of Neural Networks• How each neural network works• Program to understand the working of Neural NetworksChapter 3: Project 1- DJ Neuron• About the Project: Creating Music Using Neural Networks• Requirements• Explanation of concepts used• Architecture of the Neural Network• Source code with line by line instructionsChapter 4: Project 2- Artistic Neurons• About the Project: Adding colour to black and white images• Requirements• Explanation of concepts used• Architecture of the Neural Network• Source code with line by line instructionsChapter 5: Project 3- Go HD• About the Project: Restoration of images for better quality• Requirements• Explanation of concepts used• Architecture of the Neural Network• Source code with line by line instructionsChapter 6: Project 4- Voice Experiments• About the Project: Voice Manipulation• Requirements• Explanation of concepts used• Architecture of the Neural Network• Source code with line by line instructionsChapter 7: Project 5- Imposters• About the Project: Fake Image Recognition• Requirements• Explanation of concepts used• Architecture of the Neural Network• Source code with line by line instructionsChapter 8: Project 6 - Gaming is Fun• About the Project: MI-agent training using Unity. Learn to create Artificially Intelligent Characters.* Requirements* Explanation of concepts used* Architecture of the Neural Network* Source code with line by line instructions
Hands-on Azure Pipelines
Build, package, and deploy software projects, developed with any language targeting any platform, using Azure pipelines.The book starts with an overview of CI/CD and the need for software delivery automation. It further delves into the basic concepts of Azure pipelines followed by a hands-on guide to setting up agents on all platforms enabling software development in any language. Moving forward, you will learn to set up a pipeline using the classic Visual Editor using PowerShell scripts, a REST API, building edit history, retention, and much more. You’ll work with artifact feeds to store deployment packages and consume them in a build. As part of the discussion you’ll see the implementation and usage of YAML (Yet Another Markup Language) build pipelines. You will then create Azure release pipelines in DevOps and develop extensions for Azure pipelines. Finally, you will learn various strategies and patterns for developing pipelines and go through some sample lessons on building and deploying pipelines.After reading Hands-on Azure Pipelines, you will be able to combine CI and CD to constantly and consistently test and build your code and ship it to any target.WHAT YOU WILL LEARN* Work with Azure build-and-release pipelines * Extend the capabilities and features of Azure pipelines* Understand build, package, and deployment strategies, and versioning and patterns with Azure pipelines* Create infrastructure and deployment that targets commonly used Azure platform services* Build and deploy mobile applications * Use quick-start Azure DevOps projectsWHO THIS BOOK IS FORSoftware developers and test automation engineers who are involved in the software delivery process.CHAMINDA CHANDRASEKARA is a Microsoft Most Valuable Professional (MVP) for Visual Studio ALM and Scrum Alliance Certified ScrumMaster®, and focuses on and believes in continuous improvement of the software development lifecycle. He works as a Senior Engineer - DevOps at Xameriners, Singapore. Chaminda is an active Microsoft Community Contributor (MCC) who is well recognized for his contributions in Microsoft forums, TechNet galleries, wikis, and Stack Overflow and he contributes extensions to Azure DevOps Server and Services (former VSTS/TFS) in the Microsoft Visual Studio Marketplace. He also contributes to other open source projects in GitHub. Chaminda has published five books with Apress.PUSHPA HERATH is a DevOps engineer at Xamariners. She has many years of experience in Azure DevOps Server and Services (formerly VSTS/TFS), Azure cloud platform and QA Automation. She is an expert in DevOps currently leading the DevOps community in Sri Lanka, and she has shown in depth knowledge in Azure cloud platform tools in her community activities. She has published three books with Apress and spoken in community evets as well as in the you tube channel of her Sri Lanka DevOps community.CHAPTER 1: UNDERSTANDING THE IMPORTANCE OF SOFTWARE DELIVERY AUTOMATIONCHAPTER GOAL: Give conceptual overview on CI CD while elaborating on the need of software delivery automation.NO OF PAGES: 10SUB -TOPICS1. Introducing Concepts (CI/CD)2. Why we need SW Delivery Automation?CHAPTER 2: OVERVIEW OF AZURE PIPELINESCHAPTER GOAL: Introduction to components in Azure Pipelines enabling you to follow the lessons from chapter 3.NO OF PAGES: 30Sub - Topics1. Introducing Pools and Agents (Explain purpose and usage (no need to go into setup details), +Security)2. Deployment Groups (Explain purpose and usage (no need to go into setup details), +Security)3. Build Pipelines (Explain purpose and usage (no need to go into setup details), +Security)4. Release Pipelines (Explain purpose and usage (no need to go into setup details), +Security)5. Task Groups (Explain purpose and usage (no need to go into setup details), +Security)6. Library (Variables) (Explain purpose and usage (no need to go into setup details), +Security)7. Parallel Pipelines and BillingCHAPTER 3: SETTING UP POOLS, DEPLOYMENT GROUPS AND AGENTSCHAPTER GOAL: Lessons to provide hand-on guidance on setting up agents on all platforms enabling building software developed with any language.NO OF PAGES : 40SUB - TOPICS:1. Setting up pools and permissions (scopes, Capabilities)2. Adding agents to pools (three pools Linux, mac and windows – add each type)3. Enable .NET core builds in Linux Agents4. Setting up Deployment Groups and permissions (scopes)5. Adding agent to Deployment groups (roles)CHAPTER 4: CREATING BUILD PIPELINES – CLASSIC – PART1CHAPTER GOAL: Step by step guidance to setting up a build pipeline using Classic Visual Editor.NO OF PAGES: 50SUB - TOPICS:1. Using Source Control Providers (show integration with each type and explain all options for each type such as tag sources and other options)2. Using a Template (Explain few commonly used templates)3. Using Multiple jobs – Adding Build jobs, Selecting Pools, setting up Demands, timeouts, mention parallelism, conditions are later lesson, Dependency settings with sample4. Using Tasks (Explain adding Tasks, find tasks in marketplace (install marketplace task in next lesson))5. Installing tasks from marketplace (Explain how to when you have rights, explain how to request to install task admin approve and install as well as decline)6. Build phase and Task Control Conditions – Explain using condition types, custom conditions in detail using a sample7. Parallelism - multi configuration and multi agents – show with samplesCHAPTER 5: CREATING BUILD PIPELINES – CLASSIC – PART2CHAPTER GOAL: Step by step guidance to setting up a build pipeline using Classic Visual Editor.NO OF PAGES: 40SUB - TOPICS:1. Using Variables – System, pipeline and group, scoping variables, queue time variable value change2. Setting up triggers and path filters for a build – show how it works CI, PR etc, path filters, scheduled builds3. Format Build number and apply custom formats with PowerShell4. Enable, paused and disabled builds -explain in detail with sample5. Link work items and Create work items on failures6. Using build status badge7. Build job scope, timeouts and demands8. Build edit history, compare and restore9. RetentionCHAPTER 6: CREATING BUILD PIPELINES – CLASSIC – PART 3CHAPTER GOAL: Step by step guidance to setting up a build pipeline using Classic Visual Editor.NO OF PAGES: 30SUB - TOPICS:1. Queuing builds and enable debugging mode for more diagnostic information2. Setting variable values in PowerShell scripts3. Accessing secret variable values in PowerShell4. Using OAuth tokens in builds (show example of REST API call , mention REST API details are later chapter)5. Creating and using task groups (include export and import as well)6. Using agentless phases – provide few usable task examples7. Publishing Artifacts – as server, as shared path (mention package as nuget later)8. Exporting and importing build definitionsCHAPTER 7: USING ARTIFACTSCHAPTER GOAL: Usage of artifact feeds to store deployment packages and usage of artifact feeds to keep packages related to development and consuming them in builds.NO OF PAGES: 40SUB - TOPICS:1. Creating and publishing build artifacts as nuget2. Using nuget packages from azure artifacts in VS, and in VS Code3. Using nuget packages in Azure Artifact feed in builds4. Creating and Consuming npm packages5. Creating and Consuming maven packages6. Creating and consuming gradle packages7. Creating and Consuming python packages8. Azure CLI to use feeds9. New Public feedsCHAPTER 8: CREATING AND USING YAML BUILD PIPELINESCHAPTER GOAL: Hands on lessons on implementing YAML based build pipelines giving all essential information on implementing configurations and pilines as code.No of pages: 40SUB - TOPICS:Will be defined laterCHAPTER 9: CREATING AZURE RELEASE PIPELINES – PART1Chapter Goal: Step by step guidance to setting up release pipelines with Azure DevOps.NO OF PAGES: 40SUB - TOPICS:1. Service Connections – Explain different types2. Using Templates to Create Pipelines (explain few common templates)3. Adding Artifacts for Release Pipeline (explain each artifact type)4. Setting up Artifact Triggers (continuous deployment triggers, artifact filters)5. Adding Stage (templated or empty, add vs clone, after release, manual triggers, after stage trigger (show parallel and different stage sequence setup options for pipelines), (partial succeeded) and artifact filters)6. Scheduled deployments for a stage (how it works samples)7. Pull request triggers in artifacts and Pull request deployment in stages8. Deployment queue settings (how it works sample should be shown)CHAPTER 10: CREATING AZURE RELEASE PIPELINES – PART2CHAPTER GOAL: Step by step guidance to setting up release pipelines with Azure DevOps.NO OF PAGES: 50SUB - TOPICS:1. Defining Gates (show examples for each gate type)2. Post deployment Options (approval and auto redeploy, gates just mention)3. Agent Job (Pools and specifications, demands samples, execution plan (multi config, multi agent as well) samples, timeouts, Artifact downloads, Oauth, Run job conditions)4. Deployment group job (Deployment group, how it works for required tags samples, targets to deploy multiple, one at a time samples, maximum parallel settings how it works samples, timeouts, artifacts, Oauth, run job conditions)5. Agentless Jobs – Explain usage of possible tasks – manual, delay, invoke azure function, quires, alerts, publishing to service bus – show samples for each6. Using variables – Scoping and using group variables as well7. Release Options – Release number, all integration options explain with sample for each8. History, compare, restore9. Export, import pipelinesCHAPTER 11: USING REST API AND DEVELOPING EXTENSIONS FOR AZURE PIPELINESCHAPTER GOAL: How to extend the capabilities and features of Azure Pipelines using the REST APIs and the extension development is discussed in this chapter.NO OF PAGES: 30SUB - TOPICS:1. Build and Release Management REST APIs - introduce get, post, put etc. with PS and typescript2. Developing extensions for Azure Pipelines – Develop a simple pipeline extension3. Deploying and distributing Azure Pipeline extensions – sharing privately and enable to use publiclyCHAPTER 12: USEFUL PIPELINE STRATEGIES AND PATTERNSCHAPTER GOAL: Guidance in pipeline development strategies and patterns with Azure build and release pipelines.NO OF PAGES: 25SUB - TOPICS:Will define later.CHAPTER 13: COMMONLY USED BUILD AND DEPLOYMENT PIPELINES – SAMPLES AND INTEGRATIONSCHAPTER GOAL: Few useful samples lessons on building and release commonly used applications to Azure platform.NO OF PAGES: 50SUB - TOPICS:1. Deploying infrastructure with Azure Pipelines – Creating Azure resources such as, resource groups, app service plans, storage accounts, web apps, function apps, APIM, Cosmos, SQL, ACR, AKS (provide open source code samples developed by us integrated with pipelines)2. Using Terraform with Azure Pipelines3. Deploying function apps and web apps – including configuration management options4. Deploying mobile apps5. Deploying Azure Databases – SQL, Cosmos6. Deploying Containerized Applications (web apps, AKS)7. Using SonarQube and Azure Build Pipelines for Code Analysis8. Integrating with Jenkins9. Integrating with Octopus deploy10. Generating quick start projects with Azure DevOps Projects (specially focus on java, python, node etc. and targeting Azure platforms)11. Generating release notes12. Visualizing Pipelines status with Dashboards in Azure DevOps
Microsoft Azure
Gain the technical and business insight needed to plan, deploy, and manage the services provided by the Microsoft Azure cloud. This second edition focuses on improving operational decision tipping points for the professionals leading DevOps and security teams. This will allow you to make an informed decision concerning the workloads appropriate for your growing business in the Azure public cloud.Microsoft Azure starts with an introduction to Azure along with an overview of its architecture services such as IaaS and PaaS. You’ll also take a look into Azure’s data, artificial intelligence, and machine learning services. Moving on, you will cover the planning for and adoption of Azure where you will go through budgeting, cloud economics, and designing a hybrid data center. Along the way, you will work with web apps, network PaaS, virtual machines, and much more.The final section of the book starts with Azure data services and big data with an in-depth discussion of Azure SQL Database, CosmosDB, Azure Data Lakes, and MySQL. You will further see how to migrate on-premises databases to Azure and use data engineering. Next, you will discover the various Azure services for application developers, including Azure DevOps and ASP.NET web apps. Finally, you will go through the machine learning and AI tools in Azure, including Azure Cognitive Services.WHAT YOU WILL LEARN* Apply design guidance and best practices using Microsoft Azure to achieve business growth* Create and manage virtual machinesWork with AI frameworks to process and analyze data to support business decisions and increase revenue * Deploy, publish, and monitor a web appWHO THIS BOOK IS FORAzure architects and business professionals looking for Azure deployment and implementation advice.JULIAN SOH is a cloud solutions architect with Microsoft, focusing in the areas of artificial intelligence, cognitive services, and advanced analytics. Prior to his current role, Julian worked extensively in major public cloud initiatives, such as SaaS (Microsoft Office 365), IaaS/PaaS (Microsoft Azure), and hybrid private-public cloud implementations.MARSHALL COPELAND is a security architect focused on kill chain defenses in public cloud deployments using cloud native and third-party cyber solutions. His work focuses on security in hybrid cloud deployments, secure DevOps, and security partner cloud integrations that enhance “blue team hunting” efficiencies.ANTHONY PUCA is a director of azure apps and infrastructure in Microsoft’s United States Federal Government division. Anthony has been consulting with US federal government departments and agencies on private, public, and hybrid cloud technologies for the last three years.MICHELEEN HARRIS is a technical program manager at Microsoft focusing on AI and machine learning. She has been a developer for over ten years and has a data science focus. She has designed and delivered many courses and given talks at large conferences such as Microsoft /build and ODSC West.PART I INTRODUCING MICROSOFT AZURECh 1. Microsoft Azure and Cloud ComputingOverview of Microsoft Azure servicesAzure conceptsAvailability ZonesSecurity, Compliance, and Privacy primerAzure licensing and cost management conceptsSubscriptionsCh 2. Overview of Azure Infrastructure-as-a-Service (IaaS) servicesAzure Virtual MachinesAzure NetworkingHybrid data center design concepts (private-public cloud)Hybrid data center operations and monitoringIaaS security considerationsCH 3. OVERVIEW OF AZURE PLATFORM-AS-A-SERVICEAzure Storage AccountsAzure WebAppsAzure Database ServicesAzure PaaS networking servicesAzure Machine Learning and Cognitive ServicesAzure Load BalancersAzure BatchCH 4. AZURE APPDEV SERVICES OVERVIEWAzure DevOps and GitHubAzure IaaS as codeVisual StudioContainers - AKS5. Ethical AI, Azure AI, and Machine LearningAzure for the modern Data EngineersAzure SQL DatabaseAzure SQL Managed InstanceAzure SQL Data WarehouseAzure Cosmos DBAzure Data Lake Service (gen 2)Azure Data Factory v2Cognitive ServicesArtificial Intelligence and Machine LearningPART II PLANNING AND ADOPTING AZURE6. BUDGETING AND CLOUD ECONOMICSUsing assessment tools - Microsoft MovereUnderstanding Cloud Economics - CapEx vs OpExForecasting and other cost saving featuresAutoscalingReserved InstancesService Level Agreement in LRS vs GRSAzure Cost Mgmt and Billing7. DESIGNING A HYBRID DATA CENTERNetworking considerationsPaaS ConsiderationsIdentity and Access ManagementSecurity and monitoring8.TOOLS, TRAINING, AND UPSKILLING EXISTING IT PERSONNELAvailable and required minimum trainingAssembling the toolkit for the Cloud engineerPowerShell ISEVisual Studio CodeAzure Storage ExplorerARM TemplatesHashicorp TerraformSource controlCommon MistakesPART III USING AZURE FOR INFRASTRUCTURE-AS-A-SERVICE (IAAS)9. IMPLEMENTING AZUR NETWORKINGDesigning and implementing Virtual Networks (vNets)Implementing Site-to-Site VPNImplementing ExpressRouteER DirectGlobal ReachImplementing Network Security GroupsImplementing Security and Monitoring for networksNetwork WatcherNetwork Perforamance MonitorAutoscaling10. VIRTUAL MACHINESCreating and managing Virtual MachinesOperating Systems (Windows, Linux)Gallery ImageCustomer ImageVM DisksMonitoring and health of VMSecuring VMAutomationTroubleshootingImproving VM availabilityAvailability GroupsDisaster RecoveryAzure Site Recovery (ASR)11. INFRASTRUCTURE-AS-CODEYour first Infrastructure-as-code exerciseDeploying VMs with codeDeploying virtual networks with codeAddressing dependenciesTroubleshooting your codeSource controlPART IV ADOPTING PLATFORM-AS-A-SERVICE (PAAS)12. AZURE WEBAPPSDeploying a WebAppPublishing to a WebAppMonitoring and securing WebAppsAzure Security Center for WebAppsIntegrating authentication for WebAppsLeveraging Azure Active DirectoryB2B and B2CMulti-factor authenticationTroubleshootingUse Case: Azure Drupal+MySQL PaaS13 NETWORK PAASWeb Application Firewall (WAF)Load BalancerAzure DNSAzure Traffic ManagerAzure Front Door ServiceAzure Private LinkContent Delivery Network (CDN)Azure DDoS ProtectionAzure FirewallUse Case: Implement Azure Front Door Service14 AZURE STORAGEAzure Blob StorageAzure QueuesAzure FilesUse Case: Using Azure Storage ExplorerPART V AZURE DATA SERVICES AND BIG DATA15. AZURE DATABASE SERVICESAzure SQL DatabaseAzure SQL DatabaseAzure SQL Database ServerlessAzure SQL Database Managed Instance (MI)Azure SQL Data WarehouseAzure CosmosDBAzure Database for MySQLAzure TablesAzure Data Lake Services (ADLS)Determining the right Data Services to use16 MIGRATING ON-PREMISES DATABASES TO AZUREDatabase Migration Assistant (DMA)Azure Database Migration Service17 DATA ENGINEERINGData Engineering and EstateExtract, transform, and loading data (ETL vs ELT)Data sharing with Azure Data ShareAzure Data FactoryPipelines, activities, and datasetsOrchestrating Data CopiesAzure Data Flow (Preview)Use Case: Copying, combining, and enriching dataPART VI AZURE SERVICES FOR APPLICATION DEVELOPERS18. DEVELOPING AZURE-BASED APPLICATIONSConsiderations for Cloud-first development practicesUse case: Build and publish an ASP.Net WebAppContainers and AKSUse case: Build a .Net Core WebApp in DockerMonitoring application health and performance in AzureDesigning IoT solutions19. AZURE DEVOPSIntroducing Azure DevOpsAzure ReposAzure PipelinesAzure BoardsAzure Test PlansAzure ArtifactsGitHubUse case: Development lifecycle demo using Azure Repo/GitHub, Pipelines, and CI/CDPART VII INTELLIGENT CLOUD - MACHINE LEARNING AND ARTIFICIAL INTELLIGENCE20. AZURE COGNITIVE SERVICES (COGS)Introducing COGSQnAmaker.aiUse Case: ChatBots21. MACHINE LEARNING AND DEEP LEARNINGAzure Machine Learning overviewDatabricks/Spark overviewUse case: Azure Databricks for data scientistsData preparationML Modeling using Azure Auto MLBuild DNN for classificationParallel and distributed trainingIoT and Edge IoT devicesUse case: Real world examples
Beginning Rails 6
Springboard your journey into web application development and discover how much fun building web applications with Ruby on Rails can be. This book has been revised to cover what's new in Rails 6 including features such as WebPack, advanced JavaScript integration, Action Mailbox, Action Text, system and parallel testing, Action Cable testing, and more.Beginning Rails 6 gently guides you through designing your application, writing tests for the application, and then writing the code to make your application work as expected. It is a book that will guide you from never having programmed with Ruby, to having a Rails 6 application built and deployed to the web.After reading and using this book, you'll have the know-how and the freely available source code to get started with your own Rails-based web development in days.WHAT YOU WILL LEARN* Create Ruby on Rails 6 web applications from the bottom up* Gain the basics of the Ruby programming language* Combine all the components of Rails to develop your own web applications * Apply TDD to make sure your application works exactly as you expect * Use Git source control and best practice techniques to create applications like a pro WHO THIS BOOK IS FORSomeone with little to no Ruby or Rails experience, or possibly even someone with no experience developing web applications at all. A basic familiarity with the web and typical web terms is assumed, but you don’t need to be an expert in these.BRADY SOMERVILLE is a professional web developer and senior engineer at Eezy. In general, he has experience in applications development, web development, and even system administration. His programming background includes Ruby/Rails and Java. He has a degree in computer science as well.ADAM GAMBLE is a professional web developer and currently works as CTO for Eezy in Birmingham, AL. He has over 10 years' experience building web applications for everything from startups to multiple Fortune 500 companies. His passion for technology has enabled him to turn a hobby into a career that he loves.CLOVES CARNEIRO Jr is a software engineer who's been building software since 1997, especially web-based applications. He's also the original author of Beginning Rails and Beginning Ruby on Rails for Apress. His experience includes both Ruby and Java. He is currently working for LivingSocial in Florida.RIDA AL BARAZI is a passionate web developer experienced in building smart web applications for startups. He has been designing and building for the web since 2002. He started working with Rails in 2005 and has spoken at different web and Rails conferences around the world.1. Introducing the Rails Framework2. Getting Started3. Getting Something Running4. Introduction to the Ruby Language5. Working with a Database: Active Record6. Advanced Active Record: Enhancing Your Models7. Action Pack: Working with the View and the Controller8. Advanced Action Pack9. JavaScript and CSS10. Sending and Receiving Email11. Testing Your Application12. Internationalization13. Deploying Your Rails ApplicationsA. Databases 101B. The Rails CommunityC. GitNOTES below: for Planned Revisions for Beginning Rails 6Chapter 1: Introducing the Rails FrameworkThe majority of chapter 1 is still relevant, needing only minor, superficial changes. This may also be a good place to address the “is rails dead?” question. In short, no -- Rails is not dead, it’s mature.Chapter 2: Getting StartedThis chapter needs to be updated to include more recent installation instructions and screenshots for more recent versions of technologies involved. The general idea is the same, though.Chapter 3: Getting Something RunningThis chapter needs minor updates to:Reflect the new directory structure created by RailsReflect that Rails 6 now uses webpack instead of the asset pipelineChapter 4: Introduction to the Ruby LanguageThis chapter needs little, if any revision, as the basics of Ruby which it covers haven’t changed much.Chapter 5: Working with a Database: Active RecordThis chapter needs little, if any revision.Chapter 6: Advanced Active Record: Enhancing Your ModelsThis chapter seems like it would need only minor revisions. It is a dense chapter, though, with lots of code samples that need to be verified.Chapter 6.5: ActiveModelWe could add this chapter, showing readers how they can create objects very similar to ActiveRecord models described in the previous chapter, but which aren’t directly backed by the database.We would explain why this can be useful, and include an example of usage that fits in with the sample application being developed throughout the app.Chapter 7: Action Pack: Working with the View and the ControllerLike the previous chapter, this chapter is still mostly relevant, but has a lot of code samples and screenshots which need verification and updating.Also, the following sections have some changes in Rails 6 that should be updated:“Using Form Helpers” (`form_with` was added, and is the preferred way going forward.)“Rendering a Collection of Partials” ( Rails 6 has a newer, more performant way of rendering a collection of partials which should be described)Also, a section on Caching could be added, though it’s not new, and may not be appropriate for a “Beginning” book.Chapter 7.5: ActionTextIn this chapter, we would introduce ActionText, which gives the developer a simple path for adding a WYSIWYG editor to their application. This would be a short chapter, and we would show how to add a WYSIWYG editor to the sample application.Chapter 8: Advanced Action PackThis section only needs minor updates to verify code samples are still correct, and to update screenshots.Chapter 8.5: ActiveStorageActiveStorage facilitates the attaching of files to records. (e.g., product images, downloadable pdfs, etc.) We would explain why this is useful, how to configure it, and then provide code samples for how to enhance the sample application with images for each article, or something like that.)Chapter 9: JavaScript and CSSThis chapter needs significant revision. The structure of the chapter is good, but the underlying technologies have changed significantly, and all code samples need to be replaced. Thankfully this is a relatively short chapter.Chapter 10: Sending and Receiving E-MailThe existing content is mostly still relevant. Hower, the following changes should be made:We could add a section on “Previewing Emails” (https://edgeguides.rubyonrails.org/action_mailer_basics.html#previewing-emails), a new feature which aids development of emails sent by a Rails app.We could add a small section on “Action Mailer Callbacks”The section on “Receiving E-Mail” should be updated to reflect the new “ActionMailbox” featureChapter 10.5: ActiveJobIn this chapter, we would explain the concept of background jobs, explain why they’re useful, and then provide a working sample which ties into the sample application. (Namely, as a way of sending the email developed in the previous chapter.)Chapter 11: Testing Your ApplicationThis chapter will need some more significant updates, as Rails 6 has changed some concepts and introduced new ones:“Parallel testing” is new, and should be introduced -- it can dramatically increase the speed of running the test suite“Functional Testing Your Controllers” needs to be revised to reflect new technology“System Testing” could be added to introduce readers to the concept of browser-based testingSmall sections for testing ActiveJob and ActionMailer, and ActionCable could be addedChapter 12: InternationalizationThis chapter is still mostly relevant, and would only need small revisions. Additionally, we could introduce the concept of “lazy lookup”, allowing developers to rely on convention to make their usage of internationalization keys throughout their code more concise.Chapter 12.5: ActionCableWe could add a chapter to introduce this concept to the reader, explaining how it could be used to add “real-time” functionality to their application. (The easiest to understand example is a chat system, where you want to see messages from another user as soon as they are submitted without having to refresh the page.)We could add sample code to add something like a chat system to the application, though it seems like a stretch. I may try to think of a more relevant feature to add to the sample application.Chapter 13: Deploying Your Rails ApplicationsThis short chapter is still mostly relevant, but needs minor revisions to reflect newer technologies and software versions.Appendix A: DatabasesThis appendix needs little (or no) revision.Appendix B: The Rails CommunityThis appendix is mostly fine as-is; I would just want to make sure links are still valid, and that we’re not overlooking any new sources.Appendix C: GitThis appendix is still mostly relevant. I would just want to update links and references to version numbers, and make sure that example output and function listings are up-to-date.
Practical User Research
Explore how User Research has been influenced over the years by a range of disciplines, such as HCI, usability, anthropology, cognitive psychology, ergonomics etc. This book aims to contribute to the User Research community and covers topics that will help UX professionals, students and stakeholders to gain a better understanding of what User Research is.Throughout the book you will acquire a practical skill set, ranging from how to get the research going, to building a case in order to receive the budget and resources needed. It will provide you with a clear account of how to organise your research, how to plan it, and how to manage stakeholders’ expectations throughout the project. You’ll see how to fit User Research into your organization and incorporate it through the different product development phases (Discovery, Alpha, Beta until Live), as well as how to grow a User Research team.Practical User Research reviews the methodologies used for User Research, looks at how to recruit participants along with how to collect and analyse data, finally focusing on how to interpret and present your findings. Cross-cultural research, accessibility and assisted digital research will also be discussed throughout this book. The final chapter gives you 10 project briefs, with which you will be able to apply your new skill set and put into practice what you have learnt.WHAT YOU'LL LEARN* Integrate user research into your business* Apply user research to your product development cycle* Review the appropriate processes necessary to carry out user research* Take a pragmatic approach to user research, method by methodWHO THIS BOOK IS FORAnyone that wants to understand more about user research.DR. EMMANUELLE SAVARIT has a strong academic background and has worked closely with leaders in qualitative research methodology at UCLA. She has worked on a freelance basis with several companies in the Silicon Valley area, and has worked at the University of Technology of Compiègne (UTC) in France, one of the leading French engineering universities, as well as the Clinical Safety Research Unit at Imperial College, London. In 2010 Emmanuelle left academia and decided to focus exclusively on her consulting work and set up Analyse-Concept Ltd, which is specialised in user research. She offered her services in the private sector for companies such as Betfair, HSBC, Thompson Reuters, Graze, Odigeo, Adecco etc. as well as in the public sector for the Home Office, Department Work and Pension, Department for Education, etc. Emmanuelle is also frequently invited to talk at conferences around the world and organizes workshops to upskill and train people to become user researchers. You can find her on Twitter @eSavarit and find out more about her company on the website: www.analyse-concept.com.1. Introduction to User Research2. Understanding Product Development Phases3. Fitting User Research Into Your Organization4. Preparing for Your Research5. Research Preparation6. Research Methods: Analytics, survey and card sorting7. Collecting Qualitative Data8. Analyzing Qualitative Data and Interpreting the Findings9. Participant Recruitment, Ethics, and Accessibility10. Using Your New Skills in the Real WorldAppendix A: Screener Participant Recruitment Tablet TestingAppendix B: User Research Consent FormReferences
Attribution of Advanced Persistent Threats
An increasing number of countries develop capabilities for cyber-espionage and sabotage. The sheer number of reported network compromises suggests that some of these countries view cyber-means as integral and well-established elements of their strategical toolbox. At the same time the relevance of such attacks for society and politics is also increasing. Digital means were used to influence the US presidential election in 2016, repeatedly led to power outages in Ukraine, and caused economic losses of hundreds of millions of dollars with a malfunctioning ransomware. In all these cases the question who was behind the attacks is not only relevant from a legal perspective, but also has a political and social dimension.Attribution is the process of tracking and identifying the actors behind these cyber-attacks. Often it is considered an art, not a science.This book systematically analyses how hackers operate, which mistakes they make, and which traces they leave behind. Using examples from real cases the author explains the analytic methods used to ascertain the origin of Advanced Persistent Threats.DR. TIMO STEFFENS was involved in the analysis of many of the most spectacular cyber-espionage cases in Germany. He has been tracking the activities and techniques of sophisticated hacker groups for almost a decade.Advanced Persistent Threats.- The attribution process.-Analysis of malware.- Attack infrastructure.- Analysis of control servers.- Geopolitical analysis.- Telemetry - data from security products.- Methods of intelligence agencies.- Doxing.- False flags.- Group set-ups.- Communication.- Ethics of attribution.
Implementing Cryptography Using Python
LEARN TO DEPLOY PROVEN CRYPTOGRAPHIC TOOLS IN YOUR APPLICATIONS AND SERVICESCryptography is, quite simply, what makes security and privacy in the digital world possible. Tech professionals, including programmers, IT admins, and security analysts, need to understand how cryptography works to protect users, data, and assets. Implementing Cryptography Using Python will teach you the essentials, so you can apply proven cryptographic tools to secure your applications and systems. Because this book uses Python, an easily accessible language that has become one of the standards for cryptography implementation, you’ll be able to quickly learn how to secure applications and data of all kinds.In this easy-to-read guide, well-known cybersecurity expert Shannon Bray walks you through creating secure communications in public channels using public-key cryptography. You’ll also explore methods of authenticating messages to ensure that they haven’t been tampered with in transit. Finally, you’ll learn how to use digital signatures to let others verify the messages sent through your services.* Learn how to implement proven cryptographic tools, using easy-to-understand examples written in Python* Discover the history of cryptography and understand its critical importance in today’s digital communication systems* Work through real-world examples to understand the pros and cons of various authentication methods* Protect your end-users and ensure that your applications and systems are using up-to-date cryptographySHANNON W. BRAY CASP, Security +, CISM is the Virtual CISO at Secured Systems providing clients guidance on establishing and maintaining information security plans, policies, procedures, standards, and guidelines using accepted frameworks. He has worked in this roles and others in corporations and federal agencies. Shannon has an MS in Cybersecurity from the University of Delaware. Prior to transitioning to cybersecurity, he was a well known IT expert with several successful books about Microsoft SharePoint. Introduction xviiCHAPTER 1 INTRODUCTION TO CRYPTOGRAPHY AND PYTHON 1Exploring Algorithms 2Why Use Python? 2Downloading and Installing Python 3Installing on Ubuntu 4Installing on macOS 4Installing on Windows 4Installing on a Chromebook 4Installing Additional Packages 5Installing Pip, NumPy, and Matplotlib 6Installing the Cryptography Package 7Installing Additional Packages 8Testing Your Install 9Diving into Python Basics 9Using Variables 10Using Strings 11Introducing Operators 11Understanding Arithmetic Operators 11Understanding Comparison Operators 13Understanding Logical Operators 13Understanding Assignment Operators 14Understanding Bitwise Operators 15Understanding Membership Operators 15Understanding Identity Operators 16Using Conditionals 16Using Loops 17for 17while 18continue 18break 18else 18Using Files 19Understanding Python Semantics 20Sequence Types 20Introducing Custom Functions 26Downloading Files Using Python 27Introducing Python Modules 28Creating a Reverse Cipher 29Summary 30CHAPTER 2 CRYPTOGRAPHIC PROTOCOLS AND PERFECT SECRECY 31The Study of Cryptology 32Understanding Cryptography 32Cryptography’s Famous Family: Alice and Bob 33Diffie-Hellman 34Data Origin Authentication 34Entity Authentication 35Symmetric Algorithms 36Asymmetric Algorithms 36The Needham-Schroeder Protocols 36The Otway-Rees Protocol 38Kerberos 39Multiple-Domain Kerberos 40X.509 41Formal Validation of Cryptographic Protocols 46Configuring Your First Cryptographic Library 47Understanding Cryptanalysis 47Brute-Force Attacks 47Side-Channel Attacks 48Social Engineering 48Analytical Attacks 48Frequency Analysis 48Attack Models 49Shannon’s Theorem 50One-Time Pad 51XOR, AND, and OR 51One-Time Pad Function 56One-Way Hashes 58Cryptographic One-Way Hashes 59Message Authentication Codes 60Perfect Forward Secrecy 60Published and Proprietary Encryption Algorithms 61Summary 62References 62CHAPTER 3 CLASSICAL CRYPTOGRAPHY 65Password Best Practices 66Password Storage 66Hashing Passwords 67Salting Passwords 67Stretching Passwords 68Password Tools 68Obfuscating Data 69ASCII Encoding 70Base64 Encoding Text 70Binary Data 72Decoding 72Historical Ciphers 72Scytale of Sparta 73Substitution Ciphers 73Caesar Cipher 74ROT-13 76Atbash Cipher 77Vigenère Cipher 77Playfair 79Hill 2x2 83Column Transposition 87Affine Cipher 90Summary 93CHAPTER 4 CRYPTOGRAPHIC MATH AND FREQUENCY ANALYSIS 95Modular Arithmetic and the Greatest Common Devisor 96Prime Numbers 97Prime Number Theorem 98School Primality Test 98Fermat’s Little Theorem 100Miller-Rabin Primality Test 100Generate Large Prime Numbers 104Basic Group Theory 106Orders of Elements 107Modular Inverses 109Fermat’s Little Theorem to Find the Inverse 110Extending the GCD 111Euler’s Theorem 111Pseudorandomness 115Breaking C’s rand() Function 116Solving Systems of Linear Equations 117Frequency Analysis 120Cryptanalysis with Python 123Using an Online Word List 125Determining the Frequency 126Breaking the Vigenère Cipher 129Summary 138CHAPTER 5 STREAM CIPHERS AND BLOCK CIPHERS 139Convert between Hexdigest and Plaintext 140Use Stream Ciphers 141ARC4 147Vernam Cipher 148Salsa20 Cipher 149ChaCha Cipher 151Use Block Ciphers 156Block Modes of Operations 158ECB Mode 158CBC Mode 159CFB Mode 160OFB Mode 162CTR Mode 163Tricks with Stream Modes 164DIY Block Cipher Using Feistel Networks 165Advanced Encryption Standard (AES) 167Using AES with Python 167File Encryption Using AES 169File Decryption Using AES 169Summary 169CHAPTER 6 USING CRYPTOGRAPHY WITH IMAGES 171Simple Image Cryptography 171Images and Cryptography Libraries 174Understanding the Cryptography Library 174Understanding the Cryptosteganography Library 175Image Cryptography 175File Cryptography Using Fernet 176Image Cryptography Using Fernet 179AES and Block Modes of Operations 180Exploring a Simple ECB Mode Example 181Exploring a Simple CBC Mode Example 185Applying the Examples 186Steganography 187Storing a Message Inside an Image 188Storing a Binary File Inside an Image 192Working with large images 195Summary 197CHAPTER 7 MESSAGE INTEGRITY 199Message Authentication Codes 200Hash-based Message Authentication Code 201Using HMAC to Sign Message 202Message Digest with SHA 203Binary Digests 204NIST Compliance 205CBC-MAC 206Birthday Attacks 207Crafting Forgeries 209The Length Extension Attack 209Setting Up a Secure Channel 210Communication Channels 211Sending Secure Messages over IP Networks 212Create a Server Socket 212Create a Client Socket 213Create a Threaded Server with TCP 214Adding Symmetric Encryption 215Concatenate Message and MAC 218Summary 221References 222CHAPTER 8 CRYPTOGRAPHIC APPLICATIONS AND PKI 223The Public-Key Transformation 224Exploring the Basics of RSA 226Generating RSA Certificates 229Constructing Simple Text Encryption and Decryption with RSA Certificates 231Constructing BLOB Encryption andDecryption with RSA Certificates 232The El-Gamal Cryptosystem 235Elliptic Curve Cryptography 238Generating ECC Keys 240Key Lengths and Curves 241Diffie-Hellman Key Exchange 242Summary 245CHAPTER 9 MASTERING CRYPTOGRAPHY USING PYTHON 247Constructing a Plaintext Communications Application 248Creating a Server 248Creating the Client 250Creating the Helper File 251Execution 252Installing and Testing Wireshark 253Implementing PKI in the Application Using RSA Certificates 255Modifying the Server 256Modifying the Client 257Modifying the Helper File 258Execution 259Implementing Diffie-Hellman Key Exchange 261Modifying the Server File 262Modifying the Client File 264Modifying the Helper File 266Creating the Diffie-Hellman Class File 270Execution 275Wrapping Up 276Index 277
CompTIA CySA+ Study Guide
THIS UPDATED STUDY GUIDE BY TWO SECURITY EXPERTS WILL HELP YOU PREPARE FOR THE COMPTIA CYSA+ CERTIFICATION EXAM. POSITION YOURSELF FOR SUCCESS WITH COVERAGE OF CRUCIAL SECURITY TOPICS!Where can you find 100% coverage of the revised CompTIA Cybersecurity Analyst+ (CySA+) exam objectives? It’s all in the CompTIA CySA+ Study Guide Exam CS0-002, Second Edition! This guide provides clear and concise information on crucial security topics. You’ll be able to gain insight from practical, real-world examples, plus chapter reviews and exam highlights. Turn to this comprehensive resource to gain authoritative coverage of a range of security subject areas.* Review threat and vulnerability management topics* Expand your knowledge of software and systems security* Gain greater understanding of security operations and monitoring* Study incident response information* Get guidance on compliance and assessment The CompTIA CySA+ Study Guide, Second Edition connects you to useful study tools that help you prepare for the exam. Gain confidence by using its interactive online test bank with hundreds of bonus practice questions, electronic flashcards, and a searchable glossary of key cybersecurity terms. You also get access to hands-on labs and have the opportunity to create a cybersecurity toolkit.Leading security experts, Mike Chapple and David Seidl, wrote this valuable guide to help you prepare to be CompTIA Security+ certified. If you’re an IT professional who has earned your CompTIA Security+ certification, success on the CySA+ (Cybersecurity Analyst) exam stands as an impressive addition to your professional credentials. Preparing and taking the CS0-002exam can also help you plan for advanced certifications, such as the CompTIA Advanced Security Practitioner (CASP+).MIKE CHAPPLE, PHD, CYSA+, CISSP, is Teaching Professor of IT, Analytics, and Operations at the University of Notre Dame. He's a cybersecurity professional and educator with over 20 years of experience. Mike provides cybersecurity certification resources at his website, CertMike.com.DAVID SEIDL, CYSA+, CISSP, PENTEST+, is Vice President for Information Technology and CIO at Miami University. David co-led Notre Dame's move to the cloud, and has written multiple cybersecurity certification books.Introduction xxviiAssessment Test xliCHAPTER 1 TODAY’S CYBERSECURITY ANALYST 1Cybersecurity Objectives 2Privacy vs. Security 3Evaluating Security Risks 4Identify Threats 6Identify Vulnerabilities 8Determine Likelihood, Impact, and Risk 8Reviewing Controls 10Building a Secure Network 10Network Access Control 10Firewalls and Network Perimeter Security 12Network Segmentation 15Defense Through Deception 16Secure Endpoint Management 17Hardening System Configurations 17Patch Management 17Group Policies 18Endpoint Security Software 19Penetration Testing 19Planning a Penetration Test 20Conducting Discovery 21Executing a Penetration Test 21Communicating Penetration Test Results 22Training and Exercises 22Reverse Engineering 22Isolation and Sandboxing 23Reverse-Engineering Software 23Reverse-Engineering Hardware 24The Future of Cybersecurity Analytics 25Summary 26Exam Essentials 26Lab Exercises 28Activity 1.1: Create an Inbound Firewall Rule 28Activity 1.2: Create a Group Policy Object 28Activity 1.3: Write a Penetration Testing Plan 30Activity 1.4: Recognize Security Tools 30Review Questions 30CHAPTER 2 USING THREAT INTELLIGENCE 35Threat Data and Intelligence 36Open Source Intelligence 37Proprietary and Closed Source Intelligence 39Assessing Threat Intelligence 39Threat Indicator Management and Exchange 41The Intelligence Cycle 42The Threat Intelligence Community 43Threat Classification 44Threat Actors 44Threat Classification 45Threat Research and Modeling 46Attack Frameworks 48MITRE’s ATT&CK Framework 48The Diamond Model of Intrusion Analysis 50Lockheed Martin’s Cyber Kill Chain 51The Unified Kill Chain 53Common Vulnerability Scoring System (CVSS) 53Applying Threat Intelligence Organizationwide 53Proactive Threat Hunting 54Summary 55Exam Essentials 56Lab Exercises 57Activity 2.1: Explore the ATT&CK Framework 57Activity 2.2: Set Up a STIX/TAXII Feed 58Activity 2.3: Intelligence Gathering Techniques 58Review Questions 59CHAPTER 3 RECONNAISSANCE AND INTELLIGENCE GATHERING 63Mapping and Enumeration 64Active Reconnaissance 65Mapping Networks and Discovering Topology 65Pinging Hosts 67Port Scanning and Service Discovery Techniques and Tools 69Passive Footprinting 75Log and Configuration Analysis 76Harvesting Data from DNS and Whois 84Responder 91Information Aggregation and Analysis Tools 92Information Gathering Using Packet Capture 92Gathering Organizational Intelligence 92Organizational Data 93Electronic Document Harvesting 94Detecting, Preventing, and Responding to Reconnaissance 97Capturing and Analyzing Data to Detect Reconnaissance 97Preventing Reconnaissance 99Summary 100Exam Essentials 101Lab Exercises 102Activity 3.1: Port Scanning 102Activity 3.2: Write an Intelligence Gathering Plan 102Activity 3.3: Intelligence Gathering Techniques 103Review Questions 103CHAPTER 4 DESIGNING A VULNERABILITY MANAGEMENT PROGRAM 109Identifying Vulnerability Management Requirements 110Regulatory Environment 110Corporate Policy 114Identifying Scan Targets 114Determining Scan Frequency 115Active vs. Passive Scanning 117Configuring and Executing Vulnerability Scans 118Scoping Vulnerability Scans 118Configuring Vulnerability Scans 119Scanner Maintenance 123Developing a Remediation Workflow 126Reporting and Communication 127Prioritizing Remediation 129Testing and Implementing Fixes 130Delayed Remediation Options 131Overcoming Risks of Vulnerability Scanning 131Vulnerability Scanning Tools 133Infrastructure Vulnerability Scanning 133Web Application Scanning 133Interception Proxies 134Wireless Assessment Tools 136Summary 137Exam Essentials 138Lab Exercises 139Activity 4.1: Install a Vulnerability Scanner 139Activity 4.2: Run a Vulnerability Scan 140Review Questions 140CHAPTER 5 ANALYZING VULNERABILITY SCANS 145Reviewing and Interpreting Scan Reports 146Understanding CVSS 148Validating Scan Results 155False Positives 156Documented Exceptions 156Understanding Informational Results 157Reconciling Scan Results with Other Data Sources 158Trend Analysis 158Common Vulnerabilities 158Server and Endpoint Vulnerabilities 159Network Vulnerabilities 168Virtualization Vulnerabilities 173Internet of Things (IoT) 176Web Application Vulnerabilities 177Authentication Vulnerabilities 181Summary 183Exam Essentials 184Lab Exercises 185Activity 5.1: Interpret a Vulnerability Scan 185Activity 5.2: Analyze a CVSS Vector 185Activity 5.3: Remediate a Vulnerability 185Review Questions 187CHAPTER 6 CLOUD SECURITY 191Understanding Cloud Environments 192The Case for Cloud Computing 193Cloud Service Models 194Cloud Deployment Models 200Operating in the Cloud 204DevOps Strategies 205Infrastructure as Code (IaC) 206Application Programming Interfaces 207Cloud Monitoring 208Cloud Infrastructure Security 208Cloud Infrastructure Security Tools 209Cloud Access Security Brokers (CASB) 213Summary 214Exam Essentials 215Lab Exercises 216Activity 6.1: Run a ScoutSuite Assessment 216Activity 6.2: Explore the Exploits Available with Pacu 216Activity 6.3: Scan an AWS Account with Prowler 216Review Questions 217CHAPTER 7 INFRASTRUCTURE SECURITY AND CONTROLS 221Understanding Defense-in-Depth 222Layered Security 222Zero Trust 223Segmentation 224Network Architecture 226Physical Network Architectures 227Software-Defined Networks 227Virtualization 228Asset and Change Management 229Logging, Monitoring, and Validation 229Encryption 230Active Defense 231Infrastructure Security and the Cloud 231Improving Security by Improving Controls 233Layered Host Security 234Permissions 235Whitelisting and Blacklisting 235Technical Controls 236Policy, Process, and Standards 238Analyzing Security Architecture 240Analyzing Security Requirements 240Reviewing Architecture 241Common Issues 242Reviewing a Security Architecture 246Maintaining a Security Design 248Summary 249Exam Essentials 249Lab Exercises 250Activity 7.1: Review an Application Using the OWASP Attack Surface Analysis Cheat Sheet 250Activity 7.2: Review a NIST Security Architecture 251Activity 7.3: Security Architecture Terminology 252Review Questions 253CHAPTER 8 IDENTITY AND ACCESS MANAGEMENT SECURITY 259Understanding Identity 260Identity Systems and Security Design 261Threats to Identity and Access 269Understanding Security Issues with Identities 269Attacking AAA Systems and Protocols 270Targeting Account Creation, Provisioning, and Deprovisioning 275Preventing Common Exploits of Identity and Authorization 276Acquiring Credentials 277Identity as a Security Layer 280Identity and Defense-in-Depth 280Securing Authentication and Authorization 281Detecting Attacks and Security Operations 288Federation and Single Sign-On 289Federated Identity Security Considerations 289Federated Identity Design Choices 291Federated Identity Technologies 293Federation Incident Response 297Summary 297Exam Essentials 298Lab Exercises 299Activity 8.1: Federated Security Scenario 299Activity 8.2: On-site Identity Issues Scenario 300Activity 8.3: Identity and AccessManagement Terminology 301Review Questions 303CHAPTER 9 SOFTWARE AND HARDWARE DEVELOPMENT SECURITY 307Software Assurance Best Practices 308The Software Development Life Cycle 309Software Development Phases 310Software Development Models 311DevSecOps and DevOps 317Designing and Coding for Security 318Common Software Development Security Issues 319Security Implications of Target Platforms 321Secure Coding Best Practices 322API Security 325Service-Oriented Architectures 325Application Testing 327Information Security and the SDLC 327Code Review Models 328Software Security Testing 331Software Assessment: Testing and Analyzing Code 332Web Application Vulnerability Scanning 335Hardware Assurance Best Practices 337Cryptographic Hardware 337Firmware Security 338Hardware Security 339Summary 340Exam Essentials 341Lab Exercises 342Activity 9.1: Review an Application Using the OWASP Application Security Architecture Cheat Sheet 342Activity 9.2: Learn About Web Application Exploits from WebGoat 342Activity 9.3: SDLC Terminology 343Review Questions 344CHAPTER 10 SECURITY OPERATIONS AND MONITORING 349Security Monitoring 350Analyzing Security Data 350Logs 351Endpoint Data Analysis 358Network Data Analysis 362Protecting and Analyzing Email 365Scripting, Searching, and Text Manipulation 369Summary 371Exam Essentials 371Lab Exercises 372Activity 10.1: Analyze a Network Capture File 372Activity 10.2: Analyze a Phishing Email 373Activity 10.3: Security Architecture Terminology 373Review Questions 374CHAPTER 11 BUILDING AN INCIDENT RESPONSE PROGRAM 379Security Incidents 380Phases of Incident Response 381Preparation 382Detection and Analysis 383Containment, Eradication, and Recovery 384Postincident Activity 385Building the Foundation for Incident Response 387Policy 387Procedures and Playbooks 387Documenting the Incident Response Plan 388Creating an Incident Response Team 389Incident Response Providers 391CSIRT Scope of Control 391Coordination and Information Sharing 391Internal Communications 392External Communications 392Classifying Incidents 393Threat Classification 393Severity Classification 394Summary 398Exam Essentials 398Lab Exercises 399Activity 11.1: Incident Severity Classification 399Activity 11.2: Incident Response Phases 400Activity 11.3: Develop an Incident Communications Plan 400Review Questions 401CHAPTER 12 ANALYZING INDICATORS OF COMPROMISE 405Analyzing Network Events 406Capturing Network-Related Events 407Network Monitoring Tools 411Detecting Common Network Issues 413Detecting Scans and Probes 417Detecting Denial-of-Service and Distributed Denial-of-Service Attacks 417Detecting Other Network Attacks 420Detecting and Finding Rogue Devices 420Investigating Host-Related Issues 422System Resources 422Malware, Malicious Processes, and Unauthorized Software 426Unauthorized Access, Changes, and Privileges 428Investigating Service and Application-Related Issues 430Application and Service Monitoring 431Application and Service Issue Response and Restoration 433Detecting Attacks on Applications 434Summary 435Exam Essentials 436Lab Exercises 436Activity 12.1: Identify a Network Scan 436Activity 12.2: Write a Service Issue Response Plan 437Activity 12.3: Security Tools 438Review Questions 439CHAPTER 13 PERFORMING FORENSIC ANALYSIS AND TECHNIQUES 443Building a Forensics Capability 444Building a Forensic Toolkit 444Understanding Forensic Software 448Capabilities and Application 448Conducting Endpoint Forensics 452Operating System, Process, and Memory Dump Analysis 452Network Forensics 455Cloud, Virtual, and Container Forensics 458Conducting a Forensic Investigation 460Forensic Procedures 460Target Locations 462Acquiring and Validating Drive Images 463Imaging Live Systems 467Acquiring Other Data 467Forensic Investigation: An Example 471Importing a Forensic Image 471Analyzing the Image 473Reporting 476Summary 478Exam Essentials 478Lab Exercises 479Activity 13.1: Create a Disk Image 479Activity 13.2: Conduct the NIST Rhino Hunt 480Activity 13.3: Security Tools 481Review Questions 482CHAPTER 14 CONTAINMENT, ERADICATION, AND RECOVERY 487Containing the Damage 489Segmentation 490Isolation 492Removal 493Evidence Gathering and Handling 495Identifying Attackers 495Incident Eradication and Recovery 496Reconstruction and Reimaging 497Patching Systems and Applications 497Sanitization and Secure Disposal 498Validating the Recovery Effort 500Wrapping Up the Response 500Managing Change Control Processes 501Conducting a Lessons Learned Session 501Developing a Final Report 501Evidence Retention 502Summary 502Exam Essentials 502Lab Exercises 503Activity 14.1: Incident Containment Options 503Activity 14.2: Incident Response Activities 505Activity 14.3: Sanitization and Disposal Techniques 506Review Questions 507CHAPTER 15 RISK MANAGEMENT 511Analyzing Risk 512Risk Identification 513Risk Calculation 514Business Impact Analysis 515Managing Risk 518Risk Mitigation 519Risk Avoidance 520Risk Transference 520Risk Acceptance 521Security Controls 522Nontechnical Controls 522Technical Controls 526Summary 528Exam Essentials 529Lab Exercises 529Activity 15.1: Risk Management Strategies 529Activity 15.2: Risk Identification and Assessment 530Activity 15.3: Risk Management 530Review Questions 531CHAPTER 16 POLICY AND COMPLIANCE 535Understanding Policy Documents 536Policies 536Standards 539Procedures 541Guidelines 542Exceptions and Compensating Controls 543Complying with Laws and Regulations 545Adopting a Standard Framework 546NIST Cybersecurity Framework 546ISO 27001 549Control Objectives for Information and Related Technologies (COBIT) 550Information Technology Infrastructure Library (ITIL) 551Implementing Policy-Based Controls 552Security Control Categories 552Security Control Types 553Security Control Verification and Quality Control 553Summary 554Exam Essentials 554Lab Exercises 555Activity 16.1: Policy Documents 555Activity 16.2: Using a Cybersecurity Framework 556Activity 16.3: Compliance Auditing Tools 556Review Questions 557APPENDICES 561APPENDIX A PRACTICE EXAM 561Exam Questions 562APPENDIX B ANSWERS TO REVIEW QUESTIONS AND PRACTICE EXAM 581Chapter 1: Today’s Cybersecurity Analyst 582Chapter 2: Using Threat Intelligence 583Chapter 3: Reconnaissance and Intelligence Gathering 585Chapter 4: Designing a Vulnerability Management Program 587Chapter 5: Analyzing Vulnerability Scans 589Chapter 6: Cloud Security 590Chapter 7: Infrastructure Security and Controls 592Chapter 8: Identity and Access Management Security 595Chapter 9: Software and Hardware Development Security 597Chapter 10: Security Operations and Monitoring 599Chapter 11: Building an Incident Response Program 601Chapter 12: Analyzing Indicators of Compromise 603Chapter 13: Performing Forensic Analysis and Techniques 605Chapter 14: Containment, Eradication, and Recovery 607Chapter 15: Risk Management 609Chapter 16: Policy and Compliance 610Practice Exam Answers 612APPENDIX C ANSWERS TO LAB EXERCISES 621Chapter 1: Today’s Cybersecurity Analyst 622Solution to Activity 1.4: Recognize Security Tools 622Chapter 2: Using Threat Intelligence 622Solution to Activity 2.3: Intelligence Gathering Techniques 622Chapter 3: Reconnaissance and Intelligence Gathering 623Solution to Activity 3.3: Intelligence Gathering Tools 623Chapter 5: Analyzing Vulnerability Scans 623Solution to Activity 5.2: Analyze a CVSS Vector 623Chapter 7: Infrastructure Security and Controls 624Solution to Activity 7.3: Security Architecture Terminology 624Chapter 8: Identity and Access Management Security 625Solution to Activity 8.1: Federated Security Scenario 625Solution to Activity 8.2: On-site Identity Issues Scenario 625Solution to Activity 8.3: Identity and Access Management Terminology 626Chapter 9: Software and Hardware Development Security 627Solution to Activity 9.3: Security Tools 627Chapter 10: Security Operations and Monitoring 627Solution to Activity 10.3: Security Architecture Terminology 627Chapter 11: Building an Incident Response Program 628Solution to Activity 11.1: Incident Severity Classification 628Solution to Activity 11.2: Incident Response Phases 629Chapter 12: Analyzing Indicators of Compromise 629Solution to Activity 12.3: Security Tools 629Chapter 13: Performing Forensic Analysis and Techniques 630Solution to Activity 13.2: Conduct the NIST Rhino Hunt 630Solution to Activity 13.3: Security Tools 630Chapter 14: Containment, Eradication, and Recovery 631Solution to Activity 14.1: Incident Containment Options 631Solution to Activity 14.2: Incident Response Activities 632Solution to Activity 14.3: Sanitization and Disposal Techniques 633Chapter 15: Risk Management 633Solution to Activity 15.1: Risk Management Strategies 633Chapter 16: Policy and Compliance 634Solution to Activity 16.1: Policy Documents 634Solution to Activity 16.3: Compliance Auditing Tools 634Index 635
Advanced R 4 Data Programming and the Cloud
Program for data analysis using R and learn practical skills to make your work more efficient. This revised book explores how to automate running code and the creation of reports to share your results, as well as writing functions and packages. It includes key R 4 features such as a new color palette for charts, an enhanced reference counting system, and normalization of matrix and array types where matrix objects now formally inherit from the array class, eliminating inconsistencies.Advanced R 4 Data Programming and the Cloud is not designed to teach advanced R programming nor to teach the theory behind statistical procedures. Rather, it is designed to be a practical guide moving beyond merely using R; it shows you how to program in R to automate tasks.This book will teach you how to manipulate data in modern R structures and includes connecting R to databases such as PostgreSQL, cloud services such as Amazon Web Services (AWS), and digital dashboards such as Shiny. Each chapter also includes a detailed bibliography with references to research articles and other resources that cover relevant conceptual and theoretical topics.WHAT YOU WILL LEARN* Write and document R functions using R 4* Make an R package and share it via GitHub or privately* Add tests to R code to ensure it works as intended* Use R to talk directly to databases and do complex data management* Run R in the Amazon cloud* Deploy a Shiny digital dashboard* Generate presentation-ready tables and reports using RWHO THIS BOOK IS FORWorking professionals, researchers, and students who are familiar with R and basic statistical techniques such as linear regression and who want to learn how to take their R coding and programming to the next level.MATT WILEY leads institutional effectiveness, research, and assessment at Victoria College, facilitating strategic and unit planning, data-informed decision making, and state/regional/federal accountability. As a tenured, associate professor of mathematics, he won awards in both mathematics education (California) and student engagement (Texas). Matt earned degrees in computer science, business, and pure mathematics from the University of California and Texas A&M systems.Outside academia, he co-authors books about the popular R programming language and was managing partner of a statistical consultancy for almost a decade. He has programming experience with R, SQL, C++, Ruby, Fortran, and JavaScript.A programmer, a published author, a mathematician, and a transformational leader, Matt has always melded his passion for writing with his joy of logical problem solving and data science. From the boardroom to the classroom, he enjoys finding dynamic ways to partner with interdisciplinary and diverse teams to make complex ideas and projects understandable and solvable.JOSHUA F. WILEY is a lecturer in the Turner Institute for Brain and Mental Health and School of Psychological Sciences at Monash University. He earned his PhD from the University of California, Los Angeles and completed his post-doctoral training in primary care and prevention. His research uses advanced quantitative methods to understand the dynamics between psychosocial factors, sleep and other health behaviours in relation to psychological and physical health. He develops or co-develops a number of R packages including varian, a package to conduct Bayesian scale-location structural equation models, MplusAutomation, a popular package that links R to the commercial Mplus software, extraoperators for faster logical operations, multilevelTools for diagnostics, effect sizes, and easy display of multilevel / mixed effects models results, and miscellaneous functions to explore data or speed up analysis in JWileymisc.PROGRAMMING1.Programming Basics2.Programming Utilities3.Loops, flow control, and *apply functions4.Writing Functions5.Writing Classes and Methods6.Writing a PackageDATA MANAGEMENT7.Data Management using data.table8.Data Munging With data.table9.Other Tools for Data Management10.Reading Big Data(bases)CLOUD COMPUTING11.Getting a Cloud12.Ubuntu for Windows Users13.Every Cloud has a Shiny lining…14.Shiny Dashboard Sampler15.Dynamic Reports and the CloudReferences (backmatter)
Data Mashup with Microsoft Excel Using Power Query and M
Master the art of loading external data into Excel for use in reporting, charting, dashboarding, and business intelligence. This book provides a complete and thorough explanation of Microsoft Excel’s Get and Transform feature set, showing you how to connect to a range of external databases and other data sources to find data and pull that data into your local spreadsheet for further analysis. Leading databases are covered, including Microsoft Azure data sources and web sources, and you will learn how to access those sources from your Microsoft Excel spreadsheets.Getting data into Excel is a prerequisite for using Excel's analytics capabilities. This book takes you beyond copying and pasting by showing you how to connect to your corporate databases that are hosted in the Azure cloud, and how to pull data from Oracle Database and SQL Server, and other sources.Accessing data is only half the problem, and the other half involves cleansing and rearranging your data to make it useful in spreadsheet form. Author Adam Aspin shows you how to create datasets and transformations. For advanced problems, there is help on the M language that is built into Excel, specifically to support mashing up data in support of business intelligence and analysis. If you are an Excel user, you won't want to be without this book that teaches you to extract and prepare external data ready for use in what is arguably the world’s leading analytics tool.WHAT YOU WILL LEARN* Connect to a range of external data, from databases to Azure sources* Ingest data directly into your spreadsheets, or into PowerPivot data models* Cleanse and prepare external data so it can be used inside Excel* Refresh data quickly and easily to always have the latest information* Transform data into ready-to-use structures that fit the spreadsheet format* Execute M language functions for complex data transformationsWHO THIS BOOK IS FORExcel users who want to access data from external sources—including the Microsoft Azure platform—in order to create business intelligence reporting, dashboards, and visualizations. For Excel users needing to cleanse and rearrange such data to meet their own, specific needs.ADAM ASPIN is an independent business intelligence consultant based in the United Kingdom. He has worked with SQL Server for over 25 years. During this time, he has developed several dozen reporting and analytical systems based on the Microsoft analytics stack.Business intelligence has been Adam’s principal focus for the last 20 years. He has applied his skills for a variety of clients in a range of industry sectors. He is the author of Apress books: SQL Server Data Integration Recipes, Pro Power BI Desktop (now in its third edition), Business Intelligence with SQL Server Reporting Services, and High Impact Data Visualization.A graduate of Oxford University, Adam began his career in publishing before moving into IT. Databases soon became a passion, and his experience in this arena ranges from dBase to Oracle, and Access to MySQL, with occasional sorties into the world of DB2. He is, however, most at home in the Microsoft universe when using SQL Server Analysis Services, SQL Server Reporting Services, and SQL Server Integration Services and Power BI (both on-premise and in Azure).A fluent French speaker, Adam has worked in France and Switzerland for many years.1. Using Power Query to Discover and Load Data into Excel2. Discovering and Loading File-Based Data with Power Query3. Loading Data from Databases and Data Warehouses4. Loading Data from the Web and the Cloud5. Generic Data Sources6. Structuring Imported Data7. Data Transformation8. Restructuring Data9. Complex Data Loads10. Organizing and Managing Queries11. Parameterizing Queries12. The M Language13. Appendix A: Sample Data
Recommender System with Machine Learning and Artificial Intelligence
This book is a multi-disciplinary effort that involves world-wide experts from diverse fields, such as artificial intelligence, human computer interaction, information technology, data mining, statistics, adaptive user interfaces, decision support systems, marketing, and consumer behavior. It comprehensively covers the topic of recommender systems, which provide personalized recommendations of items or services to the new users based on their past behavior. Recommender system methods have been adapted to diverse applications including social networking, movie recommendation, query log mining, news recommendations, and computational advertising.This book synthesizes both fundamental and advanced topics of a research area that has now reached maturity. Recommendations in agricultural or healthcare domains and contexts, the context of a recommendation can be viewed as important side information that affects the recommendation goals. Different types of context such as temporal data, spatial data, social data, tagging data, and trustworthiness are explored. This book illustrates how this technology can support the user in decision-making, planning and purchasing processes in agricultural & healthcare sectors.SACHI NANDAN MOHANTY received his PhD from IIT Kharagpur, India in 2015 and is now at ICFAI Foundation for Higher Education, Hyderabad, India. JYOTIR MOY CHATTERJEE is working as an Assistant Professor (IT) at Lord Buddha Education Foundation, Kathmandu, Nepal. He has completed M.Tech in Computer Science & Engineering from Kalinga Institute of Industrial Technology, Bhubaneswar, India. SARIKA JAIN obtained her PhD in the field of Knowledge Representation in Artificial Intelligence in 2011. She has served in the field of education for over 18 years and is currently in service at the National Institute of Technology, Kurukshetra. AHMED A. ELNGAR is the Founder and Head of Scientific Innovation Research Group (SIRG) and Assistant Professor of Computer Science at the Faculty of Computers and Information, Beni-Suef University, Egypt. PRIYA GUPTA is working as an Assistant Professor in the Department of Computer Science at Maharaja Agrasen College, University of Delhi. Her Doctoral Degree is from BIT (Mesra), Ranchi. Preface xixAcknowledgment xxiiiPART 1: INTRODUCTION TO RECOMMENDER SYSTEMS 11 AN INTRODUCTION TO BASIC CONCEPTS ON RECOMMENDER SYSTEMS 3Pooja Rana, Nishi Jain and Usha Mittal1.1 Introduction 41.2 Functions of Recommendation Systems 51.3 Data and Knowledge Sources 61.4 Types of Recommendation Systems 81.4.1 Content-Based 81.4.1.1 Advantages of Content-Based Recommendation 111.4.1.2 Disadvantages of Content-Based Recommendation 111.4.2 Collaborative Filtering 121.5 Item-Based Recommendation vs. User-Based Recommendation System 141.5.1 Advantages of Memory-Based Collaborative Filtering 151.5.2 Shortcomings 161.5.3 Advantages of Model-Based Collaborative Filtering 171.5.4 Shortcomings 171.5.5 Hybrid Recommendation System 171.5.6 Advantages of Hybrid Recommendation Systems 181.5.7 Shortcomings 181.5.8 Other Recommendation Systems 181.6 Evaluation Metrics for Recommendation Engines 191.7 Problems with Recommendation Systems and Possible Solutions 201.7.1 Advantages of Recommendation Systems 231.7.2 Disadvantages of Recommendation Systems 241.8 Applications of Recommender Systems 24References 252 A BRIEF MODEL OVERVIEW OF PERSONALIZED RECOMMENDATION TO CITIZENS IN THE HEALTH-CARE INDUSTRY 27Subhasish Mohapatra and Kunal Anand2.1 Introduction 282.2 Methods Used in Recommender System 292.2.1 Content-Based 292.2.2 Collaborative Filtering 322.2.3 Hybrid Filtering 332.3 Related Work 332.4 Types of Explanation 342.5 Explanation Methodology 352.5.1 Collaborative-Based 362.5.2 Content-Based 362.5.3 Knowledge and Utility-Based 372.5.4 Case-Based 372.5.5 Demographic-Based 382.6 Proposed Theoretical Framework for Explanation-Based Recommender System in Health-Care Domain 392.7 Flowchart 392.8 Conclusion 41References 413 2ES OF TIS: A REVIEW OF INFORMATION EXCHANGE AND EXTRACTION IN TOURISM INFORMATION SYSTEMS 45Malik M. Saad Missen, Mickaël Coustaty, Hina Asmat, Amnah Firdous, Nadeem Akhtar, Muhammad Akram and V. B. Surya Prasath3.1 Introduction 463.2 Information Exchange 493.2.1 Exchange of Tourism Objects Data 493.2.1.1 Semantic Clashes 503.2.1.2 Structural Clashes 503.2.2 Schema.org—The Future 513.2.2.1 Schema.org Extension Mechanism 523.2.2.2 Schema.org Tourism Vocabulary 523.2.3 Exchange of Tourism-Related Statistical Data 533.3 Information Extraction 553.3.1 Opinion Extraction 563.3.2 Opinion Mining 573.4 Sentiment Annotation 573.4.1 SentiML 583.4.1.1 SentiML Example 583.4.2 OpinionMiningML 593.4.2.1 OpinionMiningML Example 603.4.3 EmotionML 613.4.3.1 EmotionML Example 613.5 Comparison of Different Annotations Schemes 623.6 Temporal and Event Extraction 643.7 TimeML 653.8 Conclusions 67References 67PART 2: MACHINE LEARNING-BASED RECOMMENDER SYSTEMS 714 CONCEPTS OF RECOMMENDATION SYSTEM FROM THE PERSPECTIVE OF MACHINE LEARNING 73Sumanta Chandra Mishra Sharma, Adway Mitra and Deepayan Chakraborty4.1 Introduction 734.2 Entities of Recommendation System 744.2.1 User 744.2.2 Items 754.2.3 Action 754.3 Techniques of Recommendation 764.3.1 Personalized Recommendation System 774.3.2 Non-Personalized Recommendation System 774.3.3 Content-Based Filtering 774.3.4 Collaborative Filtering 784.3.5 Model-Based Filtering 804.3.6 Memory-Based Filtering 804.3.7 Hybrid Recommendation Technique 814.3.8 Social Media Recommendation Technique 824.4 Performance Evaluation 824.5 Challenges 834.5.1 Sparsity of Data 844.5.2 Scalability 844.5.3 Slow Start 844.5.4 Gray Sheep and Black Sheep 844.5.5 Item Duplication 844.5.6 Privacy Issue 844.5.7 Biasness 854.6 Applications 854.7 Conclusion 85References 855 A MACHINE LEARNING APPROACH TO RECOMMEND SUITABLE CROPS AND FERTILIZERS FOR AGRICULTURE 89Govind Kumar Jha, Preetish Ranjan and Manish Gaur5.1 Introduction 905.2 Literature Review 915.3 Methodology 935.4 Results and Analysis 965.5 Conclusion 97References 986 ACCURACY-ASSURED PRIVACY-PRESERVING RECOMMENDER SYSTEM USING HYBRID-BASED DEEP LEARNING METHOD 101Abhaya Kumar Sahoo and Chittaranjan Pradhan6.1 Introduction 1026.2 Overview of Recommender System 1036.3 Collaborative Filtering-Based Recommender System 1066.4 Machine Learning Methods Used in Recommender System 1076.5 Proposed RBM Model-Based Movie Recommender System 1106.6 Proposed CRBM Model-Based Movie Recommender System 1136.7 Conclusion and Future Work 115References 1187 MACHINE LEARNING-BASED RECOMMENDER SYSTEM FOR BREAST CANCER PROGNOSIS 121G. Kanimozhi, P. Shanmugavadivu and M. Mary Shanthi Rani7.1 Introduction 1227.2 Related Works 1247.3 Methodology 1257.3.1 Experimental Dataset 1257.3.2 Feature Selection 1277.3.3 Functional Phases of MLRS-BC 1287.3.4 Prediction Algorithms 1297.4 Results and Discussion 1317.5 Conclusion 138Acknowledgment 139References 1398 A RECOMMENDED SYSTEM FOR CROP DISEASE DETECTION AND YIELD PREDICTION USING MACHINE LEARNING APPROACH 141Pooja Akulwar8.1 Introduction 1428.2 Machine Learning 1438.2.1 Overview 1438.2.2 Machine Learning Algorithms 1458.2.3 Machine Learning Methods 1468.2.3.1 Artificial Neural Network 1468.2.3.2 Support Vector Machines 1468.2.3.3 K-Nearest Neighbors (K-NN) 1478.2.3.4 Decision Tree Learning 1478.2.3.5 Random Forest 1488.2.3.6 Gradient Boosted Decision Tree (GBDT) 1498.2.3.7 Regularized Greedy Forest (RGF) 1508.3 Recommender System 1518.3.1 Overview 1518.4 Crop Management 1538.4.1 Yield Prediction 1538.4.2 Disease Detection 1548.4.3 Weed Detection 1568.4.4 Crop Quality 1598.5 Application—Crop Disease Detection and Yield Prediction 159References 162PART 3: CONTENT-BASED RECOMMENDER SYSTEMS 1659 CONTENT-BASED RECOMMENDER SYSTEMS 167Poonam Bhatia Anand and Rajender Nath9.1 Introduction 1679.2 Literature Review 1689.3 Recommendation Process 1729.3.1 Architecture of Content-Based Recommender System 1729.3.2 Profile Cleaner Representation 1759.4 Techniques Used for Item Representation and Learning User Profile 1769.4.1 Representation of Content 1769.4.2 Vector Space Model Based on Keywords 1779.4.3 Techniques for Learning Profiles of User 1799.4.3.1 Probabilistic Method 1799.4.3.2 Rocchio’s and Relevance Feedback Method 1809.4.3.3 Other Methods 1819.5 Applicability of Recommender System in Healthcare and Agriculture 1829.5.1 Recommendation System in Healthcare 1829.5.2 Recommender System in Agriculture 1849.6 Pros and Cons of Content-Based Recommender System 1869.7 Conclusion 187References 18810 CONTENT (ITEM)-BASED RECOMMENDATION SYSTEM 197R. Balamurali10.1 Introduction 19810.2 Phases of Content-Based Recommendation Generation 19810.3 Content-Based Recommendation Using Cosine Similarity 19910.4 Content-Based Recommendations Using Optimization Techniques 20410.5 Content-Based Recommendation Using the Tree Induction Algorithm 20810.6 Summary 212References 21311 CONTENT-BASED HEALTH RECOMMENDER SYSTEMS 215Soumya Prakash Rana, Maitreyee Dey, Javier Prieto and Sandra Dudley11.1 Introduction 21611.2 Typical Health Recommender System Framework 21711.3 Components of Content-Based Health Recommender System 21811.4 Unstructured Data Processing 22011.5 Unsupervised Feature Extraction & Weighting 22111.5.1 Bag of Words (BoW) 22111.5.2 Word to Vector (Word2Vec) 22211.5.3 Global Vectors for Word Representations (Glove) 22211.6 Supervised Feature Selection & Weighting 22211.7 Feedback Collection 22511.7.1 Medication & Therapy 22511.7.2 Healthy Diet Plan 22511.7.3 Suggestions 22511.8 Training & Health Recommendation Generation 22611.8.1 Analogy-Based ML in CBHRS 22711.8.2 Specimen-Based ML in CBHRS 22711.9 Evaluation of Content Based Health Recommender System 22811.10 Design Criteria of CBHRS 22911.10.1 Micro-Level & Lucidity 23011.10.2 Interactive Interface 23011.10.3 Data Protection 23011.10.4 Risk & Uncertainty Management 23111.10.5 Doctor-in-Loop (DiL) 23111.11 Conclusions and Future Research Directions 231References 23312 CONTEXT-BASED SOCIAL MEDIA RECOMMENDATION SYSTEM 237R. Sujithra Kanmani and B. Surendiran12.1 Introduction 23712.2 Literature Survey 24012.3 Motivation and Objectives 24112.3.1 Architecture 24112.3.2 Modules 24212.3.3 Implementation Details 24312.4 Performance Measures 24312.5 Precision 24312.6 Recall 24312.7 F- Measure 24412.8 Evaluation Results 24412.9 Conclusion and Future Work 247References 24813 NETFLIX CHALLENGE—IMPROVING MOVIE RECOMMENDATIONS 251Vasu Goel13.1 Introduction 25113.2 Data Preprocessing 25213.3 MovieLens Data 25313.4 Data Exploration 25513.5 Distributions 25613.6 Data Analysis 25713.7 Results 26513.8 Conclusion 266References 26614 PRODUCT OR ITEM-BASED RECOMMENDER SYSTEM 269Jyoti Rani, Usha Mittal and Geetika Gupta14.1 Introduction 27014.2 Various Techniques to Design Food Recommendation System 27114.2.1 Collaborative Filtering Recommender Systems 27114.2.2 Content-Based Recommender Systems (CB) 27214.2.3 Knowledge-Based Recommender Systems 27214.2.4 Hybrid Recommender Systems 27314.2.5 Context Aware Approaches 27314.2.6 Group-Based Methods 27314.2.7 Different Types of Food Recommender Systems 27314.3 Implementation of Food Recommender System Using Content-Based Approach 27614.3.1 Item Profile Representation 27714.3.2 Information Retrieval 27814.3.3 Word2vec 27814.3.4 How are word2vec Embedding’s Obtained? 27814.3.5 Obtaining word2vec Embeddings 27914.3.6 Dataset 28014.3.6.1 Data Preprocessing 28014.3.7 Web Scrapping For Food List 28014.3.7.1 Porter Stemming All Words 28014.3.7.2 Filtering Our Ingredients 28014.3.7.3 Final Data Frame with Dishes and Their Ingredients 28114.3.7.4 Hamming Distance 28114.3.7.5 Jaccard Distance 28214.4 Results 28214.5 Observations 28314.6 Future Perspective of Recommender Systems 28314.6.1 User Information Challenges 28314.6.1.1 User Nutrition Information Uncertainty 28314.6.1.2 User Rating Data Collection 28414.6.2 Recommendation Algorithms Challenges 28414.6.2.1 User Information Such as Likes/ Dislikes Food or Nutritional Needs 28414.6.2.2 Recipe Databases 28414.6.2.3 A Set of Constraints or Rules 28514.6.3 Challenges Concerning Changing Eating Behavior of Consumers 28514.6.4 Challenges Regarding Explanations and Visualizations 28614.7 Conclusion 286Acknowledgements 287References 287PART 4: BLOCKCHAIN & IOT-BASED RECOMMENDER SYSTEMS 29115 A TRUST-BASED RECOMMENDER SYSTEM BUILT ON IOT BLOCKCHAIN NETWORK WITH COGNITIVE FRAMEWORK 293S. Porkodi and D. Kesavaraja15.1 Introduction 29415.1.1 Today and Tomorrow 29415.1.2 Vision 29415.1.3 Internet of Things 29415.1.4 Blockchain 29515.1.5 Cognitive Systems 29615.1.6 Application 29615.2 Technologies and its Combinations 29715.2.1 IoT–Blockchain 29715.2.2 IoT–Cognitive System 29815.2.3 Blockchain–Cognitive System 29815.2.4 IoT–Blockchain–Cognitive System 29815.3 Crypto Currencies With IoT–Case Studies 29915.4 Trust-Based Recommender System 29915.4.1 Requirement 29915.4.2 Things Management 30215.4.3 Cognitive Process 30315.5 Recommender System Platform 30415.6 Conclusion and Future Directions 307References 30716 DEVELOPMENT OF A RECOMMENDER SYSTEM HEALTHMUDRA USING BLOCKCHAIN FOR PREVENTION OF DIABETES 313Rashmi Bhardwaj and Debabrata Datta16.1 Introduction 31416.2 Architecture of Blockchain 31716.2.1 Definition of Blockchain 31816.2.2 Structure of Blockchain 31816.3 Role of HealthMudra in Diabetic 32216.4 Blockchain Technology Solutions 32416.4.1 Predictive Models of Health Data Analysis 32516.5 Conclusions 325References 326PART 5: HEALTHCARE RECOMMENDER SYSTEMS 32917 CASE STUDY 1: HEALTH CARE RECOMMENDER SYSTEMS 331Usha Mittal, Nancy Singla and Geetika Gupta17.1 Introduction 33217.1.1 Health Care Recommender System 33217.1.2 Parkinson’s Disease: Causes and Symptoms 33317.1.3 Parkinson’s Disease: Treatment and Surgical Approaches 33417.2 Review of Literature 33517.2.1 Machine Learning Algorithms for Parkinson’s Data 33717.2.2 Visualization 34017.3 Recommender System for Parkinson’s Disease (PD) 34117.3.1 How Will One Know When Parkinson’s has Progressed? 34217.3.2 Dataset for Parkinson’s Disease (PD) 34217.3.3 Feature Selection 34317.3.4 Classification 34317.3.4.1 Logistic Regression 34317.3.4.2 K Nearest Neighbor (KNN) 34317.3.4.3 Support Vector Machine (SVM) 34417.3.4.4 Decision Tree 34417.3.5 Train and Test Data 34417.3.6 Recommender System 34417.4 Future Perspectives 34517.5 Conclusions 346References 34818 TEMPORAL CHANGE ANALYSIS-BASED RECOMMENDER SYSTEM FOR ALZHEIMER DISEASE CLASSIFICATION 351S. Naganandhini, P. Shanmugavadivu and M. Mary Shanthi Rani18.1 Introduction 35218.2 Related Work 35218.3 Mechanism of TCA-RS-AD 35318.4 Experimental Dataset 35418.5 Neural Network 35718.6 Conclusion 370References 37019 REGULARIZATION OF GRAPHS: SENTIMENT CLASSIFICATION 373R.S.M. Lakshmi Patibandla19.1 Introduction 37319.2 Neural Structured Learning 37419.3 Some Neural Network Models 37519.4 Experimental Results 37719.4.1 Base Model 37919.4.2 Graph Regularization 38219.5 Conclusion 383References 38420 TSARS: A TREE-SIMILARITY ALGORITHM-BASED AGRICULTURAL RECOMMENDER SYSTEM 387Madhusree Kuanr, Puspanjali Mohapatra and Sasmita Subhadarsinee Choudhury20.1 Introduction 38820.2 Literature Survey 39020.3 Research Gap 39320.4 Problem Definitions 39320.5 Methodology 39320.6 Results & Discussion 39420.6.1 Performance Evaluation 39420.6.2 Time Complexity Analysis 39620.7 Conclusion & Future Work 397References 39921 INFLUENCEABLE TARGETS RECOMMENDATION ANALYZING SOCIAL ACTIVITIES IN EGOCENTRIC ONLINE SOCIAL NETWORKS 401Soumyadeep Debnath, Dhrubasish Sarkar and Dipankar Das21.1 Introduction 40221.2 Literature Review 40321.3 Dataset Collection Process with Details 40421.3.1 Main User’s Activities Data 40521.3.2 Network Member’s Activities Data 40521.3.3 Tools and Libraries for Data Collection 40521.3.4 Details of the Datasets 40621.4 Primary Preprocessing of Data 40621.4.1 Language Detection and Translation 40621.4.2 Tagged Tweeters Collection 40721.4.3 Textual Noise Removal 40721.4.4 Textual Spelling and Correction 40721.5 Influence and Social Activities Analysis 40721.5.1 Step 1: Targets Selection From OSMs 40821.5.2 Step 3: Categories Classification of Social Contents 40821.5.3 Step 4: Sentiments Analysis of Social Contents 40821.6 Recommendation System 40921.6.1 Secondary Preprocessing of Data 40921.6.2 Recommendation Analyzing Contents of Social Activities 41121.7 Top Most Influenceable Targets Evaluation 41321.8 Conclusion 41421.9 Future Scope 415References 415Index 417
Building Computer Vision Applications Using Artificial Neural Networks
Apply computer vision and machine learning concepts in developing business and industrial applications using a practical, step-by-step approach.The book comprises four main sections starting with setting up your programming environment and configuring your computer with all the prerequisites to run the code examples. Section 1 covers the basics of image and video processing with code examples of how to manipulate and extract useful information from the images. You will mainly use OpenCV with Python to work with examples in this section.Section 2 describes machine learning and neural network concepts as applied to computer vision. You will learn different algorithms of the neural network, such as convolutional neural network (CNN), region-based convolutional neural network (R-CNN), and YOLO. In this section, you will also learn how to train, tune, and manage neural networks for computer vision. Section 3 provides step-by-step examples of developing business and industrial applications, such as facial recognition in video surveillance and surface defect detection in manufacturing.The final section is about training neural networks involving a large number of images on cloud infrastructure, such as Amazon AWS, Google Cloud Platform, and Microsoft Azure. It walks you through the process of training distributed neural networks for computer vision on GPU-based cloud infrastructure. By the time you finish reading Building Computer Vision Applications Using Artificial Neural Networks and working through the code examples, you will have developed some real-world use cases of computer vision with deep learning.WHAT YOU WILL LEARN· Employ image processing, manipulation, and feature extraction techniques· Work with various deep learning algorithms for computer vision· Train, manage, and tune hyperparameters of CNNs and object detection models, such as R-CNN, SSD, and YOLO· Build neural network models using Keras and TensorFlow· Discover best practices when implementing computer vision applications in business and industry· Train distributed models on GPU-based cloud infrastructureWHO THIS BOOK IS FORData scientists, analysts, and machine learning and software engineering professionals with Python programming knowledge.Shamshad (Sam) Ansari works as President and CEO of Accure Inc, an artificial intelligence automation company that he founded. He has raised Accure from startup to a sustainable business by building a winning team and acquiring customers from across the globe. He has technical expertise in the area of computer vision, machine learning, AI, cognitive science, NLP, and big data. He architected, designed, and developed the Momentum platform that automates AI solution development. He is an inventor and has four US patents in the area of AI and cognitive computing.Shamshad worked as a senior software engineer with IBM, VP of engineering with Orbit Solutions, and as principal architect and director of engineering with Apixio.Section 11. Chapter 1: Prerequisite and Software Installation1.1. Python and PIP1.1.1. Installing Python and PIP on Ubuntu1.1.2. Installing Python and PIP on Mac OS1.1.3. Installing Python and PIP on CentOS 71.1.4. Installing Python and PIP on Windows1.2. Virtualenv1.2.1. Setup and activate virtualenv 1.3. Tensorflow1.3.1. Installing Tensorflow1.4. PyCharm IDE1.4.1. Installing PyCharm1.4.2. Configuring PyCharm to use virtualenv1.5. OpenCV1.5.1. Installing OpenCV1.5.2. Installing OpenCV4 with Python bindings1.6. Additional libraries1.6.1. SciPy1.6.2. MatplotlibChapter 2: Core Concepts of Image and Video Processing1.7. Image processing1.7.1. Image basics 1.7.2. Pixel1.7.3. Pixel color1.7.3.1. Grayscale1.7.3.2. Color1.7.4. Coordinate system 1.7.5. Python and OpenCV code to manipulate images1.7.6. Program: loading, exploring and showing image1.7.7. Program: OpenCV code to access and manipulate pixels1.8. Drawing1.8.1. Drawing a line on an image1.8.2. Drawing a rectangle on an image1.8.3. Drawing a circle on an image1.9. Chapter summary1.10.2. Chapter 3: Techniques of Image Processing2.1. Transformation2.1.1. Resizing2.1.2. Translation2.1.3. Rotation2.1.4. Flipping2.1.5. Cropping2.2. Image arithmetic and bitwise operations2.2.1. Addition2.2.2. Subtraction 2.2.3. Bitwise operations2.2.3.1. OR2.2.3.2. AND2.2.3.3. NOT2.2.3.4. XOR 2.3. Masking2.4. Splitting and merging channels2.5. Smoothing and blurring2.6. Thresholding2.7. Gradient and edge detection2.8. Contours2.9. Chapter summarySection 23. Chapter 4: Building Artificial Intelligence System For Computer Vision3.1. Image processing pipeline3.2. Feature extraction3.2.1. Color histogram3.2.2. GLCM3.2.3. HOG3.2.4. LBP3.3. Feature selection3.3.1. Filter3.3.2. Wrapper3.3.3. Embedded3.3.4. Regularization3.4. Chapter summary4. Chapter 5: Artificial Neural Network for Computer Vision4.1. Introduction to ANN4.1.1. ANN topology4.1.2. Hyperparameters4.1.3. ANN model training using TensorFlow4.1.4. Model evaluation4.1.5. Model deployment4.1.6. Use of trained model4.2. Introduction to Convolution Neural Network (CNN)4.2.1. Core concepts of CNN4.2.2. Creating training set for CNN4.2.3. Training CNN model using TensorFlow4.2.4. Inspecting CNN model and evaluating model fitness4.2.5. Using and deployment of trained model4.3. Introduction to Recurrent Neural Network (RNN) and long short-term Memory (LSTM)4.3.1. Core concepts of RNN and LSTM4.3.2. Creating training set for LSTM4.3.3. LSTM model training using TensorFlow4.3.4. Inspecting LSTM model and assessing fitness4.3.5. Deploying LSTM models in practiceSection 35. Chapter 6: Practical Example 1- Object Detection in Images6. Chapter 7: Practical Example 2- Object Tracking in Videos7. Chapter 8: Practical Example 3- Facial Detection8. Chapter 9: Industrial Application - Realtime Defect Detection in Industrial ManufacturingSection 49. Chapter 10: Training Machine Learning Model on the Cloud9.1. Amazon AWS9.2. Google Cloud Platform (GCP)9.3. Microsoft Azure
The Art of Immutable Architecture
This book teaches you how to evaluate a distributed system from the perspective of immutable objects. You will understand the problems in existing designs, know how to make small modifications to correct those problems, and learn to apply the principles of immutable architecture to your tools.Most software components focus on the state of objects. They store the current state of a row in a relational database. They track changes to state over time, making several basic assumptions: there is a single latest version of each object, the state of an object changes sequentially, and a system of record exists.This is a challenge when it comes to building distributed systems. Whether dealing with autonomous microservices or disconnected mobile apps, many of the problems we try to solve come down to synchronizing an ever-changing state between isolated components. Distributed systems would be a lot easier to build if objects could not change.After reading THE ART OF IMMUTABLE ARCHITECTURE, you will come away with an understanding of the benefits of using immutable objects in your own distributed systems. You will learn a set of rules for identifying and exchanging immutable objects, and see a collection of useful theorems that emerges and ensures that the distributed systems we build are eventually consistent. Using patterns, you will find where the truth converges, see how changes are associative, rather than sequential, and come to feel comfortable understanding that there is no longer a single source of truth. Practical hands-on examples reinforce how to build software using the described patterns, techniques, and tools. By the end, you will possess the language and resources needed to analyze and construct distributed systems with confidence.The assumptions of the past were sufficient for building single-user, single-computer systems. But as we expand to multiple devices, shared experiences, and cloud computing, they work against us. It is time for a new set of assumptions. Start with immutable objects, and build better distributed systems.WHAT YOU WILL LEARN* Evaluate a distributed system from the perspective of immutable objects * Recognize the problems in existing designs, and make small modifications to correct them* Start a new system from scratch, applying patternsApply the principles of immutable architecture to your tools, including SQL databases, message queues, and the network protocols that you already use * Discover new tools that natively apply these principles WHO THIS BOOK IS FORSoftware architects and senior developers. It contains examples in SQL and languages such as JavaScript and C#. Past experience with distributed computing, data modeling, or business analysis is helpful.MICHAEL L. PERRY has built upon the works of mathematicians such as Bertrand Meyer, Leslie Lamport, and Donald Knuth to develop a mathematical system for software development. He has captured this system in a set of open source projects. Michael often presents on math and software at events and online. You can find out more at qedcode.com.Part I: DefinitionChapter 1. Why Immutable ArchitectureChapter 2. Forms of Immutable ArchitectureChapter 3. How to Read a Historical ModelPart II: ApplicationChapter 4. Location IndependenceChapter 5. AnalysisChapter 6. State TransitionsChapter 7. SecurityChapter 8. PatternsPart III: ImplementationChapter 9. Query InversesChapter 10. SQL DatabasesChapter 11. CommunicationChapter 12. Generated Behaviors
People-Centric Skills
USE YOUR INTERPERSONAL AND COMMUNICATION SKILLS AS A FINANCIAL PROFESSIONAL TO WORK SUCCESSFULLY WITH CLIENTSEmbark on a journey to further develop your career when you read People-Centric Skills: Interpersonal and Communication Skills for Financial Professionals, 2nd Edition. Business leaders consider employee communication skills and critical thinking abilities as essential elements for success. In their work, all professionals must communicate clearly and rely on their interpersonal skills to be successful.This second edition of People-Centric Skills shares the fictional story of Dalton Zimmer, executive coach and public speaker. Dalton, all the while juggling his business, kids and social life, provides coaching and communication strategies for handling challenging situations faced by his clients.This insightful narrative will help you expand communication and soft skills as a CPA, auditor, financial planner or other financial professional.As Generation Z is entering the work force, the communication gap between Z and Boomers or Generation X is widening significantly. New to the second edition, you’ll find a discussion of communication between generations and how to bridge them as a financial professional.You can be a more people-centric leader as you engage with a wide range of clients and associates. This book can be a first step to improving interpersonal and communication skills as you continue to develop in your career.DANNY M. GOLDBERG, CPA, CIA, CISA, is the founder of GoldSRD, a leading staffing, recruiting, and professional development firm. He has over 22 years of experience and is an IIA - Dallas Chapter board member. He is well-published, from numerous articles to three other books, and is a highly-regarded speaker on all facets of audit and people-centric skills. Foreword ixPreface xiAcknowledgments xvChapter 1 The People-Centric Journey Begins Anew 1Chapter 2 Reading Through People 5Chapter 3 Emotional Intelligence 29Chapter 4 Different Points of View: Using Self-Awareness and Empathy Effectively 47Chapter 5 Wrong Mode = Wrong Mood: Determining the Optimal Mode of Communication 51Chapter 6 Influencing Change Throughout Any Business 59Chapter 7 Projecting the Real You: Public Speaking 65Chapter 8 Coaching and Mentoring 93Chapter 9 Presentation Skills and Body Language 99Chapter 10 Thinking Quickly on Your Feet 125Chapter 11 Coaching and Mentoring, Revisited 131Chapter 12 Crisis Management 139Epilogue 143Appendix 145About the Author 179Index 181
Understanding Microsoft Teams Administration
Explore solutions, best practices, tips, and workarounds to plan, design, customize, implement, and manage Microsoft Teams in any environment.The book starts with an overview of Microsoft Teams where you will go through the teams architecture, teams/channels, audio/video meetings, and the phone system. It further dives into deployment and management of teams, clients, guests and external access, and live events, followed by network assessment and bandwidth planning for Teams. Here, you will learn about deployment of quality of service and how to configure your phone systems using direct routing and calling plans. Moving forward, you will learn Microsoft Teams administration and policy management along with the migration process of Skype for Business on-prem to Microsoft Teams. Towards the end, you will learn troubleshooting techniques in Teams for call quality issues and connectivity challenges.After reading Understanding Microsoft Teams Administration, you will be able to effectively configure, customize, and manage the Teams experience using the Teams admin portal and other tools and techniques.WHAT YOU WILL LEARN* Understand the Microsoft Teams architecture including the different components involved* Enable and manage external and guest access for Teams users* Manage Teams and channels with a private channel* Implement quality of service for audio/video calls and meetings* Establish Office 365 data classifications, loss prevention plans, and governance* Manage resource types, licensing, service health reporting, and support* Work with Microsoft Teams room and live event management* Implement and manage messaging, calling policies, and settingsWHO THIS BOOK IS FORAdministrators and technical consultants working on Teams.BALU ILAG is a Microsoft Certified Trainer (MCT), Microsoft 365 Certified Teams Administrator Associate, and Microsoft Certified Solutions Expert (MCSE) for communication and productivity. He has written several blog posts on unified communication and collaboration technologies including subjects ranging from a how-to guide to best practices and troubleshooting.He is currently working as an Office 365 and collaboration specialist at Juniper networks. Balu has over 13 years' experience in messaging, telecom and unified communications and collaboration and is focused on Microsoft Teams and Microsoft Office 365 collaboration. His role is a combination of product administration, product development, and strategic guidance for enterprise customers.CHAPTER 1: MICROSOFT TEAMS OVERVIEWa. What is Microsoft Teams?b. Teams Architecturec. Teams Team and channelsd. Meeting, Tab, Files and Wikie. Teams Audio/video call and meetingf. Teams phone system overviewCHAPTER 2: TEAMS CLIENT DEPLOYMENT AND USER PROVISIONINGa. Deploy and Manage Teams clientb. Manage Teams storagec. Manage External and Guest accessCHAPTER 3: ORGANIZATION READINESS FOR MICROSOFT TEAMSa. Network assessment and bandwidth planning for Teamsb. Deploy Quality of Servicec. Configure phone systema. Configure Teams Direct Routingb. Configure Microsoft Calling pland. Customizes and manage Live eventCHAPTER 4: MICROSOFT TEAMS ADMINISTRATION AND POLICY MANAGEMENTa. Enable and users for Microsoft Teamsb. Organization wide setting for Microsoft Teamsc. Meeting, Live event and messaging policyd. Manage Phone number and Voice routing policyCHAPTER 5: MIGRATION FROM SKYPE FOR BUSINESS (LYNC) ON-PREM AND ONLINE TO MICROSOFT TEAMSa. Get ready for Microsoft Teamsb. Plan user migration wiselyc. Migrate user from Skype for Business Online to Microsoft Teamsd. Migrate user from Skype for Business On-prem to Microsoft Teamse. Maintain momentum after migrationCHAPTER 6: MICROSOFT TEAMS TROUBLESHOOTING APPROACHES1. Solve Teams sign-in issues2. Analyze call quality and Troubleshoot call quality issues3. Troubleshoot Live event issues4. Solve connectivity challenges
Learn Java for Android Development
Gain the essential Java language skills necessary for using the Android SDK platform to build Java-based Android apps. This book includes the latest Java SE releases that Android supports, and is geared towards the Android SDK version 10. It includes new content including JSON documents, functional programming, and lambdas as well as other language features important for migrating Java skills to Android development.Android is still the world's most popular mobile platform and because this technology is still mostly based on Java, you should first obtain a solid grasp of the Java language and its APIs in order to improve your chances of succeeding as an effective Android apps developer. Learn Java for Android Development, 4th Editionhelps you do that.Each of the book’s chapters provides an exercise section that gives you the opportunity to reinforce your understanding of the chapter’s material. Answers to the book’s more than 500 exercises are provided in an appendix. Once you finish, you will be ready to begin your Android app development journey using Java.WHAT YOU WILL LEARN* Discover the latest Java programming language features relevant to Android SDK development* Apply inheritance, polymorphism, and interfaces to Android development* Use Java collections, concurrency, I/O, networks, persistence, functional programming, and data access in Android apps* Parse, create, and transform XML and JSON documents* Migrate your Java skills for mobile development using the Android platformWHO THIS BOOK IS FORProgrammers with at least some prior Java programming experience looking to get into mobile Java development with the Android platform.PETER SPÄTH consults, trains/teaches, and writes books on various subjects, with a primary focus on software development. With a wealth of experience in Java-related languages, the release of Kotlin for building Android apps made him enthusiastic about writing books for Kotlin development in the Android environment. He also graduated in 2002 as a physicist and soon afterward became an IT consultant, mainly for Java-related projects.JEFF FRIESEN is a freelance tutor and software developer with an emphasis on Java (and now Android). In addition to authoring Learn Java for Android Development and co-authoring Android Recipes, Jeff has written numerous articles on Java and other technologies for JavaWorld, informIT, Java.net, and DevSource.1: Getting Started with JavaTalking about ART and licensing here2: Learning Language Fundamentals3: Discovering Classes and Objects4: Discovering Inheritance, Polymorphism, and Interfaces5: Mastering Advanced Language Features, Part 16: Mastering Advanced Language Features, Part 27: Exploring the Basic APIs, Part18: Exploring the Basic APIs, Part29: Functional Programming and Lambdas10: Exploring the Collections Framework11: Exploring the Concurrency Utilities12: Performing Classic I/O13: Accessing Networks14: Migrating to New I/O15: Accessing Databases16: Parsing, Creating, and Transforming XML Documents17: Working With JSON DocumentsA. Solutions to Exercises
Computational and Analytic Methods in Science and Engineering
This contributed volume collects papers presented at a special session of the conference Computational and Mathematical Methods in Science and Engineering (CMMSE) held in Cadiz, Spain from June 30 - July 6, 2019. Covering the applications of integral methods to scientific developments in a variety of fields, ranging from pure analysis to petroleum engineering, the chapters in this volume present new results in both pure and applied mathematics. Written by well-known researchers in their respective disciplines, each chapter shares a common methodology based on a combination of analytic and computational tools. This approach makes the collection a valuable, multidisciplinary reference on how mathematics can be applied to various real-world processes and phenomena. Computational and Analytic Methods in Science and Engineering will be ideal for applied mathematicians, physicists, and research engineers. CHRISTIAN CONSTANDA, holder of the C.W. Oliphant Endowed Chair in Mathematics at the University of Tulsa, is the chairman of the International Consortium for Integral Methods in Science and Engineering (IMSE). He organizes IMSE conferences all over the world, and is the author and editor of 32 books and over 150 journal articles. 1 New Numerical Results for the Optimization of Neumann Eigenvalues2 Transient Convection-Diffusion-Reaction Problems with Variable Velocity Field by Means of DRBEM with Different Radial Basis Functions3 On a Parametric Representation of the Angular Neutron Flux in the Energy Range from 1 eV to 10MeV4 A Boundary Integral Equation Formulation for Advection–Diffusion–Reaction Problems with Point Sources5 Displacement Boundary Value Problem for a Thin Plate in an Unbounded Domain6 A Dirichlet Spectral Problem in Domains Surrounded by Thin Stiff and Heavy Bands7 Spectral Homogenization Problems in Linear Elasticity with Large Reaction Terms Concentrated in Small Regions of the Boundary8 The Mathematical Modelling of the Motion of Biological Cells in Response to Chemical Signals9 Numerical Calculation of Interior Transmission Eigenvalues with Mixed Boundary Conditions10 An Inequality for H¨older Continuous Functions Generalizing a Result of CarloMiranda11 Two-Phase Three-Component Flow in PorousMedia:Mathematical Modeling of Dispersion-Free Pressure Behavior12 Error Analysis and the Role of Permutation in Dynamic Iteration SchemesIndex
Machine Learning and Cognitive Computing for Mobile Communications and Wireless Networks
Communication and network technology has witnessed recent rapid development and numerous information services and applications have been developed globally. These technologies have high impact on society and the way people are leading their lives. The advancement in technology has undoubtedly improved the quality of service and user experience yet a lot needs to be still done. Some areas that still need improvement include seamless wide-area coverage, high-capacity hot-spots, low-power massive-connections, low-latency and high-reliability and so on. Thus, it is highly desirable to develop smart technologies for communication to improve the overall services and management of wireless communication. Machine learning and cognitive computing have converged to give some groundbreaking solutions for smart machines. With these two technologies coming together, the machines can acquire the ability to reason similar to the human brain. The research area of machine learning and cognitive computing cover many fields like psychology, biology, signal processing, physics, information theory, mathematics, and statistics that can be used effectively for topology management. Therefore, the utilization of machine learning techniques like data analytics and cognitive power will lead to better performance of communication and wireless systems.KRISHNA KANT SINGH is an Associate Professor in Electronics and Communications Engineering in KIET Group of Institutions, Ghaziabad, India. Dr. Singh has acquired BTech, MTech, and PhD (IIT Roorkee) in the area of machine learning and remote sensing. He has authored more than 50 technical books and research papers in international conferences and SCIE journals. AKANSHA SINGH is an Associate Professor in Department of Computer Science Engineering in Amity University, Noida, India. Dr. Singh has acquired BTech, MTech, and PhD (IIT Roorkee) in the area of neural network and remote sensing. She has authored more than 40 technical books and research papers in international conferences and SCIE journals. Her area of interest includes Mobile Computing, Artificial Intelligence, Machine Learning, Digital Image Processing. KORHAN CENGIZ received his PhD in Electronics Engineering from Kadir Has University, Istanbul, Turkey, in 2016. He has served as keynote speakers at many conferences. His research interests include wireless sensor networks, routing protocols, wireless communications, 5G systems, statistical signal processing, and spatial modulation. DAC-NHUONG LE has a MSc and PhD in computer science from Vietnam National University, Vietnam in 2009 and 2015, respectively. He is Associate Professor in Computer Science, Deputy-Head of Faculty of Information Technology, Haiphong University, Vietnam. He has a total academic teaching experience of 12+ years with many publications in reputed international conferences, journals and online book chapters. His area of research includes: evaluation computing and approximate algorithms, network communication, security and vulnerability, network performance analysis and simulation, cloud computing, IoT and image processing in biomedical. Preface xiii1 MACHINE LEARNING ARCHITECTURE AND FRAMEWORK 1Nilanjana Pradhan and Ajay Shankar Singh1.1 Introduction 21.2 Machine Learning Algorithms 31.2.1 Regression 31.2.2 Linear Regression 41.2.3 Support Vector Machine 41.2.4 Linear Classifiers 51.2.5 SVM Applications 81.2.6 Naïve Bayes Classification 81.2.7 Random Forest 91.2.8 K-Nearest Neighbor (KNN) 91.2.9 Principal Component Analysis (PCA) 91.2.10 K-Means Clustering 101.3 Business Use Cases 101.4 ML Architecture Data Acquisition 141.5 Latest Application of Machine Learning 151.5.1 Image Identification 161.5.2 Sentiment Analysis 161.5.3 News Classification 161.5.4 Spam Filtering and Email Classification 171.5.5 Speech Recognition 171.5.6 Detection of Cyber Crime 171.5.7 Classification 171.5.8 Author Identification and Prediction 181.5.9 Services of Social Media 181.5.10 Medical Services 181.5.11 Recommendation for Products and Services 181.5.11.1 Machine Learning in Education 191.5.11.2 Machine Learning in Search Engine 191.5.11.3 Machine Learning in Digital Marketing 191.5.11.4 Machine Learning in Healthcare 191.6 Future of Machine Learning 201.7 Conclusion 22References 232 COGNITIVE COMPUTING: ARCHITECTURE, TECHNOLOGIES AND INTELLIGENT APPLICATIONS 25Nilanjana Pradhan, Ajay Shankar Singh and Akansha Singh2.1 Introduction 262.1 The Components of a Cognitive Computing System 272.3 Subjective Computing Versus Computerized Reasoning 282.4 Cognitive Architectures 292.5 Subjective Architectures and HCI 312.6 Cognitive Design and Evaluation 322.6.1 Architectures Conceived in the 1940s Can’t Handle the Data of 2020 412.7 Cognitive Technology Mines Wealth in Masses of Information 412.7.1 Technology is Only as Strong as Its Flexible, Secure Foundation 422.8 Cognitive Computing: Overview 432.9 The Future of Cognitive Computing 47References 493 DEEP REINFORCEMENT LEARNING FOR WIRELESS NETWORK 51Bharti Sharma, R.K Saini, Akansha Singh and Krishna Kant Singh3.1 Introduction 513.2 Related Work 543.3 Machine Learning to Deep Learning 553.3.1 Advance Machine Learning Techniques 563.3.1.1 Deep Learning 563.3.2 Deep Reinforcement Learning (DRL) 573.3.2.1 Q-Learning 583.3.2.2 Multi-Armed Bandit Learning (MABL) 583.3.2.3 Actor–Critic Learning (ACL) 583.3.2.4 Joint Utility and Strategy Estimation Based Learning 593.4 Applications of Machine Learning Models in Wireless Communication 593.4.1 Regression, KNN and SVM Models for Wireless 603.4.2 Bayesian Learning for Cognitive Radio 603.4.3 Deep Learning in Wireless Network 613.4.4 Deep Reinforcement Learning in Wireless Network 623.4.5 Traffic Engineering and Routing 633.4.6 Resource Sharing and Scheduling 643.4.7 Power Control and Data Collection 643.5 Conclusion 65References 664 COGNITIVE COMPUTING FOR SMART COMMUNICATION 73Poonam Sharma, Akansha Singh and Aman Jatain4.1 Introduction 744.2 Cognitive Computing Evolution 754.3 Characteristics of Cognitive Computing 764.4 Basic Architecture 774.4.1 Cognitive Computing and Communication 774.5 Resource Management Based on Cognitive Radios 784.6 Designing 5G Smart Communication with Cognitive Computing and AI 804.6.1 Physical Layer Design Based on Reinforcement Learning 824.7 Advanced Wireless Signal Processing Based on Deep Learning 844.7.1 Modulation 854.7.2 Deep Learning for Channel Decoding 864.7.3 Detection Using Deep Learning 874.8 Applications of Cognition-Based Wireless Communication 874.8.1 Smart Surveillance Networks for Public Safety 884.8.2 Cognitive Health Care Systems 884.9 Conclusion 89References 895 SPECTRUM SENSING AND ALLOCATION SCHEMES FOR COGNITIVE RADIO 91Amrita Rai, Amit Sehgal, T.L. Singal and Rajeev Agrawal5.1 Foundation and Principle of Cognitive Radio 925.2 Spectrum Sensing for Cognitive Radio Networks 945.3 Classification of Spectrum Sensing Techniques 955.4 Energy Detection 975.5 Matched Filter Detection 1005.6 Cyclo-Stationary Detection 1035.7 Euclidean Distance-Based Detection 1075.8 Spectrum Allocation for Cognitive Radio Networks 1085.9 Challenges in Spectrum Allocation 1185.9.1 Spectrum and Network Heterogeneity 1195.9.2 Issues and Challenges 1205.10 Future Scope in Spectrum Allocation 122References 1236 SIGNIFICANCE OF WIRELESS TECHNOLOGY IN INTERNET OF THINGS (IOT) 131Ashish Tripathi, Arun Kumar Singh, Pushpa Choudhary, Prem Chand Vashist and K. K. Mishra6.1 Introduction 1326.1.1 Internet of Things: A Historical Background 1336.1.2 Internet of Things: Overview, Definition, and Understanding 1336.1.3 Internet of Things: Existing and Future Scopes 1356.2 Overview of the Hardware Components of IoT 1366.2.1 IoT Hardware Components: Development Boards/Platforms 1366.2.1.1 Arduino 1366.2.1.2 Raspberry Pi 1376.2.1.3 BeagleBone 1376.2.2 IoT Hardware Components: Transducer 1386.2.2.1 Sensors 1386.2.2.2 Actuators 1386.3 Wireless Technology in IoT 1396.3.1 Topology 1396.3.1.1 Mesh Topology 1406.3.1.2 Star Topology 1416.3.1.3 Point-to-Point Topology 1416.3.2 IoT Networks 1426.3.2.1 Nano Network 1426.3.2.2 Near-Field Communication (NFC) Network 1436.3.2.3 Body Area Network (BAN) 1436.3.2.4 Personal Area Network (PAN) 1436.3.2.5 Local Area Network (LAN) 1436.3.2.6 Campus/Corporate Area Network (CAN) 1436.3.2.7 Metropolitan Area Network (MAN) 1446.3.2.8 Wide Area Network (WAN) 1446.3.3 IoT Connections 1446.3.3.1 Device-to-Device (D2D)/Machine-to-Machine (M2M) 1446.3.3.2 Machine-to-Gateway/Router (M2G/R) 1456.3.3.3 Gateway/Router-to-Data System (G/R2DS) 1456.3.3.4 Data System to Data System (DS2DS) 1456.3.4 IoT Protocols/Standards 1456.3.4.1 Network Protocols for IoT 1466.3.4.2 Data Protocols for IoT 1486.4 Conclusion 150References 1507 ARCHITECTURES AND PROTOCOLS FOR NEXT-GENERATION COGNITIVE NETWORKING 155R. Ganesh Babu, V. Amudha and P. Karthika7.1 Introduction 1567.1.1 Primary Network (Licensed Network) 1567.1.2 CR Network (Unlicensed Network) 1577.2 Cognitive Radio Network Technologies and Applications 1597.2.1 Classes of CR 1597.2.2 Next Generation (xG) of CR Applications 1627.3 Cognitive Computing: Architecture, Technologies, and Intelligent Applications 1637.3.1 CR Physical Architecture 1637.4 Functionalities of CR in NeXt Generation (xG) Networks 1647.5 Spectrum Sensing 1657.5.1 Spectrum Decision 1657.5.2 Spectrum Mobility 1657.5.3 CR Network Functions 1667.6 Cognitive Computing for Smart Communications 1677.6.1 CR Technologies 1677.7 Spectrum Allocation in Cognitive Radio 1697.8 Cooperative and Cognitive Network 1737.8.1 Cooperative Centralized Coordinated 1737.8.2 Cooperative Decentralized (Distributed) Coordinated and Uncoordinated 176References 1768 ANALYSIS OF PEAK-TO-AVERAGE POWER RATIO IN OFDM SYSTEMS USING COGNITIVE RADIO TECHNOLOGY 179Udayakumar Easwaran, Poongodi Palaniswamy and Vetrivelan Ponnusamy8.1 Introduction 1808.2 OFDM Systems 1818.3 Peak-to-Average Power Ratio 1838.4 Cognitive Radio (CR) 1848.5 Related Works 1868.6 Neural Network System Model 1938.7 Complexity Examination 1948.8 PAPR and BER Examination 1958.9 Performance Evaluation 1968.10 Results and Discussions 1968.11 Conclusion 200References 2009 A THRESHOLD-BASED OPTIMIZATION ENERGY-EFFICIENT ROUTING TECHNIQUE IN HETEROGENEOUS WIRELESS SENSOR NETWORKS 203Samayveer Singh9.1 Introduction 2049.2 Literature Review 2059.3 System Model 2079.3.1 Four-Level Heterogeneous Network Model 2089.3.2 Energy Dissipation Radio Model 2109.4 Proposed Work 2119.4.1 Optimum Cluster Head Election of the Proposed Protocol 2119.4.2 Information Congregation and Communication Process Based on Chaining System for Intra and Inter‑Cluster Communication 2149.4.3 The Complete Working Process of the Proposed Method 2149.5 Simulation Results and Discussions 2169.5.1 Network Lifetime and Stability Period 2179.5.2 Network Outstanding Energy 2199.5.3 Throughput 2199.5.4 Comparative Analysis of the Level-4 Network Protocols 2229.6 Conclusion 222References 22310 EFFICACY OF BIG DATA APPLICATION IN SMART CITIES 225Sudipta Sahana, Dharmpal Singh and Pranati Rakshit10.1 Introduction 22610.1.1 Characteristics of Big Data 22710.1.1.1 Velocity 22710.1.1.2 Volume 22710.1.1.3 Value 22810.1.1.4 Variety 22810.1.1.5 Veracity 22810.1.2 Definition of Smart Cities 22810.2 Types of Data in Big Data 22910.2.1 Structured Data 22910.2.2 Unstructured Data 23010.2.3 Semi-Structured Data 23010.3 Big Data Technologies 23110.3.1 Apache Hadoop 23110.3.2 HDFS 23110.3.3 Spark 23210.3.4 Microsoft HDInsight 23210.3.5 NoSQL 23310.3.6 Hive 23310.3.7 Sqoop 23410.3.8 R 23510.3.9 Data Lakes 23510.4 Data Source for Big Data 23510.4.1 Media 23610.4.2 Cloud 23610.4.3 The Web 23610.4.4 IOT 23610.4.5 Databases as a Big Data Source 23710.4.6 Hidden Big Data Sources 23710.4.6.1 Email 23710.4.6.2 Social Media 23810.4.6.3 Open Data 23810.4.6.4 Sensor Data 23810.4.7 Application-Oriented Big Data Source for a Smart City 23810.4.7.1 Healthcare 23810.4.7.2 Transportation 23910.4.7.3 Education 24010.5 Components of a Smart City 24110.5.1 Smart Infrastructure 24110.5.1.1 Intelligent Lighting 24110.5.1.2 Modern Parking Systems 24110.5.1.3 Associated Charging Points 24210.5.2 Smart Buildings and Belongings 24210.5.2.1 Safety and Security Systems 24210.5.2.2 Smart Sprinkler Systems for Gardens 24210.5.2.3 Smart Heating and Ventilation 24210.5.3 Smart Industrial Environment 24310.5.4 Smart City Services 24310.5.4.1 Smart Stalls 24310.5.4.2 Monitoring of Risky Areas 24410.5.4.3 Public Safety 24410.5.4.4 Fire/Explosion Management 24410.5.4.5 Automatic Health-Care Delivery 24410.5.5 Smart Energy Management 24410.5.5.1 Smart Grid 24510.5.5.2 Intelligent Meters 24510.5.6 Smart Water Management 24510.5.7 Smart Waste Management 24510.6 Challenge and Solution of Big Data for Smart City 24610.6.1 Challenge in Big Data for Smart City 24610.6.1.1 Data Integration 24610.6.1.2 Security and Privacy 24610.6.1.3 Data Analytics 24710.6.2 Solution of Challenge Smart City 24710.6.2.1 Conquering Difficulties with Enactment 24710.6.2.2 Making People Smarter—Education for Everyone 24810.7 Conclusion 248References 249Index 251
Parallel Algorithms in Computational Science and Engineering
This contributed volume highlights two areas of fundamental interest in high-performance computing: core algorithms for important kernels and computationally demanding applications. The first few chapters explore algorithms, numerical techniques, and their parallel formulations for a variety of kernels that arise in applications. The rest of the volume focuses on state-of-the-art applications from diverse domains. By structuring the volume around these two areas, it presents a comprehensive view of the application landscape for high-performance computing, while also enabling readers to develop new applications using the kernels. Readers will learn how to choose the most suitable parallel algorithms for any given application, ensuring that theory and practicality are clearly connected. Applications using these techniques are illustrated in detail, including:* Computational materials science and engineering* Computational cardiovascular analysis* Multiscale analysis of wind turbines and turbomachinery* Weather forecasting* Machine learning techniquesParallel Algorithms in Computational Science and Engineering will be an ideal reference for applied mathematicians, engineers, computer scientists, and other researchers who utilize high-performance computing in their work.State-of-the-Art Sparse Direct Solvers.- The Effect of Various Sparsity Structures on Parallelism and Algorithms to Reveal Those Structures.- Structure-Exploiting Interior Point Methods.- Parallel Hybrid Sparse Linear System Solvers.- Computational Material Science and Engineering.- Computational Cardiovascular Analysis with the Variational Multiscale Methods and Isogeometric Discretization.- ALE and Space-Time Variational Multiscale Isogeometric Analysis of Wind Turbines and Turbomachinery.- Variational Multiscale Flow Analysis in Aerospace, Energy, and Transportation Technologies.- Multiscale Crowd Dynamics Modeling and Safety Problems Towards Parallel Computing.- HPC for Weather Forecasting.- A Simple Study of Pleasing Parallelism on Multicore Computers.- Parallel Fast Time-Domain Integral-Equation Methods for Transient Electromagnetism Analysis.- Parallel Optimization Techniques for Machine Learning.
Von Data Mining bis Big Data
Von Datensalat zu DatenschatzEine wichtige Säule von Industrie 4.0 ist Big Data. Hierbei geht es um die intelligente Verwertung riesiger Datenmengen mit dem Ziel Prozesse besser zu beherrschen oder neue Geschäftsfelder zu finden. Big Data für sich zu erschließen bedeutet nichts anderes als einen Schatz zu heben, der in der Fülle von Informationen, die Sie in Ihrem Unternehmen anhäufen, verborgen liegt. Dieses Buch enthält die Schatzkarte. Hier erfahren Sie- wie mit Hilfe von Data Mining-Techniken unbekannte Zusammenhänge und Strukturen über den datenliefernden Prozess entdeckt werden können- wie mit den gewonnenen Erkenntnissen detaillierte Vorhersagen über das zukünftige Prozessverhalten und Strategien zur Optimierung ganzer Fabriken abgeleitet werden- welche Tools und Plattformen es gibt, um Big Data wirtschaftlich sinnvoll in Ihr Unternehmen einzuführen- wie andere Firmen aus verschiedensten Branchen mit Big Data erfolgreiche Effizienzsteigerungen erreicht habenWenn Sie sich im Rahmen der aktuell laufenden Digitalisierungswelle fragen, welche der modernen Techniken wofür genutzt werden können oder müssen, um den Anschluss nicht zu verpassen, dann ist dieses Buch genau das richtige für Sie. Der Autor hat über 20 JahreErfahrung bei der Entwicklung von Data Mining-Technologien und bei ihrem Einsatz in der Industrie. Prof. Dr. Otte leitet die Lehre im Bereich Künstliche Intelligenz im Masterstudium an der Hochschule Ulm
Komplexität von Algorithmen
Dieses Lehrbuch, entstanden aus einer Anfängervorlesung aus dem Informatik-Studiengang an der Leibniz Universität Hannover, bietet einen ersten Einstieg in den Bereich der Komplexitätstheorie.Der Leser wird mit den wichtigsten Begriffen und Resultaten aus diesem Bereich vertraut gemacht: Komplexitätsklassen, vollständige („schwierigste“) Probleme in einer Komplexitätsklasse – detailliert am Begriff der NP-Vollständigkeit und an vielen Beispielen ausgeführt – sowie Approximationsalgorithmen als Lösungsmöglichkeit für viele NP-vollständige Probleme.Außerdem enthält das Buch eine große Anzahl an Übungsaufgaben (mit vielen Lösungen) wie auch abschließend die Möglichkeit, sein erarbeitetes Wissen in zwei exemplarischen Klausuren zu prüfen.
Modulare Softwarearchitektur
MODULARE SOFTWAREARCHITEKTUR //- Lesen Sie Grundlegendes über die neue Schule der Softwarearchitektur- Nutzen Sie die konkreten Empfehlungen zum Bau langlebiger, weil modularer Enterprise- bzw. Makro-Architektur- Erfahren Sie, wie Sie Schritt für Schritt Ihr System zu einer modularen Architektur hin umbauen können- Lernen Sie die Prinzipien nachhaltiger und modularer Architektur anhand eines 16-teiligen Code-Tutorials kennen- Das 5C-Modell stellt eine Alternative zum Microservice-Hype dar und ist auch bei komplexen Architekturen anwendbarDie Softwarekrise hält die IT-Branche seit den 1960er-Jahren in Atem. Damals wurde heftig darüber debattiert, ob man nicht lieber auf die Verwendung des GOTO-Schlüsselworts und x-beliebiger Sprünge im Code verzichten sollte. Mit der zunehmenden Leistungsfähigkeit der Hardware wurde auch die darauf laufende Software immer komplexer, und man suchte nach Rezepten, um deren Wartbarkeit zu verbessern.Diese Entwicklung ist bis heute nicht abgeschlossen. Die digitale Transformation der Gesellschaft bringt für bestehende IT-Landschaften neue Herausforderungen mit sich. Enterprise-Architekturen, die sich oft durch ungeplant entstandene Komplexität auszeichnen, sollen plötzlich weiterwachsen. Da die klassischen Muster der Enterprise-Architektur dabei oft versagen, werden zurzeit neue Prinzipien und Muster entwickelt, welche genau diese Komplexität in geordnete Bahnen lenken sollen.Dieses Buch behandelt diese Themen und stellt den Bezug zu den guten alten Mustern und Prinzipien des Softwaredesigns her.AUS DEM INHALT //Über Softwarearchitektur/Migration von Legacy-Systemen/Domain Driven Design/Muster modularer Mikro-Architektur/Muster modularer Makro-Architektur bzw. langlebige Enterprise-Architektur/Monolithen, Microservices und Alternativen/Antipattern und Pitfalls modularer Architektur und wie man diese vermeidet/Umsetzung modularer Architektur in komplexen Organisationen Herbert Dowalil ist seit vielen Jahren als Softwareentwickler, -architekt, Trainer und inzwischen auch als Autor tätig. Dabei beschäftigt er sich mit der Frage, wie man durch den Entwurf effizienter Strukturen langfristig Produktivität und Flexibilität sicherstellt. Sein Hauptaugenmerk gilt dabei einer der Schwachstellen der IT-Branche, nämlich der modularen Enterprise- bzw. Makro-Architektur.
Visual Studio Extensibility Development
Learn the extensibility model of Visual Studio to enhance the Visual Studio integrated development environment (IDE). This book will cover every aspect, starting from developing an extension to publishing it and making it available to the end user.The book begins with an introduction to the basic concepts of Visual Studio including data structures and design patterns and moves forward with the fundamentals of the VS extensibility model. Here you will learn how to work on Roslyn - the .NET compiler platform - and load extensions in VS. Next, you will go through the extensibility model and see how various extensions, such as menus, commands, and tool windows, can be plugged into VS. Moving forward, you’ll cover developing VS extensions and configuring them, along with demonstrations on customizing extension by developing option pages. Further, you will learn to create custom code snippets and use a debugger visualizer. Next, you will go through creation of project and item templates including deployment of VS extensions using continuous integration (CI). Finally, you will learn tips and tricks for Visual Studio and its extensibility and integration with Azure DevOps.After reading Visual Studio Extensibility Development you will be able to develop, deploy, and customize extensions in Visual Studio IDE.WHAT YOU WILL LEARN* Discover the Visual Studio extensibility and automation model* Code Visual Studio extensions from scratch* Customize extensions by developing a tools option page for them* Create project templates, item templates, and code snippets.* Work with code generation using T4 templates* Code analysis and refactoring using Roslyn analyzers* Create and deploy a private extension gallery and upload the extensions* Upload a VS extension using CI* Ship your extension to Visual Studio MarketplaceWHO THIS BOOK IS FORDevelopers in Visual Studio IDE covering C#, Visual Basic (VB), JavaScript, and CSS.RISHABH VERMA is a Microsoft certified professional and works at Microsoft as a senior development consultant, helping the customers to design, develop, and deploy enterprise-level applications. An electronic engineer by education, he has 12+ years of hardcore development experience on the .NET technology stack. He is passionate about creating tools, Visual Studio extensions, and utilities to increase developer productivity. His interests are .NET Compiler Platform (Roslyn), Visual Studio extensibility, code generation and .NET Core. He is a member of .NET foundation (https://www.dotnetfoundation.org). He occasionally blogs at https://rishabhverma.net/. He has authored books on .NET Core 2.0 and .NET Core 3.1 prior to this title.His twitter id is @VermaRishabh and his linkedIn page is https://www.linkedin.com/in/rishabhverma/CHAPTER 1: BASICS PRIMERCHAPTER GOAL: The objective of this chapter is to introduce the basic concepts to the reader that would be required through-out this book, so that he gets comfortable in this learning journey.NO OF PAGES :50-60SUB -TOPICS1. What is a compiler?2. What is an SDK (Software Development Kit)?3. Recap of Tree Data structure1. Tree traversal,2. Abstract Syntax trees4. MEF (Managed Extensibility Framework) Basics.5. Visual Studio & its history6. XML & JSON7. Serialization & Deserialization.8. Revisiting Visitor, Abstract Factory and Factory design patterns.9. MSBuild basics10. Async-await.CHAPTER 2: GETTING STARTEDCHAPTER GOAL: With the fundamentals strongly in place, we are now good to get started with Visual Studio (VS) Extensibility model. We will do our setup in this chapter. This chapter would introduce the VS Extensibility, Roslyn to the reader. The reader would also learn to write and debug a VS extension.NO OF PAGES: 40SUB - TOPICS1. Prerequisites and installation of VS2. Anatomy of a VSIX3. How Visual Studio discovers and loads extensions.4. VSPackage5. Async Loading6. Writing your first simple templatized Visual Studio Extension.7. Roslyn - .NET Compiler platform fundamentalsCHAPTER 3: EXTENDING VISUAL STUDIOCHAPTER GOAL: This chapter would introduce the extensibility model and how various extensions can be plugged in VSas menus, commands, tool window, code window, solution explorer etcNO OF PAGES: 40-50SUB - TOPICS:1. The Visual Studio Extensibility model2. Tool Window extension3. Menus & commands,4. Code Window extension5. Solution explorer item extensionCHAPTER 4: DEVELOPING REAL WORLD EXTENSIONS - ICHAPTER GOAL: This chapter dives into developing useful real-world VS Extensions and shows how they can be made configurable by customizing UI and options page.We would also learn how to write to output window and manipulate documents and projects in this chapter.NO OF PAGES: 40-50SUB - TOPICS:1. VS Extension to search on MSDN/Bing/Google.2. VS Extension to generate HTTP Client proxy class for HTTP Web API using T4 templates.3. VS Extension to generate test data.4. Customizing extension by developing Tools option page.5. Customizing UI of extension.CHAPTER 5: DEVELOPING REAL WORLD EXTENSIONS - IICHAPTER GOAL: This chapter is the continuation of last chapter and continues the development of useful real-world VS extensions but this time using the .NET Compiler platform – Roslyn.NO OF PAGES: 40-50SUB - TOPICS:1. Rewrite VS Extension to generate HTTP Client proxy class for HTTP Web API using Roslyn.2. Developing a custom code analysis Visual Studio Extension.3. Developing a light bulb style code refactoring.4. Developing Roslyn based extension to generate unit tests using T4 template.CHAPTER 6: DO MORE WITH VS SDKCHAPTER GOAL: This chapter introduces the reader with famous Visual Studio Isolated and integrated Shell to develop applications that looks like Visual Studio and also develops handy productivity boosters like custom code snippets, debugger visualizers, modifying intellisense, debugging experience for developersNO OF PAGES: 40-50SUB - TOPICS:1. VS Isolated and Integrated Shell2. Developing applications that look like Visual Studio.3. Extending the debugger.4. Create custom code snippets.5. Create Debugger Visualizer for view data while debugging.6. Modifying intellisense.CHAPTER 7: TEMPLATES, DEBUGGING VS EXTENSIONSCHAPTER GOAL: This chapter explains how to create project and item templates. The chapter also shows a sample code lens extension then dives into debugging the extensionNO OF PAGES: 40-50SUB - TOPICS:6. Code lens sample extension.7. Creating Project and Item template.8. Debugging VS Extensions.CHAPTER 8: DEPLOYING VS EXTENSIONSCHAPTER GOAL: This chapter explains how to deploy VS extensions using continuous integration (CI). The chapter also explains how the extension can be made available to the world by uploading in marketplace. We also discuss how to make a private extension gallery and host your extension there.NO OF PAGES: 40-50SUB - TOPICS:9. Deploying a VS Extension using CI.10. Creating a private extension gallery/ Atom feed11. Hosting extension in private gallery.12. Sharing extension with the world using marketplace.CHAPTER 9: TIPS, TRICKS, EXTENSIONS AND WORDSCHAPTER GOAL: This chapter discusses few of the coolest tips and tricks for Visual Studio and its extensibility and shares few highly useful extensions. The chapter and book conclude with closing remarks on extensibility of Visual Studio Code and integration with Visual Studio Team Services (VSTS) or Azure DevOps.NO OF PAGES: 30-40SUB - TOPICS:1. Cool Tips and tricks2. Useful Extensions for C#, VB, JS, TS and CSS developers.3. A word on Visual Studio Code Extensibility4. Integration with VSTS or Azure DevOpsUseful Resources – 1 pageMore Reading – 1 pageCode Samples – Link to code samples from GitHub.
Computational Models for Cognitive Vision
LEARN HOW TO APPLY COGNITIVE PRINCIPLES TO THE PROBLEMS OF COMPUTER VISIONComputational Models for Cognitive Vision formulates the computational models for the cognitive principles found in biological vision, and applies those models to computer vision tasks. Such principles include perceptual grouping, attention, visual quality and aesthetics, knowledge-based interpretation and learning, to name a few. The author’s ultimate goal is to provide a framework for creation of a machine vision system with the capability and versatility of the human vision.Written by Dr. Hiranmay Ghosh, the book takes readers through the basic principles and the computational models for cognitive vision, Bayesian reasoning for perception and cognition, and other related topics, before establishing the relationship of cognitive vision with the multi-disciplinary field broadly referred to as “artificial intelligence”. The principles are illustrated with diverse application examples in computer vision, such as computational photography, digital heritage and social robots. The author concludes with suggestions for future research and salient observations about the state of the field of cognitive vision.Other topics covered in the book include:· knowledge representation techniques· evolution of cognitive architectures· deep learning approaches for visual cognitionUndergraduate students, graduate students, engineers, and researchers interested in cognitive vision will consider this an indispensable and practical resource in the development and study of computer vision.HIRANMAY GHOSH, PHD, was a Research Advisor to TATA Consultancy Services and an Adjunct Faculty Member with the National Institute of Technology Karnataka. During his long professional career, he has served several reputed organizations, including CMC, ECIL and C-DOT and TCS. He was an Adjunct Faculty Member with IIT Delhi, and with the National Institute of Technology Karnataka. He is a Senior Member of IEEE, Life Member of IUPRAI, and a Member of ACM. About the Author ixAcknowledgments xiPreface xiiiAcronyms xv1 INTRODUCTION 11.1 What Is Cognitive Vision 21.2 Computational Approaches for Cognitive Vision 31.3 A Brief Review of Human Vision System 41.4 Perception and Cognition 61.5 Organization of the Book 72 EARLY VISION92.1 Feature Integration Theory 92.2 Structure of Human Eye 102.3 Lateral Inhibition 132.4 Convolution: Detection of Edges and Orientations 142.5 Color and Texture Perception 172.6 Motion Perception 192.6.1 Intensity-Based Approach 192.6.2 Token-Based Approach 202.7 Peripheral Vision 212.8 Conclusion 243 BAYESIAN REASONING FOR PERCEPTION AND COGNITION 253.1 Reasoning Paradigms 263.2 Natural Scene Statistics 273.3 Bayesian Framework of Reasoning 283.4 Bayesian Networks 323.5 Dynamic Bayesian Networks 343.6 Parameter Estimation 363.7 On Complexity of Models and Bayesian Inference 383.8 Hierarchical Bayesian Models 393.9 Inductive Reasoning with Bayesian Framework 413.9.1 Inductive Generalization 413.9.2 Taxonomy Learning 453.9.3 Feature Selection 463.10 Conclusion 474 LATE VISION 514.1 Stereopsis and Depth Perception 514.2 Perception of Visual Quality 534.3 Perceptual Grouping 554.4 Foreground–Background Separation 594.5 Multi-stability 604.6 Object Recognition 614.6.1 In-Context Object Recognition 624.6.2 Synthesis of Bottom-Up and Top-Down Knowledge 644.6.3 Hierarchical Modeling 654.6.4 One-Shot Learning 664.7 Visual Aesthetics 674.8 Conclusion 695 VISUAL ATTENTION 715.1 Modeling of Visual Attention 725.2 Models for Visual Attention 755.2.1 Cognitive Models 755.2.2 Information-Theoretic Models 775.2.3 Bayesian Models 785.2.4 Context-Based Models 795.2.5 Object-Based Models 815.3 Evaluation 825.4 Conclusion 846 Cognitive Architectures 876.1 Cognitive Modeling 886.1.1 Paradigms for Modeling Cognition 886.1.2 Levels of Abstraction 916.2 Desiderata for Cognitive Architectures 926.3 Memory Architecture 946.4 Taxonomies of Cognitive Architectures 976.5 Review of Cognitive Architectures 996.5.1 STAR: Selective Tuning Attentive Reference 1006.5.2 LIDA: Learning Intelligent Distribution Agent 1026.6 Biologically Inspired Cognitive Architectures 1056.7 Conclusions 1067 KNOWLEDGE REPRESENTATION FOR COGNITIVE VISION 1097.1 Classicist Approach to Knowledge Representation 1097.1.1 First Order Logic 1117.1.2 Semantic Networks 1137.1.3 Frame-Based Representation 1147.2 Symbol Grounding Problem 1177.3 Perceptual Knowledge 1187.3.1 Representing Perceptual Knowledge 1197.3.2 Structural Description of Scenes 1207.3.3 Qualitative Spatial and Temporal Relations 1227.3.4 Inexact Spatiotemporal Relations 1247.4 Unifying Conceptual and Perceptual Knowledge 1277.5 Knowledge-Based Visual Data Processing 1287.6 Conclusion 1298 DEEP LEARNING FOR VISUAL COGNITION 1318.1 A Brief Introduction to Deep Neural Networks 1328.1.1 Fully Connected Networks 1328.1.2 Convolutional Neural Networks 1348.1.3 Recurrent Neural Networks 1378.1.4 Siamese Networks 1408.1.5 Graph Neural Networks 1408.2 Modes of Learning with DNN 1428.2.1 Supervised Learning 1428.2.1.1 Image Segmentation 1428.2.1.2 Object Detection 1448.2.2 Unsupervised Learning with Generative Networks 1448.2.3 Meta-Learning: Learning to Learn 1468.2.3.1 Reinforcement Learning 1488.2.3.2 One-Shot and Few-Shot Learning 1488.2.3.3 Zero-Shot Learning 1508.2.3.4 Incremental Learning 1508.2.4 Multi-task Learning 1528.3 Visual Attention 1548.3.1 Recurrent Attention Models 1558.3.2 Recurrent Attention Model for Video 1588.4 Bayesian Inferencing with Neural Networks 1598.5 Conclusion 1609 APPLICATIONS OF VISUAL COGNITION 1639.1 Computational Photography 1639.1.1 Color Enhancement 1649.1.2 Intelligent Cropping 1669.1.3 Face Beautification 1679.2 Digital Heritage 1689.2.1 Digital Restoration of Images 1689.2.2 Curating Dance Archives 1709.3 Social Robots 1729.3.1 Dynamic and Shared Spaces 1739.3.2 Recognition of Visual Cues 1749.3.3 Attention to Socially Relevant Signals 1759.4 Content Re-purposing 1779.5 Conclusion 17910 CONCLUSION 18110.1 “What Is Cognitive Vision” Revisited 18110.2 Divergence of Approaches 18310.3 Convergence on the Anvil? 185References 187Index 215