タグ

ブックマーク / please-sleep.cou929.nu (12)

  • Steve Yegge の Google Platform Rant をもう一度読む

    2011 年の文章だけど、今でもかなり示唆深い。 Steve Yegge の Google とプラットフォームに関するぶっちゃけ話を訳した(前編) Steve Yegge の Google とプラットフォームに関するぶっちゃけ話を訳した(中編) Steve Yegge の Google とプラットフォームに関するぶっちゃけ話を訳した(後編) 以下は気になったポイントを引用しつつ、行間を読みつつまとめたもの。個人的な解釈も入っているので注意してください。 プロダクトとプラットフォーム まずシステムを “プロダクト” と “プラットフォーム” に分け、それらが根的に違うと言っている。 特定のセグメントに価値を届けるシステム (垂直統合的)特定のセグメントに機能を素早く提供できる完璧な要件定義をし、それをリリースするのが理想 プロダクト プラットフォーム プロダクトは特定のセグメントに対して価

    Steve Yegge の Google Platform Rant をもう一度読む
    efcl
    efcl 2020/04/23
    プラットフォームとプロダクトの違いの話。 Steve Yegge のGoogle+とAmazonのやつ
  • Chromium のコードを触ってみる

    Contributing to Chromium: an illustrated guide – Monica Dinculescu という記事が面白かったのでやってみた。Chromium へのコントリビューションのガイドということで、環境構築、コードへの手の入れ方から、ビルド、差分の送り方まで解説している記事。 題材としてはこのように、アバターのメニューに項目を追加するというもの。 さすがにパッチを送るわけにはいかないので、コードに差分をいれてビルドするところまでをやってみる。 環境構築 記事にもあるが、基的に Get the Code: Checkout, Build, Run & Submit - The Chromium Projects の内容が最新の状態に保たれているので、これに従う。 記事中に説明があるが、この wiki に無い情報としては、以下のビルドオプションの設定がお

    Chromium のコードを触ってみる
    efcl
    efcl 2015/03/03
    Chromiumのコードをもってきて変更してビルドするまでの手順の解説。 コミットしてパッチを出す手順 http://meowni.ca/posts/chromium-101/
  • Charles と modern.IE で本番環境での動作確認

    Web サイト上で動作する JavaScript を修正したので、番環境で動作確認したい。しかも IE で。こんな時は Charles というプロキシと modern.IE の仮想マシンを使うと、さくっとできる。proxy をたてて js へのアクセスをローカルに向け、modern.IE の Windows 仮想環境で動作確認できる。 以下はその手順。 当はどんな手段でもいいんだけど、Charles は操作が簡単だった。 Charles Web Debugging Proxy • HTTP Monitor / HTTP Proxy / HTTPS & SSL Proxy / Reverse Proxy 起動後、Tools -> Map Local -> Enable Map Local をオンにすると、ローカルファイルへの置き換えのルールを追加できる。 また Proxy -> Prox

    Charles と modern.IE で本番環境での動作確認
    efcl
    efcl 2015/02/08
    Charlesとmodern.IEを使ってIEでの動作確認 "js を他サイトに提供するようなプロダクトの場合、proxy を使って本番のサイト上でも動作確認"
  • browserify をはじめてみる

    Browserify を触ってみたメモ。 Browserify とは CommonJS のモジュールの仕組み、つまり Node.js の require をブラウザ上でも使えるようにするもの、ということでいいみたい。Readme を読む限りは、npm にあるモジュールをブラウザ上にもっていくために作られ始めたような印象をうけるが、ちまたのエントリーをみていると AMD に代わりに CommonJS でフロントエンドの依存関係の管理をする (RequireJS ではなく、Node.js 感覚で require 関数をフロントエンドで使う) ためのツールとしても使っていいようだ。 やりたいこと 複数の js ファイルの依存関係を記述したい 最終的に、依存関係を考慮した順番で、ひとつの js ファイルに結合したい 作りたいのは第三者のサイトに埋め込んでもらうスクリプト (サードパーティスクリプト

    browserify をはじめてみる
    efcl
    efcl 2014/11/10
    埋め込み配布を目的としてJavaScriptをBrowserifyビルドするにあたっての話。 bowerでインストールしたjQueryの依存関係の解決、browserify-shimを使ってCommonJSに対応してないライブラリを使う方法について
  • Friendly iFrame とサードパーティスクリプトのロード

    Friendly iFrame という、サードパーティスクリプトの呼び出し方法について調べた。手法自体はかなり古いもので、後述する iAB のドキュメントは 2008 年に出ているものだ。Google の DFP などでは現在でも使われている。 Friendly iFrame (FiF) とは サードパーティのスクリプト (広告タグや SNS のシェアボタン、ブログパーツなど) をページに埋め込む手法のひとつ。より狭義には、iAB が出す Best Practices for Rich Media Ads in Asynchronous Ad Environments (pdf) で説明されている、(主に) リッチアドのアドタグを設計・設置する際のベストプラクティス。 利点と他手法との比較 Friendly iFrame を他のサードパーティスクリプトの埋め込み手法と比較すると、ページのレ

    Friendly iFrame とサードパーティスクリプトのロード
    efcl
    efcl 2014/11/07
    サードパーティのJavaScriptをページに埋め込む手法について。 iframe内にスクリプトを埋め込む事で元のページに影響を与えないようにする
  • PhantomJS でネットワークのデバッグと SSL handshake failed

    PhantomJS で itunes の url に接続しようとするとエラーになり、デバッグしたいので方法を調べた話。 まず、SSL の通信なので、別のプロセスから tcpdump などで通信をキャプチャすることは難しい。 方法の一つとして、--debug=yes というコマンドラインオプションを渡すと、詳細なログをだしてくれるようだ。(ドキュメント には載っていないオプションだった) $ phantomjs --debug=yes crawl.js 2014-11-01T15:53:28 [DEBUG] CookieJar - Created but will not store cookies (use option '--cookies-file=' to enable persisten cookie storage) 2014-11-01T15:53:28 [DEBUG] Pha

    PhantomJS でネットワークのデバッグと SSL handshake failed
    efcl
    efcl 2014/11/02
    PhantomJSでSSL Protocolの指定をして繋ぐ
  • Burp Proxy で iPhone の通信をパケットキャプチャ

    iPhone アプリのデバッグや挙動調査のために通信を見てみたい。Burp Proxy というソフトで proxy を mac にたてておき、iPhone の proxy 設定を mac に向けて、いわゆる Man in the Middle 方式で通信を覗いてみる。仮想の SSL 証明書を iPhone にインポートすることで SSL 通信もキャプチャできる。JailBrake は不要。 必要なもの Burp Proxy iPhone 構成ユーティリティ 手順 Burp Proxy の起動と設定 proxy タブ -> option タブ -> proxy listeners にエントリがひとつあるので選択して edit Bind to address -> All interfaces を選択。ダイアログが出るが続行する Intercept タブに移って、”Intercept is O

    Burp Proxy で iPhone の通信をパケットキャプチャ
    efcl
    efcl 2014/01/19
    Burp Proxyを使ってMITMでのhttpsを見る方法
  • プライベートブラウジングモードの判定

    プライベートブラウジングモードのいろいろ - Please Sleep の続き。あるブラウザがプライベートブラウジングモード (Private Browsing, InPrivate Browsing, Incognito) であるか JavaScript で判定する方法について。 browser history sniffing の対策が入りプライベートモードの一般的な判定ができなくなったと思われたが、ブラウザによっていくつかの API の挙動が通常・プライベートモードで変化するため、それを利用して判定ができるということを教えていただいた。 @cou929 http://t.co/1OE9k3kJv9 プライベートブラウズ判定方法あります、SafariだとlocalStorage,DNT Firefox Chromeは https://t.co/mDDRfUeCP9 — ma

    プライベートブラウジングモードの判定
    efcl
    efcl 2013/12/16
    private mode判定ロジック
  • HTML5 Web Message のイントロダクション

    An Introduction to HTML5 web messaging - Dev.Opera を読んだメモ。MessageChannel は知らなかったので。 導入 Web messaging は異なるブラウジングコンテキスト間で、DOM を介すことなく、データを共有する手段だ。これには cross-document messaging (window.postMessage() など) と channel messaging (MessageChannel) の 2 種類がある。 Message イベント Cross document messaging, channel messaging, server-sent events, web sockets はすべて message イベントを発火させる。そのためまずは message イベントを見ていこう。 message イベ

    HTML5 Web Message のイントロダクション
    efcl
    efcl 2013/12/15
    postMessageやMessageEventなどAn Introduction to HTML5 web messaging - Dev.Operaについてメモ. iframeでのメッセージング
  • webkit ではサードパーティドメインの localStorage が sessionStorage になる

    iOS7 で 3rd party domain での localStorage の挙動 - Please Sleep のつづき。 iOS7 の Safari でサードパーティドメインの localStorage のデータがブラウザの再起動でクリアされているような挙動を発見した。W3C の Web Storage の仕様を読んでみると、今回の挙動と一致するものが “MAY” で規定されていた。というのがここまでのあらすじ。 webkit の bugzilla をみているとそれっぽいバグが見つかった。差分をみるとやはり今回の挙動と一致。webkit のコードレベルで確認がとれたという話。 webkit のバグチケット 見つけたバグはこちら。 Bug 115004 – Change approach to third-party blocking for LocalStorage 経緯として、こ

    webkit ではサードパーティドメインの localStorage が sessionStorage になる
    efcl
    efcl 2013/12/11
    サードパーティドメインの時にlocalstorageの代わりにsessionStorageが使われる
  • Sinon.js Code Reading

    モジュールのロードまわり lib/sinon.js がモジュールのエンドポイント sinon object の作成、環境に応じた初期化、ユーティリティメソッドの定義を行う spy や mock などの機能毎にファイルが分かれる lib/sinon/*.js に配置 lib/sinon/spy.js など sinon.js 大きくは以下のように sinon object を作って返す。 var sinon = (function() { function somePrivateFunction() {}; var sinon = { foo: function foo() {} }; return sinon; }()); node の場合、ブラウザの場合、busterjs の場合で異なった初期化を行う。 node の環境かどうかの判定は module.exports の有無で行う。 var

    Sinon.js Code Reading
    efcl
    efcl 2013/12/06
    Sinon.js コードリーディング. spyコンストラクタ
  • ブラウザのバグを見つけたときにやること

    paulirish/browser-logos · GitHub バグを見つける 表示系のものならスクリーンショットをとっておく すでに報告されていないか調べる ブラウザごとのバグトラッカーで検索してみる サポートフォーラムなどコミュニティに相談してみる ブラウザの種類とバージョンの絞込み 他のブラウザでは発生するか. 他のバージョンでも発生するか (stable を使っているなら beta や nightly でも見てみる等) テストケースの最小化 バグを再現させる最小のテストケースを作ります 今回出会ったのは表示系のバグだったので, html / css を削りながら現象を再現させていき, 同じ現象が起こる最小の html を作りました バグの報告先とフォーマットの確認 ブラウザごとにバグ報告のガイドラインがあるはずなので, それを読めばどのように報告すればよいかわかるはずです chr

    ブラウザのバグを見つけたときにやること
    efcl
    efcl 2012/12/17
    ブラウザのバグを見つけた場合の報告までの手引き. 主要ブラウザの報告ガイドラインと報告先がまとまってる
  • 1