Virtual DOMのアルゴリズムが知りたくてvirtual-domのコードを読んだ話

Reactの登場以来気になっていた、Virtual DOMアプローチの具体的な差分抽出手法について、virtual-domを読んで確認してみた。 Reactをいきなり読むのは面倒くさかった・ミニマムな実装から読みたかったというのが、こっちを選択した理由。Reactのアルゴリズ…

Servoの現状(2014年Q2)

Servoの現況概説的なおはなし - snyk_s logの方を未だに参照されてる人がなんか多いみたいなので。 Servo parallelism from Tetsuharu OHZEKI スライド自体は先日のブラウザエンジン先端観測会で使ったものそのものなんだけど、2014年Q2現在の現状としてはこ…

LL Diver 夜の部『帰ってきただめ自慢』に #Rustlang 枠として参戦します

今年2014年のLL Eventである、LL Diverの夜の部、『帰ってきただめ自慢』にRust枠として出演する事となりました。 僭越ながら、日本Rust界の大家であるMasanori Ogino氏を差し置いての参戦となりますが、他の日本○○界を代表する歴々に負けずに、ぜひともRust…

Windowsを使うWebフロントエンドエンジニアだった頃の道具一揃え

前職ではWindowsを使ってWebフロントエンドエンジニアをやっていたんだけど、そのときに自分の開発機に入れていたツール群とかを徐々に忘れてしまいそうだったのでメモを兼ねて書いてみる。Web系=OSXということでノウハウがどれもWin向きではないということ…

JS界隈にIDLもしくはd.tsを併記・同梱する文化が根付いてほしい

前置き 最近、ウェッブフロントエンドエンジニアらしく各種JavaScriptのライブラリを眺めて、調査・選定しているのだけれども、その過程を通じたこととして、多くのライブラリが、ドキュメントのAPIの説明が貧弱すぎる。 jQueryのドキュメントが腐っていると…

ServoのDOMバインディングの話

Servoのリポジトリ内にDOMバインディングのデザイン覚え書きを投入したので、現時点での設計について、そろそろ日本語で説明しておく(英語版は結構前からServoのWikiに書いています)。 この記事の中で使うSpiderMonkey API用語は、結構古いものだったりす…

Web ComponentsとHTMLのセマンティクスと自分の将来予測

Custom Elements W3C Editor's Draft 18 June 2014を元に書いた。 昔、関連仕様のどこかで今回と似た話を見た記憶が有るんだけど、どこにあったか忘れたので、改めて自分の解釈として書いてみる。 Custom Elementで既存の要素を拡張する Web ComponentsのCus…

Rustで値のmoveが起こる場合

Rust v.0.11pre時点での情報です。 Rustにおけるムーブセマンティクス だいたいC++のそれと同じものと理解してるんだけど、おさらいとして。 Rustの言語セマンティクスの一つに、メモリの所有権(Ownership)というものがある。これは「このメモリ領域を自身…

状態を持ちたい訳ではないが全部関数の組み合わせにしたい訳ではない

何でもかんでもインスタンスを作る系統のオブジェクト指向は、本来持たなくても良い状態も持ってしまうコードを書きがちだしテストしにくいしデバッグしにくいので、基本的に参照透過な関数の組み合わせにするのが好きなのだけれども、そうはいってもArray.p…

ブラウザエンジン先端観測会というイベントをやります

やります http://atnd.org/events/52121 本当に中身を観測するだけの会です 好奇心を満たすのが第一目的 いつやるの 7月上旬 どうしてやるの 色んなところでブラウザエンジンの中身を話す人が増えてきたけれども、「効率的なWebアプリを作る」という文脈の話…

Apple SwiftについてのRustユーザーの感想

開祖Graydonの報告以外に何も言うことはありません。 get it now: http://www.rust-lang.org/ こちらからは以上です

#rustlang における構造体のmutabilityと`Cell/RefCell`

この記事はRust 0.10を基準に書かれている 前提 Rustの基本として、明示的にmutを付けて値の変更を可能にした(mutableにした)データ以外は変更することができない(デフォルトimmutableの原則とでも呼ぶべきかな)。これを構造体に適用した場合、構造体の…

訳語をむやみに作らない

自分が技術文書を翻訳するときに気をつけている(こだわっている)こととして、「訳語をむやみに作らない」というものがある。 Rustのドキュメントを読んでいると非常に色んな独自の用語が出てくる。arm, owned, borrowed, box, lifetime, etc...... 典型的…

ES6の前にES5のベストプラクティスを改めて考えたい

歴史認識 だいたい以下のような流れだと認識している。 IE8以前を含むECMAScript 3暗黒時代があった この時代をベースにベストプラクティスが構築 + HTML5ブームが発生した 暗黒時代なんで結構つらいし、IE9じゃないとECMAScript 5使えないし、結局辛い Coff…

見つけた便利MV**ライブラリを紹介するときにjQueryをスケープゴートにするのをいい加減に止めろ

オレオレMV**フレームワークを紹介する際にjQueryを引合いに出して語る事案が多く、そこで語られるjQuery批判が的外れもいいところなのが散見されるので書きました。 Abstract MV**便利フレームワーク・ライブラリを紹介するときに、jQueryの一番イケてない…

Single Page ApplicationならService Worker待たなくてもWeb Workerで代替できるんじゃないの問題

題名の通りです 「別にService Workers待たなくても、現状のWeb Workersだけでモデル層の別スレッド追放が可能なのではないか?」という問題 対応ブラウザについては考えない Transferable Objectサポートしてなくても、どうせサーバーに問い合わせてた分は…

Promiseはコールバックに対する聖杯ではない

ES6ならびにDOM4にPromiseが投入されることとなり、すっかりJavaScriptでよく陥るコールバック地獄に対する至高の解決策のように扱われているPromiseだが、万能の解・聖杯ではない。 たぶん誰かが既に似たようなこと書いてると思うけど、とりあえず自分の思…

軽量オブザーバJSライブラリのrev.2をリリースした

いわゆるリリースノート(宣伝とも言う)です。 少し前にこのブログで書いた、JS向けオブザーバパターンライブラリのrev.2をリリースしました。 Release · saneyuki/observer-js · GitHub リリース概要 TypeScript用型定義ファイルを追加 ObserverSubject.de…

プライベートブラウジング時に「最近閉じたタブを復元する」機能が無いのはダメ

昨日のNightly 29でプライベートウィンドウで"Undo close tab"が使えなくなってるなーと思ったら、bug 956826 が原因っぽい。というわけでコメントしたんだけど、備忘録代わりに日本語でも書こうかなと。Twitterだとかなり文章長くなるし。 この挙動の変更に…

JS用のオブザーバーライブラリを作った

超単機能オブザーバーJSライブラリを作った。 saneyuki/observer-js 動機 既存の有名MVCライブラリのどれもが気軽に使える規模・サイズじゃなかったのと、フレームワークというほど大きなものが欲しかった訳じゃなくて、本当に単機能なものが欲しかったので…

Servoの夢

Rustについて、自分としては流行ってくれなくてもいいというか、別に流行ること自体は本当にどうでもよくて、言語自体の完成とServoが形になってくれさえすればそれでいいと思っている。Rust Samuraiなんてイベントやってるけれども、個人的に普及させる気が…

Rust 0.9リリースノート覚え書き

Rust 0.9が出たので、リリースノートを元に個人的に気になった箇所をメモする。メモ書きなんで、あんまりコンテンツ力考えてないですし、網羅的でもないです。真面目にリリースノート読んだ方がいい。 ちなみにC85で頒布したRust Dojoですが、内容は執筆当時…

Rust 0.9で`@mut`が消えた

Rust 0.9のリリースノート(仮)を読んでいたら、@mut has been removed. Use std::cell::{Cell, RefCell} instead.って一文が。マジすか。(他にも@が将来的な削除対象入りするとか面白いネタがいくつかある) てなわけで該当のPull Requestはこちら: Remov…

Rust言語で遊ぶにあたって大切なこと

とるべき基本的なスタンス 用語が一定しない Rustの公式リファレンス・チュートリアルでの名称と、開発陣のブログやTwitterでの名称が違うのはざらです。諦めましょう。たとえば、~はチュートリアルではOwned Boxと書かれていますが、owned pointerとかuniqu…

2013年何やったかのまとめ

ジョブがチェンジした 上の見出しの通りです。詳細は(少なくとも当面は)書きません。 Mozilla 何件かバグ直した ジョブチェンジした関係で忙しくなったので、昔ほどアグレッシブにはやってないけど、2013年も気になった物をちょこちょこと直してた。自分の…

C85お疲れさまでした

C85お疲れさまでした。足を運んでくださった皆様、ありがとうございました。 「こんなマイナー言語、どうせ10~15部くらいしか捌けないだろう」と思って、会場頒布分を30部としていたのですが、まさか11:30過ぎに完売するとは思っていませんでした。ありがと…

Rustでグローバルに影響するような状態を持ったプログラムを作る時はどうするか

具体的にはメインループを回して、ユーザーからの入力を受け付ける必要があって、且つ状態をいくつか持ちたい場合、Rust(0.8相当)ではどうするのが得策かという話。割とテキトー。 便宜上、グローバルと呼んでいるけど、「メインループに類するもので変更…

Gecko勉強会 2で話した内容の補足です

この記事はFirefox Advent Calender 2013の24日目の投稿です。 先日開催されたGecko勉強会 2で「Geckoは何者か Geckoはどこへ行くのか 非同期編」という題で、ブラウザがページを処理するにあたってどのような処理をしているのか、および、ここ数年で直面し…

冬コミ(C85)三日目にRustの同人誌を出します

表題の通り、冬コミ(C85、コミックマーケット85)の三日目に、Rust Samurai名義で、Rustについての同人誌「Rust Dojo」を頒布します。 内容および執筆者は以下の通りです。 次元(@dim7th)「Rust 入門」 makoto_kato(@makoto_kato)「RustでのTCP/IPネッ…

ブラウザの空間ナビゲーション

この記事はWeb Accessibility Advent Calendar 2013のゲリラ投稿です。何か書いてみようかなーと色々思案し、ネタを思いついたところで投稿しようとしてアドベントカレンダーのページを開いたら全部枠が埋まっていたので何日目とか関係なく仕方なくゲリラ投…