2009-01-01から1年間の記事一覧

{__proto__:null} のススメ

.js

特に新しい話題でもないけど,使われているところをあまり見ない気がするので。 HashMap/Dictionary として narcissus/jsdefs.js#142 にもあるように,単に {} だと Object.prototype が付いて廻るので役に立たないことがある。辞書として使うなら {__proto_…

eval(uneval(function()_))

function f(){let _,{x}=0} uneval(f); //=> function f() {var _, var {x} = 0;} eval(uneval(f)); //=> SyntaxError: missing variable name というバグに出くわした。トップレベルなので var に変わるのはいいとして,問題は変に増えて構文エラーになると…

summary ⇔ content

Firefoxのフィードプレビュー画面、なんでショボいんだ、省略されてるのかわらかん http://twitter.com/33/status/5119532557 本当にそうだと思うので,書き換えてしまうことにした。 --- a/components/FeedWriter.js +++ b/components/FeedWriter.js @@ -45…

zap

ごるふ中に見つけたマクロ。 (= x (foo x ...)) ; ↓ (zap foo x ...) ; -1B~ 前々から x=x.foo(...) を x.=foo(...) と書きたくて仕方ないので少し感動。 無論 x は任意の place を取れる。 arc> (= me (obj name "satyr")) #hash((name . "satyr")) arc> (z…

プラグインからフォーカスを外す

93149 - [meta] No way to move focus between plugin and browser from keyboard を MozRepl 経由で外部から。 http://gist.github.com/201343↑こんな感じのスクリプトを書いて「ショートカットを作成」し,実行時の大きさを「最小化」にして適当なキーを割…

タブリストのポップアップ

*1 var p = gBrowser.mTabContainer.mAllTabsPopup; p.style.visibility = "visible"; p.openPopupAtScreen(screen.width, 0); //document.getAnonymousElementByAttribute(gBrowser.mTabContainer, 'anonid', 'alltabs-popup').openPopup(gBrowser, '', 0, …

scoring abbreviation

Alcor の Abbreviation Scoring goruby 的省略形に順位を付ける話。 IRC で話題に上った LiquidMetal を見てもっと簡単にできそうと考え古い方のパーサに入れてみた*1のが一月半前。個人的に重宝している。実装はコレ↓ // Represents how well an abbreviati…

slightly more ubiquitous

keyconfig FireGestures MozRepl + Ruby http://gist.github.com/160204 MozRepl + xyzzy http://gist.github.com/186012 Ubiquity#preview() は 0.5.5 から。 Firefox を前面に持ってくる方法が判らず,minimize();restore();focus() は苦肉の策。

comics.com

を快適にするためいくつか書いた。 comics.com simple | Userstyles.org http://wedata.net/items/29481 comics.com.ubiq.js 余談 SEARCH に選択肢は無いが,パラメータをいじれば逆順に表示可能。これで古い方から順に読める。 javascript:/*comics.com:rev…

ubigist (again)

http://ubigist.appspot.com/ jgate で cron が使えなかったので練習を兼ねて GAE + web.py で書き直してた。 タイムアウト制限が厳しい。gist が基本的に遅いので引っ掻きにくくて困る。 DataStore が使い辛い。重いし,一回で 1000 までしか取ってこれない…

拙作 0.5

0.5 API 対応*1のコマンドフィード。新作含む。随時更新。 Pack はてブ(([http //d.hatena.ne.jp/murky-satyr/20080902/1220311192])):hatebu-it, hatebu-hotentry, hatebu-comments, hatebu-search Google(([http //d.hatena.ne.jp/murky-satyr/20090306/go…

ねがこめ JP

ıɥsǝʞɐʇ (@accord) | Twitter ak on Twitter: "Ubiquity、プリリリースのものに比べてだいぶ軽くなったけど挙動がまだあやしい。あと Migemo とか使えないと日本語でコマンド打つのはつらい #Ubiquity" yoshy on Twitter: "ubiquity 0.5 にしたら, 勝手に …

for-let trap 2

.js

for(let a = 1, b = a; 0;); // NG (a is not defined) for(var a = 1, b = a; 0;); // OK let(a = 1, b = a){} // NG (a is not defined) let(a = 1, b = a) 0 // NG (a is not defined) { let a = 1, b = a } // OK (!) { var a = 1, b = a } // OK [http:…

Unfeatured Changes in 0.5

Things unlisted in the Release Note. Utils log(), signHMAC(), dump(), clipboard, json, OS Improved tabs, history Focus control with openUrlInBrowser() Extra arguments of setTimeout() Faster trim() CmdUtils absUrl(), previewList(), onUbiqui…

RegexpTrie

次パーサで必要になったので弾さんの Regexp::Trie を JS1.8 に拝借した。 http://gist.github.com/130917欲しい機能を若干追加したとこ以外はほぼ逐語訳できたと思う。

for-let trap

.js

var a = []; for each(let i in '123') a.push(function() i); [f() for each(f in a)] // => ["3", "3", "3"] ["1", "2", "3"] となりそうでならない。 for(let k in o); // ↓ The scope of for-let lies *out* of the loop block. { let k; for(k in o); }…

E4X traps

.js

散々ハマった後でようやく原典に当たった。そのメモ。 toString p.innerHTML += <b>NG</b> p.innerHTML += <b>NG</b>.toString() p.innerHTML += <b>OK</b>.toXMLString() XML.prototype.toString = function toString() this.hasSimpleContent() ? this.text().toString() : this…

gist logs

http://gist.github.com/105913 のおかげでやり方が判ったので Revisions のところに commit log を表示するのを書いた。 http://gist.github.com/107780.txt?.user.jsログ付きで更新してる人が自分以外に見つからず哀しい。

こみった

になった

GImageHacks

風柳亭: 【AutoPagerize】Google 画像検索対応スクリプト(AutoPagerize本体をいじらない版) マルチブラウザにしてあるから長くてびっくりした。 http://gist.github.com/99062.txt?.user.js やってることはシンプルなのでぐりもん専用なら短く書ける。 てか…

with trap

.js

javascript:with({f:function(){return(this.f)}})alert([f(),(f)(),(f,f)()]) 時々嵌る。

gcalendar

微妙な備え付けコマンドを置き換えるシリーズ。 http://gist.github.com/90368 (add-to|check)-calendar を統合。 ページ切り替え・リンクを有効。 「gcalendar (date) (> event)」より「gcalendar (date-or-event)」のほうが使い易いと気付いてそうした。今…

shorten-url

主な短縮サービスをまとめた。デフォルト設定付き。 http://gist.github.com/90718 cmd.icon, cmd.synonyms, noun.default を動的に変えてみる実験。 こうして並べると TinyURL の野暮ったさが目立つ。

ubigist

http://ubigist.appjet.net/ 八万件ひっかくのに思ったより手間取る。 フィード吐かせる段階で更新日時の取り忘れに気付く。 http://gist.github.com/82228 のアイデアが秀逸。

hit@hint bookmarklet

ちゃんと動いてるっぽいので移植。 http://gist.github.com/89131javascript:"hit@hint",['http://gist.github.com/89131.txt',function(d,i,e){for(i=this.length;--i;d.body.appendChild(e))e=d.createElement('script'),e.src=this[i],e.charset='utf-8'}…

0.1.7 メモ

色々と重なって更新できないまま一週間ほど経ってしまった。 __PROCESS_INPUT_DELAY の追加 キー押下から入力文字列がパースされるまでの待ち時間。デフォルト 50 ms。 これに伴い DEFAULT_PREVIEW_DELAY (「コマンド確定からプレビュー表示までの待ち時間」…

4u

STRAIGHTLINE™ http://gist.github.com/83193

diff

http://d.hatena.ne.jp/powchin/20090319/1237461535 に触発され,ライバルの一つであるところの google-diff-match-patch を使ってみた。pretty HTML と patch の両方*1を開く。 diff-tabs 現在のタブと別タブの差分 diff-selections 選択範囲二つの差分 ht…

switch-quote

#\" と #\' を入れ替え。 (defun switch-quote (&optional (n 1)) (interactive "p") (if (> n 0) (if (looking-at "[^\"']*?\\([\"']\\)") (let ((q (match-string 1))) (goto-char (match-end 1)) (delete-backward-char) (insert (if (string= q "'") #\"…

elasty

「 max-suggestions 16 」とかするようになり Simpli9uity では不便になったので Ubiquity Evolved のレイアウトを真似つつ高さは可変のスキンを書いた。 http://gist.github.com/80593display:inline-block 様々。 + 0.1.7 のプレビュー高さ固定化により単…