<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>マンジラボ &#187; Programming</title>
	<atom:link href="http://manjilab.com/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://manjilab.com</link>
	<description>いわゆる卍研究所。</description>
	<lastBuildDate>Fri, 26 Feb 2010 15:23:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Lispで書くときに括弧は見えていない？</title>
		<link>http://manjilab.com/2009/12/19/parenthesis-do-not-matter/</link>
		<comments>http://manjilab.com/2009/12/19/parenthesis-do-not-matter/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 06:44:15 +0000</pubDate>
		<dc:creator>研究所大佐</dc:creator>
				<category><![CDATA[Clojure]]></category>
		<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[TextMate]]></category>

		<guid isPermaLink="false">http://manjilab.com/?p=266</guid>
		<description><![CDATA[Lisp系言語の第一印象は「括弧が多すぎ！」
ある程度Clojureに慣れてから括弧について考えてみると<br />
「あると思えばある、ないと思えばない。」という感覚。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fmanjilab.com%2F2009%2F12%2F19%2Fparenthesis-do-not-matter%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Lisp%E3%81%A7%E6%9B%B8%E3%81%8F%E3%81%A8%E3%81%8D%E3%81%AB%E6%8B%AC%E5%BC%A7%E3%81%AF%E8%A6%8B%E3%81%88%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%EF%BC%9F%22%20%7D);"></div>
<p>Lisp系言語の第一印象は「括弧が多すぎ！」でした。</p>

<p>この括弧の多さが Lispを難解そうに感じさせ、人によっては拒絶反応をおこします。（昔の僕ですが）</p>

<p>しかしある程度Clojureに慣れてから括弧について考えてみると<br />
「あると思えばある、ないと思えばない。」という感覚です。</p>

<p>たとえるなら日本語における「句読点」。また、テキストエディタによってはスペースやタブ、改行を表示できますがアレと同じ感覚です。</p>

<p><a href="http://www.flickr.com/photos/manjilab/4196863312/" title="Lisp indent 考察 by manjilab, on Flickr"><img src="http://farm3.static.flickr.com/2714/4196863312_1a7a0087c0.jpg" width="500" height="196" alt="Lisp indent 考察" /></a></p>

<p>構文を見るときに括弧の存在を気にしてはいません。<br />
配置（インデント）で理解しています。</p>

<p>半年前の自分に伝えるならば、上のコードはこう見えていると言うでしょう。</p>

<p><a href="http://www.flickr.com/photos/manjilab/4196108871/" title="Lisp indent 考察 by manjilab, on Flickr"><img src="http://farm3.static.flickr.com/2688/4196108871_acc92a7ef6.jpg" width="500" height="196" alt="Lisp indent 考察" /></a></p>

<p>閉じ括弧はエディタがかってに付けるもので、括弧の整合性は気にしていません。
もし間違っていたらインデントが崩れるのですぐに判ります。</p>

<p>閉じ括弧が連続すると何らかの大きなブロックの終わりと感じます。</p>

<p>インデントでコードを理解しているということは、インデントが正しく扱えないと致命的だということになります。</p>

<p>TextMateにてLispのインデントで整形する方法については
<a href="http://manjilab.com/2009/11/13/indent-clojure-in-textmate/">こちら</a>
の記事をどうぞ。</p>

]]></content:encoded>
			<wfw:commentRss>http://manjilab.com/2009/12/19/parenthesis-do-not-matter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lisp風のインデントは見やすいと思う。</title>
		<link>http://manjilab.com/2009/12/19/lisp-style-indentation-rule/</link>
		<comments>http://manjilab.com/2009/12/19/lisp-style-indentation-rule/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 06:12:56 +0000</pubDate>
		<dc:creator>研究所大佐</dc:creator>
				<category><![CDATA[Clojure]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://manjilab.com/?p=262</guid>
		<description><![CDATA[Lispをはじめる前はあの独特のインデントに拒否感がありました。
Lisp風のインデントではブロックが視覚的に圧縮されています。
慣れた今となっては見やすくて好きです。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fmanjilab.com%2F2009%2F12%2F19%2Flisp-style-indentation-rule%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Lisp%E9%A2%A8%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%B3%E3%83%88%E3%81%AF%E8%A6%8B%E3%82%84%E3%81%99%E3%81%84%E3%81%A8%E6%80%9D%E3%81%86%E3%80%82%22%20%7D);"></div>
<p>Lispをはじめる前はあの独特のインデントに拒否感がありました。</p>

<p>たとえば
<a href="http://manjilab.com/2009/12/19/elayton-042/">先の記事</a>
のコードを例にとると</p>

<p><a href="http://www.flickr.com/photos/manjilab/4196863312/" title="Lisp indent 考察 by manjilab, on Flickr"><img src="http://farm3.static.flickr.com/2714/4196863312_1a7a0087c0.jpg" width="500" height="196" alt="Lisp indent 考察" /></a></p>

<p>のようなインデントです。</p>

<p>同じコードを一般的な言語風にインデントすると</p>

<p><a href="http://www.flickr.com/photos/manjilab/4196877698/" title="Lisp indent 考察 by manjilab, on Flickr"><img src="http://farm3.static.flickr.com/2482/4196877698_fcd1fc1977.jpg" width="500" height="338" alt="Lisp indent 考察" /></a></p>

<p>のようになるでしょう。<br />
見慣れたスタイルですがちょっと間延びして見えます。</p>

<p>Lisp風のインデントではブロックは</p>

<p><a href="http://www.flickr.com/photos/manjilab/4196108823/" title="Lisp indent 考察 by manjilab, on Flickr"><img src="http://farm3.static.flickr.com/2526/4196108823_75ce0efc75.jpg" width="500" height="196" alt="Lisp indent 考察" /></a></p>

<p>このように視覚的に圧縮されています。</p>

<p>慣れた今となってはこちらの方が見やすくて好きです。</p>

]]></content:encoded>
			<wfw:commentRss>http://manjilab.com/2009/12/19/lisp-style-indentation-rule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aquamacs Emacs + ParEdit のキー割当</title>
		<link>http://manjilab.com/2009/12/17/paredit-keydinding-on-aquamacs/</link>
		<comments>http://manjilab.com/2009/12/17/paredit-keydinding-on-aquamacs/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 05:49:28 +0000</pubDate>
		<dc:creator>研究所大佐</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Aquamacs]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://manjilab.com/?p=241</guid>
		<description><![CDATA[Aquamacs EmacsをインストールしてParEditを設定してみた。
CheatSheetにある動作でただしく再現できないものがあったのでなんとかしてみた。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fmanjilab.com%2F2009%2F12%2F17%2Fparedit-keydinding-on-aquamacs%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Aquamacs%20Emacs%20%2B%20ParEdit%20%E3%81%AE%E3%82%AD%E3%83%BC%E5%89%B2%E5%BD%93%22%20%7D);"></div>
<p>あー、やっぱりemacsもいいかも。<br />
emacsはLisp系言語の扱いには強いなぁ・・って当然か。</p>

<p>Clojure関係のスライドをあさっていたら洗脳されました（笑）<br />
<a href="http://www.slideshare.net/mudphone/paredit-preso">SlideShare | Paredit Preso</a></p>

<p>emacsというより
<a href="http://www.emacswiki.org/emacs/ParEdit">ParEdit</a>
が素晴らしい。<br />
さっそく
<a href="http://aquamacs.org/">Aquamacs Emacs</a>
をインストールしてParEditを設定してみた。</p>

<p>あれ？
<a href="http://www.emacswiki.org/emacs/PareditCheatsheet">ParEdit CheatSheet</a>
にある動作で再現できないものがある。</p>

<p>paredit-backward-kill-word (M-DEL) がただの単語削除になってしまう。<br />
pareditモードでキー割当を調べてみたところ、該当する関数が割り当てられていない。</p>

<p>OS X だからなのか Aquamacs だからなのかは判らないけど<br />
とりあえず emacsの設定ファイルに以下を追加することで解決できた。</p>


<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>eval-after-load 'paredit
  '<span style="color: #66cc66;">&#40;</span>define-key paredit-mode-map <span style="color: #66cc66;">&#40;</span>kbd <span style="color: #ff0000;">&quot;M-&lt;backspace&gt;&quot;</span><span style="color: #66cc66;">&#41;</span>
     'paredit-backward-kill-word<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>


]]></content:encoded>
			<wfw:commentRss>http://manjilab.com/2009/12/17/paredit-keydinding-on-aquamacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clojure開発環境の導入 &#8211; TextMate編</title>
		<link>http://manjilab.com/2009/12/17/setup-clojure-on-textmate/</link>
		<comments>http://manjilab.com/2009/12/17/setup-clojure-on-textmate/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 01:47:29 +0000</pubDate>
		<dc:creator>研究所大佐</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Clojure]]></category>
		<category><![CDATA[TextMate]]></category>

		<guid isPermaLink="false">http://manjilab.com/?p=236</guid>
		<description><![CDATA[僕は主にTextMateを使っています。<br />
TextMateでの導入はとても簡単です。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fmanjilab.com%2F2009%2F12%2F17%2Fsetup-clojure-on-textmate%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Clojure%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E5%B0%8E%E5%85%A5%20-%20TextMate%E7%B7%A8%22%20%7D);"></div>
<p>Clojureの開発環境は僕の知る限り以下のものが有名です。</p>

<ul>
<li>TextMate &#8211; Clojure.tmbundle</li>
<li>Emacs &#8211; clojure-mode</li>
<li>NetBean &#8211; <a href="http://www.enclojure.org/">enclojure</a></li>
<li>Eclipse &#8211; clojure-dev</li>
<li>Vim &#8211; <a href="http://kotka.de/projects/clojure/vimclojure.html">VimClojure</a></li>
</ul>

<p>その他にも Lispboxのemacs版といえる
<a href="http://clojure.bighugh.com/">Clojure Box</a>
などがあるようです。</p>

<p>僕は主にTextMateを使っていますがClojureの導入はとても簡単。<br />
バンドルさえインストールしておけばclojureが見つからなければセットアップするかどうかを聞いてきます。</p>

<p>ClojureバンドルはGithubでいろいろみつかりますが僕はこれを使いました。<br />
<a href="http://github.com/kek/clojure-tmbundle">http://github.com/kek/clojure-tmbundle</a></p>

<p>導入のし方も念のため：</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>Application\ Support<span style="color: #000000; font-weight: bold;">/</span>TextMate<span style="color: #000000; font-weight: bold;">/</span>Bundles<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #000000; font-weight: bold;">%</span> git clone git:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>kek<span style="color: #000000; font-weight: bold;">/</span>clojure-tmbundle.git Clojure.tmbundle
<span style="color: #000000; font-weight: bold;">%</span> osascript <span style="color: #660033;">-e</span> <span style="color: #ff0000;">'tell app &quot;TextMate&quot; to reload bundles'</span>
<span style="color: #000000; font-weight: bold;">%</span> .<span style="color: #000000; font-weight: bold;">/</span>Clojure.tmbundle<span style="color: #000000; font-weight: bold;">/</span>Vendor<span style="color: #000000; font-weight: bold;">/</span>clj-update-and-build</pre></div></div>


<p>最後のコマンドでclojureの導入も済ませてしまっています。<br />
バンドルのディレクトリの Vendor/ 以下にセットアップされます。
Clojure環境のアップデートも同じコマンドでおこないます。</p>

<hr />

<p>TextMateはLisp系インデントに弱いので、その辺を何とかしたい場合は
<a href="http://manjilab.com/2009/11/13/indent-clojure-in-textmate/">TextMateでのClojureのインデント解決編</a>
を参考にしてください。</p>

<p><a href="http://manjilab.com/2009/12/10/clojure-with-textmate-tips/">Clojure(Lisp)をTextMateで使うときの豆知識。</a>
もあわせてどうぞ。</p>

]]></content:encoded>
			<wfw:commentRss>http://manjilab.com/2009/12/17/setup-clojure-on-textmate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clojure(Lisp)をTextMateで使うときの豆知識。</title>
		<link>http://manjilab.com/2009/12/10/clojure-with-textmate-tips/</link>
		<comments>http://manjilab.com/2009/12/10/clojure-with-textmate-tips/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 02:19:28 +0000</pubDate>
		<dc:creator>研究所大佐</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Clojure]]></category>
		<category><![CDATA[Lisp]]></category>
		<category><![CDATA[TextMate]]></category>

		<guid isPermaLink="false">http://manjilab.com/?p=218</guid>
		<description><![CDATA[Clojure(Lisp)をTextMateで使うときの豆知識。
ささいな事だけど、もし気付いてないと結構めんどくさい思いをします。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fmanjilab.com%2F2009%2F12%2F10%2Fclojure-with-textmate-tips%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Clojure%28Lisp%29%E3%82%92TextMate%E3%81%A7%E4%BD%BF%E3%81%86%E3%81%A8%E3%81%8D%E3%81%AE%E8%B1%86%E7%9F%A5%E8%AD%98%E3%80%82%22%20%7D);"></div>
<p>ささいな事だけど、もし気付いてないと結構めんどくさい思いをします。</p>

<p>TextMateは改行時やコードをペーストした時に自動でインデントしてくれるのですが。いこれが余計に感じるケースがあります。</p>

<p>例えばインデントが開いたまま改行すると</p>

<p><a href="http://www.flickr.com/photos/manjilab/4172241381/" title="Tips to use Clojure(Lisp) with TextMate by manjilab, on Flickr"><img src="http://farm3.static.flickr.com/2741/4172241381_f672d45a44.jpg" width="500" height="420" alt="Tips to use Clojure(Lisp) with TextMate" /></a></p>

<p>こうなります。まあこれが普通なんだけど、行頭に移動したい場合もある。</p>

<p>そんなときは
&#x2325;&#x21e7;&#x21a9; (Option + Shift + Return)</p>

<p><a href="http://www.flickr.com/photos/manjilab/4172241313/" title="Tips to use Clojure(Lisp) with TextMate by manjilab, on Flickr"><img src="http://farm3.static.flickr.com/2593/4172241313_455c3ff86d.jpg" width="500" height="420" alt="Tips to use Clojure(Lisp) with TextMate" /></a></p>

<p>で可能。</p>

<p>ここまでは普通の言語でもよくある話。</p>

<p>Lisp系言語ではコーディングルールが独特で、最後にまとめて括弧を閉じてしまうことが多いです。</p>

<p>その場合にTextMateが、（Rubyなどの場合と違って）「ブロックが閉じているかどうかを無視して直前の行のインデントにならう」のが問題。</p>

<p>たとえば、カーソルが行頭にあったとしてもペースト時に</p>

<p><a href="http://www.flickr.com/photos/manjilab/4172241517/" title="Tips to use Clojure(Lisp) with TextMate by manjilab, on Flickr"><img src="http://farm3.static.flickr.com/2688/4172241517_b09f9cbbb8.jpg" width="500" height="500" alt="Tips to use Clojure(Lisp) with TextMate" /></a></p>

<p>と直前の行にならってしまう。</p>

<p>こういう場合は
&#x2303;&#x2318;V (Control + Command + V) を使うと</p>

<p><a href="http://www.flickr.com/photos/manjilab/4172241465/" title="Tips to use Clojure(Lisp) with TextMate by manjilab, on Flickr"><img src="http://farm3.static.flickr.com/2531/4172241465_681523dfc5.jpg" width="500" height="500" alt="Tips to use Clojure(Lisp) with TextMate" /></a></p>

<p>このようにカーソル位置に則したインデントでペーストをしてくれます。</p>

<p>このショートカットに気付いてからTextMateでClojureのコードを書くのがかなり楽になりました。</p>

<p>あれ・・・？ インデントといえばPythonもそうじゃん。<br />
これって多くのPython使いの人は知ってたの？<br />
ひょっとしてTextMateの常識だった？</p>

]]></content:encoded>
			<wfw:commentRss>http://manjilab.com/2009/12/10/clojure-with-textmate-tips/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Clojureのweb fameworkについて調べた。</title>
		<link>http://manjilab.com/2009/11/18/web-framework-on-clojure/</link>
		<comments>http://manjilab.com/2009/11/18/web-framework-on-clojure/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 17:17:19 +0000</pubDate>
		<dc:creator>研究所大佐</dc:creator>
				<category><![CDATA[Clojure]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://manjilab.com/?p=130</guid>
		<description><![CDATA[Clojure上でのWebフレームワークを探してみた。
定番ぽいのが３つ見つかった。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fmanjilab.com%2F2009%2F11%2F18%2Fweb-framework-on-clojure%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Clojure%E3%81%AEweb%20famework%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E8%AA%BF%E3%81%B9%E3%81%9F%E3%80%82%22%20%7D);"></div>
<p>Clojure上でのWebフレームワークを探してみた。<br />
定番ぽいのが３つ見つかった。</p>

<h2>1. <a href="http://github.com/blog/308-compojure-clojure-web-framework">Compojure</a>　　</h2>

<p>コードサンプルを一見するとSinatraと錯覚してしまう。<br />
作者も web.py や Sinatra にインスパイアされたと言っている。</p>

<p>参考リンク：
<a href="http://groups.google.com/group/compojure">Googleグループ</a>, 
<a href="http://github.com/weavejester/compojure/">github</a></p>

<h2>2. <a href="http://github.com/tatut/Webjure">Webjure</a></h2>

<p>最近はCompojureにおされているかも。<br />
検索するとCompojureと並んでよく出てくる。</p>

<h2>3. <a href="http://github.com/macourtney/Conjure/">Conjure</a></h2>

<p>Clojure上でのrailsを目指してるっぽい。(<a href="http://wiki.github.com/macourtney/Conjure/hello-world-tutorial">Tutorial</a>)</p>

<p>Conjureは以下のライブラリを含んでいる：</p>

<ul>
<li><a href="http://github.com/mmcgrana/ring/tree">ring</a> 
: RubyでいうことろのRack</li>
<li><a href="http://github.com/duelinmarkers/clj-record">clj-record</a>
: RubyでいうところのActiveRecord</li>
<li><a href="http://github.com/mmcgrana/clj-html">clj-html</a>
: HTMLテンプレート記述言語。Lisp系とxml系は相性がいいよね。</li>
</ul>

<h3>その他気になったもの（あとで読む）</h3>

<ul>
<li><a href="http://github.com/cgrand/enlive">Enlive</a>
: Enlive is a selector-based (à la CSS) templating library for Clojure.</li>
<li><a href="http://github.com/larrytheliquid/specjure/">Specjure</a>
: BDDフレームワーク。名前のまんまだね。</li>
</ul>

<p>Clojure系は -jure と名付けてるのが多いようですね。
Gorenjureとかあったら作者は日本人だろうなw</p>

<p>言語とかライブラリ名前って実在する単語と被っていると検索しづらい。
その点<strong>Clojure</strong>とか<strong>Perl</strong>とかは読み方も明快で検索しやすくて素敵。
<strong>Go</strong>とか最悪ですｗ</p>

]]></content:encoded>
			<wfw:commentRss>http://manjilab.com/2009/11/18/web-framework-on-clojure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordTwitがさっそく対応してくれました。</title>
		<link>http://manjilab.com/2009/11/15/wordtwit-2-2-3/</link>
		<comments>http://manjilab.com/2009/11/15/wordtwit-2-2-3/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 18:54:27 +0000</pubDate>
		<dc:creator>研究所大佐</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordTwit]]></category>

		<guid isPermaLink="false">http://manjilab.com/?p=114</guid>
		<description><![CDATA[WordTwit のバージョンが 2.2.3 になっていました。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fmanjilab.com%2F2009%2F11%2F15%2Fwordtwit-2-2-3%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22WordTwit%E3%81%8C%E3%81%95%E3%81%A3%E3%81%9D%E3%81%8F%E5%AF%BE%E5%BF%9C%E3%81%97%E3%81%A6%E3%81%8F%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%22%20%7D);"></div>
<p><a href="http://www.bravenewcode.com/wordtwit/">WordTwit のバージョンが 2.2.3 になっていました。</a></p>

<blockquote>
  <p>Version 2.2.3</p>
  
  <p>Added fixes as suggested by majilab for tweets &amp; languages</p>
</blockquote>

<p>先日のパッチのためだけにバージョン切ってくれたのね。<br />
動作もバッチリです。ありがとう ＞ 中の人<br />
Thanks, Dev Team.</p>

<p>僕と同様の不具合がでていた方はアップデートしてみてください。</p>

<p>参考エントリ：<br />
<a href="http://manjilab.com/2009/11/14/wordtwit-get-garbled/">WordTwitの文字化けを修正。</a><br />
<a href="http://manjilab.com/2009/11/14/wordtwit-does-not-post/">WordTwitが正常に動かないので修正してみる。</a></p>

]]></content:encoded>
			<wfw:commentRss>http://manjilab.com/2009/11/15/wordtwit-2-2-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordTwitが正常に動かないので修正してみる。</title>
		<link>http://manjilab.com/2009/11/14/wordtwit-does-not-post/</link>
		<comments>http://manjilab.com/2009/11/14/wordtwit-does-not-post/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 21:31:34 +0000</pubDate>
		<dc:creator>研究所大佐</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[WordTwit]]></category>

		<guid isPermaLink="false">http://manjilab.com/?p=97</guid>
		<description><![CDATA[先の記事で紹介したWordTwit、実は2つ前に投稿した記事から使っていたのですが、twitterにポストされていませんでした。
どうやら不具合は一つだけではなかったようで・・。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fmanjilab.com%2F2009%2F11%2F14%2Fwordtwit-does-not-post%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22WordTwit%E3%81%8C%E6%AD%A3%E5%B8%B8%E3%81%AB%E5%8B%95%E3%81%8B%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E4%BF%AE%E6%AD%A3%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B%E3%80%82%22%20%7D);"></div>
<p>先の記事で紹介したWordTwit、実は2つ前に投稿した記事
『<a href="http://manjilab.com/2009/11/14/click-start-to-shutdown/">Windowsさんの親切っぷりは異常。</a>』
から使っていたのですが、この記事はtwitterにポストされていませんでした。</p>

<p>どうやら不具合は一つだけではなかったようで・・。</p>

<p>ソースを調べてみると時刻判定部分に原因がありました。</p>

<p>変更点は以下の通り：</p>

<script src="http://gist.github.com/234158.js"></script>

<p>サーバ時間（phpのロケール？）とWordPressのタイムゾーンがあっていないとダメかもしれませんが、僕の環境ではこれで問題ないのでとりあえず良しとします。</p>

<p>&#8211;</p>

<p><strong>[追記]</strong> WordTwit v2.2.3にて修正されました。</p>

<p>参考エントリ： 
<a href="http://manjilab.com/2009/11/15/wordtwit-2-2-3/">WordTwitがさっそく対応してくれました。</a></p>

]]></content:encoded>
			<wfw:commentRss>http://manjilab.com/2009/11/14/wordtwit-does-not-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordTwitの文字化けを修正。</title>
		<link>http://manjilab.com/2009/11/14/wordtwit-get-garbled/</link>
		<comments>http://manjilab.com/2009/11/14/wordtwit-get-garbled/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 21:00:48 +0000</pubDate>
		<dc:creator>研究所大佐</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordTwit]]></category>

		<guid isPermaLink="false">http://manjilab.com/?p=91</guid>
		<description><![CDATA[そこでWordPressの投稿をtwitterに投稿するプラグイン、WordTwitを導入してみました。
さっそく設定してみたのですが、プラグイン設定画面のメッセージが文字化けします。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fmanjilab.com%2F2009%2F11%2F14%2Fwordtwit-get-garbled%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22WordTwit%E3%81%AE%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%82%92%E4%BF%AE%E6%AD%A3%E3%80%82%22%20%7D);"></div>
<p>いままではfriendfeed経由でブログの更新をtwitterにポストしていたのですが、ブログからの投稿だということが判りにくかったのが欠点。</p>

<p>そこでWordPressの投稿をtwitterに投稿するプラグイン、WordTwit(2.2.2)を導入してみました。</p>

<p>さっそく設定してみたのですが、プラグイン設定画面のメッセージが文字化けします。</p>

<p><a href="http://www.flickr.com/photos/manjilab/4101577728/"; title="WordTwit get garbled. by manjilab, on Flickr"><img src="http://farm3.static.flickr.com/2549/4101577728_07e3cb1060.jpg"; width="500" height="209" alt="WordTwit get garbled." /></a></p>

<p>phpにありがちな mbstring.internal_encoding とかの問題ではないみたいです。</p>

<p>データベースを除いてみるとちゃんとUTF-8で文字化けせずに格納されています。</p>

<p>プラグインの管理画面を表示する部分のソースを除いてみると、メッセージが<strong>htmlentities</strong>でラップされている。あやしい。</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">%</span> php <span style="color: #660033;">-r</span> <span style="color: #ff0000;">'echo htmlentities(&quot;マンジラボ 『[title]』 - [link]&quot;);'</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">&amp;</span>atilde;<span style="color: #666666; font-style: italic;">##&amp;atilde;#&amp;sup3;&amp;atilde;#&amp;cedil;&amp;atilde;#&amp;copy;&amp;atilde;## &amp;atilde;##[title]&amp;atilde;## - [link]</span></pre></div></div>


<p>ああ、やっぱり。</p>

<p>phpのマニュアルをひいてみると<strong>htmlentities</strong>では
ISO-8859-1 文字セットがデフォルトの文字エンコーディングになっている。</p>

<p>1バイト圏の人がつくるとこういうのって気付かないんだろうね。というかphpが悪い気もする。</p>

<p>変更点は以下の通り。</p>

<script src="http://gist.github.com/234008.js"></script>

<p>さて、作者にフィードバックしようと思ったけどフォーラムって登録制だった。<br />
なんか萎えるなぁ。</p>

<p>twitterのアカウントを発見したからこの記事とgistのパッチのURLを送っておこうっと。</p>

<p>&#8211;</p>

<p><strong>[追記]</strong> WordTwit v2.2.3にて修正されました。</p>

<p>参考エントリ： 
<a href="http://manjilab.com/2009/11/15/wordtwit-2-2-3/">WordTwitがさっそく対応してくれました。</a></p>

]]></content:encoded>
			<wfw:commentRss>http://manjilab.com/2009/11/14/wordtwit-get-garbled/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>遅延 × 再帰 × フィボナッチ</title>
		<link>http://manjilab.com/2009/11/12/fibonacci-sequence-in-clojure/</link>
		<comments>http://manjilab.com/2009/11/12/fibonacci-sequence-in-clojure/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 17:21:18 +0000</pubDate>
		<dc:creator>研究所大佐</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Clojure]]></category>

		<guid isPermaLink="false">http://manjilab.com/?p=74</guid>
		<description><![CDATA[Clojureのドキュメントやチュートリアルでよく見かけるフィボナッチ数列を求める関数定義：
(def fibs (lazy-cat [0 1] (map + fibs (rest fibs))))
一見しただけでは「えっ？これで動くの？」と感じてしまうのだが
紙の上で動かしてみるとなるほど納得できた。]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fmanjilab.com%2F2009%2F11%2F12%2Ffibonacci-sequence-in-clojure%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22%E9%81%85%E5%BB%B6%20%C3%97%20%E5%86%8D%E5%B8%B0%20%C3%97%20%E3%83%95%E3%82%A3%E3%83%9C%E3%83%8A%E3%83%83%E3%83%81%22%20%7D);"></div>
<p><strong>長らく連載がストップしている某マンガ</strong>風なタイトルで。</p>

<p>Clojureのドキュメントやチュートリアルでよく見かけるフィボナッチ数列を求める関数定義：</p>


<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>def fibs <span style="color: #66cc66;">&#40;</span>lazy-cat <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>
     <span style="color: #66cc66;">&#40;</span>map<span style="color: #66cc66;"> + </span>fibs <span style="color: #66cc66;">&#40;</span>rest fibs<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>


<p>一見しただけでは
<strong>えっ？これで動くの？</strong>
と感じてしまうのだが
紙の上で動かしてみるとなるほど納得できた。</p>

<p>2行目の map関数での処理部分はつまることろ</p>


<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;">       fibs<span style="color: #66cc66;">:</span> <span style="color: #cc66cc;">0</span>  <span style="color: #cc66cc;">1</span>  <span style="color: #cc66cc;">1</span>  <span style="color: #cc66cc;">2</span>  <span style="color: #cc66cc;">3</span>  <span style="color: #cc66cc;">5</span> <span style="color: #66cc66;">...</span>
<span style="color: #66cc66;">&#40;</span>rest fibs<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">:</span> <span style="color: #cc66cc;">1</span>  <span style="color: #cc66cc;">1</span>  <span style="color: #cc66cc;">2</span>  <span style="color: #cc66cc;">3</span>  <span style="color: #cc66cc;">5</span>  <span style="color: #cc66cc;">8</span> <span style="color: #66cc66;">...</span>
<span style="color: #808080; font-style: italic;">;----------------------------------</span>
   <span style="color: #cc66cc;">0</span>  <span style="color: #cc66cc;">1</span>   +<span style="color: #66cc66;">:</span> <span style="color: #cc66cc;">1</span>  <span style="color: #cc66cc;">2</span>  <span style="color: #cc66cc;">3</span>  <span style="color: #cc66cc;">5</span>  <span style="color: #cc66cc;">8</span> <span style="color: #cc66cc;">13</span> <span style="color: #66cc66;">...</span></pre></div></div>


<p>と、まさにフィボナッチ数の定義そのままをコードにしたもの。<br />
動作も順を追っていくと理解できる。</p>


<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>                             <span style="color: #808080; font-style: italic;">; -&gt; [0 1]</span>
<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;"> + </span><span style="color: #66cc66;">&#40;</span>map<span style="color: #66cc66;"> + </span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>         <span style="color: #808080; font-style: italic;">; -&gt; [0 1 1]</span>
<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;"> + </span><span style="color: #66cc66;">&#40;</span>map<span style="color: #66cc66;"> + </span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>     <span style="color: #808080; font-style: italic;">; -&gt; [0 1 1 2]</span>
<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;"> + </span><span style="color: #66cc66;">&#40;</span>map<span style="color: #66cc66;"> + </span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">; -&gt; [0 1 1 2 3]</span></pre></div></div>


<p>再帰と遅延評価はそれぞれ理解していたつもりだけど
こうやって組み合わされると一瞬「ん？これで動くの？」と考えてしまう。<br />
まだ思考がこっち側になれていないみたい。</p>

<p>知識だけではすんなり頭に入っていかないこの感覚はまさに数学のそれに似てるな。
おもしろい。</p>

]]></content:encoded>
			<wfw:commentRss>http://manjilab.com/2009/11/12/fibonacci-sequence-in-clojure/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
