技術
はじめに これははてなエンジニア Advent Calendar 2025 18日目の記事です。昨日は id:kouki_dan の毎日1コミットを続けて1年が経った - Lento con forzaでした。 id:utgwkk です。Goを書いていて、頻出のイディオムをもっと短く書きたい! という欲求に駆ら…
メモです。 いつの間にか (たぶん2025/9ぐらいから?) sticky scrollが有効になっていたけど、コマンドの出力が一目で分からない・手元の環境だと挙動が怪しい*1ので、切った。どの設定項目か分からないけど、そのものずばりsticky scrollって書いてあった。 …
終業後、会社にインターン生が集まっている中で、確か id:Windymelt あたりと雑談していたと思うけど、なんやかんややっていたら「QRコード」「おみくじ」2つの要素が合体して、これは作ってみるしかないという流れになった。誰か詳しい経緯を覚えていたら教…
JSer.infoはJavaScriptの最新情報を紹介する週刊ブログである。そして実は韓国語版の記事が投稿されている。たとえば以下の通り: 2025-02-01のJS: Bun 1.2、Tailwind CSS v4.0、TypeScript 5.8 Beta - JSer.info (日本語) 2025-02-01: Bun 1.2, Tailwind CSS…
はじめに 様子 モチベーション 実装のみどころ 現時点での限界 よくある質問 特定のlinterに対してだけnolintを挿入したい あわせて読みたい はじめに GitHub - utgwkk/autonolint: Insert `//nolint` comment automatically for golangci-lint 表題のものを…
はじめに これは Go - Qiita Advent Calendar 2024 - Qiita の記事です。 tl;dr goquでMySQLのクエリを組み立てるとき、BOOLEAN型のカラムの値を比較するとき Eq メソッドなどや goqu.Ex 型にGoのbool型の値を渡さない IsTrue IsFalse メソッドを使わない My…
kyotogo.connpass.com 参加し、登壇しました。発表資料はこちら。 speakerdeck.com 開発中のプロジェクトに導入しているgolangci-lintのルールをどうやって強くするか、というテーマでした。golangci-lintの設定について検索すると、disable-allしてからenab…
はじめに これは はてなエンジニア - Qiita Advent Calendar 2024 - Qiita 14日目の記事です。昨日は id:ymse の compose.yamlはマージができるし、YAMLのtagでその挙動をコントロールできる - 風に吹かれても でした。 id:utgwkk です。来週末に韓国に行く…
はじめに ISUCON 14にチーム「ミレニアムサイエンススクール」で参加しました。メンバーは自分と id:nonylene id:wass80 です。 最終スコアは28875点で、22位でした。やった~ gyazo.com リポジトリはこれです。言語はGoです。なぜなら自分が最速で書けるた…
表題のものを書きました。 github.com 使い方 GET /rss というエンドポイントに、 url というクエリパラメータでRSSフィードのURLを指定してリクエストすることで、修復したRSSを返してくれます。 例: https://patchrss.dt.r.appspot.com/rss?url=https://ad…
はじめに 表題のようなCLIツール aws-iam-policy-sim を書きました。 github.com 使い方 Statement フィールドに、以下のようなオブジェクトの配列が入っている、というJSONファイルを用意しましょう。 Action フィールドにアクション名もしくはその配列 Res…
移行しました。ペライチなのでそんなに難しいことはないだろうと思ったけど、細々とハマりどころがありました。 utgw.net 前回の移行はこちら。 blog.utgw.net 前提 Next.js 13.4.9 Static HTML ExportをしたものをNetlifyにデプロイしている リダイレクト設…
やってみた記事ってやつです。 AWS Step Functionsから任意のHTTP APIを叩けるようになった*1ので、これを使ってMackerelに投稿してみましょう。 投稿するメトリックを用意する サービスメトリックを投稿するときのリクエストボディの形式に沿ったJSONを組み…
この記事のタイトルにあることの理由は MySQL :: MySQL 8.0 リファレンスマニュアル :: 13.1.9.2 ALTER TABLE および生成されるカラム を読んだら分かります。 生成カラムの式を変えてsqldefでマイグレーションを反映したら、DROP COLUMNしてADD COLUMNするD…
はじめに 2024/10/18*1にgomock (mockgen) v0.5.0がリリースされました。 github.com リリースノートを見ていこうと思うのですが、その前にpackage modeという新しいコード生成のモードについて触れましょう。 はじめに reflect modeの限界とpackage modeに…
連休中に、golangci-lintに組み込まれているlinterを全部見た。Linters | golangci-lint から見れるので、みなさまも見てください。 世間でも全部見ている事例はありそう。こちらもあわせてどうぞ。 zenn.dev これで記事を終わってもいいけど、もうちょっと…
大吉祥寺.pmに参加しました。この記事の公開をもって吉祥寺からの帰還といたします。 登壇した speakerdeck.com タイトルは「君たちはどう生きるか」をモジりました。 コードレビューの目的は「コードの品質を保つこと」「知見を共有すること」である、とい…
Go Conference 2024に参加し、登壇してきました。 登壇しました Dive into gomockというタイトルで発表しました。2トラックのどちらかで40分トークかな? と思っていたら2部屋ぶち抜きでトークだったのでビビっていました。 発表資料はこちらです。 speakerde…
参加しました。サイボウズさんの大阪オフィスには初めて行きました。 umedago.connpass.com LTのスライドはこちらです。リフレクションしたくなっても早まるな!! という話です。 speakerdeck.com 個人的にはリーンコーヒーがおもしろかったです。Goにまつわ…
kyotogo.connpass.com 参加して、LTしました。 speakerdeck.com Webアプリケーションを運用する立場からは、多少パフォーマンスが犠牲になるよりもエラーの発生元を容易に特定できるほうがよいに決まっているだろう、となるとやっぱりスタックトレースが欲し…
生きてるといろいろなことがあり、リフレクションでstructのunexportedなフィールドに値を書き込みたくて調べていたら、以下のStackoverflowの回答が見つかった。 stackoverflow.com 以下のようなイディオムでstructのunexportedなフィールドにアクセスでき…
Well done! Your session Dive into gomock has been accepted for Go Conference 2024! ということなので、よろしくお願いします。「Dive into gomock」というタイトルで、gomockの内部実装に深入りする話をします。 gocon.jp 6/8に渋谷で会いましょう。今…
技術選択の場面において、ある技術を選ぶということは選ばれなかった技術があるということである。なぜその選択にしたのか、に目が向きがちだけど、選ばなかった技術についても述べるべきだろう。 今回の企画・要件に対して、この技術はこういう制約が見合わ…
ログ*1、油断すると絶妙に情報量が足りなかったり、欲しいものがdebugレベルでしか出ていなくて本番環境で見れなかったりしがち。ここでこういうログが欲しくなるだろう、という感覚を鍛えるには、実際にログが足りなくて困る経験をするしかないのか、もうち…
タイトルが全てです。 GraphQL Cursor Connectionの仕様の3.1.1節には以下のような注意書きがあります。 The naming echoes that of the “Node” interface and “node” root field as described in a later section of this spec. Spec-compliant clients can…
以下のツイートが全てです。 ラクスル シール・ステッカー・ラベル / バラ四角カット / 40x40mm / 光沢紙(アート) / 光沢ラミネート(PP) / 普通のり / カットパス作成: 四角形 50部 受付から7営業日後出荷 2,805円— うたがわきき (@utgwkk) 2024年2月27日 こ…
生きてると、テストがどんどん遅くなりがちです。実際にDBに接続するタイプのテストとか……。そしてそういう種類のテストに限って並列化しやすいように実装されていないこともありがちですよね。 GitHub Actionsを使っている場合*1、そのようなテストが複数フ…
tl;dr PutObject のオプションの Bucket フィールドに空文字列を渡していませんか? 環境変数経由で設定する値がうまく渡っていない、などありませんか? もう一度点検してみましょう。 この記事はこれでおしまいです。検索しても全く情報が出てこなくてしばら…
参加しました。前日祭や懇親会・アフターイベント・YAYAPCも含めて全て出席していました。 yapcjapan.org どの発表もおもしろく、全てについて詳細に取り上げるには紙面 (紙じゃなくない??) が足りないので、ピックアップ形式にさせていただきます。 とほほ…
kyotojs.connpass.com 登壇もしました。発表資料は以下です。「発表枠(Kyoto)」という枠がなかなか埋まっていなかったので、自分に話せることがないか、を2日前の夜に絞り出しました。 speakerdeck.com create-react-appの現状と自分との関わりについて話し…