くりにっき

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

rspec-parameterized v1.0.0をリリースした

gem

リリースノート 主な変更点 コンテキスト 頑張ったこと:可能な限り全てのコミットを移行した リリースノート https://github.com/tomykaira/rspec-parameterized/blob/master/CHANGELOG.md#v100-2022-12-31 主な変更点 rspec-parameterizedの実装を https:/…

gem_rbs_collectionを使ってるgemをいい感じにCIする

前置き やったこと gem_rbs_collectionをsubmoduleとして追加する 手元でrbs validateを叩けるようにする CIでrbs validateを実行する submoduleとしてgem_rbs_collectionをdependabotで定期更新する 前置き gemを作る時にはだいたい最初に bundle gem コマ…

DependabotがマージしたPRのジョブに対してsecretsを渡したい

前提 事象 GitHub Actionsの設定 ジョブの実行結果 原因 解決策 2022/10/5 19:50追記 前提 GitHub.com Dependabot GitHub Actions 事象 Dependabotが作成したPRに対して @dependabot merge のようにコメントをつけるとPRのジョブが全て正常終了した時にDepen…

個人gemのドキュメントを全部GitHub Pagesに移行した

gem

自分が作ってるgemでは https://github.com/lsegal/yard でドキュメントを書くことが多くて、そのドキュメントをホスティングする場所として https://rubydoc.info/ を使っていました。 しかし https://rubydoc.info/ がここ最近ずっと重くて表示するのに十…

doorkeeper_jp gemを作った

gem

doorkeeper_jpとは Doorkeeper のAPIクライアントgemです。 doorkeeper_jp (0.1.0): API client for https://t.co/uLAis9frLT https://t.co/TI6u4CpaiW— rubygems_news (@RubygemsN) 2022年9月29日 github.com 自分のアプリで Doorkeeper API を使おうと思っ…

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…