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
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
490
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
370
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
1
7.2k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
240
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
170
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
340
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
480
一人だけ、Kiroが静止する日
hideg
0
120
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
14
11k
Family mrubyの進捗
kishima
1
130
App Intentsのビルドプロセスを支える技術
kntkymt
0
420
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
140
Featured
See All Featured
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
260
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Building Applications with DynamoDB
mza
96
7.2k
Designing Experiences People Love
moore
143
24k
Darren the Foodie - Storyboard
khoart
PRO
4
3.9k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Prompt Engineering for Job Search
mfonobong
0
460
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.9k
Optimizing for Happiness
mojombo
378
71k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
550
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