PyCon JP 2026に参加しました

2026/8/21と8/22に広島市で開催された PyCon JP 2026 に参加してきました。

pyconjp.connpass.com

会場は昨年と同じ、広島国際会議場。

8月なので、暑くて大変かも?と予想してましたが、今年は思ったより気温が上がらなかったのか、湿度がそこまで高くなく、そんなに苦はなかったです。よかった。

色んな人に会えて、話せて楽しかったです。

来年は、沼津で開催とのこと。参加しよう。

コミュニティブース

Djangoのブースを手伝っていました。グローバル側のDjangoコミュニティ名義でApoorvさんがブースを出すとのことでしたので、お手伝いをしていました。

ブースでは、ステッカーを配布し、来てくれた方と話していました。

OpenSpace

会場内には、プロジェクターと椅子、机のあるオープンスペースが設置されていました。

イベント期間中に早いもの勝ちで、予約して使える形でした。

空き枠があったので、予約をして、2日目の午前中に最近のDjangoについての雑談する会をやっていました。

tokibito.hatenablog.com

オープンスペースの枠はイベントアプリでは表示されていましたが、大きく告知されるわけではないのと、通常のセッションの時間帯でもあるため、人に来てもらうためには、自分で宣伝、人集めが必須です。

事前に声掛けなどをして、参加者10名ぐらい、思ったよりも集まってワイワイ雑談できたので良かったです。

来て頂いた方、ありがとうございました。

雑多な感想

  • 海外コミュニティから継続して来てくれてる方たちもいて、英語を引き続き話せるようにやっていく必要がある
    • 片言の英語でも飲み会は楽しかった、みんなやさしい
  • 交流のSNSが日本人だとXかDiscord、海外だとつながりはLinkedIn、コミュニティはDiscordという感じなのか、LinkedInのプロフィールをもう少し整備してもいいか、と感じた
  • 韓国のDjangoコミュニティの方が来てくれて、オンラインミートアップなどできるといいね、みたいな話があった
  • 基調講演で紹介されていたPyxelがすごいと感じた。触っておこう。
  • コミュニティ活動をしていきたい気持ちが向上した
  • もっと写真を撮っておけば良かった

PyCon JP 2026 Django雑談用

PyCon JP 2026のオープンスペースが空いていたのでDjangoの雑談会をやります。

場所: PyCon JP 2026 OpenSpace Torii 日次: Day2 (8/22) 12:00-12:45

最近のDjangoの機能やサードパーティライブラリ雑談 django.tasksやDjangoのリリースサイクルが変わる話、Djangoでの開発の話など雑談しましょう!

自己紹介

@tokibito https://x.com/tokibito

2006年末ごろからDjangoを使っています

Djangoの紹介

軽く説明 or 省略

Djangoは全部入り(フルスタック、Batteries included)のWebアプリケーションフレームワーク

  • FlaskやFastAPIとの違い
    • DjangoはORMを含む
      • DBマイグレーションも含む
    • Djangoはユーザー認証を含む
    • Djangoは管理画面(CRUD画面)を含む
    • 設定ファイルの仕組みやメール送信の仕組みも含む

最近のDjango

  • Django 6.0
    • Template Partials
      • テンプレートの部分レンダリング、HTMXなどで便利
    • Background Tasks(組み込みタスクフレームワーク)
    • CSP(Content Security Policy)のサポート
    • メールAPIのモダン化
      • Unicode標準、依存先のPythonのメールAPI変更
  • Django 6.1
    • Model Field Fetch Modes
      • フィールドの遅延取得を設定できる
    • settings.MAILERS
      • メールバックエンドを複数設定できる
    • ForeignKey.on_delete のDB側処理オプション
      • DB_CASCADEDB_SET_NULLDB_SET_DEFAULT

Djangoのリリースサイクルが変わる話

LTS(Long Term Support、長期サポート)バージョンが廃止される。

現行: 8ヶ月ごとのリリース、x.2バージョンがLTS(24ヶ月ごとにLTSがリリース)、LTSのサポート期間は約3年

2028から: 1年ごとのリリース、LTSバージョンは廃止、すべてのバージョンが3年サポート

django.tasks

Djangoでバックグラウンドタスクを実装するためのフレームワーク

https://docs.djangoproject.com/en/6.1/topics/tasks/

Async対応は今後される予定

Djangoにあると良さそうな機能

これは雑談ネタ

  • 私が思っているもの
    • .env のサポート
      • django-environとかみんな使ってるでしょ!
    • 権限フレームワークが使いづらいので改善されるといいなあ
      • サードパーティだとdjango-rulesとか
    • JavaScriptビルドとの協調性
      • ビルドしたファイルの取り込みを自分で調整して組むの面倒
      • キャッシュバスティングとか考えたり(ManifestStaticFilesStorageなど)
    • バイブコーディングのサポート
      • スキルかMCPか

参考

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