RubyのアプリケーションをPR単位でテストできるようにしてみた

はじめに RubyのアプリケーションをPR単位でテストできるようにしてみた記事です。 仕事でRubyを使っていて「PR単位で気軽にテスト環境を作りたいなぁ」という人向けの内容です。 背景など 元々仕事で 複数のプロジェクトが同時並行で進んでいる 単一のステ…

RailsをAppRuner/RDS/ECRな環境にデプロイできるようにしてみた

AWS

Railsで作成されたアプリケーションを、AWS上のAppRunner/RDS/ECRを使った環境にデプロイできるようにしてみた時のメモです。 ついでに、Terraformを使ってインフラ周りもコードで管理できるようにしてみた感じです。 作ったもの github.com ほとんど素のRai…

Goでicalendarを生成してみた

Go

はじめに Goでicalendarを生成してみたいけどどうやるんだっけ?って人向けの記事です(多分そんなにいないと思いますが……) 背景 仕事のコードで予約されているデータなどをGoogleカレンダーなどへ連携されるようにしたいという話が出たのが事のきっかけです…

GoでGoの雛型コードを自動生成できるようにしてみた

Go

はじめに 仕事ではもっぱらGoを書いてて、同じようなコードを結構毎回書いたりしてるのがストレスになってる人向けの記事です。 GoでGoの雛型コードを自動生成できるライブラリ dave/jennifer を使ってコマンド経由で楽に生成できるようにしてみました。 git…

「ゼロからわかるRuby超入門」を読んだ

以前から読もうと思ってAmazonの欲しいものリストに突っ込んでいた「ゼロからわかるRuby超入門」を送っていただいたので早速読んでみた。 www.amazon.co.jp ので、雑に感想など書いてみた。 内容など かなり初心者向けの内容でわかりやすい感じでした。 個人…

RustでRubyのNative Extensionを書く

はじめに 先日、Ruby Issue Trackerに以下のチケットが作成されました。 Feature #18481 Porting YJIT to Rust (request for feedback) 内容としては、昨年末にリリースされたRuby 3.1にマージされているYJITという新しいJITコンパイラをより開発しやすくす…

GitHub Actionsで自動的にマイグレーション&DBバックアップが走るようにしてみた

経緯 仕事の関係で、ステージング環境へ自動的にマイグレーションを走らせたい&DBのバックアップを自動化したい状況があり、GitHub Actionsで自動化してみました。 これはその時のアレコレをまとめたものです。 つくったもの(サンプル) github.com 仕事で書…

Mastodonの鯖缶を4年ほどやってみての雑感

はじめに この記事はFediverse Advent Calendar 2021 の7日目の記事です。 adventar.org 2017年からMastodonサーバーを運営してみての雑感を書きたいと思い、参加しました。 軽く自己紹介 S.H.という名前で、Creatodonという創作系のMastodonサーバーの管理…

rstdという趣味ライブラリを作っています

はじめに この記事は Ruby Advent Calendar2 2021の12/6の記事です。 qiita.com 二年くらい前から趣味で作っているrstdというライブラリの紹介したいと思い、参加しました。 作っているもの rtsdという「標準ライブラリにあると便利そうなメソッド」をRefine…

島根県浜田市での暮らしなど

はじめに この記事は地方在住 Advent Calendar 2021の12/5の記事です。 僕も地方在住でリモートで仕事をしているので日々の生活などを振り返ってみようかと思い参加しました。 居住地 現在は島根県浜田市に住んでいます。もともと出身も島根県西部のほうなの…

近況報告という名の振り返り

はじめに この記事はRubyist近況 Advent Calendar2021(2スレ目)の12/3の記事です。 近況報告の体で今年一年を振り返ってみようかなと思い、参加してみました。 この一年でやってたこと お仕事 お仕事のほうではCREというポジションに就き、Go/TypeScriptを使…

浜田市への意見などを投稿できる目安箱サービスを試しに作ってみた

はじめに 元々は浜田市若者会議という会で、「浜田市に住んでいる若者がどんな意見を持っているかを知りたい」という話が出たのがきっかけです。 とりあえず、作ってはみたんですがまだ実際にリリースしたりするように話が詰まっていないので、本当にリリー…

GoでWebsocketを使ったリアルタイムチャットを作ってみた

Go

はじめに 勉強がてらGoでWebsocketを使ったチャットアプリを作ってみた時の備忘録です。 作ったもの github.com フレームワークとしてはGinを使い、ORMにはgorm v2を使っています。 またWebsocket周りはmelodyを使っています。 github.com やったこと 細かい…

gormでPreload周りのメモリ使用量とかを比較してみた

はじめに gamelinks007.hatenablog.com この記事は、上記の記事でgormのバージョンを上げる際にPreload周りの挙動を調べてた時のあれこれをまとめたものです。 ことの発端 gorm v2へのアップデート時に、一部処理でメモリリークらしき挙動が確認されたのがこ…

gormのアップデートをした話

はじめに この記事は、仕事で使っているgormのバージョンをv1からv2にアップデートした時の備忘録です。 またgorm v1を使っている人でかつv2にアップデートしたい人向けの記事なので細かいところは省いています。 経緯 仕事で使っているgormのバージョンがv1…

GitHubで自動リリース&リリースノート自動作成ができるようにしてみた

はじめに 仕事の関係でGitHub上に管理しているコンテンツのリリースとリリースノート作成にだいぶ困っていたので、GitHub Actionsでよしなにできないかやってみた記事です。 対象としてはGitHub Releasesを使っていて、自動でリリースタグが切られたり、自動…

Mastodonのサーバー情報をGrafana/Prometheus/Statsdで一覧できるようにしてみた

はじめに 先日、管理しているMastodonのサーバーを別の仮想サーバーに移行したので、ついでにいい感じのダッシュボードで諸々の情報を確認できるようにしてみた。 サーバーの移行の経緯はこちら gamelinks007.hatenablog.com 作ったもの こんな感じの画面を…

Creatodonのサーバー移管とv3.4.1へのアップデートをした

はじめに これは僕が管理しているCreatodonというMastodonのサーバーの移管とアップデートを行ったときの備忘録になります。 一部正確な情報ではないかもしれませんのでご了承ください。 経緯 2021年9月30日以降でLet's Encryptのルート証明書が切り替わる件…

雑にRefinementsが使えるようにしてみた

経緯 最近、「Rubyにこういうのあったら便利かなぁ」と思ったメソッドをrstdというgemに追加して個人プロジェクトとかで使えるようにするのがマイブームになっています。 github.com で、色々実装している時に、サクッとRefinementsが使えないだろうかと思い…

Cognitoで複数のコールバック先を指定して別々のページに遷移できるようにしてみた

注意 仕事の関係でCognitoのに複数のコールバック先を指定できないか試したときの覚書です。 背景 とあるWebサービスでCognitoを使ってソーシャルログインで自動的にアカウントを作成できる画面を作っていました。 で、仕様変更でアカウント登録画面が複数に…

浜田市の防災情報をLINEで通知してくれるBotを作った。

はじめに 浜田市の若者会議のメンバーの方から「浜田市の防災情報を通知してくれるアプリとかあるとうれしい」という話をいただいたので、実際に作ってみた話です。 作ったもの github.com 実際にLINEで防災情報を通知してくれるBotはこちらのQRコードを読み…

typeprofのインスタンス変数が未初期化のまま使われている警告を解消した

以下のPRをRubyに投げたところ、typeprof周りのテストで落ちているようだった。 github.com で、どの辺が原因なのかtypeprofのテストを回してみたら以下の警告が表示されていた。 /home/sh/rubydev/typeprof/lib/typeprof/analyzer.rb:496: warning: instanc…

浜田市の若者会議に選任された

この度、住んでいる浜田市の若者会議の委員に選任されました。 やることとしては、委員各々が持つスキルとかを使って若者が過ごしやすい街づくりを進める感じです より詳しいことは下記のPDFを読んでいただければわかります。 https://www.city.hamada.shima…

雑にBacklogのチケットを一括で作成できるスクリプト書いた

はじめに 仕事の関係で一括でBacklogに複数のチケットを登録する必要があり、作成したものになります。 手作業なんて面倒くさいことしたくない人は是非使ってみてください。 作ったもの github.com 使い方 使い方は簡単。 上記のコードをクローンした後、必…

高校生にプログラマーってどういう仕事か話してきた

経緯 Hamada.rbとかCoderDojo浜田とかでアレコレ作ったりしてたのがきっかけで知り合った方から「授業(という体のインタビュー)をしてみませんか?」とお誘い頂いたのがきっかけですね。 で、話を聞いてみると浜田高校では以下のような取り組みをしていて「…

GoでZoomのMTGを作成してみた

はじめに この記事は、仕事で触ることになったGo製Zoomライブラリを触った時の備忘録です。 実際に試せるサンプルコードもありますので、気になった人は以下のリポジトリをクローンして試してみてください。 github.com やりかた まず、Zoomの開発者登録とか…

Goのライブラリにはじめてパッチを投げた

はじめに この記事は、仕事で必要なライブラリにパッチを投げてそれがマージされた時の備忘録です。 今後もパッチを投げる可能性があるのでメモ書きとしてまとめている感じです。 背景 最近、仕事ではもっぱらGoを書いているんですが、ライブラリにパッチを…

Zoomの録画ファイル自動アップロード&自動文字起こしをterraformでできるようにしてみた

はじめに 以前書いた以下の記事の内容をそのままterraformでできるようにしてみました。 gamelinks007.hatenablog.com gamelinks007.hatenablog.com またついでにSlackなどに投げれるように文字起こししたファイルを受け取るLambda関数も追加してみました。 …

Zoomの録画データを自動で文字起こししてみた

はじめに この記事は先日書いたAWSとRubyを使って動画ファイルの自動文字起こしを試してみた時の続きです。 gamelinks007.hatenablog.com 今回は実際にZoomの録画データを自動的に文字起こしできるようにしてみました。 注意事項 とりあえず、手順をまとめた…

Ruby/AWS S3/AWS Lambda/Amazon Transcribeで動画の文字起こしをする

はじめに RubyとS3とLambdaとTranscribeを使ってS3にアップロードされた動画を自動的に文字起こしするフローを作ってみました。 この記事はその時の手順などをまとめたものになります。 何故やったかというと、妻が「中国語の動画の字幕が欲しい」と言ってい…