2006年 10月 29日

Creammonkey メモ

  • 名前順に実行
  • 別のスクリプトに定義した関数を呼べる (順番が決まっているので)
  • GM_* はもちろんなし
  • 書き換えるたびに毎回スクリプトをリロードさせなきゃいけない (すなわちスクリプトのリロードと、ページのリロードが必要)
  • 実行タイミングは onload (画像とかも全て読み込まれてから)

Safari の JS コンソールの出し方がよくわからなかったけど、OnyX の Safari の設定でデバッグモードにチェック入れたらメニューがでてきた。

EvalError
RangeError
ReferenceError
SyntaxError
TypeError
URIError
console
a
t
alert
event
frames
onmouseup
NodeFilter
CSSRule
length
print
opener
parent
scrollX
scrollY
XMLSerializer
menubar
defaultStatus
onblur
confirm
scrollBy
pageXOffset
pageYOffset
Node
toolbar
Image
onabort
onmousemove
scrollTo
onsearch
onmousewheel
screenLeft
onmouseover
crypto
screenTop
Range
status
onreset
onselect
document
onunload
onerror
innerHeight
innerWidth
defaultstatus
name
frameElement
offscreenBuffering
onscroll
history
Event
onresize
navigator
self
top
clientInformation
outerWidth
getSelection
blur
locationbar
DOMException
setInterval
scrollbars
clearTimeout
moveBy
alert
clearInterval
personalbar
Option
closed
focus
location
konqueror
outerHeight
screenX
screenY
statusbar
scroll
moveTo
resizeBy
resizeTo
window
screen
XMLHttpRequest
DOMParser
prompt
open
setTimeout
close
captureEvents
releaseEvents
addEventListener
removeEventListener
onchange
onclick
ondblclick
ondragdrop
onfocus
onkeydown
onkeypress
onkeyup
onload
onmousedown
onmouseout
onmove
onsubmit
onbeforeunload
showModalDialog

激しく便利

もしかして:

  • 激しく便意
  • 激しく便秘

RindaRing

Rinda::Ring 使ってなんかやりたい

hint

スクロール位置の永続保存

	var scroll = eval(GM_getValue('Scroll', "({})"));
	log("%1.o", scroll);
	window.addEventListener("load", function (e) {
		if (scroll[location.href])
			document.body.scrollTop = scroll[location.href];
	}, false);
	GM_registerMenuCommand("Save scroll positon for next time", function () {
		if (document.body.scrollTop)
			scroll[location.href] = document.body.scrollTop;
		else
			delete scroll[location.href];
		GM_setValue('Scroll', scroll.toSource());
		alert('saved');
	}, 's', 'control meta');
	GM_registerMenuCommand("Reset scroll positons", function () {
		scroll = {};
		location.reload();
	});

を test.user.js に書いてみた。Ctrl-Cmd-S で保存のつもりなんだけど、なんかショートカットちゃんと効いてくれない……
自動で全サイト保存するように最初は書いたんだけどうざいのでやめた。


というか、一番最初はブックマークにスクロール位置を保存して復元するっていうのをやりたかった。でも一発でブックマークする関数 (サイドバーに開くのしかないよね。チェックはずすのめんどいし) が見つからないのでやめた。

Rinda

TupleSpace の分散ってできんのかな。Linda をあとでちゃんと調べてみよう。

2006年 10月 28日

Finder

そういえば Finder って : を / として表示するのね

TCP RemoteGrowl

http://lab.lowreal.net/trac/changeset/371
他の remote 系と同じようなインタフェにした。一部違うけど
コマンドラインのほうは基本的に変わらず、アプリケーション登録に対応させたのでオプション増やした。
remotegrowl.pl も修正。やっと使えるレベルか

svn co http://svn.lab.lowreal.net/lowreal/c/growl/
2006年 10月 27日

svn

がっこの鯖に入れた svn が ssl 対応してなくて googlecode にコミットできない…… --with-ssl つけてリビルドちゅう

DAAP via SSH

http://wiki.mt-daapd.org/wiki/SSH_Tunnel に書いてあるやつなんだけど、なんか苦労した……
SSH プロキシはいいとして、ローカルに mDNS プロキシをたてるのがよくわかんなくてこまった。
結局 http://www.chaoticsoftware.com/ProductPages/NetworkBeacon.html を入れて、

Service Name
てきとう
Service Type
_daap._tcp.
Port Number
3689
Enable Host Proxy
checked
Host Name
localhost
IP Address
127.0.0.1

を設定したら見れた。Universal Binary じゃないな

これで hamachi が通らなくても DAAP が通るようになったはず……外のネットワークからためしてみよう

Remote Growl

TCP で送る Remote Growl と、irssi プラグインを書いた。
http://lab.lowreal.net/trac/browser/c/growl/

ssh lab -R 9955:localhost:9955

で転送したかった。しかしろくにテストしてない。

ハイライトあるときは sticky で表示させる、とかやりたい。あとでしらべる

必要

RubyCocoa ってインストーラーついててちょうしんせつ><

Remote Growl

ハイライト時に sticky 実装してみた。設定ちゃんと作ったほうがいいな……
あと irc ででた url を開きやすくしたいなぁ。

RemoteGrowl

http://lab.lowreal.net/trac/changeset/365
アイコンの変更に対応してみた。RubyCocoa が思ったよりすごい簡単で楽しい。Objective-C わかんなくてアレだったけど、Ruby で書けるってだけでこうまで違うのかとw

growlclient -t test -m test -i Irssi.png

とかやると Irssi.png の内容を文字列としてサーバに送って、サーバ側では

	def string_to_image(str)
		str = OSX::NSData.dataWithBytes(str, :length, str.length)
		OSX::NSImage.alloc.initWithData(str)
	end

みたいなメソッドで NSImage に変換し、Growl におくりつけてる (実際には ruby-binding の中でさらに NSData にしてから送られる)

RemoteGrowl server URL をデスクトップに保存しまくる

http://lab.lowreal.net/trac/changeset/367
-c (--url) オプションをつけるとデスクトップにひたすら受信した URL のショートカットを作りまくる。IRC で攻撃されるとあぶない