SlideShare ist ein Scribd-Unternehmen logo
1 von 28
a bunch of reasons to love ruby
class Ben < Personis_a :mvp, :scrummaster, :aspinsider  def initialize		@book = “ASP.NET MVC in Action”	@twitter = “subdigital”	@blog= “http://flux88.com”	@iphone_app= “Pocket Tabs”  end  ...end
def self.expert?	falseend
Meet Ruby puts“hello world”hello world puts“hello world”.reversedlrowolleh puts“hello world”[0..5] hello
Ruby Variables num = 323 message = “Hey there” stuff = [1, “foo”, true]
Ruby Loops [“cat”, “dog”, “giraffe”].each do |s| 	puts s end [“cat”, “dog”, “giraffe”].each { |s| puts s }
Working with Arrays animals = [“zebra”, “donkey”, “lemur”] animals.sort[“donkey”, “lemur”, “zebra”] 			 # original array is untouched animals.sort! # original array is modified! animals.delete“zebra”  [“donkey”, “lemur”]
Ruby has Less Ceremony //C# Dictionary<string, object> hash = new 							Dictionary<string, object>(); #ruby hash = {} #optional semicolons & parentheses add(5, 6);     is the same as      add 5, 6
You Can Extend Existing classes 5.days.from_now
Ruby is Terse, yet Readable 3.times { print “Ho ” }  =>  Ho Ho Ho approve_credit unless account.deliquent? send_email if email_enabled?
Regex is a 1st class citizen [“red”, “blue”, “green”].grep /u/ blue “The Times They are a-Changin’”.gsub //, “.” The.Times.They.are.a-Changin’
Everything is an Object 42.class  FixNum 42.2.class.superclass  Integer 42.class.superclass.superclass   Numeric 42.class.superclass.superclass.superclass    Object No, really… everything is an object puts customer.name unless customer.nil? nil.classNilClass nil.class.superclass Object
RubyGems gem installhpricot
Speaking of hpricot… require ‘rubygems’ require ‘hpricot’ require ‘open-uri’ uri = open(“http://whatsit.org”) doc = Hpricot(uri) (doc/"p/a/img").each do |img|    puts img.attributes['class'] end
Rake task :codeGen do   # do the code generation end task :compile => :codeGen do   #do the compilation end task :dataLoad => :codeGen do   # load the test data end task :test => [:compile, :dataLoad] do   # run the tests end
RSpec # bowling_spec.rb require 'bowling' describe Bowling do   it "should score 0 for gutter game" do     bowling = Bowling.new     20.times { bowling.hit 0 } bowling.score.should == 0   end end
…and now the elephant in the room rails
Rails is the bee’s knees because… convention  configuration
Rails is the bee’s knees because… it has ActiveRecord
Rails is the bee’s knees because… it has Migrations
Rails is the bee’s knees because… it has the Console
Rails is the bee’s knees because… scaffolding
Rails is the bee’s knees because… Logging is built-in
Rails is the bee’s knees because… Tests come out of the box
Rails is the bee’s knees because… There is ONE WAY
What else? heroku
What else? IronRuby
thank_you

Weitere ähnliche Inhalte

Was ist angesagt?

Deploying a Location-Aware Ember Application
Deploying a Location-Aware Ember ApplicationDeploying a Location-Aware Ember Application
Deploying a Location-Aware Ember ApplicationBen Limmer
 
Coffeescript: An Opinionated Introduction
Coffeescript: An Opinionated IntroductionCoffeescript: An Opinionated Introduction
Coffeescript: An Opinionated IntroductionJoe Fleming
 
Rails-3-app-auto-generator-20100817
Rails-3-app-auto-generator-20100817Rails-3-app-auto-generator-20100817
Rails-3-app-auto-generator-20100817Tse-Ching Ho
 
Mojolicious - A new hope
Mojolicious - A new hopeMojolicious - A new hope
Mojolicious - A new hopeMarcus Ramberg
 
An introduction to Rex - FLOSS UK DevOps York 2015
An introduction to Rex - FLOSS UK DevOps York 2015An introduction to Rex - FLOSS UK DevOps York 2015
An introduction to Rex - FLOSS UK DevOps York 2015Andy Beverley
 
Sinatra + Heroku
Sinatra + HerokuSinatra + Heroku
Sinatra + Herokulvrubygroup
 
Refactorización de aplicaciones PHP/Symfony2
Refactorización de aplicaciones PHP/Symfony2Refactorización de aplicaciones PHP/Symfony2
Refactorización de aplicaciones PHP/Symfony2Raul Fraile
 
Ansible -new kid in configuration management world
Ansible -new kid in configuration management worldAnsible -new kid in configuration management world
Ansible -new kid in configuration management worldMaciej Sawicki
 
Gem That (2009)
Gem That (2009)Gem That (2009)
Gem That (2009)lazyatom
 
Perl: Hate it for the Right Reasons
Perl: Hate it for the Right ReasonsPerl: Hate it for the Right Reasons
Perl: Hate it for the Right ReasonsMatt Follett
 
Hooked on WordPress: WordCamp Columbus
Hooked on WordPress: WordCamp ColumbusHooked on WordPress: WordCamp Columbus
Hooked on WordPress: WordCamp ColumbusShawn Hooper
 
Lessons Learnt in 2009
Lessons Learnt in 2009Lessons Learnt in 2009
Lessons Learnt in 2009pratiknaik
 
Javascript orientado a testes
Javascript orientado a testesJavascript orientado a testes
Javascript orientado a testesAlexandre Gomes
 
Cooking Up Drama - ChefConf 2015
Cooking Up Drama - ChefConf 2015 Cooking Up Drama - ChefConf 2015
Cooking Up Drama - ChefConf 2015 Chef
 
Copycopter Presentation by Joe Ferris at BostonRB
Copycopter Presentation by Joe Ferris at BostonRBCopycopter Presentation by Joe Ferris at BostonRB
Copycopter Presentation by Joe Ferris at BostonRBbostonrb
 

Was ist angesagt? (19)

Deploying a Location-Aware Ember Application
Deploying a Location-Aware Ember ApplicationDeploying a Location-Aware Ember Application
Deploying a Location-Aware Ember Application
 
RSpec 2 Best practices
RSpec 2 Best practicesRSpec 2 Best practices
RSpec 2 Best practices
 
Coffeescript: An Opinionated Introduction
Coffeescript: An Opinionated IntroductionCoffeescript: An Opinionated Introduction
Coffeescript: An Opinionated Introduction
 
Rails-3-app-auto-generator-20100817
Rails-3-app-auto-generator-20100817Rails-3-app-auto-generator-20100817
Rails-3-app-auto-generator-20100817
 
Mojolicious - A new hope
Mojolicious - A new hopeMojolicious - A new hope
Mojolicious - A new hope
 
An introduction to Rex - FLOSS UK DevOps York 2015
An introduction to Rex - FLOSS UK DevOps York 2015An introduction to Rex - FLOSS UK DevOps York 2015
An introduction to Rex - FLOSS UK DevOps York 2015
 
Sinatra + Heroku
Sinatra + HerokuSinatra + Heroku
Sinatra + Heroku
 
Refactorización de aplicaciones PHP/Symfony2
Refactorización de aplicaciones PHP/Symfony2Refactorización de aplicaciones PHP/Symfony2
Refactorización de aplicaciones PHP/Symfony2
 
Ansible -new kid in configuration management world
Ansible -new kid in configuration management worldAnsible -new kid in configuration management world
Ansible -new kid in configuration management world
 
Gem That (2009)
Gem That (2009)Gem That (2009)
Gem That (2009)
 
Perl: Hate it for the Right Reasons
Perl: Hate it for the Right ReasonsPerl: Hate it for the Right Reasons
Perl: Hate it for the Right Reasons
 
Hooked on WordPress: WordCamp Columbus
Hooked on WordPress: WordCamp ColumbusHooked on WordPress: WordCamp Columbus
Hooked on WordPress: WordCamp Columbus
 
Lessons Learnt in 2009
Lessons Learnt in 2009Lessons Learnt in 2009
Lessons Learnt in 2009
 
GAEO
GAEOGAEO
GAEO
 
Mojolicious on Steroids
Mojolicious on SteroidsMojolicious on Steroids
Mojolicious on Steroids
 
Javascript orientado a testes
Javascript orientado a testesJavascript orientado a testes
Javascript orientado a testes
 
Cooking Up Drama
Cooking Up DramaCooking Up Drama
Cooking Up Drama
 
Cooking Up Drama - ChefConf 2015
Cooking Up Drama - ChefConf 2015 Cooking Up Drama - ChefConf 2015
Cooking Up Drama - ChefConf 2015
 
Copycopter Presentation by Joe Ferris at BostonRB
Copycopter Presentation by Joe Ferris at BostonRBCopycopter Presentation by Joe Ferris at BostonRB
Copycopter Presentation by Joe Ferris at BostonRB
 

Andere mochten auch

JSE Top 40 and social media: 14 march 2011
JSE Top 40 and social media: 14 march 2011JSE Top 40 and social media: 14 march 2011
JSE Top 40 and social media: 14 march 2011japie swanepoel
 
Bizcom Work - Charte Fast Complete Light
Bizcom Work - Charte Fast Complete LightBizcom Work - Charte Fast Complete Light
Bizcom Work - Charte Fast Complete LightBranding pass
 
guRuby Community Appeal in RubyKaigi 2013 (safe ver.)
guRuby Community Appeal in RubyKaigi 2013 (safe ver.)guRuby Community Appeal in RubyKaigi 2013 (safe ver.)
guRuby Community Appeal in RubyKaigi 2013 (safe ver.)Shinya Hayakawa
 
Molntjänster som it superhjältar
Molntjänster som it superhjältarMolntjänster som it superhjältar
Molntjänster som it superhjältarPer Åström
 
家長講座﹕如何利用圖書館資源協助學習
家長講座﹕如何利用圖書館資源協助學習家長講座﹕如何利用圖書館資源協助學習
家長講座﹕如何利用圖書館資源協助學習fongyun
 
Tutorial de computacion basica II
Tutorial de computacion basica IITutorial de computacion basica II
Tutorial de computacion basica IIeliana aguilar
 
Maximizing Social Security with Retirement
Maximizing Social Security with RetirementMaximizing Social Security with Retirement
Maximizing Social Security with Retirementb960697
 
Multimedia project with audio
Multimedia project with audioMultimedia project with audio
Multimedia project with audiocarrieschlosser
 
C:\fakepath\protocolos y recursos de internet
C:\fakepath\protocolos y recursos de internetC:\fakepath\protocolos y recursos de internet
C:\fakepath\protocolos y recursos de internetrfuentesb
 
C:\fakepath\protocolos y recursos de internet
C:\fakepath\protocolos y recursos de internetC:\fakepath\protocolos y recursos de internet
C:\fakepath\protocolos y recursos de internetfmirandac
 
mapa conceptual sobre el proceso de investigacion
mapa conceptual sobre el proceso de investigacion mapa conceptual sobre el proceso de investigacion
mapa conceptual sobre el proceso de investigacion Jibran Tannous
 

Andere mochten auch (20)

Presentation3
Presentation3Presentation3
Presentation3
 
JSE Top 40 and social media: 14 march 2011
JSE Top 40 and social media: 14 march 2011JSE Top 40 and social media: 14 march 2011
JSE Top 40 and social media: 14 march 2011
 
Bizcom Work - Charte Fast Complete Light
Bizcom Work - Charte Fast Complete LightBizcom Work - Charte Fast Complete Light
Bizcom Work - Charte Fast Complete Light
 
guRuby Community Appeal in RubyKaigi 2013 (safe ver.)
guRuby Community Appeal in RubyKaigi 2013 (safe ver.)guRuby Community Appeal in RubyKaigi 2013 (safe ver.)
guRuby Community Appeal in RubyKaigi 2013 (safe ver.)
 
Molntjänster som it superhjältar
Molntjänster som it superhjältarMolntjänster som it superhjältar
Molntjänster som it superhjältar
 
家長講座﹕如何利用圖書館資源協助學習
家長講座﹕如何利用圖書館資源協助學習家長講座﹕如何利用圖書館資源協助學習
家長講座﹕如何利用圖書館資源協助學習
 
Aizu.LT05
Aizu.LT05Aizu.LT05
Aizu.LT05
 
Guia apa6taed
Guia apa6taedGuia apa6taed
Guia apa6taed
 
Tutorial de computacion basica II
Tutorial de computacion basica IITutorial de computacion basica II
Tutorial de computacion basica II
 
Maximizing Social Security with Retirement
Maximizing Social Security with RetirementMaximizing Social Security with Retirement
Maximizing Social Security with Retirement
 
Multimedia project with audio
Multimedia project with audioMultimedia project with audio
Multimedia project with audio
 
Dispositivos de Expansion
Dispositivos de ExpansionDispositivos de Expansion
Dispositivos de Expansion
 
C:\fakepath\protocolos y recursos de internet
C:\fakepath\protocolos y recursos de internetC:\fakepath\protocolos y recursos de internet
C:\fakepath\protocolos y recursos de internet
 
C:\fakepath\protocolos y recursos de internet
C:\fakepath\protocolos y recursos de internetC:\fakepath\protocolos y recursos de internet
C:\fakepath\protocolos y recursos de internet
 
Mobb recht090918
Mobb recht090918Mobb recht090918
Mobb recht090918
 
Palacios Alejandro Wiki
Palacios Alejandro WikiPalacios Alejandro Wiki
Palacios Alejandro Wiki
 
Hora do Sul
Hora do SulHora do Sul
Hora do Sul
 
mapa conceptual sobre el proceso de investigacion
mapa conceptual sobre el proceso de investigacion mapa conceptual sobre el proceso de investigacion
mapa conceptual sobre el proceso de investigacion
 
T1P2-D1 DIEGO ANDRES NARVAEZ NARVAEZ
T1P2-D1 DIEGO ANDRES NARVAEZ NARVAEZT1P2-D1 DIEGO ANDRES NARVAEZ NARVAEZ
T1P2-D1 DIEGO ANDRES NARVAEZ NARVAEZ
 
Black ch01
Black ch01Black ch01
Black ch01
 

Ähnlich wie ReasonsLoveRuby

Ruby Programming Language
Ruby Programming LanguageRuby Programming Language
Ruby Programming LanguageDuda Dornelles
 
A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles
A linguagem de programação Ruby - Robson "Duda" Sejan Soares DornellesA linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles
A linguagem de programação Ruby - Robson "Duda" Sejan Soares DornellesTchelinux
 
Ruby 入門 第一次就上手
Ruby 入門 第一次就上手Ruby 入門 第一次就上手
Ruby 入門 第一次就上手Wen-Tien Chang
 
CoffeeScript-Ruby-Tuesday
CoffeeScript-Ruby-TuesdayCoffeeScript-Ruby-Tuesday
CoffeeScript-Ruby-TuesdayEddie Kao
 
A tour on ruby and friends
A tour on ruby and friendsA tour on ruby and friends
A tour on ruby and friends旻琦 潘
 
Ruby and Rails by Example (GeekCamp edition)
Ruby and Rails by Example (GeekCamp edition)Ruby and Rails by Example (GeekCamp edition)
Ruby and Rails by Example (GeekCamp edition)bryanbibat
 
Crossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkCrossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkDaniel Spector
 
jRuby: The best of both worlds
jRuby: The best of both worldsjRuby: The best of both worlds
jRuby: The best of both worldsChristopher Spring
 
Hacking with ruby2ruby
Hacking with ruby2rubyHacking with ruby2ruby
Hacking with ruby2rubyMarc Chung
 
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasmineSingle Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasminePaulo Ragonha
 
Extracting ruby gem
Extracting ruby gemExtracting ruby gem
Extracting ruby gemYura Tolstik
 
Blocks by Lachs Cox
Blocks by Lachs CoxBlocks by Lachs Cox
Blocks by Lachs Coxlachie
 
Art of Javascript
Art of JavascriptArt of Javascript
Art of JavascriptTarek Yehia
 
The Enterprise Strikes Back
The Enterprise Strikes BackThe Enterprise Strikes Back
The Enterprise Strikes BackBurke Libbey
 
RubyMotion
RubyMotionRubyMotion
RubyMotionMark
 
Rails 2010 Workshop
Rails 2010 WorkshopRails 2010 Workshop
Rails 2010 Workshopdtsadok
 

Ähnlich wie ReasonsLoveRuby (20)

Ruby Programming Language
Ruby Programming LanguageRuby Programming Language
Ruby Programming Language
 
A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles
A linguagem de programação Ruby - Robson "Duda" Sejan Soares DornellesA linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles
A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles
 
Ruby 入門 第一次就上手
Ruby 入門 第一次就上手Ruby 入門 第一次就上手
Ruby 入門 第一次就上手
 
CoffeeScript-Ruby-Tuesday
CoffeeScript-Ruby-TuesdayCoffeeScript-Ruby-Tuesday
CoffeeScript-Ruby-Tuesday
 
A tour on ruby and friends
A tour on ruby and friendsA tour on ruby and friends
A tour on ruby and friends
 
Ruby and Rails by Example (GeekCamp edition)
Ruby and Rails by Example (GeekCamp edition)Ruby and Rails by Example (GeekCamp edition)
Ruby and Rails by Example (GeekCamp edition)
 
"Javascript" por Tiago Rodrigues
"Javascript" por Tiago Rodrigues"Javascript" por Tiago Rodrigues
"Javascript" por Tiago Rodrigues
 
Ruby
RubyRuby
Ruby
 
Crossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkCrossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end Framework
 
jRuby: The best of both worlds
jRuby: The best of both worldsjRuby: The best of both worlds
jRuby: The best of both worlds
 
Hacking with ruby2ruby
Hacking with ruby2rubyHacking with ruby2ruby
Hacking with ruby2ruby
 
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasmineSingle Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
 
An introduction to Ruby
An introduction to RubyAn introduction to Ruby
An introduction to Ruby
 
Extracting ruby gem
Extracting ruby gemExtracting ruby gem
Extracting ruby gem
 
Blocks by Lachs Cox
Blocks by Lachs CoxBlocks by Lachs Cox
Blocks by Lachs Cox
 
Art of Javascript
Art of JavascriptArt of Javascript
Art of Javascript
 
The Enterprise Strikes Back
The Enterprise Strikes BackThe Enterprise Strikes Back
The Enterprise Strikes Back
 
RubyMotion
RubyMotionRubyMotion
RubyMotion
 
Rails 2010 Workshop
Rails 2010 WorkshopRails 2010 Workshop
Rails 2010 Workshop
 
Ruby gems
Ruby gemsRuby gems
Ruby gems
 

Mehr von Ben Scheirman

Effective iOS Network Programming Techniques
Effective iOS Network Programming TechniquesEffective iOS Network Programming Techniques
Effective iOS Network Programming TechniquesBen Scheirman
 
Objective-C & iPhone for .NET Developers
Objective-C & iPhone for .NET DevelopersObjective-C & iPhone for .NET Developers
Objective-C & iPhone for .NET DevelopersBen Scheirman
 
iPhone for .NET Developers
iPhone for .NET DevelopersiPhone for .NET Developers
iPhone for .NET DevelopersBen Scheirman
 
A Scalable Rails App Deployed in 60 Seconds
A Scalable Rails App Deployed in 60 SecondsA Scalable Rails App Deployed in 60 Seconds
A Scalable Rails App Deployed in 60 SecondsBen Scheirman
 

Mehr von Ben Scheirman (6)

Meet Git
Meet GitMeet Git
Meet Git
 
Effective iOS Network Programming Techniques
Effective iOS Network Programming TechniquesEffective iOS Network Programming Techniques
Effective iOS Network Programming Techniques
 
Objective-C & iPhone for .NET Developers
Objective-C & iPhone for .NET DevelopersObjective-C & iPhone for .NET Developers
Objective-C & iPhone for .NET Developers
 
iPhone for .NET Developers
iPhone for .NET DevelopersiPhone for .NET Developers
iPhone for .NET Developers
 
SQLite Techniques
SQLite TechniquesSQLite Techniques
SQLite Techniques
 
A Scalable Rails App Deployed in 60 Seconds
A Scalable Rails App Deployed in 60 SecondsA Scalable Rails App Deployed in 60 Seconds
A Scalable Rails App Deployed in 60 Seconds
 

Kürzlich hochgeladen

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
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
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
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
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 

Kürzlich hochgeladen (20)

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
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
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
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
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 

ReasonsLoveRuby

  • 1. a bunch of reasons to love ruby
  • 2. class Ben < Personis_a :mvp, :scrummaster, :aspinsider def initialize @book = “ASP.NET MVC in Action” @twitter = “subdigital” @blog= “http://flux88.com” @iphone_app= “Pocket Tabs” end ...end
  • 4. Meet Ruby puts“hello world”hello world puts“hello world”.reversedlrowolleh puts“hello world”[0..5] hello
  • 5. Ruby Variables num = 323 message = “Hey there” stuff = [1, “foo”, true]
  • 6. Ruby Loops [“cat”, “dog”, “giraffe”].each do |s| puts s end [“cat”, “dog”, “giraffe”].each { |s| puts s }
  • 7. Working with Arrays animals = [“zebra”, “donkey”, “lemur”] animals.sort[“donkey”, “lemur”, “zebra”] # original array is untouched animals.sort! # original array is modified! animals.delete“zebra” [“donkey”, “lemur”]
  • 8. Ruby has Less Ceremony //C# Dictionary<string, object> hash = new Dictionary<string, object>(); #ruby hash = {} #optional semicolons & parentheses add(5, 6); is the same as add 5, 6
  • 9. You Can Extend Existing classes 5.days.from_now
  • 10. Ruby is Terse, yet Readable 3.times { print “Ho ” } => Ho Ho Ho approve_credit unless account.deliquent? send_email if email_enabled?
  • 11. Regex is a 1st class citizen [“red”, “blue”, “green”].grep /u/ blue “The Times They are a-Changin’”.gsub //, “.” The.Times.They.are.a-Changin’
  • 12. Everything is an Object 42.class FixNum 42.2.class.superclass  Integer 42.class.superclass.superclass  Numeric 42.class.superclass.superclass.superclass  Object No, really… everything is an object puts customer.name unless customer.nil? nil.classNilClass nil.class.superclass Object
  • 14. Speaking of hpricot… require ‘rubygems’ require ‘hpricot’ require ‘open-uri’ uri = open(“http://whatsit.org”) doc = Hpricot(uri) (doc/"p/a/img").each do |img| puts img.attributes['class'] end
  • 15. Rake task :codeGen do # do the code generation end task :compile => :codeGen do #do the compilation end task :dataLoad => :codeGen do # load the test data end task :test => [:compile, :dataLoad] do # run the tests end
  • 16. RSpec # bowling_spec.rb require 'bowling' describe Bowling do it "should score 0 for gutter game" do bowling = Bowling.new 20.times { bowling.hit 0 } bowling.score.should == 0 end end
  • 17. …and now the elephant in the room rails
  • 18. Rails is the bee’s knees because… convention configuration
  • 19. Rails is the bee’s knees because… it has ActiveRecord
  • 20. Rails is the bee’s knees because… it has Migrations
  • 21. Rails is the bee’s knees because… it has the Console
  • 22. Rails is the bee’s knees because… scaffolding
  • 23. Rails is the bee’s knees because… Logging is built-in
  • 24. Rails is the bee’s knees because… Tests come out of the box
  • 25. Rails is the bee’s knees because… There is ONE WAY