電卓片手に

サイトリニューアル

投稿日:

ここ2年、アウトプットが Qiita に吸われていて全然更新していなかった。

しかし最近になって Qiita に書くような内容じゃないけどアウトプットしておきたい、ってものが増えてきたので、ついでに諸々をリニューアルした。

以下、変更点。

静的サイトジェネレータ

結局 Jekyll に乗り換えた。

Octopress を使っていた が、細かいところに凝りだすと Octopress の予め用意されていた機能が邪魔になることが多かったのでやめた。

とくに JavaScript 周りの開発をしようとするとまた別のツールが必要になったりと複雑になってしまう。

これに伴い、サイトのデザインもちょっと変わってるけど、あんまりデザインに頓着していないので適当。

Jekyll プラグイン開発

Jekyll に乗り換えるにあたって、Octopress 向けに用意した Graphviz プラグインも Jekyll 向けに作りなおしている:

また、JavaScript の開発においてモジュール化をするために browserify を使ってくれるプラグインも作成した:

これらのプラグインについての説明エントリも書く予定。

ホスティングサービスを変更

Digital Ocean に変えた。

以前は DIT の ServersMan@VPS を使っていたが、VPS の破棄がとても面倒で「試しに作って破棄する」 というのが難しいため乗り換えた。

乗り換え先の候補としては ConoHa もあったが:

ということで Digital Ocean を選んだ。

Terraform サーバの各種セットアップをコードで管理できるようになった:

このへんの運用は、しばらくやってみて問題なければまとめたい。

遭遇・解決した問題

Qiita に書いた:

未解決の問題

これだけ手を加えても不満は着きないもので、妥協して今のような形になっている。

Terraform によるインスタンス作成に時間がかかりすぎる

解決方法のあてとしてはあまり無い。Digital Ocean の Droplet を Docker のホストにしてしまって、 諸々の要件を Docker インスタンスに切り分ける?

他の方法としては Droplet のスナップショット機能を使えばセットアップの時間短縮はできるが、 オペレーションが複雑になってしまうし何より Terraform のプラグインが対応していない。

Jekyll 重い

これは主に browserify が重たいせいなんだけど、こうやって記事を書くだけでも、 毎回 browserify が動いてしまうので非効率

更新部分とは関係ないコンポーネントまで毎回生成しているので無駄に時間がかかっている。 Hexo はこのあたりを多少考えて作られているが、テンプレート機能は要らなかったのでやめた。

make みたいに依存関係ファイルと生成ファイルの更新日時を考慮してビルドしてほしい。 そもそも browserify は依存関係をリストアップするのがそもそも重いので、 これもキャッシュしようとすると割と複雑なビルドロジックになりそう。

Ruby をインストールする方法

Jekyll プラグインを作成するついでに新しい Ruby の文法で書いてしまったので、 新しい Ruby が必要になったがこの方法に納得がいっていない。

Jekyll というか静的サイトジェネレータに Ruby を使うのをやめたい。

どうせ browserify/webpack を使うことになるので、Node に統一できたほうが良さそう。