SlideShare ist ein Scribd-Unternehmen logo
1 von 165
Downloaden Sie, um offline zu lesen
Let’s Learn Ruby - Basic
Ruby Tuesday

photo by othree

https://www.facebook.com/groups/142197385837507/
RubyConf Taiwan

http://rubyconf.tw/
Rails Girls Taipei

https://www.facebook.com/railsgirlstw
WebConf Taiwan 2014
750+ attendees
all tickets sold out in 4 mins
Let’s Learn Ruby

What I want?
Let’s Learn Ruby

Problem Solving
Let’s Learn Ruby

Active Ecosystem
Let’s Learn Ruby

Scenario
Let’s Learn Ruby

open source projects on Github
Let’s Learn Ruby

History
Let’s Learn Ruby

まつもと ゆきひろ (Matz)
Let’s Learn Ruby
Let’s Learn Ruby

first released at 1995
Let’s Learn Ruby

2.0 released at 2013
Let’s Learn Ruby

2.1 released at 2013.12
Let’s Learn Ruby

Why Ruby?

free, open source, easy to learn
Let’s Learn Ruby

Ruby != Rails
Let’s Learn Ruby

Happy, and Fun
Let’s Learn Ruby

Rubies

CRuby(MRI), REE, mRuby, MacRuby, 
JRuby, IronRuby, Rubinius..etc
Let’s Learn Ruby

Version

1.8, 1.9, 2.0, 2.1
Let’s Learn Ruby

Ruby 1.8 has no future
Let’s Learn Ruby

RVM

Ruby Version Manager

https://rvm.io/
Let’s Learn Ruby

Editors

Vim, Emacs, Sublime Text... etc
Let’s Learn Ruby

coding style

https://github.com/styleguide/ruby
Let’s Learn Ruby

But Ruby is Slow..?
Let’s Learn Ruby

What can Ruby do?
Let’s Learn Ruby

Rake
Make, but Ruby version.
Rack http://rake.rubyforge.org/
Let’s Learn Ruby

Rack

it’s a specification (and implementation) of a minimal
abstract Ruby API that models HTTP.
such as Sinatra, Ruby on Rails
Rack http://rack.rubyforge.org/
Sinatra http://www.sinatrarb.com
Ruby on Rails http://rubyonrails.org/
Let’s Learn Ruby

developing MacOS and iOS app
Let’s Learn Ruby

drawing, image processing,
music..
Let’s Learn Ruby

Install Ruby now!
Let’s Learn Ruby

http://tryruby.org
Let’s Learn Ruby

Interactive Ruby, irb
Let’s Learn Ruby

Gem
Let’s Learn Ruby

gem install PACKAGE_NAME
Let’s Learn Ruby

gem env
Let’s Learn Ruby

gem list
Let’s Learn Ruby

Variables and Constants
Let’s Learn Ruby

local variable
variable
Let’s Learn Ruby

global variable
$variable
Let’s Learn Ruby

instance variable
@variable
Let’s Learn Ruby

class variable
@@variable
Let’s Learn Ruby

virtual variable
true, false, self, nil
Let’s Learn Ruby

variable assignment
a=1
x, y, z = 1, 2, 3
Let’s Learn Ruby

Constant

begins with a capital letter, 
and it can be changed
Let’s Learn Ruby

Reserved word and Keyword
Let’s Learn Ruby

Reserved word and
Keyword
Let’s Learn Ruby

Logic and Flow Control
Let’s Learn Ruby

only false and nil are false
Let’s Learn Ruby

true v.s TrueClass
false v.s FalseClass
nil v.s NilClass
Let’s Learn Ruby

if..elsif..end
Let’s Learn Ruby

unless = not if
Let’s Learn Ruby

if modifier
Let’s Learn Ruby

case .. when..
Let’s Learn Ruby

BEGIN{} and END{}
Let’s Learn Ruby

a = true ? 'a' : 'b'
Let’s Learn Ruby

a ||= 'a'
Let’s Learn Ruby

Comment
# single line
Let’s Learn Ruby

Comment

=begin .. =end
Let’s Learn Ruby

Loop and Iteration
Let’s Learn Ruby

for.. in..
Let’s Learn Ruby

while .. end
Let’s Learn Ruby

until .. end
Let’s Learn Ruby

until = not while
Let’s Learn Ruby

times
Let’s Learn Ruby

upto, downto
Let’s Learn Ruby

each, each_with_index
Let’s Learn Ruby

Integer

http://www.ruby-doc.org/core-2.1.0/Integer.html
Let’s Learn Ruby

Fixnum and Bignum
Let’s Learn Ruby

10 / 3
Let’s Learn Ruby

String

http://ruby-doc.org/core-2.1.0/String.html
Let’s Learn Ruby

single and double quotes
Let’s Learn Ruby

%q v.s %Q
Let’s Learn Ruby

"%s" % "eddie"
Let’s Learn Ruby

string interpolation
Let’s Learn Ruby

Exercise
please calculate how many “characters” and
“words” of a section of a random article with Ruby.
Let’s Learn Ruby

Exercise

please convert string “abcdefg” to “gfedcba”
without using String#reverse method.
Let’s Learn Ruby

Array

http://ruby-doc.org/core-2.1.0/Array.html
Let’s Learn Ruby

Array.new v.s []
Let’s Learn Ruby

%w
Let’s Learn Ruby

Exercise

please sort a given array [1, 3, 4, 1, 7, nil, 7],
and remove nil and duplicate number.
Let’s Learn Ruby

Exercise

please covert a given array [1, 2, 3, 4, 5] to
[1, 3, 5, 7, 9] with Array#map method.
Let’s Learn Ruby

Exercise

please draw 5 unique random number
between 1 to 52.
Let’s Learn Ruby

Hash

http://ruby-doc.org/core-2.1.0/Hash.html
Let’s Learn Ruby

Hash.new v.s {}
Let’s Learn Ruby

a = { :name => 'eddie' }
a = { name: 'eddie' }
Let’s Learn Ruby

Range

http://ruby-doc.org/core-2.1.0/Range.html
Let’s Learn Ruby

(1..10) v.s (1...10)
Let’s Learn Ruby

Exercise

please calculate the sum from 1 to 100 with
Range.
Let’s Learn Ruby

Methods
Let’s Learn Ruby

def method_name(param)
...
end
Let’s Learn Ruby

parentheses can be omitted
Let’s Learn Ruby

? and !
Let’s Learn Ruby

return value
Let’s Learn Ruby

Singleton Method
Let’s Learn Ruby

class Cat
def walk
puts "I'm walking"
end
end
!

cat = Cat.new

def cat.fly
puts "I can fly"
end

cat.fly
Let’s Learn Ruby

Method Missing
Let’s Learn Ruby

def method_missing(method_name)
puts "method: #{method_name} is called!"
end
!

something_not_exists()
Let’s Learn Ruby

Exception Handling

begin .. rescue.. else.. ensure.. end
Let’s Learn Ruby

def open_my_file(file_name)
File.open file_name do |f|
puts f.read
end
end

begin
open_my_file("block_demo.r")
rescue => e
puts e
else
puts "it's working good!"
ensure
puts "this must be executed, no matter what"
end
Let’s Learn Ruby

Block
Let’s Learn Ruby

Proc
Let’s Learn Ruby

my_square = Proc.new { | x | x ** 2 }
!

# how to call a proc
puts my_square.call(10)
puts my_square[10]
puts my_square.(10)
puts my_square === 10

#
#
#
#

100
100
100
100
Let’s Learn Ruby

lambda, ->
Let’s Learn Ruby

my_lambda = lambda { | x | x ** 2 }
!

# new style in 1.9
my_lambda = -> x { x ** 2 }
!

# how to call a lambda?
puts my_lambda.call(10)
puts my_lambda[10]
puts my_lambda.(10)
puts my_lambda === 10

#
#
#
#

100
100
100
100
Let’s Learn Ruby

Proc v.s lambda
Let’s Learn Ruby

def proc_test
puts "hello"
my_proc = Proc.new { return 1 }
my_proc.call
puts "ruby"
end
def lambda_test
puts "hello"
my_lambda = lambda { return 1 }
my_lambda.call
puts "ruby"
end
Let’s Learn Ruby

{} v.s do..end

http://blog.eddie.com.tw/2011/06/03/do-end-vs-braces/
Let’s Learn Ruby

Yield
Let’s Learn Ruby

Object-Oriented
Programming
Let’s Learn Ruby

everything in Ruby is an Object
Let’s Learn Ruby

object = state+ behavior
Let’s Learn Ruby

root class = Object

root class would be BasicObject in Ruby 1.9
Let’s Learn Ruby

class ClassName < ParentClass
...
end
Let’s Learn Ruby

Naming Convention
Let’s Learn Ruby

initialize
Let’s Learn Ruby

ClassName.new
Let’s Learn Ruby

self = current object
Let’s Learn Ruby

instance and class variable
Let’s Learn Ruby

instance and class method
Let’s Learn Ruby

Exercise
please create a Dog class and Cat class, which are
both inherited from Animal class, and implement
“walk” and “eat” methods.
Let’s Learn Ruby

public, protected and
private method
Let’s Learn Ruby

getter and setter
Let’s Learn Ruby

attr_reader, attr_writer and
attr_accessor
Let’s Learn Ruby

Open Class
Let’s Learn Ruby

Module
Let’s Learn Ruby

module ModuleName
...
end
Let’s Learn Ruby

module has no inheritance
Let’s Learn Ruby

module has no instance
Let’s Learn Ruby

Naming Convention
Let’s Learn Ruby

require v.s load
Let’s Learn Ruby

Priority?
Let’s Learn Ruby

Exercise
please create a Bird class, which is also inherited
from Animal class, but include a Fly module.
Let’s Learn Ruby

Mixin
Let’s Learn Ruby

Ruby is single inheritance
Let’s Learn Ruby

Duck Typing
Let’s Learn Ruby

include v.s extend
Let’s Learn Ruby

Bundle
Let’s Learn Ruby

Gemfile
Let’s Learn Ruby

http://rubygems.org/
Let’s Learn Ruby

gem "nokogiri", :git => "git://github.com/
tenderlove/nokogiri.git"
gem "secret_gem", :path => "~/my_secret_path"
Let’s Learn Ruby

bundle install
Let’s Learn Ruby

pack your own gem!
Let’s Learn Ruby

1. bundle gem NEW_NAME
2. gem build NEW_NAME.gemspec
3. gem push NEW_NAME.gem

http://guides.rubygems.org/make-your-own-gem/
Let’s Learn Ruby

Exercise
please try to create a Gem spec with bundle
command, modify, build and push to
rubygems.org.
Let’s Learn Ruby

Rake
Let’s Learn Ruby

desc "mail sender"
task :sendmail do
puts "grap mailing list from database..."
sleep 3
puts "mail sending..."
sleep 3
puts "done!"
end
Let’s Learn Ruby

task :goto_toliet do
puts "goto toliet"
end
!

task :open_the_door => :goto_toliet do
puts "open door"
end
Let’s Learn Ruby

TDD
Let’s Learn Ruby

require “minitest/autorun"
!

class TestMyBMI < MiniTest::Unit::TestCase
def test_my_calc_bmi_is_ok
assert_equal calc_bmi(175, 80), 26.12
end
end
!

def calc_bmi(height, weight)
bmi = ( weight / (height/100.0) ** 2 ).round(2)
end
Let’s Learn Ruby

require "minitest/autorun"

describe "test my bmi calculator" do
it "should calc the correct bmi" do
calc_bmi(175, 80).must_equal 26.12
end
end

def calc_bmi(height, weight)
bmi = ( weight / (height/100.0) ** 2 ).round(2)
end
Let’s Learn Ruby

Ruby Koans

http://rubykoans.com/
Let’s Learn Ruby

Ruby Object Model
Let’s Learn Ruby

At last..
photo by redjar
Let’s Learn Ruby

pick up one scripting language
photo by Quality & Style
Let’s Learn Ruby

@eddiekao

https://www.ruby-lang.org/zh_tw/
Let’s Learn Ruby

Ruby is fun!
Let’s Learn Ruby

The only limitation is your
imagination.
Contacts
⾼高⾒見⻯⿓龍

Website

http://www.eddie.com.tw

Blog

http://blog.eddie.com.tw

Plurk

http://www.plurk.com/aquarianboy

Facebook

http://www.facebook.com/eddiekao

Google Plus

http://www.eddie.com.tw/+

Twitter

https://twitter.com/eddiekao

Email

eddie@digik.com.tw

Mobile

+886-928-617-687

photo by Eddie

Weitere ähnliche Inhalte

Was ist angesagt?

A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...CODE BLUE
 
Ruby Presentation
Ruby Presentation Ruby Presentation
Ruby Presentation platico_dev
 
Golang Project Layout and Practice
Golang Project Layout and PracticeGolang Project Layout and Practice
Golang Project Layout and PracticeBo-Yi Wu
 
Intro to Asynchronous Javascript
Intro to Asynchronous JavascriptIntro to Asynchronous Javascript
Intro to Asynchronous JavascriptGarrett Welson
 
Introduction to go language programming
Introduction to go language programmingIntroduction to go language programming
Introduction to go language programmingMahmoud Masih Tehrani
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.jsjacekbecela
 
Iocp 기본 구조 이해
Iocp 기본 구조 이해Iocp 기본 구조 이해
Iocp 기본 구조 이해Nam Hyeonuk
 
Node.Js: Basics Concepts and Introduction
Node.Js: Basics Concepts and Introduction Node.Js: Basics Concepts and Introduction
Node.Js: Basics Concepts and Introduction Kanika Gera
 
Use Node.js to create a REST API
Use Node.js to create a REST APIUse Node.js to create a REST API
Use Node.js to create a REST APIFabien Vauchelles
 
RxJS Evolved
RxJS EvolvedRxJS Evolved
RxJS Evolvedtrxcllnt
 
Session10-PHP Misconfiguration
Session10-PHP MisconfigurationSession10-PHP Misconfiguration
Session10-PHP Misconfigurationzakieh alizadeh
 
Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture AppDynamics
 
05_Reliable UDP 구현
05_Reliable UDP 구현05_Reliable UDP 구현
05_Reliable UDP 구현noerror
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUDPrem Sanil
 

Was ist angesagt? (20)

Iocp advanced
Iocp advancedIocp advanced
Iocp advanced
 
Ruby on Rails Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails Presentation
 
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
 
Ruby Presentation
Ruby Presentation Ruby Presentation
Ruby Presentation
 
Golang Project Layout and Practice
Golang Project Layout and PracticeGolang Project Layout and Practice
Golang Project Layout and Practice
 
Intro to Asynchronous Javascript
Intro to Asynchronous JavascriptIntro to Asynchronous Javascript
Intro to Asynchronous Javascript
 
Angular 2 observables
Angular 2 observablesAngular 2 observables
Angular 2 observables
 
Introduction to go language programming
Introduction to go language programmingIntroduction to go language programming
Introduction to go language programming
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.js
 
Iocp 기본 구조 이해
Iocp 기본 구조 이해Iocp 기본 구조 이해
Iocp 기본 구조 이해
 
Node.Js: Basics Concepts and Introduction
Node.Js: Basics Concepts and Introduction Node.Js: Basics Concepts and Introduction
Node.Js: Basics Concepts and Introduction
 
Use Node.js to create a REST API
Use Node.js to create a REST APIUse Node.js to create a REST API
Use Node.js to create a REST API
 
RxJS Evolved
RxJS EvolvedRxJS Evolved
RxJS Evolved
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Session10-PHP Misconfiguration
Session10-PHP MisconfigurationSession10-PHP Misconfiguration
Session10-PHP Misconfiguration
 
Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture
 
ORM Injection
ORM InjectionORM Injection
ORM Injection
 
05_Reliable UDP 구현
05_Reliable UDP 구현05_Reliable UDP 구현
05_Reliable UDP 구현
 
JS Event Loop
JS Event LoopJS Event Loop
JS Event Loop
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUD
 

Andere mochten auch

Action Controller Overview, Season 1
Action Controller Overview, Season 1Action Controller Overview, Season 1
Action Controller Overview, Season 1RORLAB
 
Swift distributed tracing method and tools v2
Swift distributed tracing method and tools v2Swift distributed tracing method and tools v2
Swift distributed tracing method and tools v2zhang hua
 
Control review for iOS
Control review for iOSControl review for iOS
Control review for iOSWilliam Price
 
Ruby on Rails testing with Rspec
Ruby on Rails testing with RspecRuby on Rails testing with Rspec
Ruby on Rails testing with RspecBunlong Van
 
jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009Ralph Whitbeck
 
Learning jQuery in 30 minutes
Learning jQuery in 30 minutesLearning jQuery in 30 minutes
Learning jQuery in 30 minutesSimon Willison
 
A swift introduction to Swift
A swift introduction to SwiftA swift introduction to Swift
A swift introduction to SwiftGiordano Scalzo
 
Introduction to html
Introduction to htmlIntroduction to html
Introduction to htmlvikasgaur31
 
Infinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho Poluta
Infinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho PolutaInfinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho Poluta
Infinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho PolutaInfinum
 
Introduction to Web Architecture
Introduction to Web ArchitectureIntroduction to Web Architecture
Introduction to Web ArchitectureChamnap Chhorn
 
jQuery and Rails: Best Friends Forever
jQuery and Rails: Best Friends ForeverjQuery and Rails: Best Friends Forever
jQuery and Rails: Best Friends Foreverstephskardal
 
Swift Programming Language
Swift Programming LanguageSwift Programming Language
Swift Programming LanguageGiuseppe Arici
 

Andere mochten auch (14)

Action Controller Overview, Season 1
Action Controller Overview, Season 1Action Controller Overview, Season 1
Action Controller Overview, Season 1
 
Swift distributed tracing method and tools v2
Swift distributed tracing method and tools v2Swift distributed tracing method and tools v2
Swift distributed tracing method and tools v2
 
Control review for iOS
Control review for iOSControl review for iOS
Control review for iOS
 
September2011aftma
September2011aftmaSeptember2011aftma
September2011aftma
 
Ruby on Rails testing with Rspec
Ruby on Rails testing with RspecRuby on Rails testing with Rspec
Ruby on Rails testing with Rspec
 
jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009
 
Learning jQuery in 30 minutes
Learning jQuery in 30 minutesLearning jQuery in 30 minutes
Learning jQuery in 30 minutes
 
A swift introduction to Swift
A swift introduction to SwiftA swift introduction to Swift
A swift introduction to Swift
 
Web application architecture
Web application architectureWeb application architecture
Web application architecture
 
Introduction to html
Introduction to htmlIntroduction to html
Introduction to html
 
Infinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho Poluta
Infinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho PolutaInfinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho Poluta
Infinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho Poluta
 
Introduction to Web Architecture
Introduction to Web ArchitectureIntroduction to Web Architecture
Introduction to Web Architecture
 
jQuery and Rails: Best Friends Forever
jQuery and Rails: Best Friends ForeverjQuery and Rails: Best Friends Forever
jQuery and Rails: Best Friends Forever
 
Swift Programming Language
Swift Programming LanguageSwift Programming Language
Swift Programming Language
 

Ähnlich wie Let's Learn Ruby - Basic

Zhifu Ge - How To Be Weird In Ruby - With Notes
Zhifu Ge - How To Be Weird In Ruby - With NotesZhifu Ge - How To Be Weird In Ruby - With Notes
Zhifu Ge - How To Be Weird In Ruby - With Notesottawaruby
 
Ruby for PHP developers
Ruby for PHP developersRuby for PHP developers
Ruby for PHP developersMax Titov
 
Meta Programming in Ruby - Code Camp 2010
Meta Programming in Ruby - Code Camp 2010Meta Programming in Ruby - Code Camp 2010
Meta Programming in Ruby - Code Camp 2010ssoroka
 
Ruby for C# Developers
Ruby for C# DevelopersRuby for C# Developers
Ruby for C# DevelopersCory Foy
 
Intro To Ror
Intro To RorIntro To Ror
Intro To Rormyuser
 
From nil to guru: intro to Ruby on Rails
From nil to guru: intro to Ruby on RailsFrom nil to guru: intro to Ruby on Rails
From nil to guru: intro to Ruby on RailsNetguru
 
Ruby for .NET developers
Ruby for .NET developersRuby for .NET developers
Ruby for .NET developersMax Titov
 
How to discover the Ruby's defects with web application
How to discover the Ruby's defects with web applicationHow to discover the Ruby's defects with web application
How to discover the Ruby's defects with web applicationHiroshi SHIBATA
 
Ruby tutorial
Ruby tutorialRuby tutorial
Ruby tutorialknoppix
 
Ruby :: Training 1
Ruby :: Training 1Ruby :: Training 1
Ruby :: Training 1Pavel Tyk
 
Introduction to Ruby & Modern Programming
Introduction to Ruby & Modern ProgrammingIntroduction to Ruby & Modern Programming
Introduction to Ruby & Modern ProgrammingChristos Sotirelis
 
Ruby Metaprogramming - OSCON 2008
Ruby Metaprogramming - OSCON 2008Ruby Metaprogramming - OSCON 2008
Ruby Metaprogramming - OSCON 2008Brian Sam-Bodden
 
my_everyday_life_with_ruby
my_everyday_life_with_rubymy_everyday_life_with_ruby
my_everyday_life_with_rubyKuniaki Igarashi
 
Ruby an overall approach
Ruby an overall approachRuby an overall approach
Ruby an overall approachFelipe Schmitt
 
Ruby — An introduction
Ruby — An introductionRuby — An introduction
Ruby — An introductionGonçalo Silva
 

Ähnlich wie Let's Learn Ruby - Basic (20)

Zhifu Ge - How To Be Weird In Ruby - With Notes
Zhifu Ge - How To Be Weird In Ruby - With NotesZhifu Ge - How To Be Weird In Ruby - With Notes
Zhifu Ge - How To Be Weird In Ruby - With Notes
 
Ruby for PHP developers
Ruby for PHP developersRuby for PHP developers
Ruby for PHP developers
 
Ruby
RubyRuby
Ruby
 
Ruby Hell Yeah
Ruby Hell YeahRuby Hell Yeah
Ruby Hell Yeah
 
Meta Programming in Ruby - Code Camp 2010
Meta Programming in Ruby - Code Camp 2010Meta Programming in Ruby - Code Camp 2010
Meta Programming in Ruby - Code Camp 2010
 
Ruby for C# Developers
Ruby for C# DevelopersRuby for C# Developers
Ruby for C# Developers
 
Intro To Ror
Intro To RorIntro To Ror
Intro To Ror
 
From nil to guru: intro to Ruby on Rails
From nil to guru: intro to Ruby on RailsFrom nil to guru: intro to Ruby on Rails
From nil to guru: intro to Ruby on Rails
 
Ruby basics
Ruby basicsRuby basics
Ruby basics
 
Ruby for .NET developers
Ruby for .NET developersRuby for .NET developers
Ruby for .NET developers
 
How to discover the Ruby's defects with web application
How to discover the Ruby's defects with web applicationHow to discover the Ruby's defects with web application
How to discover the Ruby's defects with web application
 
Ruby tutorial
Ruby tutorialRuby tutorial
Ruby tutorial
 
Ruby :: Training 1
Ruby :: Training 1Ruby :: Training 1
Ruby :: Training 1
 
Iq rails
Iq railsIq rails
Iq rails
 
Introduction to Ruby & Modern Programming
Introduction to Ruby & Modern ProgrammingIntroduction to Ruby & Modern Programming
Introduction to Ruby & Modern Programming
 
Ruby Metaprogramming - OSCON 2008
Ruby Metaprogramming - OSCON 2008Ruby Metaprogramming - OSCON 2008
Ruby Metaprogramming - OSCON 2008
 
my_everyday_life_with_ruby
my_everyday_life_with_rubymy_everyday_life_with_ruby
my_everyday_life_with_ruby
 
Ruby an overall approach
Ruby an overall approachRuby an overall approach
Ruby an overall approach
 
Ruby — An introduction
Ruby — An introductionRuby — An introduction
Ruby — An introduction
 
Ruby 101
Ruby 101Ruby 101
Ruby 101
 

Mehr von Eddie Kao

Rails girls in Taipei
Rails girls in TaipeiRails girls in Taipei
Rails girls in TaipeiEddie Kao
 
Rails Girls in Taipei
Rails Girls in TaipeiRails Girls in Taipei
Rails Girls in TaipeiEddie Kao
 
iOS app development and Open Source
iOS app development and Open SourceiOS app development and Open Source
iOS app development and Open SourceEddie Kao
 
from Ruby to Objective-C
from Ruby to Objective-Cfrom Ruby to Objective-C
from Ruby to Objective-CEddie Kao
 
Code Reading
Code ReadingCode Reading
Code ReadingEddie Kao
 
CreateJS - from Flash to Javascript
CreateJS - from Flash to JavascriptCreateJS - from Flash to Javascript
CreateJS - from Flash to JavascriptEddie Kao
 
May the source_be_with_you
May the source_be_with_youMay the source_be_with_you
May the source_be_with_youEddie Kao
 
Why I use Vim
Why I use VimWhy I use Vim
Why I use VimEddie Kao
 
There is something about Event
There is something about EventThere is something about Event
There is something about EventEddie Kao
 
Flash Ecosystem and Open Source
Flash Ecosystem and Open SourceFlash Ecosystem and Open Source
Flash Ecosystem and Open SourceEddie Kao
 
Happy Programming with CoffeeScript
Happy Programming with CoffeeScriptHappy Programming with CoffeeScript
Happy Programming with CoffeeScriptEddie Kao
 
Ruby without rails
Ruby without railsRuby without rails
Ruby without railsEddie Kao
 
CoffeeScript-Ruby-Tuesday
CoffeeScript-Ruby-TuesdayCoffeeScript-Ruby-Tuesday
CoffeeScript-Ruby-TuesdayEddie Kao
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScriptEddie Kao
 
3rd AS Study Group
3rd AS Study Group3rd AS Study Group
3rd AS Study GroupEddie Kao
 
iOS Game Development with Cocos2d
iOS Game Development with Cocos2diOS Game Development with Cocos2d
iOS Game Development with Cocos2dEddie Kao
 
AS3讀書會(行前準備)
AS3讀書會(行前準備)AS3讀書會(行前準備)
AS3讀書會(行前準備)Eddie Kao
 

Mehr von Eddie Kao (20)

Rails girls in Taipei
Rails girls in TaipeiRails girls in Taipei
Rails girls in Taipei
 
Rails Girls in Taipei
Rails Girls in TaipeiRails Girls in Taipei
Rails Girls in Taipei
 
iOS app development and Open Source
iOS app development and Open SourceiOS app development and Open Source
iOS app development and Open Source
 
Vim
VimVim
Vim
 
from Ruby to Objective-C
from Ruby to Objective-Cfrom Ruby to Objective-C
from Ruby to Objective-C
 
Code Reading
Code ReadingCode Reading
Code Reading
 
CreateJS - from Flash to Javascript
CreateJS - from Flash to JavascriptCreateJS - from Flash to Javascript
CreateJS - from Flash to Javascript
 
May the source_be_with_you
May the source_be_with_youMay the source_be_with_you
May the source_be_with_you
 
Why I use Vim
Why I use VimWhy I use Vim
Why I use Vim
 
There is something about Event
There is something about EventThere is something about Event
There is something about Event
 
Flash Ecosystem and Open Source
Flash Ecosystem and Open SourceFlash Ecosystem and Open Source
Flash Ecosystem and Open Source
 
Happy Programming with CoffeeScript
Happy Programming with CoffeeScriptHappy Programming with CoffeeScript
Happy Programming with CoffeeScript
 
Ruby without rails
Ruby without railsRuby without rails
Ruby without rails
 
CoffeeScript-Ruby-Tuesday
CoffeeScript-Ruby-TuesdayCoffeeScript-Ruby-Tuesday
CoffeeScript-Ruby-Tuesday
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScript
 
API Design
API DesignAPI Design
API Design
 
測試
測試測試
測試
 
3rd AS Study Group
3rd AS Study Group3rd AS Study Group
3rd AS Study Group
 
iOS Game Development with Cocos2d
iOS Game Development with Cocos2diOS Game Development with Cocos2d
iOS Game Development with Cocos2d
 
AS3讀書會(行前準備)
AS3讀書會(行前準備)AS3讀書會(行前準備)
AS3讀書會(行前準備)
 

Kürzlich hochgeladen

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Kürzlich hochgeladen (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

Let's Learn Ruby - Basic