Diary of a Perpetual Student

Perpetual Student: A person who remains at university far beyond the normal period

テクノロジー

開発体験向上に拘る理由とMackerel Drink Upの野望

arthur-1 Mackerel Advent Calendar 2023 マラソン5日目の記事です。 私は普段の開発の片手間に、CIやテストの改善を通して開発体験を向上させる活動をしています。 blog.arthur1.dev また、普段のコーディングにおいても美しい設計を考え続けています。コー…

Mackerelのメモ機能、活用してますか?

arthur-1 Mackerel Advent Calendar 2023 マラソン4日目の記事です。 Mackerelにはいろんなところにメモがある Mackerel上に存在する様々なリソースにはメモが設定できるようになっています。思いついたものをざっと挙げるだけでこんなにあります: サービス…

監視ツールのカウンタへの向き合い方

arthur-1 Mackerel Advent Calendar 2023 マラソン3日目の記事です。 カウンタ 監視で参照したい値の種類の1つにカウンタがあります。カウンタとは時間が経過するごとに累積して単調増加していく数量のことです。基本的には増加していくだけなのですが、特定…

mackerunn: runnで実行したシナリオ監視の結果をMackerelに投稿するツール

arthur-1 Mackerel Advent Calendar 2023 マラソン2日目の記事です。 シナリオ監視したい! Mackerelユーザーの皆様から、外形監視機能でシナリオ監視を行いたいと要望をいただくことがあります。ここで言うシナリオ監視とは、ユーザーが実際にサービスを利…

arthur-1 Mackerel Advent Calendar マラソン開会宣言

一人Mackerel Advent Calendarマラソンやります Mackerel Advent Calendar 2022の運営をしていたid:arthur-1です。 今年2023年は運営を他の人に任せる代わりに25日分を一人で埋めてみようと思います。 そういえば今年は Mackerel Advent Calendar 全部埋める…

11月は技術書典かSalesforce World Tour Tokyoでお会いしましょう

id:arthur-1 に会える11月のイベント予告です。 技術書典15 2023/11/12(日)にオフライン開催される技術書典15に「はてな技術書典部」として出展しています。私はこちらのブースで当日頒布スタッフをしております。 techbookfest.org 自分は思い立ったら即…

IaC 提供の難しさ: API で宣言的な管理を実現できるか?という視点

Mackerel は Terraform Provider を提供していて、監視ルールや通知チャンネル、ダッシュボードなどの設定が Terraform で記述・管理できるようになっています。 今回は Terraform Provider 提供者の目線から、サービスを IaC で管理できるように対応する難…

ベロシティ向上を目指してCIやテストの再整備をしている

チームが抱えていた CI テストに関する課題 最近、GitHub Actions で実行しているテスト、とりわけ Scala のプロダクトコードのテストに関連する様々な問題が原因で、チームの生産性が下がっているほか、Scala のコードを改修することへ抵抗感を覚えてしまっ…

PHP Conference Japan 2023 で技術カンファレンス初登壇しました

初めてのオフライン技術カンファレンス登壇 fortee.jp 先日行われた PHP Conference Japan 2023 にて、私 id:arthur-1 が登壇しました。 オフライン技術カンファレンスの参加自体は2回目で、今年3月に開催された YAPC::Kyoto 2023 が初めてでした。本編では…

SRE NEXT 2023 の当日スタッフしてました

家のインターネットが復活してようやく腰を据えてブログを書けるようになった今日此の頃。 9/29 に、SRE NEXT 2023 に当日スタッフとして参加していました。 sre-next.dev はてなもスポンサードしてました 自分が担当していた Track C の部屋は大盛況で、セ…

安価に手間なく readonly な GraphQL API を作る

私は個人開発で、読み込みのみが求められる(ユーザーの行動起因でのデータ更新が起こらない) GraphQL API を作っています。情報サイトや個人ブログのバックエンドとしての利用が挙げられます。 今回は趣味の個人開発向けにインフラ費用を抑え、そして手間…

PHP Conference Japan 2023 で学生時代の昔話をします

本日、2023/10/08 に開催される PHP Conference Japan 2023 のタイムテーブルが公開されました。 私 id:arthur-1 は 15:55~16:20 のレギュラートーク枠で、「学園祭Web開発の現場とPHPのこれまでとこれから──技術選定と教育から語る」というタイトルで登壇す…

仮説検証型アジャイル開発に携わり始めたエンジニアの思考(と Mackerel Drink Up の宣伝)

新卒入社から1年ちょっと経ったころ、開発チーム内での席替え*1があり、Mackerel の OpenTelemetry 対応という大きな開発プロジェクトからは離れることとなった。それまで自分が携わってきた OpenTelemetry 対応については Mackerel 公式ブログに記事を書い…

OpenTelemetry Metrics をコマンド一発で投稿できるツール、作りました

OpenTelemetry Protocol (OTLP) を受ける endpoint を開発する際、デバッグのために簡単にテレメトリデータを送りたいという需要があります。OpenTelemetry Collector をいちいち立てたり、何らかのアプリケーションを作ってそれを計装したりするのは、デバ…

GoReleaser を使って Homebrew でインストール可能な CLI ツールを公開する時にも GitHub Apps トークンが使える

3行 GoReleaser を使うと、作ったツールを Homebrew でインストールするための formula を書き出してくれて便利 GitHub Actions でこれを行う際、GitHub の PAT が必要とされているが、代わりに GitHub Apps トークンも使える PAT を利用する方法と比較して…

社会人アプリケーションエンジニア2年目の振る舞い方

本職はアイドルのつもりだが、一応アプリケーションエンジニアもやっている、ということで。 今半期の public な振り返りの代わりに、最近どういう風に仕事をしているのかをまとめていく。参考までに、前半期の振り返りエントリはこちら: blog.arthur1.dev …

Next.js の Static Site Generation (SSG) = Static Exports だと思い込んでいたが違った

blog.arthur1.dev 上記エントリ公開時の原題は「【令和最新版】Next.js の Static Generation で i18n すると疲弊する【App Router 対応】」であったが、現在は表現を訂正し上記のようになっている。その経緯についてのまとめ。 すれ違いと気づき 先ほどのエ…

【令和最新版】Next.js の Static Exports で i18n すると疲弊する【App Router 対応】

2023-06-04 18:00: 誤りのある表現を修正しました s/Static Generation/Static Exports/ *1 結論 Next.js の i18n 機能は Static Exports 未サポートなので自前で頑張れ! Next.js App Router の Static Exports で i18n したい! 今回、以下のような要件を…

Go のテーブル駆動テストは map を使って書きたい

Go 言語のプログラムのテストでは、テーブル駆動テストと呼ばれる書き方をすることが多いです。シンプルに例を挙げると以下のような形。 func TestAdd(t *testing.T) { cases := []struct{ title string inLhs int64 inRhs int64 want int64 }{ { name: "1 +…

docker build 時に private リポジトリから go get する

要件 Go 言語で作られた、GitHub の private repository の go module に依存しているアプリケーションについて考えましょう。例えばオープンソースではない社内ライブラリに依存している、という状態です。 手元の開発マシン上では GOPRIVATE 環境変数を利…

AWS Certified Solutions Architect - Associate になりました

気づいたら社会人2年目が始まっていた id:arthur-1 です。 この度、めでたく AWS SAA-C03 試験に合格しました。 得点は 796 / 1000 点(ボーダー 720点)で可もなく不可もなく。早く仕事がしたかったので制限時間を半分以上残して退出したのですが、もう少し…

『「気軽にアウトプット」する危うさ』をアウトプットする危うさはあるか

これはただ思考実験したというメモ。 note.com を読んだ。 とにかくだ、Bad Practiceを広めるな (中略) 結局行き着く先は、間違った情報の拡散による、その技術を扱う者へのダメージ源になるだけだ。 とある。 直接的ではないにせよこの記事も技術に関する…

2023 GW のゆるふわ日記

これはゆるふわアウトプット。 同僚の家にお邪魔してアイドルの動画を見ながら朝まで酒を飲んだところで GW が始まった。前々からなんとなく憧れのあったライダースジャケットを頂いた。ポップとクールの狭間で生きたいと思っていて、このオトナなアイテムを…

あなたの Twitter の ALT の使い方は間違っている

Twitter での alt 2020年ごろから Twitter に投稿した画像に対して alt を設定できる機能が追加された。 test pic.twitter.com/Sui87RABA7— Arthur (@Arthur1__) 2023年4月10日 埋め込みだと様子がよくわからないので、下にスクリーンショットを掲載する。 a…

メモ: PTCGL の通信だけを VPN 経由にした

Windows の標準機能で VPN に接続している、かつ Powershell スクリプトが書ける人向けです。とりあえず tunnelbear 入れようみたいな人には役に立たない情報が載っています。 インストール・アップデート時 msi ファイルが置いてある CloudFront の IP アド…

lambroll を GitHub Actions で動かすときには明にバージョンを指定しよう

3行 lambroll を GitHub Actions 上で実行するには fujiwara/lambroll@v0 が使える input に lambroll の version があるが必ず明に指定しよう そうしないと、default 値として古い lambroll で動いてしまう - uses: fujiwara/lambroll@v0 with: version: v0…

AgricolaDevJP という org を作りました

GitHub org: AgricolaDevJP GitHub 上で AgricolaDevJP という organization を立ち上げました。今さっき作ったみたいな書きぶりをしていますが、実際に org を作ったのは 2022 年 8 月ごろです。もう半年以上経っていますね。 github.com これまで、ボード…

YAPC::Kyoto 2023 は血の通った人間の匂いがした

なけなしの社交性を YAPC::Kyoto 2023 で全て使い果たしてしまって元気がない id:arthur-1 です。 前日祭で登壇した話はすでに書いたのですが、(こっちも読んでね) blog.arthur1.dev 先のエントリでは触れなかった、参加者目線での YAPC::Kyoto 2023 に関…

YAPC::Kyoto 2023 前日祭 ネコトーストラボ杯争奪東西対抗LTマッチ に登壇しました

YAPC::Kyoto 2023 前日祭の一コンテンツである、ネコトーストラボ杯争奪東西対抗 LT マッチに登壇してきました。 blog.yapcjapan.org 東西対抗とあるように所属企業の所在地で東西チームに分けられており、順番に自分は西チームのトリを飾らせていただきまし…

FY2023上半期を振り返る・広く浅く

こんな形で今後も public な振り返りを定期的に書いていきたいですね。 blog.arthur1.dev ということで、2022年8月〜2023年1月の振り返りを書いていきます。 幅広い技術とコンポーネントに触れた Mackerel は多くのコンポーネントから構成されています。Web …