2009年12月22日火曜日
2009年12月12日土曜日
linbinbin shared a new Qik video
Hi there - check this Qik video out - linbinbin |
2009年12月11日金曜日
linbinbin shared a new Qik video
Hi there - check this Qik video out - linbinbin |
2009年11月23日月曜日
linbinbin shared a new Qik video
Hi there - check this Qik video out - linbinbin |
linbinbin shared a new Qik video
Hi there - check this Qik video out - linbinbin |
2009年11月15日日曜日
linbinbin shared a new Qik video
Hi there - check this Qik video out - linbinbin |
2009年11月1日日曜日
linbinbin shared a new Qik video
Hi there - check this Qik video out - linbinbin |
2009年10月17日土曜日
linbinbin shared a new Qik video
Hi there - check this Qik video out - linbinbin |
linbinbin shared a new Qik video
Hi there - check this Qik video out 朝 疲れる - linbinbin |
2009年10月12日月曜日
--
+----------------------------------+
| Lin ShuBin |
| 藺 蜀斌 |
| |
| |
+-----------------------------------+
2009年9月17日木曜日
gcc=?ISO-2022-JP?B?GyRCOEA4bDNIRCUbKEI=?=
#include <unistd.h>
#include <limits.h>
#define HW1 "Hello, world!\n"
#define HW2 "Hello, world!\nHello, world!\n"
#define PRINTIT(args...) printf(args)
inline long
getnum(int argc, char *argv[]) __attribute__((always_inline));
int
main(int argc, char *argv[])
{
__label__ retok, retfailed;
int num = getnum(argc, argv);
char buf[strlen(HW1)*num + 1];
typeof(&buf[0]) formstr(char *buf, int n) {
buf[0] = '\0';
char *hw;
switch (n & 1) {
case 1 ... 1:
hw = HW1;
break;
case 0 ... 0:
n >>= 1;
hw = HW2;
break;
}
while (n-- > 0)
strcat(buf, hw);
return buf;
}
void *addr = &&retok;
char *cp = formstr(buf, num) ? : ({addr = &&retfailed; "Failed\n";});
PRINTIT(cp);
goto *addr;
retfailed:
return -1;
retok:
return 0;
}
long
getnum(int argc, char *argv[])
{
return ({long ret = 1;
if (argc > 1) {
ret = strtol(argv[1], (char**)NULL, 10);
if (ret < 0 || ret == LONG_MAX || ret == LONG_MIN)
ret = 0;
}
ret;});
}
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/index.html
2009年9月1日火曜日
2009年8月31日月曜日
chroot=?ISO-2022-JP?B?GyRCJEskRCQkJEYbKEI=?=
セス群に対してルートディレクトリを変更する操作である。ルートディレクトリを別
のディレクトリに変更されたプロセスは、その範囲外のファイルにはアクセスできな
くなるため、この操作をchroot監獄などとも呼ぶ。"chroot" は chroot(2) システム
コールおよび chroot(8) コマンドを意味する。
2009年8月30日日曜日
2009年8月25日火曜日
关 于C语言的函数指针
(*(void(*)()0)();
由来:
函数指针的定义:void(*pFunction)(); 指针函数的原型为:
void(*)()
整数不能作为函数使用,将【0】强制转换为函数指&
#38024;的类型: (void(*)()0)();
关联,聚合(Aggregation),组合(composition)的区别。
关系强度的�强:关联---聚合---组合
关联:一般关系,如【师生关系】
聚合:has-a
组合:contains-a 生命周期相同
2009年8月12日水曜日
Facebookが恋愛関係に悪影響? カナダの学生の研究が話題に
http://www.itmedia.co.jp/news/articles/0908/12/news038.html
2009年7月16日木曜日
2009年6月20日土曜日
2009年5月31日日曜日
2009年5月30日土曜日
2009年5月29日金曜日
2009年5月28日木曜日
2009年5月26日火曜日
今日の日本語
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1218250217
・ルビコン川を渡る:以後の運命を決め後戻りのできないような重大な決断と行動を
することの例えとして使われる。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1012353825
・助太刀(たすけたち)
2009年5月24日日曜日
2009年2月28日土曜日
2009年2月27日金曜日
2009年2月21日土曜日
2009年2月17日火曜日
python-gui
#!/usr/bin/python
import sys
from Tkinter import *
def die(event):
sys.exit(0)
root = Tk()
button = Button(root)
button["text"] = "Ave atque vale !"
button.bind("<Button-1>", die)
button.pack()
root.mainloop()
python-plot
import popen2
import sys
p=popen2.Popen3("gnuplot");
print p.pid;
p.tochild.write("plot sin(x)\n");
if p.poll()==-1:
i = 0;
p.tochild.flush();
print "plot over!\n";
p.wait();
else:
print "not over!\n"
exit(0);
python-csv
import sys
import os
csvfilemap = {}
def collect(csvfile, csvname, linerc):
src = {}
errno = {}
if csvfile.has_key(csvname):
src = csvfile.get(csvname)
if src.has_key(linerc[0]):
errno = src.get(linerc[0])
if errno.has_key(linerc[1]):
num = errno.get(linerc[1])
errno.update({linerc[1]:num+1})
else:
errno.update({linerc[1]:1})
else:
src.update({linerc[0]:errno})
errno.update({linerc[1]:1})
else:
csvfile.update({csvname:src})
src.update({linerc[0]:errno})
errno.update({linerc[1]:1})
def readline(infilename):
i = 0;
linerc = ['',0]
for line in open(infilename, 'r'):
if i > 1:
line = line.rstrip()
tokitem = line.split(',')
linerc[0] = tokitem[0].split('/')[-1]
linerc[1] = tokitem[4]
collect(csvfilemap, infilename, linerc)
else:
i = i+1
print "end readline of",infilename
paramlen = len(sys.argv)
if paramlen == 1:
print "Please input the file name to Analyse"
sys.exit()
else:
print "Analyse the",sys.argv[1:]
for filename in sys.argv[1:]:
if os.path.isfile(filename):
print "read file",filename
readline(filename)
else:
print "not file",filename
for csvk, csvfile in csvfilemap.items():
print "csv file is :",csvk
for srck, src in csvfile.items():
print "source file is:",srck
for errk, err in sorted(src.items()):
print "error is :",errk, " Count is :",err
print "bye"
File Severity Grp Nbr Des
cription レビュー日 担当者 対策予定 対策日
cmd_common.c ++ WARNING ++ <=6= 272 [I] 整数式の値は、符号付きの結果の型
で表現できないことがあります。 参照 - ISO-6.2.1.2 (符号付き整数への)変換
cmd/cmd_common.c ++ WARNING ++ <=6= 274 [I] 整数定数式の結果は符号付きで
は表現できません。 参照 - ISO-6.2.1.2 (符号付き整数への)変換
emacsコマンド2
C-x r m Bookmark作成
C-x r l Bookmark一覧
C-x r b Bookmarkへのjump
M-x bookmark-delete Bookmark削除
emacsコマンド1
操作 機能
Ctrl-x Ctrl-s ファイルに保存
Ctrl-x Ctrl-w ファイル名を指定して保存
Ctrl-x Ctrl-f ファイルの読み込み
Ctrl-x Ctrl-c 終了
Ctrl-g 中止(あらゆるコマンドを中断)
Ctrl-f カーソル移動 : 右
Ctrl-b カーソル移動 : 左
Ctrl-p カーソル移動 : 上
Ctrl-n カーソル移動 : 下
Ctrl-a カーソル移動 : 行左端
Ctrl-e カーソル移動 : 行右端
Ctrl-v カーソル移動 : 次のページ
ESC-v カーソル移動 : 前のページ
ESC-> カーソル移動 : ファイルの末尾
ESC-< カーソル移動 : ファイルの先頭
Ctrl-d 編集 : カーソル位置の1文字削除
DEL 編集 : カーソル前の1文字削除
Ctrl-k 編集 : カーソル位置から行末までを削除
Ctrl-@ 編集 : 範囲指定開始
ESC-w 編集 : 範囲記憶
Ctrl-y 編集 : ペースト
Ctrl-_ 編集 : Undo
Ctrl-s 検索/置換 : 前方にインクリメンタル検索
Ctrl-r 検索/置換 : 後方にインクリメンタル検索
ESC-% 検索/置換 : 前方に問い合わせ置換
Ctrl-x 2 ウィンドウ : 上下に分割
Ctrl-x 1 ウィンドウ : ウィンドウを1つに戻す
Ctrl-x o ウィンドウ : 別のウィンドウに移動
ESC-m 現在行の空白でない最初の文字に移動
Ctrl-@で範囲指定開始、ESC-Ctrl-\ 指定範囲全てで TAB を実行
Ctrl-@で範囲指定開始、Ctrl-w 指定範囲を削除(して、かつコピー)
Ctrl-@で範囲指定開始、Ctrl-x n n 指定範囲のみに編集範囲を限定
Ctrl-x n w 限定した編集範囲を解除
Ctrl-x b 新しいバッファを作成
Ctrl-x i カーソル位置に別のファイルを挿入
Ctrl-y ESC-y ペースト(リングバッファ)
Ctrl-x ( キーボードマクロ定義 : 開始
Ctrl-x ) キーボードマクロ定義 : 終了
Ctrl-x e キーボードマクロ定義 : 実行
ESC 回数 Ctrl-x e キーボードマクロ定義 : n回実行
ESC-x replace-string RET 無条件全置換
ESC-x write-region RET 指定した範囲のみファイルに保存
ESC-x goto-line RET 指定した行に移動
Ctrl-x r k 矩形領域を削除(して、かつコピー)
Ctrl-x r d 矩形領域を削除
Ctrl-x r y 最後にコピーした矩形領域をペースト
Ctrl-x r o 空白で埋めた矩形領域をペースト(挿入)
ESC-x clear-rectangle 矩形領域を空白で置き換える
M-x picture-modeとするだけで,利用できます.基本的な操作は普通のテキストと同
じです.
C-j で行の複製ができるので,罫線を引きやすくなっています.
また,文字を消しても,代わりにスペースが挿入されますので,図がずれないように
なってます.
また,カーソル移動が普通とは違っています.デフォルトでは文字を入力すると,
どんどん右へ追加されていきます (普通のテキストと同じ) .
C-c \ で右下, C-c / で左下,
C-c ' で右上,C-c ` で左上,
C-c . で下,C-c ^ で上,
C-c > で右,C-c < で左へ
これらは,文字を入力すると,この方向へ移動するようになります.
単にこの方向へカーソル移動したい時には,C-c C-f を使います.C-c C-b で逆方向
へ移動できます.
編集が終わったら,C-c C-c で終了します.そうすると,余計なスペースを削除して
前のモードに戻ります.
他の機能は,
* C-c C-dでの文字削除.普通の削除ですので,図がずれます.
* リージョン選択後にC-c C-rで罫線を作成
* リージョン選択後にC-c C-kで矩形領域 (リージョンの始点と終点を頂点とす
る長方形領域) をカット
* C-c C-yでC-c C-kでカットしたものを貼り付け
* リージョン選択後にC-c C-kで矩形領域 (リージョンの始点と終点を頂点とす
る長方形領域) をカット
* リージョン選択後にC-c C-wで矩形領域をカットしてレジスタへ保存
* C-c C-xでレジスタから貼り付け.
M-x show-paren-mod 括弧などペアで表示
C-M f 次ぎの括弧へ移動、C-M b 前の括弧へ戻る
M-x cscope-index-files インデックスファイル作成
C-s-s 定義シンボルをサーチ
C-s-g グロバルの定義を探す
テーブル追加
M-x table-insert
テーブル編集モードを解除するために
M-x table-unrecognize-table
再度テーブル編集モードに入る時はテーブルの位置にカーソルをもっていって、
M-x table-recognize-table
C-> (table-widen-cell)
カーソル位置のセルを横拡張
C-< (table-shorten-cell)
カーソル位置のセルを横収縮
C-: (table-justify)
セル中の文字列の位置を操作(Left/Center/Right)
縦方向・桁方向の両方が可能
table-split-cell
セルの分割
C-- (table-split-cell-vertically)
セルの横分割
C-| (table-split-cell-horizontally)
セルの縦分割
C-* (table-span-cell)
セルの結合
C言語のマクロ
例:
#define isalpha(s) if((s) > 'a' && (s) < 'Z')
isalpha(*s++);
結果は?
2、C言語アスキー文字コード判別ライブラリの実装例
インデックス 0 0x32 0x7b
_ctype+1[]
+---+-------+----+-------+----+---+---+---+
|0--|-------|0x01|.......|0x02|...|...|...|
+---+-------+----+-------+----+---+---+---+
文字コード EOF 'A' ↑ 'z'
|
|
各ビットの定義
8 7 6 5 4 3 2 1 0
+-----+-----+-----+-----+-----+-----+-----+-----+
|-----|-----|-----|-----|-----|0-9 |a-z |A-Z |
+-----+-----+-----+-----+-----+-----+-----+-----+
3、文字列処理の落とし穴
例:
#define debug(s) sprintf("message is %s", s)
debug(message[0]);
結果は:sprintf("message is %message[0]", message[0]);
4、文字列処理記号”#”と”##”
# は、引数を文字列に変換する。
#define string(x) #x
string(Hello World)
"Hello World"
## は二つの識別子を連結させる。
#define comb(x, y) x ## y
comb(hello, world)
helloworld