2008-01-01から1年間の記事一覧

amarok でラジオ生活

Linux での iPod 用アプリとして amarok を最近使いはじめた。…はずが、この amarok には多くのインターネットラジオ局がデフォルトで登録されていることに気づき、最近は専らこちらがメインになっている。大量に登録されているラジオ局の中でもポップス/ロ…

which コマンドの実装

Python を習いはじめたともだちのところで which コマンドの実装というネタをやっていたので、Perl/Ruby に改宗させるべく(?)載せてみる。ただ、この汚いワンライナだと、洗脳は期待できないカモ。which コマンドの実装 - forest bookPerl 版 $ perl -e '@p …

より快適に grep-find する(改)

「よい人生とはよい検索だ。」(アキハバラ@DEEP)ということで(?)、以前作ったオレ版 grep-find を改良することにした。より快適に grep-find する以前は *grep* バッファを映しているフレーム以外で呼び出すと続けてフレームを作ってしまっていた。こ…

最近使ったファイル

俗に言う「最近使ったファイル」を表示する簡単なシェルスクリプトを書いた。引数に指定する N 日以内に修正したファイルを表示するというもの。デフォルトは 1 日以内としている。 $ cat lt.sh #!/bin/bash N=1 [ -n "$1" ] && N=$1 echo "Show the file(s)…

elisp の push に絶望したッ!

絶望したッ! elisp の push がリストの末尾ではなく先頭に要素を追加することに絶望したッ!それじゃ unshift じゃないかッ! ; OK。でも (d a b c) というリストになる。 (setq x '(a b c)) (push 'd x) ; OK。これがやりたかっただけなのに…。 (append x …

バッファは溜るよ、どこまでも

タグジャンプをしていると、いつのまにかどんどんバッファが溜っていく。C-x C-b してお目当てのソースに行こうと思っても大量のバッファ(ファイルに限らず *Help* とか *Buffer List* とかも含む)がリストされていてその時点でちゃぶ台を返したくなる。こ…

ひとつ前のディレクトリに戻る

深いディレクトリにいる時にうっかり cd を引数なしで打ってしまうと萎える。そこで、以前のディレクトリに簡単に戻れる(Back to Directory) ように、シェルの組込み変数 $OLDPWD を使ってちょっとしたシェル関数を作ってみた。 $ bd () { cd $OLDPWD; } $ p…

grep-find のジャンプ先バッファで行番号を表示する

せっかく grep-find が行番号つきで検索箇所を表示してくれるのでジャンプした先でも行番号を表示するようにしたい。 ジャンプした後に C-x ESC ESC の repead-command で呼び出した関数を調べると compile-goto-error という関数であることがわかった。じゃ…

より快適に grep-find する

Emacs の機能の中でも M-x grep-find はお気に入りのひとつ。文字列検索に加え + *grep* バッファに移動してヒット箇所で Enter するとそこにジャンプしてくれる便利なヤツなのだ。ただ、以下のような不満点もあったのでカイゼンしてみる。 - 検索する時にい…

複数のタグテーブルを切り替え

普段コードを読むときはタブジャンプに etags じゃなくて global に付属している gtags を使っている。理由は複数の候補の時に選択肢を表示して選べるようになっているから。 GNU GLOBAL ソースコードタグシステム http://www.tamacom.com/global-j.html た…

changelog エントリを自動挿入する elisp

お仕事で bug fix した rpm パッケージの spec ファイルを修正したついでに、changelog エントリを自動挿入する elisp を書いてみた。change-log-mode も rpm-spec-mode もよくできているが、日付フォーマットなど細かい制御は自分で行ったほうがより便利だ…

肉まんとあんまん

- バグを憎んで人を憎まず。肉まんでも食べて、憎まんとする。 - あんまんを食べながらアンマント(unmount)。 ひゅー。

Emacs 22.1.1 インストールノート on Ubuntu 7.04@ガンダム風

Emacs 21.4.1 + mule-ucs 遅いぞ、何やってんの!!(by ブライト@ガンダム) 今まで、Ubuntu 日本語化チームが用意してくれた Emacs 21.4.1 (+ emacs-env-ja + mule-ucs + その他の el パッケージ) を apt-get install して使用していたが、遅すぎるのと gre…

アウトラインモードで翻訳作業

ちょっとした経緯で技術文書の一部を翻訳することになった。こんな時便利なのが Emacs の outline-mode。M-x outline-mode とした後、以下の 4 つのコマンドだけでドキュメントを章や項ごとに表示させたり隠したりすることができる便利ワザ。 - C-c C-t 全見…

man vs woman

Emacs から man を引くのに、M-x man だと日本語が文字化けするが M-x woman だとキレイに表示してくれる。しかも複数のエントリ( mkdir(1) と mkdir(2) など )がある場合は事前にどちらを引くか問い合わせてくれる。カラー表示にもしてくれるし、やはり女…

screen起動時に複数マシンに一斉接続

仕事柄、複数の開発マシン(ビルド環境)に ssh 接続しなければならない。接続するマシンの数だけsshコマンドを叩くのが面倒だったのでscreenを利用して起動時に自動的に接続するようにしてみた。やりかたは .screenrcの中でbindkeyで F1(k1) から F9(k9) ま…

doxygen を使ってみた

C++

C++ での開発にあたり、クラス定義を見るツールとして doxygen を使ってみた。これ…(・∀・)イイ!! $ diff -u Doxyfile libs/Doxyfile --- Doxyfile 2008-02-05 07:54:57.000000000 +0900 +++ libs/Doxyfile 2008-02-04 17:49:08.000000000 +0900 @@ -17,13 +17…

src.rpmとrpmの対応表

src.rpmから(バイナリ)rpmが生成されるがその対応は1:1とは限らない。仕事上この対応表が必要になったのでそれを自動生成するスクリプトを書いた。last_srpm はよーするに uniq するためのフラグだ。 #!/bin/sh rpm -qa --qf "%{SOURCERPM} %{NAME} \n" | …

拡張子の一括変換

C++ ソースファイルの拡張子を .c++ から .cpp にリネームする。 [kyagi@teresa bar]$ ls a.c++ b.c++ c.c++ [kyagi@teresa bar]$ for f in *.c++; do mv $f ${f%.c++}.cpp; done [kyagi@teresa bar]$ ls a.cpp b.cpp c.cppfind . -name と組み合わせれば階…

やるじゃん、imagemagick

デジカメを買ってからというもの、imagemagick に付属している convert コマンドが大活躍している。画像のサイズ変更とフォーマット変更を一発で行えるのがいい。 $ convert -resize 640x480 before.jpg after.pngアイコンも作れちゃったりする。 $ convert …

フォーマットは変わる。音楽は変わるな。

古い mp3 ファイルを iPod/iTunes に読み込ませたのだが、曲名やアーティスト名の統一がとれずに困っていた。具体的な問題は以下の2点。 - 表示される曲名が全角だったり半角だったりして見苦しい。 - 表示されるアーティスト名が全角だったり半角だったりし…

rpm で情報をできるかぎり引き出す

お仕事で次のバージョンに向けてリストを作る必要があった。めんどくさ。 $ rpm -qa | xargs -i rpm -q --qf "`ruby -e 'open("| rpm --querytags", "r") do |f| while tag = f.gets do print "%{#{tag.chomp}} "; end end'`\n\n" {}

ソース行数を計算する

また開発に戻ることになりそう。とりあえず振られそうなとこの規模を測っておくことにする。 $ find . -name "*.c" -o -name "*.cpp" -o -name "*.h" | \ xargs -i wc -l {} | awk 'BEGIN { sum = 0 } { print; sum += $1 } END { print sum }'ruby でもやっ…

GTDTiddlyWiki

久しぶりに LifeHacks を読みかえしてみて GTDTiddlyWikiに興味を持った。ページ内の "this link" のリンク先を保存して Firefox で開いて早速使ってみた。これ…(・∀・)イイ!!個人的に ToDo は check*padで管理しているのでこれは以下に使うことを考えている。…