T on T

皆さん炭水化物好きですか。僕は好きです。焼肉を食べに行っても肉はそこそこにご飯ばかり食べてしまいます。炭水化物のことが好きすぎて今朝は炭水化物(トースト)をおかずに炭水化物(白米)を食べてしまいました。最高です。

僕は一時期、京都の病院に入院していたことがありました。病院食でおかずにお好み焼きが出てきたときはビックリしました。「主食のおかずが主食??? こんな食事無理だし関西人は何考えてるのかわからない」と思いながら、戸棚から鮭フレークの瓶を取り出して無理矢理ご飯を食べたことを覚えています。でもその時の自分は背伸びしていただけなのかもしれません。炭水化物 on 炭水化物 is justice。

寒い日が続きますが、肉まんをおかずにピザまんを食べたり、チャーハンをおかずに白米を食べたり、いなり寿司をおかずにうどんを食べたりしましょう。それでは。


この記事はみんなの朝食 Advent Calendar 2015 - Adventar 二日目の記事でした。昨日は @tomoko_ando さんで、明日は誰も登録していません。

一時期に比べたら 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 の改造がきっかけだったので、プライベートを犠牲にして歯を食いしばりながら取り組んでいきたい。

イオンで 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 予約番号の発行も済ませ、更新月初日に手続きするのが吉っぽい。 

61BrRoScxUL._SL1000_.jpg (1000×750)

仕事しててコーヒー飲みたくなったときはコンビニかスターバックスに買いに行っていたのだけど、コンビニコーヒーは量が少なかったりスターバックスは値段が高かったりして、このままコーヒーを買って飲む生活を続けていたら破産しそうだった。

金持ってない割にまずいコーヒーは飲みたくなくて、インスタントコーヒーとか缶コーヒーでは問題解決できないので、一式そろえて自分でドリップすることにした。

Amazon で KINTO というメーカーのコーヒードリッパーとサーバー、マグを買った。ドリッパーは円錐型なのでフィルターはハリオの円錐フィルターを買った。なかなかかわいいが 2cups だと小さかった。マグも 250ml 用は小さい。サーバーは 4cups を、マグは 400ml のやつを買えば良かった。

これで職場でも気軽にコーヒーをいれて飲むことができるようになった。プログラミングしていて煮詰まったときとかコーヒーいれて飲むと気分転換できるのでよい。

memolist.vim のデフォルトのテンプレートが挿入する YAML Frontmatter なんか変わってて、 Jekyll のと違った。 Markdown のプレビューは Marked 2 で見るようにしてるんだけど、 Marked 2 は memolist の特殊 YAML Frontmatter を正しく処理してくれない。 YAML Frontmatter はメタ情報なのでプレビュー時には表示して欲しくない( Marked 2 には YAML Frontmatter を表示しないオプションがある)んだけど必ず表示されてしまう。具体的にはこうなる。

調べてみたら memolist には標準のテンプレート以外に自分の好きなテンプレートを設定できる機能あったので、 ~/.vim/template/memolist/markdown.txt というファイル置いて以下のようにしておいた。なお memolist はテンプレート用ディレクトリに置いてある 拡張子.txt というファイルをテンプレートして利用するようだった。なので Markdown 用のテンプレートは markdown.txt となる。

---
title: {{_title_}}
date: {{_date_}}
tags: [{{_tags_}}]
categories: [{{_categories_}}]
---

テンプレートを変更した上で Marked 2 で YAML Frontmatter を Ignore するよう設定する。

すると以下のような表示になる。すっきりする。

すでに過去に書いた記事の YAML Frontmatter も Jekyll のやつに直す雑なスクリプト書いて直しておいた。

files = Dir.glob("#{ENV['HOME']}/Dropbox/memolist/*.markdown")
files.each_with_index do |file, index|
  filename = File.basename(file)
  filepath = File.expand_path(file)
  flag = true

  lines = File.readlines(file)
  lines[0..5].each_with_index do |line, i|
    case
    when line =~ /^title:(.+)/
      lines[i] = "---\n#{line}"
    when line == "==========\n"
      lines[i] = nil
    when line =~/^(?:date|tags|categories|tags):/
      # do nothing
    when line == "- - -\n"
      lines[i] = line.gsub(' ', '')
    else
      flag = false
      next
    end
  end

  if flag
    p filename
    File.write(filepath, lines.compact.join(""))
  end
end

Teva Sandal

Teva のサンダル去年買って、6月のギリシャ旅行に履いて行ったら古代ギリシャサンダルみたいな趣あって歩きやすかった。7月に東京で一ヶ月研修生活送ったときにもよく履いてたけど、コンクリートの地面を歩いたりすると靴底が薄くて足が疲れた(新宿は広くては天神に比べてめっちゃ歩かないといけない!、!!)。どうも Teva のサンダルは Hurricane XLT ってのを買わないとダメらしい。去年買ったのは Original Universal というやつだった。

Hurricane XLT 買ってみたら底がスニーカーみたいに柔らかくて歩きやすかった。 Original Universal だと小走りしたときにショックがもろに足に伝わって小走りしたりしたくなかったんだけど、 Hurricane XLT の方は走ってもなんの問題も無い。

ちなみに定番の黒色は盆頃には売り切れになってて 27 センチとか日本人男性の 80% くらいが該当しそうなサイズは定価の1.5倍くらいになってた。しょうがなく枯れ草色みたいなのを定価の1.2倍くらいの値段で買った。安いのもあるけど外人が好きそうな変な模様が入っているので素人にはおすすめできない。買いたい人は来年の春頃買うと良さそう。

おすすめです。

会社を辞めた。3年半在籍してた。

ペパボに入る前は凄いブラック企業で働いてて、 Subversion やめて Git 使いたいと言ったら会社辞めろと言われたりしてた。そんなときに蜘蛛の糸のように目の前に垂らされたのが Dazaifu プロジェクトの求人で、藁にもすがる思いで応募し入社したのだった。この辺は過去のエントリに適当に書いてあるので読みたい人は読んで下さい。

ペパボは働きやすくて、毎日18時になったらみんなさっと帰るし、21時過ぎに会社出ると最終退出者であることもしばしばだった。家庭の事情にも理解があって、育児休業をさせてもらったり、ばあちゃんの具合が悪いときには会社休ませてもらったり早めに帰ったりしてたし、ばあちゃん死んだときにはお花とかも出してもらった。労働環境の他にも年末の社員旅行とかプレゼン大会とか社内の催し物があったりして良い雰囲気だった。課長が女性エンジニアにセキュリティルームでセクハラしてたり社長が気に食わない奴はいきなりクビにしたりしてたブラック企業から移ってきた身にはほとんど天国だった。

なにより自分にとってよかったのが、インターネットが会社になったみたいなところだった。会社に @shikakun がいて、あとから @antipop さん( Mr. CTO!)とか @udzura さんとか面白インターネットコンテンツな人も入ってきて、自分が @morygonzalez として存在することが是認される感じがとてもうれしかった。

とはいえペパボでもそれなりに厳しいことはあって、そういうのは一昨年の闇アドベントカレンダーに書いたのでこれも読みたい人は読んどいてください。

社内ではおおよそ一年おきに異動していて FANIC => MuuMuuDomain => minne と渡り歩いた。そう、僕はいま CM やったりしてる minne の中の人だったのです。

3年半の間に PHP を書くこともあったけど、自分の指向性とかを汲み取ってもらい、概ね Ruby を書かせてもらった。ウィンドウズを使えと強要されることはなかったし、 Ruby は書きたい放題だし、毎日会社行くのが楽しかった。

最後にいた minne は本当に良いチームで、みんなでリーンキャンバス描いたりエレベーターピッチを考えたりして、どうやったらサービスが圧倒的に成長できるのかを真剣に考えてた。

エンジニアはみんなできる人たちで、特に初期から minne を支えていた @mizoR さんが凄く、ちゃんとコンピューターサイエンスのバックグラウンドがあるため文系の自分にはない視点で問題にアプローチしていて非常に勉強になったし、また歩く UNIX の哲学みたいな存在で、小さく作ってこまめにリリースし検証することの大切さを教えてもらった。(@mizoR さん作の rake_notification は神 gem なのでオススメです)

新卒入社の @keokent もできる奴で、モバイル端末へのプッシュ通知をサクッと作るしサービス愛も厚いし、風紀の乱れにもうるさくて、Tシャツの裾は常にズボンにインするように指摘されてた。

去年の4月に入社してきた @amacou さんも凄くて、 Ruby/Rails も Objective-C も両方書けて、出張申請とか経費精算さえできればフルスタックおじさんという感じだった。

ムームードメイン時代に仲良くなりプラチナサーチャーで女性ファン急増中の @モノクロメガネ(いけすかないのでリンクはありません) さんに助っ人で来てもらうこともあって、絶対間に合わないだろみたいな無理めなスケジュールでタスクが降ってきたときにもみんなでホワイトボード囲んでワイワイ開発して余裕で終わらせたりして最高だった。モノクロさんは隙あらば Go で Ruby のコードを置き換えようとするところ以外はエンタープライズ力も高いしスクラムマスター業もこなすナイスガイだった。本当にいけすかない。

何をやらせてもスピーディーにこなす若手ネット芸人 @hisaichi5518 さんとも物理的に距離がある状態で仕事したけど、とにかく作り上げるという力はさすがだと思った。チーフエンジニアの @hsbt さんのオラオラと詰めてくる感じの Pull Request もサイコーだった。チームのエンジニアの間では「 @hsbt さんが通ったあとには草の根一本生えない」とよく言ったものだけど、こういう人がいないとフレームワークや言語のバージョンアップとかインフラ構成の大胆な変革はできないことがよくわかった。そういえば @udzura さんという人とも働いたけど、ギャグが寒いこと以外は問題ないです。

デザイナーやディレクター、サポートメンバーも良い人ばかりで、昨日は送別会を開いてもらったんだけど、こんなに良いチームを去るのは残念で仕方なかった。写真はトデガールズに対抗して森井ガールズが結集している様子です。

森井ガールズ

福岡でウェブサービスの開発やってみたいけどどこで働けばよいかわからないインターネットをこじらせたウェブプログラマーの人はペパボの門をたたいてみるとよいと思います。

で、誰?

無名のウェブプログラマーです、このような記事を書いてお目汚しをし誠に申し訳ございません。

なんで辞めんの?

「次に行く理由」があるだけで、「辞める理由」はないのです。

株式会社ドワンゴに転職します(4年3か月ぶり2度目) - Kwappa談話室

僕も同じ気持ちです。

次なにやんの?

Kaizen Platform という会社で働きます。無事試用期間を乗り切れるのでしょうか。ご期待下さい。