Computer und IT
Clean Agile. Die Essenz der agilen Softwareentwicklung
* LERNEN SIE AUS UNCLE BOBS JAHRZEHNTELANGER ERFAHRUNG, WORAUF ES BEI DER AGILEN SOFTWAREENTWICKLUNG WIRKLICH ANKOMMT* DIE URSPRÜNGLICHEN AGILEN WERTE UND PRINZIPIEN KURZ UND PRÄGNANT FÜR DEN PRAXISEINSATZ ERLÄUTERT* VON DEN UNTERNEHMERISCHEN ASPEKTEN ÜBER DIE KOMMUNIKATION IM TEAM BIS ZU DEN TECHNISCHEN PRAKTIKEN WIE TEST-DRIVEN DEVELOPMENT (TDD), EINFACHES DESIGN UND PAIR PROGRAMMINGFast 20 Jahre nach der Veröffentlichung des agilen Manifests ruft der legendäre Softwareentwickler Robert C. Martin (»Uncle Bob«) dazu auf, sich wieder auf die ursprünglichen Werte und Prinzipien zurückzubesinnen, die den eigentlichen Kern der agilen Softwareentwicklung ausmachen und die für die Praxis von zentraler Bedeutung sind. Mit Clean Agile lässt er alle an seiner jahrzehntelangen Erfahrung teilhaben und räumt mit Missverständnissen und Fehlinterpretationen auf, die im Laufe der Jahre entstanden sind. Dabei wendet er sich gleichermaßen an Programmierer und Nicht-Programmierer.Uncle Bob macht deutlich, was agile Softwareentwicklung eigentlich ist, war und immer sein sollte: ein einfaches Konzept, das kleinen Softwareteams hilft, kleine Projekte zu managen - denn daraus setzen sich letztendlich alle großen Projekte zusammen. Dabei konzentriert er sich insbesondere auf die Praktiken des Extreme Programmings (XP), ohne sich in technischen Details zu verlieren.Egal, ob Sie Entwickler, Tester, Projektmanager oder Auftraggeber sind - dieses Buch zeigt Ihnen, worauf es bei der Umsetzung agiler Methoden wirklich ankommt.AUS DEM INHALT:* Ursprünge der agilen Softwareentwicklung* Agile Werte und Prinzipien* Der richtige Einsatz von Scrum* Agile Transformation* Extreme Programming* Unternehmensbezogene Praktiken: User Stories, Velocity, kleine Releases und Akzeptanztests* Teambezogene Praktiken: gemeinsame Eigentümerschaft, kontinuierliche Integration und Stand-up-Meetings* Technische Praktiken: TDD, Refactoring, einfaches Design und Pair Programming* Zertifizierung und Coaching* Software CraftsmanshipSTIMMEN ZUM BUCH:»Bobs Frustration spiegelt sich in jedem Satz des Buchs wider - und das zu Recht. Der Zustand, in dem sich die Welt der agilen Softwareentwicklung befindet, ist nichts im Vergleich zu dem, was sie eigentlich sein könnte. Das Buch beschreibt, auf was man sich aus Bobs Sicht konzentrieren sollte, um das zu erreichen, was sein könnte. Und er hat es schon erreicht, deshalb lohnt es sich, ihm zuzuhören.«- Kent Beck»Uncle Bob ist einer der klügsten Menschen, die ich kenne, und seine Begeisterung für Programmierung kennt keine Grenzen. Wenn es jemandem gelingt, agile Softwareentwicklung zu entmystifizieren, dann ihm.«- Jerry FitzpatrickRobert C. Martin (»Uncle Bob«) ist bereits seit 1970 als Programmierer tätig. Neben seiner Beraterfirma Uncle Bob Consulting, LLC gründete er gemeinsam mit seinem Sohn Micah Martin auch das Unternehmen The Clean Coders, LLC. Er hat zahlreiche Artikel in verschiedenen Zeitschriften veröffentlicht und hält regelmäßig Vorträge auf internationalen Konferenzen. Zu seinen bekanntesten Büchern zählen Clean Code, Clean Coder und Clean Architecture.
Beginning C
Learn how to program using C, beginning from first principles and progressing through step-by-step examples to become a competent, C-language programmer. All you need are this book and any of the widely available C compilers, and you'll soon be writing real C programs.You’ll discover that C is a foundation language that every programmer ought to know. Beginning C is written by renowned author Ivor Horton and expert programmer German Gonzalez-Morris. This book increases your programming expertise by guiding you through the development of fully working C applications that use what you've learned in a practical context. You’ll also be able to strike out on your own by trying the exercises included at the end of each chapter. At the end of the book you'll be confident in your skills with all facets of the widely-used and powerful C language.WHAT YOU WILL LEARN* Discover the C programming languageProgram using C starting with first steps, then making decisions * Use loops, arrays, strings, text, pointers, functions, I/O, and moreCode applications with strings and text * Structure your programs efficientlyWork with data, files, facilities, and moreWHO THIS BOOK IS FORThose new to C programming who may or may not have some prior programming experience.GERMAN GONZALEZ-MORRIS is a software architect/engineer working with C/C++, Java, and different application containers, in particular, with WebLogic Server. He has developed different applications including JEE/Spring/Python. His areas of expertise also include OOP, design patterns, Spring Core/MVC, and microservices.IVOR HORTON is self-employed in consultancy and writes programming tutorials. He worked for IBM for many years and holds a bachelor's degree, with honors, in mathematics. Horton's experience at IBM includes programming in most languages (such as assembler and high-level languages on a variety of machines), real-time programming, and designing and implementing real-time closed-loop industrial control systems. He has extensive experience teaching programming to engineers and scientists (Fortran, PL/1, APL, etc.). Horton is an expert in mechanical, process, and electronic CAD systems; mechanical CAM systems; and DNC/CNC systems.1. Programming in C2. First Steps in Programming3. Making Decisions4. Loops5. Arrays6. Applications with Strings and Text7. Pointers8. Structuring Your Programs9. More on Functions10. Essential Input and Output Operations11. Structuring Data12. Working with Files13. Supporting Facilities14. Advanced and Specialized TopicsA. Computer ArithmeticB. ASCII Character Code DefinitionsC. Reserved Words in CD. Input and Output Format SpecificationsE. Standard Library Headers
Krisen mit Social Media Intelligence bewältigen. Empfehlungen für den Einsatz sozialer Netzwerke im Katastrophenschutz
Der fortschreitende Klimawandel und dessen Auswirkungen werden dafür sorgen, dass die Zahl der Naturkatastrophen zunimmt. Daher ist es besonders für Menschen in Krisengebieten notwendig, sich durch umfassendes Katastrophen- und Krisenmanagement auf derartige Situationen vorzubereiten.Welche Informationssysteme zur Bevölkerungswarnung gibt es bereits? Welches Potenzial besitzen soziale Netzwerke in diesem Zusammenhang? Was verstehen wir unter Social Media Intelligence? inwieweit können sich freiwillige Helfer einbringen, um die Widerstandsfähigkeit in humanitären Notlagen zu steigern. Welche Herausforderungen können dabei auftreten?Der Autor untersucht den Mehrwert von Social Media bei der Krisenbewältigung. Er legt dar, wie Informationssysteme im Katastrophenschutz zum Einsatz kommen und geht insbesondere auf die Potenziale von sozialen Medien ein. Für die effektive Koordination von digitalen Freiwilligen und Vor-Ort-Helfern gibt er Handlungsempfehlungen.Aus dem Inhalt:- Digital Volunteers;- Vor-Ort-Helfer;- Facebook Disaster Maps;- Warn-Apps;- Big Data
Advanced Python Development
This book builds on basic Python tutorials to explain various Python language features that aren’t routinely covered: from reusable console scripts that play double duty as micro-services by leveraging entry points, to using asyncio efficiently to collate data from a large number of sources. Along the way, it covers type-hint based linting, low-overhead testing and other automated quality checking to demonstrate a robust real-world development process.Some powerful aspects of Python are often documented with contrived examples that explain the feature as a standalone example only. By following the design and build of a real-world application example from prototype to production quality you'll see not only how the various pieces of functionality work but how they integrate as part of the larger system design process. In addition, you'll benefit from the kind of useful asides and library recommendations that are a staple of conference Q&A sessions at Python conferences as well as discussions of modern Python best practice and techniques to better produce clear code that is easily maintainable.Advanced Python Development is intended for developers who can already write simple programs in Python and want to understand when it’s appropriate to use new and advanced language features and to do so in a confident manner. It is especially of use to developers looking to progress to a more senior level and to very experienced developers who have thus far used older versions of Python.WHAT YOU'LL LEARN* Understand asynchronous programming* Examine developing plugin architectures* Work with type annotations* Review testing techniques* Explore packaging and dependency managementWHO THIS BOOK IS FORDevelopers at the mid to senior level who already have Python experience.Matthew Wilkes is a European software developer who has worked with Python on web projects for the last fifteen years. As well as developing software, he has long experience in mentoring Python developers in a commercial setting.He is also very involved in open source software, with commits to many popularframeworks. His contributions in that space are focused on the details of database and security interactions of web frameworks.Chapter 1: Prototyping and EnvironmentsChapter Goal: Create a prototype script to read a single sensor valueNo of pages 25Sub -Topics1 Introduce the example of collating data from a large number of othermachines1.1 Possible usecases of this pattern include log aggregation, servermonitoring, IoT, monitoring of customer servers, etc1.2 We’ll use raspberry pis with a mix of server monitoring andvery basic sensors like temperature sensors. There’ll be no IoTspecific setup or detail, it’s just that this is easier for people tofollow along with without inventing another system beingmonitored.1.3 There’ll be plenty of extra context here for how to apply theongoing example if you do already have a system that needsmonitoring.2 Prototyping using jupyter and nbconvert3 Use pipenv to set up dependency environment3.1 Note that by introducing pipenv before setuptools we’repreempting the confusion about the right way to do dependencyand environment management.Chapter 2: Testing, Checking and LintingChapter Goal: Progress the prototype to a series of reliable functions thatcan be testedNo of pages: 30Sub - Topics1 Testing with PyTest (especially fixtures and MUT style)2 Type hinting and checking with mypy3 Linting with flake8 and autoformatting with black4 pre-commit and commit hooks5 GitHub CI integration for easier contributionsChapter 3: Packaging ScriptsChapter Goal: Create an installable package that gives a single script toread the sensor valueNo of pages : 30Sub - Topics:1 setup.py and setuptools when it comes to packaging (not pip /setup.py for environment management, that’s in chapter 1)2 Namespace packages3 Console entrypoint4 argparseHelpful aside: Package name conflicts, installing from GitHub releases,release hashing, wheelsChapter 4: From Script to LibraryChapter Goal: Extend the package to allow reading of multiple sensorsthrough the command lineNo of pages: 20Sub - Topics:1. Abstract Base Classes2. Second sensor value3. argparse subcommandsChapter 5: Alternative InterfacesChapter Goal: Make the script functionality available as a HTTPmicroserviceNo of pages : 40Sub - Topics:1 Simple API servers using flask2 Plugin architecture using entrypoints3 Dynamic dispatch4 Serialisation considerations with custom classes (like units from pintspackage)Chapter 6: Speeding Things UpChapter Goal: Discuss optimisation strategies, what the tradeoffs betweenasync and different types of caching are. We’ll use cachinghere, but async laterNo of pages : 25Sub - Topics:1 asyncio vs lru_cache vs redis vs sqlite etc2 Use of timeit3 File operations using context managersChapter 7: Aggregation ProcessChapter Goal: Create a new package, read configuration files, do a basicHTTP loopNo of pages : 25Sub - Topics:1 cookiecutter2 Config files (configparser vs json vs yaml)3 Requests library4 More depth in pytest usageChapter 8: Asynchronous ProgrammingChapter Goal: Understand the event loop, especially async for loops,demonstrate how it’s a good fit for the aggregation processNo of pages : 40Sub - Topics:1 Defining asynchronous functions2 Using the event loop3 Syntactic sugar for loops and iterators4 Async tasks vs await5 async executorsChapter 9: Asynchronous DatabasesChapter Goal: Understand async executors, using sqlalchemy and JSONBNo of pages : 30Sub - Topics:1 sqlalchemy (and why pandas isn’t a good fit here)2 JSONB format and schemaless3 aiofile, asyncpg and usability/speed tradeoffsChapter 10: Viewing the DataChapter Goal: Creating Jupyter notebooks and using matplotlibNo of pages : 35Sub - Topics:1 Calling async functions from Jupyter Notebooks2 Binding function calls to ipywidgets for interactive reports3 Examples of matplotlib4 GeoJSONChapter 11: Fault ToleranceChapter Goal: Extending ABC interfaces and efficient use of iterables forlarge HTTP responsesNo of pages : 20Sub - Topics:1 Using __subclasshook__ effectively2 Chunked responses vs framing3 JSON deserialisation of partial data and efficient data transferChapter 12: Callbacks and Data AnalysisChapter Goal: Using generators, iterators and coroutines for dataanalysis, async timeoutsNo of pages : 30Sub - Topics:1 Iterator based filtering2 Coroutine based plugins, for example a coroutine that pulls historicaldata and compares it to the current value to decide if an alarm shouldbe raised3 waitfor and executor timeout considerations
VR Integrated Heritage Recreation
Create assets for history-based games. This book covers the fundamental principles required to understand and create architectural visualizations of historical locations using digital tools. You will explore aspects of 3D design visualization and VR integration using industry-preferred software.Some of the most popular video games in recent years have historical settings (Age of Empires, Call of Duty, etc.). Creating these games requires creating historically accurate game assets. You will use Blender to create VR-ready assets by modeling and unwrapping them. And you will use Substance Painter to texture the assets that you create.You will also learn how to use the Quixel Megascans library to acquire and implement physically accurate materials in the scenes. Finally, you will import the assets into Unreal Engine 4 and recreate a VR integrated heritage that can be explored in real time. Using VR technology and game engines, you can digitally recreate historical settings for games.WHAT YOU WILL LEARN* Create high-quality, optimized models suitable for any 3D game engine* Master the techniques of texturing assets using Substance Painter and Quixel Megascans* Keep assets historically accurate* Integrate assets with the game engine* Create visualizations with Unreal Engine 4WHO IS THIS BOOK FORGame developers with some experience who are eager to get into VR-based gamesDR. ABHISHEK KUMAR is Assistant Professor in the Department of Computer Science at the Institute of Science at Banaras Hindu University. He is an Apple Certified Associate, Adobe Education Trainer, and certified by Autodesk. He is actively involved in course development in animation and design engineering courses for various institutions and universities as they will be a future industry requirement.Dr. Kumar has published a number of research papers and covered a wide range of topics in various digital scientific areas (image analysis, visual identity, graphics, digital photography, motion graphics, 3D animation, visual effects, editing, composition). He holds two patents in the field of design and IoT.Dr. Kumar has completed professional studies related to animation, computer graphics, virtual reality, stereoscopy, filmmaking, visual effects, and photography from Norwich University of Arts, University of Edinburg, and Wizcraft MIME & FXPHD, Australia. He is passionate about the media and entertainment industry, and has directed two animation short films.Dr. Kumar has trained more than 50,000 students across the globe from 153 countries (top five: India, Germany, United States, Spain, Australia). His alumni have worked for national and international movies such as Ra-One, Krissh, Dhoom, Life of Pi, the Avengers series, the Iron Man series, GI Joe 3D, 300, Alvin and the Chipmunks, Prince of Persia, Titanic 3D, the Transformers series, Bahubali 1 & 2, London Has Fallen, Warcraft, Aquaman 3D, Alita, and more.CHAPTER 1: INTRODUCTION TO BOOKChapter Goal: In this chapter we will introduce the readers to the book and its concepts.Sub TopicsScope of this bookTopics coveredCHAPTER 2: INTRODUCTION TO SOFTWAREChapter Goal: In this chapter the readers will be introduced to the software applications that we will use throughout the book for creating our scene and everything related to it. Software that we will use are Blender, Substance Painter, Quixel Bridge and Unreal Engine 4.Sub TopicsBlenderSubstance PainterQuixel Bridge Unreal Engine 4CHAPTER 3: ACQUIRING RESOURCES FOR OUR PROJECTChapter Goal: In this chapter we will explore how we can acquire various resources that we will require for creating our project.Sub TopicsWebsites for getting texturesCollecting ReferencesCreating basic planCHAPTER 4: DESIGN VISUALIZATIONChapter Goal: We will learn the basic tools of the software which we are going to use for heritage recreation. After that we will create a white box level using Blender and UE4.Sub TopicsBasics of BlenderBasics of Substance PainterCreating White Box sceneCHAPTER 5: MODELLING OUR SCENEChapter Goal: In this chapter we will start modelling our scene. We will create optimized game ready models that can be used within any game engine.Sub TopicsModelling the TempleModelling the ground assets and stairsModelling additional assetsCHAPTER 6: UNWRAPPING THE MODELSChapter Goals: In this chapter we will create UV map for our models and explore in detail the UV editing tools provided by Blender.Sub TopicsUnwrapping the TempleUnwrapping the various ground assets and stairsUnwrapping the remaining smaller assetsCHAPTER 7: TEXTURING ASSETS USING SUBSTANCE PAINTERChapter Goal: We will now see how we can texture our assets using Substance Painter which is an industry standard tool for texturing.Sub TopicsA quick introduction Substance PainterTexturing our Larger structuresTexturing the smaller assetsCHAPTER 8: CREATING FOLIAGEChapter Goal: Here we will see how we can create game ready foliage like grasses, bushes and trees.Sub TopicsCreating grassCreating BushesCreating TreesCHAPTER 9: EXPORTING TO UNREAL ENGINE 4Chapter Goal: We will see in this chapter how to export assets to Unreal Engine 4.Sub TopicsBasics of Unreal Engine 4Creating lightmap UVsExporting models from BlenderExporting textures from Substance PainterCHAPTER 10: IMPORTING INTO UNREAL ENGINE 4Chapter Goal: In this chapter the readers will see how we can import assets into Unreal Engine 4 and set them up for use.Sub TopicsImport settingsExploring properties editorCHAPTER 11: MATERIAL SETUP IN UNREAL ENGINE 4Chapter Goal: Readers will now learn how to create materials with the imported textures that can then be applied to the meshes.Sub TopicsSimple material setupComplex material setupWorking with Master and Instanced materialsCHAPTER 12: INTEGRATION WITH VRChapter Goal: We will assemble the scene and write scripts for gameplay part of our scene. We will set up our scene to work with VR devices and bake everything into executable file.Sub TopicsCreating landscapeAssembling sceneCreating gameplay scriptsBuilding our scene into an executable
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
Windows 10 For Dummies
TIME-TESTED ADVICE ON WINDOWS 10Windows 10 For Dummies remains the #1 source for readers looking for advice on Windows 10. Expert author Andy Rathbone provides an easy-to-follow guidebook to understanding Windows 10 and getting things done based on his decades of experience as a Windows guru.Look inside to get a feel for the basics of the Windows interface, the Windows apps that help you get things done, ways to connect to the Internet at home or on the go, and steps for customizing your Windows 10 experience from the desktop wallpaper to how tightly you secure your computer.• Manage user accounts• Customize the start menu• Find and manage your files• Connect to a printer wirelesslyRevised to cover the latest round of Windows 10 updates, this trusted source for unleashing everything the operating system has to offer is your first and last stop for learning the basics of Windows!ANDY RATHBONE is a respected Windows guru whose expertise has been helping Windows users for more than 25 years. He is the author of all editions of Windows For Dummies, which has sold millions of copies and is the bestselling computer how-to book of all time. Andy answers Windows questions and shares insight at www.andyrathbone.com. INTRODUCTION 1About This Book 2How to Use This Book 3Touchscreen Owners Aren’t Left Out 4And What about You? 5Icons Used in This Book 5Beyond the Book 6Where to Go from Here 6PART 1: WINDOWS 10 STUFF EVERYBODY THINKS YOU ALREADY KNOW 7CHAPTER 1: WHAT IS WINDOWS 10? 9What is Windows, and Why Are You Using It? 9What’s New in Windows 10? 12What’s So Different about Windows 10? 15Why Does Windows 10 Keep Changing? 16Can My Current PC Still Run Windows 10? 17The Different Flavors of Windows 10 18CHAPTER 2: STARTING WITH THE START MENU 19Being Welcomed to the World of Windows 20Understanding user accounts 22Keeping your account private and secure 23Signing up for a Microsoft account 26Figuring Out the Windows 10 Start Menu 27Toggling between Tablet and Desktop mode 30Launching a Start menu program or app 31Finding something on the Start menu 33Viewing, closing, or returning to apps 34Getting to know your free apps 35Adding or removing Start menu items 38Customizing the Start menu 39Exiting from Windows 44Temporarily leaving your computer 44Leaving your computer for the day 46CHAPTER 3: THE TRADITIONAL DESKTOP 49Finding the Desktop and the Start Menu 50Working with the Desktop 51Launching apps with the Start menu 53Jazzing up the desktop’s background 54Toggling between Tablet mode and the desktop 56Dumpster diving in the Recycle Bin 58Bellying Up to the Taskbar 59Shrinking windows to the taskbar and retrieving them 61Switching to different tasks from the taskbar’s Jump Lists 62Clicking the taskbar’s sensitive areas 62Opening the Action Center 66Customizing the taskbar 67Setting Up Virtual Desktops 69Making Programs Easier to Find 72CHAPTER 4: BASIC DESKTOP WINDOW MECHANICS 75Dissecting a Typical Desktop Window 76Tugging on a window’s title bar 77Navigating folders with a window’s Address bar 79Finding commands on the Ribbon 80Quick shortcuts with the Navigation Pane 82Moving inside a window with its scroll bar 84Boring borders 85Maneuvering Windows around the Desktop 86Moving a window to the top of the pile 86Moving a window from here to there 87Making a window fill the whole desktop 87Closing a window 88Making a window bigger or smaller 88Placing two windows side by side 89Making windows open to the same darn size 90CHAPTER 5: STORAGE: INTERNAL, EXTERNAL, AND IN THE CLOUD 91Browsing the File Explorer File Cabinets 92Getting the Lowdown on Folders 96Peering into Your Drives, Folders, and Other Media 97Seeing the files on a drive 97Seeing what’s inside a folder 100Creating a New Folder 101Renaming a File or Folder 103Selecting Bunches of Files or Folders 104Getting Rid of a File or Folder 105Copying or Moving Files and Folders 106Seeing More Information about Files and Folders 108Writing to CDs and DVDs 111Buying the right kind of blank CDs and DVDs for burning 111Copying files to or from a CD or DVD 112Working with Flash Drives and Memory Cards 115OneDrive: Your Cubbyhole in the Clouds 116Setting up OneDrive 117Changing your OneDrive settings 120Opening and saving files from OneDrive 122Customizing OneDrive for different devices with OneDrive Files On Demand 123Accessing OneDrive from the Internet 126PART 2: WORKING WITH PROGRAMS, APPS, AND FILES 129CHAPTER 6: PLAYING WITH PROGRAMS, APPS, AND DOCUMENTS 131Starting a Program or an App 132Opening a Document 134Saving a Document 136Choosing Which Program Should Open Which File 138Navigating the Microsoft Store 141Adding new apps from the Store app 142Uninstalling apps 145Taking the Lazy Way with a Desktop Shortcut 146Absolutely Essential Guide to Cutting, Copying, and Pasting 147The quick ’n’ dirty guide to cut ’n’ paste 148Selecting things to cut or copy 148Cutting or copying your selected goods 149Pasting information to another place 151CHAPTER 7: FINDING THE LOST 153Finding Currently Running Apps and Programs 153Finding Lost Windows on the Desktop 155Locating a Missing App, Program, Setting, or File 156Searching with Cortana 159Asking Cortana questions 160Finding a Missing File inside a Folder 161Finding Lost Photos 164Finding Other Computers on a Network 164CHAPTER 8: PRINTING AND SCANNING YOUR WORK 167Printing from a Start Menu App 168Printing Your Masterpiece from the Desktop 170Adjusting how your work fits on the page 171Adjusting your printer’s settings 173Canceling a print job 175Printing a web page 176Troubleshooting your printer 178Scanning from the Start Menu 180PART 3: GETTING THINGS DONE ON THE INTERNET 183CHAPTER 9: CRUISING THE WEB 185What’s an ISP, and Why Do I Need One? 186Connecting Wirelessly to the Internet 187Browsing the Web with Microsoft Edge 190Moving from one web page to another 192Making Microsoft Edge open to your favorite site 193Revisiting favorite places 195Finding things on the Internet 196Finding More Information on a Website 197Saving Information from the Internet 198Saving a web page 198Saving text 199Saving a picture 199Downloading a program, song, or other type of file 200CHAPTER 10: BEING SOCIAL: MAIL, PEOPLE, AND CALENDAR 201Adding Your Accounts to Windows 202Understanding the Mail App 204Switching among the Mail app’s views, menus, and accounts 204Composing and sending an email 207Reading a received email 209Sending and receiving files through email 211Managing Your Contacts in the People App 213Adding contacts 215Deleting or editing contacts 216Managing Appointments in Calendar 217CHAPTER 11: SAFE COMPUTING 221Understanding Those Annoying Permission Messages 221Staying Safe with the New Windows Security Center 222Avoiding and removing viruses 224Avoiding phishing scams 226Setting up controls for children 228PART 4: CUSTOMIZING AND UPGRADING WINDOWS 10 233CHAPTER 12: CUSTOMIZING SETTINGS IN WINDOWS 235Finding the Right Switch 236Flipping Switches with the Windows Settings App 237System 238Devices (adjusting mice, keyboards, scanners, and other gadgets) 244Phone 248Network & Internet 250Personalization (changing your PC’s look and feel) 250Apps 255Accounts 256Time & Language 257Gaming 258Ease of Access 258Search 260Privacy 260Update & Security 261CHAPTER 13: KEEPING WINDOWS FROM BREAKING 263Backing Up Your Computer with File History 264Finding Technical Information about Your Computer 268Freeing Up Space on Your Hard Drive 270Setting Up Devices That Don’t Work (Fiddling with Drivers) 272CHAPTER 14: SHARING ONE COMPUTER WITH SEVERAL PEOPLE 275Understanding User Accounts 276Changing or Adding User Accounts 277Adding an account for a family member or friend 278Changing existing accounts 282Switching Quickly between Users 283Changing a User Account’s Picture 285Setting Up Passwords and Security 287Signing in with Windows Hello 289CHAPTER 15: CONNECTING COMPUTERS WITH A NETWORK 293Understanding a Network’s Parts 294Setting Up a Small Network 296Buying parts for a network 296Setting up a wireless router 297Setting up Windows computers to connect to a network 298Sharing Files with Your Networked Computers 300Setting your home network to private 300Sharing files and folders on your private network 303Accessing what others have shared 305Sharing a printer on the network 307Sharing with Nearby Sharing 307Turning on Nearby Sharing 308Sharing files with Nearby Sharing 309PART 5: MUSIC, PHOTOS, AND VIDEOS 311CHAPTER 16: PLAYING AND COPYING MUSIC 313Playing Music with the Groove Music app 314Handing Music-Playing Chores Back to Windows Media Player 317Stocking the Windows Media Player Library 320Browsing Windows Media Player’s Libraries 323Playing Music Files in a Playlist 326Controlling Your Now Playing Items 327Playing CDs 329Playing DVDs 330Playing Videos and TV Shows 330Creating, Saving, and Editing Playlists 332Ripping (Copying) CDs to Your PC 333Burning (Creating) Music CDs 335CHAPTER 17: FIDDLING WITH PHOTOS (AND VIDEOS) 337Dumping Photos from a Phone or Camera to Your Computer 338Taking Photos with the Camera App 341Linking Your Phone with Your PC through the Your Phone App 343Viewing Photos with the Photos App 345Viewing your photo collection 346Viewing photo albums 349Viewing a slideshow 351Copying digital photos to a CD or DVD 352PART 6: HELP! 355CHAPTER 18: THE CASE OF THE BROKEN WINDOW 357Toggling between Tablet and Desktop Mode 358The Magic Fixes in Windows 359Resetting your computer 359Restoring backups with File History 363Windows Keeps Asking Me for Permission 367I Need to Retrieve Deleted Files 369I Need to Fix Broken Apps 369My Settings Are Messed Up 370I Forgot My Password 372My Computer is Frozen Solid 373CHAPTER 19: STRANGE MESSAGES: WHAT YOU DID DOES NOT COMPUTE 375Add Your Microsoft Account 376Choose What Happens with This Device 376Did You Mean to Switch Apps? 377Do You Want to Allow This App to Make Changes to Your Device? 378Do You Want to Save Changes? 379How Do You Want to Open This? 379Threats Found 380How Do You Want to Open This File? 381We’re Not Allowed to Find You 382Reconnect Your Drive 382You Don’t Currently Have Permission to Access This Folder 383CHAPTER 20: MOVING FROM AN OLD PC TO A NEW WINDOWS 10 PC 385Hiring a Third Party to Make the Move 386Buying Laplink’s PCmover program 386Visiting a repair shop 388Transferring Files Yourself 389CHAPTER 21: HELP ON THE WINDOWS HELP SYSTEM 393Getting Started with Windows 10 394Contacting Support 395Microsoft’s paid support options 396Microsoft’s free support options 396PART 7: THE PART OF TENS 401CHAPTER 22: TEN THINGS YOU’LL HATE ABOUT WINDOWS 10 (AND HOW TO FIX THEM) 403Windows 10 Keeps Changing! 403I Want to Avoid the Apps! 404Pruning apps from the Start menu and your PC 404Telling desktop programs, not apps, to open your files 406I Want to Avoid the Desktop! 407I Don’t Want a Microsoft Account 408Windows Makes Me Sign in All the Time 408The Taskbar Keeps Disappearing 409I Can’t Line Up Two Windows on the Screen 410It Won’t Let Me Do Something Unless I’m an Administrator! 411I Don’t Know What Version of Windows I Have 412My Print Screen Key Doesn’t Work 412CHAPTER 23: TEN OR SO TIPS FOR TABLET AND LAPTOP OWNERS 415Turning on Tablet Mode 416Switching to Airplane Mode 417Connecting to a New Wireless Internet Network 418Toggling Your Tablet’s Screen Rotation 419Adjusting to Different Locations 420Backing Up Your Laptop before Traveling 421Accessing the Mobility Center 422Turning Calculator into a Road Warrior Tool 422Index 425
Windows 10 For Seniors For Dummies
THE EASY WAY TO GET UP AND RUNNING WITH WINDOWS 10!With Windows 10 For Seniors For Dummies, becoming familiarized with Windows 10 is a painless process. If you’re interested in learning the basics of this operating system without having to dig through confusing computer jargon, look no further.This book offers a step-by-step approach that is specifically designed to assist first time Windows 10 users who are over-50, providing easy-to-understand language, large-print text, and an abundance of helpful images along the way!* Protect your computer* Follow friends and family online* Use Windows 10 to play games and enjoy media* Check your security and maintenance status Step-by-step instructions are provided to ensure that you don't get lost at any point along the way.PETER WEVERKA has decades of experience helping tech newcomers. He has written on Office and its various applications, Windows, and Internet technologies. He is the author of all previous editions of Windows 10 For Seniors For Dummies.INTRODUCTION 1About This Book 2Conventions Used in This Book 2How to Read This Book 3Foolish Assumptions 4How This Book is Organized 4Beyond the Book 5PART 1: GETTING STARTED WITH WINDOWS 10 7CHAPTER 1: GETTING ACQUAINTED WITH WINDOWS 10 9Tell Your Computer What to Do 10Move the Mouse 11Touch the Screen 11Use a Keyboard 12View the Touch Keyboard 14Turn On Your Computer 18Check Out the Start Screen 20Shut Down Your Computer 23Start Again on the Lock Screen 25CHAPTER 2: USING THE START SCREEN AND APPS 27Open Windows 10 Apps 28Switch among Open Apps 32Close Windows 10 Apps 34Use the App Bar 36Add a Location in Weather 37Change App Settings 40Search for a Desktop App 42Arrange and Group Apps on the Start Screen 45CHAPTER 3: ADJUSTING WINDOWS 10 SETTINGS 49Access the Settings Screen 50Personalize the Lock Screen 52Choose an Account Picture 54Check for Important Updates 56Make Windows 10 Easier to Use 58Customize the Start Menu 61Handle Notifications 62CHAPTER 4: WORKING WITH USER ACCOUNTS 65Connect to the Internet 66Disconnect (or Switch to Airplane Mode) 70Create a New Microsoft Account 72Create a Local Account 75Switch from a Local to an Existing Microsoft Account 77Create a Local Account for Someone in Your Household 79Create a Password for a Local Account 82Change or Remove a Local Account Password 84Delete a Local Account 85CHAPTER 5: GETTING COMFORTABLE WITH THE DESKTOP 87Check Out the Desktop 88Change the Date or Time 90Explore the Parts of a Window 93Resize a Window 95Arrange Some Windows 96Snap a Window 97Open a Second Desktop 99Choose a Desktop Background 101Pin Icons to the Taskbar 103Stop Apps with the Task Manager 104PART 2: WINDOWS 10 AND THE WEB 107CHAPTER 6: FINDING WHAT YOU NEED ON THE WEB 109Browse the Web with Edge 111Open Multiple Pages in Separate Tabs 114Search for Anything 115Bookmark and Revisit Your Favorite Websites 117Explore Edge Features 121Block Ads on Web Pages 124CHAPTER 7: EMAILING FAMILY AND FRIENDS 129Use the Mail App 130Write an Email Message 132Format Email 134Send Files and Pictures 136Read and Respond to Incoming Email 137Change Mail Settings 139Add an Email Account to Mail 142CHAPTER 8: EXPLORING APPS FOR YOUR DAILY LIFE 145Add Contacts to the People App 146Delete a Contact 148Add a Birthday or Anniversary to the Calendar 149Search and Explore with the Maps App 154Remind Yourself to Do Tasks with Alarms & Clock 156Write Documents with WordPad 159Write a Sticky Note to Yourself 161Tweak Quick Status Settings 162Chat Face-to-Face with Skype 163Ask Questions of Cortana 166PART 3: HAVING FUN WITH WINDOWS 10 169CHAPTER 9: EXPLORING THE MICROSOFT STORE 171Explore Apps and Games by Category 172Search for an App or Game by Name 175Install a New App or Game 177Examine Your Apps and Games 180Rate and Review an App or Game 182Add Billing Information to the Microsoft Store 183CHAPTER 10: TAKING PHOTOS AND MORE 185Take Photos (and Videos) with Your Computer 186Choose Camera Settings 187Copy Photos from Your Camera 189View Photos with the Photos App 193Organizing Photos Using the Photos App 196Edit Photos Using the Photos App 199Print Photos Using the Photos App 201Scan Photos and Documents 202CHAPTER 11: ENJOYING MUSIC AND VIDEOS 205Play and Copy Music from a CD 206Listen to the Groove Music App 210Create and Manage Playlists 213Watch Videos 216Burn a CD 218Make a Voice Recording 221PART 4: BEYOND THE BASICS 223CHAPTER 12: MAINTAINING WINDOWS 10 225Install a New Program on the Desktop 226Remove Desktop Programs 228Control Startup Apps 232Explore System Information 233Check Your Security and Maintenance Status 235Speed Up Your Computer 238Protect Your Computer from Viruses and Other Threats 241CHAPTER 13: CONNECTING A PRINTER AND OTHER DEVICES 243Trust USB Plug and Play for Hardware 244See All Devices 246Connect a Printer or Other Device 247Access Device Options on the Desktop 248Calibrate Your Touchscreen 251CHAPTER 14: WORKING WITH FILES 253Save and Open a File 254Find a Misplaced File 256Add a Location to Quick Access 261Use File Explorer for Easy Access to Files 262Create a Folder to Organize Your Files 264Use Check Boxes to Select Files 265Add the Undo Button to File Explorer 267Move a File from One Folder to Another 268Rename a File or a Folder 270Delete a File or Folder 272Get Back a File or Folder You Deleted 273CHAPTER 15: BACKING UP AND RESTORING FILES 275Add an External Hard Drive or Flash Drive 277Copy Files to or from a Flash Drive 278Use OneDrive to Store File Copies 282Turn On File History 286Restore Files with File History 289Reset a Misbehaving Computer 291Index 293
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.
Modern C++ for Absolute Beginners
Learn the C++ programming language in a structured, straightforward, and friendly manner. This book teaches the basics of the modern C++ programming language, C++ Standard Library, and modern C++ standards. No previous programming experience is required.C++ is a language like no other, surprising in its complexity, yet wonderfully sleek and elegant in so many ways. It is also a language that cannot be learned by guessing, one that is easy to get wrong and challenging to get right. To overcome this, each section is filled with real-world examples that gradually increase in complexity. Modern C++ for Absolute Beginners teaches more than just programming in C++20. It provides a solid C++ foundation to build upon.The author takes you through the C++ programming language, the Standard Library, and the C++11 to C++20 standard basics. Each chapter is accompanied by the right amount of theory and plenty of source code examples.You will work with C++20 features and standards, yet you will also compare and take a look into previous versions of C++. You will do so with plenty of relevant source code examples.WHAT YOU WILL LEARN* Work with the basics of C++: types, operators, variables, constants, expressions, references, functions, classes, I/O, smart pointers, polymorphism, and more * Set up the Visual Studio environment on Windows and GCC on Linux, where you can write your own code* Declare and define functions, classes, and objects, and organize code into namespaces* Discover object-oriented programming: classes and objects, encapsulation, inheritance, polymorphism, and more using the most advanced C++ features* Employ best practices in organizing source code and controlling program workflow* Get familiar with C++ language dos and donts, and more* Master the basics of lambdas, inheritance, polymorphism, smart pointers, templates, modules, contracts, concepts, and moreWHO THIS BOOK IS FORBeginner or novice programmers who wish to learn C++ programming. No prior programming experience is required.Slobodan Dmitrovic is a C++ software developer with a strong interest in software architecture, modern C++, research and development, and training.1. Introduction2. What is C++?3. C++ Compilers4. Our First Program5. Types6. Exercises7. Operators8. Standard Input9. Exercises10. Arrays11. Pointers12. References13. Introduction to Strings14. Automatic Type Deduction15. Exercises16. Statements17. Constants18. Functions19. Exercises20. Scope and Lifetime21. Exercises22. Classes - Part I23. Exercises24. Classes – Part II25. The static Specifier26. Templates27. Enumerations28. Organizing code29. Exercises30. Conversions31. Exceptions32. Smart Pointers33. C++ Standard Library and Friends34. C++ Standards35. C++1136. C++1437. C++1738. C++20
From Chaos to Concept
THIS BOOK IS WRITTEN FOR PRODUCT DESIGN, SOFTWARE DEVELOPMENT, GRAPHIC DESIGN, AND UX PROFESSIONALS WITH A FOCUS ON CREATING MEASURABLY BETTER USER EXPERIENCES.If you want to design solutions to meet business goals and delight your users, you can look to this resource which covers the following areas:* Creating and documenting goals, strategies, objectives, and tactics* Defining or refining personas based on your measurable objectives (OKRs)* Creating and iterating on scenarios based your prioritized personas* A team approach to defining the product and roadmap to address critical use cases* Team based divergent ideation and solution exploration* Team based convergent solution definition* Wireframing potential solutions for rapid research and iteration* Using quantitative and qualitative methods to understand usage and test with users* Exploring approaches to taxonomy and information architecture* Using psychology and human factors to drive your design decisions* Developing performant, accessible, maintainable experiences* Using analytics to measure the results and inform the next iteration* How this process differs based on the size of the company or team that is employing itKEVIN C. BRAUN is a UX design leader, speaker, educator, and author. He is the founder of Braun Interactive, a design consultancy located in the heart of the Silicon Valley. Kevin has over 24 years of software design and development experience. In that time he has worked to improve user experiences with world-class companies including Google, Samsung, Rolex, Hyundai, Michael Kors, MIT, Harvard, Cisco Systems, Keurig, and Vermont Teddy Bear. He has also worked with industry leaders in healthcare, insurance, automotive, mobile devices, and consumer goods. Introduction: The Golden Butter Knife xvCH 1: MAKE IT USEFUL 1What are We Trying to Do and How Will We Know If We Did It? 1CH 2: MAKE IT USABLE 31Who are We Designing This For?—Personas/User Segments 31What Do They Need?—Scenarios 38When Will We Design and Build It?: The Product Roadmap 42CH 3: MAKE IT BEAUTIFUL 59Scannability, Readability, Comprehension 62Using the Inverted Pyramid Model for Content 63Alignment and the Grid 65Visual Hierarchy 67Composition 69Scope 74The Golden Triangle 74The F, Z, and Other Gaze Patterns 76Gestalt Patterns 77Color 86Thematic Appropriateness 88Data Visualization 90Further Reading 94CH 4: MAKE IT FUNCTIONAL 95Framework-itis and Code Bloat 98Testing across Platforms, Browsers, and Devices 99Accessibility 102Further Reading 105CH 5: MAKE IT MEASURABLE 107FaUX 107Analytics 110Conversions and Micro Conversions 111Be Curious and Analytical 113Google Analytics 115Mouseflow 115Reverse Path Analysis to Understand Failure 117Being Misled by Your Data 118Fear of Change 119Ease the Fear of Change with A/B Testing 120Some Helpful Tools of the Trade 121Further Reading 122CH 6: MAKE IT BETTER 123Planning Your Iterations 123Research 124Analysis 125Findings 126Recommendations 128Prioritization 130Effort 132Further Reading 133CH 7: MAKE THESE METHODS WORK FOR YOU 135Starting with a Greenfield Project or at a Startup 135Understanding the Market 136What Comes Next? 154Working within an Established Company 168Conclusion 176Index 179
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.
Build Your Own Car Dashboard with a Raspberry Pi
Create your own car engine control unit (ECU) with a simple Raspberry PI while building the necessary skills to produce future more advanced projects. Once you've worked through the projects in this book, you'll have a smart car and the coding knowledge needed to develop advanced hardware and software projects.Start by understanding how the Pi works, and move on to how to build hardware projects, use the GPIO pins, and install the system. Then add to that a solid understanding of software development principles and best practices, along with a good grasp of Python (v3.6+) and Python/software best practices. More than just how to code in Python, you'll learn what it takes to write production grade software, defensive code, testing, deployments, version control, and more. Internalize industry best practices while going further with valuable software development techniques such as defensive programming.The concepts introduced are essential to ensuring that software can function under unexpected circumstances. Can you imagine what would happen if your mobile phone could not cope with a call from an unknown number, or you had to set you microwave in increments of 6 seconds? While testing avoids edge cases such as these, defensive programming is one of the building blocks of software development.WHAT YOU'LL LEARN* Hone test driven development in Python skills* Debug software and hardware project installations* Work with the GPIO ports of the Pi to feed your software real-world hardware informationWHO THIS BOOK IS FORPeople who like working on cars and want to learn Raspberry Pi and software development but don’t know where to start.JOSEPH COBURN is an experienced computer science teacher, writer, editor, and software developer. His work has been shared by Adobe, Lifehacker, and the Arduino foundation. His code is used by thousands of people daily. And he is well versed with designing, implementing, and troubleshooting complex software systems. The opportunity to share with and teach software development skills in Python and with the Raspberry Pi hits the sweet-spot of software and teaching.Chapter 1 - IntroductionChapter 2 - PrerequisitesMay need minor car knowledgeNo software or Raspberry Pi experience requiredChapter 3 - Software Development PrimerWhy these tools and processes exist, with examples of what happens when you don’t use them. Basic introduction, maybe a few minor sample projects or basic code samples.- Test driven development (TDD)- Testing- Debugging- Git- Deployments- Event driven programmingChapter 4 - Project OverviewHow each individual project combines to produce a larger project (car dashboard). Reasons why this doesn’t use a modern On-board diagnostics (OBD) port. How to use the individual projects outside the context of the car project.Chapter 5 - Raspberry Pi ConfigurationSSH, pulling of build artifacts, auto starting application in “kiosk” mode.Chapter 6 - Development Environment ConfigurationVersion control configuration, IDE tooling, deployment pipeline configuration. By this point in the book, the reader should have a rough skeleton application, know where the project is heading, have a development environment and Raspberry Pi configured, and can push code to a Git code repository and deploy to the Pi upon the successful passing of the unit tests.Chapter 7: The HeartbeatWhy this piece of code is essential to the whole project. How to write it, details about its use in every one of the following project chapters.Chapter 8 - Mini Projects–Door/Trunk Sensors–Fuel Sensor–Tire Pressure Sensors–Project: Speedometer–Project: Mileometer–Project: Engine + Ambient Temperature Sensors–Project: Parking Sensors–Project: Seat Belt Sensors–Project: Trip ComputerChapter 9 - InstallationCovers ventilation/cooling, enclosure manufacture, mounting of display, hardening to handle sudden loss of power, security considerations, emergency power, power circuit, and car installation.Chapter 10 - Wrapping UpFuture improvements, troubleshooting steps, alternative solutions. Advice on getting started as a software developer, and how to apply these skills learned to other software projects or any other challenges faced.
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
Beginning Data Science, IoT, and AI on Single Board Computers
Learn to use technology to undertake data science and to leverage the Internet of Things (IoT) in your experimentation. Designed to take you on a fascinating journey, this book introduces the core concepts of modern data science. You'll start with simple applications that you can undertake on a BBC micro:bit and move to more complex experiments with additional hardware. The skills and narrative are as generic as possible and can be implemented with a range of hardware options.One of the most exciting and fastest growing topics in education is data science. Understanding how data works, and how to work with data, is a key life skill in the 21st century. In a world driven by information it is essential that students are equipped with the tools they need to make sense of it all. For instance, consider how data science was the key factor that identified the dangers of climate change -- and continues to help us identify and react to the threats it presents. This book explores the power of data and how you can apply it using hardware you have at hand.You'll learn the core concepts of data science, how to apply them in the real world and how to utilize the vast potential of IoT. By the end, you'll be able to execute sophisticated and meaningful data science experiments - why not become a citizen scientist and make a real contribution to the fight against climate change.There is something of a digital revolution going these days, especially in the classroom. With increasing access to microprocessors, classrooms are are incorporating them more and more into lessons. Close to 5 million BBC micro:bits will be in the hands of young learners by the end of the year and millions of other devices are also being used by educators to teach a range of topics and subjects. This presents an opportunity: microprocessors such as micro:bit provide the perfect tool to use to build 21st century data science skills. Beginning Data Science and IoT on the BBC micro:bit provides you with a solid foundation in applied data science.What You'll Learn· Use sensors with a microprocessor to gather or "create" data· Extract, tabulate, and utilize data it from the microprocessor· Connect a microprocessor to an IoT platform to share and then use the data we collect· Analyze and convert data into informationWho This Book Is ForEducators, citizen scientists, and tinkerers interested in an introduction to the concepts of IoT and data on a broad scale.PRADEEKA SENEVIRATNE, a graduate from the Sri Lanka Institute of Information Technology (SLIIT), has almost two decades of experience working on large and complex IT projects related to the industrial world in a variety of fields, in a variety of roles (programmer, analyst, architect, and team leader) with different technologies and software. Pradeeka has also authored several books related to the maker category including Beginning BBC micro:bit (Apress), Beginning LoRa Radio Networks with Arduino (Apress) and Building Arduino PLCs (Apress).PHILIP MEITINER has a background in applied mathematics, psychology, market research, and ed-tech. Philip was was on the original founding members of the Micro:bit Education Foundation where he helped establish the Foundation and is responsible for creating and nurturing the ecosystem, building the reseller and peripheral network and managing the sponsorship scheme (which saw more than 30,000 micro:bits donated to disadvantaged schools in 55 counties). Philip continues to work in the ed-tech sector as a consultant providing services to companies involved with micro:bit. This eclectic mix of careers and experience has instilled in Philip a deep understanding of what it is like to embark on a new learning journey. In addition, his experiences in teaching, market research and IT have given him the perfect mix of skills and knowledge necessary to craft this book.Chapter 1: Introduction to Data Science in the ClassroomChapter Goal: After reading this chapter, readers will understand the importance of measurement - they will able to measure air temperature using a thermometer and they will understand how it works. We will introduce a number of core data science concepts and how to apply them to build an experiment. We’ll cover some basic how-to skills for gathering and tabulating data, and we will undertake some analysis on our results. The reader will get an overview of a complete and meaningful example of applied data science, and they will be ready to explore more deeply.* Data is everywhere: Why do we measure things and what does ‘measuring things’ even mean? How is this related to data science?* Using Temperature: How is temperature used in the world? * Measuring temperature: What does a thermometer do and how does it work?* Designing an experiment: We will begin to design an experiment using our thermometers to measure the temperature at different locations. We will look at factors that might have a negative impact on our experiment and we’ll look at controlling them. We we will see the importance of validity and reliability.* Data capturing: Before our experiment commences, we will introduce the reader to the concept of data capturing - recording (tabulating) data.* Experimenting with temperature: Here we will outline the classroom activity (experiment) to collect and analyse data. We will introduce the concept of experimental design and see how it can help address issues of reliability and validity.* Analysing our results: We will introduce the concept of ‘interrogating’ the data by listing a series of questions that the data set might provide insights into. In a later chapter we will look at more sophisticated analysis, for now we show how to extract some meaning / insights from the data we just collected. * Summary: Brings together all the new concepts introduced in this chapter and sets the stage for the next chapter.Chapter 2: Data Science Goes DigitalChapter Goal: After reading this chapter, readers will understand why there is a tendency to ‘go digital’ and what it means to read data digitally. We will introduce technology and coding to replicate our experiment and we will begin to explore ways that the digital approach can expand our capabilities and potential as data scientists. We’ll use a BBC micro:bit (or any similar device) to measure temperature, all the while looking at our experimental design and how to improve it. By the end of the chapter we will have identified the sort of hardware we need in our data science toolkit.* Making it digital: Why is everything digital? What are the types of thermometers? Explain about digital thermometers and show how they are different to analogue. How can introducing digital improve our temperature experiment from Chapter 1* Using a microprocessor to measure temperature digitally: We will use micro:bit - brief intro to microbit, including sensors that can be used for measure things causing GW (only the ambient temperature sensor).* Using the BBC micro:bit as a thermometer: Programming the micro:bit for reading the air temperature of the classroom. Use MakeCode (or MicroPython) for programming. * Analogue and digital thermometers: Reading temperature simultaneously from a micro:bit and a thermometer. Discuss differences between methods. In particular the difficulties of manual reading, need to read two things same time (thermometer or micro:bit and the clock) * Limitations of micro:bit as a standalone tool: We’ve seen some limitations with microbit. By itself it provides us with too few tools. What are -ons and how are add-ons used with microprocessors, and what about micro:bit? Discuss variety of options available to educators. * Identifying the digital tools we need for data science: We have identified weaknesses in micro:bit. We also review what we need to be accomplished data scientists.* Selecting our tool kit: Introduce the configuration (microbit + XinaBox) that we will use for main thread of examples. Explain why. Offer tips to adapt for other platforms throughout.* Chapter summaryChapter 3: Building a Weather StationChapter Goal: After this chapter the reader will be able to build a digital weather station in the backyard, or classroom! We’ll show the reader how to build one using a micro:bit and the XinaBox SW01 &, BM01 and we’ll explain how other kit could be used. The reader will record temperature, humidity, and pressure by programming the micro:bit to display the sensor readings on the led screen. The reader will be reminded of the limitations of the micro:bit LED screen and an alternative screen to display all the sensor data will be introduced. We’ll show the reader how to connect the OD01 OLED display to show the output, and we’ll explain other options. The reader finishes the chapter with a working weather station, and the realisation that writing values down all the time is a real limiting factor.What we need for the circuit - brain, power, weather sensor and visual display unit. We show what we are using - micro:bit, xChip SW01, BM01 & xBUS connectors and show how to connect. We make it clear other components can be used - show some examples (e.g. Adafruit, Monk Makes, RPi).* Programming the micro:bit (MakeCode Weatherbit package/MicroPython) to read sensor values (temperature, humidity, and pressure) and display them on the LED screen.* Test the program - the display is just not adequate. We need to introduce a more suitable display. So, we add the OD01 OLED display and program it. NB - readers do not need the OLED at all - they can continue to chapter with the 5x5.* Now we measure the weather over a period of time. Classes may have some with OLED and some with 5x5. Write down the sensor data in a table by looking at the display (OLED or 5x5). Making a few copies of the data capturing sheet (we will provide the format of the sheet). Distributing them among some students in different locations and ask them to write down the sensor values at the same time (maybe every 1 minute at 10 minute intervals). The exercise is likely to be flawed in many ways - recording error will occur. Discuss causes of errors by recording the sensor values manually, with either display. * Data Analysis. We introduce charts and talk about time - how each set of points is implicitly time-stamped. Talk about correlations. Nothing too heavy yet - no statistical significance. We are encouraging the curious mind to ask questions, like in earlier chapters.* Discuss how alternate data could be substituted in. Talk about sensors in general, how other sensors could be used in place of weather. Weather station code here can be adapted for all sorts of uses. We introduce a few examples we’ll use in our GW experiments later.* Discussing the limits of the experiment - use the example of taking readings over a 24 hour period. How can that be accomplished with our circuit? How do we take the human out of the equation?Chapter 4: Storing and retrieving dataChapter Goal: In this chapter We will build further on our experiment and enhance our data science tool set introducing the use of computer memory for data capturing - the reader will be able store and retrieve data digitally for further analysis. The reader will be able to use the micro:bit's tiny persistent file system to store the data captured by the weather station then move that data onto their laptop and perform analysis. The reader will understand the limitations of the micro:bit storage by running an overnight test and counting the data points.Introduction to file storage on the micro:bit storage: We recap on why we want to save files and provide a non-technical overview of persistent memory on the micro:bit!* Save Hello World to file: Briefly demonstrate the most simple code to write to and save a file. Include a brief and simple overview of how to extract the file after. * Working with files: Explain key elements of the process - storing data (writing) on the micro:bit file system - creating, writing, closing files. Ensure every line of code in (2) is explained.* Incorporating files into our experimental design: What impact does access to computer memory have on our experimental design? How do we amend the design to accommodate our new capabilities.* Measuring memory size: how many data points we can record until the memory gets full? What is the maximum file size? Write some code to test this quickly. How many readings can we take in a 24 hour period?* Replicating the weather station experiment with file storage: Now we set up an overnight experiment with the weather station to record data at the interval we have calculated. We will analyse the data in detail, in the next chapter.* Addressing memory limitations: micro:bit provides us with some file storage, but not much. We introduce options to address that - ways to expand the available memory. We offer suggestions for why this would be useful* SummaryChapter 5: The basics of analysing the dataChapter Goal: The reader now has the capacity to generate files containing data tables. In previous chapters we have undertaken analysis using our eyes and logic; here we look at developing some basic skills using common software (Excel, libra, GSheet). The reader will be able to import their table into a multi column spreadsheet and ensure it is formatted OK. We will find values such as max and min, as well as averages (mean, median, mode). We will discuss trends, data significance and we’ll look more formally at the concept of confidence. By the end of this chapter we will have provided the reader with all the analysis tools we will use in this book - later chapters will look at how to apply these.* The workflow of data science: We review the process we have been learning about - gathering, Importing, analysing. Summarise what we know so far and introduce the goal of this chapter. * The workflow of analysis: Break down the analysis process into constituents. Show the steps needed to undertake analysis and describe the tools we use at each step.* Data rigour: Checking the data and ensuring it is formatted OK. Encourage data discipline - spot checks, logic checks. We remind readers that the human eye remains the most powerful too.* Using spreadsheets: Introduce aggregation measures, explain them and show how to find them using a spreadsheet- * Charts and visualisations: Show how to generate charts in a few software platforms. Show lots of examples to demonstrate how patterns can be seen in charts that are hard to see in tables. Use real work GW examples and a broad variety of chart types.* Visualising acceleration: Write a program with just the micro:bit that saves 200 or so values of accelerometer to file. Run the program, wave the micro:bit round, extract that data and then chart it. Repeat and wave differently to get a different data profile - discuss.* Summary - Guidelines for analysis: Draw together all the advise / info we have provided so far into a checklist people can use when undertaking analysis. Chapter 6: Wireless CommunicationChapter Goal: In this chapter we will introduce the reader to a variety of wireless communication options. They will understand the differences between Bluetooth, Wi-fi and LoRa (maybe Sigfox too) and they will have any idea of their strengths and weaknesses. The reader will be able to make an informed decision about which method to use in which context.* Communicating data wirelessly has a lot of advantages, such as real time updates, less human hassly / error.* Introduction to wireless communications. Explain the generic model of wireless communications showing the key components (e.g. base, ota waves, receiver) that are common to all.* Show how Bluetooth implements the generic model* Show how Wi-Fi implements the generic model* Show how LoRa implements the generic model* Table showing strengths and weaknesses of all 3 methods, with guidelines on when each is appropriate.Chapter 7: Sending data via BluetoothChapter Goal: At the end of this chapter, the reader will able to send the sensor data to a mobile app through the Bluetooth, and understand how Bluetooth can be used to send data over a short distance.* Programming the micro:bit to send data over Bluetooth UART (MakeCode is easy).* Installing Bitty app.* Pairing micro:bit with the Bitty app.* Receiving data (only for visualize).* Bitty - Show weather station sharing data with bitty.Chapter 8: Sending data through WiFi using MQTTChapter Goal: After reading this chapter, the reader will be able to send the sensor data to the Ubidots dashboard through WiFi using MQTT, a lightweight messaging protocol. The reader will learn how to program the CW01 with MakeCode/MicroPython, Setting up the Ubidots dashboard to visualize data, triggering events with the Ubidots, and analyzing the relationship with temperature and humidity with a simple graph.* What is WiFi?* Explain difference with WiFi and Bluetooth on micro:bit - strengths and weaknesses of both.* Explaining MQTT in simple terms* Connecting micro:bit, BM11, IP01, and CW01 together using uBus connectors (can use the same setup used in the previous chapter).* Preparing MakeCode with required packages that support CW01. * Setting up Ubidots (creating an account, configuring the dashboard, etc.)* Setting up HiveMQ, creating topics, etc.* Programming and flashing micro:bit.* Programming and flashing CW01* Visualizing data with Ubidots * Plotting temp with humidity (Can you see a relationship?).* Triggering (sending an e-mail if the temperature is too high)Chapter 9: Sending Data via LoRaChapter Goal: After completing this chapter, the reader will be able to build a simple LoRa network and use it to send the data collected by the weather station to the Ubidots IoT platform, visualizing, and analyzing data.* Overview of XinaBox hardware for LoRa / may be others* Connecting the micro:bit, RL0x, and BM01 together.* Setting up the LoRa gateway* Connecting the LoRa gateway with a WiFi/Cellular/LAN* Programming with MakeCode / MicroPython, using any provides libraries* Setting up Ubidots and creating a dashboard to visualizing data (if not, use The Things Network - TTN with any supported app to visualize the data.)Chapter 10: Now we are ready to be data scientistsChapter Goal: We’ve spent a lot of time developing skills that are key to a data scientist, and this chapter will highlight those skills and give ideas about how they can / are used in everyday life. We’ll also list the tools we’ve learned above and begin to talk about how they can be applied to useful projects that will address global warming.* List out the skills that we have learned, measuring data, recording it, tabulating, charting and analysing.* List out the tools we now have at our disposal - we know how to use sensors, how to store data and how to get it off the device into a tool we can use to tabulate, chart and perform actions on.* We talk about limits of micro:bit - that it won’t be able to handle a lot of stuff at once. That will be a constraint we’ll have to work with.* Identify real world examples of where similar tech to ours is used, break each down into the simple components we know: Weather forecasting, automatic street lamps, credit card transactions, GPS positioning, etc.Chapter 11: Measuring the power consumption of a light bulbChapter Goal: The consumption of electricity is strongly related to GW. By following this chapter, the reader will be able to build a tool to measure the kilowatt-hours (power consumption) used by a light bulb. The reader will use micro:bit and SL01 to detect the presence of the light. The reader will write the code to calculate and display the kilowatts used by the light bulb with the wattage of the lamp and the elapsed time for lighting.* Basics of power consumption/watts/ watt-hour, etc.* Building the unit with micro:bit and SL01* Creating the code with MakeCode (using running time block to calculate the elapsed time)* Displaying the usage of kilowatt-hours on the OLED display or sending data to a cloud (will consider later)* We can go deep by analyzing the peak time of the power consumption.Chapter 12: Monitor Air Pollution LevelsChapter Goal: By following this chapter, the reader will be able to build a digital instrument to monitor the air quality which includes eCO2 (equivalent calculated carbon-dioxide), and TVOC (Total Volatile Organic Compound), alcohols, aldehydes, ketones, organic acids, amines, aliphatic and aromatic hydrocarbons. Then the reader will be able to identify the level of pollution in the air based on the air quality index (good, moderate, unhealthy for sensitive groups, unhealthy, very unhealthy, hazardous).No of pages: 20Sub - Topics:* Introducing the air quality index.* Building the project with XinaBox SG33 - VOC & eCO2 (CCS811).* Programming the core* Displaying useful information on the OLED display* Optional (add buzzer or vibrator to indicate unhealthy or hazardous environments)Chapter 13: Geotagging your Weather StationChapter Goal: Sensor data by itself is bland stuff. Associating it with a time and place gives more life to it, and your sensor data could become more socialized. By following this chapter, the reader will be able to add the geotagging feature to the weather station (Prerequisite: The weather station should have the ability to connect to the Internet with WiFi or through LoRa) using SN01 or similar GPS module. Then the reader will be able to send sensor data along with the time and location (lat/lon), and other useful GPS data to an IoT dashboard like Ubidots. Finally, the reader will view and analyze some interesting patterns of weather data with the locations.* Introduction to the geotagging and explaining how important it is/trends, etc.* Adding SN01 to an existing weather station project (in chapter 8 or 9).* Programming the cores for getting GPS data too.* Sending data to an IoT dashboard* Viewing and analyzing data/ asking questions, etc.Chapter 14: Measuring Noise Pollution on Your WayChapter Goal: Measuring the sound level is an exciting topic today. Sounds above 85 dB are harmful, depending on how long and how often you are exposed to them. By following this chapter, the reader will be able to measure the sound level in different locations. The reader will be able to collect data, analyze, and identify the areas with a harmful level of sound pollution.* Identifying the harmful areas * Introduction to sound pollution and different sound levels* Building the circuit with the SparkFun sound detector or similar thing: https://www.sparkfun.com/products/14262* Programming the cores* Gathering data* AnalyzingChapter 15: Beyond the micro:bitChapter Goal: By following this chapter, the reader will be able to rebuild the weather station by replacing the micro:bit with other microcontrollers that commonly available.* Building the weather station with CC01 / maker.makecode, programming, sending data to an IoT dashboard.* Building the weather station with CC01 / Arduino, programming, sending data to an IoT dashboard.* Building the weather station with CC01 / Zerynth, programming, sending data to an IoT dashboard. Note - we’d want to use CW02 for this as it has a license on board.* Building the weather station with Raspberry Pi, programming, sending data to an IoT dashboard.Appendix AWe will also include following if we have enough time to complete this book on time.* Sending micro:bit weather station into high altitude / low earth orbit.* Sending a weather station to high altitude using a helium balloon.* Sending a weather station to low earth orbit.* Choosing a long-range communication technology (say LoRa)* Setting up the ground station.* Receiving, visualizing, comparing, analyzing sensor dataUsing the Blynk to replace the UART terminal app (requires Arduino IDE and nRF5 support package for Arduino).* Using a PIR sensor with micro:bit to turn on/off lights by detecting the presence of a human. Also when natural light is bright enough. Show how it can be used for a table lamp and consider completely novel applications (turn off music, lock a door).* A project for monitoring water pollution.
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
Zoom For Dummies
ZOOM INTO THE NEW WORLD OF REMOTE COLLABORATIONWhile a worldwide pandemic may have started the Zoom revolution, the convenience of remote meetings is here to stay. Zoom For Dummies takes you from creating meetings on the platform to running global webinars. Along the way you'll learn how to expand your remote collaboration options, record meetings for future review, and even make scheduling a meeting through your other apps a one-click process. Take in all the advice or zoom to the info you need - it's all there!* Discover how to set up meetings* Share screens and files* Keep your meetings secure* Add Zoom hardware to your office* Get tips for using Zoom as a social toolAward-winning author Phil Simon takes you beyond setting up and sharing links for meetings to show how Zoom can transform your organization and the way you work.PHIL SIMON is a frequent keynote speaker, dynamic trainer, recognized technology authority, and college professor-for-hire. He is the award-winning author of ten books, most recently Slack For Dummies and Zoom For Dummies. He consults organizations on matters related to communications, strategy, data, and technology. His contributions have appeared in The Harvard Business Review, The New York Times, and many other prominent media sites. He hosts the podcast Conversations About Collaboration.INTRODUCTION 1About This Book 2Foolish Assumptions 2Icons Used in This Book 4Beyond the Book 5Where to Go from Here 5Thank You 6PART 1: STAYING CONNECTED WITH ZOOM 7CHAPTER 1: COMMUNICATING AND COLLABORATING BETTER WITH ZOOM 9Introducing Zoom 9Discovering Zoom’s origins 10Understanding what Zoom does 11Reviewing the numbers behind Zoom’s rapid ascent 13Assessing how COVID-19 changed Zoom’s trajectory 14Reviewing Zoom’s industry awards and recognition 16Analyzing Zoom’s competitive landscape 17Reaping the Benefits of Zoom’s Tools 23Zoom solves some of today’s key communications problems 23Zoom makes people more productive 24Zoom just works 25Zoom is affordable 26Zoom is flexible and interoperable 26Zoom stays in its lane 27Zoom lets people rediscover their humanity 28CHAPTER 2: GETTING TO KNOW ZOOM’S SUITE OF COMMUNICATION TOOLS 29Zoom’s Core Services 30Ready to Go 31Zoom Meetings & Chat 31Zoom Video Webinars 37Some Assembly Required 39Zoom Rooms 39Zoom Phone 43PART 2: COMMUNICATING AND COLLABORATING IN ZOOM 45CHAPTER 3: SETTING UP ZOOM 47Taking Your First Steps 47Creating a new Zoom account 48Modifying your Zoom plan 52Downloading and installing the Zoom desktop client 54Signing in to the Zoom desktop client 56Completing your Zoom profile 57Getting to know the Zoom UI 58Reviewing Zoom Account Management 59Adding new users to your Zoom account 60Deactivating existing accounts 61Deleting existing users from your Zoom account 62Unlinking users from your Zoom account 63Unlocking the power of Zoom user groups 64Discussing the Importance of Zoom Roles 67Reviewing Zoom’s default roles 67Creating new user roles 68Changing an existing user’s role 69CHAPTER 4: CONNECTING WITH OTHERS VIA ZOOM MEETINGS 71Getting Started with Zoom Meetings 72Reviewing Zoom’s meeting-specific roles 72Locating your personal Zoom information 74Augmenting your Zoom meetings 75Hosting Zoom Meetings 78Inviting others to your current meeting 80Planning a future Zoom meeting 82Letting others in to your current meeting 89Joining others’ Zoom meetings 90Putting your best foot forward 93Performing Mid-Meeting Actions 95Reviewing your recording options 95Using virtual backgrounds 97Managing and interacting with meeting participants 99Launching live polls 100Using breakout rooms during meetings 102Sharing content with meeting participants 105Putting a Bow on Your Meeting 115Viewing meeting transcriptions 116Accessing your recorded meetings 117CHAPTER 5: GETTING TO KNOW THE OTHER SIDE OF ZOOM MEETINGS & CHAT 121Managing Your Zoom Contacts 122Adding contacts to your Zoom directory 123Removing an existing contact from your Meetings & Chat directory 125Inviting an existing Zoom contact to a new meeting 126Adding internal contacts to an existing meeting 126Performing contact-specific actions 127Understanding User Status in Zoom 128Getting familiar with Zoom’s status icons 129Changing your status in Meetings & Chat 130Staying current with Zoom notifications 133Chatting in Zoom 134Exchanging messages with your individual Zoom contacts 134Holding group chats 136Creating threads in Zoom 139Saving message drafts 141Editing and deleting your messages 141Referencing other Zoom members in a group discussion 142Adding some flair to your messages 143Uploading and sharing files in Zoom 146Sending screen captures 148Performing message-specific actions 149Searching in Zoom 150Performing basic Zoom searches 150Performing more advanced Zoom searches 153Performing searches with wildcards 155PART 3: BECOMING A ZOOM POWER USER 157CHAPTER 6: GETTING EVEN MORE OUT OF MEETINGS & CHAT 159Managing Users via IM Groups 160Understanding the need for IM groups 160Adding a new IM group 161Adding users to IM groups 162Exploring Additional Options and Features in Meetings & Chat 163Understanding Zoom Channels 163Refining your Zoom notifications 174Sharing code snippets 178Running Reports in Zoom 181Reviewing Zoom’s role-based reporting 182Running a simple report 185Customizing your reports 186Exporting raw report data 188CHAPTER 7: ENHANCING ZOOM WITH THIRD-PARTY APPS 189Understanding the Rationale behind Third-Party Apps 190Benefits of using third-party apps 190Why Zoom relies upon external developers 191Introducing the Zoom App Marketplace 192Searching for a specific Zoom app 193Browsing for Zoom apps 194Managing Your Zoom Apps 195Installing a Zoom app 196Uninstalling a Zoom app 197Viewing your organization’s installed apps 199Restricting apps in Meetings & Chat 199Limiting apps that members can install 200Recommending a Few Useful Zoom Apps 202Treading Lightly with Apps 204CHAPTER 8: CONNECTING WITH THE MASSES THROUGH WEBINARS 207Taking Your First Steps 208Creating your first Zoom webinar 209Setting your registration options 210Preparing for your webinar 212Reviewing Zoom’s webinar-specific roles 217Taking Zoom webinars up a notch with third-party apps and integrations 223Canceling your webinar 224Running Your Webinar 225Launching your webinar 225Sharing and annotating your screen 228Interacting with webinar attendees 230Concluding Your Webinar 236Accessing your recorded webinar and sharing it with the world 236Downloading your recorded webinar 238Running webinar-related reports 239Deleting your recorded webinars 241PART 4: DEPLOYING ZOOM IN THE ORGANIZATION 243CHAPTER 9: PROTECTING YOUR COMMUNICATIONS IN ZOOM 245Putting Zoom’s Challenges into Proper Context 246Understanding creative destruction 246Managing the double-edged sword of sudden, massive growth 247Zoombombing 247Gauging Zoom’s Response 251Bringing Zoom’s privacy and security settings to the forefront 252Enhancing its encryption method 253Enabling default passwords and waiting rooms for all meetings 255Increasing the length of meeting and webinar IDs 255Configuring Zoom for Maximum Privacy and Security 256Keeping Zoom up to date 256Enabling two-factor authentication 260Authenticating user profiles 264Intelligently using passwords 267Following Zoom’s best security practices 272Using your brain 274Looking toward the Future 276CHAPTER 10: TAKING GROUP MEETINGS TO THE NEXT LEVEL WITH ZOOM ROOMS 279Revisiting the Early Days of Immersive-Telepresence Technology 280TelePresence by Cisco Systems 280Halo by Hewlett-Packard 281The underwhelming results of early immersive-telepresence technology 282Introducing Zoom Rooms 283Features of Zoom Rooms 283Cost and functionality 284The types of environments that typically benefit from Zoom Rooms 284Setting Up Your Zoom Room 285Software 285Hardware 286Lighting 291CHAPTER 11: MAKING CALLS WITH ZOOM PHONE 293Getting Started with Zoom Phone 294Adding Zoom Phone to your existing plan 294Setting up Zoom to receive inbound calls 296Setting up Zoom to make outbound calls 298Reviewing the Basic Features of Zoom Phone 302Before distributing your Zoom Phone number 303Talking to people via Zoom Phone 306Performing other call-related actions 309CHAPTER 12: GETTING EVERYONE TO ZOOM TOGETHER 313Understanding the Relative Ease of Zoom Adoption 314Zoom is remarkably easy to use 314Zoom doesn’t step on email’s toes 314Zoom doesn’t require people to rethink how they work 315Zoom benefits from network effects 317Applying Different Types of Techniques 318Organizational techniques 318Individual techniques 321CHAPTER 13: ZOOMING TOWARD THE FUTURE 325Cutting-Edge Technologies 326Augmented reality 326Virtual reality 326Artificial intelligence and machine learning 327Voice 329Better voice transcriptions 330More useful commands 330Real-time language translation 331Other Developments and Enhancements 331More robust third-party apps 331Key acquisitions and partnerships 332Increased security 332PART 5: THE PART OF TENS 335CHAPTER 14: TEN GREAT ZOOM TIPS 337Try Before You Buy 337Consider Upgrading Your Firm’s Existing Zoom Plan 338Take Security Seriously 338Keep Zoom Updated 339Create a Personal Zoom Account 339Explore Zoom’s Advanced Features 340Measure Twice and Cut Once 340Develop a Contingency Plan for Important Meetings 340Expect Some Resistance to Zoom at Mature Firms 341Avoid Zoom Fatigue 342CHAPTER 15: TEN COMMON MYTHS ABOUT ZOOM 343Zoom Is No Different than Legacy Videoconferencing Tools 343Zoom Is Fundamentally Insecure 344Zoom’s Customers Use the Tools in a Uniform Way 344Zoom Ensures Flawless Business Communication 345Zoom Decimates the Need for In-Person Communication 345Zoom Eliminates the Need for Email 346You Can’t Overuse Zoom 346Zoom Is Too Expensive for Our Company 347Zoom Won’t Integrate with Our Key Enterprise Technologies 348Our Workers Don’t Need a Tool like Zoom 348Only Hipsters at Tech-Savvy Startups Use Zoom 348CHAPTER 16: TOP TEN OR SO ZOOM RESOURCES 349Resources for Everyday Users 350Zoom support 350Zoom training 351Zoom on YouTube 351Zoom apps 351Zoom blog 351Zoomtopia 352Zoom virtual backgrounds 352Zoom on social networks 352Resources for Software Developers 353Zoom developer guides 353Developer forums 353CHAPTER 17: TEN WAYS TO SOCIALIZE VIA ZOOM 355Cooking and Eating Meals 355Visiting Sick Friends and Family Members 356Dating 356Sharing a Few Drinks over Happy Hour 356Playing Brick-and-Mortar Games 356Playing Video Games 356Watching Movies and TV Shows 357Performing Stand-Up Comedy 357Staying Fit 357Holding Miscellaneous Parties 357Index 359
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