冒険小説の傑作。 先の読めないストーリー展開。 二転、三転する目まぐるしい終盤にはくらくらしてしまった。
GridView なんぞを使うと、ほとんど、ぽとぺたでアプリができてしまうわけです。 ですが、そこから、ちょっとでも、はずれたことをしようとすると、途方にくれてしまいます。 更新処理をするときに、ロジックで生成した値で更新するスマートな方法もわかりません。 たとえば、更新者の列がテーブルにあるとしましょう。
更新者の列はGridViewに表示しない。
更新者の列の値は、更新する度に、Request.ServerVariable["REMOTE_USER"]を設定する。
ASP.NET初心者の私には、こんなことすら、どうすればいいのかわかりません。 その昔 Visual C++ 1.0なんかで、ダイアログアプリケーションを 作るのに苦労したときと同じような感じがしてならない今日この頃です。
Ruby 1.9 で test_win32ole_event.rbがエラーで失敗する理由がわかった。 が、どう対処すべきか、ちょっと悩む。 いや、修正の方法は、わかっているんだけど、どういう仕様にすべきか迷っている。 もうちょっと考えてみよう。
あとわからないのは、単独でテストしてもエラーにならなかったこと。 今は単独でテストしてもしっかりエラーになるのだが、その方がつじつまが合っている。 単独でテストしてエラーにならなかったのは、気のせいだろうか。
次のようなスクリプトがある場合、Ruby 1.8 では動作しますが、 Ruby 1.9 ではエラーになります。
require 'win32ole' def on_event STDERR.puts "Some Event Fired" end ie = WIN32OLE.new('InternetExplorer.Application') ev = WIN32OLE_EVENT.new(ie, 'DWebBrowserEvents') ev.on_event{ on_event } ie.visible = true ie.gohome
Ruby 1.9 では、
ev.rb:11: wrong number of arguments (3 for 0) (ArgumentError) from ev.rb:11
となります。
このエラーは非常にわかりにくいです。 エラーの意味は、
11行目で引数0のはずなのに3つの引数を渡しているよ。
というものです。
実際に11行目を見ると
ie.visible = true
となっています。 引数3つって何のことよ? と途方に暮れてしまうしかありません。
実は、これは、ie.visible = true が実行されたときに、DWebBrowserEventsのイベントが発生し、 ev.on_eventで定義されたブロックを、Win32OLEが呼び出します。 このときに、Win32OLEは発生したイベントに応じた引数を設定してからブロックを呼び出します。 ところが、ブロックの方は、引数を指定していない(0)ので、引数の数が合わなくてArgumentErrorになってしまうのです。
今は
ev.on_event{|*args| on_event}
と書けば、このエラーを回避することができます。
が、Win32OLE側ではどうすべきかというところで、悩んでいる訳です。
何もしないで現状のまま。
arityを使って引数の数を調べて、数が一致しなければ、もう少しわかりやすいメッセージにして、ArgumentErrorを発生させる。
arityを使って引数の数を調べて、数の分だけ引数を渡す。
選択肢は、こんなもんかなあと思う訳ですが...。 3はちょっとやり過ぎな気がするので、1か2かなあ...。
事情により、後半、ななめ読みになってしまったけど、一通り、読んだ。 へえ〜と思うところだとか、なるほどと思うところがあった。 今のところGreat Codeを書くための準備運動という感じ。 Vol 2では、もう少し実践的な話になってくるみたいなので期待。
Ruby 1.9 で
make test-all TESTS=win32ole
がtest_win32ole_event.rbでエラーで失敗するのは、どうしてだろうか。 test_win32ole_event.rb単独でテストするとエラーにならない。
rubycoさんがWin32OLEを使ってくれてます。 ちょっとドキドキしてしまいました。
めちゃくちゃアドホックな修正により [ruby-Bugs#3237] の対応をした。 とりあえず、
wordAppl = WIN32OLE.new('Word.Application') wordAppl.WordBasic.DisableAutoMacros(true)
でエラーが起きないようになった。 申し訳ないですが、こんなのWord前提でないとテストスクリプトは書けないです。
人間を一週間観察してその人間が死んでもいいかどうか判断する死神の連作短編集。 死神「千葉」のクールでとぼけた(本人は大真面目だが)キャラクターがいい味を出している。 死神に負けず劣らず、いい味出しているキャラクターの老女が登場する「死神対老女」が好み。
1.8では、2段階に分けてコミットした。 1.9でも同じ修正で大丈夫だろうということで、今回は一度にコミットした。
しばらく平仮名から遠ざかっていたら、平仮名の入力ができなくなってしまっている。 また、一から練習しなおし。
なんかポトペタで作っていくと、いわゆるプログラミング能力とは違う能力を求められているような気がする。 生産性は確かに高いのであるが、あっちこっち視点を動かさねばいけないように感じてどうにも馴染めない。 テキストエディタでソースコードだけ眺めていればいい古い世界とは違う。 同じものをテキストエディタでごりごり作れと言われても、それはそれで大変だろうと思う。 逆に、ポトペタの範囲で済むようなものであればいいのだが、 その範囲を越えようとすると、コードが表に見えない(ように感じる)分、 余計にしんどいんじゃないかと思う。
1.8系では、それなりに動くようになったと思う。 元々、動作しなかったSAPIを使うテストも追加しておいた。 XPでは、標準でインストールされるみたいだからテストも動くと思う。 2000だとSAPIをインストールする必要がある。 Speech SDK 5.1(SpeechSDK51.exe)をダウンロード してインストールすればテストできる。
どこをマウスでクリックして、どうすれば、欲しい結果が得られるのか、さっぱりわからない。 5分でできることに1日かかってしまいましたよ。 コードビハインドの世界は、難しい。 生産性が高いのは確かだけど、使い込なすには、バッド・ノウハウをいっぱい覚えなければならないような気がする。
1.8系のWin32OLEでPROPERTYPUTREFを(私の気分で)30%ぐらいまともに扱うように修正した。 残り70%の修正がちょっと面倒なのだが...。 1.9でも同じ問題があるので、実質15%ぐらいの修正が完了というところだ。
Excelを扱う必要があったので、ひさびさにWin32OLEを使った。
ひさしぶりに、1.8添付のWin32OLEのソースを眺める。 それにしても、Win32OLEがPROPERTYPUTREFをまともに扱っていない理由を思い出せない。 まずは、テストを書かないと。 テストには、Scripting.Dictionaryが使えそうだ。
2日分、まとめて。 参加されたみなさん、2日間おつかれ様でした。 感想など。
Rabbitを一度も使ったことがない癖にショッカー人形をもらった。
名札がはがきサイズで大きくて遠くからでもわかりやすいのはいい。
参加者全員に名札をくばり、名前を手書きしてもらうというアイディアはナイス。
名札が本当に、はがきなんだけど、誰に出せばいいのだろうか?
懇親会で何人かの方から、Win32OLE使ってるよと声をかけていただいた。ありがとうございます。
影舞は、バグトラッキングシステムの他、 進捗管理などにも使えるぐらいにカスタマイズ性に優れているとは知らなかった。
喜多さんに会えた。
立石さんに会えた。
なひさんに久し振りに会えた。
artonさんから、有用な情報をいただいた。
ふつケル写経会はペアプログラミングのように二人一組でやってるそうだ。
moriqさんのこの笑いは、そういうことだったのかと一人勝手に納得した。
ライトニングトークスの途中でテープ交換のために流れが途中で止まってしまったのは、ちょっと残念だった。
そして、最後にスタッフのみなさん、本当に本当にありがとうございました。
最近、この手のイベントに参加しても、何かやりたいという風な気持ちにならないのは、何故だろうか。 もう少し正確に言うと何かやりたいなと漠然と思うのだけど、 全然、行動に移さないのはなぜだろう...。
ただいま、ASP.NETプログラマ (レベル0)。 WMIを扱うクラスライブラリがあることを知った。 SNMPを扱うクラスライブラリって無いのかな。
インストールした。 Vine Linuxなので、 GHC 6.4.2のダウンロードのページから Generic Linux with glibc 2.3 をダウンロードした。
tar jxvf ghc-6.4.2-i386-unknown-linux.tar.bz2 cd ghc-6.4.2 ./configure make install
これで、『ふつうのHaskellプログラミング』をいつ手に入れても大丈夫。
ただいま、レッスン25。
インストールした。 Vine Linuxなので、 GHC 6.4.2のウンロードのージから Generic Linux with glibc 2.3をウンロードした。 tar jxvf ghc-6.4.2-i386-unknown-linux.tar.bz2 cd ghc-6.4.2 ./configure make install これで、ふつうのHaskellプログラングをいつてにいれてもだいじょう。
自分で、ruby-listで回答しておきながら、 忘れてしまってたので改めてメモ。
Excelだと
excel = WIN32OLE.connect('Excel.Application')
で起動しているExcelをつかまえられます。
でも、Internet Explorerは
ie = WIN32OLE.connect('InternetExplorer.Application')
でつかまりません。
つかまえるには、Shell.Applicationを使います。
app = WIN32OLE.new('Shell.Application') ie = nil app.windows.each do |w| # Ruby 1.9以降では、WIN32OLE#ole_obj_help よりも # WIN32OLE#ole_type を推奨します。 # if w.document.ole_type.name == 'DispHTMLDocument' if w.document.ole_obj_help.name == 'DispHTMLDocument' ie = w break end end puts ie.locationURL if ie
ここで、
if w.document.ole_obj_help.name == 'DispHTMLDocument'
と条件をつけているのは、IEに限定するためです。 これがないと、Explorerも対象になってしまいます。 ちなみに、Explorerの場合、w.document.ole_obj_help.name の値は IShellFolderViewDual となります。
これまで、名前がプログラムに登場しなかったので、あえて触れなかったのですが、 名前がでたのでひとことだけ。 コメンテータという立場で参加させていただくことになりました。
レッスン24をかいし。
これまで、なまえがプロラムにとうじょうしなかったので、 あえてふれなかったのですが、なまえがでたので、ひとことだけ。 コンータというたちばでさんかさせていただくことになりました。
終戦後のプリズン(戦犯収容所)内で起こった兵隊の中毒死事件。 フェアフィールドはプリズンの囚人貴島悟の協力を得て事件の謎を追う。
貴島の安楽椅子探偵ぶり、供述書に隠された真実、中毒死事件の真相など、ミステリマインドに溢れた小説。 戦争が無ければ、起こらなかった悲劇を描いているが、重苦しい雰囲気のない、読み応えのあるミステリに仕上がっている。
ただいま、レッスン23。
しゅうせんのリン(せんんしゅうようしょ)ないでおこったへいたいのちゅうどくしじけん。 フアフールドはリンのしゅうじんきじまさとるのきょうりょくをえてじけんのなをおう。 きじまのあんらくいすたんていり、きょうじゅつしょにかくされたしんじつ、 ちゅうどくしじけんのしんそうなど、スリマインドにあふれたしょうせつ。 せんそうがなければ、おこらなかったひげきをえがいているが、おもくるしいふんいきのない、 よみたえのあるスリにしあがっている。
前田さんの日記で知った本。 この本の著者が、『仕事を成し遂げる技術』の著者であることを知って気になっていた。 『仕事を成し遂げる技術』は、読みにくかったので、読もうかどうしようか迷っていた。 そんな今日この頃、やまだあきらさんの日記でも取り上げられているのを読んだ。 どうやら、この本の方が、読み易いみたい。 読む方に気持ちが傾いた。
ただいま、レっスン22。
まえださんの日きでしったほん。 このほんのちょしゃが、しとをなしとげるじゅつのちょしゃであることをしって気になっていた。 しとをなしとげるじゅつは、よみにくかったので、よもうかどうしようかまよっていた。 そんなきょうこのろ、やまだあきらさんの日きでもとりあげられているのをよんだ。 どうやら、このほんのほうが、よみやすいみたい。 よむほうにきもちがかたむいた。 にゅうりょくみスがあいかわらずおおい。 SKKでにゅうりょくしたほうがはるかにはやい。
推理小説というより、探偵小説といった方がしっくりくる連作短編集。 森江春策ファンには一読をオススメします。
最近、「本を読むと他のことをする暇がない」という話を聞いた。 また、「普段何やってるんですか? 読書?」などと聞かれたりもした。 本を読んでいる分、他のことに時間を割けないことも事実。 そこで、図書館で借りるのは一度に一冊というルールを自分に課してみることにした。 近所の図書館は、貸出数に制限なしというとんでもない無法ルールを採用している。 この誘惑に勝つことができるかどうかが勝負の分れ目である。
さいきん、「ほんをよむとほかのことをするひまがない」というはなしをきいた。 また、「ふだんなにやってるんですかどくしょ」などときかれたりもした。 ほんをよんでいるん、ほかのことに時かんをさけないのもじじつ。 そこで、としょかんでかりるのはいちどにいっさつというルールをじんにかしてみることにした。 きんじょのとしょかんは、かしだしすうにせいげんなしというとんでもないむほうルールをさいようしている。 このゆうわくにかつことができるかどうかがしょうのわかれめである。