SlideShare ist ein Scribd-Unternehmen logo
1 von 110
Downloaden Sie, um offline zu lesen
{                    OSS Project

Friday, April 16, 2010
{                    Rails

Friday, April 16, 2010
We were trying to do:

   * more choice
   * more modularity
   * more performance
   * toolkit for building other



                         Merb
   stuff (SproutCore)

   These things sound counter to
   Rails’ philosophy... goes to
   show that seemingly
   oppositional OSS ideas may
   not, in fact, be oppositional.

   Solving problems given
   competing constraints is the
   truly hard problem in OSS.

Friday, April 16, 2010
Question
Friday, April 16, 2010
Why does Rails
         make devs
          happy?
Friday, April 16, 2010
“Optimized for
              Developer
             Happiness”
Friday, April 16, 2010
Friday, April 16, 2010
Optimizing
                         Locks You In

Friday, April 16, 2010
Harder, but
              possible to
             optimize later
Friday, April 16, 2010
Defer
                         Optimizing
                         Measurable
                          Things
                               Gathering data will
                               make your measurable
                               optimizations better

Friday, April 16, 2010
One of the worst things
                you can do is ask your
                users to individually
                bear the cost of an
                optimization
                (modularity, perf)

Friday, April 16, 2010
Dynamic

Friday, April 16, 2010
Rails’ choice of Ruby
                         was not due to
                         popularity...




Friday, April 16, 2010
Friday, April 16, 2010
“If you don’t
                         like it, x it”

Friday, April 16, 2010
“For the past ve days I have
  been struggling with a bug in
   the route code in rails 1.2.3. I
       nally monkey patched
  url_for to essentially force it to
          do the obvious”

Friday, April 16, 2010
One of the worst things
       you can do is ask your
       users to individually
       bear the cost of an
       optimization
       (modularity, perf)


                         “Evil”?
                                 Optimizing for these
                                 things at an early stage
                                 is essentially doing
                                 battle with your users
                                 (see: bundler)


Friday, April 16, 2010
Nothing Beats
                 Adoption

Friday, April 16, 2010
Users stress-test your
       application in ways
       that you would not
       have thought of,
       making it more robust




Friday, April 16, 2010
Users help drive the
       needed feature-set...
       the faster you get real
       users, the sooner you’re
       basing your project on
       reality. It’s not easy to
       reverse course later.




Friday, April 16, 2010
Business Is
                     Good for the
                      Ecosystem
Friday, April 16, 2010
Why there’s no Rails Inc.
Friday, April 16, 2010
the growth of the Rails ecosystem
   has been staggering. There are so
     many shops out there offering
     Rails consulting and training. I
  believe part of that proliferation is
  due to the fact that there's no core-
       group monopoly that can
          dominate the market
Friday, April 16, 2010
We have a tendency to
       underestimate the
       net work effect.

       Reducing the friction
       for users and
       businesses to interact
       results in a net work
       effect.

      Stifling it, therefore,
      stifles the net work
      effect.




Friday, April 16, 2010
The company I work
       for, Engine Yard, exists
       because DHH
       encouraged businesses
       to help build the
       ecosystem.

      Not everything we do is
      OSS, but our existence
      increases the amount
      of OSS in the world.




Friday, April 16, 2010
trademarks of DHH
Friday, April 16, 2010
MIT License

Friday, April 16, 2010
Attribution and
      Credit Build
     Communities
Friday, April 16, 2010
Nothing Beats
             Adoption

Friday, April 16, 2010
PDI

Friday, April 16, 2010
Please Do
                         Investigate

Friday, April 16, 2010
Issue is that has_one associations
           don't cache nils, whereas
         has_many do cache the empty
          array... This results in lots of
         unnecessary and unexpected
               queries for all those
          people that don't have things
                             Note that this post is
                             in 2006
Friday, April 16, 2010
Yes, please do investigate
      something better. I
     believe it was done
    simply because it was
       easy at the time
Friday, April 16, 2010
@obie: Gawd, it's lame
      that unobtrusive
     javascript helpers
    have dropped off the
     Rails 3.0 roadmap
Friday, April 16, 2010
@obie Re: Unobtrusive JS.
        We had someone
  volunteering to do the work,
  but they dropped out. If you
   have someone willing and
           able, PDI!
Friday, April 16, 2010
DHH != Rails
Friday, April 16, 2010
These programmers share a
   similar weltanschauung, but
    they don't need to care only
     about the things that I care
  about. In fact, the system works
   much better if they care about
      different things than I do
Friday, April 16, 2010
My core philosophy
  about open source is that
  we should all be working
    on the things that we
                         Sharing a worldview,
   personally use and care
                         and waiting a bit for
                         something coherent
                         before opening the
            about.       doors wide, mitigates
                         against scary shit

Friday, April 16, 2010
These
        programmers
        share a similar
       weltanschauung
Friday, April 16, 2010
Shared Goals

Friday, April 16, 2010
Convention
                 Over
             Con guration
Friday, April 16, 2010
<abs>
                         situps
                         </abs>
Friday, April 16, 2010
Propaganda
                            Works

Friday, April 16, 2010
Market First

Friday, April 16, 2010
Respond to
                         Objections
                            Later
                                The people with the
                                objections aren’t your
                                early adopters

Friday, April 16, 2010
Friday, April 16, 2010
Be High Impact

Friday, April 16, 2010
Don’t Cheat

Friday, April 16, 2010
(it will be
                                One of the wins of the

                         obvious)
                                15 minute demo was
                                that it got into quite
                                a bit of nitty gritty.
                                There’s some code
                                generation, but you
                                can easily see that
                                the techniques scale


Friday, April 16, 2010
Cheating also
          results in
       confused users
Friday, April 16, 2010
Assume Little

Friday, April 16, 2010
Don’t Try to
                           Explain
                                 Prospective users will

                         Everything
                                 give you 15 minutes;
                                 you’ll lose a ton of
                                 people if you ask them
                                 to spend days on it.


                          Up Front
                                 Show them the quick
                                 win.


Friday, April 16, 2010
Learn Symfony in 24 Days
Friday, April 16, 2010
Today, we have barely
    written PHP code but we
  have a working web module
   for the job model, ready to
  be tweaked and customized.
    Remember, no PHP code
       also means no bugs!
                          Day 3
Friday, April 16, 2010
Controversy is
               Good

Friday, April 16, 2010
Especially When
           it’s Not About
              Your Core
           Functionality
Friday, April 16, 2010
FUD
Friday, April 16, 2010
You Can Fight
              it... to a Point

Friday, April 16, 2010
Pick Your
                          Battles

Friday, April 16, 2010
And the Terms
         on Which They
          Are Fought
Friday, April 16, 2010
“Ruby is Slow”
                         We’ve gotten better
                         at this... this section
                         is more about what
                         we’ve learned than us
                         getting it right the
                         first time.
Friday, April 16, 2010
OK:
                         Productivity
                           is More
                                 Because when it
                                 comes down to it,


                          Important
                                 everything in
                                 business *is* a
                                 tradeoff... velocity
                                 always matters
Friday, April 16, 2010
Better: HTTP
                      Overhead
                      Makes This
                        Moot
Friday, April 16, 2010
Best: Actually
                 Win Some
                Benchmarks
                         Challenge the FUD
                         head-on... in this
                         case, Rails has
                         basically *never*
                         been slower than PHP
                         frameworks
Friday, April 16, 2010
Avoid
                         Stockholm’s
                          Syndrome
Friday, April 16, 2010
Rails Can’t
                           Scale

Friday, April 16, 2010
Friday, April 16, 2010
Friday, April 16, 2010
1 in 200 Page
                 Views on the
                 Internet is to
                  twitter.com
Friday, April 16, 2010
(not including
                  API)

Friday, April 16, 2010
API Numbers
   are Higher than
         90%
Friday, April 16, 2010
Tout Your
   Successes and
  Don’t be Cowed
Friday, April 16, 2010
Friday, April 16, 2010
Have a Safe
                          Backup

Friday, April 16, 2010
Mobilize
                Around Weak
                   Points
Friday, April 16, 2010
Friday, April 16, 2010
Friday, April 16, 2010
“We started Engine Yard in early
     2006 to meet a genuine need:
      customers were developing
   business-critical Rails applications,
     but they didn’t want to worry
    about application deployment,
       management and scaling”

Friday, April 16, 2010
Businesses

Friday, April 16, 2010
Businesses
                             +
                         Community
Friday, April 16, 2010
Getting businesses
                         invested means that the
                         money is there without
                         huge companies like Sun...

                         We can fund important
                         projects, but financial
                         interests keep us grounded

Friday, April 16, 2010
“Rails is Too
                           Hard to
                           Deploy”
Friday, April 16, 2010
Identify Your
                    Competition

Friday, April 16, 2010
It’s useful to know
                         exactly what the target
                         is.

                         At some point, the Rails
                         community ended up with
                         stockholm syndrome
                         about this and didn’t
                         notice the problem was
                         solved

Friday, April 16, 2010
The FTP strategy only
                         takes you so far...

Friday, April 16, 2010
Friday, April 16, 2010
Friday, April 16, 2010
Friday, April 16, 2010
Friday, April 16, 2010
Friday, April 16, 2010
Friday, April 16, 2010
Friday, April 16, 2010
In short,
                          technical
                         problems...
Friday, April 16, 2010
...have
                         technical
                         solutions
Friday, April 16, 2010
Don’t be a
                         slave to FUD

Friday, April 16, 2010
Know Your
                         Competition
                                I’ve read, cover to
                                cover, the books on
                                virtually all major
                                competing
                                frameworks
Friday, April 16, 2010
There’s Plenty
                 to Steal

Friday, April 16, 2010
Debate is OK
        The OSS community            But if you’re going to
        alternates from ridiculous   debate, you have to know
        to “why are we arguing”      what you’re talking about.

        A good vigorous debate,
        even if it sometimes gets
        loud, is absolutely OK
Friday, April 16, 2010
ActiveRecord
                  comes from
                    PPoEA
Friday, April 16, 2010
“Enterprise
                 Architecture”
        Does that sound like Rails
        to you?

        The bottom line is that
        conflicting philosophies
        can have good ideas.


Friday, April 16, 2010
One Last
                         Thing...

Friday, April 16, 2010
Convention
                 over
             Con guration
Friday, April 16, 2010
Con guration
             Options are a
               Cop-Out
Friday, April 16, 2010
Trade-Offs are
              Not Linear

Friday, April 16, 2010
Experiments?
           Given the “convention”
           philosophy, you might
           expect Rails to
           experiment very little

Friday, April 16, 2010
Dynlang +
           Vibrant Plugin
             Ecosystem
           But actually, Rails people
           are some of the most
                                        Clojure? Erlang? Evented
                                        Programming? Node.JS?
           bleeding-edge people
           around

Friday, April 16, 2010
Pull in Best
                          Practices
           But a good plugin
           ecosystem means you
           can be fairly
           conser vative.

Friday, April 16, 2010
Make Sure
                     Defaults Still
                     Make Sense
            There will always be people tugging   Rails 3 solution (in
            on the defaults. The strength of      general)
            conventions is in avoiding the tug.
Friday, April 16, 2010
Thank you

Friday, April 16, 2010
Questions?

Friday, April 16, 2010

Weitere ähnliche Inhalte

Andere mochten auch

Sprout core and performance
Sprout core and performanceSprout core and performance
Sprout core and performanceYehuda Katz
 
Rails 3 overview
Rails 3 overviewRails 3 overview
Rails 3 overviewYehuda Katz
 
Rails 3 Beautiful Code
Rails 3 Beautiful CodeRails 3 Beautiful Code
Rails 3 Beautiful CodeGreggPollack
 
Statistical survey project
Statistical survey projectStatistical survey project
Statistical survey projectjep2792
 
Introduction to the statistics project
Introduction to the statistics projectIntroduction to the statistics project
Introduction to the statistics projectpmakunja
 
Statistics student sample project (1)
Statistics student sample project (1)Statistics student sample project (1)
Statistics student sample project (1)Jef Faciol
 

Andere mochten auch (9)

Sprout core and performance
Sprout core and performanceSprout core and performance
Sprout core and performance
 
Rails 3 overview
Rails 3 overviewRails 3 overview
Rails 3 overview
 
Rails 3 Beautiful Code
Rails 3 Beautiful CodeRails 3 Beautiful Code
Rails 3 Beautiful Code
 
Statistical survey project
Statistical survey projectStatistical survey project
Statistical survey project
 
Statistical Project
Statistical ProjectStatistical Project
Statistical Project
 
Introduction to the statistics project
Introduction to the statistics projectIntroduction to the statistics project
Introduction to the statistics project
 
statistics project
statistics projectstatistics project
statistics project
 
Statistics student sample project (1)
Statistics student sample project (1)Statistics student sample project (1)
Statistics student sample project (1)
 
Statistical ppt
Statistical pptStatistical ppt
Statistical ppt
 

Ähnlich wie Making your oss project more like rails

Testing inspiration
Testing inspirationTesting inspiration
Testing inspirationAdam Goucher
 
The Future of Business Intelligence
The Future of Business IntelligenceThe Future of Business Intelligence
The Future of Business IntelligenceTim O'Reilly
 
Summer of Tech Careers Seminar 2010
Summer of Tech Careers Seminar 2010Summer of Tech Careers Seminar 2010
Summer of Tech Careers Seminar 2010summerofcode
 
Paymentez / Mentez Programa para LAN Houses - CDI-LAN
Paymentez / Mentez Programa para LAN Houses - CDI-LANPaymentez / Mentez Programa para LAN Houses - CDI-LAN
Paymentez / Mentez Programa para LAN Houses - CDI-LANAndrew de Andrade
 
WTF is NoSQL
WTF is NoSQLWTF is NoSQL
WTF is NoSQLAstrails
 
Uwm conf advertise yourself - personal brand
Uwm conf   advertise yourself - personal brandUwm conf   advertise yourself - personal brand
Uwm conf advertise yourself - personal brandrollinsc
 
Melvin Vivas' talk at Phil. Tech Startups Meetup
Melvin Vivas' talk at Phil. Tech Startups MeetupMelvin Vivas' talk at Phil. Tech Startups Meetup
Melvin Vivas' talk at Phil. Tech Startups MeetupMelvin Dave Vivas
 
Google App Engine - Devfest India 2010
Google App Engine -  Devfest India 2010Google App Engine -  Devfest India 2010
Google App Engine - Devfest India 2010Patrick Chanezon
 
Persistence Smoothie: Blending SQL and NoSQL (RubyNation Edition)
Persistence  Smoothie: Blending SQL and NoSQL (RubyNation Edition)Persistence  Smoothie: Blending SQL and NoSQL (RubyNation Edition)
Persistence Smoothie: Blending SQL and NoSQL (RubyNation Edition)Michael Bleigh
 
Kill Accessibility
Kill AccessibilityKill Accessibility
Kill AccessibilityGary Barber
 
Reporting, the easy way
Reporting, the easy wayReporting, the easy way
Reporting, the easy wayWill Trillich
 
Rise of devops
Rise of devopsRise of devops
Rise of devopsatmosorg
 
Engaging with your research community
Engaging with your research community Engaging with your research community
Engaging with your research community lganster
 
Introducing Riak and Ripple
Introducing Riak and RippleIntroducing Riak and Ripple
Introducing Riak and RippleSean Cribbs
 
Open Source in the Cloud Computing Era
Open Source in the Cloud Computing EraOpen Source in the Cloud Computing Era
Open Source in the Cloud Computing EraTim O'Reilly
 
CAST May 2010
CAST May 2010CAST May 2010
CAST May 2010Aerin Guy
 

Ähnlich wie Making your oss project more like rails (20)

Testing inspiration
Testing inspirationTesting inspiration
Testing inspiration
 
100 paper cuts
100 paper cuts100 paper cuts
100 paper cuts
 
Greenplum 100419142438 Phpapp02
Greenplum 100419142438 Phpapp02Greenplum 100419142438 Phpapp02
Greenplum 100419142438 Phpapp02
 
The Future of Business Intelligence
The Future of Business IntelligenceThe Future of Business Intelligence
The Future of Business Intelligence
 
Summer of Tech Careers Seminar 2010
Summer of Tech Careers Seminar 2010Summer of Tech Careers Seminar 2010
Summer of Tech Careers Seminar 2010
 
Paymentez / Mentez Programa para LAN Houses - CDI-LAN
Paymentez / Mentez Programa para LAN Houses - CDI-LANPaymentez / Mentez Programa para LAN Houses - CDI-LAN
Paymentez / Mentez Programa para LAN Houses - CDI-LAN
 
Presentation Hacks
Presentation HacksPresentation Hacks
Presentation Hacks
 
WTF is NoSQL
WTF is NoSQLWTF is NoSQL
WTF is NoSQL
 
Uwm women leaders advertise yourself - personal brand
Uwm women leaders   advertise yourself - personal brandUwm women leaders   advertise yourself - personal brand
Uwm women leaders advertise yourself - personal brand
 
Uwm conf advertise yourself - personal brand
Uwm conf   advertise yourself - personal brandUwm conf   advertise yourself - personal brand
Uwm conf advertise yourself - personal brand
 
Melvin Vivas' talk at Phil. Tech Startups Meetup
Melvin Vivas' talk at Phil. Tech Startups MeetupMelvin Vivas' talk at Phil. Tech Startups Meetup
Melvin Vivas' talk at Phil. Tech Startups Meetup
 
Google App Engine - Devfest India 2010
Google App Engine -  Devfest India 2010Google App Engine -  Devfest India 2010
Google App Engine - Devfest India 2010
 
Persistence Smoothie: Blending SQL and NoSQL (RubyNation Edition)
Persistence  Smoothie: Blending SQL and NoSQL (RubyNation Edition)Persistence  Smoothie: Blending SQL and NoSQL (RubyNation Edition)
Persistence Smoothie: Blending SQL and NoSQL (RubyNation Edition)
 
Kill Accessibility
Kill AccessibilityKill Accessibility
Kill Accessibility
 
Reporting, the easy way
Reporting, the easy wayReporting, the easy way
Reporting, the easy way
 
Rise of devops
Rise of devopsRise of devops
Rise of devops
 
Engaging with your research community
Engaging with your research community Engaging with your research community
Engaging with your research community
 
Introducing Riak and Ripple
Introducing Riak and RippleIntroducing Riak and Ripple
Introducing Riak and Ripple
 
Open Source in the Cloud Computing Era
Open Source in the Cloud Computing EraOpen Source in the Cloud Computing Era
Open Source in the Cloud Computing Era
 
CAST May 2010
CAST May 2010CAST May 2010
CAST May 2010
 

Mehr von Yehuda Katz

SproutCore: Amber
SproutCore: AmberSproutCore: Amber
SproutCore: AmberYehuda Katz
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the FinishYehuda Katz
 
Why You Shouldn't Write OO
Why You Shouldn't Write OO Why You Shouldn't Write OO
Why You Shouldn't Write OO Yehuda Katz
 
Vaporware To Awesome
Vaporware To AwesomeVaporware To Awesome
Vaporware To AwesomeYehuda Katz
 
Merb Day Keynote
Merb Day KeynoteMerb Day Keynote
Merb Day KeynoteYehuda Katz
 
Merb Camp Keynote
Merb Camp KeynoteMerb Camp Keynote
Merb Camp KeynoteYehuda Katz
 
jQuery and Ruby Web Frameworks
jQuery and Ruby Web FrameworksjQuery and Ruby Web Frameworks
jQuery and Ruby Web FrameworksYehuda Katz
 
jQuery Presentation to Rails Developers
jQuery Presentation to Rails DevelopersjQuery Presentation to Rails Developers
jQuery Presentation to Rails DevelopersYehuda Katz
 

Mehr von Yehuda Katz (12)

SproutCore: Amber
SproutCore: AmberSproutCore: Amber
SproutCore: Amber
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the Finish
 
Why You Shouldn't Write OO
Why You Shouldn't Write OO Why You Shouldn't Write OO
Why You Shouldn't Write OO
 
Vaporware To Awesome
Vaporware To AwesomeVaporware To Awesome
Vaporware To Awesome
 
Merb Day Keynote
Merb Day KeynoteMerb Day Keynote
Merb Day Keynote
 
Testing Merb
Testing MerbTesting Merb
Testing Merb
 
Merb jQuery
Merb jQueryMerb jQuery
Merb jQuery
 
Merb Camp Keynote
Merb Camp KeynoteMerb Camp Keynote
Merb Camp Keynote
 
Merb
MerbMerb
Merb
 
DataMapper
DataMapperDataMapper
DataMapper
 
jQuery and Ruby Web Frameworks
jQuery and Ruby Web FrameworksjQuery and Ruby Web Frameworks
jQuery and Ruby Web Frameworks
 
jQuery Presentation to Rails Developers
jQuery Presentation to Rails DevelopersjQuery Presentation to Rails Developers
jQuery Presentation to Rails Developers
 

Kürzlich hochgeladen

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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
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
 

Kürzlich hochgeladen (20)

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...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 

Making your oss project more like rails

  • 1. { OSS Project Friday, April 16, 2010
  • 2. { Rails Friday, April 16, 2010
  • 3. We were trying to do: * more choice * more modularity * more performance * toolkit for building other Merb stuff (SproutCore) These things sound counter to Rails’ philosophy... goes to show that seemingly oppositional OSS ideas may not, in fact, be oppositional. Solving problems given competing constraints is the truly hard problem in OSS. Friday, April 16, 2010
  • 5. Why does Rails make devs happy? Friday, April 16, 2010
  • 6. “Optimized for Developer Happiness” Friday, April 16, 2010
  • 8. Optimizing Locks You In Friday, April 16, 2010
  • 9. Harder, but possible to optimize later Friday, April 16, 2010
  • 10. Defer Optimizing Measurable Things Gathering data will make your measurable optimizations better Friday, April 16, 2010
  • 11. One of the worst things you can do is ask your users to individually bear the cost of an optimization (modularity, perf) Friday, April 16, 2010
  • 13. Rails’ choice of Ruby was not due to popularity... Friday, April 16, 2010
  • 15. “If you don’t like it, x it” Friday, April 16, 2010
  • 16. “For the past ve days I have been struggling with a bug in the route code in rails 1.2.3. I nally monkey patched url_for to essentially force it to do the obvious” Friday, April 16, 2010
  • 17. One of the worst things you can do is ask your users to individually bear the cost of an optimization (modularity, perf) “Evil”? Optimizing for these things at an early stage is essentially doing battle with your users (see: bundler) Friday, April 16, 2010
  • 18. Nothing Beats Adoption Friday, April 16, 2010
  • 19. Users stress-test your application in ways that you would not have thought of, making it more robust Friday, April 16, 2010
  • 20. Users help drive the needed feature-set... the faster you get real users, the sooner you’re basing your project on reality. It’s not easy to reverse course later. Friday, April 16, 2010
  • 21. Business Is Good for the Ecosystem Friday, April 16, 2010
  • 22. Why there’s no Rails Inc. Friday, April 16, 2010
  • 23. the growth of the Rails ecosystem has been staggering. There are so many shops out there offering Rails consulting and training. I believe part of that proliferation is due to the fact that there's no core- group monopoly that can dominate the market Friday, April 16, 2010
  • 24. We have a tendency to underestimate the net work effect. Reducing the friction for users and businesses to interact results in a net work effect. Stifling it, therefore, stifles the net work effect. Friday, April 16, 2010
  • 25. The company I work for, Engine Yard, exists because DHH encouraged businesses to help build the ecosystem. Not everything we do is OSS, but our existence increases the amount of OSS in the world. Friday, April 16, 2010
  • 26. trademarks of DHH Friday, April 16, 2010
  • 28. Attribution and Credit Build Communities Friday, April 16, 2010
  • 29. Nothing Beats Adoption Friday, April 16, 2010
  • 31. Please Do Investigate Friday, April 16, 2010
  • 32. Issue is that has_one associations don't cache nils, whereas has_many do cache the empty array... This results in lots of unnecessary and unexpected queries for all those people that don't have things Note that this post is in 2006 Friday, April 16, 2010
  • 33. Yes, please do investigate something better. I believe it was done simply because it was easy at the time Friday, April 16, 2010
  • 34. @obie: Gawd, it's lame that unobtrusive javascript helpers have dropped off the Rails 3.0 roadmap Friday, April 16, 2010
  • 35. @obie Re: Unobtrusive JS. We had someone volunteering to do the work, but they dropped out. If you have someone willing and able, PDI! Friday, April 16, 2010
  • 36. DHH != Rails Friday, April 16, 2010
  • 37. These programmers share a similar weltanschauung, but they don't need to care only about the things that I care about. In fact, the system works much better if they care about different things than I do Friday, April 16, 2010
  • 38. My core philosophy about open source is that we should all be working on the things that we Sharing a worldview, personally use and care and waiting a bit for something coherent before opening the about. doors wide, mitigates against scary shit Friday, April 16, 2010
  • 39. These programmers share a similar weltanschauung Friday, April 16, 2010
  • 41. Convention Over Con guration Friday, April 16, 2010
  • 42. <abs> situps </abs> Friday, April 16, 2010
  • 43. Propaganda Works Friday, April 16, 2010
  • 45. Respond to Objections Later The people with the objections aren’t your early adopters Friday, April 16, 2010
  • 47. Be High Impact Friday, April 16, 2010
  • 49. (it will be One of the wins of the obvious) 15 minute demo was that it got into quite a bit of nitty gritty. There’s some code generation, but you can easily see that the techniques scale Friday, April 16, 2010
  • 50. Cheating also results in confused users Friday, April 16, 2010
  • 52. Don’t Try to Explain Prospective users will Everything give you 15 minutes; you’ll lose a ton of people if you ask them to spend days on it. Up Front Show them the quick win. Friday, April 16, 2010
  • 53. Learn Symfony in 24 Days Friday, April 16, 2010
  • 54. Today, we have barely written PHP code but we have a working web module for the job model, ready to be tweaked and customized. Remember, no PHP code also means no bugs! Day 3 Friday, April 16, 2010
  • 55. Controversy is Good Friday, April 16, 2010
  • 56. Especially When it’s Not About Your Core Functionality Friday, April 16, 2010
  • 58. You Can Fight it... to a Point Friday, April 16, 2010
  • 59. Pick Your Battles Friday, April 16, 2010
  • 60. And the Terms on Which They Are Fought Friday, April 16, 2010
  • 61. “Ruby is Slow” We’ve gotten better at this... this section is more about what we’ve learned than us getting it right the first time. Friday, April 16, 2010
  • 62. OK: Productivity is More Because when it comes down to it, Important everything in business *is* a tradeoff... velocity always matters Friday, April 16, 2010
  • 63. Better: HTTP Overhead Makes This Moot Friday, April 16, 2010
  • 64. Best: Actually Win Some Benchmarks Challenge the FUD head-on... in this case, Rails has basically *never* been slower than PHP frameworks Friday, April 16, 2010
  • 65. Avoid Stockholm’s Syndrome Friday, April 16, 2010
  • 66. Rails Can’t Scale Friday, April 16, 2010
  • 69. 1 in 200 Page Views on the Internet is to twitter.com Friday, April 16, 2010
  • 70. (not including API) Friday, April 16, 2010
  • 71. API Numbers are Higher than 90% Friday, April 16, 2010
  • 72. Tout Your Successes and Don’t be Cowed Friday, April 16, 2010
  • 74. Have a Safe Backup Friday, April 16, 2010
  • 75. Mobilize Around Weak Points Friday, April 16, 2010
  • 78. “We started Engine Yard in early 2006 to meet a genuine need: customers were developing business-critical Rails applications, but they didn’t want to worry about application deployment, management and scaling” Friday, April 16, 2010
  • 80. Businesses + Community Friday, April 16, 2010
  • 81. Getting businesses invested means that the money is there without huge companies like Sun... We can fund important projects, but financial interests keep us grounded Friday, April 16, 2010
  • 82. “Rails is Too Hard to Deploy” Friday, April 16, 2010
  • 83. Identify Your Competition Friday, April 16, 2010
  • 84. It’s useful to know exactly what the target is. At some point, the Rails community ended up with stockholm syndrome about this and didn’t notice the problem was solved Friday, April 16, 2010
  • 85. The FTP strategy only takes you so far... Friday, April 16, 2010
  • 93. In short, technical problems... Friday, April 16, 2010
  • 94. ...have technical solutions Friday, April 16, 2010
  • 95. Don’t be a slave to FUD Friday, April 16, 2010
  • 96. Know Your Competition I’ve read, cover to cover, the books on virtually all major competing frameworks Friday, April 16, 2010
  • 97. There’s Plenty to Steal Friday, April 16, 2010
  • 98. Debate is OK The OSS community But if you’re going to alternates from ridiculous debate, you have to know to “why are we arguing” what you’re talking about. A good vigorous debate, even if it sometimes gets loud, is absolutely OK Friday, April 16, 2010
  • 99. ActiveRecord comes from PPoEA Friday, April 16, 2010
  • 100. “Enterprise Architecture” Does that sound like Rails to you? The bottom line is that conflicting philosophies can have good ideas. Friday, April 16, 2010
  • 101. One Last Thing... Friday, April 16, 2010
  • 102. Convention over Con guration Friday, April 16, 2010
  • 103. Con guration Options are a Cop-Out Friday, April 16, 2010
  • 104. Trade-Offs are Not Linear Friday, April 16, 2010
  • 105. Experiments? Given the “convention” philosophy, you might expect Rails to experiment very little Friday, April 16, 2010
  • 106. Dynlang + Vibrant Plugin Ecosystem But actually, Rails people are some of the most Clojure? Erlang? Evented Programming? Node.JS? bleeding-edge people around Friday, April 16, 2010
  • 107. Pull in Best Practices But a good plugin ecosystem means you can be fairly conser vative. Friday, April 16, 2010
  • 108. Make Sure Defaults Still Make Sense There will always be people tugging Rails 3 solution (in on the defaults. The strength of general) conventions is in avoiding the tug. Friday, April 16, 2010