2009年2月8日日曜日

PPAの鍵の取得

PPAの仕様が変って署名機能がついたので、それに合わせて鍵を取得しておいた。
apt-get update で
W: GPG error: http://ppa.launchpad.net hardy Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 7781BA0134BEEE14
W: これらの問題を解決するためには apt-get update を実行する必要があるかもしれま せん
と出たので、PPAの仕様変更に伴ない、PPAのアドレスを変更。そして、
gpg --keyserver keyserver.ubuntu.com --recv-keys 7781BA0134BEEE14
sudo gpg --armor --export 7781BA0134BEEE14 | sudo apt-key add -
として鍵をインポートした。
ちなみに上記の鍵はkirkland さんのリポジトリ。

ちなみにGUIでやりたい場合は、以下の動画をどうぞ。
http://www.youtube.com/watch?gl=US&v=UUZOQsNo_ws&fmt=18

2009年2月7日土曜日

atimeとrelatime

 個人的メモ。
 Ubuntuでは8.04(もっと前?)あたりから、カーネルオプションで、default_relatime が有効になっているらしい。
  • default_relatime が有効になっていると、マウントオプションに relatime が追加される。
  • デフォルトでは最大一日以内のatimeはread()されても更新されない。
  • default_relatimeを無効にするにはブートオプションに、default_relatime=0 を追加。
  • つまり、findなどでatimeを基準にした検索には注意が必要。
 
 個人的には/home を別パーティションにし、それ以外をnoatimeで運用していたのですが、今まで気にもしなかったということは、/home もnoatime でもかまわない、つまり relatime オプションが有効になっていても問題なしという結論に。
 cat で読み込んでもatimeは更新されないという気持ち悪さは残るんですが、まあ・・・ね・・・うん・・・

参考

2009年2月6日金曜日

ubuntuにicewmを入れる

 icewm はWindowsXPのクラシックメーニューに似ている外観を持ったウィンドウマネージャーです。 GNOMEやKDEのような総合デスクトップ環境とは違いますが、驚くほど軽量なWMとなっています。ゴテゴテした装飾や、親切設計はいらない、なによりもメモリが少なくてGNOMEが重いという人にぴっったりなウィンドウマネージャーです。
 実はちょっと前までxfceを入れていたんですが、GNOMEと比べて劇的にメモリ使用量が減るわけでもなく、操作感もほとんどGNOMEを一緒なので、「じゃあGNOMEでいいじゃんw」と思ってだんだん使わなくなっていきました。そんな中、前から気になっていた icewm を試してみたらとても軽くてこれは良いと。




インストール

sudo apt-get install icewm icewm-gnome-support icewm-themes
 インストールし終えたら、gnomeからログアウトし、ログイン画面のセッションでicewmを選択すれば立ち上がります。初期状態では壁紙もなく質素で非常に使いずらい状態です。
 icewm の設定は~/.icewm/以下の設定ファイルを編集することで行ないます。サンプルが/usr/share/icewm/以下にあるので、それをコピーして使ってもいいでしょう。

設定


 設定は各種設定ファイルをテキストエディタで編集することで行ないます。設定のサンプルは、/usr.share/icewm/ 以下にありますので、それらを ~/.icewm/ 以下にコピーして編集するといいでしょう。
 各設定ファイルは以下のようになっています。


~/.icewm/menuメニューの内容を設定
~/.icewm/preferencesicewmの設定
~/.icewm/startupスタートアップファイルの設定
~/.icewm/themeテーマを設定
~/.icewm/toolbarタスクバーの設定


設定の反映方法
 menuなどは即座に反映されるようですが、preferenceなどはicewmを再起動しないと反映されないようです。
 メニューからicewmを再起動してください。


フォント
 ~/.icewm/preferences に記述します。以下私の設定例です。

# フォントの設定。
itleFontNameXft="sans-serif:size=12"
MenuFontNameXft="sans-serif:size=12:bold"
StatusFontNameXft="monospace:size=12:bold"
QuickSwitchFontNameXft="monospace:size=12:bold"
NormalButtonFontNameXft="sans-serif:size=12"
ActiveButtonFontNameXft="sans-serif:size=12:bold"
NormalTaskBarFontNameXft="sans-serif:size=11"
ActiveTaskBarFontNameXft="sans-serif:size=11:bold"
ToolButtonFontNameXft="sans-serif:size=12"
NormalWorkspaceFontNameXft="sans-serif:size=12"
ActiveWorkspaceFontNameXft="sans-serif:size=12"
MinimizedWindowFontNameXft="sans-serif:size=12"
ListBoxFontNameXft="sans-serif:size=12"
ToolTipFontNameXft="sans-serif:size=12"
ClockFontNameXft="monospace:size=10"
ApmFontNameXft="monospace:size=12"
InputFontNameXft="monospace:size=12"
LabelFontNameXft="sans-serif:size=12"

アプリの文字が小さい
 ~/.icewm/preferences でicewm のフォント周りの設定は出来たのですが、アプリの文字サイズがGNOMEと比べて小さいまま変更が出来ませんでした。
 この問題は ~/.Xresource に
Xft*dpi:       96
と記述することで解決しました。dpiをきちんと設定しないといけなかったんですね。
 Xを再起動すれば反映されます。あるいは、
xrdb ~/.Xresource
とします。

その他の設定

 設定例です。~/.icewm/preferences に記述します。

# タスクバーを上に表示する。
TaskBarAtTop = 1
# 時刻表記の設定。
TimeFormat="%m/%d(%a)%R"
#LCDっぽい画像で時計を表示しない。
TaskBarClockLeds = 0
#ウィンドウ移動時、ワイヤーフレームにする。
OpaqueMove = 0
#ウィンドウリサイズ時、ワイヤーフレームにする。
OpaqueResize = 0
# ワークスペースの設定。
WorkspaceNames=" 1 ", " 2 ", " 3 ", " 4 "
# Alt+Tab キーが、どのワークスペースにあるウインドウにも切り換えます。
QuickSwitchToAllWorkspaces = 1
# マウスが画面端にきたらワークスペースを移動する。
# EdgeSwitch=1



#キーボードショートカット
# ワークスペース切り替え。
KeySysWorkspace1="Ctrl+1"
KeySysWorkspace2="Ctrl+2"
KeySysWorkspace3="Ctrl+3"
KeySysWorkspace4="Ctrl+4"


# 壁紙の設定。
DesktopBackgroundImage="/home/hoge/Pictures/Wallpapers/hogehoge.jpg"

# icon path
IconPath="/usr/share/icons:/usr/share/pixmaps"


スタートアップの設定

 ~/.icewm/startup に記述します。以下設定例。
#!/bin/sh

/home/hoge/.dropbox-dist/dropboxd &
pidgin &
gnome-terminal &
checkgmail &
xscreensaver -no-splash &
 保存したら ~/.icewm/startup ファイルに
chmod +x ~/.icewm/startup
として実行属性を付けて下さい。
 上記例では、Dropboxの同期を行なうデーモンとgnome端末、Gmailをチェックするcheckgmail、そしてスクリーンセーバーを起動時に実行するようにしています。

メニューの設定

 ~/.icewm/menu を編集します。
 メニューの設定は簡単です。上に書いたものが上になります。書式は、
prog 名称 アイコンファイル名 プログラム名
各要素は空白またはタブで区切ります、
 入れ子にする場合は、
menu "サウンド" folder {
prog "Amarok" /usr/share/pixmaps/amarok.xpm amarok
prog "audacious" /usr/share/pixmaps/audacious.xpm audacious
prog "streamtuner" /usr/share/pixmaps/streamtuner.png streamtuner
}
 などと記述します。以下設定例。

# icewm menu configuration -*- mode: conf-unix -*-
#
#

prog "rox-filer" /usr/share/rox/images/application.png rox
prog "gnome-terminal" gnome-terminal gnome-terminal
# ■△○ 問題を解決。
prog "g-terminal" gnome-terminal env VTE_CJK_WIDTH=1 gnome-terminal
prog "JD" jd jd
prog "Mozilla Firefox" /usr/lib/firefox-3.0.6/icons/mozicon128.png firefox
prog "Emacs23" /usr/share/icons/emacs-snapshot/emacs16_mac.png emacs-snapshot
separator
menu "アプリ" folder {
menu "OpenOffice" folder {
prog "OpenOffice 2.4 Calc" ooo-calc.png env SAL_EMBEDDED_BITMAP_PRIORITY=0 ooffice -calc
prog "OpenOffice 2.4 Writer" ooo-writer.png env SAL_EMBEDDED_BITMAP_PRIORITY=0 ooffice -writer
prog "OpenOffice 2.4 Draw" ooo-draw.png env SAL_EMBEDDED_BITMAP_PRIORITY=0 ooffice -draw
prog "OpenOffice 2.4 Impress" ooo-impress.png env SAL_EMBEDDED_BITMAP_PRIORITY=0 ooffice -impress
prog "OpenOffice 2.4 Base" ooo-base.png env SAL_EMBEDDED_BITMAP_PRIORITY=0 ooffice -base
# prog "OpenOffice 2.4 Math" /usr/share/icons/hicolor/16x16/apps/ooo-math.png /bin/sh -c "openoffice.org2.4 -math"
}
}
menu "ネット" folder {
}
menu "メディア" folder {
menu "サウンド" folder {
prog "Amarok" amarok amarok
prog "audacious" audacious audacious
prog "streamtuner" streamtuner streamtuner
prog "decibel-audio-player" decibel-audio-player decibel-audio-player
}
menu "動画" folder {
prog "Totem(GStreamer)" totem totem-gstreamer
prog "Totem(xine)" totem totem-xine
prog "mplayer" mplayer gmplayer
prog "VLC" vlc vlc
}
menu "画像" folder {
prog "gpicview" gpicview gpicview
prog "mirage" mirage mirage
prog Gimp gimp gimp
prog "comix" comix comix
}
}
menu "tool" folder {
prog "screenshot" /usr/share/icons/HighContrastLargePrintInverse/48x48/apps/gnome-screenshot.png gnome-screenshot --interactive
}
separator
menu "設定" folder {
prog "アプリの追加と削除" - gnome-app-install
}


ツールバーの設定

 ~/.icewm/toolbar に記述します。
 menu の書式と同じです。以下設定例。

prog "rox-filer" /usr/share/rox/images/application.png rox
prog "gnome-terminal" gnome-terminal env VTE_CJK_WIDTH=1 gnome-terminal
prog "JD" jd jd
prog "Mozilla Firefox" /usr/lib/firefox-3.0.6/icons/mozicon50.xpm firefox
prog "gama" - gamma

テーマ

 メニューのSetting→テーマにいっぱいあるので、そこから選択します。

●私のオススメのテーマはこちらをどうぞ

ファイラ

 統合デスクトップ環境ではありませんので自分で用意します。
 ファイラはroxを使用することにしました。軽いのが特徴です。以前から使用していたので違和感なく移行。

デスクトップ

 icewm にはデスクトップにモノが置けません。ですのでデスクトプを管理するプログラムを別に用意してあげなければいけません。今のところ私は必要ないので導入していませんが、roxのデスクトップ管理機能を利用すればいいでしょう。


まとめ

 基本的に設定したらicewmを再起動させて反映の繰り返しです。設定項目に関しては、サンプルを見るのが一番です。ドキュメント類は古く記載漏れがあります。
 GNOMEと比べてメモリ使用量が激減しているのに気づくでしょう。逆い言えばハードウェアリソースに制約のない最新PCを使用している人にとっては導入するメリットはないでしょう。

2009年1月22日木曜日

CLIで天気情報を表示する

 最近ではさまざまなガジェットが氾濫し、デスクトップ環境でお天気情報を表示するということも珍しくなくなってきました。
 ならコマンドラインからでもお天気情報を表示できたっていいじゃなーいということで調べてみました。

weatherget というツールを使います。

インストール

wget http://download.berlios.de/weatherget/weatherget-0.4.0.1.tar.bz2
tar xvf weatherget-0.4.0.1.tar.bz2
cd weatherget-0.4.0.1
sudo python setup.py install

使い方

自分の街のコードを調べます。
$ weatherget -l tokyo

Tokyo, Japan: JAXX0085
と出るので、あとは、
weatherget --station-id=JAXX0085 --metric
とすれば、
Tokyo, Japan  (139.77, 35.67)
Tokyo, Japan 1/22/09 3:00 PM Local Time
Temperature : 7 C
Feels Like : 4 C
Conditions : Drizzle
Wind : 11 km/h, 0 km/h gusts, NNW
Visibility : 2.5 km
Humidity : 84 %
Barometer : 1014.6 mb, N/A
Dewpoint : 4 C
UV : Low, 0
Sunrise : 6:47 AM
Sunset : 4:58 PM
Moon : Waning Crescent
Time Zone : 9 GMT
長ったらしいので、
alias tenki='weatherget --station-id=JAXX0085 --metric'
として別名定義しておけば、tenki とするだけでいいので楽チンです♪

 weatherget 自体はpythonのスクリプトで書かれていますので日本語じゃないとヤダという方は挑戦してみてください。私は面倒くさいので、sed でやっちゃいましたw コードいじらないので楽ですしw
$ weatherget --station-id=JAXX0085 --metric | sed -f weather.sed

東京,日本 (139.77, 35.67)
羽田ヘリポート,日本 1/22/09 5:22 PM Local Time
気温 : 6 ℃
体感気温 : 3 ℃
天候 : ほとんど曇り
風速 : 13 km/h, 0 km/h gusts, NNW
視界 : 1.5 キロメートル
湿度 : 93 %
気圧 : 1017.9 ヘクトパスカル, steady
露点 : 5 ℃
紫外線 : 低い, 0
日の出 : 6:48 AM
日の入り : 4:58 PM
月齢 : Waning Crescent
タイムゾーン : 9 GMT
な感じで。


weather.sedの中身
s/Temperature/気温         /
s/Feels Like/体感気温 /
s/Conditions/天候 /
s/Wind/風速 /
s/Visibility/視界 /
s/Humidity/湿度 /
s/Barometer/気圧 /
s/Dewpoint/露点 /
s/UV /紫外線/
s/Sunrise/日の出 /
s/Sunset/日の入り/
s/Moon/月齢 /
s/Time Zone/タイムゾーン/
s/ km$/ キロメートル/
s/Iruma AB, Japan /入間基地,日本/
s/Omiya, Japan/大宮,日本/
s/ C$/ ℃/g
s/Low,/低い,/
s/ mb, / ヘクトパスカル, /
s/Mostly Cloudy/ほとんど曇り/
s/Fair/晴れ/
s/Cloudy/曇り/
s/Partly Cloudy/ところにより曇り/
s/Light Rain/小雨/
s/Fog/霧/
s/Shower/にわか雨/
s/Heavy Rain/大雨/
s/Rainstorm/雨嵐/
s/Flurry/突風を伴うにわか雨/
s/Sleet/みぞれ(雪まじりの雨)/
s/Snow/雪/
s/Snowstorm/吹雪/
s/Storm/嵐/
s/Gale/強風/
s/Thunder/雷/
s/Thunderstorm/雷雨/
s/Lightning/稲妻/
s/Hurricane/台風/

2009年1月7日水曜日

Ubuntuで重複ファイルを削除する

 ネットで画像ファイルをどんどん保存しまくっていくと、いつしか以前保存した画像をまた保存していて、同じようなファイルが複数溜まっていく・・・なんてことはよくあることです。
 チリも積もればなんとやら。画像フォルダの重複ファイルを調べていたらなんと555ファイルもあり、95Mにもなっていました。あまりよろしくないですよね。
 ということで今回は重複ファイルの整理方法。

fdupes というツールを使います。fdupes は指定されたディレクトリを検索し、ファイルサイズとmd5ハッシュ値で比較し、重複したファイルがあれば、それを表示してくれます。大変コンパクトで高速な素晴しいソフトです。

インストール

sudo apt-get install fdupes

使い方

重複ファイルを探し出す
fdupes -r ~/MyPicture/
~/MyPicture/ 以下を再帰的に検索して重複したファイルを表示します。
重複した余分なファイルを削除する
 重複したファイルを少しなら、-d オプションで逐一操作してもいいのですが、量が多いとなると大変です。そこで、削除するファイルのリストを掃き出させ、そのリストを rm コマンドに食わせるというやり方でいきます。

  • リストを作る。
    fdupes -rf ~/MyPicture/ | sort | uniq | grep -v '^$' > remove.lst
     これで削除すべき余分なファイルのリストが出来あがりました。

  • 実際に削除する
    while read file; do rm -v "$file"; done < remove.lst
     remove.lstから一行づつ読み込まれて削除されていきます。
     いきなり rm で削除は不安という場合は rm を trash に置き換えでもいいでしょう。

2008年10月31日金曜日

ワードサラダって頭にくる

 最近googleのブログ検索でemacsをキーワードにブログを読んでいくと、支離滅裂なブログがあって???となることが度々。
 だってemacsがおいしい。とか、emacsを買った。とか。もう全然意味が分かんない。
 そのうちSEO対策でキーワードをちりばめた文章を人口無能に書かせているのかなと思って調べたら、ワードサラダっていうスパムの一種だそうです。
 日本では去年当たりから流行りはじめたみたい。
 人間の目には明らかにおかしいとわかる文章でも検索ボットには文章として認識されてスパムフィルタをすり抜けてしまうみたい。

 しかしこれがまた異様に腹が立つ。おまけにemacsなんていう、ごく一部の人種しか興味がないようなキーワードまで利用されていることにものすごい腹が立つ。

 GoogleReaderでブログは読んでいるので、最近はリンクを踏まないようにしているけど、あー腹が立つ。
 みなさんもあさましいワードサラダにはご注意を。

2008年10月17日金曜日

howmで保存時の設定

 howm という Emacs 使いなら絶対使っとけみたいなキラーアプリがあります。いわゆるメモ取りソフトなんですが、全文検索も出来て、リンクも出来て、しかもただのテキストファイルだから加工も容易で、ToDoアプリとしても使えて、スケジューラーとしても使えて、お勧めです。

 それで howm をメモソフトとして使っているのですが、基本的にメモはプライベートなモノなので他人に見られないようhowmのメモを保存時にパーミッションを600に変えるようにします。
 以下を~/.emacs に追記。

;;; 保存時処理
;;; 保存時にパーミッションを"600"にする。
(add-hook'howm-after-save-hook
(lambda ()
(let ((name (buffer-file-name)))
(set-file-modes name 384)))) ; 600