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
250
Crystal
porras
4
370
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
250
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
ソフトウェアラスタライザ
fadis
1
800
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
150
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
3
510
Security issues being discussed on Web Platforms
petamoriken
0
530
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
160
Intent as Code
shoppingjaws
6
720
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
440
Webの地図
yosuke_furukawa
PRO
6
3.9k
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
230
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
470
Foundry Localでエージェント開発
seosoft
0
160
Building an Out-of-Order CPU
latte72
1
750
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
230
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
For a Future-Friendly Web
brad_frost
183
10k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Balancing Empowerment & Direction
lara
6
1.3k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Speed Design
sergeychernyshev
33
2.1k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
270
Music & Morning Musume
bryan
47
7.4k
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