Allgemein
Practical Event-Driven Microservices Architecture
In the simplest terms, event-driven architectures are like onions; they are manageable as a single layer (like a monolith) but when you get into them, they begin to cascade apart and you quickly realize that there are many complex layers (distributed microservices architecture). And that’s when the tears begin.This prescriptive guide takes you through the steps of moving a platform with millions of users from a monolith to a microservices event-driven architecture. You will learn about the challenges and complexities that arise in high-throughput environments that often contain upwards of hundreds of microservices. This book is designed to be your single best resource for learning how to apply event-driven architectures in real-world scenarios and offers hundreds of patterns to overcome the common and not so common challenges.While event-driven architectures have been the standard for decoupled, pluggable, evolutionary architectures for years, they have only recently been adopted by enterprises for the purpose of distributed microservices and there is little information about adopting them. Using them at scale can save valuable resources, but requires different considerations, including the added complexity of supporting several moving parts and getting the event schema right from the start in order to avoid large restructuring later on.Author Hugo Rocha understands that these kinds of challenges, as well as many others, need to be considered from the beginning, and helps teach you the mindset needed to create a deliberate strategy upfront. This book offers learning approaches and patterns to get you up to speed in order to sustainably build and manage event-driven architectures.WHAT YOU WILL LEARN* Understand the real-world challenges of event-driven architectures and the patterns to deal with those challenges and the trade-offs of each solution* Leverage the advantages of event-driven architectures to build scalable solutions and address legacy applications* Plan successful future implementations to avoid common pitfalls and apply proven patterns to deal with challenges in a real-world platform with millions of users* Decide whether event-driven solutions are the right choice for the requirements at hand* Discuss and understand advanced concepts about event-driven architecturesWHO IS THIS BOOK FORSoftware engineers and software architects. Anyone currently working with microservice architectures, primarily event-driven microservices, will greatly benefit from this book. Readers working with monoliths will benefit, as the book explores migration from a monolithic application to an event-driven microservice architecture.HUGO ROCHA has nearly a decade of experience working with highly distributed event-driven microservices architectures. He currently is an engineering lead for the leading global ecommerce platform for luxury products (Farfetch), providing services to millions of active users, backed by an event-driven architecture with hundreds of microservices processing hundreds of changes per second. Before that, he worked for several reference telecommunications companies that transitioned from monolithic applications to microservice-oriented architectures. Hugo has managed several teams that directly face the caveats of event-driven architectures every day. He designed solutions for critical pieces of the platform’s highly distributed backoffice platform, handling hundreds of changes per second, concurrently, scalably, and with high performance.CHAPTER 1. EMBRACING EVENT-DRIVEN ARCHITECTURES1.1. The truth about monoliths1.1.1. Anatomy of a typical monolith1.1.2. It's not all bad1.1.3. When monoliths become the business constrictor knot1.1.4. Using event-driven architectures to move away from a monolith1.2. What are microservices and how do they relate to event-driven1.3. SOA, microservice, and event-driven architectures1.4. The promise of event-driven microservices1.5. When should you use event-driven microservices?1.6. Overview of the challenges in event-driven architectures1.7. SummaryCHAPTER 2. MOVING FROM A MONOLITH TO AN EVENT-DRIVEN ARCHITECTURE2.1. Is migrating to an event-driven architecture your best option?2.2. How to decide where to start2.3. Using an event-driven approach to migrate data2.4. Using change data capture (CDC)2.4.1. Event-driven and change data capture (CDC), a real-world example2.5. Event-driven as a source of truth for both systems2.6. Managing dependencies between the two systems2.6.1. Dependency from new event-driven services to the monolith2.6.2. Dependency from the monolith to new event-driven services2.7. Gradually moving traffic2.8. Two-way synchronization and living with two sources of truth2.9. SummaryCHAPTER 3. DEFINING AN EVENT-DRIVEN MICROSERVICE AND ITS BOUNDARIES3.1. Building event-driven microservices3.1.1. Durable vs. ephemeral message brokers and GDPR3.1.2. Message types3.1.3. When to use documents over events3.1.4. Common event-driven messaging patterns3.1.5. Event-driven service topologies3.1.6. Common event-driven pitfalls and anti-patterns3.2. Organizing event-driven microservice boundaries3.3. Brief and practical introduction to domain-driven design and bounded contexts3.4. The impact of aggregate size and common pitfalls3.5. Request-driven vs. event-driven services3.6. Adding functionality to an existing microservice vs. creating a new one3.7. SummaryCHAPTER 4. EVENT-DRIVEN STRUCTURAL PATTERNS AND HIGH-LEVEL PROCESSES4.1. The challenges of transactional consistency in distributed systems4.1.1. Why abandon a monolithic database in the first place?4.1.2. The limitations of distributed transactions4.1.3. Managing multi-step processes with Sagas4.2. Event-driven orchestration pattern4.3. Event-driven choreography pattern4.4. Orchestration, choreography, or both?4.5. Data retrieval in event-driven architectures and associated patterns4.5.1. CQS, CQRS and when to use them4.5.2. The different flavors of CQRS4.5.3. When and how to use event sourcing4.5.4. Using command sourcing and its applicability4.6. Building multiple read models4.7. The pitfall of microservice spaghetti architectures and how to avoid it4.8. SummaryCHAPTER 5. HOW TO MANAGE EVENTUAL CONSISTENCY5.1. The impacts of eventual consistency and the need for alignment with the business5.2. Using event schema to leverage eventual consistency5.3. Applying domain boundaries to leverage eventual consistency5.4. Event versioning to manage delays5.5. Saving state to avoid eventual consistency5.6. End-to-end argument: a real-world use case5.7. For most use cases, it's not eventual if nobody notices5.7.1. Autoscaling use case with Prometheus and Kafka5.8. Tradeoffs of each solution5.9. SummaryCHAPTER 6. DEALING WITH EVENT-DRIVEN CONCURRENCY AND OUT OF ORDER MESSAGES6.1. Why is concurrency different in a monolith from an event-driven architecture?6.2. Pessimistic vs. optimistic concurrency, when and when not to use6.2.1. Pessimistic vs. optimistic approaches6.2.2. Solving concurrency by implementation and by architecture6.3. Using optimistic concurrency6.4. Using pessimistic concurrency6.4.1. Distributed locks6.4.2. Database transactions6.5. Dealing with out-of-order events6.5.1. How can events lose their order?6.5.2. Solving out of order events with versioning6.6. Using end-to-end message partitioning to handle concurrency and guarantee message ordering6.6.1. The relevance of message routing and partitioning6.6.2. Real-world example of message routing using Kafka6.6.3. Using end-to-end partitioning6.6.4. Limitations of end-to-end partitioning6.7. SummaryCHAPTER 7. ACHIEVING RESILIENCE AND EVENT PROCESSING RELIABILITY IN EVENT-DRIVEN MICROSERVICES7.1. Common failures in microservice architectures and how they relate to event-driven architectures7.1.1. Cascading failures and event-driven services7.1.2. Load balancing and rate limiters in event-driven services7.2. Understanding message delivery semantics7.3. Avoiding inconsistencies when saving state and publishing events7.3.1. Event stream as the only source of truth7.3.2. Outbox pattern7.3.3. Transactions and compensating actions7.4. Applying ACID 2.0 as a resilience strategy7.5. Avoiding message leak7.6. Applying common resilience patterns7.6.1. Retries7.6.2. Circuit breakers7.7. Recovering data and repairing state7.8. Bulkhead pattern7.9. SummaryCHAPTER 8. CHOOSING THE CORRECT EVENT SCHEMA DESIGN8.1. Event storming8.2. Event headers and envelopes8.2.1. Headers vs envelopes8.2.2. Relevant event contextual information8.3. Town crier events8.4. Bee events8.5. The event schema goldilocks principle8.6. Denormalized event schema8.7. Schema evolution8.7.1. Event stream versioning8.7.2. Using a downscaler/upscaler8.8. SummaryCHAPTER 9. HOW TO LEVERAGE THE USER INTERFACE9.1. Using an aggregating layer9.2. Backends for frontends9.3. UI Decomposition9.3.1. Application decomposition9.3.2. Page decomposition9.3.3. Section decomposition9.4. The limitations of API composition9.5. Task-based UIs9.6. Event-driven APIs9.7. SummaryCHAPTER 10. OVERCOMING THE CHALLENGES IN QUALITY ASSURANCE10.1. The only happens in production syndrome10.2. Component tests vs integration tests10.3. The correct mix of component validation and production validations10.4. Monitoring and alarmistic from the ground up10.5. SummaryCHAPTER 11. ORGANIZATIONAL COST OF EVENT-DRIVEN MICROSERVICES11.1. The epic journey to be onboarded11.2. When implementation overhead impacts time to market11.3. Dependencies management11.4. Summary
Leadership im Produktmanagement
Pflichtlektüre für angehende und erfahrene Produktmanager:innen»Leadership im Produktmanagement« hilft, ein besserer Product Owner zu werden. Von Roman Pichlers umfangreicher Erfahrung profitieren und lernen, Stakeholder auf gemeinsame Ziele auszurichten und Entwicklungsteams auch unter herausfordernden Umständen zu führen, häufige Führungsfehler vermeiden und als Führungskraft wachsen.In einem ansprechenden und leicht verständlichen Stil geschrieben, bietet dieses Buch eine Fülle von praktischen Tipps und Strategien. Durch hilfreiche Beispiele veranschaulicht das Buch, wie Sie die Techniken direkt auf Ihre Arbeit anwenden können.Der Inhalt umfasst:Den passenden Leadership-Stil wählen und Empathiefähigkeit stärkenVertrauensvolle Partnerschaften mit Stakeholdern, Entwicklungsteam und Scrum Master etablierenDie richtigen produktbezogenen Ziele setzenEffektiv kommunizieren: aktives Zuhören und bewusstes SprechenEntscheidungen treffen, die von den Mitarbeitenden mitgetragen und umgesetzt werdenKonflikte nachhaltig lösenEntscheidungen treffen und die Zustimmung der Stakeholder sichernSich selbst bewusst führen: Achtsamkeit, Growth Mindset und Zeitmanagement
Architekturen für BI & Analytics
Konzepte, Technologien und Anwendung - Erstauflage aus November 2021.Sowohl regulatorische Vorgaben als auch gesteigerte Anforderungen seitens der Fachanwender haben in den letzten Jahren zu immer komplexeren Business-Intelligence- und Analytics-Landschaften geführt, die es zu entwickeln und betreiben gilt. So setzt sich eine heute übliche Architektur aus zahlreichen Einzelkomponenten zusammen, deren Zusammenspiel und funktionale Abdeckung als wesentlicher Erfolgsfaktor für zugehörige BIA-Initiativen zu werten ist.»Architekturen für Business Intelligence & Analytics« setzt sich das Ziel, die derzeit gebräuchlichen Architekturmuster zu beschreiben und dabei einen Überblick über die aktuell verwendeten Technologien zu liefern. Dabei werden nicht nur die architektonischen Frameworks der großen Produktanbieter aufgegriffen, sondern darüber hinaus Lösungen für konkrete Anwendungsfälle präsentiert. Im Einzelnen werden behandelt:Anforderungen an eine ganzheitliche BIA-ArchitekturArchitekturen und Technologien für Data LakesDatenzugriffsstrategien für AnalyticsEnterprise Application IntegrationCloud-Konzepte und -ArchitekturenEinfluss regulatorischer AnforderungenDatenvirtualisierungBIA-Architekturen für KMU Das Buch vermittelt wertvolle Einblicke und hilfreiche Anregungen für die erfolgreiche Konzeptionierung und Realisierung von BIA-Ökosystemen und -Landschaften in der Praxis. Zielgruppe:Business-Intelligence-Manager*innenDaten- und InformationsverantwortlicheProjektleiter*innenStudierende der Informatik und Wirtschaftsinformatik Autoren:Prof. Dr. Peter Gluchowski leitet den Lehrstuhl für Wirtschaftsinformatik, insb. Systementwicklung und Anwendungssysteme, an der Technischen Universität in Chemnitz und konzentriert sich dort mit seinen Forschungsaktivitäten auf das Themengebiet Business Intelligence & Analytics. Er beschäftigt sich seit mehr als 25 Jahren mit Fragestellungen, die den praktischen Aufbau dispositiver bzw. analytischer Systeme zur Entscheidungsunterstützung betreffen. Seine Erfahrungen aus unterschiedlichsten Praxisprojekten sind in zahlreichen Veröffentlichungen zu diesem Themenkreis dokumentiert. Frank Leisten ist passionierter Berater für datengetriebene Vorhaben mit modernen Technologien. Seine Expertise in den Funktionen des Datenmanagements sowie jahrelange Praxiserfahrung in verschiedenen IT-Domänen und Rollen kommen seinen Kunden bei der Orchestrierung sowie der kulturellen und strategischen Entwicklung ihrer Transformationen zugute. Dr. Gero Presser ist Mitgründer und Geschäftsführer bei der QuinScape GmbH, einem Dortmunder IT-Dienstleistungsunternehmen mit 170 Mitarbeitern und Fokus auf Data & Analytics. Er organisiert die Meetup-Gruppe „Business Intelligence & Analytics Dortmund“ mit über 1.000 Mitgliedern und ist Vorsitzender des TDWI Roundtable Ruhrgebiet.
Mastering VMware Horizon 8
Learn all about designing, installing, configuring, and managing VMware Horizon, with a core focus on how to deliver virtual desktops using Horizon. This book allows you to follow the complete process for deploying VMware Horizon and covers the design, deployment, and management of solutions.You'll start by reviewing remote solutions, from virtual desktops to published applications, including the benefits and what the different solutions deliver. Once through the high-level technology you'll then look at the VMware Horizon solution focusing on the architecture and the components that make up the solution and how to design a production-ready environment. Other VMware EUC technologies that complement the core Horizon solution will also be incorporate into it.Armed with the knowledge of how to design a solution, you'll move onto the installation phase and start to build a test lab environment. Once your lab is installed, you'll move onto the configuration stage where you will understand how to build, configure, and optimize virtual desktops, and desktop pools ready for end-users to use. As part of this you will also look at delivering published applications with Horizon Apps.With resources built and configured you can optimize the end-user experience with Horizon clients. The final sections of the book will focus on the other complementary solutions introducing you to VMware App Volumes and VMware Dynamic Environment Manager before finishing with how to manage the solution where we will look at some advanced configuration options and troubleshooting techniques.WHAT YOU WILL LEARN* See the core components of VMware Horizon and their functionality* Design and install a Horizon environment* Deliver the best end-user experience* Manage the deployed solution* Use VMware reference architectures to create real-life scenario examples* Review the minimum requirements for designing a solutionWHO THIS BOOK IS FORVMware professionals, system integrators, IT professionals, and consultants.PETER VON OVEN is an experienced technical consultant working closely with customers and partners designing technology solutions, to meet business needs. During his career, Peter has presented at key IT events such as VMworld, IP EXPO, and various VMUGs and CCUG events. He has also worked in senior presales roles and presales management roles for Fujitsu, HP, Citrix, and VMware, and has been awarded VMware vExpert for the last six years in a row. In 2016, Peter founded his own company, Droplet Computing, where he works today as the founder and chief executive officer, helping redefine the way applications are delivered today. He is also an avid author, having now written 13 books and made videos about VMware end-user computing solutions. In his spare time, Peter volunteers as a STEM Ambassador, helping the next generation develop the skills and confidence in building careers in technology.Chapter 1: What Are Remote Desktop Solutions?Chapter 2: Getting Started with VMware HorizonChapter 3: Architecting Horizon for DeploymentChapter 4: Installing and Configuring Your Horizon EnvironmentChapter 5: Creating Virtual Desktop Images for DeploymentChapter 6: Building and Configuring Desktop PoolsChapter 7: Managing Horizon with Active Directory GPOsChapter 8: Horizon Computer GPOs Settings (split from chapter 7)Chapter 9: Horizon User GPO Settings (split from chapter 7)Chapter 10: Managing the End User Environments (former chapter 8)Chapter 11: Horizon Apps (former chapter 9)Chapter 12: Horizon Published Desktop (former chapter 10)Chapter 13: Connecting End Users (former chapter 11)Chapter 14: Horizon Enterprise Edition (former chapter 12)Chapter 15: Upgrading Horizon (former chapter 13)Chapter 16: Running Horizon in the Cloud (former chapter 14)Chapter 17: Horizon Troubleshooting (former chapter 15)Online Resource: Advanced Configuration and Management (former chapter 16)
Solving the Riddle of Microsoft and Your Computer
Solving the Riddle of Microsoft and Your Computer provides easy to follow step by step instructions.Chapter one provides some useful facts about your computer. This Chapter describes such things as how to operate your mouse; how to modify your screen saver and printer settings; options for printing files; how to use different functions of the calculator; playing and storing music; using Snipping Tool to capture images; determining amount of Radom Access Memory (RAM) is on your computer; determining your computer name; how to use Microsoft Excel to keep track of financial transactions.Chapter two discusses how to use Microsoft File Explorer. I refer to File Explorer as the electronic filing cabinet. This chapter provides a description of the drives in your computer; how to create top level and sub-folders in your C-Drive also known as the hard drive; how to find files in File Explorer; copying files from the C-Drive and changing properties on files.Chapter three is the real meat of this book. It provides detailed information on the most useful Microsoft Word functions. You will learn how to use pull down menus to include (Find, Replace, Tracking Changes, Accepting or Rejecting Changes, saving files, Print Preview, Printing, inserting Headers and Footers); additional topics on cover pages, inserting blank pages, inserting page breaks, inserting tables and inserting pictures; next you will learn how to adjust margins, adjust orientation, adjusting size of paper, inserting columns, inserting page and section breaks, how to vertical line numbers; an in depth discussion concerning interactive table of contents; other useful tools include inserting symbols, inserting footnotes, inserting text boxes, inserting other files into Word, how to use Format Painter, description of formatting fonts and how to insert splits in Word.
Knowledge Graphs
This book provides a comprehensive and accessible introduction to knowledge graphs, which have recently garnered notable attention from both industry and academia. Knowledge graphs are founded on the principle of applying a graph-based abstraction to data, and are now broadly deployed in scenarios that require integrating and extracting value from multiple, diverse sources of data at large scale. The book defines knowledge graphs and provides a high-level overview of how they are used. It presents and contrasts popular graph models that are commonly used to represent data as graphs, and the languages by which they can be queried before describing how the resulting data graph can be enhanced with notions of schema, identity, and context. The book discusses how ontologies and rules can be used to encode knowledge as well as how inductive techniques—based on statistics, graph analytics, machine learning, etc.—can be used to encode and extract knowledge. It covers techniques for the creation, enrichment, assessment, and refinement of knowledge graphs and surveys recent open and enterprise knowledge graphs and the industries or applications within which they have been most widely adopted. The book closes by discussing the current limitations and future directions along which knowledge graphs are likely to evolve. This book is aimed at students, researchers, and practitioners who wish to learn more about knowledge graphs and how they facilitate extracting value from diverse data at large scale. To make the book accessible for newcomers, running examples and graphical notation are used throughout. Formal definitions and extensive references are also provided for those who opt to delve more deeply into specific topics. * Preface * Acknowledgments * Introduction * Data Graphs * Schema, Identity, and Context * Deductive Knowledge * Inductive Knowledge * Creation and Enrichment * Quality Assessment * Refinement * Publication * Knowledge Graphs in Practice * Conclusions * Bibliography * Authors' Biographies
Prinzipien des Softwaredesigns
Entwurfsstrategien für komplexe SystemeDie Prinzipien guten Softwaredesigns zu verstehen, hält John Ousterhout für eine Schlüsselqualifikation in der Softwareentwicklung. Sein Buch gibt Impulse für eine anregende und notwendige Diskussion und bietet praxistaugliche Hilfestellungen für gute Designentscheidungen. Ausgehend von der Frage »Wie können wir die Komplexität in großen Softwaresystemen reduzieren und managen?« arbeitet John Ousterhout Prinzipien für das Softwaredesign heraus, die als Leitlinie für den gesamten Softwareentwicklungsprozess dienen können. Ousterhout stellt Überzeugungen infrage, die weit verbreitet sind: Er rät davon ab, die Anzahl der Codezeilen einer Methode oder Klasse als Gradmesser für die Komplexität von Software zu verstehen, und plädiert dafür, sich auf ihre »Tiefe« zu konzentrieren – wie gut sie also Komplexität verstecken. Und während viele Entwicklerinnen und Entwickler meinen, dass sich gut geschriebene Programme von selbst dokumentierten, zeigt Ousterhout, wie essenziell Kommentare sind: Das Schreiben guter Kommentare ermöglicht Abstraktion, und es wird zu besserem Softwaredesign führen.Zielgruppe:Softwareentwickler*innenProgrammierendeSoftwarearchitekt*innenAutor:John Ousterhout ist Professor für Informatik an der Stanford University. Er hat die Entwicklung weit verbreiteter Softwaresysteme wie Raft, Tcl/Tk, Sprite und Magic geleitet und eigene Unternehmen gegründet. Er ist Mitglied der National Academy of Engineering und erhielt zahlreiche Auszeichnungen wie den U.C. Berkeley Distinguished Teaching Award.Aus dem Inhalt:Wie man komplexe Systeme in möglichst unabhängige Module mit einfachen Schnittstellen zerlegen kannWie Spezialisierung in Modulen zu vermeiden istWie man die Anzahl der Stellen im Code minimieren kann, an denen Exceptions behandelt werden müssenWie Kommentare und gut gewählte Namen genutzt werden können, um den Code verständlicher zu machenWie es zu vermeiden ist, dass sich Komplexität einschleicht, wenn Systeme sich weiterentwickelnWelche Warnhinweise darauf hindeuten, dass Designentscheidungen überprüft werden sollten
Learn to Program with Assembly
Many programmers have limited effectiveness because they don't have a deep understanding of how their computer actually works under the hood. In Learn to Program with Assembly, you will learn to program in assembly language - the language of the computer itself.Assembly language is often thought of as a difficult and arcane subject. However, author Jonathan Bartlett presents the material in a way that works just as well for first-time programmers as for long-time professionals. Whether this is your first programming book ever or you are a professional wanting to deepen your understanding of the computer you are working with, this book is for you. The book teaches 64-bit x86 assembly language running on the Linux operating system. However, even if you are not running Linux, a provided Docker image will allow you to use a Mac or Windows computer as well.The book starts with extremely simple programs to help you get your grounding, going steadily deeper with each chapter. At the end of the first section, you will be familiar with most of the basic instructions available on the processor that you will need for any task. The second part deals with interactions with the operating system. It shows how to make calls to the standard library, how to make direct system calls to the kernel, how to write your own library code, and how to work with memory. The third part shows how modern programming language features such as exception handling, object-oriented programming, and garbage collection work at the assembly language level.Additionally, the book comes with several appendices covering various topics such as running the debugger, vector processing, optimization principles, a list of common instructions, and other important subjects.This book is the 64-bit successor to Jonathan Bartlett's previous book, Programming from the Ground Up, which has been a programming classic for more than 15 years. This book covers similar ground but with modern 64-bit processors, and also includes a lot more information about how high level programming language features are implemented in assembly language.WHAT YOU WILL LEARN* How the processor operates * How computers represent data internally * How programs interact with the operating system* How to write and use dynamic code libraries* How high-level programming languages implement their features WHO THIS BOOK IS FORAnyone who wants to know how their computer really works under the hood, including first time programmers, students, and professionals.JONATHAN BARTLETT is a software developer, researcher, and writer. His first book, Programming from the Ground Up, has been required reading in computer science programs from DeVry to Princeton. He has been the sole or lead author for eight books on topics ranging from computer programming to calculus. He is a technical lead for ITX, where his specialty is getting stuck projects unstuck.Chapter 1: IntroductionChapter 2: The Truth About ComputersPart I: Assembly Language BasicsChapter 3: Your First ProgramChapter 4: Registers and Simple ArithmeticChapter 5: Comparison, Branching and LoopingChapter 6: Working with Data in MemoryChapter 7: Data RecordsChapter 8: Signed Numbers and Bitwise OperationsChapter 9: More Instructions You Should KnowPart II: Operating System BasicsChapter 10: Making System CallsChapter 11: The Stack and Function CallsChapter 12: Calling Functions from LibrariesChapter 13: Common and Useful Assembler DirectivesChapter 14: Dynamic Memory AllocationChapter 15: Dynamic LinkingPart III: Programming Language TopicsChapter 16: Basic Language Features Represented in Assembly LanguageChapter 17: Tracking Memory AllocationsChapter 18: Object-Oriented ProgrammingChapter 19: Conclusion and AcknowlegmentsPart IV: AppendicesAppendix A: Getting Set Up with DockerAppendix B: The Command LineAppendix C: Debugging with GDBAppendix D: Nasm (Intel) Assembly Language SyntaxAppendix E: Common x86-64 InstructionsAppendix F: Floating Point NumbersAppendix G: The Starting State of the StackAppendix H: ASCII, Unicode, and UTF-8Appendix I: OptimizationAppendix J: A Simplified Garbage CollectorAppendix K: Going to an Even Lower Level
Web App Development and Real-Time Web Analytics with Python
Learn to develop and deploy dashboards as web apps using the Python programming language, and how to integrate algorithms into web apps.Author Tshepo Chris Nokeri begins by introducing you to the basics of constructing and styling static and interactive charts and tables before exploring the basics of HTML, CSS, and Bootstrap, including an approach to building web pages with HTML. From there, he’ll show you the key Python web frameworks and techniques for building web apps with them. You’ll then see how to style web apps and incorporate themes, including interactive charts and tables to build dashboards, followed by a walkthrough of creating URL routes and securing web apps. You’ll then progress to more advanced topics, like building machine learning algorithms and integrating them into a web app. The book concludes with a demonstration of how to deploy web apps in prevalent cloud platforms.Web App Development and Real-Time Web Analytics with Python is ideal for intermediate data scientists, machine learning engineers, and web developers, who have little or no knowledge about building web apps that implement bootstrap technologies. After completing this book, you will have the knowledge necessary to create added value for your organization, as you will understand how to link front-end and back-end development, including machine learning.WHAT YOU WILL LEARN* Create interactive graphs and render static graphs into interactive ones* Understand the essentials of HTML, CSS, and Bootstrap* Gain insight into the key Python web frameworks, and how to develop web applications using themDevelop machine learning algorithms and integrate them into web apps * Secure web apps and deploy them to cloud platformsWHO THIS BOOK IS FORIntermediate data scientists, machine learning engineers, and web developers. Tshepo Chris Nokeri harnesses big data, advanced analytics, and artificial intelligence to foster innovation and optimize business performance. In his functional work, he has delivered complex solutions to companies in the mining, petroleum, and manufacturing industries. He initially completed a bachelor’s degree in information management. He then graduated with an honors degree in business science at the University of the Witwatersrand on a TATA prestigious scholarship and a Wits Postgraduate Merit Award. They unanimously awarded him the Oxford University Press Prize. He has authored the Apress book Data Science Revealed and Implementing Machine Learning for Finance. Chapter 1: Static 2D and 3D GraphsChapter Goal: This chapter introduces the basics of tabulating data and constructing staticgraphical representations. To begin with, it exhibits an approach of extracting and tabulating data by implementing the pandas and sqlalchemy library. Subsequently, it reveals a prevalent 2D and 3D charting recognized as Matplotlib, then exhibits a technique of constructing basic charts (i.e. box-whisker plot, histogram, line plot, and scatter plot).● Tabulating Data● 2D Chartingo Box-whisker-ploto Histogramo Line ploto Scatter ploto Density Plot● 3D Charting● ConclusionChapter 2: Interactive ChartingChapter Goal: This chapter introduces an approach for constructing interactive charts byimplementing the most prevalent library, recognized as Plotly.● Plotly● 2D Chartingo Box-whisker-ploto Histogramo Line ploto Scatter ploto Density Ploto Bar Charto Pie Charto Sunburst● 3D Charting● ConclusionChapter 3: Containing functionality in Interactive GraphsChapter Goal: This chapter extends to the preceding chapter. It introduces an approach toupdating interactive graphs to improve user experience. For instance, you will learn how to add buttons and range sliders, among other functionalities. Besides that, it exhibits an approach for integrating innumerable graphs into one graph with some functionality.● Updating Graph Layout● Updating Plotly Axes● Including Range Slider● Including Buttons to a Graph● Styling Interactive Graphs● Updating Plotly X-Axis● Color Sequencing● Subplots● ConclusionsChapter 4: Essentials of HTMLChapter Goal: This chapter introduces the most prevalent markup language for developingwebsites. It acquaints you with the essentials of designing websites. Besides that, it contains a richset of code and examples to support you in getting started with coding using HTML.● The Communication between a Web Browser and Web Server● Domain Hostingo Shared Hostingo Managed Hosting● HyperText Markup Languageo HTML Elements▪ Headings▪ Paragraphs▪ Div▪ Span▪ Buttons▪ Text Box▪ Input▪ File Upload▪ Label▪ Form▪ Meta Tag● Practical Example● ConclusionChapter 5: Python Web Frameworks and ApplicationsChapter Goal: The preceding chapter acquainted you with interactive visualization using Plotly. This chapter introduces key Python web frameworks (i.e., flask and dash) and how they differ.Besides that, it provides practical examples and helps you get started with Python web development.● Web Frameworks● Web Applications● Flasko WSGIo Werkzeugo Jinjao Installing Flasko Initializing a Flask Web Applicationo Flask Application Codeo Deploy a Flask Web Application● Dasho Installing Dash Dependencieso Initializing a Dash Web Applicationo Dash Application Codeo Deploy a Dash Web Application● Jupyter Dash● ConclusionChapter 6: Dash Bootstrap ComponentsChapter Goal: This chapter covers dash_bootstrap_component. It is a Python library from the Plotly family, which enables us to have key bootstrap functionalities on a dash web application, thussimplifying the web application development.● Dash Bootstrap Components (cont.)o Number Inputo Text Areaso Selecto Radio Itemso Checklisto Switcheso Tabso Buttono Table● ConclusionChapter 7: Styling and ThemingChapter Goal: This chapter introduces the basics of UX design for a web application, dash with plotly. To begin with, it introduces styling an HTML web page. Subsequently, it acquaints you with the Cascade styling sheet (css). Following that, it presents bootstrap. Afterward, it reveals bootstrapping dash web applications. It concludes by demonstrating a way of designing the layout of a dash webapplication.● Styling● Cascade Styling Sheet● Bootstrap● Dash Bootstrappingo Dash Core Componentso Dash Bootstrap Componentso Implementing Dash Bootstrap Components Themingo Dash HTML Componentso Dash Web Application Layout Design● Responsive Grid SystemChapter 8: Real-Time Web ApplicationChapter Goal: This chapter introduces you to creating a real-time web application with aresponsive navigation bar, sidebar, charts, tables, callbacks, and URL routing. After reading the contents of this chapter you should be able to develop a functional and responsive web application by implementing key Python web frameworks (i.e., dash, dash_core_components, dash_html_components). Besides that, you should be able to use the Input, State, and Output methods available for creating functional application callbacks. Equally, it acquaints you with an approach for implementing CSS to customize as a dash web application.Sub-topics:● Creating Iconso Alert Icono Messageso Profile Icon with Dropdown Menu● Search Bar● Navigation Bar● Sidebar Styling● Responsive Sidebar Styling● Content Styling● Sub Menu● Finalize Sidebar Menu● Footer Navigation Bar● Web Application Layout● Including Charts● Including a Table● Enabling Data Download● Tabs● Collapse● Callbackso Callbacks for Responsive Menu● URL Routing● ConclusionChapter 9: Basic AuthenticationChapter Goal: This chapter introduces an approach to securing a dash web application. After reading the contents of this chapter, you should be able to implement user access control, thus providing users access to some web resources and restricting them to others.Sub-topics:● Dash Authentications● Login Form● Login on Home Page● ConclusionChapter 10: Dash Into a Full WebsiteChapter Goal: Prior chapters introduced a way of building dashboards as web applications,integrated with machine learning models. This chapter takes it a step further. It introduces a way of building the front-end. After reading the contents of this chapter, you should be able to build important pages of a website, such as the home page, about us page, and contact us page, in addition to that, a page for billing/checkout.Sub-topics:● Building Home Page● Building Contact Us Page● Building Billing / Check-Out BuildingChapter 11: Integrate Machine Learning ModelsChapter Goal: This chapter introduces an approach to integrate machine learning models. Initially, it will provide an over of machine learning recognized as linear regression, including ways of preprocessing data and generating predictions. It concludes by exhibiting a technique of implementing it in web applications.Sub-topics:● An Introduction to Linear Regression● An Introduction to Scikit learn● Preprocessing● Splitting Data into Training and Test Data● Standardization● Training an Algorithm● Predictions● Integrating an Algorithm to a Web App● ConclusionsChapter 12: Deploying Web AppChapter Goal: This chapter concludes the book. It exhibits a way of deploying a web app. Initially, it summarizes an integrated development environment useful for developing, testing, and debugging Python web frameworks. Subsequently, it exhibits an approach of organizing the file structure prior to deploying a web app. Besides that, it provides a practical example that will help you better web app deployment.Sub-topics:● Integrated Development Environment○ PyCharm● Virtual Environment● File Structure● Integration among Multiple Innumerable Python Files● Hosting Web App
Soziale Roboter
Soziale Roboter sind sensomotorische Maschinen, die für den Umgang mit Menschen oder Tieren geschaffen wurden. Sie können über fünf Dimensionen bestimmt werden, nämlich die Interaktion mit Lebewesen, die Kommunikation mit Lebewesen, die Nähe zu Lebewesen, die Abbildung von (Aspekten von) Lebewesen sowie – im Zentrum – den Nutzen für Lebewesen. Bei einem weiten Begriff können neben Hardwarerobotern auch Softwareroboter wie gewisse Chatbots, Voicebots und Social Bots dazu zählen. Die Disziplin, die soziale Roboter – ob als Spielzeugroboter, als Serviceroboter (Pflegeroboter, Therapieroboter, Sexroboter, Sicherheitsroboter etc.) oder als Industrieroboter in der Art von Kooperations- und Kollaborationsrobotern (Co-Robots bzw. Cobots) – erforscht und hervorbringt, ist die Soziale Robotik.Das Buch schafft Grundlagen in technikwissenschaftlicher, wirtschaftswissenschaftlicher, philosophischer, psychologischer und soziologischer Hinsicht. Es stellt dar, was soziale Roboter ausmacht, wie sie gebaut und programmiert werden, welche Anwendungsmöglichkeiten existieren und welche Herausforderungen sich ergeben.Das Kapitel 2 wird auf link.springer.com unter der Creative Commons Namensnennung 4.0 International Lizenz veröffentlicht.Prof. Dr. Oliver Bendel promovierte an der Universität St. Gallen. Er ist Dozent für Wirtschaftsinformatik, Informationsethik und Maschinenethik und forscht in Informations-, Maschinen- und Roboterethik.
The Little Book of Artificial Intelligence
This book is a brief introduction to artificial intelligence. It is intended for readers, in business, education, government, and self-edification.The author would like to thank his wife Margaret for helping with the manuscript. As in most disciplines, some of the subject matter is new and some of the subject matter is not so new, especially to persons trained in the subject of computers. A person with a degree in computer science should know it already. Artificial intelligence is an important subject to the modern world, and some disciplines have already benefitted greatly from it.The reader can survey the subject matter in any order he or she pleases. The busy executive can benefit greatly from it their parent organization. Executives in finance and banking can use to understand what is going on in their endeavors.Artificial intelligence is not only software but uses specially prepared software to take intellectual benefit in understanding what his or her data systems are doing.Artificial intelligence is something for the future from self-driving vehicles to self-managed business.
Cryptography, Information Theory, and Error-Correction
A rich examination of the technologies supporting secure digital information transfers from respected leaders in the field As technology continues to evolve Cryptography, Information Theory, and Error-Correction: A Handbook for the 21ST Century is an indispensable resource for anyone interested in the secure exchange of financial information. Identity theft, cybercrime, and other security issues have taken center stage as information becomes easier to access. Three disciplines offer solutions to these digital challenges: cryptography, information theory, and error-correction, all of which are addressed in this book. This book is geared toward a broad audience. It is an excellent reference for both graduate and undergraduate students of mathematics, computer science, cybersecurity, and engineering. It is also an authoritative overview for professionals working at financial institutions, law firms, and governments who need up-to-date information to make critical decisions. The book’s discussions will be of interest to those involved in blockchains as well as those working in companies developing and applying security for new products, like self-driving cars. With its reader-friendly style and interdisciplinary emphasis this book serves as both an ideal teaching text and a tool for self-learning for IT professionals, statisticians, mathematicians, computer scientists, electrical engineers, and entrepreneurs. Six new chapters cover current topics like Internet of Things security, new identities in information theory, blockchains, cryptocurrency, compression, cloud computing and storage. Increased security and applicable research in elliptic curve cryptography are also featured. The book also: Shares vital, new research in the field of information theoryProvides quantum cryptography updatesIncludes over 350 worked examples and problems for greater understanding of ideas. Cryptography, Information Theory, and Error-Correction guides readers in their understanding of reliable tools that can be used to store or transmit digital information safely. CRYPTOGRAPHY, INFORMATION THEORY, AND ERROR-CORRECTION A rich examination of the technologies supporting secure digital information transfers from respected leaders in the field As technology continues to evolve Cryptography, Information Theory, and Error-Correction: A Handbook for the 21ST Century is an indispensable resource for anyone interested in the secure exchange of financial information. Identity theft, cybercrime, and other security issues have taken center stage as information becomes easier to access. Three disciplines offer solutions to these digital challenges: cryptography, information theory, and error-correction, all of which are addressed in this book. This book is geared toward a broad audience. It is an excellent reference for both graduate and undergraduate students of mathematics, computer science, cybersecurity, and engineering. It is also an authoritative overview for professionals working at financial institutions, law firms, and governments who need up-to-date information to make critical decisions. The book’s discussions will be of interest to those involved in blockchains as well as those working in companies developing and applying security for new products, like self-driving cars. With its reader-friendly style and interdisciplinary emphasis this book serves as both an ideal teaching text and a tool for self-learning for IT professionals, statisticians, mathematicians, computer scientists, electrical engineers, and entrepreneurs. Six new chapters cover current topics like Internet of Things security, new identities in information theory, blockchains, cryptocurrency, compression, cloud computing and storage. Increased security and applicable research in elliptic curve cryptography are also featured. The book also: Shares vital, new research in the field of information theoryProvides quantum cryptography updatesIncludes over 350 worked examples and problems for greater understanding of ideas. Cryptography, Information Theory, and Error-Correction guides readers in their understanding of reliable tools that can be used to store or transmit digital information safely. Aiden A. Bruen, PhD, was most-recently adjunct research professor in the School of Mathematics and Statistics at Carleton University. He was professor of mathematics and honorary professor of applied mathematics at the University of Western Ontario from 1972-1999 and has instructed at various institutions since then. Dr. Bruen is the co-author of Cryptography, Information Theory, and Error-Correction: A Handbook for the 21st Century (Wiley, 2004). Mario A. Forcinito, PhD, is Director and Chief Engineer at AP Dynamics Inc. in Calgary. He is previously instructor at the Pipeline Engineering Center at the Schulich School of Engineering in Calgary. Dr. Forcinito is co-author of Cryptography, Information Theory, and Error-Correction: A Handbook for the 21st Century (Wiley, 2004).
Small-N und Big-N-Data in der Sportwissenschaft
Im Rahmen dieses essentials legen die Autoren das Augenmerk auf die Besonderheiten des Umgangs mit kleinen und großen Datenmengen in der Sportwissenschaft. Kurz und überblickartig wird dargestellt, welche Designs im Rahmen von Single-Case-Studies zum Einsatz gelangen können und wie solche Studien ausgewertet werden. Weiterhin wird erläutert, wie man die beste wissenschaftliche Evidenz in die (medizinische) Praxis integriert und wie im Rahmen von Forschungsprojekten die erhobenen Daten gesichert und öffentlich zugänglich gemacht werden. Darüber hinaus wird dargestellt, was alles unter dem Begriff Big Data subsumiert wird und welche Möglichkeiten und Grenzen für die Wissenschaft mit Big Data verbunden sind.
Pretrained Transformers for Text Ranking
THE GOAL OF TEXT RANKING IS TO GENERATE AN ORDERED LIST OF TEXTS RETRIEVED FROM A CORPUS IN RESPONSE TO A QUERY. ALTHOUGH THE MOST COMMON FORMULATION OF TEXT RANKING IS SEARCH, INSTANCES OF THE TASK CAN ALSO BE FOUND IN MANY NATURAL LANGUAGE PROCESSING (NLP) APPLICATIONS. This book provides an overview of text ranking with neural network architectures known as transformers, of which BERT (Bidirectional Encoder Representations from Transformers) is the best-known example. The combination of transformers and self-supervised pretraining has been responsible for a paradigm shift in NLP, information retrieval (IR), and beyond.This book provides a synthesis of existing work as a single point of entry for practitioners who wish to gain a better understanding of how to apply transformers to text ranking problems and researchers who wish to pursue work in this area. It covers a wide range of modern techniques, grouped into two high-level categories: transformer models that perform reranking in multi-stage architectures and dense retrieval techniques that perform ranking directly. Two themes pervade the book: techniques for handling long documents, beyond typical sentence-by-sentence processing in NLP, and techniques for addressing the tradeoff between effectiveness (i.e., result quality) and efficiency (e.g., query latency, model and index size). Although transformer architectures and pretraining techniques are recent innovations, many aspects of how they are applied to text ranking are relatively well understood and represent mature techniques. However, there remain many open research questions, and thus in addition to laying out the foundations of pretrained transformers for text ranking, this book also attempts to prognosticate where the field is heading.* Preface* Acknowledgments* Introduction* Setting the Stage* Multi-Stage Architectures for Reranking* Refining Query and Document Representations* Learned Dense Representations for Ranking* Future Directions and Conclusions* Bibliography* Authors' Biographies
Navigating the Cybersecurity Career Path
LAND THE PERFECT CYBERSECURITY ROLE—AND MOVE UP THE LADDER—WITH THIS INSIGHTFUL RESOURCEFinding the right position in cybersecurity is challenging. Being successful in the profession takes a lot of work. And becoming a cybersecurity leader responsible for a security team is even more difficult.In Navigating the Cybersecurity Career Path, decorated Chief Information Security Officer Helen Patton delivers a practical and insightful discussion designed to assist aspiring cybersecurity professionals entering the industry and help those already in the industry advance their careers and lead their first security teams. In this book, readers will find:* Explanations of why and how the cybersecurity industry is unique and how to use this knowledge to succeed* Discussions of how to progress from an entry-level position in the industry to a position leading security teams and programs* Advice for every stage of the cybersecurity career arc* Instructions on how to move from single contributor to team leader, and how to build a security program from scratch* Guidance on how to apply the insights included in this book to the reader's own situation and where to look for personalized help* A unique perspective based on the personal experiences of a cybersecurity leader with an extensive security backgroundPerfect for aspiring and practicing cybersecurity professionals at any level of their career, Navigating the Cybersecurity Career Path is an essential, one-stop resource that includes everything readers need to know about thriving in the cybersecurity industry.HELEN E. PATTON has held several senior technical leadership positions in cybersecurity, including Advisory Chief Information Security Officer at Cisco, AVP and Chief Information Security Officer at the Ohio State University and Executive Director of IT Risk and Resiliency at JP Morgan Chase.Foreword: Navigating the Cybersecurity Career Path xvIntroduction xviiPART I ARRIVING IN SECURITY 1CHAPTER 1 HOW DO YOU BECOME A SECURITY PROFESSIONAL? 3Create Your Story 8So, You Want to Work in Security 13What’s Next? 16CHAPTER 2 WHY SECURITY? 19What Kind of People Do Security? 21What Is Your Why? 24What’s Next? 28CHAPTER 3 WHERE CAN I BEGIN? 29What Does It Mean to Be a Security Professional? 32How Can You Make Sense of It All? 35What’s Next? 39CHAPTER 4 WHAT TRAINING SHOULD I TAKE? 41For the Traditional Student 43For the Nontraditional Student 44For the Full-TimeNonsecurity Worker 45Other Things to Consider 46What’s Next? 51CHAPTER 5 WHAT SKILLS SHOULD I HAVE? 53The Entry Point —Technology 55Professional Skills 59What’s Next? 66CHAPTER 6 IS MY RÉSUMÉ OKAY? 67Linking the Résumé to the Job Posting 70Elements of a Résumé 71Digital Presence 77References 78Cover Letters 79What’s Next? 80CHAPTER 7 TRYING WITH LITTLE SUCCESS? 81Physical Location 85Your Company 85Get Specific 86Know Your Market 88Assess Your Efforts So Far 89But I’m Doing All Those Things! 91What’s Next? 92PART II THRIVING IN SECURITY 93CHAPTER 8 HOW DO I KEEP UP? 97Fitting It Into Your Schedule 99Ad Hoc and Planned Learning 102Take a Mini-Sabbatical 103Where Do I Find the Information? 103What’s Next? 105CHAPTER 9 How Can I Manage Security Stress? 107The Stress of Working in Security 109Managing Security Stress 113What’s Next? 118CHAPTER 10 HOW CAN I SUCCEED AS A MINORITY? 119Making Security Work for You 124What’s Next? 128CHAPTER 11 HOW CAN I PROGRESS? 129The Security Journey 131The Opportunist 132The Intentional Career Seeker 136How to Get Promoted 139What’s Next? 141CHAPTER 12 SHOULD I MANAGE PEOPLE? 143Leadership and Management 145Preparing for Your Next Role 150What’s Next? 152CHAPTER 13 HOW CAN I DEAL WITH IMPOSTOR SYNDROME? 153Fact-Check Your Inner Monologue 157Know Competence and Incompetence 158Know When to Ask for Help 159Keep Learning and Know When Enough Is Enough 160Keep Track of Your Successes 161What’s Next? 162CHAPTER 14 HOW CAN I KNOW IF IT’S TIME TO MOVE ON? 163Are You Happy Where You Are? 165Have You Done All You Wanted to Do? 166Have You Learned All You Wanted? 167What Are Your Long-Term Goals? 168Are You Being Pigeonholed? 169Do You Fit Into the Culture? 170Job Hopping 171Are the Other Options Better than Your Current Job? 172What’s Next? 173PART III LEADING SECURITY 175CHAPTER 15 WHERE DO I START? 179What’s on Fire? 180What Is Your Timeline to Act? 181Who Are Your Partners? 182Find the Strengths and Note the Weaknesses 183Draw the Business Risk Picture 184Do You Have a Mandate? 185What’s Next? 186CHAPTER 16 HOW DO I MANAGE SECURITY STRATEGICALLY? 187Consider Your Industry 190Know Your Business Priorities 191Be Pragmatic 193Address Stakeholder Pain Points 194Threats and Vulnerabilities 195Rinse and Repeat 197Putting It Together 198What’s Next? 200CHAPTER 17 HOW DO I BUILD A TEAM? 201It Is About the How 203Things to Consider 207Identify Important Things 209Identify Areas of Weakness 211Discontinuing a Function 212Building New Functions 213What’s Next? 215CHAPTER 18 HOW DO I WRITE A JOB POSTING? 217The Challenge of Job Postings 220What’s Next? 225CHAPTER 19 HOW DO I ENCOURAGE DIVERSITY? 227Start with Numbers 229Understand Your Cultural Issues 230Attracting Diverse Talent 232Writing the Job Description and Posting 234The Interviewing Process 235Retaining Diverse Talent 236Promotions and Career Development 237Leaving the Team 239What’s Next? 239CHAPTER 20 HOW DO I MANAGE UP? 241Who Are Senior Stakeholders? 242Help Them Understand Security 246When Things Go Wrong 250What’s Next? 251CHAPTER 21 HOW DO I FUND MY PROGRAM? 253Funding a Team 255Funding a Program 256The Big Ask 260What’s Next? 261Chapter 22 How Do I Talk About My Security Program? 263What Story Should I Tell? 264Telling Stories 271What’s Next? 273CHAPTER 23 WHAT IS MY LEGACY? 275Making an Impact on the Industry 277Making an Impact on Your Company 281What’s Next? 283Epilogue 285Appendix: Resources 287About the Author 291Acknowledgments 293Index 295
(ISC)2 SSCP Systems Security Certified Practitioner Official Practice Tests
SMARTER, FASTER PREP FOR THE SSCP EXAMThe (ISC)² SSCP Official Practice Tests, 2nd Edition is the only (ISC)²-endorsed set of practice questions for the Systems Security Certified Practitioner (SSCP). This book's first seven chapters cover each of the seven domains on the SSCP exam with sixty or more questions per domain, so you can focus your study efforts exactly where you need more review. When you feel well prepared, use the two complete practice exams from Sybex's online interactive learning environment as time trials to assess your readiness to take the exam.:Coverage of all exam objectives, including:* Security Operations and Administration* Access Controls* Risk Identification, Monitoring and Analysis* Incident Response and Recovery* Cryptography* Network and Communications Security* Systems and Application SecuritySSCP certification demonstrates you have the advanced technical skills and knowledge to implement, monitor and administer IT infrastructure using security best practices, policies and procedures. It's ideal for students pursuing cybersecurity degrees as well as those in the field looking to take their careers to the next level.MIKE CHAPPLE, PhD, CISSP, Security+, CISA, CySA+ is Teaching Professor of IT, Analytics and Operations at the University of Notre Dame. He is a leading expert on cybersecurity certification and runs CertMike.com. Mike is the author of more than 25 books including (ISC)2 CISSP Certified Information Systems Security Professional Official Study Guide, 7th, 8th, and 9th Editions.DAVID SEIDL, CISSP, GPEN, GCIH, CySA+, Pentest+ is the Vice President for Information Technology and CIO at Miami University of Ohio. During his IT career, he has served in a variety of technical and information security roles including serving as the Senior Director for Campus Technology Services at the University of Notre Dame and leading Notre Dame’s information security team as Notre Dame’s Director of Information Security. David has taught college courses on information security, and writes books on information security and cyberwarfare.Introduction xiChapter 1 Security Operations and Administration (Domain 1) 1Chapter 2 Access Controls (Domain 2) 21Chapter 3 Risk Identification, Monitoring, and Analysis (Domain 3) 37Chapter 4 Incident Response and Recovery (Domain 4) 61Chapter 5 Cryptography (Domain 5) 79Chapter 6 Network and Communications Security (Domain 6) 95Chapter 7 Systems and Application Security (Domain 7) 119Chapter 8 Practice Test 1 141Chapter 9 Practice Test 2 169Appendix Answers to Review Questions 197Chapter 1: Security Operations and Administration (Domain 1) 198Chapter 2: Access Controls (Domain 2) 204Chapter 3: Risk Identification, Monitoring, and Analysis (Domain 3) 212Chapter 4: Incident Response and Recovery (Domain 4) 221Chapter 5: Cryptography (Domain 5) 229Chapter 6: Network and Communications Security (Domain 6) 235Chapter 7: Systems and Application Security (Domain 7) 246Chapter 8: Practice Test 1 255Chapter 9: Practice Test 2 269Index 283
jQuery Recipes
jQuery is one of today’s most popular JavaScript web application development frameworks and libraries. _jQuery Recipes_ can get you started with jQuery quickly and easily, and it will serve as a valuable long-term reference.* The book begins with small initial problems that developers typically face while working with jQuery, and gradually goes deeper to explore more complex problems. * The solutions include illustrations and clear, concise explanations of the code. Using this book and jQuery, your web sites will be more dynamic and lively. Bintu Harwani is a computer programmer and web developer with several years of experience building content-driven web sites using a variety of web development technologies including PHP, Ruby, Rails, and more. JQUERY RECIPES1. jQuery Basics2. Traversing and Manipulating the DOM3. Arrays and Iteration4. Understanding the Event Model5. Implementing Animation6. Sliding and Visual Effects7. Understanding Accordion, Dialog, Slider, Date Picker & AutoComplete8. Ajax9. Working with Plugins10. Working with CSS11. Understanding Selectors and Traversing
Question Answering for the Curated Web
QUESTION ANSWERING (QA) SYSTEMS ON THE WEB TRY TO PROVIDE CRISP ANSWERS TO INFORMATION NEEDS POSED IN NATURAL LANGUAGE, REPLACING THE TRADITIONAL RANKED LIST OF DOCUMENTS. QA, posing a multitude of research challenges, has emerged as one of the most actively investigated topics in information retrieval, natural language processing, and the artificial intelligence communities today. The flip side of such diverse and active interest is that publications are highly fragmented across several venues in the above communities, making it very difficult for new entrants to the field to get a good overview of the topic.Through this book, we make an attempt towards mitigating the above problem by providing an overview of the state-of-the-art in question answering. We cover the twin paradigms of curated Web sources used in QA tasks ‒ trusted text collections like Wikipedia, and objective information distilled into large-scale knowledge bases. We discuss distinct methodologies that have been applied to solve the QA problem in both these paradigms, using instantiations of recent systems for illustration. We begin with an overview of the problem setup and evaluation, cover notable sub-topics like open-domain, multi-hop, and conversational QA in depth, and conclude with key insights and emerging topics. We believe that this resource is a valuable contribution towards a unified view on QA, helping graduate students and researchers planning to work on this topic in the near future.* Preface* Acknowledgments* Introduction* Setup* Getting Started with Simple Questions* Complex Question Answering* Conversational Question Answering* Part I: Summary and Insights* Setup* Reading Comprehension* Open-Domain Question Answering* Multi-Hop Question Answering* Conversational Question Answering* Part II: Summary and Insights* Open Directions* References* Authors' Biographies
Beginning jOOQ
Learn to use the jOOQ library to manage SQL database operations in Java and JVM applications. This book walks you through what JOOQ is, how to install and get started with it, and then gets you working with it.Practical examples and case studies demonstrate how jOOQ offers a more efficient and versatile alternative to Object-Relational Mapping frameworks like Hibernate and JPA, while providing a natural, native-SQL feeling for the developer. You'll see how to maximize the full potential of your SQL database with advanced query syntax and functions with this lightweight, SQL-friendly framework. Come see how you can use high performance approaches like reactive, data streaming and cloud-native programming to get data from SQL tables.Never write another incorrect SQL statement again and protect your application from SQL injection with the strong typing and inbuilt controls in jOOQ. Learn how to add jOOQ to your existing Hibernate, Spring Boot or Quarkus applications.When you’ve completed this book, you will be able to take the knowledge you’ve gained, along with the freely available source code, and directly apply them to your own work.WHAT YOU WILL LEARN* Comparing equivalent features between Hibernate, JPA and jOOQ* Unlock the power of your SQL database with high performing, flexible and typesafe SQL queries* Seamlessly work with many different SQL database vendors without changing your code* Effortlessly generate Java code based on the content of your database* Write reactive SQL database access code with R2DBC* Integrating jOOQ into popular frameworks and platforms like Hibernate, Spring boot and Quarkus tools like IDEs* Testing jOOQ-based code with modern integration testing frameworks like TestContainers and Docker* Learn how to safely handle data access code within frameworks like the Java Persistence API (JPA)WHO THIS BOOK IS FORIntermediate Java programmers new to jOOQ. Some prior experience with SQL may be helpful but not required.Tayo Koleoso is the Founder and CEO of LettuceWork.io, the platform dedicated to engineering culture. He created the Better Managed Development method for building and sustaining an effective product engineering culture. He's a lifelong learner, engineer, and engineering leader committed to building people and software in a healthy, sustainable, and effective ecosystem. Outside of tech, comedy is the only thing he consumes in large quantity. King of the Hill, Peep Show and 30 Rock are his comfort telly, I tell you what.He got his start in software engineering as a teenage database programmer with Oracle 8i. The jOOQ platform is therefore a natural fit and a return to his roots: his love affair with SQL.1. Welcome to jOOQ – Gives the reader a high-level overview of the jOOQ platform, the goals, features and a comparison with alternatives.• Database Operations in Java – the good parts• Database Operations in Java – the...not-good parts• You have got to be jOOQing• jOOQ Feature Tour2. Getting Started with jOOQ – Provides a crash course in core features of jOOQ• Setup jOOQ• CRUD with jOOQ◦ Lazy◦ Reactive• Transactions• Configuration• Exception Handling• Logging• Packaging and deployment◦ Maven◦ Gradle3. Working with jOOQ – This gives a guided tour of implementing specific features with jOOQ• Data Type Handling• Generating Artifacts• Advanced Database Manipulation◦ Batch Processing▪ Batch Loading▪ Batch Inserts• Advanced Query Syntax Support• SQL Joins• Database Functions• Stored Procedures4. jOOQ integrations - This shows the reader how jOOQ can be combined with specific tools, libraries and platforms• Java Persistence API• Hibernate• Spring Framework• Spring Data JPA5. Testing jOOQ – This will show the user how to execute unit and integration tests in jOOQ
Computer Vision in the Infrared Spectrum
HUMAN VISUAL PERCEPTION IS LIMITED TO THE VISUAL-OPTICAL SPECTRUM. MACHINE VISION IS NOT. Cameras sensitive to the different infrared spectra can enhance the abilities of autonomous systems and visually perceive the environment in a holistic way. Relevant scene content can be made visible especially in situations, where sensors of other modalities face issues like a visual-optical camera that needs a source of illumination. As a consequence, not only human mistakes can be avoided by increasing the level of automation, but also machine-induced errors can be reduced that, for example, could make a self-driving car crash into a pedestrian under difficult illumination conditions. Furthermore, multi-spectral sensor systems with infrared imagery as one modality are a rich source of information and can provably increase the robustness of many autonomous systems. Applications that can benefit from utilizing infrared imagery range from robotics to automotive and from biometrics to surveillance. In this book, we provide a brief yet concise introduction to the current state-of-the-art of computer vision and machine learning in the infrared spectrum. Based on various popular computer vision tasks such as image enhancement, object detection, or object tracking, we first motivate each task starting from established literature in the visual-optical spectrum. Then, we discuss the differences between processing images and videos in the visual-optical spectrum and the various infrared spectra. An overview of the current literature is provided together with an outlook for each task. Furthermore, available and annotated public datasets and common evaluation methods and metrics are presented. In a separate chapter, popular applications that can greatly benefit from the use of infrared imagery as a data source are presented and discussed. Among them are automatic target recognition, video surveillance, or biometrics including face recognition. Finally, we conclude with recommendations for well-fitting sensor setups and data processing algorithms for certain computer vision tasks. We address this book to prospective researchers and engineers new to the field but also to anyone who wants to get introduced to the challenges and the approaches of computer vision using infrared images or videos. Readers will be able to start their work directly after reading the book supported by a highly comprehensive backlog of recent and relevant literature as well as related infrared datasets including existing evaluation frameworks. Together with consistently decreasing costs for infrared cameras, new fields of application appear and make computer vision in the infrared spectrum a great opportunity to face nowadays scientific and engineering challenges.* Introduction* Cross-Spectral Image Processing* Detection, Classification, and Tracking* Applications* Summary and Outlook* Bibliography* Authors' Biographies
Econometrics and Data Science
Get up to speed on the application of machine learning approaches in macroeconomic research. This book brings together economics and data science.Author Tshepo Chris Nokeri begins by introducing you to covariance analysis, correlation analysis, cross-validation, hyperparameter optimization, regression analysis, and residual analysis. In addition, he presents an approach to contend with multi-collinearity. He then debunks a time series model recognized as the additive model. He reveals a technique for binarizing an economic feature to perform classification analysis using logistic regression. He brings in the Hidden Markov Model, used to discover hidden patterns and growth in the world economy. The author demonstrates unsupervised machine learning techniques such as principal component analysis and cluster analysis. Key deep learning concepts and ways of structuring artificial neural networks are explored along with training them and assessing their performance. The Monte Carlo simulation technique is applied to stimulate the purchasing power of money in an economy. Lastly, the Structural Equation Model (SEM) is considered to integrate correlation analysis, factor analysis, multivariate analysis, causal analysis, and path analysis.After reading this book, you should be able to recognize the connection between econometrics and data science. You will know how to apply a machine learning approach to modeling complex economic problems and others beyond this book. You will know how to circumvent and enhance model performance, together with the practical implications of a machine learning approach in econometrics, and you will be able to deal with pressing economic problems.WHAT YOU WILL LEARN* Examine complex, multivariate, linear-causal structures through the path and structural analysis technique, including non-linearity and hidden states* Be familiar with practical applications of machine learning and deep learning in econometrics* Understand theoretical framework and hypothesis development, and techniques for selecting appropriate models* Develop, test, validate, and improve key supervised (i.e., regression and classification) and unsupervised (i.e., dimension reduction and cluster analysis) machine learning models, alongside neural networks, Markov, and SEM models* Represent and interpret data and modelsWHO THIS BOOK IS FORBeginning and intermediate data scientists, economists, machine learning engineers, statisticians, and business executivesTSHEPO CHRIS NOKERI harnesses big data, advanced analytics, and artificial intelligence to foster innovation and optimize business performance. In his functional work, he has delivered complex solutions to companies in the mining, petroleum, and manufacturing industries. He initially completed a bachelor’s degree in information management. He then graduated with an honors degree in business science at the University of the Witwatersrand on a TATA Prestigious Scholarship and a Wits Postgraduate Merit Award. He was unanimously awarded the Oxford University Press Prize. He has authored two Apress books: Data Science Revealed: With Feature Engineering, Data Visualization, Pipeline Development, and Hyperparameter Tuning, and Implementing Machine Learning for Finance: A Systematic Approach to Predictive Risk and Performance Analysis for Investment Portfolios. Chapter 1 Introduction to Econometrics.- Chapter 2 Univariate Consumption Study Applying Regression.- Chapter 3 Multivariate Consumption Study Applying Regression.- Chapter 4 Forecasting Growth.- Chapter 5 Classifying Economic Data Applying Logistic Regression.- Chapter 6 Finding Hidden Patterns in World Economy and Growth.- Chapter 7 Clustering GNI Per Capita on a Continental Level.- Chapter 8 Solving Economic Problems Applying Artificial Neural Networks.- Chapter 9 Inflation Simulation.- Chapter 10 Economic Causal Analysis Applying Structural Equation Modelling.
PHP 8 Solutions
Make your websites more dynamic by adding a feedback form, creating a private area where members can upload images that are automatically resized, or storing all your content in a database. DAVID POWERS has updated his definitive book to incorporate the latest techniques and changes to PHP with the arrival of PHP 8. New features include named attributes, constructor property promotion, the stricter and more concise match expression, union types, and more.The problem is, you're not a programmer and the thought of writing code sends a chill up your spine. Or maybe you've dabbled a bit in PHP and MySQL, but you can't get past baby steps. If this describes you, then you've just found the right book. PHP powers four out of every five websites that use a server-side language. In combination with the MySQL database it’s ideal for creating dynamic websites. PHP and MySQL are free, easy to use, and provided by many web hosting companies in their standard packages. This book also covers MariaDB, a seamless replacement for MySQL that has been adopted on many web servers.Unfortunately, most PHP books either expect you to be an expert already or force you to go through endless exercises of little practical value. In contrast, this book gives you real value right away through a series of practical examples that you can incorporate directly into your sites, optimizing performance and adding functionality such as file uploading, email feedback forms, image galleries, content management systems, and much more. Each solution is created with not only functionality in mind, but also visual design.But this book doesn't just provide a collection of ready-made scripts: each PHP solution builds on what's gone before, teaching you the basics of PHP and database design quickly and painlessly. You’ll learn how to optimize your code using object-oriented programming (OOP) techniques. By the end of the book, you'll have the confidence to start writing your own scripts or—if you prefer to leave that task to others—to adapt existing scripts to your own requirements. Right from the start, you're shown how easy it is to protect your sites by adopting secure coding practices.WHAT YOU WILL LEARN* Design and build dynamic PHP-based web sites and applications * Get started right away through practical examples that you can reuse* Incorporate PHP 8 elements including named attributes, constructor property promotion, and union types* Understand the subtle, but important differences between switch and match* Work with the latest PHP 8 techniques, innovations, and best practicesWHO THIS BOOK IS FORReaders should ideally have some prior exposure to web development using PHP.DAVID POWERS is the author of more than 30 highly successful video training courses and books on PHP. He began his professional career as a radio and TV journalist for the BBC, spending a large part of it in Japan reporting on the rise and collapse of the bubble economy. His background of reporting on complex issues in plain, jargon-free language reveals itself in his writing about PHP and web development.David first became involved with web development in the early 1990s as Editor of BBC Japanese TV. With no marketing budget, he developed a bilingual web site to promote the channel. After leaving the BBC, he went on to develop a bilingual online database for an international consultancy, as well as teaching web development courses at two universities in the UK. In addition to writing and creating video training courses, he’s a Trustee of a charity in North London that provides educational facilities for retired people and those no longer in full-time employment.1. What is PHP 8?2. Getting Ready to Work with PHP3. How to Write PHP Scripts—The Basics4. PHP 8: A Quick Reference5. Lightening Your Workload with Includes6. Bringing Forms to Life7. Uploading Files8. Using PHP to Manage Files9. Arrays9. Generating Thumbnail Images10. Pages that Remember: Simple Login and Multipage Forms11. Getting Started with a Database12. Connecting to a Database with PHP and SQL13. Creating a Dynamic Photo Gallery14. Managing Content15. Formatting Text and Dates16. Pulling Data from Multiple Tables17. Managing Multiple Database Tables18. Authenticating Users with a Database
Beginning Hibernate 6
Get started with Hibernate, an open source Java persistence layer and gain a clear introduction to the current standard for object-relational persistence in Java. This updated edition includes the new Hibernate 6.0 framework which covers new configuration, new object relational mapping changes, and enhanced integration with the more general Spring, Boot and Quarkus and other Java frameworks.The book keeps its focus on Hibernate without wasting time on nonessential third-party tools, so you’ll be able to immediately start building transaction-based engines and applications. Experienced authors Joseph Ottinger with Dave Minter and Jeff Linwood provide more in-depth examples than any other book for Hibernate beginners. They present their material in a lively, example-based manner—not a dry, theoretical, hard-to-read fashion.WHAT YOU'LL LEARN* Build enterprise Java-based transaction-type applications that access complex data with Hibernate* Work with Hibernate 6 using a present-day build process* Integrate into the persistence life cycle* Search and query with the new version of Hibernate* Keep track of versioned data with Hibernate EnversWHO THIS BOOK IS FORProgrammers experienced in Java with databases (the traditional, or connected, approach), but new to open-source, lightweight Hibernate.JOSEPH B. OTTINGER is an expert software developer, coder and programmer. He has also served as technology evangelist GigaSpaces and a principle engineer at Red Hat. He was Editor in Chief of TheServerSide-dot-com. He is the author of Hibernate Recipes and Beginning Hibernate for Apress and has authored other books as well as articles.JEFF LINWOOD has been involved in software programming since he had a 286 in high school. He got caught up with the Internet when he got access to a UNIX shell account, and it has been downhill ever since. Jeff has published articles on several Jakarta Apache open source projects in Dr. Dobb's Journal, CNET's Builder.com, and JavaWorld. Jeff also co-authored Professional Struts Applications, Building Portals with the Java Portlet API, and Pro Hibernate 3. He was a technical reviewer for Enterprise Java Development on a Budget and Extreme Programming with Ant.DAVE MINTER has adored computers since he was small enough to play in the boxes they came in. He built his first PC from discarded, faulty, and obsolete components, and considers that to be the foundation of his career as an integration consultant. Dave is based in London, where he helps large and small companies build systems that "just work." He co-authored Building Portals with the Java Portlet API and Pro Hibernate 3.* An Introduction to Hibernate 5* Integrating and Configuring Hibernate * Building a Simple Application * The Persistence Life Cycle * An Overview of Mapping * Mapping with Annotations * JPA Integration and Lifecycle Events* Using the Session * Searches and Queries * Advanced Queries Using Criteria * Filtering the Results of Searches * Leaving the Relational Database Behind: NoSQL* Hibernate Envers* Using with Spring and Boot Frameworks* Using with Quarkus/Other Frameworks
Data Science Solutions with Python
Apply supervised and unsupervised learning to solve practical and real-world big data problems. This book teaches you how to engineer features, optimize hyperparameters, train and test models, develop pipelines, and automate the machine learning (ML) process.The book covers an in-memory, distributed cluster computing framework known as PySpark, machine learning framework platforms known as scikit-learn, PySpark MLlib, H2O, and XGBoost, and a deep learning (DL) framework known as Keras.The book starts off presenting supervised and unsupervised ML and DL models, and then it examines big data frameworks along with ML and DL frameworks. Author Tshepo Chris Nokeri considers a parametric model known as the Generalized Linear Model and a survival regression model known as the Cox Proportional Hazards model along with Accelerated Failure Time (AFT). Also presented is a binary classification model (logistic regression) and an ensemble model (Gradient Boosted Trees). The book introduces DL and an artificial neural network known as the Multilayer Perceptron (MLP) classifier. A way of performing cluster analysis using the K-Means model is covered. Dimension reduction techniques such as Principal Components Analysis and Linear Discriminant Analysis are explored. And automated machine learning is unpacked.This book is for intermediate-level data scientists and machine learning engineers who want to learn how to apply key big data frameworks and ML and DL frameworks. You will need prior knowledge of the basics of statistics, Python programming, probability theories, and predictive analytics.WHAT YOU WILL LEARN* Understand widespread supervised and unsupervised learning, including key dimension reduction techniques* Know the big data analytics layers such as data visualization, advanced statistics, predictive analytics, machine learning, and deep learning* Integrate big data frameworks with a hybrid of machine learning frameworks and deep learning frameworks* Design, build, test, and validate skilled machine models and deep learning models* Optimize model performance using data transformation, regularization, outlier remedying, hyperparameter optimization, and data split ratio alterationWHO THIS BOOK IS FORData scientists and machine learning engineers with basic knowledge and understanding of Python programming, probability theories, and predictive analyticsTSHEPO CHRIS NOKERI harnesses advanced analytics and artificial intelligence to foster innovation and optimize business performance. In his functional work, he has delivered complex solutions to companies in the mining, petroleum, and manufacturing industries. He initially completed a bachelor’s degree in information management. Afterward, he graduated with an Honours degree in business science at the University of the Witwatersrand on a TATA Prestigious Scholarship and a Wits Postgraduate Merit Award. They unanimously awarded him the Oxford University Press Prize.Chapter 1: Understanding Machine Learning and Deep Learning.- Chapter 2: Big Data Frameworks and ML and DL Frameworks.- Chapter 3: The Parametric Method – Linear Regression.- Chapter 4: Survival Regression Analysis.-Chapter 5:The Non-Parametric Method - Classification.- Chapter 6:Tree-based Modelling and Gradient Boosting.- Chapter 7: Artificial Neural Networks.- Chapter 8: Cluster Analysis using K-Means.- Chapter 9: Dimension Reduction – Principal Components Analysis.- Chapter 10: Automated Machine Learning.