swk's log 最新ページ / カテゴリ最新ページ / 1 2 3 4 5 6 7 8 9 次ページ / page 1 (9)

tech - from swk's log

2008-04-19 Sat

* 世界のナベアツに顔認識で挑戦する [tech] 12 users

世界のナベアツにさまざまな方法で挑戦するのが流行っているようなので,便乗してみる.

入力された画像から認識された顔の数が,3の倍数か3のつく数字のときだけ 顔がアホっぽくなります.


CGI の実装言語は Perl,顔認識は Image::ObjectDetectモジュール (OpenCV の cvHaarDetectObjects),画像処理は Imagerモジュール,実装 は以下の各サイトを参考にしました.

参考というかほぼ丸パクリなので,むしろ一番大変だったのはレンタルサー バに root 権限無しで OpenCV インストールするところだったかも.その辺 の話は気が向いたら書く.

以下ソース:

#!/usr/bin/perl -T

use strict;

use lib "/home/swk/local/lib/perl";
use CGI;
use CGI::Carp qw/fatalsToBrowser/;
use LWP::UserAgent;
use Imager;
use Image::ObjectDetect;

my $tmpdir = "/home/swk/www/nabeatsucv/tmp";
my $cascade = '/home/swk/local/share/opencv/haarcascades/haarcascade_frontalface_alt2.xml';
my $nabeatsu_photo = '/home/swk/www/nabeatsucv/nabeatsu.jpg';

my $q = new CGI;
my $ua = LWP::UserAgent->new(timeout => 15);

my $tmpf = "$tmpdir/$$";

my $uri = $ENV{PATH_INFO};
$uri =~ s/^\///;
$uri .= '?' . $ENV{QUERY_STRING} if $ENV{QUERY_STRING};

my $res = $ua->get($uri, ':content_file' => $tmpf);
die "failed to retrieve $uri: $res->code" unless $res->is_success;
my $type = $res->header('Content-Type');
die 'not a image' unless $type =~ /^image\//;

my $image = Imager->new->read(file => $tmpf);
my $detector = Image::ObjectDetect->new($cascade);
my @faces = $detector->detect($tmpf);
unlink $tmpf;

if (&is_aho(scalar @faces)) {
    my $aho = Imager->new->read(file => $nabeatsu_photo);
    foreach my $face (@faces) {
        my $aho_scaled = 
            $aho->scale(xpixels => $face->{width}, ypixels => $face->{height});
        $image->paste(left => $face->{x}, top => $face->{y},
                      src => $aho_scaled);
    }
} else {
    foreach my $face (@faces) {
        $image->box(
                    xmin => $face->{x},
                    ymin => $face->{y},
                    xmax => $face->{x} + $face->{width},
                    ymax => $face->{y} + $face->{height},
                    color => 'red',
                    filled => 0,
                    );
    }
}

my $jpg;
$image->write(data => \$jpg, type => 'jpeg');
print $q->header(
                 -type => 'image/jpeg',
                 -content_length => length($jpg)
                 );
print $jpg;

sub is_aho
{
    my ($n) = @_;
    return ($n % 3 == 0) || ($n =~ /3/);
}

(追記) せっかくなので元ネタ的なものをリストアップしてみる.

2008-04-08 Tue

* Windows Vista の実装 [tech] 1 user

ためになる.


しかしこれって,中括弧の対応とかがひどいことになっているのはわざとな のか何なのか.

2008-01-12 Sat

* スラッシュドットジャパンのコメント表示方法を変える bookmarklet [tech]

Slashdot でコメントの表示形式を変えるた めに,イントロのすぐ下にあるフォームまでスクロールしてメニューから選 んで「変更」ボタンを押すのがかったるい,と思ったので bookmarklet 化. 車輪の再発明気味な気がするけど,まあ別にいいかと.

「threshold = -1,mode = ネストする,commentsort = 古い順」な設定に なっているので,違うのがお好みの方は適当に変えて使って下さい.

2008-01-08 Tue

* 「シンボリックリンクのリンク先や絶対パス名を取得したい」 [tech]

Unix 上でシンボリックリンクのリンク先を取得したい.

(中略)

とりあえず readlink とか realpath とかいうコマンドがまさに使えること がわかった.しかし,手元のマシンにはそんなものは入っていないので,

(中略)

#include <sys/param.h>
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char *argv[] ){
(以下略)

もっとお手軽にこんなんじゃダメでしょうか.

% perl -e 'use Cwd; print Cwd::abs_path($ARGV[0]), "\n"' some_path

2008-01-03 Thu

* camera の語源 [tech]

カメラ・オブスクラ(camera obscura、camerae obscurae、ラテン語で「暗い部屋」の意味。

カメラ・オブスクラ - Wikipedia

つまり「カメラ」はもとをただすと「部屋」の意味.(わりと専門分野のは ずなのに)知らなかった….常識?

2007-12-08 Sat

* Windows XP のログオフや終了が異常に遅い場合 [tech]

WindowsXPのログオフや終了が異常に遅い場合、 Microsoft提供のUser Profile Hive Cleanup Serviceを試してみると良いかもです。

某実験用PCで試してみたら,てき面に作用した.

2007-12-02 Sun

* 5分で何個のHTMLエレメントを列挙できるか [tech]

49個(残り42個).意外と出て来ないもんだ.

2007-10-27 Sat

* ELF ファイルが Linux のものであるか否かを知る方法 [tech] 1 user

【追記】さらにその後,「『7f454c46 01010100 00000000 00000000』の時 点でelfファイルであることは判るが,Linuxで作られたかは0x0114バイトは 見ないと判らないはず,この人は『バイナリ萌え』ではない!」との突っ込 みを頂きました.

Robot.Mとの優雅な平日:バイナリ萌え,再び・・・

0xcafebabe の話を知った大学生の頃,危うくバイナリ萌えの暗黒面に落ち そうになったものの,軽うじて生還して今は普通人として暮らしています.


というわけでバイナリ萌えでない私にとっては,上の「Linuxで作られたか は0x0114バイトは見ないと判らない」はすごく不思議だった.だって ELF って 8 バイト目に OS/ABI あるじゃん.で,ELFOSABI_LINUX (= 0x03) っ て定義されてるじゃん.そこ見ればいいんじゃないの?

…と思って手近にあった Vine Linux に転がっているバイナリを調べてみる と,8 バイト目は軒並 0x00 なのであった.0x00 は ELFOSABI_NONE であり ELFOSABI_SYSV である.で,確かに readelf すると

% readelf -a /bin/ls | grep OS/ABI
  OS/ABI:                            UNIX - System V

と表示されるのであった.むー.

さてそれではどうやって Linux のものだと判定すればよいのか,そしてそ れはなぜ「0x0114バイトは見ないと判らない」のか,ちょっと調べてみるこ とにした.

調べたのは file コマンド.

% file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1, for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped

てな感じで Linux だと判定してくれるので,きっと何か手がかりがあるだ ろう.

というわけで FreeBSD の /usr/src/contrib/file/readelf.c あたりを 眺めてみると,donote() の中で判定しているようだ.ELF のプログラムヘッ ダのうち NOTE タイプのものを探して,その先頭 Elf32_Nhdr サイズ分 (た だし 32 ビット ELF の場合.定義は file/readelf.h の中で,実際のサイ ズは 12 バイト) スキップしたところに 'G', 'N', 'U', '\0' という 4 バ イトがあることを確認し,その次の 1 バイトを調べている.そこが 0x00 だったら GNU/Linux であるという判定をしているようだ.ちなみにそこに 出てくる値としては

#define GNU_OS_LINUX    0
#define GNU_OS_HURD     1
#define GNU_OS_SOLARIS  2

が定義されている.ちょwww HURD って単語久々にみたわwwwwwwwww

NOTE タイプのプログラムヘッダがどこにあるかというと,

% readelf -a /bin/ls
(略)
Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
(略)
  NOTE           0x000108 0x08048108 0x08048108 0x00020 0x00020 R   0x4
(略)

てな感じになっていて,先頭からのオフセット 0x108 バイトのところから 始まるらしい.ここから Elf32_Nhdr 分の 12 バイト進んだ 0x114 の,さ らに 'G', 'N', 'U', '\0' の分の 4 バイト進んだところ,つまりオフセッ ト 0x118 バイトのところを見るとようやく Linux かどうかがわかる,とい う仕組みのようだ.実際に見てみると,

% hexdump -c /bin/ls | grep ^0000110
0000110 001  \0  \0  \0   G   N   U  \0  \0  \0  \0  \0 002  \0  \0  \0

となる.うーん,なるほど.

ついでに書いとくと,NOTE タイプのプログラムヘッダは必ずしも 0x108 か ら始まるわけじゃなくて,例えば /bin/rpm なんかは

  NOTE           0x000094 0x08048094 0x08048094 0x00020 0x00020 R   0x4

なのであった.つまりオフセット 0xa4 (= 0x94 + 12 + 4) を見る必要があ るってことでいいかな?

% hexdump -c /bin/rpm | grep ^00000a0
00000a0   G   N   U  \0  \0  \0  \0  \0 002  \0  \0  \0 002  \0  \0  \0

よさげである.

というわけで,どうやら「Linuxで作られたかは0x0114バイトは見ないと判 らないはず,この人は『バイナリ萌え』ではない!」という突っ込みもバイ ナリ萌えとしてはまだツメが甘いようです.うーむ,バイナリアン恐るべし. ついて行けん.


で,最初の話に戻るんですが,これらのファイルってどうして OS/ABI に ELFOSABI_LINUX を使わないんでしょう? 逆に言うと ELFOSABI_LINUX って どういうときに使われてるんでしょう? 教えて偉い人.

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [baby touch] 『あまり使われないのは、システムコールとかの"実装"に依存し... (2007-11-06 21:15:48)

2007-10-14 Sun

* 高専ロボコン東北地区大会 [tech]

NHK 高専ロボコンの東北地区大会が,名取市民体育館で行われました.主審 を務めて来ました.ぐったり.

放送前なので詳しくは書きませんが,いろいろありました.ともかく,高専 生の皆さんにはおつかれさまとありがとうを言いたいです.

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [jweijatozn] Wow, cool man, big thanks! <a href=ht... (2008-05-07 15:15:59)

* [ozdgbjbbdb] <a href=\'http... (2007-12-03 12:16:24)

* [bsctavswbt] <a href=\'http... (2007-12-03 09:46:04)

* [ltlvsmyfpt] <a href=\'http... (2007-12-03 07:46:31)

* [slyifbqjjb] <a href=\'http... (2007-12-03 06:47:47)

* ...

2007-09-15 Sat

* PC が壊れたので Gmail を使い始めた [tech]

職場でメインで使っているデスクトップ PC (DELL Optiplex SX270) が突然 壊れた.なんか本体内からブチュだかブシュだかいう破裂音っぽい音がする と同時にディスプレイが暗転して,本体からファンの音が爆音で鳴り始めた. あとの症状は一年前に故障したとき [2006-05-22-1] と同じ.あー,キャパ シタでも破裂しましたかね.

前回 [2006-05-22-1] も書いた通り,この子が壊れるとメール処理系統が壊 滅なので大わらわである.

で,衝動的に Gmail に移行した.いや,どうも抵抗があったんですけどね. というかまだ微妙に抵抗あるんですけどね,もういいわ.ふっ切った.

そんなわけで,ちょっとメール関連はしばらくゴタゴタしています.送った はずなのに返事がないとかいう場合は見失っている可能性があるので,すみ ませんがもいっかいつついてください.いや,常にそう [2007-06-16-1] な んですが(ぉ


さて,目下の悩みはデスクトップ PC をどうするか.保証期間は切れている ので修理する気はさらさらないです.思い起こせばこの子は 1 年に 1 回の ペースで故障してくれたんだな.今までこんなに虚弱なマシン見たことない. まあお別れです.

というわけで,新しいデスクトップ PC を買うか,それともノート PC の方 にすべて集約することにするか悩み中.ノートですべてを済ますってのも悪 くはないかなと思うのだけど,いざそいつが故障したらと思うとこれまた不 安でもあります.

2007-09-14 Fri

* 「今の子供達にどうやってプログラミングの楽しさを教えたらいいのか?」 [tech] 1 user

サイン関数を使って放物線の動きを表現したり

放物線じゃねえええええええええ


けど私も小学生の頃それやりましたorz.だって2次関数なんて習ってないも ん.三角関数なら BASIC のマニュアルに載ってたもん.

2007-09-10 Mon

* 初音ミクがメタルを歌います [tech]

VOCALOID2 がすごい.

VOCALOIDのリアリティの秘密は、長年にわたってYAMAHA株式会社にて研究開 発されてきた“Frequency-domain Singing Articulation Splicing and Shaping”(周波数ドメイン歌唱アーティキュレーション接続法)の最先端技 術が採用されています。

これにより、VOCALOIDの歌声(母音/子音)は滑らかにつながり、実際の人 間と変わらないような流暢な日本語を発音します。

http://www.crypton.co.jp/mp/pages/prod/vocaloid/

しかし英語は苦手らしい↓

2007-09-08 Sat

* Googleニュース日本語版のAtom/RSSフィード [tech]

フィードが始まった,と思ったらいつの間にか無くなった [2006-04-11-1], と思っていたのだけど,実はこっそりフィードされていたらしい.知らなかっ た.

便利.

2007-09-07 Fri

* MIPS のシフト命令 [tech]

MIPS の演算命令って,

  • レジスタ-レジスタ間の and に対してレジスタ-即値間は andi
  • 同じく or に対して ori
  • 同じく add に対して addi
  • (略

てな風に,即値を使う命令は後ろに i がつくの場合がほとんどなのだけど, なぜかシフト命令だけはそうなっていません.これってどういう経緯でこう なったんでしょう?

例えば左論理シフトの場合,シフト量を即値で指定する命令が sll (shift left logical) で,シフト量をレジスタで指定する命令が sllv (shift left logical variable) となっています.

歴史的事情なのかなあとも思ったのだけど (sllv とかが後から追加された とか),命令のビットエンコーディングを見てもあまりそうは思えないし, 少なくとも Hennessy らの 1982 年の論文の時点で既 にバレルシフタは用意されていたようです.

いや,単に名前の話なのでどうでもいいのですが,授業で扱うときにちょっ と面倒です (エンコーディングの説明も面倒).

(参考)

2007-09-06 Thu

* UNIX MAGAZINE Classic with DVD [tech]

UNIX MAGAZINE アーカイブDVD(4枚) 創刊号(1986年11月号)から2006年4月号までの記事の99%を、PDFで収録しました。

光の速さで予約した.

アスキー書籍編集部 / UNIX MAGAZINE Classic with DVD(DVD4枚付)
アスキー書籍編集部 / UNIX MAGAZINE Classic with DVD(DVD4枚付)

2007-08-22 Wed

* ディスプレイの高さ [tech]

最近どうも肩こりっぽいというか首が疲れるというか,集中力が切れる前に 頭の重さに耐えられなくなって活動限界に達するというか.もしかしてディ スプレイの高さが合ってないのではなかろうか.いっちょ調節し直してみる か.

とか思ったのだけど,

モニターはやや見下ろす位置にすることで、疲れを改善することが出来ます。 理想的な位置は、水平視線から、上方5度、下方15度が理想とされていま す。

目の疲れ・眼精疲労研究室 - 疲れ目改善法

ディスプレイは目の高さより低めにしたほうが目の疲れを軽減できます。

パソコンと肩こり解消法 - Yahoo!知恵袋

首や肩、目の筋肉に疲労をためないためには、ディスプレーの高さも必要です。
負担を少なくするために、ディスプレーを見る視線が水平から上に5度以内の範囲におさまるように設置します。

生活環境の総チェック

肩こりがひどく医者へ行ったところ、「PCの下に電話帳2冊おきなさい」といわれ、忠実に実行してみたらすっかり楽になった、とのこと。

PCのディスプレイの高さというのは、少し気にするだけで随分と身体への負担が違うのですね。

横山彰吾のブログ「雇われ社長日記」

どっちなんすか! わかりません><

多数決で考えるとやや低めがいいのかな.でも現状で既にやや低めなんです けど….

2007-08-15 Wed

* LaTeX から PDF を作る際に Times 系フォントを埋め込む方法まとめ [tech] 11 users

一部の学会に原稿を提出するとき,フォントとしては Times を使い,かつ それを提出する PDF ファイルに埋め込め,などと指示される場合がある (IEEE とか IEEE とか IEEE とか).単に指示されるだけでなく,これを守 らないと原稿を受け取ってもらえなかったり,ひどい仕上りで収録されてし まったりして悲しいことになる.

ところが,Times は売り物であって普通の PC には入っていないため (Windows に入っているのは Times New で別物),単純に例えば Adobe Distiller で「すべてのフォントを埋め込む」などと設定しても埋め込んで はくれないのである (というか存在しないものは埋め込みようがない).

というわけで,LaTeX で原稿を書く場合に限って,Times ファミリのフォン トを埋め込む方法,あるいはそれに準ずる方法を,わかる範囲でちょっとま とめてみる.


「どの段階でフォントが埋め込まれるのか」をよく考えないと頭がこんがら かるのであらかじめ整理しておこう.DVI から PDF を作る場合のフローは 大別すると

  • dvips などで,いったん PostScript (以下 PS) ファイルを作って,その後 Adobe Distillerなどで PDF に変換する
  • dvipdfmx などでいきなり PDF を作る

の二つがあって,前者の場合は,DVI → PS の時点でフォントを埋め込むか, PS → PDF の時点で埋め込むかの二通りの選択があることに注意する.


本物の Times 系フォントを埋め込む (製品を買って来る)

Times ファミリのフォントは例えば Linotype などが販売している.それを買って来て 適当な場所にインストールするというのが正攻法.なのだが,買ったことな いので私はよく分からない.

本物の Times 系フォントを埋め込む (Acrobat Reader 3 付属のものを使う)

実は Linotype の Times フォント (など) は,Acrobat Reader のバージョ ン 3 以前には付属していた.今でも UNIX 用のものは Adobe の ftp サー バに置いてあるので,これを入手すれば本物の Times が手に入ることにな る.ただしこれはライセンス的にはグレーっぽいのでおすすめしない.

おすすめはしないが一応手順を書いておくと:-),まず

をダウンロードしてきて展開する.中に READ.TAR があるのでさらに tar で展開すると fonts というディレクトリがあって,その中にいわゆる基本 14フォント (Times,Helvetica など) が pfa と呼ばれる形式で置いてある.

とりあえず Times ファミリだけでよければ,

  • Times-Roman
  • Times-Italic
  • Times-Bold
  • Times-BoldItalic

の 4 つを取り出しておく.これをどこか適当なフォルダにおいて,そのフォ ルダを Adobe Distiller の [設定]-[フォントの場所] に追加しておく.

以上のようにしておけば,

% dvips -Ppdf hoge.dvi

のようにして普通に作った hoge.ps ファイルを Distiller にかけることで Times が埋め込まれるようになる.-Ppdf オプションで作った PS ファイル には基本14フォントは埋め込まれず,/Times-Roman とか /Times-Italic と かのフォント名だけが書き込まれている.Distiller がこれを見て,必要な フォントを埋め込むことになる.

同様に,dvips とか dvipdfmx とかがこのフォントを使うようにも設定でき ると思うけど,面倒なのでパス.

(参考) http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/23063.html

Times クローンのフォントを埋め込む (dvips 時)

多くの LaTeX のディストリビューションには,Times のクローンフォント が付属して来る.(URW)++ Design & Development の Nimbus Roman No9 L なるフォントファミリらしい.

teTeX 2.x 以降の場合 (UNIX の場合),

% dvips -Pdownload35 hoge.dvi

とすれば hoge.ps にこれらのフォントが埋め込まれる.W32TeX (Windows) の場合は download35 が無いようなのだけど

> dvips -Pdl hoge.dvi

でよいだろうか.

上記の方法がダメな場合 (インストールされている LaTeX ディストリビュー ションのバージョンが古い場合など) は,

のようにするとうまく行くかも知れないらしい.

なお,これらの方法で作成した PDF のフォントのプロパティを Acrobat で 見ると,フォント名はしっかり NimbusRomNo9L とかになっている.なので, IEEE の指示である「Times を使え」に,厳密には従ってないのではないか という一抹の不安が頭をよぎるが,気にしない方が健康によい.(そもそも クローンを使うという選択をした時点でわかり切ったことである)

Times クローンのフォントを埋め込む (dvipdfmx 時)

W32TeX (Windows) の場合,

> dvipdfmx -f dlbase14.map hoge.dvi

で,Nimbus Roman No9 L が埋め込まれた hoge.pdf ができるようだ.UNIX でこれに対応する方法があるのかどうかはよくわからない.

(追記 2007-08-16) UNIX の場合,

% dvipdfmx -f dvipdfm_dl14.map hoge.dvi

でよさそうです.(追記ここまで)

Times クローンのフォントを埋め込む (distiller 時)

さて,このクローンフォントを PS → PDF 時に埋め込むことはできないの だろうか.これができれば,PS ファイルしか手元にない場合も Times を埋 め込んだ PDF を作れるようになるはずだ.

dvips -Ppdf などで普通に作った PS ファイルには,前述のように /Times-Roman とか /Times-Italic とかの名前だけが指定されている.クロー ンフォントは名前が違うので,そのままでは Distiller は埋め込んでくれ ない.

じゃあ,名前変えればいいんじゃね?

というのが自然な発想である.手段は二通りあって

  • PS ファイルの中に現れる Times-Roman 等を Nimbus なんとか等にごっそり置換する
  • フォントファイルの中に現れる Nimbus なんとか等を Times-Roman 等に置換する

前者は難しくないと思うので読者にお任せする.(文章本体に 「/Times-Roman」とかの文字列が出て来る場合のことを考えなくていいのか? という心配はあるけど…)

で,後者だが,最初は単純にファイルの中に出て来るフォント名を機械的に 置き換えればいいのかと思ってやってみたのだが,うまくいかない.もう ちょっと真面目にいじる必要があるようだ.

必要なものは,まず Nimbus Roman No9 L のフォントファイルそのもの. 多くの LaTeX のディストリビューションに

  • utmr8a.pfb (Times Roman 相当)
  • utmri8a.pfb (Times Italic 相当)
  • utmb8a.pfb (Times Bold 相当)
  • utmbi8a.pfb (Times Bold Italic 相当)

という名前で含まれているのでそれを用意する.手元にない場合,例えば CTAN だと

にある.次に,これらのフォントファイルを操作するために t1utils (http://www.lcdf.org/type/) をインストールしておく.FreeBSD の ports だと print/t1utils にある.

これで準備ができたので,上記の pfb ファイルを t1disasm で逆アセンブ ルし,フォント名を置き換えて,t1asm で再びアセンブルし直せばよい.例 えばこんなスクリプトを用意して

% ./fake_times.pl utmb8a.pfb utmbi8a.pfb utmr8a.pfb utmri8a.pfb

と実行すると,fake_times_utmb8a.pfb などの 4 つのファイルが生成され る.これをどこかにおいて Distiller の [設定]-[フォントの場所] に 追加してあげればよい.

このようにして作成した PDF ファイルは,Acrobat でフォントのプロパティ を見ても Nimbus なんとかの名前が出て来なく,本物の Times が埋め込ま れているかのように見えるようになる.

ただし,たぶんこの方法もライセンス的にグレーというか,少なくとも Linotype の商標権は侵害していることになる気がするので,良い子は真似 してはいけない.(← じゃあ書くな)

IEEE PDF eXpress を使う

で,長々と述べておきながらちゃぶ台をひっくり返すのだが,投稿先が対応 しているのであれば,IEEE PDF eXpress を使うのが一番楽かも知れない.

PS ファイルをアップロードすれば,PDF に自動的に変換してくれる (試し たことないけど TeX のソース一式を送ってもよいらしい).フォントのプロ パティを見ると Times-Roman とかになって埋め込まれているので,おそら く IEEE が正規にフォントのライセンスを購入しているのだろう (知らんけ ど).

投稿先の会議とかが対応してくれないと使えないのが難点だが,要するに Conference ID を入れればよいだけなので,その時期に投稿締め切りがあり そうな適当な会議のうわなんだおまえやめr


以上,夏休みの自由研究でした.

2007-08-07 Tue

* 「なかのひと」にアクセス元の性別・年齢推定機能 [tech]

例えば、A女子大学からのアクセスは98%が女性で18〜22歳、B銀行からのア クセスは70%が男性で平均45歳――など、学校や企業が公表している男女比 や年齢データを活用。一般のISPからの接続には、ネットユーザーの男女比・ 年齢の平均値をあてはめている。

閲覧者を個別に追跡して巡回先の傾向から推定,みたいな危険気味なのを一 瞬想像してしまった.(つか Google あたりが既にやってそうでアレだ)

2007-07-16 Mon

* 「自動機械萌え」というジャンル [tech]

スラッシュドット ジャパン「縄と釘でプログラミング?」という記事で アレクサンドリアのヘロンの名前を久しぶりに目にした.

子どもの頃,たぶん学研のひみつシリーズあたりで読んだのだと思うのだけ ど,ヘロンの発明が大好きだった.特に自動ドア.

ヘロンに限らずこの手の自動機械モノ (って「この手の」の範囲ははっきり しないのだけど,たぶん単純でしかも割と身近な機構の組合せで連鎖的に動 作するもの) がかなり好きな子どもだったように自分では記憶している.

似たようなのでよく覚えているものでは,何かのマンガで読んだ,朝になる と自動的に朝食とかの準備が始まったりなんかするやつ.今でいうピタゴラ 機械みたいな仕組みになっていて,牛乳屋さんが牛乳ビンを置くと,卵が転 がりだしてフライパンに割れて落ち,ガスコンロの火が入り…,で途中はさっ ぱり覚えてないけど,最後はアドバルーンか何かの浮力でカーテンが巻き取 られてユーザが目を覚ますという.ああ,誰かコピーとか持ってませんかね. たぶん小学館あたりのなんかの雑誌だと思うのですが.

で,大人になった自分がエンジニアという職業を選んだのって,その頃の刷 り込みの影響が大きかったんだろうなと改めて思います.いや,その頃から ヲタの片鱗が現れていただけかも知れませんが.


なお,ヘロンの「縄と釘」機械の設定を「プログラミング」と呼ぶのが妥当 かどうかについては,id:sumii があと で詳しく書く予定です.ご期待ください.(malaメソッド)

2007-07-10 Tue

* 「ドコモとの協議が不調」,MVNOが総務相に裁定求める [tech]

MVNO(Mobile Virtual Network Operator)の日本通信は,NTTドコモから3G通信網を調達するための両社の協議が難航しているとして,総務大臣に裁定を求める申請をした。

bモバイルで有名な日本通信がドコモともめているらしい.はてさて.

2007-07-09 Mon

* 広い画面やマルチモニタ環境でポインタを見失わないための設定方法 [tech]

最初,Ctrl をプレスしっぱなしにして「あれ? 動かない」とか悩んだ. Ctrl を離す瞬間に出るのか.

しかしマウスをくるくると軽く回すんじゃダメなんですかね.

2007-07-09 Mon

* 自動販売機が受け入れてくれない10円玉 | エキサイトニュース [tech]

自動販売機の内部で機械がどんな風にコインを識別しているか、などの構造については詳しくはお話できないんですが、機械の中で硬貨を飛ばす時に、ギザギザのあるものとないものとでは回転数が違うので、飛距離に差がでるんです。その違いで機械はギザギザのある10円玉を10円玉と認知しないんです

飛距離…! なんだかすごい判定法使ってるんだな.

2007-07-04 Wed

* 小さな USB メモリ各種 [tech]

ソリッドアライアンスから裸のUSBメモリ:

裸(ハダカ):

PCパーツブランド『挑戦者』ET-128M 製品紹介:

A-DATA Technology - Reader Series microSD + micro Reader(microSD+USB interface):

ポケットビットミニ(USM-H):

(追記) コメントで情報を頂いたので追加.

iDisk Diamond 1GB USBメモリー.これもソリッドアライアンス.

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [baby touch] iDisk Diamondは駄目ですか?http... (2007-07-11 17:10:33)

2007-06-28 Thu

* World Clock いろいろ [tech]

World Clockr (JavaScript.数を自由に増やせる.Google Map から場所を選べる)

Flash Map of World Time Zones Online (Flash.アナログ表示を選べる)

time and date.com (付加情報が豊富.タイムゾーン略称から探したりするのに便利)

海外にいるときとかに,ブラウザのタブに開きっぱなしにしとくと便利です. 一度開けばネットワーク切れても大丈夫.あと,海外への論文投稿でギリギ リまでねばるときとかにも重宝しますww


ギリギリまでねばるというのがどういうことかというと,例えばついこの間 採否通知が来た某会議は,投稿数が「more than 1300」だったらしいのです が,私の投稿番号は 136x でした.ちょwwwwwwww

2007-06-14 Thu

* LED残像ディスプレイ扇風機 [tech]

自転車のタイヤとかでやると面白いかも.


とか思ったら余裕で既出だった.

2007-06-13 Wed

* Image Magick で GIF アニメーションを作る [tech] 1 user

個人的メモ.

% convert -delay 8 -resize 80% hoge???.png output.gif

-delay は 1/100 秒単位.繰り返し回数を指定するなら -loop を使う.指 定しなかったらエンドレスになるようだ.


どこで GIF アニメを使っているかは秘密(ぉ.

2007-06-12 Tue

* ハイパー漢字検索を勝手に Ajax 化 [tech] 1 user

pya! filter [2006-08-15-1] に引き続いて「他人のふんどしシリーズ」第2弾.

先日 [2007-06-06-2] ちらっと触れた ハイパー漢字検索 の Ajax 化を,勢いのみでやっ てみた.怒られたらすぐやめます.

サーバを2 段通していて,しかもキャッシュとか全然してないという状況な のでかなりレスポンスが悪いですが,まあとりあえず.


こういう風に同期型サービスを非同期化するという作業を「汎用的に」提供 するメタサービスが実現できたら,ひょっとして需要あるのかもとか思った. そういうのって既にありますかね?

2007-06-06 Wed

* 「HTML Entity Character Lookup」と「ハイパー漢字検索」 [tech]

HTML Entity Character Lookup:

これを見て,ハイパー漢字検索を思い出した.以前よく使ってたのがいつか らか使えなくなっていて忘れかけていたけど,リニューアルして復活してた らしい.

ハイパー漢字検索:

これも Ajax 化すると便利なのかも?

関連記事:
[2007-06-12-2] ハイパー漢字検索を勝手に Ajax 化

2007-05-25 Fri

* 英文校正サイト NativeChecker [tech] 1 user

あー,そういえば,こういう作業って毎日のように手動でやってるわ.すば らしい.

2007-05-21 Mon

2007-05-19 Sat

2007-05-18 Fri

* w3m でファイルを強制的に HTML として読む [tech] 1 user

localでみる時に w3m -T text/html しないとだめという問題があります。

w3m で表示してから v でもいいかと思いますし。

おおお.

hoge.html.ja みたいなファイルをローカルで見るのが面倒だといつも思って たけど,これでちょっと幸せになった.

ローカル用に 拡張子 → MIMEタイプの対応づけを決め打ちできる方法があ るともっと嬉しいのだけど.

2007-05-17 Thu

2007-05-16 Wed

* false positive と false negative [tech] 1 user

どっちがどっちだかよくわからなくなるという話題ですが,そりゃ当たり前 です.そのシステムがどちらを positive でどちらを negative であると扱っ ているかに依存しているので,それが明示されていないか,あるいは文脈上 明確になっていないと,混乱するというか不定です.

false positive

  • 「本当はスパムじゃないのにスパムと判定された」

false negative

  • 「本当はスパムなのにスパムじゃないメールとして判別された」

「スパムを検出するシステム」であれば上記の通りですが,「スパムじゃな いメールを検出するシステム」について議論するならば positive / negative は逆になります.

そういう意味で,個人的には false accept / false reject とかの言い方 の方が誤解の可能性が減るので,好んで使います.

2007-05-03 Thu

* itojun2.0 (RE: IPv6 Type 0 Routing Header issues) [tech]

よくわからないけど大変だということはよくわかった.

2007-05-02 Wed

* 日本初・民営刑務所 囚人が「ソフト開発」 [tech]

2007年05月02日 otsune 「Ruby on Jails」か

http://b.hatena.ne.jp/entry/http%3A//www.j-cast.com/2007/05/01007306.html

誰がうまいこと言(略

2007-05-02 Wed

* 『プレイステーション9は粉末状で鼻から吸引、脳に直接作用』 [tech]

イーガンっぽい.

2007-04-29 Sun

2007-04-26 Thu

* 『2万台の新世代ミドルレンジGPU「GeForce 8600GT」と「GeForce 7600GT」と比較する』 [tech]

GeForce を2万台つないで超並列処理する話かと思ってワクテカしながらペー ジを開いた.がっかりだよ!!

2007-04-24 Tue

* 十条電子、自動的に暗号化されるセキュアUSBメモリ「Disk Key Cipher」 [tech]

利用にあたっては8桁から32桁のパスワードによる本人認証が必要で、3回間違えるとメモリ内のファイルが消去される。

ちょwwww

2007-04-22 Sun

* 正規表現を//で囲む理由 (にぽたん - 正規表現信者の憂鬱) [tech]

大爆笑した.

2007-04-18 Wed

* 熱雑音 [tech] 1 user

私も物理はよくわかってませんが,熱雑音の発生原理自体は「真にランダム」 と見なしてよいけど,それを「乱数として使えるように取り出す」系がラン ダム性を保ってくれているかどうかが問題,なんじゃないかなあなどと思っ ています.極端な例を挙げると,えらく時定数の大きい読み出し回路をつけ て,高レートでサンプリングしたら,もうランダムとは呼べない,みたいな.

では,例えば「放射性崩壊」を利用したようなものとは何が本質的に違うの かというと,それらのように量子力学的現象の結果をそのスケールのまま乱 数として取り出すのとは違って,「抵抗の両端に生じる電位差」などの巨視 的スケールの現象として読み出さなくてはならない点,なのかなあと.

2007-04-18 Wed

2007-04-17 Tue

2007-04-06 Fri

* 家電製品ミニレビュー - iRobot「ルンバ・スケジューラー 5510」 [tech]

どうでもいいが「センサリング」とか「センサを発する」とかいう表現はな んとかならないものか,とか思うのは私が既に老人だからなのだろうか.

2007-04-03 Tue

* YouTube+BlogでTVコンテンツの視聴形態が変わりそうなのは若い人だけ...か!? [tech]

先日、DVDレコーダーを作っている部門の偉いさんと話をしていたのだが、「(著作権問題を無視したとすれば)YouTubeとBlog, SNSを組み合わせたTV番組の視聴スタイルって最高だよね!」という話題をちぃいいいいっとも理解してもらえなかったのがものすごくショッキングだった。


ふとこんな言葉を思い出した:

重役の七割が賛成するプランは時すでに遅く,
七割が反対するプランでやっと先手がとれる

松下 幸之助

で,この方の勤務している「某家電メーカー」はどこなんだろうとか下世話 なことも思った.

2007-03-11 Sun

* Windows のメッセージボックスのテキストはクリップボードにコピーできる [tech]

ずっとできないもんだと思って不満だった.実は Ctrl-C で普通にコピーで きるらしい.ていうかひどいユーザインタフェースの典型例だ.

Firefox はダメらしい.むう.

2007-02-28 Wed

* PukiWiki 狙い打ち攻撃? [tech]

研究室のウェブサーバの /var があふれてひどいことになっていた.何が原 因なのだろうと調べてみたら Apache のアクセスログが膨れ上がっていた. (というかそもそも /var が小さすぎるのだがそれはさておき)

で,中を見てみると,あるユーザが動かしている PukiWiki のページに対し て連続して大量のアクセスがあるようだ.何かの攻撃なんですかね.で,別 に攻撃が成功しているわけでもなさそうなので,それ自体は別にいいのだが, それが全部ログに残るのがうっとうしい.ちなみに Wiki のディレクトリ自 体を消してみても,えんえんとアクセスが続く.バカかと.

というわけでまずは安直に deny from で弾いてみたのだけど,代わりに error_log があふれるだけであった.うがー.error_log は CustomLog で 作るものではないので,環境変数をセットして消したりはできなさげ.かと いってerror レベル以下を記録しないことにするのもいかがなものか.

しかたないので,パケットフィルタで元から断つことにした.他のページへ のアクセスも断っちゃうけど,もういいや.シラネ.Linux なので iptables で

# iptables -A INPUT -s nnn.nnn.nnn.nnn -p tcp --dport 80 -j DROP
# iptables -A INPUT -s mmm.mmm.mmm.mmm -p tcp --dport 80 -j DROP
# /etc/init.d/iptables save
# /etc/init.d/iptables restart

な感じ.特にひどい 2 ホストだけを弾くことにして,とりあえずは落ち着 いた.自動化する方がいいかも知れない.Vine Linux の場合,上のように 手動で設定した iptables の内容は /etc/sysconfig/iptables に保存され ていて,OS 起動時に読み込まれるのだそうな.

2007-02-23 Fri

* 感知中 [tech]

長野県某市,交差点で信号待ちをしていたのだけど,

trafficsig/20070222-001656.jpg

「感知中」だそうです.…何を? Σ(゜д゜;)

信号機において、数m上空または電柱に取り付けられたセンサーが自動車の 停止を感知し、一定時間後に自動車信号を青にする信号処理方法である。 (中略) センサーが感応したことをドライバーに知らせる目的で[感知中]と 表示されるものもある。

車両感応式信号機 - Wikipedia

ほー.初めて見た.いや,見てても気づいてなかっただけかも知れないけど.

2007-02-20 Tue

* Ctrl+Esc とか Ctrl+Tab とか [tech]

…皆さん,どうやってタイプしてるんでしょうか.やっぱり右にも Ctrl キー があるのが普通なのだろうか.ちなみに Ctrl+Esc は Windows のスタート メニューを開くとき,Ctrl+Tab は Firefox の Tab Mix Plus でタブを移動 するときとかです.

実は Ctrl+Q とか Ctrl+Z とかですら押しにくいと思ってます.

最終更新時間: 2008-04-23 08:48


Shingo W. Kagami - swk(at)kagami.org