ErgoDox入門しました

ErgoDoxを買いました、ではなく入門しました…買ったんだけど、買ってからが色々あると言うことで入門というのが、ぴったりくる感じのマニアックなキーボードです。

きっかけはこちら
http://nippondanji.blogspot.jp/2016/01/ergodox.html
↑なにソレ?という人向けの説明と写真があります。

これまで普通のキーボード二台を並べて使うことでセパレート式キーボードの代わりにしていましたが、これでちゃんと(?)できるようになりました!

まとめて買えるところ

ハードウェアもオープンソースなので調べればバラバラにパーツを調達できますが、ポーランドの会社では一式まとめて売ってくれます。有料で組み立てサービスもあるのでハンダ付けとかしたくない私のような人でも安心です。

http://www.falbatech.pl/
※発注から1週間くらいで届きました。

キーキャップのこと

ところが残念ながら、キーキャップ(キーボードに付いているボタンのパーツです)が売り切れていたので、ちょっと調べたら、日本のメーカーでもキーキャップだけ売っていました。

http://www.diatec.co.jp/shop/list.php?cate_c=1&subcate_sq=12

  • Felbatechで売っているのはCherryMX互換のスィッチなので、CherryMX互換のキーキャップを使えます。(日本で売っているキーキャップはほとんどコレです)
  • 発注から3日くらいで届きます。
  • Amazonでも「交換用キーキャップ」で検索すると幾つかあります。値段もほとんど同じですが、届くのはAmazonのほうが速い。

キーキャップのセットには、大きく英語配列、日本語配列の2種類があります。普段は日本語配列のキーボードを使っていたのですが、ErgoDoxのデフォルトは英語配列なので、この際英語配列のものを使うことにしました。

ヨシこれで完成できるか?と思いきや、ErgoDoxの一部のキーは一般的なキーボードのキーキャップと大きさが違いました。普通のキーキャップセットを買うと、ErgoDoxで必要なキーキャップのうち、下記2番目と3番目のものが足りません。

  • 1x が60個 : 一般的なキーボードにも付いている普通の小さいキー
  • 1.5x が12個 : 一般的なキーボードのTabキーの大きさ
  • 2.0x が4個 : 一般的なキーボードにはついて無い大きさ

上記の数字xというのは、キーキャップの大きさの表記で、キーキャップだけを売っている海外サイトでは、このような表記方法が使われていました。

いろいろ探したところ、この記事を書いている現在で1.5x, 2.0xのキーをバラ売りで買えるところは、ここしか見つかりませんでした。

http://pimpmykeyboard.com/
※発注して納品待ち…。

今まであまり気にした事は無かったのですが、販売サイトを見ているとキーキャップには種類が色々あるようなので、買うときに注意したこと、失敗して学んだことを書いておきます。

  • 下部:
    最初のほうに書いたCherryMX互換というのは、キーキャップの底面側で土台となるキースィッチとくっつくための規格です。CherryMXというのは機械式/メカニカルと呼ばれる深いキータッチのスィッチの一つ。CherryMXには茶軸とか赤軸とか、軸の色によって押し込んだときのクリック感が違いますが、キーキャップとの接合部分は同じなので、キーキャップを買うときには軸色までは気にしなくて良いです。
  • 専有面積:
    上から見たときの大きさです。

    • キーボード上のスィッチの配置に合わせて隣のキーと干渉しないようにするために考慮しなければなりません。
    • 小さければ一応大丈夫なので全部1xにすることも可能です(格好悪いけど使えないことは無い)。
    • ちゃんとしたいなら、ErgoDoxでは1xが60個、1.5xが12個、2.0xが4個必要。
    • 1xは一般的なキーキャップセットに入っているモノだけで”数”は足ります。ただし刻印が邪魔になることが多いので、もしセットになっているものを買うなら無刻印のものが良いと思います。
  •  上部形状:
    高さ、傾斜が調整されているかどうか、上面がへこんでいるのか平面なのか等でDCS, DSA, SA, LP, KTという種類があるようです。

    • それぞれどう違うかは、http://www.keycapsdirect.com/key-caps.php が参考になります。特にDCSとSAは、行(ROW)によって上面部分の確度が違うので、ちゃんと調べてから買わないと打ちにくいキーボードになりそう。
    • pimpmykeyboardではDCS、DSA、SAのほかにG20という角丸なやつも売ってます。
    • diatecで売っているMajestouch交換用キーキャップセットはDCS(行毎に微妙に傾斜が調整されているタイプ)です。無刻印のモノは混ざらないようにきっちり保管しておかないと後で困ったことになりますよ…。
  • 刻印:
    • 刻印有りの場合、英語配列と日本語配列で微妙に違います(数字キーShift入力の記号とか)
    • ErgoDoxでは、各キーにレイヤ(後述するモードみたいな概念)別に異なる入力を自由に割当できるし、頻繁に変更したくなるし、一部大きさが違うキーに普通の記号とかを割り当てざるを得ないしで、結局は無刻印が相性が良さそうです。

レイアウトのカスタマイズについて

ErgoDoxには、レイヤという概念があって、レイヤ毎に全く異なるキー配置を割当てる事が出来るようになっています。レイヤを切り替えるボタン(特定キーを押しているだけ特定レイヤにするとか、トグルさせるとか)も自由にレイアウトできます。
当初はデフォルトで良いか、と思ってたのですが、使い始めるとすぐに色々変えたくなってきたのでカスタマイズにもチャレンジしました。

キー配置をカスタマイズするには、以下の手順で。

  1. hexファイルを作る
    大きく以下の2種類の方法があります。

    1. https://keyboard-configurator.massdrop.com/ext/ergodox
      のようなサイトで作る。このサイトではhexファイルを作るだけじゃ無くて、そのソースコードをダウンロードすることも可能です。ざっくりこのサイトで設定してから細かいところはコードで書く、というのも出来そう。
    2. 自分で書いたり変更したりしたソースコードをコンパイルする
      (今のところやったことないけど、マクロ的なことを実現するには必要になりそう)
  2. ErgoDoxに搭載されている基盤(Teensy)にアップロードする。
    パソコンにTeensy Loaderというアプリ(Windows用, Mac用もあります)をインストールして、このアプリ経由でhexファイルをキーボード上の基盤にアップロードします。パソコンと基盤との接続は、普通にキーボードとして使っている時のUSB接続のままでOKです。

    1. ErgoDoxに割り当ててあるTeensyキーを押してプログラムモードにする
      ※このボタンの割当を無くさないこと。キーボード本体を開けないと割当変更できなくなります
    2. TeensyLoaderでhexファイルを開く
    3. メニューからProgram、Rebootする

プログラミング言語によってよく使う記号が結構違うので、http;//typing.io で試し打ちしながら調整しています。このサイトでは、各プログラミング言語のオープンソースのソースコードをお手本にタイピング練習が出来ます。コメント部分はスキップされるのが残念だけど、調整するときの試し打ちにはお薦めです。

最後に、レイアウト関連で色々試してみて気づいたことを書いておきます。

  • セミコロンとコロン
    文末にセミコロンが必要なJavaとかでは必須。英語配列が便利です。
  • バックスラッシュ
    正規表現と文字列リテラルのエスケープくらいかな。Windowsじゃない人はホームポジションから遠くても良いかも。(Windowsだとファイルパスを書く時によく使う)
  • ドルマーク:
    最近はjQueryで多用するのでホームポジションに近い方が良いかも。
  • ファンクションキーを置くレイヤ
    IDEのショートカットキーで組み合わせることの多いShift, Alt, Ctrl, Command(Mac), Enter, 矢印なんかも同じレイヤに配置する必要あり。これ以外のレイヤにも極力おいたほうが良さそう。
  • 矢印キー:
    パっと手が届くけど、誤爆しないかつ、4個まとめておけるところなんてありません。右下に置いて手触りの違うキーキャップにしました。
    サイズ Cherry MX軸対応 交換用キーキャップすべらないWASD MXKC-WASD

以上、皆様の良いセパレート式キーボードライフの参考になれば幸いです。

後日談:
キーキャップを何度も付け替えたりしてたのがまずかったのか、 右親指キーが隣にある他のキー押下で一緒に(押してないのに)反応する事態に。そこのキーは割当無しにして他のキーに割り当てし直すというErgoDoxでしか出来ない対応で凌ぎましたがやっぱり不便なのでErgoDoxEZというKickstarterか何かの製品を買うことにしました。
ErgoDoxEZは無刻印ですが今使っているレイアウトにも慣れてきたのでキーキャップを触ることもあんまりなさそうです。また壊れたらイヤだしね…。

更に後日談:
ErgoDoxEZもチャタリングするようになってしまい、キースィッチの中身を交換したもののあまり改善せず…。1年もたないとはね…。以前KickStarterかなんかで予約したKeyboard.IOが出荷されるのは未だ先だし、未経験からのハンダ付けスキル獲得も腰が重いし、もう一個ErgoDoxEZを買ってもすぐにチャタリングしそうだし、ということで、変キーボード老舗のKINESISが出しているセパレート式のやつを買うことにしました。
英語配列Mac版を日本発送で売ってくれる素晴らしい企業様はこちらです。

株式会社エジクン技研
http://www.edikun.co.jp/kinesis/freestyle.htm

親指のところにスペースキーしか無いのが寂しいけど、Keyboard.IO が来るまでの辛抱かな。

家族向けの写真共有サービス:リリース後の振り返り

先日、半年ちょっとかけて開発していた家族向けの写真共有サービスをリリースしました。スクラッチで開発して起ち上げまで経験出来たので、忘れないうちに書き留めておきます。

なぜ作ったか

予め共有先を設定しておいて、後は撮影するだけで共有できるサービスとして作りました。

既存の写真共有サービスは、先ず撮影してから、次に共有先を選択するようになってるけれど、撮影するときは体験するのに忙しい事が多いです。例えば、子どもがご機嫌で遊んでたり、歌っていたり、おいしそうな料理を撮影したとき、それを横目にスマートフォンに気を取られたくない、ですよね。

そうすると、共有する操作は後回しになってしまって、また次の写真を撮ったりとか、別の用事があったりとか、単に忘れてしまったりとかします。撮影する瞬間は「後で誰かに見せよう」と思っていたにも関わらず、そのままSDカードの肥やしになる悲しさ。

これを解決するには、共有先を先に選択しておくのが一番確実です。とはいえ、共有先の選択操作に手間がかかってしまうと意味がないので、今回は家族向けと言うことで、共有先を固定してしまい、一度設定したら二度と設定しなくていいようにしました。

学んだこと

コンセプト重要

恥ずかしながら、開発開始時、コンセプトがちゃんと固まって無くて/意思疎通できてなくて、必要な機能セットが増えたり減ったりしていました。全体でみても予算的に結構痛かったです。コンセプト→機能セット、名前、グラフィックデザインという順で考えないといけない、ということが身にしみました。

少しでも複雑なデータ構成のものを作るならPaaSかIaaSが必要

データをユーザ間で共有するための招待・承認手続きの権限管理を、MBaaS に搭載されている機能を使って実現しようとすると、招待・承認手続きが長くなってしまうのを避けられませんでした。MBaaS を使って結構開発を進めていたのですが、細かい権限制御がどうしてもやりにくくて結局PaaSに移行しました。

サービス価格設計の難しさ

多分、PaaS も MBaaS も同じだと思いますが、CPU使用料、データ保管料、転送量などの従量課金をきっちり計算しながら価格設計しないと、事業として収益性を確保できません。今回開発したサービスで一番キツかったのがデータ転送量(Outbound)です。データ保管料とかはかなり安いんですが、それを全部転送する前提だと結構負担になります。こういうのを細かく計算してシミュレーションした上で価格設定しないと、「ユーザが増えれば増えるほど赤字になる」サービスになってしまうので何日も計算してExcelシートとにらめっこする日々を過ごしました。

Android の Fragment が微妙

いろいろカプセル化しつつ共通化できて良い、と言われているFragment ですが、今回のアプリでは要らなかったな、と思いました。
当初は「この機会に覚えるか」と思って取り入れてみたのですが、デバッグを進めるウチに非同期処理と相性の悪さを解決するためにイベントバス等の新しいアーキテクチャを取り入れるしかない、という状態になってしまい、途中で全部Activityベースにリファクタリングしました。

IntelliJ IDEA

GoogleがおすすめするAndroidアプリ開発環境が Android Studio になったので、メインのIDEを Eclipse から IntelliJ IDEA に宗旨替えしました。色々便利ですが慣れるまでは結構大変でした。キーバインドと、プロジェクトのディレクトリ構成が全然違うので、最初2週間くらいが特に苦しかったです。

今更ながらBootstrap便利

今回、自分でWEBサイト(LandingPage)を作る事になったので、Googleで調べつつBootstrapを使ってみました。Bootstrapの使い方だけではなく、レスポンシブ対応ってこういうことなのか、とか、floatの挙動(実は今まで勘違いしていた事が判明)といった超基本的なことも勉強できて良かったです。

hostsとApacheのVirtualHost、Arias が便利だった

一時的にローカルで2種類のWEBサイトを制作しつつ、2種類のWEBアプリも触っていた時期がありました。普通に全部localhostでやってると色々混乱するのですが、hostsファイルで必要なだけローカルドメインを適当に定義して、それらのドメインごとにApacheのVirtualHost(名前ベース)を立てて、WEBアプリから参照する静的コンテンツなんかはAriasで対応して、というふうに整理してやることを覚えました。また少しWEB開発者っぽくなったかも。

B2C のユーザ獲得の難しさ

一応、GoogleAnalytics とか入れてますが、広告にはほとんどリソースを割いていないので「こんなにも見てもらえないものなのか」というのを日々実感しています。
一応、Facebook広告をほんの少しだけ試してみて良さそうだったので、今後は、広告の作り方なんかも勉強して効率的にユーザを獲得していきたいなと思いました。

今後チャレンジしたいこと

  • KotlinでAndroidアプリ開発
    なんか自分好みな気がするので使ってみたい。
  • Event Bus を使って、クラウド連携するAndroidアプリ開発を楽にする
    非同期コードがどんどん増えてくるので、これまで長い間育ててきたAsyncTask拡張フレームワークを使ってたのですが、OSにライフサイクルを支配されるActivityやFragmentを見失いやすいという問題があるので、スッキリ書けてそういった問題も解決されるというEvent Bus を試してみたい。
  • Swift / iOSアプリ
    いい加減やらないと…。

FlipBoard風のUIを実現するViewPager

FlipBoardのUI、話題になってた時に、なぜかどこかで静止画で見て「どこが良いん」と思ってました。最近になって実際に使ってみると「気持ちいーなー」に感想が変わったので、自分のアプリにも取り入れたくなったのですが、探してもやり方が見つかりませんでした。

いろいろ考えた挙げ句、サポートライブラリのViewPagerをコピペしたら簡単に出来るんじゃないかと思いついて、試行錯誤してなんとか出来たので公開します。

全コードとサンプルコードはこちら。
https://github.com/mkt-tokoi/FlipViewPager

基本的にViewPagerの丸パクリで、3000行あるうちの300行弱(コメントアウトしたデバッグコードとか込みです…)しか書き足していません。

ViewPagerが子View(ページ?)の管理をやってくれてるので、描画のところ(#draw(Canvas))だけいじくって、ページ捲りエフェクトを上書きしています(#drawFlippingPage(Canvas))。

ページ捲りエフェクトは、現在ページ左半分と次ページ右半分を画面左側・右側に半分ずつdrawBitmapで描画した後、現在ページ右半分もしくは次ページ左半分を、drawBitmapMeshで変形して描画してます。この変形用メッシュ座標のロジックがややこしかった…。画面右側と左側とで一般化しようとすると気絶しそうだったので、ベタな書き方になってます…というか今から読み返してもすでに訳が分からない(笑

この調子で頑張れば、Google Play Bookのページ捲りエフェクト(ページが”たわむ”やつ)も同様に実現できそうですが、個人的にあんまり気持ちよくないのでやってません。こっちのほうがリアルなのに不思議…。リアル=気持ち良い とは限らない実例ですね。

GiftBookというアプリを作りました

下手な文章よりJavaでコードを書いた方が誰かの役に立つでしょう、と思って、もう2年もブログとか書かずに、せっせとAndroidアプリを作ったりしていました。

ここ3週間くらいでは、MashupAward9というコンテストに応募するために、チーム「TripleT」でGiftBookというアプリを作っていました。コンテストのプレイベントで「ブログとか紹介ページがあると良いよ」と聞いたので、作るときにこだわったところなんかを書いておきたいと思います。

お祝いを贈る人のジレンマ

30歳前後から、周りのいろんな人の御祝いごとをする機会が増えてきます。結婚だとか出産だとか七五三だとか転職だとか昇進だとか引っ越しだとか新築だとか開店・開業だとか…。
そういうとき私も「めでたいなー!何かを御祝いさせてくれ」と思うのですが、現金だとアレですし、こっちの勝手で大きなモノとか贈ってありがた迷惑だとか邪魔だとか思われたら悲しいし、何が欲しい?なんて直接聞いてみても遠慮されたりしてかえってややこしかったりと難しいものです。
良い感じにオトナになってくると「無難に商品券だよねー」とささっと包んでしまえるのかと想像しますが、もらう方の立場で考えてみれば「それだったら現金のが良くないか」(どこでも使えるし)とか思わないだろうか、とかよせば良いのに私は悩んでしまいます。

そんなジレンマを解決するためにAmazonには(というか欧米では?)ウィッシュリストという機能(文化?)があります。自分の欲しいものを登録・公開しておくと、何かくれたい人がそこから選んで買ってくれるというアレです。
しかしながら日本では、みなさま奥ゆかしいので、常日頃からそういう”あけっぴろげ”なリストなんて公開するのはこっ恥ずかしいのでしょうか、公開している人はかなり少数派のようです。

そこで、カタログギフトというのが結婚式の引き出物なんかでもてはやされるわけですね。あれだと贈る方としては大凡これくらいの値段の中から、好きなのを選んでよ、と提示しつつ、贈られる方としても「ほー、そういえば自分では買わないけど、これ欲しかったなぁ」なんてパラパラ見ながら欲しいものをもらえて、みんなハッピーです。

でも…例えば職場の内輪の送別会なんかでカタログギフトとか渡さないです。見栄えしないし、盛り上がりに欠ける、むしろ若干もりさがるという点では商品券なんかと大差ありません。せっかく送別会のイベントとして、何か贈るんだったら一瞬でも盛り上がる方が良いじゃないですか。かといってネタに走って滑ったら目も当てられません。

そのような、ニッチですが切実な問題を解決するのがこのアプリなのです。

こちらが提示した候補の中から、相手が選んだ商品を手渡しできる

このアプリは、楽天市場(アプリ)、メールと連携しながら、上記の問題を解決できるようになっています。実際にプレゼントを手渡すまでにステップが幾つもあるので、順を追って説明しましょう。

  1.  思い立った人が「ギフト・プロジェクト」を立ち上げる(以下、この人のことを贈る人代表と書きます)。
  2. 贈る人代表は、メールで有志を募ることが出来ます。
    メールを受け取って「参加しようじゃないか」と思った人(以下、有志と書きます)は、アプリをダウンロードしてメールに記載されている「プロジェクト・コード」を入力します。
  3. 贈る人代表と他の有志は、楽天市場アプリで、これでどうだ、という候補アイテムを探してアプリに登録します。(楽天市場アプリの「友達にすすめる」機能で、アプリに簡単に連携します)
  4. 候補アイテムのタイトルや説明を自分で編集できるだけでなく、他の有志が登録したアイテムにコメントをつけたりすることができます。
  5. 良い感じに候補アイテムが集まってきたら、贈る人代表から御祝いされる人(以下、受け取る人と書きます)にメールします。
  6. 受け取る人は、アプリをダウンロードしてメールに記載されている「ブック・コード」を入力すると、有志が選んだアイテムから好きなモノをチョイスできます。
  7. 受け取る人は、コメントなんかを楽しんで読みつつ、好きなものを(有志の予算内で)複数えらぶことができます。このとき、有志の予算が幾らだとか、各品物がそれぞれ幾らなのかなんて野暮な情報は、アプリに表示されません。いかにして予算内におさまるように選択するのかというと、謎のゲージを見るようになっています。このゲージは、アイテムを選択するとその価格に応じて上昇するようになっていて、同時に予算の上限・下限におさまっているかどうかだけが分かるようになっています。(もちろん目盛り表示はありません)
  8. 受け取る人がゲージの上がり下がりの”やりくり”を楽しみつつ、予算範囲内にアイテムを絞り込むことができたら、ボタンを押して贈る人代表に連絡します。
  9. 贈る人代表は、選択された結果を確認して、楽天市場からプレゼントを購入して、来たるべき贈答イベントのときに手渡しするわけです。 ※このとき、有志一同には贈答イベント当日まで内容を知らせない方が、盛り上がったりするかも知れません。

こだわりポイント

上記説明と重なるところもありますが、こだわったポイントを書いておきます。

  • (スクショ:左)
    各ユーザ(贈る側・受け取る側)が、何をすれば良いのか、順を追って画面で説明するようになっています。
    実際に1ユーザが目にするのは5〜10枚程度ですが、全体で30枚くらいのガイダンス画面を組み合わせて立場や段階に応じてきめ細かくサポートしています。
    v1.3からは、FlipBoard風のトランジションを入れました。(このエフェクトを実現しているAndroidアプリはかなり少ないんじゃないかな…)
  • (スクショ:中央)
    さまざまな楽天アイテムへ対応しています。
    楽天市場アプリでは、通常の出展者商品の他に、楽天Booksやゲーム、DVDなど様々な商品を紹介しています。内部的にはこれらの商品種類ごとに取り扱い方が異なっているので個別に対応していますが、ユーザから見ると「友達にすすめる」ボタンからアプリに連携するだけというシンプルなユーザインタフェースになっています。
  • (スクショ:右)
    ブック画面(各プレゼント・アイテムの説明画面)の操作性・機能性にこだわりました。商品写真を大きく表示してしまうと、説明文やコメントの影が薄くなってしまいがちですが、このアプリでは有志ユーザが書き込んだ文章があってこそ「気持ち」を贈れるという哲学から、縦スクロールすることで商品写真よりも「手前」に説明文等を表示するようになっています。
    このときのエフェクトにもこだわっているので、ぜひ動画(できれば実物)でご覧ください。
ダウンロードはこちらからお願いします。

こんなプログラミング勉強会をやりたい。

ブログを引越ししたら、下書きのままになったメモが出てきた。今読んでも未だやりたかったので、残しておこう。


プログラミングって作文ぽい。
自然言語より厳格な文法だけど、一応言語だし、自由なところも多くあって書き手の個性が出る。文学的にすることだって出来る。プログラムを読むと「こいつは、面倒くさがりで、ちょっとだらしないなぁ」とか「おー、ここは頑張ったけど、最後はどうでもよくなったか…」とか「コツコツ真面目にやるタイプだ」とか感じる。

最近、文章教室の本をたくさん読んだ。作文技術を磨く人はこんなことをやってるのか…こういうのってプログラミングでも使えるのかも、と思った。

というわけで、こんな勉強会をやりたい。

人数は数人から多くても十人くらいまで。
各回、以下のように進める。

  1. 前回の感想の配布。
  2. スピーカから前回課題テーマについての簡単な説明。
  3. 前回最後に提示し提出された課題ブログラムの紹介と講評。
  4. 今回課題でつかうテーマについて講義。
    テーマ案
    1. 命名
    2. クラスの抽象化
    3. 文字コード
    4. 静的解析ツールの指摘事項と対応方法
    5. junitでなぜテストするのか
    6. junitでデータベースのテスト
  5. 今回課題テーマの説明。
  6. 感想文の回収。

photo: AttributionNoncommercialNo Derivative Works Some rights reserved by jjpacres

Androidアプリ設計の難しさにようやく気づいた

社内コンペにAndroidアプリを応募しようと思い、ぼちぼち開発を始めました。

Android端末って使い勝手が悪いと思ってます。タッチパネルってそんなに感度・精度が良くないし、CPUの性能もそんなに高くなくてもっさりしてるし、ネットワーク通信だって光回線に常時接続されたデスクトップ環境があたりまえの感覚からするとイライラする遅さです。

これって「踊る熊」な感じです。「 踊る熊」っていうのは、書籍「コンピューターは難しすぎて使えない」の言葉。もし熊が踊ってたら、誰もそのぎこちなさなんて気にしないで見に集まってくる。コンピューターであんなことが出来る!というだけで人々はそれを使おうとするけど、踊ってるのは熊だから色々ぎこちない、ということのたとえ話として書かれていました。

モバイルであんなことやこんなことが出来るのなら、ちょっとくらい使いにくくても、使いたがる人がたくさんいる、まさに今はそういう状況でしょう。でも、そんな状態で開発者が満足していてはいけないと思う。

今回、AndroidアプリのUIを自分で真面目に設計しかけて、やっと気づきました。

こういう制約をちゃんと乗り越えるのって難しい。でも乗り越えたい。みるみるハードウェア側で解決されていきそうだけど、それでも。

ISBNから本のタイトルを取得する

android 
作りたいAndroidアプリがあって、ISBNから本のタイトルを取得するWEB-APIを探した。

以前使ったことがあるAmazonのWEB-APIを使おうかと思って、以前はずいぶん色々面倒だったけど今は改善されてるかなと思いながら探してみたのだけれど、他のいろいろなAPIばっかり案内されて迷子になったので保留。(そういえば昔使ったときもドキュメンテーションが分かりにくかったのを思い出した)

適当に他のをぐぐってたらGoogleBookSearchというのがいつの間にか出来ていて驚いた。詳しく見てないけどブクログみたいなソーシャルサービスっぽいのもあって、これもWEB-APIで操作できるらしい。リファレンスを検索してみると、ISBNから本の情報を取得できるっぽかったので取りあえずそのままリファレンスを読みつつクライアント用のソースコードをダウンロードをしてみる。やっと終わったと思ったらファイルサイズが10Mくらいあって面倒そうな感じがしたので、解凍する前にこれはパスした。

さらにぐぐってたら、楽天ブックスが提供するWEB-APIがあった。これはrest形式で取得できるらしいのでクライアント側をシンプルにできそうだと判断して試用。リファレンスを読んで、試してみたらとりあえず目的は達成できそうな感じだったので本採用。

こうしてブログに書いてみると「っぽい」とか多くて大丈夫か自分、と我ながら気になったものの、趣味なんだから構わなということにして実装続行。

photo:AttributionNoncommercialShare Alike Some rights reserved by Saad Irfan

日記。情熱を探す、体調不良

ずいぶんと長い間更新していなかったので、と書きかけて気づきましたが関係ないですね。でも今日は日記的なことを書きます。

情熱を探す

「ざこば・鶴瓶らくごのご」という番組で、桂ざこばさんが、自分の即興より鶴瓶さんのが良かったといって悔し泣きしたという話を読んだ。

泣くのは"たとえ"だけど、負けたら悔しくて泣けるくらいの何か、持っていたい。

そういえば、プログラマの採用面接では、「情熱を探す」と良いというようなことをJoel Spolskyさんも書いていた。明後日は新卒の人の面接官の一人をやることになったので、心に留めておこう。

体調不良

正月休み後半で、ちょっと体調を崩していましたが、奥さんの言うとおりにしていたら治った。ありがたや。

最近、ちょっと食べ過ぎただけで体調を崩しやすくなった。以前は3食くらい食べ過ぎると体調不良になっていたが、最近は2食でアウトな感じがする。これも奥さん曰く、筋肉が少なくなったせい。筋トレは続かないのでバドミントンをする曜日を増やそうか。もう一つサークルを立ち上げるしかないかな。

低カロリーでお腹が膨れて手も汚れない素晴らしいおやつ

最近はまっています。
低カロリーでお腹が膨れて手も汚れない素晴らしいおやつ。
私がオフィスでずっともぐもぐしているのは…

噛むカムこんにゃく!

見た目はあんまり良くないですが美味しいです。味は3種類。ビーフ味、ホタテ味、カレー味。


お試し用サイズ
の他にお徳用サイズもあります。