〜2006年7月上旬〜
700通ほど。Gmail側約5500スレッド。 なんかGmailのspam判定が甘くなってきてるようだ。すりぬけるのが多い。 しかも教えてやっても全然ブロックしてくれないし。うーむ。
またphishingかと思ったら本物だった。 たまに本物が来ても疑ってしまうわけで、根本的な解決を図ることにした。 違うメールアドレスにしちゃえばいいんだよね。 Gmailで+つけてランダムな文字列を付加してできたメールアドレスを登録。 これでもまだphishingが届くようなら、PayPal側で情報が漏れてるとしか言いようがない。
Mステによると井上陽水の「少年時代」に出てくる「夢あざみ」は井上陽水自身の造語らしい。 ぐぐってみると「夢花火」も造語のようだ。
というわけで更新。
% gem up -y rails Updating installed gems... Need to update 24 gems from http://gems.rubyforge.org ........................ complete Attempting remote update of rails Successfully installed rails-1.1.4 Successfully installed actionpack-1.12.3 Successfully installed actionmailer-1.2.3 Successfully installed actionwebservice-1.1.4 Installing ri documentation for actionpack-1.12.3... Installing ri documentation for actionmailer-1.2.3... Installing ri documentation for actionwebservice-1.1.4... Installing RDoc documentation for actionpack-1.12.3... Installing RDoc documentation for actionmailer-1.2.3... Installing RDoc documentation for actionwebservice-1.1.4... Gems: [rails] updated
「あとで読む」しといてあとでbookmarkしようと思ってもやらないわけで、 なら一度にdel.icio.usへポストしたほうがいいよねえ。 というわけで、例のKeyconfigの定義に加えてみる。 del.icio.usのbookmarkletにdel.icio.usというキーワードを設定して
if(window.loadURI) { loadURI(getShortcutOrURI('atode',{})); loadURI(getShortcutOrURI('del.icio.us',{})); }
とすれば両方呼び出せる。やっぱ便利だ。
del.icio.usのポストは Post.icio.us - Quicker Posts in Del.icio.us を使ってる。タグは&tags=toreadという感じで、&shared=noをつけるとプライベートになるようだ。
とうとう20万通。すげえ数だよなあ。 [ruby-talk:200000]
最近 この方法だと
Sorry, please try again. A required security token was not received with your form data. Trying again should fix it. If the problem persists please contact support@del.icio.us. Thanks!
というエラーになってしまう。 まあ、それで 昨日は違う方法をぐぐって見つけたわけだが、 これがちょっと格好悪い。 ロケーションバーにポストしたURLは残るし空白のページが開かれたままになる。 imgタグを使うのミソらしいのでちょっと改造してみる。 もともとは
javascript: location.href='https://api.del.icio.us/v1/posts/add?description='+ encodeURIComponent(document.title)+'&url='+window.location.href;
という感じになってたのでlocation.href=の部分を(new Image).src=に置き換える。 ついでに無名関数化してtoreadというタグをつける。
javascript:(function(){ (new Image).src='https://api.del.icio.us/v1/posts/add?description='+ encodeURIComponent(document.title)+ '&url='+location.href+'&tags=toread';})()
これで快適になった。
bookmarkletエディタは Bookmarklet Builder を使ってる。これでCompressすれば余計な改行空白等取り除いてくれる。 あとはリンクをツールバーへD&Dすればok。
昨日のbookmarkletを使っているとついlivedoor Readerでも押してしまう。 ここでまた専用のbookmarkletを用意すればいいんだけど、いちいち違うbookmarkletを呼び出すのも面倒。 だったら1つで済ませてしまおうというのが今日のお題。
window.get_active_itemがあるかどうかでlivedoor Readerから呼ばれているかわかるから、これで判断すればいいかな。
javascript: (function(){ var t=document.title,l=location.href; if(window.get_active_item){ var i=get_active_item(1); t=i.title; l=i.link; } (new Image).src='https://api.del.icio.us/v1/posts/add?description='+ encodeURIComponent(t)+'&url='+encodeURIComponent(l)+'&tags=toread'; } )()
いちおうD&D用にリンクも用意。 post to del.icio.us
どこからそんな例文を持ってきたんだ?
はてぶとかのRSSをlivedoor Readerで見ると登録というリンクが現われる。 どういう条件なんだと思っていたが、 RSSを配信してるサイトとは違うサイトがリンクになってる場合に登録リンクが出現するようだ。 あと、わかりづらいがタイトルもリンクになってることに気づいた。 「元記事」ってのと同じ。
お手玉演算子(&:)の起源はどこにあるのか調べてみた。 _whyの Symbol#to_proc Exonerated を見るとDave Thomasの Symbol#to_proc で、さらに Ruby Extensions Project に行きつく。 このライブラリ が大元?
ruby-talk news gatewayが復活した。 流量を調べてみると、先週の土曜日よりはやはり増えてるようだ。
% grep -o '^Date: ..., . ...' ruby-talk.0607 |sort -n -k3 |uniq -c 103 Date: Sat, 1 Jul 59 Date: Sun, 2 Jul 86 Date: Mon, 3 Jul 136 Date: Tue, 4 Jul 121 Date: Wed, 5 Jul 146 Date: Thu, 6 Jul 195 Date: Fri, 7 Jul 190 Date: Sat, 8 Jul 33 Date: Sun, 9 Jul
なんかすごいな。 ParseTreeが必要なので、あらかじめgem up -y parsetreeしておく。
require 'rb2js' class Demo def initialize @clicks = 0 3.times{ self.puts('Hello! I am a Ruby script!') } end def puts(str) document.getElementById('debug')['innerHTML'] = document.getElementById('debug')['innerHTML'] + str + "\n" end def clicked @clicks += 1 self.puts("Click number " + @clicks.to_s) end end puts RB2JS.class_to_js(Demo, :pretty_print => true)
これを実行すると
function Demo(){ self=this; self.instanceVariables={}; self.instanceVariables['@clicks']=Number(0); Number(3).times(function(){ self.puts("Hello! I am a Ruby script!") }) } Demo.prototype = { clicked: function(){ self=this; self.instanceVariables['@clicks']=self.instanceVariables['@clicks']+Number(1); self.puts("Click number "+self.instanceVariables['@clicks'].toString()) }, puts: function(str){ self=this; document.getElementById("debug")["innerHTML"]=document.getElementById("debug")["innerHTML"]+str+"\n" } }
となる。
早速入れた。
pythonの実行結果を載せるのにわざわざirbから抜けてirbへ帰るとこまでコピペするこの人の変なこだわりに笑った。
- About:
- zsync is a implementation of rsync over HTTP. It allows updating of files from a remote Web server without requiring a full download or a special remote server application. It uses a metafile, which is created on the server, to determine which parts of a file the user already has; it then downloads the remaining parts via HTTP. No special server or Web server module is needed. It also works with gzip files, and content on the server can be compressed to further reduce download times.
Cygwin 1.5.20-1からCYGWIN=transparent_exeオプションが新設されたらしい。
corinna: Implement CYGWIN environment variable "transparent_exe" option which causes files which end in .exe to be used by appropriate functions when an input filename is specified with no extension.
やっぱ 消すのか。
preのインデントが崩れるのはCSSが変なのかと思ったら、preのデータそのものが変だった。 道理でCSSをいじっても変化しないわけだ。 CSS切って初めて理解した。