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

tech - from swk's log

2006-07-13 Thu

* ソーシャルブックマーク横断 - Mix Clips [tech]

とりあえず RSS を見張ってみることにする.

2006-07-10 Mon

* YouOS - ウェブOSのメリットと可能性を垣間見る [tech]

同サイトへアクセスして自分のアカウントにログインすると、ブラウザの画 面内にもうひとつのデスクトップが展開されます。左上端には「YOS Stuff」 というWindowsの「スタートボタン」に相当するものがあり、これをクリッ クすると、チャットやメール用ソフト、リッチテキストエディター、ファイ ルブラウザー、スティッキーズ、FlickrやYouTube専用のRSSリーダー、さら にウェブブラウザー(!)まで選べるようになっています。

YouOS につないでその中でウェブブラウザ開いて,それで YouOS につない でその中でウェブブラウザ開いて,それで YouOS につないでその中でウェ (ry

2006-07-06 Thu

* 「google」が動詞としてオックスフォード辞書に載る [tech]

「ぐぐる」が広辞苑に載る日は来るのだろうか.

2006-07-06 Thu

2006-07-05 Wed

* HTML の table で,ヘッダを固定にしてデータ部だけスクロール [tech][firefox] 4 users

ソート [2006-07-05-2] に引続き,

行数の多い表の場合,ヘッダ部がスクロールアウトしてしまわないように固 定したくなる.

というようなニーズもやっぱり結構あって,実際いろんなところでそういう 機能を実現する JavaScript のコードが公開されている.いくつか当たって みた中で,一番気に入ったのはこれ:

気に入った理由は,

  • 比較的レイアウトが崩れない
  • ブラウザ依存が少ないっぽい (といっても IE と Firefox しか試してないけど)
  • 日本語が入ってても崩れない

って要するに崩れないことが重要.他の方の実装も含めて,要するにヘッダ 部と本体とを分離して別の table 要素にして,本体だけにスクロールバー をつける,というのが動作原理なので,列幅の再現性をいかに高くするかが ポイントになる,のだと思う.ここで紹介されているコードは,(やっぱり ちょっとはズレる場合があるのだけど) かなりイケている,と思う.ありが たく使わせて頂いております.


メモその1:

テーブルの height は px 単位で指定するようになっている.画面全体に対 するパーセンテージで指定できると便利かな,と思って

newDiv2.style.height = tHeight+'px';

のところを 'px' じゃなくて '%' にしてみたのだけど,doctype スイッチ [2005-11-15-2] に引っかかるようになってしまった.doctype 宣言にシス テム識別子がある場合,'px' だとスクロールバーが出るけど '%' だと出 ない.システム識別子がなければ,どちらでもスクロールバーが出る.謎.

メモその2:

作者の Mars さんも書いておられますが,このままだと印刷するときちょっ と困る (全体が印刷できない).というわけで,かなりアドホックですが, こんな回避策をとってます.

(以下の実装は obsolete → メモその3 へ)

まずグローバルな変数を 2 個用意.

var newDiv2;
var myHeight;

Tscroller() の中で newDiv2 をローカル変数として宣言するのをやめて, このグローバル変数を使うことにする.つまり単に

var newDiv2 = document.createElement('div');

newDiv2 = document.createElement('div');

にする.それから Tscroller() の中のどこかで

myHeight = tHeight;

してやる.最後に

function ToggleScroll()
{
  if (newDiv2.style.height == '') {
    newDiv2.style.height = myHeight + 'px';
  } else {
    newDiv2.style.height = '';
  }
}

な関数を定義しておいて,適当な場所から href なり onclick なりで呼べ るようにしておく.これでスクロールバーをオン・オフできます.たぶん.

もっときれいに作れる気もするけど,最小の改造でやるならこんなところだ ろうか.

メモその3 (追記):

メモその2 がちょっとあまりにもアドホックすぎた気がする.テーブル 2 つ以上扱おうとしたらもうダメだし.もうちょっとだけ真面目に書きます.

メモその2 で書いた改造はすべて撤廃,改めて元の Tscroller() の最後あ たりに以下を入れて,

newDiv2.height_saved = tHeight;

以下のような関数を定義する.

function ToggleScroll(tid)
{
  var newDiv2 = document.getElementById('D_' + tid + '_B');
  var tHeight = newDiv2.height_saved;

  if (newDiv2.style.height == '') {
    newDiv2.style.height = tHeight + 'px';
  } else {
    newDiv2.style.height = '';
  }
}

引数には Tscroller に与えたのと同じく,テーブルの id を渡します.

<a href="javascript:ToggleScroll('tb')">
Click here to toggle the scroller</a>. 

div に height_saved なんていうプロパティを勝手に作っているところが非 常にうさんくさい.こういうことするのって規格上はダメなんですかね? 一 応 IE と Firefox では動いている模様.

関連記事:
[2006-07-08-1] bloglines の keep new をまとめて解除する bookmarklet

2006-07-05 Wed

* HTML の table を sort できるようにする [tech][firefox]

HTML の表を,列名をクリックしてソートできるようにしたい.

というようなニーズは結構あって,実際いろんなところでそういう機能を実 現する JavaScript のコードが公開されている.いくつか当たってみた中で, 一番気に入ったのはこれ (の試作5):

気に入った理由は,

  • 比較関数やデータ取得関数をパラメータとして渡せるなど,汎用性に気を配った設計になっている
  • 速度面にも気を配った設計になっている

という辺り.ありがたく使わせて頂いております.


メモその1:

実際の表は,<td> の中にテキストが直接書かれているとは限らなく,たと えば <a> で囲まれたテキストが書かれてたりとかすることもあるわけで, 一般にはテキストに行き着くまで DOM ツリーを再帰的にたどってやる必要 がある.データ取得関数 getfn が分離されているので,こんなコードを書 いて getfn として渡してやることにした.

function byStrNoCase (cell) {
  return extractText(cell).toLowerCase();
}
function byInt (cell) {
  return parseInt(extractText(cell));
}

function extractText(node) {
    var text = '';
    if (node.nodeType == 3) { // TEXT_NODE
        text = node.nodeValue;
    } else if (node.hasChildNodes()) {
        var n = node.childNodes.length;
        for (var i = 0; i < n; i++) {
            text = text + extractText(node.childNodes[i]);
        }
    }
    return text;
}

メモその2:

JavaScript の Array の sort() は,安定であるとは保証されていないらし い.実際,IE は安定なソートをしてくれているっぽいが Firefox だと安定 でない.テーブルをかちかちクリックしてソートしたいときというのは,た とえば計算機一覧を,まずホスト名順にソートして,それから管理者順にソー トしてから,自分が管理者になってる子たちを見る,なんていう使い方をす ることが多いので,ソートは安定であって欲しい.

一番安直にやるには,ソート対象の要素にプロパティとして元の順番も持た せておいて,比較して引き分けだったら元の順番を保存するような比較関数 cmpfn を渡してやればよい.

のだが,元のコードだと,getfn が返した値を Object 型に変換してそれを ソートしているので,比較の結果として引き分けにならない.しかたないの で,getfn の返した値を Object 型に変換するのではなく,Object のプロ パティとして getfn の返した値を持たせてやるように書き換えて使ってい る.つまり

  for(var i=0; i<N; i++)
    x[i] = Object( getfn( rows[i].cells[index] ) ), x[i].row=rows[i];

の部分を

  for(var i=0; i<N; i++) {
    x[i] = new Object;
    x[i].v = getfn(rows[i].cells[index]);
    x[i].row = rows[i];
    x[i].idx = i;
  }

にしてやる.cmpfn は

function cmpAsc(a, b) {
  if (a.v == b.v) {
    if (a.idx == b.idx) {
      return 0; // can't happen
    } else if (a.idx > b.idx) {
      return 1;
    } else {
      return -1;
    }
  } else if (a.v > b.v) {
    return 1;
  } else {
    return -1;
  }
}

function cmpDesc(a, b) {
  return cmpAsc(b, a);
}

みたいな感じ.

関連記事:
[2006-10-08-3] (再改版) bloglines のアイテムをまとめて ChangeLog メモに変換する bookmarklet
[2006-07-08-1] bloglines の keep new をまとめて解除する bookmarklet
[2006-07-05-3] HTML の table で,ヘッダを固定にしてデータ部だけスクロール

2006-06-30 Fri

* 安易なパスワードのトップ10発表 [tech]

どうやって調べたんですかねこれ.「あなたのパスワードはなんですか?」 「123です」 サンプル数もよくわからんな.

つうか「‰」が実際に使われてるの初めて見た気がする.

2006-06-29 Thu

* デジタル時計 T シャツ [tech]

時計もちゃんと洗えるところがいい.しかし,

Digital Clock T-Shirts are operated from 4 x AAA batteries (not included). Batteries will last between 12-36 hours (depending on mode) and can be replaced.

電池減るの早すぎませんか.

2006-06-29 Thu

* 無断リンク禁止の根拠 [tech]

面白い.

関連記事:
[2006-08-16-3] 「無断リンク禁止」と「アダルトサイトの年齢確認」

2006-06-27 Tue

* 100までの整数から素数を列挙せよ,OpenGL 版 [tech] 1 user

LL Ring の前哨戦として「キミならどう書く 2.0」の開催です!

今回は読者も参加しての大乱闘!!

お題は「100までの整数から素数を列挙せよ」です.

すっかり締切過ぎてたりしますが,おまけに,まるっきり Lightweight Language とは関係なかったりしますが,まあ番外ネタということで, OpenGL 版です.というか別に OpenGL であることは本質じゃないので, 「透視変換版」とでもいうべきか.実際のとこ OpenGL でプログラミングす るの初めてです.

   2 〜 100 までの整数を並べる
→ 等間隔の格子でできた帯みたいなのを何本か用意する
→ 3 次元空間中にうまいこと配置する
→ うまいこと眺める
→ ウマー

で,この結果だけだと何だかさっぱり分からないので flash アニメーショ ン置いときます:

画像

うーん,あまりきれいに見えないな.OpenGL で書いたアニメーショ ンをウェブに載せるときってどうするのがいいんだろう.

関連記事:
[2006-07-24-1] Collatz 予想 - ピタゴラ機械もどき版
[2006-07-12-1] ジャストロー錯視

2006-06-19 Mon

2006-06-17 Sat

* ハンデつきジャンケンとロバスト制御 [tech] 6 users

A さんと B さんがジャンケンをします.ただし,A さんだけはグーとチョ キしか出せないというハンデつきのルールだとします.あなたが B さんな ら,何を出しますか?

東大の 原辰次 先生が,とある講演 の余談として話されたネタ. (実は講演会自体は自分の講義と重なって出席 できなくて,この話はその夜の飲み会で聞いた)

これを尋ねるとほとんどの人が「グーを出す」と答える.実は,これは必ず しも最適な解ではない.グーを出すのは「最悪でもあいこに抑えたい」とい う「ロバスト制御」であるというお話.

グーが必ずしも最適ではないってのがどうにもピンと来なかったので,家に 帰ってから酔っ払った頭で計算してみた.ゲーム理論は一般書を流し読みし たくらいの知識しかないので,何か間違ってたら教えてください.


ジャンケンの勝敗による利得を,勝ち: +1, あいこ: 0: 負け: -1 とする. 利得行列は

A\B グー チョキ パー
グー (0,0) (1,-1) (-1,1)
チョキ (-1,1) (0,0) (1,-1)

ここで (x, y) は (A の得る利得, B の得る利得) を表す.

このゲームでは,B にとって,チョキを出す戦略はグーを出す戦略に支配さ れている (相手の出方によらず,チョキを出すよりはグーを出す方が必ず良 い).よって B がチョキを出す戦略は消去できる.

A\B グー パー
グー (0,0) (-1,1)
チョキ (-1,1) (1,-1)

この縮小された 2x2 行列のゲームについて考える.まず純粋戦略,つまり 出すべき手を一つだけ考えるとすると,ナッシュ均衡は存在しない.すなわ ち,2x2 の 4 通りの組合せのすべてについて,A と B のどちらかの立場か ら見ると,手を変えた方が利得が増える.よってお互いに相手の手を読み合っ ていくとすると,解が収束しない.

というわけで混合戦略を考える.つまり,出すべき手の確率的組合せとして 戦略を考えて,均衡する点を考える.A がグー,チョキを出す確率を p, 1 - p とし,B がグー,パーを出す確率を q, 1 - q とする.

A の立場では,グーを出す場合の期待利得は 0 * q + (-1) * (1 - q) = -1 + q.同じくチョキを出す場合の期待利得は (-1) * q + 1 * (1 - q) = 1 - 2q.これらが一致するのが均衡点である (一致しないなら,A は期待利得の 大きい方の手を出すはずだ).よって -1 + q = 1 - 2q, すなわち q = 2/3 を得る.

B の立場では,グーを出す場合の期待利得は 0 * p + 1 * (1 - p) = 1 - p. パーを出す場合の期待利得は 1 * p + (-1) * (1 - p) = -1 + 2p. これらが一致するのが均衡点だから 1 - p = -1 + 2p, すなわち p = 2/3 を得る.

よって A が グーを確率 2/3,チョキを 1/3 で出し,B がグーを 2/3,パー を 1/3 で出すのがゲームの解となる.

2006-06-13 Tue

* 大人には聞こえない mp3 (1/2 倍速バージョンつき) [tech]

その音: http://www.bbc.co.uk/wiltshire/audio/mosquito_sound.mp3

再生環境にもかなり依存するみたいです.自宅の PC のうち,suite (Sound Blaster 16, FreeBSD, mpg123) だと何も聴こえなくて,caprice (on-board C-Media AC97, Windows XP, Windows Media Player) だとキーンキーンキー ンという耳なりのようなものが比較的はっきりと聴こえます (ヘッドフォン or スピーカに関らず).

聴こえるというか,認識できるというか,「これ,音か?」って感じ.少な くともこれでは着信に気づく自信ないwwww 若者にはもっとはっきり聴こえ るのかな.ちなみに当方 17 歳 165 ヵ月 30 歳.


よけいなお世話でしょうが,聴こえないけど聴きたい人用に 再生スピードを半分にしたやつ  置いときます.

% mpg123 -r 44100 -s mosquito_sound.mp3 | sox -t raw -r 22050 -s -w -c 2 - mosquito_sound_halfspeed.wav
% lame mosquito_sound_halfspeed.wav mosquito_sound_halfspeed.mp3

2006-06-11 Sun

* gcc で標準入力をコンパイル [tech] 1 user

ファイル名の代わりに - を使う,だけではうまくいかなくて, 一緒に -xc をつけるのがミソ.知らずに -xc をつけずに実行すると

gcc: -E required when input is from standard input

なんていう不親切なエラーメッセージが出て来て,正解にはたどり着けない. ひどい.


どうしてこんなことを調べたのかというと,この間書いた tcc [2006-06-08-3] みたいなことを普通の gcc でやってみたくなったのだった.

とりあえずこんな感じで.

/usr/local/bin/gccx:

#!/bin/sh

tmpf=/tmp/gccx.$$

cleantmp () {
  /bin/rm -f $tmpf
  exit
}
trap cleantmp INT QUIT TERM PIPE HUP

script=$1
shift
sed 's/^#!.*$//' $script | gcc -xc -o $tmpf - && $tmpf "$@"
cleantmp

テンポラリファイルがいまいちなのだが.まいいか.

で,スクリプトはこう書く.

test.c:

#!/usr/local/bin/gccx
#include <stdio.h>
int main() { printf("hello world\n"); return 0; }

で,実行.

% ./test.c
Badly placed (.

あれ? できない.test.c が csh で実行されているっぽい.なんだこれ.ご そごそ.

Tips.3
シェバング行に記述するコマンドは、必ずバイナリでなくてはならい。

http://x68000.q-e-d.net/~68user/unix/pickup?%A5%B7%A5%A7%A5%D0%A5%F3%A5%B0

…そうか,再帰的にスクリプトを実行をしてくれたりはしないのか. 逃げ道もわかったのでやってみる.

#!/usr/bin/env gccx
#include <stdio.h>
int main() { printf("hello world\n"); return 0; }

な感じ.むー,微妙.もちろん gccx をバイナリ化すればいいんだけど,所 詮お遊びなのでそこまでする気なし.


ちなみに,gcc -xc - な技を知るまでは,

#include "/dev/stdin"

なファイルを別に用意してました.これの元ネタはたしか エキスパートCプログラミング だったはず. ただし,/dev/stdin じゃなくて /dev/tty だったと思うけど.「世界一汎 用性の高いプログラム」だったか何だかそんなの.

2006-06-08 Thu

* TCC - Tiny C Compiler [tech]

#!/usr/local/bin/tcc -run
#include <stdio.h>

int main() 
{
    printf("Hello World\n");
    return 0;
}

http://fabrice.bellard.free.fr/tcc/tcc-doc.html#SEC3

ちょっと楽しげかも.

関連記事:
[2006-06-11-1] gcc で標準入力をコンパイル

2006-05-31 Wed

* Cygwin/X でコピー・ペーストできるようにする [tech] 1 user

Cygwin/X って,Windows との間でコピー・ペーストできないイメージがあっ たけど,ちゃんと設定すればできるのだと知った.

注意点:

  • ファイルの展開 (上書き) 作業は,Cygwin/X を止めた状態でやらないといけない.(Cygwin 自体は動いててよし)
  • ssh で X11 forwarding する場合,X クライアントによっては ssh に -Yオプションが必要な場合がある (-Y がないと,立ち上がらなかったり,立ち上がってもコピー・ペーストができなかったりする)

というわけで kterm とか emacs とかを無事開いて,コピー・ペーストでき るようになった.

2006-05-27 Sat

* bsfilter の使い方を間違えていたっぽい [tech]

bsfilter で spam 判定をしているのだけど,どうも直感に反する挙動をし ていることに気づいた.で,よく考えてみたところ使い方を完全に間違えて いたっぽい.

(どうして気づいたかというと,ここ数日,(ほぼ完全に) 同じ文面の spam が大量に送られて来ていて,それらは最初は無事に spam と判定されていた のだけど,新しいのが届くごとに spam 確率が単調減少していって,終いに は clean と判定されるようになってしまったからである)

結論を先に書くと,

  • auto-update を使っていて,
  • なおかつ insert-probability を使っていて,その insert された probability に基づいてフォルダ分けしていたのだけど,
  • spam-cutoff を設定していなかった.
  • 結果として,フォルダ分けの際の spam 判定基準 (以下 P1 と呼ぶ) と spam-cutoff (同 P2) とが食い違っており (P2 > P1),
  • 件の spam は最初に P1 と P2 の間の確率と判定されたため,SPAM フォルダにつっ込まれたにも関らず,データベース上では clean な方につっこまれ,clean な確率が上がることになってしまっていた.

さて,どんな設定をしていたかというと, 本家サイト にある「~/.procmailrc から呼ぶ場合のサンプル レシピ その2」をベースにしていた.「その1」ではなく「その2」を選んだ のは,spam 確率をヘッダに残したかったから.

:0 fw
| /home/swk/bin/bsfilter --pipe --insert-flag --insert-probability

:0
* ^X-Spam-Probability: *(1|0\.[89])
SPAM/.

で,この設定に単純に --auto-update を追加したのが敗因.その後いろい ろ調整して,SPAM フォルダへの振り分け基準 (P1) をどんどん小さくして 行って (今は何と 0.1 だ),一方で P2 は元のまま (えーと,デフォルトの Robinson-Fisher のまま使っているから,0.95?) 今回のような事態に至っ たと.

おそらく,P1 をこんなに小さくしなければならなかったのも,そもそもこ の設定ミスが原因なんだろうな.

というわけで,一度データベースを構築し直した上で,--spam-cutoff オプ ションを設定して P1 = P2 になるようにしてみます.

2006-05-24 Wed

* デジタル発火マトリクス方式のディスプレイ [tech]

12×7画素,ガス燃料が必要 (15ガロン/時) らしい.

2006-05-24 Wed

* Gaxed.com - Put Your Fun/Love/Protest Message on Anything [tech]

これいいかも.もっと小さい画像の方がうれしいかな.

yellow snow

2006-05-22 Mon

* DELL Optiplex 故障 [tech]

大学についたら自室のデスクトップ PC が死んでいた.ぬがー.なんか電源 入れたらファンが爆音で鳴り出すだけで何も起きないし.

メーカに電話して,明日修理に来てもらえることになった.

実はこのマシンで (正確にはこのマシンで動いている VMware で) 全メール を集約して捌くというか,要は fetchmail して procmail して bsfilter して,他の場所 (自宅 and/or 携帯) へ転送していたので,見事に single point of failure なのである.

というわけで,ノート PC にメールサーバから直接 POP して読んでるのだ けど,メールのほとんどが SPAM だ.むー.

しかし普通は皆さんメールの仕分けってどこでやっているんでしょう.サー バ側? クライアント側? サーバでやると別フォルダに分けて入れるってのが 難しいし,クライアントでやると,端末ごとに仕分けルールとか学習データ ベースを持つのが厄介だし.今や IMAP が当然なんだろうか.ていうか今や gmail が当然なんだろうか.

(追記: 翌日マザーボード交換で回復しました)

関連記事:
[2007-09-15-1] PC が壊れたので Gmail を使い始めた

2006-05-09 Tue

* 米SGIが破産法適用を申請 [tech] 1 user

むー,一つの時代が終わった感じ.

ってセリフ最近書いた気がするな.えーと, 「時代が終わった」, あー NIFTY Serve か.

2006-05-08 Mon

* perl で深い比較をするには? [tech]

Struct::Compare ってのがあるらしい.

SYNOPSIS に

use Struct::Compare;
my $is_different = compare($ref1, $ref2);

なんて書いてるから,違っているときに true になるんだと思ったら, DESCRIPTION によると

Compares two values of any type and structure and returns true if they are the same.

らしい. DESCRIPTION の方が正解.ちょっとはまった.

2006-05-07 Sun

* google news の関連記事を表示する bookmarklet [tech]

今見ているページと関連する記事一覧を google news で開く bookmarklet. いかにも車輪の再発明な気がするけど,とりあえずアウトプット.

2006-05-06 Sat

* Word の「印刷」を劇的に速くする方法を発見。ホイールを上下するだけ! [tech]

普段はタイマイベントか何かで前回スプーラに送出した部分の送出が完了したら新しい部分を送出するという処理をさせているのを、ビュー領域の更新時にもそれが呼び出されるので、高速で印刷ができるのではないかと推測できます。

adtms (後で試す)

2006-04-30 Sun

* =rand() [tech]

MS Word で「=rand()」と入力して Enter を押してみる.

Word 2003 は、画期的な日本語入力・編集環境を実現した日本語ワープロです。Word 2003 は、画期的な日本語入力・編集環境を実現した日本語ワープロです。Word 2003 は、画期的な日本語入力・編集環境を実現した日本語ワープロです。Word 2003 は、画期的な日本語入力・編集環境を実現した日本語ワープロです。Word 2003 は、画期的な日本語入力・編集環境を実現した日本語ワープロで
Word 2003 は、画期的な日本語入力・編集環境を実現した日本語ワープロです。Word 2003 は、画期的な日本語入力・編集環境を実現した日本語ワープロです。Word 2003 は、画期的な日本語入力・編集環境を実現した日本語ワープロです。Word 2003 は、画期的な日本語入力・編集環境を実現した日本語ワープロです。Word 2003 は、画期的な日本語入力・編集環境を実現した日本語ワープロで
Word 2003 は、画期的な日本語入力・編集環境を実現した日本語ワープロです。Word 2003 は、画期的な日本語入力・編集環境を実現した日本語ワープロです。Word 2003 は、画期的な日本語入力・編集環境を実現した日本語ワープロです。Word 2003 は、画期的な日本語入力・編集環境を実現した日本語ワープロです。Word 2003 は、画期的な日本語入力・編集環境を実現した日本語ワープロで

ちょww 画期的にも程があるだろwwww

どうやら書式やフォントの確認をするための機能(?)らしい.しかしもうちょ いマシな例文はなかったのか.

英語版だと The quick brown fox ... が出るのだとか.(というかこのペー ジで知った)

2006-04-25 Tue

* 仙台市営バスと QR コード [tech]

ふと気づくと,バス停に QR コードが表示されている.

dokobasu/20060425-180946.jpg

QR コードを携帯電話か何かで読み取ってウェブにつなぐと,後続のバスが いくつ前の停留所まで来ているかをリアルタイムに知ることができる. 「どこバス仙台」というサービスだそうな.

惜しいのは,QR コードを読み取って開かれるのは,どこバス仙台サービス のトップページだという点.そこからさらに,自力でバス停名と行き先方向 を入力しないといかんのね.で,入力にもたついているうちにバス来ちゃっ たりとかして.

せっかく QR コードなんだから,それがどこのバス停でどっち方面行きなの かの情報も入れといてくれればいいのにな.実際,全国見渡すとそういうサー ビスもちらほらあるようだし.「印刷コストが…」って言われるかも知れな いけど,どうせ時刻表は停留所ごとに印刷してるわけで,そんな無茶な話で もないはず.今後に期待したい.

2006-04-23 Sun

* ASCII じゃない文字をハイライトする bookmarklet [tech]

bookmarklet の書き方などちょっとずつ勉強中.あんまり本腰入れるつもり はないのですが.

というわけで以前書いた「ASCII じゃない文字フィルタ」[2005-12-05-2] を bookmarklet から呼び出してみるテスト.

「英語ページ」に全角スペースや全角英数字や全角句読点を入れるなと小 1 時間言っても改善されない部下や同僚や上司にお悩みのあなたに.

(まあそういう人達はツールがあっても結局使ってくれなかったりするのだ けど)

2006-04-19 Wed

* Macromedia Flash Player for FreeBSD [tech]

サインしてみた.743 人目.つうか少ねー.

2006-04-11 Tue

* Google News 日本版で RSS フィード開始,と思ったら [tech]

キタコレ!

と思ってさっそく bloglines につっこんだんだけど,そのとき読み込んだ のを最後にいっこうに流れて来ない.と思ったらいつの間にか消えている. 何か 圧力 問題でもありましたかね.

関連記事:
[2007-09-08-1] Googleニュース日本語版のAtom/RSSフィード

2006-04-08 Sat

* TexPoint がシェアウェア化 [tech]

25 USD.2006 年 3 月頃から (?).

2006-03-28 Tue

* メール [tech]

メールという通信手段は,相手の時間的都合を考えずにメッセージを送れる 点がとってもありがたいと思っていた.あー,今忙しいかなとか,寝てるか なとか考えずにとりあえず用件を送りつけることができる.電話だとそうは いかない.

ところが,メールの場合でも,相手のメールアドレスが携帯電話のアドレス だと,ちょっと気を使ってしまう.深夜だと,着信音で寝てるのを起こしちゃ うんじゃないかな,とか.なのでちょっと調子が狂う.考えすぎですか? つ うか携帯のアドレスじゃなくても相手が携帯に転送していたら同じことなん ですが.

実は携帯じゃないメールでも勘ぐりすぎるときもある.このメール,金曜の 夕方に送ると「土日出勤して働け」って言ってるように受け取られないかな, とか.で月曜朝まで待ってから出したりとか.考えすぎですかそうですかそ うですね.

それでなくても,たかだか数行の文面を書くのに些細な表現とかすごく悩ん だりする方なので,実はメール処理ってものすごく時間食っている.どっち かというと普段から「電話嫌い,メールが好き」と公言している方なんだけ ど,実はメールは苦手な人間なのかも知れない….

ん,要するにコミュニケーション全般が苦手なだけか?

2006-03-26 Sun

* www を揃える理由 / permalink という概念 [tech][logging]

えらく古い話ですが,

可能であれば http://www.example.com/http://example.com/ の両方で アクセスできるようにする方がいいし,またその場合は,単に両方の URL でアクセスできるだけじゃなくて,片方に redirect するようにした方が SEO 的によろしいという話.

うちは今までは www.kagami.org でしか答えてくれないレンタルサーバだっ たので気にしていなかったけど,サーバ移転後は kagami.org でもアクセス 可能になった.というわけで .htaccess で

RewriteEngine on
RewriteCond %{HTTP_HOST} sakura\.ne\.jp$ [NC,OR]
RewriteCond %{HTTP_HOST} ^kagami\.org$ [NC]
RewriteRule .* http://www.kagami.org%{REQUEST_URI} [L,R=301]

と設定.


ところで,

「同じ内容を返す URL は常に一つ」という概念のことを“Permalink”といい

http://labs.cybozu.co.jp/blog/akky/archives/2005/12/url_2_www.html

ほんと?

ある URL が指す記事が唯一に定まるのであって,ある記事を指す URL が唯 一に定まるわけではなかろう.それじゃあいわゆる「blog のトップページ」 とか「月ごとページ」とかが存在できなくなっちゃう.

というか,URL が唯一じゃないから,そのうち 1 つを選んで「これが permalink ですよ」と明示する必要が生じるわけで,むしろ「同じ内容を返 す URL が唯一ではない」(かつそれら複数の URL の中には,今後同じ内容 を返すとは限らないものが含まれている) ことが permalink という概念が わざわざ発生した前提になっているといえるんじゃないかな.

というわけで,この話と permalink は無関係だと思うのです.

2006-03-23 Thu

* トラックバックでプレゼント応募の功罪 [tech]

コメント欄で議論が↓

2006-03-16 Thu

2006-03-13 Mon

* チェックボックスのマーク [tech]

提出書類とかで「□ をチェックしろ」という場合がよくある.メールの返 信みたいに plain text の場合は,迷わず「■」に書き換える.

あなたの身分を選んでください.

□ 教職員
□ 大学院生
□ 学部学生
■ メロンパン
□ その他

ところが MS Word での提出や紙での提出のときは,「レ」印を入れろと明 記されている場合がたまにある.んで,今までは「図形描画」で折れ線を引 いてみたりとか,印刷してから手書きで書いてみたりとか,手書きで書こう と思って印刷したまま書き忘れて送っちゃったりとか,いろいろやってたわ けなのだけど,つい最近 Unicode にこんな文字があるのを教えてもらった.

MS Word の場合,挿入 - 記号と拡張文字 で入力できる.

2006-03-08 Wed

* Firefox 1.5.0.1 にしてみたら [tech][firefox]

ふと思い立って Firefox を 1.5.0.1 にしてみた.

はまった点:

  • googlebar が対応しなくなった.google toolbar に乗り換え.
  • 自作 bookmarklet [2006-02-11-1] が動作しなくなった.がるる.(追記: Firefox 1.5.0.2 なら動く [2006-04-22-1].がるる)

はうー

関連記事:
[2006-04-22-1] (改版) bloglines のアイテムをまとめて ChangeLog メモに変換する bookmarklet
[2006-02-11-1] bloglines のアイテムをまとめて ChangeLog メモに変換する bookmarklet

2006-03-08 Wed

* Windows で open されているファイルを調査する [tech]

openfiles コマンドを使う.ただし事前に一度

> openfiles /local on

としてから再起動しておく必要がある (一度だけやればよい).

2006-03-07 Tue

2006-03-05 Sun

* Excite サーチストリーム [tech]

なんとなく面白い.のだけど,そこから先のもう一歩が何か欲しいなあとか 思ってしまうかも.

2006-03-04 Sat

* インフラただ乗り論・バックボーン不足論と,それに対する反論 [tech]

インフラただ乗り論・バックボーン不足論:

そうでもない論:

2006-03-02 Thu

* Google's Master Plan [tech]

既にひと昔前の話題らしいけど,先号の日経エレクトロニクスで初めて見た.

2006-02-17 Fri

* PLUS V-339 [tech]

仕事で PLUS のプロジェクタ V-339 を買った.早速いつも使っている Let's Note CF-R1 につないでみると画面がノイズで乱れまくって愕然とす る.

初期不良か? と思ったけど,別の PC をつないでみるときれいに映る.じゃ あこの Let's Note がいつの間にか壊れたのか? と思って別のプロジェクタ に出してみるときれいに映る.はて.

で,ふと思って,V-339 に付属して来たディスプレイケーブルの代わりに, 別のものに取り換えたらきれいに映った.うーむ.

というわけで,

  • CF-R1 の外部ディスプレイ出力が,他の PC に比べて妙にノイジーである
  • V-339 が,他のプロジェクタに比べて妙にノイズに弱い
  • V-339 付属のディスプレイケーブルは妙に品質が悪い

のすべてが成り立っているか,

  • CF-R1 と V-339 は何か知らんけど相性が悪い
  • V-339 付属のディスプレイケーブルは妙に品質が悪い

のすべて成り立っているかのどちらかってことになるかな.どっちにしろ付 属ケーブルがダメなのは確定気味.

2006-02-16 Thu

* Firefoxのメモリ大量消費は「仕様」,だが回避方法あり [tech][firefox]

むー

2006-02-12 Sun

* MyMySQL [tech]

SQLのコマンド全部日本語にカスタマイズしてしまえば、SQL injectionの対 策になる。

 例)
 選択 * から 犯罪者リスト;

そんなMyMySQLを作ってみないか。(←これが言いたかっただけです。すみません)

http://d.hatena.ne.jp/yaneurao/20060210#p1

コメント欄でワラタ↓

BEGIN TRANSACTION -> クルー(AA略)
COMMIT -> キター(AA略)
ROLLBACK -> エェェェェ(AA略)

2006-02-04 Sat

* 乾燥機が水を使う理由 [tech]

洗濯物から出た水分を室内に放出しない為に、わざわざ冷やして水分を排水口に捨てる仕組みになってるみたいです。

2006-02-01 Wed

* bsfilter [tech]

「堀江です。」という Subject の SPAM が来た.中身は普通に普通のSPAM なのだが.どうかと思う.

SPAM 対策 [2005-06-23-1] には,ここ数ヵ月ほど bsfilter を使っている. X-Spam-Probability に従って procmail で振り分けて,失敗したものは, bsfilter mew version 3 front-end で bs とか bc とかしている.

今のところ X-Spam-Probability が 0.2 以上を SPAM と判定するようにし ている.まだまだ false accept が週に数個くらいは来てしまうので 0.1 くらいまで下げたいのだけど,既に僅かながら false reject も存在するのが 悩ましいところ.

あ,「堀江です」メールはちゃんと SPAM 判定されてました.

2006-01-26 Thu

* ソニー,画素を回転させたCMOSセンサ [tech]

んと,素朴な疑問なのですが,

カメラを 45°回転させて,後から信号処理する

のと本質的に何が違うんですか?

いや,そりゃ画角の形は変わるけどさ.まあ発想の転換と言えるのかな.な んかすげーだまされている感じ.(つうか視覚は実際にだまされているわけだ が)

2006-01-23 Mon

* リレーコンピュータ [tech]

すごい.すごいけど,LED は百歩譲るとして,主記憶が普通に半導体なのが 興醒めだ.とかいうのはちょっと酷だろうか.でもやっぱり

主記憶がレジスタより速くてどうする

とつっこまずには居られない.

2006-01-21 Sat

* IDT,パケットの統計情報を収集するプロセッサ [tech]

1パケットの入力を受けたネットワーク・プロセサは,パケットのヘッダか ら送り元や送り先のIPアドレスを取得した後,そのIPアドレスと1対1に対応 するメモリ番地へ書き込み処理を行う。書き込み処理を受けた統計エンジン 側では,そのメモリ番地に対応するカウンタに1を加算する。 これにより,送受信したパケットの数をIPアドレスごとにカウントできる。

http://techon.nikkeibp.co.jp/article/NEWS/20060116/112375/

この記述通りだと,32 ビット分のメモリ空間を占有するんじゃね?

2006-01-18 Wed

* USB カップウォーマーはどこまで実用的か [tech]

つまり一応の効果があることが分かる。

数℃差だけどな.

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


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