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
Rails and the future of the open web
Search
Florian Plank
April 01, 2014
Programming
150
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
More Decks by Florian Plank
See All by Florian Plank
Ready, set, immersion!
polarblau
0
220
Prototyping all the things
polarblau
2
190
CoffeeScript vs. ECMAScript 6
polarblau
5
3.7k
Design for a complex Reality — Siili Breakfast Edition
polarblau
0
170
Enabling Design for a Complex Reality
polarblau
2
150
A primer on Content Security Policy
polarblau
1
470
Brief Ruby/Ruby on Rails intro
polarblau
3
210
Ruby Idioms
polarblau
3
620
How to ask questions and find the right answers
polarblau
2
390
Other Decks in Programming
See All in Programming
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
170
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
14
6.8k
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
460
共通化で考えるべきは、実装より公開する型だった
codeegg
0
210
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
130
Claude Team Plan導入・ガイド
tk3fftk
0
160
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
150
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
360
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
180
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
110
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
190
Featured
See All Featured
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
420
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
410
Faster Mobile Websites
deanohume
310
32k
Leo the Paperboy
mayatellez
8
1.9k
Statistics for Hackers
jakevdp
799
230k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
460
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
240
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
150
Docker and Python
trallard
47
3.9k
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