綾小路龍之介の素人思考

Tools > よく使う機能のメモと設定のメモ

このページでは、色々なコマンドやプログラムの持つ機能のうち、僕がよく使う機能についてメモ書きしておきます。ここは、咄嗟のときに的確な説明が口をついて出てくるように記憶の裏打ちをしておく場所です。


目次


1.1 riece

rieceはemacsの上で動くIRCクライアントなのだけれど。riece公式ページのマニュアルには載っていないキーバインドがある。それは、アドオンで実装された機能についてのものが多いわけで。ということで一つめもっておこう。riece-unreadで定義されているriece-unread-switch-to-channel関数を呼び出すC-cC-u。これで未読のメッセージを含むチャンネルに移動できる。これだけでも結構違うな。


1.2 Tiarra

ircプロキシ(ボット)。irc常駐と書くと黒い雰囲気がしてしまうのだけれど、そういうことを支援してくれる。同じサーバにある別チャンネルごとに文字コードを変えることは出来ないのかと思ったけど、IRCプロトコル的にはどうなんでしょ。気分的には許してもいい気がするのだけれど。そうそう、Rieceにもチャンネルごとにコードを変える機能は無かったな。

  1. Switch to UTF-8 on freenode - Bulknews::Subtech - subtech

1.3 tcpdumpを見やすく

下のようにしてtcpdumpの-Xオプションでパケットの16進ダンプとascii表示できる。

# tcpdump -X -i eth0 tcp port http

だから、ブラウザでどっかのページをとってくればGET hoge.html HTTP/1.0とかの文字がみえるわけだ。でも、行あたり16バイトしか表示されないのでヘッダーだけ表示するのに何行もかかってしまう。ということでperlを使って其のあたり多少見やすくしてみた。

#!/usr/local/bin/perl
 
sub readable
{
	$num = hex($_[0]);
	if(0x0a==$num
	|| 0x0d==$num
	|| 0x09==$num
	|| 0x20<=$num && $num<=0x7F){
		return 1;
	}else{
		return 0;
	}
}

my @tmp;
while(<STDIN>){
	@tmp = ();
	if(m/^\t/){
		s/^\t//;
		s/^0x[0-9A-Fa-f]+:\s*//;
		foreach(split /\s+/){
			push @tmp, m/(.{2})(.{2})/;
		}
		foreach(@tmp){
			if(&readable($_)){
				print pack("H2", $_);
			}else{
				print $_;
			}
		}
	}else{
		print "\n";
		print;
	}
}

このスクリプトを適当なファイル名で保存してtcpdumpの出力をパイプする。

# tcpdump -x | perl hoge.pl

tcpdump側で必要なオプションは-x。これで多少見やすくなる。本当に多少だが。perl tcpdumpで検索すると同じようなスクリプトがいくつも見つかる。でもngrepのほうが正解に近いかもしれない。下のような感じ。

# ngrep -d eth1 -W byline port 80

マッチング条件として"HTTP"と指定すれば、HTTPというフレーズが含まれるパケット、つまりリクエストヘッダとレスポンスヘッダを送信したパケットの初め(分割されたパケットの1番目)だけが表示され、それ以外は#で表示される。

# ngrep "HTTP" -d eth1 -W byline port 80
  1. Passive Network Traffic Analysis: Understanding a Network Through Passive Monitoring

1.4 mplayerは最高だね

永久ループ再生したいときは-loopオプションに0をつける。100回の場合は-loop 100とか。

$ mplayer -loop 0 hoge.mp3

SHOUTcastとかからプレイリストをダウンロードしてそのプレイリストを再生する場合に再生対象にプレイリストが渡されたということをmplayerにおしえてあげないとだめ。そのためのオプションが-playlist。

$ mplayer -playlist tunein-station.pls

ディスプレイの右上というのは以外にもデッドスペースなので、ここにウィンドウを持ってきて、前画面表示させる。

$ mplayer -ontop -geometry 100%:0% hoge.avi

非力なマシンでも使えるようにしたいので調べてみた。[linux] - フツーな日常によれば、X11よりもxvが軽いそうなので、下のようにすればもっとCPUパワーを消費せずに再生できるかな。

$ mplayer -vo xv hoge.avi

framedropを付けてもいい。framedropの度合いを増やして、よりスムーズ?に再生するには、dを押す。dを何回も押すことで、framedropの割合を、しない(disable)、適当(enable)、相当(hard)、と変えられる。当然ながら、framedropを増やすとカクカク動くようになってしまうが。

$ mplayer -framedrop hoge.avi

framedrop haedに対応したオプションはhardframedropで下のような感じにすればOK。

$ mplayer -hardframedrop hoge.avi

セカンダリモニタに表示すると黄緑色になってしまう場合。

$ mplayer -adapter 2 hoge.avi

で、結論として、smplayer使いましょう。smplayerはmplayerの呼び出しプログラムなんでよくわからん場合によきに取り計らってくれます(多分)。また、オプションの呼び出しに優れているのでmplayerをより軽く使えそうです。呼び出し部分の無駄を考えても賢いオプションのほうが効率が良いこともある。


1.5 アプリケーション選び

重要なのは、どのようなマシンにも共通するよいプログラムはない。ということに早いとこ気づくことだ。どのようなプログラムにもソフトウェアの特徴と言うものがある。どのようなマシンもハードウェアは異なるだろう。いい組み合わせを見つけることはじゅうようである。同じプログラムが異なるハードウェアで同じようなパフォーマンスをあげるとも限らない。と言うことで、いくつかの選択肢を持っておくことが適当だ。

とにかく、プロフェッショナルは環境に左右されずに仕事をする。環境を作るのがうまいのがプロフェッショナルなのかもしれない。


1.5.1 ブラウザ

うちのマシンは128Mのメモリをつんでいる。これで十分かなぁと思った時期もあったが、最近のソフトウェアは以外にもメモリを食ってしまうようだ。やっていることは昔と変わらないのにもかかわらず、何でこんなにも重くなってしまったのだろうと。と言うことで、やっていることは変わらないのにずいぶんと重く感じるようになった筆頭としてブラウザ、これの改善を考えましょう。

今使っているのはOpera 9.5。このブラウザ、メモリを結構食うようで、どうも128Mだとページングがひどい。なんだかIE6のほうが軽いんじゃないかと思えるくらい。最近は、メモリにキャッシングデータを保存しておくことで、高速化を図るというのが主流なのか、Firefoxもだめなようだ。Safariは試してないけど。と言うことで、今回は、「ブラウザ 128M|64M」でGoogle検索してみた。今回の目的は極力メモリに物を置かないブラウザを探すこと。ということで、Dount、ぶら。、KIKIと言う感じかな。

追々使用感をメモっておこう。で、DountL。開発もとのページにいきなり確信を付くようなコメントがあったので、DountファミリーのなかでDountLをチョイス。使用開始のメモリ消費は16Mでなかなかいい感じ。これで、ブラウジング中にどこまで消費してしまうかだな。youtubeで動画再生してみると10本ぐらいで32Mまで増加。1本見るごとに徐々に消費量が増加。放置しても減らないので、こまめに終了させることがいいのかも。


1.6 w3mはマジでクールなテキストブラウザ

テキストブラウザというジャンルがある。テキスト端末でもそれなりにWebが見れるという時点で最高にクールだが、何よりも余分な機能を付けないでコンパイルできるので軽い。例えば、画像は表示できないし、Javascriptは効かないし、CSSは無視される(ように設定することも出来る)。この項では起動してみて回って終了するまでの一連の流れを解説する。

まずは起動してみる。下のどちらでも起動する。引数が.の場合はホームディレクトリからカレントディレクトリののディレクトリツリーとファイル一覧が表示される。-Bの場合はブックマークが表示される。引数がないと怒られて起動しない(debian)か設定ファイルのホームを読みに行く(vine)。僕は.で起動させるのが好き、他人にコマンドライン履歴を見られたときとかプロセスを見られたときに色々と詮索されるのが嫌だからね。

$ w3m .
$ w3m -B

起動したら

リロードR
新しいタブを開くT
タブ移動}
タブ移動{
タブを閉じるC-q

1.7 nkfとiconv

テキストファイルの文字コードを知りたいときには

$ nkf --guess hoge.pl

1.8 ffmpegでasfコンテナの音声を分離

$ ffmpeg -i hoge.asf -vn -acodec copy hoge.wma

-vnでコンテナに含まれる映像の出力を抑制。-acodec copyで音声データを変化させずに出力。いくつかのasfファイルからの分離ではファイルサイズが大きくなった(1MB程度)。できたファイルをxxdでバイナリダンプしてみるとよくわからん0x00がいっぱいある。分離後の音声ファイルはシークができるようになっていた。


1.9 soxで倍速再生

$ sox hoge.wav hage.wav strech 0.5 56 trim 0 30

拡張子を見てファイルの種類を判断している模様。strechの56は適当かつ適切に設定。trimでトリミング、ここでは最初から30秒間の意味。


1.10 シェルスクリプト

重要な示唆はシェルスクリプトをプログラムのリセット的に使用しようということだ。長時間起動し続けるとスワップメモリや物理メモリを食いつぶすようなプログラムは本来は書いてはけないものだと思う。でも、そのようなプログラムを使わなければどうしようもない場合もある。もし同じ仕事をするのに、先に述べたようなプログラムを何回も呼び出したほうが良いならば呼び出しようのシェルスクリプトを書くべきだと思う。


1.11 JkDefrag

デフラグソフトは色々あるけど、これが良いと思う。体感速度的にはWindowsのデフォルトのデフラグソフトよりもずっと早い。オプションを付けて起動させることで、デフラグさせたくないファイルを制御できるのが良い。テンポラリフォルダに入っているファイルのデフラグは必要ないだろうと思うので、下のようにして起動するのが良いと思う。

> JkDefragCmd.exe -e d:\tmp\*

ためしにファイルサイズの異なる10000個のファイルをランダムに新しく作成して(総ファイルサイズは10GB程度、60GBのディスクに開き領域4GB)、デフラグかけたところ12時間でも終了せず。開き領域を増やしたらどうなる。

  1. JkDefrag v3.36

サイトマップ

  1. CSS > Webサイトのレイアウトの話
  2. DVDリッピングしてaviファイルにするときの計算方法
  3. Debian > インストールメモ
  4. Memo > One Line Diary
  5. Memo > To-Doリスト
  6. Memo > iswebの自動挿入広告の文字コードに関する考察
  7. Memo > リンクとメモ
  8. Memo > 物理屋の独り言
  9. Misc > High Performance Computing(HPC)
  10. PC過去の遺物集
  11. Perl > 1行スクリプト覚書 with Active Perl
  12. Perl > Perl実験室でWeb雑考
  13. Perl > XML::TreePPでXMLサイトマップファイルを生成
  14. Perl > e.cgi のページ ProjectRotation8
  15. Perl > クエリを連想配列で受け取るスマートな方法
  16. Perl > サーバーにアップロードしたcgiのエラーチェック
  17. Perl > ブリコラージュ的 cgi
  18. Programing > プログラムの素人が不思議に思ったこと
  19. Services > Gmail Tips
  20. Services > YourFileHostダウンローダ
  21. Services > twitterはじめました。
  22. Tech > MathMLを使ってみる
  23. Tech > Windows 2000 Professional でLaTeX組版システムを使う
  24. Tech > coLinuxの導入
  25. Tech > サイトのミラーリング
  26. Terapadで作るLaTeX統合環境
  27. Tools > Opera > 設定の諸々
  28. Tools > bashのメモ
  29. Tools > lit2ptoのページ
  30. Tools > vimの設定とtips
  31. Tools > よく使う機能のメモと設定のメモ
  32. VMware > ホストOSがWindows XP Home SP2でゲストOSがVine Linux 4.1
  33. Vine > SSHの暗号化経路を経由してSambaサーバの共有ディレクトリをマウント
  34. Vine Linux > LaTeXでpdf文書作成
  35. Vine Linux > Libretto L1に載せる
  36. Vine Linux > SSH関係の諸々メモ
  37. Vine Linux > サーバを立てたときのメモ
  38. Vine Linux > ソフトウェアRAID
  39. Vine Linux > デスクトップとして使う場合に必要な設定
  40. Wanderlust > inter7でIMAP4
  41. Web Etcetera > サーバー上でファイルを直接編集することについて
  42. Web Etcetera > 検索エンジンが自分のサイトをどのように認識しているか
  43. Web Etcetera > 無料ホームページスペースの広告削除は真か偽か
  44. Winamp > StreamRipperで全自動リッピング
  45. Winamp > タスクマネージャを使って目覚まし時計
  46. Windows > robocopyでフォルダ間同期
  47. Windows > 手動でコーデックをインストールする
  48. gnuplotのプロットギャラリー
  49. rsyncでディレクトリの内容を同期する
  50. wgetのメモ
  51. ネットワーク上にメモ帳を置く
  52. ハードウェア > HDDの再利用
  53. ハードウェア > 安定で快適なマシンはハードから
  54. ブリコラージュ的メールマガジン一括登録解除方法
  55. 初めに
  56. 情報基礎演習UNIX
  57. 窓たちと正く付き合うにはショートカットキーから

コメント


pin

[PR]P̐搶WI:SŋJݐJ