less RSS

ykskはかしゆかのアナグラムではありません。

Archive

Jan
16th
Sat
permalink

足がやわらかそうに見えないー。

permalink
10011601

10011601

Jan
13th
Wed
permalink

Skip RedirectorのSITEINFOフォーマット

少しずつパラメーターが増えているので組み立て方をまとめ。

url

  • 必須

スキップするURLの正規表現を指定します。()でグルーピングするとreplace_urlで後方参照を利用出来ます。

link

  • replace_urlを指定しない場合必須

ページのa要素、input、button要素を始めとするクリックイベントを付加された要素をXPathで指定します。指定された要素を自動的にクリック(クリックイベントをトリガー)して遷移します。

replace_url

  • linkを指定しない場合必須
  • 両方指定されていた場合はreplace_urlを利用

httpまたはhttpsで始まるURLを指定します。ページの内容はチェックせず、URLのみで遷移します。urlで指定した後方参照を利用することが出来ます。

site_url

リダイレクトページのサイトのURLを指定します。Chrome拡張で対応ページのリストを作る際のリンクなどに利用されます。

fixme

指定が間違っていたり既に古くなっていて動かない、調査が必要な定義に対して1を設定するとその定義は利用されなくなります。誰かが原因を調べます(たぶん)。サイトの構造が変わるなどして、もはや対応出来ないことが確認された場合、定義は消去されます。

Jan
7th
Thu
permalink

Chrome拡張版のSkip Redirector作りました

機能的にはGreasemonkey版と全く同じです。ソースはGitHubに置きました

クロスドメイン越えるためと、キャッシュを保持するために拡張にしました。

  • permissionsでwedataを許可
  • content_scriptからbackgroundにアクセス
  • backgroundで通信、レスポンスをキャッシュしつつcontent_scriptにコールバック
  • content_scriptでリダイレクト判定

きれいに分けて書けた:)

Dec
26th
Sat
permalink

iframeの挙動メモ

  • IEはiframeのsrcが空の場合でも遅延するような挙動。直後だと内容の取得が出来ない。Safari、Fxでは問題ない。動作的は同期扱いなので強制的に非同期にするといい?
  • IEで直後にiframe.contentWindow.document.bodyとかするとブラクラ
  • iframe内に書き込む処理が非同期だと上手く行かないようなので、とりあえず確実に取得することは保証しないことにした><

    var doc = iframe.contentWindow.document;
    doc.open();
    doc.write('foo');
    doc.close();
    
Dec
22nd
Tue
permalink

VMWare Fusionで起動時に共有フォルダのショートカットが作られるのを防止する

VMWare Fusion 3の共有フォルダのショートカットは消しても再起動すると復活する。デスクトップに何も置きたくないので設定で無効にした。

  1. 仮想OSをシャットダウン、VMWareを終了
  2. 仮想ファイル(~/Documents/Virtual Machines/Windows XP Home Edition.vmwarevmなど)のパッケージを開く
  3. 中に入っている.vmxファイル(例えばWindows XP Home Edition.vmx)をTextEditなどで開く
  4. hgfs.linkRootShare = "TRUE"を検索。hgfs.linkRootShare = "FALSE"に書き換えて保存

再び起動すればもう作られなくなっているはず。

Dec
14th
Mon
permalink

QUnit TextMateバンドルをCommonJS APIに準拠したQUnitに対応させた

最新版のQUnitCommonJSのAPI(初耳!)に対応したようなので、バンドルも合わせて変更しました。

名前が変更されたメソッド(旧名はエイリアスとして残る):

  • equalsequal
  • samedeepEqual===比較はstrictEqualへ)

追加されたメソッド:

  • notEqual
  • notDeepEqual
  • strictEqual
  • notStrictEqual

バンドルでも一応equalssameを残しました。非推奨のコメント付き。否定系のメソッドが入って分かりやすくなった気がしますね。

Dec
10th
Thu
permalink

BathyScapheからTumblrに投稿するAppleScript

試しに書いてみた。

Post to Tumblr BathyScaphe AppleScript

BathyScapheのスレで選択した文字列をTumblrのブックマークレットに送ります。3ペインモード(ブラウザを垂直方向に分割)で実行すると止まります。BathyScapheの仕様で情報が取れないっぽい。~/Library/Application Support/BathyScaphe/Scriptsに入れると動きます。

Gist色付かねー。

AppleScriptはスコープの扱いが変わってるのかな。作法が謎だけど少し分かって楽しくなった。

Dec
4th
Fri
permalink

iviewは画像リダイレクトをサポートしない

iviewのSITEINFOage2を追加した。

iviewではSITEINFOで指定するimageSourceimageSourceForReblogのURLがリダイレクトする場合、上手く画像を取得出来ないので注意。「302 found」のように表示される。今回はURLがページから組み立てられたのでconcatで合成したけど、ランダムだったりする場合は困りそうだ。

この記事のiviewのバージョンは1.1.3.0.20090714です。

Nov
20th
Fri
permalink

関数の最後のパラメータにundefinedが指定されているかを判別する

全部で判別は出来なそうだけど、最後のパラメータに関してはargumentsを使うと判定出来るようだ。

var foo = function(arg) {
    console.log(
        typeof arg == 'undefined',
        arguments.length
    );
};

foo(); // true, 0
foo(undefined) // true, 1

明示的にundefinedを指定した場合はargumentsに入る。

jQueryっぽくゲッターとセッターを1つの関数に書く時、普通は削除フラグにnullを使う。

attr('a', 1);
attr('a'); // 1

attr('a', null);
attr('a') // undefined

みたいな。JSON.stringifyのようにundefinedで値を削除するものと組み合わせる場合、関数もそれに合わせてundefinedで削除したかったので調べました。

attr('a', { a: 'foo' });
attr('a').a; // "foo"

attr('a', { a: undefined });
attr('a').a; // undefined

attr('a', undefined);
attr('a'); // undefined