くりにっき

フルスタックキュアエンジニアです

プリパラのライブにおける緊急対応事例 #ノンシュガー

起きたこと 真相 配信アーカイブを見返しての感想 起きたこと 3/6(土)の NonSugar スペシャルイベント「約束のてへペロピタですわ!」byプリパラ の昼夜公演に現地勢として参加してたのですが、昼公演の楽曲中に演者の1人の山下七海さんが 歌ってる最中に…

ItamaeのCIをTravis CIからGitHub Actionsに移行した

tl;dr; 前置き:ItamaeのCIの式年遷宮の歴史 移行のモチベーション ハマったこと 良かったこと 悪かったこと tl;dr; github.com 前置き:ItamaeのCIの式年遷宮の歴史 僕がコミッタになる前はWercker + Vagrant + DigitalOceanを利用 僕とうなすけさん( id:y…

VagrantとVirtualBoxは別物

Twitterを見てるとたまにVagrantとVirtualBoxを混同してる発言があってその度にイラッとしてるのでメモ。 tl;dr; 雑な説明 VirtualBoxとは Vagrantとは よくある間違い tl;dr; DockerとVagrantはカバーしてる分野が異なるツールなので比較するのは間違い Doc…

tanuki_reminder 0.6.0をリリースした

gitlab.com GitLab 13.7でMergeRequestのReviewers*1が無料版に入ってきたので対応しました。 about.gitlab.com Assignsの他にReviewersにもメンションが飛ぶようになっています。 CHANGELOG全文 https://gitlab.com/sue445/tanuki_reminder/-/blob/master/C…

sentry-ravenを使ってるアプリは基本的にsentry-rubyに移行した方がよさそう

tl;dr; 経緯 詳しいこと 古いsentry-ravenについて 新しいsentry-rubyについて 注意点 余談:投げたパッチ一覧 tl;dr; SaaS版( https://sentry.io/ )を使ってる場合は sentry-raven から sentry-ruby へ移行推奨 オンプレミス版を使ってる場合にはSentryが…

Cloud FunctionsでRubyを使う時はdevelopmentやtestのgemはインストールされない

前置き 検証コード Gemfile app.rb ローカルでの実行結果 Cloud Functions上での動作確認結果 前置き Cloud Functionsにデプロイする時には gcloud functions deploy を使います。 そこで bundle install も自動で実行されるのだけど、その時に --without de…

至極の難問YAMLクイズ

前置き 練習問題 問題1 問題2 問題3 問題4 参考文献 おまけ:LT直後のみんなの反応 前置き 社内勉強会のLTで発表したら好評だったので投下 自称YAMLエンジニアのsue445が今まで踏んだ罠をクイズにしました Ruby 3.0.0の Psych で動作確認していますが他言語…

GitHub Actionsのpushイベントとpull_requestイベントではGITHUB_SHAが異なる

tl;dr; 検証内容 サンプルコード masterブランチに普通にpushした時 PullRequestに対してpushした場合 pushイベントの結果 pull_requestイベントの結果 解説 2021/01/08 追記 GITHUB_SHAが異なることで何が困るか 余談:tfnotifyでpull_requestイベントの時…

rubicure 2.0.0をリリースした

gem

rubicure (2.0.0): All about Japanese battle heroine "Pretty Cure (Precure)". https://t.co/2ImrcNQ9QI— rubygems_news (@RubygemsN) 2021年1月3日 https://github.com/sue445/rubicure/blob/master/CHANGELOG.md#v200 rubocopを最新にしようと思ったら…

今年作ったもの(2020年版)

今年新しく作ったものを作った順に紹介 go-mod-tidy-pr prismdb-ruby, faker-pretty_series gcp-kmsenv gcp-secretmanagerenv プリマップ go-mod-tidy-pr sue445.hatenablog.com 今年の頭に作ったやつでたまにPRきてる。 最近GitHub本体のdependabotの方で g…

今年買ってよかったもの(2020年版)

Amazonや楽天などの購入履歴からピックアップ エクスジェル アウルカンフィ3Dプレミアム Oculus Rift S プリパラ LIVE COLLECTION KPro01 エクスジェル アウルカンフィ3Dプレミアム exgel.jp 家だと座椅子なのですが座椅子で仕事しててクッションに不満があ…

細かすぎて伝わりづらいプリマップの改修ポイント #プリッカソン

これは #プリッカソン Advent Calendar 2020 - Adventar の2日目です。 10月の プリマップ 公開以降見た目はほとんど変わってないのですが裏側をちょいちょい改善してるのでメモ sue445.hatenablog.com ジオコーディング前に住所をいい感じにしている データ…

今更だけどアイカツ!16話のチケット5万枚を2秒で売り切るシステムについて本気で考察してみた

発端 お前誰よ? 前置き 構成 webサーバ データベース 決済システム 負荷試験 当日の監視 まとめ 余談 発端 この後20時からBNP公式YouTubeチャンネルで「アイカツ!」「アイカツフレンズ!」第16話を配信されるよ☆プレミア公開後はアーカイブされるのでそち…

Goで複数パッケージ構成のプロジェクトでもちゃんとカバレッジ集計する(GitLab編)

tl;dr; Goで複数パッケージ構成の場合何が問題か? GitHubの場合 GitLabの場合 本題:GitLabで複数パッケージ構成のGoプロジェクトのカバレッジを集計したい .gitlab-ci.ymlのサンプル tl;dr; gcov + lcovが無難 Goで複数パッケージ構成の場合何が問題か? G…

compact_blank gemのメンテを終了した

gem

Rails 6.1.0.rc1がリリースされましたが*1、activesupport本体に #compact_blank や #compact_blank! のメソッドが入った*2ので6.1.0.rc1以降と一緒に入れられないようにしてメンテ終了宣言しました。 github.com *1:https://weblog.rubyonrails.org/2020/11…

rubocop v1系 + rubocop-rspec v1系でエラーになる件の回避策

tl;dr; ケース1: rubocop-rspec内でエラーになる エラー内容 関連するissue 実際に対応したコミット ケース2: 意図せずrubocop-rspecのバージョンが下がる 注意点 tl;dr; どっちのケースの場合もrubocop-rspec v2.0.0.preで直ってるので Gemfile に下記のよ…

プリマップというプリパラやプリ☆チャンが遊べるお店を探せる地図を作った

タイトルが全て primap.web.app モチベーション 使い方 技術的なこと リポジトリ 大雑把な仕組み サーバサイド ジョブ フロントエンド その他使ったもの こだわりポイント Cloud RunからCloud Functionsに移行して変わったこと GoのstructからTypeScriptのcl…

pixela gem v2.0.0をリリースした

pixela v1.19.0 で機能削除が行われたのでgemのメジャーバージョンを上げました。 blog.a-know.me Breaking changeついでに他にも非互換の変更を入れています 変更内容と変更意図 https://github.com/sue445/pixela/blob/master/CHANGELOG.md faraday v0.x系…

gcp-secretmanagerenvを作った

gcp-secretmanagerenvについて 作った経緯 使い方 gcp-secretmanagerenvについて GCPのSecret Managerのラッパみたいなやつで、 gcp-kmsenv のSecret Manager版です。 github.com 作った経緯 本番環境(GCP)ではSecret Managerを使うのでいいんだけど、ロー…

Cloud Functions CI/CD俺的ベストプラクティス

AWS Lambda CI/CD俺的ベストプラクティス - くりにっき のCloud Functions版です sue445.hatenablog.com 最近Cloud Functions使うことがあってCI面からフレームワークなどを検討しました。AWS Lambdaほどガッツリ使ってないので比較対象が少ないのはご愛嬌 T…

GitHub Actions上でPRを作る時はsecrets.GITHUB_TOKENは使わない方がよさそう

事象 GitHub Actions上で使える secrets.GITHUB_TOKEN だと別のジョブを起動できないというのが一番の理由。 https://docs.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token 具体的…

#ginzarails にRuby on CIで発表した

RubyKaigi2020 用に準備してた資料の供養として発表させていただきました。 僕が知ってるCIの知見や2020年時点でのCIのトレンドはだいたい詰め込めたと思っています。 connpass ginza-rails.connpass.com スライド

gcp-kmsenvを作った

github.com モチベーション 使い方 FAQ Q. Secret Manager使えばいいのでは? モチベーション condo3 で app.yaml 内に Cloud KMS で暗号化した秘匿値を埋め込みやすくするために作ったモジュールをライブラリ化しました。 とはいえGoogle App Engine専用と…

質問をする技術

以前社内に書いたポエムなんだけど年に1回くらい引用したくなるので公開した tl;dr; 質問をする時はゴールを提示する【MUST】 理由1 理由2 コンテキストを詳しく共有する【SHOULD】 期待してた結果(expect)と実際の結果(actual)を書く【IMO】 2020/7/22 12:3…

rubocop-itamae v0.1.3とrubocop_auto_corrector v0.4.1をリリースした

rubocop-itamae v0.1.3 rubocop-itamae (0.1.3): Code style checking for itamae recipes https://t.co/CkdL2YXE3g— rubygems_news (@RubygemsN) 2020年7月12日 https://github.com/sue445/rubocop-itamae/blob/master/CHANGELOG.md#v013 rubocop 0.87.0で …

rubocop_auto_corrector v0.4.0をリリースした

rubocop_auto_corrector (0.4.0): Run `rubocop --auto-correct && git commit` with each cop. https://t.co/9EOblqIdUg— rubygems_news (@RubygemsN) 2020年7月7日 rubocop v0.87.0で --auto-correct の挙動が変わったのと、 --auto-correct-all が追加さ…

Railsでdb:migrateの時だけdatabase.ymlを自動で差し替える

前置き モンキーパッチの縛りプレイの内容 モンキーパッチ 注意点 モンキーパッチのポイント ボツ案1 ボツ案2 前置き GitLabでPostgreSQLを使う時にPgBouncer経由でDBに接続してる(database.ymlにpgbouncerの接続先を書いている)のですが、 その状態で rak…

あつ森でDQ3のアリアハン大陸を作った

島の全体図 Before After 内部の解説 アリアハンの城下町 岬の洞窟、ナジミの塔 レーベの村 いざないの洞窟 余談 島の全体図 Before 島改装前のスクショがこれしか残ってなかった。改装直前は建物の他に橋や坂も結構設置してました After 頑張って作った割に…

Cloud Runでは/_ah/で始まるパスは使えない

GCP

タイトルが全て 事象 Cloud RunにDockerコンテナをデプロイしたが、gcloud run deploy --allow-unauthenticated *1 で全公開にしてるにも関わらず /_ah/health (コンテナ内で動いてるアプリのヘルスチェック用のエンドポイント)を呼ぼうとして401エラーに…

CircleCIでマトリックスビルドがサポートされたのでさっそく使ってみた

CircleCIがMatrixジョブのサポートを開始しました。Matrixジョブを使用することで、複雑な組み合わせが必要なジョブをシンプルに記述することができます。詳しくはこちらのブログ記事(英語)から:https://t.co/MZV1zLCdOj— CircleCI Japan (@CircleCIJapan…