日々

link permalink

そりゃないぜ

会社からの帰り道、電車の到着時刻を知らせる電光掲示板を見るとなんかおかしい。先に来るはずの 8分が、16分の電車の下に表示されています。普通は到着時刻順に並ぶはずです。


時刻順と逆に表示されている

そのまましばらく電光掲示板を見ていると、JR 西日本恒例の赤い文字(電車の遅れ時間を示す)が。またですか、もう勘弁してください。


どんどん遅れが増えていく

ああ、これはだめだって思ってたら「8分の普通電車は 16分より後になる」ってアナウンスが入りました。電光掲示板の順番が入れ替わってる=先行(8分の電車)は来ませんよ、って予告なんですねっ…て、わかりづらいよ。

最終的には 10分遅れになって、時間順で正しい順番になりました。結局ホームで 20分も待っちゃったYO!遅れの原因は、小動物を跳ね飛ばしたせいらしいです。へぇー。

[編集者: すずき]
[更新: 2008年 2月 8日 02:23]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

スーキヤーキ

友人の誘いに乗って、京都の三嶋亭にすき焼きを食べに行きました。店の雰囲気に対して、ジーパン+トレーナーという僕らの服装が激しく場違いでした。あやうく周囲の視線で針のむしろになるところでした。個室で良かったと思います。

一食で一ヶ月の食費の半分くらいが吹っ飛びました。しかし…、うまかった…!

ジンジャー

食事を食べた後は京都の町をぶらぶら。京都のコンビニはみんな地味な色にしていて面白いです。街並みとの調和ってやつでしょうか。

近くの八坂神社にお参りしました。門の修復工事が終わっていたので、写真を撮りました。柱の朱が鮮やかです。今はまだ直したてで綺麗すぎるきらいがありますけどしばらくしたら良い味が出るでしょう。


八坂神社の正門前

神社にお参りしてお土産買った後は、パフェを食いました。男五人でな…、なんか最近こんなのばっかりだw

[編集者: すずき]
[更新: 2008年 2月 8日 02:34]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

らららープレイステーション

今日は飲み物を買いに行ったりしたくらいなので、昨日の晩〜深夜にかけて、友達とゲームしてた話でも。

PS3 のありあまるパワーを生かして、ハイビジョン画質(1080p 出力)をでかい画面(50インチのプラズマ)に繋いで、ガンダム無双やってました。ポリゴンのアラが見えてしまうくらい、綺麗だなあ。

Wiiiiiii!!!!!!!!

Wii でパワプロもやりました。リモコンを振って投げる/打つってのが楽しいです。最初はシンプルすぎる操作を見て、プレイヤーを馬鹿にしてると思ったんですが、やってみると逆にシンプルさが楽しいです。

ただ、PS3 やった後に Wii の絵をみると、ぼやけているというかなんというか…。やるなら逆の順番にしたほうが良さそう。

[編集者: すずき]
[更新: 2008年 2月 8日 02:43]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

キング・オブ・クソゲー

ちょっと前にニコニコ動画で大流行していた「チーターマン」という伝説級のクソゲーがあるんですが、これを越える超絶クソゲーがあります。

「未来神話ジャーヴァス」というファミコンのゲームなのですが、アクション RPG にも関わらず、説明なくゲームが始まって当然、てな作り方です。ターゲット層と思われる小学生に理解させる気ゼロです。

バッテリーバックアップカセット、クエストシステム、城攻めなどの斬新な要素(当時)も見られます。しかし基本が即死というバランスの悪さ、説明不足すぎて理解不能なクエストなどマイナス点が多すぎです。これは常人にはクリア不可能だと思われます。

ニコニコにクリアムービー(かなり省略されてます)が載ってたので、暇で仕方ない人は探してみてください。見ていても何してるのか全然わからんのが難点だけど…。

[編集者: すずき]
[更新: 2008年 2月 8日 02:55]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

最近のほっかいろ

会社の挨拶運動に参加しました。寒空の下 30分間、会社の入り口で「おはようございまーす」を連呼しました。

寒さを考慮してほっかいろを配ってくれたので早速使ってみたのですが、最近の製品は発熱量が少ないみたいです。かいろが暖かくなるどころか逆に寒さに負けて冷たくなってくる始末。低温火傷に配慮したのかなあ?それにしてはやりすぎだよなあ?

[編集者: すずき]
[更新: 2008年 2月 8日 03:01]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

related プラグインの謎

Pukiwiki 1.4.7 に関連するページへのリンクを表示する related というプラグインがあります。リンクには二種類あって、
対象となるページにあるリンク(以降、順リンク)
対象となるページをリンクしたページへのリンク(以降、逆リンク)
が表示されるようになっています。

PukiWiki の編集時にブロック型プラグイン形式 #related か、index.php?plugin=related&page=PageName のように(便宜的に直起動と呼ぶ)して plugin を呼び出すことで上記の機能が発動します。

どちらの起動方法でも機能は同じ……そんなふうに考えていた時期が俺にもありました。
バキネタはさておき、related プラグインってば直で起動するとブロック型とは別の処理が走ってしまいます。そのせいで順リンクが出ません。なんだこれ。

Pukiwiki なんてそこら中で使われてるし、related の妙な動きにも誰か気づいていそうなもんですが…、そもそもどちらの動きが正しいんでしょう?それによっては以下のエントリが丸々無駄になる可能性があったりなかったり。

backlinks プラグイン

PukiWiki で「ひらメソッド」をやってみると、ある関数が誰を呼ぶか?という一覧の他に、ある関数が誰から呼ばれ得るか?ってのも知りたくなりませんか?

その手の情報は手動で管理すると死ねるので、逆リンクの一覧をページに埋め込むってのが欲しかったわけです。しかしながら #related では、先述したように順リンクが混ざってうまくないです。

related を直すとあちこちに影響が出そうなので、今のところは、以下の図のような対象ページの逆リンクだけをすっぱ抜いてくる backlinks プラグインを追加して凌いでいます。

backlinks.inc.php

<?php
// PukiWiki - Yet another WikiWikiWeb clone
// Backlinks plugin: Show backlinks for the page

function plugin_backlinks_convert()
{
	global $vars;

	return make_backlinks($vars['page'], 'p');
}

function make_backlinks($page, $tag = '')
{
	global $script, $vars, $rule_related_str, $related_str;
	global $_ul_left_margin, $_ul_margin, $_list_pad_str;

	$links = links_get_related_db($vars['page']);

	if ($tag) {
		ksort($links);
	} else {
		arsort($links);
	}

	$_links = array();
	foreach ($links as $page=>$lastmod) {
		if (check_non_list($page)) continue;

		$r_page   = rawurlencode($page);
		$s_page   = htmlspecialchars($page);
		$passage  = get_passage($lastmod);
		$_links[] = $tag ?
			'<a href="' . $script . '?' . $r_page . '" title="' .
			$s_page . ' ' . $passage . '">' . $s_page . '</a>' :
			'<a href="' . $script . '?' . $r_page . '">' .
			$s_page . '</a>' . $passage;
	}
	if (empty($_links)) return ''; // Nothing

	if ($tag == 'p') { // From the line-head
		$margin = $_ul_left_margin + $_ul_margin;
		$style  = sprintf($_list_pad_str, 1, $margin, $margin);
		$retval =  "\n" . '<ul' . $style . '>' . "\n" .
			'<li>' . join($rule_related_str, $_links) . '</li>' . "\n" .
			'</ul>' . "\n";
	} else if ($tag) {
		$retval = join($rule_related_str, $_links);
	} else {
		$retval = join($related_str, $_links);
	}

	return $retval;
}
?>

PukiWiki の plugin ディレクトリに backlinks.inc.php という名前で置いて、PukiWiki でページ編集するときに #backlinks と書けば動作するはずです。

PukiWiki のコード(make_related 関数)をそのままパクッてるんで、ライセンスは GPL です。こんなんで良ければご自由にどうぞ。

[編集者: すずき]
[更新: 2008年 2月 8日 19:09]
link 編集する

コメント一覧

  • IKeJI 
    related は他にもバグがあるんですが、Pukiwikiは死んでるんですかね?
    http://pukiwiki.sourceforge.jp/dev/?BugTrack%2F735 
    (2008年02月08日 10:58:57)
  • すずき 
    >IKeJI さん
    PukiWiki は最近バージョンアップしてないようですし、開発が停滞しているのかも知れないですねえ。
    >他のバグ
    ありゃーこれはかなりだめな挙動ですね。直さないのかな。

    #backlinks は大丈夫かな…?ダメだったら直すのメンドクサイなあ。 
    (2008年02月08日 18:22:31)
open/close この記事にコメントする



link permalink

Generics と clone メソッド

このキーワードでピンと来た方はこの日記を読む必要はないと思います。

Generics なクラスに clone メソッドを作ろうとしてはまりました。以下のようなコードを書いたわけです。

Generics なクラスでディープコピー(MyVector.java)

class MyVector<T extends Cloneable> implements Cloneable {
    T[] items;
    
    public Object clone() {
        MyVector<T> copy = new MyVector<T>();
        
        for (int i = 0; i < items.length; i++) {
            copy.items[i] = (T)(items[i].clone()); //error!!
        }
        return copy;
    }
}

Cloneable を継承する型だと宣言したところで Cloneable インタフェースには clone() の定義がありません。コンパイラはこのコードを見ても T が public メソッドの clone() を持っているのか、いないのかコンパイル時に判断できません。

従ってこのコードを実行すると基底クラスの Object クラスの clone() メソッド(private メソッド)が呼ばれる可能性があります。そのためコンパイラは「(Object の)clone() は public じゃないから呼べません」とエラーを出すのです。

clone() を呼ばずに、以下のようなコードに直せばコンパイルが通ります。しかしこのコードで生成される T のコピーはあくまでも「シャローコピー」ですから、T がシャローコピーでコピーしきれない要素を持っていたときに破綻します。


copy.add(get(i)); //OK

配列の要素まで「ディープコピー」をするには、T に clone() 関数の定義を強制させる必要があります。これに NewCloneable とでも名前を付けますと、以下のようになります。

Clone を強制する(MyVector2.java)

public interface NewCloneable extends Cloneable {
    public Object clone();
}

class MyVector2<T extends NewCloneable> implements Cloneable {
    T[] items;
    
    public Object clone() {
        MyVector2<T> copy = new MyVector2<T>();
        
        for (int i = 0; i < items.length; i++) {
            copy.items[i] = (T)(items[i].clone()); //OK
        }
        return copy;
    }
}

新しく作った MyVector2 クラスは「ディープコピー」ができるようになりました。しかしこのクラスは全く使い物になりません。なぜなら NewCloneable を継承するクラスは標準クラスライブラリに存在しないからです。つまり何を言っているのかというと、


MyVector<Integer> v1;  //OK
MyVector2<Integer> v2; //error!!

MyVector と同じ乗りで MyVector2 を使おうとすると「Integer は NewCloneable を実装してないからダメ」と怒られます。せっかくの Generics なのに自分で作ったクラスしかぶち込めないんじゃ、ちょっとあんまりですよね。

それならと、Integer を継承して NewCloneable を実装したクラス NewInteger を定義しよう!と思っても Integer は final 宣言されていて継承できません。MyVector2 はますます役立たずです。

結局はシャローコピーで我慢せよってことですかね。もしくは clone() なんか実装すんじゃねーよってことでしょうか…。

[編集者: すずき]
[更新: 2008年 2月 15日 01:09]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

まちがえた

間違えて書いたので削除。

[編集者: すずき]
[更新: 2009年 2月 11日 12:21]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

近衛さん家の素敵なコレクション

大下さんと「宮廷のみやび 近衛家 1000年の名宝」という特別展(東京国立博物館 平成館)を見に行きました。その名の通り近衛家という公家に伝わる様々な美術品が展示されています。

近衛家は、かつての摂関政治を牛耳り「日本は俺の物ですが何か?」と言い切った藤原家の流れを汲んでいる、いわゆる超名家ってやつです。一般人には縁もゆかりもありません。

中には「いよぉ、元気でやってる?」くらいの手紙も大層に飾ってあります。それでも書いた人が貴族とか天皇とか上皇ともなると、美術品の一種となるのでしょうね。

美術品はいまいち分からないものが多いのですが。今回見た中では近衛家熙(※1、※2)の「隷書心経」に感動しました。字がうますぎて、最初、印刷か何かだと思ったさ。家熙は何でも屋さんだったみたいですが、書家としてかなり有名みたいです。

賀茂人形や銀細工雛道具といった細かく小さい細工品が飾ってあるのを見ると、今も昔もそしてこれからも相も変わらず、日本人は小さくてかわいい物が大好きなんだなと思います。その形は変われども。国民性ですねえ。

(※1)このえ いえひろ [1667-1736] 、江戸時代の公家。Wikipedia「近衛家熙」の項を参照のこと。

(※2)(2/18 更新)「ひろ」の字が環境によっては豆腐に…と書いていましたが、日記をアップデートした段階(EUC-JP -> UTF-8 の変換)で潰れて出ていませんでした。諦めて当て字を書いておきます。

[編集者: すずき]
[更新: 2008年 2月 18日 21:24]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

初めての

初めての有給取りました。3連休に繋げて 4連休にするという大胆な使い方を試みたので、何か困難が待ち受けているのかと思ったのですが、上司に聞いてみたら「ああ、いいよ」って感じであっさり OK くれました。

他の人に聞いたわけではないので何とも言えませんが、お客さんに支障が出るような休み方でなければ、何も言われないでしょう。きっと。

[編集者: すずき]
[更新: 2008年 2月 15日 02:01]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

リクルーティング

加藤研のゼミが朝早くあるようなので、先生に会えるかと思って朝早く行ってみました。こんな早く来て、鍵が開いてなかったらどうしよう…と思ったのですが、博士課程なお二人が居たので事なきを得ました。

京都のお土産はつまんないので、意表をついて「ひよこ」をおみやげにしたらほぼ 100%の人に「なんでひよこ?」って聞かれました。作戦成功でございます。

何か勢いでゼミにまで出てしまいました。テラナツカシス。

研究室で皆さんと話したり、IKeJI &まぶっちーの研究の話とかを聞いていたら楽しかったです。一年経った今も、加藤研はとても良いところだったなあと思います。

会社

会社説明会で最後にちょろっと話しました。話が全く面白くなかったのか、皆さん怖い顔。こりゃ失敗か。

懇親会の会場を決める係だったのですが、決める際のすったもんだの割に、結局懇親会には 5人しか来なかったので、決めても決めなくても何も変わらんのであった。悲しい…。

[編集者: すずき]
[更新: 2008年 2月 15日 02:24]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

JDK のそーす

Sun のサイトから JDK のソースがダウンロードできます。なんとタダなのです。

JDK のソースなんて何に使うの?と言いますと。Java のライブラリの大部分は Java 言語で書いてあります(一部は C 言語ですが)。Java を作った人達が書いたコードはこれ以上ない極上のサンプルと言えましょう。

私のような Java 素人ですと、斜め読みしているだけで発見がいっぱいです。

今日は自身のクラスのコンストラクタを this(); で呼べることを初めて知りました。今までいちいち private void Initialize() とか作ってたよ。かっこわるー…。

[編集者: すずき]
[更新: 2008年 2月 15日 01:57]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

うおー

仕事で全く原因が分からずに苦労していた部分がついに解消した。原因に気づいたらなんてことないことなんだけど、気づくまでが長かったなあ。うーん、スッキリ。

基本的には、休みの日に仕事の内容は考えないようにしてますが、苦戦しているときほど気になって仕方ないです。そういうときはどうしても考えてしまいますね。先週辺りがまさにそんな感じでした。

飲み会

同期と飲み会。参加してた一人が仕事で行き詰まってる部分があると言って、飲み会の間もずっと考え事をしていました。あの状態では酒もうまくなかろうなあ。

なんというか、先週の自分を見ているようです。彼の問題があと一息で解決することを願いつつ。ガンバれ。

[編集者: すずき]
[更新: 2008年 2月 18日 21:15]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

須磨ブラ

「スマブラ」って打ったらとんでもない変換になったのでそのままにしておく。

友人(Sena さん)の部屋で Wii のスマブラ X をやりました。64版を数回やったことあるだけでスマブラを語るのも失礼な話ですが、正直あまり面白くないというか、前にあった爽快感が無いです。

立ち攻撃(方向キーを押さずに攻撃)と横攻撃(左右キー+攻撃)の使い分けがイライラします。64にも横攻撃ってあったっけ?あっても覚えてないってことは、さほどイライラするものではなかったのでしょうけど。

あと全体的に判定が辛いっていうか、意地悪というか。バランス調整なのか、難易度を上げたのか。なんというかびみょ〜な出来です。

しばらくやったら面白くなるのかなあとも思いますが、人の家のゲーム機を使い倒すのはさすがに気が引け…って相当入り浸ってるので今更言えたもんじゃないけどさw

[編集者: すずき]
[更新: 2008年 2月 18日 21:15]
link 編集する

コメント一覧

  • sena 
    別に気になさらず〜。
    一人でやるより面白いし、
    いつでも歓迎ですよー。 
    (2008年02月21日 00:15:33)
  • すずき 
    > sena さん
    そういってもらえるとありがたいです。また遊びましょう。
    調子に乗って居ついてしまわないように気を付けます。 
    (2008年02月21日 20:44:50)
open/close この記事にコメントする



link permalink

こげくさいでんしゃ

15日の話になりますが、会社帰りの電車に乗ると機械の焦げるような臭いがしていました。臭いで鼻が痛くなったんでたまらず乗った方と逆のドアに逃げましたが、さらに焦げ臭さが増したので、隣の車両に避難しました。

電車を降りてから焦げ臭かった車両の横を通ったら、なんと外側も激しく焦げ臭い。下回りのどこかが焼けてるんじゃなかろうか?大丈夫なのか JR 西日本。

[編集者: すずき]
[更新: 2008年 2月 21日 00:07]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

意図的

Wikipedia のヒドラジンの項目を見ていたら、何か違和感を覚えました。

今も何度か読み返しましたが、やはり違和感があります。どこかというと、第二段落のこの下り(2008年 2月 19日現在)です。

気化吸引、皮膚への接触ともに腐食をもたらし全身を骨までドロドロに溶かす。

ヒドラジンは強アルカリで毒性も強いらしいのですが「全身を骨までドロドロに…」は言い過ぎというか、辞典らしくないアホっぽい書き方に見えます。

編集履歴を見ると匿名の誰かがこの下り「だけ」をわざわざ書き足したようで、意図的なものとしか思えません。何かヒドラジンに嫌な思い出でもあったのかねえ?

ん、文句言う前に自分で直せよって?まあそういうなって…。

[編集者: すずき]
[更新: 2008年 2月 21日 00:22]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

同期機構

マルチスレッド処理とか調べていると、セマフォ、ミューテックス、モニターといった同期機構達の名前を良く目にします。違いが良くわからぬまま使っているのは良くないと思い立って復習してみたものの…こんがらかってきた。難しい。

以下、そのまとめ。全般的に用語があやしいので正しい用語を知ってたら教えてください。

セマフォとミューテックス

やはりこの二つの違いが難しいです。思いこみが入ってる可能性大なのでご指摘は大歓迎です。

ミューテックス(MUTual EXclusion)はロックまたはアンロックの二状態を持つ同期機構です。ロックされているミューテックスを他の人がロックしようとすると、他の人はロックを拒否されるか、ロックが解除されるまで待ってからロックします。ロック操作にはいくつかの概念があります。

ロックの所有権
A さんがロックしたら A さんが所有者となり、他人の B さんがアンロックすることはできません。A さんが責任を持ってアンロックしなければなりません。
再帰ロック(リカーシブ・ロック)
ロックした所有者に限って、ロック中のミューテックスをさらに何度もロックできます。これは再帰関数でロックするときに便利です。
弱いロック
条件によってロックに強弱がつくか、または初めから優先順位があります。強いロックが弱いロックを無理矢理アンロックして、ロックを強奪できます。奪われた方は異常な状態になるので、終了させるか、リカバリ処理で元に戻します。これはデッドロックの解消に使えます。

ミューテックスについてはこんなもんでしょうか?次、セマフォいってみよう。

セマフォ(Semaphore)にはロック/アンロックの概念はありません。あるのは P 操作(セマフォが 0 でなければ数字を 1 減らす、0 ならば待つ)と、V 操作(セマフォをとにかく 1 増やす)です。ミューテックスは複雑な型になり得ますが、セマフォは整数値で実装可能でしょう。実装したこと無いけど。

セマフォはある区間(同じセマフォを対象とする P 操作と V 操作の間)に同時に何人入れるか?だけを制御します。

例えるならば、食堂で料理を載せるトレーでしょうか。食堂の入口で店員(セマフォ)にトレー(セマフォの値)をもらい(P 操作)、食事した後、出口でトレーを店員に返す(V 操作)というルールです。食堂にトレーが 3枚しかなければ、一度に食事できる人は 3人(スレッドやプロセス)に制限できるという仕組みです。

チケットの枚数(セマフォの初期値)を変えれば、ミューテックスと等価なセマフォも作れます。二値セマフォ(0 か 1 しか値を取らないセマフォ)と言うそうですが、P 操作がロックで、V 操作がアンロックに相当します。

しかしセマフォにはミューテックスのような所有権、再帰といった概念はありません。自分のロックが誰かに壊されてしまう可能性(アンロックのときに異常な状態になるので検知はできますが…)や、ロック区間で再帰すればデッドロックに陥って自爆することがある。ってことです。

もちろんセマフォに所有権付けたって、ミューテックスの所有権がなくたって一向に構いません。世の中を見ても、実装によって同期機構の動作はバラバラです。同期機構って何だかわからないー!と感じる主因は単に「実装依存が多すぎる」だけかもなあ…。

その頃 Linux は

ミューテックスとセマフォの実装の例として、Linux の pthread(POSIX thread の略?) mutex と POSIX セマフォの説明を見ます。pthread mutex はその名の通りスレッド間のみの同期を取る機構であり、POSIX セマフォはプロセス間共有ができる違いが大きいでしょう。

POSIX セマフォでは名前付きと無名を選べます。名前を付けるとファイルとして見えるのも大きな特徴でしょう。これはあくまでも POSIX が規定する機能で、セマフォがみんなそうなっているわけではありません。しつこくて申し訳ないです。

一方 pthread mutex はというと、基本的には二値セマフォです。しかし所有権チェック&デッドロックのチェックや、再帰ロックが可能になるオプションを指定できます。しかし 〜NP(non portable かな?) という名前を見るに、恐らく POSIX 準拠じゃない機能です。

一方 Java は

Java にはセマフォとミューテックスとはまた別に synchronized という別の同期機構(モニタというらしい)が備わっていますが、Wikipedia によればモニタはロックで実現できます。奇遇だね俺もそんな気がするよっ、ってことでスルー。

Java のミューテックスは Lock インタフェースの実装クラス(ReentrantLock, ReentrantReadWriteLock)が相当します。どちらも所有権の概念と、再帰ロックの概念を持っています。

他にも公平なロックという概念をオプションとして提供しています。公平なロックは上記の説明で出てませんでしたねえ。あれまー…。簡単に説明します。

公平なロック
ロックしようとした順番にロックを渡す。
不公平なロック
ロックしようとした順番を無視して適当にロックを渡す。

ある一つのミューテックスをロックして仕事してアンロックする、という動きを繰り返している A さん、B さん、C さんの 3人がいるとします。3人が常に一つのミューテックスを欲しがっていますが、A さんが偶然何度もロックを取得してしまうと、B さんや C さんはその間全く動けない状態に陥ります。

このとき B さんや C さんは飢餓状態に陥っている、と言います。飢餓状態が起きないことを保証するロックの配り方、それが公平なロックです。

ReadWriteLock は多数の読み出し側(Reader)と少数の書き込み側(Writer)がいるときに有効なロックの戦略です。ReadLock(ReentrantReadWriteLock#getReadLock() で取得する)と WriteLock(ReentrantReadWriteLock#getReadLock() で取得する)のペアで使用します。

ReadLock は特殊なロックで複数人が同時にロックできます。WriteLock は ReadLock と他人の WriteLock に対して排他的です。そのため WriteLock は ReadLock と同時にかかることはありません。

何言ってんだテメェは!って思ったそこの貴女、表にしまし…たらちょっと見づらかったので、リストにしました。ReadWriteLock は大きく 3状態に分けられます。

ロックされていないとき
どちらのロックも成功します。
ReadLock がかかっているとき
ReadLock は成功します。WriteLock は待ちます。
WriteLock がかかっているとき
ReadLock も WriteLock も待ちます。

同期機構においては POSIX より Java の方が何かと親切ではあります。しかし親切な機能は大概遅いというのもお忘れ無く。

[編集者: すずき]
[更新: 2008年 2月 21日 02:37]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

ぷち工場実習

訳あってビデオデッキ(の箱)をたくさん運んだので疲れました。明日は筋肉痛になっているに違いない…。

帰り道、上司に車で乗せていってもらった上にラーメンまでおごってもらいました。なんか申し訳ないです。

[編集者: すずき]
[更新: 2008年 2月 27日 21:46]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

朝から晩まで

大阪の問屋街にある萬栄(大阪市中央区)へ特売品を狙って朝から買い物に行きました。友人は特売品をゲットしていましたが、自分は残念ながら特売品を一切買いませんでした。宝石とかアクセサリばかりなんですもの。

開店前の店に並んだのは今回が初めてだと思います。誘われない限り自分で並びに行くこともなかろう。まあ、ろくに調べず行って「まだ開いてないYO!!」ってパターンはありそうです。

昼食後、昼からの買い物メンバーと合流して、引き続き買い物です。が、もう何も買う物も見る物もありません。土曜日はいつも昼間で寝るのが普通で、今日のように朝からずっと活動しているのと眠くなってきます。途中であまりに眠くなってきてマクドナルドで寝てました。もう最悪の客ですよ。

しゃぶしゃぶ

晩は H高さんの退寮&結婚予定おめでとうパーティーってことで、あじびる花心本店(大阪市北区)という店でしゃぶしゃぶを食べました。なぜかカラオケ設備のある部屋に通されました。食べながらカラオケ?珍しいね。

H高さんの奥さん(予定)は歌が上手でした。自分も歌おうと思ったら店の人に時間ですって言われてあえなく終了しました。

ボウリング

解散して残ったメンバーでラウンドワンへ。ボウリングしました。3ゲームやって、最後のゲームはレーン対抗で勝負(罰ゲーム:ビリがトップへジュースおごり)でした。負けも勝ちもせず 2位です。無難が一番です。

スコアは 80、100、110 って感じでした。最後のゲームがレーン対抗勝負だったので上り調子だったのはラッキーでしたね。

[編集者: すずき]
[更新: 2008年 2月 27日 22:59]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

至高の京都へ

大下さんが住まい探しで京都にいるらしいので、その合間を利用して 2人で龍安寺に行きました。寺に向かう前に茶寮都路里(京都府下京区、京都駅 JR伊勢丹 6階)でパフェを食べたりしてたら、外がいつのまにかあやしい空模様。というか大雪。

JR 京都駅から龍安寺に行くには金閣寺あたりでバスを乗り継ぎます。ところが降りしきる雪のせいなのかバスが待てど暮らせど来ない。ちくしょう、雪め。雪なんかいらないんだよ…。


龍安寺の石庭

外と同様に龍安寺も寒かったです。石庭は春が一番綺麗みたいですが、元々真っ白な砂に石があるだけの庭なので、雪が積もってても良い味出してます。暖かい季節に縁側で寝ころがってこの庭を見られたなら最高だなあ。

[編集者: すずき]
[更新: 2008年 2月 27日 22:56]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

ゆるさを越えて脱力

昨日、萬栄に買い物に行った際にへんてこりんなキャラクターが頑張ってました。

近くで虎っぽいパーカー(顔出てたけど)を来ていたおじいさんに聞いてみたら、名前はももんがと言うそうです。…うーん?どの辺がモモンガなの??全然わかんないよ。ネタか?


ももんがくん

内藤ホライゾン「ちょっおまっ、誰がモモンガだお!どうみてもブーンはブーンだお。しまいにはブーンするお!」
⊂ニニニ(^ω^)ニ⊃ ブーーーーン

本当にありがとうございました。

[編集者: すずき]
[更新: 2008年 2月 27日 23:16]
link 編集する

コメント一覧

  • 超神ネイガー 
    これって、ゆるキャラだねぇ。
    モモンガって茶系じゃなかったっけ? 
    (2010年06月15日 13:02:55)
  • すずき 
    >超神ネイガーさん
    懐かしい記事にコメントありがとうございます。

    確かに動物のモモンガは茶色ですが、こんな丸くないし、モモンガの最大の特徴である滑空&皮膜を取り入れてほしかったです。

    余談ですがこのキャラクター、この日見たきりその後一度も見かけません。

    どこに行っちゃったんだろうなあ…。 
    (2010年06月16日 19:09:19)
open/close この記事にコメントする



link permalink

もんふぁー

モンスターファームオンライン始めました。ゲームの内容以前にね、製品としてどうなのよ?ってとこが多すぎます。

  • クライアントがルートキット
  • クライアントが無意味に重い
  • キャラの顔の大半が変
  • メッセージ送りの反応が鈍い
  • 戦闘も激もっさり
  • 戦闘は攻撃ボタンをいちいち押すシステム、反応鈍い
  • 他人の操作するキャラが数人出てきたら処理落ち
  • 透明人間(キャラの名前だけ出る)がいっぱい歩いてる

最近 nProtect を初めとしたルートキットを入れるのがネトゲの標準になりつつあるんですが、いい加減やめて欲しいな。あと我が家の PC では CD を読まない(モンスターを作るときに使う)のですが、Daemon Tools のせいかもしれないです。ま、どうでもいいけど。

とにかく全体がもっさりーもっさらーもっされすとーです。非常にイライラします。ベータ版とはいえひどすぎる。テクモさんガンバっておくれよ。

[編集者: すずき]
[更新: 2008年 2月 27日 23:16]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

この世の覇者は

生物が活動する目的の一つとして「圧倒的多数派を維持し続けること」があると思います。

例えば圧倒的多数に至るために人類は、目に入った他者を滅ぼす、という手法を取りました。策は功を奏し、人類は急激に増えましたがあまりに攻撃的すぎて自身の首も絞めています。人類は圧倒的多数を維持できる程の力を持たない種なのかも知れません。

まあ、人類が生物の覇者か否かは時間が証明してくれるのでさておいて。

周りを攻撃して滅ぼす方法で未来が望めないなら、周りと共生することで覇道を歩む生物はいないのでしょうか?自分は、共生する生物はいずれ攻撃的な生物にやられて消えるものだと思っていたのですが…、実は意外と近く成功者が居たのでした。

その名はミトコンドリアです。ミトコンドリアは酸素からエネルギーを生む器官です。一説によれば古代に存在したバクテリアが細胞内に取り込まれ、共生を始めたことが起源だと考えられているそうです。その説を信じるならミトコンドリアは真核生物(細菌類を除いたほぼ全ての生物)と共存し続ける生物と言えます(※)。

細菌の一派として生きる道もあったでしょうけれど、真核生物との共生を追いに追って「この世の全ての真核生物と一蓮托生の関係を築くこと」に辿り着いたのでしょう。ミトコンドリアはこの世の覇者たる生物に到達したと言えるかもしれません。

(※)ミトコンドリアは独自の DNA を持ち、分裂によって増えます。しかし細胞外では生存できず、独立した生物ではありません。この際どこから生物と呼ぶかは曖昧にしておきましょう…。

[編集者: すずき]
[更新: 2008年 3月 1日 00:25]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

うるう年

今日は 4年に一回しかない肉の日(というのは冗談で、本当は 2月 9日らしい)です。4年に特別な意味を見出す人も居るでしょうが、昔の人が適当に作った暦を今も適当に引きずっているから起きてしまうだけで、別に何も意味のない日なんですよね。

電車

JR 京都線はときおり途中で連結されたような形の編成
つまり、<運転席]-[客車]-[客車]-[運転席>-<運転席]-[客車]-[運転席> のような形
が走っています。田舎の方で分離するんでしょうかね。

で、いつもの通勤で乗る真ん中辺り(3〜4 両目付近)が運転席付きの車両になっています。今日は暇だったので運転席をずっと眺めていました。最近の電車は全てデジタルメーターなんですね。

運転台を眺めると架線電圧とか列車の速度という比較的わかりやすい数字と、BC 圧、MR 圧とかいう謎の数字が仲良く並んでピコピコ動いておりました。BC って何だろうね??

[編集者: すずき]
[更新: 2008年 3月 1日 00:44]
link 編集する

コメント一覧

  • hdk 
    運転席のところが通路になってる車両、数年前に常磐線で見たことがあります。アナログメーターでしたがw 
    (2008年03月01日 11:24:37)
  • すずき 
    なんと、常磐線は通り抜けられるのか。京都線は運転席の通り抜けできません。
    できないと困るか?と言われると微妙ですけど…。 
    (2008年03月01日 14:59:37)
open/close この記事にコメントする



こんてんつ

open/close wiki
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報