Lazuli

らずり

積極的に可愛い LGTM をしていく

背景

いまの会社では pullreq してコードレビューしあう開発体制になっている。コードレビューして問題なければ LGTM とかやる。
ところが最近、可愛い LGTM 画像が貼られるとコードレビューが通った時の嬉しさ(主に俺の)だとかやる気具合(主に俺の)に良い影響を与えることが分かってきた。
ということは、積極的に可愛い LGTM が出来る環境を整えてやれば仕事の効率が飛躍的に伸びるかもしれない(主に俺の)。

f:id:app2641:20151104224101p:plain

LKTM

LGTM 用の画像というと LGTM.in ってサイトが有名なんだけど治安が悪くなってて全然使えないから自分用の LGTM 画像置き場を作ることにした。

LKTM

Looks Kawaii To Me の略。俺の造語。
ここに良い感じの画像を溜めて LGTM していく作戦。

画像に LGTM の文字を突っ込むのは ImageMagick 使ってやれば簡単に出来るので適当にプログラム書いて TumblrAPI でアップロードするようにしてやればいい。

github.com

説明なんも書いてないけど API のトークンを config/application.yml に書いてやって

$ bin/lktm.rb "path_to_image"

とかやると LGTM された画像が Tumblr にアップロードされる。

LTTM

GitHub で LGTM 画像を挿入するには LTTM という Chrome 拡張がめっちゃ便利。
寿司ゆきとか tiqav 画像を簡単に貼り付けられる。

chrome.google.com

ありがたいことに LTTM はソースコードGitHub で公開されているのでこれを fork して LKTM の画像が拾えるようにした。

github.com

ソースをビルドしてデベロッパーモードで Chrome に読み込ませる。
GitHub のテキストエリアで !k と打つと LKTM 画像がプレビューされて挿入出来るようになっている。
これで晴れて最高の LGTM をすることが可能になった。仕事の質もぐんぐん上がるはず。
動作は以下のようになっている。最高。

f:id:app2641:20151104225448g:plain

めんどくさい問題

問題があって、HTTPSGitHub から HTTP の Tumblr へは Chrome のセキュリティ上、通常はアクセス出来ない。
別途ツールバーのところに出る盾アイコンをクリックして Tumblr にアクセス出来るようにしてあげなければならない。

f:id:app2641:20151104233144p:plain

これが毎度やらなければならなくて、めんどくさい。
Chrome 拡張側で回避出来る方法があったら誰か教えておくれ。

pretty_date という gem を作った

github.com

遊びで作ってる Rails アプリで使う用に作った。
こんな感じに使うやつ。

require 'pretty_date'

PrettyDate.format Time.now
# => just now

PrettyDate.format Time.now - 60 * 10
# => 10 minutes ago

PrettyDate.format Time.now - 60 * 60 * 10
# => 10 hours ago

PrettyDate.format Time.now - 60 * 60 * 24
# => yesterday

PrettyDate.format Time.now - 60 * 60 * 24 * 7
# => 1 week ago

で、作ってみたら time_ago_in_words という見事に丸かぶりの機能を見つけて完全に車輪の再発明になった。
まあ考えてみればこういう機能がないわけないよな。
再開発でも学びはあったから前向きに良しとする。

料理の四面体を読んだ

料理の四面体 (中公文庫)

料理の四面体 (中公文庫)

確かあんちぽさんのブログで紹介されていて気になったので買った。

著者の軽快な言い回しでアルジェリアの羊肉シチューは豚のしょうが焼きに変わり、英国式ローストビーフは鯵の干物へと変わる。
美食家の著者は世界を旅して様々な料理を食してきて気付いたのは料理には原理があるということで、それさえ分かってしまえば素材の工夫で無数の料理を作れるということだった。
卵で作る 100 の料理だとか、鶏料理で 365 日なんてものは知らなくてもいい。
料理の原理、すなわち料理の四面体さえ分かれば毎日の献立に悩まくても好きな料理を作ることが出来る。

ということを説明している本。
ひとつの料理からいくつもの料理に繋がっていくのはなんだかパズルを解いているようだった。
こうやって論理立てて料理方法を解説してる本は多くなさそう。面白かった。

ちなみに著者が提言している料理の四面体はこちら。

f:id:app2641:20151004181841g:plain
サラダの果て、はじまりの料理/新入生のための一人飯ハック 読書猿Classic: between / beyond readers より

Sendagaya.rb #118

sendagayarb.doorkeeper.jp

Sendagaya と言いつつ千駄ヶ谷でやっていない Ruby 勉強会に参加した。
Ruby 勉強会なのに React について勉強した。
Redux は謎フレームワークで説明を聞いたけどよく分からなかった。
遊びで作ってるやつで fluxxor 使ってるけどあれはもう時代遅れな感じで、少し分かってきたかも?と思っていた矢先にこれだ。
JS 界隈早すぎてついていけない。

明日は React meetup #2 がある。
キャンセル待ち 20 人目くらいだから果たして行けるのかどうなのか。

reactjs-meetup.connpass.com

translaunder という gem を作った

What is TransLaunder?

新しい会社に転職して Ruby を使うようになったけど経験がほとんどない。
勉強がてら gem でも作ってみようということで作った。

translaunder | RubyGems.org | your community gem host
app2641/translaunder · GitHub

translaunder は Google 翻訳の翻訳結果を複数回翻訳するというやつ。
使い方は簡単で、

translaunder ja en 事なきを得る
=> 私はKotonakiを取得

と元の言語、翻訳したい言語、翻訳したいテキストを指定してあげればよい。

translaunder ja en 勝算はあるのか
=> チャンスはあります
translaunder ja en 日本じゅうがきみのレベルに落ちたら、この世のおわりだぞ
=> 日本は一度を通じてあなたのレベルにまで下がりました

こんな感じで遊べる。

実装

実装は似たような機能の gem である termit を参考にした。
module の書き方が読んでも意図不明なところが幾つかあったけど他はすんなり理解出来た。
クラスの分け方は普通のオブジェクト指向の分け方だから特に苦労せずクラスも書いていけた。
問題は Rspec で、何やってんだかさっぱりだし書き方も謎くてひとつずつ意味を理解することに努めた。
テストコードを読むにあたり下記のエントリを参考にした。
中でもモックを使う話は分かりやすくて参考になった。ありがたき。

qiita.com

qiita.com

qiita.com

モックと言っても基本的にやらせたいことは PHP であろうと Ruby であろうと同じなので、書き方さえ分かってしまえば理解は早かった。
まだ基本的なテストしか書いてないけどうまく出来てよかった。
見事、カバレッジも 100% だ。

次は Rails アプリを何か作ってみたい。

東京に引っ越してきたけどネットがまだ開通してない。ネットないと死ぬ。
なんとか携帯でテザリングして食い扶持を凌いでる感じ。ところが上限3Gの契約にしてたせいですぐに制限に引っかかって詰んだ。
めっっっっっっっっっっっっっっちゃ遅い。あの高速な Google でさえ遅い。話にならん。
まだ調べたいことやネットで買いたいものがあったから困った。

そうなるとネカフェかコワーキングスペースか。
とりあえずネットに繋げさえすれば良いからコワーキングスペースで探す。

bushi2.com

これ行ってきた。
500円でいつまで居てもいいようだ。よい。
飲み物はコーヒーやティーバッグ、水は無料。
家はまだフローリングに直に座ってダンボールデスクで作業するしかないし、椅子に座れて机があるの最高だ。プログラムも書ける!
良い場所だったからまた行きたい。

やっぷしーーーーーーーーーーーーーーーーーーーーーーーーーーーーー #yapcasia

東京に引っ越してきて仕事始まるまで暇だし、さっそく YAPC::Asia Tokyo 2015 に行ってきた。
今までは愛知に住んでいたし、東京まで出てくるのお金もかかるしで参加出来ていなかったけど無職なおかげで全日参加出来て良かった。
最後の YAPC なのはとても残念なことだ。

前夜祭

前夜祭はしょっぱなから大幅に遅刻した。ビール貰い損ねてくやしい。

yapcasia.org

途中入場。立ち見の人もたくさん居た。
遅刻したせいで聞き始めてすぐに終わってしまったので内容はちゃんと聞けなかった。
質疑の時間が長くて YAPC はこんな感じなのかと驚いた。


yapcasia.org

ブクマを稼ぐにはみたいな話が大部分を占めていた。
面白い話だったけど、タイトルだけ見てブクマする人も多いだろうし(特に長文では)一概には言えない話だよなあと思った。
ブログ書くためのモチベーションだとかネタをどう探すのかとかそういう所をもっと聞けたら良かったな。
トーク内容 dis ってるわけではないです。

一日目

Miiverse の話聞きたかったけど前日同様遅刻した。最悪。
昼休みに次の職場の人たちと会った。再来週からですねえみたいな話をした。

yapcasia.org

フロントエンドの事情よく分かってなかったので聞いた。
Angular とか React, Flux あたりは分かってるけど Browserify とか BABEL とはなんぞやという感じだったので、なるほどなれて良かった。
フロントエンド、混沌としてて日々追ってないとすぐにまた置いてかれそう。


yapcasia.org

はてなにおける Perl の苦労話。ベストトーク賞取っててすごい。
ひとでさんくんの声、こんな感じかーと思った。
あと、はてなでも謎のフレームワーク動作や不思議コードに振り回されたりしてるんだなあと思った。


yapcasia.org

Electron 気になってたので聞いた。
まあそんなに真新しい内容ではなかった。Electron 自体は面白いプロダクトなので何か作ってみたいと思わされた。


yapcasia.org

esa.io は次の職場でも何かとつながりがあるようなので聞いた。鳥かわいい。
色んな技術勉強してこれからも色々と作っていきたい。

部屋に冷蔵庫が届くということで、LT や懇親会は参加せず帰宅。
懇親会参加したかった…

二日目

二日目はさすがに遅刻しなかった。聞きたかったやつは全部聞けた。

yapcasia.org

GCP の話。
いやもう Google は扱うデータの規模が大きすぎて驚きばかりだった。
今まで俺がひーこら言って扱ってきたデータはなんだったのかという気分になるがめげずに生きていきたい。


yapcasia.org

式年遷宮アーキテクチャというやつの話。
頑張って試行錯誤してシステム作ったけど結局うまくいかねえじゃんってのあるあると思いながら聞いた。
まあでも失敗しても得られるものはあるのでそういうので凹んでいてはいけない。


yapcasia.org

Blue Green Deployment の話。前職でブルーグリーンやってたけどメリットはすごく明確でやりたい!ってなるけどそれが出来るようになるまでの前提条件というかシステム構築はめっちゃ大変で、このトークも紆余曲折の話してて分かるぞ!って聞いた。
その半面、うまくブルーグリーン出来た時は全てがカチッと辻褄が合って動いてくれて嬉しいんだよな。


yapcasia.org

ネタトーク会という感じ。
ウェブで見たことある人たちがたくさん集まってその人達がトークしあってるってのはおおおーと思うところがあった。
一時間で終わってしまうとは勿体無い。


yapcasia.org

Golang 使ったこと無いけど LT の場所取りも兼ねて聞いた。
ライブコーディングがめちゃ良かった。そうやってコーディングするのかーって見てた。
欲を言えば Emacs じゃなくて Vim が良かったな!!!!!!!


yapcasia.org

全編面白かった。
時間切れになる人はいなくてさすが YAPC の LT だと思った。
YAPC は大規模勉強会じゃなくてウェブエンジニアのお祭りだったんだなとこの時に思った。


yapcasia.org

初参加だったのに最後の YAPC でこれでもうないのかーと思うと感慨深かった。
俺はそれほど技術に長けているわけではないし、こういう場所に立つことはたぶんないと思うけどイベント運営なら役に立てそうだと感じて機会があれば何か運営に携わってみたいなと牧さんの話を聞きながら思っていた。
お疲れさまでした。