PyTogether: Collaborative lightweight real-time Python IDE for teachers/learners

2025/12/05 2:43

PyTogether: Collaborative lightweight real-time Python IDE for teachers/learners

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

PyTogether は、複数のユーザーがリアルタイムでコードを編集・チャットし、可視化を見ることができるブラウザベースの共同Python IDEです。学習、ペアプログラミング、迅速なグループセッションに最適です。

  • コラボレーションコア: Y.js によって駆動され、ライブカーソル/選択範囲、ライブ描画、音声通話、CodeMirror 主導のリント機能を提供します。
  • 実行モデル: Python コードは Pyodide Web Worker 上でクライアント側で実行され、サーバー側での実行はありません。
  • 永続化: スマートオートセーブが毎分および終了時にトリガーされます。グループとプロジェクトを作成でき、共有可能なスニペットリンクがあります。
  • 認証: ユーザーは手動または Google OAuth でログインできます(デモスーパーユーザー2名: test1@gmail.com / test2@gmail.com、パスワード
    testtest
    )。
  • スタック: バックエンドは Django + DRF と Channels (WebSocket) を使用し、Celery がバックグラウンドジョブを処理。PostgreSQL (Supabase) と Redis を利用。フロントエンドは React, Tailwind CSS, CodeMirror で構築されています。
  • デプロイとセットアップ: フロントエンドは Vercel 上で動作し、バックエンドは VPS 上の Nginx 背後に Docker 化されます。CI/CD は GitHub Actions によって行われ、
    main
    ブランチへのプッシュ時にバックエンドがデプロイされます。ローカル開発には Docker と Node (
    npm install
    ,
    npm run dev
    ) が必要です。
  • ターゲットオーディエンスとポジショニング: 教室、コーディングクラブ、教師、趣味者向けの教育ツールとして市場に出されており、大規模生産環境向けには最適化されていません。

PyTogether は共有コードセッションを簡単に設定できるようにし、教育者がワークショップを開催したり、学生が一緒に練習したり、開発者が重いIDEのインストールなしでペアプログラミングを行えるようにします。

本文

PyTogether

Python向けのGoogle Docs。 ブラウザベースで完結する共同編集型Python IDEで、リアルタイム編集・チャット・可視化機能を備えています。

Webサイト: pytogether.org


主な特徴

  • リアルタイム協働 – Y.js を利用して即座にコードを共同編集。
  • 安全な認証 – 手動ログインまたは Google OAuth でサインイン。
  • グループ & プロジェクト – チームやプロジェクト単位で作業を整理。
  • 共有リンク – スニペットを他者と編集・実行用にシェア可能。
  • ライブ描画 – IDE 上で直接図形を書いてノート取りや授業を補助。
  • ライブカーソル/選択範囲 – Google Docs 風のライブ選択機能で円滑な共同作業。
  • ライブチャットと音声通話 – プロジェクトごとのリアルタイムメッセージングや Discord ライクな音声チャット。
  • コードリント – CodeMirror の組み込みリンティングでクリーンかつエラーのないコードを実現。
  • スマート自動保存 – コードは 1 分ごと、または終了時に自動的に保存されます。

補足

PyTogether は従来型 IDE の障壁(プラグイン・拡張機能・設定手順・料金体系・複雑な UI)を排除し、軽量で気が散らない環境を提供します。学習・教育・ペアプログラミングに最適化されており、教室やコーディングクラブ、急ぎの協働に理想的です。

備考: PyTogether は教育目的と初心者向けに設計されており、大規模な本番開発には最適化されていません。


なぜ PyTogether なのか?

  • シンプルさを優先 – ダウンロード・pip インストール・隠れた複雑さは不要。グループとプロジェクトを作成してすぐにコーディング開始。
  • 初心者向け設計 – 複雑なメニューやターミナル、設定はなく、コードを書いて実行するだけ。
  • リアルタイム協働 – クラスメイト・友人・指導者と同じエディタで一緒に作業。
  • 安全な学習空間 – ディストラクションを減らすため機能は限定され、初心者が集中できるよう設計。

本番用 IDE とは異なり、PyTogether は高度な機能よりも使いやすさと協働性に重点を置いています。


技術スタック

テクノロジー
バックエンドDjango, Django REST Framework (DRF)
リアルタイムY.js, WebSocket(Django Channels)
非同期処理Celery
データベースPostgreSQL(Supabase 経由)
キャッシュ/ブローカー/チャネル層Redis
フロントエンドReact, Tailwind CSS, CodeMirror(リンティング)
Python 実行Pyodide (Web Worker)
デプロイVercel(フロントエンド)、Docker on VPS(バックエンド)、Nginx(リバースプロキシ)
CI/CDGitHub Actions(main への push 時にバックエンドを VPS にデプロイ)

コントリビューション & ローカルセットアップ

必要環境: Docker, Node

プロジェクトルートで以下を実行してください。

# 1. すべての依存パッケージをインストール(root とフロントエンド両方)
npm install

# 2. サーバー起動
npm run dev

これにより必要なパッケージがインストールされ、バックエンドコンテナとフロントエンドが同時に立ち上がります。初回起動は約 2–5 分かかる場合があります。フロントエンドは

http://localhost:5173
にてアクセスできます。停止するには
CTRL+C
を押してください。

備考: 自動で 2 人のスーパーユーザーが作成されます。

  • メール:
    test1@gmail.com
  • メール:
    test2@gmail.com

両方ともパスワードは

testtest
。フロントエンドにログインして使用してください。

設定変更は

backend/backend/settings/dev.py
で行えます。


作者

Jawad Rizvi
クイーンズ大学在学の応用数学・コンピュータ工学専攻
LinkedIn | GitHub

同じ日のほかのニュース

一覧に戻る →

2025/12/05 10:05

BMW PHEV: Safety fuse replacement is extremely expensive

## Japanese Translation: --- ## 要約 BMW の高電圧バッテリー安全ヒューズ(1件あたり約 €5 000)は、iBMUCP モジュール全体(約 €1 100+税)を交換する必要があります。iBMUCP は溶接で閉じられ、暗号的にロックされており、サービス前後に車両全体のフラッシュが必須です。ISTA で承認された手順を試みると、盗難防止ロックを作動させてモジュールを消去し、新しいバッテリーパック(約 €6 000+VAT)が必要になるリスクがあります。 BMW は公式 ISTA 診断へのアクセスをブロックし、オーストリアでのワークショップ認定要求を却下しているため、独立した修理はさらに困難です。対照的に、テスラのプロファイザー/ BMS リセットは €11–€50 だけです。 21F2A8 や 21F35B といったエラーコードは高電圧安全問題を示しています。OEM サービスは €4 000+税と見積もられ、iBMUCP の交換作業には通常 24–50 時間がかかり、ツール費用は €25 000 を超えます(ICOM、IMIB、AOS)。 著者のチームは iBMUCP 内にある Infineon TC375 MCU 上の JTAG/DAP 保護を突破する計画です。成功すれば回復が簡素化され、作業時間とツール費用が削減され、不必要なバッテリー交換が減り、自動車修理における CO₂ 排出量も低減します。 この作業を提供しているサービスセンターは、ザグレブ、ベルリン、スロベニア、およびセルビア(EV CLINIC)に所在しています。

2025/12/05 9:03

Trick users and bypass warnings – Modern SVG Clickjacking attacks

## Japanese Translation: ## Summary 本論文は、すべてのSVG `<fe*>` フィルタプリミティブをチェーン化することでチューリング完全なツールセットを構築できることを示し、高度なクリックジャッキングやクロスオリジンデータ外部流出攻撃を可能にします。 - 著者はまず、`feColorMatrix` と `feDisplacementMap` を用いて CSS/SVG で Apple の Liquid Glass 効果を再現し、クロスオリジン iframe 上でも動作することを証明しました。 - プリミティブ(切り取り・タイル化・算術合成・カラー行列変換・ガウシアンぼかし)を組み合わせて、外国オリジンから画像データを読み取るピクセル読取回路を構築しました。 - `feBlend` と `feComposite` を用いて NOT, AND, OR, XOR, NAND, NOR, XNOR の論理ゲートを実装し、SVG フィルタ内で任意のブール演算が可能になりました。 - これらのゲートを利用して、ダイアログ表示状態・読み込み状態・チェックボックス状態・赤文字検出に応じて画像を条件付きで表示するマルチステップクリックジャッキングシナリオ(「Securify」)を構築しました。 - この手法は Google Docs に適用され、攻撃者が「Generate Document」→ CAPTCHA 入力 → 提案選択 → ボタン押下 → 読み込み画面という一連の操作を SVG フィルタ内で自動化します。 - SVG フィルタ内(`feDisplacementMap` と Reed–Solomon エラー訂正表を使用)に QR コードジェネレータを構築し、生成されたコードは外部流出データをエンコードしており、ユーザーにスキャンさせて攻撃者のサーバへ送信されます。 クリックハイジャックや SVG フィルタタイミング攻撃に関する既存研究では、マルチステップロジックとクロスオリジンデータ読取を組み合わせたものはなく、本論文は新規かつ自動化された攻撃ベクターを提示しています。 調査結果は、攻撃者が他のウェブサービスに対して同様のシーケンスを自動化し、マルウェアやフィッシングキャンペーンに埋め込む可能性があることを示唆しています。ユーザーは意図しないクリックとデータ漏洩のリスクにさらされ、サードパーティ iframe を組み込む企業は侵害リスクが高まります。本研究は、ウェブエコシステム全体で SVG フィルタ使用時のオリジン境界保護を強化する必要性を訴えています。

2025/12/05 10:15

NeurIPS 2025 Best Paper Awards

## Japanese Translation: > **概要:** > 本会議の論文賞授与式では、プログラムチェアとデータベース&ベンチマークトラックチェアが指名した委員会により選ばれた優秀な7件の論文が表彰されました。最終承認は総合チェア、新世代チェア、およびアクセシビリティチェアから行われました。賞には、Datasets & Benchmarkトラックから1件を含む4件のベストペーパーと3件のレナーアップが含まれます。 > > *ベストペーパー*: > 1. **「Artificial Hivemind: The Open‑Ended Homogeneity of Language Models」** – Infinity‑Chat(26 Kクエリ、31 K人間アノテーション)とオープンエンドプロンプトの分類法を紹介し、モデル内部での反復とモデル間での均質性を明らかにします。 > 2. **「Gated Attention for Large Language Models」** – SDPA後にヘッド特異的シグモイドゲートを追加すると性能・安定性が向上し、密結合およびMoEトランスフォーマーの注意サンク問題を緩和することを示します。コードはGitHub/HuggingFaceで公開されています。 > 3. **「1000 Layer Networks for Self‑Supervised RL」** – 1024層という深さが目標条件付きタスクで性能を向上させ、他のベースラインを上回ることを実証します。 > 4. **「Why Diffusion Models Don’t Memorize」** – 2つの時間スケール(初期一般化と後期記憶)を特定し、暗黙的な動的正則化が過学習を防ぐことを示します。 > > *レナーアップ*: > - 「Does Reinforcement Learning Really Incentivize Reasoning Capacity in LLMs Beyond the Base Model?」 – RLVRはサンプリング効率を改善するものの、推論能力を拡張しない;蒸留により新たなパターンが導入される可能性があります。 > - 「Optimal Mistake Bounds for Transductive Online Learning」 – Ω(√d) の下限と O(√d) の上限を証明し、以前の結果を指数関数的に改善し、転移学習と標準オンライン学習との間に二次的ギャップがあることを示します。 > - 「Superposition Yields Robust Neural Scaling」 – 表現の重ね合わせがニューラルスケーリング法則を駆動することを示し、強い重ね合わせは多様な周波数分布にわたってモデル次元に逆比例して損失を縮小します。 > > これらの賞は拡散理論、自律学習RL、LLMの注意メカニズム、LLMにおける推論、オンライン学習理論、ニューラルスケーリング法則、および言語モデル多様性のベンチマーク手法を網羅しています。これらは会議が実証的ブレイクスルーと理論的洞察の両方にコミットしていることを示しています。 > > この改訂版概要は、Key Points List のすべての主要ポイントを忠実に列挙し、裏付けのない推測を避け、読み手に優しい明確なオーバービューを提供します。