【読書メモ】ワーク・シフト ─孤独と貧困から自由になる働き方の未来図<2025>

休暇中の課題図書を読む。エンジニア向けに書かれたものではないが、シリアルスペシャリストを目指せ、というメッセージはエンジニアの考え方と相性が良い。(もちろん書いてある全てを鵜呑みにすべきではないけれど)

「ある技能が他の技能より高い価値を持つということはどういう場合なのか」という抽象的な切り口は、普段の私は思いつかないので思考を深くするいい機会だった。

AccountManager と Self-Issued OP は共存するのか(しない)

経緯

前職の後輩より、AndroidでのAccountManagerの実装について問い合わせを受けました。詳細を確認したところ、「スマホアプリで認証連携を検討した際に、OpenIDのSelf-Issued OPを使いたいとの要件があるため、秘密鍵の管理をAccountManagerでやりたい」という趣旨でしたので、ちょっと調べてみました。

はて、

そもそも、「秘密鍵管理する」ということはどういうことか?これは OpenID の Self-Issued OP の仕組みに起因しています。Self-Issued OPについて誤解を恐れず非常にざっくり説明すると、「OpenID の管理をスマホ内に入れて、そこから他のアプリやブラウザからのログインなり何なりを認可連携させる仕組み」です。イメージとしては、OpenIDを管理するアプリを入れ、そこにログインだけしておけば、他のアプリやブラウザからのログインはOpenID経由と同じ仕組でアプリ内ですべてまとめてやってくれる、という仕組になります。GoogleとかYahooとかに頼らなくても、IDプロバイダからは独立してスマホ内でアカウントを管理するということです。

一方、AccountManagerは、Android内にアプリのID/Password/Tokenを比較的安全に保存し、他のアプリに認証サービスを提供するためのものです。

どっちも同じようなもの?それになんか便利そう?

いやいや、結局のところ、このSelf-Issued OPのアプリを解析されたら認証・認可の機能を乗っ取られかねません。保存すべき秘密鍵はどう管理するのか、root取られたらどうするのか、、、。
では、AccountManagerで秘密鍵などを管理させたら?というのがこの問い合わせに至った、という経緯なわけで。

そもそも求めている状態は何か?

Self-Issued OPアプリと、それを利用するRPのアプリが同一パブリッシャーの場合は、Self-Issued OPなんて面倒なことをやらないで、共通アカウントをAccoutMangaerに格納するほうが現実的じゃないかと。そこがパブリッシャーの場合はAccountManagerは使えないですが、だからといって Self Issued-OP を独自アプリに採用するのはちょっと、、、という感じですね。OSレベルでの実装であれば使い勝手も良くなるとは思いますが。
というわけで、OpenIDを使いたいという気持ちはわかるものの、今のSelf Issued-OPの仕組に乗っかるのはセキュリティ的に気になります。アプリが同一署名である必要がある、という制限がありますが、AccountManagerが近い形で実装はできるので、こちらからアプローチするのが適切かと思われます。

知識は陳腐化する

OpenIDを触っていたのが3年以上前なので、まったく見当違いなことを言っている可能性もありますが、ツッコミありましたらコメントでお願いします。

【読了】幸せな死のために一刻も早くあなたにお伝えしたいこと

若い医師から見た生と死について。素晴らしい本だった。下手な感想を伝えるよりも、とにかく読んでいただきたい。

クラウドソーシング所感

ここ1ヶ月ほど、全く仕事とは関係無いところでゲーム開発をしています。
ゲームそのものを、というより、比較的大規模なモノ作りプロセスを自分で廻したくて(あわよくば仕事にフィードバックしようかと)実践しているのですが、その中の幾つかのプロセスでクラウドソーシングを試しておりまして、幾つか気がついたことがあったので所感を。

・クラウドソーシングの拡大

ゲーム内のキャラクターを幾つか用意するためにクラウドソーシングを利用したのですが、実際試してみて初めて、クラウドソーシングは今後大きく成長する市場になりうると実感しました。

とにかく発注金額が圧倒的に低い。海外のサービスも試しましたが、海外は更に低い。

特に、アウトプットの着地が分かりやすいものについては依頼しやすいので、クオリティを下げずに発注することができます。また個人対応が多いので、柔軟性のある対応を求めることもある程度可能です。
実際に金額をやや抑えて発注しても、かなりレベルの高いものを出してくるデザイナーが何人も出てくるし、後からの修正も(誰もがそうというわけではないでしようが)柔軟に応じていただけました。

・一方でクラウドソーシングの問題

こちらは3Dモデル発注をした際に感じたことですが、特に技術練度を要するような作業については、品質にモロに影響がでてしまいます。

あるセミプロレベルの方に発注した際は完全に失敗して、微妙なアウトプットが出てきてしまいました。

クラウドソーシングでは相手側が個人で請け負っている場合が多く、法人同士の付き合いでは当然行われる逐次のアウトプット確認などがしにくく、また、個人のスキルの問題なので、これ以上クオリティを上げてくれ、という依頼が出来ないため、再度別の方に依頼するなどのオペレーションが必要となってしまいました。

・クラウドソーシング内の市場

上記に関連しますが、クラウドソーシング内でも需要供給のバランスがあるのが興味深いです。

例えばイラスト作成は供給側が完全に過多になっていてバランスが崩れています。

120点のイラストが書ける一部の神レベルの作家は適正な価格での受注が維持できると思われるのですが、80点位の作家は見合った報酬を受け取るのはかなり難しいと思われます。

・クラウドソーシングでの海外発注

海外に3Dモデリングを海外に出した際に想定金額を思い切って下げたのですが、それでも請け負うデザイナーが世界中にいるのに驚きました。

実際には日本の相場の数分の一で、ウクライナ・マレーシア・ブルガリアなどから受注可能とメッセージが来ます。

ただ、実際に発注すると、日本と海外の違いは言語だけではなく「仕事への取り組み度合い」であることを痛感します。

まず、仕事に対するコミットが非常に緩い。普通に連絡が取れなくなる受注者が出る。出来高払いなので金額的な損失は無いのですが、別のデザイナーへの発注が遅れるので時間的損失が大きいです。

そのように考えると、プロレベルの仕事を発注するには、海外に出さず日本人に依頼するがまだ妥当だと思われます。
ちなみにアメリカ人は円安もあって日本よりもずっと高い見積もりでした。アウトプットは良さそうだったんですが。

引き続きゲーム開発で思った所感など書いていきます。

グリッドコントローラーで俺得外付けキーボードを作る

Adafruitでうっかりおかしな物を買ってしまいました。
Adafruit UNTZtrument! Open-Source 8×8 Grid Controller Kit – 8×8 White LEDs
要は、64個の光るボタンがついているエンクロージャーなのですが、これがあれば、Blenderのキテレツなショートカット達にも太刀打ちできます。ArudinoとHIDは最近ちょうど技術的にも身につけたところですし、外見もカッコイイ。それにArudinoなので、ロータリーエンコーダーの追加やソフトウェアでの諸々カスタマイズもできます。というわけで、最終的には結構いいお値段になりました。ニューヨークから一週間くらいで到着。
で届いたパーツたちがこちら
2014-12-23 11.49.09
アクリルの部分以外は普通にAdafruitで売られているパーツで、アクリル部分のエンクロージャーはdxfファイルが提供されてます。
今気がついたけど、エンクロージャー自作すれば相当安く作れますね。
で、パーツ合わせなどを行い、
2014-12-23 12.32.37
ハンダ付けなどしつつ、
2014-12-23 16.34.50
こうなりました。
ロータリーエンコーダーも追加で付けたので、外付けキーボードとしては超高性能です。
 

動画はMacのアプリ切り替えをロータリーエンコーダーで実現したもの。これはいろいろ捗ります。

実際はロータリーエンコーダーの1ピッチを1値に設定するのにソフトウェア的なコツがあるのですが、ソース公開するのでいろいろ察してください。

Moto360を手に入れ、そして手放した話。

以前からAndroid Wear は気になっていたのですが、Moto360の円形ディスプレイに惚れて、入手するまでずっと我慢していました。
だが、9月の中旬にようやく個人輸入で手に入れることができたにもかかわらず、開封して30分で手放そうと決め、そして今もう既に手元にはありません。今日はその話を。

勘違いしてほしくないのは、Moto360は間違いなく今までの腕時計型ガジェットの中で最高峰だと私は思っています。Androidとの連携もスムースだったし、操作に迷うこともなく、美しいディスプレイや革バンドに至るまで良く出来ています。

ただ、私は、思ったよりも「腕時計」にこだわりがあったようで、持ち上げただけで即座に時間が確認できる腕時計に比べて、加速度で認識するとはいえMoto360は腕を上げてからディスプレイが点灯するまでのコンマ数秒にフラストレーションを感じました。どんなに、これは腕時計ではなくガジェットだ、と頭のなかでは意識しても、どうしてもこの差は埋まりませんでした。スマートフォンの通知を転送してくれるのも楽かもしれませんが、日常的にそれほど通知を気にすることも実はなく、結局のところMoto360で新しい体験はできるかもしれないが、私の日常を良い方向に上書きするほどではなかった、と気がついたのでした。

この差は多分電子書籍リーダーの体験と同じで、私自身一度は電子書籍にトライしたものの紙の本に戻ってます。生まれてから紙の書籍を体験していなければ違和感を感じないものの、紙の本の経験が長かったのでその経験を上書きできないのです。電子書籍だと読む喜びや残る知識が半減してしまい、最近は実用書でも本で買うようにしています。
(面白いのは、マンガだと電子書籍自体に全く違和感はないのです。読んだあとの余韻も変わりません。体験の違いから来るのかもしれないですが。)

話を戻すと、
結論として、少なくともスマートフォンとの連携無しで稼働するようになるまでは、腕時計型ガジェットには手を出さないことにしました。エンジニアとして出遅れるかもしれないが、そのリソースは他に振り分けることにします。

最後にMoto360のファームアップデート前の起動アニメーションを。18秒くらいから始まるアニメーションがMoto360の開発コンセプトをよく表していると思います。