SlideShare una empresa de Scribd logo
1 de 89
Descargar para leer sin conexión
Taming of the View
                            RubyConf India 2010
                            Sarah Taraporewalla
                              ThoughtWorks




Sunday, 21 March 2010
I will attempt to
                        convince you that:




Sunday, 21 March 2010
I will attempt to
                         convince you that:
                   -    the current template engines are too
                        permissive




Sunday, 21 March 2010
I will attempt to
                         convince you that:
                   -    the current template engines are too
                        permissive
                   -    there are loads of code bases that break
                        fundamental principles




Sunday, 21 March 2010
I will attempt to
                         convince you that:
                   -    the current template engines are too
                        permissive
                   -    there are loads of code bases that break
                        fundamental principles
                   -    you should turn to other template engines



Sunday, 21 March 2010
What is wrong with
                         these examples?


Sunday, 21 March 2010
Example 1




Sunday, 21 March 2010
Example 2




Sunday, 21 March 2010
Example 3




Sunday, 21 March 2010
Example 4




Sunday, 21 March 2010
AGH! This is really
                        really easy in Rails3
                                now!


Sunday, 21 March 2010
Controller




Sunday, 21 March 2010
Why do we get thin
                          controllers?


Sunday, 21 March 2010
Push vs Pull




                                http://www.flickr.com/photos/91772025@N00/444044158/ CC BY-ND 2.0

Sunday, 21 March 2010
Pull

                        View   Controllers   Model




Sunday, 21 March 2010
Pull - over time

                             Controllers   Model
              View




Sunday, 21 March 2010
Push

                        View   Controllers   Model




Sunday, 21 March 2010
Push - over time

                        View                      Model

                                    Controllers




Sunday, 21 March 2010
Push - and then

                        View        Controllers   Services




Sunday, 21 March 2010
What do we want?




Sunday, 21 March 2010
Testable Code




Sunday, 21 March 2010
Testable Code


                        Don’t put logic in your views




Sunday, 21 March 2010
Single Responsibility




Sunday, 21 March 2010
Single Responsibility


                        Don’t let changes in column
                         names effect your views



Sunday, 21 March 2010
Separation of Concerns




Sunday, 21 March 2010
Separation of Concerns


                        Enforce strict separation of
                             model and view



Sunday, 21 March 2010
How do we improve on
                  the examples?


Sunday, 21 March 2010
Example 1 - Before




Sunday, 21 March 2010
Example 1 - Improved




Sunday, 21 March 2010
Example 2 - Before




Sunday, 21 March 2010
Example 2 - Improved




Sunday, 21 March 2010
Example 2 - Improved




Sunday, 21 March 2010
Example 3 - Before




Sunday, 21 March 2010
Example 4 - Before




Sunday, 21 March 2010
Example 3,4 - Improved




Sunday, 21 March 2010
Example 3,4 - Improved




Sunday, 21 March 2010
If you make it easy to
                 do the wrong thing, the
                    wrong thing will be
                          done

Sunday, 21 March 2010
If you make it easy to
                   do the right thing, the
                  right thing will be done


Sunday, 21 March 2010
Haml



Sunday, 21 March 2010
Haml




Sunday, 21 March 2010
Haml

                        Good




Sunday, 21 March 2010
Haml

                        Good
                           But ...



Sunday, 21 March 2010
Haml

                        Good
                           But ...
                                still allows ruby


Sunday, 21 March 2010
String Template



Sunday, 21 March 2010
StringTemplate

               - Strict separation of model & view
               - Fits well with functional programming
               - Written in Java, .Net, Python
                        is NOT Turing complete

Sunday, 21 March 2010
1. Create a StringTemplate Object with
                                  the template




Sunday, 21 March 2010
1. Create a StringTemplate Object with
                                  the template




                                                 string or file




Sunday, 21 March 2010
2. Set attributes and their values




Sunday, 21 March 2010
3. Call toString() to mash attributes onto
                               the template




Sunday, 21 March 2010
Testable?




Sunday, 21 March 2010
Testable? Yes!




Sunday, 21 March 2010
Single Responsibility?




Sunday, 21 March 2010
Single Responsibility?
                                 Yes!




Sunday, 21 March 2010
Separation of
                         Concerns?




Sunday, 21 March 2010
Separation of
                             Concerns? Yes!


                        It is the essence of its philosophy




Sunday, 21 March 2010
Other cool things...




Sunday, 21 March 2010
Templates (Partials)




Sunday, 21 March 2010
Iterators




Sunday, 21 March 2010
Iterators




Sunday, 21 March 2010
Renderers




Sunday, 21 March 2010
Localisation




Sunday, 21 March 2010
But, we do Ruby



Sunday, 21 March 2010
Slippers



Sunday, 21 March 2010
Slippers




Sunday, 21 March 2010
Slippers & Ramaze




Sunday, 21 March 2010
Slippers - Example




Sunday, 21 March 2010
Slippers - Example




Sunday, 21 March 2010
Slippers - Example




Sunday, 21 March 2010
Slippers - Example
                                                      index.st




          person/index.st


                                      person/age.st
Sunday, 21 March 2010
Slippers - Example
                                      person/age_renderer.rb




    controller/role_renderer.rb




Sunday, 21 March 2010
Slippers - Example




Sunday, 21 March 2010
Slippers - Testable?

                   • Holes are correctly plugged
                   • Correct instance variables set
                   • Renderers


Sunday, 21 March 2010
Slippers - Testable?

                   • Holes are correctly plugged
                   • Correct instance variables set
                   • Renderers


Sunday, 21 March 2010
Slippers - Testable?




Sunday, 21 March 2010
Slippers - Testable?




Sunday, 21 March 2010
Slippers - Testable?




Sunday, 21 March 2010
Slippers - Testable?

                   • Holes are correctly plugged
                   • Correct instance variables set
                   • Renderers


Sunday, 21 March 2010
Slippers - Testable?




Sunday, 21 March 2010
Slippers - Testable?




Sunday, 21 March 2010
Slippers - Testable?




Sunday, 21 March 2010
Slippers - Testable?

                   • Holes are correctly plugged
                   • Correct instance variables set
                   • Renderers


Sunday, 21 March 2010
Slippers - Testable?




Sunday, 21 March 2010
Slippers




Sunday, 21 March 2010
Slippers
                   • Can be found at:
                    ‣ http://slippersRb.com
                    ‣ http://github.com/starapor/slippers
                    ‣ http://gemcutter.org/gems/slippers
                   • Ramaze view template
                    ‣ http://ramaze.net
Sunday, 21 March 2010
Have I convinced you
                                that:




Sunday, 21 March 2010
Have I convinced you
                                that:
                   -    the current template engines are too
                        permissive




Sunday, 21 March 2010
Have I convinced you
                                that:
                   -    the current template engines are too
                        permissive
                   -    there are loads of code bases that break
                        fundamental principles




Sunday, 21 March 2010
Have I convinced you
                                that:
                   -    the current template engines are too
                        permissive
                   -    there are loads of code bases that break
                        fundamental principles
                   -    we should turn to other template engines



Sunday, 21 March 2010
questions?



Sunday, 21 March 2010

Más contenido relacionado

Destacado

Web Widgets & Your PLE
Web Widgets & Your PLEWeb Widgets & Your PLE
Web Widgets & Your PLEAsako Yoshida
 
Ruby versus Rails
Ruby versus RailsRuby versus Rails
Ruby versus Railsasheren
 
how to rate a Rails application
how to rate a Rails applicationhow to rate a Rails application
how to rate a Rails applicationehuard
 
Minimum Viable User Experience
Minimum Viable User ExperienceMinimum Viable User Experience
Minimum Viable User ExperienceGrace Ng
 
eZ Publish & Deployment of a multi-site platform
eZ Publish & Deployment of a multi-site platformeZ Publish & Deployment of a multi-site platform
eZ Publish & Deployment of a multi-site platformKaliop-slide
 
Top 10 ways to survive homework in middle
Top 10 ways to survive homework in middleTop 10 ways to survive homework in middle
Top 10 ways to survive homework in middledenised75
 
Get Organised IS Power Hour
Get Organised IS Power HourGet Organised IS Power Hour
Get Organised IS Power Hourhwulib
 
Get Yourself Organised!! Part 3 RSS Feeds
Get Yourself Organised!!  Part 3 RSS FeedsGet Yourself Organised!!  Part 3 RSS Feeds
Get Yourself Organised!! Part 3 RSS FeedsBGS Library
 
Carrington CMS Theme Framework for WordPress
Carrington CMS Theme Framework for WordPressCarrington CMS Theme Framework for WordPress
Carrington CMS Theme Framework for WordPressalexkingorg
 
Web Development With Ruby - From Simple To Complex
Web Development With Ruby - From Simple To ComplexWeb Development With Ruby - From Simple To Complex
Web Development With Ruby - From Simple To ComplexBrian Hogan
 
Getting Started with Meteor (TCF ITPC 2014)
Getting Started with Meteor (TCF ITPC 2014)Getting Started with Meteor (TCF ITPC 2014)
Getting Started with Meteor (TCF ITPC 2014)Michael Redlich
 
Cercone TCC presentation_2010
Cercone TCC presentation_2010Cercone TCC presentation_2010
Cercone TCC presentation_2010Kathleen Cercone
 
Brenna & Rozlyn
Brenna &  RozlynBrenna &  Rozlyn
Brenna & Rozlynhreynolds0
 

Destacado (18)

Web Widgets & Your PLE
Web Widgets & Your PLEWeb Widgets & Your PLE
Web Widgets & Your PLE
 
Ruby versus Rails
Ruby versus RailsRuby versus Rails
Ruby versus Rails
 
how to rate a Rails application
how to rate a Rails applicationhow to rate a Rails application
how to rate a Rails application
 
Minimum Viable User Experience
Minimum Viable User ExperienceMinimum Viable User Experience
Minimum Viable User Experience
 
簡単なTYPO3エクステンションの作成
簡単なTYPO3エクステンションの作成簡単なTYPO3エクステンションの作成
簡単なTYPO3エクステンションの作成
 
eZ Publish & Deployment of a multi-site platform
eZ Publish & Deployment of a multi-site platformeZ Publish & Deployment of a multi-site platform
eZ Publish & Deployment of a multi-site platform
 
Top 10 ways to survive homework in middle
Top 10 ways to survive homework in middleTop 10 ways to survive homework in middle
Top 10 ways to survive homework in middle
 
rails3 @ rsonrails - 2010.08.21
rails3 @ rsonrails - 2010.08.21rails3 @ rsonrails - 2010.08.21
rails3 @ rsonrails - 2010.08.21
 
Get Organised IS Power Hour
Get Organised IS Power HourGet Organised IS Power Hour
Get Organised IS Power Hour
 
Get Yourself Organised!! Part 3 RSS Feeds
Get Yourself Organised!!  Part 3 RSS FeedsGet Yourself Organised!!  Part 3 RSS Feeds
Get Yourself Organised!! Part 3 RSS Feeds
 
Carrington CMS Theme Framework for WordPress
Carrington CMS Theme Framework for WordPressCarrington CMS Theme Framework for WordPress
Carrington CMS Theme Framework for WordPress
 
Designing responsively
Designing responsivelyDesigning responsively
Designing responsively
 
Intro for RoR
Intro for RoRIntro for RoR
Intro for RoR
 
Opal a new_hope
Opal a new_hopeOpal a new_hope
Opal a new_hope
 
Web Development With Ruby - From Simple To Complex
Web Development With Ruby - From Simple To ComplexWeb Development With Ruby - From Simple To Complex
Web Development With Ruby - From Simple To Complex
 
Getting Started with Meteor (TCF ITPC 2014)
Getting Started with Meteor (TCF ITPC 2014)Getting Started with Meteor (TCF ITPC 2014)
Getting Started with Meteor (TCF ITPC 2014)
 
Cercone TCC presentation_2010
Cercone TCC presentation_2010Cercone TCC presentation_2010
Cercone TCC presentation_2010
 
Brenna & Rozlyn
Brenna &  RozlynBrenna &  Rozlyn
Brenna & Rozlyn
 

Similar a Taming The View for Rubyconf India

Social metadata on the web
Social metadata on the webSocial metadata on the web
Social metadata on the webHendrik Dacquin
 
Present and Future of Programming Languages - ola bini
Present and Future of Programming Languages - ola biniPresent and Future of Programming Languages - ola bini
Present and Future of Programming Languages - ola biniThoughtWorks
 
Advice for the interns
Advice for the internsAdvice for the interns
Advice for the internsedward boches
 
eLearning in Tourism
eLearning in TourismeLearning in Tourism
eLearning in TourismSara Vannini
 
Affordances in Modern Web Design
Affordances in Modern Web DesignAffordances in Modern Web Design
Affordances in Modern Web DesignUX Booth
 
Paper to Pixels: Breaking down the barriers between print and interactive design
Paper to Pixels: Breaking down the barriers between print and interactive designPaper to Pixels: Breaking down the barriers between print and interactive design
Paper to Pixels: Breaking down the barriers between print and interactive designClockwork Active Media
 
The Future of Computing, TEDx Austin
The Future of Computing, TEDx AustinThe Future of Computing, TEDx Austin
The Future of Computing, TEDx Austinfrog
 
Advicefortheinterns 100721141420-phpapp01 (3)
Advicefortheinterns 100721141420-phpapp01 (3)Advicefortheinterns 100721141420-phpapp01 (3)
Advicefortheinterns 100721141420-phpapp01 (3)niti slideman
 
Advicefortheinterns 100721141420-phpapp01 (1)
Advicefortheinterns 100721141420-phpapp01 (1)Advicefortheinterns 100721141420-phpapp01 (1)
Advicefortheinterns 100721141420-phpapp01 (1)Nitish Bhardwaj
 
Advicefortheinterns 100721141420-phpapp01 (3)
Advicefortheinterns 100721141420-phpapp01 (3)Advicefortheinterns 100721141420-phpapp01 (3)
Advicefortheinterns 100721141420-phpapp01 (3)Nitish Bhardwaj
 
Polishing Interfaces
Polishing InterfacesPolishing Interfaces
Polishing InterfacesUX Booth
 

Similar a Taming The View for Rubyconf India (12)

Reflex FATC
Reflex FATCReflex FATC
Reflex FATC
 
Social metadata on the web
Social metadata on the webSocial metadata on the web
Social metadata on the web
 
Present and Future of Programming Languages - ola bini
Present and Future of Programming Languages - ola biniPresent and Future of Programming Languages - ola bini
Present and Future of Programming Languages - ola bini
 
Advice for the interns
Advice for the internsAdvice for the interns
Advice for the interns
 
eLearning in Tourism
eLearning in TourismeLearning in Tourism
eLearning in Tourism
 
Affordances in Modern Web Design
Affordances in Modern Web DesignAffordances in Modern Web Design
Affordances in Modern Web Design
 
Paper to Pixels: Breaking down the barriers between print and interactive design
Paper to Pixels: Breaking down the barriers between print and interactive designPaper to Pixels: Breaking down the barriers between print and interactive design
Paper to Pixels: Breaking down the barriers between print and interactive design
 
The Future of Computing, TEDx Austin
The Future of Computing, TEDx AustinThe Future of Computing, TEDx Austin
The Future of Computing, TEDx Austin
 
Advicefortheinterns 100721141420-phpapp01 (3)
Advicefortheinterns 100721141420-phpapp01 (3)Advicefortheinterns 100721141420-phpapp01 (3)
Advicefortheinterns 100721141420-phpapp01 (3)
 
Advicefortheinterns 100721141420-phpapp01 (1)
Advicefortheinterns 100721141420-phpapp01 (1)Advicefortheinterns 100721141420-phpapp01 (1)
Advicefortheinterns 100721141420-phpapp01 (1)
 
Advicefortheinterns 100721141420-phpapp01 (3)
Advicefortheinterns 100721141420-phpapp01 (3)Advicefortheinterns 100721141420-phpapp01 (3)
Advicefortheinterns 100721141420-phpapp01 (3)
 
Polishing Interfaces
Polishing InterfacesPolishing Interfaces
Polishing Interfaces
 

Último

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
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
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Último (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
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
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Taming The View for Rubyconf India