Hatena::Groupsubtech

微熱 everyday

-> 10 { 02 / 05 }

Firefox アドオンの BarTap が life changing な件

17:23 | はてなブックマーク - Firefox アドオンの BarTap が life changing な件 - 微熱 everyday

久しぶりにこれは!と思った addon なので紹介。

タブを大量に開いているとFirefoxを起動する度に大量の読み込みが発生するのでFirefoxの再起動が億劫になってしまうけれども、これがあれば最低限のタブだけ読み込んでくれるので安心です。ツリー型タブとの共存も可能。

https://addons.mozilla.org/ja/firefox/collection/piro_favorites

と piro たんが紹介してるように、Firefox をタブ開きまくりで再起動>タブロードが一気に数十個走る && basic 認証のダイアログでまくる(マスターパスワード使ってると防げない)でムカーというのが無くなって超快適に!piro++, philiKON++

vimperator 使ってれば、要らないタブ消して落ち着いた頃に :reloadall すれば全タブロードを後にできるし快適。

トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20100205

-> 10 { 01 / 26 }

Firefox 3.6 + Vimp 2.2 で yy すると utf8 が URL エンコードされずコピーされてしまう

15:31 | はてなブックマーク - Firefox 3.6 + Vimp 2.2 で yy すると utf8 が URL エンコードされずコピーされてしまう - 微熱 everyday

ので、前のような挙動に戻したかったけど、ツイート(甘)したところ @anekos さんと @teramako さんが教えてくれた!ありがとうございます!

teramako
 copy.js を使っているならば :copy! buffer.URL でいけますよー
anekos  
 :js util.copyToClipboard(buffer.URL) でいけます。

というわけで、vimperatorrc に以下を追加して解決!

" Yank での URL コピー時にマルチバイトを URL エンコードしたものにする
noremap yy :javascript util.copyToClipboard(buffer.URL);<CR>
トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20100126

-> 10 { 01 / 13 }

Ruby の Object#hash

22:44 | はてなブックマーク - Ruby の Object#hash - 微熱 everyday

nil.hash したら 4 だったので調べてみた。

$ ruby --version
ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux]

puts ObjectSpace._id2ref(0) #=> false
puts ObjectSpace._id2ref(1) #=> 0
puts ObjectSpace._id2ref(2) #=> true
puts ObjectSpace._id2ref(3) #=> 1
puts ObjectSpace._id2ref(4) #=> nil
puts ObjectSpace._id2ref(5) #=> 2
puts ObjectSpace._id2ref(6) #=> foo.rb:8:in `_id2ref': 0x6 is not id value (RangeError)

5まではあり、6,7,8は RangeError で追記・7は3でした

puts ObjectSpace._id2ref(9) #=> 4

になるのが解らない…。

あと jruby 1.4 では結果が違った。

$ jruby --version
jruby 1.4.0 (ruby 1.8.7 patchlevel 174) (2010-01-11 6586) (Java HotSpot(TM) Client VM 1.6.0_17) [i386-java]

puts ObjectSpace._id2ref(0) #=> false
puts ObjectSpace._id2ref(1) #=> 0
puts ObjectSpace._id2ref(2) #=> true
puts ObjectSpace._id2ref(3) #=> 1
puts ObjectSpace._id2ref(4) #=> nil
puts ObjectSpace._id2ref(5) #=> 2
puts ObjectSpace._id2ref(6) #=> nil

nunanuna2010/01/14 10:00こんにちは。
Fixnumのobject_idはCRubyの実装上2n+1になっています。
なので、7がRangeErrorということはなくて、手元では
$ ruby -v -e 'p ObjectSpace._id2ref(7)'
ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-linux]
3
という感じです。

CRubyの実装については、
http://web.archive.org/web/20060925165802/www.loveruby.net/ja/rhg/book/object.html
の「VALUE埋め込みオブジェクト」あたりを読んでみてください。

secondlifesecondlife2010/01/14 10:44詳細な説明ありがとうございます!
なるほど、6 は Qundef なのですね。その他も VALUE 埋め込みオブジェクトを読んですっきりしました。
また手元でも ObjectSpace._id2ref(7) は 3 でしたすいません…。。

トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20100113

-> 09 { 12 / 28 }

Google Chrome の content script で、UnsafeWindow 的な空間でコードを実行

21:06 | はてなブックマーク - Google Chrome の content script で、UnsafeWindow 的な空間でコードを実行 - 微熱 everyday

var executeBrowserContext = function(funcOrString) {
    var code = "javascript:(" + encodeURIComponent(funcOrString.toString()) + ")();";
    location.href = code;
}

とか書いておけば

executeBrowserContext(function() {
    alert(Hatena);
});

と実行できる。もちろん、Fuction を toString してるだけなので、コンテキストは UnsafeWindow 的なユーザが閲覧しているページの空間となる。最初 Fuction#toString() で整形されるのって Firefox だけでしょ?っておもってベタに文字列を書いていたらチョさんにできるよといわれたのでためしたら普通にできた。

これ以外にも script タグを作って挿入する方法がある。

トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20091228

-> 09 { 12 / 21 }

cmd.exe で for ループ

13:55 | はてなブックマーク - cmd.exe で for ループ - 微熱 everyday

for あったんだ!そもそも知らなかった…。cygwin 入れなかったりする環境で地味に便利だなー。

C:\> for %i in (*.jpg) do adb push %i /sdcard

ヘルプ。いろいろある。

for /?

h2uh2u2009/12/22 07:00%WINDIR%\Help\ntcmds.chmを読むんだ!!1
Win7にもあんのかな?w

secondlifesecondlife2009/12/22 10:29XP だと
> このヘルプ ファイルのトピックは、ヘルプとサポート センターに統合されています。これらのトピックを表示するには、[スタート] ボタンをクリックし、[ヘルプとサポート] をクリックします。
となるお><

トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20091221