Entries from 2007-03-01 to 1 month

Iteration Interruption の処理

「IEnumerator<T> を実装していれば必ず IDisposable である理由」は興味深かった。Java では Iterable / Closable がありますが、どうなんだろうと思ったら次のようなバグレポートを見つけました。 A DESCRIPTION OF THE REQUEST : Guarantee that if iterator</t>…

パイプラインパターン???

2007/4/14 追記: C# の IEnumerator を使ったパイプラインパターンについて知りたい方はこちらを。 Iterators with C# 「パイプラインパターンとリソース管理」を読んで。パイプラインパターンてなんの事かと思ったけど、要は Chain-of-Responsibility のこ…

CodeSearch でだめコードを探すテクニックを探求する

後方参照が使えればいいなあと思いつつ、次のクエリで検索。 ptr\s*=\s*realloc\(ptr結果はこちら。もちろん、結果に挙がっているものすべてがダメというわけじゃないですよ。ptr がオリジナルのポインタでない場合だってあるし。しかし、よくあるよなあ、こ…

HTMLで&lt;script&gt;タグの中味の終端は&lt;/script&gt;ではなく「&lt;/」

ここ にさりげなく書いてあるので、まあよく知られた事実なんでしょうけど、ただ、ここ最近聞いた話でもっとも衝撃的だったので一応書かせてください。HTML 4.01 の仕様書には「CDATA must be handled differently by user agents」とかあいまいな書き方がさ…

STL のイテレータは「やりすぎ」か

最近大学生にC++を教える機会がありました。第一印象は (失礼な物いいですが) とてもプログラミングなどとは無縁な生活を送っているかのような学生だったので、なぜC++を勉強しているのかと聞いたら、先学期に授業でPerlを勉強してMarkov Cluster Algorithm…

ERROR_OUTOFMEMORY と ERROR_NOT_ENOUGH_MEMORY の違いを探る

Win32 API (システムコールというと語弊があるので) 共通エラーコードの中には、なぜかほとんど同じ意味のものが 2 つあります。一つは ERROR_NOT_ENOUGH_MEMORY で、もう一つは ERROR_OUTOFMEMORY です。UNIX でいうところの ENOMEM ですね。以下、ヘッダフ…

linux/mutex.h 互換ヘッダの件

追記 (2008/3/6): kernel-2.6.9-18.18.EL で修正されました。 Red Hat Enterprise Linux 4 (RHEL4) のカーネルヘッダは、2.6.9 にもかかわらず、2.6.16 から導入されたKernel Mutex: linux/mutex.hをセマフォでエミュレートする互換ヘッダパッチが当てられて…

OpenCV のライブラリとしての完成度についてのメモ。

ここ最近ずっと触ってきて、思ったことを書いておきます。 メモリ管理 ★★☆☆☆ libc の malloc() をラップするような形で独自のメモリ管理機構 (プールアロケータベース) を持っています。しかし、コンパイラの実装によらず勝手にアラインメントを計算する関数…

OpenCV の物体認識を動画に適用する

4/8追記:拡張モジュールのダウンロードリンクは一番下にあります。今回は自動的に顔にボカシを入れるスクリプトを書いてみました。しかし、対象となるのは静止画ではなく、動画です。ソフト・オン・デマンドの開発したという全自動デジタルモザイク処理シス…

C配列参照演算子の興味深い仕様

open-std.org のC99 Rationaleを読んでいて、興味深い一節を発見。 6.5.2 Postfix operators 6.5.2.1 Array subscripting The C89 Committee found no reason to disallow the symmetry that permits a[i] to be written as i[a]. The syntax and semantics …

もうrootのパスワードを潰すとか潰さないとか (ry

ウノウさんの「ウノウラボ Unoh Labs: 専用サーバを構築するときにまず行う4つの設定」に対して「rootを潰すなんてとんでもない」とかそういう話が盛り上がっているようですね。けっこう言いたいことの半分はこちらとかで言ってもらえているので安心ですが…

あなたがRoRを使わない10の理由に違和感を感じる幾多の理由

別に個人的にGREEでEthnaを使ってたから、とか藤本さんと個人的に知り合いだからだとかそういう理由じゃなくても、ここでEthnaが引合いに出されるのはやっぱり違和感がある。だからあえて書く。勘違い君を増やしたくないので、ネタにマジレス。Ethnaってあの…

AIGLX on Wikipedia

こちら、けっこうがっつり加筆させていただきました (えらそう)。このへんのアーキテクチャって複雑すぎて理解が大変だよなあ。2ch の Compiz / Beryl スレとか見ても分かっている人が、分かってない人より声が小さいという有様でしたし。もし間違っていたら…

2.2.3 で発生する謎の segfault

ここで挙げられている件ですね。 (gdb) bt #0 0xb7ce6a0a in apr_hashfunc_default () from /usr/lib/libapr-1.so.0 #1 0xb7ce6bfd in apr_hash_first () from /usr/lib/libapr-1.so.0 #2 0xb7ce6ceb in apr_hash_get () from /usr/lib/libapr-1.so.0 #3 0xb…

OpenCV の PHP バインディングを書いてみた

3/24追記: 最新版はこちらです => http://d.hatena.ne.jp/moriyoshi/20070324/1174687182http://voltex.jp/downloads/opencv-php-0.0pre.tar.gzまだ完成にはほど遠いけど、顔認識くらいはできるようになってます。 インストール方法 PHP の開発パッケージが…

ひきつづき DigestAuth: 専用のフィールドタイプを追加

すっかり Django ブログになってしまいました…。さて、例のパッケージをアップデートしました。http://voltex.jp/downloads/Mozo.Django.DigestAuth-0.2.tar.gz変更点は DigestPasswordHashField という専用のフィールドタイプを追加した。これにより、パス…

クラス名の命名規則 - あのね、Util なの? Utils じゃないの?

これも宗教論争ネタのひとつかもしれない。ユーティリティクラス名は複数形にすべきかどうか。個人的には、するべきだと思う。だって、utilities だもん。クラス名に複数形を使うのは邪道だという見方もありますよね。「おまえな、卒業生を表すクラス Alumnu…

結局 request に突っ込むのがいいみたい。

id:mopemope さんがいろいろ考えてくださったみたいなので、改めて Django の設計思想についていろいろ調べてみました。結論から先に言うと、HttpRequest の次の属性にユーザとプロバイダを突っ込むことにしました。ちょっと行儀が悪いかなと思って HttpRequ…

Digest 認証を行う Django の middleware を書いてみる

Python 自体そんなに触ったわけじゃないのでまだまだなことは百も承知でダイジェスト認証を行うための Django のミドルウェアを公開します。やさしくしてね。利用については、パブリック・ドメインであると解釈してください*1。パッケージ自体は、Django に…

Django 使ってみました。

trac と mailman をホストするサイトがあって、急に Digest 認証のパスワードを管理するページが必要になったので折角だからと Django を使ってみました。Django で Sqlite のデータベースにハッシュ化したパスワードを突っ込むようなアプリケーションを作り…

2005年度は空前のexample.comブームだったらしい。

すごくくだらない話なんですが。 いったい何故…。

248 よくある誤用: 例外処理

#248 Often Misused: Exception Handlingより。 The _alloca() function allocates memory on the stack. If an allocation request is too large for the available stack space, _alloca() throws an exception. If the exception is not caught, the prog…

P/Invoke (Platform Invoke) などマーシャル属性を持つクラスにはジェネリック型を関連づけられない

これにも昨日からずっとハマってました。次のようなコードで再現します。 using System; using System.Runtime.InteropServices; public class Bar<T> { [DllImport("kernel32.dll")] public static extern void Beep(UInt32 freq, UInt32 duration); } public </t>…

コマンドプロンプトで計算をする

ひょっとしたらよく知られている事実なのかもしれませんが、Windows NT 系の拡張機能付きコマンドプロンプト (cmd) では SET コマンドの拡張 (/A オプション) により簡単な演算ができるようになっているのを昨日知りました。 C:\> SET /A 3+4 7 これだけでは…

Arrayのコンストラクタがオーバロードできてしまう問題

これは知らなかったのでメモ。FireFox 限定のようですが。 Array = function() { alert('You gotta blah!'); };とやった後に >||js| [1, 2] |

Alexa の pageview グラフをオーバレイで表示するブックマークレット

とりあえず即席で作ったので、ベタばり。 javascript:id='alxg',w=320,h=-192,d=document,z=d.getElementById(id);if(!z){z=d.createElement('iframe');z.id=id;with(z.style){position='absolute';right=0;top=h;width=w;height=-h;filter='alpha(opacity='…

インナークラスなんてものわない

MITRE が国土安全保障省の支援のもと作成している Common Weakness Enumeration (CWE)。これまでのさまざまな脆弱性を分類し、ラベリングしたものです。個人的にはかなり「待ってました!」感がありますねえ。さて、その CWE をブラウズしていて見つけたのが…

FireFoxの検索バーで、Googleの検索対象言語をデフォルトで日本語にならないようにする。

もっぱら自分用のメモ。もっと簡単な方法があるはずだけど... とりあえず %MOZ_HOME%/searchplugins/google-ja.xml で以下のようになっている箇所 <Url type="text/html" method="GET" template="http://www.google.co.jp/search"> <Param name="q" value="{searchTerms}"/> <Param name="lr" value="lang_ja"/> </param></param></url>

Zero-Copy High-Performance I/O

glibc や Linux カーネルなどに多大な貢献をしている Ulrich Drepper の「ホームページのようなもの」(邦題) は何かと面白いものがいっぱいありますが、今日は kevent について調べていて、Drepper 氏のページにたどり着きました。"The Need for Asynchronou…

Cスタイルキャストが有用な場面

mozilla/xpcom/reflect/xptinfo/public/xptinfo.h:215-218 → Bugzilla@Mozilla – Bug 49641 を見ていてなるほどと思ったのでメモ。このあたり仕様に詳しくはないけど、かつては incomplete タイプへの reinterpret_cast を許さないコンパイラというのがあっ…