だるろぐ

だるいぶろぐです

zncの不満点

  • 接続時のログのplaybackがnoticeじゃない
    • 繋ぐたびに無駄にクライアントがキーワード反応してうざい
  • トークはplaybackされない
    • tiarraはサーバメッセージとして見れた

余談

大抵はサーバがssl対応してない場合が多いと思うので

ircサーバ <-- plain --> znc <-- ssl --> クライアント

となってると思われる。
最初、sslの意義を会話内容の盗聴防止だと思っていたので、これsslにしなくてもよくね?と、同じくsslircしてる人に聞いてみたら、曰く

  • sslの目的は自分のクライアントがirc bouncerに繋ぐときのパスワードの盗聴防止
  • そもそも自分以外の人がplainでサーバに繋いでるのに、そこを自分一人がsslにしたところで何の意味も無い

とのことで。はーなるほどと感心したものでした。

form内で選択されたradioボタンの値によってaction urlを変える

  • 要件
    • form内にnameが同じでtype属性がradioな要素が複数個設置されている
    • submit時に選択されたradioボタンの値によってsubmit先のurlを動的に変更したい
<script type="text/javascript">
    function f() {
        var elements = document.getElementsByName("r");
        var act = "";
        for (var i=0, len=elements.length; i<len; i++) {
            if (elements[i].checked) {
                act = elements[i].value;
            }
        }
        if (act == "") {return}
        document.myform.action = "/base_action_url/" + act;
    }
</script>

<form method="post" name="myform" onclick="f()">
    <input type="radio" name="r" value="_h1_" />h1<br />
    <input type="radio" name="r" value="_h2_" />h2<br />
    <input type="radio" name="r" value="_h3_" />h3<br />
    <input type="submit" />
</form>
  • Q. 何でそんなことを
    • A. うるさい黙れ
  • Q. formのそもそものpost先を同一にして、その先で入力値を見て処理を分けるでは駄目なんですか
    • A. うるさい黙れ

tiarra + DaraIRC から znc + AiCiA にした

sslにしようと思ってtiarraからzncにした。
今までandroid端末でirc見るときはDaraIRCを使っていたんだけどこれ

  • sslに対応していない
  • チャンネル移動するとき、いちいちチャンネル一覧に戻るのが面倒
    • しかも毎回一番上までスクロールされた状態から始まるので、下まで移動するのが面倒

だったので、ssl対応クライアントを探してAiCiAにした。
以前ssl対応クライアント探したらどれも駄目過ぎた記憶があるんだけど(異常終了しまくるとか)これはごく普通に使える。


チャンネル移動ボタンがあるので画面を切り替えずに移動できるしいい感じ。
あとカラフル。


とはいえそもそも外であまりircとか見ない罠。

zncの不満点

全部のチャンネルのログが1つのディレクトリに保存される

  • 1週間足らずでひどいことになりそう
  • tiarraみたいにチャンネルごとにディレクトリ作って欲しい

接続時に、保存してある最近のログを流してくれるのはtiarraの Log::Recent と同じでいいんだけど、notice形式じゃない

  • まあ許せるレベル

ブログのautopagerizeは記事の古い方にじゃなく新しい方に進む方が読みやすいだろう

例えばはてなダイアリーでは記事の一番下まで進むとautopagerizeはその記事の前日を指し示す。
使いづらくね?


それまで知らなかったブログを見つけたとしてだ。
そのブログのエントリを全て読もうと思ったら、まず最初のエントリを探して、そこからその次のエントリへと進みたいはずだ。
だがはてなダイアリーの仕様ではそれが出来ない。autopagerizeは新しい日付の方に進むようにしか設置されていないから。
最初のエントリを開いてもautopagerize自体現れない。
なので

  1. 最初のエントリを開く
  2. いちいち前の記事へのリンクをクリックする
  3. しかも各記事を最後まで読み終える=ページ最下部までスクロールすると、既に読んだ後の、その前の記事がautopagerizeで表示されて大分うざい

となる。悲劇。


どのブログもそうなんだろなと思っていたけど、ライブドアブログでは、最初のエントリを開いたら、その次の記事へのautopagerizeが現れる事に気が付いた。
最後のエントリ以外のエントリや、ブログトップで現れるpagerizeは、その前の記事へとしか進まないのに、どうも最後のエントリに設置されるやつだけは違うらしい。
えーそんなの余程のブログを見つけないと気付かない…
だっていちいち「この人のエントリ全部読もう」とまで思う人ってそんな居なくね。


というわけで。
各ブログサービスにpagerizeの進む方向を変えられるオプションが欲しい。
付けてくれねーかな。

autojump入れた

  • autojump最新版はpython2.6を要する
  • prefix変えて2.6入れたけど、tagsに2.4対応版があったのでそっち使った
    • ただし大分古い。機能の違いは知らん


2.4しか入っていない状態(2.6が$PATHに無い)でinstall.shを叩くと以下のように言われるのでv12を入手。

Alternatively, you can download v12 that supports Python v2.4+ from:
https://github.com/joelthelion/autojump/tags

git submoduleにしようと思ったけど、install.zshを見て少々書き換えたくなったので直にzip持ってきて俺dotfilesに配置。
どこに置こうか悩んだ挙句 dotfiles/.opt/autojump_v12 とかいうパスに。ubuntuが確か /opt にoptionalなパッケージ入れるんだっけとか思って。
vundleみたいにそもそも ~/.vim のようにパッケージが属するのに適したディレクトリが無い(多分)ので、まあここでいいかと。


zshを使うと $fpath という環境変数が作られる。基本的にsudoが不要な場所にzshを入れて使っているけどそうじゃない環境もある。
fpathは /usr/local/share/zsh/site-functions みたいな場所。install.zshの中でここに_jをcpしているがさすがにsudoが要る。
自分一人だけの環境しか使わないならまだしも、そうはいかない場合も多々あるので、極力自分にしか影響が及ばないようにしたい。


さて。
まずはインストールのためのスクリプトを作る。setup_autojump.zshと名前を付ける。

cd .opt/autojump_v12/
_fpath=`echo $fpath | cut -d " " -f 1`
sudo cp _j $_fpath
mkdir -p ~/.autojump/share/man/man1
$SHELL ./install.zsh --prefix ~/.autojump

こんなのを /path/to/my/zsh ./setup_autojump.zsh で実行する。shだと $fpath が定義されない。
cdするのは後でそうしといたほうがいいため。
mkdirは後々使う。そして実行時に $SHELL がzshであることを期待する。さすがにそんくらい期待していいと思われる。
あと俺の場合は$HOMEにbinディレクトリが有る前提なので作ってないけど、無いなら作る。


んでinstall.zshを書き換える。fpathが絡むところ以外はsudoを除外する。

% diff org/install.zsh /path/to/my_dotfiles/.opt/autojump_v12/install.zsh
42,46c42,48
< sudo mkdir -p ${prefix}/share/autojump/
< sudo cp icon.png ${prefix}/share/autojump/
< sudo cp jumpapplet ${prefix}/bin/
< sudo cp autojump ${prefix}/bin/
< sudo cp autojump.1 ${prefix}/share/man/man1/
---
> mkdir -p ${prefix}/share/autojump/
> cp icon.png   ${prefix}/share/autojump/
> cp autojump.1 ${prefix}/share/man/man1/
>
> _pwd=`pwd`
> ln -s "${_pwd}/jumpapplet" $HOME/bin/
> ln -s "${_pwd}/autojump"   $HOME/bin/
<
< if [ -d "/etc/profile.d" ]; then
<     sudo cp autojump.zsh /etc/profile.d/
<     sudo cp autojump.sh /etc/profile.d/
<     echo "Remember to add the line"
<     echo "    source /etc/profile.d/autojump.zsh"
<     echo "or"
<     echo "    source /etc/profile"
<     echo "to your ~/.zshrc if it's not there already"
< else
<     echo "Your distribution does not have a /etc/profile.d directory, the default that we install one of the scripts to. Would you like us to copy it into your ~/.zshrc fil  to make it work? (If you have done this once before, delete the old version before doing it again.) [y/n]"
<     read ans
<     if [ ${#ans} -gt 0 ]; then
<       if [ $ans = "y" -o $ans = "Y" -o $ans = "yes" -o $ans = "Yes" ]; then
<           echo "" >> ~/.zshrc
<           echo "#autojump" >> ~/.zshrc
<           cat autojump.zsh >> ~/.zshrc
<       else
<           echo "Then you need to put autojump.zsh, or the code from it, somewhere where it will get read. Good luck!"
<       fi
<     else
<           echo "Then you need to put autojump.zsh, or the code from it, somewhere where it will get read. Good luck!"
<     fi
< fi

jumpstatとautojumpの2つのファイルをパスが通ったところに置こうとするので、symlinkで我慢していただく。
オリジナルのinstall.zshが、

  1. /etc/profile.d/ にファイルを置こうとする
  2. 置けるならよし。置けないなら「.zshrcでsourceしてね」という

となっている。/etc/とかにもの置いてほしくないので、.zshrcに "$HOME/.opt/autojump_v12/autojump.zsh" が存在すればそれをsourceする、ように書く。

load_if_exists () {
    if [ -e $1 ]; then
        source $1
    fi
}

load_if_exists "$HOME/.opt/autojump_v12/autojump.zsh"

あとは ln -s .opt ~/ などとする。


さてこれで j が使えるようになったわけだけど正直そんな便利だとまだ感じていなかったりする。
ああそれにしても人が見ても意味分からんなこれ。むしろ自分も分からん。
ソース見つつ書き換えつつ色々やるのはいいんだけど後からそれをまとめる能力が欠けている。
人に上手に説明できる人凄いよねー


まあ分からんくなっても https://github.com/hirafoo/dotfiles をcloneするだけで済むし俺は困らんので別にいい。
そして一通りsetupしたところでautojumpよりz.shのほうがPythonなしで動いて良いよ | この先生きのこるにはとか見つけて何ともいえなくなる。何使えばええんや。