タグ

ブックマーク / www.artonx.org (27)

  • OSXでJVMをCからいじくる場合の情報 - L'eclat des jours(2010-10-24)

    _ OSXでJVMをCからいじくる場合の情報 10.6のupdate3を当てたらRjbが動かなくなったというバグ報告をもらった。 rjb bug#28667。 これまで、rjbはjvmのdylib(WindowsのdllとかUnixのsoに相当)を直接ロードしていたのだが、10.6 update3 適用後になくなってしまったからだ。 報告者(Jeff)は、わざわざAppleのサポートフォーラムで訊いてくれて、結果として、dylibを直接呼ぶのではなく、/System/Library/Frameworks/JavaVM.framework/JavaVM"を呼ぶのが正しいということがわかった。 JavaVM なんだその名前は??? と半信半疑となったが、nmしてみると文句なくそれはdylibだった。(JVMにはClient版とServer版があるわけだが、何を残して何をどうしたかというところを

  • 読みやすいソースコードとは - L'eclat des jours(2009-11-23)

    _ 読みやすいソースコードとは きむら(K)さんの日記読んでて、はて、確かにおれも読んだのだが、まったくどこだかわからんぞ、と気になってさがした。 ソースコードのコメントよりも空白行のほうが理解を助けるという研究結果 元のペーパーはRaymond P.L. Buse and Westley R. Weimer: Learning a Metric for Code Readabilityらしいけど、www.computer.orgがDNSで引けないのでまったく読めない。 で、名人がクリーンだとかビューティフルとか言う世界ではなく、いよいよソースコードそのものの読みやすさについて定量的な分析が行われるようになったのだなぁという感慨というか来ちゃったなぁ感というかがある。 次に来るのは、多数が読みやすく書きやすい言語ってものの設計と実装が来るのだろう。(でも、多数の人間ではなく、機械生成しやす

  • 続ACIDからBASE - L'eclat des jours(2009-11-13)

    _ 続ACIDからBASE 以前、acmqueueのBASEに関する記事の前半だけを勝手翻訳したが、続きをwinplusさんが翻訳してくれた。 実のところ、2フェーズコミットという技術は早すぎた自動化だと思う。えらく大層なことと複雑な仕組みではあるけれど、さっきまでオンラインだったシステムは直後もオンラインだろうという程度のあやふやな確信に頼って自動化しているだけのものだ。 よく似たシステムに、同時期にでてきたRPC(ORPCもそうだ)がある。 前提が高信頼性が確保できるクリーンルーム内の複数のノードから構成された分散システムだとしか思えない。それにしてもマシンは落ちるしネットワークは切れる。2フェーズコミットは、絶対に通信が可能だということと相手のプロセス(マシン)が落ちないことを前提としたシステムだという矛盾がある。SYNに対するACKを2時間待ってしまえばすでに成り立たないのだ。 早

  • L'eclat des jours(2009-11-10)

    _ でっかなバッファを避ける? Aleviating Memory Fragmentation in Mono コンパクティングしなければ、いやでもフラグメントがどかどかできる。 するとでっかなバッファを取ろうとすると新しいページの割り当てが必要となりプロセスが肥大する。 だからでっかなバッファを要求すんな。細切れ継ぎ合わせメモリーストリームを使え。 と読んだ。 細切れ継ぎ合わせ方式だと実際のバッファへのポインタ分だけ余分なメモリをうわけだし、次の細切れへの移動にオーバーヘッドがかかるわけだが、それを補ってあまりある恩恵が得られればOK。 (ここで、「さっそく試してみる」といかないところがだめなところだ)

  • とっても遅いページの作り方 | L'eclat des jours(2009-09-17)

    _ とっても遅いページの作り方 trがたくさんあるtableを作って、その中で個々のカラム(idxxxみたいなidをつけてあってxxxが行番号になってたりする)をgetElementByIdでアクセスすると、死よりも遅い。 for (var i = 0; i < document.getElementsByName('tr').length; i++) { var col1 = document.getElementById('col1-'+i); ... var coln = document.getElementById('coln-'+i); ... } それは当たり前だけど、Javaプログラマとかって、ばかよりも簡単な自明なコードを書け教育みたいなものをへたすりゃ受けているから、あほちん、そんなものはgetElementsByTagNameでtrとってるんだから、tr要素回してその

    kgbu
    kgbu 2009/09/19
    getElementsByNameで集めた場合のtraverseの順序の話とか
  • パターン、Wiki、XP――時を超えた創造生成の原則 - L'eclat des jours(2009-07-10)

    _ パターン、Wiki、XP――時を超えた創造生成の原則 江渡さん(と角谷さんと懸田さん)のトークセッションを聴きにジュンク堂。 以下、メモの生データ どういうつもりで書いたのか 『パターン・Wiki・XP』ができるまで 2007年、オブジェクト倶楽部のイベントで講演したのがきっかけ。 2008年にプロジェクト開始 情報収集:中埜さんなどにインタビュー(都市計画の専門家としての山形浩生、ソフトウェアとしての平鍋) 2009年1月頃にレビューを開始 (角谷さん、懸田さん、shinoさんなど) →これによって、よりよくなった 例)3部構成が、2部と3部の入れ替え、章の追加 なぜ書いたのか? 内容は短時間で説明できない。したがって、なぜを説明する。 Wikiというシステムに興味を持ったのが2002年頃。 quikWebを作った (開発中の議論が良い経験になった) 機能追加によって悪くなることがあ

    kgbu
    kgbu 2009/07/10
    etoさんの本に関するトークイベントのメモ
  • L&#39;eclat des jours(2009-06-26)

    _ 良くわからないが琴線に触れるものがある ティプトリー月間も終わりで、一気に5冊買ったうち、輝くもの天より堕ち以外はすべて読んだ。 いろいろ思うところがあるが、さすがに60年代末期からの人だけに、いろいろな時代精神の発現があり、それにより既視感というよりも既読感に悩まされる。 たとえば、たったひとつの冴えたやりかたの2つめ、グッドナイトスイーツハーツを読み、それからしばらくたって、故郷から10000年光年のマザーインザスカイウィズダイアモンズ――突然思い出したが、KNIGHT OF THE DIAMONDをDIAMONDSと打ったか、あるいは定冠詞を抜いたか(それは、日語版の箱が日の慣習で冠詞か複数形のsを抜いていたからだが)、最後の最後で吹っ飛ばされた悪夢――を読み、まるで双子の兄弟のような、多分映画化すればジャックブラックなんだろうけど、おれとしてはニール?ヤングを推薦したいとこ

    kgbu
    kgbu 2009/06/26
    James Tiptree, Jr月間の報告
  • 夢の世界へようこそ - L'eclat des jours(2009-05-01)

    _ 夢の世界へようこそ はるか昔、子供がまだ子供にも成りきらないころのことだ。 ディズニーのダンボかバンビか、そのあたりのLDを見せていたら、広告のピーターパンにやたら興味を持って、買ってくれと言いだした。 まあ、いいかな。で、ピーターパンのLDを買ってやった。 ピーターパン 【日語吹き替え版】 [DVD] ANC-008(ハミルトン・ラスケ) で、それから毎日、子供はピーターパンを見るようになった。 だが、そんなに毎日欠かさず見るほどおもしろいか? でも、とにかく、何か見ると言えばピーターパンだ。 一緒に見ているこっちがすべてのセリフを覚え、フック船長とピーターとスミーのトリオ芸をぬいぐるみで見せられるまでになったころ、画面を眺めながら子供がぽつりと言った。 「いつ、迎えに来るんでしょうね」 ? そして、話を聞き、ダンボだかバンビだかのLDを見直し、ピーターパンの広告で、ナレーションが

  • L&#39;eclat des jours(2009-03-06)

    _ BusinessDateTime型 こういう型が欲しいな。DBにもプログラミング言語(のライブラリでいいけど)。……ライブラリなら作ればいいか。となると、DBにだな。 どういう型か。こういう型だ。 BusinessDateTime bdt = new BusinessDateTime(); // -> 2009-2-1 00:01 bdt.round(); // -> 2009-1-31 24:01 System.out.println(bdt.toString()); // -> 2009-1-31 24:01 System.out.println(bdt.normalize()); // -> 2009-2-1 00:01 ps.setBusinessDateTime(2, bdt); // -> 2009-1-31 24:01 ... ps.executeUpdate(); //

    kgbu
    kgbu 2009/03/14
    24時という表記にまつわる苦労
  • L&#39;eclat des jours(2009-01-23)

    _ ハードウェアゴルファー ウォズのおもしろいのは、とにかく部品数を減らすことが楽しくてしょうがないらしいことだ。 シュガートのFDDをハックして2週間でアップルIIとインターフェイスできるようにするところ。 まずドライブ自体とそのコントローラーボードをチェックし、どのように動作するものなのかを理解した。 マニュアルを読んだ。そして回路図を検討し、(略)そして、22個ほどあったチップのうち、20個ほどは不要だと判断した。 まったくわからないが、そんなことあるんだろうか? (別のチップに置き換えるとかかなぁ) DRAMのリフレッシュのところもえらくおもしろいテレビを上から下へと、1ラインずつスキャンしていく。アメリカテレビの場合、ライン1をスキャンするのに、だいたい65マイクロ秒の時間がかかる(略)このうち、40マイクロ秒くらいは見えるんだけど、残りの25マイクロ秒くらいは見えな

    kgbu
    kgbu 2009/01/26
    すごい、確かに紙と鉛筆ならばゴルフしないと何も始まらないよな。まず、問題を頭に納まるサイズにしなきゃいけない。富豪的プログラミングはそこんとこ、記述言語、システムを利用して頭に収めてるとも言えるか。
  • ホーリーウッド! L'eclat des jours(2008-12-23)

    _ ホーリーウッド! ドイツ人が! はてしない物語 (上) (岩波少年文庫 (501))(ミヒャエル・エンデ) ネバーエンディング・ストーリー [DVD](バレット・オリバー) みたいなものかね。 ところが、考えてみると、上の例は内容(メタデータ)の改ざんで、視覚表現(コード)については元々自由な実装を許す構造となっている。 メタデータでは幅がありすぎるから、それをより直截なものとしてアルゴリズムと置き換えて考えてみる。 ある作品には、アルゴリズムとコードがある。当然だ。 たとえば、アルゴリズムを変えずにコードを変えた例として、次の作品がある。 勝手にしやがれ [DVD](ジャン・ポール・ベルモンド) ブレスレス [DVD](リチャード・ギア) 実は大傑作らしいが(今となっては観ておけば良かったと後悔したり)、ジーン・セバーグとヴァレリ・カプリスキではまったく異なる。前者は薄く、後者は濃い

    kgbu
    kgbu 2008/12/24
    なんとなくLessigがこんなお話をしそうだな、とか、思いました。
  • L'eclat des jours(2008-11-26) ?:

    _ ?: と、タイトルを書いて今気づいたが、?:って「三項演算子」だな。というか別に間違ってはいないか。+は二項演算子だし。単項もあるでよ。なぜ、三項演算子という呼び方を目の敵にする人がいるのだろうか? そういえば、三項演算子の利用を目の敵にする人もいて、マーティン?ファウラーがネタにしていたくらいだ。(ネタといわず、例としてでも良いけど) いずれにしても、三項演算子は報われない生涯を歩んでいるようだ。 で、正規表現の?:だが、これは何が嬉しいのだろうか? と、先日購入したハンドブックを読んでいて、初めて知った(一通りの書き方は目を通していたはずだから初めて知ったはないとは思うので)あるいは意識したのだが、さっぱりわからない。 ?:のご利益は後方参照用の保存をしないことだということはわかったのだが。 たとえば、/(?:abc)(def)/ =~ "abcdef" として、$1でabcの代わ

    kgbu
    kgbu 2008/11/27
    ?:って、正規表現の中に正規表現を埋めるときに、部品となる正規表現で使うと、括弧の対応が崩れなくて便利なのかー。
  • L&#39;eclat des jours(2008-11-20)

    _ ACIDからBASE ちょっと勉強。 BASE:ACIDの代わりをどうぞ 要約(のつもりだったがのりで)抄訳:(誤読は十分あり得る) これまでは垂直拡散(うまい訳はなんだろう? vertical scaling)ってのがひとつの方法だった。よりパワフルなマシンへ移行するという道筋だ。何より簡単だってのがいいところ。でも、問題がある。どこまででもでかくできるわけでもないし、何より金い虫だ。 それに対して水平拡散(horizontal scaling)ってのもある。いや、でもこれは複雑になる。この場合は、2次元で考えるといいね。横方向は機能分割。縦方向は断片化だ。Oracleのパーティショニングあたりとかかな。 機能分割はいいんだけど、そうなると1つのトランザクションが複数のデータベースサーバーをまたがる必要が出てくる。 エリック?ブルーワっていうバークレーの先生で、インクトミの首席サイ

    kgbu
    kgbu 2008/11/20
    元々の論文はEBayの人らしい。それで商用サイトが成り立つのなら、説得力がある、というか、商用サイトのような使い方はCAPのすべてを必要としないというべきか。
  • L&#39;eclat des jours(2008-11-06)

    _ こういうNLize すみか Ruby なるほどなぁ。 仁義なきRubyとかどうだろうか? irb(main):006:0> 5/0 ZeroDivisionError: 0でチンコロしたのはオドレらか!! from (irb):6:in `/' from (irb):6 irb(main):007:0> nil = 'test' SyntaxError: compile error (irb):7: nil 相手に代入するバカが何処に居るかい!このボケ! とかね。 参考:[仁義なき戦い] 好きな台詞 仁義なき戦い [DVD](菅原文太) 仁義なき戦い―美能幸三の手記より (死闘篇) (角川文庫 (4394))(飯干 晃一) 仁義なき戦い―美能幸三の手記より (決戦篇) (角川文庫 (4395))(飯干 晃一) endがないんじゃあ、endが……

    kgbu
    kgbu 2008/11/06
    メッセージを読み取る側でgreasemonkyみたいにplugできても面白い(?)な。色眼鏡というか。
  • DellMiniUbuntu

    ubuntu8.04を使うと、ほぼ無設定で動作することがわかった。先行者のおかげである。 XPの整理 一応、デフラグしておく。 終了したらmini 9の電源を切る。 ブータブルUSBメモリの作成 http://www.ubuntulinux.jp/products/JA-Localizedから8.04のi386用CDイメージを入手する。以下の実行例ではubuntu-ja-8.04.1-desktop-i386.iso。 次に、Linuxマシンで以下の作業を行う。あるいは、上記のCDを焼いてLive CDから実行することもできると思うが、いずれにしろ、mini 9だけですべてをやろうと考えなければ問題はない。 フォーマット済みのUSBメモリ(CDを入れるのだから700MB以上必要)をLinuxマシンに設定し、マウントされたデバイスをチェックしておく。 $ mount ... /dev/sdb

    kgbu
    kgbu 2008/10/05
    マルチブートとかBluetoothとか
  • L&#39;eclat des jours(2008-10-05)

    _ Bluetoothデバイスまた買った 以前モトローラのヘッドフォンを買ったのとは別に、もう1つBluetoothヘッドフォンが欲しくなった。 モトローラのはそれほど悪くはないのだが、2つ欠点がある。 1つは横向きに寝っ転がれないことだ。仰向けもちょっと辛い。 もう1つはペアリング可能なホストが1台だということだ。 今、おれが欲しいのはDELLのmini9用なのだ。Airとのペアリングを解除しても最初の問題があるし、どちらかというと音は悪くないのだからiTunesの曲もそれなりに入っているAirとのペアを解散させたくもない。 そこでビックカメラについでがあったので(エアコンのフィルタを買うという用事なのだ)、ちょっと見てみたら、Bluetoothのオーディオデバイスって全然なくて驚いた。こんなに普及していないのか。 で、あまり気はすすまなかったがSONYのやつを買ってみた。 SONY ワ

    kgbu
    kgbu 2008/10/05
    Bluetooh音楽デバイスについてのノウハウ、というか、今はSONY製しかないんですか。そんなに需要が無いかなぁ。まぁ、複数のソースを使いまわすような人と、音楽を空気のように欲しているひとのANDが少ないわけだな
  • L&#39;eclat des jours(2008-09-22)

    _ 放浪? 以前買ったまま放置していたエルデシュの伝記を読了。 放浪の天才数学者エルデシュ(ポール ホフマン) 知識のある人間についてかかれたところは興味深いということもあるのだが、晩年(どうも30代以降はすべて晩年だったような)のゲーデルがの作ったべ物以外は一切口にできなくなり(毒を盛られることを心配していたそうだ)、が入院したために餓死したというエピソードに恐怖する。 主人公のエルデシュが一時期プリンストンの研究所で働いていたので、ゲーデルやアインシュタインも登場するのだ。 モンテカルロ法はノイマンに関係しているのだと思っていたが、このを読むとスタニスワフ・ウラム(読み物だからしょうがないとは思うが、途中からスタンと書かれるので、この初出のスタンとはどこの誰だ? となったりする)という人が方法論を確立したことが、共通の知人がモンティ・ホール問題をモンテカルロ法(この名前もウラム

    kgbu
    kgbu 2008/09/22
    えらく面白そうだ。
  • L&#39;eclat des jours(2008-07-11)

    _ 僕には数字は風景には見えない 見えないので、見える人のを読んでみた。 ぼくには数字が風景に見える(ダニエル・タメット) 例として、割と最初のところで53×131の例が出ているのだが、瓢箪みたいな形の2つの数の間を埋める形があって、それが6943なので答は6943とか書いてある(今、を裏返したら、何のことはなく帯にも書いてあったが、そのくらいこの説明は不思議に感じるのだけど)。筆算もできるが、それよりこれで求めたほうが簡単とか書いてあるので、なんとも不思議だ。それとは別に素数が色の違いでわかるとか、累乗の計算が好きで弟に問題を出してもらってぽんぽん答えるシーンとかもある。 ヒントは、円周率を記憶するところで見えるような気がする。ボランティアのチャリティで円周率暗唱のギネスへの挑戦をするところがあるのだが、見た瞬間に覚えるというよりは、まじめに延々と記憶していく作業をしているからだ。

    kgbu
    kgbu 2008/07/11
    4桁ぐらいの数字は自分ちの庭みたいなもんなんだろうか。
  • The Backyard - JavaScriptのおもしろさ

    JavaScript(ECMAScript)は、他のプログラミング言語の決まりに慣れ親しんでいると、非常に奇妙な存在です。一見すると、CやJavaから型宣言を省いただけの単純なプログラミング言語に見えます。しかし、prototype.jsやjQueryのような優れたライブラリのソースを眺めると、それが単なる勘違いに過ぎないことに気づくでしょう。 ここでは、prototype.jsのソースファイルを読むのに必要となるJavaScriptの文法のうち、特に重要な3点を説明します。これらは、JavaScriptでプログラムを記述するのに重要な役割を持つ反面、単にHTMLにアクセントを付ける程度の利用方法では出現しません。したがって、ここで説明するJavaScriptの「濃い」部分を知らなければ、prototype.jsのソースファイルを眺めても何が記述されているのか理解することはできないでしょう

    kgbu
    kgbu 2008/03/23
    Javascriptでは高階関数が扱えたり、オブジェクトのprototype=Classが扱えたりというところが面白いという話。これがあったればこそAjaxのprototype.jsのようなことが可能になった。
  • L&#39;eclat des jours(2008-02-28)

    _ 進化論的アプローチと量子コンピュータ いよいよクライマックス(後、数ページ)だが、話はどんどん広がっていく。 思考する機械コンピュータ (サイエンス・マスターズ)(ダニエル ヒリス) 超並列コンピュータが必要かつ有意義な問題として、進化論的アプローチによるプログラムの生成が出てくる(ただしコンテキストはモジュール化アプローチの限界に対する克服手段の例として)。 生成方法にドメイン固有の偏りを与えてから数万個のプログラムを生成し実行して最も正しいものを選択していく。 直感的に無理だと思うわけだが(というか読み進めたらソートプログラムは実際に作ったと書いてあった)、でも待てよ? これこそ量子コンピュータで(こそ)解決可能な問題にみえる。 そこで生命の不思議さについてしばし考えこむ。

    kgbu
    kgbu 2008/02/29
    組み合わせ総当りちっくな問題に量子コンピュータってのはするどい(俺がするどくないのかも)