SlideShare une entreprise Scribd logo
1  sur  96
Télécharger pour lire hors ligne
The

Even-Darker Art
        of

  Rails Engines
@lazyatom
github.com/lazyatom/engines
Rails 2.3
history
November 2005
it’s distracting!
reuse is overrated!
Evil!     Evil!
 Evil!

                                   Evil!

                 Evil!
Evil!
                                    Evil!

         Evil!           Shit!
eek!
appable_plugins
desert
merb slices?
engines
!quot;#$%&!quot;#$'#(%&$#)&!quot;#$%&*$+,#-.!)
!quot;#$%&'()
$$*%&'()$++,$-'%!.%&'()./0#'12%)/'0
quot;0!

3$405/0quot;6$%1quot;$7-(5/06$8/)9$%0$%77:$!/1quot;;)'1<=
!quot;#$quot;05/0quot;>
$$9%6.%77.!/1quot;;)'1<>
quot;0!

3$?quot;)(106$)1(quot;$/#$)9quot;$quot;05/0quot;$69/76$8/)9$%$1'()/05$#/-quot;
!quot;#$1'()quot;!>
$$@/-quot;=quot;A/6)>B1'()/05.#/-quot;C
quot;0!


!quot;#$D/quot;8.7%)9
$$@/-quot;=E'/0B!/1quot;;)'1<F$G%77GF$GD/quot;86GC
quot;0!
app/controllers/
    models/
    helpers/
    views/
    metal/
*$+,#-&quot;**&23-'!3$$(!&*$+,#-523-'!3$$(!.!)

 ;-%66$H-(5/0I'0)1'--quot;1/0/1**$#2quot;'#3-43-'!3$$(!
 $$!quot;#$/0!quot;A
 $$$$1quot;0!quot;1$J)quot;A)$,K$LMquot;--'F$H-(5/0NL
 $$quot;0!
 quot;0!
9quot;-7quot;1$J%--
won’t load from your plugin
Ticket #1905
config/routes.rb
*$+,#-&23-6#,&!3+'(%.!)



  O;)/'0I'0)1'--quot;1JJ?'()/05JJ?'()quot;6=!1%8$!'$+2%7+

  $$2%7=;'00quot;;)$G:7%)9GF$J;'0)1'--quot;1$,K$L7-(5/0LF$
  $$$$$$$$$$$$$$$$$$$$$$$J%;)/'0$,K$L/0!quot;AL

  quot;0!
top precedence
in your plugin:
 O;)/'0I'0)1'--quot;1JJ?'()/05JJ?'()quot;6=!1%8$!'$+2%7+
 $$2%7=;'00quot;;)$G:7%)9GF$J;'0)1'--quot;1$,K$L7-(5/0LF$
 $$$$$$$$$$$$$$$$$$$$$$$J%;)/'0$,K$L/0!quot;AL
 quot;0!


in your app:
 O;)/'0I'0)1'--quot;1JJ?'()/05JJ?'()quot;6=!1%8$!'$+2%7+
 $$3$===$')9quot;1$1'()quot;6$===
 $$2%7=;'00quot;;)$G:7%)9GF$J;'0)1'--quot;1$,K$L%77LF$
 $$$$$$$$$$$$$$$$$$$$$$$J%;)/'0$,K$L/0!quot;AL
 $$3$===$')9quot;1$1'()quot;6$===
 quot;0!
in your plugin:
 O;)/'0I'0)1'--quot;1JJ?'()/05JJ?'()quot;6=!1%8$!'$+2%7+
 $$2%7=;'00quot;;)$G:7%)9GF$J;'0)1'--quot;1$,K$L7-(5/0LF$
 $$$$$$$$$$$$$$$$$$$$$$$J%;)/'0$,K$L/0!quot;AL
 quot;0!


in your app:
 O;)/'0I'0)1'--quot;1JJ?'()/05JJ?'()quot;6=!1%8$!'$+2%7+
 $$3$===$')9quot;1$1'()quot;6$===
 $$2%7=;'00quot;;)$G:7%)9GF$J;'0)1'--quot;1$,K$L%77LF$
 $$$$$$$$$$$$$$$$$$$$$$$J%;)/'0$,K$L/0!quot;AL
 $$3$===$')9quot;1$1'()quot;6$===
 quot;0!
Ticket #2592
(also Ticket #329)
785*$+,#-&$#)&785*$+,#-.!)
2'!(-quot;$P<H-(5/0
$$!quot;#$6quot;-#=%!!.1'()quot;6B7quot;*C
$$$$2%7=;'00quot;;)$L:6)(##LF$J;'0)1'--quot;1$,K$L)9/056L
$$quot;0!
quot;0!

O;)/'0I'0)1'--quot;1JJ?'()/05JJ?'()quot;6=!1%8$!'$+2%7+
$$3$<'(1$%77$1'()quot;6===

$$P<H-(5/0=%!!.1'()quot;6B2%7C

$$3$quot;);===
quot;0!
what’s missing?
public assets
copy
file clash
83+!5*$+,#-&#-%'quot;$$.!)

2<./2%5quot;6$,$H%)90%2quot;=0quot;8B@/-quot;=!/10%2quot;B..@QR4..CC$S$
$$$$$$$$$$$$$$L%66quot;)6:/2%5quot;6L
)%15quot;)$,$?%/-6=1'')$S$L7(&-/;:/2%5quot;6:2<.7-(5/0L

@/-quot;T)/-6=2U!/1.7B)%15quot;)C

2<./2%5quot;6=;9/-!1quot;0=quot;%;9$!'$+quot;+$
$$$$@/-quot;T)/-6=;7.1Bquot;F$)%15quot;)$S$quot;=&%6quot;0%2quot;C$
quot;0!
83+!5*$+,#-&#-%'quot;$$.!)

2<./2%5quot;6$,$H%)90%2quot;=0quot;8B@/-quot;=!/10%2quot;B..@QR4..CC$S$
$$$$$$$$$$$$$$L%66quot;)6:/2%5quot;6L
)%15quot;)$,$?%/-6=1'')$S$L7(&-/;:/2%5quot;6:2<.7-(5/0L

)%15quot;)=2%Uquot;.6<2-/0UB2<./2%5quot;6C$(0-quot;66$)%15quot;)=quot;A/6)>
migrations
simple DSL
rollback
!&:2/51%)quot;:
   version
                 $$VWWXWYWYYVYVZ[.%-79%=1&
                   VWWXWYWVY[VZ[.&quot;)%=1&
20090101121234

20090102142345
                 7-(5/0:!&:2/51%)quot;:
2008123123456    $$VWW]YVZYZ[^.5%22%=1&
1%Uquot;$!&J1'--&%;U
   version
                  P/51%)'1=1'--&%;U
20090101121234
                  P/51%)'13;(11quot;0).Dquot;16/'0
20090102142345
                  P/51%)'132/51%)quot;!=-%6)
2008123123456     P/51%)'1=5quot;).%--.Dquot;16/'06

                 BL_4R4I`$Dquot;16/'0$@?aP$$
                 $$6;9quot;2%.2/51%)/'06LC
                 =2%7BbJ)'./C=6'1)
it gets worse
!&:2/51%)quot;:
version
          $$WWY.%-79%=1&
            WWV.&quot;)%=1&
 001

 002
          7-(5/0:!&:2/51%)quot;:
          $$WWY.5%22%=1&
http://www.flickr.com/photos/bk2204/475332962/
single timeline
You                            1
                                  n
                               tio           n1
                            ra           tio
                        ig
                                   gra
                      m
                   pp            mi
                  a                             n2
                             in
                          ug                tio
                         l
                       p                gra               3
                                      i              ion
                                    m
Me                                                at
                                pp            igr
                               a
            all                         pm                 ra
        nst                          p                  ig
                                    a
       i                                           nm
                                                gi
                                           plu
                            de
                         ra
                      pg
                    u
n1
                      tio
You             gra                n1
              i                tio
            m
                           gra
       pp               mi
      a
                                          n2
                 gin                  tio
             plu                    ra             n3
                                 ig
                         pm                    tio
                                            ra
                       ap                                   n2
                                         ig             tio
                                    pm               gra
                                 ap                mi
                                             gin
                                         plu
!&:2/51%)quot;:
$$WWY.%-79%=1&
  WWV.&quot;)%=1&
  WWZ.7-(5/0.)'.WWY=1&
  WW[.!quot;-)%=1&


7-(5/0:!&:2/51%)quot;:
$$WWY.5%22%=1&
Symlink?
 !&:2/51%)quot;:
 $$WWY.%-79%=1&
   WWV.&quot;)%=1&
Reference?
   WWZ.7-(5/0.)'.WWY=1&
   WW[.!quot;-)%=1&

                    Copy &
 7-(5/0:!&:2/51%)quot;:
              Retimestamp?
 $$WWY.5%22%=1&
Ticket #2058
interblah.net/plugin-migrations
my recommendation?
   (for the moment, at least)
write a generator
              (within your plugin)



c$6;1/7):5quot;0quot;1%)quot;$%;)6.%6.#(.2/51%)/'06
$$$$
$$$quot;A/6)6$$!&:2/51%)quot;
$$$;1quot;%)quot;$$!&:2/51%)quot;:VWWXWWYYYZZd.&-%9=1&

c$===
techniques
overriding functionality
views just work
controllers
straight override
module
namespaced
playing nice with the
     class cache
1/23*8/36/1**$#2quot;'#3-43-'!3$$(!/

                              !
9quot;%/)((-/!(73:(;/6!37/'9(/73;+$(/
                             <
                            <
'!((/)+'/#%/%'#$$/quot;2'#:(<< < <
                          <<
O;)/Dquot;_(77'1)JJequot;7quot;0!quot;0;/quot;6=-'%!.'0;quot;.7%)96
ApplicationController




AppController                 PluginController
ApplicationController




                  PluginController
23-6#,&(-:#!3-7(-'.!)


 ?%/-6JJQ0/)/%-/fquot;1=1(0$!'$+;'0#/5+
 $$3$quot;);===

 $$;'0#/5=1quot;-'%!.7-(5/06$,$)1(quot;
 $$
 quot;0!
83+!5*$+,#-&quot;**&23-'!3$$(!%&,33;523-'!3$$(!.!)



  ;-%66$g''!I'0)1'--quot;1$h$===
  $$(0-'%!%&-quot;
  $$
  $$3$quot;);$===

  quot;0!
init.rb woes
785*$+,#-&#-#'.!)



;'0#/5=)'.71quot;7%1quot;$!'

$$_'2quot;O77I-%66=quot;A)quot;0!BP<iquot;9%D/'(1C
$$
quot;0!
testing
ApplicationController




AppController                 PluginController
ApplicationController


                                ode
                           ir C
                        The
                              Code
                         Your




                  PluginController
quot;
    $
    !
#
unit test?
test in your own rails
    environment?
plugin_test_helper
I care about testing
     my chunk
You care about testing
   your whole app
empower the
 developer
avoiding fail
;%6quot;$;'!quot;=;'06(2quot;1

$$89quot;0$;'!quot;=%()9'1
$$$$1quot;(6quot;=2'6)-<$,j$:quot;##quot;;)/Dquot;:

$$89quot;0$1%0!B!quot;Dquot;-'7quot;1C
$$$$1quot;(6quot;=)1/;U/quot;1.&().7'66/&-quot;B)1(quot;C

$$quot;-6quot;
$$$$1quot;(6quot;='Dquot;11%)quot;!N

quot;0!
consume wisely
Nutrition Facts
Serving Size 14 kloc
Amount Per Serving 1 bad engine
Calories 10,666
                    % Daily Value*
Total Fat 2674g        98%
                       34%
 Long Methods 1578g
                        7%
 God Objects 326g
Stress 320mg         119%
Hairloss 45g         45.8%
Technical Debt 13g     87%
 Untested Code 1578mg 34%
                        7%
 Hidden Bugs 326mg
Benefit 1mg           0.1%
you will not be able to
 write some engines.
you will not be able to
  use some engines.
extract
specific functionality
establish some
clear integration points
you are customer #1
READ the CODE
james@lazyatom.com




  FIN
lets@gofreerange.com

Contenu connexe

Similaire à The Even Darker Art Of Rails Engines Presentation

用設計看世界
用設計看世界用設計看世界
用設計看世界吉閔 鄭
 
Social Media for Cause Marketers - CMF 2009 Workshop
Social Media for Cause Marketers - CMF 2009 WorkshopSocial Media for Cause Marketers - CMF 2009 Workshop
Social Media for Cause Marketers - CMF 2009 WorkshopMediaSauce
 
Wikimedia Foundation: Annual Plan 2008-2009
Wikimedia Foundation: Annual Plan 2008-2009Wikimedia Foundation: Annual Plan 2008-2009
Wikimedia Foundation: Annual Plan 2008-2009guestc4425
 
K+N DOIT Product Overview
K+N DOIT Product OverviewK+N DOIT Product Overview
K+N DOIT Product Overviewmtmsolutions
 

Similaire à The Even Darker Art Of Rails Engines Presentation (11)

Hamdeli 2
Hamdeli 2Hamdeli 2
Hamdeli 2
 
用設計看世界
用設計看世界用設計看世界
用設計看世界
 
Social Media for Cause Marketers - CMF 2009 Workshop
Social Media for Cause Marketers - CMF 2009 WorkshopSocial Media for Cause Marketers - CMF 2009 Workshop
Social Media for Cause Marketers - CMF 2009 Workshop
 
Vietnam Online Travel Behaviors
Vietnam Online Travel BehaviorsVietnam Online Travel Behaviors
Vietnam Online Travel Behaviors
 
Thailand ICT Market Survey 2008
Thailand ICT Market Survey 2008Thailand ICT Market Survey 2008
Thailand ICT Market Survey 2008
 
Layouts
LayoutsLayouts
Layouts
 
Wikimedia Foundation: Annual Plan 2008-2009
Wikimedia Foundation: Annual Plan 2008-2009Wikimedia Foundation: Annual Plan 2008-2009
Wikimedia Foundation: Annual Plan 2008-2009
 
OpenSSO Microsoft Interop
OpenSSO Microsoft InteropOpenSSO Microsoft Interop
OpenSSO Microsoft Interop
 
Moms 8.0: Celebrities
Moms 8.0: Celebrities Moms 8.0: Celebrities
Moms 8.0: Celebrities
 
Salah Prez Cogifactory
Salah Prez CogifactorySalah Prez Cogifactory
Salah Prez Cogifactory
 
K+N DOIT Product Overview
K+N DOIT Product OverviewK+N DOIT Product Overview
K+N DOIT Product Overview
 

Plus de railsconf

Smacking Git Around Advanced Git Tricks
Smacking Git Around   Advanced Git TricksSmacking Git Around   Advanced Git Tricks
Smacking Git Around Advanced Git Tricksrailsconf
 
Running The Show Configuration Management With Chef Presentation
Running The Show  Configuration Management With Chef PresentationRunning The Show  Configuration Management With Chef Presentation
Running The Show Configuration Management With Chef Presentationrailsconf
 
Sd208 Ds%2 C0
Sd208 Ds%2 C0Sd208 Ds%2 C0
Sd208 Ds%2 C0railsconf
 
Rails Is From Mars Ruby Is From Venus Presentation 1
Rails Is From Mars  Ruby Is From Venus Presentation 1Rails Is From Mars  Ruby Is From Venus Presentation 1
Rails Is From Mars Ruby Is From Venus Presentation 1railsconf
 
Rails 3 And The Real Secret To High Productivity Presentation
Rails 3 And The Real Secret To High Productivity PresentationRails 3 And The Real Secret To High Productivity Presentation
Rails 3 And The Real Secret To High Productivity Presentationrailsconf
 
Quality Code With Cucumber Presentation
Quality Code With Cucumber PresentationQuality Code With Cucumber Presentation
Quality Code With Cucumber Presentationrailsconf
 
J Ruby On Rails Presentation
J Ruby On Rails PresentationJ Ruby On Rails Presentation
J Ruby On Rails Presentationrailsconf
 
Integrating Flex And Rails With Ruby Amf
Integrating Flex And Rails With Ruby AmfIntegrating Flex And Rails With Ruby Amf
Integrating Flex And Rails With Ruby Amfrailsconf
 
Don T Mock Yourself Out Presentation
Don T Mock Yourself Out PresentationDon T Mock Yourself Out Presentation
Don T Mock Yourself Out Presentationrailsconf
 
Gov 2 0 Transparency Collaboration And Participation In Practice Presentation
Gov 2 0  Transparency  Collaboration  And Participation In Practice PresentationGov 2 0  Transparency  Collaboration  And Participation In Practice Presentation
Gov 2 0 Transparency Collaboration And Participation In Practice Presentationrailsconf
 
Crate Packaging Standalone Ruby Applications
Crate  Packaging Standalone Ruby ApplicationsCrate  Packaging Standalone Ruby Applications
Crate Packaging Standalone Ruby Applicationsrailsconf
 
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...railsconf
 
Building A Mini Google High Performance Computing In Ruby
Building A Mini Google  High Performance Computing In RubyBuilding A Mini Google  High Performance Computing In Ruby
Building A Mini Google High Performance Computing In Rubyrailsconf
 
A Z Introduction To Ruby On Rails
A Z Introduction To Ruby On RailsA Z Introduction To Ruby On Rails
A Z Introduction To Ruby On Railsrailsconf
 
Below And Beneath Tdd Test Last Development And Other Real World Test Patter...
Below And Beneath Tdd  Test Last Development And Other Real World Test Patter...Below And Beneath Tdd  Test Last Development And Other Real World Test Patter...
Below And Beneath Tdd Test Last Development And Other Real World Test Patter...railsconf
 

Plus de railsconf (15)

Smacking Git Around Advanced Git Tricks
Smacking Git Around   Advanced Git TricksSmacking Git Around   Advanced Git Tricks
Smacking Git Around Advanced Git Tricks
 
Running The Show Configuration Management With Chef Presentation
Running The Show  Configuration Management With Chef PresentationRunning The Show  Configuration Management With Chef Presentation
Running The Show Configuration Management With Chef Presentation
 
Sd208 Ds%2 C0
Sd208 Ds%2 C0Sd208 Ds%2 C0
Sd208 Ds%2 C0
 
Rails Is From Mars Ruby Is From Venus Presentation 1
Rails Is From Mars  Ruby Is From Venus Presentation 1Rails Is From Mars  Ruby Is From Venus Presentation 1
Rails Is From Mars Ruby Is From Venus Presentation 1
 
Rails 3 And The Real Secret To High Productivity Presentation
Rails 3 And The Real Secret To High Productivity PresentationRails 3 And The Real Secret To High Productivity Presentation
Rails 3 And The Real Secret To High Productivity Presentation
 
Quality Code With Cucumber Presentation
Quality Code With Cucumber PresentationQuality Code With Cucumber Presentation
Quality Code With Cucumber Presentation
 
J Ruby On Rails Presentation
J Ruby On Rails PresentationJ Ruby On Rails Presentation
J Ruby On Rails Presentation
 
Integrating Flex And Rails With Ruby Amf
Integrating Flex And Rails With Ruby AmfIntegrating Flex And Rails With Ruby Amf
Integrating Flex And Rails With Ruby Amf
 
Don T Mock Yourself Out Presentation
Don T Mock Yourself Out PresentationDon T Mock Yourself Out Presentation
Don T Mock Yourself Out Presentation
 
Gov 2 0 Transparency Collaboration And Participation In Practice Presentation
Gov 2 0  Transparency  Collaboration  And Participation In Practice PresentationGov 2 0  Transparency  Collaboration  And Participation In Practice Presentation
Gov 2 0 Transparency Collaboration And Participation In Practice Presentation
 
Crate Packaging Standalone Ruby Applications
Crate  Packaging Standalone Ruby ApplicationsCrate  Packaging Standalone Ruby Applications
Crate Packaging Standalone Ruby Applications
 
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
 
Building A Mini Google High Performance Computing In Ruby
Building A Mini Google  High Performance Computing In RubyBuilding A Mini Google  High Performance Computing In Ruby
Building A Mini Google High Performance Computing In Ruby
 
A Z Introduction To Ruby On Rails
A Z Introduction To Ruby On RailsA Z Introduction To Ruby On Rails
A Z Introduction To Ruby On Rails
 
Below And Beneath Tdd Test Last Development And Other Real World Test Patter...
Below And Beneath Tdd  Test Last Development And Other Real World Test Patter...Below And Beneath Tdd  Test Last Development And Other Real World Test Patter...
Below And Beneath Tdd Test Last Development And Other Real World Test Patter...
 

Dernier

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Dernier (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

The Even Darker Art Of Rails Engines Presentation