Diary of a Perpetual Student

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

テクノロジー

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

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

パフォーマンスだけを考えると WMI を使わないほうが良いのかもしれない

OS 名は WMI から取得したほうが良いが…… 前にこんなエントリを書いた。 blog.arthur1.dev このエントリを要約すると、「Windows の OS 名を取得するとき、レジストリにアクセスするのではなく WMI を使って取得しよう。なぜなら、Win 11 が Win 10 として認…

GitHub Actions の ::set-output 脱出 上級編 便利ツールでカバーできないケース

::set-output 脱出 進んでますか? github.blog エンジニアで GitHub Actions を利用している人はだいたい知っているであろう、 ::set-output や ::save-state の非推奨化問題。このコマンドを利用していると2023年5月末にはエラーになってしまう予定となっ…

学園祭のWeb開発を語る: 抽象編 自分たちの責務をどう絞り、どう委嘱するか

遠い昔に学園祭の Web 開発をしていた話をするシリーズもの最終回 具象編1: 講習会と砂場遊びで支える組織 具象編2: 開発体験・保守性を投げ捨てる 抽象編: 学園祭の開発部署という組織や、学園祭Webサイトというプロダクトの性質から語る ←イマココ ここか…

僕は技術エントリを自分のために書いているわけではない

blog.arthur1.dev おかげさまでたくさんの方に反応していただきました、ありがとうございます。 まだ全然読みきれていないけど、少しずつ丁寧に咀嚼していこうと思います。 技術エントリは自分のために書いている、というコメントが多かったので一つだけ。 …

Windows の OS 名をレジストリから取得するのはやめよう

3行 Windows の OS 名をレジストリから取得すると、Win 11 が Win 10 として表示されてしまう 例えば、WMI を使って取得する方法が正攻法っぽい Go から WMI を触るサンプルコードもあるよ Win 10 が Win 11 として Mackerel に登録されている 自分は OSS の…

next-gen Slack App で AWS のサービスと接続するとき気をつけたいこと3選

年末から Slack App の次世代プラットフォームを試してみています。現在はオープンベータ版となっており、有料の Slack ワークスペースでしか利用できません。 api.slack.com 次世代プラットフォームはこれまでの Slack App を取り巻くエコシステムと大きく…

技術的なアウトプットに疲弊したので振り返る

2022年は技術的なエントリをそれなりの数書いてきた。特に12月は計10本のエントリを出し、まだ世に出せていないネタもたくさんあるという状況である。 ところが、当人の感覚としては暖簾に腕押しだなあと思っている。ということでちゃんと振り返ってみること…

ent + gqlgen で怠惰に GraphQL API を作る

この記事ははてなエンジニア Advent Calendar 2022 の 2023年1月4日の記事です。 Go 言語の ORM である ent をご存知でしょうか? ent はコード生成を用いて型安全に RDB のクエリを記述できる ORM です。エンティティ間の関係を Edge として定義するのが特…

GitHub Actions の workflow の lint を Github Actions で動かす

GitHub Actions で色々なコードの test や lint を動かしていると思います。 その際に workflow を yml で定義するのですが、この workflow ファイルはちゃんとチェックしてますか? 「見よう見まねで yml を書いて push したけど、キー名が間違っていて動か…

Mackerel Advent Calendar 2022 完走したので全部読む

Mackerel Advent Calendar 2022 の運営をしておりました、 id:arthur-1 です。この度は、Advent Calendar にご参加いただき、もしくは閲覧していただき、ありがとうございました。 qiita.com 25日分の記事が集まり、最後まで完走することができました。自分…

買って良かったものランキング 2022

ランキングと銘打っていますが特に順位はつけていません。悪しからず。 ガジェット編 YAMAHA のヘッドセット ヤマハ YAMAHA スタジオ音質ヘッドセット YH-G01 ブラックヤマハ(YAMAHA)Amazon 軽い!聴こえる音が良い!マイクの音質も良好!ということでおすす…

学園祭のWeb開発を語る: 具象編2 開発体験・保守性を投げ捨てる

遠い昔に学園祭の Web 開発をしていた話をするシリーズもの 具象編1: 講習会と砂場遊びで支える組織 具象編2: 実際に使っていた技術や開発の仕方について語る ←イマココ 抽象編: 学園祭の開発部署という組織や、学園祭Webサイトというプロダクトの性質から語…

学園祭のWeb開発を語る: 具象編1 講習会と砂場遊びで支える組織

学園祭の Web サイト開発に関する良いエントリが出たので読んでいた。 zenn.dev これを読んで、色々な学園祭のWeb開発がどういう組織形態で、こういう取り組みをして成功/失敗した、という話をもっと聞きたいと思った。 アウトプットが進めば、学園祭Webサイ…

URL から profile を自動判別する Smart Google Chrome を作ろうとした

結論 URL を見て profile を自動判別して開くアプリ、もうあるってよ brew install --cask choosy Chrome の profile Google Chrome の profile 機能を使っていますか? これは、ブックマークや履歴などの情報や設定を使い分けることができるものです。 supp…

Lambda 新機能の Telemetry API を利用した mackerel-lambda-extension-agent 試作

この記事は Mackerel Advent Calendar 2022 16日目の記事です。 こんにちは、id:arthur-1 です。2022年にはてなに新卒入社して、Mackerel 開発チームのアプリケーションエンジニアをやっています。また、今年の Mackerel Advent Calendar の運営を担当してお…

時間やネットワークトラフィックの単位が追加された Mackerel でネットのスピード監視

この記事は Mackerel Advent Calendar 2022 1日目の記事です。 こんにちは、id:arthur-1 です。2022年にはてなに新卒入社して、Mackerel 開発チームのアプリケーションエンジニアをやっています。また、今年の Mackerel Advent Calendar の運営を担当してお…

Advent Calendar を Mackerel で監視する 〜新卒の暮らし方を添えて〜

この記事ははてなエンジニア Advent Calendar 2022 1日目の記事です。 こんにちは、id:arthur-1 です。2022年に新卒入社して、Mackerel 開発チームのアプリケーションエンジニアをやっています。 arthur-1 という id に掛けて、トップバッターをいただきまし…

Jest で落ちたアサーションを GitHub のアノテーションに出す

最近 GitHub Actions を弄くり倒すことにハマっていて、 GitHub の Checks API を利用して annotation を出すおもてなしをすることだけが生きがいだと思って生活していました。 そんな中、JavaScript (TypeScript) のコードのテストでよく使われている Jest …

個人開発をクラウドシフトすることにした〜Github Actions 用の IAM ロールを作る〜

個人開発用に VPS を借り始めてもう7年近くになる。これまでにボードゲーム関連で作ったサービスは基本的に VPS 1台に全部載せて運用している。コンテナすら利用していないので、PHP や MySQL のバージョンを上げるだけで一苦労だ。 日々の運用が toil にな…

フロクロさんを語る:マルチタレントとオープンネス

今日はとあるアーティストについての話をします。先日のエントリで1楽曲だけ取り上げた、フロクロ(Frog96)さんです。 音楽制作者としての自分、ソフトウェアエンジニアとしての自分、両方の目線で強く惹かれるところがあったので、ぜひ紹介させてください…

ダークモードをおまけ感覚で提供するのは厳しい

スマートフォンを先日発売された Google Pixel 6a に乗り換えました。 もともとは Pixel 3a を利用していたのですが、セキュリティアップデートの提供保証が切れたことが買い替えの主な理由です。 store.google.com 機種変更に伴って、ワンタイムパスワード…

株式会社はてなに入社しました(本物)

株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記 といういつものやつではなくて、これは本当の入社エントリ(にしては遅すぎないか?)です。 株式会社はてなにWebアプリケーションエンジニアとして入社して4か月が経とうとし…

ISUCON 12: はじめての ISUCON 体験記

ISUCON 12 予選にチーム「横浜の缶詰」*1として参戦し、最終スコア 9368 点を残して敗退しました。参考値ではありますが 104 位(661 チーム中?)ですね。 isucon.net 結果としては残念な感じですが、初めての ISUCON で今後の成長に繋がるやり方を貫き通せ…

悪しき日にレジリエンスを考える

この4月にブログを新しく作り直したのですが、前のブログの記事の移転がまだできていません。 それはそうと、今日は自分が昔書いたエントリを掘り返して、令和最新版にリファインメントしていこうと思います。 「東日本大震災」 急に思い出した話を書きます…

LambdaでSlack Botを開発するTips

本エントリは、バックエンドにAWS Lambdaを用いたSlack Botを開発するときのTipsを雑多に垂れ流していくものです。普段の記事と異なり、エントリとしての主張のまとまりに関してはほとんど考慮していません。 Slackで使えるインタフェースを把握しよう Slack…

標準エラー出力が見れなくなるpreztoユーザはバージョンを確認しよう

結論 昔のpreztoを使っている人は、最新のリポジトリの状態を反映しよう 本文 僕のターミナルがおかしい 僕のターミナル環境はなにかがおかしい。何がおかしいかというと、標準エラー出力に書き込まれているものが見えなくなることがありました。 コマンドの…

自宅にYAMAHAの業務用ルータを導入してみた

こんにちは、ネットワーク初心者のid:arthur-1です。今回は家のネットワーク環境整備の話をします。 学生時代には学園祭実行委員会の1ロールとしてITインフラ管理をやっていました。「ネット繋がらない!」「プリンター調子悪い!」という声に24時間体制で対…

input[type="datetime-local"]の値をPlay Frameworkで受け取るには

結論 input[type="datetime-local"] をPlay Frameworkで受け取る時のValidationルールは localDateTime("yyyy-MM-dd'T'HH:mm") 本文 背景と問題 Play Frameworkのチュートリアルとして、スケジュール管理ツールのようなものを作ろうとしていました。予定のタ…

SlackのチャンネルURLに関する実験

Slackのチャンネルにリンクを貼りたいと思ったことはありませんか?僕はあります。 以下のようにチャンネルメニューを開いて「リンクをコピー」を選択することで、チャンネルのURLを取得することができるんですね。 チャンネルURLは https://{your_workspace…