review rejected #2

minify しない xpi で再レビューを申請したところ、unknown version な sdk つかうなや!しね! ということで却下された。

確かに sdk は github のものを使っている。これで xpi をビルドすると、harness-options.json に含まれる sdkVersion は unknown になる。

でもここから落とすと最新バージョンがどれだかいまいち分かりづらいんだよねー。といってもしかたがないので、リリースバージョンの sdk を落とし、さらに公式ブログのフィードを購読することにした。

これで再申請するが、たぶんあと 2、3 回は reject されるだろう。

 * * *

ということで 1.9 の SDK でパッケージしてとりあえずアップロードしたところ:

Outdated version of Add-on SDK
警告: You are using version 1.9 of the Add-on SDK, which is outdated. Please upgrade to version 1.8.2 and repack your add-on

どうしろというのか。

ええいこのまま申請しちゃう。

documents?

Opera と Chrome 版の wasavi は既に公開されている。
https://addons.opera.com/ja/extensions/details/wasavi/
https://chrome.google.com/webstore/detail/dgogifpkoilgiofhhhodbodcfgomelhe

で、Opera 版のページで

Could you give me an explanation of vi command. I don’t use it but wasavi looks usefull.

というコメントがあった。vi は使ってないけど wasavi を見るとなかなか使えそうだから vi コマンドとやらを教えてくれよというわけだ。

wasavi のドキュメントをどうするか? というのはなかなか難しい問題だ。wasavi が備える vi コマンド、ex コマンドはだいたいのところ posix 準拠(を目指している)ので、*nix 向けの vi 用のドキュメントから得られる知識はそのまま wasavi に使えるし、vi のチュートリアルはぐぐればたくさんでてくるよ! とか適当な返事をしたのだけど、やはり公式なリファレンスはあったほうがいいのか。

もちろん、wasavi 特有のトピックスは文書化する必要はある:

  • wasavi 特有の set オプション
  • dropbox のファイルパス命名法
  • extension レベルの設定

しかし肝心の vi コマンド/ ex コマンドについては既に書籍にもオンライン上にもたくさん情報があるのだ。いまさら書いても大いなる車輪の再発明ではないのか。

shortcuts in akahukuplus

赤福プラスのショートカット周りを書き直した。

以前にも書いたことがあるが、以下のショートカットが有効になる。ただし、カーソル移動系は古い(8 までの)IE では動作しない。

  • textarea / input[type=text] にフォーカスがある場合
    • Shift+Enter: 送信
    • Esc: フォームからフォーカスを外す。フォームが最小化可能である場合は、最小化する
    • Ctrl+S: カーソルを左へ1文字移動
    • Ctrl+D: カーソルを右へ1文字移動
    • Ctrl+Q: カーソルを行頭へ移動
    • Ctrl+P: カーソルを行末へ移動
    • Ctrl+H: カーソルの前の1文字、または選択範囲を削除
  • ない場合
    • Insert または i: コメント欄にフォーカスする
    • r: futaba.htm ~ 10.htm の場合、ページ先頭へスクロールした後リロードする。レス送信モードの場合、続きを読めるなら続きを読む。そうでなければリロードする。カタログモードの場合、リロードする
    • g: ページ先頭へスクロールする
    • Shift+g: ページ末尾へスクロールする

review rejected

AMO に提出した Firefox 版 wasavi が reject されてた。

がーん…というほどでもなくて、実は確実に reject されそうな仕様があった:

  • wasavi の iframe のソースとして appsweets.net サーバ上のファイルを参照している: iframe の src に resoure: スキーム下のファイルを表示できないので。その件で reject されたらむしろ代替策を聞きたかった

があるのでそれ関連だろうと思ったら、「ソースを minify すんな!死ね!」という暖かいお便りだった。

wasavi のエクステンション内の javascript ソースは minify をかけている。過去の記事の通り、Firefox 版に関してはきつい minify をかけると誤動作するので、ゆるい(行頭からのインデントを取り除く程度の)minify をかけているのだが、うーん Firefox 版に限ってはまったく minify しないほうが良いのかな。

それにしてもまったく minify しないとさらに Firefox 版のサイズだけがぶくぶくと太るなあ。うーん。

ちなみにレビューしていただいたのが Pentadactyl を作っている一人だったようなそうでないような気がしたが、まあ気のせいだろう。vi(m) 繋がりということなのか…?

ということで Firefox 版はやっぱり公開までしばらくかかりそうである。いやちゃんとレビューしてもらえるのはすごいありがたい。逆に言えば、機械的なチェックだけで通っちゃう Chrome とか、体裁が整ってれば通っちゃう Opera が不安だということだ。

akahukuplus #2

赤福プラスの extension 版では、「続きを読む」で得たコメント群や読み込んだ画像を web sql database に保存している。このとき、画像については blob として保存していて、その blob は BlobBuilder オブジェクトを経由して生成していたのだが、BlobBuilder は deprecated になり、Blob のコンストラクタが使えるようになった。少なくとも仕様上は。

var bb = new BlobBuilder;
bb.append(array_buffer_variable);
var blob = bb.getBlob();

などとやっていたコードが

var blob = new Blob([array_buffer_variable]);

となる。

で……。

Opera 12.01 では、window.BlobBuilder はなくなっている。BlobBuilder がなくなっているということはつまり、Blob コンストラクタが使えるようになっているんだなー、と普通に考えたらそうなる。

しかし、Opera 12.01 では Blob コンストラクタを呼ぶとエラーになるのであった。したがって、Opera 12.01 ではどうあがいても blob を生成できない……?

ひどい話だ。もしこういうふざけた真似を、たとえば Mozilla がしでかしたら、怒り狂って bugzilla に同じバグレポートを 2 万件くらい登録するくらいの勢いだ。

しかし Opera なので。死んだ目で「まあ Opera だからね……」とつぶやくしかないのであった。まあ Opera だからね……。

 * * *

と思ったら勘違いしていた。そもそも Opera で BlobBuilder がサポートされたこと自体がなかった。おお、つまりこの記事自体が何の意味もなかったことに……。でもまあ、Opera だからね……。

cygwin broke #2

Cygwin が壊れたせいなのか、アップグレードしたせいなのか、Subversion の調子もおかしくなった。エラーメッセージを見る限り、Subversion 内部で使っている sqlite に対して正しくクエリを投げられていないようだ。


$ ldd /usr/binsvn
(snip)
cygsqlite3-0.dll => /usr/bin/cygsqlite3-0.dll (0x6ead0000)

だそうなので、cygsqlite3-0.dll に何か問題がある?

Cygwin のインストーラは、各パッケージについて、直前の安定版をインストールすることもできる。現在インストールしてある。3.7.12.1-1 に代えて、3.7.3-1 に戻せばもしかしたら直るかもしれない。

しかしまあ、Cygwin の Subversion が使えなくても TortoiseSVN でなんとかなるのでこのまましばらく放置してしまうかもしれない。

cygwin broke!

Opera で Adobe のとあるページを見たら、Windows ごと固まってしまったのである。マウスポインタは動くが、表示されているものは単なる絵になってしまった。何も反応しない。Ctrl+Shift+Esc (タスクマネージャのショートカット) も効かず、Ctrl+Alt+Del も効かない。

しかたがないので電源落とした。

Opera のバグかは定かではない。今日はそもそも PC の調子が悪かった。スリープから起こした時点から妙に PC 全体が重かったのだ。まるで 128MB しかメモリがない PC がスワップしながらかろうじて動作しているみたいだった。Opera は単に不安定な状態に最後の止めを刺しただけなのかもしれない。

で、困ったのは Cygwin が起動しなくなってしまったことなのだ。なにやら cygreadline7.dll のベースアドレスが違うよ的エラーが出る。readline まわりが初期化できないだけっぽいので ash は起動することは起動するのだが、なんだか気持ち悪い。

Cygwin が正しく起動しなくなったとき、それを解決するのはコマンドプロンプトで /bin/rebaseall である。というかぐぐっても rebaseall 以外の解法が見つからない。そんなわけで、Cygwin 関連のプロセスをすべて落とした上で管理者権限のコマンドプロンプトで ash を起動して rebaseall したのだが、しかしなお Cygwin は起動しない。rebaseall -v してみても cygreadline7.dll はリベースされてないようなのでさもありなんという感じだ。

ということで割と困ってしまったのだが、Cygwin の setup.exe を起動してみたところ、libreadline パッケージが新しくなっているようなので単に Cygwin 自体をアップグレードしたらとりあえず ash 自体は起動するようになったようだ。ふーん。うーん?

教訓: Cygwin がぶっこわれて、rebaseall してもダメなときは、起動しない原因となっている dll を含むパッケージを再インストールしてみる

akahukuplus

某掲示板の閲覧を快適にするためのツール、赤福プラスというものがあるのだが、こちらも chrome 版の manifest を更新した。

ところで赤福プラスには閲覧しているスレッドを保存する機能があるのだが、これはブラウザ側で生成した mht をそのままこのサーバへ送信し、サーバへ一旦保存し、それをダウンロードするという、なかなか無駄なことをしている。今では Chrome はサンドボックス化されたファイルシステムを扱える。つまりがんばればサーバを経由することなく mht を生成できるはずである。

しかしそれを素直に使うか? というと微妙だ。なにより Opera がまだ対応していないし、将来対応するかも不明だ。そしてそもそもサンドボックス化されたファイルシステムというのがなんか筋がよくない気がするのだ。ローカルの環境と完全に隔離されているのなら、blob を含めて何でも保存できる IndexedDB と機能がオーバーラップする。たぶん Opera も IndexedDB はそのうち実装するだろう。moveTo() とか copyTo() とか使えるのは分かりやすいといえば分かりやすいが……。

applied for reviewing #2

Chrome、Opera、Firefox のそれぞれの公式エクステンション配布サイトへ申請した。

申請した後のレスポンスが各々違うのが興味深い。

Chrome の Web Store は人の手によるレビューはないに等しいようだ。この辺はいかにも google らしい。Opera は人手なんか足りてないだろうにレビューをしてくれる。提出して数時間で返答が来た(extension の紹介のための description が簡潔すぎるからもっと詳しく書けや、というものだったのでコードレビューにはまだ至ってないようだ)のには驚いた。レビュー開始されるまで何ヶ月かかるか? と冗談でなく思っていた。

Firefox は最近になって、レビュー方法が 2 種類になったらしい。full review と preliminary review だ。後者の方はその名の通り事前審査ということで、完全な審査が行われる前でもとりあえず公開される形式。ただし AMO で検索しても出てこない。あくまで少数向けに公開してバグ取りしましょ…という段階を経るためのもののようだ。とりあえず preliminary review で申請した。

いずれにしても正式に公開されるのはしばらくかかりそうだ。

applied for reviewing

Chrome、Opera、Firefox の各エクステンションの公式配布サイトへ、ぼちぼち申請している。Chrome、Opera は申請は特に問題なく進んだ(申請が終わっただけ。公開はまだされてないと思う)。

その調子で、Firefox の AMO にも申請しようと思って Firefox を立ち上げて、AMO へ行って、xpi をアップロードしろというから青いボタンを押したわけですよ。だいたいこのパターンだとアップロードするファイルを指定するためのダイアログが出るんだろうなーなどと予測しつつ。

で、どうなったか。

一向に何も起こらない。ボタンを押しても何も変化が起こらないのである。Opera だとこういうことはわりかし起こりうるので、それを見越して Firefox を立ち上げたのだが……。

そういうわけで、まさかと思いつつ、Chrome を立ち上げてアップロードボタンを押してみたら何事もなくアップロードされたのであった。単にうちの環境の問題ならいいんだけど、もし普遍的な不具合であるならあまりと言えばあまりにみっともないのではやく直したほうがいいと思います。

ちなみにアップロード直後の機械的なスキャンで、やたら多くの警告が出たのでひとまずそれを直さなくてはならない(github 上の SDK を使ってるのが原因だと思う)。

とりあえず今んとこそんな感じ。