AX Trick with BLOG » PC
 
Trick with BLOG: written by Kuboon.

Latest Tweets

愛用していた紺の毛糸のベストが、ユニクロ製かなんかだと思ってたら実は父が20代のころから着ていたもので祖母のお手製だったことが判明。

Thu
20
Dec '07

Win32のセマフォは自動解放されない

プロセスの同期の「セマフォ」の項にあるサンプルを実行したのだが、カウントアップ中(セマフォ所持中)に×ボタンでプロセスを殺すと、その分は元に戻らない。
つまり、セマフォはリソース管理方法としてはまったく使えないということだ。
参考までににMutexは、所持しているスレッドが死ねば自動的に解放されるし、開いているハンドルも自動的に閉じられる。

他のプラットフォーム上ではどうなんだろ。

Wed
5
Dec '07

xrea with GoogleApps で、メール転送がされないのを解決

2つのドメインtrick-with.netとtrick-and.net(仮称)を僕が持っていて、value-domainのDNSでどちらも同じxrea上のサーバにAレコードを向けてある。

この状態で、trick-with.netへ来たメールをgmailのアカウントに転送していたのだが、一定の確率で転送を蹴られるという困難な問題が発生していた。

(more…)

Thu
8
Nov '07

SmartPointer::leak()

SmartPointerクラスが、管理下のポインタをdeleteすることなくその管理を終えるときに呼ぶ関数名はなんとしたらよいか。
SmartPointerがpointerを保持している、という実装上の事実からすればrelease()等が妥当だが、pointerそのものと同様に扱えるというのがSmartPointerの本来の設計思想であるので、release()とするとpointer自体を開放してしまいそうで紛らわしい。

などという話をしていたときに当時の同僚だったtxgが提案したのが leak() だった。

素晴らしくね?
とても気に入っていて、今でも愛用している。
流行らないかなあ。SmartPointer自体が時代遅れだからもうダメかな。

2 Comments »

  1. 提案した人 Says:

    愛用すなw

  2. Kuboon Says:

    いあー、他にしっくり来る名前が無いんだよね。
    やっぱleakだよleak。

Thu
18
Oct '07

wikipedia:初音ミク 項目削除について分かりやすく説明する

前提:
1. Wikipedia上の編集はすべて履歴が残る。
2. 途中の版だけを削除することは出来ず、ある版を削除した場合、それ以降全ての編集が消えることになる。
3. ある版で無断引用等の問題が発覚した場合、それ以降の全ての版を削除する以外に対応法は無い。

事件:
「初版で問題発生」

対応:
→初版以降を削除=項目自体を削除。
もちろん、同名の項目をまた作ればよいだけの話なのだが、「項目削除」という言葉になぜか勝手にインパクトを感じた人たちが祭り状態。

横道:
開発元から引用許可の話があったが、「引用元を明記せずに引用できるのはGFDL配下の文書のみ」というWikipedia側のルールを開発元が理解していない恐れがあり、実際、商用サイトがGFDLに従うことは現実的ではないため、権利者の許可といえども保留。

4 Comments »

  1. Kuboon Says:

    OK.
    どうせ配慮するならちゃんと引用元を示してくれててもOK.

  2. ヤスヒロ Says:

    よく分からないけど、Wikipediaがミックミクにされたって認識でおk?

  3. Kuboon Says:

    おk
    てか、ほとんどミクペディア状態。

Wed
10
Oct '07

壁面mac mini

mac mini on wall
いまここ。

4 Comments »

  1. Kuboon Says:

    カワユス。

  2. Kuboon Says:

    全角が1文字でも含まれてればOKみたいです。
    さあもう一度!

  3. Says:

    あああ

    カワユス☆

Wed
22
Aug '07

みんなもっと遅延しようよ

ソフトウェア・エンジニアリングにおいて、「遅延」とは、最適化のための重要な概念である。英語では “delay”.

遅延ロード
アプリケーションが外部モジュールを使用する際、後々必要になるモジュールは起動時に全て読み込んでしまうというのが一般的であった。対して、軽量なまま起動を済ませ、追加モジュールは必要になったぎりぎりの時点で初めて読み込むという手法。
遅延生成
データベース管理された日記をHTMLで公開する場合、アクセスされる度にビューを生成するとサーバに負荷がかかるため、その日の記事を書き終えた時点でビューを生成するというアプローチが取られることがあった。対して、データ入力完了時ではなく、最初の閲覧者がそのページを見ようとしたときにビューを生成する、という手法。(”キャッシュ”は、哲学は違うがやってることは多分一緒。)
遅延宣言
コーディング時に、使用する変数のリストを関数の最初ですべて宣言するのではなく、使用する箇所の直前で宣言、初期化する手法。古いC言語では文法的に認められていなかった。僕はこの発展で遅延include(実際にそれを使用する関数の直前でクラスやパッケージのヘッダをincludeする)を多用していたところ、前の会社の同僚と議論になった。

もちろんそれぞれメリットデメリットはあるが、近年は特に、大抵において歓迎される。
これが、「遅延」である。

さて、話を日常生活に戻そう。
「遅延」は、忌むべき行為であり、「前倒し」が常に奨励される。
「もっと遅延しろ!」などと言われることは決して無い。
ともすれば「怠惰」に直結するくらい、ネガティブな語感をふんだんに含んだ言葉だ。

このギャップはどうしたことだろう?
(揶揄してるのかなんだか知らないが、”delay” の代わりに “lazy” を使うこともある。)

僕はいま現実に、週末のイベントの準備でてんやわんやしていて、遅延させないため、遅延を取り戻すために戦っている最中。終わると大抵、「もっと前倒しで準備するべきだった」みたいな反省が当然出てくるのであるが、そこには本質的な見落としがあって、だからまた遅延を繰り返している。

「歓迎されるdelay」をもう少し突き詰めて考えると、そこにヒントがあるかも、と漠然と思いつつ、仕事に戻ります。

#来週、続きを書くかも。遅延ダイアリィ。

1 Comment »

  1. あきやまももか Says:

    遅延演奏

    電子楽器を演奏する際に、鍵盤が打鍵されてからすぐに信号が音源に送られるのではなく、実際にリスナーの内耳が共鳴する時間の直前に音を鳴らす手法。従来生楽器を主体とするクラシックでは音楽的に認められていなかったが、この方法により、リスナーはより心地よい重層的なサウンドを体感することができるため、ここ数年電子楽器業界で注目されている。

Sun
19
Aug '07

説明をキットします。

Microsoftの機械翻訳ドキュメントは役に立ったことが無い。意味不明すぎて結局英語を見る。
自動翻訳の実用化はまだまだ先か~。

思わず笑った翻訳。
Mac SDK: ソフトウェア開発は、説明をキットします。

きっと、してくれるよね。いつか。説明を。
僕はその日を待つよ。

2 Comments »

  1. Anonymous Says:

    翻訳ソフトの実用化より、

    元の言語を問わずに、端的に日本語としての怪しさを校正するソフトを開発したほうが良い鴨。

  2. Kuboon Says:

    なるほど。ヘタレ新入社員のgdgd日本語も、同じシステムで修復出来ちゃうわけですね。
    来てるな、未来!

Thu
9
Aug '07

ちょっと本気でWeb2.0風に

申し込みフォームを本気で作った: 世界のマジックショー!2007

ポイント:

  • いくつか調べた中でいちばんよさげなjQuery.jsを採用
  • formの送信はもちろんajax動作
  • JavaScript offの環境下でも、レガシィに動作
  • よって、Validationはcgi側のみに実装
  • でも、ajax動作の時はエラー項目の色がちゃんと変わる
  • ケータイでもそのまま使えるように、Shift-JISを採用
  • CGIは、ajax動作時はutf8、レガシィ時はShift-JISに自動的に切り替わって出力
  • CGI側も、Perl5.8の標準モジュールを出来るだけ使用
  • ところがCGI.pmにutf8のバグがあるようなのでCGI::Liteを持ってきて使用
  • ついでにデザインもCSSEZとか使っちゃう

ふーん、なんだこれ、っていじってくれる人は「ご氏名」を「テスト」にしてくれれば無視します。
(でもメールアドレスとかきっちり残るのでちゅうい)
もちろん、本当に申し込んでくれるのもアリ。

Wed
4
Jul '07

文字という通信手段

「ある数字を二乗したら、9になりました。ある数字はいくつ?」という問題と、
「x^2=9のとき、xを求めよ」という問題は、まったく同じ内容を単に言い換えただけである。
後者の言い回しに抵抗の無い人間にとっては前者の表現は単に冗長で、むしろ理解を遅らせる。

ところで、問いの答えが「3」と思っている人は不正解。正解はもう少し後で書く。

AさんがBさんに何かを言った、とする。(言った、と書いたが、ここでは表情や声調を別にした、チャットやメールのような純粋な文字コミュニケーションを想定しよう。)
AはBに何かを伝えようとして言葉を発するのであるが、これは、
1. Aが、伝えたい内容を文章化する
2. 文章化した言葉をBに送る
3. Bが、その文章を解釈する
という3つの段階を経る。1をエンコード、3をデコードと呼ぶ。
理想的には、Aによるエンコード前の「伝えたい内容」と、Bによるデコード後の「伝わった内容」が完全に一致することが望ましいのであるが、現実には、必然的に食い違う。
文章化というエンコード処理によって、脳内のもやもやとした不安定な何かは、文字という確固とした記号に変換される。その時点で膨大な情報量が失われ、要約だけが残る。これは「非可逆圧縮」と呼ばれる。
一方、受け取り手のBは、そのあまりに質素で漠然とした要約情報を、それまでの会話の流れやAとの過去の共通の記憶などを総動員して補い、もともとAが送ろうとしていたのと同じくらいの体積に膨らます。
「誤解」とは、このデコード処理の失敗のことである。

現実にはほとんどの人間が、「答えを1つ得るとそれで満足してしまう」という習性を持っている。
冒頭の問いの答えは、3とマイナス3。2つとも答えてくれないと、数学的には不正解。
マイナス3を思いつかなかったということが即ち、デコード処理の失敗であって、「誤解」である。

日常の言語のやりとりにおいても、このように「解を網羅する」努力が重要であると思われる。

参考:MORILOG 6/4 なんでも自分でやりたい

4 Comments »

  1. せいじろー Says:

    あちゃー! 最初に3て答えちゃったー!w
    うーん、おもしろい。

  2. Kuboon Says:

    >>1
    ソシュールは基本しか知りませんが、関連度は20%くらい、と認識しています。
    この話の土台は(用語から明らかですが)情報理論です。続きを書いていますが、エントロピィという概念を平易に説明する方法を模索中。

  3. kusanagi Says:

    現在、デコーダー(またの名を解釈装置)の研究中。
    イデオロギーなども絡む。

    オレの解釈だとソシュールとの関連度は0%に近い。w
    コミュニケーション理論では
    The McCroskey Modelとか呼ばれてるらしい。

    むむ、エントロピーの話題は最近、オレも出していたのだが、
    平易に説明する努力はしなかった。
    赤と白、同数の玉を多数用意し、枠内に敷き詰める。
    ある距離だけ離れて枠内を見た時、
    均一にピンクに見えるほど大きくなるような、
    均一さ、乱雑さ、あるいは秩序の度合を表す指標。
    とかは?
    定性的過ぎる?

Fri
6
Apr '07

DLLの明示的リンク用typedefの正しい書き方

DLLには暗黙的リンクと明示的リンクの2種類の利用方法がある。
コーディングの立場からすると暗黙的リンクが断然楽なのだが、リンクの遅延が出来ないために明示的リンクを利用せざるを得ないことが多い。

明示的リンクを利用する場合、::GetProcAddress() によって関数ポインタを取得し、それをあらかじめtypedefしておいた関数ポインタ型のポインタ変数に代入して使用するのが一般的である。
(more…)

1 Comment »

  1. Kuboon Says:

    今日になって、/DELAYLOAD というのを知った。なんだこれ超便利じゃん。