Web技術勉強会9回目(Slideshare用)

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Web技術勉強会9回目(Slideshare用) - Presentation Transcript

    1. Web技術勉強会第9回 Web技術勉強会第9 技術勉強会第 ~続・Rubyはじめました~ Rubyはじめました~ はじめました Ryuichi TANAKA Study:http://devel.de.c.dendai.ac.jp/study/ Blog:http://blog.livedoor.jp/mapserver2007/ 1
    2. 前回の内容 • 配列、ハッシュ、条件分岐、正規表現 • 繰り返し系 • オブジェクト指向プログラミング • RubyのCGI • RubyGems 2
    3. 前回の反省 • 知識が中途半端すぎた – 結局よくわかっていなかった… • コーディングしなかった – サンプルだけ。しかもいきなりMechanize。 正直すまんかった 3
    4. 反省点を活かして • 「初めてのRuby」を読破 – オライリーのくせに分かりやすい。 – 少なくとも前回の知識よりましになった(はず) • 本格的にRubyの開発を開始 – とりあえず、過去のコードをRubyで焼きなおし 4
    5. Rubyのポイント Rubyで必要となるポイントを覚えている限り紹介 • インクリメント/デクリメントがない – i++, ++i, i--, --iが使えない – ならば、for($i =0; $i < $length; $i++){} みたいなとき どうするの? →array.each do |val| puts val end – Rubyではイテレータをフル活用する 5
    6. Rubyのポイント • 空文字はtrue – Perl my $str = $cgi->(“str1”) || exit; print $str; # $strはなにか表示される – # $cgi->(“str1”)が空ならfalseになるのでexitになる – Ruby str = cgi[‘str1’] || exit puts str # strは空文字(“”)を表示することがある str = (cgi[‘str1’] if cgi[‘str1’] != “”) || exit puts str # 空文字は表示されない Rubyはfalseとnil以外は全てtrueになる 6
    7. Rubyのポイント • 文字コード変換が楽 – Perl use Encode; use Encode::Guess qw/euc-jp,utf8,shiftjis/; … My $str = encode(‘euc-jp’,”UTF-8文字列”); //Any->EUC – Perlのバージョンによってこのあたりの挙動が微妙に 違う(実際、研究室とTanaka家では挙動が違う= decodeが必要だったりそうでなかったり) – Perlでは本当に文字コード問題に苦しんだ 7
    8. Rubyのポイント – Ruby1.8.x require ‘kconv’ … p str.toutf8 # Any->UTF8 – Ruby1.9.x p str.encode(“UTF-8”) # Any->UTF8 – あっさりできた。文字列のdecodeも必要ない。 8
    9. RubyをCGIで使う • CGIで使うには – 通常のCGI • アクセスするたびにプロセスがRubyインタプリタを起動する ので遅い – mod_ruby • ApacheがRubyインタプリタを起動する。別プロセスで起動し ないため早い – FastCGI • プロセスをメモリ上に永続化するため起動と終了がカットされ、 結果として早くなる。Ruby以外でも利用可能。 9
    10. Rubygems • Rubyのパッケージ管理をする – PerlのCPAN、PHPのPEARと同様 • 利用方法 require ‘rubygems’ //rubygemsを読ませる require ‘hpricot’ //rubygemsのライブラリを指定 • コンソール上での動作確認 irb > require ‘rubygems’ => true > ruby –rrubygems –rhpricot –e “” //正常ならエラーが出ない 10
    11. まとめ • Rubyの基礎について説明 – for文はあまり使わない – インクリメント/デクリメントはない – true/falseが他の言語と違うところがある • RubyのCGI利用について説明 – 通常のCGIとmod_ruby、FastCGI – Rubygems 11
    12. 今後について • 「続々・Ruby始めました」をやります – またしてもコーディングできていない ※原因は後述 – 実はまだ「Rubyでしかできない」ことがない • Perlでできちゃう – なにか作ったら、Ruby on Railsにも手を出したい • Railsは別途勉強が必要 • RoRは生産効率が早いが、その分内部で何をやってるか良く 分からないため 12
    13. 閑話:問題発生 • コーディングできなかった原因 環境構築ができない!!!!!!! 1. Rubyインストール → 既にできていた 2. mod_ruby, FastCGI設定 → 3日ほどかかった。mod_rubyはう まくいったが、通常のCGI、FastCGIでは動かない(一瞬動いた ときもあった) 3. Rubygems設定 → 4日かかってもできない(もうむり)。パスを 設定、入れなおし、絶対パス指定、1000回くらいぐぐっても無 理。2台目のサーバで試しても無理。 13
    14. 閑話:Rubygemsが動かない • 症状1: require ‘rubygems’ でLoadError発生 – CGIで失敗。irbではtrueを返す。 – 解決策:httpd.confを直しまくったら動いた • 症状2:rubygemsのライブラリでLoadError発生 – CGIで失敗。Irbではtrueを返す。-rで実行してもLoadError。 – ライブラリ箇所を絶対パスにしても無理。 – 解決策:カレントディレクトリにライブラリをコピーして読ませる → LoadErrorは消えるが、なぜか実行できない(確実に動くプログラ ムですら何も表示されない)。 – そもそも根本的に解決していない – 丸1週間かけてもだめ。さすがに凹む。 14

    + mapserver2007mapserver2007, 2 years ago

    custom

    622 views, 0 favs, 1 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 622
      • 619 on SlideShare
      • 3 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 1
    Most viewed embeds
    • 3 views on http://devel.de.c.dendai.ac.jp

    more

    All embeds
    • 3 views on http://devel.de.c.dendai.ac.jp

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories