The document discusses using events in Symfony applications to decouple classes and increase flexibility, describing how to connect events to listeners, dispatch events, and pass data, as well as some potential issues like lack of notification ordering and increased debugging complexity with events. Examples are provided of using events for actions on state changes, file system operations, and loose coupling of Symfony plugins.
Bei Jimdo sammeln wir jede Menge Metriken über alle Teile unseres Systems. Dabei fallen Daten auf allen Ebenen des Systems an: Infrastruktur, System und Applikation. Wichtig ist, dass alle Entwickler zu jedem Zeitpunkt Einblick in die Echtzeit-Metriken ihrer Services nehmen können. Um das zu garantieren, haben wir uns einige Zeit mit der Integration von Prometheus in unsere Systeme beschäftigt.
In unserem Talk werden wir sowohl über den Betrieb von Prometheus als auch über die Integrationen mit dem Rest der Jimdo-Plattform sprechen. Wir werden von Stolpersteinen und Tricks berichten, die wir gelernt haben, sowie einen Einblick in unserer Tool-Landschaft geben.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Bei Jimdo sammeln wir jede Menge Metriken über alle Teile unseres Systems. Dabei fallen Daten auf allen Ebenen des Systems an: Infrastruktur, System und Applikation. Wichtig ist, dass alle Entwickler zu jedem Zeitpunkt Einblick in die Echtzeit-Metriken ihrer Services nehmen können. Um das zu garantieren, haben wir uns einige Zeit mit der Integration von Prometheus in unsere Systeme beschäftigt.
In unserem Talk werden wir sowohl über den Betrieb von Prometheus als auch über die Integrationen mit dem Rest der Jimdo-Plattform sprechen. Wir werden von Stolpersteinen und Tricks berichten, die wir gelernt haben, sowie einen Einblick in unserer Tool-Landschaft geben.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
75. Events in Code
class frontendConfiguration extends sfApplicationConfiguration
{
public function configure()
{
$this->dispatcher->connect('registration.complete',
array(SomeClass, 'listenToRegistrationComplete'));
// [...]
}
}
15
76. Events in Code
class frontendConfiguration extends sfApplicationConfiguration
{
public function configure()
{
$this->dispatcher->connect('registration.complete',
array(SomeClass, 'listenToRegistrationComplete'));
// [...]
}
}
15
77. Events in Code
Event Name
class frontendConfiguration extends sfApplicationConfiguration
{
public function configure()
{
$this->dispatcher->connect('registration.complete',
array(SomeClass, 'listenToRegistrationComplete'));
// [...]
}
}
15
78. Events in Code
Event Name
class frontendConfiguration extends sfApplicationConfiguration
{
public function configure()
{
$this->dispatcher->connect('registration.complete',
array(SomeClass, 'listenToRegistrationComplete'));
// [...]
}
}
15
79. Events in Code
Event Name
class frontendConfiguration extends sfApplicationConfiguration
{
public function configure()
{
$this->dispatcher->connect('registration.complete',
array(SomeClass, 'listenToRegistrationComplete'));
// [...]
}
}
Callable
(can be static or non-static)
15
80. Events in Code
$this->dispatcher->notify(new sfEvent($user, 'registration.complete'));
16
81. Events in Code
$this->dispatcher->notify(new sfEvent($user, 'registration.complete'));
16
82. Events in Code
Notification Type
$this->dispatcher->notify(new sfEvent($user, 'registration.complete'));
16
83. Events in Code
Notification Type
$this->dispatcher->notify(new sfEvent($user, 'registration.complete'));
16
84. Events in Code
Notification Type
$this->dispatcher->notify(new sfEvent($user, 'registration.complete'));
Subject
16
85. Events in Code
Notification Type
$this->dispatcher->notify(new sfEvent($user, 'registration.complete'));
Subject
16
86. Events in Code
Event Name
Notification Type
$this->dispatcher->notify(new sfEvent($user, 'registration.complete'));
Subject
16
87. Events in Code
class SomeClass
{
public static function listenToRegistrationComplete(sfEvent $event)
{
$user = $event->getSubject();
// [...]
}
}
17
88. Events in Code
class SomeClass
{
public static function listenToRegistrationComplete(sfEvent $event)
{
$user = $event->getSubject();
// [...]
}
}
17
89. Events in Code
Registered Method
(called via notfiy)
class SomeClass
{
public static function listenToRegistrationComplete(sfEvent $event)
{
$user = $event->getSubject();
// [...]
}
}
17
90. Events in Code
Registered Method
(called via notfiy)
class SomeClass
{
public static function listenToRegistrationComplete(sfEvent $event)
{
$user = $event->getSubject();
// [...]
}
}
17
91. Events in Code
Registered Method
(called via notfiy)
class SomeClass
{
public static function listenToRegistrationComplete(sfEvent $event)
{
$user = $event->getSubject();
// [...]
}
}
Event as Parameter
17
92. Events in Code
Registered Method
(called via notfiy)
class SomeClass
{
public static function listenToRegistrationComplete(sfEvent $event)
{
$user = $event->getSubject();
// [...]
}
}
Event as Parameter
17
93. Events in Code
Registered Method
(called via notfiy)
class SomeClass
{
public static function listenToRegistrationComplete(sfEvent $event)
{
$user = $event->getSubject();
// [...]
}
}
Passed Subject
Event as Parameter
17
96. Events in Code
Notification Type
$returnValue = $this->dispatcher->filter(new sfEvent($blogPost,
'blog_post.render'), $blogPost->getBody());
18
97. Events in Code
Notification Type
$returnValue = $this->dispatcher->filter(new sfEvent($blogPost,
'blog_post.render'), $blogPost->getBody());
18
98. Events in Code
Notification Type
$returnValue = $this->dispatcher->filter(new sfEvent($blogPost,
'blog_post.render'), $blogPost->getBody());
Raw Value
18
99. Events in Code
Notification Type
$returnValue = $this->dispatcher->filter(new sfEvent($blogPost,
'blog_post.render'), $blogPost->getBody());
Raw Value
18
100. Events in Code
Notification Type
$returnValue = $this->dispatcher->filter(new sfEvent($blogPost,
'blog_post.render'), $blogPost->getBody());
Filtered Value
Raw Value
18
101. Events in Code
class MarkdownParser
{
// [...]
public static function listenToRegistrationComplete(sfEvent $event, $body)
{
$markdownParser = new self();
$parsedBody = $markdownParser->parse($body);
// [...]
return $parsedBody;
}
}
19
102. Events in Code
class MarkdownParser
{
// [...]
public static function listenToRegistrationComplete(sfEvent $event, $body)
{
$markdownParser = new self();
$parsedBody = $markdownParser->parse($body);
// [...]
return $parsedBody;
}
}
19
103. Events in Code
Raw Value as Parameter
class MarkdownParser
{
// [...]
public static function listenToRegistrationComplete(sfEvent $event, $body)
{
$markdownParser = new self();
$parsedBody = $markdownParser->parse($body);
// [...]
return $parsedBody;
}
}
19
104. Events in Code
Raw Value as Parameter
class MarkdownParser
{
// [...]
public static function listenToRegistrationComplete(sfEvent $event, $body)
{
$markdownParser = new self();
$parsedBody = $markdownParser->parse($body);
// [...]
return $parsedBody;
}
}
19
105. Events in Code
Raw Value as Parameter
class MarkdownParser
{
// [...]
public static function listenToRegistrationComplete(sfEvent $event, $body)
{
$markdownParser = new self();
$parsedBody = $markdownParser->parse($body);
// [...]
return $parsedBody;
}
}
Filtered Value
19
110. Other Usage Examples
I use events mostly with object
states changes, for example to send
email, notify someone, clear cache,
calculate sth.
snzapka
22
112. Other Usage Examples
I have a centralized "spot" for file
system operations. e.g. when a user
deletes an image from the DB, it
kicks off an event
b00giZm
23
132. Credits
Thanks to:
- Bernhard and Andreas for the reviews and tips.
- Konrad and Samim for the designs and the artworks.
Creative Commons stuff used:
- „Cog, Gear, Settings“ icon by „Visual Pharm“ - http://www.iconfinder.net/icondetails/27879/128/
- „Crying, Man“ icon by Rokey - http://www.iconfinder.net/icondetails/37613/128/
- „Box, Package“ icon by Alessandro Rei - http://www.iconfinder.net/icondetails/6507/128/
34