2015年12月20日日曜日

ひまかん Advent Calendar 20日目: 新型Apple TV使用レポ

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015

Apple TV をプレゼントしてもらいました


妻からクリスマスプレゼントに新型のApple TVをプレゼントしてもらったので、使用レポをしようと思います。

 なんという美しい包装。



Apple製品開封時のあのいい匂いがします。


付属の Remote と一緒に。よく見たら上下が逆だった。


Remoteは操作感がかなり上がっている


以前のApple TVのリモコンよりは少しボタンが増えています。
上下左右ボタンはMac Bookにあるトラックパッドのような仕組みになりました。上部の光沢が無い部分がそれです。
ホームボタン、Siriボタン、音量コントロールなどが増えています。
メニューボタンと、再生・一時停止ボタンは以前からありましたね。



タッチジェスチャーはApple製品を使い慣れている人であれば非常に慣れ親しんだ操作感です。TVのインターフェースをまるでiPhoneを操作しているように操作できます。

Apple TVのホーム画面


テレビとの連動がすごい


以前からApple TVを使っていたのですが、ひとつ進化のポイントとして驚いたのが、テレビとの連動です。

Apple TVがスリープから解除されると自動的にテレビの電源が入り、入力切替がApple TVをつないでいるHDMIのソースに切り替わります。そしてRemote上の音量コントロールをいじると、テレビ側の音量が調整できます。さらにApple TVの「設定>今すぐスリープ」を選択すると自動的にテレビの電源もOFFになります。

こんなことできるのかーと少し調べてみたら、HDMIで接続した機器に制御信号を送ることで機器を操作をするHDMI CECという規格があるらしく、ほとんどのメーカーが実装しているみたいです。うちは2010年に購入したソニー製のテレビを使っていますが、もちろん連動できないテレビもあると思います。


大画面のアプリはすごい迫力


新型Apple TVの醍醐味はなんといってもアプリです。いくつか無料のアプリを落としてみました。

App Storeトップ。オススメアプリが並んでいます。動画配信系推しですね。


カテゴリ一覧。エンターテインメント・教育・ゲームしかまだありません。何か新しいジャンルのアプリを出したらチャンスがあるかも?



ミニオンラッシュというゲーム。実はiPhone版で以前からずっとプレイしていたゲームなのですが、テレビでやるとすごい迫力です。
操作は、Remoteのタッチパッドをスワイプしたり、傾けたりして遊びます。



GT Spritというレーシングゲームもやってみました。


グラフィックはかなり素晴らしい。PS3ぐらいの性能はありそう?


操作はなんとRemoteを左右に傾けるだけです。アクセル・ブレーキなどは自動でやってくれます。Remoteの応答性、操作性、お手軽さなどを考えてバランスのよい実装になっていると思います。



Siriもなかなか良いが…まだまだな面も


今回のApple TVの特徴に Siri Remote という機能があります。Remoteのマイクボタンを押しながら喋るとどんなときでもSiriが作動してアシストしてくれるという機能です。

「今日の天気は?」とかにも反応してくれますし、iPhoneでできるSiriと同等の性能はありそうですが、入力インターフェースの限られているApple TVではもっとスマートなアシストをしてほしい箇所がいくつかありました。

例えば「◯◯の動画を見たい」と聞いても「見つかりませんでした」となります。Siriが探し出せる動画はiTunes上の映画等に限られるみたいです。YouTubeやHuluなどの動画視聴アプリ内の検索に接続されるともっとすばらしい世界になると思います。

あとはそもそもブラウザを積んでいないため、Web検索できなかったりするのも痛いところですが、なぜこんなに検索にこだわるのだろうかと考えたら、テキストの入力が著しく煩わしいのが原因でした。Remoteで文字キーをスワイプ&選択して1字ずつ入力、変換をしていくのはかなりしんどい作業です。せめてテキスト入力だけでもSiriでできるようになるとかなりUXが向上する気がします。

デバイス自体の性能は充分によさそうなので、今後のアップデートに期待したいと思います。

2015年12月19日土曜日

ひまかん Advent Calendar 19日目: IRKitとGoogle App Engineで毎朝NHKをつける

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015




IRKitとは



会社の人たちからの誕生日プレゼントでIRKitをもらいました。
IRKitとはリモコンの赤外線をハックして、思い通りに家電を操作するデバイスです。標準でWi-Fiモジュールが内蔵されており、かつ操作するためのシンプルなREST APIが公開されているので、エンジニアであればそれこそ自由自在にリモコンを操ることができます。

IRKitの機能は非常にシンプルで、「直近で受信した信号データを返す」と、「信号データを送信する」だけです。各リモコンの信号データをいくつも保存しておく、などの機能はありません。逆に言えばそのへんはいくらでも自由に実装できます。

また、家庭内に置いたIRKitへのAPIコールはローカルネットワーク内でのみしか到達できませんが、適切にトークンを取得することで api.getirkit.com がプロキシとなり、インターネット経由でIRKitのAPIをコールすることができます。これを利用することで、外出先からエアコンを操作したりできるのはもちろんのこと、クラウド上のサーバープログラムから任意のタイミングでIRKitを操作することができます。


毎朝指定した時間にTVをつける



非常に簡単なサンプルですが、我が家では毎朝NHKの朝ドラを見ているので、目覚ましも兼ねて指定した時間にNHKをつけるプログラムを組んで動かしてみました。また、休日はゆっくり寝ていたいので、平日のみ起動するようにもします。

家に常時起動しているサーバーがあれば楽なのですが、我が家ではそんなものを置かせてもらうことはできないため、クラウド上のサーバーからcronでAPIを叩くことにしました。クラウドサービスは、(こんな趣味程度の規模であれば)無料で使えること、golangに興味があったことなどを理由に、Google App Engine for Go を採用しました。

まずは下準備として、IRKitをインターネットにつなぎ、Internet APIをコールするためのclientkeydeviceidを取得する必要があります。詳しくはここを参照してください。

http://getirkit.com/#IRKit-Internet-API

無事Internet APIを叩けるようになったら、TVリモコンの赤外線信号を取得します。我が家のソニー製のTVは数字ボタンを押すことでTVの電源が入っていない状態でも電源か入り、その数字のチャンネルに合わせてくれる機能があります。そこで、今回はリモコンの「1」ボタンの信号データを取得することにしました。

IRKitにリモコンを向け、「1」を押したあとに以下のようにAPIを叩きます。



curl -i "https://api.getirkit.com/1/messages?clientkey=XXXXXXXXXXXXXXXX&clear=1"
HTTP/1.1 200 OK
Server: ngx_openresty
Date: Tue, 07 Jan 2014 09:03:59 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 481
Connection: keep-alive
ETag: "-19571392"
X-Content-Type-Options: nosniff

{"message":{"format":"raw","freq":38,"data":[18031,8755,1190,1190,1190,3341,1190,3341,1190,3341,1190,1190,1190,3341,1190,3341,1190,3341,1190,3341,1190,3341,1190,3341,1190,1190,1190,1190,1190,1190,1190,1190,1190,3341,1190,3341,1190,1190,1190,3341,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,3341,1190,3341,1190,3341,1190,3341,1190,3341,1190,65535,0,9379,18031,4400,1190]},"hostname":"IRKitD2A4","deviceid":"FBEC7F5148274DADB608799D43175FD1"}



返ってきたJSONのmessageオブジェクトをそのままPOSTすることで、リモコンの「1」が再現されます。


curl -i "https://api.getirkit.com/1/messages" \
     -d 'clientkey=XXXXXXXXXXXXXXXXXXXXXXXXXX' \
     -d 'deviceid=XXXXXXXXXXXXXXXXXXXXXXXXXXX' \
     -d 'message={"format":"raw","freq":38,"data":[18031,8755,1190,1190,1190,3341,1190,3341,1190,3341,1190,1190,1190,3341,1190,3341,1190,3341,1190,3341,1190,3341,1190,3341,1190,1190,1190,1190,1190,1190,1190,1190,1190,3341,1190,3341,1190,1190,1190,3341,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,3341,1190,3341,1190,3341,1190,3341,1190,3341,1190,65535,0,9379,18031,4400,1190]}'
HTTP/1.1 200 OK
Server: ngx_openresty
Date: Tue, 07 Jan 2014 08:52:24 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 0
Connection: keep-alive
X-Content-Type-Options: nosniff


無事TVの電源が入り、1chが映ることを確認したら、これをGoogle App Engineから起動してみます。Google App Engine for Goのセットアップはこちらを参考に進めます。


書いたGoプログラムは、ほとんどサンプルをコピペしたような簡素なものです。



このプログラムは、指定されたパスへのリクエストがあると、IRKitのInternet APIを裏で叩くようになっています。



また、app.yamllogin: admin を付けることで、リクエストの際にGoogleアカウントでのログインが必須となり、かつ管理者以外からのリクエストの場合は自動的にエラーが返されるようになります。第三者に勝手に家のTVを操作されるのは困りますからね。

続いて、このパスへのリクエストをスケジューリングしてみます。 cron.yaml にこのような記述をします。


これは、平日の朝7:30にスクリプトを起動させる指定をしています。デプロイした後に、Google Developer Console のスケジュールタスク画面で、このような表示になっていることが確認できたらOKです。


IRKitを設置する


IRKitをTVの信号が届く範囲に設置します。我が家ではこのように壁に貼り付けました。ここなら同時にエアコンと照明を操作することができるので夢が広がります。



今後の展望としては、せっかくApp Engineを使っているので、信号データやトークンをソースコードにベタ書きせずにDatastore APIを使って登録・参照できるようにしたいです。汎用的なシステムが作れたら公開しようと思います。

2015年12月18日金曜日

ひまかん Advent Calendar 18日目: subsonicで音楽ストリーミング

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015


家のHDDに入った音楽を外で聞きたい

と思うことがたくさんありまして。。。
今ならGooglePlayMusicが日本でもサービス始めたのであんまり意味ないかもですが、
Subsonicというソフトを導入して自前で音楽配信サーバを立てる方法を書いていきます。

Subsonic in Raspberry Pi (B+)

Raspberry Pi に Subsonicをインストールします。
インストールは下記のサイトをそのまま参考にしました。
ポイントは Javaを8に上げる、debパッケージをraspberry piにインストールする、ユーザーを作る くらいでしょうか。

自分は最初 A+ でやっていたんですが、だいぶ重くて辛かったので B+ に変更しました。
Subsonic自体はjavaで作られているので、JVMをちゃんとチューニングすればまともに動くのかもしれないですが、
そもそもA+だとネットワークも後付で用意したりしなきゃならないのでめんどくさいです。

Subsonicに外から接続する

家のネットワークを外に晒すのもちょっと怖かったので、
ルーターについてたVPN機能をつかってVPN接続させることにしました。

参考:

iOSにも標準でVPN接続する機能がついているので、
これでiPhoneから家のSubsonicに接続ができる状態となりました。

iOS用のSubsonicクライアント

有料ですが、このソフトが使いやすかったです















こんな風に再生できます



使用感

ルーターの問題なのかたまにVPN接続ができないことがありました。
VPN接続さえできればおおむね快適。
ただ、日本語検索が若干あやしい感じがします。

家に余ったraspberry piなどがある方いかがでしょうか。

2015年12月16日水曜日

ひまかん Advent Calendar 16日目: SoundCloud Favorite

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015

SoundCloud Favoriteとは


Slackで bgm というチャンネルを作り、見つけた作業用BGMの共有などをしています。
メンバー内はSoundCloudユーザーが多く、そこで見つけた曲が共有される曲の対象になります。その曲は手動で共有するのがめんどくさいため、自動化の方法を探していました。当時IFTTTを探してみたのですが、投稿のフォーマットがきれいに作れず、いまいちなものだったので自作してしまいました。

herokuで動かしていたhubotのプラグインとして作りました。

https://github.com/himakan/soundcloud-favorite

コマンドはこんな感じになっています。

ユーザーを追加する

<hubot> soundcloud-fav add <user_name>


ユーザーを削除する

<hubot> soundcloud-fav remove <user_name>


ユーザーを削除する

<hubot> soundcloud-fav list


hubotには事前に HUBOT_SOUNDCLOUD_CLIENTID という環境変数で、SoundCloudのAPIキーを渡しておく必要があります。
デフォルトでは10分おきにSoundCloudのAPIを叩き、各ユーザーのお気に入り一覧を取得します。そのなかから、未通知のものを取り出し、Slackに投稿するという仕組みです。未通知かどうかのフラグはhubotのbrain機能(redis)を使っています。

改めて、IFTTTでやってみてもいいかも


ところで、今IFTTTを探してみたらこんなレシピがありましたが、なんかSoundCloudの不調?みたいなのでうまく動かず。

IFTTT Recipe: soundcloud favourites to slack connects soundcloud to slack

2015年12月15日火曜日

ひまかんブログ: ひまかん Advent Calendar 15日目: 美味しい唐揚げ開発

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015

美味しい唐揚げ開発

味付けはオープンソース(co○kpadとか)だろうが
商用のもの(○清の唐揚げ粉)だろうがなんでもいいんですが、
開発(揚げ方)の仕方で食感が結構変わるよって話。


すいません、これが言いたかっただけです。
以下エンジニア感の全くない記事になります。

肉選び

唐揚げに限ったことじゃないですが、好みに合わせて部位を選びましょう。
どうせ油であげるんで、高級な国産鶏じゃなくていいです。
ブラジル産コスパサイコー

1. もも肉
脂が乗っててジューシー

2. 胸肉
アブラ少なめ。加熱し過ぎるとすごいパサパサになるので注意。

3. 肩肉
ももと胸の中間みたいな食感になります。
最近近所のスーパーでよく見かけるんですが、
ラベルに「希少な部位です」って書いてあるくせにいつも大量に安く売ってます。

衣選び

市販の唐揚げ粉などを使う場合は選択の余地はないんですが、
自前でやる場合は結構重要なポイントです。

1. 片栗粉
分量にもよりますが、表面が白い粉がふくような硬いカリッとした衣になります。
竜田揚げ等は衣が100%片栗粉なので、これをイメージしてもらえると。

2. 小麦粉
ふわっと柔らかい衣になります。
フライドチキンやナゲットなどは100%小麦粉ですね。


ちなみに自分はいつも100%片栗粉でやります

肉はしっかり丸めよう

唐揚げの形ってあんまり意識したことある人いないと思いますが、
お店のものって意外と丸まってコロコロしてるものも多いんです。
(必ずしもそうってわけではないですが。。

衣をつけた肉はしっかり丸めて整形してから油に投入しましょう。
肉の断片が合わさることで食感がふわっとジューシーに
さらに、形が整うことで揚げムラを抑えることができます。
大きさを均一にするために、たまに肉をちぎって組み合わせたりしてもいいです。

肉は揚げすぎるな

肉は火がギリギリ通るくらいを目指すのがポイントです。
揚げすぎるとパサパサになってしまいます。
余熱をうまく使って2度揚げすると良いでしょう。

肉の大きさにもよるのではっきりは言えないですがこんな感じで

1回目: 170-180℃くらいで3-4分
余熱タイム: 数分
2回目: 190-200℃くらいでさっと


最後に

揚げ物は数揚げりゃうまくいくようになるので
失敗を恐れずたくさん揚げて下さい。
良い唐揚げライフを!

2015年12月14日月曜日

ひまかん Advent Calendar 14日目: Paster

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015

Pasterとは


我々は、かつて日常的なコミュニケーションツールとして、Yahoo!メッセンジャーを使っていました。日常会話の中ではよくソースコードを貼ったり画像を共有したりする必要があったのですが、gistは画像貼れないし、gyazoはテキスト貼れないし、ということでシンプルに使えるスニペット共有ツールを作りました。

どうせならオープンソースにしよう、ということで、GitHubに上がっています。

http://github.com/himakan/paster

特徴


  • Syntax Highlightの自動選択
  • 画像のドラッグ&ドロップ
  • 画像の切り抜き
  • PaaSでの動作
  • 投稿データはS3へ
  • development環境ではtmpディレクトリにファイルを保存してS3を無駄に課金しないように配慮
  • Redisキャッシュ対応
    • バグってて動いていないかも
  • 直近で貼り付けたデータの履歴
    • ブラウザのLocalStorageを使っています

課題

  • AppFogという(当時)の無料PaaSで動かしていたのですが、ポリシーが変わってプランを変更しないと動かなくなったみたいで、いまは止まっています。
  • どうせならよりメジャーなherokuで簡単に動かせるようにするべきですね。 「Deploy to Heroku」ボタン作ってみたい。
  • 画像の切り抜きをサーバーでやっているのがわりと重い処理なので、クライアントでやったほうがよさそう。
  • 最近はコミュニケーションツールがSlackに移ってしまい、需要がなくなりました。。Slackすごい。

2015年12月13日日曜日

ひまかん Advent Calendar 13日目: マツダコネクト

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015

マツダコネクトとは


以下の写真はiPhoneを車に繋いでディスプレイに再生されている曲情報が表示されている様子です。マイカーです。


マツダコネクトは最近のマツダ車に搭載されていて、(→公式サイト
コネクテッドカーなどと言われているものの一つです。
コネクテッドカーとは、ICT端末としての機能を有する自動車のことであり、車両の状態や周囲の道路状況などの様々なデータをセンサーにより取得し、ネットワークを介して集積・分析することで、新たな価値を生み出すことが期待されている。(総務省
マツダコネクトでも車両のメンテ状態を取得したり、運転力を診断するといった機能があります。

この分野はAppleやGoogleが車載OSなるものを開発していることもあって、マツダコネクトを手にした時もデベロッパー脳が働いて何かしらハックできないかなと調べましたが特に何もなかったです!
構想みたいなのはあるようなので早く公開されてほしいです・・(http://car.watch.impress.co.jp/docs/event_repo/CES2014/20140114_630566.html

先日、東京モーターショーを見てきましたが、コネクティッドカー周りの構想もかなり現実的になってきた感じがしました。
またこんなハッカソンも開催されようとしているので、デベロッパーとしても車好きとしてもこれから注視していくべき領域だなーと感じています。
ゆくゆくはハッカソンにマイカーで乗り付けたいですね!

その他


マツダコネクト、運転中にTVみれないです。







2015年12月12日土曜日

ひまかん Advent Calendar 12日目: 般若心経のBGM

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015


般若心経のBGM

前回の般若心経アプリに合わせて、実はBGMまで作ってました
それがこちら

鏡音リン・レンに般若心経を歌わせてみました。


Buddha Machineについて

この曲は元ネタがあって、タイトルままなんですが
BuddhaMachineというひたすらアンビエントが流れるガジェットの音が元だったりします。

こんな筐体です。
結構チープで怪しい感じのガジェットです。
(そのわりに3-4000円くらいする。。)

元々お経をかけておくためのツールだったものを、
北京のアーティストが目をつけてこのようなアンビエントマシンに仕立てたのが
始まりだそうです。

ブッダマシンの説明はこちらが詳しいのでご参考に。
http://www.gizmo-music.com/?pid=54364791

このBuddha Machine 3の1曲目 "春" のコード進行を元にしました
結構ピッチを上げないとわかりにくいかもしれないです。




実はアプリ版があるので、
気になった方はこちらのほうがお手軽に楽しめるかもしれません。

iPhone版
https://itunes.apple.com/jp/app/buddha-machine/id294730223?mt=8

iPad版はなんと6台並べて同時に鳴らすことができます
https://itunes.apple.com/jp/app/buddha-machine-ipad-edition/id394619578?mt=8

作業用環境音としていかがでしょうか。


2015年12月11日金曜日

ひまかん Advent Calendar 11日目: 般若心経

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015


般若心経のリズムゲー?


ひまかんの中では定期的に何か作ろうブームが沸き起こります。たぶん2年ぐらい前ですが、色々とブレストをしている中でこのアイディアは生まれました。
ひとことでいえば般若心経の読経リズムゲーです。

スタートを押すと般若心経が流れ、それに合わせてiPhoneを振ると木魚の音が鳴り、そのリズム感で得点が高くなる、という内容です。
あ、「得点」ではなく「徳が積まれる」という表現をしてました。

開発にあたっていくつか課題が発生しました。

音源をどうするか


まさかロイヤリティフリーの般若心経なんてあるわけないし、お寺に頼み込む勇気もないし…ということでボカロでやることに。詳しくはCa5氏が次の日に書いてくれる予定。

画面が見えない


iPhoneを振って遊ぶゲームなので、画面が見えません。グラフィックが無いとどこで木魚の音を鳴らせばいいのかのタイミングがつかみにくく、リズムゲームとして微妙な感じに。いま思いついたのですが、新しいApple TV用にアプリを作れば、この問題解決できるかも?

文字を作ってもらった


明朝体だとつまらないので、sasama氏に文字を作ってもらいました。ありがとうございます。そして活用できなくてごめんなさい。。



開発を進めていたのですが、仕上げていくうちにモチベーションがなくなり、自然と止まってしまいました。とりあえず作ったところまでの動画を載せておきます。





2015年12月9日水曜日

ひまかん Advent Calendar 9日目: 日本一周旅行【計画編】

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015

日本一周旅行【計画編】


書くネタが思いつかなかったので、大学時代にやった日本一周旅行についてまとめてみたいと思う。これから日本一周旅行をしようかと思っている人の参考になれば幸いです。

旅行のルール


学生だったため、時間はあるが金は無いので日本一周するうえで3つのルールを自分に設けた。

  • 移動はすべて愛車スープラ(※フェリーは利用可)
  • 高速は使わない(※しまなみ海道・瀬戸大橋は除く)
  • 都道府県庁に寄る
以下でもう少し詳しく説明します。

移動はすべて愛車スープラ


この日本一周をするにあたって、かねてより憧れていたスープラを購入していた。今回の旅行は電車や飛行機などは使わずすべて車での移動となる。




高速は使わない

時間はあるが金はない、燃費考えると高速のほうがいいだろという意見ももっともだが、せっかくなので色んな国道を走ってみたいということで高速は使わないことにした。

都道府県庁に寄る

せっかく日本一周をするのだから、ただ通りすぎるでは面白く無い。その都道府県に来たことの足あとを残す意味も込めて各都道府県庁を経由することにした。


日本一周計画

さて、先に述べたルールを元に計画を立てる。旅行の成功の可否は計画にかかっていると言っても過言ではない。計画さえ立ててしまえば後は行動するだけ。逆に言ってしまえば計画を立てるのが旅行の楽しみの6割を占めているというのが私の持論だ。

走行ルート

まずは走行ルートだ。都道府県庁に寄るため単純に国道を突っ切るだけでなく、ちょっと寄り道をすることになる。
例えば山形は日本海側だが、県庁所在地の山形市が山側にあるため、太平洋側を通過中に寄ったりしなければならない。
このような制約を考慮したうえで試行錯誤した結果、以下の様なルートを導き出した。



画像では判りにくいので、文字に起こすとこうなる。
 千葉→茨城→栃木→福島→山形→宮城→岩手→北海道→ 
→青森→秋田→新潟→群馬→埼玉→山梨→長野→富山→ 
→石川→福井→岐阜→滋賀→京都→鳥取→島根→福岡→ 
→佐賀→長崎→熊本→鹿児島→沖縄→宮崎→大分→山口→ 
→広島→愛媛→高知→徳島→香川→岡山→兵庫→大阪→ 
→和歌山→奈良→三重→愛知→静岡→神奈川→東京→千葉 
推定移動距離は約4500km

予算


何度も繰り返すが、時間はあるが金はない大学生。節約できる所はできるだけ節約しなければならない。

1日食費が1000円として 
1000円×20日=20000円 

宿泊費は車内泊の予定なので 
0円 

ガソリン代は 
(移動距離)÷(燃費)×(1㍑分のガソリン代)で計算して 
(4500km)÷(5km/㍑)×(145円)=130500円 

フェリー代は 
青森⇔北海道・・・12530円×2=25060円 
鹿児島⇔沖縄・・・12000円×2=24000円 

高速費は 
広島→愛媛(瀬戸内しまなみ海道)・・・4350円 
香川→岡山(瀬戸大橋)・・・・・・・・3500円 

という感じで、ざっくり見積もってトータル20万円ぐらいを予定した。



一旦のまとめ


という訳で、なかなか無茶な計画を立てているわけだが、時間があるある言っておきながら、実はバイトの都合で15日しか休めないのである。

つまり、単純計算で
4500km ÷ 15日 = 300km/d
1日300km、、、仮に時速60km/hで走るとすると
300km ÷ 60km/h = 5時間 
まぁ1日5時間なら余裕ですね。こりゃ空いた時間で観光とかもできちゃう完璧な計画!








そう、この計画を立てた時そう思っていた自分がいました。。。


続く

2015年12月8日火曜日

ひまかん Advent Calendar 8日目: WashRoute

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015

今日はOpen Hack Day Japan 2で作った WashRouteを紹介します


WashRouteとは

天気予報に応じて洗濯物をどう乾かすのが最適かを
乗換案内風に教えてくれるiOSアプリです。

アプリのソース:
https://github.com/himakan/washroute

さらに、雨振ってしまった時にアプリを使ってリモートで洗濯物の取り込みができます。
自分は主にこの洗濯物の取り込み部分を担当しました。

arduino と ソレノイド

アプリからhttpで通知を受け取り、洗濯物を移動させるサーバを作るのに arduinoとソレノイドを使いました。
もうどんな回路だったか忘れてしまいましたが、arduinoのピンの入力をひとつ受け、
その電圧差でソレノイドの電源を入れるだけという簡単なものです。

サーバからarduinoの操作にはFirmataというプロトコルを使いました
下記のライブラリをarduinoに入れておくと、USB経由でFirmataプロトコルを受信して各ピンの操作をすることができるようになります。

サーバからはpyFirmataというライブラリを使って
Firmataの命令を送るような構成になってます。


・・・とここまで、プログラムと回路を組むところは簡単だったんですが、
問題はここから・・・

洗濯物をなかなか取り込めない

ハンガーに掛かったシャツ等を移動させるのには思った以上にエネルギーが必要でした。
苦肉の策で思いついたのが、下記の動画のようにピタゴラスイッチ的なアプローチで洗濯物を動かす方法。

この動画では想定通り動いていますが、 ここにたどり着くまでが大変でした。
ほぼ夜通し調整に追われ、結果HackDayの時間の半分くらいはここに時間を費やしていた気がします。

IoTって難しい

ここ数年IoTの敷居が下がって流行っていますが、
僕らのような工作経験のあまりないプログラマにとっては難しい面もまだまだたくさんあるんだなと感じました。

2015年12月7日月曜日

ひまかん Advent Calendar 7日目: LINEスタンプの紹介

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015

LINEスタンプ「キウィバード」




LINEスタンプをいつか作ってみたいな〜と思いつつダラダラしている間に、以下の記事が目に入ってきたのが昨年秋のこと。

LINEクリエイターズスタンプ、1年経たずに分配金を30%削減へ 開発・運営費に充当

平たく言うと、「これまでは売上の50%を作者にあげてたけど、2015年2月1日以降に申請したスタンプに関しては35%しかあげないよ〜ん」という内容です。

これを見たワタクシ、ここでスタンプ作成しなかったらもう作ることはないだろう・・と一念発起、1/31までに2種類のスタンプを作成して申請することを決めました。

テーマと製作方法を決める

まずはどんなキャラクターでスタンプを描くか。
今回なるべく負担をかけずに制作したかったので、造形がシンプル(色塗りが楽ちん)というのを念頭において、キャラクターを決めました。

また、制作方法について。
スタンプの様なイラストを描く場合、以下の様な制作パターンが考えられます。
1. 手書きで描いたものをスキャナー等で取り込む
2. ペンタブレットで描く
3. ベジェ曲線を使って描く
今回はなるべく時間をかけずに40種類のイラストを制作したかったので、
1. 手書きで描いたものをスキャナーで取り込み、
色塗りのみペンタブレットで行いました。
手描き感を残した風合いにしたかったので、主線はあえて画用紙に鉛筆で描いています。




作業時間は累計して大体5時間くらいかかりました。

気になる売上は?

また後日紹介したいと思いますが、今回はもう1種類別のスタンプも同時に申請していて、2種類合計、2015/4/17にリリースしたので、そこから今までのトータルで以下の様な金額になっています。


大した額にはなっていませんが、一度作ってしまえばあとは放置で勝手に少しずつ売れていくので、作業量と比較するとまー悪く無いかな?といった感じです。

ちなみに、2種のスタンプでは↑上記のキウィバードより、次回紹介予定のもう1種類の方が売上は多めです。次回はそのあたりについてもお話したいと思います。

2015年12月6日日曜日

ひまかん Advent Calendar 6日目: 作業用BGM考察

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015

作業用BGM考察


技術系人間に作業用BGMは欠かせないものであります。
ここでは作業用BGM考察と題して、今年1年間を振り返りながら音楽配信系サービスの視聴活動を報告させていただきます。
なお自分は主にクラブミュージックを聴くため、マニア向けの内容となります。(๑´ڡ`๑)

定額系音楽配信


2015年の作業用BGMシーンでは一番盛り上がった分野ではないでしょうか。
自分も以下のサービスを一通り利用しました。(無料期間を)
  • AWA
  • LINE Music
  • スマホでUSEN
  • Apple Music
  • Google Play Music
  • Prime Music (Amazon)
まずAWAとLINE Musicを続けて利用しましたが、クラブ系のプレイリストがまだ少なく、どのプレイリストを開いてもEDMのビッグアンセムを堪能することができました。
またその頃スマホでUSENも試していたのですが、こちらはUSEN440などと同じくチャンネルを合わせて聴く形式です。
チャンネル数はかなり多く、往年のビッグアンセムを堪能することができました。(80年代ディスコの名曲とか・・)
次にApple、GooglePlay、Primeと利用しました。これらはプレイリストもあるけどアルバムやEP単位でも聴けたりライブラリに保存できたりと、機能も楽曲数も豊富です。
結局この3社なの?という感じでスタンダードになりそうです。
PrimeはAmazonの他サービスも利用できるのでお得ですね。
ちなみに自分は今Prime会員でApple Musicの月額課金も続けています。

ラジオ系


これは腐るほどあるので自分が主に聴いているものを挙げます。
結構前からありますが有名どころのDJがかけてる曲を聴けてお得なのと、番組によってはシーンの最新動向的な情報もわかって良いです。
こちらは最近出てきたサイトですが、J-CoreやJ-EDM界隈?の曲が流れています。(よくわかってないので勉強中です!)
個人的にかなり好みの曲がかかったりするので、リンクからレーベルなどのページに行って他の曲も聴いたりとかしています。

その他系


これも自分が主に聴いているものを
クラブミュージックの配信(販売)サイトです。一曲だいたい2分間試聴できるのですが、TOP100などをまとめて聴くと結構な時間垂れ流せます。
プレイヤーなどサイト全体の作り方も良いし、データの持ち方などエンジニア的に勉強になるサイトでもあります。
やっぱ作業用BGMといえばココだわー。近年はほんとに次々再生していくので良いですね。
PVやDJMixや「作業用BGM」動画など何でもあるし、レコメンドも強力なので色々発掘できます。言わずもがなって感じですが。

まとめ


自分が使っている音楽系のサービスを淡々と挙げましたが、思ったより色々なサービスを併用していることがわかってビックリしました・・
2016年の作業用BGMシーンがどうなるのか今から楽しみです。(๑´ڡ`๑)



2015年12月5日土曜日

ひまかん Advent Calendar 5日目: クエストスコープ

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015



クエストスコープ


Yahoo! JAPAN で開催されたハッカソンイベント、 Open Hack Day 3 で作った作品です。
Open Hack Day 3 チームページ

手軽にVRを楽しめるガジェットのハコスコを使って、スマホのカメラから見た景色をRPGのゲーム画面風にする、というアプリです。
具体的には

  • 映った人(=村人)の顔認識をする
  • そこから年齢や性別を測定
  • 性別や年齢で村人のメッセージが変わる
  • ランダムで村人ではなく敵と判定される
  • 声で呪文をかけたり
  • これらの画面をゲームっぽくビジュアライズ

残念ながら発表動画も発表資料も見つからず、アプリも最新のSDKではビルドできなかったので、具体的なイメージを何ひとつ見せることができません。。

顔認識にはReKognitionという顔認識サービスを使いました。顔の画像からその人物の年齢や性別を推定する機能があるAPIです。無料アカウントだとわりとすぐ制限に引っかかります。12/6現在は新規ユーザーの募集は止めているみたいです。精度もまあまあで、出力結果自体は面白かったのですが、外部APIで顔認識させるのはやっぱりパフォーマンスが気になりますね。特にVR系はじっと待ってるわけにはいかないので。

呪文などの音声コマンドにはオープンソースの音声認識ライブラリのJuliusを使いました。手抜きしようとしてiOS向けのラッパーライブラリを使うも、なかなかビルドが通らず、かなり時間を使ってしまいました。

今もし同じネタでやるならこんなことを盛り込みたいです。

  • Google Cloud Vision API使って顔でも物でも検知していろいろやりたい。
  • もっとファミコンっぽい画面作りをこだわりたい。例えば映像を輪郭検知してドット絵風に変換するみたいな。マインクラフト風な画面もよさそう。

今回はアイディアをうまく昇華させることができず、満足いく結果にはならなかったですね。次回また頑張ります。
あと、こういうまとめ記事はすぐ書いたほうがいいと思いました。24時間でやったことなんて半年も経つと全然思い出せないし、資料も見つからないし。

追記:
スライド見つかりました。

2015年12月4日金曜日

ひまかん Advent Calendar 4日目: ももクロランチャーZ

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015

ももクロランチャーZとは






Android端末向けのランチャーアプリです。2013年12月あたりに公開しました。
アプリ企画・開発は別の方で、イラストのみ作成しました。※その後リリースされた拡張パックのイラストは担当していません。


企画・開発はしていないので、実績はgooglePlay上での数値しか分からないですが、5000以上インストールされてる様です。

苦労した点・・


実はわたくしはももクロのファンではない!
のでまずメンバーの事を知るところから・・
イラストは企画者のこだわりでなんどもリテイクしました。

一番初期の頃のファイルがなかった・・
手元にあった中で一番古いのがこれ。テイストはアメーバピグを意識して主線なしで作成しています。


最終FIX版はこれ。かなこがエロ目になってたりする。


動きに合わせてこんだけパターン作りました。頑張ったな私。


アプリを作る時はレビューで高得点取ることがとっても重要になってくるので、ある程度利用してくれたユーザーに対して「よろしければ★5つつけてください、励みになります」というお願いを表示させると効果があります。
というわけで、お願いするももクロのイラストを描いたのがこちら。


これ最初は全員泣いてたんですが、「かなことあーりんは泣かない」「かなこは涙を堪えるが泣かない」という企画者のこだわりでリテイクしました。

イラストいっぱいかけてよかった


初めはももクロの事を殆ど知らなかった私ですが、各個人の持つ個性やキャラクターをヒアリング&調査しつつ、イラストを描くのは中々楽しかったです。
元々イラスト畑ではないので技術的には稚拙ですが、それなりに愛のこもった出来になったのではないかと?

機会があればまたこんなイラストも描いてみたいですねー。

2015年12月3日木曜日

ひまかん Advent Calendar 3日目: ぜんぶ雪のせいだ

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015


ぜんぶ雪のせいだとは



この画像のように、写真の上に縦書きでテキストを入れることのできるアプリです。
デフォルトのテキストは「ぜんぶ雪のせいだ。」が入っていますが、テキストは書き換えられるので、「全部俺のせいだ。」とか「全部金のせいだ。」みたいな大喜利のようなこともできます。

元ネタは、2013の冬にJR東日本に「ぜんぶ雪のせいだ」というコピーの広告が出回り、雪で交通機関が止まった時などにTwitterで流行っていたやつです。

「全部雪のせいだ」ツイートが吹き荒れすぎてて面白い! - NAVER まとめ

ちょうどその頃に友人たちと雪山に行きました。リフトに乗り山の頂上で、みんなで「そうだ雪のせいだごっこをしよう」となり、その時に「縦書きの文字を入れられるiPhoneアプリ」を探してもベストなものがなかった、というのが開発のきっかけになります。


開発について


雪山から帰ってきた翌日1日で開発しました。
オリジナルのポスターのフォントが少し斜めになっているので、1文字ずつ斜体加工をかけて調整しています。そこが一番苦労したかな。

現在は、おこメーカーと同じく、Appleのお布施を更新しなかったことにより、App Storeから削除されています。
残念ながら、ソースコードがどっかいったため再公開も不可能です(笑)
まあこれも流行りものですし、今はJRのコピーも変わっているのでこのままクローズでよかったと思っています。

とりあえずJRに訴えられないでよかったw

2015年12月2日水曜日

ひまかん Advent Calendar 2日目: FaceTracking Effector

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015


もう昨年のこととなりますが、webmusic hackathonでの作品
「FaceTracking Effector」についてご紹介します。

2014に行われたwebmusic hackathonについてはこちら:
http://googledevjp.blogspot.jp/2014/08/web-music-3.html

FaceTracking Effectorとは


ウェブブラウザのみで
  1. webカメラに写っている顔の位置を検出
  2. 顔の位置に応じて音楽にエフェクトをかけて再生する
ということができるwebアプリケーションです。

webカメラの付いたPCで、Chrome/Firefox等の最新のブラウザであれば
こちらのURLから遊ぶことができます。
https://himakan.github.io/facetracking-effector/


顔の位置とエフェクトは下記のように対応しています。
  • 顔とカメラとの距離: 再生速度
  • 顔のXY座標: フィルタのカットオフ値とQ値



デモ動画


更におまけで、顔の位置をMIDI出力する機能もあります。
デモ動画ではKaossPad3を繋いで、さらにぐちゃぐちゃエフェクトをかけています。

細かい仕様

以下でもうちょっと突っ込んだ内容を説明します。

使用技術

  • WebRTC (webカメラ画像の入力)
  • WebAudio (BGMの再生、フィルタ+再生速度の変更)
  • WebMIDI (MIDI出力)
ちなみに、WebMIDIは作成当時はChromeでβ実装でしたが、
今年正式にサポートされるようになりました。
専用ソフトを持っていなくても、ブラウザとwebアプリケーションだけでMIDI機器を操作できる時代の到来です。

ライブラリ

headtrackr

顔の認識とXYZ軸や傾きを取ることが出来るJSのライブラリです。
kinect等の震度が取れるようなデバイスがなくても、
カメラだけで奥行きを取得できる点には驚きました。


webアプリの良い所は、特別なソフトや機材無しに誰でも使えるところが良い所だと個人的には思っています。
従来はこのアプリと同じようなことをやろうと思ったら、
専用アプリをインストールしてもらって動かしてもらうしか方法がなかったはずです。
今回このアプリの開発を通じて、webアプリだけでやれることはまだまだ沢山あるんだなと思いました。




2015年12月1日火曜日

ひまかん Advent Calendar 1日目: おこメーカー

技術系集団であるひまかんがこれまでに作ってきた作品の紹介や、技術ネタ、ライフハックなど、ノンジャンルな記事を埋めていくアドベントカレンダーです。
ひまかん Advent Calendar 2015

すでに1日遅れちゃってますが書きます。



おこメーカーとは


2013年の春にネット上に「激おこプンプン丸」という言葉が流行り、怒り具合によって変わる顔の変化の様子を6枚の写真で表すという画像が流行りました。

【激おこ】Twitterで増殖中!おこ顔のネタ画像【激おこぷんぷん丸】 - NAVER まとめ

流行に疎い僕は最初なんのことか分からずスルーしていたのですが、当時の同僚のitohamu氏がアプリのアイディアを提供してくれ、簡単にできそうで、かつアプリ開発の勉強になりそうだと思い、開発に着手しました。

だいたい1週間ぐらいで開発完了したので、身内で公開したらそれなりにウケたので、さっそくリリースしてひっそりと楽しんでいました。これは僕が個人で初めて出したiPhoneアプリですが、周りの地味な宣伝活動?のおかげか、じわじわとユーザーも伸び続け、いくつかのメディアに取り上げて頂きました。




ちなみに、今年のAppleへのお布施の更新を滞らせてしまったために、現在はApp Storeから削除されています。(毎年払わないと削除されるんですね!)
もともとiOS6の時に作っていたものでiOS7対応ぐらいまではやりましたが、流行りものでこれ以上メンテする気もなかったので、とりあえずこういう形でクローズでもよいかなと思っています。

実績


せっかくですので、アプリとしての実績を公開したいと思います。
セッション数はこんな感じで、一番多い時のDAUは600ぐらいですね。
ていうか最近まで起動している人がいてびっくり。。


その他いくつかの実績値です。
  • 合計ユニークユーザー数: 9,751
  • 作った画像の保存数: 8,552
  • 作った画像のTwitterシェア数: 182
  • 作った画像のFacebookシェア数: 37
Twitter、Facebook へのアプリからのシェア数は全然伸びなかったですね。やっぱりLINEとかに仲間内で見せ合うニーズのほうが高いのでしょうか。LINEボタンも置けばよかった。

また、Apple の iAdも入れていたのですが、いま口座の入出金明細を確認したら3,253円ほど振り込まれていました。お布施が当時で8,500円ぐらいでしたので、まったく元は取れておりません。

しかし、アプリの開発に加え、Appleの審査の進め方、利益の生み出し方、メディア露出のさせ方、集計値の取り方などいろいろとよい勉強になりました。