<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xml:lang="ja">
	<channel>
		<title>polog@81s</title>
		<link>http://born1981.g.hatena.ne.jp/korn_freak/</link>
		<description>polog@81s</description>
		<dc:creator>korn_freak</dc:creator>


		<item>
			<title>1981年生忘年会#3にいった</title>
			<link>http://born1981.g.hatena.ne.jp/korn_freak/20091212/1260625408</link>

			<description><![CDATA[
		<div class="section">
			<p>100人もいて僕はひきこもりなのでたぶん10人くらいとしかしゃべってないのですが、すごく楽しかったです</p>
			<p>みんな同い年なのにいっぱいおもしろいことやっていて、さすがだなあと思いました</p>
			<p>運営とかやってた人たち本当にお疲れさまでした　来年も参加したいです :)</p>
		</div>
]]></description>

			<dc:creator>korn_freak</dc:creator>

			<pubDate>Sat, 12 Dec 2009 13:43:28 GMT</pubDate>



		</item>

		<item>
			<title>WEBエンジニアバトルロワイヤルに出ました</title>
			<link>http://born1981.g.hatena.ne.jp/korn_freak/20091010/1255193816</link>

			<description><![CDATA[
		<div class="section">
			<p><a href="http://gihyo.jp/event/2009/webbr01" target="_blank">http://gihyo.jp/event/2009/webbr01</a></p>
			<p>発表が録画されてました　以下、大体19分めから</p>
			<p><a href="http://www.ustream.tv/recorded/2318619" target="_blank">http://www.ustream.tv/recorded/2318619</a></p>
			<p>発表資料</p>
			<p><a href="http://polog.org/files/presentation/20091008/" target="_blank">http://polog.org/files/presentation/20091008/</a></p>
			<p>発表用にいじったスクリプト</p>
<pre class="syntax-highlight">
<span class="synComment">// ==UserScript==</span>
<span class="synComment">// @name           InFullVolume_mod</span>
<span class="synComment">// @namespace      http://polog.org/</span>
<span class="synComment">// @description    music visualizer for any website</span>
<span class="synComment">// @include        http://polog.org/*</span>
<span class="synComment">// @require        http://gist.github.com/3242.txt</span>
<span class="synComment">// @updated        2009-10-08 00:00:00</span>
<span class="synComment">// ==/UserScript==</span>
<span class="synComment">// using $X by os0x</span>

<span class="synIdentifier">var</span> w = unsafeWindow;
<span class="synStatement">const</span> SWF_URL = <span class="synConstant">&quot;http://polog.org/lab/full-volume/test/mic.swf&quot;</span>;
<span class="synStatement">const</span> SITE_INFO_URL = <span class="synConstant">'http://wedata.net/databases/InFullVolume/items.json'</span>;
<span class="synIdentifier">var</span> SITE_INFO = <span class="synIdentifier">[</span>
<span class="synComment">/*</span>
<span class="synComment">    {</span>
<span class="synComment">        pattern: '',</span>
<span class="synComment">        elements: ''</span>
<span class="synComment">    },</span>
<span class="synComment">*/</span>
    <span class="synIdentifier">{</span>
        elements: <span class="synConstant">'id(&quot;fook&quot;)'</span>,
        pattern: <span class="synConstant">'http://polog.org/files/presentation/20091008/'</span>
    <span class="synIdentifier">}</span>
<span class="synIdentifier">]</span>;

<span class="synIdentifier">var</span> elementList = <span class="synIdentifier">function</span>(exp)<span class="synIdentifier">{</span>
    <span class="synIdentifier">this</span>.objs = $X(exp);
    <span class="synIdentifier">this</span>.elements = <span class="synIdentifier">[]</span>;
    <span class="synStatement">for</span>(<span class="synIdentifier">var</span> i = 0; i &lt; <span class="synIdentifier">this</span>.objs.length; i+= 1)<span class="synIdentifier">{</span>
        <span class="synIdentifier">var</span> obj = <span class="synIdentifier">this</span>.objs<span class="synIdentifier">[</span>i<span class="synIdentifier">]</span>;
        <span class="synIdentifier">this</span>.elements.push(<span class="synStatement">new</span> elementSingle(obj));
        <span class="synStatement">if</span>(i != 0)
            <span class="synIdentifier">this</span>.elements<span class="synIdentifier">[</span>i - 1<span class="synIdentifier">]</span>.setNextElement(<span class="synIdentifier">this</span>.elements<span class="synIdentifier">[</span>i<span class="synIdentifier">]</span>);
    <span class="synIdentifier">}</span>
    <span class="synIdentifier">var</span> <span class="synStatement">self</span> = <span class="synIdentifier">this</span>;
    <span class="synStatement">if</span>(<span class="synStatement">self</span>.elements<span class="synIdentifier">[</span>0<span class="synIdentifier">]</span>)
        setInterval(<span class="synIdentifier">function</span>()<span class="synIdentifier">{</span><span class="synStatement">self</span>.elements<span class="synIdentifier">[</span>0<span class="synIdentifier">]</span>.triggerMove()<span class="synIdentifier">}</span>, 100);
<span class="synIdentifier">}</span>

<span class="synIdentifier">var</span> elementSingle = <span class="synIdentifier">function</span>(element)<span class="synIdentifier">{</span>
    <span class="synIdentifier">this</span>.element = element;
    <span class="synIdentifier">this</span>.buf_level = <span class="synIdentifier">this</span>.level = 1.0;
    <span class="synIdentifier">var</span> <span class="synStatement">self</span> = <span class="synIdentifier">this</span>;
    <span class="synIdentifier">this</span>.dimensions = <span class="synIdentifier">{</span>
        width: <span class="synIdentifier">this</span>.element.offsetWidth,
        height: <span class="synIdentifier">this</span>.element.offsetHeight
    <span class="synIdentifier">}</span>;
    <span class="synIdentifier">this</span>.element.style.overflow = <span class="synConstant">&quot;hidden&quot;</span>;
    <span class="synIdentifier">this</span>.element.style.width = <span class="synIdentifier">this</span>.dimensions.width + <span class="synConstant">&quot;px&quot;</span>;
    <span class="synIdentifier">this</span>.element.style.height = <span class="synIdentifier">this</span>.dimensions.height + <span class="synConstant">&quot;px&quot;</span>;

    <span class="synIdentifier">this</span>.kicker = setInterval(<span class="synIdentifier">function</span>()<span class="synIdentifier">{</span>
        <span class="synStatement">if</span>(<span class="synStatement">typeof</span>(mic_activityLevel) == <span class="synConstant">&quot;object&quot;</span> &amp;&amp;
                !mic_activityLevel)
            <span class="synStatement">return</span>;
        <span class="synIdentifier">this</span>.effect = setInterval(<span class="synIdentifier">function</span>()<span class="synIdentifier">{</span><span class="synStatement">self</span>.move()<span class="synIdentifier">}</span>, 50);
        clearInterval(<span class="synStatement">self</span>.kicker);
    <span class="synIdentifier">}</span>, 1000);
<span class="synIdentifier">}</span>
elementSingle.prototype.setNextElement = <span class="synIdentifier">function</span>(nextElement)<span class="synIdentifier">{</span>
    <span class="synIdentifier">this</span>.nextElement = nextElement;
<span class="synIdentifier">}</span>
elementSingle.prototype.setLevel = <span class="synIdentifier">function</span>(level)<span class="synIdentifier">{</span>
    <span class="synIdentifier">var</span> next = <span class="synIdentifier">this</span>.nextElement;
    <span class="synStatement">if</span>(next)<span class="synIdentifier">{</span>
        <span class="synIdentifier">var</span> <span class="synStatement">self</span> = <span class="synIdentifier">this</span>;
        setTimeout(<span class="synIdentifier">function</span>()<span class="synIdentifier">{</span>next.setLevel(<span class="synStatement">self</span>.buf_level)<span class="synIdentifier">}</span>, 50);
    <span class="synIdentifier">}</span>
    <span class="synIdentifier">this</span>.buf_level = <span class="synIdentifier">this</span>.level = level;
<span class="synIdentifier">}</span>
elementSingle.prototype.move = <span class="synIdentifier">function</span>()<span class="synIdentifier">{</span>
    <span class="synComment">// w.console.log((this.element.style.width * 0.8) &lt; Math.round(this.dimensions.width * this.level));</span>
    <span class="synStatement">if</span>(
        <span class="synStatement">typeof</span>(mic_activityLevel) == <span class="synConstant">&quot;object&quot;</span> &amp;&amp;
        !mic_activityLevel
      )
        <span class="synStatement">return</span>;

    <span class="synIdentifier">this</span>.element.style.width = Math.round(<span class="synIdentifier">this</span>.dimensions.width * <span class="synIdentifier">this</span>.level) + <span class="synConstant">'px'</span>;
    <span class="synIdentifier">this</span>.level = <span class="synIdentifier">this</span>.level * 0.8;
<span class="synIdentifier">}</span>
elementSingle.prototype.triggerMove = <span class="synIdentifier">function</span>()<span class="synIdentifier">{</span>
    <span class="synIdentifier">var</span> activityLevel = mic_activityLevel * 0.1;
    activityLevel = (activityLevel &gt; 1.0) ? 1.0 : activityLevel;
    <span class="synStatement">if</span>(activityLevel &gt; <span class="synIdentifier">this</span>.level)
        <span class="synIdentifier">this</span>.setLevel(activityLevel);
<span class="synIdentifier">}</span>

w.elementSingle = elementSingle;


<span class="synIdentifier">var</span> div = unsafeWindow.<span class="synStatement">document</span>.createElement(<span class="synConstant">&quot;div&quot;</span>);
<span class="synIdentifier">var</span> init_embed = <span class="synIdentifier">function</span>()<span class="synIdentifier">{</span>
    <span class="synIdentifier">var</span> embed = unsafeWindow.<span class="synStatement">document</span>.createElement(<span class="synConstant">&quot;embed&quot;</span>);
    embed.src = SWF_URL;
    embed.width = <span class="synConstant">&quot;300px&quot;</span>;
    embed.height = <span class="synConstant">&quot;200px&quot;</span>;
    embed.name = <span class="synConstant">&quot;mic&quot;</span>;
    embed.id = <span class="synConstant">&quot;mic&quot;</span>;
    embed.setAttribute(<span class="synConstant">&quot;allowScriptAccess&quot;</span>, <span class="synConstant">&quot;always&quot;</span>);
    embed.setAttribute(<span class="synConstant">&quot;wmode&quot;</span>, <span class="synConstant">&quot;transparent&quot;</span>);
    div.style.zIndex = <span class="synConstant">&quot;10000&quot;</span>;
    div.style.position = <span class="synConstant">&quot;absolute&quot;</span>;
    div.style.<span class="synStatement">top</span> = <span class="synConstant">&quot;0px&quot;</span>;
    div.style.right = <span class="synConstant">&quot;0px&quot;</span>;
    div.appendChild(embed);
    unsafeWindow.<span class="synStatement">document</span>.body.appendChild(div);
<span class="synIdentifier">}</span>

<span class="synIdentifier">var</span> mic_activityLevel = <span class="synStatement">null</span>;
unsafeWindow.mic_DoFSCommand = <span class="synIdentifier">function</span>(command, args) <span class="synIdentifier">{</span>
    <span class="synStatement">if</span>(!args.match(<span class="synConstant">/^\d*$/</span>))
        <span class="synStatement">return</span>;
    mic_activityLevel = eval(args);
    <span class="synStatement">if</span>(mic_activityLevel &amp;&amp; div.style.<span class="synStatement">top</span> != <span class="synConstant">&quot;-9999px&quot;</span>)<span class="synIdentifier">{</span>
        div.style.<span class="synStatement">top</span> = <span class="synConstant">&quot;-9999px&quot;</span>;
        div.style.left = <span class="synConstant">&quot;-9999px&quot;</span>;
    <span class="synIdentifier">}</span>
<span class="synIdentifier">}</span>

unsafeWindow.InFullVolume_getMicActivityLevel = <span class="synIdentifier">function</span>()<span class="synIdentifier">{</span>
    <span class="synStatement">return</span> mic_activityLevel;
<span class="synIdentifier">}</span>

<span class="synComment">// based on Autopagerize old script...</span>
<span class="synIdentifier">var</span> SiteInfo = <span class="synIdentifier">function</span>() <span class="synIdentifier">{</span>
    <span class="synIdentifier">this</span>.entries = <span class="synIdentifier">[]</span>;
<span class="synIdentifier">}</span>;

SiteInfo.prototype.get = <span class="synIdentifier">function</span>(url, callback) <span class="synIdentifier">{</span>
    <span class="synIdentifier">var</span> <span class="synStatement">self</span> = <span class="synIdentifier">this</span>;
    <span class="synIdentifier">var</span> cacheInfo;
    <span class="synStatement">if</span>(cacheInfo = Cache.get(<span class="synConstant">'cacheInfo'</span>)) <span class="synIdentifier">{</span>
        <span class="synStatement">self</span>.entries = cacheInfo;
        callback(<span class="synStatement">self</span>.entries);
    <span class="synIdentifier">}</span> <span class="synStatement">else</span> <span class="synIdentifier">{</span>
        GM_xmlhttpRequest(<span class="synIdentifier">{</span>
            method : <span class="synConstant">&quot;GET&quot;</span>,
            url : url,
            onload : <span class="synIdentifier">function</span>(res) <span class="synIdentifier">{</span>
                <span class="synStatement">self</span>.entries = eval(res.responseText).map(<span class="synIdentifier">function</span>(e)<span class="synIdentifier">{</span><span class="synStatement">return</span> e.data<span class="synIdentifier">}</span>);
                callback(<span class="synStatement">self</span>.entries);

                Cache.set(<span class="synConstant">'cacheInfo'</span>, <span class="synStatement">self</span>.entries, 24 * 60 * 60 * 1000) <span class="synComment">// 1 day</span>
            <span class="synIdentifier">}</span>
        <span class="synIdentifier">}</span>);
    <span class="synIdentifier">}</span>
<span class="synIdentifier">}</span>;

SiteInfo.prototype.clearCache = <span class="synIdentifier">function</span>() <span class="synIdentifier">{</span>
    Cache.set(<span class="synConstant">'cacheInfo'</span>, <span class="synStatement">null</span>, 0);
<span class="synIdentifier">}</span>;

<span class="synIdentifier">var</span> Cache = <span class="synIdentifier">{}</span>;

Cache.set = <span class="synIdentifier">function</span>(key, value, expire) <span class="synIdentifier">{</span>
    <span class="synIdentifier">var</span> expire = <span class="synStatement">new</span> <span class="synType">Date</span>().getTime() + expire;
    GM_setValue(key, uneval(<span class="synIdentifier">{</span> value: value, expire: expire <span class="synIdentifier">}</span>));
<span class="synIdentifier">}</span>

Cache.get = <span class="synIdentifier">function</span>(key) <span class="synIdentifier">{</span>
    <span class="synIdentifier">var</span> cached = eval(GM_getValue(key));
    <span class="synStatement">if</span>(!cached) <span class="synIdentifier">{</span>
        <span class="synStatement">return</span> <span class="synStatement">null</span>;
    <span class="synIdentifier">}</span>

    <span class="synStatement">if</span>(cached.expire &gt; <span class="synStatement">new</span> <span class="synType">Date</span>().getTime()) <span class="synIdentifier">{</span>
        <span class="synStatement">return</span> cached.value;
    <span class="synIdentifier">}</span>

    <span class="synStatement">return</span> <span class="synStatement">null</span>;
<span class="synIdentifier">}</span>

<span class="synIdentifier">var</span> elements;
<span class="synIdentifier">var</span> siteInfo = <span class="synStatement">new</span> SiteInfo();
unsafeWindow.addEventListener(<span class="synConstant">'load'</span>, <span class="synIdentifier">function</span>()<span class="synIdentifier">{</span>
    siteInfo.get(SITE_INFO_URL, <span class="synIdentifier">function</span>(entries) <span class="synIdentifier">{</span>
        entries = SITE_INFO.concat(entries);
        entries.some(<span class="synIdentifier">function</span>(entry) <span class="synIdentifier">{</span>
            <span class="synStatement">if</span>(<span class="synStatement">location</span>.href.match(entry.pattern) &amp;&amp;
               $X(entry.elements).length &gt;= 0) <span class="synIdentifier">{</span>
                <span class="synStatement">new</span> elementList(entry.elements);
                init_embed();
                <span class="synStatement">return</span> <span class="synConstant">true</span>;
            <span class="synIdentifier">}</span>
            <span class="synStatement">return</span> <span class="synConstant">false</span>;
        <span class="synIdentifier">}</span>);
    <span class="synIdentifier">}</span>);
<span class="synIdentifier">}</span>, <span class="synConstant">false</span>);

GM_registerMenuCommand(<span class="synConstant">'InFullVolume_mod - clear cache'</span>, siteInfo.clearCache)
</pre>

			<p>プレゼン破壊のためだけにプレゼンツール自作しました</p>
			<p>クックパッド賞欲しかった...</p>			<br>

			<p>関係者及び参加された皆様、楽しかったです　ありがとうございました</p>
		</div>
]]></description>

			<dc:creator>korn_freak</dc:creator>

			<pubDate>Sat, 10 Oct 2009 16:56:56 GMT</pubDate>



		</item>

		<item>
			<title>インターフェースを統合する</title>
			<link>http://born1981.g.hatena.ne.jp/korn_freak/20090918/1253293502</link>

			<description><![CDATA[
		<div class="section">
			<p>なにをえらんでいるのかわからなくなる</p>
			<p><a href="http://gist.github.com/189166" target="_blank">http://gist.github.com/189166</a></p>
			<p><object width="425" height="336"><param name="movie" value="http://www.youtube.com/v/qBLebaVMg3k"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/qBLebaVMg3k" type="application/x-shockwave-flash" wmode="transparent" width="425" height="336"></embed></object></p>
		</div>
]]></description>

			<dc:creator>korn_freak</dc:creator>

			<pubDate>Fri, 18 Sep 2009 17:05:02 GMT</pubDate>



		</item>

		<item>
			<title>無題</title>
			<link>http://born1981.g.hatena.ne.jp/korn_freak/20090803/1249309491</link>

			<description><![CDATA[
		<div class="section">
			<p>あんなbotを作るくらいですし僕の気狂い、狂気に対する関心というものはこれはけっこう大きなものなのですが、やはり丘気狂いとしての僕は大したことない。</p>			<br>

			<p>自分の感覚、認識というものは、認識する対象その実体とは直接つながっていない。つまりたとえば、あなたがあるWEBページをみていて、僕も同じWEBページを見ていても、僕が見ているページとあなたの見ているページは、キャッシュなりよくわからないエンジンの作り出したおすすめなりによって、完全に同一ではなく、ひょっとしたらその時点におけるマスター情報とも齟齬がある可能性すらある。こういった差異は、実体と自らの認識の間におけるすべてのレイヤーで発生し、分岐する可能性がある。</p>
			<p>そして、自分の感覚、認識を疑うようになれることは、良い問題解決手法であると同時に気狂いへの第一歩でもあると僕は考える。これを利用し効率良く自分がよりよい丘気狂いになるような仕組みが作れるように思う。</p>			<br>

			<p>という訳で、僕は自分のアイコンを逆さまにした。</p>
			<p><a href="http://f.hatena.ne.jp/korn_freak/20090803225738" class="hatena-fotolife" target="_blank"><img src="http://f.hatena.ne.jp/images/fotolife/k/korn_freak/20090803/20090803225738.png" alt="f:id:korn_freak:20090803225738p:image" title="f:id:korn_freak:20090803225738p:image" class="hatena-fotolife"></a></p>
			<p>ふつうだ。ふつうの丘気狂いっぽい。</p>
			<p>タイムラインを見ても、ひとりだけ空気の読めていないやつのように見える。</p>
			<p><a href="http://f.hatena.ne.jp/korn_freak/20090803225952" class="hatena-fotolife" target="_blank"><img src="http://f.hatena.ne.jp/images/fotolife/k/korn_freak/20090803/20090803225952.png" alt="f:id:korn_freak:20090803225952p:image" title="f:id:korn_freak:20090803225952p:image" class="hatena-fotolife"></a></p>			<br>

			<p>ここでスクリプトを書く。別にuserstylesheetでも、プロキシでも、なんでもいい。</p>
			<p><a href="http://gist.github.com/159698" target="_blank">http://gist.github.com/159698</a></p>
<pre class="syntax-highlight">
<span class="synComment">// ==UserScript==</span>
<span class="synComment">// @name           WhichIsCrazy</span>
<span class="synComment">// @namespace      http://polog.org/</span>
<span class="synComment">// @include        http://twitter.com/*</span>
<span class="synComment">// @require        http://gist.github.com/3242.txt</span>
<span class="synComment">// ==/UserScript==</span>
<span class="synComment">// using $X http://gist.github.com/3242 by os0x</span>

<span class="synIdentifier">function</span> init()<span class="synIdentifier">{</span>
    icon.style.backgroundColor = COLOR.run;
    $X(<span class="synConstant">'//img[contains(concat(&quot; &quot;,normalize-space(@class),&quot; &quot;), &quot; photo fn &quot;)] | id(&quot;profile-image&quot;)'</span>).forEach(<span class="synIdentifier">function</span>(img)<span class="synIdentifier">{</span>
        each_crazy(img);
    <span class="synIdentifier">}</span>);
    icon.style.backgroundColor = COLOR.finish;
<span class="synIdentifier">}</span>

<span class="synIdentifier">function</span> each_crazy(img)<span class="synIdentifier">{</span>
    <span class="synIdentifier">var</span> r = <span class="synStatement">document</span>.createElement(<span class="synConstant">'canvas'</span>);
    <span class="synStatement">if</span> (r.getContext) <span class="synIdentifier">{</span>
        <span class="synIdentifier">var</span> context = r.getContext(<span class="synConstant">&quot;2d&quot;</span>);
        r.style.width = img.clientWidth + <span class="synConstant">'px'</span>;
        r.style.height = img.clientHeight + <span class="synConstant">'px'</span>;
        r.width = img.clientWidth;
        r.height = img.clientHeight;
        context.save();
        context.translate(0, base.height - 1);
        context.scale(1, -1);
        context.drawImage(img, 0, 0, img.clientWidth, img.clientHeight);
        context.restore();
    <span class="synIdentifier">}</span>
    img.parentNode.appendChild(r);
    img.parentNode.removeChild(img);
<span class="synIdentifier">}</span>

init();
</pre>

			<p><a href="http://f.hatena.ne.jp/korn_freak/20090803230333" class="hatena-fotolife" target="_blank"><img src="http://f.hatena.ne.jp/images/fotolife/k/korn_freak/20090803/20090803230333.png" alt="f:id:korn_freak:20090803230333p:image" title="f:id:korn_freak:20090803230333p:image" class="hatena-fotolife"></a></p>
			<p>なんとなく、これで感覚がだませるようになった。</p>			<br>

			<p>この環境でtwitterを眺めると、何かがおかしい茫洋な世界で僕だけが一人まともなような感覚を得る。しかし、他のひとは、誰もお互いのおかしさを指摘せず、ただ僕だけにきみ、おかしいよと訴えかける。しかし僕が知覚する僕はおかしくない、自然の体だ。つまりこれは僕がおかしいということを僕自身が認識していないということに帰結するのではないか、僕は気狂いにとうとうなったのではないかと思うことになる。嘔吐。</p>
			<p><object width="425" height="336"><param name="movie" value="http://www.youtube.com/v/Z3ClCwcCvdQ"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/Z3ClCwcCvdQ" type="application/x-shockwave-flash" wmode="transparent" width="425" height="336"></embed></object></p>
			<p>自分の最愛の女性のことを幻覚と呼ぶのもそういう意図だが、これは失敗している。幻覚かわいい。多分実在する。</p>
		</div>
]]></description>

			<dc:creator>korn_freak</dc:creator>

			<pubDate>Mon, 03 Aug 2009 14:24:51 GMT</pubDate>



		</item>

	</channel>
</rss>
