くりにっき

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

Herokuにあった個人アプリを軒並み対応した

背景 やったこと1. 廃止 やったこと2. GCPに移行 ユースケース図 URLベースで見たユースケース図 実行環境で見たユースケース図 実際にGCPに移行したアプリ達 Cloud Run Cloud Functions AppEngine GCP移行した全てに共通してること やったこと3. CircleCIに…

emoy_webhookをDockeriseした

emoy_webhookについて Dockeriseした発端 こだわりポイント Dockerイメージの配布方法 emoy_webhookについて Slackにemojiを追加した時に通知してくれる君です sue445.hatenablog.com github.com プリッカソン以降もRubyやgemのバージョンを定期的に最新にし…

複数のアプリのバージョンを一箇所で集中管理してCIから一括バージョンアップできるようにした

モチベーション リポジトリ 動いてる風景 対応形式 仕組み 各リポジトリに適用してるItamaeのレシピファイル こだわりポイント CI用にGitHub Appを作った モチベーション dependabotだとライブラリの自動バージョンアップはできるのだが、RubyやGoなどのラン…

シレン5の運命の地下を99F踏破した

うおおおおおおおお!!!!!! うまく夜抜けできたおかげで原始よりは楽だった #不思議のダンジョン #風来のシレン #NintendoSwitch pic.twitter.com/Hie7SytL67— sue445 (@sue445) 2022年8月2日 原始99F踏破した時の記録 運命の地下って? 立ち回り 序盤 中盤 …

ISUCON12に1人チームで出て予選敗退した話 #isucon

去年のやつ 今年参加するためにやったこと 作ったもの一覧 rubocop-isucon mysql2-nested_hash_bind datadog_thread_tracer itamae-plugin-recipe-rust itamae-plugin-recipe-datadog isucon-snippets チェックリスト Datadog Datadogでalpを実装した。 Data…

itamae-plugin-recipe-rustを作った

github.com モチベーション 使い方 モチベーション Ruby 3.2.0-devでYJITを使うにはRustの処理系が必要なのですが*1、Ruby 3.2.0の正式版がリリースされた時に https://github.com/itamae-plugins/itamae-plugin-recipe-rbenv でYJIT付きでビルドするために…

datadog_thread_tracerを作った

ISUCON合わせで作ったやつ第n弾 github.com モチベーション 実装までの経緯 datadog_thread_tracerを使った時 頑張りポイント rbsを書いた モチベーション ISUCONの素振りでパフォーマンスチューニングのために重い処理を threads = [] threads << Thread.st…

mysql2-nested_hash_bindを作った

ISUCON合わせで作ったやつ第n弾です。*1 github.com モチベーション 使い方 頑張りポイント モチベーション 達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践:書籍案内|技術評論社(通称ISUCON本) を読んでた時に SELECT `posts`…

Ruby 3.1.2 with YJIT vs Ruby 3.2.0-dev with YJIT

tl;dr; モチベーション Ruby 3.2.0-devの何がすごいか Ruby 3.2.0-devでRust版のYJITを使う方法 計測対象のアプリケーション 使ったバージョン 比較 CPU ホスト全体 Ruby 3.1.2 + YJIT Ruby 3.2.0-dev + YJIT pumaのmasterプロセスとworkerプロセスをピック…

Macでsudo無しでdockerコマンドを使えなくなってハマった

tl;dr; コンテキスト 環境 調査内容 dockerコマンドの実体 ~/docker.sockのパーミッションを調べる おかしくなってた原因と思われるもの tl;dr; docker.sock のパスがおかしくなってた。 コンテキスト Macを利用してるんですがいつの頃かsudo無しでdockerコ…

AWS Certified Solutions Architect - Professional(AWS SAP-C01)に合格した

AWS

AWS Certified Solutions Architect - Professional(AWS SAP-C01) について 勉強方法 参考書 動画講座 公式のサンプル問題 感想 おまけ AWS Certified Solutions Architect - Professional(AWS SAP-C01) について aws.amazon.com AWS Certified Solutions Ar…

なるべくお金をかけずに個人アプリを運用したい

前々からこの手のことを書きたいとは思ってたけど id:k0kubun さんの下記エントリに触発されて書きました。 k0kubun.hatenablog.com tl;dr; 個人アプリ開発歴 前提 Heroku GCP Google App Engine Cloud Run Firebase Cloud Functions GitHub Pages 2022/8/14…

シレン5の原始に続く穴を99F踏破した

うおおおおお!!!!!!原始99F踏破!!!金喰い装備で途中ギタン尽きたり何回か大部屋モンハウ遭遇して死期をさとったけどクリアできてよかった #不思議のダンジョン #風来のシレン #NintendoSwitch pic.twitter.com/GaVzISDBCB— sue445 (@sue445) 2022年4月26日 …

PlantUMLで描いた図をGitHubのリポジトリでいい感じに管理したい

tl;dr; モチベーション 実際の例 pumlファイルを作成 pumlファイルからsvgファイルを作成 リポジトリにはsvgファイルを埋め込む メリット 余談 2022/04/13追記 tl;dr; pumlファイル*1を作成 pumlファイルからsvgファイルを作成 リポジトリにはsvgファイルを…

itamae-plugin-recipe-datadogのメンテナになった&itamae-plugins orgのオーナーになった

簡単な経緯 詳しい経緯 itamae-plugin-recipe-datadogとは itamae-plugins orgのオーナーになった経緯 v0.2.2について まとめ 2022/4/2 1:10追記 2022/4/6 14:20追記 簡単な経緯 PRを送ったらitamae-plugin-recipe-datadogのメンテナになった 詳しい経緯 経…

plant_erd v0.4.0をリリースした

github.com GitHubがmermaidに対応予定 *1 ということでplant_erdもmermaidに対応しました。 https://github.com/sue445/plant_erd/blob/master/CHANGELOG.md#v040 plant_erdって名前でPlantUML以外のフォーマットに対応するのがかなり悩ましかったんですが…

gitのログをとにかく全部出したい

git

git log ではなくgitの内部のログの話です。 最近gitコマンドの通信周りを追っていてログをとにかく全部出して挙動確認してるのでメモ。 --verbose :git以外のコマンドにもよくあるオプションなので定番 GIT_TRACE, GIT_TRACE_SETUP:git内部のデバッグログ…

faraday v2対応を行った&faraday-mashifyをリリースした

gem

公式ドキュメント 具体的な対応内容 faraday_boolean v1.0.0 pixela v3.0.0, prismdb-ruby v1.0.0, chatwork-ruby v1.0.0 その他地味にハマったところ 公式ドキュメント https://github.com/lostisland/faraday/blob/main/UPGRADING.md 具体的な対応内容 far…

個人gemを軒並みRuby 3.1対応した

毎年やる作業ということもあり、個人gem全部のGitHub Actionsの設定を修正してPRを投げるツール自体は作ってるのでそんなに大変ではなかったです。 怠惰を突き詰めた結果、自作ツールで一気にPRを26個生成した図 pic.twitter.com/pIA4oWb8Vs— sue445 (@sue44…

Keyless Terraformに特化したTerraformテンプレートリポジトリを作った(AWS, GCP対応)

tl;dr; 前置き モチベーション テンプレートリポジトリについて 頑張った点:Terraformを実行するための初期設定をCloud FormationやDeployment Managerで行うようにした tl;dr; github.com github.com 前置き 9月くらいにGitHub ActionsでOpenID Connector…

個人gemにrubygems_mfa_requiredをつけた

gem

rubocop 1.23.0で Gemspec/RequireMFA が増えていたので rubygems_mfa_required の存在に偶然気づきました。 guides.rubygems.org gemリリース時のMFA *1 は元から設定していたんですが、gemspecに spec.metadata = { "rubygems_mfa_required" => "true" } #…

AWS 認定ソリューションアーキテクト – アソシエイト(AWS SAA-C02)に合格した

AWS

モチベーション 俺氏スペック やったこと 1回目の試験 2回目の試験 感想 モチベーション 業務だとAWSとGCPを半々くらい触っているんですが、GCPの認定資格である Professional Cloud Architect(通称PCA) は持っているのにAWSの認定資格を持っていないのはバ…

ISUCON11に1人チームで参加するためにやったこと #isucon

最初に モチベーション ISUCON歴 事前準備 準備期間 やったこと 事前に用意したもの&やったこと Sentryのbillingを有効化した SentryのSpike Protectionを無効化した デプロイスクリプト デプロイスクリプト解説 スニペット enable_monitoring.rb nr_mysql2…

ISUCONの素振りでisucon11-priorをやった

先週末にisucon11-prior(事前講習のハンズオン課題)をやったのでメモ github.com isucon.net 結果 最終的なサーバ構成 コンテキスト 事前にやったこと:AMI作成 作成手順 AMIから起動したEC2インスタンスへisuconユーザでログインする方法 8時間の素振りで…

至極の難問AWS & GCPクイズ

社内勉強会で発表したら好評だったので公開 注意 問題1 問題2 問題3 問題4 問題5 おまけ:発表中の社内の反応 余談 1年前の僕 2ヶ月前の僕 関連クイズ 注意 全問解けても仕事の役にはたちません ググるのは禁止 問題1 Q: 正しい組み合わせはどれか? AWS: Cl…

GitHub-native DependabotでもAuto mergeをやりたかった

tl;dr; 前置き GitHub Actionsでやる方法 Dependabot Auto Merge メリット デメリット 備考 Merge me! メリット デメリット Dependabot Pull Request Action メリット デメリット 番外編 Renovateを使う 近況 tl;dr; いくつかやり方はあるんだけどどれも一長…

gitpanda v0.9.5をリリースした

github.com https://github.com/sue445/gitpanda/blob/master/CHANGELOG.md#v095 gitpanda的にはこれといって新機能は無いのですが GitHub Container Registryが secrets.GITHUB_TOKEN に対応した ためDockerイメージをGitHub Container Registryにホスティ…

Go 1.16以降はGitHub版Dependabotを使った方がよさそう

前提 3rd party版Dependabot GitHub版Dependabot どうしてGo.1.16以降はGitHub版Dependabotを使った方がいいのか? 3rd party版 vs GitHub版 前提 一言でDependabotと言っても実は2種類あります 3rd party版Dependabot dependabot.com *1 設定ファイルは .de…

Cloud FunctionsにRubyのスクリプトをデプロイする時の裏側

前置き 注意点 Cloud Functionsのデプロイ方法 デプロイ時のログの場所 Cloud Functionsのデプロイで使われるビルド環境 Cloud Functionsのデプロイ時の処理 前置き 個人ツールをCloud Functionsで動かしてるのですがある日突然デプロイできなくなりました。…

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

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