トップ 最新 追記 RSS feed

継続にっき

2004|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|12|
2006|01|03|05|06|08|09|10|12|
2007|01|02|03|05|07|12|
2008|10|
2009|01|05|12|
2010|04|05|11|
2011|01|09|12|
2012|02|03|05|09|12|
2013|02|03|
2014|05|09|
2015|12|

2005-02-02 (Wed)

))) CygTerm

なんか二人の人から別々に尋ねられたのでピックアップしてみる。 PuTTY上でCygwinのシェルを動かすために使ってます。

cygterm.cfg

TERM = D:\putty\putty.exe telnet://%s:%d/
TERM_TYPE = vt100
PORT_START = 20000
PORT_RANGE = 40
SHELL = /usr/local/bin/zsh -l -i
ENV_1 = MAKE_MODE=unix

PuTTY

  • ローカルエコー、ローカルライン編集
    • 強制的にオフ

2005-02-09 (Wed)

))) W杯最終予選 北朝鮮戦

  • 前半早々にフリーキックで得点。楽勝?
  • と思いきや、後半に返され苦しい戦いが続く。
  • 高原・中村を投入し流れが変わり、
  • ロスタイムに入ったところでこれまた途中交代の大黒が決勝ゴール!

あー、面白かった。

しかし、もう本当に民放はステだな。うるさい実況、耳障りな解説*1、 とどめに「ゲスト」。とてもじゃないけど見てられない。

))) CVSとSubversion

最近Subversionばかり使っていたので、久しぶりにCVSに触ったりすると戸惑う。

  • 複数ファイルにまたがった変更をコミットした後にそれ以前の状態のものを引っ張ってくるのはCVSでは面倒
  • ディレクトリを対象としたlogの挙動の違い。CVSがディレクトリ下のファイルのログを1つずつ出力するのに比べ、 Subversionはログをまとめて時系列で表示してくれる。verboseオプションも便利

*1 や、これは特定の人物が問題なだけか


2005-02-10 (Thu)

))) Subversionのdiffの出力からpatchを当てるには

-pオプションを付ければよし、と。-p0に意味があったとはね。


2005-02-12 (Sat)

))) bitchannel-mode 0.1.0

「とりあえず形になったら公開しておけ」という精神に則り、0.1.0をリリースしました。 詳細についてはリンク先を参照してください。

))) xyzzy Lisp

やっぱり難しい。なかなかLisp脳になれないことに加え、画面を制御しようとすると 関数の微妙な組み合わせで結果が変わるので辛い。


2005-02-18 (Fri)

))) Subversionリポジトリレイアウトの変更

次のように

repos (リポジトリ)
|-- project
|   |-- branches
|   |-- tags
|   |-- trunk
|   `-- vendor
|
~

すべてのプロジェクトを1つのリポジトリでまかなっていたのを

repos (ディレクトリ)
|-- project (リポジトリ)
|   |-- branches
|   |-- tags
|   |-- trunk
|   `-- vendor
|
~

という風に、1プロジェクト1リポジトリに変更。

これまでの経験から、こちらのほうがリポジトリのサイズの増加を抑えられるし(本質的な問題ではないにせよ) 他のプロジェクトに対する変更でリビジョン番号があがる事が無くなるのでよいかなと。 外部定義を使えばリポジトリをまたがって使うのも 問題ないみたい。

作業は簡単で、

$ svnadmin dump repos |
  svndumpfilter include project |
  sed -e 's/^Node-path: project\//Node-path: /g' \
      -e 's/^Node-copyfrom-path: project\//Node-copyfrom-path: /g' > project.dump

としてから、ダンプファイルの最初の方にある

Node-path: project
Node-action: add
Node-kind: dir
Content-length: 0

を消すとそれが元のリポジトリからprojectだけを抽出したものになるのでこれをsvnadmin loadするだけ。

リポジトリの移行が済んだらワーキングコピー側も(同一URLではあるけど一応)変更を反映。

$ svn switch file:///repos/project/trunk

2005-02-20 (Sun)

))) 日本に割り当てられているIPアドレス空間

sshdに対する不要な攻撃を遮断するために日本国外からのアクセスをはじくことを考えた。 さて、国内向けのIPアドレス空間のリストってどこで見れるのだろうか。

日本でIPアドレスを割り当てている組織はJPNICなので、ここから 探してみる。あ、あった。

「サブネットの最初のアドレス」〜「最後のアドレス」という表記なので、iptablesで使うためにCIDR表記に しなければいけない。

def cidr_notation(nw_addr, br_addr)
  prefix = 32 - (long(nw_addr) ^ long(br_addr)).to_s(2).length
  "#{nw_addr}/#{prefix}"
end

def long(addr)
  addr.split(/\./).inject(0) {|r,i| (r << 8) + i.to_i}
end

……あまりうまくないかな。これを使って上記のページからリストを得る。

require 'open-uri'

IP_ADDR=/\d+\.\d+\.\d+\.\d+/
ADDR_BLOCK_LISTS = %w(http://www.nic.ad.jp/ja/dns/jp-addr-block.html
                      http://www.nic.ad.jp/ja/dns/ap-addr-block.html)

ADDR_BLOCK_LISTS.each do |url|
  open(url) do |f|
    f.read.scan(/(#{IP_ADDR}).*?(#{IP_ADDR})/om).each do |nw_addr, br_addr|
      puts cidr_notation(nw_addr, br_addr)
    end
  end
end

Rubyist Magazineの増井さんへのインタビューを 読んで、初めてopen-uriを使ってみる。便利。

追記

こんなものがあった。

))) Today's Newsプラグイン

ふと思い立って、その日のニュースを表示させるtDiaryプラグインを作ってみた。 最近のニュースを見ても面白くないので、日付を指定した閲覧時のみ表示するようになっています *1。 擬似的にセクションを作っているために実装はかなりイリーガルな感じ。

なんでこんなものを作ったかというと、単純に数年後に見たときに楽しいだろうなぁと。 でも、わざわざそれを見るために自分で手を動かさなければならないというのは、今の WWW(を使って構築されている世界)の弱点というか伸びる余地のある部分だよなぁなんてことを思いつつ作業。

検索エンジンのおかげでWWWから「現在の情報」について切り出すことは簡単。 いや、「現在の情報」っていうのは限定しすぎで単一の事象*2については 時系列を遡っていく事も簡単に出来る(場合が多い)けれども。 ただ、並列的にそれらの情報を見ようとするととたんに難しくなる。

つまり、このプラグインはバラバラに存在していたローカルな出来事とグローバルな出来事という2つの系を 関連づけて任意の時点でぶった切って見れるようにしたものと言うことが出来る訳ですね。大風呂敷を広げすぎだけど。

もう少し考えてみれば、例えばWikiである時点でのスナップショットが表示できると面白いだろうな。 検索をかけてもリンクを辿って別のページに行っても同じ時点での情報が出てくる、みたいな。 すでにどこかにありそうだ。

*1 本当は月指定の時も表示したいところだけどプラグインというレベルでは無理、なはず。

*2 つまり「サイト」という単位


2005-02-25 (Fri)

))) 苗場に行ってきた

初雪山。今回は前からやってみたかったショートスキー *1で。 これだけ短いと取り回しが楽でよいね。

中級コースあたりまでならなんとか滑れるようになってきて面白くなってきた。

*1 調べてみたらスキーボードが正式名称みたいだ


2004|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|12|
2006|01|03|05|06|08|09|10|12|
2007|01|02|03|05|07|12|
2008|10|
2009|01|05|12|
2010|04|05|11|
2011|01|09|12|
2012|02|03|05|09|12|
2013|02|03|
2014|05|09|
2015|12|
トップ 最新 追記 RSS feed