1 poin oleh GN⁺ 2024-03-04 | 1 komentar | Bagikan ke WhatsApp
  • Repositori Weathergov 2.0 adalah implementasi kedua setelah codebase Drupal sebelumnya, dan merupakan proyek yang dibuat untuk migrasi ke Wagtail/Django
  • Setelah mengkloning repositori, developer dapat menyiapkan container dengan just zap, lalu memeriksa aplikasi di dan **status proxy API** di
  • Direktori dokumentasi mencakup panduan untuk product owner, developer, desainer, peneliti, dan lainnya, serta catatan keputusan arsitektur
  • Kode dengan bantuan AI juga dapat diterima dengan mengikuti standar kode dan review umum, tetapi pengirim harus menjalankan kode dan pengujian sendiri serta mengungkapkan informasi sumber seperti nama model, versi, dan lingkungan dalam merge request
  • Codebase dioperasikan dengan pembagian seperti Wagtail CMS, sub-aplikasi Django, lapisan API dan proxy Node.js, kode infrastruktur Terraform, serta pengujian E2E Playwright

Karakter Weathergov 2.0

  • Repositori Git ini merupakan iterasi kedua Weathergov 2.0
  • Repositori sebelumnya berisi codebase Drupal, sedangkan repositori ini dibuat untuk migrasi ke Wagtail/Django

Cara menjalankan secara lokal

  • Setelah mengkloning repositori, jalankan just zap untuk menyiapkan container
  • Setelah container berjalan, Anda dapat memeriksanya di alamat berikut

Dokumentasi dan catatan keputusan

  • Di bawah docs/ terdapat panduan untuk berbagai peran
    • Dokumen untuk product owner
    • Dokumen untuk developer
    • Dokumen untuk desainer
    • Dokumen untuk peneliti
    • Dokumen untuk peran lainnya
  • docs/architecture/decisions/ berisi catatan keputusan arsitektur yang menjelaskan struktur saat ini dan alasan di balik keputusan tersebut

Kebijakan kode dengan bantuan AI

  • Proyek ini dapat menerima kode dengan bantuan AI sesuai dengan NAO 216-218 Artificial Intelligence in NOAA Policy, Executive Order 14179 "Removing Barriers to American Leadership in Artificial Intelligence", dan America's AI Action Plan
  • Kode dengan bantuan AI harus mengikuti standar kode dan review yang sama seperti kode biasa, dengan standar kualitas yang lebih tinggi diterapkan
  • Seperti halnya kode yang ditulis manusia, pengirim harus memenuhi hal-hal berikut
    • Harus sudah menjalankan kode dan pengujian secara langsung
    • Harus dapat menjelaskan kepada tim apa yang dilakukan kode tersebut
    • Harus memahami masalah yang ingin diselesaikan dan solusi yang diusulkan
  • Tanggung jawab atas perilaku, bug, dan efek samping dari kode yang dikirimkan selalu berada pada kontributor manusia
  • Semua merge request harus mengungkapkan apakah mencakup kode dengan bantuan AI
    • Nama dan versi model yang digunakan
    • Lingkungan terkait seperti IDE, Copilot, dan sebagainya
    • Informasi lain yang membantu memahami asal-usul kode
  • Checklist mengharuskan perubahan kode yang dihasilkan AI ditandai, dijalankan sendiri, dan perubahan, masalah, serta perbaikannya dapat dijelaskan kepada pakar maupun non-pakar

Struktur kode

  • api-interop-layer: aplikasi Node yang berada di antara situs dan API
  • api-proxy: alat pengembangan dan debugging yang mem-proxy panggilan API dan menyisipkan data statis
  • forecast/backend: Wagtail CMS yang menyediakan halaman prakiraan
  • forecast/frontend: JavaScript dan aset sisi klien lainnya
  • forecast/locale: file pesan untuk pembuatan terjemahan
  • forecast/spatial: sub-aplikasi Django yang mengelola basis data spasial
  • spatial-data: aplikasi utilitas Node.js yang membuat peta WFO
  • terraform: kode untuk manajemen infrastruktur dan deployment situs
  • tests/playwright: pengujian E2E Playwright terhadap situs yang sedang berjalan
  • tests/translations: skrip pengujian yang memeriksa keberadaan kunci terjemahan dan berstatus deprecated
  • justfile: file untuk menjalankan perintah developer, berperan mirip makefile modern

1 komentar

 
GN⁺ 2024-03-04
Pendapat di Hacker News
  • Tampaknya dikerjakan melalui kontrak/kemitraan dengan 18F (GSA): https://18f.gsa.gov/
    Agak mengejutkan bahwa di README publik mereka menulis bahwa “weather.gov lebih banyak mencerminkan silo organisasi daripada kebutuhan pengguna (Hukum Conway)”. Rasanya organisasi kami tidak akan punya nyali menulis hal seperti itu di dokumen publik

    • US Digital Service dan 18F berperan besar dalam menormalisasi suasana di mana lembaga bisa berkata, “ya, ini kurang bagus, tapi kami akan membuatnya lebih baik”
      Rasa aman yang membuat para pemangku kepentingan menurunkan sikap defensif dan berkolaborasi menuju solusi yang konsisten adalah setengah dari perjuangan; dalam “peretasan birokrasi” seperti ini, membangun kepercayaan dan relasi sering diremehkan
    • Semoga lebih banyak organisasi bisa setransparan ini
      Silo memang cenderung muncul, dan saya tidak ingin menyalahkan siapa pun. Jika tahu masalahnya diakui dan ada kemauan untuk menyelesaikannya, sebagian rasa frustrasi bisa diredakan
    • Karena ada istilah “feedback/monitoring”, saya khawatir mereka akan memasukkan skrip pelacakan analitik yang datang bersama popup cookie yang menyebalkan
    • Kelihatannya masih ada cukup banyak silo. Misalnya, Office of Water Prediction menjalankan organisasi GitHub terpisah, dan ada juga situs preview.water.noaa.gov serta water.noaa.gov/map yang terpisah dari water.weather.gov
      Namun data observasi lapangannya sebenarnya berasal dari USGS, dan data serta layanan webnya juga disediakan di waterdata.usgs.gov
  • Mungkin ini pertanyaan bodoh, tetapi saya penasaran apakah 2.0 ini sudah bisa benar-benar dicoba di suatu tempat, atau baru sekadar kode sumber yang sedang dikembangkan
    Sekitar 8 tahun lalu, salah satu produk cuaca penerbangan pemerintah AS punya situs “eksperimental”, dan itu benar-benar bagus. Modern, mudah digunakan, rapi, tidak terasa seperti situs pemerintah yang biasanya canggung, dan timnya juga tampak bagus, tetapi mereka terikat sistem anggaran pemerintah yang berjalan per beberapa tahun. Pada akhirnya situs itu ditutup, dan seingat saya hasil kerjanya tidak pernah naik ke situs utama
    AS beruntung karena punya layanan cuaca yang bagus dan kewajiban untuk menyediakannya secara gratis sebagai barang publik. Namun ada juga banyak tekanan politik agar layanan itu tidak menjadi terlalu bagus, supaya perusahaan komersial bisa mendapatkan keuntungan. Setidaknya AccuWeather pada 2005 adalah salah satu perusahaan seperti itu: https://www.onthecommons.org/privatizing-weather/index.html

    • Barry Myers / AccuWeather mungkin lebih menginginkan privatisasi semua layanan prakiraan cuaca daripada siapa pun, dan jika itu terjadi, saya serta rekan-rekan saya di SPC akan kehilangan pekerjaan
    • Sepertinya mereka sudah menyiapkan lingkungan staging, tetapi kemungkinan belum live untuk publik: https://github.com/weather-gov/weather.gov/tree/main/.github...
    • Ada situs web beta di beta.weather.gov, tetapi saya tidak tahu apakah itu sama dengan sumber yang ditautkan di tulisan tersebut
    • README menyebutkan bahwa mereka sudah selesai membuat prototipe dan sekarang sedang membangun MVP
    • Di roadmap tertulis Mei
      https://github.com/weather-gov/weather.gov/blob/smh--researc...
  • Kerja bagus. radar.weather.gov adalah situs yang luar biasa, berfungsi di semua perangkat, dan berjalan sangat baik tanpa iklan, jadi saya harap terus dipertahankan

    • Pengalaman saya justru kebalikannya. Di mobile sama sekali tidak berfungsi dengan baik, dan terlalu rumit bagi orang yang mencari sesuatu yang sederhana dan berguna seperti dulu
      Kecepatannya juga sangat lambat, dan informasi yang berguna lebih terbatas dibanding versi sebelumnya
  • Saya penasaran apakah ini juga akan berdampak pada api.weather.gov. Dulu saya membuat dasbor kecil yang terinspirasi dari Weather Underground (https://weather.nikolaj.dev) dan sampai sekarang masih saya pakai hampir setiap hari
    Namun pekerjaan untuk membuat sendiri prakiraan laut untuk laporan selancar agak mandek. Semoga kolom-kolom itu akhirnya diisi. Dengan begitu saya tidak perlu repot memahami file GRIB sendiri

    • Saya suka ini. UI/tata letak prakiraan 10 hari milik Weather Underground dulu yang paling bagus, tetapi iklannya sudah terlalu parah
    • Sebagai catatan, dari salah satu diagram arsitektur, sepertinya api.weather.gov berada di luar cakupan proyek ini
    • Antarmukanya bagus
      Masalah kecil: saya sudah memasukkan lokasi lain, tetapi beberapa detik kemudian diarahkan ulang ke cuaca San Diego. Mungkin karena saya memblokir permintaan lokasi
  • Akan bagus jika semua proyek open source terkait pemerintah dirapikan di satu tempat. Misalnya, ada organisasi usa-gov di GitHub agar semua repositori mudah diakses

    • Tidak persis satu tempat, tetapi halaman ini [0] mencantumkan organisasi GitHub dari berbagai lembaga federal. Namun, daftarnya tidak komprehensif, dan terutama organisasi NSA [1] tidak ada
      [0] https://code.gov/agencies
      [1] https://github.com/nationalsecurityagency
    • Di https://government.github.com/community/ juga ada organisasi internasional
    • GitHub tidak benar-benar mendukung organisasi bertingkat atau struktur organisasi terkait, jadi memasukkan semua repositori ke satu organisasi saja akan menjadi mimpi buruk
      GitHub untuk pemerintah [0] memang ada, tetapi bergantung pada kontribusi dan tidak terlalu lengkap
      GSA memulai code.gov pada masa pemerintahan Obama dengan tujuan membuat indeks tunggal untuk semua proyek pemerintah. Pada masa pemerintahan Trump upaya itu meredup, dan pada masa pemerintahan Biden praktis anggarannya terputus, sehingga sekarang hanya sebatas menautkan ke lembaga-lembaga utama dan tidak ada lagi kewajiban indeks yang tepat waktu
      Di organisasi kami saja ada sekitar 1000 repositori, dan ada ratusan lembaga seperti itu, jadi sulit membayangkan semuanya bisa dikumpulkan tanpa sedikit pun upaya. Awalnya code.gov bekerja cukup baik dengan cara masing-masing pihak memasang file code.json di situs web mereka, lalu GSA mengumpulkannya dan menggabungkannya menjadi satu. Karena itu, sangat disayangkan mereka menghentikannya dan juga berhenti meminta publikasi code.json. Itu ide yang bagus
      [0] https://government.github.com/community/
    • Di Prancis ada https://code.gouv.fr/, dan kodenya dibuka di GitHub serta SourceHut: https://github.com/codegouvfr
      https://git.sr.ht/~codegouvfr/
  • Sepertinya ini gambaran masa depan yang bisa dituju semua lembaga federal. Salut untuk National Weather Service karena memimpin

  • Grafik prakiraan di weather.gov adalah salah satu yang paling berguna yang saya tahu, dan hal pertama yang saya cari saat ingin tahu cuaca
    Contoh: https://forecast.weather.gov/MapClick.php?lat=37.7771&lon=-1...

    • Benar. Saya membuat pintasan window manager yang menampilkan gambar cuaca per jam untuk lokasi saya dengan mpv, dan saya merekomendasikannya sebagai cara bagus untuk cepat mengecek cuaca hari ini atau besok
      Saya juga punya alias shell untuk menampilkannya di terminal dengan kitten icat, tetapi lebih sering memakai pintasan mpv. Ada juga alias cuaca berbasis teks, yang mengambil file sesuai lokasi saya dengan curl dari path berikut:
      https://tgftp.nws.noaa.gov/data/forecasts/zone/
      Saya menelusuri file untuk negara bagian saya dan menemukan file yang sesuai, tetapi tampaknya tautan “More Local Wx” di halaman prakiraan 7 hari juga memuat nama file yang benar. Untuk saya, itu ORZ006
      Saya juga membuat beberapa alias icat untuk menampilkan radar. Untuk tampilan saat ini, berurutan, dan berulang, dan nama radarnya diambil dari halaman di bawah ini, sama seperti radar.weather.gov:
      https://radar.weather.gov/ridge/standard/
      Namun, menurut saya tampilan akumulasi curah hujan 1 jam (One hour accumulation view) adalah yang terbaik, tetapi saya belum menemukan cara mengambil gambar untuk tampilan itu, jadi biasanya saya melihat radar.weather.gov. Belakangan sudah agak membaik, tetapi kadang sama sekali tidak berfungsi untuk saya
      Tidak sering saya lihat, tetapi saya juga membuat alias icat yang menampilkan prospek suhu dan curah hujan 6–10 hari serta bulanan:
      https://www.cpc.ncep.noaa.gov/products/predictions/610day/
      https://www.cpc.ncep.noaa.gov/products/predictions/30day/
  • Saya melihat file contributing.MD, tetapi sulit menilai bagaimana sebenarnya bisa berkontribusi. Sebagai calon kontributor, akan bagus jika bisa mengetahui cara terbaik untuk berkontribusi

    • perspective berarti “sudut pandang”; di sini yang tepat adalah prospective, yaitu “calon”
      Bukan bermaksud mencari-cari kesalahan, hanya berbagi dengan harapan membantu
  • Saya berharap ada lebih banyak pembahasan soal API untuk orang-orang yang membuat pengalaman khusus secara langsung. NOAA sudah bagus dalam menyediakan data mentah, tetapi konsumsi dan pemanfaatan layanan pemerintah sering kali jauh lebih spesifik
    Saya sedang membuat alat tanggap darurat di sini. Pendekatannya mengutamakan AI generatif, seperti pemantauan berkelanjutan → notifikasi, chatbot, dan laporan situasi khusus. Jika tertarik, silakan hubungi
    Karena berbagai lembaga, utilitas, dan lainnya membutuhkan varian khusus, saya makin merasakan bahwa tantangan data dan UI tahap akhir yang sedang diselesaikan secara internal oleh weather.gov juga akan berguna bagi lembaga lain
    Setahu saya Weather.gov dioperasikan oleh NWS di bawah NOAA, jadi menarik bahwa hal itu tidak ada dalam perombakan misi kali ini

  • Sedikit terkait, tetapi menurut saya satu URL paling berguna di weather.gov adalah ini. Tinggal ubah lintang/bujurnya
    https://forecast.weather.gov/MapClick.php?FcstType=graphical...
    Akan bagus kalau data historis juga bisa dilihat dengan tata letak yang sama