<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8933661903361292587</id><updated>2011-07-09T04:04:04.571+09:00</updated><category term='twitter4r'/><category term='ruby'/><category term='cakephp'/><category term='オセロ'/><category term='java'/><category term='mysql'/><category term='php'/><category term='情報検索'/><category term='twitter'/><title type='text'>UT blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-1874609568456315298</id><published>2009-08-09T00:58:00.002+09:00</published><updated>2009-08-09T01:11:17.471+09:00</updated><title type='text'>[fedora11] rubyからmysqlを使う</title><content type='html'>なぜか&lt;br /&gt;&lt;br /&gt;gem install mysql&lt;br /&gt;&lt;br /&gt;でインストールできない、あらゆるオプションを試したが無理。&lt;br /&gt;&lt;br /&gt;yum install ruby-mysql&lt;br /&gt;&lt;br /&gt;でインストールできた。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;なんだこれ、どういうことかわからなーい&lt;br /&gt;&lt;br /&gt;[追記]&lt;br /&gt;&lt;br /&gt;gccが入ってなかった（恥ずかしすぎる）&lt;br /&gt;&lt;br /&gt;gccを入れた後&lt;br /&gt;&lt;br /&gt;gem install mysql -- --with-mysql-config --with-mysql-lib=/usr/lib/myql --with-mysql-include=/usr/include/mysql&lt;br /&gt;&lt;br /&gt;でOK！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-1874609568456315298?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/1874609568456315298/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/08/fedora11-rubymysql.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/1874609568456315298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/1874609568456315298'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/08/fedora11-rubymysql.html' title='[fedora11] rubyからmysqlを使う'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-8670596664241767483</id><published>2009-07-30T18:46:00.002+09:00</published><updated>2009-07-30T19:03:21.505+09:00</updated><title type='text'>ruby on rails インストール後のエラー達</title><content type='html'>railsのインストールは簡単&lt;br /&gt;&lt;br /&gt;gem install rails --include-dependencies&lt;br /&gt;&lt;br /&gt;でできる。&lt;br /&gt;&lt;br /&gt;プロジェクトの作成は&lt;br /&gt;&lt;br /&gt;rails [プロジェクト名]&lt;br /&gt;&lt;br /&gt;でできる。ここでエラー&lt;br /&gt;&lt;br /&gt;SSLEAY32.dllがありません。ウェブで調べてSSLEAY32.dllを持ってきてruby/binに入れればＯＫ。&lt;br /&gt;&lt;br /&gt;とりあえず作ったプロジェクトのwebサーバを起動&lt;br /&gt;&lt;br /&gt;ruby script/server&lt;br /&gt;&lt;br /&gt;ＯＫ。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;コントローラを作成。&lt;br /&gt;&lt;br /&gt;ruby script/generate controller [コントローラ名]&lt;br /&gt;&lt;br /&gt;OK。(ここではコントローラ名はDispとした、作成されるファイル名はdisp_controller.rb)&lt;br /&gt;&lt;br /&gt;アクションを作成。&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt;def [アクション名]&lt;br /&gt;end&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;ＯＫ。（ここではアクション名はhelloRailsとした）&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ビューを作成。&lt;br /&gt;&lt;br /&gt;ファイル名はhelloRails.rhtml&lt;br /&gt;&lt;br /&gt;内容は適当なhtml書けばいい&lt;br /&gt;&lt;br /&gt;OK。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ブラウザから動作確認してみる&lt;br /&gt;&lt;br /&gt;http://localhost:3000/disp/helloRails&lt;br /&gt;&lt;br /&gt;ここでエラー。&lt;br /&gt;&lt;br /&gt;500 internal server error&lt;br /&gt;&lt;br /&gt;エラーログを見てみると&lt;br /&gt;&lt;br /&gt;「sqlite3にアクセスできません」と書いてある。&lt;br /&gt;&lt;br /&gt;あたりまえだｗ sqlite3入ってないしw&lt;br /&gt;&lt;br /&gt;どうやらデフォルトでsqliteを使うことになってるらしい（Rails 2.0.2）&lt;br /&gt;&lt;br /&gt;mysqlを使いたい人は、プロジェクト作成のときに&lt;br /&gt;&lt;br /&gt;rails -d mysql [プロジェクト名]&lt;br /&gt;&lt;br /&gt;でプロジェクトを作成すれば良いらしい。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;もう一回動作確認。&lt;br /&gt;&lt;br /&gt;また500 internal server error&lt;br /&gt;&lt;br /&gt;エラーログ確認&lt;br /&gt;&lt;br /&gt;access denied user root@localhost password:NO&lt;br /&gt;&lt;br /&gt;あーパスワード設定しなきゃいけないのか&lt;br /&gt;&lt;br /&gt;config/database.ymlをいじってパスワード設定。（見ればすぐ分かるはず）&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;もう一回動作確認&lt;br /&gt;&lt;br /&gt;また500 internal server error&lt;br /&gt;&lt;br /&gt;エラーログ確認&lt;br /&gt;&lt;br /&gt;unknown database hello_development&lt;br /&gt;&lt;br /&gt;そりゃそうだ、そんなデータベース作ってないし。&lt;br /&gt;&lt;br /&gt;じゃあ作る。&lt;br /&gt;&lt;br /&gt;----------------------------------------------------&lt;br /&gt;mysql -u root -p&lt;br /&gt;Enter password: **********&lt;br /&gt;&lt;br /&gt;mysql&gt; create database hello_development;&lt;br /&gt;----------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;もう一回動作確認。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;出来たーーーーーーーーーーーーーーーーー（感動）&lt;br /&gt;&lt;br /&gt;てな感じで。でてきたエラーこんなもん。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-8670596664241767483?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/8670596664241767483/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/07/ruby-on-rails.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/8670596664241767483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/8670596664241767483'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/07/ruby-on-rails.html' title='ruby on rails インストール後のエラー達'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-45637480762582801</id><published>2009-07-16T17:27:00.004+09:00</published><updated>2009-07-16T17:40:52.451+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>mysqlのアンインストール</title><content type='html'>MySQLのアンインストール・・・、やっかいだぜ&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MySQLを「プログラムの追加と削除」からアンインストールするとゴミが残るらしい。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;そのゴミのせいで新しくMySQLをインストールしても動かない。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Could not start the service MySQL.Error:0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;このエラーが出る。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;いろいろ調べた結果解決方法を見つけました。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ivystar.jp/database/mysql/windows-mysqliycyoyyoyyeye/"&gt;アイビースター[&lt;span style="font-weight: bold;"&gt;Windows MySQLのアンインストール&lt;/span&gt;]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ふぅ、助かった。。。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-45637480762582801?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/45637480762582801/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/07/mysql.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/45637480762582801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/45637480762582801'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/07/mysql.html' title='mysqlのアンインストール'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-3959196647818082663</id><published>2009-07-07T15:59:00.006+09:00</published><updated>2009-07-07T16:11:07.478+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><title type='text'>rubyのちょっとしたメモ2 [例外処理]</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;何度調べてもすぐ忘れる（にわとり、いや、ひよこか）からメモする&lt;br /&gt;&lt;br /&gt;[例外処理]&lt;br /&gt;&lt;br /&gt;begin&lt;br /&gt;# 例外が発生する可能性のある処理&lt;br /&gt;rescue =&gt; e&lt;br /&gt;# 例外が発生したときに行う処理、eには捕捉した例外が入る&lt;br /&gt;else&lt;br /&gt;# 例外が発生しなかったときに行う処理&lt;br /&gt;ensure&lt;br /&gt;# 例外が発生したかどうかに関わらず、必ず行う処理&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;ソース&gt;&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;begin&lt;br /&gt; 　open('non-exist.txt')&lt;br /&gt;rescue =&gt; error&lt;br /&gt; 　puts error&lt;br /&gt;else&lt;br /&gt; 　puts 'ok'&lt;br /&gt;ensure&lt;br /&gt; 　puts 'end'&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;begin&lt;br /&gt; 　open('exist.txt')&lt;br /&gt;rescue =&gt; error&lt;br /&gt;　puts error&lt;br /&gt;else&lt;br /&gt; 　puts 'ok'&lt;br /&gt;ensure&lt;br /&gt; 　puts 'end'&lt;br /&gt;end&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;実行結果&gt;&lt;br /&gt;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;No such file or directory - non-exist.txt&lt;br /&gt;end&lt;br /&gt;ok&lt;br /&gt;end&lt;br /&gt;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;こんなことも覚えられない（笑）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-3959196647818082663?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/3959196647818082663/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/07/ruby2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/3959196647818082663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/3959196647818082663'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/07/ruby2.html' title='rubyのちょっとしたメモ2 [例外処理]'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-4040455589024699361</id><published>2009-07-07T15:43:00.005+09:00</published><updated>2009-07-07T16:12:07.490+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><title type='text'>rubyのちょっとしたメモ [each]</title><content type='html'>何度調べてもすぐ忘れる（にわとりだ//）からメモする&lt;br /&gt;&lt;br /&gt;[each]&lt;br /&gt;&lt;br /&gt;each_indexでインデックスによるイテレーションができる。&lt;br /&gt;&lt;br /&gt;&lt;ソース&gt;&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;char = ['a', 'b', 'c']&lt;br /&gt;&lt;br /&gt;char.each_index do |i|&lt;br /&gt;　puts i&lt;br /&gt;end&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;実行結果&gt;&lt;br /&gt;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;0&lt;br /&gt;1&lt;br /&gt;2&lt;br /&gt;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;each_with_indexでバリューとインデックスによるイテレーションができる&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;char = ['a', 'b', 'c']&lt;br /&gt;&lt;br /&gt;char.each_with_index do |c, i|&lt;br /&gt;　puts i&lt;br /&gt;　puts c&lt;br /&gt;end&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;&lt;br /&gt;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;0&lt;br /&gt;a&lt;br /&gt;1&lt;br /&gt;b&lt;br /&gt;2&lt;br /&gt;c&lt;br /&gt;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;eachにはこんな使い方もある&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;a = ['taro', 18, 80]&lt;br /&gt;b = ['jiro', 16, 70]&lt;br /&gt;c = ['tagosaku', 15, 100]&lt;br /&gt;&lt;br /&gt;array = [a, b, c]&lt;br /&gt;&lt;br /&gt;array.each do |name, age, score|&lt;br /&gt;　puts name&lt;br /&gt;　puts age&lt;br /&gt;　puts score&lt;br /&gt;end&lt;br /&gt;---------------------------------------------------------&lt;br /&gt;&lt;br /&gt;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;taro&lt;br /&gt;18&lt;br /&gt;80&lt;br /&gt;jiro&lt;br /&gt;16&lt;br /&gt;70&lt;br /&gt;tagosaku&lt;br /&gt;16&lt;br /&gt;100&lt;br /&gt;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;なるほど・・・、rubyおそるべし・・・。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-4040455589024699361?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/4040455589024699361/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/07/ruby-each.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/4040455589024699361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/4040455589024699361'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/07/ruby-each.html' title='rubyのちょっとしたメモ [each]'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-3976193966834741615</id><published>2009-06-27T16:59:00.002+09:00</published><updated>2009-06-27T17:11:16.736+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><title type='text'>[Ruby]シングルクォートをエスケープ</title><content type='html'>Rubyで正規表現を使ってシングルクォートをエスケープしようとした。&lt;br /&gt;&lt;br /&gt;------------------------------&lt;br /&gt;str = "I'm lovin' it"&lt;br /&gt;&lt;br /&gt;str.gsub!(/'/, "\\'")&lt;br /&gt;&lt;br /&gt;puts str&lt;br /&gt;------------------------------&lt;br /&gt;&lt;br /&gt;そしたらなぜかこうなった&lt;br /&gt;(実行結果)&lt;br /&gt;^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;Im lovin' itm lovin it it&lt;br /&gt;^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;なぜだ・・・。意味が分からなすぎる。&lt;br /&gt;&lt;br /&gt;いろいろ調べたけどどうしてそうなるのか分からなかった（笑）&lt;br /&gt;&lt;br /&gt;で、結局違うやり方で&lt;br /&gt;&lt;br /&gt;--------------------------------&lt;br /&gt;str = "I'm lovin' it"&lt;br /&gt;&lt;br /&gt;str.gsub!(/'/) do |m|&lt;br /&gt;  '\\' + m&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;puts str&lt;br /&gt;--------------------------------&lt;br /&gt;&lt;br /&gt;こうやったら&lt;br /&gt;&lt;br /&gt;^^^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;I\'m lovin\' it&lt;br /&gt;^^^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;&lt;br /&gt;ちゃんとできた。これで出来るならまぁいいか（妥協）&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ちなみになぜシングルクォートをエスケープしたいかというと&lt;br /&gt;&lt;br /&gt;RubyからMySQLにデータを入れるときにテキストでシングルクォートを入れたいから。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-3976193966834741615?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/3976193966834741615/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/06/ruby.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/3976193966834741615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/3976193966834741615'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/06/ruby.html' title='[Ruby]シングルクォートをエスケープ'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-2042892274229225313</id><published>2009-06-24T04:18:00.002+09:00</published><updated>2009-06-24T04:28:57.328+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>RubyでMySQLにアクセス</title><content type='html'>いやぁ大変だった。何も知らない状態から調べつつやるのって大変ね&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;無駄な手順があるかと思うけど踏んだ手順を全部書く&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1, Ruby-1.9じゃだめと言われたからRuby-1.8を入れなおす&lt;br /&gt;&lt;br /&gt;2, MySQL4.1を入れる&lt;br /&gt;&lt;br /&gt;3, gem install mysqlでMySQL/Rubyを入れる&lt;br /&gt;&lt;br /&gt;4, zlib.dllがないと言われるのでとって来たzlib.dllをruby/binに入れる&lt;br /&gt;&lt;br /&gt;5, 以下のコードを動かしてみる&lt;br /&gt;&lt;br /&gt;-------------------------------------------------------------------------------------&lt;br /&gt;require 'rubygems'&lt;br /&gt;require "mysql"                                                &lt;br /&gt;&lt;br /&gt;host = 'localhost'&lt;br /&gt;user = 'root'&lt;br /&gt;pass = 'rootpass'&lt;br /&gt;dbname = 'test_ruby'&lt;br /&gt;&lt;br /&gt;db = Mysql::connect(host, user, pass, dbname)&lt;br /&gt;&lt;br /&gt;rs = db.query('select * from test_table')&lt;br /&gt;&lt;br /&gt;rs.each do |item|&lt;br /&gt;  puts item[0]&lt;br /&gt;end&lt;br /&gt;--------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;6, 動いた！感涙・・・。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;これ読んでも何も分からんね、また後で書き直そう&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-2042892274229225313?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/2042892274229225313/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/06/rubymysql.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/2042892274229225313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/2042892274229225313'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/06/rubymysql.html' title='RubyでMySQLにアクセス'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-5675817535939463955</id><published>2009-06-20T00:21:00.009+09:00</published><updated>2009-06-20T00:45:24.473+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Twitter crawler with ruby 3</title><content type='html'>ライブラリを使わないでTwitter APIを使ってみた。&lt;br /&gt;&lt;br /&gt;（ＪＳＯＮパーサは使ってるけど）&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;require 'net/http'&lt;br /&gt;require 'json'&lt;br /&gt;&lt;br /&gt;request = Net::HTTP::Get.new('/search.json?q=hoge&amp;amp;rpp=2')&lt;br /&gt;http = Net::HTTP.start('search.twitter.com')&lt;br /&gt;response = http.request(request)&lt;br /&gt;puts JSON.parse(response.body)&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;＞request = Net::HTTP::Get.new('/search.json?q=hoge&amp;amp;rpp=2')&lt;br /&gt;はjson形式で結果を取得、文字列hogeを含む最新の発言を最大２件取得するという意味。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;＞response = http.request(request)&lt;br /&gt;で、responseにはjson形式の文字列が返される&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;＞puts JSON.parse(response.body)&lt;br /&gt;response.bodyは、responseから#&amp;lt;net::httpok:0xc5f9e0&amp;gt;部分を取ったもの。&lt;br /&gt;それをパースしてHash型で返す。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;json形式の文字列がどんなものかは&lt;br /&gt;&lt;br /&gt;http://apiwiki.twitter.com/Twitter-Search-API-Method%3A-search&lt;br /&gt;&lt;br /&gt;のJSON exampleを見ればＯＫ！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-5675817535939463955?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/5675817535939463955/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/06/twitter-crawler-with-ruby-3.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/5675817535939463955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/5675817535939463955'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/06/twitter-crawler-with-ruby-3.html' title='Twitter crawler with ruby 3'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-5364068355818664358</id><published>2009-06-19T00:39:00.003+09:00</published><updated>2009-06-19T01:05:12.519+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter4r'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Twitter crawler with ruby 2</title><content type='html'>前回悩んでたサンプルコードが動く動かないの違いが分かった。&lt;br /&gt;&lt;br /&gt;単純すぎて恥ずかしいけど（笑）。&lt;br /&gt;&lt;br /&gt;どうやら使ってるライブラリが違うらしい。&lt;br /&gt;&lt;br /&gt;twitter apiをrubyで使えるライブラリは３つくらいあるらしく、自分が使ってたのは&lt;br /&gt;&lt;br /&gt;john nunemakerによるライブラリ　http://twitter.rubyforge.org　だった。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;これからはこれとは違うライブラリ、twitter4r　http://twitter4r.rubyforge.org/　を使っていこうと思う。&lt;br /&gt;&lt;br /&gt;インストールの仕方は例のごとくちゃちゃっとググレで（笑）。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;研究の関係で検索機能を実装したいんだけど、twitter4rのドキュメント　http://twitter4r.rubyforge.org/rdoc/　を読んでもsearch系のメソッドがない・・・。&lt;br /&gt;&lt;br /&gt;んで、探しに探してようやく見つけたsearch。&lt;br /&gt;&lt;br /&gt;-------------------------------------------------------------------------------------&lt;br /&gt;require 'rubygems'&lt;br /&gt;require 'twitter'&lt;br /&gt;&lt;br /&gt;client = Twitter::Client.new&lt;br /&gt;puts client.search(:q =&gt; 'hogehoge', :rpp =&gt; 10)&lt;br /&gt;-------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;このコードで文字列hogehogeを含む最新のつぶやきを最大１０件取得できる。&lt;br /&gt;&lt;br /&gt;また&lt;br /&gt;&lt;br /&gt;-------------------------------------------------------------------------------------&lt;br /&gt;require 'rubygems'&lt;br /&gt;require 'twitter'&lt;br /&gt;&lt;br /&gt;client = Twitter::Client.new&lt;br /&gt;puts client.search(:from =&gt; 'yuto_ymgc', :rpp =&gt; 10)&lt;br /&gt;-------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;で、yuto_ymgcが発した最新のつぶやきを最大１０件取得できる。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ここで問題発生&lt;br /&gt;&lt;br /&gt;yuto_ymgcが発したつぶやきの中で、文字列hogeを含むものを取得したいとき&lt;br /&gt;&lt;br /&gt;--------------------------------------------------&lt;br /&gt;client.search(:from =&gt; 'yuto_ymgc', :q =&gt; 'hoge')&lt;br /&gt;--------------------------------------------------&lt;br /&gt;&lt;br /&gt;としても何も返ってこない。&lt;br /&gt;&lt;br /&gt;対応してないのかな。不便！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-5364068355818664358?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/5364068355818664358/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/06/twitter-crawler-with-ruby-2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/5364068355818664358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/5364068355818664358'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/06/twitter-crawler-with-ruby-2.html' title='Twitter crawler with ruby 2'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-5331875978658689009</id><published>2009-06-17T15:56:00.002+09:00</published><updated>2009-06-17T16:12:07.645+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Twitter crawler with ruby</title><content type='html'>まずはRubyGemsのインストールとtwitterライブラリのインストール。&lt;br /&gt;&lt;br /&gt;（やり方はちゃちゃっとググってください）&lt;br /&gt;&lt;br /&gt;まぁたぶんここまでは簡単にできるんだけど&lt;br /&gt;&lt;br /&gt;そこら辺に落ちてるサンプルコードを動かそうと思って&lt;br /&gt;&lt;br /&gt;----------------------------------------------&lt;br /&gt;require 'rubygems'&lt;br /&gt;require 'twitter'&lt;br /&gt;&lt;br /&gt;twit = Twitter::Base.new("mail", "pass")&lt;br /&gt;twit.update('hooooo')&lt;br /&gt;----------------------------------------------&lt;br /&gt;&lt;br /&gt;ってやっても動かない。&lt;br /&gt;&lt;br /&gt;なにやらBaseのinitializeは引数を二つじゃなく一つだけとるらしい。&lt;br /&gt;&lt;br /&gt;でもこのタイプのコードでみんな動いてるらしいんだよなぁ・・・。なんでだろ&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;そんでいろいろ探してたら別のタイプのサンプルコード発見&lt;br /&gt;&lt;br /&gt;----------------------------------------------------------------------------------------&lt;br /&gt;require 'rubygems'&lt;br /&gt;require 'twitter'&lt;br /&gt;&lt;br /&gt;httpauth = Twitter::HTTPAuth.new('mail', 'pass')&lt;br /&gt;twit = Twitter::Base.new(httpauth)&lt;br /&gt;&lt;br /&gt;twit.update('hoooooo')&lt;br /&gt;----------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;これだと動く（やったね）&lt;br /&gt;&lt;br /&gt;理由はおいおい確認していくとして、とりあえず今回はAPIつかってtwitterに投稿できたってことでOK！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-5331875978658689009?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/5331875978658689009/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/06/twitter-crawler-with-ruby.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/5331875978658689009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/5331875978658689009'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/06/twitter-crawler-with-ruby.html' title='Twitter crawler with ruby'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-1754660816716127832</id><published>2009-06-12T16:42:00.003+09:00</published><updated>2009-06-17T16:13:03.078+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='情報検索'/><title type='text'>tf-idf</title><content type='html'>tf-idfについて頭に入れたから一度アウトプットしてみる。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;tf-idfとは、文書中から特徴語を抽出するためのアルゴリズムである。&lt;br /&gt;&lt;br /&gt;文書dに含まれるある語tに対応するtf-idf値が大きければ大きいほど、tはdの特徴をより表している語である。&lt;br /&gt;&lt;br /&gt;tf-idfは、tf(term frequency)とidf(inverse document frequency)によって構成される。&lt;br /&gt;&lt;br /&gt;tfは、文書中の単語の出現頻度を表す。当然、文書中によく現れる単語は文書の特徴を表すと言える。&lt;br /&gt;&lt;br /&gt;idfは、その語がどれだけ多くの文書に含まれているかを表す。これは、多くの文書中に表れる単語はある一つの文書の特徴語にはなりえないと言う事を表す(a, the等)。&lt;br /&gt;&lt;br /&gt;文書d中によく出現し、なおかつその他の文書にはあまり出現しない単語ｔは、tf-idfによってdの特徴語として抽出される。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;具体的な計算法などは他のページを参照してほしい。&lt;br /&gt;&lt;br /&gt;http://ja.wikipedia.org/wiki/Tf-idf&lt;br /&gt;http://d.hatena.ne.jp/deepfolte/20080421/1208786699&lt;br /&gt;http://chalow.net/2005-10-12-1.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-1754660816716127832?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/1754660816716127832/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/06/tf-idf.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/1754660816716127832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/1754660816716127832'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/06/tf-idf.html' title='tf-idf'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-4969152838702782883</id><published>2009-06-04T17:23:00.003+09:00</published><updated>2009-06-17T16:12:45.073+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cakephp'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>[cakephp]findメモ</title><content type='html'>findAllは非推奨になったため、find('all')を使う。&lt;br /&gt;&lt;br /&gt;(古)&lt;br /&gt;$this-&gt;model-&gt;findAll($conditions);&lt;br /&gt;(新)&lt;br /&gt;$this-&gt;model-&gt;find('all', array('conditions' =&gt; $conditions));&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;conditionsに複数条件を指定するとデフォルトではAND検索になる。&lt;br /&gt;&lt;br /&gt;$conditions = array('title' =&gt; 'hoge', 'author' =&gt; 'piyo');&lt;br /&gt;以下のようになる。&lt;br /&gt;(title = 'hoge')AND(author = 'piyo')&lt;br /&gt;&lt;br /&gt;OR検索をするときは次のように指定する。&lt;br /&gt;$conditions = array('or' =&gt; array('title' =&gt; 'hoge', 'author' =&gt; 'piyo'));&lt;br /&gt;以下のようになる。&lt;br /&gt;(title = 'hoge')OR(author = 'piyo')&lt;br /&gt;&lt;br /&gt;IN検索&lt;br /&gt;$conditions = array('model.id' =&gt; array(1, 3, 5, 6));&lt;br /&gt;$this-&gt;model-&gt;find('all', array('conditions' =&gt; $conditions));&lt;br /&gt;&lt;br /&gt;こうするとmodel.idが１か３か５か６であるデータが取れる&lt;br /&gt;*idは属性名が重複するのでmodel.idのようにテーブル名を付ける。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-4969152838702782883?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/4969152838702782883/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/06/cakephpfind.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/4969152838702782883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/4969152838702782883'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/06/cakephpfind.html' title='[cakephp]findメモ'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-7430637827290555288</id><published>2009-06-03T02:53:00.002+09:00</published><updated>2009-06-17T16:12:23.882+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オセロ'/><title type='text'>[オセロプログラム]一応完成</title><content type='html'>研究室の課題で作ってたオセロを一応完成とした。というかこれ以上の改善は自分には無理（笑）。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-実装した機能&lt;br /&gt;&lt;br /&gt;--探索&lt;br /&gt;コンピュータが次の手を捜すとき、まずは登録してある定石集から探す。具体的には現在の局面をキーとして定石集を線形探索、見つけた手の中から評価値がもっとも大きいものを次の手とする。&lt;br /&gt;&lt;br /&gt;定石が見つからなかった場合、現在の手数によって中盤探索か終盤探索を行う。&lt;br /&gt;&lt;br /&gt;---中盤探索&lt;br /&gt;あらかじめ決めた深さｎによって、ｎ手読みをする。リーフノードの近くでは単純なアルファ・ベータ探索（実際にはネガアルファ探索）を行う。それ以外では、move orderingをし、置換表を用いたネガスカウト探索を行う。&lt;br /&gt;&lt;br /&gt;----move ordering（中盤）&lt;br /&gt;中盤探索では、一手読みをし、その評価値によって手をソートする。&lt;br /&gt;&lt;br /&gt;----置換表を用いたネガスカウト探索&lt;br /&gt;まず置換表を参照し、現在の局面が登録されているか探す。発見した場合は次の手、評価値を返す（一意に決まらない場合もある）。&lt;br /&gt;発見できなかった場合は、ネガスカウト探索を行う。最探索をする場合も置換表があることによって、探索にかかる時間を短縮できる。&lt;br /&gt;&lt;br /&gt;---終盤探索&lt;br /&gt;手数があらかじめ決めた値に達したら終盤探索を行う。最後まで読みきり、石差を評価値として返す。中盤探索と同様にリーフノードの近くでは単純なアルファ・ベータ探索（ネガアルファ探索）を行う。それ以外ではmove orderingをし、置換表を用いたネガスカウト探索を行う。&lt;br /&gt;&lt;br /&gt;----move ordering（終盤）&lt;br /&gt;開放度によってソートする。開放度が等しい場合は一手読みをし、その評価値によってソートする。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--学習&lt;br /&gt;強化学習（教師なし学習）を行う。プログラムが自分自身と対局し、その勝敗によって対局中に現れた局面を評価する。評価値はパターンによる評価値を用いる。局面を評価するとは、正確には全てのパターンの重みを学習するということ。&lt;br /&gt;ちなみに定石は手動登録。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;とまぁこんな感じで完成。本当はMPCとか実装したかったけど、自分には難しすぎて理解できませんでした。&lt;br /&gt;&lt;br /&gt;研究室内オセロ大会に向けて目下強化学習中！！&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-関連語句&lt;br /&gt;&lt;br /&gt;アルファ・ベータ(α-β)探索&lt;br /&gt;ネガアルファ探索&lt;br /&gt;null window search&lt;br /&gt;move ordering&lt;br /&gt;開放度(mobility)&lt;br /&gt;強化学習&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-7430637827290555288?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/7430637827290555288/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/06/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/7430637827290555288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/7430637827290555288'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/06/blog-post.html' title='[オセロプログラム]一応完成'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-9039415285034683370</id><published>2009-05-08T15:44:00.003+09:00</published><updated>2009-06-17T16:12:45.073+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cakephp'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>[CakePHP]規約メモ</title><content type='html'>●モデル&lt;br /&gt;&lt;br /&gt;　モデルのクラス名は単数形でキャメル記法です。Person、BigPerson、ReallyBigPerson などは規約に合ったモデル名です。&lt;br /&gt;　CakePHP のモデルに対応するテーブル名は、複数形でアンダースコア記法です。上記の例で言えば、テーブル名はそれぞれ、people、big_people、really_big_peopleとなります。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;●コントローラ&lt;br /&gt;&lt;br /&gt;　コントローラのクラス名は複数形でキャメル記法です。最後にControllerが付きます。PeopleController、BigPeopleController、ReallyBigPeopleControllerなどは規約に合ったコントローラ名です。&lt;br /&gt;　コントローラ内のメソッドにアクセスするためのURL は、小文字とアンダースコアを用いるというのが規約であり、RedApplesController::go_pick アクションにアクセスするための正しい形式は /red_apples/go_pick となります。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;●ビュー&lt;br /&gt;&lt;br /&gt;　ビューのテンプレートファイルは、それを表示するコントローラの関数に合わせた、アンダースコア記法で名前が付きます。 例えば、PeopleControllerクラスのgetReady()関数は、ビューテンプレートとして、/app/views/people /get_ready.ctpを探すことになります。&lt;br /&gt;　基本パターンは、 /app/views/コントローラ名/アンダースコア記法_関数名.ctpです。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;例：&lt;br /&gt;・データベースのテーブル： "people"&lt;br /&gt;・モデルクラス： "Person"、 場所は /app/models/person.php&lt;br /&gt;・コントローラクラス： "PeopleController"、 場所は /app/controllers/people_controller.php&lt;br /&gt;・ビューのテンプレート、場所は /app/views/people/index.ctp&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://book.cakephp.org/ja/view/22/CakePHP-Conventions&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-9039415285034683370?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/9039415285034683370/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/05/cakephp.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/9039415285034683370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/9039415285034683370'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/05/cakephp.html' title='[CakePHP]規約メモ'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-6446906528748026460</id><published>2009-05-08T13:52:00.002+09:00</published><updated>2009-06-17T16:12:54.753+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>javaでunsigned(符号なし整数)</title><content type='html'>javaにはunsignedがなくて不便！&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;●javaでunsignedの数値データを扱う方法&lt;br /&gt;http://d.hatena.ne.jp/fujioka0729/20071220/1198121245&lt;br /&gt;&lt;br /&gt;符号なしbyteをintのキャストする方法&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;●自分でunsignedintクラスを作る。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Integerクラスに符号なし整数とみなして比較するメソッドがあればいいのに。なんでないんだろ？&lt;a href="http://d.hatena.ne.jp/fujioka0729/20071220/1198121245" name="1198121245"&gt;&lt;span class="highlight"&gt;&lt;/span&gt;&lt;span class="highlight"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="hatena-star-comment-container"&gt;&lt;/span&gt;&lt;span class="hatena-star-star-container"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-6446906528748026460?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/6446906528748026460/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/05/javaunsigned.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/6446906528748026460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/6446906528748026460'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/05/javaunsigned.html' title='javaでunsigned(符号なし整数)'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-7564796530962007529</id><published>2009-05-08T13:45:00.002+09:00</published><updated>2009-06-17T16:12:23.882+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オセロ'/><title type='text'>[オセロプログラム]定石実装</title><content type='html'>やっと定石実装できた。。。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://www.es-cube.net/es-cube/reversi/sample/index.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;いつも通り上のページを参考にして作ったけど、cからjavaに移植するの結構つらい（自分の能力だと）。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;unsignedがないし、メモリ管理がどうなってるかとかいまいち理解してないし。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;だめだめですねぇ&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;まぁそれはそうと、定石があると思考時間が一気に削減できるからなんか快感（笑）&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;手動で定石を登録していくんだけど、オセロの定石なんかわからん。どこから持ってこようか。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;・マルチスレッド化&lt;br /&gt;・相手の探索中（入力待ち時間）に探索&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-7564796530962007529?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/7564796530962007529/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/05/blog-post_08.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/7564796530962007529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/7564796530962007529'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/05/blog-post_08.html' title='[オセロプログラム]定石実装'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-7114982487257222567</id><published>2009-05-05T15:10:00.002+09:00</published><updated>2009-06-17T16:12:23.882+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オセロ'/><title type='text'>オセロプログラムの作成</title><content type='html'>大学の研究室の課題としてオセロプログラムの作成があるから作ってみた。&lt;br /&gt;&lt;br /&gt;http://www.es-cube.net/es-cube/reversi/sample/index.html&lt;br /&gt;&lt;br /&gt;上のページを参考にしてjavaで実装した。&lt;br /&gt;&lt;br /&gt;すごく丁寧な解説があって、よくまとまっていて、とても参考になります。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;minMax探索やらnegaMax探索やらα-β探索といった定番の探索アルゴリズムで実装したけどそれなりに強い。&lt;br /&gt;&lt;br /&gt;強化学習恐るべし・・・&lt;br /&gt;&lt;br /&gt;プログラム作成の期日までにあと定石ぐらいは実装しよう。&lt;br /&gt;&lt;br /&gt;当然だけど既に自分で作ったプログラムに自分で勝てない（笑）&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;・定石の実装&lt;br /&gt;・マルチスレッド化&lt;br /&gt;・相手が思考している間に探索&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-7114982487257222567?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/7114982487257222567/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/05/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/7114982487257222567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/7114982487257222567'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/05/blog-post.html' title='オセロプログラムの作成'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8933661903361292587.post-8274207480316355358</id><published>2009-04-28T14:23:00.000+09:00</published><updated>2009-04-28T14:24:14.443+09:00</updated><title type='text'>ブログ</title><content type='html'>メモ帳がてらブログ作成&lt;br /&gt;&lt;br /&gt;いままで続いたこと無いけど続くかな&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8933661903361292587-8274207480316355358?l=yyuto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yyuto.blogspot.com/feeds/8274207480316355358/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yyuto.blogspot.com/2009/04/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/8274207480316355358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8933661903361292587/posts/default/8274207480316355358'/><link rel='alternate' type='text/html' href='http://yyuto.blogspot.com/2009/04/blog-post.html' title='ブログ'/><author><name>UT</name><uri>http://www.blogger.com/profile/09732251759077711759</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_QanKbAi2-u0/SUy4sSySk7I/AAAAAAAAAAY/0t0jDFavWY0/S220/profile_blank_gray.jpg'/></author><thr:total>0</thr:total></entry></feed>
