mypy の reveal_type で型情報をデバッグする

Python の静的型検査器の mypy を使うと,型ヒントを記述したプログラムを簡単に静的に型検査を行うことが出来ます.しかし,予想外のところで型エラーが出たときなど,なぜそのようなエラーが出たのかわからないときもあります.

reveal_type を使うと,プログラム中の式が mypy によってどのような型がつけられているかを簡単にデバッグ出力することが出来ます.これを利用することで,プログラマーが書いた型ヒントが間違っているのか,typeshed のスタブファイルが間違っているのか,はたまた mypy 自体のバグなのかが少し分かりやすくなります.

“mypy の reveal_type で型情報をデバッグする” の続きを読む

OCaml の未使用変数の警告について

OCaml において,以下のような場合は未使用変数の警告が出ますが,

$ ocaml
        OCaml version 4.04.0

# let x = 1 in 1;;
Warning 26: unused variable x.
- : int = 1

次のような場合は未使用変数の警告が出ません.

$ ocaml
        OCaml version 4.04.0

# let f x = 1;;
val f : 'a -> int = <fun>

この違いが気になったので調べてみました.

“OCaml の未使用変数の警告について” の続きを読む

TeX ドキュメントの作成過程を GIF アニメに変換する

Git でバージョン管理された \TeX ドキュメントの作成過程を GIF アニメーションに変換するシェルスクリプト tex-to-gif を作成しました. この記事では tex-to-gif の使用例を簡単に紹介します.

“TeX ドキュメントの作成過程を GIF アニメに変換する” の続きを読む

Docker Compose でカーネルパラメータを設定する

2016年7月にリリースされた Docker 1.12.0 から docker run --sysctl net.core.somaxconn=65535 などとすることによって, コンテナ内のカーネルパラメータを調整できるようになりました. Docker Composeではこのオプションに対応する設定がありませんでしたが, 2017年1月にリリースされた Docker Compose 1.10.0 からカーネルパラメータを設定できるようになったので, 簡単に紹介します.
“Docker Compose でカーネルパラメータを設定する” の続きを読む

CircleCI で LaTeX 原稿の CI を実現する

\LaTeX を使って論文等の原稿を書いている際に, 複数人で同時に編集したり, ファイルをコミットし忘れたりした結果, 原稿がきちんとコンパイルできなくなることがあります. この記事では CircleCI を用いて Git でバージョン管理している \LaTeX 原稿の継続的インテグレーションを実現する方法を紹介します.

2017/12/8 追記: この記事では CircleCI 1.0 を利用しています.CircleCI 2.0 を使って CI を行う「論文執筆を支える継続的インテグレーション: Git から Amazon S3 まで」という記事を書きましたので,興味のある方はそちらもご覧下さい.

“CircleCI で LaTeX 原稿の CI を実現する” の続きを読む