stable に testing のパッケージを入れる。

今現在 Debianの現行 stable は Debian GNU/Linux 4.0r3 (etch) (Debian -- Debian “etch” Installation Information リンク先は参照時の最新 の筈) です。それに testing段階のパッケージをいれて見たくなった。(etchPostgreSQL 8.2, 8.3 を試したかった、使いたかった)
etch自体は適宜インストールしたとする、taskselでDBサーバを選んでも PostgreSQL が未だ 7系なので選ばないでおく。パッケージ管理ツールは aptitude
ちょっと古いけど「http://mikilab.doshisha.ac.jp/dia/research/report/2005/0811/001/report20050811001.html」なんかも参考に。あとはまあ「Debian Reference」はいつでも参考になる。

source.list と debconf

既存の debconf文書「/etc/apt/apt.conf.d/70debconf 」に追記

APT::Default-Release "stable";
APT::Cache-Limit 100000000;

キーワードは "stable" とする、"etch" は効かなかった。

Cache-Limit は場合によるだろう、今回 etch と lenny の同居では、そのうち「エラー: Dynamic MMap ran out of room」とかエラーになりだしたので追記した。数字は適宜。(どれくらいがいいんだろう)

或いは man apt.conf 参照

  Cache-Limit
    APT は「利用可能」情報を格納するために、 固定サイズのメモリマップキャッシュフ
    ァイルを使用します。 このオプションは、そのキャッシュサイズを指定します。

「/etc/apt/source.list」ファイルに追記

deb http://<云々>/debian/ lenny main
deb-src http://<云々>/debian/ lenny main

deb http://security.debian.org/ lenny/updates main contrib
deb-src http://security.debian.org/ lenny/updates main contrib

こっちは "lenny"、というか追記されるべきもとの source.list は "etch" の設定がある。

update

stabel (etch) に固定してあるので、update しても更新すべきパッケージはでてこないが、インストールしてないパッケージは増えてる。バージョンも。

そして、PostgreSQL 8.2 とか、etch には無かったパッケージを選択。依存性とかでなんとか言われて駄目だったり。

バージョンが足りないと言われたパッケージを探し、個々のパッケージの説明を表示して探してくと lenny 用の新しいのがあったりするので「+」入れる、「g」「g」
改めて所要のパッケージを入れようとする。
繰り返し。

こんな感じで。

xyzzyプレゼン

プレゼンには、xyzzyエディタを使った。ソースを見せるのにエディタを開くなら、プレゼンも同じものを使ってる方が切り替えがシームレスで良いだろうと思って。
そして文字をなるべく大きく 36ポイント、手元の環境で最大。フォント、ASCII文字セットは CCRB。きれい系のものではないが、視認性識別性(下手すると似たような字形になる英字がそんなことなくちゃんと識別できる)が良かったので、ソースの表示には良いかなと思った。日本語文字セットは HGゴシックE。ゴシック系で CCRB と線の太さ(文字の重さ)が同じくらいのものというと選択肢はあまり無かった。ちょっと文字間が広めにみえたけど、遠くからでもまあまあ見えたでしょうか。
キーポイントだった、rails.bat 最終行がちょうど一杯に入る幅だったのは良かった。
そして、行間は 8Pixel。文字間が少し広めの印象があるので、行間にはちょっと迷った。
そんで、説明テキストとか、ソースとか全部開き、文書タブを順に配置、全部の文書でカーソルを所定の先頭位置に合わせると、ファイルメニューから「セッションの保存(W)」。あとは xyyzzyを起動してやはりファイルメニューからセッションを開けば全文書とカーソル位置がプレゼン用に準備された状態で再生する。(上記文字の設定は別だけど)

プレゼンに使ったテキストを全部繋げたものがこちら、内容的には冒頭に挙げた日記記事とおなじです、文末とか言葉使いを変えたくらい。

続きを読む

LT 1 私が書いたVimスクリプトを晒します ursmさん

私が書いたVimスクリプトを晒します
vimスクリプトで、Ruby(や、HTML, XML)の end (終タグ)を補うようにするとか。自分もキーボードマクロを登録して end を書くような事をしているので大変参考になった。しかも vimスクリプトは実は Ruby で書ける(85%)というのだ。
firefoxスクリプトも面白そう。仮想化Linuxvim からホストOS上の firafox を動かすというの。

irb と irbrc。補完や履歴

mixi日記からサルベージ。

補完の設定は最新 ActiveScriptRuby 1.8.6(111)(http://arton.hp.infoseek.co.jp/indexj.html参照) では最初から有効になってる。

irb-history (Windows) 2006年10月01日14:08

一昨日のやつ、Windows ではどうしたら良いのだろう。手元の ActiveScriptRuby_1.8.4.5 の irb の辺り (C:\Program Files\ruby-1.8\lib\ruby\1.8\irb\init.rb) を見ると、設定ファイルの場所を ENV["IRBRC"] に尋いてるみたい。
なので、環境変数 IRBRC に設定ファイルの場所を指定してやることにする。設定ファイルの内容は基本的に一昨日のもの。コメントのように順番を変え、ENV['HOME'] は、ENV['HOMEPATH'] に書き換えた。

irb-history 2006年09月29日16:18

irb の履歴が毎回クリアされるのはどうもと思って、なんかあった筈と調べてみる。.irbrc ファィルとかの設定は 1.9 からとのこと。手元の rubyDebian sarge で 1.8.2

IRB.conf[:SAVE_HISTORY] = nil (ruby 1.9 feature)
http://www2.ruby-lang.org/ja/man/?cmd=view;name=irb#a.a5.b3.a5.f3.a5.d5.a5.a3.a5.ae.a5.e5.a5.ec.a1.bc.a5.b7.a5.e7.a5.f3

そうすると irb-history.rb を使えば良いみたいだが探してもでて来ない。
しょうがないから自分で書いてみよう。~/.irbrc ファイル。

IRB.conf[:AUTO_INDENT] = true
IRB.conf[:EVAL_HISTORY] = 100
IRB.conf[:SAVE_HISTORY] = 1000 # ruby 1.9 feature
IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb_history" # ruby 1.9 feature
require 'irb/completion'

class Object; def display_n(out=$stdout); out.puts to_s; nil; end; end
alias :x :exit

File.readlines(IRB.conf[:HISTORY_FILE]).each{
  |savedline| Readline::HISTORY << savedline.chomp }

at_exit do
  File.open(IRB.conf[:HISTORY_FILE], 'w') do |saveing|
    (-IRB.conf[:SAVE_HISTORY]..-1).each do |lineno|
      Readline::HISTORY[lineno].display_n(saveing) rescue next
    end # (-IRB.conf[:SAVE_HISTORY]..-1).each do |lineno|
  end # File.open(IRB.conf[:HISTORY_FILE], 'w') do |saveing|
end # at_exit do

hs9587 2006年09月29日 16:32
irb を複数立ち上げたときの事は考えていません。きっと悲しい事になるでしょう。

hs9587 2006年09月29日 23:56
保存側、at_extブロックの方からコーディングしてたから気が付かなかったけど、このままで は、初回 .irb?history が無いとその後もうまく行きませんね。
本当はちゃんと rescue Errno::ENOENT すべきなんだろうけど、irb の動作を試てみると、File.readlines のブロックを at_extブロックの後ろに書くようにすれば大丈夫でした。

hs9587 2006年09月30日 14:04
サブirb を使うとさらに悲しい気持ちになりますね。サブirb を途中終了するとなおさら。

xcopy Source [Destination] /d /y

コピー先のよりコピー元のファイルの変更時刻が新しいものだけコピーする。
copyコマンドにはそういうオプションは無いみたいなので、xcopyコマンドを使う。xcopyコマンドでは、コピー元(先)を先に書いてオプションはあとに書くのが構文として採用されている。オプション先に書いてもうごくみたいだけど。/y オプションは上書き許可の確認表示(プロンプト)の抑制、環境変数にも依る。
WindowsXP(Pro) SP2

Putty の実行バッチ

毎朝(と言うほどでもないが)Windowsマシンから、その辺のいくつもの Linux系マシンに ssh接続(Putty) してるわけだが、特定の複数のマシンへの接続なんだからバッチファイルで一個実行すれば全部開くように出来ないかなと。
Puttyのユーザーマニュアルによると、コマンドラインからの実行でなんとかなりそう、-loadオプションで、ストアされた(保存された)セッションも起動できる。遠隔マシンによって文字コードが違ったり(最近インストールしたのは UTF8、まえのは EUC_JP とか)するのでこれは嬉しい。
ただし、「.bat」バッチファイルだと、その行の実行の終了は Putty 端末の終了になるので、沢山いっぺんに開くとかは出来ない。そういうときは、WScript.Shell の Runメソッドの第3引数を false にする。ActiveScriptRuby でこんな感じ。第2引数の 1 は、普通のウィンドウで開くことの指定。

require 'win32ole'
wsh = WIN32OLE.new 'WScript.Shell'
wsh.Run '"C:\Program Files\PuTTY\puttyjp.exe" -load "<セッション名>"', 1, false
wsh.Run '"C:\Program Files\PuTTY\puttyjp.exe" -load "My Defaults" <ユーザ名>@<ホスト名>', 1, false
 ……

Puttyのユーザマニュアルより、コマンドラインオプションのリストは下記

Section 3.8.3.1: -load: load a saved session
Section 3.8.3.2: Selecting a protocol: -ssh, -telnet, -rlogin, -raw
Section 3.8.3.3: -v: increase verbosity
Section 3.8.3.4: -l: specify a login name
Section 3.8.3.5: -L, -R and -D: set up port forwardings
Section 3.8.3.6: -m: read a remote command or script from a file
Section 3.8.3.7: -P: specify a port number
Section 3.8.3.8: -pw: specify a password
Section 3.8.3.9: -agent and -noagent: control use of Pageant for authentication
Section 3.8.3.10: -A and -a: control agent forwarding
Section 3.8.3.11: -X and -x: control X11 forwarding
Section 3.8.3.12: -t and -T: control pseudo-terminal allocation
Section 3.8.3.13: -N: suppress starting a shell or command
Section 3.8.3.14: -nc: make a remote network connection in place of a remote shell or command
Section 3.8.3.15: -C: enable compression
Section 3.8.3.16: -1 and -2: specify an SSH protocol version
Section 3.8.3.17: -4 and -6: specify an Internet protocol version
Section 3.8.3.18: -i: specify an SSH private key
Section 3.8.3.19: -pgpfp: display PGP key fingerprints

mkdir 直後の cd

しばらく前に、 mkdir したら大体即座に今作ったディレクトリに cd するんだから、そもそもそういう動作をするコマンドを作っておこう、という感じの Tips をみた憶えがある。どこだったかいつだったかよく憶えていない。そのときはそれほど便利そうに思えなくてそのまま流してしまった。今、mkdir cd で検索してみてもなかなかそれっぽいものは見付からない。けど、やっぱりちょっとそういうの使いたくなってきた。
手元で使ってるシェルは zsh。alias ではコマンド引数($1)は使えないということだ、引数使うときは関数にせよと。
ということで、.zshrc に追記

mcd() {md "$1";cd "$1"}

md は、事前に mkdir にエイリアスしてある。引数無しだと mkdirの引数ありませんエラーになる。引数が二つ以上あっても、二つ目以降のものは無視する。引数引用符で囲ってるけどどうかな。