B-Teck!

お仕事からゲームまで幅広く

【雑記】2019年よかったものたち

あけましておめでとうございます。あけてしまいました。
ホントは年内に書こうと思ってたのに冬休み前からずっとデス・ストランディングしていたら冬休みどころか明けて一週間も経っていたんですよね。
そこから書き始めた記事なので、公開がこんなに遅くなっちゃいました。

さて、昨年も様々な作品に触れたり、ものを買ったりしたんですけど、個人的に買って・触れてよかったなと思うものをざっくり書いておこうと思います。

映画

実は映画を見るのが好きで、毎年結構な本数を見ています。
去年はちょうど50本でした。
その中でも年間で一番、というかともすればここ数年で見た映画の中でもっとも良かったと思ったのが、「search/サーチ」です。

Search/サーチ (吹替版)

Search/サーチ (吹替版)

  • 発売日: 2019/02/13
  • メディア: Prime Video

行方不明の娘の行方を探るため、ネット上の記録を追いかける父親がたどり着く真実とは…?というストーリー。
何を書いてもネタバレになってしまう気がするので詳細は語りませんが、サスペンス・スリラーなどが好きな人は是非見てほしい映画です。

ゲーム

結婚してからめっきりゲームやる頻度が減っちゃったんですが、2019年にプレイして久しぶりにドハマリしたゲームが下記2つです。

【PS4】Detroit: Become Human Value Selection

【PS4】Detroit: Become Human Value Selection

  • 作者:
  • 出版社/メーカー: ソニー・インタラクティブエンタテインメント
  • 発売日: 2018/11/21
  • メディア: Video Game
デトロイトのプレイ感はまさしく自分の選択肢によって変化する映画といった感じで、自分の決断・選択・思考が反映されて紡がれるストーリーは没入感が強かったです。
プレイしている間は正直寝食を忘れてプレイしてしまうほどでした。
【PS4】DEATH STRANDING

【PS4】DEATH STRANDING

  • 作者:
  • 出版社/メーカー: ソニー・インタラクティブエンタテインメント
  • 発売日: 2019/11/08
  • メディア: Video Game
デス・ストランディングは、コジプロはまさしく映画的なゲームを作りたいんだなぁという思想が強く感じられました。
リアルに描かれた地形や天候、キャラクターの動きによって様々な選択肢が生まれている配送ルートは、プレイヤーそれぞれだけのプレイ後感を残すことうけあいです。

こうしてみると、インタラクティブで映画的なゲームが好きなのかもしれないですね。
あまり自覚してなかった。

買ってよかったもの

エスケイジャパン Jaime 食器洗い乾燥機 工事不要 SDW-J5L

エスケイジャパン Jaime 食器洗い乾燥機 工事不要 SDW-J5L

  • 発売日: 2019/01/21
  • メディア: ホーム&キッチン
これは工事不要でキッチンに置くだけで洗える食洗機です。手頃な値段で、キッチンに置く場所確保するだけでよいのが最高でした。
手で給水してやらなきゃいけない面倒さはありますが、汚れも割とよく落ちて手洗いより全然楽なので、家事の手間が格段に減りました。

2019年に手に入れたあらゆるものの中で最高の買い物だったのがこれです。
運動や睡眠を計測するようになったことで、あまり意識できてなかった生活の改善に意識が向き、毎日歩くようにしたり、寝起きの時間をちゃんとするようにしたりできるようになってきました。 この値段なのに結構高機能で、↓のようなことができます。

歩数計
心拍計
スマホ通知
アラーム
座りすぎ通知
睡眠計測

GPSはついておらず、スマホと一緒に持ち歩かないとルート拾ってくれないのだけ、注意ですが。
22gくらいしか無く防水で、かなり電池を食う設定にしても1〜2週間は充電不要(充電自体も1時間程度で終わる)なので、文字通り24時間つけたまま生活をしています。
私はAndroidなので、この記事を参考に眠りの浅いタイミングで起きるようにしてみたところ、朝の寝ぼけもだいぶマシになりました。
まだアラーム音で朝起きてるの? Sleep as Android×スマートウォッチでスマートに目覚めよう | あすへん! 〜薙月の明日への変化〜

もし興味があるものがありましたらぜひお手にとって見てください!
今年もよろしくおねがいします!

【雑記】2019 ふりかえり

2019年は、仕事・技術的な面で言えば平坦な年でした。
転職直後かつ、初めてのKotlinを導入した昨年のサバイバル感と比べてしまえば当然かも知れないです。
こなれた業務の中で既知の技術を扱い、たまにGoやRust、Androidに触れる程度でした。
Shibuya.apkやRust.tokyo、PHPConなどに参加して、普段の仕事では触らない知識・知見を得ることで、刺激を受けていたような感じがします。
とはいえ、今年もサービスのサーバーサイドを一つ作り直しさせてもらっていて、それはそれで面白い経験を積ませてもらっているのですが。

今年は29歳、つまり一年を20代で過ごす最後の年だったのですが、年齢的な問題なのか今後のポジション、生き方、キャリア的な面を考える機会が多くありました。
手を動かし続けていたいのはずっと変わっていないんですが、ずっと今の会社にいるのか、どこかへ行くのか、そもそも何がやりたいのか、どういう立ち位置になりたいのか。
仕事を通して人生やプライベートをどのようにしていきたいのか。
考え始めると出口の見えない迷路と言った感じでグルグルと回り続けている気がします。
こういうの、ざっくばらんに誰かに相談出来るといいんですけどね。

というわけで、今年の頭に立てた目標に対してどのくらいコミットできたか振り返ってみます。

ブログ

○ 最低月1以上
× 年40本以上
△ PV 15000/month

毎月ブログを書くことはできたものの、昨年に比べて大幅減。
業務で新しい技術に触れることが少なかったのが遠因。
個人で技術に触れる時間をもっと取れるよう、効率的に動けるよう心がけたい。

f:id:beatdjam:20191227120858p:plain 夏頃に累計PV50万を達成し、一時は月間15000に届いたものの、 9月のGoogleアルゴリズム変更の余波(+独自ドメイン移行の影響?)が甚大。
月間で10000に届かない状態となってしまっている。

競プロ

× 緑コーダーになる
× 月1回はRatedなContestに参加
× 頑張って社内の競プロ部に参加する時間を作る

すべて未達。
生活の中で競プロに対する優先度が落ちてしまっているおり、こまめな精進も行えていなかった。

スキルアップ

× 個人でアプリリリースしたい

初めてのアプリ開発としてQRコードリーダーの開発を進めているものの、年内のリリースはならず。必要な機能の大枠は実装済。
ServerSideKotlinの啓蒙を進める社内の別PJに導入を勧め、無事Kotlinで書かれた新機能がリリースされた。
個人で書こうと思っていたブログ記事は書けていないが、ネタのストックはあるので今後書きたい。

社内外の人脈を広める

社内では昨年以上に分野問わず様々な人と交流でき、プラットフォームをまたいで気軽に相談できる環境が作れた。

外部については、勉強会に参加するものの、懇親会などでうまく交流を作れず、セッションのTweetなどから興味を持っていただいてフォローいただいた程度。

セルフブランディングの強化

○ 対外的に出せる職務経歴の用意
△ ポートフォリオになるものを作る

自分の経歴・スキルを振り返る意味でGithubにてスキルシートを作成して順次アップデート中。
特に何かを作ったりはしなかったが、Githubのcontributionが昨年の4倍近くになっており、技術的なアウトプットは行えていそう。

というわけで、閲覧頂いている方々、交流いただいたい方々、本年もありがとうございました。
来年もゆったり更新していきますので、お付き合いのほどよろしくお願いいたします。

年明けには今回のふりかえりを踏まえて、また目標設定について書こうかなと思っています。

【PHP】PHPカンファレンス2019に参加したので感想などを書きました

f:id:beatdjam:20191208014411j:plain
2019/12/1に開催されたPHPカンファレンス2019に行ってきました。
2015年に開催されたもの以来の参加で、めっきりPHPを書いておらず不安だったのですが、
相変わらずとても楽しいイベントでした。

感想

個人的な衝撃としては、当時鳴り物入りで現れたPHP7が既にある程度一般化しており、
7.1がEOLになったというところが非常に大きかったです。
みんなのPHP 現場で役立つ最新ノウハウ! とか読んで最近のPHP知った方がいいのかな…

私は今Kotlinでサーバーサイドを書いているのですが、設計の話や並行並列プログラミングの話など、
言語を跨いでいても興味関心やアプローチが似通ってくるんだなぁというのも面白かったです。

参加したセッションと一言メモ

PHPの今とこれから2019

www.slideshare.net Typed Properties 2.0の話と、未だにPHPが高速化し続けているのがびっくりだった。
8.0で出るというJITに期待。

PHPにおける並列処理と非同期処理入門

speakerdeck.com 並行・並列の違いの資料が非常にわかりやすかった。
Swooleの導入についてSDに寄稿されているとのことなので、読もうと思う。

Chatworkのシステムから学ぶレガシーなPHPの限界とレガシーからの脱却

speakerdeck.com 機材トラブルで押していたため、セッションの合間で後半だけ聞けた。
一定程度までスケールしたモノリシックなシステムをPHPで維持していくのは厳しそうだなと思った。
ただ、後述するグラブルのセッションでかなりの規模のシステムを運用している事例も聞けたので、
当初からスケールできる作り方ができていればあるいは…?という感じ。
レガシーに立ち向かうための組織構造の話は非常に良かった。

PHPからgoへの移行で分かったこと

speakerdeck.com
松屋自販機がうちにもほしいなと思った。
マイクロサービスとして切り出せる状態じゃなく異なる言語で移行するの相当しんどいのでは…?
ガワはPHPのままでマイクロサービスとして切り出したgoのサービス呼んだほうが単純だったと思う。
こういった失敗事例は共有されること少ないので、登壇自体に大きい意味があった。

『グランブルーファンタジー』開発エンジニアの考え方~PHP7が『グラブル』にもたらしたブレイクスルーと考察~

(資料なし)
例年通りであればCygames Engineers' Blogにフォローアップ記事が出ると思うので期待。 サービスの規模の説明時点で桁違いのアクセス数、システム規模で驚かされた。
ユーザーとしてプレイしていたこともあるので、裏側の話が聞けたのは感慨深い。
移行の実例からどういった部分で高速化が行われたのか、コード例を交えて解説されていてわかりやすかった。

改善失敗から学ぶ、レガシープロダクトに立ち向かうチーム作り。

speakerdeck.com 残念な情報共有ずかんのイメージが強かったので、Garoonのプロダクトとしての長さにびっくり。
本当の改善に至るまで一つ一つ、失敗と、その失敗を踏まえた改善を行っていく過程がすごかった。
失敗から学ぶ姿勢、大事。

Webサービスのトラブルの現場 ~Webサービスの今と昔~

speakerdeck.com セッションでも語られていた通り、PHPに限った話はあまりなく、Webサービス全般におけるトラブルシューティングの話だった。
取り上げられる事例がどれも胃に痛みを感じるやつだったと同時に、どのようなアプローチが有効かがわかりやすくてよかった。
あと単純にそーだいさんの話がめちゃくちゃ面白かった。

オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法

www.slideshare.net 架空のPay系サービスを題材に、実例を元に数々の試練とその対処を学ぶセッション。
流石にありえないでしょ!というものから、実際にやってしまいかねない…といった内容まであって、
うっかりをなくさないようにするとか、発生しないようにするとか、そういう仕組み作らないとなんだなぁと。

LT

Laravel + Nuxt.js + FirebaseでDXと開発コストを意識したSPA開発

Laravel + Nuxt.js + FirebaseでDXと開発コストを意識したSPA開発 - Speaker Deck
会社と組織の枠の話がちょっと多くて、タイトルの部分の話が全然記憶に残っていない…

PHPでgRPCってどこまでいけるの?

PHPでgRPCって どこまでいけるの? - Speaker Deck
PHPでgRPCはまだ早かったらしい。
定期的に話題には出てるけど、世界が追いついていない感じ。

PHP-CS-FixerをIDEに取り込ませてPSRを強制する開発スタイル

PHP-CS-FixerをIDEに取り込ませてPSRを強制する開発スタイル
適用するべき規約があるなら一発で習慣的に適用できるのがやっぱりベストだなと。

レガシーコードでビジュアルリグレッションテストをやってみた

レガシーコードで ビジュアルリグレッションテスト をやってみた! - Speaker Deck
ビジュアルリグレッションテスト、思ってたよりは導入しやすいんだなと思った。
スライドが全体的にいい感じにかわいかった。

PHP on AWS Lambda!

PHP on AWS Lambda!
公式で対応してない言語でもカスタムランタイムでLambda使えるの知らなかった。
そういった言語でも想像以上に普通に動くんだなという感じ。

2年目エンジニアがスキルアップのためにPHPで競プロやってみた

(資料見つからず)
登壇中に資料のページが消えている?ようなことを言っていて大変そうだった。
普通に開発していると標準入出力なんて意識しないからむずいよね…わかるわかる…ってなった。
PaizaをひたすらPHPで解いてた時期があったので懐かしい

設計文化のないチームに文化を広めたが冴えない一手で混沌を招いた話を聞いてほしい

設計文化のないチームに文化を広めたが冴えない一手で混沌を招いた話を聞いてほしい.pdf - Speaker Deck
説明をサボると意図通り伝わらず、余計に混沌を生んでしまう。
新しい文化を伝えるときは、サボらず、しっかりと時間を取って認識をすり合わせないとやばい。

運用経験ばかりのメンバーと新規開発で初めてしっかりと設計から開発までを経験した話

運用経験ばかりのメンバーと新規開発で初めてしっかりと設計から開発までを経験した話 / PHP Conference Japan 2019 LT - Speaker Deck
クリーンアーキテクチャ導入。わからないところはわからない。原理主義的にならない。

エンジニアがブログや登壇で、アウトプットするとどうなる?

エンジニアが ブログや登壇で、アウトプットするとどうなる?in PHPcon - Google スライド
うゐろうさんのめちゃくちゃ熱いLT。
自信のなさを自覚した上で、2年毎日ブログを書くというアプローチで乗り越えたの、本当に尊敬する。

余裕を生み出すコードレビュー

余裕を生み出すコードレビュー 〜レビュイー編〜 / code-review-phpcon-2019 - Speaker Deck
わかりやすいプルリクの出し方。
コンテキストを一番理解しているレビュイーがわかりやすくプルリクをしっかり説明しようという話。
当然といえば当然だけど、めっちゃ大事。

社内最長老のシステムにPHPUnitで立ち向かう方法

社内最長老のシステムにPHPUnitで立ち向かう方法 - Speaker Deck
アンパンマンの作者みたいな名前、というツカミが強すぎる。
全機能テストと言う響きがつらすぎる…しっかりと戦略を立ててからの勢いがすごそうだった。

開発合宿のススメ!

【PHPCon2019】開発合宿のススメ! - Speaker Deck 開発合宿といいつつ、対話にパソコンは使わないというのが面白いなと思った。
実際の開発部分でどうしてるのか…?はよくわからなかった。

以上!2020も参加できたらいいなぁ。