SlideShare a Scribd company logo
1 of 80
Download to read offline
tDiary             Ruby1.9


                Our tDiary's policy and strategies to support Ruby
                             1.9 and our future plan.


                                        (tDiary.org)
                          SHIBATA Hiroshi (tDiary.org)



2009   7   19                                                        1
2009   7   19   2
• SHIBATA Hiroshi a.k.a hsbt (hsbt.org)
                •
                • 1981
2009   7   19                                             3
Ruby

                •     4     id:gotoken



                • tDiary   Web




2009   7   19                            4
• Administrator of developer team for
                  tDiary.org

2009   7   19                                           5
RubyKaigi2009
                          /


2009   7   19                   6
2009   7   19   7
Agenda
                •
                • tDiary-2.3.2           (Ruby 1.9
                         )

                • Ruby 1.9
                • tDiary-2.3.3~ future
2009   7   19                                        8
2009   7   19   9
tDiary
                         ?


2009   7   19                10
tDiary




2009   7   19            11
tDiary   …




2009   7   19                12
tDiary

                • feed reader            (ry

                • tDiary                       (ry

                •
                      (ry



2009   7   19                                        13
tDiary
                • Tsukkomi oriented Diary system
                • before Rails               (25   )

                • Ruby
                 •                      Ruby




2009   7   19                                          14
tDiary
                Ruby

2009   7   19               15
2009/01/30
                Ruby 1.9 Release!


2009   7   19                       16
Ruby 1.9
                           ?


2009   7   19                  17
RubyKaigi2009
                          /


2009   7   19                   18
tDiary   Ruby
                   1.9

2009   7   19                   19
tDiary                 Ruby 1.9

                • Ruby 1.9

                • tDiary     Ruby 1.9



                •                       Ruby 1.9



2009   7   19                                      20
Agenda

                •
                • tDiary-2.3.2           (Ruby 1.9   )

                • Ruby 1.9
                • tDiary-2.3.3~ future

2009   7   19                                            21
tDiary-2.3.2
                  (Ruby 1.9    )



2009   7   19                      22
2009   7   19   23
orz
2009   7   19         24
by kakutani


2009   7   19                 25
…


2009   7   19       26
2009   7   19   27
2008   12




2009   7   19               28
2009   7   19   29
Ruby 1.9
                •

                •

2009   7   19              30
Ruby 1.9

                •   1.8   1.9


                •   magic comment


2009   7   19                       31
Ruby 1.9
                •   ruby       --encoding


                •

2009   7   19                               32
Agenda

                •
                • tDiary-2.3.2           (Ruby 1.9   )

                • Ruby 1.9
                • tDiary-2.3.3~ future

2009   7   19                                            33
Ruby 1.9


2009   7   19              34
1


  (core/misc/lib/compatible.rb)

2009   7   19                     35
compatible.rb

                •                     machu

                • 1.8 1.9
                  • for 1.9: String.each_line, String.to_a ...
                  • for 1.8: String.force_encoding,
                     String.bytesize ...



2009   7   19                                                    36
2


                (magic comment ru)

2009   7   19                        37
•   *.rb   1


                •   shebang
                      2

2009   7   19                  38
1




2009   7   19       39
sed                        !
       gsed -i "1s/.*/# -*- coding: utf-8; -*-n&/" **/*.rb




2009   7   19                                                   40
3
                ruby --encoding=utf-8


2009   7   19                           41
ruby --encoding=utf-8
                • ruby      --encoding



                • tDiary      index.rb   update.rb
                  shebang

                 •

2009   7   19                                        42
4




2009   7   19       43
•        open( file, ‘r:utf-8’)


                •   Ruby 1.8.6

                •
2009   7   19                                    44
default_external      !

       Encoding::default_external = ‘UTF-8’




2009   7   19                                 45
RUBY_VERSION




2009   7   19                  46
2009   7   19   47
• cgi.cookies   ASCII-8BIT
                encoding

            •                         map    Enumerator
                                      to_a

            • get               nil




2009   7   19                                             48
…



2009   7   19       49
2009   7   19   50
…



2009   7   19       51
eval     SecurityError



2009   7   19                   52
eval   SecurityError




2009   7   19                     53
[BUG]
           • $SAFE= 1   eval [BUG]

           •




2009   7   19                        54
ruby-1.9.1p129   bug fix



2009   7   19                         55
• Ruby   [BUG]

            • Ruby   [BUG]



                •       (ry



2009   7   19                 56
2009/05/08
                tDiary-2.3.2


2009   7   19                     57
2009   7   19   58
hsbt.org




2009   7   19              59
Agenda

                •
                • tDiary-2.3.2           (Ruby 1.9   )

                • Ruby 1.9
                • tDiary-2.3.3~ future

2009   7   19                                            60
tDiary-2.3.3~ future


2009   7   19                          61
tDiary-2.3.3~ future

                • testing framework
                  • rspec
                  • cucumber
                • CGI Rack
                •
2009   7   19                            62
testing framework

                •    (          C       )   :



                •
                •    : rspec cucumber



2009   7   19                                   63
rspec
                •plugin

                • contrib       core




2009   7   19                          64
cucumber
                •
                • testable_tdiary




2009   7   19                       65
testable_tdiary!!


2009   7   19                       66
2009   7   19   67
SapporoRubyKaigi01




2009   7   19                        68
…

                •     tDiary     01



                • http://kakutani.com/20081025.html#p01


2009   7   19                                             69
testable_tdiary



2009   7   19                 70
github




                http://github.com/hsbt/tdiary/tree/testable_merge

2009   7   19                                                       71
•script/server (pure webrick)
                • rackup -s webrick tdiary.ru
                • cucumber -l ja features
                 •
2009   7   19                                   72
tDiary



2009   7   19            73
tDiary   cgi.rb

                         webrick
                                   cgi.rb

                         rack      webrick

                                   passenger



2009   7   19                                  74
/
            • cache          cache



            • XMLRPC
            • mod_ruby           fcgi

            • Ruby 1.9
2009   7   19                           75
2009   7   19   76
2009   7   19   77
• tDiary   Ruby

                •            : tDiary Ruby1.9



                •            : tDiary 2.3.3




2009   7   19                                   78
2009   7   19   79
Q&A



2009   7   19         80

More Related Content

Viewers also liked

Viewers also liked (13)

March 2014 video webinar (2)
March 2014 video webinar (2)March 2014 video webinar (2)
March 2014 video webinar (2)
 
Salmon
SalmonSalmon
Salmon
 
3 28 Rop
3 28 Rop3 28 Rop
3 28 Rop
 
FACEBOOK FAN PAGE TIPS AND TRICKS – PART 1
FACEBOOK FAN PAGE  TIPS  AND  TRICKS – PART 1 FACEBOOK FAN PAGE  TIPS  AND  TRICKS – PART 1
FACEBOOK FAN PAGE TIPS AND TRICKS – PART 1
 
Aaaa
AaaaAaaa
Aaaa
 
Diap
DiapDiap
Diap
 
KIS Programma - Social Media Training 10-11-2011
KIS Programma - Social Media Training 10-11-2011KIS Programma - Social Media Training 10-11-2011
KIS Programma - Social Media Training 10-11-2011
 
Groovy and Grails
Groovy and GrailsGroovy and Grails
Groovy and Grails
 
andrea
andreaandrea
andrea
 
My Designer Desserts
My Designer DessertsMy Designer Desserts
My Designer Desserts
 
Marcy Coffee Print
Marcy Coffee PrintMarcy Coffee Print
Marcy Coffee Print
 
5 myths whitepaper
5 myths whitepaper5 myths whitepaper
5 myths whitepaper
 
Ouvidoriabacen
OuvidoriabacenOuvidoriabacen
Ouvidoriabacen
 

Similar to RubyKaigi2009 Presentation Slide (7)

tDiary annual report 2009 - Sapporo Ruby Kaigi02
tDiary annual report 2009 - Sapporo Ruby Kaigi02tDiary annual report 2009 - Sapporo Ruby Kaigi02
tDiary annual report 2009 - Sapporo Ruby Kaigi02
 
Ruby を全面的に採用した東京ガスの地震防災システム
Ruby を全面的に採用した東京ガスの地震防災システムRuby を全面的に採用した東京ガスの地震防災システム
Ruby を全面的に採用した東京ガスの地震防災システム
 
Tc&Tt
Tc&TtTc&Tt
Tc&Tt
 
Edo Cabinet
Edo CabinetEdo Cabinet
Edo Cabinet
 
About Tdc
About TdcAbout Tdc
About Tdc
 
Adventures of java developer in ruby world
Adventures of java developer in ruby worldAdventures of java developer in ruby world
Adventures of java developer in ruby world
 
くみこみからひとことReturns
くみこみからひとことReturnsくみこみからひとことReturns
くみこみからひとことReturns
 

More from Hiroshi SHIBATA

More from Hiroshi SHIBATA (20)

Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Deep dive into Ruby's require - RubyConf Taiwan 2023
Deep dive into Ruby's require - RubyConf Taiwan 2023Deep dive into Ruby's require - RubyConf Taiwan 2023
Deep dive into Ruby's require - RubyConf Taiwan 2023
 
How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?
 
How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?
 
Ruby コミッターと歩む Ruby を用いたプロダクト開発
Ruby コミッターと歩む Ruby を用いたプロダクト開発Ruby コミッターと歩む Ruby を用いたプロダクト開発
Ruby コミッターと歩む Ruby を用いたプロダクト開発
 
Why ANDPAD commit Ruby and RubyKaigi?
Why ANDPAD commit Ruby and RubyKaigi?Why ANDPAD commit Ruby and RubyKaigi?
Why ANDPAD commit Ruby and RubyKaigi?
 
RailsGirls から始める エンジニアリングはじめの一歩
RailsGirls から始める エンジニアリングはじめの一歩RailsGirls から始める エンジニアリングはじめの一歩
RailsGirls から始める エンジニアリングはじめの一歩
 
How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?
 
The details of CI/CD environment for Ruby
The details of CI/CD environment for RubyThe details of CI/CD environment for Ruby
The details of CI/CD environment for Ruby
 
Dependency Resolution with Standard Libraries
Dependency Resolution with Standard LibrariesDependency Resolution with Standard Libraries
Dependency Resolution with Standard Libraries
 
Roadmap for RubyGems 4 and Bundler 3
Roadmap for RubyGems 4 and Bundler 3Roadmap for RubyGems 4 and Bundler 3
Roadmap for RubyGems 4 and Bundler 3
 
The Future of library dependency management of Ruby
 The Future of library dependency management of Ruby The Future of library dependency management of Ruby
The Future of library dependency management of Ruby
 
Ruby Security the Hard Way
Ruby Security the Hard WayRuby Security the Hard Way
Ruby Security the Hard Way
 
OSS Security the hard way
OSS Security the hard wayOSS Security the hard way
OSS Security the hard way
 
The Future of library dependency manageement of Ruby
The Future of library dependency manageement of RubyThe Future of library dependency manageement of Ruby
The Future of library dependency manageement of Ruby
 
The Future of Dependency Management for Ruby
The Future of Dependency Management for RubyThe Future of Dependency Management for Ruby
The Future of Dependency Management for Ruby
 
The Future of Bundled Bundler
The Future of Bundled BundlerThe Future of Bundled Bundler
The Future of Bundled Bundler
 
What's new in RubyGems3
What's new in RubyGems3What's new in RubyGems3
What's new in RubyGems3
 
Productive Organization with Ruby
Productive Organization with RubyProductive Organization with Ruby
Productive Organization with Ruby
 
Gems on Ruby
Gems on RubyGems on Ruby
Gems on Ruby
 

Recently uploaded

Recently uploaded (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

RubyKaigi2009 Presentation Slide