Kesinの知見置き場

知見を共有していきたいじゃないですか

Vimとctagsでコードリーディング

というタイトルで会社の同期内でのLTで発表しました。

知ってる人からすれば当たり前のように使ってると思いますが、IDEからエディタへの移行組で知らなかった人は感動する内容だったかもしれません(自分が昔そうでした)。

発表中では実際にデモをしましたが、cpanからモジュールをダウンロードして中身を見るときはこんな感じでできます。


Vimとctagsでコードリーディング1 - YouTube

cpanからモジュールをダウンロードして、ctagsでタグファイル生成、関数ジャンプ


Vimとctagsでコードリーディング2 - YouTube

ctags -aで標準ライブラリの情報をタグファイルに追記、標準ライブラリへのジャンプ、垂直分割

ちなみに、上のスクリーンキャストでも分かるように発表中ではPerlを前提としていました。

最近のPerlのモジュール管理事情は、Cartonというツールでプロジェクトごとにlocalというディレクトリ以下にモジュールをインストールするようになっています。
デモでは標準ライブラリのtagsも生成しましたが、Perlではそこまで必要ではないと思うので、実用上は作業プロジェクトのディレクトリ上でctags -Rで十分かと思います。

研究のプログラミングにおける悲劇を無くすためのGitとテスト

大学の研究に役に立った物シリーズ第3弾です

f:id:Kesin:20140227000334p:plain

今回は研究のためのプログラミングのノウハウについてです。 特に、研究におけるプログラミングでの悲劇を防ぐために自分が実践していた方法を紹介をしたいと思います。大学や研究室によっては、このような研究のプログラミングのノウハウの伝承が行われているところもあると思いますが、何かの参考になれば幸いです。

大学の研究で役に立ったものシリーズの記事

続きを読む

大学の研究で役に立ったもの(勉強編)

大学の研究に役に立ったものシリーズ第2弾です。
今回は、研究に関係する技術の勉強に役に立ったものを紹介したいと思います。

ちなみに、自分の研究は情報系で、研究室のテーマは自然言語処理、音声言語処理、機械学習関係でした。
あくまで自分には役に立った、ということで情報系以外の分野の人には当てはまらないことも多いと思います。
(特に今回は自分の研究分野に特化した記事になってしまっています。すいません)

続きを読む

大学の研究で役に立ったもの(サービス編)

数年間大学で学生として研究生活をしていましたが、今年の3月をもって無事に大学院を卒業できそうです。
そんなわけで過去を振り返るのと、これから大学で研究生活が始まる人に向けて、自分が大学で研究をする上で色々便利だったアレコレを数回に分けて紹介したいと思います。

ちなみに、自分の研究は情報系で、研究室のテーマは自然言語処理、音声言語処理、機械学習関係でした。
あくまで自分には役に立った、ということで情報系以外の分野の人には当てはまらないことも多いと思います。

大学の研究で役に立ったものシリーズの記事

続きを読む

PythonでMongoDBを使うunittestのひな形

タイトルのとおりですが、ケースとしてはFlaskみたいな軽いフレームワークでMongoDBをデータベースに使うModelを自分で実装するような場合です。
実際にデータベースを動かすModelのテストを書くときに、FlaskはフルスタックのDjangoと違って何も面倒を見てくれないので、自分でテストのときだけ使用するdbの作成、破棄などを行う必要があります。

やりたいことは、

  • テスト起動時にテスト用のdb('test')を作成
  • テスト用のデータ(json)を予めdbに入れておく
  • Modelクラスのメソッドをテスト
  • テスト終了時にテスト用のdbの破棄

という流れです。mongodの起動と終了まで面倒を見てくれるともっと便利なはずですが、今回はそこまで求めなかったので、mongodは事前に起動しているという前提になります。 *1

*1:mongodまで面倒をみるなら、参考にあるブログや、test.mysqldが参考になりそうです

続きを読む