Code for History

"Code for History"はIT技術を歴史学上の問題の解決に使うコミュニティです。強調したいのは、我々にとってIT技術は「手段」であって「目的」ではありません。「目的」は歴史学上の問題を解決する事であって、必要であればITでない手段も活用します。常に最優先なのは、問題を解決することです。

Maplat奈良版公開!

私の開発しているMaplatという古地図を扱うアプリですが、奈良の古地図2件と、歌うパステル画家5Seasonsさんの京終界隈マップ、うとうとさんのならまちおもしろ地図3部作を加えて、Maplat奈良版として公開しました!

GPSで現在地を表示しながら、古地図や楽しい絵地図で奈良の町歩きが楽しめるはずです。 ぜひ試してみてください。

他の地域もあります!

今後も新しい地図をどんどん増やしていきます! これに追加したい地図などお持ちの方はぜひご提供、ご紹介ください! 自分の地域に作ってみたい方も、ぜひご相談ください。

古地図アプリが紙の地図に勝つために:その1、みんなでワイワイ視点共有

以前、Facebookにも書いた話題の改題です。

私は以前Stroly(当時はちずぶらり)という古地図や絵地図の観光マップアプリの仕事してましたが、家族と鳥羽に行った時に自分の観光アプリ起動した隣で、大学生たちが大きな観光マップ広げて「どこいくー?」「私ここ行きたいー」とかワイワイしてるの見て、あ、負けた、と思いました。
1人で手元で古地図/絵地図みながら何かを探す用途としては、古地図/絵地図アプリはハンディで便利ですが、バッと拡げてみんなでワイワイ視点共有しながら、あーでもないこーでもないと楽しく検討するためのプラットフォームとしては、現状の古地図アプリは全く向いているとはいえません。

単に視点を共有できるようにすればみんなでワイワイできるようになるとは限りませんが、少なくとも現状できないものをできるようにすることには意味があると思い、すぐ視点を友人とのアプリ間で共有する機能を考えてStrolyに実装したいと思っていました。 しかしながらその直後、Strolyを解雇されて実現できませんでしたが、今でもあの時「紙に負けた!」と感じたインパクトが強いので、自分のアプリ(Maplat)で実現したいと思ってます。
そういった視線を多人数で共有できるの含め、アプリ地図はまだまだ紙の地図に勝てないところは残っていて、その意味でまだ紙地図はアプリ地図のライバルだし、そういう負けてる点にいかに気付いていかに取り込んでいくかが、アプリ地図技術者の使命だと思ってます。

といったところまでがFacebookや、その以前にはTwitterにも書いたはずの内容なのですが、媒体を変えたとはいえ何度も同じ内容だけを書くのもアレですし、今回は実際にシステムを組むとどうなるかを設計してみました。
今私の中で空前の大ブームの、Azureサーバレス構成で作ると、 f:id:kochizufan:20170916011546p:plain こんな感じになります。

この仕組みを使って、Maplatでも友達間の視点や現在地、お気に入りPOI等を共有でき、チャットなども交えてワイワイできるような機能を加えたいと思っています。

=== 追記 === 最初この視点に気づいた2012年GW頃と10月ごろのTweetがサルベージできたので貼っつけておきます。

なるほど、当初はBlueTooth等での視点共有を考えていたようです。

誰も伊達や酔狂で1億円企業と喧嘩なんかしねえよ

伊達や酔狂、ワガママでStroly社と争ってると思われてる節感じるけど、社員10人以上抱えて弁護士までついてる1億円企業相手に1人で喧嘩して怖くないわけないやろ。
あの会社が俺に対してなしたいまだに謝罪ない脅迫、騙しに対する怒りと、まだ開発中途だった中途半端な技術を拡散される事の社会的損失に対する危機感がなけりゃ、こんな喧嘩とっくにやめてるわ。

あと、と言いながらも、同じ業界にお互い居てイベントなどで顔合わせることも多いんだから、お互いに謝罪し合って過去の事は水に流そうぜ、という呼びかけは常に俺の方から何度かしてる。
それに対して弁護士がしゃしゃり出てきたり、警察に通報した、などと常に逃げ回ってるのがStroly社の方。
嘘だと思うなら弁護士との内容証明のやりとりで俺の方から出したもの公開でもなんでもするけど。

Maplatのキーワードは、Strolyでは実現不可能な「非線形全単射投影の保証」

Maplat会津若松版をSotM会津若松で宣伝したいと思って、現地で売りを列記したチラシを配布しようと思ったのだけど、念のため運営に確認したら、スポンサー代を払わないと現地でチラシは配れないと。
スポンサー代調達しようかとも思ったけど、やっぱキツかったのでそれは断念。
代わりにMaplatのTシャツを作って現地で着て歩くことにした。
チラシでならいろいろとMaplatの売り、できることだの何だのてんこ盛りにしようと思ってたんだけど、Tシャツだと一発で見た人が興味持ちそうなこと書かないといけない。
で、何にしようかと思った時、一瞬でひらめいた。
古地図座標系と正確な地図座標系の間の「全域(−∞〜+∞)」で、「非線形全単射での投影変換」が「保証」されること。
これしかない。

英語で書くと、"Guaranteed nonlinear bijective projection"。
ちずぶらりに合流する前のマピオン時代から、8年越しで古地図を扱う技術として実現したかったことで、Maplatでも、ここ1ヶ月ほどでやっと実現できるようになった性能。
Maplatで実現できていて、Strolyで実現できてないことは山ほどある。
リアルタイムでの古地図と正確地図の重ね合わせ。
Webでの、方角と地図スケールの重ね合わせ。等等。
が、どれも、その差が生まれたのは開発担当者の能力の違いであって、技術ポテンシャルの根本的な差異ではない。
ぶっちゃけ、リアルタイム重ね合わせは、インパクトの割に正直言うと「虚仮威し」だし、方角と地図スケールの重ね合わせは、Stroly側でも俺が残してやったスマホ版では実現できている。
Web版Strolyで実現できていないのは、ぶっちゃけ開発者の怠慢、あるいは能力不足でしかない。
今の三流開発者に取って代わるような、超一流開発者がStroly社に入れば、あっという間に覆される優位。

それらに比べて、「非線形全単射での投影変換」は、原理的にStrolyでは絶対に実現できない機能。
どんなに優秀な技術者が入っても、「StrolyがStrolyであること(つまりは、今の特許取得対象技術)」を捨てない限りは、原理的に絶対できない(できると主張する奴がいるなら、そいつは数学ができないアホ)*1

Strolyが誇りとしている「特許を取得しているという事実」、その請求項に示されている手法では論理的に絶対にできないことだから、この優位は絶対にStrolyから覆されることはない。
また、Strolyの特許技術で原理的に実現できないことをこちらが実現していると言う事実は、とりもなおさずこちらがStrolyの特許を侵害していないという証拠にもなり、Strolyがこちらにスラップ訴訟等を起こす可能性に対する、最高の防御にもなる。
この売りを前面に出さない手はない。

また、全単射投影保証が実現できていると言うことは、とりもなおさずGISで重要なトポロジーの保存なども保証されると言うことだ。
つまりは地籍図の変換など、遺産や税金など大きなお金が動くセンシティブな分野でのGIS利用とも融合できる可能性が出てきたと言うことだ。
古地図連携技術が数奇者のおもちゃだけでは終わらなくなったことも意味する。
ここに未来がある。

今後Maplatを売り込む時は、「非線形全単射投影の保証」を前面に推して売りだしていきたい。

*1:というか、Stroly社が取得している特許5810411号の請求項2と請求項9は、原理的に全単射実現できないStrolyが、少しでも「全単射っぽく」見せかけるための技術で特許が成立している。この特許の存在自体が、Strolyが全単射できないことと、全単射の重要性、そしてそれを実現したMaplatの有用性の証拠になっている。

SotM2017向けにMaplatを整備してみて

Maplatを今年のState of the Map Aizuwakamatsu向けに整備しての気づき: ‬

‪データ整備:‬

  • 同じ地域の古地図を多数マッピングする場合、正確地図側のマッピングポイントはほぼ同じところになる場合が多い。地域毎のマッピングポイント候補データセットか、あるいは他の地図のマッピングポイントを読み込める機能と、それに対するだいたいの対応点位置リコメンド機能が必要。
  • 対応点としてのGCPと、トポロジーエラー解消のために加えた補助GCPを見分ける属性必要。

アプリ側:

  • 地図もPOIも、こちらから提供した情報しか表示できないアプリだと、それだけで街歩きが完結できない。予約してる宿の場所やコンビニの場所、トイレの場所など、ユーザーが他から得た情報の取り込みUI必要。
  • POI説明文の中に別の施設の説明がふくまれていることがあるが、その施設がPOIとしては整備していなくても、準備した地図の中に画像情報として含まれていることがある。そこに対し、地図IDと座標などで遷移できるリンク機構を準備すると、コンテンツの連携を高めることができる。

祖父作詞の流行歌の動画がネットに上がっていた

祖父作詞の1936年の流行歌の動画がネットに上がってるのを発見した。

www.youtube.com

先日、奈良のうとうとさんの詩の朗読会に参加して、自分の下手くそな学生時代の詩をネットから掘り起こすか、祖父の詩をネットから掘り起こすかで悩んで、結局祖父の詩は掘り起こせなかったので自分の詩を詠んだんだけど、代わりにこの動画を発見することができた。

サーバレス技術のみで古地図関連技術を何とかしたい

今の仕事に移って本業で技術に触れられなくなって、また余暇でMaplat開発が進んできたりして起きた心境の変化に、サーバ技術が大嫌いになったというのがある。
昔はサーバサイド技術者だったのが、今はとにかくサーバサイドをなくしたい。

バックエンド処理が必要だとしても、とにかくサーバを立てたくない。サーバレスアーキテクチャで済ませたい。
もともとStrolyやってた時も、少ない人数でお守りするものを減らすために、基本S3だけで完結するようなシステム設計してきたので、そういう方向性あったんだけど、今は拍車がかかってる。

ずっと本業でお守りできる状況ならサーバの面倒見てあげるのも悪くないが、たまにしか面倒見てあげられない状況で、ずっと起動しっぱなしで課金もずっとされて、ずっと状態監視して、不調起こしたら即座に対応してあげないといけなくて、なんてシステムを動かすのはコストがあまりにも高すぎる。
たとえ起動時遅延や過剰コストが多少あったとしても、サーバレスアーキテクチャで関われる時だけ関わるだけでよいシステムの方が絶対安上がりなはず。
古地図タイル化もサーバレスアーキテクチャでやれる目処ついたし、たくさんの古地図を集めてアーカイブ化するシステムも、サーバレスアーキテクチャでかつ分散処理でやれる腹案があるので、(FOSS4G TOKYO 2017 懇親会ライトニングトークで話します)Maplatは徹底してサーバレスな仕組みでStrolyに対抗していく所存。

© Code for History