ぽかぽかウンティの自由帳

ぽかぽか動物園から投稿します。

シン・ゴジラの第四形態の姿勢でキーボード打てたら健康的かもね

シン・ゴジラを初めて見て、中の人というかモーションキャプチャー担当の野村萬斎さんの姿勢がすごく健康的に感じた。

あの宝玉を持って胸を張って歩く姿勢、しばらく真似してる。ただし家の中で。

あの体制のまま座ってキーボード打てたら仕事中も健康的でいられると思うんだよね。

だからセパレート式キーボードを買って机の下に貼り付けて椅子の肘当てを適当に調節すればイケるんじゃないかって。

Freestyle2 for PC - Kinesis Corporation » Kinesis Corporation » Where comfort and productivity go hand in hand.

nippondanji.blogspot.jp

こんな健康的なスーパーエンジニアが言ってるんだから間違いない。

kitajimaquatics でも「綱引きのときみたいにもっと背中を使って泳ぐ」と教わったし。

普段の生活じゃ身体の前しか使わないからなー。

ジャパンマスターズ水泳の結果をスクレイピングした

まだ2回しか出場していないけど、水泳のマスターズ大会のスターターリストや結果ページは時代を感じるテイストになっている。そして年ごと種目ごとの階層になっている。

root ディレクトリは以下。漂うフレーム臭。

http://www.tdsystem.co.jp/

これをチームベースの階層に整形した。年ごとに微妙に文字コードが違ってて小一時間ハマった。2012年より前のデータは 404 not found だった。

github.com

NEW GAME! のオフィスレイアウトいいなぁ

ここ最近、労務とチームに頼み込んで7月からお試しリモートワークをさせてもらってる。

7月は週に1日だけ、8月は週に2日だけ、問題なければ9月は週に3日も家で仕事して良いことになっている。そして今のところ問題は発生していない。

7月の仕事内容は自分1人で1つのプロジェクトを進める感じで、通勤時間がなくなってその分を仕事やプライベートに使えて圧倒的に時間と空間効率が良いことがわかった。アウトプットも自他ともに認めて出せた。

「あれ?会社に行く必要なくね?」「そういえば会社って無駄に空間と時間の縛りキツくね?」と感じてた頃からリモートワークの方が効率がいいことは色々な記事を読んで予測はしていたが、予想以上に効率的と判明して非常に良かった。プログラマでホント良かった。

しかし8月は同じプロジェクトに追加で1人アサインされて、スキル的にその人の面倒も見なくてはならないので、ここで本当のリモートワークの利点欠点が見えてくると思う。

8月が問題なければ9月は週2日しか出勤しなくて良くなり、かなり時間的に余裕のある人生が待っている。8月は勝負どころである。

話は変わるが...

newgame-anime.com

今期も安定のまんがタイムきらら枠。こんな職場だったら逆にリモートワークなんてやってる場合じゃねぇ。私もズボン脱いで会社に泊まるわ。逆にリモートライフになるわ。

しかしこの4人で1ブロック、普段は対角を向いて座り、団欒時は中心を向いて話し合えるオフィスレイアウトいいなぁ。非常に落ち着く。壁もあるから葉っぱも必要ないし。ちなみに私は会社で葉っぱ2枚刺しである。

matome.naver.jp

空調戦争の回も面白かった。私は25℃で妥協しているが、それでも27℃に上げられる。しまいにはパネルに28℃推奨とシールが貼られる始末。役所並に思考停止である。断固として25℃に下げてやる。てめぇら冬場は暖房27℃にするくせに。血が通っていないんじゃぁないか。

北島康介選手の弟と同じ組で100m自由形を泳いだけど去年より1秒遅かったジャパンマスターズ2016千葉国際水泳場

やっぱ日々気持ちよく泳いでるだけじゃベストタイムなんて出ない。ゲロ吐くくらいキツイ練習しないと進歩はしない。この悔しさを来年まで何とか覚えていたい。。
でも少しは懸垂効果出て欲しかった... 期待したのに...

f:id:proxy0721:20160716094044j:plain
f:id:proxy0721:20160716142535j:plain

北島康介選手の弟の亮二さんは最近水泳始めたらしいのにこのタイム。化け物か... ハンドボールやってたらしく、身体はできていた感じ。

細川大輔選手は相変わらず速くて今年も52秒台だった。

自分は今年は前半31秒だったらしく、後半37秒。スタミナ不足ってやつや...

今年 http://www.tdsystem.co.jp/Masters/JM2016/013.HTM
去年 http://www.tdsystem.co.jp/Masters/JM2015/013.HTM

How we can join multiple tables, aggregate multiple columns, and sort by its aggregated columns on the Rails ActiveRecord?

RailsActiveRecord で複数テーブルを結合して複数カラムで集計して、その集計結果でソートしたい場合のレールの乗り方がわからなかったので色々と試した結果、疲れた。

例えば以下みたいな普通の SQLActiveRecord::Relation で組み立てて、かつ ActiveRecord::Base を継承したモデルや便利な Gem のインターフェースを使う場合の話。

/* student has many scores */
SELECT
  students.*,
  AVG(scores.math) AS avg_math_score,
  AVG(scores.english) AS avg_english_score
FROM
  students
    INNER JOIN scores
      ON students.id = scores.student_id
WHERE
  students.id IN (1, 2, 3)
GROUP BY
  students.id
ORDER BY
  avg_math_score DESC

github.com
github.com

結論から言うと eager_load や preload や includes などの Association cache 機構には頼れなかった。そして Association での Draper gem の利用を諦めた。

Students
  .select(students.*)
  .select('AVG(scores.math) AS avg_math_score')
  .select('AVG(scores.english) AS avg_english_score')
  .joins('LEFT OUTER JOIN scores ON students.id = scores.student_id')
  .group('students.id')
  .order('avg_math_score DESC')

で Student モデルに avg_math_score や avg_english_score のメソッドが生えた形で結果配列を取得できるようになる。Kaminari Gem のページネーションはそのまま使える。しかし N+1 クエリを防ぐためには Association での Draper Gem は諦めざるを得なかった。

Rails5 だと left_joins というクエリインターフェースが追加されているみたいなので、バージョン上げたら試してみようと思う。

qiita.com

includes は内部で条件に応じて eager_load や preload の挙動となる。

qiita.com

preload は絞り込み条件が付くとエラーになるので今回の要件ではそもそも使えない。

eager_load だと内部で t0_r0 みたいに列名を管理してモデルオブジェクトをキャッシュしているみたいで、その過程で独自に select で追加した集計結果列が捨てられてしまっていた。さらに内部で意図しない壊れたカウントクエリが発行されてしまいエラーになった。

前提として arel とかは個人的には手を出したくない。もっといい方法がないか引き続き探ってみたい。

紅蓮の弓矢号(笑)の値上げ

無理して毎日ネオサイタマからトーキョに通勤して働く人たちに追い打ちをかけるかのごとく、西武線の特急料金が値上げする。

f:id:proxy0721:20160616194809j:plain

しばらくこのタリフの見方がわからなかったのはここだけの話。

それはそうと2018年にレッドアロー号の新型が出るらしいが、社畜を守る甲鉄城のごとく今後も走り続けて欲しいと思う。

tetsudo-shimbun.com

しかし池袋までなので、そこから先は山手線で結局カバネになってしまう。

進撃の巨人とのコラボはCAが絡んでいたのか。知らなかった。

www.cyberagent.co.jp

会社とのリモートワークの交渉が難航している

どうオブラートに包んでもネガティブな理由しかない。

  • 満員電車が嫌、満員でなくても日々往復3時間が通勤に取られるのが嫌
  • オフィス環境の劣化、集中できない、暑い、うるさい、狭い、椅子格差など

だから「いやチームとしてのパフォーマンスを先に考えて欲しい」って言われると何も言い返せない。

そして引き続き自分の 3h/1d が通勤で消費されることがほぼ確定している。

正直転職も視野に入れてはいるが、果たしてどうなることやら。

労務担当者や上長、他チームのエンジニアに聞いて思ったことは、職種によってリモートワークに対する温度感が違い過ぎるという点。

エンジニアは皆「あーできたらいいね。別にネットが繋がればどこでもできるし。必要なときだけ会社来ればいいし。」

非エンジニアは "Hmm..."

何のために Atlassian 製品使ってるんだろうね。

やっぱ非エンジニアにはエンジニアが何をやってるのか見えてないんかな。

というか信用されていない感がハンパなくて泣けてくる。

もう6年近く勤めているのにな。

転職かなー。