SlideShare a Scribd company logo
“Divide and conquer
      riding rabbits and
        trading gems”
   - a tale about distributed programming -

   • http://www.slideshare.net/hungryblank
   • http://github.com/hungryblank/rabbit_starter
Paolo Negri                     @hungryblank
Resources

• http://www.slideshare.net/hungryblank
• http://github.com/hungryblank/rabbit_starter
About me
Time
       GNU/Linux - Dbs
                          Perl
         “systems”
                                   PHP
                          Python




                         Ruby
Summary:
Distributed
Concurrent
Programming
rabbitMQ




http://www.flickr.com/photos/myxi/448253580
Control
The problem
   Given a dictionary of
1.000.000 search phrases,
  compare for each one
the first page of results on
 google.com and bing.com
Don’t do it.
It’s a violation of terms
        of service!
(Sorry, I needed an example that
required little or no explanation)
Comparison
The whole process
Great! but...

• Fetching, parsing and analyzing
  2.000.000 pages of results will take a
  long time
• we want to collect the statistics in a
  limited time and this sequential
  approach is not quick enough
Distributed Computing
Is a method of solving computational
problem by dividing the problem into
  many tasks run simultaneously on
many hardware or software systems

            (Wikipedia)
Map Reduce "Map" step

  the master node takes the
input, chops it up into smaller
sub-problems, and distributes
   those to worker nodes.
         (Wikipedia)
Problems:

• How many nodes?
• How many workers?
• Distribution mechanism to
 feed the workers?
What about queuing?

• the master node takes the input, chops
  it up into smaller sub-problems, and
  publishes them in a queue
• workers independently consume the
  content of the queue
Here comes

• RabbitMQ is an implementation of AMQP,
  the emerging standard for high
  performance enterprise messaging
• It’s opensource
• Written in Erlang
Erlang?
• general-purpose concurrent programming
  language designed by Ericsson
• first version written by J. Armstrong in 1986
• distributed
• fault tolerant
• soft real time
• high availability
Erlang - is coming back
• Projects
 • CouchDB - RESTful document storage
 • WebMachine - REST toolkit
 • Nitrogen - web framework
 • Mochiweb - web framework
• Ruby shops using it
 • 37 Signal - Campfire
 • Heroku
+ Erlang


It’s messages all the way down
Install it


    • sudo apt-get install rabbitmq
    • sudo gem install tmm1-amqp
Note: rabbitMQ must be v1.6.0 and amqp gem v 0.6.4
           to follow the code in the slides
Do it! - master node
Do it! - worker node
Get for free

• Decoupling master/worker
• Workers take care of feeding themselves
• Flexible number of workers
Behind the scenes

                            Worker1
Master

msg A    Exchange   Queue   Worker2


                            Worker3
Behind the scenes

                            Worker1
Master

         Exchange   Queue   Worker2
          msg A

                            Worker3
Behind the scenes

                                  Worker1
Master

         Exchange   Queue msg A   Worker2


                                  Worker3
Behind the scenes

                            msg A   Worker1
Master

         Exchange   Queue           Worker2


                                    Worker3
RabbitMQ
• Multiple exchanges (and multiple types of
  exchange)
• Multiple queues
• Queues are connected by bindings to
  exchanges
• Exchanges route messages to queues
RabbitMQ

• Exchanges and queues have names
• BUT direct exchanges created implicitly are
  not public and don’t have name
• Queues and messages are resident in RAM
  and can be persisted on disk (at a
  performance price)
What and where
                          Master
                          (ruby)
     RabbitMQ
      (Erlang)            Worker
                 TCP/IP
                          (ruby)

                          Worker
                          (ruby)
Exchange Queue            Worker
                          (ruby)
Problem #1




If a worker has a problem we might lose one
             or more messages
                    http://www.flickr.com/photos/danzen/2288625136/
Solution - ACK in worker
Acknoledgement
• messages - 1 or more depending by
  prefetch settings - are passed to the client
• the client processes and acknowledges the
  messages one by one
• if the client connection closes =>
  unacknowledged messages go back in the
  queue
http://www.flickr.com/photos/streetfly_jz/2770586821/



           Problem #2




No convenient way to control the workers
System queue - worker
System queue - control




• save it as system_command.rb
• ruby system_command.rb halt
System queue

                              Queue1   Worker1
Control script

   msg A           Exchange   Queue2   Worker2


                              Queue3   Worker3
System queue

                              Queue1   Worker1
Control script
                   Exchange   Queue2   Worker2
                    msg A

                              Queue3   Worker3
System queue

                              msg A Queue1   Worker1
Control script
                   Exchange   msg A Queue2   Worker2


                              msg A Queue3   Worker3
EventMachine
EventMachine
Is an implementation of Reactor Pattern


• Non blocking IO and lightweight
  concurrency
• eliminate the complexities of high-
  performance threaded network
  programming
without EM                with EM
Ruby process          Ruby process
               Time
    code                  code



  network                                 network
  operation               Free
                                          operation

 use network           use network
  operation             operation
                                     Callback
    result                result


    Free
                          Free
EventMachine

amqp gem is built on top of
EventMachine => you’re in a
  context where you can
    leverage concurrent
        programming
EM - Deferrables

“The Deferrable pattern allows you to specify
 any number of Ruby code blocks that will be
executed at some future time when the status
      of the Deferrable object changes “
EM - Deferrables
EM - Deferrables
EM - Deferrables
EM - Deferrables
Deferrables
without deferrables      with deferrables


    GooglePage          GooglePage
                                        BingPage



     BingPage


                      Time
http://www.flickr.com/photos/philocrites/341850461/



          Problem #3




How many of them?
what are they doing?
Heartbeat - worker
Heartbeat monitor
Heartbeat queue

Worker1 msg A


Worker2           Exchange   Queue   Monitor


Worker3
          msg B
Heartbeat queue

Worker1

             msg A
Worker2     Exchange   Queue   Monitor
             msg B

Worker3
Heartbeat queue

Worker1


Worker2     Exchange   Queue msg B msg A   Monitor


Worker3
Clustering
         RabbitMQ - node A   RabbitMQ - node B

TCP/IP                                           TCP/IP



         RabbitMQ - node C

TCP/IP
async vs sync
       Syncronous clients on github



• famoseagle/carrot
• celldee/bunny
Rabbits on github
• danielsdeleo/moqueue Tests/stubbing
• Check out ezmobius/nanite
  “self assembling fabric of ruby daemons”
• Keep an eye on tonyg/rabbithub
  implementation of pubsubhubbub (PubSub
  over REST)
• auser/alice web app to monitor RabbitMQ
More rabbits on github

• tmm1/em-spec
• eventmachine/eventmachine
• tmm1/amqp
• macournoyer/thin
Q&A


 ?
Thanks!
(Thanks Mark!)

    Paolo Negri

/        hungryblank
Ad

Recommended

%w(map reduce).first - A Tale About Rabbits, Latency, and Slim Crontabs
%w(map reduce).first - A Tale About Rabbits, Latency, and Slim Crontabs
Paolo Negri
 
RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009
Paolo Negri
 
Improvements in RabbitMQ
Improvements in RabbitMQ
Alvaro Videla
 
RabbitMQ Data Ingestion
RabbitMQ Data Ingestion
Alvaro Videla
 
RabbitMQ Data Ingestion at Craft Conf
RabbitMQ Data Ingestion at Craft Conf
Alvaro Videla
 
Scaling applications with RabbitMQ at SunshinePHP
Scaling applications with RabbitMQ at SunshinePHP
Alvaro Videla
 
RabbitMQ Model and Some Example Applications
RabbitMQ Model and Some Example Applications
Houcheng Lin
 
RabbitMQ
RabbitMQ
Lenz Gschwendtner
 
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Tanya Denisyuk
 
Scaling application with RabbitMQ
Scaling application with RabbitMQ
Nahidul Kibria
 
Dissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal Architecture
Alvaro Videla
 
RabbitMQ Operations
RabbitMQ Operations
Michael Klishin
 
High powered messaging with RabbitMQ
High powered messaging with RabbitMQ
James Carr
 
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...
Ontico
 
Spring RabbitMQ
Spring RabbitMQ
Martin Toshev
 
Troubleshooting RabbitMQ and services that use it
Troubleshooting RabbitMQ and services that use it
Michael Klishin
 
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
James Titcumb
 
RabbitMQ fairly-indepth
RabbitMQ fairly-indepth
Wee Keat Chin
 
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQ
All Things Open
 
Integrating PostgreSql with RabbitMQ
Integrating PostgreSql with RabbitMQ
Gavin Roy
 
The RabbitMQ Message Broker
The RabbitMQ Message Broker
Martin Toshev
 
PostgreSQL: meet your queue
PostgreSQL: meet your queue
Theo Schlossnagle
 
The details of CI/CD environment for Ruby
The details of CI/CD environment for Ruby
Hiroshi SHIBATA
 
Introduction to AMQP Messaging with RabbitMQ
Introduction to AMQP Messaging with RabbitMQ
Dmitriy Samovskiy
 
Cooking a rabbit pie
Cooking a rabbit pie
Tomas Doran
 
How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?
Hiroshi SHIBATA
 
On Rabbits and Elephants
On Rabbits and Elephants
Gavin Roy
 
Ruby 1.9 Fibers
Ruby 1.9 Fibers
Kevin Ball
 
EventMachine
EventMachine
Jonathan Weiss
 
Mongrel2, a short introduction
Mongrel2, a short introduction
Paolo Negri
 

More Related Content

What's hot (19)

Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Tanya Denisyuk
 
Scaling application with RabbitMQ
Scaling application with RabbitMQ
Nahidul Kibria
 
Dissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal Architecture
Alvaro Videla
 
RabbitMQ Operations
RabbitMQ Operations
Michael Klishin
 
High powered messaging with RabbitMQ
High powered messaging with RabbitMQ
James Carr
 
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...
Ontico
 
Spring RabbitMQ
Spring RabbitMQ
Martin Toshev
 
Troubleshooting RabbitMQ and services that use it
Troubleshooting RabbitMQ and services that use it
Michael Klishin
 
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
James Titcumb
 
RabbitMQ fairly-indepth
RabbitMQ fairly-indepth
Wee Keat Chin
 
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQ
All Things Open
 
Integrating PostgreSql with RabbitMQ
Integrating PostgreSql with RabbitMQ
Gavin Roy
 
The RabbitMQ Message Broker
The RabbitMQ Message Broker
Martin Toshev
 
PostgreSQL: meet your queue
PostgreSQL: meet your queue
Theo Schlossnagle
 
The details of CI/CD environment for Ruby
The details of CI/CD environment for Ruby
Hiroshi SHIBATA
 
Introduction to AMQP Messaging with RabbitMQ
Introduction to AMQP Messaging with RabbitMQ
Dmitriy Samovskiy
 
Cooking a rabbit pie
Cooking a rabbit pie
Tomas Doran
 
How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?
Hiroshi SHIBATA
 
On Rabbits and Elephants
On Rabbits and Elephants
Gavin Roy
 
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Tanya Denisyuk
 
Scaling application with RabbitMQ
Scaling application with RabbitMQ
Nahidul Kibria
 
Dissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal Architecture
Alvaro Videla
 
High powered messaging with RabbitMQ
High powered messaging with RabbitMQ
James Carr
 
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...
Ontico
 
Troubleshooting RabbitMQ and services that use it
Troubleshooting RabbitMQ and services that use it
Michael Klishin
 
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
James Titcumb
 
RabbitMQ fairly-indepth
RabbitMQ fairly-indepth
Wee Keat Chin
 
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQ
All Things Open
 
Integrating PostgreSql with RabbitMQ
Integrating PostgreSql with RabbitMQ
Gavin Roy
 
The RabbitMQ Message Broker
The RabbitMQ Message Broker
Martin Toshev
 
The details of CI/CD environment for Ruby
The details of CI/CD environment for Ruby
Hiroshi SHIBATA
 
Introduction to AMQP Messaging with RabbitMQ
Introduction to AMQP Messaging with RabbitMQ
Dmitriy Samovskiy
 
Cooking a rabbit pie
Cooking a rabbit pie
Tomas Doran
 
How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?
Hiroshi SHIBATA
 
On Rabbits and Elephants
On Rabbits and Elephants
Gavin Roy
 

Viewers also liked (20)

Ruby 1.9 Fibers
Ruby 1.9 Fibers
Kevin Ball
 
EventMachine
EventMachine
Jonathan Weiss
 
Mongrel2, a short introduction
Mongrel2, a short introduction
Paolo Negri
 
A Documentation Crash Course, LinuxCon 2016
A Documentation Crash Course, LinuxCon 2016
Chris Ward
 
Why you should come to DrupalSouth
Why you should come to DrupalSouth
Chris Ward
 
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Jani Tarvainen
 
Entrez dans le mouvement Maker à l’aide des technologies Microsoft
Entrez dans le mouvement Maker à l’aide des technologies Microsoft
Fabrice BARBIN
 
Electron - Solving our cross platform dreams?
Electron - Solving our cross platform dreams?
Chris Ward
 
Scaling Social Games
Scaling Social Games
Paolo Negri
 
SimpleDb, an introduction
SimpleDb, an introduction
Paolo Negri
 
Offre développeur Javascript Back-end
Offre développeur Javascript Back-end
Site Analyzer
 
Contentful Berlin Offices
Contentful Berlin Offices
Irina Botea
 
Automate your docs, automate yourself
Automate your docs, automate yourself
Chris Ward
 
Erlang introduction geek2geek Berlin
Erlang introduction geek2geek Berlin
Paolo Negri
 
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...
Joe Gollner
 
AWS Lambda in infrastructure
AWS Lambda in infrastructure
Paolo Negri
 
Le futur de Drupal et des applications web
Le futur de Drupal et des applications web
Julien Dubreuil
 
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Romain Linsolas
 
Back to the future with static site generators
Back to the future with static site generators
Chris Ward
 
ParisJS #10 : PhantomJs
ParisJS #10 : PhantomJs
Maurice Svay
 
Ruby 1.9 Fibers
Ruby 1.9 Fibers
Kevin Ball
 
Mongrel2, a short introduction
Mongrel2, a short introduction
Paolo Negri
 
A Documentation Crash Course, LinuxCon 2016
A Documentation Crash Course, LinuxCon 2016
Chris Ward
 
Why you should come to DrupalSouth
Why you should come to DrupalSouth
Chris Ward
 
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Jani Tarvainen
 
Entrez dans le mouvement Maker à l’aide des technologies Microsoft
Entrez dans le mouvement Maker à l’aide des technologies Microsoft
Fabrice BARBIN
 
Electron - Solving our cross platform dreams?
Electron - Solving our cross platform dreams?
Chris Ward
 
Scaling Social Games
Scaling Social Games
Paolo Negri
 
SimpleDb, an introduction
SimpleDb, an introduction
Paolo Negri
 
Offre développeur Javascript Back-end
Offre développeur Javascript Back-end
Site Analyzer
 
Contentful Berlin Offices
Contentful Berlin Offices
Irina Botea
 
Automate your docs, automate yourself
Automate your docs, automate yourself
Chris Ward
 
Erlang introduction geek2geek Berlin
Erlang introduction geek2geek Berlin
Paolo Negri
 
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...
Joe Gollner
 
AWS Lambda in infrastructure
AWS Lambda in infrastructure
Paolo Negri
 
Le futur de Drupal et des applications web
Le futur de Drupal et des applications web
Julien Dubreuil
 
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Romain Linsolas
 
Back to the future with static site generators
Back to the future with static site generators
Chris Ward
 
ParisJS #10 : PhantomJs
ParisJS #10 : PhantomJs
Maurice Svay
 
Ad

Similar to Distributed and concurrent programming with RabbitMQ and EventMachine Rails Underground 2009 (20)

Message Queues in Ruby - An Overview
Message Queues in Ruby - An Overview
Pradeep Elankumaran
 
Real time system_performance_mon
Real time system_performance_mon
Tomas Doran
 
Scaling Ruby with Evented I/O - Ruby underground
Scaling Ruby with Evented I/O - Ruby underground
Omer Gazit
 
The Art of Message Queues - TEKX
The Art of Message Queues - TEKX
Mike Willbanks
 
High scale flavour
High scale flavour
Tomas Doran
 
Introduction to Python Celery
Introduction to Python Celery
Mahendra M
 
Concurrency in ruby
Concurrency in ruby
Marco Borromeo
 
Presentation
Presentation
zladuric
 
Lindsay distributed geventzmq
Lindsay distributed geventzmq
Robin Xiao
 
Life in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with django
Tareque Hossain
 
Microservices communication styles and event bus
Microservices communication styles and event bus
Touraj Ebrahimi
 
Evented applications with RabbitMQ and CakePHP
Evented applications with RabbitMQ and CakePHP
markstory
 
Message Queuing on a Large Scale: IMVUs stateful real-time message queue for ...
Message Queuing on a Large Scale: IMVUs stateful real-time message queue for ...
Jon Watte
 
Queue Everything and Please Everyone
Queue Everything and Please Everyone
Vaidik Kapoor
 
Messaging with amqp and rabbitmq
Messaging with amqp and rabbitmq
Selasie Hanson
 
RabbitMQ And Nanite
RabbitMQ And Nanite
mattmatt
 
Webinar: Queues with RabbitMQ - Lorna Mitchell
Webinar: Queues with RabbitMQ - Lorna Mitchell
Codemotion
 
The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP
Eberhard Wolff
 
Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011
David Troy
 
Ruby Microservices with RabbitMQ
Ruby Microservices with RabbitMQ
Zoran Majstorovic
 
Message Queues in Ruby - An Overview
Message Queues in Ruby - An Overview
Pradeep Elankumaran
 
Real time system_performance_mon
Real time system_performance_mon
Tomas Doran
 
Scaling Ruby with Evented I/O - Ruby underground
Scaling Ruby with Evented I/O - Ruby underground
Omer Gazit
 
The Art of Message Queues - TEKX
The Art of Message Queues - TEKX
Mike Willbanks
 
High scale flavour
High scale flavour
Tomas Doran
 
Introduction to Python Celery
Introduction to Python Celery
Mahendra M
 
Presentation
Presentation
zladuric
 
Lindsay distributed geventzmq
Lindsay distributed geventzmq
Robin Xiao
 
Life in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with django
Tareque Hossain
 
Microservices communication styles and event bus
Microservices communication styles and event bus
Touraj Ebrahimi
 
Evented applications with RabbitMQ and CakePHP
Evented applications with RabbitMQ and CakePHP
markstory
 
Message Queuing on a Large Scale: IMVUs stateful real-time message queue for ...
Message Queuing on a Large Scale: IMVUs stateful real-time message queue for ...
Jon Watte
 
Queue Everything and Please Everyone
Queue Everything and Please Everyone
Vaidik Kapoor
 
Messaging with amqp and rabbitmq
Messaging with amqp and rabbitmq
Selasie Hanson
 
RabbitMQ And Nanite
RabbitMQ And Nanite
mattmatt
 
Webinar: Queues with RabbitMQ - Lorna Mitchell
Webinar: Queues with RabbitMQ - Lorna Mitchell
Codemotion
 
The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP
Eberhard Wolff
 
Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011
David Troy
 
Ruby Microservices with RabbitMQ
Ruby Microservices with RabbitMQ
Zoran Majstorovic
 
Ad

Recently uploaded (20)

War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Impelsys Inc.
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
ICT Frame Magazine Pvt. Ltd.
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Safe Software
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
janeliewang985
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Impelsys Inc.
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
ICT Frame Magazine Pvt. Ltd.
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Safe Software
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
janeliewang985
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 

Distributed and concurrent programming with RabbitMQ and EventMachine Rails Underground 2009