32nd Diary

過去の日記
もっと過去の日記
2015年
7月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

めーるあどれす:ruby -r base64 -e 'puts Base64.decode64("dGFrQG5vMzIudGs=")'





2015-05-11 (Monday) [長年日記] この日を編集

[Hack][Ruby] ISAC Tokyo 2015 で優秀賞を受賞

記録的なエントリです。はい。 首記の受賞自体は 2015-04-11 と 2015-04-12 にまたがったイベントによるものです。

ISAC というのは International Space Apps Challenge の略で参加者や主催の方たちは「アイザック」と呼んでます。んで、この ISAC Tokyo 2015 は何かっつーと NASA が元締めをしてる Hack-a-thon ですな。 例年参加していたのですが、去年は都合が悪く不参加。今年は都合が付いたので参加してきたというわけ。

結果ですが、タイトルの通り優秀賞を受賞しました。

チームは 「優秀賞: Toward HYPER LOCATION for Everyone」 というやつね。

簡単に何やったかって説明すると、普通の GPS ってそんなに精度よくないし、そんなにポンポン位置が確定するものじゃないんですよ。 では、いつも私たちが利用している GPS を利用した地図とかがどうやってあんなに早く位置を特定してるかっつーと、 WiFi のアクセスポイントの電波だとか、そういうのを加味した上で頑張って「あ、なんか前回の情報とか、お前の行動からここらへんなんじゃねぇの?」みたいなのをソフトウェアが処理して出してます。 そういうものなので、サンフランシスコからもってきた WiFi アクセスポイントの近くで地図アプリを起動するとドンピシャ、サンフランシスコに瞬間移動してるような挙動になったりするということが起こったりする。

本題。今回はそういった細々としたところはデータもってるところにまかせるとして、 GPS のみでの位置情報の確定について取り扱いました。 んで、我々が普段利用している GPS の方式だと、だいたい精度が誤差 10m とかでちゃうんですよね。イングレスとかプレイしてるあなた、記憶にあるでしょう。いくら近寄ってもなんかレンジに入らないポータルとか。それはあなたの日頃の行いが悪いわけではなくて、 GPS の精度が悪いせいなんです。たぶん。

んでもって、話はちょっと変わりますが、大規模農業とかでは RTK 方式という GPS の測地方法を使って、精度 2cm ほどまでの位置情報を使ってトラクターの自動運転とかしてるんすよねー。で、ならオレたちもその RTK方式?っていうの使えばいいじゃん??って思うよね。思いますね。はい。 しっかしですねー、この RTK方式で測位できる器機?みたことないけど、そういうのがあるんですって。これがなんとハコひとつで **100万ほどはする** らしいのです。

えー、でも、その RTK の測位できるチップとかは 2万とかあれば買えるよ?というわけで、 Raspberry Pi + ublox6 or ublox8 というハードウェア、 RTKLIB と Ruby によるサーバと JavaScript によるクライアントというソフトウェアの組み合わせで実現しちゃったよ。というヤツになります。

ほんとにザックリ説明

100万 で買えるものを 3万 の費用でふつかで作っちまった。という感じです。

あー、あと、デモもうちのサーバでホスティングしてたんですけど、審査期間終わったので、止めちゃいました。(日本で勝ち抜いたプロジェクトは世界でのグローバル審査にかけられるのですが、今回はとくに何もなかったみたい。ちなみに、2013年には日光がどの座標にどれくらい照射しているかのデータを12年間積算したマップを作成し、グローバル審査での佳作をいただいております。はい。

まー。今回はハードウェアの取り扱いに苦労して、はじめはどうなるかと思ったわ。 でも、きちんと RTK で測位して ublox というハコの評価キット(なので、若干量産することを考慮に入れればもう少し安価に・・・なる・・・)もふくめ 5万くらいあればドリフトとかぜんぜんしない位置情報が得られるという知見が得られました。

勉強になったわー。じゃあの。


2015-05-07 (Thursday) [長年日記] この日を編集

[tDiary][Log] puma で rackup して動かしてみている

heroku ブランチマージしてカンでゴリゴリいじくった。 爆速。

が、 update.rb がうまく機能しないので、 update.cgi で環境変数ラップしたり bundle exec な感じにしてあげてムリクソ動かしている・・・

ちょっとあとで整理したい。なんという秘伝のたれ。

あとあと、 rbenv にしてないのよなー。ここ。 それもいじっときたい。

あー、そういう都合で update.rb はクソ遅い。

あと、 Twitter とかに URL でたときにボットのアクセスに耐えられるかよくわからん。

[tDiary] update.cgi はこうなった

 #!/bin/sh
 HOME=/home/takano32

 # pyenv, rbenv
 export RBENV_ROOT=$HOME/local/var/rbenv
 if which rbenv > /dev/null 2>&1; then eval "$(rbenv init - sh)"; fi

 export BUNDLE_PATH=vendor/bundle
 exec bundle exec ruby update.rb

もうちょっとどうにかできる気がする。

本日のツッコミ(全1件) [ツッコミを入れる]

takano32 [rbenv 化して rbx や jruby も試みてみたがうまく動かない。というより、依存する Gem が多すぎて、こいつらを rbx や jruby の -S bundle がうまくビルドできなかったりした。]


2014-08-07 (Thursday) [長年日記] この日を編集

[Python] SkypeKit のサポートが完全に終了

8月4日からランタイムのバージョンではログインできなくなるという告知があった。

5日に目視で確認した。

そういったわけで、一昨日あたりから SkypeKit をベースにしたソフトウェアを片っ端から Skype API ベースに書き換えるという修行をしている。

自分のメンテナンスしている範囲でも、いろいろと実は SkypeKit で動いていたりするので、改修が間に合わないソフトウェアも存在する可能性があります。 現在、ランタイムが落ちるとそのまま疎通しない状態になりますが、比較的がんばっていますので、周囲の方々におかれましては温かい目で見守りくださいまし。