Goと大規模分散システムの相性

3年弱前 | 2 points

Googleで分散システムの開発をてがけ、現在はソーシャルメディア mttr.toを立上げ中のBen Sigelmanが、Goを分散システムの開発に利用する場合の、メリットおよびチャレンジについて講演しています。

分散システムのあるべき姿

  • 分散システムの勘所は、最上位ビットをパフォーマンス的にも構造的にもうまく扱うことができるかというのがポイント。その効果が一番大きい。スループットの改善のような詳細は、自分もGoogleでそれに取組んだけれども、9ヶ月くらいたつとハードウェアの性能で解決される可能性が高い。また、構造的にというのは、なるべく小さなコンポーネントを組み合わせたシステムにできるかという意味。
  • Goのよいところは、
    • 両方、とくに後者によい。Railsだとアプリを複数個用意して並列処理するのは大変だったけど、Goだとシンプルにできて、標準ライブラリも読みやすいとかなどなど。...

Etsyのレコメンデーションを学ぶ

3年弱前

Etsyのレコメンデーションエンジンが、同社がオープンソースとして提供している機械学習パッケージ Conjecture (Scalding DSL + Hadoop)に追加されました。大まかな仕組みについては下記の通りです。

作業としては、まず過去データを利用したユーザの興味度合いのマトリックスをつくりモデル化し、次にユーアごとに興味度合いが最大となるアイテムのセットを見つけるレコメンデーションの計算をする。

データソースとしては数段階のレビューデータではなく、商品アイテムに対するユーザの実際のアクション(お気に入りボタンが押されたか、もしくは購入されたかなど)のデータでバイナリマトリックスを作成している。例えば、あるユーザのお気に入りアイテムには「1」、そうでないものには「0」が適用される。(参考マトリックス

ユーザとアイテムの相性を低次元モデルで解析。ユーザ軸とアイテム軸それぞれで、...

モバイルとソフトウェアが世の中を変える様を数字で実感する

3年弱前 | 1 point

ワザノバでは市場環境的な話はほとんど取り上げたことはありませんが、モバイル市場を語らせるとA16ZのBenedict Evansが一番だと思うので、今回はお薦めさせてください。エンジニアの方にとっても、そうでない方にとっても、これからの世の中がどうなっていくのかを考える基礎を与えてくれます。

下記のポイント以外にも示唆に富む話が満載なので是非、BloombergBusinessweekのこの18分57秒の短いビデオを見てみてください。

  • メインフレームをはじめ、これまでのテクノロジーは特定の顧客向けに売る商品であったが、モバイルは史上初めて全ての人を対象にすることができる。
  • 2020年には、インターネットにアクセスする人 = スマホユーザになり、その数は40億人になる。
  • 新しいiPhoneのCPUには1995年のPentiumと比較して625倍以上のトランジスタ。...

UIは画面サイズと解像度だけで解決できなくなる

3年弱前 | 1 point

WordCamp San Francisco 2014におけるLuke Wronblewskiの講演です。UIデザインで考慮すべきは、画面サイズと解像度だけでなく、視聴距離、ポスチャー(詳細後述)、周囲の明るさという要素も必要になってくるという話。

  • スマホ端末を両手もしくは片手で持つ場合を合わせて、75%のユーザは親指を使って操作している。
  • タブレットのランドスケープモードとポートレートモードの利用比率は、6:4とか7:3とか言われるが、要は両方に対応する必要があるということ。
  • タブレットとキーボード付きのタッチ画面対応ラップトップを全てプログラム的に判別はできない。よって、画面のサイズが一定サイズ以上になると、マウス/キーボード向けの操作ヒントを画面に適宜表示するという工夫が必要になってくるかも。
  • 解像度だけで判断もできない。同じ1920x1080であっても、ユーザが利用しているのは、...

生まれ変わるAngularJS

3年弱前 | 1 point

シングルページアプリ向けの各フレームワークをGoogle Trendで比較したグラフLars Eidnesのブログに掲載されてますが、AngularJSの伸びが他を圧倒しています。一方で、アーキテクチャ上の課題は、コミュニティの声もあり、かつ当事者である開発チームも認識していたところ。そして、それに対する答えとしては、バージョン2.0で大幅に書き直すという流れになっています。

AngularJS 2.0については、「野心的だが険しい道のり」というタイトルの記事がGuardianに掲載されてますが、

  • ES6の採用
  • Web Componentsとの親和性のアップ
  • (双方向バインディングをどうするかまだ決まってないが)Reactの考え方に近づいてきている
  • (1.3のサポートはしばらく平行して続くと発表されたが)本当にスムーズな移行を提供できるのか?

がポイントだとSeb Ceveyはまとめています。...

Square OrderのUI

3年弱前

Squareの提供するハードウェア(カードリーダー & レジ端末)のデザインも美しいと思ったのですが、アプリも負けず劣らずクオリティが高いですね。Brian Lovinが紹介しているテイクアウト注文アプリ「Square Order」の中から、気に入ったUIをピックアップしてみました。

(下記で紹介しているリンク先のビデオは、PCのChrome/Safariでないとうまく再生できないようです。お手数ですが、一見の価値はあるので是非。)


2) Walkthrough

ビデオ

数枚のスライド形式のチュートリアルはもう定番ですが、三枚目のCafeの屋根に乗っている鳥がバウンスしたり、三枚目/四枚目の店員の表情/体の動きが同じバウンスのリズムで反応してたりと、芸が細かいです。

3) Signing up

ビデオ

サインインページで、まずメアドの入力を求められて、...

インタラクションデザインという仕事

3年弱前

Giltがモバイルのプロダクトの開発を進める各フェーズにおいて、どのような役割でデザイナーが参加しているかが、こちらのスライドにまとめられてます。ビジュアルデザイナーと、ユーザのインタラクションを磨き上げるUXデザイナーがアサインされて、フェーズごとに役割を分担しています。ただ、「どうすれば使いやすいか。」という話だけに絞ると、万人が意見を持っているので皆がある意味「自称」インタラクションデザイナーになりうる中、「プロの人たちは何を指針に意思決定しているのかな。」と気になってました。

丁度、SlackのDiogenes Britoがブログでまとめてくれてます。

(話はそれますが、Slackの成長ぶりはスゴいですね。気遣いを感じるデザインのファンではありましたが、1年ほどしかたってないのに企業価値が1200億円とは。。FounderのSteward...

メールクライアントごとの仕様の違いを考慮する

3年弱前 | 1 point

メールの復権」を書いてから4ヶ月ほどたちましたが、その後、自分がかつてユーザ登録したweb/アプリサービスがメールのニュースレター配信を次々とはじめていて、それが日々自分のinboxで実感できます。米国だけの傾向なのかどうかよくわかりませんが、ユーザと接点を持つ手段としてメールを見直す傾向は右肩上がりのようですね。

こうなってくると、メールクライアントごとの仕様の違いを考慮して、製作 & テストしなくてはいけないということ。そこそこ工数のかかるタスクです。

GiltのLauren Ribandoが紹介しているコツは、

  • デザイナーとしては、リンクを示す青色をサイトに合ったカラーで上書きしたいものだが、GmailとYahooメールは単純に<a>タグで指定するだけではうまくいかない。<a>タグの中に<span>タグをネストさせて、...

Google I/Oで披露されたモバイルウェブ3Dをオープンソース化

3年弱前

John Brownは、PortlandにあるデジタルクリエイティブエイジェンシーInstrument社のTechnical Directorで、同社はGoogleとの協業を5年ほど続けています。今年のGoogle I/Oのウェブサイトにあるインタラクティブなマテリアルデザインの作品「experiment」も同社が手がけたものです。

experimentの取組みを振返って、CSS 3Dを採用した経緯は、「モバイルファーストという制約の中で、WebGLはモバイルではまだ、CanvasはCPUのみで実行され今回の目的を満たせるほどパワフルではない。よって、モバイルフレンドリーでGPUを利用できるCSS 3Dにした。」とのこと。

2D素材を回転させたり、折り畳んだりする動きをさせ、3Dらしく表示するための工夫(デモビデオ 11分15秒以降)として、

  • box-shodowとfilter:...

スケールするサービスでの最新オペレーション事例

3年弱前

10/29に開催されたSecurity@Scaleのカンファレンスで、興味深いと思った話題を拾ってみました。

SquareのDiogo Monicaの講演は、障害/脆弱性に対応する社内システムをどのように自動化 / 最適化させてきたかというテーマ。

  • 脆弱性の種別(XSS等) x セキュリティゾーン(システムのどの箇所にとって脅威になるかを3段階に分類。DBに近い方が危険性が高い。)でスコア化することで、対応のために発行されるチケットは自動的に優先付けされる。
  • SLA(サービスレベルアグリーメント)において、例えば、P0は24時間以内、P1は7日以内、P2は30日以内と基準が明示されているので、いつまでに対応されるのか共通の認識が持てている。
  • チケットは脆弱性の対象となるチームのマネージャに対して発行される。SLAの期限を満たせなかった案件は週次で、VP of Engineeringも出席し、...

Googleのテスト自動化の進化

3年弱前 | 3 points

Google Test Automation Conferenceが今年はSeattleで開催されたようです。その中で興味深いと感じた話題をいくつか拾ってみました。

1) 成長を続けるGoogle

会社の規模が大きくなり、歴史を重ねてくると、何事も非効率になりがちですが、Ankit Mehtaが紹介してくれた数字によると、Googleの開発ペースは依然として右肩あがりのようです。

  • コードのコミットは、1日3万チェックイン。約3秒に1回。グラフを目測した限りでは昨年から約20%増。
  • リリース数もこの1年でほぼ倍増。

2) テストクローラーを利用してのモバイル実機テストの自動化

Googleが7月に買収したAppurifyのFounderであるJay Srinivasanによる、同サービスの紹介。

  • アプリの開発者はテストスクリプトを書く必要がなく、Appurifyが保有する数百モデル数千台の実機の上で...

iOSアプリ開発にチームで取組むチャレンジ

3年弱前 | 1 point

Michele Titoloについて取り上げるのは、

に続いて三回目ですが、今回はiOSアプリづくりにおけるチーム内の連携がテーマ。

彼女は現在、redditのiOSチームのリーダーをしながら、Objective-Cプロジェクトの依存関係の管理をしてくれるCocoaPodsの開発と、非営利団体 Women Who CodeのCEOを兼務しています。

redditはwebで大量のトラフィックとユーザを抱えてますが、スマホのアプリに注力しはじめ、切り口を変えた複数のreddit閲覧アプリづくりにチームで取組んでいます。最近では、Ask Me Anythingのアプリをローンチしたり、Alien Blueを買収したりと話題です。

コードの共有

  • 複数のアプリをチームでつくるには、...