Upgrade to Pro — share decks privately, control downloads, hide ads and more …

位置情報とオープンソース がやりたくて MIERUNEに転職した話

位置情報とオープンソース がやりたくて MIERUNEに転職した話

Avatar for Taku Fukada

Taku Fukada

September 26, 2024
Tweet

More Decks by Taku Fukada

Other Decks in Programming

Transcript

  1. 前職: 東京の報道系ITスタートアップ 準リアルタイム更新用 ベクトルタイルサーバ 気象庁データの扱い 位置情報付きデータの
 RDB→Elasticsearch同期 簡易ジオコーダー ※イメージ ※イメージ

    ※イメージ  リアルタイム同期 (CDC˜  検索基盤の完全移行を行う  道路トラフィックデータo  インメモリ四分木  文章の途中にある住所を検出  気象庁防災情報XM”  イベントソーシン™  ベクトルタイル化 位置情報がらみの開発をよく主導。フルリモート。 CDC
  2. 前職: 東京の報道系ITスタートアップ 準リアルタイム更新用 ベクトルタイルサーバ 気象庁データの扱い 位置情報付きデータの
 RDB→Elasticsearch同期 簡易ジオコーダー ※イメージ ※イメージ

    ※イメージ  リアルタイム同期 (CDC˜  検索基盤の完全移行を行う  道路トラフィックデータo  インメモリ四分木  文章の途中にある住所を検出  気象庁防災情報XM”  イベントソーシン™  ベクトルタイル化 位置情報がらみの開発をよく主導。フルリモート。 CDC もはや 地理情報 (GIS) を専門にしたほうがいいのでは…?
  3. YOUはなぜMIERUNEに 8 求職中、 にたまたま MIERUNE の 記事が出てきた。運命。 アドレスバーの履歴 8 一部の成果を

    として公開 → 日本ではめずらしい OSS 8 小さい会社の をまた得たい。 自由度 8 今は受託がメイン → が付いてる 地に足
  4. 巨大データの高速な変換 Python などでは遅すぎて実用にならなかっただろう クロスプラットフォームビルド Windows, Mac等で動く GUI アプリが要求されていた 初めて Rust

    を使う 納期は5か月後 なぜ Rust ? 不安要素も... 言語の選定(国の仕事で Rust を使うぞ) 結果的には「Rust じゃないと厳しかった」 Github Actions で 簡単に全 OS 用ビルド その他 Â Tauri (GUI) の存Ë Â コードの再利用Ï Â Rustをスタックに加えた´ Â etc. コンピュータってこんなに速かったんだ......
  5. 基礎の部品から自作(一例) ジオメトリまわり 変換まわり 地理まわり ポリゴンの三角形化 mapbox/earcut の移植 MIERUNE/earcut-rs タイル境界でのスライス mapbox/geojson-vt

    を参考に 専用の幾何データ表現 シリアライズ効率を最重視 MIERUNE/flatgeom-rs CityGML パーサの実装 ° XMLスキーマの解ª ° Rustの手続きマクロで導出 3D Tiles の実装 ° 3D Tiles+glTF拡張のモデÖ ° タイリングスキームの検討 外部ソート器の実装 タイル生成パイプラインに必要 MIERUNE/kv-extsort-rs 標高を楕円体高に変換 ° ジオイドモデルの組み込0 ° 測量成果の使用承認申請 MIERUNE/japan-geoid 地心座標系への変換 ° 3D Tiles などで必要 平面直角座標系の扱い ° 横メルカトル投影法の計算
  6. 社内開発環境の整備 パスワードなどの安全な共有 Workers, Pages / Zero Trust / etc. エラーモニタリング

    / APM AWS Organizations
 (AWS Control Tower) AWSマルチアカウント環境の推進 ツールの導入提案 Google Workspaceアカウントでサインイン などなど シングルサインオンの管理と AWSアカウント発行の IaC 化 + +
  7. TypeScript, Python と Rust B 科学系エコシステ1 B 簡便さ(データ処理など$ B etc.

    B 書ける人が多e B Web側とのコードベース共I B 優秀な型システム GISでは Rust を使う必然性がある (NAPI-RS) B 現実的なパフォーマンスの実現。データの規模i B JavaScript や Python から利用しやすい Wasm Compnent Model...? 長所 長所
  8. SvelteKit に Hono を載せる Hono /api/** request フロントエンドと API を分けずにデプロイ。

    (分けることもできる) SvelteKit のモノリシックさを活かしつつ API 部分は Hono で書く。 SvelteKit r OpenAPj r hono/client
  9. Web + GIS Web開発だけでは
 退屈なあなたに 3 少し っぽい要素も欲しい。 サイエンス 3

    新しい や のネタがほしい。 UI/UX 可視化 3 実世界の課題を解決したい。 3 社会やコミュニティに貢献したい。 3 飽きっぽい。 をやりたい。 色々なこと