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
Web Application & Ruby intro for RailsGirls Berlin
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Tobias Pfeiffer
December 08, 2012
Education
0
170
Web Application & Ruby intro for RailsGirls Berlin
A little introduction to web applications and Ruby for the December RailsGirls Berlin workshop.
Tobias Pfeiffer
December 08, 2012
Tweet
Share
More Decks by Tobias Pfeiffer
See All by Tobias Pfeiffer
Going Staff - Keynote edition
pragtob
0
9.9k
Going Staff
pragtob
0
24k
Stories in Open Source
pragtob
0
23k
Metaphors are everywhere: Ideas to Improve Software Development
pragtob
0
200
Stories in Open Source
pragtob
0
420
Elixir & Phoenix – Fast, Concurrent and Explicit
pragtob
0
730
Functioning Among Humans
pragtob
0
370
Functioning Among Humans
pragtob
0
95
Do You Need That Validation? Let Me Call You Back About It
pragtob
0
460
Other Decks in Education
See All in Education
アジャイルなマインドセットを「取り戻す」新人研修づくり
chinmo
1
260
TinyGoをWebブラウザで動かすための方法+アルファ_20260201
masakiokuda
2
300
滑空スポーツ講習会2025(実技講習)EMFT学科講習資料/JSA EMFT 2025
jsaseminar
0
320
Design Guidelines and Principles - Lecture 7 - Information Visualisation (4019538FNR)
signer
PRO
0
2.9k
AIで日本はどう進化する? 〜キミが生きる2035年の地図〜
behomazn
0
130
2025-12-19-LT
takesection
0
120
Analysis and Validation - Lecture 4 - Information Visualisation (4019538FNR)
signer
PRO
0
2.6k
ブランチ操作 / 02-a-branch
kaityo256
PRO
0
220
良い塩梅を実現する、AWSネットワーク3分クッキング
masakiokuda
1
160
【ZEPメタバース校舎操作ガイド】
ainischool
0
150
SSH公開鍵認証 / 02-b-ssh
kaityo256
PRO
0
120
P3NFEST 2026 Spring ハンズオン「ハッキング・ラブ!はじめてのハッキングをやってみよう」資料
nomizone
0
370
Featured
See All Featured
How to build a perfect <img>
jonoalderson
1
5.3k
[SF Ruby Conf 2025] Rails X
palkan
2
860
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
160
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
250
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
180
BBQ
matthewcrist
89
10k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
350
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.3k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
76
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
250
Docker and Python
trallard
47
3.8k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
270
Transcript
Introduction to Web Applications Tobias Pfeiffer @PragTob pragtob.wordpress.com
Today
None
What is a web application?
Not rocket science
I am Rails (and So Can You!)
Programming is fun!
What you are going to build today
So what is a web application?
Presented in a web browser
Runs on a server...
...or the cloud
is dynamic
A high level overview
High level overview
High level overview
High level overview Request
High level overview
High level overview Answer
High level overview Answer
High level overview
What parts does a web application consist of?
Web Application
Front End Back End
Front End Back End
CSS HTML JavaScript
Structure and content
CSS HTML JavaScript
Styling to transform...
...this...
...into this.
CSS HTML JavaScript
Back End CSS HTML JavaScript
Back End CSS HTML JavaScript
Logic Infrastructure
Logic Infrastructure
Logic • Behaviour • Implements the business logic • Ties
all the parts together • Generates content
Ruby on Rails
Logic Infrastructure
Web Server
Logic Infrastructure
Storing all your data...
...in giant tables
Recap
Logic Storage Infrastructure CSS HTML JavaScript Web Application Landscape
Logic Storage Infrastructure CSS HTML JavaScript Web Application Landscape Bootstrap
XML DOM jQuery Ruby on Rails Sqlite Apache WEBrick MongoDB Thin Ruby PHP Python Django
But what is Ruby on Rails?
A web application framework written in Ruby
• A general purpose programming language • Principle of least
surprise • Invented by Yukihiro 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." Yukihiro Matsumoto
Ruby on Rails • Framework written in Ruby • set
of functionality to help write web applications – Connecting to the database (ActiveRecord) – Generating HTML (ERB) – Pays attention to security – … and so much more! • Model View Controller • You write in Ruby
Let's get into some Ruby
But before that...
Cookies & Questions
Open a terminal/console
irb
tobi@speedy:~$ irb 1.9.3p194 :001 >
irb – interactive ruby • talking to ruby • You
tell ruby something • Ruby responds with what it understood • Coaches are going to help you!
1.9.3p194 :001 > 5 => 5
1.9.3p194 :002 > 5 + 3 => 8
1.9.3p194 :003 > 8 * 7 => 56
1.9.3p194 :004 > "Tobias Pfeiffer" => "Tobias Pfeiffer"
1.9.3p194 :005 > name = "Tobi" => "Tobi"
1.9.3p194 :006 > name => "Tobi"
1.9.3p194 :007 > result = 8 * 7 => 56
1.9.3p194 :008 > result * 10 => 560
1.9.3p194 :009 > name + " likes Sweden" => "Tobi
likes Sweden"
1.9.3p194 :010 > puts "Hello World!" Hello World! => nil
1.9.3p194 :011 > fruits = ["apple", "keewee", "orange"] => ["apple",
"keewee", "orange"]
1.9.3p194 :013 > fruits.each do |fruit| puts fruit end apple
keewee orange => ["apple", "keewee", "orange"]
1.9.3p194 :014 > fruits[0] => "apple"
1.9.3p194 :015 > symbol = :wuh => :wuh 1.9.3p194 :016
> symbol => :wuh
1.9.3p194 :017 > dictionary = {:hi => "Hej", :good =>
"bra", :cookie => "kaka"} => {:hi=>"Hej", :good=>"bra", :cookie=>"kaka"} 1.9.3p194 :018 > dictionary[:hi] => "Hej" 1.9.3p194 :019 > dictionary[:cookie] => "kaka"
1.9.3p194 :020 > def hello 1.9.3p194 :021?> puts "Hello there!"
1.9.3p194 :022?> end => nil
1.9.3p194 :026 > hello Hello there! => nil
1.9.3p194 :023 > def greeter(person) 1.9.3p194 :024?> puts "Hello "
+ person 1.9.3p194 :025?> end => nil
1.9.3p194 :027 > greeter("Fanny") Hello Fanny => nil
1.9.3p194 :028 > greeter ArgumentError: wrong number of arguments (0
for 1) from (irb):23:in `greeter' from (irb):28 from /home/tobi/.rvm/rubies/ruby-1.9.3- p194/bin/irb:16:in `<main>'
1.9.3p194 :029 > class Person 1.9.3p194 :030?> attr_accessor :name, :age
1.9.3p194 :031?> end => nil 1.9.3p194 :032 > tobi = Person.new => #<Person:0x0000000205f080>
1.9.3p194 :033 > tobi.name => nil 1.9.3p194 :034 > tobi.name
= "Tobi" => "Tobi" 1.9.3p194 :035 > tobi.age = 23 => 23 1.9.3p194 :036 > tobi.name => "Tobi" 1.9.3p194 :037 > tobi.age => 23
1.9.3p194 :038 > tobi.age * 365 => 8395 1.9.3p194 :039
> puts "This was a talk by " + tobi.name + " - thank you!" This was a talk by Tobi - thank you! => nil
Thank you and enjoy coding! Tobias Pfeiffer @PragTob pragtob.wordpress.com listen
to me talking about learning Ruby (German)
Photo credit • http://www.flickr.com/photos/captainkimo/5918836159/ • http://www.flickr.com/photos/weppos/7486411688/ • http://www.flickr.com/photos/railsgirlsberlin/7882839698/in/photostream • http://www.flickr.com/photos/nirak/644336486/