Django 6.1がリリースされました

タイトルの通り、Django 6.1がリリースされています。

www.djangoproject.com

これによりDjango 6.0はメインストリームサポートが終了、セキュリティサポートのみとなります。

Djangoフレームワークは現状、8ヶ月ごとに大きなリリースが出ます。

参考: Django’s release process | Django documentation | Django

現在メンテナンスされているのは Django 5.2 LTS、 Django 6.0、 Django 6.1となります。

次のDjango 6.2はLTSの予定で、通例なら2027年4月にリリースされる可能性が高いです。

バージョンアップは計画的にやっていきましょう!

Google App EngineでDirect VPC egressを使えるようになった

たまたまGCPコストの壁打ちでClaudeにリサーチしてもらっていたところ、Google App EngineでDirect VPC egressが使えるようになったという情報を見つけました。 プレビュー機能としてつい最近リリースされたみたい?です。リリースの情報は見つけられていない。

ドキュメント

ドキュメントは整備されていました。AppEngineのStandardランタイム環境で利用できます。

Direct VPC egress | App Engine standard environment | Google Cloud Documentation

従来のVPCコネクターからの移行手順のドキュメントもあります。

Migrate standard VPC connector to Direct VPC egress

VPCコネクターとDirect VPC egressについて

AppEngineのインフラから、VPC内にあるComputeEngineインスタンスなどにアクセスする場合、従来はVPCコネクターが必須でした。

このVPCコネクターを作成すると、最小構成でもe2-microインスタンスが2つ常時起動されるため、インスタンス費用がかかるかたちになっていました。 また、通信量が増えると、スケールアウトによりインスタンス数が増え、それにともなってコストがかかる形でした。

Direct VPC egressは、このブリッジ用のインスタンス無しでVPC内のリソースにアクセスできる仕組みです。Computeのインスタンス費用がかからない分、費用も削減できます。

Cloud Runでは正式リリース(GA)で提供されてきた機能でしたが、App Engineでも使えるようになりました。

試してみて普通に使えた

App Engineのデプロイの際に beta の指定が必要になりますが、ドキュメントの通り app.yaml を設定することで、東京リージョンにデプロイしているアプリでも問題なくVPC内のComputeEngineに接続できました。

IPレンジまわりの考え方はCloud Run向けのDirect VPC egressと同様なので、その辺はドキュメントを参照するとヨシ。

VPCコネクターを削除した状態で、確認して問題ないことを確認できたので、多少ですがコスト削減できました。ありがたい。

多忙につき活動縮小中

3月ごろから仕事が忙しい状態が続いており、子育てもあり、諸々落ち着いて作業したり、公開できるアウトプットが減少しています。

年内は大きめのイベントに2つぐらい参加したら終わり、という感じになりそうです。それも登壇する余裕はなさそう。

子供と家庭内行事が優先なので、しばらくはこんな感じが続きますが、引き続きやっていきます。

電子書籍『中堅エンジニアになろう』を作成しました

『中堅エンジニアになろう』というタイトルの電子書籍を作成しました。

私の部下に向けて、知っておいてほしいこと(ソフトスキル、ハードスキル)を広く浅く紹介する資料が欲しくて作りました。A4で250ページぐらいです。

会社固有の事情は入っていないです。IT業界に入って2~4年目くらいのエンジニアの人を想定読者としています。

Amazon(Kindle)とBOOTHで販売しています。価格は100円ぐらいです。

Amazon Kindle版

AmazonKDPは最低価格が99円だったので、この金額にしてます。読み放題の対象でもあります。

Amazonで購入したい、Kindleで管理したい人向けです。

Kindle向けの最適化が今のビルドシステムだと簡単にはできなかったので、リフローには非対応です。

BOOTH版

booth.pm

BOOTHのほうは有料販売の最低価格が100円だったので、この金額にしています。

BOOTHにはギフト機能があるので、購入して誰かに読ませたい、という場合には便利かもしれません。

BOOTH版はビルドしたPDFそのままなので、ファイルサイズが小さいのと、目次も対応していて、PDFリーダーで読みやすい形になっています。

制作について

企画、アウトラインをまずはテキスト、箇条書きでまとめた上で、そこからはClaudeCodeによる生成を多用して作りました。

本書の文章は、基本的に生成AIで生成されたテキストです。 とはいえ、言い回し、内容(私の思想、方針の反映)については、私が細かく指示を出して修正をさせているため、私が作成したかった文章になっています。

組版には Typst を使いました。ビルドシステムについては別途、気が向いたら詳細を書くかもしれません。

書籍の目次

  • はじめに
    • 本書の目的
    • 本書の読み方
    • 執筆のきっかけ
    • 対象読者
    • 本書で使用する環境
  • 第1章: 中堅エンジニアとは
    • この章で学ぶこと
    • エンジニアのキャリア段階
      • 中堅エンジニアの定義
      • 経験年数の目安
      • チームの即戦力としての役割
    • ジュニアエンジニアとの違い
      • 指示待ちから自律へ
      • 不明点を自分で解消できる
    • シニアエンジニアとの違い
      • 設計判断と影響範囲
      • まだ学ぶべきことが多い段階
      • 焦る必要はない
    • 中堅エンジニアに求められるスキルセット
      • タスクを概ね単独で進められる
        • 調査から実装、テストまで一人で回せる
        • 「概ね」単独という意味
      • 見積もりと計画が立てられる
      • 必要な質問や確認は自分からできる
        • 何がわからないかを言語化できる
        • 確認を怠らない
      • リーダーやマネージャーが頻繁に状況確認をしなくても問題ない
        • 自発的な進捗報告
        • 問題発生時の早期エスカレーション
      • 信頼を築く
    • スキルの身につけ方
      • ソフトスキルとハードスキル
    • この章のまとめ
  • 第2章: 信用貯金
    • この章で学ぶこと
    • 信用貯金とは
      • 減らさないことが重要
      • 信用貯金は人間関係の土台
      • 信用があることのメリット
      • 信用がないことのデメリット
      • 信用貯金は早めに意識する
    • 信用を積み上げる方法
      • 成果を出す
      • 与えられた仕事を完了する
      • 報告・連絡・相談を怠らない
      • 小さな約束を守る
    • 信用を失う行動
      • ミス・失敗をする
      • 約束を守らない
      • 責任を回避する
      • コミュニケーションを怠る
    • ミスを減らすために
    • この章のまとめ
  • 第3章: ミスを減らす
    • この章で学ぶこと
    • ミスを減らすことの重要性
    • メモを取る
    • チェックリストの活用
    • 成果の報告・提出前のチェック
    • この章のまとめ
  • 第4章: タスク管理と開発フロー
    • この章で学ぶこと
    • 開発フローの理解
    • 工数の見積もり
    • プロジェクトスケジュールの把握
    • 完了時期の見通し
    • この章のまとめ
  • 第5章: コミュニケーション
    • この章で学ぶこと
    • 同期と非同期のコミュニケーション
    • 相手がどのように受け取るかを考える
    • 伝え方のコツ
    • AI壁打ちの活用
    • この章のまとめ
  • 第6章: 情報収集
    • この章で学ぶこと
    • 技術情報の収集
    • 社会の仕組みの知識
    • 色々な職業について知る
    • この章のまとめ
  • 第7章: インフラ基礎知識
    • この章で学ぶこと
    • OS(オペレーティングシステム)
      • カーネルとは
      • OS の種類と関係性
      • Linux の基礎
      • プロセス
      • ファイルシステム
      • ネットワーク設定
      • OS の知識を活かす場面
      • さらに深く学ぶために
    • ネットワーク
      • TCP/IP
      • DNS
      • HTTP/HTTPS
      • ファイアウォール
      • ロードバランサー
      • ネットワーク知識を活かす場面
      • さらに深く学ぶために
    • ストレージ
      • ストレージの種類
      • 物理ストレージの冗長化
      • バックアップとテープデバイス
      • 論理ボリューム管理(LVM)
      • 大容量ストレージの構築
      • 分散ストレージ
      • ネットワークストレージ
      • ストレージインターフェース
      • ストレージ知識を活かす場面
    • 仮想化とコンテナ
      • 仮想化技術(VM)
      • コンテナ技術
      • コンテナイメージの管理
      • コンテナオーケストレーション
      • VM とコンテナの違いと使い分け
      • 仮想化・コンテナ知識を活かす場面
    • この章のまとめ
  • 第8章: コンピュータサイエンス基礎
    • この章で学ぶこと
    • アルゴリズム
      • ソートアルゴリズム
      • 探索アルゴリズム
      • 再帰
      • 計算量の考え方
    • データ構造
      • 配列とリスト
      • 動的配列
      • スタックとキュー
      • ハッシュテーブル
      • 木構造
    • 並行処理
      • プロセスとスレッド
      • 軽量スレッド(グリーンスレッド)
      • 排他制御
      • 競合状態(レースコンディション)
      • 実務での注意点
    • 設計パターン
    • まとめ
  • 第9章: ミドルウェアと開発ツール
    • この章で学ぶこと
    • Web サーバー
    • アプリケーションサーバー
    • データベース
    • キャッシュ
    • メッセージキュー
    • ジョブ実行基盤
    • メール配信
    • バージョン管理(Git)
    • CI/CD
    • Docker
    • この章のまとめ
  • 第10章: クラウドインフラ
    • この章で学ぶこと
    • クラウドの基本概念
    • 主要クラウドサービス
      • コンピューティング
      • ネットワーク
      • ストレージ
      • データベース
      • セキュリティ
      • コンテナレジストリ
      • ジョブスケジューラ
    • モニタリングとロギング
    • Infrastructure as Code
    • この章のまとめ
  • あとがき
    • さらに学びたい方へ
    • 停滞を感じたときに
    • おわりに
  • 著者紹介
  • 奥付

django-ftpserverバージョン1.0.0をリリースしました

タイトルの通り、django-ftpserverのバージョン1.0.0をリリースしました。

django-ftpserver · PyPI

リポジトリGitHubにあります。

github.com

このパッケージは、Djangoの各種機能を使ったFTPサーバーを提供します。FTPサーバーの実装はpyftpdlibに依存してます。

ドキュメントはすべて英語なので、ここには日本語で機能の説明を記載しときます。

機能

  • Djangoのユーザー認証システムと統合されたFTPサーバー
  • FTPユーザーグループによる権限管理(読み取り、書き込み、削除など)
  • ユーザー単位およびグループ単位のホームディレクトリ設定
  • Django Adminを通じたFTPアカウント管理
  • TLS/SSLによる安全な通信のサポート(FTPS)
  • バックグラウンドサービス運用のためのデーモンモード
  • Django Storageバックエンドとの統合(S3、Google Cloud Storageなど)※実験的機能
  • パッシブモードとマスカレードアドレスの設定
  • クロスプラットフォーム対応(Windows/Unix
  • FTPユーザー/グループ操作のための管理コマンド(作成、一覧、削除)
  • FTPイベント用のDjangoシグナル(ログイン、ログアウト、ファイル転送など)

※実験的機能:将来のバージョンで削除される可能性があります。

システム要件

  • 対応するPythonのバージョン: 3.10, 3.11, 3.12, 3.13, 3.14
  • Django 4.2以上

ドキュメント

Django FTP server — Django FTP server 1.0.0 documentation

ClaudeCodeにライブラリを作らせるときに気をつけた点と手順

ここ数日でDjango 6.0のタスクフレームワークのバックエンドのPythonパッケージを3つ公開しました。

tokibito.hatenablog.com tokibito.hatenablog.com tokibito.hatenablog.com

これらは3つとも要件、実装方針を最初にCLAUDE.mdに書き、そこからClaudeCodeに実装をしてもらいました。私が直接コードを変更した部分は基本的にありません(=エディターでコードを書く、ということをしていない。ruffやmv、cpなどのコマンドは使った)

これらを作るときに気をつけた点、手順について軽くまとめておきます。忘備録の役割でもあります。

CLAUDE.mdの作成

最初にどういう要件、機能のものを実装するのかはエディタで文字を打ち込んで自分でちゃんと記述しました。

この際にもClaudeのウェブ版で方針の壁打ちをしたりはしていました。

実装の前に実装計画を建てさせる

plansフォルダを先に作成して、CLAUDE.mdの内容を元に最初に実装計画をMarkdownで出力させました。

この実装計画に違和感があれば、質問したり、修正、追記させたりを最初にしっかりやりました。

ローカルのファイルを参照させる

Djangoフレームワークの仕様ときっちり合わせる必要があった今回の実装、そもそもDjango6.0が2025年12月にリリースされたばかりで、ClaudeCodeのモデル(OpusやSonnet)は仕様を把握できていません。

また、公式ドキュメントはあるとはいえ、タスクフレームワークは新機能のため、インターネット上に情報がまだ少ない状態です。この状態で必要に応じて、GitHubDjangoソースコードを参照しにいったりするのはとても効率が悪くなりやすいです。

Django 6.0のソースコードをローカル環境にダウンロードして展開しておき、そのフォルダのソースコードで実装を調べるようにCLAUDE.mdに記載をしました。

また、3つ作成したライブラリはファミリー的な扱いで、なるべく作りを同じにしたかったため、これらもローカル環境で他プロジェクトのフォルダ内のコードを参照するように指示をしました。

こうするとWebSearch、WebFetchが少なくて済むので、作業もスムーズでした。

実装

実装計画が整っていて、ローカルファイル参照も整っていれば、あとは最初の実装まではスムーズに進みます。待ち時間は結構長い。

待ち時間にスマートフォンから操作

ClaudeCodeからコマンドの実行許可を求められるのですが、待ち時間が読めないので、その間PCの前に張り付いているのはちょっとしんどかったため、 Chromeリモートデスクトップスマートフォンにインストールして、PCの画面をスマートフォンから操作する形にしました。

寝転がってスマートフォンで状況を見ながら許可ボタンをポチポチやっていくのは楽でした。

おわりに

バイブコーディングにしっかり寄せて使いこなす気持ちでやっていますが、今回最後に作ったdjango-tasks-redisは3時間ぐらいで初期バージョンは出来上がりました。

手元で動作確認もできてる状態までで3時間です。これは以前だと考えられないスピード感です。

今回はMCPサーバーやSKILLSを使っていないですが、そのあたりもうまく絡めてまたやっていきたいと思います。

畑 2025

今年は忙しすぎて例年の pyspaのアドベントカレンダー には参加しなかったのですが、ようやく仕事も納まって記事を書ける状況になっているので、先日から記事をたくさん書いています。

この記事は 力強くブログを108記事アウトプットする日の 20251227 の一環でもあります。

今年の畑の成果報告です。

市内の民間の農園で4m×5mの小さい畑を借りていました。 今年の7月いっぱいで契約終了でしたので、それまでの内容になります。

以前の畑についての記事

2025年の成果

子育てと仕事が今年は忙しすぎたため、成果がかなり少ないです。

ミニ大根。普通サイズの大根は大量に作っても消費が大変なのでいつもこれです。

育ちすぎたほうれん草。この写真で1株。とてもデカく育つ。

にんじん、ミニ大根。

ミニごぼう。これも手軽で良かったです。

植えるタイミングを失敗してしまい収穫量が少なかったじゃがいも(キタアカリ)と収穫したミニごぼう。じゃがいもは去年の3割ぐらいしか取れてないです。

じゃがいもは収穫量少なかったけど、蒸して塩振っただけでも甘くて美味しいので良かったです。

にんじんとほうれん草は子供にも食べさせれたので体験としてはよかった。

3年後くらいに、またタイミング合えば畑を借りたいと思います。ひとまず今期からの3年は畑はおやすみ。