Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The Future is Dead: Long live the Past
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
elcuervo
June 02, 2012
Programming
4
1.1k
The Future is Dead: Long live the Past
The Future is Dead: Long live the Past
elcuervo
June 02, 2012
Tweet
Share
More Decks by elcuervo
See All by elcuervo
Un tipo de Ruby
elcuervo
0
27
Airplay
elcuervo
0
450
Quince Primaveras
elcuervo
0
320
Apocalipsis
elcuervo
0
140
RadioFrequencia
elcuervo
0
120
TED: Cronicas de un hacker
elcuervo
0
120
Hackeando el STM
elcuervo
1
380
Teo y los contenedores
elcuervo
0
120
Objetos Encantados
elcuervo
0
160
Other Decks in Programming
See All in Programming
CSC307 Lecture 02
javiergs
PRO
1
780
Apache Iceberg V3 and migration to V3
tomtanaka
0
170
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
230
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
140
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
AI時代の認知負荷との向き合い方
optfit
0
160
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
320
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
650
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
290
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
730
Featured
See All Featured
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
380
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
460
Bash Introduction
62gerente
615
210k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
440
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
Transcript
The Future is Dead long live the past
Hi!
Bruno Aguirre
Bruno Aguirre github: elcuervo
Bruno Aguirre @cuerbot github: elcuervo
cuervo
None
None
None
None
None
None
None
None
None
None
None
disclaimer
None
relax
it’s not about this future
None
nor this past
None
None
UNIX
UNIX DB
UNIX DB WEB
UNIX
than an MORE OPERATING system
than MORE SOFTWARE
Philosophy
The ART of Unix programming Eric Raymond
Write SIMPLE parts connected by CLEAN interfaces
CLARITY is better than cleverness
Design programs to be CONNECTED to other programs
ps uax | grep ruby | sort | uniq
Design for SIMPLICITY; add complexity ONLY where you must
S R P
S R P ingle
S R P ingle esponsability
S R P ingle esponsability rinciple
PROTOTYPE before polishing. GET IT WORKING before you OPTIMIZE it
DISTRUST all claims for “ONE TRUE WAY”
Design for the FUTURE, because it will be here SOONER
than you think
KISS
KEEP
IT
SIMPLE
SWEETIE
None
“Simplicity is the ultimate sophistication” Leonardo Da Vinci 1452-1519
“Everything should be made as simple as possible, but no
simpler” Albert Einstein 1879-1955
“Unix is simple. It just takes a genius to understand
its simplicity” Dennis Ritchie 1941-2011
DB
once upon a time
RDB
ROFLSCALE
ROFLSCALE
None
POSTGRESQL
POSTGRESQL MYSQL
CONSTRAINS
None
PRIMARY KEY
PRIMARY KEY UNIQUE
PRIMARY KEY UNIQUE NOT NULL
PRIMARY KEY UNIQUE NOT NULL FOREIGN KEY
PRIMARY KEY UNIQUE NOT NULL FOREIGN KEY CHECK
PREPARED STATEMENTS
SELECT * FROM fruits WHERE id = 42;
PREPARE fruit_seeker (int) AS SELECT * FROM fruits WHERE id
= $1;
PREPARE fruit_seeker (int) AS SELECT * FROM fruits WHERE id
= $1; EXECUTE fruit_seeker(42);
~2003
QUERIES PER SECOND BOOST
~2011
STORED PROCEDURES
Execution within the database
Complex data handling
Column operations
We want to use Ruby everywhere
DON’T
WITHOUT ORM
WEB
HTTP 1.0 RFC 1945 (1996)
None
None
None
MOST WEB of the
client server request response open open close close
HTTP 1.1 RFC 2616 (1999)
None
None
None
None
Persistent connections
client server request response open close Re use open sockets
close open
client server request response open close Re use open sockets
Enabled by default
Pipelining
client server request response open close
Disabled by default
Get ready for the PAST
Firefox: can be enabled
Firefox: can be enabled Chrome: can be enabled
Firefox: can be enabled Chrome v20: enabled by default Chrome:
can be enabled
Upgrade header
GET /mychat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key:
x3JJHMbDL1EzLkh9GBhXDw== Sec-WebSocket-Protocol: chat Sec-WebSocket-Version: 13 Origin: http://example.com request
GET /mychat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key:
x3JJHMbDL1EzLkh9GBhXDw== Sec-WebSocket-Protocol: chat Sec-WebSocket-Version: 13 Origin: http://example.com request
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
Sec-WebSocket-Protocol: chat response
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
Sec-WebSocket-Protocol: chat response
That’s IT?
12 years
None
HTTP PTTH
HTTP R e v e rs e
client server
POST /reverse HTTP/1.1 Host: server.example.com Upgrade: PTTH/0.9 Connection: Upgrade Origin:
http://example.com request
POST /reverse HTTP/1.1 Host: server.example.com Upgrade: PTTH/0.9 Connection: Upgrade Origin:
http://example.com request
client server
HTTP/1.1 101 Switching Protocols Upgrade: PTTH/0.9 Connection: Upgrade response
client server
client server
server client
REAL life
None
The Future is not Dead
The Past is not Dead
None
LEARN from the past
LEARN from the past WATCH the present
LEARN from the past WATCH the present CREATE the future
Thank you!
Thank you! twitter: @cuerbot github: elcuervo
None