1 ポイント 投稿者 GN⁺ 2024-03-04 | 1件のコメント | WhatsAppで共有
  • Weathergov 2.0 リポジトリは、以前の Drupal コードベースに続く 2 回目の実装であり、Wagtail/Django への移行のために作られたプロジェクト
  • 開発者はリポジトリをクローンした後、just zap でコンテナを設定し、http://localhost:8080 でアプリを、http://localhost:8081API プロキシの状態を確認できる
  • ドキュメントディレクトリには、プロダクトオーナー、開発者、デザイナー、研究者などのためのガイドと アーキテクチャ決定記録 が含まれる
  • AI 支援コードも通常のコード・レビュー基準に従って受け入れ可能だが、提出者はコード実行とテストを自ら行い、モデル名・バージョン・環境 などの出典情報をマージリクエストで開示しなければならない
  • コードベースは、Wagtail CMS、Django サブアプリ、Node.js API レイヤーとプロキシ、Terraform インフラコード、Playwright E2E テストなどに分かれて運用されている

Weathergov 2.0 の性格

  • この Git リポジトリは Weathergov 2.0 の 2 回目の反復 にあたる
  • 以前のリポジトリには Drupal コードベースが含まれており、このリポジトリは Wagtail/Django への移行 のために作成された

ローカル実行方法

  • リポジトリをクローンした後、just zap を実行するとコンテナを設定できる
  • コンテナが起動したら、次のアドレスで確認できる

ドキュメントと意思決定記録

  • docs/ 配下には、さまざまな役割向けのガイドがある
    • プロダクトオーナー向けドキュメント
    • 開発者向けドキュメント
    • デザイナー向けドキュメント
    • 研究者向けドキュメント
    • その他の役割向けドキュメント
  • docs/architecture/decisions/ には アーキテクチャ決定記録 があり、現在の構造とその決定理由を説明している

AI 支援コードのポリシー

  • プロジェクトは NAO 216-218 Artificial Intelligence in NOAA Policy, Executive Order 14179 "Removing Barriers to American Leadership in Artificial Intelligence", America's AI Action Plan に沿って AI 支援コード を受け入れることができる
  • AI 支援コードは通常のコードと同じレビュー基準に従う必要があり、より高い品質基準が適用される
  • 提出者は人間が書いたコードと同様に、次を満たす必要がある
    • コードとテストを自ら実行していること
    • コードが何をするかをチームに説明できること
    • 解決しようとしている問題と提案した解決策を理解していること
  • 提出されたコードの動作、バグ、副作用に対する責任は常に 人間の貢献者 にある
  • すべてのマージリクエストは、AI 支援コードの有無を開示しなければならない
    • 使用したモデル名とバージョン
    • IDE、Copilot などの関連環境
    • コードの出典を理解する助けになるその他の情報
  • チェックリストでは、AI 生成コードの変更であることを明示し、自ら実行済みであり、専門家と非専門家の両方に対して変更点・問題・改善点を説明できることを求めている

コード構成

  • api-interop-layer: サイトと API の間に位置する Node アプリ
  • api-proxy: API 呼び出しをプロキシし、静的データを挿入する開発・デバッグツール
  • forecast/backend: 予報ページを提供する Wagtail CMS
  • forecast/frontend: JavaScript とその他のクライアントサイド資産
  • forecast/locale: 翻訳生成のためのメッセージファイル
  • forecast/spatial: 空間データベースを管理する Django サブアプリケーション
  • spatial-data: WFO マップを生成する Node.js ユーティリティアプリ
  • terraform: インフラ管理とサイトデプロイのためのコード
  • tests/playwright: 実行中サイトに対する Playwright E2E テスト
  • tests/translations: 翻訳キーの存在を確認するテストスクリプトで、deprecated 状態
  • justfile: 開発者コマンドを実行するファイルで、最新の makefile に近い役割を持つ

1件のコメント

 
GN⁺ 2024-03-04
Hacker News の意見
  • 18F(GSA)との契約/パートナーシップで進められているように見える: https://18f.gsa.gov/
    「weather.gov はユーザーのニーズよりも組織のサイロをより強く反映している(コンウェイの法則)」と公開 README に書いてあるのは驚き。自分の組織なら、公開文書にあんなふうに書く度胸はなさそう

    • US Digital Service と 18F は、各機関が「そうだ、これはいまいちだが、より良くしていく」と言える雰囲気を普通のものにしたという点で大きな役割を果たした
      ステークホルダーが防御姿勢を解き、一貫した解決策のために協力できる安心感が勝負の半分であり、こうした「官僚制ハック」では信頼と関係構築が過小評価されている
    • もっと多くの組織がこのように透明であってほしい
      サイロはどうしても生まれるもので、誰かのせいにしたいわけではない。問題が認められ、解決する意志があると分かれば、苛立ちはある程度抑えられる
    • 「フィードバック/モニタリング」という表現のせいで、鬱陶しいクッキーポップアップ付きの分析トラッキングスクリプトを入れるのではないかと心配になる
    • まだかなりサイロが残っているように見える。たとえば Office of Water Prediction は別の GitHub organization を運用しており、water.weather.gov とは別に preview.water.noaa.gov や water.noaa.gov/map というサイトもある
      ただし現地観測データは実際には USGS から来ており、データと Web サービスも waterdata.usgs.gov で提供されている
  • 馬鹿げた質問かもしれないが、この 2.0 はどこかで実際に試せる状態なのか、それとも開発中のソースコードにすぎないのか気になる
    8年ほど前、米国政府の航空気象プロダクトの一つに「実験的」サイトがあったが、本当に良かった。モダンで使いやすく、すっきりしていて、よくあるぎこちない政府系 Web サイトのようではなく、チームも良さそうだったが、数年単位の政府予算の仕組みに縛られていた。結局閉鎖され、記憶ではその成果物が本サイトに載ることはなかった
    米国は、優れた気象サービスと、それを無料の公共財として提供すべき義務があるので幸運だ。ただし、良くなりすぎないようにする政治的圧力も多く、その結果、商業企業が利益を上げられるようになっている。少なくとも2005年の AccuWeather はそのような企業の一つだった: https://www.onthecommons.org/privatizing-weather/index.html

    • Barry Myers / AccuWeather は、誰よりも気象予報サービスの民営化を望んでいるだろうし、そうなれば私と SPC の同僚たちは職を失うことになる
    • ステージング環境は用意しているようだが、おそらく公開ライブではなさそう: https://github.com/weather-gov/weather.gov/tree/main/.github...
    • beta.weather.gov にベータ版 Web サイトはあるが、記事でリンクされているソースと同じものかどうかは分からない
    • README には、プロトタイピングを終えて、今は MVP を作っているところだと書かれている
    • ロードマップには5月と書かれている
      https://github.com/weather-gov/weather.gov/blob/smh--researc...
  • よくやっている。radar.weather.gov は素晴らしいサイトで、あらゆるデバイスで動作し、広告なしで非常によく機能しているので、このまま維持してほしい

    • 自分の経験は正反対。モバイルではまったくうまく動かず、以前のようにシンプルで便利なものを探している人には複雑すぎる
      速度もものすごく遅く、以前のバージョンに比べて有用な情報もさらに限られている
  • これが api.weather.gov にも影響するのか気になる。以前 Weather Underground に触発された小さなダッシュボード(https://weather.nikolaj.dev)を作って、今でもほとんどの日に使っている
    ただ、サーフィンレポート用の海洋予報を自作しようとしていた作業は少し止まっている。あのフィールドを最終的に埋めてくれるとありがたい。そうすれば GRIB ファイルを自分で読み解く手間が省ける

    • これ、気に入った。Weather Underground の10日予報 UI/レイアウトが一番良かったのに、広告がひどくなりすぎた
    • 参考までに、アーキテクチャ図の一つを見る限り、api.weather.gov はこのプロジェクトの範囲外のようだ
    • インターフェースが良い
      些細な問題として、別の場所をすでに入力していたのに、数秒後に San Diego の天気へリダイレクトされた。位置情報リクエストをブロックしていたからかもしれない
  • 政府関連のオープンソースプロジェクトがすべて一か所にまとまっているとよい。たとえば GitHub に usa-gov 組織があり、すべてのリポジトリに簡単にアクセスできるとよい

    • 厳密には一か所ではないが、このページ [0] が複数の連邦機関の GitHub 組織を一覧にしている。ただし網羅的ではなく、特に NSA の組織 [1] が抜けている
      [0] https://code.gov/agencies
      [1] https://github.com/nationalsecurityagency
    • https://government.github.com/community/ には国際機関もある
    • GitHub は入れ子の組織や関連組織の構造をきちんと許可していないので、すべてのリポジトリを単一の組織に入れると悪夢になるだろう
      政府向け GitHub [0] はあるにはあるが、コントリビューションに依存しており完成度は高くない
      GSA は Obama 政権時代に、すべての政府プロジェクトの単一インデックスを作ることを目標に code.gov を始めた。Trump 政権で勢いが弱まり、Biden 政権では事実上予算が絶たれ、今では主要機関へリンクする程度で、タイムリーなインデックス作成の要件ももうない
      私たちの組織だけでもリポジトリが約1000個あり、そうした機関が数百あるので、多少の努力なしに全部を集めることは想像できない。もともと code.gov は各自が Web サイトに code.json ファイルを置くと、GSA がそれらを収集して一つにまとめる方式で、かなりうまく機能していた。だからそれを止め、code.json の公開依頼も中止したのは本当に残念だ。よいアイデアだった
      [0] https://government.github.com/community/
    • フランスには https://code.gouv.fr/ があり、ソースは GitHub と SourceHut で公開されている: https://github.com/codegouvfr
      https://git.sr.ht/~codegouvfr/
  • すべての連邦機関が進める未来の姿のように思える。National Weather Service が先頭に立っていることに拍手したい

  • weather.gov の予報グラフは、私が知る中で最も有用なものの一つで、天気が気になるときに最初に見るものだ
    例: https://forecast.weather.gov/MapClick.php?lat=37.7771&lon=-1...

    • その通り。自分の場所の時間別天気画像を mpv で表示するウィンドウマネージャーのショートカットを作っていて、今日や明日の天気を素早く確認するよい方法としておすすめできる
      ターミナルで kitten icat を使って表示するシェルエイリアスもあるが、mpv のショートカットのほうをよく使う。テキストの天気エイリアスもあり、以下のパスから自分の場所に合うファイルを curl で取得している:
      https://tgftp.nws.noaa.gov/data/forecasts/zone/
      自分の州のファイルをざっと見て適切なファイルを見つけたが、7日間予報ページの “More Local Wx” リンクにも正しいファイル名があるようだ。私の場合は ORZ006 だ
      レーダーを表示する icat エイリアスもいくつか作ってある。現在、連続、ループ表示用で、レーダー名は radar.weather.gov と同じものを以下のページから取得している:
      https://radar.weather.gov/ridge/standard/
      ただし 1時間積算降水量ビュー(One hour accumulation view)が最もよいと思っているが、そのビューの画像を取得する方法が見つからず、普段は radar.weather.gov を見ている。最近は少しましになったが、ときどき私の環境ではまったく動かない
      頻繁には見ないが、6〜10日および月間の気温・降水見通しを表示する icat エイリアスも作ってある:
      https://www.cpc.ncep.noaa.gov/products/predictions/610day/
      https://www.cpc.ncep.noaa.gov/products/predictions/30day/
  • contributing.MD ファイルは見えるが、実際にどう貢献できるのか判断しにくい。潜在的なコントリビューターとしては、どのような形で貢献するのが最善なのか分かるとうれしい

    • perspective は「視点」で、ここでは prospective、つまり「潜在的な」が正しい
      揚げ足を取るつもりではなく、役に立てばと思って共有する
  • 直接、特化した体験を作る人たちのためのAPIについて、もっと話があることを期待していた。NOAA は生データの提供はうまくやっているが、政府サービスの消費と活用は、より具体的なケースになることが多い
    ここで緊急対応ツールを作っている。生成 AI 優先で、継続的な監視 → 通知、チャットボット、カスタム状況報告書のようなものだ。興味があれば連絡してもよい
    複数の機関やユーティリティなどが特化したバリエーションを必要としているため、weather.gov が内部で解いているであろう最後の区間のデータ・UI の難しさが、他の機関にも役立つということをより実感している
    私の理解では Weather.gov は NOAA 傘下の NWS が運営しているので、今回のミッション刷新にその内容がないのは興味深い

  • 少し関連する話ですが、個人的に weather.gov で最も便利な単一のURLはこれです。緯度/経度だけ変えれば使えます
    https://forecast.weather.gov/MapClick.php?FcstType=graphical...
    同じレイアウトで過去データも見られるといいのですが