ぜんぶなんとかなる

ふしみの雑文

情報を収集しよう

情報を収集しよう

新しい情報を収集しよう。 みんなで知っている情報に価値はない。 みんなが知ることになるはずの情報 (ex. iPhone7の機能, iPhone8の値段 ...) を 少し先に手に入れても、 すぐにその価値はゼロになる。

知る限り賢い人はなんらかの、 自分だけの情報収集の手段を持っている。 自分で情報を収集しよう。 できるだけ生に近い情報を、能動的に。そしてそれを記録し見返そう。

(この文章は主にソフトウェアエンジニアおよびプログラミングに関心のある研究者向けに書かれている。)


情報収集のコツ

能動的に行おう

情報収集の手段は、自分でコントロールできるほうがよい。

例えばFacebookは情報収集の手段としてふさわしくない。 FacebookのクエリはFacebookにより操作され、コントロールされており、 そこで使う時間は自分でコントロールすることができない(あなたのものではない)。 Twitterはまだマシであるが、Twitterのフィードは情報収集のために作られていない。 だから「仲の良い人とコミュニケーションを取る」という目的と、 「インターネットから有用な情報を得る」という目的は同時には満たせない。

SNSはコミュニケーションのためのツールと割り切ろう。 情報収集の手段としては、テレビを見るのと同じような時間の使い方と考えてよい。 ただし、ふだんは摂取しようと意図しない情報を得るという意味はある。その意味でテレビを見ることとと同じくらい重要で役に立つ時間の使い方である。

1次情報源や専門的な情報源にあたろう

1次情報に当たろう。 翻訳や翻案していない生の情報を咀嚼する力を身につけよう。

信頼している人以外の解釈や翻案が入っている情報は、 基本的に誤っているとみなした方がよい。 研究者であれば論文やレビューを、エンジニアであれば コードやドキュメント、仕様書、エンジニアの書いたブログを読もう。

他者により選別された情報を読むのは快適な体験だし、 みんなが知っている情報にキャッチアップするのには良いかもしれないが、 自分の専門分野に関しては、「みんなが知っていることを知っている」というのは意味がない。

ニュースサイト(例えばGizmodo)やはてなブックマーク/Qiita、 SNSからのみ情報を得るのはできる限り避けたほうがよい。 このような2次(もしくはn次)情報源は、個人性の高いもの、 ごく狭いのテーマを持った専門性の高いものを除き、 「素晴らしい (n-1) 次情報源を探す」ためにのみ利用するのがよい。

もしたまたま、SNSやジェネラルな高次情報源からよいと思う記事や情報を見つけたら、 オリジナルの情報源 (発信元のブログWebサイト) や、 それを初めて紹介した情報源 (より専門性の高いメディア) を探し、 それをフォローしよう。

1/100に圧縮され情報が切り捨てられた二次情報源を観て満足するよりも、 1次情報をインプットするスピードや量を増やし、100倍の情報に触れれば、 「知ったかぶり」を減らし、「自分しか知らないこと」を増やすことができる。

英語を読もう

「1次情報にあたろう」に関連するものだが、 エンジニアリングに限らず、多くの一次情報は英語で書かれている。英語を読もう。 役に立つ情報で、日本語でしか書かれていないものはほとんどない(日本特有の事情や、分野的にローカルな話を除く)。

これは専門分野以外に関しても言える。 例えば医療情報であれば、「偏頭痛」でGoogle検索し 上位に来るサイトのほとんどは役に立たない(という時期があった。今は多少マシ)。 英語で検索すれば、NHS(イギリスの公的健康保険)やWebMDなどの、 複数の医師の監修を受け十分に整理された情報にリーチできる。 (ものによってはレビュー論文へのリファーやリンクもある) 検索ワードを知らなかったら辞書を引けばよいし、 飛んだ先の情報を知らなければGoogle翻訳すれば良い。 英語で検索しよう。

時間を奪うコンテンツを排除しよう

注意を引き、関心を引き、結果的に時間を奪うコンテンツや、その情報源を排除しよう。

そのようなコンテンツは、たとえばTwitterFacebookのフィード、 はてなブックマークの上位に現れてあなたの関心を引く。 もちろん満足いく水準の情報にリーチできるのであれば問題ないが、 時間を無駄にしていると思ったら、 そのサイトを見るのをやめたり、 そのようなシェアをする人をアンフォローして、自分の時間を守ろう。 (もしくは、SNSではコミュニケーションに集中しよう。)

(できれば一箇所に) 記録しよう

よい記事を読んだとき、内容を覚えておく必要はない。 但し、必ず見返したくなるかもしれない情報はきちんと記録しよう。

最近のブラウザはほぼ無制限に履歴を記録しているが、 経験上見返したいと思ったページが履歴の検索によって見つかる可能性はごく小さい。 Evernoteなどを使ってページの全体や、記憶に残った部分を記録し、 必ず 全文検索 できるような状態にしておこう。 これであなたのコンピュータは、あなたの記憶を拡張できる。 「見たことある」ことを、10秒以内に探し出すことができれば、それはほぼ「知っている」といってよい。 そのストックは記憶のスペースを圧迫しないため、スケーラビリティが高い(=ストックが多ければ多いほど実効的な知識が増える)。

おすすめの手段

情報収集はRSSリーダーがよい。 RSSとは、Webサイトやブログの更新情報をひとつのソフトウェアでまとめて購読するための規格だ。

RSSはオープンな規格であり、これは重要なことである。 もし使っているRSSリーダーのサービスが終了したり、広告が入ったり、勝手にフィードの順番を並べ替えたりし始めたら、単に別のRSSに乗り換えれば良い。 RSSがオープンな規格である限り、ユーザはプラットフォームに縛られず自由に情報収集の手段を確保できる。 あなたが得る情報をあなたの手でコントロールできる。

RSSはオープンな規格であり、RSSリーダーの競争は激しい (少なくともかつては激しかった)。結果として使いやすいサービスやソフトウェアが多数存在する。 WebサービスであればFeedlyThe old readerMac向けであればReeder(有料)など。 ほとんどのRSSリーダーは覚えやすいキーボードショートカットを備えているので、 100サイトくらいであれば1日10分もあれば読むことができる。

代表的なRSSリーダー(Webサービス)であるFeedlyIFTTTに対応しているから、保存した情報をEvernoteに自動スクラップしたりGoogleスプレッドシートにアーカイブしてTwitterBotにつぶやかせたりランダムなWikipediaのページを購読したりもできる。

おわりに

頑張って書いたので、コメントでエンジニアや研究者向けに役に立つサイト(1次情報源もしくは専門的な情報源)を教えてください。記事で紹介します。

根津のおいしいランチは鮨みひろがおすすめです。

ウズベキスタン旅行Tips

航空券

日本からウズベキスタンの玄関タシケント国際空港に行くには主に3つの方法がある。どれも値段はそう変わらない。

  • ソウル経由 … よほどのことがない限りこれを選ぶのが良いと思う。大韓航空アシアナ航空もある。
  • モスクワ経由 … ロシアもしくはヨーロッパからの帰りに寄るなら選択肢に入る。アエロフロートが乗り入れている。
  • 直行便 … 実は成田空港から直行便が出ている。時期によって異なるが週に1〜2便ほど。時間が合えば利用してもよいかも。

空港

タシケント空港の入国審査は、ほぼ間違いなくあなたの旅で最も最悪な体験だ。飛行機はできるだけ前の席を予約し、着いたら即ダッシュが望ましい。出遅れたら、地獄のように長い待ち時間を過ごすことになる。ウズベク人に押し合いへし合いされ、もしかしたら何度も抜かされるかもしれない。でも安心してほしい、空港さえ抜ければウズベキスタンの旅は最高の経験になる。

ちなみに特に帰りの出国に関しても状況はそうかわらない。「空港の敷地に入るための金属探知機」「空港の中に入るための荷物検査」「チェックイン」「税関の荷物検査」「出国審査」「飛行機にのるための荷物検査」の6回も並ぶことになる。少なくとも3時間、できたら4時間くらいの余裕を持って臨もう。

国内交通

都市内の移動はタクシーを使う。行き先と値段を告げて交渉することになる。英語が怪しいドライバーもいるので、値段はiPhoneの電卓に打ち込んで見せればいい。だいたい5000スム(5分ほど)から15000スム(15〜20分ほど)。ドルも通用する。

ちなみに空港を降りるとタクシー運転手に囲まれることになる。普通は3ドルほどでホテルまで連れて行ってくれる。だいたいの場合中で両替を勧められるので、適正なレートなら両替しておくとよい。荷物代も含めての交渉なのでチップは要求されない。

都市間の移動は主に電車かタクシーを使う。ぼくたちは電車を使った。電車に関しては一般列車と夜行列車がある。夜行列車に関しては、全く同じ編成や設備であるシベリア鉄道のプラッツカルタに関する記事を読んでおくとよい。

都市

主に観光の対象になるのは以下の4都市。今回は5日間でタシケントサマルカンドの2都市を回ったが、タシケントは街の規模が大きいわりに観光地が少なく、ブハラやヒヴァにも足を伸ばせばよかったと感じた。

あなたの卒論を先輩に見てもらう前に確認する、たった4つのこと

1年前に卒論を書き、そのあいだに国内学会と国際学会の予稿、論文誌、科研費書類の手伝いと一通りの書きものをして、先輩や先生に論文を直していただく機会がたくさんあった。そして今年の1月、研究室をうつった先で卒論執筆のメンターとして、後輩の論文を何度も読む機会があった。そのなかで、「先輩や先生に原稿をみてもらう」という機会を最大限に活かすためにできることとして、いくつか気付いたことがあったので、1年後にいろんな原稿や修論を書いている自分のためにメモを書き残しておく。

本稿では、誰かに(書きかけの)原稿をチェックしアドバイスをもらうときのTipsに集中する。「卒業論文の書き方」および「具体的に気をつけるべき項目 (rkmt先生のブログ)」のようなものは書かないつもりだ。それぞれについてはリンク先を参照のこと。

1. 100均で安い赤ボールペンを5本買っておく

f:id:sidestepism:20160203002717j:plain

論文執筆の時期はよく赤ボールペンを使う。意外と持っていない人もいるものだ。卒論修論の時期は、だいたいラボの赤ペンも枯渇している。黒や青でいいやと直し始めてくれる人ならまだいいが、探してるうちに別件が入り、あなたの卒論の上には別のタスクが積まれ、思い出した頃に適当に赤を入れて直す、、というのはありがちな話だ。

直す側からみて、いちばんモチベーションが上がるのは渡された直後だ。 原稿と一緒に赤ペンを添えて渡そう。 手元にタスクがない先輩ならすぐに見始めてもらえる。忙しい先輩の移動中なにも見てもらえるチャンスは増えるだろう。普通の先輩なら、赤ペンまで貸してもらっておいて、原稿は放置というのはなかなかしづらい。早く返すためにもせめてそこそこ赤入れよ、と思ってくれる…かもしれない。自分の分、先輩2人、スタッフ2人、あわせて5本。540円で、あなたの5倍の頭脳を借りて論文を書くことができる。

2. ToDoは違う色/背景色で、コメントではなく地の文に書く

f:id:sidestepism:20160203002830p:plain

よくToDoを、手元のメモやTeXのコメントで管理している人がいる。これはとてももったいない。図中の記号やフォントサイズ、用語の統一、図表の参照など、 あとで直す修正は、本文中に黄色ハイライトで残しておこう。

メリットはたくさんある。まず、 論文の完成度が可視化される。黄色でハイライトされたToDoが残っていれば、まだ直すべきところはある。なくなれば、提出してOK。別の場所にToDoを書くと、見た目の完成度は書くにつれてすぐにあがっていくが、内容の完成度は低いままだ。校正の段階では地味な作業が続くので達成感がないし、完成度が低くても「もうそれっぽい論文できてるし、いいかな」という気持ちになりがちだ。

「見てもらう人に、これから直す予定の箇所であることを伝えられる」 という意味もある。先輩や先生にみてもらう時に、自覚している箇所を指摘してもらうほど無駄なことはない。あなたは、もっと自分でも気づかないようなミスやアドバイス、アイデアをもらいたいから原稿を読んでもらっているはずだ。以前その人に指摘されたことが直ってなかった場合は最悪だ。少なくとも心象は悪いし、運が悪ければ次からは見てもらえないかもしれない。

原稿にtodoが残っていればこんな悲劇は発生しない。それどころか、「この章はこのくらいのtodoが残っているくらいの完成度だから、もっと全体的なアドバイスが欲しいみたいだ」「細かいミスだけど、本人はまだtodoとして認識してないみたいだから指摘しておこう」のように、原稿の現状にあわせた指導をしてもらえるかもしれない。みんながみんなそんなに時間があるとは限らないけど…。

どんな節でも必要なチェック項目に関しては、たとえば各節を作るごとに次のような定型todoを貼るのもよい。そしてできればToDo項目の前には定型のラベルを作るべき。エディタであとから検索できる。こんなふうに:

  • todo すべての図表が本文中で参照されているかチェック
  • todo グラフのキャプション対応チェック
  • todo 送りがなチェック

M1の先輩ならともかく、Dの先輩や先生にみてもらうときには「完成してから持ってきて」と言われることもあるだろう。忙しい人ほど「君の論文だけ何度も見てられるか、全部ちゃんと書けたらその時に見るから読んでくれ」というスタンスが普通。理想は当然、すべてのtodo項目が消えてから渡すことだけど、、todo項目だけ一括で削除して渡したいと思うこともあるかもしれない。ifdraftパッケージを使えば、渡すことができる。詳しくは後ほど書くつもりだが、詳しい人ならPackage Manualとか見れば使えると思う。

3. 早めに初稿を見てもらう。そのときに各章の状況を伝える

よく「まだ先輩に見てもらえるレベルに達していないから、完成したら見てもらいます」という人がいるけど、全体を隅々まで書ききった論文を渡されて、構成の変更を含むアドバイスはなかなかできないものだ。「各章の要旨と図表だけの段階で持ってきてもらえたら、もっとわかりやすい章構成にできたんじゃないかな…」と思いながら、細かい赤を入れはじめる、というのはもったいない。メンターや同じプロジェクトで卒論生を受け持っている先輩などであれば、最後に大きな変更をするハメになるよりは、枠組みの指摘は先にしておきたいだろう。

ところどころスカスカの状態でもいいから、ドラフトは早めに見せるべきだ。ただ、原稿や進捗状況がどのような状態なのかによって、必要なアドバイスも変わる。例えば、「2章は不安が残る(構成も含めた大きなアドバイスがほしい)けど、3-4章は十分よくかけていると自分では思っている(細かいミスを重点的に見てほしい)」etc。また、すでに先輩や先生にチェック済みで、大きく変えたくないという章がある場合もあるだろう。そのような場合はちゃんと伝えれば大丈夫。すべての章を何度も見てもらう時間のない先輩には、「4章できたんで4章だけ」「次は3章を」と順にお願いしていけばよい。

各章の状況が伝わってないと、どこを直して欲しいかは先輩が推測するしかない。 優しい先輩はそれでも読んでくれるかもしれないが、もしかしたら章によってムラがある原稿にだんだんイライラし「ぜんぜんダメじゃん、やり直し」と突き返されるかもしれない。気をつけるべし。

4. 紙媒体で赤を入れてもらうときには、必ず渡す人の名前と日付(提出直前なら時刻)を入れる

f:id:sidestepism:20160203003440p:plain

先輩や先生に見てもらっているあいだにも論文はアップデートされる。中には1〜2日の時間を書けて卒論を見てくれる人もいる。帰って来た頃に、そのコピーがいつのバージョンかを把握していないと、必ず混乱する。最悪なのは、ただ印刷しただけのコピーと混ざって、行方不明になってしまうこと。まさか同じ内容をもう一度なんて頼めないし、指摘が直ってない原稿をもう一度見せたら怒られるかも。結果としてその先輩には二度とその原稿は見せられないことになる。恐ろしい…

論文執筆の終盤、先輩数人に赤を入れてもらうと、入っている赤について詳しく聞きたい時に誰に聞けばいいのかわからないことがよくある。渡す前に、表紙に赤ペンで名前と日付を入れよう。 先輩の名前を書いておくのは、直してもらった赤を大切にします、という意思表示、もしくはしっかりチェックするぞという先輩へのプレッシャーという意味もある。

時刻の記入を自動化したければ、ビルドした日付時刻を右上に入れてくれるTeXコマンドもある。(時間があったら書き足しておきます) ただし、渡す日付とビルドの日付は必ずしも一致しているとは限らない。

自身を振り返って

卒論の書き方Tips、というのは世にたくさんあるけれど、こういうメタ執筆Tipsというか、執筆作業の周辺のノウハウはあまりネットでも見かけない。先輩に教わったこともあるし、いろいろ見てもらっているうちに(先輩の原稿をなくしかけたりして…笑)意識し始めたこともある。書いているうちに意外とそこそこ価値があるんじゃないか? と思いはじめたので、メモを大幅に加筆して公開してみた。

ここまで詳しく書きだしてみると、自分の原稿執筆で意識できていないことがかなりある。やや人に頼るのが苦手なのもあって、とくに3「初稿を早めに」はなんど書いても難しい。文章にまとめたおかげで、修論の時はきっと忘れないだろう…。そもそも修論が書ける研究テーマをしっかりと構築することがいまの課題なんだけど。。

ほかTeX関連のTips。

冒頭のusepackageが並んでいるところにこれを追記した後

¥usepackage[usenames]{color}

こうやる。もっとスマートな方法があったら教えて下さい。

¥colorbox{yellow}{todo: Fig.3を本文中で参照する}
  • 投稿時間を左上に表示。

    ¥usepackage[yyyymmdd,hhmmss]{datetime} ¥usepackage[all]{background} ¥usepackage{tikz} ¥SetBgContents{ ¥begin{tikzpicture}[remember picture,overlay, color=black!60] ¥draw (-1, 1) node[below right] {¥LARGE{¥texttt{¥today~¥currenttime}}}; ¥end{tikzpicture} } ¥SetBgPosition{current page.south west} ¥SetBgOpacity{1.0} ¥SetBgAngle{0.0} ¥SetBgScale{1.0}

追記: 「分野によって、ラボによって常識が違う」ようなこともたくさんあるだろう。これから書くことは、筆者がこれから気をつけようと思っていることで、自分のラボで共有されていることでもなければ、どのラボでも通用することではない。前提として、筆者の所属するラボはバーチャルリアリティについて研究する情報系の研究室だ。論文、とくに卒論は提出までに、10回以上改稿するのがふつうで、そのあいだにメンターのM1、助教をふくむ数人の先輩に、あわせて5-6回みてもらうことになる。ドラフトが上がるのは早い人で1週間前、最終版がfixするのは多くの人が提出前夜、もしかしたら当日の朝なんてこともある…!

El CapitanでDYLD_LIBRARY_PATHなどの動的ライブラリのPATHは使えない問題の解決法

OSX 10.11 El Capitan から導入された System Integrity Protection によって, DYLD_LIBRARY_PATHの書き換えはできなくなります.

forums.developer.apple.com

この環境変数を設定していた一部のライブラリなどに Library not loaded / image not found などのエラーが出ることがあります.

特に Caffe を OSX で動かしていたほぼすべてのヒトに影響が出ると思います.

注意してください.

解決法その1: System Integrity Protection を有効にする

System Integrity Protection を無効にすることで Recovery OS で起動して (起動時にcmd+R), コマンドラインから csrutil disableと入力することで SIP をオフにできる. ただしおそらくセキュリティ上の問題があるので推奨されない.

解決法その2: /usr/local/lib などにシンボリックリンクを貼る

DYLD_LIBRARY_PATH 上にあるdylibファイルたちに対するシンボリックリンクを, /usr/local/lib などに設置する.

ln -s /Developer/NVIDIA/CUDA-7.0/lib/* /usr/local/lib
ln -s /Users/ryohei/.pyenv/versions/anaconda-2.0.1/lib/* /usr/local/lib

texlive2014で、JY2+mcフォントが見つからずjsarticleがタイプセットできない問題

texlive2014において、フォントファミリ JY2+mc が見つからない問題について調べていたが、この記事で解決した。ptex2pdfのコマンドに -u オプションを追加する。

おいしいプリンの作り方

発見したのでメモ

レシピ

  • 砂糖 100g
  • 卵 4個
  • 牛乳 600mL
  • バニラエッセンス 5滴
  • カラメル

    • 砂糖 適量
    • 水 適量
  • 卵を溶いて泡だて器で均一になるまで混ぜる。砂糖・牛乳・バニラエッセンスを加えてさらに混ぜる

  • オーブンの皿を1段目にセット、水張って140〜150度に予熱。
  • カラメルを作って容器の底に流し入れる。さらに1の液を静かに流し入れる。
  • 容器をオーブンに入れて30分程度蒸し焼きにする。

加熱時間はレシピに頼らず自分の目で確認することが重要。。