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
Rails and the future of the open web
Search
Florian Plank
April 01, 2014
Programming
160
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
230
Prototyping all the things
polarblau
2
200
CoffeeScript vs. ECMAScript 6
polarblau
5
3.7k
Design for a complex Reality — Siili Breakfast Edition
polarblau
0
180
Enabling Design for a Complex Reality
polarblau
2
170
A primer on Content Security Policy
polarblau
1
490
Brief Ruby/Ruby on Rails intro
polarblau
3
220
Ruby Idioms
polarblau
3
630
How to ask questions and find the right answers
polarblau
2
400
Other Decks in Programming
See All in Programming
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
350
Workers Cache を知る
syumai
0
200
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
370
Heart of Swift Concurrency
koher
0
950
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
300
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
650
Jetpack Compose メカニズム
skydoves
0
470
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
510
新卒PdEのリアル
ryu1013
1
510
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
190
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
260
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
0
120
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
580
Statistics for Hackers
jakevdp
799
230k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
330
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
The Cult of Friendly URLs
andyhume
79
7k
YesSQL, Process and Tooling at Scale
rocio
174
15k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
480
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Done Done
chrislema
186
17k
Raft: Consensus for Rubyists
vanstee
142
7.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