Create  FrontPage  Index  Search  Changes  Login

KansaiWorkshop16

第16回 Ruby勉強会@関西(運営:Ruby関西

勉強会

日時
2007 年 6 月 16 日 (土) 13:00〜17:30
場所
京都女子大 J校舎4F J420教室
アクセス
http://www.cs.kyoto-wu.ac.jp/~konami/map/J/
費用
実費(講師の交通費、配布物の印刷代等)の人数割をご負担ください。前回(同じ会場)は500円でした。
定員
定員は設定しません。

プログラム

「Ruby初級者向けレッスン第13回」 by okkezさん & サカイさん

セッション概要
メソッド定義の方法と前回扱わなかった例外を解説します。
時間があればどういうことを考えてこれらを使用すれば、良いプログラムを書くことができるかということまでお話できればいいなあと、考えています。
プロフィール
okkez
社会人三年目。仕事に飽きると、Rubyでツールを作ります。どんなツールかは機会があれば、お話ししたいと思います。Rubyリファレンスマニュアル(るりま)のお手伝いをぼちぼちやっています。また、最近は関数型言語(Erlang, Haskell)を勉強中です。
サカイ
「いつになっても、Ruby初心者です。
今年最後の学生生活を学生という身分をフルに活用して満喫したいです!」
配布資料 & 演習課題解答例
print.pdf
slide.pdf
answer.pdf

「丸投げシリーズ: Ruby + Win32OLE + Adobe Illustrator」 by 志村さん

セッション概要
Ruby から Adobe Illustrator を操作して図や絵を書くことについて解説します。
マウスで図を書くのは難しいものです「座標なんて三角関数で計算すればいいのに。コンピュータだったら座標計算くらい機械がやれよ !」
Adobe Illustrator CS2 体験版
プロフィール
学生時代は京都に 15年くらいいました。今は印刷会社に勤める (Web系) プログラマーです。
ちょっと前のはなしです、折り紙の図が欲しいと頼まれました。後工程のイラストレーターさんやデザイナーさんのために、 Adobe Illustrator 形式のファイルが望ましいと言われました。
もう、Ruby でやるしかないと思いました。

「RubyKaigi2007レポート」 by 有志一同

セッション概要
RubyKaigi2007の様子を、参加者がレポートします。

「純粋関数型言語Ruby」 by 氏久

セッション概要
Ruby初心者に送る、純粋関数型言語Rubyの入門。Hello, Worldから遅延評価・部分適用まで。

「30分で分かる継続の使い方(仮)」 by yharaさん

プロフィール
yhara
京大マイコンクラブに所属する大学院生。
RubyとはC Magazineのスクリプト言語特集で出合って以来6年目の付き合いとなる。
代表作はたぶんRuby/SDLスターターキット

懇親会

日時
2007 年 6 月 16 日 (土) 18:00〜(予定)
場所
酔心 京都駅前店
会費
およそ社会人:学生 = 2:1 の比率でご負担ください。前回は 3500 円、2000 円でした。
締切
2007 年 6 月 15 日 (金) 17:00 まで

ログ

丸投げシリーズ: Ruby + WIN32OLE + Illustrator by 志村さん

Illustratorでプレゼン作成中、大きい文字が出ては消えていく。

実例
豆本。
実物をまわす。
自己紹介
欧文印刷という会社でプログラマ。
印刷受発注、自動組版など。
作品紹介
はじまり
早川文庫JA、北野勇作著「どうぶつ図鑑」
動物折り紙の展開図がほしい、後工程にデザイナさんがかかわるので、Illustrator形式でほしいといわれた。
Illustratorがスクリプトで操作できる。Rubyでやるしかない。
コードの説明
 @illustrator = WIN32OLE.connect Application
 @document = @illustrator.Documents.Add AiDocument
 @magenta = WIN32OLE.new CMYKColor
 @magenta.Cyan, @magenta.Magenta ... = 0, 100, ...
 @document.Layers.Add.Name = ...
  • Adobe系のアプリケーションはWIN32OLE.connectでつなげるのがよい。
    • Illustrator を WIN32OLE.new で生成すると、95-Me系ではちゃんと生成できなかったり、NT系では可視性に問題が出たりする。
  • 文字のスタイルを指定するときは、TextRangeというオブジェクトを使用する(ver10)。(CS以降では (TextRange.)CaracterAttributes)
  • RasterImage?で画像を貼り付けられる。
   if $0 == __FILE__
  • ActiveScriptRubyはテンポラリファイルを作って実行するので、↑が使えないらしい。
    • デスクトップやどこかでの、右クリックからの Run...起動は、cscript や wscript 経由の起動になり、__FILE__ が RSC\h+.tmp.rb みたいな感じになります。ダブルクリックや Open での起動、コマンドラインからの起動なら従来通りで大丈夫と思います。
MyBooks.jp
ブログを本にするサービス。
http://mybooks.jp/
WebObjects+Java
豆本サービスを企画中。
参考サイト
もっとデモ
質疑応答
Macでも使いたい
RubyOSA: Ruby/AppleEvent BridgeとかJavaScriptとか。
JavaScriptだと、OS周りの機能が使えない。
変なプロセスが残ったりしない?
手で消したり、コマンドラインツールが増えたのでそれを使えばよい?

Tasklist: ローカル コンピュータまたはリモート コンピュータのどちらかで実行されているすべてのタスクについて、アプリケーションとサービスの一覧をプロセス ID (PID) と共に表示します。

参考資料
プレゼンソース
RubyOleIllustrator.rb
  1. 当日の物とは若干の修正があります
    • 「I」と「l」の見分けがつくようなフォントにしました
      • その際、字詰めや表現等若干の修正をしています、ロジックも
  2. 実行はなかなか難しいと思います、ごめんなさい
    • 指定のフォントがないとエラーになり、実行が止まります
    • イメージファイルはローカルパスにしています
      • きっとファイルがなくてエラーになり、実行が止まります
    • ver 10.0.3 での実行しか確認していません
      1. CS2 体験版でも実行できるように改造しようかと思ったんですが、現在のコードでは両対応(フォントも大変) は難しいです、あきらめました。御免なさい。
      2. CS版でも駄目だと思います

30分20分で分かる継続の使い方」 by yharaさん

時間の都合で30分から20分に短縮

内容
  • 継続って何?
  • 継続はすごい
  • 継続は危ない
継続(continuation, callcc)って何?
プログラムは順次実行、分岐、繰り返しで構成されている。
rubyは上記3つに加えてワープがある→このワープを実現するのがcallcc
ゲームで考えてみよう
class Matsumotoというクラスがあるとする(Matsumotoは勇者の名前です)
  • 王様と話すとセーブ出来る
  • 死亡→セーブポイントから再開
このセーブ機能を実現するのがcallcc
callccでセーブ
cc.callでロード
 $cc = nil

 def test
   print 2
   callcc{|cc| $cc=cc}
   print 3
   print 4
 end

 print 1
 test
 $cc.call
  • callcc{|cc| $cc=cc}で$ccに状態を保存(ccはContinuationクラスのインスタンス)
  • $cc.callでcallccの次の行からを実行
  • call時に引数を指定した場合、再開時のcallccの戻り値になる。
継続はすごい
3重ループを一発で脱出出来る
 callcc{|cc|
        for
          for
           for
             cc.call
           end
         end
       end
       }
  • throw,catchでも出来てしまうけど
メソッドを少しずつ実行する
callccが呼ばれた時点でセーブしてreturn
次回呼出時にセーブしたところから再開
全探索を簡単に
  • Baker, Cooper, Fletcher, MillerとSmithは五階建てアパートの異なる階に住んでいる。
  • Bakerは最上階に住むのではない。
  • Cooperは最下階に住むのではない。
  • Fletcherは最上階にも最下階にも住むのではない。
  • MillerはCooperより上の階に住んでいる。
  • SmithはFletcherの隣の階に住むのではない。
  • FletcherはCooperの隣の階に住むのではない。
それぞれはどの階に住んでいるか。
    • 元はSICPらしい
その他
generator.rb
ppp
    • pデバッグを自動化する
    • 1.8.5以降では動かない
継承は危ない
バグの温床になる
まとめ
継続を使うとスパゲッテイコードが簡単に書ける
処理は強力
他人に読めないコードになりやすい
楽しい、けど思いもよらないバグを生成
将来なくなるかも…

コメント

(comment plugin is disabled).

反応リンク集

先週の土曜日参加しましたけど、カエルでした。 猫もありましたけど、やっぱり蛙ですよね。 まあ勉強会の後の懇親会、気づくと回りがお酒飲まない人ばっかりみたいで、 一人でビール開けてました。 そのため家帰ると、直ぐバタンで床に寝てしまっていて一寸風邪気味*A* 教

「Ruby 初心者向けレッスン第13回」の演習問題は以下の通り。 色々...

Ruby-15/Rails-8 と 2 度ほどスキップしたけど、RubyKaigi2007 で愛とパワーをもらったので、今回は参加。

 やっぱり勉強会でもMDDネタは受けていました。まじろう最強。 ・・・てか、アレ、マジでやるんですか?(謎)

第16回Ruby勉強会にいってきました。数少ない、うちがRubyistになる瞬間です。でも今回は割とPerlも書いてました。ごめんなさい。 だいぶメンバーも見慣れた感じになってきましたね。いろいろと情報交換や議論が行われるだけでなく、いろんなイベントもここのメンバーの中か

 第16回 Ruby関西に行ってきた。  Ruby会議2007の話もあり、牛尾さ

Last modified:2011/07/17 23:19:05
Keyword(s):
References:[Ruby勉強会@関西]
This page is frozen.