Knowledge
Communication
Work
Social connections
News
Tool for political change
RICHARD DARELL — bitrebels.com
Slide 6
Slide 6 text
“The Internet’s great promise is to make the
world’s information universally
accessible and useful.”
(GARY WOLF)
Slide 7
Slide 7 text
“OPENNESS”
Slide 8
Slide 8 text
OPEN STANDARDS
Non-proprietary
Content, implementation and access
Slide 9
Slide 9 text
vs.
EXAMPLE
Slide 10
Slide 10 text
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
Slide 11
Slide 11 text
STATE OF THE UNION
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
THE WEB IN 2014
Threats and Opportunities
Slide 14
Slide 14 text
“I love the Internet, and I love that you can say
whatever you want.”
(JOAN RIVERS)
Slide 15
Slide 15 text
SURVEILLANCE
Slide 16
Slide 16 text
No content
Slide 17
Slide 17 text
“The NSA’s surveillance programme is prompting
many US writers to abandon topics that could be
deemed too sensitive”
(DAVE EGGERS, theguardian.com)
Slide 18
Slide 18 text
CENSORSHIP
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
No content
Slide 21
Slide 21 text
GOVERNMENT ONLINE
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
NET NEUTRALITY
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
CYBER ACTIVISM
Slide 27
Slide 27 text
No content
Slide 28
Slide 28 text
SECURITY
Slide 29
Slide 29 text
No content
Slide 30
Slide 30 text
“TECHNOMONOPOLIES”
Slide 31
Slide 31 text
No content
Slide 32
Slide 32 text
POST–INDUSTRIAL SOCIETIES
Slide 33
Slide 33 text
CROWD SOURCING & FUNDING
Slide 34
Slide 34 text
THE WEB AS SOCIAL NORMALIZER
Slide 35
Slide 35 text
THE WEB IN 2014
Design and Technology
Slide 36
Slide 36 text
MOBILE & OFFLINE FIRST
Slide 37
Slide 37 text
ASYNCHRONOUS WEB
Slide 38
Slide 38 text
THE INTERNET OF THINGS
Slide 39
Slide 39 text
BIG (SOCIAL) DATA
Slide 40
Slide 40 text
MONETIZATION IN A
MULTISCREEN PARADIGM
Slide 41
Slide 41 text
RUBY & RUBY ON RAILS
Slide 42
Slide 42 text
Yukihiro “Matz” Matsumoto
Slide 43
Slide 43 text
“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)
Slide 44
Slide 44 text
PRINCIPLES
Programmer happiness
Principle of least astonishment
Human readable
Beautiful syntax
if dog.is_a? Animal
dog.eat
end
dog.eat if dog.respond_to?(:eat)
Slide 57
Slide 57 text
MONKEY–PATCHING
(DUCK–PUNCHING)
Slide 58
Slide 58 text
“… 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.”
Slide 59
Slide 59 text
class String
def yell
"#{self.upcase}!"
end
end
"hello".yell
# => "HELLO!"
Slide 60
Slide 60 text
META–PROGRAMMING
Slide 61
Slide 61 text
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!"
Slide 62
Slide 62 text
BLOCKS & LAMBDAS
Slide 63
Slide 63 text
[1, 2, 3].map { |i| i ** 2 }
# => [1, 4, 9]
Slide 64
Slide 64 text
def greet(&block)
# ...
greeting = yield("John")
# ...
end
greet do |name|
"Hello, #{name}!"
end
Slide 65
Slide 65 text
No content
Slide 66
Slide 66 text
PRINCIPLES
Open Source
MVC
CoC
DRY
Opinionated
Slide 67
Slide 67 text
CONTROLLER
MODEL VIEW
Slide 68
Slide 68 text
FEATURES
Generators
ORM
Restful routing
Included web server
Slide 69
Slide 69 text
ROUTES
CONTROLLER ACTION
Slide 70
Slide 70 text
$ gem install rails
$ rails new blog
$ cd blog
$ rails generate scaffold post title content:text
$ rake db:migrate
$ rails server
Slide 71
Slide 71 text
[CODE TOUR]
Slide 72
Slide 72 text
RUBY ON RAILS
AND THE OPEN WEB
Slide 73
Slide 73 text
THREATS AND OPPORTUNITIES
Slide 74
Slide 74 text
EMPOWERMENT
Slide 75
Slide 75 text
“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)
Slide 76
Slide 76 text
Open Source
A strong, independent community
Well developed ecosystem
Slide 77
Slide 77 text
DECENTRALIZATION
Slide 78
Slide 78 text
Availability
Deployment
Development speed
Slide 79
Slide 79 text
SECURITY
Slide 80
Slide 80 text
Convention over configuration
Open Source
Ecosystem
Slide 81
Slide 81 text
DESIGN AND TECHNOLOGY
Slide 82
Slide 82 text
OPENNESS
Slide 83
Slide 83 text
Rails API
RESTful by default
Database agnosticism
Slide 84
Slide 84 text
SHIFTING TOWARDS THE CLIENT
Slide 85
Slide 85 text
Sass
CoffeeScript
Asset Pipeline
Turbolinks
Slide 86
Slide 86 text
ASYNCHRONOUS WEB
Slide 87
Slide 87 text
SSE
JRuby
Threadsafe by default
Celluloid
Live streaming