ブログシステム作った

9th Jan, 2010 | evernote mongodb sinatra ruby

2010年にもなって自分でブログシステム作るとかあり得ないと思うんだけど、なんとなく作った。完全俺用。

Evernoteと連携

最近すっかりEvernoteどっぷり生活になってる。Webクリップとかはしてなくて、ほとんどがテキストの落書き。で、その中で技術的なメモとかは公開できそうな気がしてるのだけど、どうも公開用に書きなおすのはだるくて放置されてた。で、そのまま公開しちゃえばいいんじゃない?ってのがそもそもの発想。Evernote公式にもそれっぽい機能があるんだけど、どうもいまいちだったんでEvernote APIを使って自分で作ってみた。

それと、過去にも自分の作業ログ的なのを公開していたことがあるんだけど、いくつか問題点があって「一度公開したものを更新しづらい」「自分の手元のバージョンと公開してるバージョン差異」「公開したものを、自分のために見返すときにWeb上の検索はいまいち(ローカル検索には勝てない)」とかがあってだんだん更新しなくなってしまっていた。

Evernoteを使えば、その辺を解決できるかな、と思ったのもきっかけ。(裏の理由としては、SinatraとかMongoDBとかを実際のアプリの上で試してみたかった、というのがある。)

ブログとしての最低限の機能、もない

ブログとWikiの中間ぐらいのイメージで作ったので、色々と中途半端ではある。あるのはAtomフィード / Permanent Llink / Tag (Category) くらいかな。コメントくらいつけてもいいかなとは思ってるけどspam対策とかめんどくさ。 とりあえず、http://disqus.com/ つけてみた。

フレームワークはSinatra 

最近、会社でRuby on Railsをやっていて、それなりに楽しいんだけど、ちょっとしたアプリを作るにはいちいち重厚すぎるのでSinatraを使ってみた。結果は良好。ちょっとした社内のシステムとかはSinatraでいけそう。Sinatraについては別にメモを残す予定。

データベースはMongoDB

最近のNoSQLブームに乗っかってしばらくCouchDBで遊んでいたんだけど、どうもまだまだ実システムでは色々きついな、ってところがあって今回はMongoDBで実装してみた。データ量が少ないし、データ構造も単純なんで何とも言えないけど、なかなかいい感じ。

その他

後は普段使いのHaml/rspec/FactoryGirlあたりを使って手早く作った。それと、Ruby 1.9 専用。

それにしても、いまどきのフレームワークやらライブラリやら言語やらのおかげでこれくらいの物なら数時間で作れることに驚いた。一番めんどくさそうな記述部分が完全Evernote任せってのはある。一番時間がかかったのEvernote APIが提供するXMLからhtmlへ変換だったりするわけだけど。XSLTって数年に一度しか必要にならないから毎回1から調べさせられてめんどくさいけど、それなりに便利だからなー。

ブログあちこちに作っても書かねーじゃないか、は禁句。


記事の内容についての質問、苦情、間違いの指摘等なんでもtwitterでどうぞ。