Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Standing on the shoulders of giants
Search
Sergio Gil
April 23, 2013
Programming
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Standing on the shoulders of giants
#railsberry
Sergio Gil
April 23, 2013
More Decks by Sergio Gil
See All by Sergio Gil
Understanding Unix pipes with Ruby
porras
0
260
Crystal
porras
4
380
Enumerator.is_an(Enumerable) [es]
porras
0
190
5 hidden gems of the Ruby Standard Library
porras
2
300
Enumerator is an Enumerable 💃
porras
3
160
Queue and SizedQueue: hidden gems in the Ruby standard library
porras
0
220
Laziness
porras
3
260
I used to be a writer (love letter to Ruby)
porras
2
260
Acceptance Testing with RSpec, Capybara & friends
porras
1
300
Other Decks in Programming
See All in Programming
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.2k
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
170
Web3Dライブラリを作ってVue Custom Rendererの仕組みを理解しよう / lets learn vue custom renderer by making 3d library
drumath2237
1
130
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
330
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
740
Claude Code ハーネスDeep Dive – 君はどこまで制御する? -
takateeen_knj
6
4.7k
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
1
300
[DroidKnights 2026] Workflow AX: From Auto-Documented Policies to E2E Testing
raeminkang
0
540
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
140
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
640
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
170
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
170
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
6.4k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.5k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
430
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
320
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
Designing Powerful Visuals for Engaging Learning
tmiket
1
650
Odyssey Design
rkendrick25
PRO
2
930
sira's awesome portfolio website redesign presentation
elsirapls
0
500
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
23k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
680
Transcript
Standing on the shoulders of giants Sergio Gil · @porras
None
Isaac Newton (1642-1727)
“If I have seen further is by standing on the
shoulders of giants”
Sergio Gil @porras http://iamserg.io ¡Hola! Dzień Dobry!
None
None
14,000 LOC
$ bundle show
* actionmailer (3.2.13) * actionpack (3.2.13) * activemodel (3.2.13) *
activerecord (3.2.13) * activeresource (3.2.13) * activesupport (3.2.13) * addressable (2.3.2) * airbrake (3.1.6) * almodovar (0.6.2) * amq-client (0.9.4) * amq-protocol (0.9.5) * amqp (0.9.7) * arel (3.0.2) * aws-sdk (1.3.9) * be_spreadsheet (0.0.1 ac9b4e3) * browser (0.1.5) * browsernizer (0.2.0) * builder (3.0.4) * bullet (4.3.0) * bundler (1.3.5) * bunny (0.8.0) * capistrano (2.13.4) * capybara (1.1.4) * childprocess (0.3.8) * choice (0.1.6) * chronic (0.9.0) * cocaine (0.3.2) * colored (1.2) * columnize (0.3.6) * connection_pool (1.0.0) * cookiejar (0.3.0) * crack (0.3.2) * curb (0.8.1) * daemon-spawn (0.4.2) * daemons (1.1.9) * dalli (2.5.0) * database_cleaner (0.9.1) * delayed_job (3.0.4) * delayed_job_active_record (0.3.3) * diff-lcs (1.1.3) * dynamic_form (1.1.4) * em-http-request (1.0.3) * em-socksify (0.2.1) * email_spec (1.4.0) * equivalent-xml (0.3.0) * erubis (2.7.0) * eventmachine (1.0.0) * eventwire (0.0.1 594f817) * excon (0.16.7) * faraday (0.8.4) * fastercsv (1.5.5) * ffi (1.4.0) * fog (1.6.0) * formatador (0.2.3) * girl_friday (0.11.2) * google-spreadsheet-ruby (0.3.0) * google_drive (0.3.1) * haml (3.1.7) * hashie (1.2.0) * highline (1.6.15) * hike (1.2.1) * http_parser.rb (0.5.3) * httparty (0.10.0) * httpauth (0.2.0) * i18n (0.6.1) * iso-639 (0.0.3) * iso8601 (0.4.0) * jasmine (1.3.1) * jasmine-core (1.3.1) * journey (1.0.4) * jquery-rails (1.0.19) * json (1.7.7) * jwt (0.1.5) * launchy (2.1.2) * linecache (0.46) * log4r (1.1.10) * mail (2.5.3) * metadata-exporters (1.0.0) * metadata-publishers (1.0.0) * metadata-sdk (1.0.0) * mime-types (1.21) * multi_json (1.7.0) * multi_xml (0.5.2) * multipart-post (1.1.5) * mysql (2.8.1) * mysql2 (0.3.11) * nested_open_struct (1.0.0) * net-scp (1.0.4) * net-sftp (2.0.5) * net-ssh (2.6.1) * net-ssh-gateway (1.1.0) * newrelic_rpm (3.5.3.25) * nokogiri (1.5.5) * nokogiri-diff (0.1.2) * oauth (0.4.7) * oauth2 (0.8.0) * omniauth (1.1.1) * omniauth-oauth (1.0.1) * omniauth-sheriff (0.0.2 0b9872e) * paperclip (2.7.1) * parallel (0.6.2) * parallel_tests (0.10.0) * patron (0.4.18) * pdfkit (0.5.2) * pdfkitten (0.0.1 7efcc2d) * persistize (0.2.0) * polyglot (0.3.3) * progressbar (0.11.0) * pusher (0.10.0) * rack (1.4.5) * rack-cache (1.2) * rack-protection (1.2.0) * rack-ssl (1.3.3) * rack-test (0.6.2) * rails (3.2.13) * railties (3.2.13) * rake (10.0.3) * rbx-require-relative (0.0.9) * rcov (1.0.0) * rdoc (3.12.2) * riddle (1.5.3) * roo (1.10.1) * rspec (2.12.0) * rspec-core (2.12.2) * rspec-expectations (2.12.1) * rspec-mocks (2.12.2) * rspec-rails (2.12.2) * rubinius-actor (0.0.2) * rubinius-core-api (0.0.1) * ruby-debug (0.10.4) * ruby-debug-base (0.10.4) * ruby-hmac (0.4.0) * ruby-ole (1.2.11.6) * ruby-prof (0.11.2) * rubyzip (0.9.9) * sass (3.2.1) * schema_plus (0.4.1) * selenium-webdriver (2.29.0) * signature (0.1.4) * sinatra (1.3.3) * spork (0.9.2) * spreadsheet (0.7.5) * sprockets (2.2.2) * steak (2.0.0) * system_timer (1.2.4) * tdiff (0.3.3) * thin (1.5.0) * thinking-sphinx (2.0.13 465c7e0) * thor (0.17.0) * tilt (1.3.6) * timecop (0.5.9.2) * todonotes (0.1.0) * treetop (1.4.12) * tzinfo (0.3.37) * uniform_notifier (1.1.1) * uuidtools (2.1.3) * valuable (0.9.6) * webmock (1.9.2) * websocket (1.0.7) * will_paginate (3.0.3) * xpath (0.1.4) * yajl-ruby (1.1.0) 162 gems 700,000 LOC
14,000 700,000
Ruby 900,000 LOC
MySQL 1,400,000 LOC
Apache 2,200,000 LOC
Linux 15,000,000 LOC
...
None
None
0.07%
Stepping Off
Dependencies
Experiment
The Extremist Programmer Way™
Ruby
Ruby No gems
Ruby No gems No stdlib
Ruby No gems No stdlib No webserver
Ruby No gems No stdlib No webserver Just Ruby
https://github.com/porras/rosendo
—
Don’t worship. Understand
None
Sergio Gil @porras http://iamserg.io Thank you. References http://en.wikipedia.org/wiki/Isaac_Newton http://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants http://cloc.sourceforge.net/
http://www.ohloh.net/ https://github.com/porras/rosendo http://en.wikipedia.org/wiki/Rosendo_Mercado