読者です 読者をやめる 読者になる 読者になる

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のゲリラ投稿です。何か書いてみようかなーと色々思案し、ネタを思いついたところで投稿しようとしてアドベントカレンダーのページを開いたら全部枠が埋まっていたので何日目とか関係なく仕方なくゲリラ投…

ES6 Promiseの何が美しいのか

この記事は某JavaScript Advent Calendar 2013の2日目ではありませんし、ECMAScript Advent Calendar 2013のn日目でもありません(そんなものは本稿執筆時点で存在していない事を確認しています)。単に締め切りのある原稿を書いていて、疲れてしまって好き…

システムプログラミング言語

第7回くらいのServo Readingで話したことをざっくりまとめた。誰がどれを話したかはmangleしてあるので御容赦を。 個人的にざっくりとTwitterなどなどをクロールして得た感想だけど、GoはCompiled Pythonともいうべき立ち位置な気がする。PythonとかPerlとか…

Servo Architecture vol.1: ConstellationとPipeline

第三回Servo Readingの成果として、最初はServoのCompositorの話を書くつもりだったんだけど、いきなりCompositorの話を出してもややこしいので、まずはConstellationとPipelineの話をしようと思う。 ブラウザエンジンと一口に言っても、よく知られている通…

Servo Reading part2: ざっくり全体構成編

初回はRust復習会だったんで、実質的な初回なんだけど。 とりあえず a4baa7fc でコードリーディング ざっくり全体構成を知るのに終止 獣道すら存在しない前人未踏のコードの繁みに分け入る楽しさ servo.rc (/components/servo.rc) 素直なことしか書いてない …

Rustの並列タスクモデルのメモ

「メモリ安全性と並列実行性に注目した言語」と語られる割に、メモリ安全性はともかく、どのようにRustの並列実行モデルが成り立っているのかについて語られる事が殆どない気がしたので、Rust Tasks and Communication Tutorial を大雑把ながら読み解いてい…

Servoコードリーディングに必要なもの

さすがにいつまでもServoへの一方的な愛を語るだけではいかんだろうと思い、腰を据えてServoを読むべくServoのコードリーディング会をやってみたのですが、とりあえず初回の結論だけ報告しますと Servo読むならRustのチュートリアルくらい全部目を通しておか…

Servoの現況概説的なおはなし

ゆるふわ系Rust勉強会で話した内容のスライドを公開していなかったので今更ながら話した事について簡単にまとめます。 About Servo Mozillaが行っているRustで書かれたブラウザエンジン実験プロジェクト Rustのセールスポイントである並列性・安全性にフォー…

GeckoView 計画

Firefox for Androidに関連して、ごく一部でにわかに注目を集めているバグがある。これね。 867517 – Gecko-based WebView for Android 概要 バグでは完全に実装に関連する話しかされてないので、イマイチ何を目的としているのかわかりにくい。なので、MLにM…

Firefoxでのフルスクリーン時のwindow.openの挙動

かなり今更感があるんだけど、Firefox 21にて、フルスクリーンモード時にwindow.openが開かれた場合の挙動に変更を入れたのでそれについての解説。 まず、Firefox でのフルスクリーンモードは3種類ある。 Windows, Linux, (あとは10.6までのOSXの)、アプリ…

asm.jsについてこれさえ知っておけば超絶ライフハックで明日から収入が三倍になって身長が伸びて血圧が下がって寿命が10年伸びて彼女が出来て合コンでモテて子供が神童と呼ばれ東大首席入学で末は博士か大臣かコースまっしぐらで老後も安泰で人類も平和になるだいたい10個くらいの何か

色んなニュースで取り上げられているけど、結局肝心のところが捨て置かれたままに数字とかアプローチの是非が巷で語られてるので補足します。 asm.js の js とは何か JavaScript の言語コア部分、ECMAScript のこと。DOM は入ってない。Mozilla が JavaScrip…

XUL アドオンの JS コードモジュール とロジックの関係

Firefox 拡張の作り方 (2013 年版) - ひだまりソケットは壊れない という、とっても素敵な記事が出ていたので、個人的な感想と勝手な補足をする次第です。 最近のアドオン開発はそんなに詳しくないんですが、XUL オーバーレイなアドオンに関しては何本か自分…

Firefox OS (b2g) のデバッガの現在

Firefox OS(b2g)はそんなに詳しいわけじゃないんだけど、概要だけ述べると、Firefox for Android と同様に Firefox の Remote Debugger を使うことになる。このリモートデバッグ用のプロトコルは Firefox/Gecko 独自のものなので、Chrome Developer Tools …

Web ブラウザは Web に対する GUI シェルである

2年くらい前から個人的に色んな場で話しているんだけど、現状のWebブラウザには「HTML5 で導入された API 群に対して、ブラウザ側が適切なUIを提供できていない」という問題点がある。 これについて分かりやすい例を挙げると、cookieの管理ビューはあるのにD…

Google Chrome 23 (OS X) の DOM fullscreen API のブラウザのUIの挙動が素晴らしい

Google Chrome 23 の話。 状況 Google Chrome 23 いいか! OSX 10.8 での話だ! Windowsはこんな挙動じゃないとか手抜きだろ DOM fullscreen API でページ中の要素がフルスクリーン化された状態 その状態で window.open() でポップアップを開いた場合 という…

Firefox (Windows) の Austrails Visual Design がコレジャナイ理由考えた

Firefox/Features/Theme Refinement and Evolution (Australis) - MozillaWiki 何かがコレジャナイ。でも Mac だとそこまでひどいわけでもない。てなわけでテキトーに考えてみた。 慣れ 慣れって大切だよね。慣れればそこまででもないかもしれないね! テク…

Mozilla 勉強会@東京 8thで話しました

そこの君、 バグ報告から始める Mozillaへのcontributeのやり方 教えてあげるからちょっと来なさい from saneyuki snyk さる12月1日に、Mozilla 勉強会@東京 8thでお話しさせて頂きました。発表の内容でお聞き苦しい点がありましたら申し訳ありません…

Firefox Remote Web Console

795691 – b2g fixes for the web console actors 798764 – Global console: add support for a global ConsoleProgressListener が修正されて Remote Web Consoleが追加された。Firefox 19から使えるようになる(予定)。 これが使えるようになったことで、F…

手元で Firefox をビルドせずに Mochitest を動かす

Mozilla のソースツリーには Firefox 自体のテストを行うツールが色々と埋まってて、その中に Mochitest というものがある。詳しくはリンク先を見てもらった方が速いんだけど、Mochitest では chrome 権限で動くコードを対象に含むテストができる。 で、これ…

Firefoxはミニマムか?

「『Firefox=本体ミニマム+as you like』な設計思想」みたいな認識って一部でどういうわけか支持されてるんだけど、個人的には正確ではないと思ってる。そもそも何でこうした認識がまかり通っているかというと幾つかの理由があると感じる: 「肥大化した」Mo…

multiple doorhanger

Firefox 15 for developers | Mozilla Developer Network になぜか載ってないので一応書いておく(一時期 doc-needed フラグついてたと思うんだけど)。641892 – Support showing multiple popup notification icons at the same time が Firefox 15 では修…

Mochitest

Mozilla のテストフレームワーク Mochitest についてのメモ。 Documents Mochitest | Mozilla Developer Network Browser chrome tests | Mozilla Developer Network Chrome tests | Mozilla Developer Network a11yのmochitestのドキュメントは行方不明 Not…

Archive API proposalに触ってみた

DOM

772434 – Blob support for Zip file contents が、一週間ちょいほど前にMozilla-centralに投入された。何事もなければ、Firefox 17で使えるようになると思う。これはどういうものなのかというと、zipなアーカイブファイルを取り扱うために、FileReaderのよ…

MacBook Air買って設定したこと備忘録

OS

前々からMacBook Airのエロい筐体に憧れていたのと、Windows 8買うのももう少し様子見した方がいい気がしたので買いました。13inch 128GBモデルに英字キーボードメモリ8GBマシマシで。 Firefox まあ適当にプロファイルはWinから流用 Firefox Syncでついにブ…

Flashblock アドオン と Click-to-Play の違い

最近、Firefoxに「ユーザーが許可するまでFlashなどのプラグインを実行しない機能(以下Click-to-Play)」が実装された。だが、似たような機能は昔からアドオンで提供されていて、 Flashblockというアドオンがある。 で、これらの違いってなんなのよというこ…

モバイルWebでH.264がデファクトスタンダードになった件について思ったこと

Web

Mozilla が H.264 をサポートへ、webM 一本化を断念 - Engadget Japanese Mozilla の H.264 サポートについてのメモ - hogehoge @teramako この記事、Twitterとかはてブを見ると結構衝撃的に受け入れられたみたいだけど、engadgetが記事にする数日前にCNETが…

SecureLogin Rebooted にショートカットキーを実装した

タイトルまんまです。SecureLogin Rebooted に、ショートカットキーを実装した。とりあえずCtrl + Alt + N で動くはず(Windows)。他のプラットフォームは未検証。Popup Notificationを表示させるショートカットキーを実装して、そこでユーザー操作を行わせ…

Win 8 の Metro UI はタッチで無くてもいい

UI

Windows 8 の Consumer Preview (実質 Beta )も公開されて、Windows の基本 UI が大幅に刷新されることが確定して、昨年秋の Developer Preview 以来の「Metro UI」ブームが続いているわけだけれども、個人的には違和感がひとつあったりする。それは、「Me…

Firefox のDL履歴の扱いがややこしい話

要約 「Firefoxでは、InPrivate時、DLマネージャのDL履歴は、InPrivateセッションのDL履歴が表示されるが、LibraryのDL履歴一覧にはノーマル時のDL履歴一覧が表示される。整合性の点でバグじゃね?」って話です。 Firefoxの話を詳しく 現在、Firefox では、…

MDN 翻訳への私家版イントロダクション

Mozilla Developer Network (MDN、古い略称は MDC とも) の翻訳への参加を考えている方に向けて、個人的に参照する機会の多いページへのリンクをまとめておく。日本語版の翻訳に関連するページは MDC とは - MDN からも参照できるので、より詳しく知りたい人…

Web ブラウザのリンク共有機能

Firefox を使ってる人なら今でも見かけると思うんだけど、Webブラウザには「このリンクをメールで送る」とか「このページのURLをメールで送る」みたいな、共有のための機能が存在した。今でこそTwitterやFacebookでリンクを共有するけど、そういうサービスも…

Geolocation API の精度

Geolocation API で現在地情報を取得する際、使ってる端末の Wifi アダプタを ON にしている場合だと、格段に精度が向上することに気付いたので調べてみた。大方、Wifi アダプタで拾えるアクセスポイントのmacアドレスを使ってるってことなんだろうけど、気…

Places のブックマークへの変更をnsITransaction経由で行う

Firefox は Places と呼ばれるブックマークと履歴のデータベースを持っていて、これには nsINavBookmarksService や nsINavHistoryService からアクセスできる(詳しくは Places - MDN 参照)。単純にブックマークを保存するだけなら、上の XPCOM インターフ…

PopupNotification.jsm を使うにあたっての注意点

Mozilla Vision 2012 のライトニングトークでも話したんだけど、PopupNotification.jsm を使うに当たってはドキュメント化されていない注意点とかバグが結構あったりする。 自分でこうしたバグを踏むかソースコードを熟読すれば回避できるバグなんだけど、そ…

Gecko の gfx の簡易メモ

最近(2012年1月現在)、Gecko の gfx が Azure とか Thebes とか ややこしくして仕方なかったので、色々調べて、Twitter にいくつか投げたのでメモる。 メモなので随時更新。割合てきとー makoto_kato さんから Twitter で補足をいただいたので追記 cairo …

Mozilla と Googleの契約話のその後のその後

Mozilla と Google は Firefox のデフォルト検索について新たな契約に署名しました | Mozilla Japan ブログ だそうです。 契約の期間は3年間で。具体的な条件は守秘義務の対象なので非公開。 契約期間3年と聞いて「あと3年www」とか騒ぐ人は、前回の契約も20…