vue.js で DOM の更新を同期的っぽく行う

vue.js は DOM の更新を非同期で行っている。

同期的にするには全体の設定でVue.config.async = false とする方法があるがこれは微妙。

もう一つの方法としては、Vue.nextTick(callback)を使用してDOMの更新が終わってからの処理をコールバックで記述する方法がある。

参考

Directives - vue.js

draper vs active_decorator

active_decorator はよく使ってるけど draper は README 読んだだけの状態で比較しています。

active_decorator

メリット

  • 実装が比較的シンプル
  • 使い方もシンプル
  • 自動的に model を decorate してくれる

デメリット

  • decorator のメソッドを生やす条件が限られている
    • controller 中にインスタンス変数として定義する
    • partial template の引数として渡す
  • なので、インスタンス変数の関連オブジェクトに対して decorater を適用するのが場合によっては面倒

draper

メリット

  • 関連オブジェクトへの対応がある
  • 複数の decorater を使い分けたり、decorater に変数を渡して挙動を変更したりできる
  • collection に対しても decorator を設定できる

デメリット

  • 基本的に、毎回明示的に decorate するためのメソッドを書く必要がある
  • active_decorator と比較して覚えることが多い

どっちを使ったらいいか

ケースバイケース。draper の方が利用できるシーン自体は多そうだけど、学習コスト高めですね( ˘ω˘)"

Logentries と Papertrail どっちをつかうのがいいのか

LogentriesPapertrail の簡単な機能比較。heroku で利用する前提

両方でできること

  • ログを閲覧する
  • ログからのアラート通知

Logentries だけでできること

  • ログを解析してグラフを作れる
    • サーバのパフォーマンス監視
    • ユーザのアクセス解析
  • 公式iOSアプリがあって、アラート通知を閲覧できる

Papertrail だけでできること

  • とくになさそう?

感想

多機能さで言えば Logentries の勝ちなんだけど、Papertrail はログを検索することに特化しているため扱いやすいし画面も見やすい。Logentries 多機能すぎて学習コストが高い。どちらかというとログ解析のためのツールのような印象を受ける。なので「何かあった時にログが見たい、アラートがほしい」という使い方をするのであれば Papertrail の方がオススメな感じがする。

好きなファイルサイズの画像を作る

  • ファイルアップロードのテストで、ファイルサイズのチェック部分のテストがしたい
  • 簡単に生成する方法を調べたところ、imagemagick で画像をつくり、その後に exif の comment にテキストを流し込んでファイルサイズを調整するやり方を見つけた
  • しかしそのブログのママではうまく動かなかったので、Ruby で雑にスクリプト書いた
  • モチベーション湧いたらちゃんと引数受け付けたりできるようにしたい

create image whose file size you can specify for t ...

参考

Generate dummy images for testing file upload - Pixelastic