2016-05-19(木) [長年日記]
■ sprockets + rails-assetsを卒業して、npm + webpackへ移行
1年少々前、Webアプリのフロントエンド開発環境として暫定的にRails Assetsを使うことにしたのだけど、あれからjs界隈もしだいに落ち着いてきて*1、いろいろと勝ち組っぽいツールが決まってきた気がする。
そんなわけで、徐々にそっち方向へ移行してこうかな、と。とくにRails Assetsはサービス自体が終了の方向らしいので、まずはそのへんから。jsのパッケージマネージャとタスクランナーの勝ち組として、おれの観測範囲でみえてる感じだと:
- パッケージはpackage.jsonをnpmで管理するのが一番シンプル
- タスクランナーもnpmでいいよもう……という流れが強そう
- AltJSは使わずにES2015、ビルドにはWebpackとBabelの組み合わせ
ってところか? 少し前に話題になった「10年のツケを支払ったフロント界隈におけるJavaScript開発環境(2016年4月現在)」にだいたい同意だわ。
とりあえず自前のWebアプリの雛形用に作ってあるsinatra_skeletonをベースに改造。公式ドキュメントでよくわからんところは以下の記事を参考にした:
ローカル環境で動かすのはわりと簡単にいけたんだけど、これをHerokuに持っていくのに少し苦労した。具体的にはWebpackによるビルドを(ビルド後のファイルをリポジトリに入れることなく)、Heroku上で実行させたい。
まずは現状buildpackとしてheroku/rubyのみのところに、heroku/nodejsを追加:
% heroku buildpacks:add heroku/nodejs
これに加えてpackage.jsonでは通常developに依存するように書くBabelやWebpack関連パッケージもぜんぶproductionに入れてしまうことで、これらが全部インストールされる。
あとはデプロイ後に「webpack -p」が実行されればいいんだけど、Herokuでこういうファイル生成系のアクションをするのはけっこうめんどい。一番スマートにやるのはwebpack用のbuildpackを作ることなんだけど(じっさいいくつか実装が公開されている)、そこまでの話じゃないよなぁと思ったので、こんなbin/run.shを書いて:
#!/usr/bin/env bash npm run production bundle exec puma -C config/puma.rb
Procfileでこれを指定した:
web: ./bin/run.sh
ひどい手抜きである。が、充分実用的だ。Webpackのビルドが遅いのでHeroku appの起動に時間がかかるのが難点だけど(←わりと問題だと思うが当面は気にしない方向)。
そんなわけで、雛形は移行できた。プルリクという形で作業内容が残るのは良いな。引き続き既存アプリを移行していこう。
なお、jQueryは主にAjaxのために使ってるけど、これは代替品を探さないと(axios?)。jQueryプラグインへの依存も徐々に減らして自前で実装するかね(Reactだとそれも簡単そう)。
残るはテストとUIだけど、それはおいおい。UI方面はBootstrapはもうやめて、Material DesignとCSS3使って自力でやった方がいい気がしてる。
*1 錯覚かも知れない(笑)。
2016-05-14(土) [長年日記]
■ 川崎 3-1 神戸@等々力陸上競技場
今日勝てば、(浦和の結果しだいで)暫定1位になる大事な試合なんだけど、その前座にブラジルから3人(アウグスト、ジュニーニョ、ジェシ)も呼んでの20周年のOB戦があって、どっちかつーとそっちの方がメインイベントではないかという。10周年のときも同じようなこと書いてるな(笑)。
懐かしい服装をしようということで、懐かしの「みんなでJ1」ビブスを着用。写ってないけどタオルマフラーはまだJリーグが牧歌的だった時代の「川崎代表」バージョン。
試合はジュニのゴールやアウグストのコーナーキックからのゴールなど、なかなか見どころの多い楽しいものだった。松本育夫監督率いるチームの名前が「誰かに合わせてくるぞ」だったりして。やはりこういうお遊びは派手な方が良い。
10周年のときの本番の試合は負けてしまっていたけれど(まだ磐田が強かった時代)、今日の神戸は下位チームだけあってかなり余裕の試合運び。今季、等々力ではじめて勝ち試合を見たよ……。
浦和が引き分けたのでこれで暫定首位。
今日はかみさんの友人2人といっしょに観戦したので、後夜祭はパスしていつもの中華料理屋で祝杯。明るいうちから始めたのに、けっこう遅くまで飲み食いしてしまった。
2016-05-13(金) [長年日記]
■ サボテンの植え替えをした
2年前にもらって、徐々に成長していたサボテンだが、そのままデスクから窓際に居場所を移しておいたところ、ぐんぐん大きくなってジャムのビンにはあまりに似つかわしくなくなってしまったため、鉢を買ってきて植え替えた。
仕事が終わったあと、ビルの給湯室で植え替えたんだけど、なにしろけっこうみっちり詰まるまで成長してしまったので、取り出そうにもトゲが刺さって痛いという。サボテンなんだから当たり前なんだが。なんとか土をほじって外に出し、痛くないように紙で包んで植え替えた。
これでだいぶ余裕ができたかな。百均で買った鉢はプラスチック製だけど、底に栓がついていて水が流れ出ないようになっている。入れすぎたら栓をあけてジャーっと出せばよいので、鉢皿がいらないというすぐれもの。百均はすごいなぁ。
■ デレステにスカウトチケットが登場 & シンデレラ総選挙結果が出る
デレステに突如「スカウトチケット」なるものが登場して、通常の10連ガチャ相当の価格で「限定でない任意のSSRがもらえる」チケットがおまけについてくるという。なにそれすごい。10連回せば無償でSSRがもらえるってことじゃないですか。ひゃー。
ではさっそく:
生きる気力がわいてきました!! (おおげさ)
マジメな話、ソシャゲのガチャなんて基本的に「狙ったSSRなんて出ない」ものなので、担当アイドルのSSRが入手できずに腐っていたPのモチベーションアップとしてはいい施策だよなー。そういう人たちはそもそもガチャに異常な金額を投入するほど射幸心を煽られないタイプなんだし。
このサービスはグラブルからの輸入らしいけど、グラブルでは不定期に実施されてるらしいので、デレステでもどんどんやってくれたまえ。まぁ、それにしたって限定SSRは入手できないわけだけど。
同じ日の夜には第5回になるシンデレラガール総選挙の結果発表があって、ついに卯月がシンデレラガールに。アニメであれだけ活躍して、ガチャでの後押しがあったのだから当然っちゃ当然だけど、今回を逃せば難しかったかも知れないわけで、いいタイミングだ。
投票券がガチャよりイベント報酬に比重を置かれていたおかげで、従来よりも札束で殴りあう雰囲気は薄まって、結果の読めない面白い選挙になったね。運営的には収益性は下がるだろうけど、サステナビリティは間違いなく高いわけで、こういう健全化は良いな。それでも「無冠の女王」こと楓さんがぴったり2位につけてるのは恐ろしい(笑)。
健全といえば、毎回1位が違うのもPたちのバランス感覚のたまものなので、いつも感心する*1。もちろん「新しく声がつくアイドルをできるだけ増やす」という暗黙の了解があるからこそだけど。
というわけで、今回手に入った投票券をぜんぶつっこんだ森久保乃々が堂々の4位でCV付き、CDデビュー決定ですよ。うひゃひゃ。あと三船さんとしゅがはもデビューだ。嬉しいなぁ。
*1 隣のスクストなんて夜木沼伊緒の3連覇ですよ。なんて面白くない。