2016-09-07
Techなんか色々やった。だいぶブログらしくなってきたと思う(見た目的にはまだまだだけど、機能として)。この装飾がなさすぎる感じ、逆にいいかもという気分になってきた。redcarpetでmarkdownをレンダリングするようにしたので、リストとかはちゃんと使えている。
タイムゾーンについて
現在はDBにはUTCで保存していて、設定ファイルでユーザ(書き手)の好きなタイムゾーンを設定できるようになっている。こういう構成なので、日付を扱うときはつねにタイムゾーンについて考慮する必要がある。
今日ちょっと問題になったのは、編集画面のdatetime入力欄。前回決めたように各記事がdatetime(記事の日付と、ソートのための時刻)をもつのだけど、これを入力するのにTime.parseを使うと、「2016-09-07」とだけ書いたときにどうなるだろうか?
答えは「デプロイしたサーバのタイムゾーン設定の影響を受ける」で、このままだとトラブルの予感がひしひしとするので、設定ファイルのタイムゾーンと見なしてパースさせたい。調べてみると、ActiveSupportにTime.zone.parseというそのものずばりなメソッドがあったので、それを使うようにして解決。
2016-09-03
Techそういえば日付の扱いについてちゃんと考えてなかったが、思ったより複雑っぽい。
- post.date
- post.published_at
- 記事が最初に一般公開状態になったときに設定し、変更はしない
- フィードのpublished欄に使用
- post.updated_at
- (ActiveRecordによって)自動的に設定される
2016-08-24
Techこれは3番目の記事である。
一応、管理画面ができて、記事を書けそうな感じになってきた。それはいいけど、管理画面の実装とRSpecによるテストとあれやこれやを一度にやってたらdiffがぐちゃぐちゃになってしまった。
まあ一人プロジェクトだし最序盤だからモノリス的コミットになってしまうのは別にいいといえばいいんだけど、現状が把握できなくなると急速にやる気が失われていくという問題があって、それはとてもまずい。
趣味プロジェクトであっても、モチベーションを維持していくためにはちゃんと「やることリスト」みたいなものを作った方が良いのかもしれない。そうすれば「いま何の作業をしているのか」が明確になるし、達成感もより短いスパンで得られるようになるはず。
とりあえず日付を入力する欄がないことに気づいたので次はそれだな(この記事は2016年8月24日に書かれた)
2016-08-16
Tech前回からちょっと間が空いてしまった。これは二番目の記事である。
とにもかくにも、記事を書く機能を優先して作ったほうが良さそうだ。前回と同じくこの記事もviews/index.slimに直書きしている。このままでは単なる日記になってしまう。
記事の保存先はRDBにする予定だ。jekyllなどのように静的ファイルをコンパイルすることも考えたけど、「ブラウザ上で記事を書きたい」という要件があるので、普通にActiveRecordでやるのが実装が一番簡単だという結論になった。
2016-08-11
Tech自分のためのブログエンジンを作ろう、と思ってどれくらい経っただろうか。
少なくとも数年はくだらないはず。二度ほどチャレンジしては途中で放置した記憶がよみがえる。どうも、「やろう」という気持ちに手が追いつかないことが多くて困ってしまう。否、本当はそれほど困っていないからこそのこの体たらくなのだろうけど。
「やろう」を「やった」に変えるためには、兎にも角にも手を付けないことには始まらない。ということでこのpostを書いているのである。前回前々回の失敗は、記事を用意せずにブログエンジンを作り始めたことにあるように思う。記事が無くてもブログエンジンは作れるが、ブログには記事が必要なのだ。
ブログエンジンは今のところ名前だけ決めていて、nlog2という。まだ記事を書く機能がないので、この記事はviews/index.slimに直接、文章をベタ書きすることによって執筆された。ブログの公開はある程度機能ができてからにするつもりだったけど、とりあえず表示はできているのだから、このまま公開してしまうのも面白いかもしれない。まあ明日以降に考えよう。