SlideShare ist ein Scribd-Unternehmen logo
1 von 148
Itch Scratching
 the ActionMailer
        API
A brief foray into the mind of a masochist!
whoami?
whoami?
Working in Rails & Ruby for 4+ Years
whoami?
Working in Rails & Ruby for 4+ Years

Maintainer of TMail & Author of Mail
whoami?
Working in Rails & Ruby for 4+ Years

Maintainer of TMail & Author of Mail

    DBA and Internet Plumber
whoami?
Working in Rails & Ruby for 4+ Years

Maintainer of TMail & Author of Mail

    DBA and Internet Plumber

         Rails Contributor
whoami?
Working in Rails & Ruby for 4+ Years

Maintainer of TMail & Author of Mail

    DBA and Internet Plumber

         Rails Contributor

           Entrepreneur
y?
y?
Mail Application
y?
Mail Application

   Challenge
y?
Mail Application

   Challenge

     TMail
OMGLOLSPAM
OMGLOLSPAM
“TMail was a great SPAM checker...
if it crashed while parsing an email
  then you knew it was SPAM.”
               - Koz
Why not just fix TMail?
Why not just fix TMail?
 Released 10 patch and minor versions
Why not just fix TMail?
 Released 10 patch and minor versions

    I wrote over 600 lines of Docs
Why not just fix TMail?
 Released 10 patch and minor versions

    I wrote over 600 lines of Docs

      Built on a Strategy Pattern
Why not just fix TMail?
 Released 10 patch and minor versions

    I wrote over 600 lines of Docs

      Built on a Strategy Pattern

         Parser Written in C
Why not just fix TMail?
 Released 10 patch and minor versions

    I wrote over 600 lines of Docs

      Built on a Strategy Pattern

         Parser Written in C

        HARD TO FOLLOW
Why not just fix TMail?
Why not just fix TMail?
TMail was not very modular and hard to maintain
Why not just fix TMail?
TMail was not very modular and hard to maintain

        Wanted to write a major library
Why not just fix TMail?
TMail was not very modular and hard to maintain

        Wanted to write a major library

           How hard could email be?
Why not just fix TMail?
TMail was not very modular and hard to maintain

        Wanted to write a major library

           How hard could email be?

              I wanted a nice DSL
Why not just fix TMail?
TMail was not very modular and hard to maintain

        Wanted to write a major library

           How hard could email be?

              I wanted a nice DSL

                  Not as fun
Mail’s DSL is Simple
Mail’s DSL is Simple
Mail’s DSL is Simple
Mail’s DSL is Simple
Mail’s DSL is Simple
Mail’s DSL is Simple
Mail’s DSL is Simple
Mail’s DSL is Simple
How Hard Could It Be?
How Hard Could It Be?
        Read RFCs
How Hard Could It Be?
        Read RFCs

      Read more RFCs
How Hard Could It Be?
         Read RFCs

      Read more RFCs

     Keep reading RFCs...
How Hard Could It Be?
                 Read RFCs

              Read more RFCs

            Keep reading RFCs...

“email is defined in RFCs, so should be easy...”
RFCs
RFCs
RSpec FTW!
RSpec FTW!
I use RSpec because I am lazy
RSpec FTW!
I use RSpec because I am lazy

EVERYTHING in Mail is BDD
RSpec FTW!
I use RSpec because I am lazy

EVERYTHING in Mail is BDD

    Regressions Caught
RSpec FTW!
I use RSpec because I am lazy

EVERYTHING in Mail is BDD

    Regressions Caught

          Seriously
Spec’ing for Libraries
Spec’ing for Libraries
       Start Simple
Spec’ing for Libraries
           Start Simple

  Comments in Spec Files are OK
Spec’ing for Libraries
           Start Simple

  Comments in Spec Files are OK

      Use Custom Matchers
Spec’ing for Libraries
           Start Simple

  Comments in Spec Files are OK

      Use Custom Matchers

   Break Down Your Spec Files
Spec’ing for Libraries
           Start Simple

  Comments in Spec Files are OK

      Use Custom Matchers

   Break Down Your Spec Files

      Spec in Multiple Rubies
Start Somewhere
Start Somewhere
Start Somewhere
Start Somewhere
Comments are OK
Comments are OK
Use Custom Matchers
       when appropriate
Use Custom Matchers
       when appropriate
Use Custom Matchers
       when appropriate
Use Custom Matchers
       when appropriate
Custom Matchers
Custom Matchers
Break Down Spec Files
Break Down Spec Files
Break Down Spec Files
          26 Sub Directories
Break Down Spec Files
          26 Sub Directories

          79 Ruby Spec Files
Break Down Spec Files
          26 Sub Directories

          79 Ruby Spec Files

          73 Edge Case Emails
Break Down Spec Files
          26 Sub Directories

          79 Ruby Spec Files

          73 Edge Case Emails

          Many Many Lines of Specs
Break Down Spec Files
          26 Sub Directories

          79 Ruby Spec Files

          73 Edge Case Emails

          Many Many Lines of Specs

          1161 examples
Break Down Spec Files
          26 Sub Directories

          79 Ruby Spec Files

          73 Edge Case Emails

          Many Many Lines of Specs

          1161 examples

          No Failures :)
Spec in Multiple Rubies
Spec in Multiple Rubies
   Have to be a good Ruby Citizen
Spec in Multiple Rubies
   Have to be a good Ruby Citizen

               JRuby
Spec in Multiple Rubies
   Have to be a good Ruby Citizen

               JRuby

                REE
Spec in Multiple Rubies
   Have to be a good Ruby Citizen

               JRuby

                REE

              Rubinius
                (almost)
Spec in Multiple Rubies
   Have to be a good Ruby Citizen

                JRuby

                 REE

               Rubinius
                  (almost)



    MRI - 1.8.6, 1.8.7, 1.9.1, 1.9.2
But What About Real Life?
But What About Real Life?
  Mail parses the Enron and Trec Data Sets
But What About Real Life?
  Mail parses the Enron and Trec Data Sets
              mikel@baci ~/Code
               $ du -hs corpus/


            2.4G    of Emails
But What About Real Life?
  Mail parses the Enron and Trec Data Sets
               mikel@baci ~/Code
                $ du -hs corpus/


             2.4G     of Emails

                mikel@baci ~/Code
      $ find corpus -name "*" -print | wc -l


               328,248 Emails
show me the model!
show me the model!
Mail
show me the model!
Mail   Message
show me the model!
Mail   Message   Header
show me the model!
Mail   Message   Header




                 Body
show me the model!
show me the model!
Message   Body
show me the model!
Message            Body




          Header
show me the model!
Message            Body




          Header          FieldList
show me the model!
Message            Body




          Header          FieldList   Fields
show me the model!
Message            Body




          Header          FieldList                          Fields




                                  StructuredField

                                      Content-Type
                               Content-Transfer-Encoding
                               To, From, Cc, Bcc, Reply-To
show me the model!
Message            Body




          Header          FieldList                          Fields




                                  StructuredField                      UnstructuredField

                                      Content-Type                            Subject
                               Content-Transfer-Encoding                  X-Headers et al
                               To, From, Cc, Bcc, Reply-To            Any other unparsable field
show me the model!
show me the model!
Message   Header
show me the model!
Message          Header




          Body
show me the model!
Message          Header



                          Preamble



          Body
show me the model!
Message          Header



                          Preamble


                           One or
          Body
                          Many Parts
show me the model!
Message          Header



                          Preamble


                           One or
          Body
                          Many Parts


                           Epilogue
show me the model!
Message          Header



                          Preamble


                           One or
          Body                           Message
                          Many Parts

                                       Ohhh... O.O.
                                        Recursive
                           Epilogue
                                        Type Stuff
show me the model!
show me the model!
      And Thats It!
show me the model!
      And Thats It!

      Simple Hey?
show me the model!
   Header Errors                             Legacy Emails
      Parsers     rfc822      Delivery Agents
                       And Thats It!           SMTP
   Body Decoding
          SPAM       PGP Signing       POP3 File Types
    Mbox               Simple Hey?              Network
               IMAP           Language Support
Sendmail Delivery Bad Emails              Encoding
                             Edge Cases
  Pattern Matching
                    OMGMIME! Decoding Attachments
     Interceptors
                         File IO    Domain Key Emails
       Observers                  Status Reports
          Inline Attachments
OK, ActionMailer?
OK, ActionMailer?
   Much Easier to Use
OK, ActionMailer?
    Much Easier to Use

  Nicer Defaults & Config
OK, ActionMailer?
          Much Easier to Use

        Nicer Defaults & Config

ActionMailer Methods Return Mail Object
OK, ActionMailer?
          Much Easier to Use

        Nicer Defaults & Config

ActionMailer Methods Return Mail Object

   Deprecated (not Decapitated) API
OK, ActionMailer?
          Much Easier to Use

        Nicer Defaults & Config

ActionMailer Methods Return Mail Object

   Deprecated (not Decapitated) API

               Tutorials
Much Easier to Use
Much Easier to Use
   New Mailer Directory
Much Easier to Use
        New Mailer Directory

Can Call “mail” method and pass a hash
Nicer Defaults
Nicer Defaults
Nicer Config
Nicer Config
AM Returns Mail
AM Returns Mail
AM Returns Mail
Mail Call Back Hooks
Mail Call Back Hooks
Mail Call Back Hooks
Mail Call Back Hooks
Mail Call Back Hooks
Mail Call Back Hooks
Deprecated API
   Decapitation Free Zone
Deprecated API
      Decapitation Free Zone



 Did not nuke the old API
Deprecated API
             Decapitation Free Zone



       Did not nuke the old API

New API triggers ONLY if you call “mail”
Deprecated API
             Decapitation Free Zone



       Did not nuke the old API

New API triggers ONLY if you call “mail”

    Old API in place if no “mail” call
Deprecated API
             Decapitation Free Zone



       Did not nuke the old API

New API triggers ONLY if you call “mail”

    Old API in place if no “mail” call

        Will be Removed in 3.1
Deprecated API
   Decapitation Free Zone
Deprecated API
   Decapitation Free Zone
Deprecated API
   Decapitation Free Zone
HELP!!!
HELP!!!
Replace treetop with Ragel or RACC
HELP!!!
 Replace treetop with Ragel or RACC

Implement full POP3 and IMAP Support
HELP!!!
 Replace treetop with Ragel or RACC

Implement full POP3 and IMAP Support

     Domain Key Implementation
HELP!!!
 Replace treetop with Ragel or RACC

Implement full POP3 and IMAP Support

     Domain Key Implementation

            PGP Signing
HELP!!!
 Replace treetop with Ragel or RACC

Implement full POP3 and IMAP Support

     Domain Key Implementation

            PGP Signing

        More Documentation
Tutorials
Tutorials
 lindsaar.net
Tutorials
     lindsaar.net

www.RailsDispatch.com
Tutorials
     lindsaar.net

www.RailsDispatch.com

 www.RailsCasts.com
KTHXBAI
  Questions?

   @raasdnil

mikel@rubyx.com

   lindsaar.net
Itch Scratching

Weitere ähnliche Inhalte

Ähnlich wie Itch Scratching

Spark NLP: State of the Art Natural Language Processing at Scale
Spark NLP: State of the Art Natural Language Processing at ScaleSpark NLP: State of the Art Natural Language Processing at Scale
Spark NLP: State of the Art Natural Language Processing at ScaleDatabricks
 
Games for the Masses (Jax)
Games for the Masses (Jax)Games for the Masses (Jax)
Games for the Masses (Jax)Wooga
 
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015Chef
 
Scaling search to a million pages with Solr, Python, and Django
Scaling search to a million pages with Solr, Python, and DjangoScaling search to a million pages with Solr, Python, and Django
Scaling search to a million pages with Solr, Python, and Djangotow21
 
Write your Ruby in Style
Write your Ruby in StyleWrite your Ruby in Style
Write your Ruby in StyleBhavin Javia
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivationjistr
 
RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013
RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013
RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013CA API Management
 
2010 08-06 - sd ruby - solr
2010 08-06 - sd ruby - solr2010 08-06 - sd ruby - solr
2010 08-06 - sd ruby - solrNick Zadrozny
 
Solr Powr — Enterprise-grade search for your app
Solr Powr — Enterprise-grade search for your appSolr Powr — Enterprise-grade search for your app
Solr Powr — Enterprise-grade search for your appNick Zadrozny
 
Querying rich text with XQuery
Querying rich text with XQueryQuerying rich text with XQuery
Querying rich text with XQuerylucenerevolution
 
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Espen Brækken
 
Enlightenment: A Cross Platform Window Manager & Toolkit
Enlightenment: A Cross Platform Window Manager & ToolkitEnlightenment: A Cross Platform Window Manager & Toolkit
Enlightenment: A Cross Platform Window Manager & ToolkitSamsung Open Source Group
 
Q con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancoukQ con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancoukRoger Xia
 
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИSIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИPavel Tsukanov
 
Le PERL est mort
Le PERL est mortLe PERL est mort
Le PERL est mortapeiron
 
Aspose.Network Brochure
Aspose.Network BrochureAspose.Network Brochure
Aspose.Network BrochureShahzad Latif
 
Ruby Metaprogramming - OSCON 2008
Ruby Metaprogramming - OSCON 2008Ruby Metaprogramming - OSCON 2008
Ruby Metaprogramming - OSCON 2008Brian Sam-Bodden
 
Moving from Relational to Document Store
Moving from Relational to Document StoreMoving from Relational to Document Store
Moving from Relational to Document StoreGraham Tackley
 
Rails Vs CakePHP
Rails Vs CakePHPRails Vs CakePHP
Rails Vs CakePHPGautam Rege
 

Ähnlich wie Itch Scratching (20)

Spark NLP: State of the Art Natural Language Processing at Scale
Spark NLP: State of the Art Natural Language Processing at ScaleSpark NLP: State of the Art Natural Language Processing at Scale
Spark NLP: State of the Art Natural Language Processing at Scale
 
Intro to EmberJS
Intro to EmberJSIntro to EmberJS
Intro to EmberJS
 
Games for the Masses (Jax)
Games for the Masses (Jax)Games for the Masses (Jax)
Games for the Masses (Jax)
 
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
 
Scaling search to a million pages with Solr, Python, and Django
Scaling search to a million pages with Solr, Python, and DjangoScaling search to a million pages with Solr, Python, and Django
Scaling search to a million pages with Solr, Python, and Django
 
Write your Ruby in Style
Write your Ruby in StyleWrite your Ruby in Style
Write your Ruby in Style
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivation
 
RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013
RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013
RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013
 
2010 08-06 - sd ruby - solr
2010 08-06 - sd ruby - solr2010 08-06 - sd ruby - solr
2010 08-06 - sd ruby - solr
 
Solr Powr — Enterprise-grade search for your app
Solr Powr — Enterprise-grade search for your appSolr Powr — Enterprise-grade search for your app
Solr Powr — Enterprise-grade search for your app
 
Querying rich text with XQuery
Querying rich text with XQueryQuerying rich text with XQuery
Querying rich text with XQuery
 
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex
 
Enlightenment: A Cross Platform Window Manager & Toolkit
Enlightenment: A Cross Platform Window Manager & ToolkitEnlightenment: A Cross Platform Window Manager & Toolkit
Enlightenment: A Cross Platform Window Manager & Toolkit
 
Q con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancoukQ con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancouk
 
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИSIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
 
Le PERL est mort
Le PERL est mortLe PERL est mort
Le PERL est mort
 
Aspose.Network Brochure
Aspose.Network BrochureAspose.Network Brochure
Aspose.Network Brochure
 
Ruby Metaprogramming - OSCON 2008
Ruby Metaprogramming - OSCON 2008Ruby Metaprogramming - OSCON 2008
Ruby Metaprogramming - OSCON 2008
 
Moving from Relational to Document Store
Moving from Relational to Document StoreMoving from Relational to Document Store
Moving from Relational to Document Store
 
Rails Vs CakePHP
Rails Vs CakePHPRails Vs CakePHP
Rails Vs CakePHP
 

Kürzlich hochgeladen

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Kürzlich hochgeladen (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Itch Scratching

Hinweis der Redaktion

  1. No CS Experience
  2. No CS Experience
  3. No CS Experience
  4. No CS Experience
  5. No CS Experience
  6. Read design patterns in Ruby
  7. Read design patterns in Ruby
  8. Read design patterns in Ruby
  9. Read design patterns in Ruby
  10. Read design patterns in Ruby