【新UI用】Gmailだけで自分自身とチャットするブックマークレット

僕のGmailアカウントもインターフェイスが新しくなりました。見た目変わりませんが気持ちいいです。(言語はUSにしてます)
右上にNewer versionってのが出ると使えます。(IE6とかsafariでは、古いままみたい)


で、新しいUIでは当たり前ですがJavaScriptが変わっているため、
以前のGmailだけで自分自身とチャットする方法(bookmarklet) - メモ取り用は動きません。
新UI用ブックマークレットは以下よりお願いします。Firefoxオンリーです

そのブックマークレット

javascript:if(na[_P].wZ_mos_temp)na[_P].wZ=na[_P].wZ_mos_temp;na[_P].wZ_mos_temp=na[_P].wZ;na[_P].wZ=function(a,b){var r=this.wZ_mos_temp(a,b);if(this.yq().Vt().getData(oj)==b.qZ&&!((r>>8)&1))r|=256;return r;};undefined;

(間違えた、ちょっと修正)

説明等々はこちらでお願いします

補足

Gmail内に定義されてるna[_P].wZを退避して、管理用変数のビットフラグをいじる関数を間に挟んでるだけです。
ちなみに_Pは"prototype"と定義されています。つまりna.prototype.wZですね


変数名とか決めうちですが、環境によって違ったりするんでしょうか。


動かないときは、たぶん変数・関数名が違うんでしょう。
数値2097152(0b1000000000000000000000)とORをとる計算をしてる関数定義箇所を探し出して、その関数名と上記のna[_P].wZと読み替えてください。
「this.yq().Vt().getData(oj)==b.qZ」はなくても目的は達成できます


IE6とか古いインターフェイスのままで使用する場合は前のやつ

関係ないけど追記

はてなスターって間違ってクリックしてしまうと消せないんですね。
自分のエントリーにつけられる意味あるんでしょうか。練習用?
失敗した なんかハズイ

超速攻でGmailするブックマークレット[修正]

前回の、

超速攻で自分にGmailするbookmarklet
http://d.hatena.ne.jp/mosle/20061017

Gmailインターフェイスが少し変わったときに動かなくなったので修正。

javascript:(function(){var to="送り先メールアドレス",a=prompt("subject?");if(a){var e=encodeURIComponent,c=String.fromCharCode,o=window.js,z=["$",""],l,A,B,C,D,E,i,j,s,t=RegExp;for(i=0;i<26;i++)z.push(c(65+i),c(97+i));l=z.length;for(i=0;i< l;i++){for(j=0;j< l;j++){var x=z[i]+z[j];if(x&&typeof(o[x])=="function"){s=o[x].toString();if(!A&&s.match(/_AT/)){A=o[x]();}if(!B&&s.match(/"jsid".+?([a-zA-Z$]+)/)){B=o[t.$1];}if(!C&&s.match(/XMLHttp/)){C=o[x]();}if(!D&&s.match(/"ik"/)){D=o[x]();}if(!E&&s.match(/this.cmid.+?([a-zA-Z$]+)/)){E=o[t.$1]++;}}if(A&&B&&C&&D&&E)break;}if(A&&B&&C&&D&&E)break;}var dt={view:"sm",at:A,jsid:B,to:e(to),subject:e(a)},h="";C.open("POST",D+"&cmid="+E);C.setRequestHeader("Content-Type","application/x-www-form-urlencoded");for(var i in dt)h+=i+"="+dt[i]+"&";C.send(h)}})();

上記ブックマークレット赤字部分を自分のアドレスに変更して登録してください。
よく送るあて先のアドレスを赤字部分に書いてもいいんですよ。
要はGmailの「新規メール作成画面に行くまでの時間が待てない人向け」
速攻で誰かにsubjectオンリーのメールを送るブックマークレットです。(長)
Gmailの画面上で」実行してください。


前に比べるとちょっとばかり遅くなりましたがいいですよねー

超速攻で自分にGmailするbookmarklet

2006/11/11 追記
動かない人はhttp://d.hatena.ne.jp/mosle/20061111をお試しください


件名だけのメールをよく自分に送ったりするんですが、基本Gmail重くないですか?
速攻で自分にメール送りたいときに、躊躇してしまうんですね、僕。(何で自分にメール送るのっていう意見はさておき)

Gmailのcomposeウィンドウを開くブックマークレットはよく見かけますが、速攻で送りたいときにイラチな僕はローディング時間が待てないんですよ
そんなbookmarkletを探したんですが、全然見つけられなかったので作ってみました。(ものすごく誰かが作ってそうですが…)

そのブックマークレット

javascript:(function(){var to="送り先メールアドレス",a=prompt("subject?");if(a){var e=encodeURIComponent,c=String.fromCharCode,o=window.js,z=["$",""],l,A,B,C,D,E,i,j,s,t=RegExp;for(i=0;i<26;i++)z.push(c(65+i),c(97+i));l=z.length;for(i=0;i< l;i++){for(j=0;j< l;j++){var x=z[i]+z[j];if(x&&typeof(o[x])=="function"){s=o[x].toString();if(!A&&s.match(/_AT/)){A=o[x]();break;}if(!B&&s.match(/"jsid".+?([a-zA-Z$]+)/)){B=o[t.$1];break;}if(!C&&s.match(/XMLHttp/)){C=o[x]();break;}if(!D&&s.match(/"ik"/)){D=o[x]();break;}if(!E&&s.match(/this.cmid.+?([a-zA-Z$]+)/)){E=o[t.$1]++;break;}}if(A&&B&&C&&D&&E)break;}if(A&&B&&C&&D&&E)break;}var dt={view:"sm",at:A,jsid:B,to:e(to),subject:e(a)},h="";C.open("POST",D+"&cmid="+E);C.setRequestHeader("Content-Type","application/x-www-form-urlencoded");for(var i in dt)h+=i+"="+dt[i]+"&";C.send(h)}})();

(10/17 10:00ちょっと修正-そんなにサイズにこだわる理由はなかった…)
上記ブックマークレット赤字部分を自分のアドレスに変更して登録してください。("アカウント名+MEMO@gmail.com"とかするとよいです)


Gmailの画面上で」実行すると、Javascriptプロンプトが開きます。文字を入力してOKを押すと、入力した文字が件名として指定したアドレスに送られます。やったね!
(すぐにInboxに反映されないかもしれませんが、ほってたら来ます-うまくいってたらの話)


あ、あと余裕で800バイト弱あるのでIE6ではこのままでは使用できません。FirefoxSafari限定でお願いします。

前回同様、そんなにテストしたわけでないので、みなさんの環境で動くかどうかは知りません。
免責も前回同様でお願いします。責任は負いませんよ!ご了承ください
問題が起こったら使用をやめてくださいね


変数を汚染しないために、毎回GmailJavascriptの関数をtoString()して正規表現スキャンしてます。
なんか無駄なので変数をキャッシュするバージョンとか、タイマー指定して入力中にスキャンとか(誰かやって)、そのほか本文も入力するバージョンとか色々考えました。気が向いたら書きます。
適当にアレンジしてください。

あとがき


長文をメモりたいときは前回の方法(自分とチャット)で、速攻でとりあえずメモりたいときは今回の方法で。
サイトのURLをメモる時はこちらの方法で。って使い分けるとよいかも

Gmailだけで自分自身とチャットする方法(bookmarklet) - メモ取り用

Gmailのchatは、ログに残ります。ですのでメモ取り、集約に便利。
でも、アカウントが二つ要る or | and 相手をオンラインにしなければならない。かといって、新規メール→下書き保存はめんどくさい。
「自分にチャットできたらいいのに…」と思いました。(Gmailで解決したいんですよ僕は)

ちょっと前まで


この方法(メモをどこに保存するか決められなくて困る【確かに】)でちょっとしたメモを取るのに、meebo(http://www.meebo.com/)を利用してたんですが、ウィンドウが2つ要るのと毎回ログインするのがだんだん嫌になってきたので方法を探ってみました。

なんかそういうものがあるのかもしれません(もしくはもっと簡単にできる?)が、余計なもの入れたくないたちなので簡単な方法で考えてみました。

左下にQuick Contacts(クイックコンタクト)が並んでる(デフォルト)環境のみ想定してます。(SafariGmail上でのチャットに対応してないので無理ですね)
JavaScriptの仕様がちょこちょこ変わるみたいなので、bookmarkletという形で書きます。

その方法


以下のブックマークレットを登録し、Gmailにログイン状態の時に実行してください。(意味わからなければgmailを見ているときにブラウザのアドレス欄に貼り付けてEnterでもいいですよ)

javascript:(function(){var fc=String.fromCharCode,o=window.js,z=["$",""];if(o&&typeof(o._$)!="function"){for(var i=0;i<26;i++)z.push(fc(65+i),fc(97+i));var f,Z=z,l=z.length;for(var i=0;i<l;i++){for(var j=0;j<l;j++){var x=z[i]+Z[j];if(x&&typeof(o[x])=="function"&&o[x].toString().match(/<button cl/)){f=x;break;}}if(f==x){break;}}if(f){o._$=o[f];o[f]=function(a,b,c,d){if(!a&&b.match(/^chat_/)){a=true}return o._$(a,b,c,d);}}else{alert("NG")}}setTimeout("window.js._BZ_Signin(0,{})",100)})()

んーなんとか500バイトに収まった。(FirefoxとIE6で動作確認済み)

クイックコンタクト(Quick Contacts)の自分のアカウントにマウスを持っていっても普段はチャットのボタンが押せませんが上記ブックマークレットを実行すると、押せるようになり自分とチャットできます!(ログにも残りますよ!)

Greasemonkeyスクリプトを書くと、メンテを求められそうなので誰かに期待(サポートとかも含めて…)


一応整形済みソース

javascript:(
	function(){
		var fc=String.fromCharCode,o=window.js,z=["$",""];
		if(o||typeof(o._$)!="function"){
			for(var i=0;i<26;i++){
				z.push(fc(65+i),fc(97+i));
			}
			var f,Z=z,l=z.length;
			for(var i=0;i<l;i++){
				for(var j=0;j<l;j++){
					var x = z[i]+Z[j];
					if(x&&typeof(o[x])=="function"&&o[x].toString().match(/<button cl/)){f=x;break;}
				}
				if(f==x){break;}
			}
			if(f){
				o._$=o[f];
				o[f]=function(a,b,c,d){
						if(!a&&b.match(/^chat_/)){a=true;}
						return o._$(a,b,c,d);
				};
				
			}
			else{
				alert("NG");
			}
		}
		setTimeout("window.js._BZ_Signin(0,{})",100)
	})()

免責


詳しくはソースってことでお願いします。かなり想像入ってますので、動かない場合もあるかもしれません。(動いたバージョン番号で分けるべきと思います…)
お決まりの自己責任で。


Gmailの仕様が変わった時や、僕が想定してるGmailでない場合使えないこともあろうかと思います。
「自分自身とチャットするなぞけしからん」とGoogle先生にアカウント消されても知りません。
その辺ご理解ください。


このブックマークレットは、ポップアップの「チャット」ボタンを全て有効にするので、
前回のようにダミーアカウントを取るだけ取っておいて、offlineモードでチャット=メモするのも良いかと思います。
(他人がオフラインでも書けますが急にオンラインになって困りそうなのでやらないほうが無難です)



もっといい方法あれば教えてください。

【続】Google calendarを携帯で見たとき文字化けする場合の対処方法

前回のエントリは

Googleカレンダーを携帯で見たとき文字化けする場合の対処方法
http://d.hatena.ne.jp/mosle/20060930

langpair=ja|jaが通る前提で書き進めてたので&できるだけ元のhtmlを書き換えない方法として最後まで書きましたが、やっぱり意図しない英語が日本語に翻訳されるのが気持ち悪い人へ!
はい!それ俺!

その方法

前回同様(http://www.fixture.jp/blog/0609/20-1337.html)の方法でgoogle calendarアクセス用URLを生成し、

http://www.google.com/calendar/embed?src=アカウント名%40gmail.com&pvttk=ランダムな文字列&mode=AGENDA

このURLの末尾に &hl=jaをつけます。
つまり

http://www.google.com/calendar/embed?src=アカウント名%40gmail.com&pvttk=ランダムな文字列&mode=AGENDA&hl=ja

とし、このURLをコピー。

http://google.com/gwt/nにアクセスし、Enter a URL欄に、先ほどコピーしたURLをペーストして「Go」をクリック。

生成されたページのアドレス欄に表示されているURLの末尾に、&oe=Shift_JISをつけます。
このURLをコピーして、携帯にメールします。

携帯でそのURLにアクセス!やったね!


下部にgoogle先生が変なボックスをつけますが、機能アップ!ってことで

こっちの方がわかりやすいか。ね?


(意図しない方法でURLが漏れる可能性があります。自己責任で!)

Googleカレンダーを携帯で見たとき文字化けする場合の対処方法

↓の方が新しいから↓を見てね

【続】Google calendarを携帯で見たとき文字化けする場合の対処方法
http://d.hatena.ne.jp/mosle/20061001



(ちょい古い内容です)

ちょい古い携帯はUTF-8に対応していないんですよね。
↓をやってみて文字化けした人へ、文字化けを解決するネタ。

Googleカレンダーを携帯で見る方法:補足
http://www.fixture.jp/blog/0609/20-1337.html


文字コードを変換するのみのプロキシツールなんか設置するのもめんどくさい人へ!google先生にやってもらいましょう!

その方法

http://www.google.com/language_toolsにアクセスします。

「翻訳」→「ウェブページを翻訳する」のテキストフィールドに、上記サイト(http://www.fixture.jp/blog/0609/20-1337.html)の方法で
http://www.google.com/calendar/embed?src=アカウント名%40gmail.com&pvttk=ランダムな文字列&mode=AGENDA
を入力して翻訳ボタンをクリック。

翻訳がおわります。

下のフレームのみのURLをコピーしてブラウザのアドレス欄にペーストします。
(やり方:
IE6の場合、下フレームを右クリック→プロパティ→アドレスをコピー、
firefoxの場合、下フレームを右クリック→このフレーム→このフレームだけを表示)

アドレス欄の
oe=UTF-8となっている箇所をoe=Shift_JISu=http://www.google.com/calendar/embedとなってる箇所をu=http%3A%2F%2Fwww.google.com%2Fcalendar%2Fembedに
書き換えて、エンター

エンコーディングSJISになるのを確認し、そのアドレス欄に表示されているURLを携帯にメールします

携帯でそのURLにアクセス!やったね!


パソコン用のサイトが見れる携帯ならShift_JISには対応してると思います。


英語の箇所が全部日本語に無理やり翻訳されますので多少キモイですが文字化けして全く読めないよりいいでしょ。(昔はlangpair=ja|jaとかlangpair=en|enとかいけたんだけどなー)


google先生にならプライベートの予定知られてもいいんでしょ、みなさん?


意図しない方法でURLが漏れる恐れがあります。
自己責任でどうぞ!

ちなみに


Google Calendarのurlに直接oe=Shift_JISをつけても対応していないみたいです。(隠しパラメータがあるんでしょうか)


探すのはメンドウなので、他にもっといい方法があれば教えてください

OSX 10.4 Tigerを高速化する方法(1)

いやらしいタイトルですね!
早いmacをお持ちの方は、無視してください。


あんまりいいまとめが無かったのでメモします。


6年前くらいのPowerbook G4(500MHz、512MBくらい)にTigerを入れて、ネット&iPod - iTunes用ととして使用していますが、すごく快適に動作しています。


無駄な常駐アプリを立ち上げないのはもちろんですが、個人的にものすごく効果があったもの

firefoxを使わない(safariを使え)

ネット端末化してる僕のPowerbook G4にとって、常駐アプリはブラウザとitunesなんです。
機能豊富なfirefoxを使っていたんですが、ブラウズしかしないんだったら使うまでもないですよね。
firefoxは長時間連続して使うと恐ろしくメモリを消費します。(一度、topコマンドなどで確認してみて!)


久しぶりにsafari使うと、safariのスピードにびっくりしますよ。(いや、マジで)


dashboardを切る

Dashboardを止めるとメチャクチャ早くなります。(少なくともマイmacでは)

Dashboard Switch
(Dashboardを切ったり、起動したりするアプリケーション)
http://www.macupdate.com/info.php/id/20258

↑入れるといいですが、
新たにアプリケーションを入れるのがいやな場合、ターミナルから

なんちゃら$ defaults write com.apple.dashboard mcx-disabled -boolean YES

と打つと、ダッシュボードが再ログイン時にオフになります。


参考

Disable Dashboard
http://face.centosprime.com/macosxw/?p=201

その他

その他、体感ですが

  • spotlightを切る(ネット端末なので不要といえば不要)

気が向いたらその他が続く。

補足

自己責任でお願いします

あの虹色の「お待ちくださいカーソル」、通称beachball(ビーチボール)というらしいですね