fb2k

iTunes インストールして、アンインストールして、なんとなく勢いで fb2k をバージョンアップしてカスタマイズしなおした。

Columns UIMusic Browser を入れて、似非 Rhythmbox 化した。(Rhythmbox を使ってないのは、ubuntu LTS にしたとき USB Audio にやたらプチノイズが入るようになったため)

Columns UI の layout 設定

Columns UI を画像のような、左プレイリストスイッチャー・右上左アーティスト・右上右アルバム・右下プレイリスト設定に。

でもちょっとアーティスト一覧が気に入らなくてごちゃごちゃやった。自分は ~/music/artist_name ってディレクトリを作ってて、割とどうでもいいアーティストは ~/music/他のアーティスト にまとめて突っ込んでる。だから id3 のタグを読んでひっぱりだされると邪魔くさい。直下ディレクトリを「アーティスト名」として扱ってほしい。

Music Browser の設定の Panels から Add, Artist:Artist, Format:$left($put(p,$substr(%_path%,$len("D:/home/cho45/music"),$len(%_path%))),$sub($strchr($get(p),\\), 1)), Precedence:0 して、右上左のパネルをこれに設定した。

この Format 書くのに果てしなくハマりまくって困った。$strstr も $strchr も 0 しか返さなくてなんでよって思ってたら、単にカンマの後にスペース書いちゃいけないとかいう罠だった。40分ぐらいハマった。

この設定だと Browser の Album が絞込みされないなぁ。むしろ Album 選択すると逆に Artist が絞り込まれちゃう。おかしいなぁ。Precedence の設定がおかしいのかなぁ。逆にしてもだめだなぁ。

パネル設定をやりなおしたらいけた。

  1. トップ
  2. music
  3. foobar2000 v9

vim7 のメニューで補完

css.vim がバグってんだよ。vim7 なら直ってるよ という書き込みがあったので vim7 にするよ! 嘘だよ! ホントは vim7 じゃないとかありえないらしいからだよ><

動機はともかく vim7 を入れた。TECHMemo - vim7のインストール を見てそのままインスコ。そのまま起動。

C-n, C-p での補完がメニューになった。HTML で要素名補完・タグ補完が効く (C-x C-o)。CSS 読んで class, id 補完するやつはエラーでて動かない、けど、特に困らない。

C-n, C-p の動的自動補完がメニューになったので、xyzzy のポップアップメニュー版っぽくなった。気持ちいい。

画像は perl モードで C-n 補完したときのやつ。もともと (vim6) がどうだったかやってないから知らないけど、C-n 押した瞬間に vim が頑張ってスキャンするのが面白い (ストレス溜まるほどは遅くない)

.vimrc に以下の設定を加えて、TAB で補完がでるようにした。xyzzy では C-SPC で動的補完にしてるんだけど、C-SPC だと IME のバインドをかぶるので TAB に。TAB がどうしても入力したいときは C-v TAB で入力できるみたいだ。

imap <TAB> <C-N>
" オマケ indent-whole-buffer
noremap <F8> gg=G``
  1. トップ
  2. linux
  3. さらに vim7 に
  1. トップ
  2. vim
  3. さらに vim7 に

なんか微妙

ブックマーク的なフレンド機能じゃなくなって、承認制みたいになってしまった。ブックマーク的な使い方がしにくくなるなぁ。

  1. トップ
  2. web
  3. Last.fm が変わったけど

今日 NTT からひかり電話用にルータが届いたので構成を考えた。

少し前から NTT のルータは二段目にしようと思っていたのだけれど、調べてみるとどうやらそうするのは無理らしい。というのも SIP プロトコルで通話用のセッションを初期化するとき、VoIP 端末が自分のグローバル IP を知っていないといけないからみたいだ。もし NAT の内側に設置したいならば、ルータが SIP プロトコルを解釈してメッセージ中の IP を書き換えたりもしないといけないとかなんとか。(SIP-NAT)

結局どうすれば NTT のルータを通過せずにネットに接続できるかというと、ONU 直下にハブをつけて、それにルータをぶらさげる形にするらしい。

配線図

30 :不明なデバイスさん :2006/04/18(火) 20:10:46 ID:N78uXhwt
>>28
買わんでもルータにHUBがついとるがな
ケーブルは、も一本いるけどな

31 :不明なデバイスさん :2006/04/18(火) 20:54:44 ID:W7PvBfmV
>>30
それって、ONUからひかりのルータのLANにつないで、
ルータ自身のWANとLANをつなぐであってる?


32 :不明なデバイスさん :2006/04/19(水) 00:12:52 ID:MwCD1t9J
>>30-31
それやったらループバックするからマズいだろうがw
どういう挙動するかわからんけど。

当初の目的はこうしたいんでしょ?
http://voip-info.jp/index.php?%A4%D2%A4%AB%A4%EA%C5%C5%CF%C3Tips

33 :不明なデバイスさん :2006/04/19(水) 12:39:48 ID:2xHg8lhS
>>32
IPv6ブリッジとPPPoEブリッジ無効にすれば問題なし。というか前とか前々スレではよく出てきた話。
インターネットで負荷がかかっている状態で電話大丈夫かとかあるけど、まあそれはDSCP優先しないハブ入れても同じだし。

34 :不明なデバイスさん :2006/04/19(水) 14:00:37 ID:qh6q5Xjp
ひとつの機器だと考えるから、自家接続はまずいと思ってしまうのだろう。
ルーターも内部的にはHUB部分+ルーター部分に別れているわけだ。
ONUの次にかますHUBに、ひかり対応ルーターのHUB部分を利用しようという
話なわけだな。
せっかく付いてるHUBを使わずにおくのは、電気代の無駄ってものだろ。

さてうまくいくでしょうか。VoIP 側が PPPoE している間って、PC 側の PPPoE は切断されちゃう?よなぁ。初期化のときだけだけど、気になる。実際運用してみないとわからないことばっかり。


VoIP 関連の用語列挙

SIP (Session Initiation Protocol)
電話っぽいセッション確立プロトコル
SDP (Session Description Protocol)
SIP の body 部分を使われるプロトコル
RTP (Real-time Transport Protocol)
音声信号を実際に通信するプロトコル

@IT:VoIPに耐えるネットワーク構築(2) の図がわかりやすかった。

  1. トップ
  2. net
  3. VoIP, ひかり電話, NAT

CRON って cron.hourly とかを run-parts で実行するけれど、なんだか実行されている気配のないスクリプトがあって悩んだ。

結局ファイル名が悪かったみたいだ。log.sh という名前にしていたのだけれど、これだとだめらしい。httplog に改名したらちゃんと run-parts --list でリストされるようになった。


man 見てもどうもわからなくてわかるまで時間がかかった。結局最後は試行錯誤っていう。

  1. トップ
  2. server
  3. CRON の run-parts でハマる
  1. トップ
  2. linux
  3. CRON の run-parts でハマる

「気をつけていること」って書いたけど、実際にはほとんど無意識ぐらいで「こうしたほうがいいな」って思いながらやっているのを書き出しただけで、あの規則ありきで書いているわけじゃないのです。

結果的にああなったぐらいのもので、わりとどうでもいいものです。書き出したのは、書き出すことで、本当にそれでいいのかっていうのを明確にしたり、曖昧なところを「曖昧なところ」として認識するためで、守るために書いたわけじゃないです。

例えばあれだと一つのファイルのまとめて書くことを前提にしてるから、ファイルを分けたときどうするかっていうのは全然わかってない。普通に考えたら、ある ID セレクタ以下を一括して分離するだろうけど、実際そうやって書いたことはないからなんともいえない。手探りいんぐ。

  1. トップ
  2. css
  3. 気をつけていること

Emacs の設定に嫌気がさしたので (ネガティブドリブン) 、vim に乗り換えるよ!

ubuntu 6.06 LTS の vim は VIM - Vi IMproved 6.4。css.vim のロードがいつも失敗する。

とりあえず覚えた (覚えてた) コマンド列挙

  • :w
  • :q, q!
  • i
  • v
  • V
  • C-v
  • u
  • C-r
  • y
  • p
  • P
  • dd
  • gg
  • G
  • /{search-string}
  • s/{s}/{r}/gc
  • ==
  • ^
  • $
  • o
  • !!cmd
  • gg=G

現時点での .vimrc

syntax on
colorscheme desert256
highlight ZenkakuSpace ctermbg=6
match ZenkakuSpace /\s\+$\| /
set listchars=tab:>.
set list
" バックアップとか自分でしろ
set nobackup
" 誰かが編集したら読み直して
set autoread
" 袖あまりは良いものだ
set scrolloff=10
" 行番号の表示
set number
" デフォルトインデント設定
set autoindent smartindent
" よさげなタブ
set smarttab
set softtabstop=4 tabstop=4 shiftwidth=4
" BS の挙動
set backspace=indent,eol,start
" よしなにしてくれ
set ignorecase smartcase
" インクメンタル
set incsearch
" 最初にもどれ
set wrapscan
" 対応する括弧の表示
set showmatch
" 入力中のコマンドを表示
set showcmd
" 行頭・行末間移動を可能に
set whichwrap=b,s,h,l,<,>,[,]
" 補完候補を表示する
set wildmenu
set laststatus=2
set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']['.&ft.']'}%=%l,%c%V%8P
set termencoding=utf8
set encoding=japan
set hidden
filetype plugin on
filetype indent on
noremap # :call ToggleCommentSelection()<CR>
" http://peace-pipe.blogspot.com/2006/05/vimrc-vim.html
" current syntax
command! -nargs=0 GetHighlightingGroup echo 'hi<' . synIDattr(synID(line('.'),col('.'),1),'name') . '> trans<' . synIDattr(synID(line('.'),col('.'),0),'name') . '> lo<' . synIDattr(synIDtrans(synID(line('.'),col('.'),1)),'name') . '>'
augroup MyAutocmd
au!
au BufNewFile,BufReadPost  vim   let b:commentSymbol='\"'
au BufNewFile,BufReadPost  *.c,*.h,*.cpp,*.d,*.java,*.js   let b:commentSymbol='//'
au BufWritePost * if getline(1) =~ "^#!" | exe "silent !chmod +x %" | endif
augroup END
" 現在行をコメントトグル
" 選択中はその範囲を
function! ToggleCommentSelection() range
if exists('b:commentSymbol')
let cs = b:commentSymbol
else
let cs = "#"
endif
let cl = a:firstline
while (cl <= a:lastline)
let line = getline(cl)
if strpart(line, match(line, "[^ \t]"), strlen(cs)) == cs
let i = 0
while (i < strlen(cs))
normal! ^x
let i = i + 1
endwhile
else
execute "normal! I" . cs
endif
normal! j
let cl = cl + 1
endwhile
endfunction

と、同時に、.zshrc を vim の第一引数を screen の window 名にするように書き換えた。

  1. トップ
  2. vim
  3. vim に乗り換えるよ!