Thanks Driven Life

日々是感謝

SmartHR に入社していました

メリークリスマス(昨日)。皆様いかがお過ごしでしょうか。

去年は Emacs で雪を降らせていた 私ですが、今年も無事平和に過ごしております。

そんなこんなで2017年もそろそろ終わり。 今年は私の人生としては(かなりの)変化の年でもあったため、一年を軽く振り返りつつ、近況をご報告致します。

概要

2017年9月から SmartHR で働いています。職種はサーバーサイドエンジニア。 前職は PHP でしたが、今は Ruby on Rails をがんばっています。

以降、会社の説明はあまり無いので、そちらに興味ある方はこちらへお願いします

https://smarthr.co.jp/recruit

入社の経緯

2009年3月に大学院を卒業し、同年4月より沖縄の SIer (つまり前職)に新卒で入社。以降 PHP をやったりやらなかったりで気づけば2017年。 特に不満もなく(悪く言えばだらだらと過ごし)、また新しい年度が始まるんだなーという4月を迎えた頃

「あ、転職するか」

というモチベーションが一気に盛り上がりました*1。 この勢いを止めないようにしようと、次の職場を決める前にいろいろチーム内で引き継ぎなどをしつつ、スケジュールもだいたい決まった6月を過ぎたあたりで以下をツイートしました。

ありがたいことにいくつか声をかけていただきまして、良きタイミングでいろんな会社に遊びにいったり Skype などでお話を伺ったり。 いろいろありましたが最終的に現在の SmartHR でお世話になることが決定しました。

入社してどんな感じか

楽しいです。

「労務」という(私が思う)通常のエンジニアであれば直接接点のない領域に対してハックしていくという業務がとても新鮮で、良きです。 キャリアパスとしても、HR Tech という分野の最前線に立っていろいろ触れられるというのも強みだと思い、そこもモチベーションに繋がっています。

エンジニアチーム(に限らず他のチームも)凄い人ばかりで、日々勉強といった感じです。がんばりたい。

人見知りの私が慣れ親しんだ環境から離れて大丈夫か?と心配の方も居らっしゃると思います。 大丈夫、僕は元気ですということを示す、会社の人たちとの心温まるやりとりです。

業務以外

  • 人生初めての一人暮らし & 引越し(沖縄 → 東京) 。引越し前後はさすがにドタバタしていましたが、今はまったりしています。
  • 東京の勉強会やイベントにも顔を出しやすくなったけど、いざ現地にくるとなかなか行かないことがわかる
  • 前職は「夏はかりゆしウェア、冬はスーツ」という感じでしたが今は私服なので楽
    • スーツ時代も、服考えなくて良いというのはありましたが、ネクタイがつらかった

おわり

おまけ

初転職してあらためて知ったのですが、前職で一緒だったチームメンバーも、やっぱりみんな凄かったんだというのが再認識できた。そこが一番嬉しいかも。

*1:本当に何の不満も理由も無く、周りからも「急にどうした」みたいなリアクションをいただきました

builderscon tokyo 2017 に参加しました

完全に遅刻した


というわけで builderscon tokyo 2017 に参加しました。 去年は参加できなかったのですが、感想ブログとかを見て面白そうだなー今年は行きたいなーみたいな気分だったので良かった。

以下、雑に参加したセッションの感想

前夜祭(8/3)

撤退技術スペシャル祭り。うんうんそれも人生だよね

1日目(8/4)

2日目(8/5)


というわけ前夜祭もあわせて二日とちょっと。お疲れ様でした。楽しかったです。

個人的には朝食が美味しかったのも良かった。朝食最高!!

来年もあるなら是非参加したい

エクストリーム二度寝

説明しよう!!エクストリーム二度寝とは「朝、寿司を食ったあとに二度寝する」ことだ!!

実施例:

  1. 4:55 起床。諸々外出準備
  2. 5:30 築地市場大和寿司 到着。開店時間だが既に10人ぐらい並んでいて且つ店内は満席
  3. 5:55 店に入る
  4. 5:56 俺「おまかせで!」
  5. 6:05 職人「セットはこれで終わり」俺「おすすめ追加」「本マグロくってけ」「ひゅー♪」
  6. 6:10 店を出る
  7. 6:30 寝床に戻り、二度寝を開始する
  8. 8:30 起床

エクストリーム二度寝の欠点は起床後の出社欲が著しく低下することだが、本日僕はお休みです。

Current status

Wataru MIYAGUNIさん(@gongo)がシェアした投稿 -

デレステイベント「モーレツ★世直しギルティ!」への参加と振り返り

まずはイベント参加者の皆様、お疲れ様でした。 今回は私が推している堀裕子さんがランキング上位報酬ということで、「アイドルマスター シンデレラガールズ スターライトステージ」(以下 デレステ) をプレイ開始してから初めて 「2000位以内に入ってスターランク15のユッコ*1を手に入れるぞ!!」 と気合いを入れたイベント参加となりました。せっかくですので、イベント参加記録みたいなのを残そうと思い、本記事を作成しております。

デレステが配信開始されてから1年半以上経過しているので、今更「イベントの効率の良い進め方」みたいなのは書きませんが、 今後また同じように走るイベントが出てくるかもしれません。その時のために振り返りをし、反省点や次に繋げようということで、 どちらかというと個人的な備忘録みたいなものになります。あらかじめご了承ください。

イベント開始前

前々から「そろそろセクシーギルティのイベントきてもいいのでは?」と思っていた矢先のこの告知。 しかもゲーム内の予告音声でユッコが1番目ということで、「これはランキング上位報酬…つまり走るってことだな?」となりました。 この時点で、スタミナドリンクの在庫を確認しました。

正確には、プレゼントボックス内の最古スタドリは 2015年12月 でした。約17ヶ月分の無期限スタドリ。これなら大丈夫だろうとまずは一安心しました。

イベント期間中

突然ですが、イベント初日から最終日までの、スタドリ使用回数や取得ポイント数などをまとめた表がこちらです。

日付 イベントpt スタドリ10 スタドリ20 スタドリ30 スタドリMAX(84) 合計(スタミナ)
5/19 2678 10 10 10 0 600
5/20 5156 10 12 7 0 550
5/21 14113 10 14 10 11 1604
5/22 16237 0 1 0 0 20
5/23 20307 0 0 0 0 0
5/24 42003 10 11 10 0 620
5/25 51105 10 10 10 0 600
5/26 52480 10 12 10 0 640
5/27 66005 20 21 19 0 1190
5/28 86199 40 30 18 0 1540
合計 120 121 94 11 7364
  • 自然回復したものは含めていません
  • スタドリMAXは、現在の PLv が 184 で、その時点でのスタミナ最大値が84なので、それに併せています

1. 5/19 〜 5/20

この二日間は、スタミナ等倍で進めていました。理由としては「スタイナ消費量に関係なく、1回プレイ毎にエンブレムとは別で pt が 50 貰えるので、2倍でやるよりは経験値効率がいいだろう」という考えでした

2. 5/21 〜 5/23

この日からスタミナ2倍でプレイ。たしかに等倍プレイは経験値効率は良いのですが、時間とリアル体力が削られるので、ちんたらしてられねえ!となりました。

3. 5/24 〜 5/25

後半戦がスタートし、イベント曲が4倍プレイできるようになったので溜まったエンブレムを一気に消費。だいぶポイントが増えました

4. 5/26

慢心の日

この時点で1000位台だったので「まあ大丈夫だろう」と少しだけやってイベント曲もやらずに別のソシャゲをしていました

5. 5/27

ここで2000位ちょいになっていたが、エンブレムも5000個ぐらいあって、まあ大丈夫だろうとなって追い込みをかけず

6. 5/28(最終日)

ガーディアンズオブギャラクシー2を見にいったり夕方までだらだらしており、 「よっしゃあと2時間がんばるぜ!」と19時から再開した時にはかなりボーダーがやばい状態になっていました。前二日間のツケが一気にきた気分。

2時間ずっと、楽曲時間が2番目に短いらしい「キミとボクのミライ」をひたすらプレイ*2し、エンブレム600個あつまったらイベント曲をやる、というフローを組みました。 最後は20時59分40秒あたりで最後のイベント曲を開始し、どうにかエンブレムを使いきって終了。めっちゃ疲れた。

イベント終了後

スタドリ在庫

プレゼントボックス内に残っていた最古は 2016年11月 のスタドリでした。全部使い切るといいつつ、結構残りました。

PLv や「堀裕子」ファン数の推移

  • イベント開始前
    • PLv 180
    • ファン数 256万7699人
  • イベント終了後
    • PLv 184
    • ファン数 365万2376人

イベント中は、ほとんど「堀裕子4人 + 回復役1人 *3」という編成でプレイしていました

(If..) もしスタドリの在庫が無く、スタミナ回復を石を割るだけでイベントを走ろうとした場合

今回のスタドリによる回復量は、上表のとおり 7364 です。これを、例えばスタミナ最大値84のプレイヤーが石を割ったとすると

7364 / 84 = 約 88 回、石を割る

つまり 88*50 = 石4400 個 を割ることで2000位以内に入れる、ということでしょうか。 ショップのスタージュエル購入にある「スタージュエル4200個」が5000円なので、 5000円で推しのスターランク15のアイドルが手に入る と考えれば、如何でしょうか。

まとめ

ふりかえりの総括をすると

  • 最初から2倍プレイで問題なさそう
  • スタドリ在庫そのものには余裕があったが、肝心のプレイヤーの体力の問題が強い
  • 1日1200ぐらいスタミナ回復するぐらいのペースでいけば2000位以内はそこそこいける
  • 最終日はボーダーが2万増える(9999個までエンブレムを溜めた状態で全部使うと約2万ポイント取れるので、そういうことかも)

今回、初めて2000位以内がんばるぞ!とやったんですが、それを体験することで、上位3人のバケモノっぷりがより身に染みましたね。なんなんですかね…

とりあえずイベント曲もコミュも楽しかったので満足!!

おまけ

今回のポイント数とかをまとめた表は Emacs の org-mode で管理していました

https://gist.github.com/gongo/f2f9a9ca043895de5d460165cf7a3577

Raw を開くと TBLFM とか見れるので、もしお使いになる方が居らっしゃれば御自由にどうぞ

*1:正確には、ポイント報酬やランキング報酬で複数枚手に入るカードを全て掛け合せるとスターランクが15になる

*2:1番短いのは Snow Wings みたいですが、実は苦手で事故が怖かったので、油断してもどうにかなるキミとボクのミライにしました

*3:ライフ回復もってるガシャ版のSR裕子は未所持…

Turnip 3.0.0 & turnip_formatter 0.6.0 リリースしました

新年早々にリリースするつもりだったけど新年度になってしまった。
明けましておめでとうございます。本年度もよろしくお願い致します。

内容

メインの内容としては以下のとおりです。

  • turnip
    • Gherkin 4 の対応
  • turnip_formatter
    • エラーシナリオの各パターンへの対応

Gherkin 4 対応はだいぶ前からできていましたが、formatter が終わったらリリースしようと先延ばしにしていたらこんな時期に。

その formatter は、before/after hook はともかく、RSpec 3.3 ぐらいから導入された aggregate_failures に対応するのがそこそこ大変でした。

あとはリファクタ枠として、クラスがごちゃごちゃしていたのでそれっぽく分割したり書き直したりしていました。

おわり

忙しかった*1

*1:ソシャゲぇ

shellcheck を Docker で実行する

TL;DR

経緯

  1. シェルスクリプトを書く時、ちょくちょく shellcheck のお世話になる
  2. いざ実行しようとすると、このマシン shellcheck インストールしてないじゃん!!となる
  3. インストールするかー。DebianCentOS であれば apt や yumリポジトリ提供されてるな
  4. でも今は macOS 使ってるから、 ドキュメント に従って

     $ brew install shellcheck
    
  5. ビルド終わるまで待つか

     _人人人人人人人人人人人人人人_
     > 一時間待っても終わらない <
      ̄YYYYYYYYYYYYYY ̄
    

私の環境だけかもしれませんが、めっちゃ時間かかります。 もちろん、一度ビルドしてしまえばあとは問題なく使えますが、 何かしらの理由で新しい環境に移行した時、またこの時間を過ごすのはよくない。どうにかしたい!!

Docker イメージ

そんなわけで、「ビルドした shellcheck バイナリを持った Docker イメージでもあればいいのでは?」と安易に考え、 とりあえず Docker Hub で探したら当然のように shellcheck 公式の Docker Image が見つかりました。

https://hub.docker.com/r/koalaman/shellcheck/

使い方はドキュメントのとおり

$ docker pull koalaman/shellcheck
$ docker run -v $(pwd):/scripts koalaman/shellcheck /scripts/myscript.sh

docker run するスクリプト

問題なく動きましたが、しかし毎回 docker run ... と書くのもめんどくさいので、適当に runner を作りました。

#!/bin/sh

(
    dir="$(cd "$(dirname "$1")" && pwd)"
    name="$(basename "$1")"

    docker run --rm -v "${dir}:/scripts" koalaman/shellcheck "/scripts/${name}"
)

こいつをてきとうな名前(私は同名 shellcheck にしました)で保存しておけば

$ shellcheck /path/to/script.sh

ってやると実行してくれます。

まとめ

最近(結構前からかな)は各ツールや環境を Docker コンテナに分離する流行を感じるので、追っ掛けてみました。便利。

バグなどの謎の現象に立ち向かうも闇が濃く、どうしても沼から脱出できない時に見るフローチャート

ご査収ください

f:id:gongoZ:20170104233247p:plain

補足

パフォーマンスの出し方は人それぞれなので「私はこんな感じです」というものです。

  • とりあえず「なんかやばいな?」と思ったら休む

    体調的にはもちろん、「これ結構やばそうだな?」という勘所は大事

  • 15分以上(長くても30分)悩んだら周りに聞いてみる

    こういう時はだいたい

    • 視野が狭くなっている(簡単なスペルミスだったり)
    • 暗黙知に触れている(業務だとよくある)
    • とてつもない難問にぶちあたっている

    といったケースなので、仲間にSOSを出した方がチーム全体の進捗も結果的に良くなる、という経験談です。 ちなみに15分の根拠はなんとなくです。

ちなみに、問題に取り組み始めるその瞬間から「15分やってわからなかったら誰かに聞こう」としている場合は、 フローチャートの「30分動いてなかったら運動する〜」とか「飯を食う〜」あたりをすっ飛ばして、すぐ仲間に救援要請しています。 しかし、私達が触れる闇は往々にして突如目の前に現れ、「……ん?なんか動きおかしいな?」となり、気づいたらどんどん深みにハマることがほとんどなんですよね…(例: yak shaving)。

そういった「気づいたら闇に同化していた」みたいな時に振り返ってみましょう。

※ もちろん、「一人の力で沼から脱出する」という目的であればこの限りではありません

まとめ

私もドツボに嵌りやすいタイプなので、なるべく思い出すように心掛けています。