理系学生日記

おまえはいつまで学生気分なのか

Claude Code GitHub Actionsから考える生成AI駆動開発とドキュメント管理の妄想

はじめに もし、すべての開発ドキュメントや成果物が「リポジトリ」という一つの場所に集約され、AIや自動化ツールがそれらを自在に読み書きできたら――。そんな“Single Source of Truth(SSoT)”な世界を想像しても、結局のところ要件定義や設計ドキュメント…

SARIMAXのメモリ消費問題とsimple_differencingによる解決

はじめに:遭遇したメモリエラー なぜSARIMAXでメモリエラーが起きるのか? simple_differencing=True でなぜ解決するのか? 実装例 メリット デメリット・注意点 まとめ はじめに:遭遇したメモリエラー 時系列解析でSARIMAモデルのハイパーパラメータ探索…

Zettelkastenと生成AIを活用した能動的読書法

業務で使えるようになったことや、生成AIと一緒に使う楽しさもあって、最近はObsidianを使う人がどんどん増えてきました。 僕自身もいろんなObsidianの記事を読んでいるうちに、「Zettelkasten(ツェッテルカステン)」というノート術に出会いました。これに…

SARIMAモデルによる時系列データの予測を行い異常検知適用への準備をする

業務でAIばかり考えることになっているのですが、データからモデルを学習し、そのモデルを使って未知のデータに対して推論を行う技術群をAIと呼ぶとすると、いわゆる統計モデルでの機械学習も当然その中には含まれます。従って、統計モデルを用いた異常検知…

「Pythonではじめる異常検知入門」を読んだ

ひょんなことから異常検知という分野に関わることになり、実務で使えそうな知識を得ようと、いくつかの入門書をAmazonで購入しました。異常検知は機械学習の一分野に位置づけられ、多くの数式や背景知識を必要とするため、初心者にとってはその全体像や実践…

「Amazon Bedrock 生成AIアプリ開発入門」を読んだ

はじめに Amazon Bedrockと生成AI関連のAWSサービスの全体像を俯瞰できる 実務に役立つ知見とハンズオン 想定読者とおすすめポイント まとめ はじめに 「Amazon Bedrock 生成AIアプリ開発入門」は、Bedrockを中心とした生成AIアプリケーション開発の全体像を…

最近の苦しさがどこに根ざすのか

翌週の予定を立てながら、最近は毎週、毎週、本当に苦しく感じる時がある。 ここ数年この辛さは蓄積し続けていたのだけれど、それがどうも自分の中の閾値を越え始めたようだった。 この種の悩みを抱えるときにも生成AIというやつは本当に便利で、壁打ちの中…

GitLab Self-Managed用のCodeBuild-hosted GitLab RunnerをTerraformで構築する

2025/2/26に、Self-hostedなGitLabに関して、そのCI/CDを実行するGitLab RunnerをCodeBuildで動かせるようになったという発表がありました (2024/9/17に発表された[AWS CodeBuild がマネージド GitLab ランナーのサポート開始:title:bookmark]はあくまでSaaS…

Clineを使ってブログの文体・文調を言語化しエントリ執筆を自動化する試み

最近、AI技術の進歩により、技術文書の作成プロセスが大きく変化しています。そんな中、mizchiさんの以下の記事に大きな影響を受けました。 この記事では、自身のブログエントリから文体や技術的専門性を抽出し、AIに学習させることで記事を自動生成するとい…

syftとgrypeでJavaとNode.jsプロジェクトの依存関係と脆弱性を可視化する

最近、オープンソースソフトウェアを利用したサプライチェイン攻撃が増加しています。そのため、プロジェクトの依存関係管理と脆弱性対策の重要性が高まっています。僕は開発プロジェクトで多くの依存パッケージを利用していますが、その依存関係の可視化と…

GitHub ActionsのSelf-hosted RunnerをCodeBuildで構成する

GitHubで開発を行う際、CI/CDには通常GitHub Actionsを利用することが多い。プライベートリポジトリであっても同様だが、プランによっては無償で利用できるRunnerの上限が月2,000分までという制限がある。 For private repositories, each GitHub account re…

生成AI時代のシステム開発において「設計」は何のためにあるんだろうか

生成AIの登場でシステム開発のやり方が大きく変わろうとしています。 Large Language Models for Software Engineering: Survey and Open Problems こうなると、要件さえ与えればすぐにシステムが生成できる未来も、決して夢ではないのかもしれません。 こん…

「GitLab実践ガイド 第2版」を読んだ

最近、GitHubだけでなくGitLabを利用する機会が増えてきました。しかも、単なるユーザーとしてではなく、GitLabの構築や運用に関わることが多くなっています。そのため、改めて 「GitLab実践ガイド 第2版」 を読んでみました。 GitLab実践ガイド 第2版 (impr…

LangChain Meetup 5でJavaのソースコード解析を試み敗北した経験について発表しました

発表しました。 Langchain Meetup はめちゃくちゃ良かったです。オフライン勉強会だからこそ聞けることがある。すごくモチベーションが上がった。また参加したい。 テーマ設定 コード生成の課題 アプローチ 前提 今回のアプローチ 結果 業務ロジック フレー…

Terraform管理のAPI Gatewayとlambroll管理のLambda関数をdata.aws_resourcegroupstaggingapi_resourcesで繋げる

Terraform管理とLambrollの併用 Lambrollとは? API Gatewayとの連携課題 data.aws_resourcegroupstaggingapi_resources なお Terraform管理とLambrollの併用 AWSリソースはTerraformで管理しています。Terraformは非常に便利で、無駄に抽象化されていない「…

GitHub Actionsでテストカバレッジの増減を可視化することによりホーソン効果を狙う

まぁよくやられている話なんだけど。 自動テスト頑張りましょうみたいな話をしても、大体そうですねで終わる。これには色々理由もあって、3分くらい考えても テスト書く時間があったらまずはプロダクションコードの実装を終わらせろや、そうじゃないとリリー…

Pull RequestにテストカバレッジをコメントするGitHub Actionsを「セキュアに」実装するには

GitHubでPull Requestを作成することはもはや当たり前のように行われています。 最近は多くの場合、対象リポジトリをcloneした後でfeature branchを作成し、当該のfeature branchを用いてPull Requestを作成するという流れが一般的になったように思われます…

いくつかの生成AIエージェントに見るtree-sitterを用いたソースコード解析

生成AIがシステム開発に利用されるようになってホットな領域になっているのが、ソースリポジトリ、ソースツリーの解析です。 僕のところにも、このソースリポジトリが何をやっているのか可視化してくれみたいな話はよく聞きます。 一方で、GitHub Copilotな…

fs.existsSyncをモックするためにproxyquireを使う

Typescriptのプロダクションコードでfs.existSyncを使うようにした。Node.jsのAPIなんでそれは当然動くんだけど、このコードをテストしたい。テストするために、fs.existSyncをsinonでモックしようとしたところ次のようなエラーになった。 existsSyncStub = …

今年の目標

家族とも相談しながら、今年の目標を決めました。 生活 ゲームを2つクリアする 体力をつけるため、毎日縄跳びをする 温泉旅行に2回行く 仕事 9時始業21時までに終業:疲れを翌日に持ち越さない 技術に向き合う時間を毎日3時間は作る:仕事には技術を求めてい…

Clineのソースコードから、コーディングエージェントがどう動いているのかを理解する

概観 ツール定義 処理の流れ 処理主体 Clineの処理の流れ タスクの初期化 recursivelyMakeClineRequestsでどうやってタスクの計画を行うのか ツールを使うサブタスクに分割するためのtool use まとめ Clineは、ユーザの指示を実現する「計画と実行」を行う自…

TerraformでSelf-hostedなLangfuseを構築し、 Chat Completion APIのトレーシングを試す

LLM Observability Tool Langfuse LangfuseをSelf-hostしよう Langfuseのアーキテクチャ Terraformで構築する トレーシングを試してみる LLM Observability Tool どこもかしこも生成AIですが、生成AIをインテグレーションするシステム開発においてなくてはな…

App RunnerやECSで"exec format error"が発生する / Multi-platform buildsでハマる

特定のDockerイメージをAmazon ECSやApp Runnerで実行すべく、デプロイを試みたところ、以下のようなエラーが発生しました。 exec format error 真面目にハマったので、何が起こったのかを整理しておきます。 前提としてのMulti-platform builds 何が起こっ…

SwitchBot CO2センサーで測る、俺たちのCO2濃度

「スマートホーム」と聞くと大袈裟に聞こえるかもしれませんが、我が家ではSwitchBot製品で統一を図っています。特に、2024年の「買ってよかったものランキング」上位に輝いたのがSwitchBotのCO2センサーです。 実は前々からCO2濃度センサーが欲しいと思って…

子供が入院していた

実は、昨年の年末から子どもが入院していました。 12月中旬から断続的に熱が出ていて、学校を休んだり行ったりの繰り返し。僕も時々会社を休んで看病をしていたのですが、病院で診てもらってもインフルエンザではないし、とりあえず薬で対処療法をしながら様…

GitHub Copilot Workspaceが提供されて、僕たちの開発はどうなっていくのか

GitHub Copilot WorkspaceのTechnical PreviewがGitHub有償ユーザ向けに公開されました。GitHub Copilotを有償で利用している方は、すぐに使える状況になっていると思います。 僕も少しだけ使ってみたのですが、今後の開発プロセスを大きく変えていくだろう…

GitHub Copilot Chatで都度モデルを変更できるようになった変更をChat Extensionに取り込む

GitHub Copilot Chatにおいて、言語モデルが切り替えられるようになりました。これができるようになったのはいつかを振り返ると September 2024 (version 1.94)でした。そんな前か。 とはいえ、僕も含めて多くの人は、この機能を実際に利用し始めたのは最近…

devcontainerにおいてdirenvをデフォルト有効化しておきたい

環境構築手順をドキュメンテーションするのもメンテナンスするのも面倒なので、チーム開発をする際、最近はdevcontainerを使おうということにしています。 一方、環境変数の管理にはdirenvを使っているのですが、direnvはこうやってセットアップしてねという…

シェルスクリプトで、パッチバージョンが最大となるマイナーバージョンのリストを取得する

パッチバージョンが最大となるマイナーバージョンのリストを取得すると言うのは何をいっているのかというと、例えば、以下のようなsemverのリストがあるとします。 マイナーバージョンとしては1.94、1.95、1.96があり、それぞれのマイナーバージョンに対して…

apt-get installでのversion pinの是非

Dockerfileにも当然ベストプラクティスが存在し、それをチェックするLinterも存在します。 Best practices | Docker Docs GitHub - hadolint/hadolint: Dockerfile linter, validate inline bash, written in Haskell そのベストプラクティスと呼ばれる1つに…