Go slog の JSON Handler で入れ子の出力をする

slog の基本 Go1.21 から公式の標準ライブラリに構造化ログを出力可能な slog が追加されました。 呼び出し方 デフォルトで時刻やログレベルが付与されます。 比較のため、fmt でも出力します fmt.Println("Hello, World!") slog.Info("Hello, World!") slog…

OpenAI の API を叩く AI Agent を Python で作り、Go の開発を全部 AI にやってもらいたい!

こんにちは、a2 です。 Go のアプリケーションのコードをモリモリ生成してくれる AI Agent を作ることができないかなと思い、試してみてます。タイトルに書いたようなことはまだ全然できてないのですが、今回はその第一歩を書いてみます。 背景 今、開発現場…

Postmanを使用したブラウザCookieの同期と効率化

はじめに Web 開発において、ブラウザCookieの効率的な使用は、APIテストの精度を向上させる上で重要です。 Postman では Cookie を手動で入力することも可能ですが、Developer tools から cookie をみてコピー&ペーストする作業を繰り返し行うのは無駄が大…

ogen の convenient error の用途と使い方をメモ

ogen を使うとログに出力される INFO がある (ogen とは、OpenAPI の Go サーバーコード生成ツールの一つ。ogen については他の記事を参照のこと。) ogen を使い始めるとすぐ、コード生成コマンドで以下の info がログに出ることに気づく INFO convenient …

クリーンアーキテクチャ で New して Execute をする理由の具体例を考えた

クリーンアーキテクチャ再学習 仕事で一からプロダクトを実装することになったので、この機会にクリーンアーキテクチャについてもう一度深く学んでみることにしました。 クリーンアーキテクチャは具体的な実装を読むと、「本当にこの複雑さは必要なのか?」…

Go の project layout のやつ

背景 Go で project を作る時に directory 構造をどうするかは議論がある。 公式と非公式の間みたいな資料 (project layout )がずっと参照されていたが、ついに公式からある程度の指針が示された。 Organizing a Go module - The Go Programming Language 短…

vscode で Go を開発していて、ファイル保存すると import されるパッケージが想定と違う時

import される package をカスタマイズする方法はわかりませんが、正しい package を go get してあるのなら、古いキャッシュが影響している可能性があるので、 go clean --modcache とすると、上手く行くかもしれません。 私の場合は、 pgx.New.... と書い…

vscode x asdf x Go の時の No preset version installed for command gopls

ひさしぶりに使うPCで Go linter が効かなくて困った。 No preset version installed for command gopls vscode language server の gopls が起動しない模様。 Go to output で出力を見ると、↑のエラーメッセージが出ていた。 .tool-versions ファイルは pro…

指摘をもらって、なんでそんなことに気づけなかったのか、と思うことがある

指摘をもらって、なんでそんなことに気づけなかったのか、と思うことがないだろうか。 先日、設計ドキュメントを書いて、「目的がよくわからない、想定している具体例がないので正しいのか間違っているのか判断材料が十分に書かれていない」と指摘をもらうこ…

ソフトウェアエンジニアとサッカー選手って似ている

余談:三笘選手すごい イギリスのプレミアリーグでブライトンの三笘選手がすごいゴールを決めた。 昔、マラドーナという有名な選手がいて、その人のゴールに似ていたらしい。 私は三笘選手を応援している。 私は去年の始めはサッカーに一切興味なかったのに…

GPU その他を増設した

2年ぶりにPCをいじくる GPT 関連のモデルを自分で回したいと思い、2年前から使っているPCにGPUを増設することにした。 2年前に初めて作ってから、素人がとりあえずで触るものではないなと思ったので、ずっと触らずにきたが、満を持して。 2年前にもお世話に…

大山初登頂!初心者の挑戦と学び

はじめに 0. 登山前の準備 1. 登山口までのアクセス 2. 登山開始 3. 山頂へのルート 4. 下山ルート 5. 登山後のリフレッシュ まとめ はじめに 先月の2023/6/18に、神奈川の大山に登ってきました。私は高尾山しか上ったことのない登山初心者なので、初心者用…

AWS SAA の学習リソース ~ ChatGPT を添えて~

AWS Certified Solutions Architect - Associate を取得しました。 Associate 資格に対して、「普段AWSを触っていて、ベストプラクティスを知っていればちょっとの勉強で取得できそう」と思っていませんか? 私は思ってました。 しかし実際は、想像以上に範…

Go Conference 2023 聴いてきました!(感想とメモ)

GoConf 楽しかった GoConference に初参加して、セッションを拝聴しました! 有休を取って、個人として参加です。休みをとったのは、 単純に申し込みタイミングで現職に入社してなかった 業務と並行すると集中して聞けない 業務枠だと、会社に還元しなきゃ、…

Tailscaleで Joplinを出先でも同期できるようにした

要約: 今まで自宅LAN内でしか同期できなかったのを、出先でも同期できるようにした。 背景 Joplinって何 同期可能なメモアプリ。Notionの機能少ないバージョンみたいな。 なぜNotionを使ってないかはこちらの記事に書いた。ただ、最近は改善されてたので、…

自分のエゴを出すことが会社・ユーザー・自分の三方良しに繋がる

あるプロジェクトで、ユーザーに価値を届けるため(機能開発のため)、落ちているタスクを積極的に拾ったことがあった。 "落ちているタスク"とは、ここでは、「明確にオーナーがおらず、しかしプロジェクトの成功には必要不可欠な仕事」を指している。 それ…

docker でよく使うけど覚えられないやつ

docker 周りで頻繁には使わないかもしれないが、 それゆえに覚えてなくて毎回調べるやつ コンテナの残骸を消したい 1時間以内に作ったコンテナ全部消す 直近間違えて作ったゴミ(container)を消す方法 注) "minute" でgrepしてるので、imageとかtagの名前に…

2週間休みがあったのでやったこと

総評 まとまった休みをとって誘惑なく勉強に集中できるのはとても良かった。 また、普段は優先度があげられなかったり、誘惑に時間をとられてしまって進まないようなことに時間をかけられて良かった あと2kgやせた。病院食は1日に1750kcal しか取れないのだ…

2023 にレベルアップする方法(Githubのスレッドより)

Github公式から年末ツイート 「2023 にレベルアップする方法」というスレッドをGithub公式が上げていたので、内容を薄く拾ってみます。 時間管理の方法 いたずらに時間を消費せず、アウトプットにつなげる方法 アジャイルな(意訳)計画方法 なお、DeepLでの…

ハッカソン(SPAJAM2022) に初参加した

ハッカソン初参加 1月経とうとしているが、2022/10/01-02 にハッカソンに初参加してきた。 SPAJAMというハッカソンで、広めのテーマを与えられて、そのテーマに関連したスマホアプリを24時間で作る、という内容。 初心者でも参加しやすいらしく(参加資格に…

すごいH本の勉強終えた

amzn.to すごいHaskellたのしく学ぼう! を全てではないですが写経もしながら進めて、終えたので、読書感想文を書きます そもそもなんでやってたの なんとなく、 97 Things Every Programmer Should Know - Kevlin Henney (2010) にも「関数型言語の原則を適…

「アウトプットから始まるエンジニアのキャリア戦略」勉強会備忘録

アウトプットから始まるエンジニアのキャリア戦略 なる勉強会を視聴した。片手間で聞いてたので全てはカバーしてないが、気になった話をメモしておく。 勉強会の内容は、普段アウトプットしている人たちに、アウトプットの仕方や考え方を聞くもの。 「アウト…

Cobra でコマンドが動く流れを調べてみた

概要 cobraとは cobra は go CLI のコマンドを作るpackage. コマンド引数を受け取って動作を変えることができる。 CLI 作成用packge は他にもある。cobraは代表的なpackageの一つで、k8sで使われている。 他との比較については調査対象外。 調査 cobra-cli …

redis をgo から叩いてみる

redis を勉強してます。 data type についての公式チュートリアルを通しでやってみたので、次にgo を使ってredisを叩いてみます。 redisを立てる 環境によって適当にインストールします。 https://redis.io/docs/getting-started/installation/install-redis…

AWSの基礎本の内容をterraform で書いてみた

『Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂3版』 の内容を、terraform で手を動かしてやってみた。 過程やまとめ、結果をつらつらと書く。 Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂3版 | 大澤 文孝, 玉川 憲,…

ICL手術を受けた話

想定読者 この記事は以下の人に向けて書きます 既にICLについてたくさん調べた方 調べたが、イマイチ情報が足りず、実際の体験談を詳しく知りたい方 youtuber等は案件の可能性があり、あまり信用できないなと思うメタな方 東京でICLを検討中 リスクと安さの…

nodeのバージョンを指定する旅

以前にDockerfileを書いたとき、yarnをインストールすれば一緒にnodeもインストールされることを活用したが、別の環境では違うnodeのバージョンがインストールされてしまった。 nodeとnpmとyarn周りは永遠に悩まされ、その度に調べてはその場しのぎな気がす…

rails で Webpacker::Manifest::MissingEntryError エラー

結論 node のバージョンが違った。同じDockerfile でビルドしているので同じバージョンと思い込んでいた。 経緯 いろいろ調べてもなかなかすぐに解決しなかったので、整理もかねて、メモしていく あるPCでrails アプリを開発していて、そのアプリを別のPCで…

PCを新調したのでやったことをメモしておく

WindowsのノートPCを買った。これまで使ってたのは6年前に10万で買ったPCで、まだ動くが、流石に開発には心もとないのと、持ち運びには重かった。 いきなり余談 lenovo のX1 carbonを買ったのだが、購入にあたって誰かの役にたつかもしれない情報を書いてお…

Rails 6 の環境をdockerで構築する

内容に誤りがあったため、最初に公開したときから大幅に修正を加えました なぜ書くか docker公式のrailsのQuickstart のページに、Rails でYay railsする手順は書いてあります。 しかし実はこちらの手順ではDockerfile内でのユーザーがrootのままであるため…