smellman's Broken Diary

クソみたいなもんです

spatialiteの現状の私的まとめ

この記事は2020年6月30日付でSpatialiteについて調べたものについて記述しています。なので、情報が古いなと思ったら適当に調べてください。

Spatialiteとはなにか?

SpatialiteとはSQLite3に地理空間情報のカラムや検索機能などを追加するソフトウェア及びSQLite3の拡張機能です。

www.gaia-gis.it

似たようなものではSQLite3に暗号化機能を追加するSQLCipherなどがあります。

Spatialiteの最後の安定版のリリースが2015年に出た4.3.0aで、現在は5.0に向けて開発が進められています。

各プラットフォームでの対応

ざっくりと調べた状況をまとめました。

Windows

Spatialiteの最後の安定版のリリースが2015年ということがあり、公式サイトで配布されているバイナリだとdllが古くてハマることがあるそうです。詳しくはググってください。

Visual Studioを使う場合には以下の選択肢があります。

  1. mod_spatialite
  2. NetTopologySuite.IO.SpatiaLite

www.nuget.org

www.nuget.org

なお、NetTopologySuite.IO.SpatiaLiteはmod_spatialiteのラッパーとして実装されています。

Linux

今回調査の対象外だけどたぶん普通に使える。

macOS

homebrewで使えます。

Android

android-spatialiteが使えると思います。

github.com

iOS

Spatialiteの作者がCocoapods作っていたりしますが、バージョンが4.1.0と古いうえ、geosなどの依存関係があるのにconfigureでgeosなどを切ってるという問題があります。

また、libspatialite-iosというものがありましたが、これも中身のバージョンも依存してるライブラリも古いという問題があります。

そこで、libspatalite-iosをベースにCocoapodsを作れないかと試しています。

github.com

とりあえずmod_spatialite.aが作れるところまでやりました。

ReactNative

android-spatialiteを使ったAndroidのみ対応のものがあるが、Android Xに対応してないバージョンなので作り直したほうがよいかも。

調べてわかったことや感想

  • spatialite自体の開発がgitではなくfossilというものでやっていて、かつ開発者自体がgithubへ移行はしないと名言している
  • fossilでどこで4.3.0aのタグが打たれたのかわからなくて詰んだ
  • spatialite 4.3.0aだといくつかパッチを当てないとproj4 6系以上などが使えない。homebrewのパッチを使うと良さそう
  • 4.1.0あたりではCocoapodsが作られてたりiOS対応したりする人がいたりするのに、なぜかそこらへんが継続されていない
  • 全体的に対応がマチマチな感じがあるのでちゃんと取りまとめしたほうが良さそう
  • fossliきつい...
  • iOSやる気ない感じすごい

読了: Pythonハッカーガイドブック

マイナビから献本していただいたPythonハッカーガイドブックを読みました。

book.mynavi.jp

僕の著書も担当した編集の西田さんからバズらせろという司令が来ていましたが、それは一旦無視するとしてとりあえず感想など。

まず、本書で書かれている内容がすごく幅が広く、いろいろと気づきがあります。
例えば、10章のバッファプロトコルとか9章のHyとか13章のシングルディスパッチャとか、使えるテクニックや単純に面白いと思うものが多く、またマニアックな話題も多いのが特徴です。
Lispの話は青春こじらせた頃を思い出してすごくよかったです。

原著が少々古くPython2とPython3を両方対応しようとしているところからコードがちょっと懐かしい感もあったりしますが、少なくともPython2からやっていた僕にはとてもわかりやすく、個人的にはPython2時代からやってる人におすすめです。

あと、全体的に監訳がしっかりしていて、分かりづらいところへの注記がかなりあってものすごく読むのに助けになります。
寺田さんを紹介してよかったなぁと改めて思いました。

明日から書店での販売及びマイナビでの電子版の発売がされるので、Pythonをより深く学びたいという人は是非読んでみてほしいです。

ってか、献本してもらったけど、手元にほしいから電子版買おうかな...

地図のインフラとしての地図タイルとは OSC2020 Online/Spring

OSC2020 Online/Springにて、「地図のインフラとしての地図タイルとは」というタイトルで発表をしました。


2020-4-25 A-6 地図のインフラとしての地図タイルとは

speakerdeck.com

いままでこのブログで書いていた内容や、JICAでの講義の内容を元にまとめたものとなりますが、話したいことをざざっと並べてしまったのでちょっと急ぎ足な発表ではあります。

まぁ、基本的な部分ではあるので、インターネットで地図を使う人には必須な内容かなと思うので、これから使う人はぜひ参考にしてください。

あと、オンラインでやる上で個人的な注意点がいくつかあります。

  • Zoomの荒らしが来てしまってZoom内チャットが荒らされたのだけど、見てる人には見えないモデレータのみへのメッセージだったのでかなりきつかった。発表中に100件以上コメントが来たうえに、Keynoteがマウスのフォーカスを隠してしまってチャットが閉じられない状態になり、かなり精神的に負担が多かった。ZoomのURLは何が何でも非公開にすべき...(僕の発表のときにツイッターで流れてしまったらしい)
  • 質問時間はちゃんと作ろう。上記の理由でチャット自体を閉じてしまったのだけど、理解度だったりを知るすべがTwitterしかなく、今後の参考にするものを得るのが難しくなるのである程度余裕があるプレゼンを作ると良いと思う(特にオンラインだと顔が見えない)。
  • マウスのポインタが見えなくなるのでそもそも黒いプレゼン背景自体が良くないかも。黒くした方が見やすいと思って作ったんだけど、ロゴとか貼り付けるときに透過とか無理やりそこだけ白背景とか入れたりして珍妙な作りになってしまうのも途中からきつくなった。

というわけで、正直発表してから理解度とかが曖昧になっているので質問などありましたらツイッターなどで適時聞いてください。

39歳になりました

また一つおっさんになりました。

最近は悪夢との戦いというか毎日体調が変わるような日々で厳しくもありますが、なんとか生きています。

なんとか生きてるといえば大腸の入院検査を受けたんですが、これはぐっちょむに下痢が止まらないって話をしたら「それはポリープじゃないすか?入院検査で取り除いたら一気に下痢治りましたよ!」という経験談を聞いて受けたっていうのが経緯なんですが、結果としてはポリープが無いどころか大腸は健康とのことで、完全に下痢は精神から来てるっぽくて鬱病の治療を優先しないといけないっていう状態になりました。

さて、直近では東京都や千葉県版のstopcovid19とかお手伝いしていたりします。ただ、東京都の方は少しフェードアウトしてて千葉県版の方にフォーカスを向いています。

covid19.civictech.chiba.jp

千葉県版はフォークしたタイミングがちょっと古く、東京都の改修に全然追いついていない状態ではあるのでどっかでなんとかしたいなーと思いつつ、なかなか余裕がないので手伝える人募集中です。

github.com

ちなみに、東京都の方に参加した経緯は、そもそもstopcovid19のサイトの立ち上げを担当したCode for Japanの代表が弊社社長だったりするっていう感じです。

あと、仕事の方で余裕があった時期っていうのもポイントでした。とはいえ、東京都の方は爆速でissueがassignされていくのでなかなか手を動かしづらい感じではありました。

千葉県版はCivic Tech Zen Chibaとは元々去年イベントに参加したりしてたし、発起人も友達なので〜みたいな感じです。

しかし、この件関わってざっくりとVueについて理解が捗ったのが個人的には良くって、やはりシビックテックやOSSは自分のためにも参加するっていうのが一番良いなーと思ってます。

他、docker-postgisやdocker-pgroutingとかを改修したりとかしています。最近追いつけなくなったけど、ある程度コミットできたのはすごく良い経験だった。

仕事の方は最近学生にプログラミングを教えるっていうのがあって、研究の妨げになりそうなものを補助するっていうのが目的で、これはこれで自分の知識を言語化しないといけないのでやはり僕自身の勉強にもなります。

まぁ、こんな感じで一つおっさんになったのですが、まだまだやっていこうと思います。

Apple Musicで聞けるBreakcore 10選

先日Apple Musicに入ったんですが、だいたい小学生〜大学生の頃聞いてたものが結構豊富にあって大変捗っております(何

まぁ、せっかくなのでBreakcoreでどこらへんがあるかなーと調べてリストを作ってたらアルバム10枚ぐらい出てきた感じなので、紹介しようと思います。

1. V.A. / Drop Name Records Vol 1

music.apple.com

V.A.ものとしては個人的にかなりハマっていたアルバムです。
個人的には MaladroitのBust a Digitalが最高に好きです。

2. Nero’s Day At Disneyland / Grievances and Dead Malls

music.apple.com

名前からしてやべーやつです。
1曲目はまじで最凶というかアホみたいなドラムでボッコボコにされます。

3. Synthamesk / Regression

Regression

Regression

music.apple.com

Synthameskはあまりないものの、最近の代表的なアルバムがありました。
ここらへんはもう解説なしでとりあえず聞けってやつです。

4. Emotional Joystick / Bellicose Pacific

Bellicose Pacific

Bellicose Pacific

  • Emotional Joystick
  • エレクトロニック
  • ¥1528
music.apple.com

1曲目のEightは2000年代前半にアホみたいにエレクトロニカ系のインターネットラジオで流れていました。
ちなみに、昔iTunesで買った気がしたのですが、よく見たらアルバムが違いApple Musicに入ってなかったら半分ぐらい聞き逃してた...

5. 廻転楕円体 / 奈落の虹

奈落の虹

奈落の虹

  • 廻転楕円体
  • アニメ
  • ¥1681
music.apple.com

ジャンル: アニメで吹いた。
カルト的な人気(ライブでの印象)を持つ廻転楕円体さんの1stもApple Musicにあります。
ちなみに、これは僕の葬式で流して良いと本人の許可を得ておりますので何卒〜

6. Ruby My Dear / Brame

Brame

Brame

  • Ruby My Dear
  • エレクトロニック
  • ¥1528
music.apple.com

るびまことRuby My Dearのアルバムなんですが、これはかなり問題作というか好みが非常に分かれるやつですね。
Igorrrのデス声もサンプリングされてて個人的にはめちゃくちゃ好きな作品なのですが、いろんな要素を詰め込みすぎな感じで、そこが好き。

7. Vexkiddy / Knocking out numbers

Knocking Out Numbers

Knocking Out Numbers

  • Vexkiddy
  • エレクトロニック
  • ¥1377
music.apple.com

たしかもともとはCock Rock Discoから出ていたと思われる作品。
特に3曲目の一気に曲調が変わるところが本当にかっこいい。
ただ、このアーティスト自体はすでにBreakcoreやってないはず。

8. Jega / Card Hore

Card Hore

Card Hore

  • Jega
  • エレクトロニック
  • ¥611
music.apple.com

Planet Muの初期の頃から活躍しているJegaが1997年にSkamから出したEPです。
全体的にはブレイクコアというとIDMよりのエレクトロニカって感じですが、1曲目がもうむちゃくちゃなので是非聞いてほしい。
ちなみにナウシカネタもあります。

9. John Frusciante / PBX Funicular Intaglio Zone

music.apple.com

レッド・ホット・チリ・ペッパーズのギタリストが何故かBreakcoreを作ったという珍妙なアルバムです。
特に3曲目のBikeはゴリゴリのBreakcoreでアホみたいなアーメンブレイク乗っけてきます。
ちなみに、昔Renoiseで作られた音源とかも公開されてたんですが、そこらへんは消えたっぽいです。合掌。

10. Venetian Snares / Hospitality

Hospitality - EP

Hospitality - EP

music.apple.com

僕自身はVenetian Snaresが好きで好きでたまらないっ子なんですが、Apple Musicにはかなりの楽曲が入っているのでそのうちの一枚を。
EPなので曲数は少ないけど、個人的には一番Venetian Snaresっぽさを感じる一枚で、しょっぱなからかっこいいイントロからの爆発力のあるBreakcoreかましてくれます。

なお、残念ながらHecate & Venetian Snaresは無いようです...

あけおめことよろなど

あけましておめでとうございます。今年も一年よろしくお願いいたします。

さて、最近Mapbox Vector Tileのことをここで書いてないのですが、代わりにgitbookを使っていろいろ知見を書いて共有しようかなとこんなの始めています。

smellman.github.io

あとちまちまとメンテナンスされてないユーティリティとかをメンテナンス可能にするために勉強や調査などをしています。

Mapbox Vector Tile以外では仕事で使いたいAWSのLambdaベースのプロダクトがPython 2.7で止まっているというヤバい状況だったのでPython 3.7対応を行ったりとかしていました。

github.com

これはS3にアップロードされたファイルをLambdaでClamAVをかけるというもので、まぁぶっちゃけMy City Reportで使おうと考えてるものです。

音楽方面ではつい先日紅白でKing Gnuが良かったのでついでにApple Musicに入会しました。iTunes Matchからの移行なんですが、いまのところはトラブルなしって感じです。
いまさらな感じはしますが、Apple Musicは古い曲があってとても助かりますね。リトル・リチャードとかニール・セダカあたりが聞けてかなり満足しています。
まぁ、メインはブレイクコアなんで今年も余裕があればクラブに足を運ぼうと思います。

いろいろ終わりました

昨日づけで自分で持っていたいろんなタスクが終わり、一段落してザ・ノンフィクションを見たらタイトル画面がphaとkumagaiさんのツーショットで爆笑しました。

まぁ、ちょっと振り返りをしてみたいと思います。

FOSS4G 2019 Niigata (2019/9/13-14)

こちらはスタッフ参加及び国連ベクトルタイルツールキットのハンズオンの手伝いをしにいきました。

1日目の国連ベクトルタイルツールキットハンズオンでは主に止まってしまった参加者のサポートを行うという感じでした。
国連ベクトルタイルツールキット自身はdockerを使って各種地理情報の変換やベクトルタイル化をamd64やarm/v7をプラットフォームとして使えるようにしたもの(unvt/rasv)で、さらに FOSS4G 2019 Niigata では ango という名前でハンズオンに使えるデータやホスティングプログラムを docker image (unvt/ango) として配布することで円滑にハンズオンを行うというものになっています。

hackmd.io

arm/v7をサポートしているため、Raspberry Pi 3をサポートしているのが特徴的です。なお、基本となるdocker imageも unvt/rasv なのでRaspberry Piを意識したものになっています。

ハンズオンでは事前にdocker imageを落としてきてっていうお願いをしていたのですが、やはりメールを見逃した人が一人いて、僕が持ってきていたRaspberry Pi 3をローカル接続してなんとかハンズオンを乗り切るという形で対応をしました。

2日目はスタッフとしてyoutube配信を実施しました。ビデオカメラとHDMI->USBの変換するデバイスは用意してもらっていたので、こちらはUbuntu 19.04を入れているThinkpad X220を持ってきて接続を行い ffmpeg コマンドで配信を行いました。

https://i.imgur.com/fagCBpFl.jpg

他にもミキサーなども用意していたのですが、使うことはありませんでした。

当日の配信は以下のものとなります。

www.youtube.com

www.youtube.com

www.youtube.com

www.youtube.com

なお、基調講演をしてもらった内閣官房政府CIO上席補佐官の平本さんのところだけ前半が切れてしまい、別途アップしています。

www.youtube.com

なんで切れたのかというと、実はURLを事前にツイートするため時間の予約を行っていたのですが、それをするとことごとく配信ができないという状態になりました。そのため、慌てて新しく配信を作っていたら時間が切れてしまったという感じです。この反省は次の神戸のイベントで生かされることとなりました。

JICA研修: 地理空間情報のWeb提供技術 (2019/10/2)

毎年JICAが海外の研修生を日本に招いて国土地理院や色んな所で講義や実習を行っているのですが、僕も毎年1日分講義を担当しています。2014年からなので今年で6回目となります。

今回は国連ベクトルタイルツールキットを使うように全面的に改修を行ったため、まぁプレゼン作りが地獄でした。

speakerdeck.com

まず、今回のために inazo というコードネーム(ヨーロッパのデータを使うので新渡戸稲造からとった)でhfuさんが作成をしていたのですが、僕がクロスコンパイル環境作ったほうが良くないかと思いdockerでarm/v7のバイナリも作成できるようにしたりとか、せっかくなのでserveo.netを使って触ってもらおうとかいろんなことを考えて全然プレゼン作りが進まなくて、締切となる2日前にやっと日本地図センターの人にファイルを送ることができました。

JICAの講義ではまず手始めに持ってきたRaspberry Pi 3で inazo を動かしてそれをserveo.netで動かすことでみんなにアクセスしてもらうというのをやりました。アクセスしてるときはコンソールを表示してアクセスされている様子を教えることでイメージを作ってもらって、それから講義という形でやりました。

今回一番苦労した点は、今年からJICAからタクシー代が出ないっていう制限が発生してしまったので、国土地理院にバスで向かうのですが、余裕ぶっこいていたらバスの本数が極端に少ないのを完全に忘れていてギリギリのバスが遅延もしていて到着したのが5分ぐらい前で、慌ててセットアップしていたら「通訳をお願いする」というのができなく、気づいたら英語で講義をする羽目になったというものです。しかも5時間もあって最後の方は声を出すのが辛いぐらいになってしまった。いつもは通訳があるので少し休めるのだけど、それが一切できなかったのでほとんど喋りっぱなしになり疲れました。

次に苦労したのは事前にPCがWindows 10 Proと聞いていたのでHyper-Vが使えるのでdockerが動くという前提で進めていたのだけど、docker.comでDocker Desktopをダウンロードするのにアカウントを要求してきて、アカウント作りのサポート、例えばアカウント名はどういうものにしたらいいかとか、Captchaがわからないとかを対応してダウンロードを開始するもネットワークが遅くてダウンロードできる人とできない人が出てきて、ダウンロードできたとしてもDockerが動くマシンと動かないマシンがあるのでなんでだろうと調べたら12台あるマシンのうち数台以外BIOSから仮想化がオフになっていて、国土地理院の人も手伝ってもらってBIOSの設定を一つ一つ替えていったりして、本当にバタバタが発生した。いやー、同じマシン買ってるんならBIOSも同じ設定になってないのおかしいだろー。

最後に、苦労というよりこれは面白いなと思ったのが、僕がWindowsで説明してるんだけど日本語版なのでバックスラッシュが円マークになってるため、その文字はなんだ?っていう質問を受けたところ。この質問内容が僕も通訳をいつもやってる人も何を聞いてるのかよくわからなくて、円マークのことを言ってるのがわかった瞬間に思いっきり膝ががっくりした。Windowsの言語設定を英語にしてやるべきだったなーとしみじみ思ったんだけど来年には忘れてそう(汗

あと、一番質問をしてくれた人はマダガスカルから来ていて、OSGeoの現地の団体を作りたいっていう相談をされた。一番良いのはVenka先生あたりにアドバイスもらうことだけど関西に来るのは難しいなーってなったので、なんとかリモートでサポートしたいなーと思った。

FOSS4G 2019 Kobe KANSAI (2019/10/13)

このイベントではMapbox Maps SDKスマートフォンアプリ開発というタイトルで発表をしました。

hackmd.io

まず大変だったのは台風です。台風接近に伴い当日入りだと間に合わない可能性があったので、金曜日のうちに神戸に移動して弊社神戸オフィスに泊まろうという作戦を考えたのですが、案件の方で金曜日に実機の受け渡しをして欲しいという要望があったので頑張って木曜日のうちにデータの作成を行って対応をしました。というか木曜日にいろいろありすぎてやばかった。

神戸オフィスは一軒家をまるまる借り切ってる感じなので風呂もベッドもある快適な環境なのですが、台風の音がうるさくてちょっと睡眠不足になりつつ発表資料の作成を行いました。

で、問題となったのはAndroidの実装から見えてきたMapbox Maps SDKの考え方がいままで地図プログラミングでやってきたものとだいぶ違うものになっていたというものです。発表資料にも書いたけど、Layerという考え方をまず行って、タップした時にqueryをレイヤーに対して投げるっていうものになるので、ベクトル化されたものが本当に全面に押し出されていて、本当の意味でMapboxがやりたいことを実現してきたなという印象があり、それに伴ってiOSでも同じことをしようとやっていたらReact Nativeの実装が書けずに終わった。

なお、今回の発表に伴う調査で僕が書いたReact Nativeの本も古くなってしまったというのが確定したのでちゃんとフォローアップをしないといけないと痛感しました。というか僕がReact Nativeの本書き始めたぐらいからReact Nativeの案件が離れていったというのも問題なんだけどね(最近復活した)。

さて、イベント中はイベントの準備や配信のお手伝い、ネットワークトラブルの対応など、特にスタッフとして換算されてないけど適当にやれることをやりました。そのため、充実感はかなりありましたが、帰りにはぐったり。

あと、イベントの前日に夕飯一緒に食べた友達(昔からのIRC繋がりとか、すまべんで一緒だったあいつ)の同僚とイベントで知り合いになるというまじで世間が狭いやつが普通にあって超面白かった。

まぁ、そんなこんなで昨日までの僕が抱えていたタスクは消化されました。これからjus初代会長のお話を聞きにドワンゴに行くぞ!

jus.connpass.com