タグ

ブックマーク / wazanova.jp (68)

  • Twitterのキャッシュを支えるRedis - ワザノバ | wazanova

    https://www.youtube.com/watch?v=rP9EKvWt0zo 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 TwitterのYao Yuが、大規模サービスのキャッシュにおいてRedisを活用する取組みについて紹介しています。 1) Redisを採用している理由 キャッシュだけで、ストレージとしては利用していない。 主なところでは、Twitterのタイムラインで利用している。ホーム画面であれ、ユーザ画面であれ、タイムラインはTweetのインデックスなので、key/valueストア型のRedisを利用するケースとして最適。 以前はmemcachedを使っていたが、問題になったのは、タイムラインでおきるread/writeは、(ユーザが閲覧している範囲に追加反映するということなの

  • Facebook: グローバル市場を見据えたAndroidのパフォーマンス改善 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=GHTO2WKDO6I#t=2h 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約1時間前 FacebookチームのAndroidアプリは、背景にグローバル市場でのAndroid利用者数の急増、それに伴う新興国ユーザの増加(当然そこのユーザをもっとFacebookに囲い込みたいという思惑あり。)という事情を反映して、端末バラエティ / ネットワーク接続環境のフラグメンテーションにしっかり対応して、パフォーマンス改善を重視していこうという方向性にあるようです。 1) 新興市場の理解 by Chris Marra FacebookにアクセスするAndroidデバイスは、10,000モデル。 世界中の新興国を訪問して市場調査した結果、ローエンド端末 / 中

  • Facebook: iOSアプリのアーキテクチャ - ワザノバ | wazanova

    https://www.youtube.com/watch?v=XhXC4SKOGfQ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 39分前 FacebookのiOSチーム、Adam ErnstとAri Grantによる@Sacle 2014での講演。データモデルとビューレイヤの改善の取組みについて紹介してくれてます。 1) データモデル 背景 2年前からHTML5からネイティブに切り替えて一旦大きく改善したが、その後機能を追加するたびにアプリのパフォーマンスが悪化。 ネイティブに移行後、オブジェクトのキャッシュレイヤとしてiOSのCore Dataを使ったのが失敗であった。 Core Dataの役割は「整合性を含むオブジェクトグラフ管理」 Facebook iOSアプリの場合、サーバ側を正のデータとするが、

    raimon49
    raimon49 2014/09/17
    Reactの考え方をiOSアプリのViewにも適用。
  • Instagram: Android/Java向けのJSONパース - ワザノバ | wazanova

    http://instagram-engineering.tumblr.com/post/97147584853/json-parsing 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約8時間前 Instagramが、ig-json-parserをオープンソースで提供しています。 背景 Androidにおける、JSONのエンコーディング/デコーディングは、dalvik特有の問題やメモリ消費が課題となる。 Jackson ObjectMapperで上記の問題は概ね解決できるが、 シリアライズ/デシリアライズしたことのないオブジェクトを処理する際のペナルティが大きい。モバイルの起動時間に影響するケースもあるので、頭が痛い。メモリが大きく割り当てられるので、ガベージコレクタとの絡みを考慮する必要がある。作業が完了し

  • Squareの内部APIの仕組み - ワザノバ | wazanova

    http://corner.squareup.com/2014/09/squares-api.html 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 SOAにおけるサービス間のコミュニケーションについては、CODE CLIMATEにおいて、Protocol Buffers vs JSONという比較が取り上げられていて、「ブラウザやJavaScriptが直接データを利用しないケース、特に内部サービス間のコミュニケーションにはProtocol Buffersの方が向いているのでは。」と紹介されています。 せっかく整合性のあるデータ構造を用意しても、サービス間のデータのやり取りの際に苦労させられることが多い。Protocol BuffersならProtoフォーマットにしてエンコーディングするだけで、意図す

    raimon49
    raimon49 2014/09/06
    Protocol Buffersって仕様自体は良く考えられているのだけどGoogleのコア言語でない3rd party製の言語バインディングがちゃんとメンテされてるかが割と運任せで苦労する。Googleの公式実装に乗っかれるなら良い選択だとは思う。
  • クラウドのOSを狙うMesos - ワザノバ | wazanova

    https://www.youtube.com/watch?v=r7qN8QwGv2w 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約6時間前 MesosConのキーノートスピーチを紹介します。 まずは、Apache MesosのProgram Chairを務めるTwitterのBenjamin Hindmanが、Mesosの目指す立ち位置について、 現代において「他のコンピュータ」と形容すると、データセンターを指すケースが多い。 アプリを動かすコンピュータという見地からは、PC / タブレット / スマホ / サーバにOSがあるように、データセンターにもOSが必要。 Mesosは、データセンターのOSである。つまり、分散システムにおけるkernelの役割を担う。 そのエコシステムの広がりは、 Mesosとつ

    raimon49
    raimon49 2014/09/06
    >Mesosは、データセンターのOSである。つまり、分散システムにおけるkernelの役割
  • JavaScriptでvarを並べること - ワザノバ | wazanova

    http://benalman.com/news/2012/05/multiple-var-statements-javascript/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 まあ、好みの問題もあるので、嫌な人にとっては嫌なんでしょうが、、 JavaScriptで、例えば先頭で var をまとめて定義 & 値を代入する際に、 var foo = 1, bar = 2; でなく、 var foo = 1, var bar = 2; と、varを並べたほうが、メンテ性も見た目を揃えるにもよいのではないかという、Ben Almanの2年前のブログが最近いくつかtweetされてたので、チェックしてみました。 そもそも、 複数varを並べるのは無駄だし、初心者っぽい。 単独varの方が見た目がよい。

    raimon49
    raimon49 2014/08/18
    単独varでも複数varでもどっちでも良い派だけど、単独varで宣言したいがためにスコープ先頭に全て詰め込んで変数列挙してるのは本末転倒してるよなーと思う。変数は必要になった時点で宣言すべき。
  • Google Android: マテリアルデザインのイタレーション - ワザノバ | wazanova

    https://medium.com/@romannurik/material-design-in-the-2014-google-i-o-app-e3b22caffae6 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約3時間前 GoogleのRoman Nurikが、試行錯誤しながら、マテリアルデザインの仕様を固めてきた経緯を紹介しています。 ちなみに、Google I/O 2014のカンファレンス用アプリは、オープンソースで提供されています。 Surfaces and shadows レイアウトガイドにまとめているように、surfaceとshadowをどのタイミングでどのように使うかというのが、マテリアルデザインにおける重要なポイントの一つ。 最初のバージョンは、app barの下側のshadowにより、

  • 入力フォームの工夫 - ワザノバ | wazanova

    http://googleresearch.blogspot.com/2014/07/simple-is-better-making-your-web-forms.html 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 今回、Googleのチームが、アイトラッキングシステムの利用やユーザインタビューを通じて、入力フォームのユーザビリティについて実験しています。参照しているのは、2010年にスイスのUniversity of Baselのチームがまとめた "20 guidelines to optimize web forms" です。2000年代のアカデミックな研究成果をもとにまとめられたものですが、現在もまだ当てはまるものと、ここ5-10年で変わってきているものがあり、興味深いです。最近は、スマホ

  • オープンソースと特許とテスラの決断 - ワザノバ | wazanova

    http://www.teslamotors.com/blog/all-our-patent-are-belong-you 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 今朝テスラがブログで発表した内容は、「オープンソースの精神にのっとり、テスラの保有する特許を他社/他者が利用しても訴訟をしない。」ということ。適用されるオープンソースのライセンスが明示されていないところから考えるに、純粋にオープンソースではなくて、無料もしくは無料に近いかたちでのライセンス契約が必要になるかたちになるのかなと想像してます。 1年ほど前に、ソフトウェアでオープンソースが広がり、サーバ周辺のハードウェアでもオープンソースのプロジェクトが進みはじめた中、製造業のオープンソース化はくるのかという議論をしたときに、私はちょっと

  • Facebook: HTTPSサイトを狙うBREACH攻撃対策 - ワザノバ | wazanova

    https://m.facebook.com/notes/protect-the-graph/preventing-a-breach-attack/1455331811373632 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約8時間前 BREACHについてはまったく知識がなかったので、Facebookのセキュリティチームのこのブログは興味深かったです。 まず前提としてFacebookは、よく知られているクロスサイトリクエストフォージェリ(CSRF)攻撃への対策として、FacebookユーザにCSRFトークンを発行。トークンは攻撃者が簡単に発見できないもので、トークンを提示しないかぎりは他人になりかわってFacebookにwebリクエストをすることができない。この仕組みで、攻撃者に利用されて意図しない攻撃に参加

  • Netflix: 結果整合性の許容範囲は広がってしかるべき - ワザノバ | wazanova

    https://www.youtube.com/watch?v=6R1WhWkh6pg 2 comments | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Cassandra Day Silicon Valley 2014でのChristos Kalantzis (Cloud DB Engineering Manager, Netflix) の講演。 10年前を思い出してほしい、データの書込みは1台のマスターに、読込みは複数のスレーブで担いスケールさせていた。ウェブサービスでよく使われていた手法だが、レプリが完全に行われないケースはありえた。 Cassandraの場合は、大量のデータ処理でも結果整合性の遅延は極短く、信頼性高く、かつデータ修復機能もある。チューニングできるシステム。 Netflixでの実験: - 二箇

    raimon49
    raimon49 2014/05/09
    >Amazonの在庫管理システムは結果整合性を採用している。ごく稀に、サイト上で購入完了したものが、「実は在庫がなかったので、お詫びに割引クーポンを受取りください。」というメールがくることがある。
  • ブロックチェーンをもう一段深く理解する - ワザノバ | wazanova

    http://www.igvita.com/2014/05/05/minimum-viable-block-chain/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 39分前 このブログでGoogleのIlya Grigorikが言及している、 (ビットコインの)デジタル貨幣という側面より、もっと興味深く大きな意味をもつイノベーションは、その土台となっているブロックチェーンのテクノロジー。 という考え方は、いまやベイエリアの中心的な論調。ですので、ビットコインの貨幣的側面の規制を当局が検討したり、それがメディアで報じられても、まったくひるまずに、昨年後半あたりはブロックチェーン周辺のスタートアップにかなり投資がされています。 それらのスタートアップのサービスがこれから世の中に順次でてくるので、ブロックチェーン

    ブロックチェーンをもう一段深く理解する - ワザノバ | wazanova
  • Stack Overflow: 技術的負債の必然性 - ワザノバ | wazanova

    http://marcgravell.blogspot.co.uk/2014/04/technical-debt-case-study-tags.html 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約22時間前 Stack ExchangeのエンジニアであるMarc Gravellがブログで、Stack Overflowのタグ検索のパフォーマンスをあげるために一時的に対応した迂回策を、時間をかけて修正していった経緯を紹介しています。「あまり褒められたやり方ではないけど、その時点ではそうするのがベストだった。」という負債はあるよねという話しです。 Step 0 : 背景 Stack Overflowでは、質問に紐づいたタグを検索(“{a} and {b} and {c}”, “{d} or {e}”, “{f

  • 責任であることと、そうでないことの境界線 - ワザノバ | wazanova

    http://www.webstock.org.nz/talks/how-designers-destroyed-the-world/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 1日前 net awards 2014のConference Talk of the YearにノミネートされているMike Monteiro (Mule Design Studio) のWebstock 2013での講演 "How designers destroyed the world." です。デザイナーの責任というテーマなのですが、どの仕事をする上にも共通するちょっと重たい話しです。 まず取り上げているのは、2012年10月にWall Street Journalに掲載された記事。 ある大学生が、Facebookのプライバ

    raimon49
    raimon49 2014/04/09
    >デザイナーは、注文を取る人ではなく、ゲートキーパーであるべき。
  • Iconfinder: 画像データの重複チェックのアルゴリズム - ワザノバ | wazanova

    http://blog.iconfinder.com/detecting-duplicate-images-using-python/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約5時間前 Iconfinderは以前、500 Startup Fundのデモdayでプレゼンするのを見た記憶があります。それから資金調達もできたようで、無事生き残ってますね。 アイコン等の画像ファイルの検索 & 販売をするサイトですが、悪いユーザがIconfinderから画像をダウンロードした後に、そのまま、もしくは多少改変して、Iconfinderにアップして販売しようとする不正行為があるようです。その対策のための検知アルゴリズムについてブログで紹介しています。 一般的な画像データをハッシュ化するアルゴリズムでは、画像のごく一部

    raimon49
    raimon49 2014/04/09
    隣接pixel, hex_string
  • 前任者が悪いのかもしれないけれど - ワザノバ | wazanova

    https://medium.com/p/506a06ae35ea 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約3時間前 自分は最初に手がける立上げ仕事がほとんどだったので、他人のタスクを引継ぐよりは、次の方にバトンタッチすることが多かったと思います。右も左もわからない状況から始める立上げ仕事は、楽しいけれど、前に進めるだけでそれはそれで大変。なので、引継ぐときは「頑張ったね。」と自分に言ってあげたいというのが音。とはいえ、引継いだ人が後から見れば、相当アラい仕事ぶりに思えたでしょう。大成功してないプロジェクトについては全て、批判は甘んじて受け入れるべきなのかもしれません。 Shamoon Siddiquiはブログで、安易に前任者の責任にする危険性について語っています。 新しく採用した後任のエンジニアが入

    raimon49
    raimon49 2014/03/26
    あるある系だが割り切るのは敷居が高いよな。
  • Ruby RoguesメンバとiOSエンジニアのAPI議論 - ワザノバ | wazanova

    http://rubyrogues.com/147-rr-apis-that-dont-suck-with-michele-titolo/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 iOSエンジニアのMichele Titoloは、Objective-Cのディペンデンシーを管理するCocoaPodsのプロジェクトで知られてますが、モバイルエンジニアの立場からAPIを利用して開発するポイントについても、自らのブログでまとめています。 1) Follow Conventions はじめてのことにトライするときは先駆者の知恵に従うほうが、クオリティの高いものをつくれるので、conventionに従うのがよい。そのほうがデバッグもしやすい。自分でAPIのルールを定義する必要が生じた場合は、一貫性を維持し

    raimon49
    raimon49 2014/03/20
    >検索のAPIも、q=something?かというと、eコマースではフィルタリングも併用することが多いので、postしてJSONを返すようにした方が、もっと色々記述できて便利。
  • Angular 2.0 - ワザノバ | wazanova

    http://blog.angularjs.org/2014/03/angular-20.html 1 comment | 0 points | by noto ■ comment by noto | 約1時間前 クライアントサイドの JavaScript フレームワークである AngularJS の公式ブログで Angular 2.0 の実装が始まったことがアナウンスされ、設計に関しての考え方、なぜ変更しようとしているか、詳細な変更点などについて述べてられています。Angular のもともと持っている特徴もおさえつつ説明されているので、Angular の復習にも良さそうです。 Angular 2 は mobile apps のためのフレームワーク (デスクトップにも利用できる)。data-binding、extensible (拡張可能な) HTML、テストのしやすさの重視については変

  • Etsy: レスポンシブなHTMLメールをつくる - ワザノバ | wazanova

    http://codeascraft.com/2014/03/13/responsive-emails-that-really-work/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 HTMLメールは、 AndroidのGmailはインラインCSSしかサポートしてない。<style>タグは効かず、media queryは使えず、外部のスタイルシートに頼れない。 Gmail.comはHTMLのサポートが限定されている。HTML5のものを含めてサポートされてないタグが多く、classやIDなどの属性が使えない。インラインCSSのみ使え、<style>タグもかなり制限されている。 iOS / Mac OS Xのメールアプリは、media queryや多くのCSSが利用できる。 という状況なので、レスポン