<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel rdf:about="https://let.hatelabo.jp/mattn/rss">
    <link>https://let.hatelabo.jp/mattn/rss</link>
    <description></description>
    <title>Bookmarklets from mattn</title>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/hLHX14Ouiel4"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/hJmeoJnI2Px2"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/hJmfwNyfn7Ab"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/hLHXhKHPvtx-"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/hJme6diR8Mc6"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/hLHWh-uIo7RZ"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/hJmeh-rcpJYA"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/hJmduvffrNl6"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/gYC-ypvx4YvhHQ"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/gYC-ypuaz4z1Lg"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/gYC-ypuYyKjoBg"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/gYC-xpuWgZetDA"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/gYC-ypuV0ragbg"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/gYC-ypuU7rrgaQ"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/gYC-ypuUuYagXw"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/mattn/let/gYC-xpuS2YGzPA"/>
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/hLHX14Ouiel4">
    <link>https://let.hatelabo.jp/mattn/let/hLHX14Ouiel4</link>
    <dc:date>2017-09-25T08:44:44Z</dc:date>
    <description>my bookmarklet</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] roach</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FhLHX14Ouiel4.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;roach&lt;/a&gt;&lt;pre&gt;/*
 * @title roach
 * @description my bookmarklet
 * @include http://*
 * @license MIT License
 * @require 
 */


class Roach {
  constructor() {
    this.imgs = [
      'http://jsrun.it/assets/k/Z/u/X/kZuXk.gif',
      'http://jsrun.it/assets/M/f/M/z/MfMzs.gif',
      'http://jsrun.it/assets/4/j/u/H/4juHK.gif',
      'http://jsrun.it/assets/G/e/T/a/GeTaI.gif',
      'http://jsrun.it/assets/A/i/o/Q/AioQG.gif',
      'http://jsrun.it/assets/k/q/T/f/kqTfH.gif',
      'http://jsrun.it/assets/k/T/E/G/kTEGu.gif',
      'http://jsrun.it/assets/i/Y/T/i/iYTiH.gif'
    ];
    this.pw = document.body.clientWidth - 16;
    this.ph = Math.max.apply(null, [document.body.clientHeight, document.body.scrollHeight, document.documentElement.scrollHeight, document.documentElement.clientHeight]) - 16;
    this.x = Number(this.pw * Math.random());
    this.y = Number(this.ph * Math.random());
    this.r = Number(360 * Math.random());
    this.node = document.createElement('img');
    this.node.style.position = 'fixed';
    document.body.appendChild(this.node);
  }

  get file() {
    return this.imgs[Number(Math.floor((Number(this.r + 22.5) % 360) / 45))];
  }

  update() {
    this.r = (this.r + 360 + Number(10 * Math.random() - 5)) % 360;
    this.x += Math.cos(this.r * Math.PI / 180) * 8;
    this.y -= Math.sin(this.r * Math.PI / 180) * 8;
    if (this.x &amp;lt; -16) this.x = this.pw;
    if (this.x &amp;gt; this.pw) this.x = -16;
    if (this.y &amp;lt; -16) this.y = this.ph;
    if (this.y &amp;gt; this.ph) this.y = -16;

    this.node.style.left = this.x + 'px';
    this.node.style.top = this.y + 'px';
    this.node.src = this.file;
    setTimeout(this.update.bind(this), 10);
  }
};

for (var n = 0; n &amp;lt; 10; n++)
  new Roach().update();
&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/hJmeoJnI2Px2">
    <link>https://let.hatelabo.jp/mattn/let/hJmeoJnI2Px2</link>
    <dc:date>2016-12-23T13:30:30Z</dc:date>
    <description>Qiita アドベントカレンダーの各カレンダ(例:http://qiita.com/advent-calendar/2016/vim)でクリックします。</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] Qiita アドベントカレンダのはてなブックマーク数を表示</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FhJmeoJnI2Px2.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;Qiita アドベントカレンダのはてなブックマーク数を表示&lt;/a&gt;&lt;pre&gt;/*
 * @title Qiita アドベントカレンダのはてなブックマーク数を表示
 * @description Qiita アドベントカレンダーの各カレンダ(例:http://qiita.com/advent-calendar/2016/vim)でクリックします。
 * @include http://qiita.com/advent-calendar/*
 * @license MIT License
 */
$('.adventCalendarCalendar_comment').each(function(i, x) { if ($('a', x).length&amp;gt;0) $('&amp;lt;img&amp;gt;').attr('src', &amp;quot;http://b.hatena.ne.jp/entry/image/&amp;quot; + encodeURI($('a', x).attr('href'))).appendTo(x) });
&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/hJmfwNyfn7Ab">
    <link>https://let.hatelabo.jp/mattn/let/hJmfwNyfn7Ab</link>
    <dc:date>2015-06-18T08:23:21Z</dc:date>
    <description>typo さんのサイトは記事に日付が無いので、はてなブックマークの最初のブクマから推測するブックマークレット</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] typoster</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FhJmfwNyfn7Ab.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;typoster&lt;/a&gt;&lt;pre&gt;/*
 * @title typoster
 * @description typo さんのサイトは記事に日付が無いので、はてなブックマークの最初のブクマから推測するブックマークレット
 * @include http://*
 * @license MIT License
 * @require https://code.jquery.com/jquery-2.1.4.min.js
 */

$(function() {
  $.getJSON(&amp;quot;http://b.hatena.ne.jp/entry/json/?url=&amp;quot; + encodeURIComponent(location.href) + &amp;quot;&amp;amp;callback=?&amp;quot;, function(d) {
    $('&amp;lt;div/&amp;gt;').text(d.bookmarks.pop().timestamp).insertAfter($('#content h2')[0]);
  });
});
&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/hLHXhKHPvtx-">
    <link>https://let.hatelabo.jp/mattn/let/hLHXhKHPvtx-</link>
    <dc:date>2015-03-16T10:22:31Z</dc:date>
    <description>replace all avatar to sonots!</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] sonots</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FhLHXhKHPvtx-.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;sonots&lt;/a&gt;&lt;pre&gt;/*
 * @title sonots
 * @description replace all avatar to sonots!
 * @include https://twitter.com/
 * @license Sonots Public License
 * @require 
 */
$('img.avatar').each(function(){ $(this).attr('src', 'https://avatars0.githubusercontent.com/u/2290461?v=3&amp;amp;s=460') });
&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/hJme6diR8Mc6">
    <link>https://let.hatelabo.jp/mattn/let/hJme6diR8Mc6</link>
    <dc:date>2015-02-03T03:39:33Z</dc:date>
    <description>Replace all DroidKaigi to DanKogai.</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] s/DroidKaigi/DanKogai/g</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FhJme6diR8Mc6.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;s/DroidKaigi/DanKogai/g&lt;/a&gt;&lt;pre&gt;/*
 * @title s/DroidKaigi/DanKogai/g
 * @description Replace all DroidKaigi to DanKogai.
 * @include http://droidkaigi.github.io/
 * @license MIT License
 * @require 
 */

document.body.addEventListener(&amp;quot;DOMNodeInserted&amp;quot;, (function me (e) {
	var walker = document.createTreeWalker(e.target, NodeFilter.SHOW_TEXT, {
		acceptNode : function (node) { return NodeFilter.FILTER_ACCEPT }
	}, true);

	while (walker.nextNode()) with (walker.currentNode)
		nodeValue = nodeValue.replace(/DroidKaigi/gi, 'DanKogai');

	return me;
})({ target: document.body }), false);
&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/hLHWh-uIo7RZ">
    <link>https://let.hatelabo.jp/mattn/let/hLHWh-uIo7RZ</link>
    <dc:date>2014-09-04T03:24:22Z</dc:date>
    <description>a:visited の見分けがつかないときに使うと便利です</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] 既読スルー</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FhLHWh-uIo7RZ.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;既読スルー&lt;/a&gt;&lt;pre&gt;/*
 * @title 既読スルー
 * @description a:visited の見分けがつかないときに使うと便利です
 * @include http://*
 * @license MIT License
 * @require 
 */


var style = document.createElement('style');
style.appendChild(document.createTextNode(&amp;quot;a:visited { color: #fff }&amp;quot;));
document.body.appendChild(style);

document.body.style.display = &amp;quot;none&amp;quot;;
setTimeout(function () {
document.body.style.display = &amp;quot;block&amp;quot;;
}, 0);&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/hJmeh-rcpJYA">
    <link>https://let.hatelabo.jp/mattn/let/hJmeh-rcpJYA</link>
    <dc:date>2014-09-04T03:21:22Z</dc:date>
    <description>a:visited の見分けがつかないときに使うと便利です</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] 既読スルー</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FhJmeh-rcpJYA.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;既読スルー&lt;/a&gt;&lt;pre&gt;/*
 * @title 既読スルー
 * @description a:visited の見分けがつかないときに使うと便利です
 * @include http://*
 * @license MIT License
 * @require 
 */


var style = document.createElement('style');
style.appendChild(document.createTextNode(&amp;quot;a:visited { color: #fff }&amp;quot;));
document.body.appendChild(style);

document.body.style.visibility = false;
setTimeout(function () {
document.body.style.visibility = true;
}, 0);&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/hJmduvffrNl6">
    <link>https://let.hatelabo.jp/mattn/let/hJmduvffrNl6</link>
    <dc:date>2014-05-22T07:58:49Z</dc:date>
    <description>hitode909の日記の背景画像を止めるブックマークレット</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] Stop hitode909</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FhJmduvffrNl6.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;Stop hitode909&lt;/a&gt;&lt;pre&gt;/*
 * @title Stop hitode909
 * @description hitode909の日記の背景画像を止めるブックマークレット
 * @include http://hitode909.hatenablog.com/*
 * @license MIT License
 * @require 
 */
(function(window, body) {
  var div = document.createElement(&amp;quot;div&amp;quot;);
  div.innerHTML = body.innerHTML;
  body.parentNode.replaceChild(div, body);
  window.$ = function() {return {&amp;quot;each&amp;quot;:function(){},&amp;quot;css&amp;quot;:function(){}, &amp;quot;append&amp;quot;:function(){}}};
  window.setInterval = function() {};
})(window, document.body);
&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/gYC-ypvx4YvhHQ">
    <link>https://let.hatelabo.jp/mattn/let/gYC-ypvx4YvhHQ</link>
    <dc:date>2010-05-28T13:31:55Z</dc:date>
    <description>知ってる人は知っている、「こんぺいとう」のアレです。「シャンシャンシャーン」と言いながらクリックしましょう。ブックマークレットを起動した後、はてなスターをクリックして下さい。</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] [懐かしの]はてなビューティフルスター</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FgYC-ypvx4YvhHQ.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;[懐かしの]はてなビューティフルスター&lt;/a&gt;&lt;pre&gt;/*
 * @title [懐かしの]はてなビューティフルスター
 * @description 知ってる人は知っている、「こんぺいとう」のアレです。「シャンシャンシャーン」と言いながらクリックしましょう。ブックマークレットを起動した後、はてなスターをクリックして下さい。
 * @include http://*
 * @license BSD
 * @require jQuery
 */
(function() {
  var FIREWORKS_COUNT = 10;
  var FIREWORKS_ANIMATION = 30;
  var FIREWORKS_COLOR = ['yellow', 'red', 'pink', 'blue', 'azure', 'cyan'];

  var Firework = function(x, y, count) {
    var self = this;
    this.count = count;
    this.seq = 0;
    this.xacc = [];
    this.yacc = [];
    this.divs = [];
    for (var n = 0; n &amp;lt; count; n++) {
      this.divs[n] = $('&amp;lt;div/&amp;gt;').css({
        position: 'absolute',
        left: x + 'px',
        top: y + 'px',
        zIndex: 256,
        color: FIREWORKS_COLOR[n%6] || 'white'
      }).text('★').attr('class', 'hatena-beautiful-star').appendTo(document.body)[0];
      this.xacc[n] = 10 * Math.random() - 5;
      this.yacc[n] = 10 * Math.random() - 20;
    }
    this.timer = setInterval(function() {
      if (self.seq &amp;gt; FIREWORKS_ANIMATION) {
        clearInterval(self.timer);
        for (var n = 0; n &amp;lt; self.count; n++) {
          document.body.removeChild(self.divs[n]);
        }
        return true;
      }
      for (var n = 0; n &amp;lt; self.count; n++) {
        var e = self.divs[n];
        e.style.left = parseInt(e.style.left) + self.xacc[n] + 'px';
        e.style.top = parseInt(e.style.top) + self.yacc[n] + 'px';
        self.yacc[n]++;
      }
      self.seq++;
      return true;
    }, 10);
  }

  $('.hatena-star-add-button').click(function() {
    new Firework($(this).offset().left-5, $(this).offset().top, FIREWORKS_COUNT);
  });

})();
&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/gYC-ypuaz4z1Lg">
    <link>https://let.hatelabo.jp/mattn/let/gYC-ypuaz4z1Lg</link>
    <dc:date>2010-05-27T12:53:37Z</dc:date>
    <description>id:cho45氏作のjAutoPagerizeに付属しているXPathジェネレータです。単体でも非常に良い出来なので抜き出してみました。動作確認はGoogle Chromeのみで行っています。たぶんFirefoxでも動きます。</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] XPathGenerator</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FgYC-ypuaz4z1Lg.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;XPathGenerator&lt;/a&gt;&lt;pre&gt;/*
 * @title XPathGenerator
 * @description id:cho45氏作のjAutoPagerizeに付属しているXPathジェネレータです。単体でも非常に良い出来なので抜き出してみました。動作確認はGoogle Chromeのみで行っています。たぶんFirefoxでも動きます。
 * @include http://*
 * @license CCPL ( http://creativecommons.org/licenses/by/3.0/ )
 * @require http://gist.github.com/raw/3238/dollarX.js
 */
(function() {
	var h = function(s) {
		var d = document.createElement(&amp;quot;div&amp;quot;);
		d.innerHTML = s;
		return d;
	}

	var XPathGenerator = {
		open : function () {
			XPathGenerator._prev = [];
			XPathGenerator._container = h(&amp;quot;&amp;lt;textarea cols='40' rows='5'&amp;gt;&amp;lt;/textarea&amp;gt;&amp;lt;br/&amp;gt;&amp;quot;);
			XPathGenerator._inspect   = h(&amp;quot;&amp;lt;button&amp;gt;Inspect&amp;lt;/button&amp;gt;&amp;quot;).firstChild;
			XPathGenerator._timer = setInterval(XPathGenerator.change, 1000);
			XPathGenerator._container.appendChild(XPathGenerator._inspect);
			with (XPathGenerator._container.style) {
				position = &amp;quot;fixed&amp;quot;;
				right    = &amp;quot;0&amp;quot;;
				top      = &amp;quot;2em&amp;quot;;
				opacity  = &amp;quot;0.9&amp;quot;;
			}
			document.body.appendChild(XPathGenerator._container);

			XPathGenerator._inspect.addEventListener(&amp;quot;click&amp;quot;, function () {
				document.body.addEventListener(&amp;quot;mouseover&amp;quot;, XPathGenerator.mouseover, true);
				document.body.addEventListener(&amp;quot;mousedown&amp;quot;, XPathGenerator.mousedown, true);
				document.body.addEventListener(&amp;quot;mouseout&amp;quot;,  XPathGenerator.mouseout,  true);
			}, false);
		},

		close : function () {
			XPathGenerator._container.parentNode.removeChild(XPathGenerator._container);
			clearInterval(XPathGenerator._timer);
		},

		mouseover : function (e) {
			e.target.style.outline = &amp;quot;2px solid red&amp;quot;;
			XPathGenerator._container.firstChild.value = XPathGenerator.getXPathByElement(e.target);
		},

		mousedown : function (e) {
			e.target.style.outline = &amp;quot;&amp;quot;;
			document.body.removeEventListener(&amp;quot;mouseover&amp;quot;, XPathGenerator.mouseover, true);
			document.body.removeEventListener(&amp;quot;mousedown&amp;quot;, XPathGenerator.mousedown, true);
			document.body.removeEventListener(&amp;quot;mouseout&amp;quot;,  XPathGenerator.mouseout,  true);
		},

		mouseout : function (e) {
			e.target.style.outline = &amp;quot;&amp;quot;;
		},

		change : function (e) {
			var path = XPathGenerator._container.firstChild.value;
			if (XPathGenerator._prev.value != path) {
				while (XPathGenerator._prev[0]) XPathGenerator._prev.pop().style.outline = &amp;quot;&amp;quot;;
				try {
					XPathGenerator._prev = $X(path).map(function (i) {
						i.style.outline = &amp;quot;2px solid red&amp;quot;;
						return i;
					});
				} catch (e) {}
				XPathGenerator._prev.value = path;
			}
		},

		toggle : function () {
			if (XPathGenerator._opened) {
				this.close();
				XPathGenerator._opened = false;
			} else {
				XPathGenerator._opened = true;
				this.open();
			}
		},

		getXPathByElement : function (target) {
			function indexOf (node) {
				for (var i = 0, r = 1, c = node.parentNode.childNodes, len = c.length; i &amp;lt; len; i++) {
					if (c[i].nodeName == node.nodeName &amp;amp;&amp;amp;
						c[i].nodeType == node.nodeType) {
						if (c[i] == node) return r;
						r++;
					}
				}
				return -1;
			}

			var pathElement = &amp;quot;&amp;quot;;
			var node = target;
			if (node.nodeType == 9 /*DOCUMENT_NODE=9*/) {
				return &amp;quot;&amp;quot;
			} else {
				var tagName = node.tagName.toLowerCase();
				if (node.hasAttribute(&amp;quot;id&amp;quot;)) {
					// pathElement = tagName + '[@id=&amp;quot;'+node.getAttribute(&amp;quot;id&amp;quot;)+'&amp;quot;]';
					pathElement = 'id(&amp;quot;'+node.getAttribute(&amp;quot;id&amp;quot;)+'&amp;quot;)';
				} else {
					pathElement = arguments.callee(node.parentNode) + '/' + tagName;
					if (node.hasAttribute(&amp;quot;class&amp;quot;)) {
						pathElement += '[@class=&amp;quot;'+node.getAttribute(&amp;quot;class&amp;quot;)+'&amp;quot;]';
					} else {
						pathElement += '['+indexOf(node)+']';
					}
				}
			}
			return pathElement;
		}
	};
	XPathGenerator.toggle();
})()
&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/gYC-ypuYyKjoBg">
    <link>https://let.hatelabo.jp/mattn/let/gYC-ypuYyKjoBg</link>
    <dc:date>2010-05-27T11:34:33Z</dc:date>
    <description>アーーーーッ!!!</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] はてブでアーーーーッ!!!</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FgYC-ypuYyKjoBg.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;はてブでアーーーーッ!!!&lt;/a&gt;&lt;pre&gt;/*
 * @title はてブでアーーーーッ!!!
 * @description アーーーーッ!!!
 * @include http://*
 * @license BSD
 * @require jQuery
 * @require http://miya2000.up.seesaa.net/marquee/marquee.js
 */
(function() {
  $.getJSON('http://b.hatena.ne.jp/entry/json/?url=' + encodeURIComponent(location.href.replace(/#/, '%23')) + '&amp;amp;callback=?', function(data) {
    $.each(data.bookmarks, function(index, item) {
      if (item.comment) {
        new Marquee($('&amp;lt;p/&amp;gt;').attr('id','HatebuAhhhhh'+index).css({'position': 'absolute !important', 'top': (index*60+50)+'px !important', 'z-index': 999, 'font-size': '30px !important', 'font-weight': 'bold !important'}).append($('&amp;lt;img/&amp;gt;').attr('src','http://www.hatena.ne.jp/users/' + item.user.substr(0, 2) + '/' + item.user + '/profile.gif').css('width', '30px !important')).append($('&amp;lt;span/&amp;gt;').text(item.comment)).appendTo(document.body)[0].id, {amount:Math.floor(Math.random()*5)+10, delay:60});
      }
    });
  });
})()

&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/gYC-xpuWgZetDA">
    <link>https://let.hatelabo.jp/mattn/let/gYC-xpuWgZetDA</link>
    <dc:date>2010-05-27T10:47:56Z</dc:date>
    <description>ウィンドウを閉じます。</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] 閉じる</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FgYC-xpuWgZetDA.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;閉じる&lt;/a&gt;&lt;pre&gt;/*
 * @title 閉じる
 * @description ウィンドウを閉じます。
 * @include http://*
 * @license BSD
 */
window.open(&amp;quot;about:blank&amp;quot;, &amp;quot;_self&amp;quot;).close()

&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/gYC-ypuV0ragbg">
    <link>https://let.hatelabo.jp/mattn/let/gYC-ypuV0ragbg</link>
    <dc:date>2010-05-27T10:44:46Z</dc:date>
    <description>hideklize</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] hideklize(修正中)</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FgYC-ypuV0ragbg.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;hideklize(修正中)&lt;/a&gt;&lt;pre&gt;/*
 * @title hideklize(修正中)
 * @description hideklize
 * @include http://*
 * @license BSD
 * @require jQuery
 * @require http://www.stokeshot.com/javascript/plugins/jquery.web-old-days/web-old-days.js
 */
(function() {
  for (var a = [], n = 1; n &amp;lt;= 13; a.push(('00'+n).slice(-3)+'.jpg'), n++);
  $.cursorrat({path: 'http://hidek.info/img/', images: a});
})()

&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/gYC-ypuU7rrgaQ">
    <link>https://let.hatelabo.jp/mattn/let/gYC-ypuU7rrgaQ</link>
    <dc:date>2010-05-27T10:27:54Z</dc:date>
    <description>はてなスターアイコンをウンコに置き換えます。</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] はてなウンコスター</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FgYC-ypuU7rrgaQ.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;はてなウンコスター&lt;/a&gt;&lt;pre&gt;/*
 * @title はてなウンコスター
 * @description はてなスターアイコンをウンコに置き換えます。
 * @include http://*
 * @license BSD
 * @require jQuery
 */
$('.hatena-star-star').each(function(index, item){ item.src = 'http://mattn.kaoriya.net/images/unko.gif' })&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/gYC-ypuUuYagXw">
    <link>https://let.hatelabo.jp/mattn/let/gYC-ypuUuYagXw</link>
    <dc:date>2010-05-27T10:23:12Z</dc:date>
    <description>はてなスターの省略数字を展開し、☆アイコンをユーザアイコンに置き換えます。</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] はてなスター展開</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FgYC-ypuUuYagXw.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;はてなスター展開&lt;/a&gt;&lt;pre&gt;/*
 * @title はてなスター展開
 * @description はてなスターの省略数字を展開し、☆アイコンをユーザアイコンに置き換えます。
 * @include http://*
 * @license BSD
 * @require jQuery
 * @require http://github.com/eduardolundgren/jquery-simulate/raw/master/jquery.simulate.js
 */
(function() {
  $('.hatena-star-inner-count').simulate('click')[0] &amp;amp;&amp;amp;
  setTimeout(function() {
    $('.hatena-star-star[src=&amp;quot;http://s.hatena.ne.jp/images/star.gif&amp;quot;]').each(function(index, item) {
      item.src = 'http://www.st-hatena.com/users/' + item.alt.substr(0, 2) + '/' + item.alt + '/profile_s.gif';
    })[0] &amp;amp;&amp;amp; setTimeout(arguments.callee, 1000);
  }, 2000);
})()
&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/mattn/let/gYC-xpuS2YGzPA">
    <link>https://let.hatelabo.jp/mattn/let/gYC-xpuS2YGzPA</link>
    <dc:date>2010-05-27T09:58:25Z</dc:date>
    <description>いっぱいつけるよ！</description>
    <dc:creator>mattn</dc:creator>
    <title>[Let] はてなスター連射</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fmattn%2Flet%2FgYC-xpuS2YGzPA.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;はてなスター連射&lt;/a&gt;&lt;pre&gt;/*
 * @title はてなスター連射
 * @description いっぱいつけるよ！
 * @include http://*
 * @license BSD
 * @require jQuery
 * @require http://github.com/eduardolundgren/jquery-simulate/raw/master/jquery.simulate.js
 */
(function() {
  setTimeout(function () {
    $('.hatena-star-add-button').simulate('click')[0] &amp;amp;&amp;amp; setTimeout(arguments.callee, 1000);
  }, 1000);
})()&lt;/pre&gt;</content:encoded>
  </item>
</rdf:RDF>
