Ruby の標準乱数生成器とその改良案
       The standard random number generator
        of Ruby and the proposal to improve it

                      村田 賢太
                     Kenta Murata
                         mrkn




                          1
2009年7月18日土曜日
Ruby の標準乱数生成器とその改良案
       The standard random number generator
        of Ruby and the proposal to improve it

                      村田 賢太
                     Kenta Murata
                         mrkn




                          2
2009年7月18日土曜日
Kenta Murata, Ph.D

    ‣ Ph.D (Hokkaido University)
       ‣ Department of Information Science.
    ‣ Born on July 20th 【COMING SOON】

    ‣ Membership
      ‣ Ruby Sapporo (ruby-sapporo.org)
      ‣ KaigiFreaks
      ‣ Nihon Ruby-no kai
      ‣ Kosen Conference (kosenconf.jp)

                              3
2009年7月18日土曜日
My RubyKaigi 2008




Photo by snoozer05 in Flickr http://www.flickr.com/photos/snoozer/2605952121/
                                                    4
2009年7月18日土曜日
My RubyKaigi 2008
Photo by darashi in Flickr http://www.flickr.com/photos/darashi/2598246980/
                                                     5
2009年7月18日土曜日
KaigiFreaks 2008



Photo by snoozer05 in Flickr http://www.flickr.com/photos/snoozer/2605971795/
                                                    6
2009年7月18日土曜日
KaigiFreaks は今年も
                       Ruby 会議を
    全世界へお届けします!

Photo by snoozer05 in Flickr http://www.flickr.com/photos/snoozer/2605971795/
2009年7月18日土曜日
Ruby 逆引きレシピ
                                                           Recipe
                                                                 ★ ★ ★
                                                        Programmer's
                                                                 ★ ★ ★
                                                                                                                                              7月25日発売!!
                                                                                                                                               ★
                                                                                                                                                     ★ ★ ★
                                                                                                                                                   Programmer's
                                                                                                                                                      Recipe
                                                                                                                                                     ★ ★ ★




                                                                                                                                                                  Ruby ★                      ★ ★ ★
                                                                                                                                                                                            Programmer's
                                                                                                                                                                                               Recipe
                                                                                                                                                                                              ★ ★ ★
                                                                                                                                                                                                           ★ ★ ★




                                                                                                                                                   Ruby
                                                                                                                                                                                                           本書について
                          【逆引きレシピシ ー
                                  リ ズ】




                                                                                            ★Ruby
                                                                                                                                                                                                             Rubyの世界はとても
           Visual Basic 2008 逆引き シピ
                                レ                                                                                                                                                                          でさえ道に迷って うしま こ
          [Windowsアプリケーシ ン編]
                        ョ                                                                     ★ ★ ★                                                                                                        リ、多くの実装手段が存
                                                                                            Programmer's
           現場に即効!! 基本+定番+重要テクニ ク
                              ッ                                                                                                                                                                            着くまでに迷ってしまう


                                                ★
                                                                                               Recipe

                                                                                                                   逆引き ピ
                                                                                                                      レシ
                                                      ★ ★ ★                                   ★ ★ ★                                                                                                        かりの人達が適切な解決
                                                  Programmer's
                                                     Recipe


                                                                                                                                                                                                           えるでしょう。Rubyの入
                                                      ★ ★ ★




             Visual Basic
             2008 逆引きレシピ                                                                                                                                                                                   してはくれません。



                                                                                                                                                                  逆引 レシ
                                                                                                                                                                    き ピ
             中垣健志+藤田聡

                                  [     Windows
                                                  ]
                           著

                                   アプリケーション
                                            編
              すぐ
               ぐに美味しい
              サン
              サンプル&




                                                                                            CONTENTS
              テクニック
              テク

              26
              267                                                                                                                                                                                           本書は、開発の現場で
                                                                                                                                                                                                           する方法や、そのために
                                                                 中垣健志/藤田聡 著
                                                                                               1    さあ始めよう
                                ★ ★ ★

             プロが選んだ三ツ星レシピ !
                         !
              現場に即効!
                   !
                                                                 定価2,520円  (本体2,400円+税5%)                                                                                                                  式で紹介する本です。
              基本+定番+重要テクニック
                                                                                                    RubyGemsや実行環境のカスタマイズなど、
              実開発に即 “実践見出 で、
                        した      し” 困った きにす
                                      と
              Visual Basic によるアプリ シ ン構築のノ
                                 ケー ョ
                                          ぐ引ける
                                         ウハウ
                                              !
                                            を一冊に凝縮。
                                                                 ISBN978-4-7981-1780-5
                                                                                                    Rubyやライブラリを使いこなす環境を整える方法を解説                                   島田浩二/設樂洋爾/村田賢太                           を関連するカテゴリや目
                                                                                                                                                                                                           の説明は必要最低限に
                                                                                                                                                                                        著
                                                                                               2    基本オブジェクト                                                      前田智樹/谷口文威                                ために「どのようなライブ
           SQL 逆引き シピ
                  レ
           即効力のある ピを使えばデー
                 レシ      タ操作が自由自在!!
                                                                                                    文字列、数値、コレクションなどを扱うための知識・テクニックを解説
                                                                                                                                                     逆                                                     サンプルコ ドを交えてわ
                                                                                                                                                                                                                ー



                                                ★
                                                                                               3    システム
                                                                                                                                                     引


                                                                                                                                                                  R y
                                                                                                                                                                  Ruby
                                                                                                                                                                   すぐに美味しい                                  本書のもう1つの目的は
                                                                                                    日付や時刻、標準入出力、ファイルシステムなどを扱うための知識・テクニックを解説
                                                                                                                                                                  サンプル&
                                                      ★ ★ ★
                                                  Programmer's
                                                     Recipe


                                                                                                                                                                                                           れているRubyらしい考え
                                                      ★ ★ ★




             SQL
                                                                                                    オブジェクト指向プログラミング                                               テクニ ク
                                                                                                                                                                     ッ
                                                                                               4
                                                                                                                                                     き
             逆引きレシピ                                                                                                                                                                                        チュ トリアルの形では
                                                                                                                                                                                                             ー




                                                                                                                                                                   232
             西沢直木 著


              すぐに美味しい
              サンプル&
              テクニック
                                                                                                    OOPの技法や慣習をRubyで実現する方法、Rubyプログラミングの際の考え方などを解説                                                           問題をどのよ に解決し
                                                                                                                                                                                                                    う
              160                                                                                                                                                                                          マの考え方とその根底

             プロが選んだ三ツ星レシピ !
                         !
                                ★ ★ ★                            西沢直木 著
                                                                 定価2,310円 (本体2,200円+税5%)
                                                                                               5    データベース/永続化
                                                                                                    各種データベースの操作やオブジェクトを永続化する方法について解説                 レ                                                     そうした考え方さえ身に
                                                                                                                                                                                                           然とRubyを使いこなし自

                                                                                                                                                                                    !
              即効力のあるレシピを使えば




                                                                                                                                                     シ                        よくわか る
              データ操作が自由自在!
                        !




                                                                                                                                                                                         リ その活用法
                                                                 ISBN978-4-7981-1779-9         6    ネットワーク処理/ Webプログラミング                                                                                   ことでしょ う。
             現場に即 “実践見出 で引けるので、
                 した     し”     用途に適した項目 をパパっと
             参照 具体的なサンプルを使った解説で、
               !               複雑なSQL文もラ ク理解
                                        クラ   !




                                                                                                                                                                                          と
                                                                                                                                                                                  使えるライブラ き方
                                                                                                                                                                                                            本書が、 Rubyによる楽し
                                                                                                    さまざまなプロトコルやWebサーバー/クライアント、並列分散処理を扱う方法を解説

                                                                                                                                                     ピ                       ・本当に
                                                                                                                                                                                                           幸いです。


                                                                                                                                                                                   し 考え方と書
           PHP 逆引き シピ
                  レ                                                                            7    各種フォーマット/画像

                                                                                                                                                                             ・Rubyら い
                                                                                                    現場で利用することの多い書式や画像を扱う方法について解説
           即効力のある ピを使えばデー
                 レシ      タ操作が自由自在!!


             PHP
                                                ★     ★ ★ ★
                                                  Programmer's
                                                     Recipe
                                                      ★ ★ ★
                                                                                               8    他言語/外部ライブラリ
                                                                                                    Ruby以外の言語や外部ライブラリを扱う方法について解説
                                                                                                                                                                                  ★ ★ ★
                                                                                               9    エラー処理/ログ
             逆引きレシピ



                                                                                                                                                                  プロが選んだ三ツ星 ピ!
                                                                                                                                                                           レシ !
             鈴木憲治/安藤建一/山田直明             著
             八木照朗/山本義之/河合勝彦



                                                                                                    アプリケーションを作り込む際に必要なエラー処理やログの記録を行なう方法について解説
            P P
            PHP
              すぐに美味しい
              サンプル&
              テクニック

              261        よくわか る!
                                ーバーの設定法
                        ・主要レンタルサ のポイ ト
                                    ン と実際
                                                      と違い
                                                                 鈴木憲治/安藤建一/山田直明
                                                                                              10    テスト/最適化

                                                                                                                                                                  広大なRubyの世界でもう迷わない!
                            リティ対策



                                                                                                                                                     テサ す
                        ・セキュ

                                                                 八木照朗/山本義之/河合勝彦 著
                               ★ ★ ★




                                                                                                    コードの評価を行なう際に必要なテストや各種指標の計測を行なう方法について解説
             プロが選んだ三ツ星レシピ !
                         !
             いまさら聞けない・誰も教えてくれない
                                                                 定価2,730円  (本体2,600円+税5%)                                                               ぐ
                                                                                                                                                     クン に
             本当に必要な知識と技を一冊に凝縮!
                             !
             困った きにす
                と   ぐ引ける 実践で即役立つテクニ ク
                        !          ッ と開発ノウハウ、
             つまづきやすい ハマ
                    ・ りやすいポイ ト
                             ン を徹底解説。


                                                                 ISBN978-4-7981-1986-1        11    デバッグ                                             ニプ 美
                                                                                                                                                                  開発時の悩みを解決する
             Windows/Mac 対応 PHP5.3 対応




                                                                                                    デバッガでRubyプログラムをデバッグする方法や各種デバッグ技法などを解説            ッル し
                                                                                                                                                        味

                                                                                              12    システム管理/自動化                                       ク& い

                                                                                                                                                   232            定番ノウハウ集
                                                                                                    システム管理や作業を自動化する方法を解説

                                                                                              13    ドキュメンテーション/パッケージ化
                                                                                                    APIドキュメントを生成する方法やプログラム配布のためにパッケージ化する方法を解説
         Ruby逆引き シ
                 レ ピ
         ISBN978-4-7981-1988-5                                                                14    さらに先へ                                                         “やりたいこ か ぐ引ける アプリ シ ン開発時に
                                                                                                                                                                        と” らす   !   ケー ョ
                                                                                                    Ruby 1.9の基本やRubyに関する情報収集の方法など、今後の学習に役立つ情報を紹介                   即役立つ機能 ライ リ テクニ ク
                                                                                                                                                                         ・ ブラ ・   ッ を丁寧に解説。




                                                                                                                                         8
2009年7月18日土曜日
Ruby 逆引きレシピ

            ‣ ジュンク堂Ruby 会議支店
                                                           Recipe
                                                                 ★ ★ ★
                                                        Programmer's
                                                                 ★ ★ ★
                                                                                                                                              7月25日発売!!
                                                                                                                                               ★
                                                                                                                                                     ★ ★ ★
                                                                                                                                                   Programmer's
                                                                                                                                                      Recipe
                                                                                                                                                     ★ ★ ★




                                                                                                                                                                  Ruby ★                      ★ ★ ★
                                                                                                                                                                                            Programmer's
                                                                                                                                                                                               Recipe
                                                                                                                                                                                              ★ ★ ★
                                                                                                                                                                                                           ★ ★ ★




                                                                                                                                                   Ruby
                                                                                                                                                                                                           本書について
                          【逆引きレシピシ ー
                                  リ ズ】




                  ★ Ruby
                                                                                                                                                                                                             Rubyの世界はとても
           Visual Basic 2008 逆引き シピ
                                レ                                                                                                                                                                          でさえ道に迷って うしま こ
          [Windowsアプリケーシ ン編]
                        ョ                                                                     ★ ★ ★                                                                                                        リ、多くの実装手段が存
                                                                                            Programmer's
           現場に即効!! 基本+定番+重要テクニ ク
                              ッ                                                                                                                                                                            着くまでに迷ってしまう


                                                ★
                                                                                               Recipe

                                                                                                                   逆引き ピ
                                                                                                                      レシ
                                                      ★ ★ ★                                   ★ ★ ★                                                                                                        かりの人達が適切な解決
                                                  Programmer's
                                                     Recipe


                                                                                                                                                                                                           えるでしょう。Rubyの入
                                                      ★ ★ ★




             Visual Basic
             2008 逆引きレシピ                                                                                                                                                                                   してはくれません。



                                                                                                                                                                  逆引 レシ
                                                                                                                                                                    き ピ
             中垣健志+藤田聡

                                  [     Windows
                                                  ]
                           著




                                                              にて先行発売中!!
                                   アプリケーション
                                            編
              すぐ
               ぐに美味しい
              サン
              サンプル&




                                                                                            CONTENTS
              テクニック
              テク

              26
              267                                                                                                                                                                                           本書は、開発の現場で
                                                                                                                                                                                                           する方法や、そのために
                                                                 中垣健志/藤田聡 著
                                                                                               1    さあ始めよう
                                ★ ★ ★

             プロが選んだ三ツ星レシピ !
                         !
              現場に即効!
                   !
                                                                 定価2,520円  (本体2,400円+税5%)                                                                                                                  式で紹介する本です。
              基本+定番+重要テクニック
                                                                                                    RubyGemsや実行環境のカスタマイズなど、
              実開発に即 “実践見出 で、
                        した      し” 困った きにす
                                      と
              Visual Basic によるアプリ シ ン構築のノ
                                 ケー ョ
                                          ぐ引ける
                                         ウハウ
                                              !
                                            を一冊に凝縮。
                                                                 ISBN978-4-7981-1780-5
                                                                                                    Rubyやライブラリを使いこなす環境を整える方法を解説                                   島田浩二/設樂洋爾/村田賢太                           を関連するカテゴリや目
                                                                                                                                                                                                           の説明は必要最低限に
                                                                                                                                                                                        著
                                                                                               2    基本オブジェクト                                                      前田智樹/谷口文威                                ために「どのようなライブ
           SQL 逆引き シピ
                  レ
           即効力のある ピを使えばデー
                 レシ      タ操作が自由自在!!
                                                                                                    文字列、数値、コレクションなどを扱うための知識・テクニックを解説
                                                                                                                                                     逆                                                     サンプルコ ドを交えてわ
                                                                                                                                                                                                                ー



                                                ★
                                                                                               3    システム
                                                                                                                                                     引


                                                                                                                                                                  R y
                                                                                                                                                                  Ruby
                                                                                                                                                                   すぐに美味しい                                  本書のもう1つの目的は
                                                                                                    日付や時刻、標準入出力、ファイルシステムなどを扱うための知識・テクニックを解説
                                                                                                                                                                  サンプル&
                                                      ★ ★ ★
                                                  Programmer's
                                                     Recipe


                                                                                                                                                                                                           れているRubyらしい考え
                                                      ★ ★ ★




             SQL
                                                                                                    オブジェクト指向プログラミング                                               テクニ ク
                                                                                                                                                                     ッ
                                                                                               4
                                                                                                                                                     き
             逆引きレシピ                                                                                                                                                                                        チュ トリアルの形では
                                                                                                                                                                                                             ー




                                                                                                                                                                   232
             西沢直木 著


              すぐに美味しい
              サンプル&
              テクニック
                                                                                                    OOPの技法や慣習をRubyで実現する方法、Rubyプログラミングの際の考え方などを解説                                                           問題をどのよ に解決し
                                                                                                                                                                                                                    う
              160                                                                                                                                                                                          マの考え方とその根底

             プロが選んだ三ツ星レシピ !
                         !
                                ★ ★ ★                            西沢直木 著
                                                                 定価2,310円 (本体2,200円+税5%)
                                                                                               5    データベース/永続化
                                                                                                    各種データベースの操作やオブジェクトを永続化する方法について解説                 レ                                                     そうした考え方さえ身に
                                                                                                                                                                                                           然とRubyを使いこなし自

                                                                                                                                                                                    !
              即効力のあるレシピを使えば




                                                                                                                                                     シ                        よくわか る
              データ操作が自由自在!
                        !




                                                                                                                                                                                         リ その活用法
                                                                 ISBN978-4-7981-1779-9         6    ネットワーク処理/ Webプログラミング                                                                                   ことでしょ う。
             現場に即 “実践見出 で引けるので、
                 した     し”     用途に適した項目 をパパっと
             参照 具体的なサンプルを使った解説で、
               !               複雑なSQL文もラ ク理解
                                        クラ   !




                                                                                                                                                                                          と
                                                                                                                                                                                  使えるライブラ き方
                                                                                                                                                                                                            本書が、 Rubyによる楽し
                                                                                                    さまざまなプロトコルやWebサーバー/クライアント、並列分散処理を扱う方法を解説

                                                                                                                                                     ピ                       ・本当に
                                                                                                                                                                                                           幸いです。


                                                                                                                                                                                   し 考え方と書
           PHP 逆引き シピ
                  レ                                                                            7    各種フォーマット/画像

                                                                                                                                                                             ・Rubyら い
                                                                                                    現場で利用することの多い書式や画像を扱う方法について解説
           即効力のある ピを使えばデー
                 レシ      タ操作が自由自在!!


             PHP
                                                ★     ★ ★ ★
                                                  Programmer's
                                                     Recipe
                                                      ★ ★ ★
                                                                                               8    他言語/外部ライブラリ
                                                                                                    Ruby以外の言語や外部ライブラリを扱う方法について解説
                                                                                                                                                                                  ★ ★ ★
                                                                                               9    エラー処理/ログ
             逆引きレシピ



                                                                                                                                                                  プロが選んだ三ツ星 ピ!
                                                                                                                                                                           レシ !
             鈴木憲治/安藤建一/山田直明             著
             八木照朗/山本義之/河合勝彦



                                                                                                    アプリケーションを作り込む際に必要なエラー処理やログの記録を行なう方法について解説
            P P
            PHP
              すぐに美味しい
              サンプル&
              テクニック

              261        よくわか る!
                                ーバーの設定法
                        ・主要レンタルサ のポイ ト
                                    ン と実際
                                                      と違い
                                                                 鈴木憲治/安藤建一/山田直明
                                                                                              10    テスト/最適化

                                                                                                                                                                  広大なRubyの世界でもう迷わない!
                            リティ対策



                                                                                                                                                     テサ す
                        ・セキュ

                                                                 八木照朗/山本義之/河合勝彦 著
                               ★ ★ ★




                                                                                                    コードの評価を行なう際に必要なテストや各種指標の計測を行なう方法について解説
             プロが選んだ三ツ星レシピ !
                         !
             いまさら聞けない・誰も教えてくれない
                                                                 定価2,730円  (本体2,600円+税5%)                                                               ぐ
                                                                                                                                                     クン に
             本当に必要な知識と技を一冊に凝縮!
                             !
             困った きにす
                と   ぐ引ける 実践で即役立つテクニ ク
                        !          ッ と開発ノウハウ、
             つまづきやすい ハマ
                    ・ りやすいポイ ト
                             ン を徹底解説。


                                                                 ISBN978-4-7981-1986-1        11    デバッグ                                             ニプ 美
                                                                                                                                                                  開発時の悩みを解決する
             Windows/Mac 対応 PHP5.3 対応




                                                                                                    デバッガでRubyプログラムをデバッグする方法や各種デバッグ技法などを解説            ッル し
                                                                                                                                                        味

                                                                                              12    システム管理/自動化                                       ク& い

                                                                                                                                                   232            定番ノウハウ集
                                                                                                    システム管理や作業を自動化する方法を解説

                                                                                              13    ドキュメンテーション/パッケージ化
                                                                                                    APIドキュメントを生成する方法やプログラム配布のためにパッケージ化する方法を解説
         Ruby逆引き シ
                 レ ピ
         ISBN978-4-7981-1988-5                                                                14    さらに先へ                                                         “やりたいこ か ぐ引ける アプリ シ ン開発時に
                                                                                                                                                                        と” らす   !   ケー ョ
                                                                                                    Ruby 1.9の基本やRubyに関する情報収集の方法など、今後の学習に役立つ情報を紹介                   即役立つ機能 ライ リ テクニ ク
                                                                                                                                                                         ・ ブラ ・   ッ を丁寧に解説。




                                                                                                                                         8
2009年7月18日土曜日
Ruby 逆引きレシピ

            ‣ ジュンク堂Ruby 会議支店
                                                           Recipe
                                                                 ★ ★ ★
                                                        Programmer's
                                                                 ★ ★ ★
                                                                                                                                              7月25日発売!!
                                                                                                                                               ★
                                                                                                                                                     ★ ★ ★
                                                                                                                                                   Programmer's
                                                                                                                                                      Recipe
                                                                                                                                                     ★ ★ ★




                                                                                                                                                                  Ruby ★                      ★ ★ ★
                                                                                                                                                                                            Programmer's
                                                                                                                                                                                               Recipe
                                                                                                                                                                                              ★ ★ ★
                                                                                                                                                                                                           ★ ★ ★




                                                                                                                                                   Ruby
                                                                                                                                                                                                           本書について
                          【逆引きレシピシ ー
                                  リ ズ】




                  ★ Ruby
                                                                                                                                                                                                             Rubyの世界はとても
           Visual Basic 2008 逆引き シピ
                                レ                                                                                                                                                                          でさえ道に迷って うしま こ
          [Windowsアプリケーシ ン編]
                        ョ                                                                     ★ ★ ★                                                                                                        リ、多くの実装手段が存
                                                                                            Programmer's
           現場に即効!! 基本+定番+重要テクニ ク
                              ッ                                                                                                                                                                            着くまでに迷ってしまう


                                                ★
                                                                                               Recipe

                                                                                                                   逆引き ピ
                                                                                                                      レシ
                                                      ★ ★ ★                                   ★ ★ ★                                                                                                        かりの人達が適切な解決
                                                  Programmer's
                                                     Recipe


                                                                                                                                                                                                           えるでしょう。Rubyの入
                                                      ★ ★ ★




             Visual Basic
             2008 逆引きレシピ                                                                                                                                                                                   してはくれません。



                                                                                                                                                                  逆引 レシ
                                                                                                                                                                    き ピ
             中垣健志+藤田聡

                                  [     Windows
                                                  ]
                           著




                                                              にて先行発売中!!
                                   アプリケーション
                                            編
              すぐ
               ぐに美味しい
              サン
              サンプル&




                                                                                             CONTENTS
              テクニック
              テク

              26
              267                                                                                                                                                                                           本書は、開発の現場で
                                                                                                                                                                                                           する方法や、そのために
                                                                 中垣健志/藤田聡 著
                                                                                               1    さあ始めよう
                                ★ ★ ★

             プロが選んだ三ツ星レシピ !
                         !
              現場に即効!
                   !
                                                                 定価2,520円  (本体2,400円+税5%)                                                                                                                  式で紹介する本です。
              基本+定番+重要テクニック
                                                                                                    RubyGemsや実行環境のカスタマイズなど、
              実開発に即 “実践見出 で、
                        した      し” 困った きにす
                                      と
              Visual Basic によるアプリ シ ン構築のノ
                                 ケー ョ
                                          ぐ引ける
                                         ウハウ
                                              !
                                            を一冊に凝縮。
                                                                 ISBN978-4-7981-1780-5
                                                                                                    Rubyやライブラリを使いこなす環境を整える方法を解説                                   島田浩二/設樂洋爾/村田賢太                           を関連するカテゴリや目
                                                                                                                                                                                                           の説明は必要最低限に
                                                                                                                                                                                        著
                                                                                               2    基本オブジェクト                                                      前田智樹/谷口文威                                ために「どのようなライブ
           SQL 逆引き シピ
                  レ
           即効力のある ピを使えばデー
                 レシ      タ操作が自由自在!!
                                                                                                    文字列、数値、コレクションなどを扱うための知識・テクニックを解説
                                                                                                                                                     逆                                                     サンプルコ ドを交えてわ
                                                                                                                                                                                                                ー



                                                ★
                                                                                               3    システム
                                                                                                                                                     引


                                                                                                                                                                  R y
                                                                                                                                                                  Ruby
                                                                                            ♥おまけ付き♥
                                                                                                                                                                   すぐに美味しい                                  本書のもう1つの目的は
                                                                                                    日付や時刻、標準入出力、ファイルシステムなどを扱うための知識・テクニックを解説
                                                                                                                                                                  サンプル&
                                                      ★ ★ ★
                                                  Programmer's
                                                     Recipe


                                                                                                                                                                                                           れているRubyらしい考え
                                                      ★ ★ ★




             SQL
                                                                                                    オブジェクト指向プログラミング                                               テクニ ク
                                                                                                                                                                     ッ
                                                                                               4
                                                                                                                                                     き
             逆引きレシピ                                                                                                                                                                                        チュ トリアルの形では
                                                                                                                                                                                                             ー




                                                                                                                                                                   232
             西沢直木 著


              すぐに美味しい
              サンプル&
              テクニック
                                                                                                    OOPの技法や慣習をRubyで実現する方法、Rubyプログラミングの際の考え方などを解説                                                           問題をどのよ に解決し
                                                                                                                                                                                                                    う
              160                                                                                                                                                                                          マの考え方とその根底

             プロが選んだ三ツ星レシピ !
                         !
                                ★ ★ ★                            西沢直木 著
                                                                 定価2,310円 (本体2,200円+税5%)
                                                                                               5    データベース/永続化
                                                                                                    各種データベースの操作やオブジェクトを永続化する方法について解説                 レ                                                     そうした考え方さえ身に
                                                                                                                                                                                                           然とRubyを使いこなし自

                                                                                                                                                                                    !
              即効力のあるレシピを使えば




                                                                                                                                                     シ                        よくわか る
              データ操作が自由自在!
                        !




                                                                                                                                                                                         リ その活用法
                                                                 ISBN978-4-7981-1779-9         6    ネットワーク処理/ Webプログラミング                                                                                   ことでしょ う。
             現場に即 “実践見出 で引けるので、
                 した     し”     用途に適した項目 をパパっと
             参照 具体的なサンプルを使った解説で、
               !               複雑なSQL文もラ ク理解
                                        クラ   !




                                                                                                                                                                                          と
                                                                                                                                                                                  使えるライブラ き方
                                                                                                                                                                                                            本書が、 Rubyによる楽し
                                                                                                    さまざまなプロトコルやWebサーバー/クライアント、並列分散処理を扱う方法を解説

                                                                                                                                                     ピ                       ・本当に
                                                                                                                                                                                                           幸いです。


                                                                                                                                                                                   し 考え方と書
           PHP 逆引き シピ
                  レ                                                                            7    各種フォーマット/画像

                                                                                                                                                                             ・Rubyら い
                                                                                                    現場で利用することの多い書式や画像を扱う方法について解説
           即効力のある ピを使えばデー
                 レシ      タ操作が自由自在!!


             PHP
                                                ★     ★ ★ ★
                                                  Programmer's
                                                     Recipe
                                                      ★ ★ ★
                                                                                               8    他言語/外部ライブラリ
                                                                                                    Ruby以外の言語や外部ライブラリを扱う方法について解説
                                                                                                                                                                                  ★ ★ ★
                                                                                               9    エラー処理/ログ
             逆引きレシピ



                                                                                                                                                                  プロが選んだ三ツ星 ピ!
                                                                                                                                                                           レシ !
             鈴木憲治/安藤建一/山田直明             著
             八木照朗/山本義之/河合勝彦



                                                                                                    アプリケーションを作り込む際に必要なエラー処理やログの記録を行なう方法について解説
            P P
            PHP
              すぐに美味しい
              サンプル&
              テクニック

              261        よくわか る!
                                ーバーの設定法
                        ・主要レンタルサ のポイ ト
                                    ン と実際
                                                      と違い
                                                                 鈴木憲治/安藤建一/山田直明
                                                                                              10    テスト/最適化

                                                                                                                                                                  広大なRubyの世界でもう迷わない!
                            リティ対策



                                                                                                                                                     テサ す
                        ・セキュ

                                                                 八木照朗/山本義之/河合勝彦 著
                               ★ ★ ★




                                                                                                    コードの評価を行なう際に必要なテストや各種指標の計測を行なう方法について解説
             プロが選んだ三ツ星レシピ !
                         !
             いまさら聞けない・誰も教えてくれない
                                                                 定価2,730円  (本体2,600円+税5%)                                                               ぐ
                                                                                                                                                     クン に
             本当に必要な知識と技を一冊に凝縮!
                             !
             困った きにす
                と   ぐ引ける 実践で即役立つテクニ ク
                        !          ッ と開発ノウハウ、
             つまづきやすい ハマ
                    ・ りやすいポイ ト
                             ン を徹底解説。


                                                                 ISBN978-4-7981-1986-1        11    デバッグ                                             ニプ 美
                                                                                                                                                                  開発時の悩みを解決する
             Windows/Mac 対応 PHP5.3 対応




                                                                                                    デバッガでRubyプログラムをデバッグする方法や各種デバッグ技法などを解説            ッル し
                                                                                                                                                        味

                                                                                              12    システム管理/自動化                                       ク& い

                                                                                                                                                   232            定番ノウハウ集
                                                                                                    システム管理や作業を自動化する方法を解説

                                                                                              13    ドキュメンテーション/パッケージ化
                                                                                                    APIドキュメントを生成する方法やプログラム配布のためにパッケージ化する方法を解説
         Ruby逆引き シ
                 レ ピ
         ISBN978-4-7981-1988-5                                                                14    さらに先へ                                                         “やりたいこ か ぐ引ける アプリ シ ン開発時に
                                                                                                                                                                        と” らす   !   ケー ョ
                                                                                                    Ruby 1.9の基本やRubyに関する情報収集の方法など、今後の学習に役立つ情報を紹介                   即役立つ機能 ライ リ テクニ ク
                                                                                                                                                                         ・ ブラ ・   ッ を丁寧に解説。




                                                                                                                                         8
2009年7月18日土曜日
Ruby 逆引きレシピ

            ‣ ジュンク堂Ruby 会議支店
                                                           Recipe
                                                                 ★ ★ ★
                                                        Programmer's
                                                                 ★ ★ ★
                                                                                                                                              7月25日発売!!
                                                                                                                                               ★
                                                                                                                                                     ★ ★ ★
                                                                                                                                                   Programmer's
                                                                                                                                                      Recipe
                                                                                                                                                     ★ ★ ★




                                                                                                                                                                  Ruby ★                      ★ ★ ★
                                                                                                                                                                                            Programmer's
                                                                                                                                                                                               Recipe
                                                                                                                                                                                              ★ ★ ★
                                                                                                                                                                                                           ★ ★ ★




                                                                                                                                                   Ruby
                                                                                                                                                                                                           本書について
                          【逆引きレシピシ ー
                                  リ ズ】




                  ★ Ruby
                                                                                                                                                                                                             Rubyの世界はとても
           Visual Basic 2008 逆引き シピ
                                レ                                                                                                                                                                          でさえ道に迷って うしま こ
          [Windowsアプリケーシ ン編]
                        ョ                                                                     ★ ★ ★                                                                                                        リ、多くの実装手段が存
                                                                                            Programmer's
           現場に即効!! 基本+定番+重要テクニ ク
                              ッ                                                                                                                                                                            着くまでに迷ってしまう


                                                ★
                                                                                               Recipe

                                                                                                                   逆引き ピ
                                                                                                                      レシ
                                                      ★ ★ ★                                   ★ ★ ★                                                                                                        かりの人達が適切な解決
                                                  Programmer's
                                                     Recipe


                                                                                                                                                                                                           えるでしょう。Rubyの入
                                                      ★ ★ ★




             Visual Basic
             2008 逆引きレシピ                                                                                                                                                                                   してはくれません。



                                                                                                                                                                  逆引 レシ
                                                                                                                                                                    き ピ
             中垣健志+藤田聡

                                  [     Windows
                                                  ]
                           著




                                                              にて先行発売中!!
                                   アプリケーション
                                            編
              すぐ
               ぐに美味しい
              サン
              サンプル&




                                                                                             CONTENTS
              テクニック
              テク

              26
              267                                                                                                                                                                                           本書は、開発の現場で
                                                                                                                                                                                                           する方法や、そのために
                                                                 中垣健志/藤田聡 著
                                                                                               1    さあ始めよう
                                ★ ★ ★

             プロが選んだ三ツ星レシピ !
                         !
              現場に即効!
                   !
                                                                 定価2,520円  (本体2,400円+税5%)                                                                                                                  式で紹介する本です。
              基本+定番+重要テクニック
                                                                                                    RubyGemsや実行環境のカスタマイズなど、
              実開発に即 “実践見出 で、
                        した      し” 困った きにす
                                      と
              Visual Basic によるアプリ シ ン構築のノ
                                 ケー ョ
                                          ぐ引ける
                                         ウハウ
                                              !
                                            を一冊に凝縮。
                                                                 ISBN978-4-7981-1780-5
                                                                                                    Rubyやライブラリを使いこなす環境を整える方法を解説                                   島田浩二/設樂洋爾/村田賢太                           を関連するカテゴリや目
                                                                                                                                                                                                           の説明は必要最低限に
                                                                                                                                                                                        著
                                                                                               2    基本オブジェクト                                                      前田智樹/谷口文威                                ために「どのようなライブ
           SQL 逆引き シピ
                  レ
           即効力のある ピを使えばデー
                 レシ      タ操作が自由自在!!
                                                                                                    文字列、数値、コレクションなどを扱うための知識・テクニックを解説
                                                                                                                                                     逆                                                     サンプルコ ドを交えてわ
                                                                                                                                                                                                                ー



                                                ★
                                                                                               3    システム
                                                                                                                                                     引


                                                                                                                                                                  R y
                                                                                                                                                                  Ruby
                                                                                            ♥おまけ付き♥
                                                                                                                                                                   すぐに美味しい                                  本書のもう1つの目的は
                                                                                                    日付や時刻、標準入出力、ファイルシステムなどを扱うための知識・テクニックを解説
                                                                                                                                                                  サンプル&
                                                      ★ ★ ★
                                                  Programmer's
                                                     Recipe


                                                                                                                                                                                                           れているRubyらしい考え
                                                      ★ ★ ★




             SQL
                                                                                                    オブジェクト指向プログラミング                                               テクニ ク
                                                                                                                                                                     ッ
                                                                                               4
                                                                                                                                                     き
             逆引きレシピ                                                                                                                                                                                        チュ トリアルの形では
                                                                                                                                                                                                             ー




                                                                                                                                                                   232
             西沢直木 著


              すぐに美味しい
              サンプル&
              テクニック
                                                                                                    OOPの技法や慣習をRubyで実現する方法、Rubyプログラミングの際の考え方などを解説                                                           問題をどのよ に解決し
                                                                                                                                                                                                                    う
              160                                                                                                                                                                                          マの考え方とその根底

             プロが選んだ三ツ星レシピ !
                         !
                                ★ ★ ★                            西沢直木 著
                                                                 定価2,310円 (本体2,200円+税5%)
                                                                                               5    データベース/永続化
                                                                                                    各種データベースの操作やオブジェクトを永続化する方法について解説                 レ                                                     そうした考え方さえ身に
                                                                                                                                                                                                           然とRubyを使いこなし自

                                                                                                                                                                                    !
              即効力のあるレシピを使えば




                                                                                                                                                     シ                        よくわか る
              データ操作が自由自在!
                        !




                                                                                                                                                                                         リ その活用法
                                                                 ISBN978-4-7981-1779-9         6    ネットワーク処理/ Webプログラミング                                                                                   ことでしょ う。
             現場に即 “実践見出 で引けるので、
                 した     し”     用途に適した項目 をパパっと
             参照 具体的なサンプルを使った解説で、
               !               複雑なSQL文もラ ク理解
                                        クラ   !




                                                                                                                                                                                          と
                                                                                                                                                                                  使えるライブラ き方


            ‣
                                                                                                                                                                                                            本書が、 Rubyによる楽し
                                                                                                    さまざまなプロトコルやWebサーバー/クライアント、並列分散処理を扱う方法を解説

                                                                                                                                                     ピ                       ・本当に
                                                                                                                                                                                                           幸いです。


                                                                                                                                                                                   し 考え方と書
           PHP 逆引き シピ
                  レ                                                                            7    各種フォーマット/画像

                                                                                                                                                                             ・Rubyら い
                                                                                                    現場で利用することの多い書式や画像を扱う方法について解説




               19日のお昼にサイン会
           即効力のある ピを使えばデー
                 レシ      タ操作が自由自在!!


             PHP
                                                ★     ★ ★ ★
                                                  Programmer's
                                                     Recipe
                                                      ★ ★ ★
                                                                                               8    他言語/外部ライブラリ
                                                                                                    Ruby以外の言語や外部ライブラリを扱う方法について解説
                                                                                                                                                                                  ★ ★ ★
                                                                                               9    エラー処理/ログ
             逆引きレシピ



                                                                                                                                                                  プロが選んだ三ツ星 ピ!
                                                                                                                                                                           レシ !
             鈴木憲治/安藤建一/山田直明             著
             八木照朗/山本義之/河合勝彦



                                                                                                    アプリケーションを作り込む際に必要なエラー処理やログの記録を行なう方法について解説
            PHP
            P P
              すぐに美味しい
              サンプル&
              テクニック

              261        よくわか る!
                                ーバーの設定法
                        ・主要レンタルサ のポイ ト
                                    ン と実際
                                                      と違い
                                                                 鈴木憲治/安藤建一/山田直明
                                                                                              10    テスト/最適化

                                                                                                                                                                  広大なRubyの世界でもう迷わない!
                            リティ対策



                                                                                                                                                     テサ す
                        ・セキュ

                                                                 八木照朗/山本義之/河合勝彦 著
                               ★ ★ ★




                                                                                                    コードの評価を行なう際に必要なテストや各種指標の計測を行なう方法について解説
             プロが選んだ三ツ星レシピ !
                         !
             いまさら聞けない・誰も教えてくれない
                                                                 定価2,730円  (本体2,600円+税5%)                                                               ぐ
                                                                                                                                                     クン に
             本当に必要な知識と技を一冊に凝縮!
                             !
             困った きにす
                と   ぐ引ける 実践で即役立つテクニ ク
                        !          ッ と開発ノウハウ、




                                                              やります
             つまづきやすい ハマ
                    ・ りやすいポイ ト
                             ン を徹底解説。


                                                                 ISBN978-4-7981-1986-1        11    デバッグ                                             ニプ 美
                                                                                                                                                                  開発時の悩みを解決する
             Windows/Mac 対応 PHP5.3 対応




                                                                                                    デバッガでRubyプログラムをデバッグする方法や各種デバッグ技法などを解説            ッル し
                                                                                                                                                        味

                                                                                              12    システム管理/自動化                                       ク& い

                                                                                                                                                   232            定番ノウハウ集
                                                                                                    システム管理や作業を自動化する方法を解説

                                                                                              13    ドキュメンテーション/パッケージ化
                                                                                                    APIドキュメントを生成する方法やプログラム配布のためにパッケージ化する方法を解説
         Ruby逆引き シ
                 レ ピ
         ISBN978-4-7981-1988-5                                                                14    さらに先へ                                                         “やりたいこ か ぐ引ける アプリ シ ン開発時に
                                                                                                                                                                        と” らす   !   ケー ョ
                                                                                                    Ruby 1.9の基本やRubyに関する情報収集の方法など、今後の学習に役立つ情報を紹介                   即役立つ機能 ライ リ テクニ ク
                                                                                                                                                                         ・ ブラ ・   ッ を丁寧に解説。




                                                                                                                                         8
2009年7月18日土曜日
買ってください♥


                   9
2009年7月18日土曜日
提 供

                From Sapporo, with Love for Ruby


                 Ruby札幌

                               10


2009年7月18日土曜日
どうぞ
      よろしく
     お願いします
                11


2009年7月18日土曜日
Ruby の標準乱数生成器とその改良案
       The standard random number generator
        of Ruby and the proposal to improve it

                      村田 賢太
                     Kenta Murata




                          12
2009年7月18日土曜日
今日のまとめ


            ‣ Kernel#rand だけじゃ足りないよ!
            ‣ Math/Random ライブラリを作っているよ
            ‣ 目指せ Random クラスの標準添付!



                          13
2009年7月18日土曜日
乱数のおさらい


                14
2009年7月18日土曜日
ことばの使い方
            ‣ 乱数列
              ‣ 直前までに得られた部分列から次の数を予
                測できない数列

            ‣ 乱数
              ‣ 乱数列から取り出した数

            ‣ 乱数生成器
              ‣ 乱数列を出力する情報源
                          15
2009年7月18日土曜日
乱数列は3種類ある

            ‣ 真の乱数列

            ‣ 2つの疑似乱数列

                ‣ Monte Carlo 法用疑似乱数列

                ‣ 暗号論的疑似乱数列


                             16
2009年7月18日土曜日
Monte Carlo 法用疑似乱数列

            ‣ 今日の主役
            ‣ 周期は有限
              ‣ できるだけ長いほうが良い
            ‣ 一様性
              ‣ 出力される乱数の分布が偏ってないこと
            ‣ 再現性
              ‣ できるだけ簡単に乱数列を再現できること

                         17
2009年7月18日土曜日
長い周期・一様性・再現性
            ‣ 長い周期
              ‣ 周期が長ければ、部分列のパターンが多用に
                なり、無作為性が高まる
            ‣ 一様性
              ‣ 偏りが小さいほど次の乱数が予測しにくい
              ‣ 一様分布乱数から任意の分布の乱数を作れる
            ‣ 再現性
              ‣ 再現できないとテストができない

                        18
2009年7月18日土曜日
例: さいころ
            ‣ srand 13
            ‣ 1000.times.map { 1 + rand 6 }
            ‣ => [3, 1, 3, 1, 3, 5, 2, 5, 3, 4, 3, 5, 3, 6, 6, 3,
                2, 4, 5, 3, 1, 4, 6, 4, 4, 6, 4, 2, 3, 1, 5, 4, 1, 5,
                3, 3, 5, 6, 4, 6, 1, 4, 3, 1, 6, 2, 1, 2, 6, 6, 3, 4,
                3, 4, 4, 4, 1, 3, 1, 3, 6, 6, 5, 4, 6, 1, 6, 2, 6, 2,
                5, 4, 3, 2, 5, 4, 1, 6, 6, 6, 4, 2, 2, 2, 1, 3, 4, 5,
                3, 6, 2, 5, 4, 2, 4, 2, 3, 2, 4, 5, 1, 5, 5, 4, 5, 4,
                6, 6, 1, 4, 4, 4, 2, 1, 5, 6, 2, 2, 3, 1, 3, 3, 3, 2,
                3, 5, 1, 3, 2, 5, 2, 1, 1, 2, 4, 5, 1, 4, 5, 1, ...]

                                        19
2009年7月18日土曜日
例: マルチスレッドならどうなる?

            ✓srand 13              ‣ => [3, 1, 3, 1, 3, 5, 2, 5,
            ✓a = Thread.start do     3, 4, 3, 5, 3, 6, 6, 3, 2, 4,
              1000.times.map{
                                     5, 3, 1, 4, 6, 4, 4, 6, 4, 2,
                 1 + rand(6)
              }                      3, 1, 5, 4, 1, 5, 3, 3, 5, 6,
             end                     4, 6, 1, 4, 3, 1, 6, 2, 1, 2,
            ✓b = Thread.start do     6, 6, 3, 4, 3, 4, 4, 4, 1, 3,
              1000.times.map{        1, 3, 6, 6, 5, 4, 6, 1, 6, 2,
                 1 + rand(6)         6, 2, 5, 4, 3, 2, 5, 4, 1, 6,
              }
             end                     6, 6, 4, 2, 2, 2, 1, 3, 4, 5,
                                     3, 6, 2, 5, 4, 2, 4, 2, ...]

                                     20
2009年7月18日土曜日
例: マルチスレッドならどうなる?

            ✓srand 13              ‣ => [3, 1, 3, 1, 3, 5, 2, 5,
            ✓a = Thread.start do     3, 4, 3, 5, 3, 6, 6, 3, 2, 4,
              1000.times.map{
                                     5, 3, 1, 4, 6, 4, 4, 6, 4, 2,
                 1 + rand(6)
              }                      3, 1, 5, 4, 1, 5, 3, 3, 5, 6,
             end                     4, 6, 1, 4, 3, 1, 6, 2, 1, 2,
            ✓b = Thread.start do     6, 6, 3, 4, 3, 4, 4, 4, 1, 3,
              1000.times.map{        1, 3, 6, 6, 5, 4, 6, 1, 6, 2,
                 1 + rand(6)         6, 2, 5, 4, 3, 2, 5, 4, 1, 6,
              }
             end                     6, 6, 4, 2, 2, 2, 1, 3, 4, 5,
                                     3, 6, 2, 5, 4, 2, 4, 2, ...]

                                     21
2009年7月18日土曜日
例: こうならない理由はない!

            ✓srand 13              ‣ => [3, 1, 3, 1, 3, 5, 2, 5,
            ✓a = Thread.start do     3, 4, 3, 5, 3, 6, 6, 3, 2, 4,
              1000.times.map{
                                     5, 3, 1, 4, 6, 4, 4, 6, 4, 2,
                 1 + rand(6)
              }                      3, 1, 5, 4, 1, 5, 3, 3, 5, 6,
             end                     4, 6, 1, 4, 3, 1, 6, 2, 1, 2,
            ✓b = Thread.start do     6, 6, 3, 4, 3, 4, 4, 4, 1, 3,
              1000.times.map{        1, 3, 6, 6, 5, 4, 6, 1, 6, 2,
                 1 + rand(6)         6, 2, 5, 4, 3, 2, 5, 4, 1, 6,
              }
             end                     6, 6, 4, 2, 2, 2, 1, 3, 4, 5,
                                     3, 6, 2, 5, 4, 2, 4, 2, ...]

                                     22
2009年7月18日土曜日
乱数はムズイ

            ‣ 複数の並行処理でひとつの乱数生成器を共有
                すると一様性とか色々崩れる ><

            ‣ 使い方を間違えると悲惨な結果を招く事例が
                乱数には幾つもある

                ‣ 何度も srand しちゃう人いるよね orz

                            23
2009年7月18日土曜日
Ruby の
          標準乱数生成器

                   24
2009年7月18日土曜日
Ruby の標準乱数生成器




                      25
2009年7月18日土曜日
Ruby の標準乱数生成器

            ‣ Kernel#rand
                ‣ 乱数を出力する




                            25
2009年7月18日土曜日
Ruby の標準乱数生成器

            ‣ Kernel#rand
                ‣ 乱数を出力する

            ‣ Kernel#srand
                ‣ 乱数生成器の状態を初期化する



                             25
2009年7月18日土曜日
Ruby の標準乱数生成器

            ‣ Kernel#rand
                ‣ 乱数を出力する

            ‣ Kernel#srand
                ‣ 乱数生成器の状態を初期化する

            ‣ これだけ!!

                             25
2009年7月18日土曜日
不親切!
                26


2009年7月18日土曜日
Ruby の標準乱数生成器は不親切

            ‣ 何が足りないか?

                ‣ 複数の生成器への対応

                ‣ 状態のシリアライズとリストア

                ‣ 一様分布以外の分布関数

                ‣ 拡張ライブラリへの御心遣い

                         27
2009年7月18日土曜日
Ruby に相応しい
          乱数生成器とは?

                28
2009年7月18日土曜日
乱数生成器のインタフェース


            ‣ どうせ作るなら

                ‣ 野良配布ではなく標準添付がいい

            ‣ 【急募】 Ruby 的なインタフェース



                         29
2009年7月18日土曜日
Matz says...


            ‣ 標準添付する乱数生成アルゴリズムは一つ

            ‣ 乱数生成器のオブジェクト化には賛成

                ‣ クラス名は Random



                            30
2009年7月18日土曜日
実は既に提案されていた




                     31
2009年7月18日土曜日
実は既に提案されていた

            ‣ 2007年に ruby-dev で議論された
               ‣ [ruby-dev:31206] に当時の trunk 用 patch

                ‣ Kernel#srand を削除
                   ‣ Matz がこれに引っかかる



                               31
2009年7月18日土曜日
実は既に提案されていた

            ‣ 2007年に ruby-dev で議論された
               ‣ [ruby-dev:31206] に当時の trunk 用 patch

                ‣ Kernel#srand を削除
                   ‣ Matz がこれに引っかかる

            ‣ いつの間にかこの話題も消え・・・

                               31
2009年7月18日土曜日
いつの間にか話題が消え・・・




                32
2009年7月18日土曜日
いつの間にか話題が消え・・・

            ‣ ていなかた!




                       32
2009年7月18日土曜日
いつの間にか話題が消え・・・

            ‣ ていなかた!

            ‣ 昨日の15時頃に Random クラスが trunk に
                コミットされた!ちょwww




                          32
2009年7月18日土曜日
いつの間にか話題が消え・・・

            ‣ ていなかた!

            ‣ 昨日の15時頃に Random クラスが trunk に
                コミットされた!ちょwww

            ‣ 昨日の16時頃まで、この講演資料は Random
                クラスが無いことを前提に作っていました


                          32
2009年7月18日土曜日
最新の Ruby は?

            ‣ 何が足りないか?

                ‣ 複数の生成器への対応

                ‣ 状態のシリアライズとリストア

                ‣ 一様分布以外の分布関数

                ‣ 拡張ライブラリへの御心遣い

                         33
2009年7月18日土曜日
足りない物たち

            ‣ 複数の生成器への対応
              ‣ Array#shuffle などが使う乱数が
                Kernel#rand に固定されている
                ‣ 分布関数を組み合せた乱数生成器を
                Array#sample で使う方法
            ‣ 分布関数
              ‣ 正規分布と離散分布は欲しい

                            34
2009年7月18日土曜日
Math/Random


                     35
2009年7月18日土曜日
Math/Random

            ‣ https://github.com/mrkn/ruby-math-
                random/tree/master
                 ‣ 間に合いませんでした ><

            ‣ 標準乱数生成器では足りない機能を補うこと
                を目的とするライブラリ

            ‣ ASAP で公開します

                                36
2009年7月18日土曜日
Math/Random の主な機能

            ‣ 実装済み
              ‣ 2つの生成アルゴリズム
                 ‣ Mersenne Twister (MT19937AR)
                 ‣ SFMT (SFMT19937)
              ‣ 2つの分布関数
                 ‣ 正規分布
                 ‣ 離散分布

                                37
2009年7月18日土曜日
Math/Random の主な機能

            ‣ まだ実装できてないもの
              ‣ たくさんの生成アルゴリズム
                ‣ Lagged Fibonacci、Blum-Blum-Shub、
                   線型合同法、などなど
                ‣ たくさんの分布関数
                  ‣ 指数分布、Erlang 分布、などなど
                ‣ 拡張ライブラリ対応のインタフェース
                ‣ スレッドローカルで Kernel#rand の置き換えるやつ

                                  38
2009年7月18日土曜日
お前はどうしたいんだ?

            ‣ 元々は Random クラスを組み込みで提供さ
                せたかった

                ‣ もう叶っちゃった!

            ‣ でも、なんか足りない

            ‣ 足りない部分を補強してやろう

                         39
2009年7月18日土曜日
今日のまとめ

            ‣ Kernel#rand だけじゃ足りないよ
                ‣ 昨日の15時に解決したwww
            ‣ Math/Random ライブラリを作っているよ
            ‣ 目指せ Random クラスの標準添付!
                ‣ 昨日の15時に解決したwww
            ‣ まだ EXPERIMENTAL なので、少しずつ洗練させよう


                             40
2009年7月18日土曜日

Ruby の標準乱数生成器とその改善案

  • 1.
    Ruby の標準乱数生成器とその改良案 The standard random number generator of Ruby and the proposal to improve it 村田 賢太 Kenta Murata mrkn 1 2009年7月18日土曜日
  • 2.
    Ruby の標準乱数生成器とその改良案 The standard random number generator of Ruby and the proposal to improve it 村田 賢太 Kenta Murata mrkn 2 2009年7月18日土曜日
  • 3.
    Kenta Murata, Ph.D ‣ Ph.D (Hokkaido University) ‣ Department of Information Science. ‣ Born on July 20th 【COMING SOON】 ‣ Membership ‣ Ruby Sapporo (ruby-sapporo.org) ‣ KaigiFreaks ‣ Nihon Ruby-no kai ‣ Kosen Conference (kosenconf.jp) 3 2009年7月18日土曜日
  • 4.
    My RubyKaigi 2008 Photoby snoozer05 in Flickr http://www.flickr.com/photos/snoozer/2605952121/ 4 2009年7月18日土曜日
  • 5.
    My RubyKaigi 2008 Photoby darashi in Flickr http://www.flickr.com/photos/darashi/2598246980/ 5 2009年7月18日土曜日
  • 6.
    KaigiFreaks 2008 Photo bysnoozer05 in Flickr http://www.flickr.com/photos/snoozer/2605971795/ 6 2009年7月18日土曜日
  • 7.
    KaigiFreaks は今年も Ruby 会議を 全世界へお届けします! Photo by snoozer05 in Flickr http://www.flickr.com/photos/snoozer/2605971795/ 2009年7月18日土曜日
  • 8.
    Ruby 逆引きレシピ Recipe ★ ★ ★ Programmer's ★ ★ ★ 7月25日発売!! ★ ★ ★ ★ Programmer's Recipe ★ ★ ★ Ruby ★ ★ ★ ★ Programmer's Recipe ★ ★ ★ ★ ★ ★ Ruby 本書について 【逆引きレシピシ ー リ ズ】 ★Ruby   Rubyの世界はとても Visual Basic 2008 逆引き シピ レ でさえ道に迷って うしま こ [Windowsアプリケーシ ン編] ョ ★ ★ ★ リ、多くの実装手段が存 Programmer's 現場に即効!! 基本+定番+重要テクニ ク ッ 着くまでに迷ってしまう ★ Recipe 逆引き ピ レシ ★ ★ ★ ★ ★ ★ かりの人達が適切な解決 Programmer's Recipe えるでしょう。Rubyの入 ★ ★ ★ Visual Basic 2008 逆引きレシピ してはくれません。 逆引 レシ き ピ 中垣健志+藤田聡 [ Windows ] 著 アプリケーション 編 すぐ ぐに美味しい サン サンプル& CONTENTS テクニック テク 26 267  本書は、開発の現場で する方法や、そのために 中垣健志/藤田聡 著 1 さあ始めよう ★ ★ ★ プロが選んだ三ツ星レシピ ! ! 現場に即効! ! 定価2,520円 (本体2,400円+税5%) 式で紹介する本です。 基本+定番+重要テクニック RubyGemsや実行環境のカスタマイズなど、 実開発に即 “実践見出 で、 した し” 困った きにす と Visual Basic によるアプリ シ ン構築のノ ケー ョ ぐ引ける ウハウ ! を一冊に凝縮。 ISBN978-4-7981-1780-5 Rubyやライブラリを使いこなす環境を整える方法を解説 島田浩二/設樂洋爾/村田賢太 を関連するカテゴリや目 の説明は必要最低限に 著 2 基本オブジェクト 前田智樹/谷口文威 ために「どのようなライブ SQL 逆引き シピ レ 即効力のある ピを使えばデー レシ タ操作が自由自在!! 文字列、数値、コレクションなどを扱うための知識・テクニックを解説 逆 サンプルコ ドを交えてわ ー ★ 3 システム 引 R y Ruby すぐに美味しい  本書のもう1つの目的は 日付や時刻、標準入出力、ファイルシステムなどを扱うための知識・テクニックを解説 サンプル& ★ ★ ★ Programmer's Recipe れているRubyらしい考え ★ ★ ★ SQL オブジェクト指向プログラミング テクニ ク ッ 4 き 逆引きレシピ チュ トリアルの形では ー 232 西沢直木 著 すぐに美味しい サンプル& テクニック OOPの技法や慣習をRubyで実現する方法、Rubyプログラミングの際の考え方などを解説 問題をどのよ に解決し う 160 マの考え方とその根底 プロが選んだ三ツ星レシピ ! ! ★ ★ ★ 西沢直木 著 定価2,310円 (本体2,200円+税5%) 5 データベース/永続化 各種データベースの操作やオブジェクトを永続化する方法について解説 レ そうした考え方さえ身に 然とRubyを使いこなし自 ! 即効力のあるレシピを使えば シ よくわか る データ操作が自由自在! ! リ その活用法 ISBN978-4-7981-1779-9 6 ネットワーク処理/ Webプログラミング ことでしょ う。 現場に即 “実践見出 で引けるので、 した し” 用途に適した項目 をパパっと 参照 具体的なサンプルを使った解説で、 ! 複雑なSQL文もラ ク理解 クラ ! と 使えるライブラ き方  本書が、 Rubyによる楽し さまざまなプロトコルやWebサーバー/クライアント、並列分散処理を扱う方法を解説 ピ ・本当に 幸いです。 し 考え方と書 PHP 逆引き シピ レ 7 各種フォーマット/画像 ・Rubyら い 現場で利用することの多い書式や画像を扱う方法について解説 即効力のある ピを使えばデー レシ タ操作が自由自在!! PHP ★ ★ ★ ★ Programmer's Recipe ★ ★ ★ 8 他言語/外部ライブラリ Ruby以外の言語や外部ライブラリを扱う方法について解説 ★ ★ ★ 9 エラー処理/ログ 逆引きレシピ プロが選んだ三ツ星 ピ! レシ ! 鈴木憲治/安藤建一/山田直明 著 八木照朗/山本義之/河合勝彦 アプリケーションを作り込む際に必要なエラー処理やログの記録を行なう方法について解説 P P PHP すぐに美味しい サンプル& テクニック 261 よくわか る! ーバーの設定法 ・主要レンタルサ のポイ ト ン と実際 と違い 鈴木憲治/安藤建一/山田直明 10 テスト/最適化 広大なRubyの世界でもう迷わない! リティ対策 テサ す ・セキュ 八木照朗/山本義之/河合勝彦 著 ★ ★ ★ コードの評価を行なう際に必要なテストや各種指標の計測を行なう方法について解説 プロが選んだ三ツ星レシピ ! ! いまさら聞けない・誰も教えてくれない 定価2,730円 (本体2,600円+税5%) ぐ クン に 本当に必要な知識と技を一冊に凝縮! ! 困った きにす と ぐ引ける 実践で即役立つテクニ ク ! ッ と開発ノウハウ、 つまづきやすい ハマ ・ りやすいポイ ト ン を徹底解説。 ISBN978-4-7981-1986-1 11 デバッグ ニプ 美 開発時の悩みを解決する Windows/Mac 対応 PHP5.3 対応 デバッガでRubyプログラムをデバッグする方法や各種デバッグ技法などを解説 ッル し 味 12 システム管理/自動化 ク& い 232 定番ノウハウ集 システム管理や作業を自動化する方法を解説 13 ドキュメンテーション/パッケージ化 APIドキュメントを生成する方法やプログラム配布のためにパッケージ化する方法を解説 Ruby逆引き シ レ ピ ISBN978-4-7981-1988-5 14 さらに先へ “やりたいこ か ぐ引ける アプリ シ ン開発時に と” らす ! ケー ョ Ruby 1.9の基本やRubyに関する情報収集の方法など、今後の学習に役立つ情報を紹介 即役立つ機能 ライ リ テクニ ク ・ ブラ ・ ッ を丁寧に解説。 8 2009年7月18日土曜日
  • 9.
    Ruby 逆引きレシピ ‣ ジュンク堂Ruby 会議支店 Recipe ★ ★ ★ Programmer's ★ ★ ★ 7月25日発売!! ★ ★ ★ ★ Programmer's Recipe ★ ★ ★ Ruby ★ ★ ★ ★ Programmer's Recipe ★ ★ ★ ★ ★ ★ Ruby 本書について 【逆引きレシピシ ー リ ズ】 ★ Ruby   Rubyの世界はとても Visual Basic 2008 逆引き シピ レ でさえ道に迷って うしま こ [Windowsアプリケーシ ン編] ョ ★ ★ ★ リ、多くの実装手段が存 Programmer's 現場に即効!! 基本+定番+重要テクニ ク ッ 着くまでに迷ってしまう ★ Recipe 逆引き ピ レシ ★ ★ ★ ★ ★ ★ かりの人達が適切な解決 Programmer's Recipe えるでしょう。Rubyの入 ★ ★ ★ Visual Basic 2008 逆引きレシピ してはくれません。 逆引 レシ き ピ 中垣健志+藤田聡 [ Windows ] 著 にて先行発売中!! アプリケーション 編 すぐ ぐに美味しい サン サンプル& CONTENTS テクニック テク 26 267  本書は、開発の現場で する方法や、そのために 中垣健志/藤田聡 著 1 さあ始めよう ★ ★ ★ プロが選んだ三ツ星レシピ ! ! 現場に即効! ! 定価2,520円 (本体2,400円+税5%) 式で紹介する本です。 基本+定番+重要テクニック RubyGemsや実行環境のカスタマイズなど、 実開発に即 “実践見出 で、 した し” 困った きにす と Visual Basic によるアプリ シ ン構築のノ ケー ョ ぐ引ける ウハウ ! を一冊に凝縮。 ISBN978-4-7981-1780-5 Rubyやライブラリを使いこなす環境を整える方法を解説 島田浩二/設樂洋爾/村田賢太 を関連するカテゴリや目 の説明は必要最低限に 著 2 基本オブジェクト 前田智樹/谷口文威 ために「どのようなライブ SQL 逆引き シピ レ 即効力のある ピを使えばデー レシ タ操作が自由自在!! 文字列、数値、コレクションなどを扱うための知識・テクニックを解説 逆 サンプルコ ドを交えてわ ー ★ 3 システム 引 R y Ruby すぐに美味しい  本書のもう1つの目的は 日付や時刻、標準入出力、ファイルシステムなどを扱うための知識・テクニックを解説 サンプル& ★ ★ ★ Programmer's Recipe れているRubyらしい考え ★ ★ ★ SQL オブジェクト指向プログラミング テクニ ク ッ 4 き 逆引きレシピ チュ トリアルの形では ー 232 西沢直木 著 すぐに美味しい サンプル& テクニック OOPの技法や慣習をRubyで実現する方法、Rubyプログラミングの際の考え方などを解説 問題をどのよ に解決し う 160 マの考え方とその根底 プロが選んだ三ツ星レシピ ! ! ★ ★ ★ 西沢直木 著 定価2,310円 (本体2,200円+税5%) 5 データベース/永続化 各種データベースの操作やオブジェクトを永続化する方法について解説 レ そうした考え方さえ身に 然とRubyを使いこなし自 ! 即効力のあるレシピを使えば シ よくわか る データ操作が自由自在! ! リ その活用法 ISBN978-4-7981-1779-9 6 ネットワーク処理/ Webプログラミング ことでしょ う。 現場に即 “実践見出 で引けるので、 した し” 用途に適した項目 をパパっと 参照 具体的なサンプルを使った解説で、 ! 複雑なSQL文もラ ク理解 クラ ! と 使えるライブラ き方  本書が、 Rubyによる楽し さまざまなプロトコルやWebサーバー/クライアント、並列分散処理を扱う方法を解説 ピ ・本当に 幸いです。 し 考え方と書 PHP 逆引き シピ レ 7 各種フォーマット/画像 ・Rubyら い 現場で利用することの多い書式や画像を扱う方法について解説 即効力のある ピを使えばデー レシ タ操作が自由自在!! PHP ★ ★ ★ ★ Programmer's Recipe ★ ★ ★ 8 他言語/外部ライブラリ Ruby以外の言語や外部ライブラリを扱う方法について解説 ★ ★ ★ 9 エラー処理/ログ 逆引きレシピ プロが選んだ三ツ星 ピ! レシ ! 鈴木憲治/安藤建一/山田直明 著 八木照朗/山本義之/河合勝彦 アプリケーションを作り込む際に必要なエラー処理やログの記録を行なう方法について解説 P P PHP すぐに美味しい サンプル& テクニック 261 よくわか る! ーバーの設定法 ・主要レンタルサ のポイ ト ン と実際 と違い 鈴木憲治/安藤建一/山田直明 10 テスト/最適化 広大なRubyの世界でもう迷わない! リティ対策 テサ す ・セキュ 八木照朗/山本義之/河合勝彦 著 ★ ★ ★ コードの評価を行なう際に必要なテストや各種指標の計測を行なう方法について解説 プロが選んだ三ツ星レシピ ! ! いまさら聞けない・誰も教えてくれない 定価2,730円 (本体2,600円+税5%) ぐ クン に 本当に必要な知識と技を一冊に凝縮! ! 困った きにす と ぐ引ける 実践で即役立つテクニ ク ! ッ と開発ノウハウ、 つまづきやすい ハマ ・ りやすいポイ ト ン を徹底解説。 ISBN978-4-7981-1986-1 11 デバッグ ニプ 美 開発時の悩みを解決する Windows/Mac 対応 PHP5.3 対応 デバッガでRubyプログラムをデバッグする方法や各種デバッグ技法などを解説 ッル し 味 12 システム管理/自動化 ク& い 232 定番ノウハウ集 システム管理や作業を自動化する方法を解説 13 ドキュメンテーション/パッケージ化 APIドキュメントを生成する方法やプログラム配布のためにパッケージ化する方法を解説 Ruby逆引き シ レ ピ ISBN978-4-7981-1988-5 14 さらに先へ “やりたいこ か ぐ引ける アプリ シ ン開発時に と” らす ! ケー ョ Ruby 1.9の基本やRubyに関する情報収集の方法など、今後の学習に役立つ情報を紹介 即役立つ機能 ライ リ テクニ ク ・ ブラ ・ ッ を丁寧に解説。 8 2009年7月18日土曜日
  • 10.
    Ruby 逆引きレシピ ‣ ジュンク堂Ruby 会議支店 Recipe ★ ★ ★ Programmer's ★ ★ ★ 7月25日発売!! ★ ★ ★ ★ Programmer's Recipe ★ ★ ★ Ruby ★ ★ ★ ★ Programmer's Recipe ★ ★ ★ ★ ★ ★ Ruby 本書について 【逆引きレシピシ ー リ ズ】 ★ Ruby   Rubyの世界はとても Visual Basic 2008 逆引き シピ レ でさえ道に迷って うしま こ [Windowsアプリケーシ ン編] ョ ★ ★ ★ リ、多くの実装手段が存 Programmer's 現場に即効!! 基本+定番+重要テクニ ク ッ 着くまでに迷ってしまう ★ Recipe 逆引き ピ レシ ★ ★ ★ ★ ★ ★ かりの人達が適切な解決 Programmer's Recipe えるでしょう。Rubyの入 ★ ★ ★ Visual Basic 2008 逆引きレシピ してはくれません。 逆引 レシ き ピ 中垣健志+藤田聡 [ Windows ] 著 にて先行発売中!! アプリケーション 編 すぐ ぐに美味しい サン サンプル& CONTENTS テクニック テク 26 267  本書は、開発の現場で する方法や、そのために 中垣健志/藤田聡 著 1 さあ始めよう ★ ★ ★ プロが選んだ三ツ星レシピ ! ! 現場に即効! ! 定価2,520円 (本体2,400円+税5%) 式で紹介する本です。 基本+定番+重要テクニック RubyGemsや実行環境のカスタマイズなど、 実開発に即 “実践見出 で、 した し” 困った きにす と Visual Basic によるアプリ シ ン構築のノ ケー ョ ぐ引ける ウハウ ! を一冊に凝縮。 ISBN978-4-7981-1780-5 Rubyやライブラリを使いこなす環境を整える方法を解説 島田浩二/設樂洋爾/村田賢太 を関連するカテゴリや目 の説明は必要最低限に 著 2 基本オブジェクト 前田智樹/谷口文威 ために「どのようなライブ SQL 逆引き シピ レ 即効力のある ピを使えばデー レシ タ操作が自由自在!! 文字列、数値、コレクションなどを扱うための知識・テクニックを解説 逆 サンプルコ ドを交えてわ ー ★ 3 システム 引 R y Ruby ♥おまけ付き♥ すぐに美味しい  本書のもう1つの目的は 日付や時刻、標準入出力、ファイルシステムなどを扱うための知識・テクニックを解説 サンプル& ★ ★ ★ Programmer's Recipe れているRubyらしい考え ★ ★ ★ SQL オブジェクト指向プログラミング テクニ ク ッ 4 き 逆引きレシピ チュ トリアルの形では ー 232 西沢直木 著 すぐに美味しい サンプル& テクニック OOPの技法や慣習をRubyで実現する方法、Rubyプログラミングの際の考え方などを解説 問題をどのよ に解決し う 160 マの考え方とその根底 プロが選んだ三ツ星レシピ ! ! ★ ★ ★ 西沢直木 著 定価2,310円 (本体2,200円+税5%) 5 データベース/永続化 各種データベースの操作やオブジェクトを永続化する方法について解説 レ そうした考え方さえ身に 然とRubyを使いこなし自 ! 即効力のあるレシピを使えば シ よくわか る データ操作が自由自在! ! リ その活用法 ISBN978-4-7981-1779-9 6 ネットワーク処理/ Webプログラミング ことでしょ う。 現場に即 “実践見出 で引けるので、 した し” 用途に適した項目 をパパっと 参照 具体的なサンプルを使った解説で、 ! 複雑なSQL文もラ ク理解 クラ ! と 使えるライブラ き方  本書が、 Rubyによる楽し さまざまなプロトコルやWebサーバー/クライアント、並列分散処理を扱う方法を解説 ピ ・本当に 幸いです。 し 考え方と書 PHP 逆引き シピ レ 7 各種フォーマット/画像 ・Rubyら い 現場で利用することの多い書式や画像を扱う方法について解説 即効力のある ピを使えばデー レシ タ操作が自由自在!! PHP ★ ★ ★ ★ Programmer's Recipe ★ ★ ★ 8 他言語/外部ライブラリ Ruby以外の言語や外部ライブラリを扱う方法について解説 ★ ★ ★ 9 エラー処理/ログ 逆引きレシピ プロが選んだ三ツ星 ピ! レシ ! 鈴木憲治/安藤建一/山田直明 著 八木照朗/山本義之/河合勝彦 アプリケーションを作り込む際に必要なエラー処理やログの記録を行なう方法について解説 P P PHP すぐに美味しい サンプル& テクニック 261 よくわか る! ーバーの設定法 ・主要レンタルサ のポイ ト ン と実際 と違い 鈴木憲治/安藤建一/山田直明 10 テスト/最適化 広大なRubyの世界でもう迷わない! リティ対策 テサ す ・セキュ 八木照朗/山本義之/河合勝彦 著 ★ ★ ★ コードの評価を行なう際に必要なテストや各種指標の計測を行なう方法について解説 プロが選んだ三ツ星レシピ ! ! いまさら聞けない・誰も教えてくれない 定価2,730円 (本体2,600円+税5%) ぐ クン に 本当に必要な知識と技を一冊に凝縮! ! 困った きにす と ぐ引ける 実践で即役立つテクニ ク ! ッ と開発ノウハウ、 つまづきやすい ハマ ・ りやすいポイ ト ン を徹底解説。 ISBN978-4-7981-1986-1 11 デバッグ ニプ 美 開発時の悩みを解決する Windows/Mac 対応 PHP5.3 対応 デバッガでRubyプログラムをデバッグする方法や各種デバッグ技法などを解説 ッル し 味 12 システム管理/自動化 ク& い 232 定番ノウハウ集 システム管理や作業を自動化する方法を解説 13 ドキュメンテーション/パッケージ化 APIドキュメントを生成する方法やプログラム配布のためにパッケージ化する方法を解説 Ruby逆引き シ レ ピ ISBN978-4-7981-1988-5 14 さらに先へ “やりたいこ か ぐ引ける アプリ シ ン開発時に と” らす ! ケー ョ Ruby 1.9の基本やRubyに関する情報収集の方法など、今後の学習に役立つ情報を紹介 即役立つ機能 ライ リ テクニ ク ・ ブラ ・ ッ を丁寧に解説。 8 2009年7月18日土曜日
  • 11.
    Ruby 逆引きレシピ ‣ ジュンク堂Ruby 会議支店 Recipe ★ ★ ★ Programmer's ★ ★ ★ 7月25日発売!! ★ ★ ★ ★ Programmer's Recipe ★ ★ ★ Ruby ★ ★ ★ ★ Programmer's Recipe ★ ★ ★ ★ ★ ★ Ruby 本書について 【逆引きレシピシ ー リ ズ】 ★ Ruby   Rubyの世界はとても Visual Basic 2008 逆引き シピ レ でさえ道に迷って うしま こ [Windowsアプリケーシ ン編] ョ ★ ★ ★ リ、多くの実装手段が存 Programmer's 現場に即効!! 基本+定番+重要テクニ ク ッ 着くまでに迷ってしまう ★ Recipe 逆引き ピ レシ ★ ★ ★ ★ ★ ★ かりの人達が適切な解決 Programmer's Recipe えるでしょう。Rubyの入 ★ ★ ★ Visual Basic 2008 逆引きレシピ してはくれません。 逆引 レシ き ピ 中垣健志+藤田聡 [ Windows ] 著 にて先行発売中!! アプリケーション 編 すぐ ぐに美味しい サン サンプル& CONTENTS テクニック テク 26 267  本書は、開発の現場で する方法や、そのために 中垣健志/藤田聡 著 1 さあ始めよう ★ ★ ★ プロが選んだ三ツ星レシピ ! ! 現場に即効! ! 定価2,520円 (本体2,400円+税5%) 式で紹介する本です。 基本+定番+重要テクニック RubyGemsや実行環境のカスタマイズなど、 実開発に即 “実践見出 で、 した し” 困った きにす と Visual Basic によるアプリ シ ン構築のノ ケー ョ ぐ引ける ウハウ ! を一冊に凝縮。 ISBN978-4-7981-1780-5 Rubyやライブラリを使いこなす環境を整える方法を解説 島田浩二/設樂洋爾/村田賢太 を関連するカテゴリや目 の説明は必要最低限に 著 2 基本オブジェクト 前田智樹/谷口文威 ために「どのようなライブ SQL 逆引き シピ レ 即効力のある ピを使えばデー レシ タ操作が自由自在!! 文字列、数値、コレクションなどを扱うための知識・テクニックを解説 逆 サンプルコ ドを交えてわ ー ★ 3 システム 引 R y Ruby ♥おまけ付き♥ すぐに美味しい  本書のもう1つの目的は 日付や時刻、標準入出力、ファイルシステムなどを扱うための知識・テクニックを解説 サンプル& ★ ★ ★ Programmer's Recipe れているRubyらしい考え ★ ★ ★ SQL オブジェクト指向プログラミング テクニ ク ッ 4 き 逆引きレシピ チュ トリアルの形では ー 232 西沢直木 著 すぐに美味しい サンプル& テクニック OOPの技法や慣習をRubyで実現する方法、Rubyプログラミングの際の考え方などを解説 問題をどのよ に解決し う 160 マの考え方とその根底 プロが選んだ三ツ星レシピ ! ! ★ ★ ★ 西沢直木 著 定価2,310円 (本体2,200円+税5%) 5 データベース/永続化 各種データベースの操作やオブジェクトを永続化する方法について解説 レ そうした考え方さえ身に 然とRubyを使いこなし自 ! 即効力のあるレシピを使えば シ よくわか る データ操作が自由自在! ! リ その活用法 ISBN978-4-7981-1779-9 6 ネットワーク処理/ Webプログラミング ことでしょ う。 現場に即 “実践見出 で引けるので、 した し” 用途に適した項目 をパパっと 参照 具体的なサンプルを使った解説で、 ! 複雑なSQL文もラ ク理解 クラ ! と 使えるライブラ き方 ‣  本書が、 Rubyによる楽し さまざまなプロトコルやWebサーバー/クライアント、並列分散処理を扱う方法を解説 ピ ・本当に 幸いです。 し 考え方と書 PHP 逆引き シピ レ 7 各種フォーマット/画像 ・Rubyら い 現場で利用することの多い書式や画像を扱う方法について解説 19日のお昼にサイン会 即効力のある ピを使えばデー レシ タ操作が自由自在!! PHP ★ ★ ★ ★ Programmer's Recipe ★ ★ ★ 8 他言語/外部ライブラリ Ruby以外の言語や外部ライブラリを扱う方法について解説 ★ ★ ★ 9 エラー処理/ログ 逆引きレシピ プロが選んだ三ツ星 ピ! レシ ! 鈴木憲治/安藤建一/山田直明 著 八木照朗/山本義之/河合勝彦 アプリケーションを作り込む際に必要なエラー処理やログの記録を行なう方法について解説 PHP P P すぐに美味しい サンプル& テクニック 261 よくわか る! ーバーの設定法 ・主要レンタルサ のポイ ト ン と実際 と違い 鈴木憲治/安藤建一/山田直明 10 テスト/最適化 広大なRubyの世界でもう迷わない! リティ対策 テサ す ・セキュ 八木照朗/山本義之/河合勝彦 著 ★ ★ ★ コードの評価を行なう際に必要なテストや各種指標の計測を行なう方法について解説 プロが選んだ三ツ星レシピ ! ! いまさら聞けない・誰も教えてくれない 定価2,730円 (本体2,600円+税5%) ぐ クン に 本当に必要な知識と技を一冊に凝縮! ! 困った きにす と ぐ引ける 実践で即役立つテクニ ク ! ッ と開発ノウハウ、 やります つまづきやすい ハマ ・ りやすいポイ ト ン を徹底解説。 ISBN978-4-7981-1986-1 11 デバッグ ニプ 美 開発時の悩みを解決する Windows/Mac 対応 PHP5.3 対応 デバッガでRubyプログラムをデバッグする方法や各種デバッグ技法などを解説 ッル し 味 12 システム管理/自動化 ク& い 232 定番ノウハウ集 システム管理や作業を自動化する方法を解説 13 ドキュメンテーション/パッケージ化 APIドキュメントを生成する方法やプログラム配布のためにパッケージ化する方法を解説 Ruby逆引き シ レ ピ ISBN978-4-7981-1988-5 14 さらに先へ “やりたいこ か ぐ引ける アプリ シ ン開発時に と” らす ! ケー ョ Ruby 1.9の基本やRubyに関する情報収集の方法など、今後の学習に役立つ情報を紹介 即役立つ機能 ライ リ テクニ ク ・ ブラ ・ ッ を丁寧に解説。 8 2009年7月18日土曜日
  • 12.
    買ってください♥ 9 2009年7月18日土曜日
  • 13.
    提 供 From Sapporo, with Love for Ruby Ruby札幌 10 2009年7月18日土曜日
  • 14.
    どうぞ よろしく お願いします 11 2009年7月18日土曜日
  • 15.
    Ruby の標準乱数生成器とその改良案 The standard random number generator of Ruby and the proposal to improve it 村田 賢太 Kenta Murata 12 2009年7月18日土曜日
  • 16.
    今日のまとめ ‣ Kernel#rand だけじゃ足りないよ! ‣ Math/Random ライブラリを作っているよ ‣ 目指せ Random クラスの標準添付! 13 2009年7月18日土曜日
  • 17.
    乱数のおさらい 14 2009年7月18日土曜日
  • 18.
    ことばの使い方 ‣ 乱数列 ‣ 直前までに得られた部分列から次の数を予 測できない数列 ‣ 乱数 ‣ 乱数列から取り出した数 ‣ 乱数生成器 ‣ 乱数列を出力する情報源 15 2009年7月18日土曜日
  • 19.
    乱数列は3種類ある ‣ 真の乱数列 ‣ 2つの疑似乱数列 ‣ Monte Carlo 法用疑似乱数列 ‣ 暗号論的疑似乱数列 16 2009年7月18日土曜日
  • 20.
    Monte Carlo 法用疑似乱数列 ‣ 今日の主役 ‣ 周期は有限 ‣ できるだけ長いほうが良い ‣ 一様性 ‣ 出力される乱数の分布が偏ってないこと ‣ 再現性 ‣ できるだけ簡単に乱数列を再現できること 17 2009年7月18日土曜日
  • 21.
    長い周期・一様性・再現性 ‣ 長い周期 ‣ 周期が長ければ、部分列のパターンが多用に なり、無作為性が高まる ‣ 一様性 ‣ 偏りが小さいほど次の乱数が予測しにくい ‣ 一様分布乱数から任意の分布の乱数を作れる ‣ 再現性 ‣ 再現できないとテストができない 18 2009年7月18日土曜日
  • 22.
    例: さいころ ‣ srand 13 ‣ 1000.times.map { 1 + rand 6 } ‣ => [3, 1, 3, 1, 3, 5, 2, 5, 3, 4, 3, 5, 3, 6, 6, 3, 2, 4, 5, 3, 1, 4, 6, 4, 4, 6, 4, 2, 3, 1, 5, 4, 1, 5, 3, 3, 5, 6, 4, 6, 1, 4, 3, 1, 6, 2, 1, 2, 6, 6, 3, 4, 3, 4, 4, 4, 1, 3, 1, 3, 6, 6, 5, 4, 6, 1, 6, 2, 6, 2, 5, 4, 3, 2, 5, 4, 1, 6, 6, 6, 4, 2, 2, 2, 1, 3, 4, 5, 3, 6, 2, 5, 4, 2, 4, 2, 3, 2, 4, 5, 1, 5, 5, 4, 5, 4, 6, 6, 1, 4, 4, 4, 2, 1, 5, 6, 2, 2, 3, 1, 3, 3, 3, 2, 3, 5, 1, 3, 2, 5, 2, 1, 1, 2, 4, 5, 1, 4, 5, 1, ...] 19 2009年7月18日土曜日
  • 23.
    例: マルチスレッドならどうなる? ✓srand 13 ‣ => [3, 1, 3, 1, 3, 5, 2, 5, ✓a = Thread.start do 3, 4, 3, 5, 3, 6, 6, 3, 2, 4, 1000.times.map{ 5, 3, 1, 4, 6, 4, 4, 6, 4, 2, 1 + rand(6) } 3, 1, 5, 4, 1, 5, 3, 3, 5, 6, end 4, 6, 1, 4, 3, 1, 6, 2, 1, 2, ✓b = Thread.start do 6, 6, 3, 4, 3, 4, 4, 4, 1, 3, 1000.times.map{ 1, 3, 6, 6, 5, 4, 6, 1, 6, 2, 1 + rand(6) 6, 2, 5, 4, 3, 2, 5, 4, 1, 6, } end 6, 6, 4, 2, 2, 2, 1, 3, 4, 5, 3, 6, 2, 5, 4, 2, 4, 2, ...] 20 2009年7月18日土曜日
  • 24.
    例: マルチスレッドならどうなる? ✓srand 13 ‣ => [3, 1, 3, 1, 3, 5, 2, 5, ✓a = Thread.start do 3, 4, 3, 5, 3, 6, 6, 3, 2, 4, 1000.times.map{ 5, 3, 1, 4, 6, 4, 4, 6, 4, 2, 1 + rand(6) } 3, 1, 5, 4, 1, 5, 3, 3, 5, 6, end 4, 6, 1, 4, 3, 1, 6, 2, 1, 2, ✓b = Thread.start do 6, 6, 3, 4, 3, 4, 4, 4, 1, 3, 1000.times.map{ 1, 3, 6, 6, 5, 4, 6, 1, 6, 2, 1 + rand(6) 6, 2, 5, 4, 3, 2, 5, 4, 1, 6, } end 6, 6, 4, 2, 2, 2, 1, 3, 4, 5, 3, 6, 2, 5, 4, 2, 4, 2, ...] 21 2009年7月18日土曜日
  • 25.
    例: こうならない理由はない! ✓srand 13 ‣ => [3, 1, 3, 1, 3, 5, 2, 5, ✓a = Thread.start do 3, 4, 3, 5, 3, 6, 6, 3, 2, 4, 1000.times.map{ 5, 3, 1, 4, 6, 4, 4, 6, 4, 2, 1 + rand(6) } 3, 1, 5, 4, 1, 5, 3, 3, 5, 6, end 4, 6, 1, 4, 3, 1, 6, 2, 1, 2, ✓b = Thread.start do 6, 6, 3, 4, 3, 4, 4, 4, 1, 3, 1000.times.map{ 1, 3, 6, 6, 5, 4, 6, 1, 6, 2, 1 + rand(6) 6, 2, 5, 4, 3, 2, 5, 4, 1, 6, } end 6, 6, 4, 2, 2, 2, 1, 3, 4, 5, 3, 6, 2, 5, 4, 2, 4, 2, ...] 22 2009年7月18日土曜日
  • 26.
    乱数はムズイ ‣ 複数の並行処理でひとつの乱数生成器を共有 すると一様性とか色々崩れる >< ‣ 使い方を間違えると悲惨な結果を招く事例が 乱数には幾つもある ‣ 何度も srand しちゃう人いるよね orz 23 2009年7月18日土曜日
  • 27.
    Ruby の 標準乱数生成器 24 2009年7月18日土曜日
  • 28.
    Ruby の標準乱数生成器 25 2009年7月18日土曜日
  • 29.
    Ruby の標準乱数生成器 ‣ Kernel#rand ‣ 乱数を出力する 25 2009年7月18日土曜日
  • 30.
    Ruby の標準乱数生成器 ‣ Kernel#rand ‣ 乱数を出力する ‣ Kernel#srand ‣ 乱数生成器の状態を初期化する 25 2009年7月18日土曜日
  • 31.
    Ruby の標準乱数生成器 ‣ Kernel#rand ‣ 乱数を出力する ‣ Kernel#srand ‣ 乱数生成器の状態を初期化する ‣ これだけ!! 25 2009年7月18日土曜日
  • 32.
    不親切! 26 2009年7月18日土曜日
  • 33.
    Ruby の標準乱数生成器は不親切 ‣ 何が足りないか? ‣ 複数の生成器への対応 ‣ 状態のシリアライズとリストア ‣ 一様分布以外の分布関数 ‣ 拡張ライブラリへの御心遣い 27 2009年7月18日土曜日
  • 34.
    Ruby に相応しい 乱数生成器とは? 28 2009年7月18日土曜日
  • 35.
    乱数生成器のインタフェース ‣ どうせ作るなら ‣ 野良配布ではなく標準添付がいい ‣ 【急募】 Ruby 的なインタフェース 29 2009年7月18日土曜日
  • 36.
    Matz says... ‣ 標準添付する乱数生成アルゴリズムは一つ ‣ 乱数生成器のオブジェクト化には賛成 ‣ クラス名は Random 30 2009年7月18日土曜日
  • 37.
    実は既に提案されていた 31 2009年7月18日土曜日
  • 38.
    実は既に提案されていた ‣ 2007年に ruby-dev で議論された ‣ [ruby-dev:31206] に当時の trunk 用 patch ‣ Kernel#srand を削除 ‣ Matz がこれに引っかかる 31 2009年7月18日土曜日
  • 39.
    実は既に提案されていた ‣ 2007年に ruby-dev で議論された ‣ [ruby-dev:31206] に当時の trunk 用 patch ‣ Kernel#srand を削除 ‣ Matz がこれに引っかかる ‣ いつの間にかこの話題も消え・・・ 31 2009年7月18日土曜日
  • 40.
    いつの間にか話題が消え・・・ 32 2009年7月18日土曜日
  • 41.
    いつの間にか話題が消え・・・ ‣ ていなかた! 32 2009年7月18日土曜日
  • 42.
    いつの間にか話題が消え・・・ ‣ ていなかた! ‣ 昨日の15時頃に Random クラスが trunk に コミットされた!ちょwww 32 2009年7月18日土曜日
  • 43.
    いつの間にか話題が消え・・・ ‣ ていなかた! ‣ 昨日の15時頃に Random クラスが trunk に コミットされた!ちょwww ‣ 昨日の16時頃まで、この講演資料は Random クラスが無いことを前提に作っていました 32 2009年7月18日土曜日
  • 44.
    最新の Ruby は? ‣ 何が足りないか? ‣ 複数の生成器への対応 ‣ 状態のシリアライズとリストア ‣ 一様分布以外の分布関数 ‣ 拡張ライブラリへの御心遣い 33 2009年7月18日土曜日
  • 45.
    足りない物たち ‣ 複数の生成器への対応 ‣ Array#shuffle などが使う乱数が Kernel#rand に固定されている ‣ 分布関数を組み合せた乱数生成器を Array#sample で使う方法 ‣ 分布関数 ‣ 正規分布と離散分布は欲しい 34 2009年7月18日土曜日
  • 46.
    Math/Random 35 2009年7月18日土曜日
  • 47.
    Math/Random ‣ https://github.com/mrkn/ruby-math- random/tree/master ‣ 間に合いませんでした >< ‣ 標準乱数生成器では足りない機能を補うこと を目的とするライブラリ ‣ ASAP で公開します 36 2009年7月18日土曜日
  • 48.
    Math/Random の主な機能 ‣ 実装済み ‣ 2つの生成アルゴリズム ‣ Mersenne Twister (MT19937AR) ‣ SFMT (SFMT19937) ‣ 2つの分布関数 ‣ 正規分布 ‣ 離散分布 37 2009年7月18日土曜日
  • 49.
    Math/Random の主な機能 ‣ まだ実装できてないもの ‣ たくさんの生成アルゴリズム ‣ Lagged Fibonacci、Blum-Blum-Shub、 線型合同法、などなど ‣ たくさんの分布関数 ‣ 指数分布、Erlang 分布、などなど ‣ 拡張ライブラリ対応のインタフェース ‣ スレッドローカルで Kernel#rand の置き換えるやつ 38 2009年7月18日土曜日
  • 50.
    お前はどうしたいんだ? ‣ 元々は Random クラスを組み込みで提供さ せたかった ‣ もう叶っちゃった! ‣ でも、なんか足りない ‣ 足りない部分を補強してやろう 39 2009年7月18日土曜日
  • 51.
    今日のまとめ ‣ Kernel#rand だけじゃ足りないよ ‣ 昨日の15時に解決したwww ‣ Math/Random ライブラリを作っているよ ‣ 目指せ Random クラスの標準添付! ‣ 昨日の15時に解決したwww ‣ まだ EXPERIMENTAL なので、少しずつ洗練させよう 40 2009年7月18日土曜日