Option/Maybeとかで解決していることを、さながらgolangのようにES6のdestructuring assignmentで解決する

ES6から使えるようになるdestructuring assignmentを使って、タプル的に返して受け取れば、複数の値を楽に受け取れるので、エラーハンドリング的なものが楽にできるようになりますよね!という話です。先日書いたライブラリで解決・緩和しようとしていた問題…

ES5の範囲でOption<T>型を表すライブラリ、option-t を作った

動機 初期状態で未選択なラジオボタンがあるようなフォームを作っている場合、ラジオボタンに対応するモデルの値を「この値は未選択である」というのをJSで表現するのは結構面倒くさい。チェックボックスであれば, booleanのどちらかで状態が確定するが、ラ…

CSSのcanvasとviewportとposition:fixedとpinch zoom

specを元にした概念の整理 間違いあったら教えて欲しい CSS 2.1におけるviewport CSS 2.1におけるviewportを説明するにあたり、以下のterminologyが必要となる canvas For instance, user agents rendering to a screen generally impose a minimum width an…

2014年やったこと(物書き業編)

log

MozillaのLevel 3 Committerになった だいたい三月ぐらいに。 Mozillaにはコミッタにアクセス権限がレベル形式で設定されていて、レベルに応じてパッチをlandできるリポジトリに制限がある。Core ProductsであるFirefoxなどのリポジトリ(mozilla-central/in…

Fluxとはなんだったのか + misc at 2014

はじめに VirtualDom - なぜ仮想DOMという概念が俺達の魂を震えさせるのか - Qiita を読んでいる前提で話を進めます。 結局”Flux”なんだったのよ 詳細については過去に自分が覚え書きを書いたのでそっちを読んでいただけると良いと思うけど、あれは 「MVCの…

Rustプログラミングにおけるデバッグ入門

これはRust Language Advent Calendar 2014の第1日目となります。 尚、本情報はRust 0.13.0-nightly@fac5a0767時点の情報を基にしております。 現実においてプログラムを書くにあたりデバッグを行わないということはありません。ですので、通常、我々はデバ…

Fluxの枠にURLルーティングを収める試行

JSer.info 200回記念祭の懇親会でざっくりアイディアだけ話していた記憶(酔っ払っていたので正確には覚えていない)なんだけど、実際に必要になったので試しに作ってみたという話。 モチベーション Fluxパターンを用いた設計を行なっている場合というのは往…

Fluxアーキテクチャの覚え書きを書いた

どこに書いたか忘れそうなので備忘でgist貼付ける Facebook提唱のFluxのメモ:http://facebook.github.io/react ...

React.js読んだ感想とかFluxアーキテクチャとか

この間、virtual DOM読んだついでにReactも読んでみた。 役に立つ話を書くつもりは一切無くて、感想だけ。 React.js 定数だけのファイルとか(まさに*hな感じ)、デザインや使い方について書かれたコメントなど、全般的にC++に類似するstaticなコードの流儀…

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なんてイベントやってるけれども、個人的に普及させる気が…