$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rails and the future of the open web
Search
Florian Plank
April 01, 2014
Programming
3
130
Rails and the future of the open web
Slides (without notes) for a guest lecture at the University of Applied Sciences in Oulu.
Florian Plank
April 01, 2014
Tweet
Share
More Decks by Florian Plank
See All by Florian Plank
Ready, set, immersion!
polarblau
0
190
Prototyping all the things
polarblau
2
180
CoffeeScript vs. ECMAScript 6
polarblau
5
3.5k
Design for a complex Reality — Siili Breakfast Edition
polarblau
0
150
Enabling Design for a Complex Reality
polarblau
2
130
A primer on Content Security Policy
polarblau
1
430
Brief Ruby/Ruby on Rails intro
polarblau
3
200
Ruby Idioms
polarblau
3
590
How to ask questions and find the right answers
polarblau
2
360
Other Decks in Programming
See All in Programming
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
9
5.7k
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
250
dotfiles 式年遷宮 令和最新版
masawada
1
780
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
120
AIコーディングエージェント(Gemini)
kondai24
0
230
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
18
7.5k
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
110
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
190
Go コードベースの構成と AI コンテキスト定義
andpad
0
130
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
120
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
720
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
2
1.2k
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
Unsuck your backbone
ammeep
671
58k
Context Engineering - Making Every Token Count
addyosmani
9
520
Facilitating Awesome Meetings
lara
57
6.7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
How GitHub (no longer) Works
holman
316
140k
Practical Orchestrator
shlominoach
190
11k
Side Projects
sachag
455
43k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.7k
Transcript
& RUBY ON RAILS The Future of the Open Web
THE OPEN WEB RUBY RUBY ON RAILS 1 2
1 2 3
nicolasrapp.com THE OPEN WEB
Knowledge Communication Work Social connections News Tool for political change
RICHARD DARELL — bitrebels.com
“The Internet’s great promise is to make the world’s information
universally accessible and useful.” (GARY WOLF)
“OPENNESS”
OPEN STANDARDS Non-proprietary Content, implementation and access
vs. EXAMPLE
PHILOSOPHY Decentralization Transparency Hackability Openness From Gift Economies to Free
Markets Third-Party Innovation Civil Society and Discourse End-User Usability and Integration BRAD NEUBERG — codinginparadise.org
STATE OF THE UNION
None
THE WEB IN 2014 Threats and Opportunities
“I love the Internet, and I love that you can
say whatever you want.” (JOAN RIVERS)
SURVEILLANCE
None
“The NSA’s surveillance programme is prompting many US writers to
abandon topics that could be deemed too sensitive” (DAVE EGGERS, theguardian.com)
CENSORSHIP
None
None
GOVERNMENT ONLINE
None
None
NET NEUTRALITY
None
CYBER ACTIVISM
None
SECURITY
None
“TECHNOMONOPOLIES”
None
POST–INDUSTRIAL SOCIETIES
CROWD SOURCING & FUNDING
THE WEB AS SOCIAL NORMALIZER
THE WEB IN 2014 Design and Technology
MOBILE & OFFLINE FIRST
ASYNCHRONOUS WEB
THE INTERNET OF THINGS
BIG (SOCIAL) DATA
MONETIZATION IN A MULTISCREEN PARADIGM
RUBY & RUBY ON RAILS
Yukihiro “Matz” Matsumoto
“I hope to see Ruby help every programmer in the
world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language.” (MATZ)
PRINCIPLES Programmer happiness Principle of least astonishment Human readable Beautiful
syntax
ECOSYSTEM RubyGems, Bundler & Rake Multiple implementations (MRI, JRuby, Rubinius,
mruby, MacRuby, Topaz, …) Solid Standard Library
COMMUNITY MINASWAN Self reflective Open Quirky
None
OBJECT–ORIENTED
5.times { print "We love Ruby" }
class Animal def eat(food) puts "Animal eating" end end my_animal
= Animal.new animal.eat # => "Animal eating"
class Dog < Animal def eat(food) puts "Dog eating" super
end end
module Stomach def digest(food) # ... end end
class Dog < Animal include Stomach end my_dog = Dog.new
dog.digest
-199.abs # => 199 "Foobar".split("").uniq.sort.join # => "abFor" nil.class #
=> "NilClass"
DYNAMICALLY TYPED (DUCK–TYPING)
if dog.is_a? Animal dog.eat end dog.eat if dog.respond_to?(:eat)
MONKEY–PATCHING (DUCK–PUNCHING)
“… if it walks like a duck and talks like
a duck, it’s a duck, right? So if this duck is not giving you the noise that you want, you’ve got to just punch that duck until it returns what you expect.”
class String def yell "#{self.upcase}!" end end "hello".yell # =>
"HELLO!"
META–PROGRAMMING
class Greeter def method_missing(name, *args) name = name.to_s if name
=~ /^hello_/ puts "Hello, #{name.gsub(/^hello_/, '')}!" else super end end end Greeter.new.hello_john # => "Hello, john!"
BLOCKS & LAMBDAS
[1, 2, 3].map { |i| i ** 2 } #
=> [1, 4, 9]
def greet(&block) # ... greeting = yield("John") # ... end
greet do |name| "Hello, #{name}!" end
None
PRINCIPLES Open Source MVC CoC DRY Opinionated
CONTROLLER MODEL VIEW
FEATURES Generators ORM Restful routing Included web server
ROUTES CONTROLLER ACTION
$ gem install rails $ rails new blog $ cd
blog $ rails generate scaffold post title content:text $ rake db:migrate $ rails server
[CODE TOUR]
RUBY ON RAILS AND THE OPEN WEB
THREATS AND OPPORTUNITIES
EMPOWERMENT
“The solution is open source. By building together open, free,
secure systems, we can go around such surveillance, and then one country doesn't have to solve the problem by itself.” (MIKKO HYPPÖNEN)
Open Source A strong, independent community Well developed ecosystem
DECENTRALIZATION
Availability Deployment Development speed
SECURITY
Convention over configuration Open Source Ecosystem
DESIGN AND TECHNOLOGY
OPENNESS
Rails API RESTful by default Database agnosticism
SHIFTING TOWARDS THE CLIENT
Sass CoffeeScript Asset Pipeline Turbolinks
ASYNCHRONOUS WEB
SSE JRuby Threadsafe by default Celluloid Live streaming
@polarblau