タグ

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

  • CDNの挙動を検証する取組み - ワザノバ | wazanova

    https://gdstechnology.blog.gov.uk/2014/10/01/cdn-acceptance-testing/ 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約2時間前 Code for Americaなど、ネットの力で政府機関を改善していく取組みがここ数年増えていますが、中でもGOV.UKは、英国政府のwebサービスのあるべき仕様をサービスデザインマニュアルに詳細にまとめ、政府関連のウェブサイトを取りまとめています。その活動は、3分ほどのビデオにまとめらてますが、技術関連の情報発信にも力を入れてきています。 さて今回のGOV.UKのエンジニアブログは、受け入れテストを充実させてCDNの挙動を検証した取組み。実装の詳細から、バグのケースまで網羅されていて、かなり詳しく紹介されています。合

  • 急成長するサービスのサーバインフラ - ワザノバ | wazanova

    サービスを一から立ち上げる場合も、成功したサービスが更に拡大する場合も、いずれもスケールさせるのは一苦労ですが、今回は、Dropboxの初期の取組みと、Facebookの最近の動きを取り上げてみます。 まずは、DropboxのKevin Modzelewskiが、創業当初のサーバインフラの進化を時系列で紹介している講演から。 Dropboxのデータの特徴 書込みボリューム大: 通常のサービスはコンテンツをつくるより消費するボリュームが圧倒的に多いので、read/write比率が、100:1とか1000:1であるのが典型だが、Dropboxはユーザの全端末がコピーを持つ構造なので、その比率が約1:1になる。つまり、同じサーバに対して、他社よりも100倍、1000倍書込みの役割が大きくなる構造。 ACID特性の要件をしっかり守る必要がある。ユーザの情報を預かるのだから、原子性について、「大きな

  • npmとクライアント側でのパッケージ管理の議論 - ワザノバ | wazanova

    npmに登録されているパッケージ数は10万、月間ダウンロード数も5億を超えました。7月の段階で月間3億程度ですから、こちらのグラフで見てもわかるように、かなり成長が加速してきていますね。 EdgeConf4において、パッケージ管理をテーマにしたディスカッションに、npmのCTOであるLaurie Vossと、npmのpeer dependencyをつくったGoogle Chrome TeamのDomenic Denicola(ES6のPromiseの取組みでも知られた人ですね。)が参加しています。この二人と、BowerのJosh Peekを中心に議論が進んでいます。ちなみにJoshはGitHubの社員で、最近では、左右に並べてdiffを比較できる便利な機能をつくった人でもあります。 「サーバサイドのパッケージマネジャとしては、CPANやRubygem、npmのように開発言語ごとにプレーヤー

  • CSSパフォーマンスツールを使いこなす - ワザノバ | wazanova

    https://www.youtube.com/watch?v=FEs2jgZBaQA 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約1時間前 CSSconf EU 2014におけるGoogleのAddy Osmaniの講演です。CSSのパフォーマンス向上に役立つツールを40個+ 紹介してくれてます。 背景 パフォーマンスの最適化において、 ベースラインとしてやること 最小化(minification) 結合(concatenation) 画像の最適化 圧縮(GZip, Zopfli) 非同期スクリプト キャッシュの利用 WOFF2フォント CSSスプライトを使う リダイレクトをしないこと スピードアップ パフォーマンス向上に重要なCSSのインライン化 レンダリングをブロックしないように、急ぎでないアセットの取

  • Reactを実際に使ってみた話が増えてきた - ワザノバ | wazanova

    http://youtu.be/uwnjDXtJufs 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 44分前 コンポーネントベースのviewレイヤのライブラリであるReactを、実際に使ってみた感想についての発信が増えてきているので、まとめてみました。(4)はFluxの話も入ってます。) 1) Reactとは? E4E Developer Conf 2014の講演でFacebookのBen Andersonは、Reactを採用しているサービスを挙げています。 Facebook / Instagram / GitHub (Atom) / Khan Academy (with Backbone.js) / Mozilla Firefox (for Paneis) / NY Times / Reddit (stor

  • Rustを学びシステムレベル言語を理解すること - ワザノバ | wazanova

    https://www.youtube.com/watch?v=ySW6Yk_DerY Rustについては「Rustのあれこれ」で少し触れましたが、Yehuda Katzが、Skylightの一連のブログとGoGaRuCo2014の講演で、「ハイレベル言語のプログラマーがシステムレベルの言語を学ぶチャンス」という観点で紹介しています。 主なポイントとしては、 プログラミング言語の特性は変わることがないとか、プログラミング言語のパフォーマンスと生産性は常にトレードオフであるという考え方は、JavaScriptにおいて、生産性が少し改善されつつ同時にパフォーマンスが大きく向上してきたという事実から、必ずしも正しくはない。 Rustは、セグメンテーション違反が起きないという意味での安全性と、どこにメモリを置くか直接コントロールできる仕様を両方兼ね備える。 Rustを学ぶということは、ハイレベル言

  • ベストなユーザエクスペリエンスを実現するJavaScriptの課題と可能性 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=p2F-128e3sI 1 comment | 2 points | by WazanovaNews ■ comment by Jshiike | 33分前 Socket.ioのクリエーターとして知られるGuillermo RauchのBrazilJS 2013での講演です。理想のシングルページアプリをつくろうとすると、JavaScriptが損なってしまうケースはあるとしながらも、一方で、多いに可能性を感じさせるトレンドもあるとして、最優先であるユーザエクスペリエンスを向上させるポイントを紹介しています。 1) 課題 スクリプトやCSSにブロックされることで、レンダリングの際にブランクページを表示してしまう。 Webスクレイピングというコンセプトを壊してしまう。サーバレンダリングしない限りは、フロント側はスムーズにスクレイピ

  • 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は、(ユーザが閲覧している範囲に追加反映するということなの

  • 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フォーマットにしてエンコーディングするだけで、意図す

  • 長期かつ修正頻度の高いPJでのCSSメンテ - ワザノバ | wazanova

    http://benfrain.com/enduring-css-writing-style-sheets-rapidly-changing-long-lived-projects/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 長期的な大規模プロジェクト、かつ修正頻度が高い場合は、DRYよりはメンテ性を最優先にしたCSSを書くべきという、Ben Frainの方法論です。長文ですが、よくまとまってると思います。 1) テクノロジーとツール プレプロセッサ 長期のプロジェクトにおいて重要なのは、テクノロジーではなく、何ができて、どう進めるかというアプローチ。 Sass / LESS / Stylus / Myth などどれでも、しっかり書かれていれば、必要なときにいつでも統合はできる。プレプロセッサは

  • API設計のポイント - ワザノバ | wazanova

    Living Socialが7回に渡りSOA (Service-oriented architecture) についてのブログを書いてますが、今回はAPI設計についてのエントリーです。 「APIはRESTful」と言うだけでなく、社内でガイドラインがオーソライズされるように調整すること。設計にあたっての選択肢及び自由度をしっかり考慮すること。そして一番大事なのは、決めた原則とおりにブレなくインプリすること。 どのHTTPステータス(success/error)をどのシチュエーションで採用するか。 204もしくは200をPOSTで使うか?PUTで使うか? 4xx番台のコードの一貫性。 bodyにエラーメッセージを追加するのか。 認証はどこで? ヘッダー?もしくはURLパラメータ? リソースの階層はどうするか。 忠実にRESTfulとするのか、RPCのようなエンドポイント(/inventory

  • シングルページアプリづくりのJavaScriptフレームワーク比較 - ワザノバ | wazanova

    http://blog.andyet.com/2014/08/13/opinionated-rundown-of-js-frameworks 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 開発言語やフレームワークの比較は、参考になるところはありつつも、その結果、不愉快な気分になる人がいるわけですが、それを懸念して、「(これを読んだ人は、他人の)意見を読んでいるだけだと思い返してほしい。貴方にどうすべきだと言ってるのではなく、自分にもしくはチームのために何がよいかは自分で判断すべきこと。」と前置きして、Henrik Joretegが、JavaScriptフレームワークについて私見をシェアしています。 反対意見も併記しようと思ったのですが、TwitterやHNでの反応がまだないようなので、注目すべきコメ

  • CodePen: CSSの構成と方針 - ワザノバ | wazanova

    http://codepen.io/chriscoyier/blog/codepens-css 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約5時間前 GitHubやLonely Planetに触発されて、この手のエントリーが続いています。今回は、CodePenのChris Coyierのブログ。 Overview SCSS Autoprefixer RailsのAsset Pipeline スタイルの方針はあるが、目的はほぼ見た目の整合性をとるため 「classを多用する」以外に、アーキテクチャは採用していない ページ当たり、2-3個のCSSファイル media queryの@mixinを使うが、.scssファイルごとにオンオフできるようにしている コメントを残すのには賛成派 Preprocessing S

  • Lonely Planet & GitHub: CSSの構成と方針 - ワザノバ | wazanova

    http://ianfeather.co.uk/css-at-lonely-planet/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約5時間前 CSS STATSが話題になったからでしょうか、自社のCSSの構成を分析して、記述方針について紹介するポストが続いています。 1) Lonely Planet Lonely Planet旅行サイトらしく、写真/動画満載の構成です。 Quick Facts Sass Indented Syntax 150+ソースファイル キャッシュを考慮してコンパイルしたCSSは二つのスタイルシートに CSSはページ当たり35kb (gzip) 基的には、remとpixelでサイズ指定。一部 em あり。 Preprocessor Railsを使っているが、Sprocketsは

  • CSSの詳細度をうまく操る - ワザノバ | wazanova

    http://csswizardry.com/2014/07/hacks-for-dealing-with-specificity/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 Harry Robertsがブログで、CSSプロジェクトをうまくスケールさせるためには、詳細度の影響をうまく抑えて、メンテナンス性を高めることがポイントだと解説しています。 どれだけ思慮深くソースの順や継承関係を整理しても、詳細度がトリガーになった上書き起きると、それまでの努力が台無しになる。詳細度のタチが悪いのはオプトアウトできないこと。 であるが、その悪影響をうまくコントロールする策としては、 CSSにおいてセレクタとしてIDは使わないこと。クラスを使うことを上回るメリットはない。そもそも、IDでできることはクラスで

  • サイトパフォーマンスを上げるJavaScriptとCSSの使い方 - ワザノバ | wazanova

    リアルタイムアナリティクスのサービスを提供しているGoSquaredがエンジニアブログで紹介しているのは、サイトパフォーマンス向上の工夫。今回は、アセットのダウンロードやパースのところでなく、遅延をおこさずにスムーズに描画するかというポイントに絞っています。 典型的なスクリーンの描画フローでは、フレームごとにブラウザがJavaScriptを評価する。もしJavaScriptによって修正されていれば、エレメントのためのスタイルやレイアウトを再計算する。次に、ページをいくつかのレイヤに描いていき、レイヤをスクリーンにあてはめるのにGPUを使う。各ステージごとに、ウェブページやアプリが行うことが違い、それぞれにコストがかかる。スムーズな60fpsを目指したければ、ブラウザは全てを16msで完了させる必要がある。 JavaScriptがレイアウトを変更(margin, padding, width

  • モバイルAPIデザインのまとめ - ワザノバ | wazanova

    Natasha Murashevがブログで、API Strategy and Practice Conferenceにおける、Michele Titolo (先月、「 Ruby RoguesメンバとiOSエンジニアAPI議論」で紹介しました。)とEtsyのPaul Wrightの講演のポイントをまとめてくれています。 1) スピード ユーザは待ってくれない。300msで、リクエスト / レスポンスの処理 / ユーザに結果の表示をする。 2) RESTが常にベストとは限らない 以前のEtsyのAPIリソースはDBスキーマのミラーになっていた。クライアントがリスティングのリストを受け取ったら、ユーザがFavoritedに指定しているリスティングIDを取得するために、再度APIコールする必要があった。クライアントのAPIコールが増えると、クライアントのスピードが落ちる。また障害の可能性となるポ

  • ブランドをAPI化する - ワザノバ | wazanova

    An important trend is the API-ification of everything. As more and more business are accessible with a web API, the Internet becomes more and more powerful. - "New RFS -- Breakthrough Technologies by Sam Altman" (重要なトレンドは全てがAPI化していくこと。もっともっとビジネスがweb APIでアクセス可能になれば、ネットはもっともっとパワフルになる。) ウォッカで有名なAbsolutは、現在はフランスのPernod Ricardが親会社になってますが、元来はスウェーデンのブランド。欧米ではクールな広告宣伝をする会社として知られています。Eva Sjökvistは同社のコンシューマ

  • 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のルールを定義する必要が生じた場合は、一貫性を維持し

  • 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、テストのしやすさの重視については変