update 2015/3/31 @hirano_y_aa さんの指摘頂き訂正しました。 response.body の clone TextDecoder の利用 intro Service Worker の「オフライン以外」の利用第二弾です。 以前、 Service Worker で XHR のモック をしましたが、今回は Prefetch を実装してみようと思います。 prefetch とは 例えば /index.html が以下のような HTML だったとします。 <!DOCTYPE html> <meta charset="utf-8"> <title>title</title> <ul> <li><a href="1.html">1</a></li> <li><a href="2.html">1</a></li> <li><a href="3.html">1</a></li>
さらば、愛しき論理削除。MySQLで大福帳型データベースを実現するツール「daifuku」を作ってみた 先のエントリ「論理削除はなぜ「筋が悪い」か」で書いたとおり、データベースに対して行われた操作を記録し、必要に応じて参照したり取り消したりしたいという要求は至極妥当なものですが、多くのRDBは、そのために簡単に使える仕組みを提供していません。 daifukuは、RDBに対して加えられた変更をトランザクション単位でRDB内にJSONとして記録するためのストアドやトリガを生成するコマンドです。 % daifuku dbname tbl1 tbl2 > setup.sql のように実行すると、指定されたテーブル(ここではtbl1とtbl2)にセットすべきトリガや、更新ログを記録するためのテーブル「daifuku_log」を生成するCREATE TABLEステートメントなど、必要なSQL文をset
When an application puts a socket into LISTEN state using the listen syscall, it needs to specify a backlog for that socket. The backlog is usually described as the limit for the queue of incoming connections. Because of the 3-way handshake used by TCP, an incoming connection goes through an intermediate state SYN RECEIVED before it reaches the ESTABLISHED state and can be returned by the accept s
roguelazer's website: beating the compiler なかなか面白かったので翻訳して紹介する。 たとえば、97%の場合において、僅かな効率など忘れるべきである。。早すぎる最適化は諸悪の根源である。とはいえ、残りの重要な3%の機会を逃すべからず。 -- Donald Knuth 計測せよ。計測するまで速度の最適化を施してはならぬ。たとえ計測したにせよ、一部のコードが残りを圧倒するまではまだ最適化してはならぬ。 Rob Pike 最新のWebサービスを主体とした技術の業界に長年浸かった我々は、パフォーマンスの問題を忘れがちである。SQLAlchemy ORMの中で行うリクエスト一つが8,9秒かかる中で、関数呼び出しひとつを3ミリ秒最適化したところで何になるというのか。とはいえ、時にはそのような最適化スキルを養っておくのもいいことだ。今回は、ある簡単な課題を最適化
This blog post is outdated. Please read chapter “Generators” in “Exploring ES6”. This blog post is part of a series on iteration in ES6: Iterables and iterators in ECMAScript 6 ES6 generators in depth Generators, a new feature of ECMAScript 6 [1], are functions that can be paused and resumed. This helps with many applications: iterators, asynchronous programming, etc. This blog post explains how g
Why HTTPS matters Stay organized with collections Save and categorize content based on your preferences. Always protect all your websites with HTTPS, even if they don't handle sensitive communications. In addition to providing critical security and data integrity for both your websites and your users' personal information, HTTPS is required for many new browser features, especially those required
サーバーとの通信、HTML5のAPIを使ったアプリケーションの開発に必要不可欠な「非同期処理」について学びましょう。 非同期処理とは背景処理の「非同期」化サーバーとの通信を例に考えてみようPromiseパターン基本的な考え方コードの基本形(1)呼び出した関数がPromiseパターンに従っている場合(2)自分で作成する関数でPromiseパターンを利用したい場合非同期処理の「失敗」の扱い方(1)呼び出した関数の失敗通知を受け取る(2)自分が作成する非同期処理関数で失敗を通知する複数の非同期処理をつなげて順番に行う複数の非同期処理を並列に実行して、全てが完了したら最終処理を行う非同期処理とは背景Webブラウザは基本的に、JavaScriptコードを実行するとき、コードを上から順に1行ずつ実行します。 また、関数を呼び出すと、その関数の実行が終了するまで(return文によって呼び出し元の関数に
※ (2017/7/4: Chrome以外のブラウザとの相互運用性を考慮する場合は、Web Pushへの移行を推奨します。Web Pushについては[改訂版] Web Pushでブラウザにプッシュ通知を送ってみる[旧仕様対応版]にまとめています。(なお、AndroidやiOSへのFirebaseプッシュ通知と統合して運用する場合は、Firebase JavaScript SDKの利用を検討した方がよいかもしれません。)) ※ (2015/11/27: 関連してFetch APIの使い方を簡単ながら別記事に書いてみました。) もう既に、ググると参考記事がいくらでも出てくるような内容ではありますが、個人的にいろいろと上手く行かなかったりしたこともあるので、参考までにまとめてみました。 さて、Chrome 42 (Android版を含む(!))では、Service Workersとの組み合わせで
本記事の公開後の2016年7月にはてなにおけるチューニング事例を紹介した。 はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena - Speaker Deck HAProxy や nginx などのソフトウェアロードバランサやリバースプロキシ、memcached などの KVS のような高パケットレートになりやすいネットワークアプリケーションにおいて、単一の CPU コアに負荷が偏り、マルチコアスケールしないことがあります。 今回は、このようなネットワークアプリケーションにおいて CPU 負荷がマルチコアスケールしない理由と、マルチコアスケールさせるための Linux カーネルのネットワークスタックのチューニング手法として RFS (Receive Flow Steering) を
WebRTC is a set of browser APIs and protocols being worked on by the W3C and IETF standardization bodies. With WebRTC, developers can quickly add real-time peer-2-peer audio, video and data capabilities to their web applications through a set of standardised JavaScript APIs. WebKit today lacks support for this exciting new standard. Our intention is to add WebRTC support to WebKit, starting with t
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く