2007-08-01から1ヶ月間の記事一覧

Java: 動的にメソッドを追加するメリットって?

http://b.hatena.ne.jp/twainy/20070826#bookmark-5656047 ダイナミックプロキシについて。Javaにmethod_missingがあっても動的にメソッドが追加されないから意味ないような? という意見を見たのだけれど、動的にメソッドが追加されることに意味なんてある…

Concurrent Clean : Re: Stream

[id:lethevert:20070829:p3]の話はようは参照型との組み合わせのことを考えた話で、*Ref *StdErr と *Ref *File とは型に互換性がないから、途中で参照の中身を変更することはできないけれど、ロギングライブラリを作るには出力先を標準エラーからファイルへ…

便利なフレームワークをありがたがるのって

[id:lethevert:20070828:p3]で紹介した「Software Factories」に出てくる「ソフトウェアプロダクトライン」という開発手法に次のようなくだりがある。 http://www.atmarkit.co.jp/fdotnet/softfactory/softfactory02/softfactory02_01.html ソフトウェア・プ…

closeの話

closeで起きる例外について。正解は、昨日の記事のコメントの名無しさんの解答待ちですが、私の考え方を簡単に。 プログラム中で例外が起こったときに、できることはそのプログラムの処理を続行するために必要なリカバリ処置とログの記録の2つだと考えてい…

Java : NIO

http://yamarou.at.infoseek.co.jp/javanawake/022.html java.ioとjava.nioのファイル読み込み速度を比較しているのだけれど、ちょっとプログラムがアレだなと思ったので、書き直してみた。 主要な部分だけを比較すると、元の記事のプログラムは、 /** * fil…

Concurrent Clean : Stream

Cleanの入出力ライブラリの置き換えとして、Streamというモジュールを作ろうとしているところだけれど、2年前に http://www.geocities.jp/lethevert/clean/oop02.html#polymorphic_list で考えていたテクニックを使う所かもしれない。

Concurrent Clean: AltEnv: StdFileは持ってこない

StdFileのインターフェースは気持ち悪すぎる。あとで、全体的にインターフェースを作りなおす。 StdEnv以外で作業が必要な基本ライブラリは・・・ ArgEnv Directory ExtendedArith Generics - gEq, gPrint どれも、気持ち悪かったり、AltEnvのインターフェー…

Ruby: えっと・・・これはネタですか?

(何を言いたいか分からないエントリだったので、少し整理して、追記しました) http://www.rubyist.net/~matz/20070820.html#p02 そういう風に書かせないために、チェック例外があるのでしょうがorz 例外はむしろチェックされない例外があることのほうが問…

ソフトウェアの工業化

http://arton.no-ip.info/diary/20070827.html#p01より ご存じかもしれませんが、MicrosoftがSoftware Factoriesというのを提唱しています。 http://www.microsoft.com/japan/msdn/architecture/journal/aj3softfac.aspx 範囲による経済は、図 4 に示される…

Concurrent Clean: 副作用があっても値を取り出さなければ(一定の条件下で)危険でなければ・・・

Haskellな人に質問ですけど、IO Monadで参照透明を担保しているのは、モナドそのものの機能ではなくて、IO Monadから値を取り出すことができないというところにあるのですよね。 ああ、いや、参照透明なら置換しても意味が変わらないはずで、IOの回数も変わ…

Hash関数の速度比較

http://www.azillionmonkeys.com/qed/hash.html

Concurrent Clean: AltEnv

大体山は越えたと思う。 後残っているのは・・・ StdOrdList StdTuple StdFile あと、StdListで後回しにした関数がいくつか

Concurrent Clean: AltEnvでの文字列表現

今作業中のAltEnvというのは、StdEnvの関数を再定義して、さらに不足している関数を補って、もっとスマートな標準ライブラリを整備しようという取り組みなのだ。 で、その中で、文字列表現として、3つの表現をサポートすることにしている。なぜ3つもサポー…

語彙

economyの訳語としての「経済」とかcultureの訳語としての「文化」とかを使うことについてはどう考えているのでしょうか?

Java: SQLJ

http://www-06.ibm.com/jp/software/data/developer/library/techdoc/javasqlj.html Javaからデータベースを操作する方法は、JDBCだけじゃない! 例えば、こんな簡単なクエリーなら、SQLJを使えば1行で書ける。 SQLJ syntax: #sql [conCtx] { SELECT job IN…

IPA未踏ソフトウェア創造事業2006年度下期千葉PM採択プロジェクト最終成果報告会

http://event.seasarfoundation.org/chiba20070907/ 申し込んでみた。

Concurrent Clean : Re: 型クラスと非ボックス化配列

[id:lethevert:20070821:p1], [id:lethevert:20070821:p4], [id:lethevert:20070823:p4] などで悩んでいた問題の解決策が見付かった。 例として、% (slice)を挙げると、次のように書くことで、これまでの問題を全て解決することができる。実は、似たようなテ…

Re: The Rise of JAVA - The Retirement of SUNW

http://blogs.sun.com/jonathan/entry/java_is_everywhere Sunが株式のtickerをSUNWからJAVAに変更するという話がSunのCEOのBlogに公開された。コメント欄が大荒れ。 それだけJavaがSunにとって重要なポジションに位置するようになったということを意味して…

Java: Re: ダイナミックプロキシ

誰か書くかと思っていたのだけれど、私の巡回範囲で誰もやらなかったので自分で書いてみた。 ダイナミックプロキシを使って、簡易なO/R Mapperを作る。 interfaceを使って、インターフェース名がテーブル名、メソッド名がカラム名というルールにして、動的に…

Concurrent Clean : ThreadSafeなランタイム

現在のCleanのランタイムはスレッドセーフでないので、1つのプロセスに1つのスレッドしか実行できない(ということは前のLL魂でも言った)わけだけれど、どうやらWindowsの64bit版のランタイムでThreadSafeなものを現在作成中だそうです。

明示的に

http://q.hatena.ne.jp/1187798694 コンピューター系の用語としてexplicitの訳語として他に適当だと思えるものがないので、普通に使います。テクニカルタームの一種。「はっきりと」とかっていう訳を付けたら、余計に何を言いたいのか分からなくなる気がする…

キーボード

ノートパソコン常用者には、キーボードなんて付属のもの以外の選択肢なんてないわけで。拘るという観点そのものが欠落しております。

Concurrent Clean : 型クラスと非ボックス化配列

[id:lethevert:20070821:p4], [id:lethevert:20070821:p2] いろいろ考えたけれど、結局、非ボックス化配列や非ボックス化リストを他にペナルティなくうまく扱う方法は見付からないので、それらはパフォーマンスチューニング上の特殊なやつだとあきらめて、他…

Quiz: 論理パズルを線型計画法で解く

[id:okamoto7:20070718:p2] 後で考えよう。

The Discrepancy Method

[id:okamoto7:20070822:p2] 機会があったら読んでみよう。 http://www.cs.princeton.edu/~chazelle/ ここで、PDFが読めるみたい。The Discrepancy Method: Randomness and Complexity作者: Bernard Chazelle出版社/メーカー: Cambridge University Press発売…

Online Computation And Competitive Analysis

[id:okamoto7:20070821:p2] これも。Online Computation Compet Analysis作者: Allan Borodin出版社/メーカー: Cambridge University Press発売日: 2008/08/21メディア: ペーパーバック購入: 1人 クリック: 47回この商品を含むブログ (9件) を見る

Java: ダイナミックプロキシ

スクリプト言語の方面からは不評なJavaですが、その1つにはリフレクションが使いにくいとかいうのがあるそうです。 そういうことは、ダイナミックプロキシのことを知ってから言うのも悪くないと思うので、簡単な紹介を。 http://java.sun.com/j2se/1.5.0/ja…

Concurrent Clean : ++を型クラスで置き換えてみたら・・・

++がリスト型専用の演算になっているので、型クラスで置き換えたライブラリを作ってみている。 class (++) infixr 5 q a :: !(q a) (q a) -> q a という宣言にすると、リストの++を行うのに型コンテキストが必要になってしまった。 class (++) infixr 5 q ::…

Concurrent Clean: +, ++, +++

++が第2引数がnon-strictな連結なら、第2引数がstrictな連結は・・・ +++は文字列専用にしたので、一般の連結に使えるものは、と思ったら、一番一般的なものを見落としていた。+が同じ型を持っている。 でも、+を使うなら、これを文字列専用にして、+++を…

Concurrent Clean: % (スライス)

同じことが % (スライス) にも言えるわけで。 文字列専用の演算と一般のスライスを別の識別子に分けておかないと、配列のスライスが作れない。 - あるいは、要素の型を区別するように書き直すか。