ENECHANGEのフィード
https://zenn.dev/p/enechange_blog
ENECHANGEグループは、「エネルギー革命」を技術革新により推進し、より良い世界を創出することをミッションとするエネルギーベンチャー企業です。 https://enechange.co.jp/
フィード

Devin's Machine を設定して Devin 自身にテストをやらせる
ENECHANGEのフィード
はじめに最近 Devin を使った開発を積極的にするようになってきているのですが、Devin を使った開発で、なかなか成果を実感できない状況に悩んでいました。特に、Devin が生成したコードの品質に悩まされ、CI でのテスト失敗に時間を取られることが多かったのです。この記事では、Devin's Machine の設定を行うことで、どのように開発効率が改善されたかを実体験ベースで紹介します。 これまでの課題 Devin を使っても成果を実感できないDevin を導入したものの、期待していたほどの成果を実感できていませんでした。主な課題は次のとおりです。質の高くない...
23日前

MCP Client の Roots, Sampling, Elicitation 機能について調べたまとめ
ENECHANGEのフィード
はじめにMCPサーバーの機能として Prompts, Resources, Tools がある一方で、MCPクライアントの機能としては Roots, Sampling, Elicitation があることを知りました。そこで、これら3つの機能の役割について調査しました。 結論Rootsクライアントがサーバーに対してファイルシステムへのアクセス境界を提供する機能サーバーがどのディレクトリやファイルにアクセスできるかを制御Samplingサーバーがクライアント経由でLLMに推論リクエストを送る機能サーバー側でAPIキーを持たなくても、クライアント経由でAI機...
1ヶ月前

$100 くらい溶かしながら社内向けコンポーネントパッケージを Cline 主導で開発した感想
ENECHANGEのフィード
はじめに以前会社のテックブログでこのような記事を公開しました。https://tech.enechange.co.jp/entry/2025/06/13/165838この記事で言っている RenderProps のコンポーネントライブラリは初めて Cline 主導で開発したのですが、そのことについては記事では触れられていなかったのでこっちで雑多に感想をまとめておこうと思います。 Cline を使った開発の感想 定量的な結果工数 : 実作業時間で2週間弱コスト : $100 ちょっとコード行数 : 1万行くらい(リファクタリングの余地あり)成果 : まだこれから...
1ヶ月前

Apache Parquet ドキュメントを読みながら Parquetとは何かを理解する
ENECHANGEのフィード
概要仕事でParquetファイル保存したデータをPandasを用いて読み書きしている。せっかくなのでParquetとはなにかについて調べてみたいと思う。本記事では、Apache Parquet サイトの内容をDeepLに翻訳を頼りながら読み進めていく。 Apache Parquet とはなにか?サイトのトップには以下のように書いている。Apache Parquetは、効率的なデータ保存と検索のために設計されたオープンソースの列指向データファイル形式です。複雑なデータを一括処理するための高性能な圧縮およびエンコード方式を提供し、多くのプログラミング言語や分析ツールでサポ...
1ヶ月前

Fastlaneで外部連携された証明書をもとにプロビジョニングプロファイルを更新する方法(fastlane match import)
ENECHANGEのフィード
対象読者Fastlane を使用して証明書管理を行なっている方受託開発などで、AppleDeveloperProgram が顧客側で管理されているため、証明書周りの操作に制約がある方 結論更新対象の証明書をもらって、fastlane match importを使ってみましょう! 記事を書こうと思った経緯Fastlane を用いて iOS の証明書等を管理していると、(Key を使用している場合は別ですが)年 1 回の配布用証明書更新を行う機会があると思います。そこで顧客の管理しているストアでアプリリリースしている状態だと、たまにこんな機会に出くわします。(権...
1ヶ月前

Sphinx と GithubAction による開発ドキュメントの継続的デリバリー
ENECHANGEのフィード
やりたいことGithubで開発ドキュメントの変更管理をしたいSphinx(reStructuredText)でドキュメントを書きたいreStructuredText形式で記載したテキストをいい感じにHTMLやPDFにビルドしたいドキュメント内に画面遷移図やシーケンス図を組み込みたいOpenAPI仕様書を組み込みたいSphinxによってビルドしたHTMLをWebサーバにデプロイして共有したいCloudFront + S3GithubPage Sphinxの紹介Sphinx は、主に Python プロジェクト向けに開発されたドキュメント生成...
4ヶ月前

【Flutter】DeepLinkでアプリを往復するには
ENECHANGEのフィード
二つのアプリ間で情報の連携を行うために、DeepLinkを使いたいと思ったのですが、意外とアプリ間を往復する動きが紹介されている記事があまりなかったので実験してみました。 実装のイメージアプリA、アプリBが存在するときに以下のような挙動を想定してますアプリAがアプリBに情報を問い合わせるDeepLinkをコールアプリBが立ち上がり、アプリBの中でアプリAに渡すための情報を準備するアプリBでアプリAに情報を渡すDeepLinkをコールアプリAが立ち上がり、アプリBの情報を受け取るアプリAでアプリBから受け取った情報をもとに処理を行う色々なアプリを調べてみましたが、Am...
5ヶ月前

AWS OpenSeach Serviceで全文検索を試す
ENECHANGEのフィード
OpenSeachで全文検索を試す はじめに以前、AWS OpenSeach Serviceを用いてサイトの検索機能を実装したことがあり、その時のことを思い出しつつ知識の整理のために使い方、当時使った機能についてまとめてみました。 試した環境AWS OpenSeach ServiceAmazon OpenSearch Serverless があるため環境構築が容易以下の内容は、OpenSearch ダッシュボードで実施 検索の前準備コネクションを作成するコネクションに対してインデックスを作成するコネクションに対して検索に用いるデータを投入しインデ...
5ヶ月前

Djangoでテストデータを用意する
ENECHANGEのフィード
概要半年前に転職して、現職でがっつり Python x Django を使用した開発を行っている。これまで趣味で使うことや仕事で隙を見て使用することがあったが、これを期にしっかり学んでいきたい。本記事では、Djangoをでユニットテストを行う上で、テストデータを用意する複数の方法についてそれぞれの特徴を簡単にではあるが整理していきたい。テストデータを用意する3つの方法として以下を取り上げる。モデル.objects.create を使用するフィクスチャ を使用するFactoryBoy を使用する 環境Python : 3.13.0Django : 5.1.6...
6ヶ月前

[Flutter]go_routerで「現在表示されている画面」を確認するためには
ENECHANGEのフィード
Flutter のgo_routerライブラリを使用しているときに、「現在画面上に表示されている画面」のルーティングを確認したくなったので、その実現方法を記録します 調べるきっかけ確認したくなったきっかけを具体例を交えて説明したいと思います。特定の GoRouter を下記のような階層構造で定義したとします。 app_router.dartfinal GoRouter _router = GoRouter( routes: [ GoRoute( path: '/', builder: (context, state) => ...
7ヶ月前

[Flutter]google_maps_flutter2.9.0で追加されたクラスタリング機能を触ってみる
ENECHANGEのフィード
Flutterのgoogle_maps_flutter で、今までライブラリ単独では実装が難しかったクラスタリング機能が追加されたらしいので試してみました!ChangeLog関連PR👇https://github.com/flutter/packages/pull/4319 対象の読者google_maps_flutterで何ができるのか調べている人google_maps_flutter2.9.0から追加されたクラスタリング機能について知りたい方 この記事で書かないことgoogle_maps_flutterの使い方マーカーのクラスタリングとは何かにつ...
7ヶ月前

現場で使えるライブラリアップデートの進め方
ENECHANGEのフィード
ライブラリアップデートってついつい後回しになってしまいますよね。私たちのチームのプロダクトは運用が始まって10年程なのですが、ライブラリアップデートは後回しにされがちで、普段開発していても、「ライブラリが古すぎてある日急にコードが動かなくなる」ということが定期的に起こってました。 ライブラリアップデートはなぜ必要なのか? ライブラリアップデートが必要な理由今の開発チームの状況をなんとかして変えたいという思いがあったので、それを実現するために、ライブラリアップデートがなぜ必要なのかを言語化してみました。開発が止まるリスクを避けるため脆弱性に対応するため迅速に脆弱性に対応...
7ヶ月前

Buildkite で実行される RSpec のカバレッジを SimpleCov で計測してレポートを見る
ENECHANGEのフィード
今回やったことSimpleCov による RSpec カバレッジの計測Buildkite で並列にテストを実行してレポートをまとめる(PR への push の場合)レポートページのリンクを PR にコメント 実装 カバレッジ計測SimpleCov を Gemfile に追加し spec_helper.rb に以下のコードを追加します。SimpleCov.start に 'rails' 引数を渡さないと後々並列テストのレポートをマージする時にうまくいきませんでした。require 'simplecov'SimpleCov.start 'rails' テス...
9ヶ月前

prepend_before_action, before_action, append_before_action の実行順
ENECHANGEのフィード
はじめにRuby on Rails のコントローラーにはアクションが実行される前に特定のメソッドを実行するためのコールバックとして prepend_before_action、before_action、append_before_action が用意されています。クラスを継承した場合などの順番がなかなかまとまっていない気がしたので検証してみました。 実行順 before_actionbefore_action はアクションの実行前に実行されるコールバックで、複数の before_action が設定された場合は設定した順番(before_action :method ...
10ヶ月前

Pythonでプロファイリングする
ENECHANGEのフィード
はじめにとある処理の実行速度を計測したいと思った時に、いつもprint文を仕込むだけだったのですが、ハイパフォーマンスPython 第2版 に載っていた方法が便利だったので下記にまとめます。 環境・M1Mac・OS:Ventura13.5 事前準備sample.py というファイルに下記のsample_funcという関数を定義しました。def sample_func(): # 計測したい処理 1. print文import timefrom sample import sample_funcstart_time = time.time()sa...
1年前

FlutterでAIアプリを作ってみた(google_generative_ai)
ENECHANGEのフィード
Google I/Oを視聴して、遅ればせながらFlutterでAIアプリを作ってみました!https://www.youtube.com/watch?v=ddcZnW1HKUY どうやったかhttps://pub.dev/packages/google_generative_aiを使用しました。API_KEYの取得などの初期設定方法方法は公式チュートリアルを見れば一通り記載されているため割愛します🙏 まずは動かすリポジトリ内部にFlutter用サンプルがあったので使ってみました。https://github.com/google-gemini/generative-a...
1年前

ECSのApplication Auto Scalingまとめ
ENECHANGEのフィード
はじめに本番環境にて、ECSのオートスケール設定が適切でなかったために、スパイクアクセスに耐えられずサイトがダウンするというやらかしをしました。自戒を込めて記事にまとめます。 前提ECS on FargateTerraform Application Auto ScalingECS on Fargateで利用可能なApplication Auto Scalingでは、CloudWatchアラームで定めたメトリクスの閾値で、スケールアウトやスケールインを実行します。 1. ステップスケーリングポリシーステップスケーリングポリシーは、段階的にスケールアクション...
1年前

【自分用メモ】たまにしか使わなくて忘れがちなgitコマンド
ENECHANGEのフィード
はじめにたまにしか使わないgitコマンドは忘れがちなので、自分用メモとして記事にします。 今いるブランチだけを表示したいgit branch --contains ローカルのブランチをまとめて削除したいgit branch | grep 'feature/' | xargs git branch -d'feature/'部分を変えれば、releaseブランチなども同様に消せます。 ブランチの名前を変更したいgit checkout before-branchgit branch -m after-branch 指定のタグ(ブランチ)からブランチを切りたい...
1年前

ECSのCPUとメモリ割当の早見表
ENECHANGEのフィード
TerraformでECSにCPUとメモリを割り当てる際にこの表を見に行って単位換算するのが面倒なので、早見表を作ります。ちなみに、対応していない値を割り当てると、下記のエラーが出ます。Error: ClientException: No Fargate configuration exists for given values. 前提条件ECS FargateLinux プラットフォーム 1.4.0 以降 早見表CPU の値メモリの値256 (.25 vCPU)1024 (1 GB)256 (.25 vCPU)2048 (2 GB)...
1年前

Visibility ウィジェットを深掘りしてみる(Flutter)
ENECHANGEのフィード
はじめにFlutterの Visibility ウィジェットのリファレンスを見てみると、結構使ったことのないプロパティがあったので以下について実際に触りながら調べてみましたいつ使うのか、それぞれの役割Visibilityを使うタイミングhttps://api.flutter.dev/flutter/widgets/Visibility-class.html Visibility とは?公式には以下のように記載されています。Whether to show or hide a child.By default, the visible property cont...
1年前