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

screen のウィンドウ操作を Emacs ライクに

prefix キーを例えば C-z に割り当てているとすると、 C-z C-x 2 でウィンドウを上下に分割する。 C-z C-x o で他のウィンドウに移動できるけど、やってみると以外と面倒。他のウィンドウへの移動は C-z o でもできるようにしておく。.screenrc bind ^x comm…

Doxygen 向け C/C++ ファイルのコメントテンプレート

C C++

Doxygen 高機能なんだけど、高機能すぎてどうやって Doxygen 用のコメントを書けばいいのかよくわからん。コメントとルール作りも兼ねてテンプレートを作っておこう。Doxygen のいいところはソースコードが可視化されることもあるけど、コメントを付けてない…

screen の backtick をいつか使う

screen には backtick というのがあって、プログラムの出力を caption か hardstusに表示できる。screen の設定で backtick 0 0 0 プログラム プラグラム引数とすると %0` の値がプログラムの最後の出力になる。例えば、 hardstatus alwayslastline "%{=b}%0…

emacs での perldoc 環境整備

以下を参考に perl ドキュメント環境を強化 unwind-protect:emacs の中から perldoc -m perl開発に便利なemacs設定 - hakutoitoi’s blog EmacsでPerl開発する上で必須な設定 #3 - perldoc-m - Kentaro Kuribayashi's blog Perlマニュアルの歩き方 - モダンな…

スクリプト/ソースファイルをシェルバッファで手軽に実行したい

C で小さなプログラムを書いてよく実行するんだけど、シェルバッファを開いて gcc -g ファイル名 -o a.out && ./a.out と毎回タイプするのがめんどくさい。M-!とかM-x compile でもいいけど、やはり広いシェルバッファがいい。小さなソースファイル書いたあ…

Android携帯のGPLライセンス

Android携帯のドライバ部分はGPLライセンスだから、請求すればドライバソースを公開せざるをえない?ドライバを動的リンク(つまりinsmod)する形にすれば公開する必要はないとかいう話も聞くけど、組み込みLinuxのライセンス | EE Times Japanを見ると さらに…

C++とUMLのクラス図

増補改訂版Java言語で学ぶデザインパターン入門のUMLのクラス図で 継承 集約 インターフェース 関連 Uses Creates Notifies ぐらいしか使っていないんだけど、自分の場合はほとんどのクラス図でこれで十分なような気がしてきた。 継承 車は、乗り物(Vehicle)…

かっこなし会場

本当にLispはカッコが多い? - 八発白中かっこは 0 個。ファイル自身を呼び出しているのでかなり遅い。言語のベンチマークとしてはおもしろい。 #!/usr/bin/perl use strict; use warnings; my $end = shift; my $current = shift || 1; my $factorial = shi…

ウィンドウの先頭、中央、最後に移動

今表示しているウィンドウの先頭、中央、最後に移動したい。 ;; --------------------------------------------------------- ;; ウィンドウの先頭(M-p)、中央(M-r)、最後(M-n)に移動 ;; M-r はデフォルトで定義 ;; ---------------------------------------…

screen のコピーモードで Emacsライクなキーバインド

.screenrc # C-b 左, C-f 右, C-a 行頭, C-e 行末 # C-p 下, C-n 上, C-v 1ページ進む, M-v 1ページ戻る # M-< バッファの先頭に移動, M-> バッファの最後に移動 markkeys h=^b:l=^f:0=^a:j=^n:k=^p:$=^e:^d=^v bindkey -m ^[v stuff P bindkey -m ^[< stuff…

プロセスの終了状態を得る

C と同じだった。 #!/usr/bin/perl use strict; use warnings; use POSIX; # http://www.linux.or.jp/JM/html/LDP_man-pages/man2/wait.2.html print '--- exit(5)', $/; check_exit_macro( sub { exit 5 } ); # 子プロセスが自分自身にシグナル INT print $…

nkf の出力オプションを自動で判別したい

日本語を含むファイルやコマンド結果をターミナルで出力するとき、nkf の出力オプション -s, -w, -e を環境に応じて考えるのがめんどくさい。alias ででっちあげて、シェルの起動スクリプトへ。 case "$LANG" in *SJIS | *sjis | *PCK | *pck) alias c='nkf …

Mark から開始したときは、オリジナルの forward-word を使用、それ以外は単語の先頭に移動する

http://d.hatena.ne.jp/kitokitoki/20091128/p2 で、M-f が単語の先頭に移動できて快適だったけど、問題が。単語をコピーしようとすると、単語の先頭に移動するものだから、コピーした尻にスペースが入る。 Mark (C-space) から開始したときは、通常のforwar…

Convert::Binary::C で 詰まった C 共用体をバイナリ変換 (うまくいかない)

C の共用体のサイズは、サイズの大きいメンバが基準になってしまう。ネットワークで C の共用体のような使い方をしたいときがあるけど、データが詰まった状態になって欲しい。つまり、 struct packet_t { struct ip_hdr_t ip_hdr; union { struct tcp_hdr_t …

Convert::Binary::C で C 構造体をバイナリ変換 (可変長配列)

C の可変長配列をバイナリ変換する。tag で dimension (配列長)を指定する。 ヘッダファイル variable_array.h typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; #pragma pack(1)…

Convert::Binary::C で C 構造体をバイナリ変換 (固定長配列)

C の固定長配列をバイナリ変換する。 ヘッダファイル fixed_array.h #ifndef _FIXED_ARRAY_H_ #define _FIXED_ARRAY_H_ typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; #pragma…

Convert::Binary::C で C 構造体をバイナリ変換 (共用体)

C 共用体をバイナリ変換する。 ヘッダファイル union.h #ifndef _UNION_H_ #define _UNION_H_ typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; #pragma pack(1) struct top_t { …

Convert::Binary::C で C 構造体をバイナリ変換 (入れ子になった構造体)

入れ子になった C 構造体をバイナリ変換する。 ヘッダファイル sub_struct.h #ifndef SUB_STRUCT_H #define SUB_STRUCT_H typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; #prag…

Convert::Binary::C で C 構造体をバイナリ変換 (基本)

C の構造体の書き方で、バイナリ変換したい。組込み関数の pack と unpack でもできるけど直感的でない。 Convert::Binary::C を使うと C の構造体にハッシュをつっこんでバイナリ変換できる。 ヘッダファイル 以下のようなヘッダファイルにある構造体を使う…

emacs -nw で X とクリップボード共有

emacs -nw で起動したとき、X と クリップボードを共有したい。ネタもと Paste number 52379: Use X clipboard in -nw mode Automatic copy from X11.app to MacOS Clipboard Sharing the Mac Clipboard with Emacs http://d.hatena.ne.jp/pakepion/20081209…

UMLGraph で シーケンス図

UMLGraph でシーケンス図 を書く。UMLGraphは、sequence.pic というファイルでマクロを定義しているので、それをインクルードして、マクロを利用する。 図 UMLGraph でシーケンス図actor とか object とかがマクロで定義されている。 .PS copy "sequence.pic…

GNU PIC で パッケージ図

GNU PIC でパッケージ図 を書く。 図 GNU PIC でパッケージ図 .ps 14 # font size .PS scale = 2.54; # inch -> cm define package {[ box ht 0.2 wid $3 / 3; box $1 ht $2 wid $3 with .nw at last box.sw; ]} Package1: package("Control", 1, 3); move t…

GNU PIC で 配置図

GNU PIC で配置図 を書く。 図 GNU PIC で配置図 .ps 14 # font size .PS scale = 2.54; # inch -> cm define deployment {[ box $1 width $2; line from last box.nw to last box.nw + (0.15, 0.15); line from last box.ne to last box.ne + (0.15, 0.15);…

GNU PIC で ステートチャート図

GNU PIC でステートチャート図 を書く。 図 GNU PIC でステートチャート図 .ps 14 # font size .PS scale = 2.54; # inch -> cm arrowwid=0.5; arrowhead=0; define folk {[ line right thick 2; move to last line.start; line left thick 2; ]} define joi…

GNU PIC で ユースケース図

GNU PIC でユースケース図 を書く。 図 GNU PIC でユースケース図 .ps 14 # font size .PS scale = 2.54; # inch -> cm define frame { top_mergin = $2; bottom_mergin = $3; left_mergin = $4; right_mergin = $5; line from $1.nw + (-left_mergin, top_m…

GNU PIC で アクティビティ図

GNU PIC でアクティビティ図 を書く。 図 GNU PIC でアクティビティ図 .ps 14 # font size .PS scale = 2.54; # inch -> cm arrowwid=0.5; arrowhead=0; define branch {[ box $1 ht $2 wid $3 invisible; line from last box.n to last box.e; line from la…

GNU PIC で オブジェクト図

GNU PIC でオブジェクト図 を書く。 図 GNU PIC でオブジェクト図 .ps 14 # font size .PS scale = 2.54; # inch -> cm lineht=3; linewid=3; define object {[ box "<<object>>" $1 ht $2 wid $3; box $4 ht $5 wid last box.wid with .ne at last box.se; ]} Objec</object>…

GNU PIC で クラス図

GNU PIC でクラス図 を書く。 図 GNU PIC でクラス図 .ps 14 # font size .PS scale = 2.54; # inch -> cm lineht=3; linewid=3; define class {[ box $1 ht $2 wid $3; box $4 ht $5 wid last box.wid with .ne at last box.se; box $6 ht $7 wid last box.…

GNU PIC で凡例付き DFD

GNU PIC で凡例付き DFD を書く。 図 GNU PIC で凡例付き DFD .ps 14 # font size .PS scale = 2.54; # inch -> cm arrowwid=0.25; define storage {[ box $1 wid $2 invisible; line from last box.nw to last box.ne; line from last box.sw to last box.s…

GNU PIC で DFD

GNU PIC で DFD を書く。 図 GNU PIC で DFDpic のソースは以下のとおり。 DFD.pic .ps 14 # font size .PS scale = 2.54; # inch -> cm arrowwid=0.25; define storage {[ box $1 wid $2 invisible; line from last box.nw to last box.ne; line from last …