昨日のブログで述べた、Haskellでラムダ計算と遺伝的アルゴリズムをやるやつをGitHubにあげました。
https://github.com/matil019/lambda-calculus
今までほとんどGitHubにうpすることはなかったから割と緊張した。ライセンスに関しては、今まで流れでcabal init -n -l BSD3 --source-dir src --is-exe
というコマンドを使っていたのでBSD3ライセンスを使っていたのだが、よくよく調べ直してMITに変更した。ちなみに、自由ソフトウェア財団によると MITライセンスはExpatライセンスとX11ライセンスの二種類を混同して指す言葉で使うべき名前じゃないらしい。念の為、自分で両者の本文を見比べてみたが、改行の有無、最初と最後の注釈の有無以外に違いはなかった。こりゃ混同してもしょうがない。なお、GitHubではMITと表示されている。
GitHubで公開するにあたり、せっかくなので古いバージョンのGHCでビルドできるかどうか試してみた。.cabal
ファイルに書くのはbase
パッケージのバージョンなので、このページの対応表をチェック。Ubuntuのapt
公式レポジトリで入れられるghcのバージョンは8.0.2とクッッッソ古いので、そのバージョン以降に対してコンパイルできるかどうかチェックした。
その結果、以下の軽い問題が発生した。
ghc-8.0.2
ではCOMPLETE
プラグマが認識されない。そのため、pattern synonymが網羅的(exhausive)でないというコンパイル警告を抑えることができない。
#if
でガードしないでいいのでありがたい。base-4.10.1.0
(ghc-8.2.4
)までは<>
演算子がPrelude
からエクスポートされていない。MIN_VERSION_base
マクロでインポート文を分岐することで対応。ghc-8.2.2
ではpanic
(コンパイラのバグ)が発生してビルドできず。かわりにghc-8.2.4
を使用。それ以外は特に問題が発生しなかった。正直言って、予想よりずっと簡単で拍子抜けした。もっとも、コンパイルできるかどうかだけをチェックしたので、実際に実行してみたらなんかエラーが出るかもしれない。
ブログはMarkdownで書いている。そのため、これをそのままWebサーバに置いて Pale Moonで見ようとするとダウンロードダイアログが出てしまう。促されるままFirefoxで開くとプレーンテキストで表示されてしまう。
一応、ブラウザに拡張機能を導入することでフォーマットして表示することができるが、閲覧者に拡張機能のインストールを要求するのはダメだろう。ということでMarkdownをHTMLにレンダリングしていい感じにしてくれるものを探したが、うまく見つからなかった。
そもそも自宅サーバに置くのではなくどっかのブログサービスに登録するのがまっとうだと思うが。
vimでMarkdownを書いてローカルに保存しておき、Webサーバにデプロイする際に HTMLにレンダリングするという流れを取りたかったのでオンプレミス狙いで調べた。
shuf -i 1-20
)を使って適当に選んだcompose
コマンドが必要ということで嫌な感じになった。compose
コマンドは職場で嫌な経験あり。(というかPHPが…)Dockerfile
が同梱されていたのでビルドして起動してみたが、webroot に必要なファイルがなく、なぜかビルドしたイメージにcompose
コマンドが同梱されておらずよく分からなくなった。しょうがないので、pacman -Suy discount
でmarkdown
コマンドを入れて MarkdownをHTMLに変換するシェルスクリプトを速攻で組みました。あまりにも質素すぎるのでなんとかしたいところ。まだ試していないから分からないが、一番 Movable Typeが有望か?