Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
避難所支援システムを支えるRuby技術
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kosuke Yamashita
March 09, 2016
Technology
1.1k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
避難所支援システムを支えるRuby技術
2016年3月9日、Hamamatsu.rb #62にて発表。
Kosuke Yamashita
March 09, 2016
More Decks by Kosuke Yamashita
See All by Kosuke Yamashita
避難所支援システムにおけるOpenStreetMapの利用
ochaochaocha3
1
1.8k
Other Decks in Technology
See All in Technology
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
0
190
Multica × 長期記憶:40個のミニプロジェクト管理
eiei114
1
210
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
2
370
omasushiというライブラリを作った
polidog
PRO
0
150
アリアドネの糸と、20年ごとの建て替え ── 長尾真『電子図書館』を、伊勢で読み直す / Rereading Makoto Nagao’s "Electronic Library" in Ise
ykiyota
0
100
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
3
1.9k
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
220
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
3
140
Claude Code本って、 読む必要あるの?
oikon48
1
130
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
7
7.5k
AI時代におけるプロダクト横断勉強会の設計
zozotech
PRO
0
170
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
340
Featured
See All Featured
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
230
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
230
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
GitHub's CSS Performance
jonrohan
1033
470k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
690
Prompt Engineering for Job Search
mfonobong
0
440
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Making the Leap to Tech Lead
cromwellryan
135
10k
[SF Ruby Conf 2025] Rails X
palkan
2
1.4k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
320
How GitHub (no longer) Works
holman
316
150k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
580
Transcript
避難所支援システムを支える Ruby 技術 2016年3月9日 Hamamatsu.rb #62 浜松職業能力開発短期大学校 電子情報技術科 山下幸祐(@ochaochaocha3)
学校の卒研で こんなものを 作りました
3 避難者名簿作成支援システム
4 無線通信システム
背景 5
災害発生時は避難所が開設 される 6
東日本大震災における課題 • 安否情報の確認困難 • 救援物資の需要の把握 –食糧の配給の過不足 –配給食糧によるアレルギー症状 • 災害時要援護者(妊婦・身体が不自由な人等) への対応
7
避難者名簿作成の実情 • 解決のためには避難者名簿を作ることが有効 8 • 手作業で名簿を作成 –作成や集計が困難 –原因:電力・通信インフラ喪失 → コンピュータが使えない、通信できない
• 名簿様式の不統一 –得られる情報が救援ニーズと対応しない 実情は…
目標 電源喪失下でも単独で動作可能な 避難者名簿作成・伝送支援システム を作る 9
避難所てだすけくんのシステム図 10 バッテリー スマートフォン タブレット端末 入力端末 「にゅうりょくん」 市役所等 災害対策本部 避難所
統計システム 避難所支援サーバー Wi-Fi 無線通信 モジュール ZigBee 無線通信 モジュール 無線通信 システム
避難所てだすけくんができること 11 避難者数を数える 避難者名簿をつくる 名簿や 救援ニーズ を送る 太陽光による 充電で動く 避難者の入退室管理
救援物資配給 食物アレルギーへの対応
避難者名簿作成支援システムの製作 12
用途 避難者名簿を 素早く作る 13 避難者名簿作成支援システム サーバー 入力端末
コンセプト • 実際に必要な情報を入力 • 災害発生当日:避難者の人数のみ • 災害発生後2日目以降:浜松市の避難者名簿様式 • コストを抑える •
避難者の識別にバーコードを利用 14
サーバーの構成・提供機能 15 ZigBee 無線通信 モジュール Wi-Fi 無線通信 モジュール サーバー(Raspberry Pi
2) 無線通信用 サーバー Web アプリケーション サーバー データベース 避難者の情報 を入力する 各端末との 無線通信を 行う 避難者の情報 を格納する https://www.raspberrypi.org/blog/raspberry-pi-2-on-sale/ より引用
Infrastructure as Code • サーバーの設定をコードとして残す – 変更履歴の確認が容易 – 自動設定が可能 •
履歴管理:Git • サーバー設定のテスト:Serverspec – RSpecを使ってサーバーの状態を記述することができる • 構成管理:Itamae – 独自DSLで状態を記述、Chefより簡単 16
コードとして表した設定の例 テスト(serverspec) # パッケージ nginx がインストール済み describe package(‘nginx’) do it
{ should be_installed } end # サービス webapp が有効になっている describe service(‘webapp’) do it { should be_enabled } end 構成管理(Itamae) # パッケージ nginx をインストールする package ‘nginx’ # サービス webapp を有効にする service ‘webapp’ do action :enable end 17
Webアプリケーション:避難者用 18 ホームページ 個人情報 アレルギー
Webアプリケーション:スタッフ用 19 ホームページ 登録避難者一覧 お知らせ
Webアプリに使ったgem • Ruby on Rails – MVCアーキテクチャ:すっきり書ける – rails runner
コマンド: 通信用プログラムでモデルを流用 – Rails Engine:スタッフ用画面の分離 • bootstrap-sass – デザインに使用、少ないカスタマイズでそれなりの画面に • seed_fu – データベースへの初期データ流し込み 20
用途 以下を素早く入力する • 避難者の人数 • 入退室情報 21 避難者情報入力端末
22 操作方法 2 3 4 1
入力端末・サーバー間の通信 23 入力端末 家族 代表者番号 111 家族の人数 3 データ ベース
“# 01901115 3” ZigBee無線通信 サーバー
入力端末との通信に使ったgem • xbee-ruby –ZigBeeモジュールによるシリアル通信を簡単に行える • ServerEngine –サーバープログラムのフレームワーク –マルチプロセスサーバーを簡単に作れる • 今回はシリアル通信の制約のため同時接続数は1
–ロガー、シグナルハンドラを自動で用意してくれる 24
運用実験 • 浜松校の避難訓練で実施(2015年11月19日) • 約150名が参加 • 10分間で避難者数を何人分数えられるか? –避難者数=参加者の家族の人数 25
26 運用実験の様子
27 入力端末を使い 参加者の家族の人数を入力
28 567人 10分間で数えられた人数
実証結果 避難者名簿作成支援システムを使うと 数百人規模の大きな避難所でも 避難者数を素早く把握できる 29
避難者名簿無線通信システムの製作 30
無線通信システム 避難所 市役所 災害対策本部 避難所の避難者数の統計 避難者名簿の統計 不足救援物資の管理 行方不明者の検索 避難所統計システム 救援物資の送付
避難所支援サーバー 避難所の避難者数 避難者名簿の作成 行方不明者リストの作成 データ通信 避難所データの通信・統計について
避難所番号 19 市役所 災害対策本部 避難所 @019DNU @019UNU 99 @019DCA @019UOK
避難者数情報の通信プロトコル 送信テスト 避難者数要求 人数を返す(99人) 応答
避難所統計システム(避難所みえるんです)
避難所統計システム(避難所みえるんです)
避難所統計システム(避難所みえるんです) 35
避難所統計システム(避難所みえるんです) 36
避難所統計システム(避難所みえるんです) 37
避難所統計システム(避難所みえるんです) 38
無線通信システムのプログラム 災害対策本部 • VB.NET製 • 地図データ:OpenStreetMap • 地図表示 – ブラウザ部品におまかせ
– JavaScriptライブラリ:Leaflet 避難所のサーバー • Ruby製 • Railsのモデルを流用 • 使ったgem – Ruby/SerialPort:シリアル通信 – ServerEngine 39
中田島砂丘 付近 ポリテクカレッジ 浜松 OpenStreetMapより 避難所データの通信実験 2.6 km 約2.6 kmの距離で
避難者数の無線データ通信ができた
紹介したgem等 • Serverspec – http://serverspec.org/ • Itamae – http://itamae.kitchen/ •
Ruby on Rails – https://github.com/rails/rails • bootstrap-sass – https://github.com/twbs/bootstrap-sass • seed_fu – https://github.com/mbleigh/seed-fu • xbee-ruby – https://github.com/grappendorf/xbee-ruby • Ruby/SerialPort – https://github.com/hparra/ruby-serialport • ServerEngine – https://github.com/fluent/serverengine • OpenStreetMap – http://openstreetmap.org/ • Leaflet – http://leafletjs.com/ 41
まとめ • 組込み技術とWeb技術を組み合わせて 避難者名簿作成・伝送支援システムを 製作した • Rubyのライブラリを活用し、効率よく 開発することができた 42