1. The document discusses applying architectural patterns and principles like logging, validation, transactions, and exception handling to business logic code in .NET.
2. It shows an example of refactoring a method that rents a book to a customer to add logging, validate method parameters, retry transactions using a scope, and handle exceptions.
3. By applying these techniques, the business logic is made more robust, maintainable, and aligned with best practices for .NET development.
2011-06-27 - AOP - .NET User Group Rhein NeckarJohannes Hoppe
The document provides an introduction to aspect-oriented programming with .NET. It discusses various cross-cutting concerns like logging, exceptions, validation, and caching that can be addressed using aspect-oriented programming. It also demonstrates how aspects are used to modify the intermediate language (IL) code to inject cross-cutting behavior before, after, and around method calls. Various aspect oriented programming frameworks for .NET are also mentioned.
This document introduces aspect-oriented programming (AOP) and how it can be used to separate cross-cutting concerns from core business logic. It discusses how AOP frameworks like PostSharp allow aspects to modularize features like logging, transactions, and security. The document provides an example of how a rental booking method grows over time to include these concerns. It compares different AOP frameworks and concludes that PostSharp allows building aspects with strong robustness while minimizing code invasiveness.
Introduction to Aspect Oriented Programming in .NET with PostSharp by Zubair ...Zubair Ahmed
This document introduces aspect oriented programming (AOP) and PostSharp. It discusses how cross-cutting concerns like logging and exception handling can pollute code and reduce reusability. AOP aims to address this by encapsulating cross-cutting concerns into aspects. PostSharp is an AOP framework for .NET that uses static weaving to integrate aspects into code at build time. The document demonstrates using aspects in Visual Studio 2010 and provides learning resources on AOP and PostSharp.
This document discusses MongoDB Stitch, a backend service that allows developers to easily access MongoDB databases and integrate other services. Stitch handles tasks like authentication, authorization, data access rules, and orchestrating requests between services. It provides SDKs to access MongoDB and services from an application. Rules can be used to control access to MongoDB data based on user attributes. Functions allow running custom code to coordinate MongoDB and services. Stitch aims to provide a full backend that scales and integrates services with MongoDB.
How Signpost uses MongoDB for Tracking and Analyticsmattinsler
The document describes an analytics platform that tracks requests and events from web applications. It tracks every user interaction like form submissions and exceptions. Request and event data is written to MySQL and MongoDB for querying and analysis. Events are normalized and aggregated to calculate funnels, counts, sums and rankings over time. This data is used for customer support, UX analysis, and debugging.
This document provides code samples for building a Windows 10 app that searches for book information using a Daum API, displays search results, allows adding books to a SQLite database, and viewing the stored books. It includes steps for setting up the UI with SplitView, adding search/filter functionality, making network requests, parsing the XML response, binding data to controls, and implementing features like adaptive layouts, notifications and hardware button handling for different devices.
This document discusses data modeling strategies for optimizing performance in a large-scale business directory application. It describes modeling businesses as documents with embedded references to related entities like phone numbers, addresses, categories and tags. It also covers indexing to support common queries like finding businesses by location or category. The goal is to demonstrate an optimized data structure and queries for a real-time search and update of millions of business listings.
This document discusses data modeling strategies for optimizing performance in a large-scale business directory application. It describes modeling businesses as documents with embedded references to related entities like phone numbers, addresses, categories and tags. It also covers indexing to support common queries like finding businesses by location or category. The goal is to demonstrate an optimized data structure and queries for a real-time search and update of millions of business listings.
2011-06-27 - AOP - .NET User Group Rhein NeckarJohannes Hoppe
The document provides an introduction to aspect-oriented programming with .NET. It discusses various cross-cutting concerns like logging, exceptions, validation, and caching that can be addressed using aspect-oriented programming. It also demonstrates how aspects are used to modify the intermediate language (IL) code to inject cross-cutting behavior before, after, and around method calls. Various aspect oriented programming frameworks for .NET are also mentioned.
This document introduces aspect-oriented programming (AOP) and how it can be used to separate cross-cutting concerns from core business logic. It discusses how AOP frameworks like PostSharp allow aspects to modularize features like logging, transactions, and security. The document provides an example of how a rental booking method grows over time to include these concerns. It compares different AOP frameworks and concludes that PostSharp allows building aspects with strong robustness while minimizing code invasiveness.
Introduction to Aspect Oriented Programming in .NET with PostSharp by Zubair ...Zubair Ahmed
This document introduces aspect oriented programming (AOP) and PostSharp. It discusses how cross-cutting concerns like logging and exception handling can pollute code and reduce reusability. AOP aims to address this by encapsulating cross-cutting concerns into aspects. PostSharp is an AOP framework for .NET that uses static weaving to integrate aspects into code at build time. The document demonstrates using aspects in Visual Studio 2010 and provides learning resources on AOP and PostSharp.
This document discusses MongoDB Stitch, a backend service that allows developers to easily access MongoDB databases and integrate other services. Stitch handles tasks like authentication, authorization, data access rules, and orchestrating requests between services. It provides SDKs to access MongoDB and services from an application. Rules can be used to control access to MongoDB data based on user attributes. Functions allow running custom code to coordinate MongoDB and services. Stitch aims to provide a full backend that scales and integrates services with MongoDB.
How Signpost uses MongoDB for Tracking and Analyticsmattinsler
The document describes an analytics platform that tracks requests and events from web applications. It tracks every user interaction like form submissions and exceptions. Request and event data is written to MySQL and MongoDB for querying and analysis. Events are normalized and aggregated to calculate funnels, counts, sums and rankings over time. This data is used for customer support, UX analysis, and debugging.
This document provides code samples for building a Windows 10 app that searches for book information using a Daum API, displays search results, allows adding books to a SQLite database, and viewing the stored books. It includes steps for setting up the UI with SplitView, adding search/filter functionality, making network requests, parsing the XML response, binding data to controls, and implementing features like adaptive layouts, notifications and hardware button handling for different devices.
This document discusses data modeling strategies for optimizing performance in a large-scale business directory application. It describes modeling businesses as documents with embedded references to related entities like phone numbers, addresses, categories and tags. It also covers indexing to support common queries like finding businesses by location or category. The goal is to demonstrate an optimized data structure and queries for a real-time search and update of millions of business listings.
This document discusses data modeling strategies for optimizing performance in a large-scale business directory application. It describes modeling businesses as documents with embedded references to related entities like phone numbers, addresses, categories and tags. It also covers indexing to support common queries like finding businesses by location or category. The goal is to demonstrate an optimized data structure and queries for a real-time search and update of millions of business listings.
Quality matters. That’s why we write software tests. They give us confidence to release complex business applications. In a schema-free world they are going to be our escape rope! This talk introduces some Unit Testing principles and separates them from Integration Tests. We will see how other databases solve common problems and how we can archive the same with MongoDB. Of course, you can expect some Test Driven Development (TDD).
Zwei neue Technologien für die Cloud sind das JavaScript-Framework Node.js und die NoSQL-Datenbank MongoDB. Johannes Hoppe gibt einen Schnellstart in die beiden Open-Source-Systeme.
La reproducción humana es el proceso por el cual los seres humanos se reproducen y continúan su especie. Involucra el sistema reproductor masculino y femenino, incluyendo los órganos sexuales y las hormonas. El proceso culmina con el embarazo si ocurre la fecundación del óvulo por el espermatozoide.
Modelling Natural Ventilation in IES-VE: Case studies & Research OutlookIES VE
Daniel Coakley of IES spoke on the topic of “Modelling Natural ventilation in the IESVE: Case studies & Research Outlook” at a half day seminar on 20th April 2016, organised by Cork Institute of Technology (CIT), for researchers, designers, engineers & architects.
Tras la caída del Imperio Romano de Occidente en el siglo V, varios reinos germánicos se establecieron en su territorio, como los francos, visigodos y ostrogodos. El Imperio Romano de Oriente, conocido como Imperio Bizantino, sobrevivió hasta 1453 con su capital en Constantinopla. Mientras tanto, surgió el Islam en el siglo VII en la península arábiga bajo el profeta Mahoma y se expandió rápidamente, estableciendo un gran imperio islámico.
Este documento compara y contrasta el Síndrome de Fatiga Crónica y la Fibromialgia. Ambas condiciones comparten similitudes como una etiología desconocida, diagnóstico clínico sin pruebas definitivas y la presencia de fatiga y dolor. Aunque se consideran distintas, existe una superposición significativa de síntomas y estudios muestran que una proporción de pacientes cumplen criterios para ambas condiciones.
Mit HTML5 & JavaScript lassen sich Browser-Games kreieren, die vormals nur mit proprietären Plugins möglich waren. Dazu zählen hardwarebeschleunigte 3D-Grafiken, welche über den WebGL-Standard unterstützt werden. Johannes Hoppe stellt die Tools und Technologien vor, die für die Erstellung von „SolarTournament" verwendet wurden. Allen Teilnehmern wird der Source-Code dieses Multiplayer 3D Action-Shooters sowie eine Auswahl der Arbeitsdateien zur Verfügung gestellt.
This document provides an overview of MongoDB and examples of CRUD operations. It discusses setting up a MongoDB directory and starting the server and shell. It then demonstrates creating, reading, updating, and deleting documents. Examples show inserting single documents and bulk inserting 1000 documents with random scores. Queries are demonstrated using find() with filters. Updates are shown using update() with $set and $push operators. Hands-on exercises are provided to practice CRUD operations on sample datasets.
Letztes Wochenende waren Danny Koppenhagen, Ferdinand Malcher, Gregor Woiwode und ich Teilnehmer des Developer Open Space 2015.
Per Live-Coding mit Pair-Programming haben Gregor und ich einen Schnellstart in das neue Framework gegeben: TypeScript, Komponenten, Dekoratoren, Bindings, Events, Formularverarbeitung und Datenfluss in einer NG2-App. In 45 Minuten stand die erste Single-Page-App. Im Anschluss an die tolle Session möchte ich hier noch einmal alle Infos zusammen tragen.
Die didaktisch aufgebauten Folien findest du hier auf Slideshare, Links, Downloads und das Video findest du auf http://blog.johanneshoppe.de/2015/10/angular2-einfuehrung-schnellstart/.
MDC kompakt 2014: Hybride Apps mit Cordova, AngularJS und IonicJohannes Hoppe
Sehen Sie sich das Video an: http://haushoppe-its.de/videos/mdc-kompakt-2014-hybride-apps-mit-cordova-angularjs-und-ionic/
Dieser Vortrag wurde am 18.11.2014 bei der "MDC - Mobile Developer Conference kompakt 2014" aufgenommen.
Dank Apache Cordova ist es möglich, Ihr bestehendes Wissen zu HTML5, JavaScript und CSS3 auf mobile Apps anzuwenden. Nutzen Sie AngularJS von Google, um Techniken wie MVC und Data Binding in den Browser zu bringen. Erfahren Sie in diesem Vortrag, wie Sie mit dem jüngsten Spross, dem Ionic Framework, ansprechende Oberflächen für iOS, Android und Windows Phone gestalten können. Statt PowerPoint erwartet Sie viel Live Coding. Johannes Hoppe wird zusammen mit Ihnen eine erste hybride Anwendung entwickeln.
The document discusses trends in data, networking, and individualization. It then covers topics around scaling databases including scale-up (vertical scaling) and scale-out (horizontal scaling). It notes that NoSQL databases do not use a relational data model or SQL, instead supporting distributed and horizontal scalability with loose or no schema restrictions and different consistency models. Requirements for distributed systems like consistency, availability, and partition tolerance are discussed in relation to Brewer's CAP theorem from 2000.
Der Map-Reduce Algorithmus begegnet uns bei vielen NoSQL Datenbanken. Wann immer große Datenmengen aggregiert werden, ist er das Mittel der Wahl. In einem Crashkurs wird die Theorie erläutert und gezeigt, wie in Dokumenten bei MongoDB, RavenDB und Hadoop gesucht wird. Mithilfe des MapReduce Modells von Hadoop werden Probleme wie das Durchzählen von Daten, Logfile-Analysen und Graphenanalysen demonstriert. Als Programmiersprache wird C# eingesetzt.
Sie kennen die bekannten Angriffsvektoren wie SQL-Injections oder XSS. Ihre Anwendung ist sicher. Ist Sie das wirklich? Auch wenn Sie in Ihrer Webanwendung kein HTML5 einsetzen, die Browser sind bereit! Kennen Sie alle neuen Markups? Haben Sie bereits die Potentiale von Cross Origin Requests, WebSockets oder Local Storage auf dem Radar? Lernen Sie neue Gefahrenpotentiale kennen, die durch die Unterstützung von HTML5 und dessen APIs entstanden sind. - See more at: http://www.developer-week.de/Programm/Veranstaltung/(event)/11133#sthash.ZRPweawl.dpuf
2013-06-24 - Software Craftsmanship with JavaScriptJohannes Hoppe
This document discusses principles of software craftsmanship including:
- Common JavaScript pitfalls like implied globals, trailing commas, and return undefined
- Best practices like avoiding globals, using module patterns for organization, and test-driven development
- Tools for JavaScript development like Jasmine for testing, RequireJS for module loading, and Visual Studio for debugging
- The process of test-driven development including writing tests, making them fail, making them pass, refactoring code, and repeating
2013-06-15 - Software Craftsmanship mit JavaScriptJohannes Hoppe
Entwickeln Sie Clean Code mit JavaScript. Den “Software Craftsman” zeichnen dabei Wissen, Werkzeuge und Wiederholung aus. Diese drei Grundfeste werden speziell für JavaScript beleuchtet. Lernen Sie die wichtigsten Patterns für eine stabile und wartbare Website kennen. Überprüfen Sie Ihre persönliche Werkzeugkiste für Entwicklung, Testing und Deployment. Schließen Sie Bekanntschaft mit Code Katas für JavaScript.
INTERAKTIVE SLIDES:
http://johanneshoppe.github.com/HTML5Security/
Sie kennen die bekannten Angriffsvektoren wie SQL-Injections oder XSS. Ihre Anwendung ist sicher. Ist Sie das wirklich? Auch wenn Sie in Ihrer Webanwendung kein HTML5 einsetzen, die Browser sind bereit! Kennen Sie alle neuen Markups? Haben Sie bereits die Potentiale von Cross Origin Requests, WebSockets oder Local Storage auf dem Radar? Lernen Sie neue Gefahrenpotentiale kennen, die durch die Unterstützung von HTML5 und dessen APIs entstanden sind.
This document discusses different data modeling techniques for MongoDB including embedding documents, linking documents by ID, and handling many-to-many relationships. It provides code examples of saving documents, querying, and updating in MongoDB. It also briefly covers software testing strategies for MongoDB applications.
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best PracticesJohannes Hoppe
The document provides JavaScript best practices focusing on code quality, avoiding antipatterns like implied globals and eval, and recommendations for style like indentation and naming conventions. It also discusses testing with Jasmine including writing tests, making them pass, refactoring code, and repeating the test-driven development process. Modular code organization techniques like revealing module pattern and event publishing are also covered.
Quality matters. That’s why we write software tests. They give us confidence to release complex business applications. In a schema-free world they are going to be our escape rope! This talk introduces some Unit Testing principles and separates them from Integration Tests. We will see how other databases solve common problems and how we can archive the same with MongoDB. Of course, you can expect some Test Driven Development (TDD).
Zwei neue Technologien für die Cloud sind das JavaScript-Framework Node.js und die NoSQL-Datenbank MongoDB. Johannes Hoppe gibt einen Schnellstart in die beiden Open-Source-Systeme.
La reproducción humana es el proceso por el cual los seres humanos se reproducen y continúan su especie. Involucra el sistema reproductor masculino y femenino, incluyendo los órganos sexuales y las hormonas. El proceso culmina con el embarazo si ocurre la fecundación del óvulo por el espermatozoide.
Modelling Natural Ventilation in IES-VE: Case studies & Research OutlookIES VE
Daniel Coakley of IES spoke on the topic of “Modelling Natural ventilation in the IESVE: Case studies & Research Outlook” at a half day seminar on 20th April 2016, organised by Cork Institute of Technology (CIT), for researchers, designers, engineers & architects.
Tras la caída del Imperio Romano de Occidente en el siglo V, varios reinos germánicos se establecieron en su territorio, como los francos, visigodos y ostrogodos. El Imperio Romano de Oriente, conocido como Imperio Bizantino, sobrevivió hasta 1453 con su capital en Constantinopla. Mientras tanto, surgió el Islam en el siglo VII en la península arábiga bajo el profeta Mahoma y se expandió rápidamente, estableciendo un gran imperio islámico.
Este documento compara y contrasta el Síndrome de Fatiga Crónica y la Fibromialgia. Ambas condiciones comparten similitudes como una etiología desconocida, diagnóstico clínico sin pruebas definitivas y la presencia de fatiga y dolor. Aunque se consideran distintas, existe una superposición significativa de síntomas y estudios muestran que una proporción de pacientes cumplen criterios para ambas condiciones.
Mit HTML5 & JavaScript lassen sich Browser-Games kreieren, die vormals nur mit proprietären Plugins möglich waren. Dazu zählen hardwarebeschleunigte 3D-Grafiken, welche über den WebGL-Standard unterstützt werden. Johannes Hoppe stellt die Tools und Technologien vor, die für die Erstellung von „SolarTournament" verwendet wurden. Allen Teilnehmern wird der Source-Code dieses Multiplayer 3D Action-Shooters sowie eine Auswahl der Arbeitsdateien zur Verfügung gestellt.
This document provides an overview of MongoDB and examples of CRUD operations. It discusses setting up a MongoDB directory and starting the server and shell. It then demonstrates creating, reading, updating, and deleting documents. Examples show inserting single documents and bulk inserting 1000 documents with random scores. Queries are demonstrated using find() with filters. Updates are shown using update() with $set and $push operators. Hands-on exercises are provided to practice CRUD operations on sample datasets.
Letztes Wochenende waren Danny Koppenhagen, Ferdinand Malcher, Gregor Woiwode und ich Teilnehmer des Developer Open Space 2015.
Per Live-Coding mit Pair-Programming haben Gregor und ich einen Schnellstart in das neue Framework gegeben: TypeScript, Komponenten, Dekoratoren, Bindings, Events, Formularverarbeitung und Datenfluss in einer NG2-App. In 45 Minuten stand die erste Single-Page-App. Im Anschluss an die tolle Session möchte ich hier noch einmal alle Infos zusammen tragen.
Die didaktisch aufgebauten Folien findest du hier auf Slideshare, Links, Downloads und das Video findest du auf http://blog.johanneshoppe.de/2015/10/angular2-einfuehrung-schnellstart/.
MDC kompakt 2014: Hybride Apps mit Cordova, AngularJS und IonicJohannes Hoppe
Sehen Sie sich das Video an: http://haushoppe-its.de/videos/mdc-kompakt-2014-hybride-apps-mit-cordova-angularjs-und-ionic/
Dieser Vortrag wurde am 18.11.2014 bei der "MDC - Mobile Developer Conference kompakt 2014" aufgenommen.
Dank Apache Cordova ist es möglich, Ihr bestehendes Wissen zu HTML5, JavaScript und CSS3 auf mobile Apps anzuwenden. Nutzen Sie AngularJS von Google, um Techniken wie MVC und Data Binding in den Browser zu bringen. Erfahren Sie in diesem Vortrag, wie Sie mit dem jüngsten Spross, dem Ionic Framework, ansprechende Oberflächen für iOS, Android und Windows Phone gestalten können. Statt PowerPoint erwartet Sie viel Live Coding. Johannes Hoppe wird zusammen mit Ihnen eine erste hybride Anwendung entwickeln.
The document discusses trends in data, networking, and individualization. It then covers topics around scaling databases including scale-up (vertical scaling) and scale-out (horizontal scaling). It notes that NoSQL databases do not use a relational data model or SQL, instead supporting distributed and horizontal scalability with loose or no schema restrictions and different consistency models. Requirements for distributed systems like consistency, availability, and partition tolerance are discussed in relation to Brewer's CAP theorem from 2000.
Der Map-Reduce Algorithmus begegnet uns bei vielen NoSQL Datenbanken. Wann immer große Datenmengen aggregiert werden, ist er das Mittel der Wahl. In einem Crashkurs wird die Theorie erläutert und gezeigt, wie in Dokumenten bei MongoDB, RavenDB und Hadoop gesucht wird. Mithilfe des MapReduce Modells von Hadoop werden Probleme wie das Durchzählen von Daten, Logfile-Analysen und Graphenanalysen demonstriert. Als Programmiersprache wird C# eingesetzt.
Sie kennen die bekannten Angriffsvektoren wie SQL-Injections oder XSS. Ihre Anwendung ist sicher. Ist Sie das wirklich? Auch wenn Sie in Ihrer Webanwendung kein HTML5 einsetzen, die Browser sind bereit! Kennen Sie alle neuen Markups? Haben Sie bereits die Potentiale von Cross Origin Requests, WebSockets oder Local Storage auf dem Radar? Lernen Sie neue Gefahrenpotentiale kennen, die durch die Unterstützung von HTML5 und dessen APIs entstanden sind. - See more at: http://www.developer-week.de/Programm/Veranstaltung/(event)/11133#sthash.ZRPweawl.dpuf
2013-06-24 - Software Craftsmanship with JavaScriptJohannes Hoppe
This document discusses principles of software craftsmanship including:
- Common JavaScript pitfalls like implied globals, trailing commas, and return undefined
- Best practices like avoiding globals, using module patterns for organization, and test-driven development
- Tools for JavaScript development like Jasmine for testing, RequireJS for module loading, and Visual Studio for debugging
- The process of test-driven development including writing tests, making them fail, making them pass, refactoring code, and repeating
2013-06-15 - Software Craftsmanship mit JavaScriptJohannes Hoppe
Entwickeln Sie Clean Code mit JavaScript. Den “Software Craftsman” zeichnen dabei Wissen, Werkzeuge und Wiederholung aus. Diese drei Grundfeste werden speziell für JavaScript beleuchtet. Lernen Sie die wichtigsten Patterns für eine stabile und wartbare Website kennen. Überprüfen Sie Ihre persönliche Werkzeugkiste für Entwicklung, Testing und Deployment. Schließen Sie Bekanntschaft mit Code Katas für JavaScript.
INTERAKTIVE SLIDES:
http://johanneshoppe.github.com/HTML5Security/
Sie kennen die bekannten Angriffsvektoren wie SQL-Injections oder XSS. Ihre Anwendung ist sicher. Ist Sie das wirklich? Auch wenn Sie in Ihrer Webanwendung kein HTML5 einsetzen, die Browser sind bereit! Kennen Sie alle neuen Markups? Haben Sie bereits die Potentiale von Cross Origin Requests, WebSockets oder Local Storage auf dem Radar? Lernen Sie neue Gefahrenpotentiale kennen, die durch die Unterstützung von HTML5 und dessen APIs entstanden sind.
This document discusses different data modeling techniques for MongoDB including embedding documents, linking documents by ID, and handling many-to-many relationships. It provides code examples of saving documents, querying, and updating in MongoDB. It also briefly covers software testing strategies for MongoDB applications.
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best PracticesJohannes Hoppe
The document provides JavaScript best practices focusing on code quality, avoiding antipatterns like implied globals and eval, and recommendations for style like indentation and naming conventions. It also discusses testing with Jasmine including writing tests, making them pass, refactoring code, and repeating the test-driven development process. Modular code organization techniques like revealing module pattern and event publishing are also covered.
2012-05-14 NoSQL in .NET - mit Redis und MongoDBJohannes Hoppe
1: Vortrag: NoSQL in .NET – mit Redis und MongoDB
Der Vortrag führt in die Theorie ein, stellt die beiden NoSQL-Datenbanksysteme Redis und MongoDB näher vor und gibt Praxisbeispiele. Ich präsentiere die beiden Systeme live an einem ASP.NET MVC Beispielprojekt, welches allen Teilnehmern zur Verfügung gestellt wird.
2. Vortrag: NoSQL – Dokumente und Relationen
Eine dokumentenbasierte NoSQL-Datenbank wie MongoDB hat nicht nur eine andere API zur Abfrage der Daten. Die tiefergehende Neuerung ist eine grundlegende andere Art die Daten abzuspeichern. Der Vortrag konzentriert sich auf Schema-Design, das Map-Reduce Verfahren und bekannten Patterns für Dokumenten-basierte Datenbanken.
2012-03-20 - Getting started with Node.js and MongoDB on MS AzureJohannes Hoppe
This talk concentrates on Microsoft's cloud platform, called Azure. Johannes gives an introduction to the new platform and speaks about its possibilities and limitations. By utilizing the Windows Azure SDK for Node.js he is going to demonstrate a simple JavaScript-driven browser game that bases on Node.js and MongoDB.
This document discusses NoSQL databases and provides an overview of MongoDB and RavenDB. It begins with trends driving the adoption of NoSQL databases like increasing data sizes, more connectedness, and individualization. It then covers concepts like horizontal scaling, schema flexibility, and CAP theorem. Specific sections provide information on MongoDB's BSON format, CRUD operations, and MapReduce. For RavenDB, it discusses the developer, deployment, indexing, and HTTP API. It concludes with questions about table to document mapping and key/index strategies.
DMDW 8. Student Presentation - Groovy to MongoDBJohannes Hoppe
The document outlines an ETL project to extract data from an Excel room-plan file, transform it into a new structure and data types, and load it into a database. It discusses exporting the CSV file from Excel and issues with encoding and delimiter. It then describes using a Groovy script to parse the file and handle inconsistent data. Finally, it notes putting the objects into the database and addressing problems around data conversion and structure.
DMDW 5. Student Presentation - Pentaho Data Integration (Kettle)Johannes Hoppe
This document discusses data warehousing and data mining. It describes a typical data warehouse architecture including data consolidation, security, modeling, and querying requirements. It outlines the extract, transform, load (ETL) process for moving raw data into the warehouse. Specific tools used are MySQL, MySQL Workbench, and Pentaho Data Integration. The steps taken include verifying source Excel data, preparing the database structure in MySQL, and performing the extract, transform, and load of data using Pentaho.
Digital Marketing Trends in 2024 | Guide for Staying AheadWask
https://www.wask.co/ebooks/digital-marketing-trends-in-2024
Feeling lost in the digital marketing whirlwind of 2024? Technology is changing, consumer habits are evolving, and staying ahead of the curve feels like a never-ending pursuit. This e-book is your compass. Dive into actionable insights to handle the complexities of modern marketing. From hyper-personalization to the power of user-generated content, learn how to build long-term relationships with your audience and unlock the secrets to success in the ever-shifting digital landscape.
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...Jason Yip
The typical problem in product engineering is not bad strategy, so much as “no strategy”. This leads to confusion, lack of motivation, and incoherent action. The next time you look for a strategy and find an empty space, instead of waiting for it to be filled, I will show you how to fill it in yourself. If you’re wrong, it forces a correction. If you’re right, it helps create focus. I’ll share how I’ve approached this in the past, both what works and lessons for what didn’t work so well.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/temporal-event-neural-networks-a-more-efficient-alternative-to-the-transformer-a-presentation-from-brainchip/
Chris Jones, Director of Product Management at BrainChip , presents the “Temporal Event Neural Networks: A More Efficient Alternative to the Transformer” tutorial at the May 2024 Embedded Vision Summit.
The expansion of AI services necessitates enhanced computational capabilities on edge devices. Temporal Event Neural Networks (TENNs), developed by BrainChip, represent a novel and highly efficient state-space network. TENNs demonstrate exceptional proficiency in handling multi-dimensional streaming data, facilitating advancements in object detection, action recognition, speech enhancement and language model/sequence generation. Through the utilization of polynomial-based continuous convolutions, TENNs streamline models, expedite training processes and significantly diminish memory requirements, achieving notable reductions of up to 50x in parameters and 5,000x in energy consumption compared to prevailing methodologies like transformers.
Integration with BrainChip’s Akida neuromorphic hardware IP further enhances TENNs’ capabilities, enabling the realization of highly capable, portable and passively cooled edge devices. This presentation delves into the technical innovations underlying TENNs, presents real-world benchmarks, and elucidates how this cutting-edge approach is positioned to revolutionize edge AI across diverse applications.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
In the realm of cybersecurity, offensive security practices act as a critical shield. By simulating real-world attacks in a controlled environment, these techniques expose vulnerabilities before malicious actors can exploit them. This proactive approach allows manufacturers to identify and fix weaknesses, significantly enhancing system security.
This presentation delves into the development of a system designed to mimic Galileo's Open Service signal using software-defined radio (SDR) technology. We'll begin with a foundational overview of both Global Navigation Satellite Systems (GNSS) and the intricacies of digital signal processing.
The presentation culminates in a live demonstration. We'll showcase the manipulation of Galileo's Open Service pilot signal, simulating an attack on various software and hardware systems. This practical demonstration serves to highlight the potential consequences of unaddressed vulnerabilities, emphasizing the importance of offensive security practices in safeguarding critical infrastructure.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframePrecisely
Inconsistent user experience and siloed data, high costs, and changing customer expectations – Citizens Bank was experiencing these challenges while it was attempting to deliver a superior digital banking experience for its clients. Its core banking applications run on the mainframe and Citizens was using legacy utilities to get the critical mainframe data to feed customer-facing channels, like call centers, web, and mobile. Ultimately, this led to higher operating costs (MIPS), delayed response times, and longer time to market.
Ever-changing customer expectations demand more modern digital experiences, and the bank needed to find a solution that could provide real-time data to its customer channels with low latency and operating costs. Join this session to learn how Citizens is leveraging Precisely to replicate mainframe data to its customer channels and deliver on their “modern digital bank” experiences.
The Microsoft 365 Migration Tutorial For Beginner.pptxoperationspcvita
This presentation will help you understand the power of Microsoft 365. However, we have mentioned every productivity app included in Office 365. Additionally, we have suggested the migration situation related to Office 365 and how we can help you.
You can also read: https://www.systoolsgroup.com/updates/office-365-tenant-to-tenant-migration-step-by-step-complete-guide/
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3Data Hops
Free A4 downloadable and printable Cyber Security, Social Engineering Safety and security Training Posters . Promote security awareness in the home or workplace. Lock them Out From training providers datahops.com
5. Business Code
public class CustomerProcesses
{
public void RentBook( int bookId, int customerId )
{
Book book = Book.GetById( bookId );
Customer customer = Customer.GetById( customerId );
book.RentedTo = customer;
customer.AccountLines.Add(
string.Format( "Rental of book {0}.", book ), book.RentalPrice
);
customer.Balance -= book.RentalPrice;
}
}
8. Business Code
public class CustomerProcesses
{
public void RentBook( int bookId, int customerId )
{
Book book = Book.GetById( bookId );
Customer customer = Customer.GetById( customerId );
book.RentedTo = customer;
customer.AccountLines.Add(
string.Format( "Rental of book {0}.", book ), book.RentalPrice
);
customer.Balance -= book.RentalPrice;
}
}
9. Business Code
+ Logging
internal class CustomerProcesses
{
private static readonly TraceSource trace =
new TraceSource( typeof (CustomerProcesses).FullName );
public void RentBook( int bookId, int customerId )
{
trace.TraceInformation(
"Entering CustomerProcesses.CreateCustomer( bookId = {0},
customerId = {1} )",
bookId, customerId );
try
{
Book book = Book.GetById( bookId );
Customer customer = Customer.GetById( customerId );
book.RentedTo = customer;
customer.AccountLines.Add(
string.Format( "Rental of book {0}.", book ), book.RentalPrice );
customer.Balance -= book.RentalPrice;
trace.TraceInformation(
"Leaving CustomerProcesses.CreateCustomer( bookId = {0}, customerId = {1} )",
bookId, customerId );
}
catch ( Exception e )
{
trace.TraceEvent( TraceEventType.Error, 0,
"Exception: CustomerProcesses.CreateCustomer(
bookId = {0}, customerId = {1} ) failed : {2}",
bookId, customerId, e.Message );
throw;
}
}
}
10. Business Code
+ Logging
internal class CustomerProcesses
+ Vorbedingungen {
private static readonly TraceSource trace =
new TraceSource(typeof(CustomerProcesses).FullName);
public void RentBook(int bookId, int customerId)
{
if (bookId <= 0) throw new ArgumentOutOfRangeException("bookId");
if (customerId <= 0) throw new ArgumentOutOfRangeException("customerId");
trace.TraceInformation(
"Entering CustomerProcesses.CreateCustomer( bookId = {0}, customerId = {1} )",
bookId, customerId);
try
{
Book book = Book.GetById(bookId);
Customer customer = Customer.GetById(customerId);
book.RentedTo = customer;
customer.AccountLines.Add(string.Format("Rental of book {0}.", book),
book.RentalPrice);
customer.Balance -= book.RentalPrice;
trace.TraceInformation(
"Leaving CustomerProcesses.CreateCustomer( bookId = {0},
customerId = {1} )“, bookId, customerId);
}
catch (Exception e)
{
trace.TraceEvent(TraceEventType.Error, 0,
"Exception: CustomerProcesses.CreateCustomer( bookId = {0},
customerId = {1} ) failed : {2}",
bookId, customerId, e.Message);
throw;
}
}
}
11. Business Code
+ Logging + Transaktionen
+ Vorbedingungen
internal class CustomerProcesses ts.Complete();
{ }
private static readonly TraceSource trace =
new TraceSource(typeof(CustomerProcesses).FullName); break;
}
public void RentBook(int bookId, int customerId) catch (TransactionConflictException)
{ {
if (bookId <= 0) if (i < 3)
throw new ArgumentOutOfRangeException("bookId"); continue;
if (customerId <= 0) else
throw new ArgumentOutOfRangeException("customerId"); throw;
}
trace.TraceInformation( }
"Entering CustomerProcesses.CreateCustomer( bookId = {0},
customerId = {1} )“, bookId, customerId); trace.TraceInformation(
"Leaving CustomerProcesses.CreateCustomer(
try bookId = {0}, customerId = {1} )",
{ bookId, customerId);
for (int i = 0; ; i++) }
{ catch (Exception e)
try {
{ trace.TraceEvent(TraceEventType.Error, 0,
using (var ts = new TransactionScope()) "Exception: CustomerProcesses.CreateCustomer( bookId = {0},
{ customerId = {1} ) failed : {2}",
Book book = Book.GetById(bookId); bookId, customerId, e.Message);
Customer customer = throw;
Customer.GetById(customerId); }
}
book.RentedTo = customer;
customer.AccountLines.Add( }
string.Format("Rental of book {0}.", book),
book.RentalPrice);
customer.Balance -= book.RentalPrice;
12. Business Code
+ Logging + Transaktionen
+ Vorbedingungen + Exception Handling
internal class CustomerProcesses
{ ts.Complete();
private static readonly TraceSource trace = }
new TraceSource(typeof(CustomerProcesses).FullName);
break;
public void RentBook(int bookId, int customerId) }
{ catch ( TransactionConflictException )
if (bookId <= 0) throw new ArgumentOutOfRangeException("bookId"); {
if (customerId <= 0) if ( i < 3 )
throw new ArgumentOutOfRangeException("customerId"); continue;
else
try throw;
{ }
trace.TraceInformation( }
"Entering CustomerProcesses.CreateCustomer(
bookId = {0}, customerId = {1} )", trace.TraceInformation(
bookId, customerId ); "Leaving CustomerProcesses.CreateCustomer(
bookId = {0}, customerId = {1} )",
try bookId, customerId );
{ }
for ( int i = 0;; i++ ) catch ( Exception e )
{ {
try trace.TraceEvent( TraceEventType.Error, 0,
{ "Exception: CustomerProcesses.CreateCustomer(
using ( var ts = new TransactionScope() ) bookId = {0}, customerId = {1} ) failed : {2}",
{ bookId, customerId, e.Message );
Book book = Book.GetById( bookId ); throw;
Customer customer = Customer.GetById( customerId ); }
}
book.RentedTo = customer; catch ( Exception e )
customer.AccountLines.Add( {
string.Format( "Rental of book {0}.", book ), if (ExceptionManager.Handle(e)) throw;
book.RentalPrice ); }
customer.Balance -= book.RentalPrice; }
13. Business Code
+ Logging + Transaktionen
+ Vorbedingungen + Exception Handling
+ Feature X
+ Feature Y
+ Feature Z
+…
14. Kern- Seperation
funktionalitäten of Concerns
(Core Concerns)
20. Build-Time: “Statisch” Run-Time: “Dynamisch”
Erfolgt bei Kompilierung Erfolgt zur Laufzeit
Code wird direkt verändert Code bleibt unverändert
Zur Laufzeit keine Änderungen Zur Laufzeit Änderungen möglich
Auch auf Properties, Felder, Aufruf wird über Proxy
Events anwendbar umgeleitet
Keine Interfaces erforderlich idR. Interfaces erforderlich (Proxy)