大阪大学大学院情報科学研究科
大崎 博之 (oosaki[atmark]ist.osaka-u.ac.jp)
100 Tips for Your Successful Laboratory Life
$Id: index.pod,v 1.16 2008/12/05 13:47:58 oosaki Exp oosaki $
「充実した大学院生活のための 100 のヒント」では、大学生もしくは大学院 生のみなさんが、快適かつ有意義な研究生活を過ごすためのヒントを紹介しま した。ここでは、どの大学でも通用するような、一般的ヒントを紹介しました が、みなさんが所属するそれぞれの研究室では、その研究室固有のルールや規 則があると思います。
充実した大学院生活のための 100 のヒント http://www.ispl.jp/~oosaki/research/100-tips/
そこで、この文書では、今瀬研のみなさんが充実した論文作成および研究発表 をするための 100 のヒントを紹介します。これらの多くは、「私の研究グ ループのローカルルールであり、どの組織でも通用するような普遍的なものと は限らない」ので注意してください。
賢い質問のしかた http://www.ranvis.com/articles/smart-questions.ja.html
質問の仕方 http://archive.linux.or.jp/beginners/question.html
アプリケーションを (もしあれば) verbose モードや debug モードで動作さ せるなどして、できるだけ情報を集めましょう。
strace (システムコールのトレース) や ltrace (ライブラリコールのトレー ス) の結果も非常に有用です。これを見るだけで、かなり問題が解決します。
$ strace プログラム名 引数... $ ltrace プログラム名 引数...
なお、エラーメッセージを確認・記録するにはいろいろな方法があります (お すすめの順に紹介します)。
ターミナルアプリケーションの場合:
(1) Emacs の shell バッファを利用
Emacs のシェルバッファ (M-x shell) でアプリケーションを実行し、M-v (scroll-down) で逆スクロールさせて確認する。
問題が発生すると事前に分かっているなら、この方法がおすすめです。
(2) screen を利用
事前に screen を実行しておいて、なおかつ screen のスクロールバッファを 十分大きな値に設定 ($HOME/.screnrc で、defscrollback 100000 などと設定) しておき、C-a [ (copy) で逆スクロールさせて確認する。
問題が発生すると事前に分かっていない時は、この方法が便利です。
(3) tee コマンドを利用
アプリケーションの標準出力・標準エラー出力を tee コマンドで保存する。
$ プログラム名 引数... 2>&1 | tee foo.log
(4) script コマンドを利用
事前に script コマンドを実行しておいて、標準出力・標準エラー出力をファ イルに保存しておく。
$ script foo.log Script started, file is foo.log $ (エラーが発生するコマンドを実行) $ exit Script done, file is foo.log
エスケープシーケンスも含めて、全ての出力が保存されます。
(4) ターミナルのスクロール機能を利用
xterm や rxvt のスクロールバッファを十分大きな値に設定 ($HOME/.Xdefaults で、*VT100*saveLines: 100000 などと設定) しておき、 スクロールバーを使って逆スクロールさせて確認する。
ウィンドウアプリケーションの場合:
(1) ImageMagic を利用
ImageMagic の import コマンドを使用する。
$ import foo.gif (GIF 形式で保存する場合)
(2) xwd コマンドと netpbm を利用
X Window System に標準で含まれる xwd コマンドを使用する。netpbm と組み 合せて使うと便利。
$ xwd | xwdtopnm | ppmtogif >foo.gif (GIF 形式で保存する場合)
*-group[atmark]ispl.jp に送る
*-report[atmark]ispl.jp に送る
submit-request[atmark]ispl.jp に送る
*-repor[atmark]@ispl 宛) と校閲/添削依頼 (submit-request[atmark]ispl.jp 宛) は別のメールにする
% コメント -ログイン名 [YYYY/MM/DD] とする
例: % 図中の XXX を埋める -oosaki [2005/07/12]
Emacs でコメントをつけるには、~/.emacs に以下のコードを追加して、 C-c D (M-x insert-modification-notice) とします。
(global-set-key "\C-cD" 'insert-modification-notice)
(defun insert-modification-notice ()
"Insert today's date followed by your full name at the current point
as a comment."
(interactive)
(cond ((or (eq major-mode 'latex-mode)
(eq major-mode 'outline-mode))
(save-excursion
(insert (format "%% -%s [" (user-login-name))
(format-time-string "%Y/%m/%d")
"]\n"))
(forward-char 2))
(t
(insert (format "%s%s, %s by %s%s"
(comment-start-with-space)
(substring (current-time-string) 4 10)
(substring (current-time-string) -4)
(user-full-name)
(or comment-end "")))
(indent-according-to-mode))))
rsync.el を使って rsync できるように、以下のように正確なファイル/ディ
レクトリのパスを知らせてください。~ 以降にユーザ名を含める必要があ
ることに注意しましょう。
例: weisshorn:~oosaki/work/gridftp/doc/in05-2/submit/paper.pdf (ファイルの場合) 例: weisshorn:~oosaki/work/gridftp/doc/in05-2/ (ディレクトリの場合)
rsync.el http://www.ispl.jp/~oosaki/software/elisp/rsync.el
ファイルのパス上にポイント (Emacs のカーソル) を移動して、C-c R (M-x rsync) を実行すれば、Emacs から rsync が起動できます。
なお、Emacs 上で、上記のようなファイルのパスを入力するには、C-c C-P (M-x insert-rsync-path) を実行します。ミニバッファにパスを入力すれば (パス名の補完も可能です)、現在のポイントにファイルの正確なパスが入力さ れます。
[project] はプロジェクト名、[user] はログイン名、[yymmdd] は日付です。
http://www.ispl.jp/~oosaki/research/100-tips-lab/#11-2
例: gridftp-oosaki-040321.ppt
[name] は論文/国際会議/研究会の略称です。
http://www.ispl.jp/~oosaki/research/100-tips-lab/#11-2
例: gridnet05-oosaki-050821.ppt
例: gridftp-oosaki-experiment-1.ppt
例: in05-4-oosaki-glossary.org
[level] はアウトラインのレベル 0 〜 3 です。
例: in05-4-oosaki-outline-0.org
例: in05-4-oosaki-topic.org 例: bachelor-oosaki-topic.org 例: master-oosaki-topic.org
例: in05-4-oosaki-draft.org
論文全体通して整合性をチェックしたいので、一つのファイルとして作成して ください。
論文の中身だけに集中したいので、校閲する上で不要なコメントはすべて削除しておいてください
論文の中身だけに集中したいので、org ファイルのフォーマットを整えておい てください。バッファ全体を選択して、M-x indent-region と M-x fill-region とすればインデントと段落整形が自動でできます。
[user] はログイン名、[id] はタスク ID名、[summary] はタスクの説明 (英数字 + _ (下線) のみ使用のこと) です。
例: oosaki-task253-spx_comparison.xls
例: pb-091201-oosaki.ppt
revhistory.sty --- LaTeX style file for recording revision history http://www.ispl.jp/~oosaki/software/tex/revhistory.sty
修正したい箇所を、
\rev{修正前のテキスト}{修正後のテキスト}
とか
\rev[何のために修正したかのコメント]{修正前のテキスト}{修正後のテキスト}
のように修正します。
「変更前の文章」や「変更後の文章」に数式等が含まれている時は {} で囲む 必要があります。
例:
\rev{コネクション数 {$N$}}{フロー数 {$N$}}
単純な追加・削除の場合には、
\radd{追加したいテキスト}
\rdel{削除したいテキスト}
のようにすることもできます。revhistory.sty ファイル中のコメントにサン プルがあります。
すべての修正を反映させる (最終稿を投稿する場合など) には、
\importrevisions
を指定します。逆に、すべての修正を破棄する場合には、
\discardrevisions
を指定します。
論文のアウトライン作成のための 100 のヒント http://www.ispl.jp/~oosaki/research/tips-outline/
format-paragraph.el http://www.ispl.jp/~oosaki/software/elisp/format-paragraph.el
整形したいパラグラフにポイントを合わせて、ESC-p (M-x format-paragraph) で日本語のパラグラフが整形されます。半角文字と全角文字の間の空白が不要 な時 (翻訳の王様で処理する時など) は、C-u ESC-p (C-u M-x format-paragraph) とします。
例: Network Topology Used in Simulation
絵心に自信があり、イラスト的な図であれば Visio で作成してもよい。ただ し、Windows 上で EPS を作成した場合、ps2eps で正しい BoundingBox を付 ける必要がある。
xdoplot http://www.ispl.jp/~oosaki/software/xdoplot/
xdoplot から EPS で出力する時は、psfix-gnuplot フィルタを用いて、線の 色やポイントを修正しておく。
psfix-gnuplot http://www.ispl.jp/~oosaki/software/perl/psfix-gnuplot
xdoplot -te foo.res | psfix-gnuplot >foo.eps xdoplot -te foo.res | psfix-gnuplot -e >foo.eps (信頼区間が含まれる場合)
例: ingress PE router
例: \caption{Maximum TCP throughput for $N = 10$ and $B = 1.5$~[Mbit/s]}
例: Packet loss probability
\begin{tabular}{tbp}
parameter & value \\
\hline
$\alpha$ & 1.0 \\
$\beta$ & 0.5 \\
$\gamma$ & -1 \\
\end{tabular}
insertfig.sty --- LaTeX style file for including EPS figures http://www.ispl.jp/~oosaki/software/tex/insertfig.sty
例: \insertfig{model}{Analytic model}
\insertfig マクロを使う場合は、文中で \ref{} で始めて参照している段落 の直後に \insertfig マクロを書けばいい。
例: \begin{figure}[tbp]
weisshorn:~oosaki/work/template/doc/ieicej/
例: \label{sec:intro}
例: \label{fig:simulation-parameters}
例: \label{eq:max-throughput}
英語の場合:
% -*- LaTeX -*- % % % Copyright (c) 2010, 自分の名前. % All rights reserved. % % $Id: index.pod,v 1.16 2008/12/05 13:47:58 oosaki Exp oosaki $ %
日本語の場合:
% -*- japanese-LaTeX -*- % % % Copyright (c) 2010, 自分の名前. % All rights reserved. % % $Id: index.pod,v 1.16 2008/12/05 13:47:58 oosaki Exp oosaki $ %
マスターファイルの場合:
% Local Variables: % mode: latex % TeX-master: t % End:
マスターファイル以外の場合:
% Local Variables: % mode: latex % TeX-master: "paper" % End:
weisshorn:~oosaki/bib へのシンボリックリンクを張るか、BIBINPUTS に ~oosaki/bib を追加しましょう。
weisshorn:~oosaki/bib の bib ファイルを修正したい時は、差分ファイル (diff -u の出力) を送ってください。
tetex-base と tetex-extra パッケージに必要なほとんどのスタイルファイル が含まれています。
weisshorn:~oosaki/inputs へのシンボリックリンクを張るか、TEXINPUTS に ~oosaki/inputs を追加しましょう。
[Lastname] は著者のラストネーム (先頭を大文字にする)、[YY] は出版 年の下二桁、[TitleWord] はタイトルから特徴的な単語を 1 〜 3 個程度抜き 出したもの (先頭を大文字にして連結させたもの) です。
例えば、
J. Padhye and S. Floyd, ``On inferring TCP behavior,'' ACM SIGCOMM Computer Communication Review, vol. 31, no. 4, pp. 287-298, August 2001.
なら、
@Article{Padhye01:Inferring,
に、
S. Kalyanaraman et al., ``Performance of TCP over ABR on ATM backbone and with various VBR traffic patterns,'' in Proceedings of IEEE ICC '97, June 1997.
なら、
@InProceedings{Kalyanaraman97:Performance,
のようにします。
なお、Emacs の bibtex-mode では、以下のように設定しておくと便利です (エントリ名を (ほぼ) 自動的に生成してくれます)。
(setq bibtex-autokey-name-case-convert 'capitalize)
(setq bibtex-autokey-titleword-case-convert 'capitalize)
(setq bibtex-autokey-titleword-separator "")
(setq bibtex-autokey-titleword-length 'infinity)
(setq bibtex-autokey-titlewords 1)
(setq bibtex-autokey-year-title-separator ":")
(setq bibtex-autokey-titleword-ignore
'("A" "An" "On" "The" "a" "an" "on" "the"))
数式、図、表は、PowerPoint なら、論文の PDF を拡大表示して、「グラフィッ ク選択ツール」でビットマップとしてコピーしましょう。図なら、tgif や gnuplot でカラーの eps ファイルを生成し、これを eps2wmf で wmf ファイ ルに変換してもいいでしょう。
Converting from PostScript to EWM (Enhanced Windows Metafile) using pstoedit (2004/12/06) http://www.ispl.jp/~oosaki/research/linux-tips/eps2wmf
Template File for Presentation Slides http://www.ispl.jp/~oosaki/research/template-slides/
Office 2000 の場合、「ツール」→「オプション」→「編集」→「テキストを プレースフォルダに自動的に収める」のチェックを外しておきます。
Office XP の場合、「ツール」→「オートコレクト」→「テキストをプレース フォルダに自動的に収める」のチェックを外しておきます。
例: Background: Conventional Techniques for Network Analysis
例: Scalable to large-scale networks
テキストボックスの大きさが自動的に調整されるように、「書式」→「テキス トボックス」→「描画オブジェクト内でテキストを折り返す」のチェックを外 し、「テキストに合わせて描画オブジェクトのサイズを調整する」をチェック しておきましょう。
「挿入」→「図」→「オートシェイプ」→「吹き出し」→「四角形吹き出し」 を選択すれば挿入できます。テキストを編集するには、右クリックのメニュー から「テキストの編集」を選択します。
オートシェイプの大きさが自動的に調整されるように、「書式」→「オートシェ イプ」→「描画オブジェクト内でテキストを折り返す」のチェックを外し、 「テキストに合わせて描画オブジェクトのサイズを調整する」をチェックして おきましょう。
印刷のフォーマットは、白黒 (グレースケールではない)、A4、6 ページ/枚、 両面、左上綴じにしましょう。PowerPoint の印刷ダイアログでは、「配布資 料」、「単純白黒印刷」を選択して印刷します。
PDF のフォーマットは、カラー、A4、6 ページ/枚にしましょう。PowerPoint の印刷ダイアログでは、「配布資料」を選択して、Acrobat Distiller へ印刷 します。場所の連絡方法については #4-7 を参照してください。
weisshorn の bib ファイルを以下の場所に作成し、随時更新してください。
weisshorn:/share/bib/~[user].bib
ファイルの漢字コード、改行はコード、パーミッション等にも注意してくださ い。
http://www.ispl.jp/~oosaki/research/100-tips-lab/#4
対象は、卒論、修論、研究会、国際会議、論文、著書、標準化団体寄書などで、 今瀬研の教員・学生が著者に入っているものです。投稿中や発表予定のものも 含めてください。
論文の投稿後、口頭発表後、採録通知受理後など、論文の状態が変化した後に 更新してください。
bib ファイルの書き方については、以下のページを参照してください。
http://www.ispl.jp/~oosaki/research/100-tips/#5-5
投稿中の論文や国際会議の journal/year/month は、以下のようにします。国 際会議でも、@InProceedings ではなく @Article を使うこと、year と month は投稿した年月にすることに注意してください。
journal = {{\rm submitted to} 英語論文誌名},
year = 投稿した年,
month = 投稿した月,
journal = {日本語論文誌名 (投稿中)},
year = 投稿した年,
month = 投稿した月,
journal = {日本語論文誌名 (条件付採録)},
year = 再投稿した年,
month = 再投稿した月,
journal = {{\rm submitted to} 英語国際会議名},
year = 投稿した年,
month = 投稿した月,
採択が決定された論文は、以下のようにします。
journal = {{\rm to appear in} 英語論文誌名},
year = 掲載予定年,
month = 掲載予定月,
journal = {日本語論文誌名 (掲載予定)},
year = 掲載予定年,
month = 掲載予定月,
発表が決定している国際会議や研究会は、以下のようにします。国際会議でも、 @InProceedings ではなく @Article を使うことに注意してください。
journal = {{\rm to be presented at} 英語国際会議名},
year = 発表予定年,
month = 発表予定月,
journal = {日本語研究会名 (発表予定)},
year = 発表予定年,
month = 発表予定月,
weisshorn の bib ファイルは複数の人が修正するので、上書きしないように 注意してください。修正後は、bibcheck で間違いがないかをチェックしましょ う。
他の人が原稿ファイルを活用できるように、weisshorn の各自のホームディレ クトリに、以下のようなディレクトリ構成でファイルを置いてください。
weisshorn:~[user]/work/[project]/doc/[name]/
|
+--- RCS RCS のバージョン履歴
|
+--- bib この論文固有の bib ファイルを置く
|
+--- camera-ready camera-ready のファイル一式
|
+--- RCS RCS のバージョン履歴
|
+--- bib ../bin へのシンボリックリンク
|
+--- figure ../figure へのシンボリックリンク
|
+--- misc camera-ready 作成時のメモなど
|
+--- submit camera-ready の PDF/PostScript ファイル、PPT ファイル
|
+--- figure 論文で使用する図の obj/def/res/eps ファイル
|
+--- misc 用語集、アウトライン、査読結果など
|
+--- submit 最終版の PDF/PostScript ファイル、PPT ファイル
[user] はログイン名、[project] はプロジェクト名です。
[name] は論文/国際会議/研究会の略称です。
論文の場合は、論文の略称で ton/ijcs/ieicej のようにします。
国際会議の場合は、「国際会議の略称 + 2桁の年」で、 infocom04/networking98/gridnets00 のようにします。
研究会の場合は、「研究会の略称 + 2桁の年 + 月」で、 in05-1/in04-12/ns98-3 のようにします。
修論の場合は、「ログイン名-master」で、 t-itou-master のようにします。
修論の場合は、「ログイン名-bachelor」で、 y-sakumt-bachelor のようにします。
アルファベットはすべて小文字にしてください。
不要なファイルは置かないようにしてください。LaTeX や BibTeX の中間ファ イルもすべて削除しておきましょう。残しておきたいファイルがあれば、misc 以下に置いてください。
figure 以下には、EPS ファイルのソース (obj/def/res ファイルなど) も置 いてください。
submit 以下には、最終版の PDF/PostScript ファイル、PPT ファイルを、 paper.pdf、paper.ps.gz (gzip で圧縮したもの)、slide.ppt というファイル 名で置いてください。
国際会議の場合には、PPT ファイルは camera-ready/submit に置いてください。
他の人が活用できるように、以下の点にも注意してください。
http://www.ispl.jp/~oosaki/research/100-tips-lab/#4-8
http://www.ispl.jp/~oosaki/research/100-tips-lab/#4-9
http://www.ispl.jp/~oosaki/research/100-tips-lab/#4-13
http://www.ispl.jp/~oosaki/research/100-tips-lab/#4-15
http://www.ispl.jp/~oosaki/research/100-tips-lab/#4-17
http://www.ispl.jp/~oosaki/research/100-tips-lab/#4-18
http://www.ispl.jp/~oosaki/research/100-tips-lab/#4-19
最後に、以下のテストスクリプトを実行して、ファイルが正しく整理されてい るか確認してください。
http://www.ispl.jp/~oosaki/software/perl/chkarchive
学生として、企業との共同研究に参加する場合は、最低限のビジネスマナーを 身につけておき、一人の社会人として、共同研究先に失礼のないように行動し ましょう。
通常、大学と企業の共同研究の場合は、大学と企業が共同研究契約を締結して、 それに沿った形で共同研究を実施しています。学生がアルバイトとして企業に 雇用されているのでもなく、学生がインターンシップとして企業に雇用されて いるのでもありません。あくまで、大学と企業との契約に基いています。
そのため、みなさんが「学生」の立場で共同研究に参加しているとしても、そ こは「大学」と「企業」のロジックで動いている世界です。大学の講義や演習 のように、「大学」と「学生」のロジックで動いている世界ではありません。
一人の社会人として、最低限のビジネスマナーは身につけておきましょう。あ いさつをする、何かしてもらったらお礼を伝える、外部の人・目上の人に敬意 を払う、発言や行動には責任を持つ……など、当たり前のことばかりですが、 すべて実践できるようになりましょう。
共同研究は、通常、「大学」と「企業」の間で締結された共同研究契約に基い て実施されています。
学生の立場で、共同研究のミーティングに参加する場合は、普段行っているよ うな学内のミーティングやゼミと同じようなものと錯覚してしまうかもしれま せん。しかし、共同研究のミーティングは、そのような学内のミーティングや ゼミとはまったく種類が違います。
特に、秘密保持契約 (NDA; Non-Disclosure Agreement) には十分注意しましょ う。
通常の共同研究では、「大学」と「企業」の間で秘密保持契約を締結していま す (正確には、秘密保持に関する条項が共同研究契約に含まれています)。こ のため、共同研究によって知り得た情報を、共同研究先の許可を得ることなく、 外部に公開してはいけません (契約違反となり、法的な責任を問われることに なります)。友達だから、家族だから、知り合いだから……といった気軽な感 覚で、第三者に情報を伝えてはいけません。
同じように、共同研究のミーティングで配布された資料の取り扱いにも注意が 必要です。ミーティングで配布された資料を、第三者に見せることは秘密保持 契約違反となります。故意であるか、過失であるかは関係ありません。うっか りしていて、「共同研究の資料が添付されたメールを他の人に転送してしまっ た」場合でも、「共同研究の資料が格納された USB メモリを紛失してしまっ た」場合でも、秘密保持契約違反となります。大学の講義や演習で配布される 資料とはまったく扱いが異なりますので、この点には特に注意しましょう。