isseium's blog

田舎に住むWebエンジニアのブログ

Facebook版!今までチェックインした都道府県を塗りつぶしてくれるサービスを作りました

今までfoursquareにチェックインした都道府県を塗りつぶしてくれるツールを作ったよ

foursquareでチェックインした都道府県を塗りつぶしてくれるサービスいいですね!

しかーし、foursquareではなくて「Facebook のチェックインを色塗りしてほしい!!」という人は私も含めているのではないでしょうか!?

というわけで Facebookでチェックインした都道府県を塗りつぶしてくれるサービスを作りました!

CheekiTrip (チイキトリップ)

私の地図はこちらです! http://cheekitrip.com/isseium

Facebook には、地図画像付きでシェアできます!

スポット推薦(ベータ)

いまならスポット推薦体験ができます!

チェックイン情報から好みを分析して利用者ひとりひとりのオススメのスポットを推薦します! 利用者のチェックイン情報を分析して、Amazonでいう「このスポットに行ってるひとは、このスポットにもいってます」のような推薦アルゴリズムになっています。

利用者が増えれば増えるほど、精度が高くなっていく(はず)なので温かく見守ってください!

実装について

実装方法をまとめようと思ったのですが、長くなってしまいそうなのでまたの記事で解説させてください。 地図の色塗りは d3.js を利用しました。

全体のシステム構成はこんなかんじです!

今後の展望

チェックインしたことと、満足が高いスポットであったことは別問題なのでその点を改善していきたいです。 あとは、スポットのお気に入りなんかも欲しいですね!まだまだ改善していきたいです。 アイディア募集しておりますので @isseium までお気軽にどうぞ!

Special Thanks

このサービスは、私が所属する岩手県立大学ソフトウェア情報学部 佐々木研究室で行っている地域の魅力発見・発信に関わる研究の一環で開発・運用しています!

この研究では、地域の魅力への感じ方は人それぞれ違うのではないかという仮説のもと、これまで顕在化していなかった地域の魅力を発掘し、人それぞれにあった情報発信を行うことで、地域のブランド化・観光を促し、地域活性化に寄与することを目的としています!

目指すのは、最高の旅を見つけてくれるコンシェルジュです。今後ともどうぞよろしくお願いいたします!

最後に、このサービスの公開とこの記事を書くきっかけをつくっていただいた koogawa さんに深く感謝いたします!

Mongoid で ロークエリーを投げる方法

Mongoid は MongoDB の ORマッパー です.

Mongoid に限らず ORマッパーさんは,細かいことができない認識(使いこなせていないだけかもしれないのでそのときはつっこんでください)です.

今回は,こんなクエリを投げたかったのですが,ORマッパーを利用した投げ方わからなかったので,ロークエリー(ORマッパーを使わない生のクエリ)で投げる方法を調べました.

投げたかったクエリ:

「Checkins において,(非キー属性の)spot_id ごとに合計値を出して,合計値の降順に,5件目から5件取得する」

Mongoid でも aggregation はサポートしているみたいなんですが,このクエリを投げる方法が思いつきませんでした...

db.checkins.aggregate({$group: {"_id" : "$spot_id", "count" : {"$sum": 1 }}}, {$sort: {count: -1}}, {$skip: 5}, {$limit: 5})

SQLでいうとこんな感じ(脳内クエリなので間違えているかも)

SELECT spot_id, COUNT(*) AS count FROM checkins GROUP BY spot_id ORDER BY count desc LIMIT 5,5 

Mongoid 経由だと?

StackOverFlow によると Moped を利用してうんぬんだそうです.

というわけで,以下の書き方でロークエリーを投げることができました.

db = Mongoid::Sessions.default
collection = db[:checkins]
collection.aggregate({'$group' => {'_id' => '$spot_id', 'count' => {'$sum' => 1 }}}, {'$sort' => {'count' => -1}}, {'$skip' => 5}, {'$limit' => 5})

MongoDB へのクエリを文字列として書くわけじゃないので,ちょっとRubyっぽい文法に変換してやる必要がありました.文字列をそのままクエリとして扱うようなもっとローレイヤーな方法があるのかもしれませんね.

Titanium + Wikitude SDK で遊んでみた

Titanium + Wikitude SDK で 初めてAR やってみました.

Wikitude とは?

はじめて聞いた名前... だと思っていたのですが,ヤシの旧ロゴを見て思い出しました. 一時期ARが流行ったときにダウンロードしていた気がします. 2008年頃に Layer とか セカイカメラなどのアプリに近いコンセプトで登場した老舗のアプリです.

あまり調べておりませんが,いまもそのアプリはあるみたいですが,どちらかというとSDKを提供することに力を注力しているように見えます. ※ セカイカメラといい,ARアプリはまだ実を結びませんね

Wikitude SDK とは?

Android/iOS/BlackBerry/PhonGap/Titanium で簡単に拡張現実を利用できるSDKのようです.

今回は,Titanium で利用してみました.

インストール方法や examples は 公式Doc をご覧下さい.

ARchitectWindows.js とか,jsuri とかいくつかファイルを設置しなければいけないけど,ドキュメントでは省略されてるのでちょっとわかりにくかったです.

Githubに挙がっている examplesソースコードをもとに,修正して試すのが楽かもしれません.

ここがもう少し改善されればとっつきやすいと思いました.

ライセンスは,次のようになっており,商用利用は99ユーロからです. 商用利用でなければ,自由に使えるみたいです.(ロゴが入りますが)

画像認識と重ね合わせ

認識させたい画像をWikitudeのWebにうpすると解析したファイルつくってくれて,そのファイルと重ね合わせたい画像を指定するだけで,該当画像があると勝手に重ね合わせてくれました.

POI (セカイカメラっぽいやつ)

次の構造のPOIデータをいれるだけで「っぽい感じ」のことしてくれました.大変便利です.

var poiData = {
    "id": 1,
    "longitude": (lon + (Math.random() / 5 - 0.1)),
    "latitude": (lat + (Math.random() / 5 - 0.1)),
    "altitude": 100.0,
    "description": "This is the description of POI#1",
    "title": "POI#1"
};

altitude は特別な処理が必要みたいで,変更しても全部同じ高さになってしまいました.

感想

ARアプリケーションをフルスクラッチしなくても,そこそこっぽいことができることがわかりました. 実際になにかひとつアプリつくってみたいですね.

「2052 今後40年のグローバル予測」を読んだ

この本を読むまで知りませんでしたが「成長の限界」という有名な本が1972年に出版されたそうです.人口増加や環境汚染が続けば地球は限界となるという警鐘を鳴らした本だそうです.

この本は,その「成長の限界」の研究・書籍化に関わった方が書いた本です. 「成長の限界」が出版されてから40年たった2012年に,過去のデータや経験をもとに40年後の2052年の世界を予想するというものです.

率直にいうと,未来は明るくはなかったです(かといって絶望的でもないです)

なお,この本は「空飛ぶ車」「どこでもドア」みたいに技術や製品を予想するものではなく,40年後の社会や経済を予想している本です.環境問題を中心に,地球は有限の資源であり,持続可能な社会をつくるべきだと訴えています.

読んだ理由

理由1. 「技術的特異点」と呼ばれる人工知能などをはじめとするコンピュータが進化して人間の知能を超えるような特異点が 2045年前後ではないかという説があり,なにか関連性があるのか期待した

理由2. 2052年は自分自身がちょうど現役を引退する時期であること = これからなにが起こるのかをどう予想されているのかしっておきたかった

結果からいうと,1. については核心をつくような関連性はつかめませんでした. 2. については,エネルギー・環境の問題に興味を持ちました.農業は衰退産業と予想されていたのは少し残念ですが.

概要と感想

第1部「背景」

ここでは,なぜこの本を出版するにいたったのか,そしてこの本で取り扱う2052年に向けて危惧される5つの問題を提示しています.

  1. 資本主義
  2. 経済成長
  3. 民主主義
  4. 世代間の平等
  5. 気候

この本のもとになった「成長の限界」や,GDPよりも幸福度,世界観である「パラダイム」の話など,視野が広くなる考え方が多くありました.

第2部「私の世界予測」

本書のメインとなるここでは,次の話を進めています

  • 予測の根拠
  • 2052年までの人口と消費
  • 2052年までのエネルギーとCO2事情
  • 2052年までの食料事情
  • 2052年までの非物質的未来
  • 2052年の時代精神

失業問題,食料問題やエネルギー問題は思ったよりも深刻ではなかったですが,環境問題は想像よりも悪いと感じました.

また,「2052年までの非物質的未来」では,情報技術やロボットについて話があり,身近な領域だったので特に興味を持ちました.プログラミング言語は人類が新たに得た重要な言語だという話や,それを自律的にプログラムをするプログラムがでてくるのではないかという予想がありました.

会社にとっての新しい社会的責任をとなえた「CSR 2.0」 も興味深かったです.

第3部「分析」

ここでは,予測を踏まえた分析を行います.

世界を次の5つのグループにわけて,予測していました.

  1. アメリカ
  2. 中国
  3. OECD(アメリカ除く) ★ 日本はココ
  4. BRISE (BRICS - 中国 + 成長が著しい一部の国家)
  5. ROW(その他の地域)

結果は,どの地域も成長はするが,アメリカは比較的衰退し,中国や一部の途上国(2,4) のグループの成長は著しく,3は現状とあまり変わらず,5. は貧困とのことでした.

中国がもっとも消費が多い国になり,次いでアメリカ,2013年現在差のある3,4のグループの消費はほとんど差がなくなるようです.5は貧困でありますが,現状よりも生活水準は改善されるようです.

最後の第12章では,今後どうすべきかという話があり「20の個人的アドバイス」がありましたが,あまり受け入れやすいものではなかったです.著者らの世界観にはまだついていけないようです.

2013年に作ったものまとめ

12/30, 31, 1/1 と,ここぞとばかりに開発していたら,振り返りが遅くなってしまいました.

ここでは1年を振り返るというよりは,作ったものを記録するということを目的としてまとめたいと思います.

量は重要ではないことは重々承知ですが,たくさんの人と絡んで思ったよりも多くのアプリを作れてよかったです.

2013年開発成果物一覧

1月

freezeAlarm:水道管凍結お知らせアプリ(Android

2月

いわて食巡り:いわてのオススメ飲食店スタンプラリー(iPhone

3月

東京学食巡り:東京の学食スタンプラリー(iPhone

4月

復興すてっぷ:被災地の復興にまつわるクイズアプリ(iPhone

5月

BASKUL : バスロケーションアプリ(iPhone

LabTimer:研究発表とかで使えるシンプルなプレゼンタイマー(ShellScript)

6月

DriveIhatov:一定間隔で写真を撮影しFacebookにアップロードするアプリ(iPhone

FitbitPasso:Fitbitの歩数が一定の歩数になったときにTweetするアプリ(ボット)

まごコール:祖父母にボイスメールを送れるサービス(Twillio)

FB eポートフォリオFacebookにつぶやいたURLをeポートフォリオとして管理するもの(バッチ)

7月

グラビアロックオン:好きなグラビア写真を選んでると,どんどん好きな写真が集まってくる(Web)

8月

Carblow:車を自慢しあうアプリ(iPhone

9月

滝沢トリップ:写真を活用した滝沢村スタンプラリー(Android

10月

Countter(画像対応): 画像をつかってカウントダウンできるようになりました(Web)

11月

haretsutter (全面改修):haretsutter を Twitter API 1.1 に対応させました(ボット)

12月

Favoo:いいねしそうな画像を集めてくるサービス(Web)

CheekiTrip(ベータ): 次の旅を見つけるサービス(Web)

振り返り

私が大学院に行った理由の1つに「学生と一緒に開発をする」というものがありました.

今年は,まずは様々な人と絡んで仲良くなりたいし,大学では教えないような会社で身につけたスキルを学生のみんなに少しでも伝えられればと思っていました.

そのような面で振り返れば,ほとんどの作品を現役学生と絡んで開発できたので達成できたと思います.関わったみなさまありがとうごじました & お疲れ様でした

多様なスキルと価値観をもっているので,ビジョンが合致して,同じ方向をむいて,本気になったらすごいことできそうだなーとは思います....が,ここが難しいんだろうなー.

展望

見つかった課題はたくさんありますが,まずは共有されたナレッジやコードを活用し,選択と集中をして,量より質にシフトしていきたいです.

2013年は学生に声をかけて一緒にやってきましたが,今度は一緒になにかやりたい!と言われるような魅力的ななにかを作っていきたいなーと思っています.

ではでは

2013年 NHKオンデマンドで見てよかった番組の振り返り

昨年,岩手に引っ越ししてから,通勤・通学が車になったので,スマホをいじったり,本を読んだりできないないなか,NHKオンデマンドは車のなかで聞くことができてとてもよいです.(画面は見てませんよ!)

このエントリーでは,2013年(といっても11月から契約ですが)見た番組のなかでよかった番組を3つ挙げたいと思います.

ネタばれありなので,気をつけてください.

1. NHKスペシャル コンピューター革命 最強×最速の頭脳誕生(2012年)

https://www.nhk-ondemand.jp/goods/G2012041802SA000/

望遠鏡は過去を見るもの,コンピューターは未来を見るものということで,コンピュータの進化によってできる未来を紹介したとてもワクワクした内容でした.

内容にはいくつか議論の余地もあるので,コンピュータサイエンスに関わる研究者,なにかを生み出したいと考えているエンジニアの人はぜひ一度見て,議論するとおもしろいのではないでしょうか.

特に印象に残ったものを3つ挙げたいと思います.

1. 人工頭脳プロジェクト

国立情報学研究所が行っているプロジェクトで,コンピュータが東大入試を解き,合格を目指すものです.

研究チームは,このプロジェクトが応用されると「日本のホワイトカラーの半分は必要なくなる」「コンピューターが高度な計算を行い,人間はコンピューターのために翻訳する作業をするようになるかも(人間とコンピュータの関係性が変わる)」と述べていました.

コンピューターが本当にそこまで知能を獲得できるのか,とても興味深いです.

2. スパコン界の巨匠 ゴードン・ベル博士の未来予想

2025年頃には,人々はデジタルの世界に人格を持つようになるのではないだろうか,日頃の行動を精密にロギングすることで,将来的には身体が滅んでもデジタルで人格が生き続けるようなことができるのではないかというものです.

体は死んでも,精神は生き続けるというのは,怖くもあり,見てみたい世界のひとつですね.

3. 番組内アニメ.余命が短いことがわかった研究者の父が海外に研究しに行きたいといったときに言った娘への言葉

「人間にしかできない仕事,自分にしかできない仕事をしたいんだ」

その他,システムトレードIBMのワトソン,創薬,心臓シミュレータ,ブレインマシンインタフェースなどの話がありました.

2. NHKスペシャル 神の数式(全2回; 2013年)

ここでいう「神の数式」とは,全宇宙の仕組みをひとつの数式に表すものです.

この番組は,物理学者が目指しているこの統一理論について,素人でもわかりやすくまとめていました.(当然,正確ではない表現がたくさんあるのだと思います)

現実を数式に落とし込むという世界がほんの少しわかった気がします.

好評だったらしく,「完全版」という形で,全4回の番組が2013年末にも放送されていたみたいです.

第1話「この世は何からできているのか~天才たちの100年の苦闘~」

第1話では,ここ100年間の「神の数式」にまつわる歴史ついて取り扱っています.「標準理論」(ミクロの世界の数式らしい)を説明しています.

実験や観測結果の数式化ではなく,「数学的な美しさ」を追求した結果,課題を解決したというディラック博士の話はおもしろいと思いました.

第2回「宇宙はなぜ生まれたのか~最後の難問に挑む天才たち~」

第1話で扱った標準理論と,重力の数式である一般相対性理論を統一することを取り扱っています.当時,まったく注目されていなかった超弦理論がこの2つを統合させることになったとのことです.

標準理論と一般相対性理論の統一の終盤で,496 という完全数がたくさんでてきたという話がびっくりしました.

496は,古くから天地創世に関わる数字だったと言われていたとか?

3. NHKスペシャル 日本海軍 400時間の証言 (全3回 2009年)

https://www.nhk-ondemand.jp/goods/G2012041748SA000/

某所で「見た方がいいよー」みたいな情報が流れてた気がしたので見てみた番組. この番組は,戦後,海軍元将校が集まって開催されていた「海軍反省会」をもとにしたドキュメンタリーです.

この番組は歴史を振り返るだけでなく,現代社会にも通じる教訓を考察するところが特徴で,なにか刺さるものがありました.

第1話「海軍あって国家なし」では,太平洋戦争の開戦や一部の作戦が実施された背景として「縦割りのセクショナリズム」や「曖昧な責任」などの現代にも通ずる問題があることを述べていました..

第2話「やましき沈黙」では,命じてはいけない作戦であることを皆がわかっていた「特攻作戦」について,誰も口に出せず,空気に流れ,組織に飲まれていく,そういう体質が海軍にはあったと振り返っています.組織にとってどんな利益があっても,個人を犠牲にしてはいけないとまとめています.

第3話「第二の戦争」では,終戦後,海軍省が第二復員省になり,海軍として誰が責任をとるのかについて,人間関係を優先し,真実を隠すという行為が行われたことを振り返っている.これは,半沢直樹の「部下の手柄は上司のもの、上司の失敗は部下の責任」と同じ類のものだと思いました.

どれも現代に通じる問題があり,戦争で多くの被害を出した国に生きる子孫として,戦争から教訓を得て生かす責任があると最後に担当のデスクがまとめています.

終わりに

結果として,3番組ともNHKスペシャルでした.NHKスペシャルは素晴らしい番組ですね.

その他,見てよかったなーと思う番組は次の通りです.

今年もたくさん見たいと思います. 「そのとき歴史が動いた」「プロジェクトX」「映像の世紀」あたりを攻めたいですね.

ではでは

「MAKERS」を読んだ

クリス・アンダーソンのMAKERSを読みました.

2013/8/1 に購入して,やっと読みました. 昨年の後半は,論文やオープンデータ関連の本はそこそこ読みましたが,そちらに時間が割かれて(それはそれでよかったけれど),あまり積ん読がすすまなかったので今年はもう少し読みたいですね.

東京にいたころは,電車通勤を生かして月3,4冊くらいは読めてた気がするので,それくらいは読みたいですね.車運転しながら本を読めるといいのですが...

情報収集の基本である何かを読む時間が首都圏に比べて相対的に少ないのは,地方(車社会)の問題のひとつかなーと.

概要

本書では,各家庭にプリンタが普及したように,これからは各家庭に3Dプリンタが普及し,モノを各家庭で作る時代になると書いてる.

これまでのもの作りは,アイディアを思いついてもすぐに作れない場合が多かったが,3Dプリンタによって,手軽にアイディアを具現化することができるようになり,ニッチな商品を適切な規模で作ることができるようになり,さらには,ある領域の愛好者同士でコミュニティを作り,図面を改良し合うということができるようになる.モノのパーソナライズ化がもっと進む.

本書の内容

本書は,「革命」と「未来」の二部構成になっている.

第一部「革命」では,著者の祖母がスプリンクラーを発明した話,情報産業が大きく成長していても製造業(ハードのものづくり)が国家や人々の基本であること,産業革命の影響など,主に過去に起きたものづくりまつわる出来事を述べている.部の終わりでは,パソコンとプリンタがセットになって,誰でも出版印刷(パブリッシング)ができたように,パソコンと3Dプリンタがセットになって,誰でも高度なものづくりができる時代が来ていることを述べてる.

第二部「未来」では,3Dプリンタにまつわるここ数年の話から,近い将来どのような変革が起きるかをまとめている.内容としては,3Dプリンタの概要,オープンソースの3Dプリンタ,オープンな組織によるものづくり,新たなものづくりの資金調達の仕組み(クラウドファンディング),ものづくりのクラウド化などを取り扱っている.

感想

3Dプリンタが欲しくなりました.

3Dプリンタはまだまだ精度が悪いですが,いまの紙のプリンタ並に精度がよくなり,価格も下がったらと思うと革命的だと思いました. 身の回りを見渡してもいろんなものがハンドメイドできるなと思いました. ex) ハンガー,リモコンのふた,コップ,鉢,霧吹き,ペンのキャップ,ボタン・・・

これから必要なパソコン能力は,Word・Excel・3Dオーサリングソフト になるのかもしれませんね. 3Dプリンタ関連のソフトウェアだと,オートデスクがどうも強そうなので,まずはいじってみたいと思います.

クラウドファンディングを利用した話は,あまりピンと来ませんでした.述べていることは受け入れられるのですが,成功したプロジェクトはそのためのマーケティング・営業戦略やPOP作成など多大なコストはかかっているんじゃないかなと感じました.もっと簡略化してTwitterのつぶやきくらいでお金が集まる仕組みがあればなーと思ったり.

話の途中にでてきた,「ギークダッド」の話は感銘を受けた. 著者が子育ての時に,子供と一緒に楽しめる技術系プロジェクトを探したのを発端として,最終的には事業にしたという話である. 私にはまだ子供がいないけれど,(現実はともかく)統計的にはそう遠くない将来子供ができるので,そういうことをやりたいなーと思った.「趣味を仕事にするな」という意見もあるけれど,私はやるならひとつに集中したいタイプなので,子育てを仕事にするという選択肢をこの本は与えてくれた気がする.

3Dプリンタの原理を応用することで,建築物レベルの3Dプリンタや,原子レベルの3Dプリンタが作れるというのもびっくりでした.特に原子レベルの3Dプリンタは,食料のプリンタを作れると思うので,一家に一台直物工場とういのも遠い話ではないんだなと感じました.

工業だけでなく,建築・土木,農業,食品などあらゆるモノを扱う分野において変革が待っている気がします.