GMTLLVM言語にて、フィボナッチ数列。GMT噂のMagLevを試してみた。GMT憧れシリーズ第二弾。Scalaの勉強でもしようかな、と思ってScalaの本を開いたら、Scalaでは無名関数を_(アンダースコア)を使って定義できるらしい。6]とか書きたいよね。定義しておくと、それが呼ばれてよしなにしてくれる。定義されているので、Rails使いにはおなじみだろう。される時に適当なProcを返すような何かを作ればよい。Scalaそうしてできたのがこれ。後に括弧が要ると思っていたがそんなことはなかったぜ。書けないけど、そう書きたい人はブロック使ってください。LazyCallのインスタンスを返し、受け取ったメッセージを引数と共に保存。はじいているのは、引数として渡される時にこの問い合わせが発生するので、それを無視するため。使えなくなると思う)to_proc内で、保存したメッセージを、procの引数に送り直している。その結果と置き換えている。ような表記が可能になる。_0は、_.[0]のエイリアス二夜にわたるProxyObject特集、いかがでしたでしょうか。同じものを意味しないそうです。閉じた本の続きに書いてあった。使うと、20倍くらい遅い。GMTHaskellにはMaybeモナドというのがあって、エラー処理をかなり適当な感じに書けてとても便利そう。これはすこし横着こういった記述を頻繁に使う必要があり、なんとかしたい。nilこういう風に書く事ができるようになって幸せ。途中のどこかで失敗すると、単にnilが返る。このように、包んだオブジェクトのフリをするオブジェクトを使う手法はRailsでは多用されていて、読んでみると割と楽しい。ProxyObjectとか呼ぶらしい。父「たぶん...」というような会話を想像してしまって、とても人間的。いうか、人がやっているのを目にすると、手を出したくなってくる。子供がプラモデル組み立てているのを見て「ちょっとお父さんにかしてみなさい」というタイプ。結局、前回の最短は23Bだったらしい。:)文字数を削るという共通の目的が、変数名から意味すら奪うのだろうか。20Bという噂はなんだったんだろう...反省を生かして、今回は、27Bまで縮んだところで寝かせておく。続きにあるのはお気に入りの答えだが、パー。いくつかの方針で使っている方法を組み合わせたら23Bになった。GMTInternetExplorerのテスト用に飼っている、VMWare上のWindowsに新たな使命が課せられた。携帯シミュレータでのテストだ。シミュレータは3キャリア分あって、操作方法も全部違うので、これからげんなりすることを思うとげんなりする。そこで、とりあえず、一発でreloadができるようにならないか方法を探してみた。いうのがあるらしいので、ダウンロードする。ページのリロードは、指定した名前のウィンドウを探して、F5キーを押すことで実現。これを、3キャリア分設定。(ソフトによってキーは違う)あっさりとできてしまった。キャプチャそれだけだと面白くないので、リロードした後、画像をキャプチャするようにした。IrfanViewには、起動オプションでアクティブなウィンドウの内容をキャプチャする機能があるらしいので、それを使う。起動オプションこんな感じ。Folders\Public\softbank.png"ウェブサーバさらに、プラグインを見てみると、WebServerというのがある。このプラグインを追加すると、指定したポートでHTTPサーバが起動し、指定したフォルダの内容が見られるようになる。いう文字列をつけてGETなどすると、同じ名前のイベントが発生して、アクションをトリガーできるようになるらしい。すると、リロードしてスクリーンショットが見られるようになった。(スクリーンショットが撮られるまでにはタイムラグがあるので、javascriptで定期的に画像をリロードする)ウェブサーバ機能はかなり便利。問題点リロードの終了を検知できないので、2秒待つ、みたいなことをしないといけない。アクティブなウィンドウをキャプチャするので、排他的にしか処理できない。GMTとあるchmファイルをWindowsで見ていて気がついたのだが、一つのキーワードに複数のドキュメントが割り当てられている場合がある。同じファイルを、Macで見ると、最初のコンテンツしか表示されない。そもそも、chmのインデックスは下記のような形式のドキュメントになっていて、chmの中の、chm.rbでこれをパースしているのだが、キーワードが複数のドキュメントに対応する場合が想定されていないようだ。value="cat_doc"></object>...普通の感覚ではこれを見ても一番上のキーワードが下の方まで有効だと思えないのだが...あと、目次(Topic)を読むところが、case-sensitiveになっていたので、目次が取れていなかった。圧縮に対応することによって無事50MBにまでスリム化することに成功する。使うリファレンス群はそもそもサイズが5MB程度なので、たいして役に立たないことに気がつき衝撃を受ける。化するが、今度はインデックスが大きすぎるためか検索がもたつくことに気付く。改造を施し、高速化することを決意したのだった。一回のインクリメンタル検索処理あたり、0.3~1秒程度かかっていたのが100倍くらい速くなった。体感では100倍とはわからないが、もたつきが感じられないレベルになった。インデックスの最初の二文字を抜き出してHashで持ち、検索文字列の最初の二文字でO(1)でしぼりこむ仕組み。高速化の恩恵は最初の数文字の偏りに大きく依存すると思うけど、そもそもそんな状況では、インクリメンタル検索が快適ではないので気にしないこと。宣言があると外部CSSが効かない(詳細不明)問題とか、ruby-cocoaでsize/countが無限再帰になる問題とか、Chmerとtypoする問題などにも嵌って大変だった。その後、バージョン違いがたくさん(railsだけで5個くらい)あったgemを削除しまくったので、普通に速くなってあんまり意味がない。300種類くらい入れて複数のバージョンを保持しているような人しか恩恵が得られないかも。ちなみに、もたつきが気になるというのは、僕のタイプ速度より速く、キーリピートより遅いくらい。GMT僕はあんまり携帯HTMLをいじらないけど、タイトルのような問題があるという話はよく聞く。CSSにはスコープの概念がないので、TinyMCEなどのWYSIWYGエディタを使っていると、Wordなどから<style>タグを含む断片が貼付けられて、ページ全体のスタイルに影響を与えてしまう、などといったことが起こる。いった問題への対応策として、CSSのインライン化が有効に働きそうなので、調べてみた。いったライブラリが存在しているらしい。我らが(?)Rubyはというと、(最近遊びでCSSParserを書いたので、なければ作ろうと思ってたけど)やっぱり存在していて、これが結構便利そう。CSSしかし、こんな名前で公開されても...。tamtamコードがドキュメント、とばかりに、主要な部分を読んでみた。red;"></div>"素晴らしい。:documentを使うことによって、HTML内の<style>タグの内容をそのまま使うこともできる。red;"></div>"スタイルを適用した後の余計なclass属性は、元から存在するclass名と衝突するかもしれない。バグなのか何なのか、スタイルを適用する前にclassを全部取りさってしまうので(僕の)望む動きとは違うようだ。適用されてない!携帯電話...携帯電話用に使う場合、<link>タグを認識する部分を自分で書かないといけない。...'よりも、bgcolor='...'が好まれるそうだ。CSSだけでは属性を指定するという使い方は出来ないので、その場合も独自に拡張する必要がありそうではある。APIなるものがあって、WiiリモコンとCanvasを使って色々できる。ふりをするコードを書いてみた。keyを押したままサーバを起動する。bookmaklet必要に応じてページの初期化処理を呼び出す。localhostに立てたRubyサーバに繋いで、JSON形式で受け取った情報を、javascriptの世界に渡しているだけです。テストSafariでしかテストしてない;;画質のテストのため、同じムービーをYoutubeにもアップロードしてみた。