Gitのコミットメッセージで絵文字を使う

会社の人がやっていたので真似てみる。

gitmoji.carloscuesta.me

gitmojiを使うらしいので早速セットアップする。

インストール

npmがインストールされているなら以下だけです。

npm i -g gitmoji-cli

絵文字を使ってコミットする

gitmoji -cを利用してインタラクティブにコミットができます。

$ gitmoji -c
? Choose a gitmoji: 🎉  - Initial commit.
? Enter the commit title [12/48]: First commit
? Enter the commit message:
[master (root-commit) 01736ce] :tada: First commit
 1 file changed, 1 insertion(+)
 create mode 100644 README.md

gitmoji -iを実行しておくとgit commitを実行時にフックしてくれます。

$ gitmoji -i
✔ Gitmoji commit hook created successfully

$ git commit
? Choose a gitmoji: 📝  - Writing docs.
? Enter the commit title [25/48]: Update readme description
? Enter the commit message:
[master d34dee1] :pencil: Update readme description
 1 file changed, 2 insertions(+)

Github上で絵文字が表示されているのが確認できます。 f:id:tnnsst35:20200604232512p:plain

絵文字一覧を見る

絵文字のルールは事前に決めておいたほうが良さそうです。

$ gitmoji -l
✔ Gitmojis fetched successfully
🎨 - :art: - Improving structure / format of the code.
⚡️ - :zap: - Improving performance.
🔥 - :fire: - Removing code or files.
🐛 - :bug: - Fixing a bug.
🚑 - :ambulance: - Critical hotfix.
✨ - :sparkles: - Introducing new features.
📝 - :pencil: - Writing docs.
🚀 - :rocket: - Deploying stuff.
💄 - :lipstick: - Updating the UI and style files.
🎉 - :tada: - Initial commit.
✅ - :white_check_mark: - Updating tests.
🔒 - :lock: - Fixing security issues.
🍎 - :apple: - Fixing something on macOS.
🐧 - :penguin: - Fixing something on Linux.
🏁 - :checkered_flag: - Fixing something on Windows.
🤖 - :robot: - Fixing something on Android.
🍏 - :green_apple: - Fixing something on iOS.
🔖 - :bookmark: - Releasing / Version tags.
🚨 - :rotating_light: - Removing linter warnings.
🚧 - :construction: - Work in progress.
💚 - :green_heart: - Fixing CI Build.
⬇️ - :arrow_down: - Downgrading dependencies.
⬆️ - :arrow_up: - Upgrading dependencies.
📌 - :pushpin: - Pinning dependencies to specific versions.
👷 - :construction_worker: - Adding or updating CI build system.
📈 - :chart_with_upwards_trend: - Adding or updating analytics or tracking code.
♻️ - :recycle: - Refactoring code.
🐳 - :whale: - Work about Docker.
➕ - :heavy_plus_sign: - Adding a dependency.
➖ - :heavy_minus_sign: - Removing a dependency.
🔧 - :wrench: - Changing configuration files.
🌐 - :globe_with_meridians: - Internationalization and localization.
✏️ - :pencil2: - Fixing typos.
💩 - :poop: - Writing bad code that needs to be improved.
⏪ - :rewind: - Reverting changes.
🔀 - :twisted_rightwards_arrows: - Merging branches.
📦 - :package: - Updating compiled files or packages.
👽 - :alien: - Updating code due to external API changes.
🚚 - :truck: - Moving or renaming files.
📄 - :page_facing_up: - Adding or updating license.
💥 - :boom: - Introducing breaking changes.
🍱 - :bento: - Adding or updating assets.
👌 - :ok_hand: - Updating code due to code review changes.
♿️ - :wheelchair: - Improving accessibility.
💡 - :bulb: - Documenting source code.
🍻 - :beers: - Writing code drunkenly.
💬 - :speech_balloon: - Updating text and literals.
🗃 - :card_file_box: - Performing database related changes.
🔊 - :loud_sound: - Adding or updating logs.
🔇 - :mute: - Removing logs.
👥 - :busts_in_silhouette: - Adding or updating contributor(s).
🚸 - :children_crossing: - Improving user experience / usability.
🏗 - :building_construction: - Making architectural changes.
📱 - :iphone: - Working on responsive design.
🤡 - :clown_face: - Mocking things.
🥚 - :egg: - Adding or updating an easter egg.
🙈 - :see_no_evil: - Adding or updating a .gitignore file
📸 - :camera_flash: - Adding or updating snapshots
⚗ - :alembic: - Experimenting new things
🔍 - :mag: - Improving SEO
☸️ - :wheel_of_dharma: - Work about Kubernetes
🏷️ - :label: - Adding or updating types (Flow, TypeScript)
🌱 - :seedling: - Adding or updating seed files
🚩 - :triangular_flag_on_post: - Adding, updating, or removing feature flags
🥅 - :goal_net: - Catching errors
💫 - :dizzy: - Adding or updating animations and transitions
🗑 - :wastebasket: - Deprecating code that needs to be cleaned up.

ゲームができるリモートワーク環境を整えた

f:id:tnnsst35:20200419184523j:plain

コロナウィルスの影響で3月末から自宅でリモートワークしています。
今まで家には作業できる環境がなかったので、これを期に環境を整えました。

ゲーム機を置きたかったので少ない空きスペースにおてますが、もっと良い方法はないものだろうかと考え中です。

購入したもの

モニタ

ViewSonic VX3211-4K-MHD-7

www.viewsonic.com

31.5インチの4Kモニタにしました。
ASUS VA32UQとも迷いましたが、価格面と性能面で比較をして、ViewSonicに決定。

2週間ほど使った感想としては、31.5インチ大きくて最高なのと、
PCだけでなく、PS4Nintendo switchを繋いでゲームしたりもしてますが、画質もとても満足です。

コネクタがもう少しあると嬉しかったですが、今のところ全く問題ないです。

デスク

サンワサプライ シンプルデスク

デスクはサイズと価格重視で決めました。
配置スペース的にW120 × D60 が必須条件だったのですが、シンプルなデスクが意外となくて、
サンワサプライのシンプルデスクはサイズが細かく選べるのがとても良いです。

オカムラのSwiftや、FLEXISPOTのような昇降デスクも良いなーと思いましたが、予算的にアウト。

チェア

オカムラ バロンチェア
ハイバック/可動肘掛/座メッシュ/ランバーサポート

www.okamura.co.jp

チェアは大切なので、しっかりしたものをということでバロンチェアにしました。
WORKAHOLICさんのような店舗で、実際に座って色々比較してから購入できると良かったんですがそういうわけにもいかず。
普段、会社でも使ってて信頼性のあるバロンチェアで落ちつきました。

高級チェアの部類ですが、中古にしたので30,000くらい。

タイルマット

ニトリ タイルカーペット ハーゲン

バロンチェアに限らずですが、 オフィスチェアは重くて床を傷つけそうなのでカーペットを敷いています。
タイルカーペットは色の組み合わせが楽しいです。
安物なので、カーペット自体のはすぐ傷ができましたが、ダメになっても安くてすぐに買い直しできるので気軽に使えて満足です。

持ってたもの

キーボード

Happy Hacking Keyboard Professional HYBRID Type-S 英語配列/白

happyhackingkb.com

今年の誕生日に買ってもらったHHKBです。
会社ではMISTEL BAROCCO MD600を利用していて、HHKBは初めてなのでタッチミスしますが、Bluetoothでワイヤレスに接続できるのが最高です。

トラックボール

ロジクール WIRELESS TRACKBALL M570T

www.logicool.co.jp

以前から利用しているトラックボールです。

スピーカー

BOSE SOUNDLINK MINI II

数年前の誕生日に買ってもらったBOSEスピーカーです。
モニタにもスピーカーが内蔵されているので利用はしていないですが、雰囲気で置いてます。

欲しいもの

モニタアーム

モニタの下スペースを活用したい。

クラムシェル スタンド

Macを広げてスペースをとりたくないので、可能ならクラムシェルで運用したい。
ただ、クラムシェルだとhangoutやzoomのために別途カメラが必要なるのできっと買わないです。

2020年はインプットの年

2020年はインプットを頑張る年にしたいと思ってる。

2019年は仕事に慣れること、新しい立ち位置での仕事を邁進することに注力して、良いアウトプットが出せたという実感を持つことができた。 その反面、インプットすることはおろそかにしたため、2020年がインプットを大切にする。

  • エンジニアリング
    • 新しい言語
    • 設計手法
    • k8s
    • GCP
    • マネジメント/組織
  • パーソナル
    • 旅行
    • 生活圏内をもっとよく知る
    • 運動
    • 健康(食事)

今年も頑張ろう。

ゲーム開発者としてのサーバーエンジニア

ゲーム開発をしたいエンジニアはクライアント志望がとにかく多い。
新卒入社したエンジニアの95%以上はクライアント志望な感覚がある。

実際、現場におけるサーバーエンジニアは派手さが全く無く、超地味で、エンジニア以外からは何やっている人なの?的な存在になりがち。 (オンラインゲームだとキャラクター座標をサーバーで処理したりする場合もあるが)

キャラクターを動かすような仕事はないし、ゲームUIを実装する仕事もない。
大きなチームにいると、デザイナーさんと会話することすらなかったりする。

だがあえて言いたいのは、サーバーエンジニア面白いよってこと。

サーバーエンジニアのお仕事

ゲーム開発のサーバーエンジニアのお仕事は、WEB開発やアプリ開発のサーバーエンジニアのお仕事とそこまで変わらない。

  • クライアントからリクエストを受け、データベースとやり取りして、データを加工したり、保存したりして、結果をクライアントにレスポンスを返すAPIの開発。
  • AWSGCPなどでサーバー環境を構築したり、ゲームで利用するデータやアセットを配信するサーバーを整備したり。
  • ゲームのお知らせやメンテナンスを操作したり、ユーザーさんのデータを参照したり、お問い合わせの対応のためのブラウザで稼働するツール(WEBサイト)も開発する。

利用する技術もごくごく一般的。 種類は多いかもしれない。

  • インフラ
  • サーバー開発
  • フロントエンド開発
    • JavaScript、TypeScript
    • npmやyarnなどのパッケージ管理ツール
    • React、Vue
  • データベース
    • MySQL、Aurora
    • DynamoDB、Spanner
  • キャッシュ
  • データ分析
    • BigQuery
    • Fluentd
  • その他
    • UnityやUnrealEngineなどのアセット配信の知識
    • 世の中のゲーム仕様

最近の自分の環境をもとに、ぱっと思いついたものだけを挙げた。 他にもサーバー監視だったり、CIだったり、構成管理ツールなんかの知識も必要だ。 もちろん全部の技術に精通するのは難しいし、ぼくも全ての知識はない。

WEB開発やアプリ開発の現場から離れて久しいので最近どうかはわからないが、真面目にやればtoC向けの開発でのサーバーエンジニアとしてかなり鍛えられる環境だと思う。

また、サーバーエンジニアつまらねぇって思ったら、(本末転倒なのだが)クライアントエンジニアに転向することもできる。
実際、ぼくはサーバーエンジニアを経験したあと、(人がいなくて仕方なく)3年間くらいはUnityエンジニアをやっていた。 クライアントエンジニアからサーバーエンジニアに転向することもできるが、あまり聞いたことはない。

で、結局なんでサーバーエンジニア面白いかっていうのが、語彙力なくて上手く表現できないんだけど、ゲームもエンジニアリングも好きなら、サーバーエンジニア面白いよってことは間違いない。  (結局)クライアントも面白いけどね。