| @ブログ

2015 年のアドベントカレンダー、こんだけ参加してる。

edb4a54ee19554bdc4e9e216a20108dd.png (1024×978)

寺・神社とか面白そうなのあったのでひょっとしたらもっと参加するやつ増えるかもしれない。 12 月は睡眠不足になりそう。

また、今年初めて自分でもアドベントカレンダー作ってみた。

Mac のソフトネタ、昔はちょくちょく書いてたけど最近書いてないので、これを機会に久々に書いてみようと思ってこういうアドベントカレンダー作ってみた。

『 Evernote 徹底活用術』とか、『これは便利! 無料の Photoshop テクスチャ 10 選』、みたいなのじゃない記事が集まればよいと思う。

アドベントカレンダー、トピ主の人間力が問われていて、トピ主に知名度がなかったりネットで好かれてなかったりしたらなかなか書きたいという人が集まらない。全然書き手が集まんなくて、 2, 3 個しか記事が投稿されないアドベントカレンダーは寒いので、みんな何か書いてくれ頼む!!!、!!!、!、!!!

| @技術/プログラミング

昨日飲みに行って今朝起きてからふとコード書きたくなって、アドベントカレンダーもあることだし(去年の Adventar で自分のブログだけ og:image がなくて画像が出てなくて残念だった)、このブログを Open Graph protocol に対応させることにした。

Twitter Card の Lokka Plugin を前作ってたのでそれを改造した。

Ruby 2.1.0 以降で使える Module#refine 使いまくったけど安全にモンキーパッチできて便利。

module AddImagesToEntry
  refine Entry do
    def images
      self.body.scan(/https?:\/\/[\w\/:%#\$&\?\(\)~\.=\+\-]+?\.(?:png|jpe?g|gif)/)
    end
  end
end

refine するときのモジュール名、 ActiveRecord のマイグレーションのクラス名みたいで面白い。

| @ブログ

一時期に比べたら Lokka 使ってる人減ってて、 Jekyll/Octopress ブームのあとは Go lang 製のスタティックサイトジェネレーターかはてなブログに移っていってしまった。自分は自分で使うツールを自分でいじるのが好きなので Lokka 使い続けていきたい。ということでいろいろやった。

最近やったこと

テスト通るようにした

Lokka の master ブランチ、しばらくコミットされてなくて Travis CI のビルド 1 年半くらい走ってなかった。久々に Pull Request 出したらビルド成功しなかったので通るようにした。 Travis がコンテナベースの環境から Docker ベースに移行したぽくて、その影響で PostgreSQL がらみで bundle install がこけるようになってた。なのでテキトーに addon を追加しといた。

同じコミットでもうメンテナンスが終了している Ruby 1.9 系の CI をやめるようにした。

Ruby 2.2 に対応させた

json 1.5.5 は Ruby 2.2 系では install に失敗するようなのでいろいろ bundle update した。 ActiveSupport も 3.1 ではエラーが出てしまうので bundle udpate して 3.2 の edge にした。

XSS 直した

コメントで教えてもらったので直した。

ただ実はまだ完全には直せてないので近日中に直したいのだけどテンプレートをレンダリングする仕組みをまるっと変えないと直らなそうなので結構きびしい…。

これからやりたいこと

フロントエンドよくしたい

具体的にはプラグインに同梱された CSS や JavaScript とテーマのやつをくっつけて配信したい。 Asset Pipeline 的な。

高速化

なんか遅い。このブログのトップページのレスポンス返すのに 1 秒くらいかかってるの改善したい。 DB にインデックス張るのとクエリのチューニングかな。

ActiveRecord 化

Fjord の皆さんで開発が続けられていたけど停滞しているっぽい。 DataMapper 、耐えられないほど不便なわけでもないし ActiveRecord にない便利な機能もあるのだけど、 N+1 起こらないという触れ込みなのに N+1 起こったり、ちょっと込み入ったクエリを投げたいと思ったときにやり方がわからないもしくは出来ないということがあるので、 Ruby エンジニアの皆さんが日常的に使ってる ActiveRecord を使うようにするのが良いだろうと思った。そもそもあまりメンテもされてないし、 DataMapper に引きずられて Lokka が停滞するのも残念だし。高速化のためにも ActiveRecord 化有効そう。


最近「仕事外でコードを書かないエンジニアは人間のクズだ」、「いやクズはそっちだ、エンジニアの業務時間外の学習に依存する会社こそ真のクソ」みたいな議論多いけど、自分で使うツールのメンテナンスくらいやらないと本当にプログラマー廃業しないといけない気がするし、自分がプログラミングに触れたの自体 P_BLOG の改造がきっかけだったので、プライベートを犠牲にして歯を食いしばりながら取り組んでいきたい。

| @技術/プログラミング

このブログの Archive ページ自分で作った Lokka Plugin でできているのだけど、ここを React を使って作ってみた。 React チュートリアルの写経の題材を自分のブログにした感じ。 CoffeeScript オワコンと言われて久しいけど Coffee で書いた。 JSX を CoffeeScript で書くときはバッククオートで囲むとよいという知見が得られた。

Entry = React.createClass
  render: ->
    `(
      <li className="entry">
        <a href={this.props.link}>{this.props.title}</a>
        <div className="detail-information">
          <span className="created_at">{this.props.created_at}</span>
          <Category category={this.props.category} />
        </div>
      </li>
    )`

| @技術/プログラミング

Rails 、初心者にとってもよいフレームワークだと思う。いろいろ学びがある。ただ、なんとかスクールとかで金払って習うのではなくて、 DHH が書いてる『 Rails によるアジャイル Web アプリケーション開発』を読むのがよいと思う。あの本はコラム欄に Rails の裏側の思想とかが書いてある。なんとかスクールで習うのだと最速で Twitter クローンを作るだとか、 Rails の使い方しか身につかないのではないかと想像する。なぜ Rails はその様に作られてるのか、その裏側にある考え方は何か、まで合わせて学べばかなり色んなことが勉強できる。 Rails を使うようになって 5 年くらいになるけど、いまだに毎日発見がある。

| @散財

イオンで SIM カード買って IIJ のみおふぉんに MNP した。月額 1600 円で、イオンで買うとパケットが毎月 1GB おまけされて 4GB 、また通話も 600 円分の無料枠が半年分おまけで付いてきた。

iPhone 5 はクロアチアに忘れてきてしまって、次は iPhone 6S の予定だったけど東京で1ヶ月仕事してたときに電話がないのがあまりに不便すぎて SIM ロックのかかってない iPhone 6 を買ってしまっていたので解約の違約金がかからない更新月に MNP ぶちかました。1

みおふぉんは夫婦で使う場合にはファミリーシェアプランというのがパケット 10GB ついてきてお得っぽいのだけど、 MNP ぶちかます前に夫婦で同一名義にしとかないとダメらしくて、その事実を申し込みカウンターで知り、夫婦で1時間近くイオンの雑踏の中から電話で au のコールセンターの順番待ちをして MNP 予約番号をゲットしたばかりだったので、もう一度あの苦行に耐えるのは不可能だと判断し( MNP 予約番号発行後の契約変更は不可で、契約変更した場合番号は取り直しになる)、別々の名義で MNP した。

みおふぉんのパッケージ自体は Amazon でも売っていて安いっぽいのだけど、イオンで買うとパッケージ代 3240 円かかる代わりにパケットのおまけや無料通話枠がつくっぽい。

docomo の電波10年ぶりくらいに使うけど実家に帰っても大分自動車道の山道でも圏外にならなくて便利。

pros

  • 安い
  • 2年縛りではない
    一年契約で違約金あるけど毎月下がっていく
  • 電波良い
  • みおふぉんダイアルで安く電話かけられる

cons

  • MMS ない
    嫁さんに説明不足だといってめちゃくちゃ怒られた
  • LINE の年齢認証が出来ない
    これも嫁さんに怒られた…
  • キャリアが駅のホームとかに置いてる WiFi が使えない
  • 一週間くらい国内で旅行したりすると 4GB 使い果たすかも

  1. ただし各種キャンペーン割引の切れた状態で月額料金がかかってしまうので(諸々込みで8000円くらいになる)、 au の場合更新月の1日に MNP すると一切お金かからないらしいので早めに MNP 先を検討して前日くらいに MNP 予約番号の発行も済ませ、更新月初日に手続きするのが吉っぽい。