著作一覧 |
ruby-list:42595の小林さん作成のパッチを適用しました。
Crafさんの情報に基づき、スタートメニューへの登録位置を変更しました。
1.8.4.4までのスタートメニューの登録を削除するために、インストール前に現在インストールしているASRのアンインストールを行ってください。
小林さんとCrafさんに感謝します。
コトリ。
名前はいいかも。マルチプロジェクト対応。Railsベース。
2006年4月までは生きている(だから多分まだ生きているだろうと思う)。ドキュメント少な過ぎ。英語で書くの面倒だからか、それともタールボールに含まれてるかどっちか。
コラボア。
結構、できている見た目。不安定とか書いてあるけど。Subversionバインディングあり。2006年1月までの生存を確認。これもRailsベース。
(8/2追加)
ちょっと方向性が違うが関連するかな。
……
なんか全然別のことを思ったが、Wikiエンジンは結構あるし(だから既に利用しているWikiエンジンを使えるとハッピー)、BTSは少ないけど好みとかありそうな気もするし(実質、影舞しかないわけだが、ここ作る人もいても良いわけだし)、SubversionはSubversionだから良いとして、あ、QuickSilver相当も必要か、で、このへんを統合するのが欲しいな。
RubyGemsに対応させてみた。機能的には変わらず。
それほど役に立たないメモ。例外的なことが多いのと、わざわざ日本語にするまでもなかったりしたので、単なるメモになってしまった。
mswin32-gemは、MSVCRT.DLLとリンクしているので、One Click Installerコンパチだけど、VC7やVC8とはコンパチではない。
カキンコキン言い初めてすぐにPIOモードに落ちちゃうので買いに行く。
と思ったけど秋葉原は微妙に遠いので有楽町のビックカメラだ。
でバルクを見ると妙に高い。さらに良くみると安いのは展示してなくて表が出てるだけだった。
で、250Gが1万ちょっと。どうもASCII24で調べた価格より2000円くらい高いみたいだが、秋葉原の遠さとうざさを勘案して購入。
この価格だと1TBで5万円弱か。未知の世界だ。
で、さらに書籍コーナーでRails本が5種類平積みになってるのを見るとそれはそれで未知の世界のような気もしたり。
(追記) 4冊はこれ。残り1冊はAWDR
ライド・オン・Rails Ruby on Railsを徹底攻略(吉田 和弘)
日本人によるRails第一弾。
読んでないけど、著者のもりきゅうさんは実案件でRailsを利用している(RubyKaigiセッション)わけで、そのあたりの経験から来るノウハウが含まれているはず。
共著者の馬場さん(田中ばびえという名前なのかな?)はDHHへブーンを教えたある意味師匠。
参考:るびまの連載
これは購入してそこそこ読んだ。
会話型技術書と言えば、
を思い出すけど時代が変わったので師匠と弟子の会話ではなく、アジャイルジェダイのマスターとパダワンという感じかな。
竹内本(研究所や大学の雰囲気を再現ということらしい)とある意味同じで、アジャイル開発の雰囲気を再現していることから、一人で開発してる人や非アジャイルな環境にいる人に対して、こっちの世界へおいでよという楽しげな雰囲気が漂う。
ちなみに著者のかずひこさんは世界で一番Rubyに詳しいNaClの中の人。
かんたんRuby on RailsでWebアプリケーション開発(arton)
これは書いた。
動くアプリケーションを利用したチュートリアルとコード解説(RubyとRailsについて)(むかしむかしに雑誌や本に載ってるリストを打ち込んでいろいろ学んだこととかを思い出したり)。
HTTP、RDB、Ajax、Webサービスについての簡単な解説付き。
おまけの「はまりどころ解説」は経験に裏打ちされたエラーの場合の調査方法含めた説明。
Ruby on Rails入門優しいRailsの育て方(西 和則)
これは献本していただいて今日、届いた。ありがとうございます。アマゾンから購入した分はまだ届かない。ざざざーと読んだ。
著者の西(aka Maiha / aka ヽ( ・∀・)ノくまくまー)さんは、多分、オブジェクト指向なからくりが好きなんだろうなと思う。多分。その意味では、RubyとRailsは最高のおもちゃだな。(このあたりの感覚はdRubyの人なんかにも通じる気がする)
そのあたりを含めて、最初の部分が読み物としてもおもしろい(とは別にtakahashimさんが神と呼ぶ理由もわかる)。
それはそれとして、リファレンス部分の整理の仕方や、メソッドの動作例を示しているところも良い。
devに投げるのが良いのかな?
MSWIN32のarch名を以下のように決定する案。Gemを作っていて感じたが、MSWIN32一本は無理だ。
arch名(RUBY_PLATFORM) | Gem::Platform | dll |
---|---|---|
i386-mswin32 | Win32 | msvcrt.dll |
i386-mswin32-71 | Win32-71 | msvcr71.dll |
i386-mswin32-80 | Win32-80 | msvcr80.dll |
rake + rjb >>>>>>>>>>>>>>>>>>>>>> maven >> ant
いろいろいじってたらadminロールを失ってしまった。茫然。
support依頼の場所がなかなかわからなかったりしたが、ようやく見つける。
で、検索するとなんか週2〜3人はそういうおっちょこちょいがいるとか書いてあったり。
へこんだ。
#教訓: プロジェクトを作ったら自分のロールは絶対に変えてはならない。
ぼつりぼつりと晩飯食べるときに読み進めている。
最初は、覚悟していた以上になんじゃこりゃだった。
それほど興味と動機がなければ、東洋かぶれの似非タオイストとして捨ててしまうところだ。というのも小川環樹でなんども読み返してるから別に老子の教えを知りたいわけじゃない。
(それに、老子より荘子と韓非子のほうが好きだ)
書き方も同じような感じ。
まずテーゼ。次にそのテーゼを導くにいたった考察。
しかし、荘子や韓非子がテーゼと考察がきわめてスムーズにつながり整合性があり、しかもそれが複数の事例で示されることによるパターン性があることから生じる説得力を持つのに対して、老子はいささかもやもやしている(というか、テーゼしか無い)。それ以上にアレグザンダーのは感覚的だ(でも、経世の書ではなく、まさに感覚の世界=究極的には居心地の良さが追求されているのだから、それはしょうがないのだが)。
つまり無名の質ってのは、不変の質の言い換えであり、道だということだろ、おっさん。
道のいう可きは、常の道に非ず。名の名づく可きは、常の名に非ず。名無きは、天地の始めにして、名有るは、万物の母なり。――老子
母はしょせん産み出すものであり、本質=そこに確かに最初からあるものは、無名のものである、と。
というわけで、テーゼに対応する太字のところだけ拾い読みをしてたのだが、突然、視界が晴れるようなところに行き当たった。
それはパターンは要素ではなく、要素の組み合わせ=構造だとした箇所だ。すごく納得した。パターンには名前がついている。たとえばデザインパターンだとシングルトンとかだ。名前がついているからそれは要素に見えなくもない。しかし実際にはそれは構造を示す。あたりまえだけど、なんとなく見失っていたようだ。
斉藤さんのところから引っ張ってきた1枚。
思い起こしてみれば、アズテクキャメラとかスミスとかあのあたりから音楽を聴かなくなってきたのだった。だからこれが大ヒットを飛ばしたとか書いてあるライナー読んでてもまったくピンと来ない。
理由はわかっていて、あの連中の音色の単純さに耐えられなかったからだ(僕の音楽の源流は後期ロマン派から新ウィーン学派+20世紀前半の東欧にあるわけだし)。
ビートもなければ、複雑な組み合わせもなく、ノイズもない。確かヤングマーブルジャイアントあたりはそれでも聴けてたような気もするが。
いずれにしても、80年代の後半はイアンカーティスを弔うためか、癒し=反動時代に入ったらしい。U2みたいなハードロックみたいな音楽か、さもなきゃアコースティックだ(ニューアカにかけてるんだろうが、ニューアコとか言ってたよな)。それはあたかも、60年代後期のサイケの多様性を、70年代になってカーペンターズが根こそぎ刈り取ってしまったみたいなもんだ(音楽が悪魔の産物だということは、カーペンターズの内情が見えてきた現在にあってもなお、やはりカーペンターズの音楽が魂を腑抜けにさせるほど美しいことからわかる。大嫌いだ)。20年周期かい?
でも、ぼーとしながら聴くには、こういうのっていいね、という話。
暑いし。
サタデーナイトライブで、エディマーフィーが「魂を売り渡した黒人」というコントをやっていた。
ナレーションが入る。「かってブラックミュージックといえば、ソウル、ソウル、ソウルでしたが、今のヤングは、その重要なソウルをやつらに売り渡してしまったのです。では、稀代のソウルセラーを紹介しましょう」
エディマーフィーがふにゃふにゃくねくね出てくる。
ピアノに向かい、体をくねらせながら、柔らかい素敵な声を出してカーペンターズを歌う(バカラックが作曲したやつだったかな)。
ライオネルリッチー。
Ahead of Time Dynamic Translation
JITとAOTって対語として捕らえて良いの? それともまったく関係なし?(ってこたないか。同じ分野の用語だけど対で考えることではない……というか、AOTだからといってJITが不要になるわけじゃないからやっぱり対語ではない。かな)
すると、3年後の自分達チームのためには、ドキュメントは書かなきゃならないってことになると思う。今、ここでは不要であったとしても。
#まあ、ドキュメントったっていろんな種類があるから必ずしもそうは言えないか。
RubyForge用のホームページを作った。http://rjb.rubyforge.org。
Hikiのmono cssをそのまま使わせてもらっているけど。
というか、ルビーとコーヒーカップに虹がかかっているアイコンを作ろうとしたが途中で挫折したので、なんかハートと良くわからないものだか、ヘッドフォンだかみたいなアイコンになってしまった。
苦労話って情熱的だとくどくてうざったいだけだが、全然ないと試行錯誤の経過がアウトプット(たとえば、試行錯誤そのものが、その手順や何が問題なのかと考えたかとか、対象の見方の角度の変え方とか、疑念に対する優先順位の付け方とか、それそのものが知見の塊――それが見当外れだった場合も含め――なので)されない可能性がある。
むしろ、成果が出た後に、正しい順序だけしか示さないことは、高速道路を走らせることでそれそのものには文句のつけようがないとしても、高速道路を建設するにあたってのノウハウは欠落してしまう。むしろ本当に必要なのはそっちかも知れないのに。
もちろん、何が求められているかは見極める必要はあるだろう。
純技術的見地の話が必要なのに、用地買収の苦労とかは不要だろう。逆に用地買収にあたっていかに地元のボスに話をつけるかとかいったコミュニケーション系が求められている場合もありえる。
苦労話というのは、知識や技術に対する人間系コンテキストと考えるとしっくりくるようだ。数学の証明には人間系コンテキストは通常不要と考えられる。特に証明する人にはそうだろう。実際にそうではないことは、数学系の「読み物」がすごくおもしろいことからわかる。むしろ本当に生活していて役に立つ知見はそちらから導かれたりするくらいだ。
それはイドラのインスタンスを明らかにする。
るびまのあれを読み返していて思い出したが、授業のコマ名は覚えていないけど、エラスムス、デカルト、ベーコンの3つ組の授業は細部しか覚えていないけどとても重要だったようだな、と感じる。
教科書を使わず、たしか痴愚神礼賛は話だけだったように記憶してるけど、デカルトは方法論序説、ベーコンは学問の進歩そのものを使った読み下しのような形式の授業だった。というか、その2冊は手元に残っているし。今になってみると読書会みたいな授業だったなと思う。しかも、カリキュラムとしては今になって思うと驚くほどうまく考えられている。最初にエラスムスを出すことで人文主義的な考えの重要性とおもしろさを示し、次に演繹法、そして帰納法へ進み、洞窟から外に出ようと教えてくれたわけだ。授業がおもしろくないわけがない。
(えーまじかよ。学問の進歩って売ってないのか? 今はどうやって授業してるんだろう。というかもう退官してるか)
2人でドライブの場面にびっくり。なんかとんでもない世界に突入したみたいだ。あの風景を全部作ってるとは信じ難い。
目だけが妙に2次元的なんだけどあれは意図的なのかな。もしあれが(ヘッドライト使うとかして)3次元的な表現だと気持ち悪いになってしまうのかも。
それはそれとしてシャーロットの贈り物の予告編。見に行くことになりそうだ。
OSFlash:オープンソースのフラッシュ関係のプロジェクト
Flash/JavaScript Integration Kitの使い方を解説してくれているページ。
MTASC:ActionScriptコンパイラ。(OCamlで書かれたコンシューマアプリケーションって初めて目にした)
今、よくわからないし、SDK調べるのも面倒なので、勘とAPIのつまみ食いで以下の手順で作っている(不可視フラッシュ)。
このやり方が唐変木なのは自覚しているので、もっとうまい(具体的にはRake一発で作れるような)方法を教えてください、えらい人。
obj = new MyFlashClass(param1, param2, param3); obj.start();
class MyFlashClass { function MyFlashClass(arg1, arg2, arg3) { .... } function start() { .... } }
mtasc -version 8 -swf myflash.swf myflashclass.as
問題点:手順的にParaFla!の工程がビルドスクリプトで処理できない。
→ 結局は、HTML(objectタグ)で指定されたパラメータのとり方を調べりゃ済むのかな?
mtac -main -header 0:0:0 foo.as -swf foo.swf
static function main(mc) { param1 = mc['param1'] // mcがobjectタグで指定されたswf ... }
定期的に消すとか何かしないとやっかいだなぁ。
現時点での理解。
アレグザンダーは、人々がそこに住むことで幸福になれる家、生き生きと暮らすことができる家、そういった建築をしたい、と考える。正しい。暮らしているだけで陰鬱になってこめかみに銃口を当てたくなるような家を作りたいと願うドクターキリコみたいな建築家ってのはいないだろう。
では、幸福とは何か? 生き生きと暮らすとは何か?
それに答えを出せなければ、そういう家を建てるなんてのは無理じゃないだろうか?
そこでいろんな家や街並みや都市や、そういったものを思い浮かべる。
影丸は、刑場に横たえられている。日差しが心地よく、耳元を羽虫がかすかな音を立ててかすめ飛ぶ。静寂。すべては幻の如く時だけが流れて行く。死を前にして悔いることなく安らぎがある。
この情景においてかもし出される幸福感には、日差しという要素だけでは足りない。羽虫の音だけでもだめ。静寂には意味はない。まして刑場であるということだけを取り出せばすべてはぶちこわしになる。あくまでもこれらの要素のすべてが合わさってひとつの幸福感というものが生み出される。
窓だけではなく、椅子だけではなく、カーテンだけではなく、壁の色だけではない。
開け放たれた窓から柔らかい風が部屋の中に入り込む。木漏れ陽が生み出す複雑な影が白い壁にまだら模様を作り、風によって細かな揺らぎを壁の上に作り出している。椅子は日差しをはずした場所、でも窓からの風を感じることができる位置に置かれている。外からは遠くのほうで子供が遊ぶ声が聞えて来る。
個々の要素には意味はなく、組み合わさってある時間、ある位置におかれたときに初めて意味が生まれてくる。その組み合わせによって生み出されたものによって人々は幸せになったり不快になったりする。
そういった雰囲気、生活のコンテキスト、を表現するための言語、それが必要だとアレグザンダーは考える。
それは数値化できるものではない。それはカタログ化することはできない。でも、それを言葉として、表現可能な何かとしない限り、建築家と建て主が意思の疎通を図ることはできない。それができなければ、住んでいる人間が人間として生き生きと暮らすことができるものを作ることはできないのではないか。
パターンランゲージとは、そのコンテキストを示す組み合わせを意思の疎通のための道具とするために言語化したものだ。
たとえば以下の引用もまたパターンランゲージと考えられる。
もしも私が家をたてたなら 小さな家を建てたでしょう
大きな窓と小さなドアーと 部屋には古い暖炉があるのよ
真赤なバラと白いパンジー
それは専門用語や基盤となる知識をスキップして表層にあらわれた構造を示すことで、直接の利用者の意図や希望を明らかにする。細部や構成要素に気を取られると、全体の雰囲気は見えなくなる。それを避けるためには、おおざっぱで雰囲気だけが伝わる、専門家が利用するのとはまったく異なる用語が必要となる。
残念ながら、こういった試みは失敗するのではないかと思える。容易にバベルの塔に、極端にデフォルメされた細部の組み合わせによって生み出されるマニエリスムに、陥りそうだからだ。それを避けるには、常に結果とそのフィードバックによって対話的に漸進的に設計していかなければならないだろう。
でも、それが成功すれば得られる満足はとても大きなものになることも容易に想像できる。
etoさんが喝破したとおり、パターンランゲージはXPのオリジンだろう。
#くだらないことを書いてぶちこわし:お客様は神様だけど、神は細部には宿れない。
死んでしまった。
REALFORCEのふにふに感っていいなぁ。としみじみ。
で、以前から気づいていたが、10キーの部分って不要だな。
一昔以上前の机なのでキーボードを乗せる台みたいなのがスライドして出てくるのだが、フルキーボード乗せるとマウス用に少ししか幅が残らない。モニターが20インチになったんでちょっと辛い。
というわけでこれ買った。2台目だ。しかし、最初に買ったやつのおまけについていたレストパッド(? リストパッド? リストレストパッド? なんだろう――パームレストか!)が当然のようにフルキーボードサイズあるわけで、しかも左側のやつが肌触りが悪い気持ち悪い素材(おかげで手首を付けずに打つ良い習慣がついてしまった)で、右が気持ちよい合成皮革だもんで、どうにも10キー無しモデルと相性が悪い。というわけでまだお蔵入りしているのであった(もっともキーボードは消耗品だから今使ってるのが潰れたら使うことになるので、それはそれでOKと)。
難しいのではなく、わかったつもりで調べずに着手するのが悪い。
VB厨と同じ道を歩んでたわけだ。気づくまで無駄なことをした。
というわけでこれからまじめに仕様を読む。
自戒のためにだめだめだったコード(をまとめたもの)
class WebPipe { static var pipe : WebPipe; var socket : XMLSocket; function WebPipe(host, port) { // Create new XMLSocket object socket = new XMLSocket(); socket.onConnect = newConnection; socket.onXML = newXML; socket.onClose = endConnection; socket.connect(host, port); } function newConnection(success:Boolean) { if (success) { socket.send('start to service yoro'); // socketがundefinedなのでここで死ぬ getURL("javascript:flashConnected()"); } else { getURL("javascript:flashErrorConnecting()"); } } ... static function main(mc) { pipe = new WebPipe(mc['host'], mc['port']); } }
#うむ、リファレンスを読んでもわからないが、コールバックされた時はthisが保存されていないということでFAなのかな? というか.NETのデリゲートはつくづくすばらしい。
なぜ、「擬人化白書たん」に自らがなろうとしないんだろう?
OS Xは何が違うんだろう? (btがやたら深いということと、requireしたスクリプトを-rで指定せずにirb内でrequireすると問題なしということから、スタックを掘りすぎてなにか良からぬことがおきてるのかな、とも思うが、memcmpにアドレス0を与えたというのが謎)
また、admin権限を失ってしまった……orz
私はヘルメスの鳩
沖縄料理の店で飯食ってたら、わたしはみなみかぜ、よるをだきしめる、というような歌が流れてきて、なにか感じるところがあった。
が、誰の曲かわからない。検索するとレミオロメンというのは出てくるが野郎トリオらしいが、女の声だった。
60年か。ここまで来るにはそのくらいの歳月が必要だったということかな。
突然とうとうと状況を分析し思いのたけを話し出すというスタイルは何か元になるデータに基づいているんだろうか。だとしたら、例のあれもさもありなんと思わざるを得ない。
すぐれた歴史物語であると同時に、それだけに強い真実味を感じさせてくれる作品。確かに、ソクロフは天才ともてはやされた(今はどうだか知らない)ことはある。が、最初の時点の画家の映画の予告編があまりにタルコフスキーみたいで(=長くて退屈)敬遠してしまったのだが、実は大きな間違いだったかも。
#しかし、映画というのは本当に優れて政治的な宣伝手段で、この映画をみて昭和天皇のことを好きにならない人ってのはちょっと考えにくい。あまり旧左翼的な立場からの言及がない(まあ気づいてないというだけかも知れないけど)のは、まさにそういうことなんじゃなかろうか。ここに描かれた真実味あふれる天皇像は本当に弱々しくしかし毅然としていて、しかも自らの責任を十二分に理解していてしかもそれをきちんと果たそうとしている(まさに人間のありようである)。
#大正13年ってそんなに重要な事件だったのか? という疑問。と書いてからリンク先を読むとまさにそう書いてあったり。良く調べてるわ、あたりまえか。(この点をクローズアップすると愚かな結論になるわけで、太平洋戦争と日中戦争はきちんと分けて考える必要がある。この映画の主人公がどのように関わっているかということとは切り離して)
#予告編が蟻の兵隊というのが示唆的で、かっての日本の一番上と一番下の苦衷か。
#なんとなく見に行く人へのヒント。パトスはある意味で地獄の底だから、並んで待つのには向いていない。必ず初回(11:00の回が妥当)の1時間以上前に行くか、ぴあリザーブシートを利用すること。信じられないほど混んでいる。10:00に行って正解だった。
(追記:2007/9/3 購入予定)
す
で、後からPCで入れなおそうと思ってキーワードを入れたつもりが、既になんのことかわからなくなっているわな。
Map map = Collections.synchronizedMap(new HashMap());
OK?
でもってスナップショットが必要になったとする。
ObjectOutputStream otm = null; try { otm = new ObjectOutputStream(new FileOutputStream("map.snapshot")); otm.writeObject(map); } catch (IOException e) { log(e); } finally { if (otm != null) { try { otm.close(); } catch (IOException e) { log(e); } }
このコードは、J2SE 1.4.2 ではまずい。でも、J2SE 1.5.0 では問題ない。
なぜか? その理由を答えよ。次に最もシンプルなワークアラウンドを示せ。
Xmingが気に入っている。まあ、面倒なので放置してるとこや、多少我慢してるとこもないわけじゃないけど。でも、おおむねOK。
でも、問題がある。
自分のとこでは、Xmingからssh.exe使ってサーバーとかに繋いでいるんだが、会社のWindowsマシンにXming入れてはたと気づいた。
ssh.exeってどこにあるんだ?
というわけでいろいろssh.exeを探したのだが、ほとんどのssh.exeはユーザーIDを-lで指定するようになっている。でも、XmingはユーザーID@ホスト名の形式でコマンドラインパラメータを設定するからそれでは動かない。
で、結局、Cygwin版のやつならOKとわかったのだが、不思議なのは家マシンのssh.exeだ。Cygwin版じゃないからだ。どこから、いつ入手したんだろう?
言葉の重みか、はたまた伝統の重みか、それとも社会的抑圧か。
重い。
漬け物石=>塩漬け=>放置という意味だったり。
#キャッシュがきくのか、サクサク表示されるようになったぞ。
過去の自分の文章に手を入れていると、どうしてこういう書き方をしたのか、頭の中にたくさんの疑問符が湧き上がってくる。
よくみられるのが、こんなフレーズ: すなわちAということはBということです。
「ということ」ってなんだ? なぜ、「すなわちAはBです」としなかったんだろう?
「行ってみましょう」→「行いましょう」
いや、そもそも「説明を行います」→「説明します」
リズムの問題から1拍入ることはあるのだが、それにしても多い。頻繁に付点が入る。ターンタタン。4拍子。なぜ、タンタンと2拍子でやらないのだろうか。
マーティン、血を吸う少年。じゃないけれど。
丁寧ってことは重ねるってことだ。
だからかも。
でも、重ね過ぎだ。あれだ、
真景は神経のこと。重ね過ぎやの鬼子母神。
「音楽」「音楽」もっと「音楽」。それは「音楽」。心地良い音色。いい加減な分類。
#5時間ぶっ通しでやったのか? すげえぞ歌丸。さすが日本のリベット、日本の1900年だけのことはある。誰も言ってないけど。というか、圓朝21歳の時の作品なのか。モーツァルトがドンジョバンニを創ったのが31歳、先立つこと10年、おそるべき早熟の天才だ。
XMLSocketは、/crossdomain.xml をGETリクエスト(Accept: */*)で指定したポートへ読みに来る。
が、無視しても(見た目の振る舞いは)問題ない。
なので、独自サーバー作る場合は、読み捨てしないと引っかかる。あと、リクエストの最後に1バイトの\0が付く(改行の後)。
したがって、s = sock.gets した場合、最初の期待する独自メッセージの先頭には\0が付いていることに注意。
検索語の入れ方が悪いのかなぁ? でもないって考えにくいんだけどなぁ。
というわけで臆面もなく「おっす!おら600!」
たすけてー
#もちろんたすけはいらないというか、やつが出てきたら誰も助けることは不可能なのであった。ちなみに、おっす!ORA-0059はあったが、それは語呂だけはあってるけどこれっぽっちも強くなさそうだ(消すとか分身させるとかどうとでもなるじゃん)。
「今入会いただくと、その日から使える特典がわっさわっさ」
と書いてあれば、入会したその日から使える、という意味だと思うと思うんだけど。
たとえば、デパートとかでクレジットカードの登録用のブースが出てて、その日からご利用いただけます、とか書いてあるのと同じ意味。
デルでメモリー(思い出)買おうと思ったけど、安い買い物じゃない。クーポンないかなと思って見たけど周辺機器とかのは無いわけで。
でも、こんなページ発見。
Eメール会員に登録すると、その日からオンラインストアで使えるお得なディスカウントクーポンがもらえます!!(※)
で、入会した。
ら、メールが届いた。さてクーポン……が無い。
かわりに
E-メール配信サービスへご登録をいただき、誠にありがとうございます。約1週間後より、クーポン、新製品、キャンペーンなどのお得な情報をお届けいたします。
とか書いてあるじゃん。
「その日から」ってどういう意味だ? もしかして「クーポンが届いたその日から使える」という意味なのか? (でもそれは当然であってわざわざうたうようなことじゃないと思うんだが)
「、」が息継ぎのための読点ではなく、文脈の区切りを示してるのか?
というわけで、なんかすごくせこい詐話に引っかかった気分だ。
ここでの読みやすさとは、文章のことではない。
名前のことだ。名前重要とは違う。あくまでも、読みやすさ、声に出しやすさということ。
たとえば、SCSIは読みやすくない。
「こないだエスシーエスアイのディスクを買っちゃってさー」
「ぷげら」
とか、
「こないだシッシーのディスクを買っちゃってさー」
「ぷげら」
で、普通は「ぷげら」という反応を避けようとするものだ。だから、そういう反応が返る可能性がある言葉は口に出さない。人口に膾炙しなければそんなものは広く広まらないトートロジー。
そのあたりが、SOAやYAMLやXAML、Python、DIあたりの普及の阻害要因になる。DIって、簡単そうだけど2文字しかないからディーなのか、ディーアイなのかそれともSCSIみたく想像もつかない読み方するのかわかりにくい。
母音が入ると敷居が高くなる気がする。ローマ字読みしてもよいやらいけないやら。PILはみんなピルピル言ってたけどジョンライドンがピーアイエルと発音してるとわかった瞬間から人気が下降した。口に出しにくい言葉に変わってしまったからだ。
そこでXML。どうみてもエックスエムエルで、外人と話していてもエックスエムエル(とカタカナ表記可能)なエックスエムエル。正々堂々と口に出せる良い言葉。
社長、これならばっちりです。
あと英字+日本字というのはいまいちマーケティング的にはやらないような気がするな。それに加えて末尾が「式」ってうさんくささ丸出しになる。〜式、というとイカサマ師っぽい。(メソッドなのかエクスプレッションなのかは字面だけからはわからないわけで)
とか漠然と思ったわけで、その漠然さが、重要なのであろうと。
P.144で、なぜread_attributeと記述しているかと質問を受けたのだけど、即答できなかった。で、なぜそう書いたかあらためて考えてみた。
class Item < ActiveRecord::Base def foo x = 3 end def bar puts "#{x}" end end
上のItemでxが属性(itemsテーブルのフィールド)だとすると、xへ代入しようとしているメソッドfooはバグ、xの内容を読み出そうとしているbarは想定どおりに動く。
というのはfooの場合、Rubyはxをローカル変数の宣言とみなす。そのため、3はフィールドxには代入されず、ローカル変数xに代入されるだけとなる。したがってこのメソッドは実行時にエラーにはならないが想定外の動作となる。
barの場合、xという変数も定義済みメソッドも見つからないのでActiveRecord::Base#method_missingを呼び出す。それによってActiveRecordがフィールドxの内容を返す。
したがって、fooを正しくフィールドxへの設定としたければ次のようにwrite_attributeメソッドを呼び出す必要がある。
class Item < ActiveRecord::Base def foo write_attribute(:x, 3) end def bar puts "#{x}" end end
これで期待通りに動く。でも、なんかbarのすわりが悪く感じる。多分、fooとの対称性が悪いからだと思う。
class Item < ActiveRecord::Base def foo write_attribute(:x, 3) end def bar puts "#{read_attribute(:x)}" end end
これで落ち着いた。
もうひとつ安全面からの理由もある。
次のように書くと最悪の事態となるからだ。
def baz x = 3 ... puts "#{x}" end
最初のx = 3でローカル変数xが宣言され3が設定される。そのため、最後の行は、ローカル変数xの内容が読み出されて出力される。しかしフィールドにはまったく設定されない。
エラーにもならず、デバッグ用の出力も正しい値が表示されている。しかしフィールドには未設定。これは最悪だ。
def baz x = 3 #ついこう書いてしまった ... puts "#{read_attribute(:x)}" end
これだと、フィールドxがnilあるいは3の設定前の現在の値の出力となる。x = 3のバグに気づく可能性が高くなる。
write_attributeとアクセサ(実際にはmethod_missingだが)の混在で書くよりも、ActiveRecordのメソッド内ではフィールドの読み書きには必ず*_attributeを利用することで統一したほうが良いと思う。*_attributeで記述するという単一の思考方法(DRY)で済むからだ。
したがって
def baz write_attribute(:x, 3) ... puts "#{read_attribute(:x)}" end
ということを考えたようだ。
気をつけよ! ここより先へ進むものは眉に唾して臨まなければならぬ
追加すると次の書き方は堅実だがActiveRecord流儀ではないと思う。したがって勧められない。追記:不安感も拭えない。
class Item < ActiveRecord::Base def x read_attribute(:x) end def x=(v) write_attribute(:x, v) end ... end
もっとも数の問題もあるので、100回read_attributeと書くのであれば、アクセサメソッドを定義したほうが良いかも(*_attribute記述の重複を避けるか、*_attribute以外のアクセス方法の存在という方法論の重複を避けるか、どっちの重複を避けるかの判断は好みだと思うので「かも」)知れない。
追記:self.x = という書き方は嫌いなのでそれはやらない。
すでに「普通」でも「ふつう」でも使うことがないカタカナのような気がするが、ねじまき鳥アクロニム。
高岡さんから教わったAcronymsが結構おもしろかったので簡単に紹介。
acronymとは、ギリシャ語のacroとonymから作られた言葉。acroは山頂、onymは名前、で、頭文字から作られた「発音可能な」名前。
発音可能性重要!
なぜアクロニムを使うんだろうか?
僕たちはすぐ間違える。株式会社フーバーなのか、フーバー株式会社なのか。夜空に輝く星たちなのか、輝く夜空の星たちなのか。
だから、厳密性が要求される言葉、つまり科学、技術、政治なんかの用語とか団体名とかを、会話の中で間違えずに処理できるようにしたいわけだ。
だから声に出せる短い単語にそういうのをしてしまう。これで解決だ。
だからかっこいいアクロニムは必須だ。UKの科学団体なんか、アクロニム抜きの提案をそもそも受け付けないくらいだ。
ってことは、何かプロジェクトを立ち上げるには、かっこいいアクロニムを付けなきゃならないってこと。これって、しっぽが犬を振るのたぐいだよね(UKでは、本末転倒のことをthe tail wagging the dogと表現する)。
これは典型的なYABAコンパチ問題だ。これ最強。YABAってのはYet Another Bloody Acronymのアクロニム。いかしたアクロニムを付けるなんてのはばかばかしくもWOMBAT(Waste Of Money, Brains and Time)。
真のアクロニムは全部頭文字でできてなきゃならないけど(NATOとかNORADとか)、でもそれと同時に単一の名詞として振舞えなきゃならないかも。てことでバクロニムにすると余分な文字も必要になったり。
大抵の場合は、このあたりは微妙。EBCDIC(Extended Binary Coded Decimal Interchange Code)とかどうだろう? 発音できるよエビスディク。だけど、EBCDICで1つの単語として覚えちゃってるよね。
で、TLA、ETLA、バクロニム、リカーシブアクロニムと進み、最後に、というわけでアクロニムってのは略語(アブリビエイション)と文法的には等価な存在なんだけど、単語として発音できる場合に限ってアクロニムはアクロニムと言えるわけだ、と結論。
#SGDTTN(最後の段落で力尽きて投げ出してる)が、実はTLA以降の数々のアクロニム化のための技がおもしろかったり。
なぜかTCPSocket#gets(delim)がInvalid Argumentになる件(多分、バージョン依存ではなかろうかとか)。
#表面的には、誤った例外クラスの利用。
RailsChatで一瞬話題になった(Railsがあるからそれほど深入りすることはなさそう)エクスだが、フィーチャのボルドの部分だけ抜いてみたり。
・シンタックス
・型システム
・標準ライブラリ
・拡張性
・リモーティング(分散オブジェクト)
イ・デスクトップ
・オープンソース
・コミュニティ
このうち、「シンタックス」は最後に生き残るJavaScriptマンセーということで(haXeはJavaScript派生言語)。型システムについては、つまりVB、つまりVariantということ(別にCの共用体でも可)でだからどうしたっぽいのだが、Javaしか知らないあるいはPRPしか知らない人には新鮮なんだろうか、という感じだが。
「デスクトップ」が目をひく。
Ajax=JavaScript+コンテンツ操作言語(Flashってどう表現すれば良いのか?)=ActionScript+Neko(サーバーサイドJavaScript用VMなのかな、検索性が悪すぎる名前なので良くわかってない)
JavaScriptでDRYということらしい。
からくりサーカス (43) (少年サンデーコミックス)(藤田 和日郎)
それにしても密度が濃くてえらく読むのに時間がかかった。
大した作家だと思う。
さらっと。とりあえずはこんなものか。ちょっと気持ち悪いのがいきなり先鋒なのはこの後どう続けるのか謎。
普通におもしろい。
月の1/3程度の大きさの星が太陽を周回しているのを見つけたということが感動的なわけで、惑星として扱われなくなってもいいかな。
(というか、子供の頃、同じ太陽を周回していても彗星が惑星とは別物というのを受け入れたわけだから、矮惑星という別物ということでOK)
むしろ、今回知名度が上がったセレスとカロンに和名が欲しいなと思ったり。
「Cygwinでrjbをコンパイルする方法」の作成と「 英語版ページ」の修正、どうもありがとうございます。
まだ薄暗いがもう蝉が鳴いている(ミーンミンミンミンミンのやつ)。
Exerbを1.8.5にするには、src/libruby18を更新すれば良いだけかな?
#29356 むむ、ASRのバージョン付け(r.r.r.a - rはRuby、aでASR)が使えなくなりそうな予感。
昨日Webページで確認したとき、駅から2分という説明と写真のせいで巨大な黒い異形の建築物(=駅を降りたら見える)と思い込んでしまい、場所を確認せずに突入(駅の出口は1つしかないというのは読んだ)。
で、見事に玉砕して、mputさん(途中で一緒になった。なんか頭の中の印象より背が高くて最初混乱した)とリングへ。あそこで呼び込みしているのは高橋さんと村正さんではないか、とやっとたどり着いて本当にリングでびっくりしながらも空いた椅子に座るとコーナーポストの陰になってスクリーンが見えない(※)。
河合さんのプレゼンから入ったもので、一瞬のうちに
・リングという異化空間
・モニタ越しのビデオプレゼン
・=> 伝説のPIL NYギグとかKraftwerkのロボットコンサートとか
・=> 目の前のコーナーポスト
・=> 人は世界を同時進行ですべてを見ることはできないということを示すために巨大な山を囲んで同時に4つの劇が進行した寺山修司の百年の孤独(僕の席からは新高恵子と若松武がまったく見えずに台詞と歓声しか聞こえずすごく想像力を刺激された、くそ)
という連想が働きおれは何をしにきたのかという恐怖に襲われる。
技術的なことは誰かがまじめに書きまくるだろうから、上っ面だけ。
・とにかく、ラクダの顔で最後まで押し通したsoutaroさんのプレゼンに感動したのだった。非常にばかなことをやりながら、しかも内容はきっちりかっちり言うことは言ってしかも客観性を持ち(それほど熱くもなく)、好きなキャラクター。
そして、JavaScript。Naoyaさんもそうだけど、渋谷の渋谷っぽさを体現してる渋谷系ハッカーという分類ができそうに思う。秋葉原系ハッカーと2種類に分かれそうだ(というか、間に六本木というとちょっと違うな、ヒルズ系ハッカーというほうが良さそうだ――もいるか。言語よりもルックスで分類してもおもしろそうだ(しかも、それでおそらく相当、言語+フレームワークも分かれるんじゃないか)とか思った。
自分より年上の人間が高橋メソッドをしているのを見て、完全にキャズムを超えたなと思ったり。
で、スクイークのデモ。すげー。
で、関数言語のセッションを聴いたところで途中退席。
yuguiさんの最強関数言語についての質問を聞いて以前
を買ってまだ目を通していないのを思い出して急に読みたくなったが、どこへ置いたのか見つからない。
※)織田作之助メソッド
広告主は適正な場所に広告を出すのであれば、リングに来る女性の職業は大体決まっているのかも知れない。と思った高収入就職誌の広告。初めて見た。
最初の言語アップデートというのは登場人物と世界観の提示だから、ラインゴールド。
関数言語のセッションは新たな世界の誕生前夜の話し合いなんだからヴァルキューレ。
ということは、見られなかったじゃんけん2.0が勝敗を付けるということは、巨人族のファフナー、ニーベルング族のミーメを始末し、神族のヴォータンの槍を砕いて引導を渡すジークフリート。で、神々の黄昏のゴングが鳴り響くというストーリーになっているのか。すばらしい構成。
a = Proc.new() {|*x| x.inject(0) {|t,e| t += e } } puts a[1,2,3,4,5,6,7,8,9,10] => 55
そもそもHandSpringのVisorを買ったのはたださんに現物を見せ付けられてだったなぁ。
で、これが呪縛の始まりというやつ。
で、なぜauにしたかと言うと、iPodにしたかと言うと……(さすがにこのあたりは複数ソースがあるが)でも現物ってわけじゃないわけで(なんか他にもあったような気がするが気のせいだと思う――とtDiaryに書き込んでるけどこれとか本は別)。
しかし、昨日は、もろに現物を見せ付けられてしまったわけで、ちょっとやばい(お、しかしW-ZEROまではわかるけどその先がわからないからしばらくする平穏な世界が戻るかも)。
このへんは、いつも雨が降ってるのか?
雨が降ってなかったので止めたが、何もないとこだな。
蜂蜜ソフトクリームを食った。途中で、背骨で聞いている蜂蜜の雨状態になって結構食べにくかったがうまかった。
で、なぜか関越自動車道の嵐山から名前忘れたあたりって、奇妙なコンクリだと思うけど塔が立っていてそこにPA/SA名が書いてあるのだが、あのコンクリはなんだろう? 有事のさいにミサイルが、というこたなさそうだし、サイロにしては牛がいないし、水を貯蔵してるとも思えないし、煙突ってこともないだろうし、謎だ。埼玉の深奥部は絶え間なく雨が降り続き、謎の塔が屹立している、驚異に満ちた未開の地だ。
MDCが毎年あるのなら、もうTechEdには参加しなくてもいいんじゃないか感が大きく漂った。
でも、参加人数は例年から飛躍的に増えてるように感じた(混みあって会場から出られない)。
印象深かったのは、基調講演で示された図表。日本のIT年表みたいなやつだけど、航空機予約システムとか大規模店舗システムとか地球シミュレータとか。MSはもうPCの会社じゃないのだな。
機能的にはともかく、インターフェイスがいまいちな感じを受けた。試してからもうちょっと考えてみる(TODO)。
ユースケースによると言ってしまえばそれまでだが、
の4種類の方法があり、4番目は無意味だと思うので置いておいて(でも、クライアントが考える必要がないという意味では3と同じとも言えるので、その意味ではありではる)、ベストプラクティスは2だと思うのだが、どうも3ということで世の中は動いているのだろうか? (さらに、ベストプラクティスは2だとは思うものの、結合強度によっては1がさらに望ましいと思う)――インフラにも依存するので単純に何がベストかと決めることは無理だな、というのが現時点での結論。ただし、シンプルさにおいては1が一番なので速度的な問題さえなければ1であるべきだとも思う。
TechEdの中日パーティーの懸賞の賞品がW-ZERO3で、これに当たればW-ZERO3に行くぞと念波を送ったが、そんなものが送れるわけもなく、なぜならABC(Address、Binding、Contract)を定義してないんだから届くわけもなく。
しかし、豪華なディナー券とかより遥かにW-ZERO3で盛り上がるところが(値段は大して変わらんはず)TechEdだな。
追記:たださんのW-ZERO3まとめ。PDAを使い込んでいるだけに説得力があるなぁ。au Treoか……確かにそれならすぐに乗り換える。
さらに掌XP(価格からありえない選択肢だけど)。なんかCEがのろのろしているうちにXPeもあることだし、こっち系統に行ったりしたり(ライセンス価格が全然違うからあり得ないかも知れないが、VistaがメインストリームになったらXPeのライセンス大幅ディスカウントとかあるかも知れないし)。渡辺さんのとこ経由。
ジェズイットを見習え |
Before...
_ arton [インストールが大変なのは却下です。]
_ ただただし [HikiにはITSがあるので<http://hikiwiki.org/its/>、もうちょっとがんばればいける?]
_ arton [なんか、tracにあってHikiに無い機能をプラグインにしていけばそれだけで十分そうな気になりました。 #Hikiの..]