Pg-dev-container は、PostgreSQL 用に準備されたまま実行できる VS Code 開発コンテナです。

2026/02/06 0:09

Pg-dev-container は、PostgreSQL 用に準備されたまま実行できる VS Code 開発コンテナです。

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

要約

Japanese Translation:

概要
デバッグを有効にした PostgreSQL(最適化なし、アサーションオン、デバッグシンボル付き)をビルドする VS Code 開発コンテナです。開発者は同じ環境内で簡易 C 拡張 (

hello_world
) をコンパイル・インストールし、そのコードをステップ実行できます。

動作手順

  1. 前提条件 – VS Code、Docker、および Dev Containers 拡張機能をインストールします。
  2. リポジトリを開くと、VS Code が「Reopen in Container」を促します。コンテナはベースイメージを取得し、ビルドツールをインストールして PostgreSQL をコンパイル(数分かかる場合があります)。
  3. エディタにソースツリーを追加:
    code --add /usr/local/src/postgresql
  4. 起動後、ターミナルを開きデータベースを作成 (
    createdb test
    ) し、接続(
    psql test
    )します。サーバーはコンテナ内で自動的に起動します。
  5. 配布されている
    hello_world
    拡張をビルド:
    src/extensions/01_hello_world/
    に移動し、
    make
    sudo make install
    make installcheck
    を実行。
  6. 利用可能な拡張を確認:
    SELECT * FROM pg_available_extensions;
    。データベースで有効化:
    CREATE EXTENSION hello_world;
    。関数は呼び出せます (
    SELECT hello_world('Mr X');
    )。
  7. デバッグ
    hello_world.c
    にブレークポイントを設定し、デバッグ開始 (F5)、PostgreSQL バックエンドプロセスを選択してクエリを実行しブレークポイントに到達。デバッグビューでローカル変数とコールスタックが表示され、コードをステップ実行するか
    varlena.c
    text_to_cstring()
    など PostgreSQL 内部へジャンプ (F12) できます。

重要性
開発者は PostgreSQL 拡張作業のために再現可能で完全にデバッグ可能な環境を手に入れ、セットアップ時間を短縮し、データベース内部を深く検査できるようになります。

本文

Visual Studio Code – 開発コンテナ – PostgreSQL

本プロジェクトは、PostgreSQL 用の VS Code 開発コンテナを提供します。
コンテナにはデバッグに必要なすべてのツールが含まれ、デバッグビルド(最適化されず、アサーション有効、デバッグシンボル付き)の PostgreSQL が入っています。ビルドは本番用より遅くなりますが、拡張機能の開発・テストに便利です。


前提条件

項目要件
VS Codeインストール済み
Dockerインストール済み
VS Code Dev Containers 拡張機能インストール済み

プロジェクトを開く

  1. VS Code を起動します。
  2. このリポジトリを開きます。
  3. プロンプトが表示されたら Reopen in Container(コンテナで再オープン)を選択します。

VS Code がベースイメージをダウンロードし、ツールをインストールして PostgreSQL をコンパイルします(詳細は show log で確認してください)。


初回起動

コンテナのビルドが完了したら、PostgreSQL のソースコードを VS Code に追加します。

code --add /usr/local/src/postgresql

注意: VS Code がウィンドウの再読み込みを求める場合があります。

これでソースコードを閲覧でき、全文検索(例:

add_path()
を検索)も利用できます。


PostgreSQL への接続

コンテナは自動的に PostgreSQL サーバーを起動します。
統合ターミナルから次のように操作します。

createdb test          # データベース作成
psql test              # 接続
CREATE TABLE test (id INTEGER);
SELECT * FROM test;
\q                     # psql を終了
dropdb test            # データベース削除

拡張機能のインストール

簡単な

hello_world
拡張機能が付属しています。

  1. ビルド&インストール

    cd src/extensions/01_hello_world/
    make
    sudo make install          # lib と extensions ディレクトリへの書き込みは root が必要
    make installcheck          # テスト実行(一時 DB を作成し SQL を走らせる)
    
  2. データベースにインストール

    CREATE EXTENSION hello_world;
    
  3. インストール確認

    SELECT * FROM pg_available_extensions;
    \dx
    
  4. 関数を使用

    SELECT hello_world('Mr X');
    

デバッガの使い方

  1. VS Code で

    hello_world.c
    を開きます。

  2. 行番号横のドットをクリックしてブレークポイントを設定します。

  3. 別ターミナルでテストデータベースに接続:

    psql test
    
  4. VS Code で F5 を押し、

    postgresql: vscode test [local] idle
    というバックエンドプロセスを選択します。

  5. ターミナルから

    SELECT hello_world('Mr X');
    を実行。

  6. デバッガがブレークポイントで停止し、ローカル変数・スタックトレースの確認やステップ実行などが可能です。

ヒント: 関数名(例:

text_to_cstring()
)を F12 で押すと、その実装へジャンプできます(
varlena.c
など)。


ガイド終了

同じ日のほかのニュース

一覧に戻る →

2026/02/09 23:37

ディスコードは、来月から完全な利用権を得るために顔スキャンまたは本人確認書類(ID)の提出を求めるようになるそうです。

## Japanese Translation: Discord は、すべてのアカウントを「ティーン向け」設定にデフォルト化し、ユーザーが成人であることを証明しない限りは実行される世界規模の年齢確認システムを導入しています。未確認メンバーは、年齢制限付きサーバーへの参加や閲覧、ステージチャネルでの発言、グラフィックコンテンツの表示ができません。これらのサーバーは確認までブラックスクリーンとして表示され、新規加入時にも同じチェックが行われます。不明なユーザーからのフレンドリクエストには警告が出力され、見知らぬ連絡先からのプライベートメッセージは別の受信箱に振り分けられます。 Discord の以前の英国/オーストラリアでの試験では、フォトモードハックが検知され、1 週間以内に修正されました。10 月には旧ベンダーからデータ漏洩事件が発生しました。新システムは、生体認証や個人情報を保存しない別のサードパーティプロバイダーと提携しています。AI 年齢推定手法はデバイス上でローカルに実行され、データはオフデバイスへ送信されず、誤分類があった場合はユーザーがアピールしたり ID 写真をアップロードしてすぐに削除することができます。さらに Discord は「年齢推論」モデルを使用し、ゲーム種別・活動パターン・勤務時間シグナルなどのユーザーメタデータを解析して追加手順なしで成人を自動承認します。 Discord は回避策を防止するために広範なバグテストを行い、一部離脱が見込まれるものの、離れたユーザーを再度引き戻すことを目指しています。このイニシアチブは、世界的な児童安全規制によって推進される年齢確認義務化への業界全体の動きと整合性があります。ほとんどのユーザーは日常使用に大きな変化を感じませんが、主な影響は明示的またはグラフィックな成人コンテンツへのアクセス制限の強化です

2026/02/10 1:26

**プロジェクト概要** Walmart の 3.88 インチアナログ時計を、ESP‑8266 ベースの Wi‑Fi 時計に変換します。 --- ### 必要な材料 - Walmart の 3.88″ アナログ時計 1 個 - ESP‑8266 NodeMCU または Wemos D1 Mini 1 個 - DS3231 リアルタイムクロックモジュール(オプション、オフライン時の時間保持用) 1 個 - 10 kΩ プルアップ抵抗(I²C 用) 1 本 - ジャンパー線 - はんだごて&はんだ - ケースまたは取り付けハードウェア ### 配線図 ``` ESP8266 時計 D2 ----> CLK (クロック信号) D4 ----> DT (データ信号) GND <---- GND VIN <---- VCC(USB/AC アダプタからの5 V) ``` *DS3231 を使用する場合:* - SDA ↔ A4 - SCL ↔ A5 - VCC ↔ 3.3 V - GND ↔ GND ### ソフトウェア手順 1. **Arduino IDE の設定** - ESP8266 ボードパッケージをインストール。 2. `config.h` に Wi‑Fi 認証情報を入力。 3. ライブラリをインストール: - `ESP8266WiFi`, `NTPClient`, (必要に応じて)`TimeLib`。 4. 以下の機能を備えたスケッチをアップロード: - Wi‑Fi 接続 - NTP で時刻取得 - D2/D4 の PWM を使って時計のポテンショメータを駆動 5. 動作確認 – 時計の針がずれたらキャリブレーションを調整。 ### キャリブレーション - 12 時間ダイヤルで既知の時刻に合わせてください。 - コード内の `pwmMin` と `pwmMax` を調整し、針が正確に合うようにします。 --- #### ヒント - 時計本体の電源と ESP‑8266 の電源は分離してノイズを抑えます。 - 電子部品は安全性のためケースで覆い、ESP 部品には十分な換気を確保してください。 - 手動同期用にボタンを追加することも検討すると便利です。

## Japanese Translation: ## 要約 このプロジェクトは、安価なアナログ石英時計をインターネット接続型デジタル時計に変換します。WEMOS D1 Mini ESP8266 が Arduino スケッチを実行し、ステッピングモーターを駆動させます。ESP8266 は NTP サーバーから現在の UTC 時間を **15 分ごと** に取得し、時計に表示されている時間と比較します。この比較は **1 秒あたり 10 回** 行われます。もし時計が遅れていた場合、マイクロコントローラはモータコイルへ短い **(~30 ms) のバイポーラパルス**(`PULSETIME` 定数で調整可能)を送信し、秒針を前進させます。 アナログの動きには位置センサがないため、システムは各針(時・分・秒)の位置を毎秒 Microchip の **47L04 Serial EERAM**(4 kbit SRAM と EEPROM バックアップ)に保存します。初回起動時、ESP8266 はウェブページを提供し、ユーザーが初期針位置を設定できるようにします。その後の再起動では、EERAM に保存されたデータから継続します。初期化後は、ステータスウェブページで SVG/Canvas またはプレーンテキストを用いて時計表面を表示できます。 時計は NTP 時間取得を通じて自動的に **夏時間(DST)** を調整し、この設計は IoT コントローラがレガシー機械装置を復活させつつ、低コストで簡単に構築できることを示しています。

2026/02/10 5:49

アメリカはタングステンの供給問題に直面しています。

## 日本語訳: --- ## Revised Summary 米国は年間約10 000 tのタングステンをほぼ全て輸入しており、その80%以上が中国からで、2015年以降国内採掘は行われていないため、深刻な供給リスクに直面しています。中国による輸出管理は米国企業が必要とするライセンスを取得できなくし、サプライチェーンをさらに厳しく制限しています。保守的な成長仮定では、需要は10年で約77 %増加し、従来用途では年間15 000 t以上に達すると予測されます。もし核融合炉が稼働すれば(1基あたり約250 t、推測で200基)、総需要は年間60–70 000 tへと急増する可能性があります。この不均衡により、市場価格は既に過去最高水準に達しています。 世界の生産量(年間約80 000 t)は中国が支配しており、ベトナム・ロシア・北朝鮮はわずかな割合しか占めていません。米国の過去の取り組み―軍事調達プログラムやトランプ時代にカザフスタンと結んだ取引―はギャップを埋めるには不十分でした。 タングステンの米国内での重要用途は、切削・掘削工具(約60 %)、兵器(約10 %)、半導体(約5 %)、光伏(約1 %)およびその他(約24 %)です。これらの材料に依存する産業は供給制限、高コスト、特に防衛や新興核融合技術で生産ボトルネックを経験する可能性があります。 重要な戦略的課題が浮上します:なぜ中国がタングステン生産を支配しているのか?米国の採掘はなぜ停止したのか?国内再供給に必要な変更点は何か?将来のブーム/バーストサイクルに耐えうるサプライチェーンを構築するにはどうすればよいか。これらの課題への対処は、予測される需要急増に対するレジリエンスを確保するために不可欠です