2006年 08月 01日

プールサイドガールとそんなリアル・あるいは環境と自分について

こう、やっぱり、夏制服の髪が肩まである女の子が、プールサイドに立ち尽くしてミナソコを見つめているんだよなぁ。ほんとに。その俺が見ている風景の中では、少し遠くに見える木と、彼女の髪とスカートが少し揺れてるわけで、そんな世界に生きているのだから、リアリティ、というものはリアリティでしかなく、本当に、それがリアルであったりしなくてもいい、みたいに感じる。つまり「憧れ」が常になくちゃいけないけれど、それがリアルにないし、ないのは仕方ない。

リアルであれば、俺は高校のとき、何かしら向上的で一体感のある部活に入って何かをしたかった。今もしたい。もちろんその「今もしたい」というのは、今の状態でそれをしたいわけではなく、高校生になって部活動をしたい、という意味。そして正直いって、それ以上の何かはない。だから、このリアルな何かはまず叶わない (時間をとぶことは不可能だからね)。この時点で一つ諦めが必要。しかたないから、それっぽい目標・目標とはいえない目標を「てきとー」に掲げるしかない。死にたいわけじゃないからね、死にたいと思うとき、同時に生きたいと思ってる。よりよく生きたいのに、できないから死にたくなる。

どうでもいい。どっちにしろ、望んだ世界において、俺は俺ではない。ので、そういう意味では、考えることが、本当に意味がないことなんだろうなぁ。俺がそういう情況になるためには、それまでの環境構築 (すなわち自分の構築) の過程で、今の俺のようなことになってはいけない。それは既に俺ではない。環境=自分の反射/自分=環境の反射なのだから、そういう世界のそういう環境にいる俺は、常に俺ではない。

ググレカス

オレッテバ・ス・ゲー

ファイル共有

必要なこと

  • うpが十分で簡単である。
  • だうんこが十分に簡単である。
  • バージョン管理 (必然的にオートコミット)
  • パーミッション

アップロードフォームとかカス。HTTP ダウンロードはまぁいいよ?

だとするとやっぱ dav と svn とかしかない? でも dav もそんなにいい UI があるわけじゃない。いやいいのかなぁあれ。フォームよりはいいけど、うん、うぃんどうずのお話だよ。そうさ。

lftp

なんか唐突に lftp の open が失敗するようになった。

$ lftp
lftp :~> open s63.xrea.com
open: ftp: no such tcp service 

lowreal.net の日記がさらに書きにくくくく。XML 書くだけで最近ダルイのに。もう Trac Wiki 記法で殆ど書きたい。マークアップとか無駄無駄。でも ill-wormed はやめて! パースできないから!
RDF でなんでもやりたいよなぁ。ホントに。

lftp

cygwin の setup.exe を実行したらなおった。っぽい。他でえらーでてたのが気になるけど。

CSS に変数使いたいなぁ

PHP 使えっていう声が聞こえる。

vim マーク

マークの使いかたわからなくて、使わないようにしてたけど、耐えられないので覚える。

  • mx x にマーク なんの表示もでない><
  • `x (マーク x に戻る)

これだけでいいや

vim ``

バッククオートふたつが便利だなぁ。前いたところに戻る。

vim :s

:s が楽しい。V で選択して範囲内いっかつ置き換えが楽しい。どばーんって。xyzzy だと C-SPC C-n C-r TAB TAB Alt-R C-w とか長い手順ふむもんなぁ。

CSS で変数

http://subtech.g.hatena.ne.jp/secondlife/20060801/1154406385
wktk

コメントで変数宣言してそれはそのまま残しておくと、色とかを頭に書くとかも自然に同時にできる。ERB だとめんどいので軽いパーサ書いてあげるのがよさそう。

/*
 * key-color1 = #708f96
 * key-color2 = #123456;
 */

h1 {
    background: $key-color1;
}

#footer {
    background: $key-color1;
    color: #fff;
}

#footer address {
    color: $key-color1;
    background: $key-color2;
}

$ って使われたっけ

CSS 変数

#!ruby
pre = ARGF.read
vars = Hash[*pre.scan(/^\s*\*\s+(\$[^\s;]+) = (.+$)/).flatten]
ret = pre.gsub(/\$[^\s;]+/) do |match|
    if vars.key?(match)
        vars[match]  
    else
        match
    end
end

puts ret

ハイパー簡略化、が、これだと変数宣言も置換される!

2006年 08月 02日

CSS で変数が欲しい!の……

川o・-・)<2nd life - ファイル保存時に ERb でコンパイルして保存

これの別方向バージョンです。 (最近こんなんばっかだ。パクりマンセー)

CSS 特化でいいかなぁとか思いつつ簡単なスクリプトを通して置換するだけっていうのをやってみることにしました。ERB にせよ、なんにせよ、クライアントサイドでやってる限りは書いてる人の好き放題なのがいいところです。ERB のほうが別の場合も常に使えていいんですが。

#!/usr/bin/ruby
pre = File.read(ARGV[0])
vars = Hash[*pre.scan(/^\s*\*\s+([^\s;]+)\s*=\s*(.+$)/).flatten]
#p vars
ret = pre.gsub(/\#\{([^\s;]+)\}/) do |match|
if vars.key?(Regexp.last_match[1])
vars[Regexp.last_match[1]]
else
match
end
end
File.open(ARGV[1], "wb") {|f| f.puts ret }

第一引数に変換する前のファイル名、第二引数に変換したあとのファイル名を与えます。

vim 側は id:secondlife さんのやつを完全パクりでお送りいたします。指定した実行ファイルに保存時、ファイル名を与えて実行するだけ。~/.vim/plugin/css_pre_compile.vim

if v:version < 700 || (exists('g:loaded_css_pre_compile') && g:loaded_css_pre_compile || &cp)
finish
endif
let g:loaded_css_pre_compile = 1
if !exists('g:css_pre_compile_exec')
let g:css_pre_compile_exec = '/home/cho45/proj/mendoi/compile-css.rb'
endif
if !exists('g:css_pre_compile_name')
let g:css_pre_compile_name = 'pre'
endif
function! s:CssPreCompile()
let filename = expand('%:p')
let compiled_filename = substitute(filename, '\.' . g:css_pre_compile_name . '\.css$', '.css', '')
call system(g:css_pre_compile_exec . ' ' . filename . ' ' . compiled_filename)
endfunction
exe 'autocmd BufWritePost *.' . g:css_pre_compile_name . '.css call <SID>CssPreCompile()'

でもって編集する CSS

/*
* * Colors
* key-color-dark  = #123456
* key-color-light = #234567
*
* * Images
* imgdir = /img/hogehoge
*
* * Other Constants
* content-x-margin = 5%
*/
h1 {
background: #{key-color-dark} url("#{imgdir}/head.jpg") no-repeat top left;
height: 235px;
width: 50px;
}
/* 諸事情で #content に padding が指定できないとか */
#content .section {
margin: 0 #{content-x-margin};
}
#content .h2 {
margin: 0 #{content-x-margin};
}
#footer {
background: #{key-color-dark};
color: #fff;
}
#footer address {
color: #{key-color-dark};
background: #{key-color-light};
}

この場合頭に書いた宣言部分は消えないので、キーカラーを最初に明示しておく、なんてことが自然にできます。そういえば自分はよく色の頭二文字ぐらいを覚えて動的補完カマして入力するんですが、最初の二文字さえ最近覚えるのがダルイです。


ちょっと使ってみよう。が、しかし、すぐに使わなくなる予感が! といっても一回放り込めば使って悪いことはないので使えるかな。わからない。一ファイルで完結していないのがイマイチ。オートリロードとの兼ね合いもあるかも。あれダメダメじゃん。

Ruby 限定にするなら、探し出した変数宣言を module_eval とかで読み込んで、eval("<<EOF\n#{file_content}\nEOF") みたいなことやってもいい? 式が書けるようになるけど、エラーでてもわからなく。移植性が落ちる。


でもやっぱ。ERB のほうがループとかも書けていい気がする。<% が打ちにくいからそれだけなんとかできればいいような気もする。ねむい

2006年 08月 01日

スクリプトは簡単なままにする

やっぱ結構めんどいなぁ。ディレクトリを変数にしたい! とかだとこれでは無理だ? #{var-name} で展開にしたらいいのかな

/*
 * [key-color1] = #123456
 * [key-color2] = #234567
 */

h1 {
        background: $key-color1;
}

#footer {
        background: $key-color1;
        color: #fff;
}

#footer address {
        color: $key-color1;
        background: $key-color2;
}
#!ruby

pre = ARGF.read
vars = Hash[*pre.scan(/^\s*\*\s+\[([^\s;]+)\] = (.+$)/).flatten]
ret = pre.gsub(/\$[^\s;]+/) do |match|
        name = match.sub("$", "")
        if vars.key?(name)
                vars[name]
        else
                match
        end
end

puts ret

#{}に

#!ruby
pre = ARGF.read
vars = Hash[*pre.scan(/^\s*\*\s+\[([^\s;]+)\] = (.+$)/).flatten]
#p vars
ret = pre.gsub(/\#\{([^\s;]+)\}/) do |match|
        if vars.key?(Regexp.last_match[1])
                vars[Regexp.last_match[1]]
        else
                match
        end
end

puts ret

ううーん?

自動リロードで複数ブラウザ常に確認

とかやってると、なんか変な CSS 書かなくなるなぁ。すぐにダメな書き方がわかるのはいい感じだ。ダメな書き方って変な話だけど。

Perl で書いてみる @compile-css

#!perl

use strict;
use warnings;

my $pre = join "",  <ARGV>;
my %vars = ($pre =~ /\* \[([^\s;]+)\] = (.+)$/gm);

$pre =~ s[#\{(.+?)\}]{$vars{$1} ? $vars{$1} : $&}ge;

print $pre;

これだけ書くのに30分ぐらいかかった!! むずい。

vim script

:debug command

が表向きだよ。でも

:set verbose=9
:so %

まくり! って id:secondlife さんがいってた。ので、いくつか試してみよう。

2006年 08月 02日

jAbasRipT:Sreep[];

ううん

wktk

もっと wkwktktk したことをしたいなぁ。もっと

xterm-256color

Linux デスクトップで 256color やろうとするとどうもうまくいかない。xterm を

./configure --enable-wide-chars --enable-256-color --enable-luit

でコンパイルして

xterm -fa Mono -fs 9 -fg white -bg black

とかで起動するといちおうよさげなんだけど、描画が遅すぎて使えない。
putty 使いたいなぁ。

table 要素のレンダリング

Fx だけちょっと違うレンダリングするなぁ。Opera と IE はこの辺かなり似た解釈をしているようだ。
Fx だけボーダーがやたらズレて困る。Fx だけに適用するハックとかしらないしなぁ。

mlterm

mlterm をいれてみる

$ ./configure --enable-anti-alias --enable-optimize-redrawing --enable-scim

で make; sudo make install

がしかし 256colors2.pl 実行すると確実にフリーズする。optimize-redrawing が悪いのかと思い外してみてもだめだった。

上に書くよ

今日のぶんは手動で逆にしたよ!
追記モードっていう隠し機能があるらしい。上上下下左右左右BAを設定画面で押すとチェックボックスが現れるようだ。知らなかった。

vim ZZ

どうも C-z C-z (screen の window スワップ) 押すつもりで ZZ 入力して終了させてしまう。

mlterm

帰宅して ubuntu (バイト先は FC5) の apt で入れてみたけどこっちも 256colors2.pl がフリーズする。諦めよう。

gmail

gmail のほうのソレっぽいアドレスは本名用に使うことにした。

OCN

OCN のカスタマサポートページ重すぎ

2006年 08月 03日

vim xml

/ 入力したら自動で閉じタグを補完して欲しいなぁ。/ 入力後に Omni 起動とかできるのかな。

はてなグラフ

外部からグラフデータとれないのかな

ひさしぶりに JS

ひさしぶりに JS 書いたら : を => って書いた。

MochiKit

Array#reject みたいなのってないのかな。filter がソレっぽい。けど、サンプルがなくてわからん。ので、書け

data = filter(function (i) {
    return (i[1] != 0);
}, data);

PlotKit すっげ

http://www.liquidx.net/plotkit/
MochiKit をフレームワークとして使い、canvas やら VML やらを駆使してクロスブラウザに綺麗にグラフを書いてくれる。綺麗だし、うまく配置してくれる。のに、なんか情報が少ない。なんでだろ。
あとグラフのラベルにリンクとか、イベントハンドリングを追加したいのでいろいろ調べてみる。

motemen さんが素敵すぎです

コメントもらったお>< キャー
http://www.mochikit.com/doc/html/MochiKit/Iter.html#fn-ifilterfalse

inoremap / /<C-X><C-O>

これもうまくいった!! すっげやっべ

あとは

/ 入力で直前が < のときだけ omni する関数?
script から ofun を呼ぶ方法調べないと

PlotKit

pie の場合だと label に要素を使えないっぽい。バグ?

"xTicks" : [
    {v:0, label:A({href:""}, "foobar")}
]

bar ではうまくいく。pie だとなんか文字列変換される。

Layout.js

label += " (" + formatter(slice.fraction) + ")";

これのせいで、文字列に変換されてる。さてどうするかな span でくくって付け足すが妥当か。

$ diff -u Layout.js.old Layout.js
--- Layout.js.old       2006-06-05 03:50:02.000000000 +0900
+++ Layout.js   2006-08-03 17:42:07.000000000 +0900
@@ -617,7 +617,7 @@
             if (slice) {
                 if (isNil(label))
                     label = tick.v.toString();
-                label += " (" + formatter(slice.fraction) + ")";
+                label = SPAN(null, label, " (" + formatter(slice.fraction) + ")");
                 this.xticks.push([tick.v, label]);
             }
         }

こんなんにした。

2006年 08月 04日

MMO RPG とか、MMO Life とか

なんかみんながやたら真剣なところがすごく気持ち悪い。たかがゲームなのに、すっごいキレたりとかする。なんかおかしいっていつも思う。高校のとき、かなり RO やりまくってたとき、自分もそういう感じになったんだけど、それを思い出しても気持ち悪い。

何事にも真剣なんだよ、ともし言うなら余計気持ち悪い。その真剣さは、誰のためのものなのか。その真剣さの結果、誰が嬉しいんだろう。

この、MMO RPG の真剣さっていうのは、人生ゲームの真剣さとたぶん全く一緒なんだと思った。たかが人間ごっこに、やたら心底真剣になっている人がいて、それが多くなると、周りの人間も真剣さを強いられ、そのゲームの本来の楽しさが失われてしまう。

くだらないことはくだらないまま楽しみたい。この世にくだらないもの以外はいらない。

MochiKit

iterator って iterator オブジェクト (?) なんだ。

ifilter(function (i) {return i == 0}, [0, 2, 3, 4, 0])
//=> ifilter(...)

list(ifilter(function (i) {return i == 0}, [0, 2, 3, 4, 0]))
//=> [0, 0]

Interpreter が便利べんり

ubuntu / USB Audio

カーネルアップデートかなんとかで音切れが直ったので Rhythmbox に戻ってみる。
が、Last.fm への submission がなんかおかしい。Invalid username and/or password で弾かれる。

Rhythmbox

これ replay gain 対応してたんだ。プラス方向に補正させた曲がきて焦った。

ins のスタイル

書かないとわかりにくす

Rhythmbox

一部の曲で左の音にボコボコってノイズが入る。

いけたっぽい? rbscrobbler を何度か再起動させてみた。
ちなみに ubuntu の Rhythmbox のオプションで Audioscrobbler への送信の設定があるけど、これは全く動かない。それにこっちのログとかどこで見れるんだろう的な不安満載。

音切れ直ってないな。頻度が落ちただけっぽい。残念

...

無意識に下に書いてた。しかも間違えて日記消してしまった

Songbird

ubuntu で実行してみたけど、これも一部の曲で左チャンネルがボコボコいう。使ってるライブラリの問題っぽいなぁ。RealPlayer ではならない。
gstreamer (?) のせい?

Linux で音楽再生はやめたほうがいいっぽい。

Rechargeable

親父さんが4本くれた。
今まで使ってたのは 1600mAh のやつで5年ぐらい前?に買ったやつ (GPって書いてあるやつ。シンガポール製) で、最近一本なくして微妙に困ってた。
NiMH 2000mAh 日本製 (HR-3UB/SANYO) なんだけど、なんとなくこういう単三型充電式電池って日本製が不安だ (なにか理由があるわけじゃないけど)。

そういえば最近 SANYO はエネループとかいう放電が少ない NiMH 電池作って大きく広告してるけど、あれはどうなんだろう。っていうか店頭だといままでの NiMH とどう違うか全くわからないよなぁ。白いくらい。

mabinogi * IE

mabinogi クライアントは IE のプロキシ設定を読んでいるらしく、設定とかを HTTP から落としてくるようだ。
適当に webrick のログから URL を晒す。全てhttp://avatar.mabinogi.jp/ ドメイン

  • /ui/mabijp3/355/4503599627373355.xml (スキルショートカットとか)
  • /ui/mabijp3/960/4503599627459960.xml
  • /UiUpload.asp (上の保存用?)
  • /avatarupload.asp (ログイン/ログアウト時のキャラクター画像保存用?)


mabijp3 はタルラーク鯖の名前みたい。あとはキャラクターIDかな?

2006年 08月 05日

mabinogi

自分のキャラクターIDさえ簡単に知ることができれば、スキルショートカットをサイト上に動的に晒すみたいなのが作れるんだけどなぁ。公式サイトの URL クエリとかざっと見てみたけどないっぽい。

間違ったというか、いやあってることが間違ってる

やっぱり、なるべくしてこうなっている感がヒシヒシとするなぁ。別に誰が悪いわけじゃなく、強いて言えば結局のところ自分が悪いということになるのだけれど。

何か楽しいことにどうやって首を突っ込むか、というのは、そのときの環境に依存する。そのときの環境はそれまでの環境に依存する。自分は環境の反射であるのだから、やっぱなるべくしてなっているな、とか、なんとか。知らないよ。

調子に乗らないように、とか思ったりして、時々不特定多数への DIS を見たりして落ち着いたりとか。そういう意味で、DIS って必要だなって思った。嫌だけど。

環境に求められている能力がないということは、つまり自分が自分でないことなんだよね。で、その差がいまいち釈然としなくて気持ち悪い感じ。じゃあその自分でない自分っていうのは、誰なんですかっていう、よくあり気な問答があるわけで、問答とか言いつつ答えがない罠が待っているわけで、なにこれ、みたいな。

アウトプットしないといけないのに、どうもアウトプットする能力が明らかに足りていなくて、あるいはモチベーションとかも足りていなくて、結局何もアウトプットできない。作れない。

どういう人がすごいかっていうと、なんだかんだでアウトプットが大きくて、それなりにフィードバックが (DIS であれ) ある人なんだよなぁ。そしてそのフィードバックを次に生かすことができるような、なんか、無理だな。

もちろんそのアウトプットは、適切な基礎があってこそで、あるラインを越えるまで、絶対的に孤独な向上作業であるはずだけれど、何か間違ってラインを越えないうちに誰かと何かをやったりするのは、困ったことになる。不安定なものを余計不安定にしてどうするんだ。しっかり基礎をやるべきだ。前も似たようなこと書いたなぁ。今年の4月だ (検索した)。

時間もっと欲しいなぁ。腐るほどあるだろうって怒られそうだけれど。

キボド

キーボード欲しいなぁ。お金ないけど
あんまり高くないヤツで、持ち歩いてもいいのも欲しい。

2006年 08月 06日

LDR

あーなるほど j 押す場合は一番下の記事が短くても大丈夫なように高さ増やすんだ。
なんかマウス使ったりキーボード使ったりしてるから、なんで長いときと短いときがあるんだろうって思ってた。

spam Return-Path

spam の Return-Path にメアド入れられて、いっぱい MAILER-DAEMON からメールがきてうざい。
Return-Path で新手の踏み台みたいなものをやってるのかなぁ。

spam

おっと、SPAM って書いたら食い物か。

違和感を感じた

違和感を感じて昨日の日記を見直したらまた下方向に書いてた。癖こえええ
(はてダのほうは下に書いてて (一貫性のため)、自分用では GM で逆転させてる)

Paint.NET

http://www.getpaint.net/
なんか結構レスポンスがよくて気持ちいい。起動が早い。エフェクトのプレビューが非同期的に実行されてちゃんとプログレスが表示される。
こういう感じのやつの Linux 版とかが欲しいなぁ。Gimp はどうも使いにくい。Gimpshop はどうだろう。今度使ってみよう。

コピペ

ソースコードコピペするときってどうしてるんだろう。
保存したファイル lv で表示させてチマチマ貼り付けてるけど頭悪いよなぁ。

hatena.vim

グループ日記も更新できるかな?

お、いけた。

もっかいテスト

hatena.vim + g.hatena

http://lowreal.net/2006/hatena.vim-and-group.patch
設定変えるだけでいけるみたいだ。ので、設定変えるところだけいぢってみた。
関数の呼び方で既に躓いてハマった。call

でもなんかグループ日記だと更新に時間がかかる。なんでだろ。

そういえばオリジナルだと改行コードで怒られたのでそれだけ全部変換した。よくわからない。

[script]関数を実行する が書かれてた。神!

パッチをもうちょいクリーンにした。中身自体は変わってない。

gg

g.hatena が重いのかなぁ。どうも更新が長い。

2006年 08月 07日

vim help mode

C-] で飛べるんだね……わかんなくて困った困った
C-O で戻れるんだけ……わかんなくて困った困った

vim でひまつぶし

i0<C-[> したあとひたすら <C-A> しつづける。
465 ああ、生きているって感じがする。楽しいなぁ。

mixi diary

@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document domain("mixi.jp") {
    td.h12 {
        line-height: 1.7 !important;
    }
}

Gerry Eat World

It's a gerry world.

2006年 08月 08日

zsh on cygwin

どうも最新に更新すると補完でエラーでる。ダウングレードした。

2006年 08月 09日

Remember The Milk

Remember The Milk 使い始めた。思ったより使いやすく感じない (タスクの選択とかがイマイチわかりにくい気がする)。

課題とかのタスクを登録しておいた。あと、おきてからすることとか。不安なことをタスク化するのは楽になってよい感じ。でも登録したはしたで、「まだ登録しきってないタスクがあるんじゃないだろうか」と不安になるダメさ。

タスクの一覧ってないのかなぁ。リストを超えたグローバルなやつ。

2006年 08月 08日

win

win を vim と誤読する

2006年 08月 09日

mochi

log(A({href:"javascript:void(0)"}, "hoge")) //=> INFO: javascript:void(0)

なんで Element なんちゃらじゃないんだろう。文字列が返ってきてるのか要素が返ってきてるのかわからない。
あと、オブジェクトをログるときってどうするんだろ。toSource() だと Fx はよくても他のはだめだしなぁ。

Element とかにならないのは repr() を log 内部で呼んでいるかららしい。Element a(@href=) とかにしてほしいなぁ。

上のは嘘でした。repr は自分で呼ぶらしいです。prototype.js の inspect 相当らしいです。log は普通に出力するみたいです。

MochiKit.Style

MochiKit.Style がなくてハマった。Dimensions とかは MochiKit.DOM にあるんだ。

MochiKit のオブジェクト

どう作るのがスタンダードなんだろう。

Obj = function () {
	// initialize
	bindMethods(this); // インスタンスメソッドの多くがリスナになるとき?
}

Obj.prototype.foobar = function () {
}

interpreter の場合は initialize が prototype のプロパティになってて new したあと手動で呼んでる。
あんまスタンダードなやりかたとかないのかな。いまいち統一性に欠ける気がする。

MochiKit Visual

ドキュメントにだまされたっぽい。ほとんどの関数が 1.4 からのサポートになってる。よく読まないとだめだ。
しかし 1.4 を svn からとってきてもまだ実装されていない関数 (MochiKit.DOM.getStyle とか) が多々あって動かないようだ?

あと MochiKit.Style は 1.4 から出現するみたいで、MochiKit.DOM.Dimensions って書いてると怒られる……

エフェクトとかなくていいよ、ってことに。自分で実装しろよって話だけど

Vim Javascript

Hogehoge.prototype = {
	label : function () {
	}
}

って書こうとするとインデント崩れる。

fun(function () {
	aaa
});

も崩れるなぁ。

MochiKit.Iter imap

imap は一番要素数が少ないやつにあわせるんだなぁ。あたりまえか。

IE appenedChild

ロード途中に appendChild すると「操作は中断されました」とか出るんだなぁ。
イベントリスンどうしよう。ロード中は操作が効かないとか嫌だしなぁ。オーバーレイな要素はあらかじめソースに書いておくとか、そういうので解決するほかなさそうだけど

a href=""javascript:"

これってだめなんだっけ。いいんだっけ。だめだもう。全然ダメだ。

2006年 08月 10日

partial

partial が楽しい。あと izip

exhaust, partial

こんな使いかたでいいのかなぁ。

exhaust(
	imap(
		function (item, count) {
			connect(item, "onclick", partial(handler, count));
		},
		document.getElementsByTagName("a"),
		count()
	)
);
2006年 08月 11日

Effect フック

beforeStart, afterFinish 以外って使うんだろうか。特に beforeUpdate, afterUpdate ってかなり実行されてå100 16167 100 16167 0 0 81193 0 --:--:-- --:--:-- --:--:-- 541k
¼び出すだけで重そう。

派生エフェクトを作るときには便利か。

gt gT

いままで :tabp ってわざわざうってた。ちゃんとヘルプ読もう。

effect

もちの Visual が使えないので簡単なのを実装中。めんどす

  • 半透明系はおもい
  • 移動系はめんどい

effect

New.js を自分で読み込まないとだめらしい。時間無駄にした。死にたい。そして自分で実装したやつとインタフェ違うから面倒くさい。(effect.reverse() をどうやって実現するのか考えるのがめんどい。キューとかどうやって使うんだろうっていうレベル)

opera 0verflow

Opera で stack over flow がでる。なんでだろう。

42         if (MochiKit.Base.isOpera() &amp;amp;&amp;amp; (MochiKit.Base.find(['left', 'top', 'right', 'bottom'], style) > -1)) {

New.js がバグってるよ。(from id:motemen さん)
神!

gerry++

おなかいたい。マクドの喫煙席で30分ぐらいねたせいかな。
そういえば、マクドでポテトとハンバーガーだけ頼んだら「お水はいりますか?」って訊かれてあせった。やばいおなかいたい。うろたえて「いいです」といった俺は負け組です。

vim Align.vim

萌えるなぁこれ。

hjkl

hjkl に慣れない

タッチタイピング

タッチタイピングできないのをどうにかしたい。P , . / \ [ ] = ^とか絶対 typo する。

2006年 08月 12日

GreaseMonkey で MochiKit 使ってみる。すなわち外部ライブラリの読み込み。あるいははてなのグラフが綺麗じゃない

GreaseMonkey で外部ライブラリが使いたいな。みたいな。似たようなのでは CMS researcher - Greasemonkeyでprototype.jsやscript.aculo.usを使う方法 があるのですが、どうもうまくいかなかったので自力実装。

function dll(loadLibs, afterLoadedFunction) {
if (afterLoadedFunction._retry)
afterLoadedFunction._retry = 0;
else
afterLoadedFunction._retry++;
if (afterLoadedFunction._retry > 10) throw("Library is not loaded because of some reason.");
loadLibs.forEach(function (lib) {
GM_xmlhttpRequest({
method : "GET",
url : lib[0],
onload : function (req) {
try {
(function (r) { eval(r.responseText) }).call(window, req);
} catch (e) {
//  nigiri tubushi
}
},
onerror : function (req) {
alert(req.responseText);
}
});
});
var loaded = true;
loadLibs.forEach(function (lib) {
try {
loaded = loaded && typeof eval(lib[1]) != "undefined";
} catch(e) {
loaded = false;
}
});
if (loaded) {
try {
afterLoadedFunction();
} catch (e) {
unsafeWindow.console ? unsafeWindow.console.log(e)
: window.dump(e);
}
} else {
var f = arguments.callee;
setTimeout(function () { f.apply(this, [loadLibs, afterLoadedFunction])}, 500);
}
}

で、以下のように使う。

// 第一要素にロードする js への URL
// 第二要素にロード確認用のオブジェクトの名前
// を入れた配列の配列
dll([["http://example.com/mochi/Base.js", "MochiKit"]], function () {
// ロードされたら実行される
})

ポイントは eval を使うところ? eval を使うので unsafeWindow を極力使わなくてすむ。あとは DOM 系の処理でおかしいこと (ここには append できないぜ系エラー) になりにくい気がする。

ロードするスクリプトの依存関係上、何度かリクエストが発射されることがある。めんどいのでブラウザのキャッシュ機能にまかせてこっちではキャッシュしていないけど、ホントはちゃんとキャッシュしたほうがいいはず。


でもって、はてなアンケートの円グラフを PlotKit で描画しなおす GreaseMonkey スクリプトを書いてみた。hatena-q-make-graphs-with-plotkit.user.js

結果をソートするようにした。あと Global じゃなくて window 使うようにした。

id:secondlife さんからの指摘により、エラーを握りつぶす処理を追加し、最大ロード試行数を加えました。

ぼーっとソースを読むとき

なんとなくぼーっとソースを読みたいときって、コンソールのアプリケーションだとだめなんだよなぁ。マウスでドラッグアンドドロップでエディタで開いて、マウスホイールで眺める。そういうのを楽にやりたい。

Linux デスクトップとかだとこういうのがすっごいやりにくい。ファイラが使いにくい。なんか疲れる。


キーボードがもっとうまく使えたらいいんだろうなぁ。気合入れないとキーボード使えない。なんかキーボードは typo しまくるから、ストレスたまる。いつまでたってもタッチタイピングできない。P とか今だに一発でうてなくて @ を押しまくる。, も . もうまく入力できない。数字もだめだ。みないと打てない。[ とか ] も、? も / もうまくうてない。そして、そもそも左シフトを押す習慣がない。右手の動きに無駄が多すぎる。そういうのをいちいち感じるから、キーボードはストレスが溜まる。

それで結局、改善しようと思っても、いつもの無駄なうちかたをしてしまう。無駄な打ち型のほうが早いんだから仕方ない。少しずつやっていくしかない。左手があんまり動かなくなったのもかなり最近だしなぁ。CapsLock を Ctrl に変えたあたりでやっとあんまり動かなくなった。

SE-U55GX

intel チップセットと相性が悪いらしくて使えなかったんだけど、今日久しぶりにつないでみたら割と普通……と思いきや音切れする。
とりあえず前やったように、いくつか USB ハブを通して試してみると、一個まともに動くハブがあった。これでちょっと使ってみよう。(前はハブ通すと CPU Max まで使い切ってだめすぎだった)

あー付属のドライバは、インストールしちゃだめみたいだ。USB Audio 部分はそれがなくても動く。そしてインストールしてしまうと CPU 食いまくる。タスクマネージャで C270なんちゃら.exe を強制終了すると直る (音は出る)。

音量変更

http://hp.vector.co.jp/authors/VA015243/ の MasterVC っていうのを使っているのだけれど、SE-U55GX はコントロールできないみたいで寂しい。
タスクトレイに音量が表示される、のはどうでもいいんだけど、Shift+Win+UP/Down で音量上下が癖になっててめんどい。

2006年 08月 13日

vim 補完リスト

補完リストがでなかったころの名残というか、なんというかなのだろうけど、微妙に直感的じゃない挙動になるなぁ。

迷うとき

  • 補完を開始して、候補が多すぎて文字を追加したいとき (そのまま入力すると、補完してしまう)
  • 補完を選んで Enter で確定させようとすると改行されてしまう。

:h popupmenu-keys

望む挙動

  • C-X C-N したら補完候補だけポップアップメニューされる (まだ補完しない)
  • それで入力したらそのまま絞り込む
  • Enter か TAB で確定

とりあえず補完キャンセルが C-E ってだけ覚えた!

C-X C-N したらとりあえずポップアップメニューだけ表示されるっていうのは completeopt に longest を入れとけばいいみたい。
>||vim|
set completeopt=menu,preview,longest
|
補完選んだあと何を押せばいいかで悩むなぁ。

マウスががたがた

これはキーボード使いまくれっていうアレなのだろうか

なんかツボったこと

おれ ここ めも かき なぐる
おまえ ここ よむ なぐる

これいいなぁ。何がいいのか謎い。が、いいなぁ。

network

なにやら誰かが漏れの del.icio.us の network を LDR でみている。

2006年 08月 14日

US キーボード

1200円ぐらいのを買ってきてみた。すごいへなちょこなキータッチ!
* がどこにあるのか、とか素で見ないと打てない。これで逆にキー入力の遅さが気にならないぞ!

とりあえず入力切替を C-SPC に変えた (Caps Lock は Ctrl に)。頑張ってなれよう。といっても家でしか使えないわけで……
そして無意識に全/半の位置のキーを押してしまうわけで……

あうあうあー

アスタリスクうちにくすぎ!! S-8ってなんだよ。
あと IME の設定で常時半角スペースに変えた。S-SPC で全角にすることにする。いい機会かな的変更

外国のコードで

文字列のクオーテーションにシングルクオーテーション使うのが多い気がするのは、シフトいらないから?

自動記法

っていうか自動で日付挿入する設定なのに *t* とか書いてるのが悪いのか。

Ctrl Shift

シフト押すつもりで Caps Lock 押してしまう。なんで文字でないの? とかやりまくる。

うーん

コンパクトな US キーボード持ち歩きたい。HHK Lite でも買ったらいいのかなあ。不評だけど。っていうか違うんだ。MacBook 欲しいんだ。あと一ヶ月か。長すぎる。

色がおかしい

そういえば店頭の MacBook の Safari で lab.lowreal.net 見たら色がおかしかった。といっても直すに直せないわけですが。

Last.fm

どう頑張っても badly tag とかで送れないファイルがある。STE でいろいろ変えたり fb2k で上書きしたりしてみたけどだめだった。っていうか Last.fm のクライアントではちゃんと読めてるんだよなぁ。なんでだろう。

2006年 08月 15日

FolderShare

FolderShare って torrent みたいに複数ホストに転送する場合は転送先ホスト同士でもコネクション張って負荷分散すんのかな。

Oh my gerry, 君は笑うと、子供みたいで

渋谷ついて歩きはじめたとたん腹が痛くなった。なんか腹痛ガスとかでてんのかな。

Catalyst

server.pl がやたら重いなぁ。あとソケットエラーでときどき落ちる。エラー書こうとしたら落ちなくなった。
この PC が悪い気がする。

Use of uninitialized value in subroutine entry at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Socket.pm line 370.
Bad arg length for Socket::unpack_sockaddr_in, length is 0, should be 16 at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Socket.pm line 370.

Operaと相性が悪いっぽい。再現するときは何度 server.pl 起動しなおしても再現する。が、再現しないときは再現しない。

Mochikit

itemgetter と keyComparator が萌える。

2006年 08月 16日

キーボードだけでブラウジングしたい

たまに思うんだけど、デフォルトの Fx じゃまともにできない。
とりあえず Hint-a-Hint を入れてみた。なかなかレスポンスがよい感じ。次にどこにいくかっていう不安さがない。

ブックマークレットの起動はキーワードを設定して C-L キーワード にしてみる。

しかしこのままだとまだスクロールにカーソルキーを使わないといけない。あーもうさっきから typo しまくりでやる気失くす。もううう

じゃあ(謎

HHKL ってそんなに重いんだ。980円でちっさい US キーボード ってアキバいってシコシコ探さないとなさそう。
kakaku.com ると、小さいのは HHK 以外にhttp://kakaku.com/item/01502010057/ ぐらいしかないなぁ。配置がおかしいけど

mozless

Perl Calendar

何使うのがスタンダードなんだろう。シンプルで簡単なのは Calendar::Simple っぽいけど、これでいいか。

ノートPCの手前に貼るチートシート

を作りたい。が、綺麗にはがせるソレっぽいものは高い、らしい。gtlt
ソフトウェアのほうがいいのかなぁ。C-F1 とか押すと画面全体に設定した画像がオーバーレイとかなら簡単にできそうだけど、OS ごとにごたごたやるのがめんどっちい。これOpe?

ぺるる

my @foo = (1, 2, 3, 4, 5);
my $hoge = {
  bar => "unco",
  hage => @foo,
  baz => "neet"
};

とかやってハマった。ぱっと見何が悪いか全然わかんない。ってか全然書いてないのに、ああ、ああ。あああ。ああーああーあ あーあーああー あああーあ あーああーあー ああーああーああー

catalyst

  • r のリロードおそい、のがだんだん

mozless

なぜか hjkl の h だけ効かない。滅多に横スクロールしないから困らないといえば困らないけど

今気づいた、けど、はてダってコメントの投稿時刻は表示されないんだ。

正規表現2.0

どんなのだろうって思って素で釣られた。

mozless * google adsense

adsense があるページだと一回クリックしないと効かない。

US 配列

一番気になるのは右手小指下段だなぁ。キー一個ぶんまるまるシフトになってて、シフトを避けて入力しようとするみたいだから、/ ってどこだよってなりやすい。: でシフト押さないといけないのがめんどい。

ge

サイダー飲んで gerry? 明日は時間がきつい。からかな

2006年 08月 17日

Calendar::Simple

Calendar::Simple をオブジェクト使って書く夢を見た。

dll

todo

  • retry 指定
  • onload を try catch

リアル世界とインターネットをもっと近づけたい

大学在学中にやりたいこと。もっと、物理的なことをやりたい。が、それだけで完結せず、コンピュータ・ネットワークと繋げたい。具体的に何か思い浮かばないけど、なんらかの形で光をとりいれたい。もちろん接触センサーとかもやりたい、が、まったくその辺わからない。理系大学じゃないのがネック

P [ は薬指

xyzzy -> gvim

vim に慣れるために Windows でのエディタも vim にしてみる、といってもしばらくは共存になりそうだ?

vim といっても gvim でバッファは使わず、タブをひたすら開くことにする。とりあえず関連付けは変えない。というのも、既に開いている vim で開く方法がよくわからないから、だけど、ドラックアンドドロップが使えるのでとりあえずはいいかな。

しかし何故か ft=xml で、閉じタグの omni 補完ができない。ft=html ならいけるんだけど、未登録タグ直下でオートインデントしてくれないので切ない。ついでに CDATA セクションの扱いもアレだし、うーん。とりあえず今は html で書いてる。閉じタグ補完ないと生きていけない。

できれば xyzzy の xml-mode C-. 相当の機能が欲しいけど、とりあえずそんなに困らないからいいか的何か。むしろ = 入力後のクオーテーション補完のほうが欲しい、んだけど、うまく vim script 書けない。


  • win の gvim は .vimrc, _vimrc, .gvimrc, _gvimrc を読むらしい? gvim 固有の設定は _gvimrc に書いた。

全然関係ないけど、このサイトの更新システムをどうにかしたい。家の PC でしか基本的に書けないのがイマイチ。FTP うpろどしないといけないしなぁ。めんどい


しかしながら何らかのタイミングでプロンプトが見え隠れするのが嫌だなぁ。


既にある vim で開くには --remote らしい。


win32 gvim は見た目がちゃんとネイティブっぽくていい感じ。マウスホイールも効く。が、コマンドプロンプトが開いたり閉じたりするのはどうするんだ gtlt

なんかやったらすぐに normal に戻る癖をつけよう。


コマンドプロンプトがいちいちでるのは screen の window 名変える echo が動いてるせいだった。gtlt

MochiKit の getElementDimensions

display: none だととれないので以下のように

e.style.position = "absolute";
e.style.visibility = "hidden";
showElement(e);
var dim = getElementDimensions(e);
hideElement(e);
e.style.visibility = "visible";
e.style.position = "static";

blindDown 使うときは beforeStart でこれをやって、this.scaleMode.originalHeight とかに突っ込んであげないとだめっぽい。

午後ティーみくる

あんま飲んでないのにお腹痛くなる。危険gtlt

Fx F6

F6 で描画エリアにフォーカスする?んだ

あ、ちがった。よくわからん。ロケーションバーと描画エリアとで切り替わる。けど、ロケーションバーに入力してしまうと F6 で切り替わらない?

帰宅

きゃぱっち & フロはいる

2006年 08月 18日

コード打とうとすると

やっぱ、すっごい間違えるね! クオーテーションの位置がだいぶ戸惑う。括弧がズレる。() も [] も。慣れよ!
あー一瞬前まで「これ書こう」って思ってたことを完全に忘れた。

あ、そうだ。Windows でも vim 使おうかと思ったんだ。なんか xyzzy で ESC 連打して C-g 連打して、またターミナル戻って C-g 連打することが多々あっていやだ。

gvim

インストーラーで gvim70 を入れた。既存設定ファイルをもってきて、termencoding とかをコメントアウト。_gvimrc を新しく作って以下のようにした。

set shellslash
set columns=106
set lines=32
set guioptions-=T
set guifont=M+2VM+IPAG_circle:h10:cSHIFTJIS
colorscheme desert

が、なぜか xml モードで閉じタグ omni がうまく行かない。html モードにするといけるけど、インデントがおかしく。くまった。

vim i

insert-mode のときはカーソル移動どうするんだろ。insert したらすぐ normal に抜ける癖をつけるのかなぁ。無理っぽい。

g:subtech:id:secondlife:20060818:1155864164
mjsk
抜ける癖つけよう。

どうでもいいけど

たまに用語とか全然わからない気持ちになって自分の日記読んだりすると「なんだこの用語ばっかのわかりにくいにっきわ」とか思ったりする。
で、少しすると今度は、これって用語がわかっていても理解できないよな、とか思い出す。日本語へたすぎる。ああ

左手マウス

右手が疲れたときよく左手を使うせいか、いつの間にか左手で普通にマウスが使えるようになってる (マウスボタンは右手モード)。キーボードをちゃんとうてるようになりたい。C-[ 打とうとして { になるのが泣ける。

2006年 08月 17日

gvim 常にタブで開くようにしてみる

バッファとタブを併用すると混乱するのでタブに統一したい。vim のバッファはタブごとに複数のバッファ、という風になっていてややこしい。タブ1個に対してバッファ1個にしたい。

たいした方法が思いつかないので以下を加えた。

" バッファを使わない
autocmd BufReadPost * tab ball

これで一応関連付けとかドラッグアンドドロップのときはタブを開くようになる。けど、ちょっと挙動が気持ち悪い。タブを閉じても結局バッファは残っているため、次に何かのファイルを開いたりすると閉じたのが復活したりする。これは常に bw (バッファを閉じる) を使っていればたぶん大丈夫なんだろう?

2006年 08月 18日

KBD

HHK pro とか金もち杉

無線LAN

普通どんぐらい飛ぶのかなぁ。階またいでも大丈夫なのかな。
障害物があるとだめって、どのぐらいだとだめなんだろう。2.4GHz だと電子レンジの同じらしいけど、つまり電子レンジに貼ってある網ぐらいの細かさだともう通さないんだよなぁ。っていうか結局壁とか床の素材によるか。

GERRY POP FAN CLUB

食べすぎっぽい。
callback({ weight: 57.2, height: 176 });

GreaseMonkey hosting

環境変えるごとにぐりもんインスコするのが面倒くさいから、オンラインにスクリプトをインストールして、起動時に全部読み込むとかが欲しい。gm_scripts ディレクトリがそのままオンラインになる感じ。
つまり、起動時に gm_scripts ディレクトリをオンラインからダウンロードしてきて、終了時にアップロードする拡張があればいいんだろうか。
と、思いついても実行できないのがなんかなぁ。Fx の拡張を作ろうとか、結構前から思ってるけど、何度やろうとしても開発方法がうまく理解できない。

と思いきやこれだけじゃだめか。GM の設定もオンラインに保存してくれないとだめだ。

アサマシ

http://astore.amazon.co.jp/nuso-22
もっと頑張ってアサマシろうかなぁ。

それは本当に意味があることか、しかし

2006年 08月 19日

XPath

XPath の解説書こうと思ったけどあまりの説明力のなさにぜつぼうした

  • データ型
  • コンテキスト

ポイント

  • ルートノード以外のノードは全て親をもつ (属性ノードの親はその属性の属する要素だったりする。書くときは直感的だけど、理解するときは微妙にえ?って思う)
  • ルートノードはルート要素ではない。ルートノードは名前をもっていない。
  • / と [] によるコンテキストの移動

XPath 1.0 では独自にデータ型を定めている。存在するデータ型は以下の通り

  • ノード集合
  • 文字列
  • 数値
  • ブール (真偽)

コンテキスト

とりあえずコンテキストさえ意識できればいいかもしれない。

  • ノード ( コンテキストノード)
  • 一組のゼロ以外の正の整数 ( コンテキストポジションおよびコンテキストサイズ)
  • 変数のバインディングの集合
  • 関数ライブラリ
  • 式の範囲内でのネームスペース宣言の集合

最初の二つ以外は特に重要ではない。とういうか、コンテキストノードさえ意識していれば、コンテキストを意識するということにはなる。上のを見て「変数が使えるのか!」と喜んではいけない。変数は XPath 単体では使用することができない (代入ができないので)。

さて XPath における / はコンテキストを分離する記号のひとつである。 (述語=ブラケットで囲まれた部分でもコンテキストが変わるので、ブラケットもコンテキストを分離する記号。/ とブラケット以外ではコンテキストは変わらない (はず))

    • >

記事のロングテール

どうやったら過去記事をロングテール化させられるんだろう。

2006年 08月 20日

dll 関数の補足と TODO

dll 関数 の補足と覚書

GM_xmlhttprequest の onload でなんで .call とかやっているかというと、一部ライブラリが this を window (Global) と仮定したコードになっているからです。eval のコンテキストの this を window (Global) オブジェクトにしてあげて、例えば MochiKit の export 先オブジェクトをそこにしてあげているわけです。

でもって、なぜ unsafeWindow でなく window なのかっていうのは、その export された関数とかが、ロードされたページに影響を及ぼさないためです。Greasemonkey 中の window はページ内のスクリプトからはアクセスできない (safe) ので、Greasemonkey 内限定で使う場合、副作用の懸念を減らすことができます。


でもって、id:brazil さんの記事 で、あああって思った。全部とってきてから eval したら、変に何回もリクエスト送らないでいいや。と、いう、か、GM_setValue 使えばいいんだけど、ちょっと GM_setValue で長い文字列突っ込むのは怖い。

2006年 08月 21日

17歳へ それと 洗濯機から女の子の日常性について

17歳に、なりたい。ただ、それが、高校で、オレが、オレでないことを祈って、あるいは、オレがオレであっても、オレ以外のオレが、オレの中にいるように、生きたい。

どうでもいいけど、自分が想像する、洗濯機からでてくる女の子は、ヘッドフォンをつけてない。なぜなら、彼女にはそれが必要ないからなんだけど、いや別についていたっていいんだけど、ついていない子を見るほうが、多い。洗濯機から出てくる女の子は、目立たない。違和感がない。日常に溶け込んで、洗濯機から出てくる。

普通さの正しさ、自分の考える完全な普通さは、洗濯機からでてくる女の子につまっている。その日常とか、透明さが普通で、でもこの論理的じゃない、理不尽な世界においてそれは異常に見えることも、ときにはあるよね、っていうこと、なんですね。

すごく普通なことは、実際ほんとにリアルに溢れていて、それが自分の眼に「リアリティ」として現れるには、自分がそれに気付けるか、という一点にかかってる。自分がそれを感じられるか、って忘れないようにしないと。

雰囲気に飲み込まれて、立ち位置を見失うと、せっかく構築しかけた世界観も壊れるから、注意しながら、しっかり考えないと、また明日も明後日も危ない。

2006年 08月 20日

Japanize

要素またぐときってどうすればいいんだろ。一部が強調されてたりとか、br で改行されていたりとか。

何このシチュエーション

フロ入ってあがってきたら gerry

Japanize

<div>
foobar foovar fookkk <a href="aa">aa</a>
</div>

ってあったとき、foobar foovar fookkk を翻訳する方法がわからないな。

あれ、できてる場合もあるなぁ。単純に入力ミスかなぁ。

あー。改行とか &nbsp; とかあるとだめなのか。正規表現にすればいいらしい

http://japanize.31tools.com/data/ 以下に location.host のディレクトリ。最新の翻訳データは current.txt

DOMNodeInserted と DOMCharacterDataModified イベントをリッスンしているため、JS を追加される文字データも翻訳されるっぽい。

2006年 08月 21日

GM svn

http://d.hatena.ne.jp/kusigahama/20060820#1156083748
svn に入れるのはなんかちょっと個人的にはおおげさな感じがしてやりたくないなぁとか、おもったり、します。差分とか、いらない
config.xml は include とかの設定だけで、GM_setValue とかの設定は prefs.js だった、気がします。

本当の意味の Web 2.0 とは何なのか

君と僕が、繋がるってことさ。

クライアント領域で見る位置

LDR とかをキーボードで読んでいて思うんだけど、画面の一番上って見ないんだよなぁ。だいたいフォーカスのあたってる一個か二個下のエントリを読んでる。この日記の場合は「リアルを求めない」あたりに常に目のフォーカスがある。
だからピン (めったに立てない) 立てるときは一個もどって P 押したりとか。

見る位置

上に余白がないと、まだ上があるんじゃないかっていう不安があるのかなぁ。なんかそんな感じがする。
そういえば、普通の下スクロールで最後まで行ってもホイール回すのしばらく止めない。

2006年 08月 22日

eval.call(window, foo)

aaaaaaaaaaa
こっちのほうが断然シンプルだ!! 恥ずかしい。

あれ、これだと動かない。

腹痛

神泉で急に刺すようにいたくなって (いつもは刺すような痛みじゃない) あせった。眠気が醒めるの通り越して寝るところだった。波が何回かきつつ gerry...

関係ないのだけど、数日前から口内炎がひどい。

getElementsByTagAndClassName()

.appendChild とかやってて、なんで not a function 出るんだって悩んだ。Elements Array ですから!

どうも

もちの connect でひっかかる。第四引数まで使う場合で、fun じゃねぇよ! obj じゃねぇよ! って怒られる。だいたい些細なミスだけど

DNBK

大文字だと DNSBL と似てる。

2006年 08月 23日

mixi に登録した日を表示する GM スクリプト

mixi-show-regist-date.user.js

他人のページを見たとき、その人がいつぐらいに mixi に登録したかを表示します。インストールすると最終ログインの下におおよその登録した月が表示されるようになります。

データは今日までのを適当に集計したやつで、今日以降登録した人は一括して 2006-08 以降と表示されます。メンテナンスする気はありません(てきとう

verbose 設定を追加しました。デフォルトでオン。オンのときはそこらじゅうの写真にいつ登録されたかが表示されます。

,
2006年 08月 22日

MochiColor

subtle_color = color.isLight() ? color.darkerColorWithLevel(0.5)
                               : color.lighterColorWithLevel(0.5);

svn diff -b

Align しまくると diff みにくくなるの回避。空白無視
trac は普通に ignore white space change あるのね気付かなかった。

あいであ

mixi の id から登録日を逆算する GM スクリプト

id=1 の BK さんが最初に日記を書いたのが 2004-02-25
100x : 2004-03-06
200x : 2004-03-12
300x : 2004-03-20
400x : 2004-03-29

と、ココまでやって、list_diary.pl では書いていなくても、登録月からのリンクが貼られることに気付く。すなわち、list_diary.pl を見てあげれば (その人が日記を公開していれば) いつ登録したか月単位でわかることになる。
RSS や、非公開の人の場合は、id が前後の人から推測するしかないようだ?

2006年 08月 23日

IDから登録日抜いてくるのは書いたけど

アクセス多すぎで蹴られる。

なんのデータだろう

1 : 2004-02
100x : 2004-03
200x : 2004-03
400x : 2004-03
800x : 2004-04
1200x : 2004-05
1601x : 2004-05
2401x : 2004-06
3201x : 2004-06
4801x : 2004-07
6401x : 2004-08
8001x : 2004-08
11201x : 2004-09
14401x : 2004-10
17601x : 2004-11
20801x : 2004-11
27201x : 2004-12
33601x : 2005-01
40001x : 2005-02
46402x : 2005-03
52802x : 2005-03
65602x : 2005-05
78402x : 2005-06
91202x : 2005-06
116802x : 2005-08
142402x : 2005-09
168002x : 2005-10
193603x : 2005-11
219203x : 2005-12
244803x : 2005-12
296003x : 2006-02
347203x : 2006-03
398403x : 2006-04
449604x : 2006-05
500804x : 2006-06
552004x : 2006-07
603204x : 2006-08

x には 0でも入れたらいいと思う
デフォルトでインターバル 1k ずつ見ていく。で、一つ前と同じ月だったらインターバル2倍にして飛ばす。から、そのへんが正確じゃなくなってしまう。

時をかける少女 を見た

やたら好評で見たほうがいいよ!とかいう話だったので、ゆーさん (誰) と真雪さんと見てきますた。

また (謎) 時間跳躍系なんですが、これは SF っぽさは殆どなく、終始青春でした。やばい。青春やばい。青春系で、ただし切なさ多め、ぐらい、だった。

  • え? っていうシーンがあってあせる。
  • かなり展開がはやい。
  • 変に超人的な人がでてこなくてよかった。(おばさんがアレだけど、あんまり関係しない)
  • 空の描写が多かった。気がする。
  • 冒頭の図書室の女の子がやばい。と思いきや最後のほうでも出てきて嬉しい。
  • サブキャラの女の子かわいそう。
  • 人混みに紛れるシーンが好き。主人公もどっちも。ちょっと壊れ気味

めも

mixi へのアクセスは 3sec おけば安定するっぽい。

2006年 08月 24日

MochiKit observer

input 監視する関数とかはなさげ?

.swp

この PC やたらクラッシュして .swp が残りまくる。ちらばってるのが嫌なので

set directory=~/swp

した。

Return-Path

Return-Path にこっちのアドレスが書いてあるスパムが気持ち悪い。これ嫌過ぎ。

2006年 08月 25日

期限切れ

何度も書いているけど、新しい人とリアルで話すのは、果てしなく面倒くさい。相手がどのレベルでキレるか、相手がどのぐらいリテラシを持ってるかを、慎重に量らないといけない。こういうこと、どうにかできていたのが、その期限だったわけだけど、それがとっくに終わってしまってる。もう成り行き上仕方なく、という展開以外に、そういう作業はしない。というか、期限内でも、どうにかやっているというレベルではなかったように思う。慎重さに欠けてたように思う。もういいけど。

例えば大学で誰か知り合いを作るにしても、こういう手順を踏むのはなかなか難しい。たいして会うわけでもないし、しかも、量った結果が、望んだ結果であるとは限らない。というより、多くの場合期待は裏切られる。最初からないものに期待してる頭の悪さがここにある。

ネットリテラシの量りかたも、いまいちよくわからない。「これはひどい」の響き方が、タイプによって違うことに気付いたけど、どうも使い分けているような人もいてややこしい。ツンデレにしても萌えにしても、レベルというか、使い方の違いがあってわからない。フィードリーダーを使っていなかったりする。フィードリーダーを使っていてもあんまり購読していなかったりする。何か一個のことで、ちゃんと量れない。つまり、そこそこの長い時間をかけないといけない。どんだけ面倒くさいんだよ、って。かけた時間は殆ど無駄になる。そこまでして、いまさらリアルが必要か? リアリティで十分ではないか?


ネットで日記を読むのが面白いのは、画面の向こうの人の形を、こちらが自由に想像できるから。何か、自分の中のキーワードにひっかかる人の日記を見て、こういう人なんだろうか、こういう人なんだろう、とか、勝手に想像できる。自由に。ネットの中で完結している限り、自分の想像は守られる。

ここで、期待が膨らんで、コミュニケーションをとろうとしてみても、割と大丈夫だ。なぜかといえば、想像が侵されそうになったとき、自分からそのコミュニケーションをやめることができるから。自分の想像が、壊れない程度に、コミュニケーションができる。面倒くさそうなことになったら、回線切って寝ればいい。明日は曇りのち晴れ。


これが正しくない、と思うだろうかとか。実際、リアルでも同じようなプロセスが、より短時間により集中的により危険な状態で行われているだけ、だけど。一日の間に、何十もの勘違いをして、少しわかった気になって、次会うとき終わるような。しかも、何も全く知らないところから、手探りで。より無駄が多い。楽しみが少ない。よく考える時間がない。何より、コミュニケーションを強要されるのは面倒くさい。別に、そんな話聴きたくないよ。別に、こんな話、聴きたくないでしょう。


昨日は、9時間寝て、夢を見たけど、夢の内容を忘れた。いい夢だった気がする。けど、忘れた。忘れても、いい夢だった、と。雰囲気。でもたぶん、それじゃなくて、ちゃんと思い出しても、妄想なのかもしれないけど。

,
2006年 08月 24日

TT FOREACH

[% FOEACH foo = [ 日本語 日本語 ] %]
[% foo %]
[% END %]

ってやったらパースエラーだった。

mixi のやつ

interval 増やす倍数 1.5 ぐらいにしてやりなおしたほうがいいかなぁ。飛んでる月がある。っていうか数学強い人は最適なアルゴリズムを教えてくれればいいんだ!
あと取得失敗したときは offset としてインクリメントして、成功したらクリアしたほうがいいなぁ。
という覚え書。

あとブログラムに組み込むときはかぶってるやつを削除しろよハゲ (意訳) っていうツッコミをもらた gtlt

2006年 08月 25日

「プレビューボタンを消す」スクリプト

シンプルだけどいいなぁ。ないすアイデア

zsh

svn の補完がエラーで効かない @ FC5

$ zsh --version                                                                                                                            
zsh 4.2.5 (i386-redhat-linux-gnu)

家の ubuntu は大丈夫だなぁ。

さんだば

SPACE 連打すると勝手に次のメールに飛んでくれるのか

割りとふつうらしい!!

昨日のあいであ。

自分の見たページを学習する人工無脳 Greasemonkey スクリプト。学習データは GM_setValue で保存。prefs 飛ぶね!!
あるいは、見てるページにどんどんタグをつけてって、傾向を学習して、新しいページ見たとき勝手にタグをつけてくれるとか。いまいちか

っていうか

GM で実装した伺かのようなものとか。GM_xmlhttprequest で語彙をオンラインでとってくる。自動学習じゃなくて、手動入力。だめだ。メンテナンスする気にならないもんなぁ。P2P でクライアント同士が勝手に会話したらいいんだけど、それだとなんかもう chatsum じゃね? みたいな。

もて MochiKit.Async

まだまったく触ってない!

もて MochiKit.Async Deferred

  • 「値が用意できたら、実行する」
  • callbacks は普通の callback と エラー用に errback のタプルで一個

ある非同期なことをする関数は、new Deferred() で作った Deferred オブジェクトを返してあげて、値が用意できたら、そのオブジェクトの callback を呼ぶ。
呼出側は帰ってきた Deferred に addCallback とかする。

のか、な。やってみよう(やってから書け

Deferred を Defferd と書いてしまう

そんなことよりお腹遺体 gerry’s

Defferd でぐぐると「もしかして」されるgtlt

Deferred

一回しか呼べない。

timed observer

素で実装すると

function observeInputChange(input, func) {
        var current = input.value;

        callLater(1, function () {
                if (current != input.value) {
                        current = input.value
                        func();
                }
                callLater(1, arguments.callee);
        });
}

operator.gt or operator.lt

どっちだかわからない。そして無限ループへ
partial 時には逆になるから余計wkwkrn

てすと

鯖のインタフェがないので、callLater で仮実装。implementLater

と思ったけど、wait 使ったほうが doSimpleXMLHttpRequest のインタフェに近いようだ。

カーソルキー

なんかよくわからないけど vim でカーソルキーが効かなくなって、じゃあ hjkl 使うかーとか思ってがんばった。しかし、まったくうまく使えない。無理

AllPeers

友達と軽く試してみたけど、なにやら激遅い。20kb/sec ぐらい?
ダウンロードしたファイルはデスクトップの allpeers フォルダに、共有もとの人の名前のフォルダが作られて保存される。

ポート開放とかは気にしないで使える。何故かがわからない。通信自体は HTTP on SSL っぽい? AllPeers の鯖が今重いらしく、ファイルの共有メッセージが伝わらないことが多々ある。

2006年 08月 26日

Last.fm badly tag

アーティスト名の最後が .wav だと怒られる。なんだこれは。
何度か変えてやってみたけど確実に怒られる。アリエナスgtlt

http://www.last.fm/forum/21713/_/70366/1#f714635
質問したらスパムフィルタって言われた。MBID を ID3 に突っ込めばいいらしい。めんどくせええ

あれ、突っ込んでもだめっぽい。やりかたが悪いのかしら。しかし、めんどうなので諦めよう。

2006年 08月 28日

timed observer

http://subtech.g.hatena.ne.jp/cho45/20060825/1156487335
これってもしかして、setTimeout の実行コンテキスト云々で動かない? というのをふとした拍子に思いついたのだけど、今は検証する気が起きない。
ってそれは文字列渡したときの話か。こわいこわい。

2006年 08月 29日

Fx Hint-a-Hint

なんか描画後に少し Fx がとまって嫌だなぁと思ったら Hint-a-Hint が犯人だったっぽい。冤罪かもしれないけどアンインスコしたらなおった。
むー

途中、相模大野と登戸にて、急行トイレ行きに接続いたしました

なんかせっかくいい席に座れたのに、腹痛が襲ってきて相模大野で下車。まじ gerry。ひどすぎ
でもって、また急行に乗り直したのだけど、登戸で二度下車。が、ここで問題があって、登戸ってなんか駅の内側にはトイレないんですよね。あせったあせった。しかたなく改札を出てトイレへ……ひどすぎる。これ、パスネットだったからまだマシだったけど、普通にきっぷだったら泣くよ。

どうも最近、腹痛が始まってから、gerry までのラグが短い。
前まで

1000022000333000444400055550006666000777700888809999

みたいな腹痛の波 (痛さのレベル0は痛くない。9だとやばい) だったのに

100440008800099

ぐらいの短さでくる。

のぼりとのトイレの落書き

日本! おっぱい!
日本! おっぱい!

よせてあれならAカップだよなぁ
Aカップ好き!

平和なようです。

OCR

http://www.gnu.org/software/ocrad/ocrad.html
でグレースケールのてきとうな画像をいくつか作って ocrad に突っ込むと、最低でも文字サイズ 25px は欲しいぐらいだった。

・・

なんかすんごい面倒くさいなぁ。gimp 使いにくすぎ。
Paint.NET >>>>>>>>>> gimp

gerry 情報

id:h2u さんが言ってたけど、小田急相模原以降の駅ではトイレやばいってさgtlt
登戸の汚さが個人的に限界だ。
関係ないけどはやく PASMO になってほしい。昨日SUICA系とパスネット系でやたら迷った。

dojo * firebug

エラーを dojo がキャッチしてログるから、Firebug のアイコンは緑のまんまなんだよねぇ。開いてスクロールしないとエラーでてるかわからない。常に開いとけばいいんだけど
あと行数がわからないので、エラーメッセージから想像するしかない。「ああ、これは最後の要素にカンマつけてるな」とか、経験則じゃんか!!

絶対パス 絶対URL

絶対URL (スキーム含む) : http://example.com/path
相対URL (ホスト内のパス) : /img/hoge.png, /hoge.html
絶対パス (ホスト内でのルートからのパス) : /img/hoge.png
相対パス : ./hoge.html

なんとなく、http://〜 を絶対パスっていうのに違和感があったので聞いてみたら、とぴあさんが答えてくれた。さすが神
相対URL=パス。で、パスを相対URLと呼ぶのはいいだろうけど、絶対URLを絶対パスというのはおかしい。と、あいまいだったところが消えてすっきり。かあとで書き直す

なんか定義リスト作れない><

タイムリープでどうやるかはきいてねーよ

それタイムリープでできるよ
キーワードになってる。

2006年 08月 30日

ldr

てきとうに OPML 登録したらマイフィード表示されなくなた (?unread=1 レスポンス帰ってこない)。

くまった。アイテムの編集も表示されない。アカウントとりなおしたほうがはやい予感

とりなおして登録してもだめっぽい。OPMLインポートするときは分けて既読にしながらやらないとだめなのかなぁ。困った。

どうやってフィード読もう

bloglines は編集画面開くと応答しないスクリプト云々が出るしなぁ。またアカウントとって分割インポートとかかなぁ。

TODO

  • opml 状態でフォルダ分け。いらないフィードきりわけ
  • フォルダごとにファイル分割してインポート

MochiKit.Visual

Scale が Scale なの (% でしか指定できない) のは、Base と position が 0.0-1.0 とるからか。options に width, height 指定してそれ使うようなの書けばいいんだろうか(なぞ

腸簡単☆あなたも作れる MochiKit.Visual

MochiKit.Visual.EffectName = function (element, options) {
        this.__init__(element, options);
};

MochiKit.Visual.EffectName.prototype = new MochiKit.Visual.Base();

MochiKit.Base.update(MochiKit.Visual.EffectName.prototype, {
        __init__: function (element, /* optional */options) {
                /* てきとうに初期化するよ☆ */
                var b = MochiKit.Base;
                var d = MochiKit.DOM;
                this.element = d.getElement(element);
                options = b.update({
                        from: 0.0,
                        to: 1.0,
                }, options || {});
                this.start(options);
        },

        setup : function () {
                /*   */
        },
        update: function (pos) {
                /* pos には、エフェクトの進行に応じて 0.0 - 1.0 (指定した値) が入るよ☆ */
        },
        
        finish : function () {
                /*  */
        }
});

script.aculo.us 読んだことないんですgtlt

resize

MochiKit.Visual.Size = function (element, options) {
        this.__init__(element, options);
};

MochiKit.Visual.Size.prototype = new MochiKit.Visual.Base();

MochiKit.Base.update(MochiKit.Visual.Size.prototype, {
        __init__: function (element, /* optional */options) {
                var b = MochiKit.Base;
                var d = MochiKit.DOM;
                this.element = d.getElement(element);
                this.odim = getElementDimensions(this.element);
                this.element.originalDimension = this.odim;
                options = b.update({
                        from: 0.0,
                        to: 1.0,
                }, options || {});
                this.sizeW = (typeof options.dim.w != "undefined") ? options.dim.w - this.odim.w : 0;
                this.sizeH = (typeof options.dim.h != "undefined") ? options.dim.h - this.odim.h : 0;
                this.start(options);
        },

        update: function (pos) {
                var s = this.element.style;
                s.width  = this.odim.w + this.sizeW * pos + "px";
                s.height = this.odim.h + this.sizeH * pos + "px";
        }
});

しかし

このPCのモニタはやたら目が疲れる。ガンマがおかしいのか、モニタの輝度がおかしいのか。

Deferred

callback ってチェインする?
http://trac.mochikit.com/wiki/ParsingHtml

install Opera

FC5 に Opera をいれた。けどなんか入力がうまくいかないのでごちゃごちゃ。

sudo yum install scim-bridge
QT_IM_MODULE=scim opera

gcc バージョンの違いによるバイナリ非互換の解消? (よくわかってない

LDR

ロードできた。運なのかなぁ。そんなに時間かからなかった。リロードしたらまたdameっぽい。
未読 1573フィード | 97592エントリ

Opera

どう見ても Opera 最速です。あと画像の縮小が綺麗だ。フォントの設定がおかしいのと設定するのが面倒臭くなければいいのに。あとグリースモンキーが簡単にインストールできて、できれば Fx の拡張がそのまま動くと、いいナ。

Logger

http://trac.mochikit.com/wiki/MochiKitExternalLogger
ブラウザごとにコンソールだすより、webrick 起動したやつを別のモニタに表示させて、それに全部吐くようにしたほうがいいかもなぁ。UA + msg

http://subtech.g.hatena.ne.jp/secondlife/20060830/1156930541
そんなことできたのか!!
そういえば要素ろぐとかしたことないなぁ。alert の代わりぐらいにしか使ってないのがアレなのかー。あと、最近は dojo のおかげで、コメントアウトアンドエラーを繰り返してるから、Firebug の機能を使ってない感じ……エラー出たとこクリックしても何もでてこない! なんか方法あるんだろうか。dojo の開発者ってどうやってるんだろう。

LDR

ちまちまとリロードを繰り返しながら、全部読んだことにするをくりかえした。未読が 10k ぐらいになったぐらいからロードが安定するようになった。気がする。
なんでだろう。こっちの CPU を食ってるわけじゃないし、Firebug でみるとレスポンスが帰ってこないように見える。未読件数でそんなに鯖の JSON 生成に影響を与えるのかなぁ。

2006年 08月 31日

でざいん

どう頑張ってもデザインってものができなくて困る。他人の気持ちとかわからない。なんか糸口を見つけないとだめだなぁ。

EditArea よむ

わからない挙動

  • なんで同じ行のシンタックスハイライトができるのか
  • なんで日本語入力中もちゃんと後続文字が動くのか
  • なんで iframe

とりあえず CSS を切ると、本来の textarea とは別に textarea があるので、それが透明になっててほげほげっぽい。と予想できる
日本語入力中も大丈夫なことから、setInterval で監視しているのか? と予想。
ソースを開いてカーソル移動らへんを見ると manege_area.js#area_select がセレクションと、カーソル設定を担当していることがわかる。setSelectionRage っぽいやつ。
が、この関数はもともと textarea の範囲設定を更新しているだけっぽくて、実際描画されている EditArea のカーソルとかは直接動かしてない。やっぱり setInterval とかで監視して反映させてる?
が、setInterval は使ってない。setTimeout で調べると check_line_selection があやしい。ちまちま見ていくと displayToCursorPosition を読んでて、これがカーソル描画らしい。

たぶんダミーの textarea を常に編集させて、HTML を常に更新していく感じなのかなぁ。全部いっかつして書き換えているっぽい? でもどうやって変換中も文字とか、変換候補がちゃんとした位置にでるようにしてるんだろう。どこで textarea の位置を変えてるんだ。

やっぱ行を textarea 化してるっぽい感じだよなぁ。括弧の対応は特別扱いしてる。専用の要素が

マジでぜんぜんわからない><

Python

ちょっとやりたくなってきた。前までは「Ruby でいいじゃん。Python めんど」だったけど

vim css

http://d.hatena.ne.jp/secondlife/20060831/1157010796
たのしすううううううう

順番書き換え、よう。でも、変えたら意味ないよなぁ。こっちにあわせるほうがいいかなぁ。
border-style, border-color, border-width がまったく逆になる。(とりあえずスタイルを決めたい脳らしい)
background, color も逆になる (とりあえず背景からどーんって変えたいらしい)
display, position が埋もれる (とりあえずどう表示されるか指定したいらしい)

やっぱ変えないとかけないっぽい。
第一段

  1. display
  2. visibility
  3. position
  4. top
  5. right
  6. bottom
  7. left
  8. float
  9. clear

第二段

  1. background
  2. color

第三段

  1. border-style
  2. border-color
  3. border-width

他は考えてないっぽい

PlotKit patch

ちょーみじかいパッチ送った、ら、そっこーで返信がきた。アクティブだなぁ。うれしい
http://projects.liquidx.net/js/changeset/62 コミットされた

sortcss

http://svn.lab.lowreal.net/lowreal/config/sortcss
順番かえやすいように一行ずつに分離した。アンスコハックも適用済み
font-size は割りと強いと思う。なぜならそのブロック内の em に既に影響を及ぼすから。なので上の方にしてみた。
float は display の次に強いかなぁ。em とかは関係ないし