<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5467202919843205815</id><updated>2012-01-31T08:53:27.636+09:00</updated><category term='leiningen'/><category term='firefox'/><category term='setup'/><category term='blogger'/><category term='javascript'/><category term='mysql'/><category term='clojure'/><category term='python'/><category term='php'/><category term='q4m'/><category term='programming'/><category term='development'/><category term='zsh'/><category term='sqlalchemy'/><category term='pypi'/><category term='windows'/><category term='textmate'/><category term='macports'/><category term='Java'/><category term='book'/><category term='misc'/><category term='diary'/><title type='text'>Netsphere Engineering</title><subtitle type='html'>いろいろ突っ込んだこと書きたいけど現状セットアップメモと化しててエンジニアリングとは程遠い内容です。</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://technolize.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-3798719999629773481</id><published>2011-04-29T12:26:00.000+09:00</published><updated>2011-04-29T12:26:04.114+09:00</updated><title type='text'>Tumblr に移そうと思います</title><content type='html'>なんとなく Blogger 使いつづけるのだるいなーとか思ってたので、Tumblr に移ろうと思います。&lt;br /&gt;
ついでにドメイン取ったので使ってみてます。&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.technolize.net/"&gt;http://www.technolize.net&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;disqus 埋め込めるテーマ、微妙に機能しないやつとかあってなかなか決められない。白ベースでフォントサイズ小さすぎないやつが欲しいんだけど。自分で書いた方が早いか…。&lt;/div&gt;&lt;div&gt;あと、なんかウィジェットとかそういうの設定するのもだるい。シンプルなのはいいけどちょっと寂しい。めんどくさいねーいろいろ。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-3798719999629773481?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/3798719999629773481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/3798719999629773481'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2011/04/tumblr.html' title='Tumblr に移そうと思います'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-1126149148254018989</id><published>2011-01-21T03:31:00.002+09:00</published><updated>2011-01-21T03:41:21.625+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Snow Leopard に phpsh をインストール</title><content type='html'>&lt;p&gt;Facebook 謹製の PHP のインタラクティヴシェルである phpsh を思い出したようにインストールしてみたのでメモ。&lt;/p&gt;
&lt;p&gt;なんとなくインストール面倒だったような気がしてたけどそんなことなかった。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OS: Mac OS X 10.6&lt;/li&gt;
&lt;li&gt;Python: 2.7 (homebrew)&lt;/li&gt;
&lt;li&gt;PHP: 5.3.3 （デフォルトのやつ）&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Emacs に戻るべきかなーなんて考えながら clone してふつーにインストール。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;% git clone https://github.com/facebook/phpsh.git
% cd phpsh
% python setup.py build
% python setup.py install&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;これで phpsh が使えるようになるけど、pcntl があれば shell 内でのコマンドがそれぞれ fork されるから recommend ってことみたいなので pcntl を入れる。 Snow Leopard にはデフォルトで入ってなかった。&lt;/p&gt;
&lt;p&gt;homebrew の formula 拾ってきて PHP ごと入れようかと思ったけど、やっぱり面倒なので pcntl の拡張だけ入れる。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;% wget http://jp.php.net/distributions/php-5.3.3.tar.gz
% tar zxvf php-5.3.3.tar.gz
% cd php-5.3.3/ext/pcntl
% phpize
% ./configure
% make
% make test
% sudo make install
% sudo vim /etc/php.ini&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;これでインストールは終わり。起動してみる。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;% phpsh
Starting php
type 'h' or 'help' to see instructions &amp; features
php&amp;gt; 1 + 3

php&amp;gt; &lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;あれ、って思ったけど "=" を付ければいいみたい。 これ書きながら思ったけど、なんで僕は 1 + 3 って入力したんでしょうか。。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;php&amp;gt; = 1 + 3
4
php&amp;gt; = "hoge"
"hoge"
php&amp;gt; = array_filter(array(0, 1, null, '', 'hoge'))
array(  1 =&amp;gt; 1,
  4 =&amp;gt; "hoge",
)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;echo とか var_dump なんかはそのまま使える（当然だけど）。&lt;/p&gt;

&lt;p&gt;入れとくと便利ですねー。 なんで今頃入れてるんでしょうねー。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-1126149148254018989?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/1126149148254018989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/1126149148254018989'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2011/01/snow-leopard-phpsh.html' title='Snow Leopard に phpsh をインストール'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-7522406583910757272</id><published>2011-01-07T00:58:00.002+09:00</published><updated>2011-01-07T01:14:26.816+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Python から Imlib2 を使う</title><content type='html'>&lt;p&gt;クロールした画像のサムネイル（正方形に crop）を作る必要があったから、せっかくなので Imlib2 を試してみることにした。&lt;/p&gt;
&lt;p&gt;前に調べごとしてた時に &lt;a href="http://www.hexacosa.net/blog/detail/101/"&gt;Benchmark of Python Image Processing(resize)&lt;/a&gt; をブックマークしてベンチマークのグラフ見てたから、クオリティ求められてるわけじゃないし他の使う気にはちょっとなれなかった。&lt;/p&gt;

&lt;p&gt;Imlib2 自体は Homebrew にあるのでありがたく使わせてもらう。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ brew install imlib2&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Python のモジュールは kaa-imlib2 なんだけど、easy_install とか pip のコマンド叩くとパッケージ無いとか言われるし、PyPI の egg は中に setup.py が入ってないからエラーになるし、これは何なのかよくわからない。&lt;/p&gt;
&lt;p&gt;sourceforge とか PyPi のアーカイブは無視してリポジトリからチェックアウトする。なんとなく不安。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ svn co svn://svn.freevo.org/kaa/trunk/base kaa-base
$ svn co svn://svn.freevo.org/kaa/trunk/imlib2 kaa-imlib2&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;それぞれ python setup.py install すれば問題なくインストールされるはず。逆に拍子抜けしたけど。&lt;/p&gt;
&lt;p&gt;以下使ってみて気づいたこととか。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JPEG の quality 指定できないっぽい？ドキュメントしか見てないけど&lt;/li&gt;
&lt;li&gt;ドキュメントにある scale_preserve_aspect が無い&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;検索してみると mopemope さん？が kaa-imlib2 あんまりいいもんじゃないって書いてたのが
あったような気がするけど、どの辺りがそうなのか無知なのでよくわからない。名前がアレかなーとは思うけど。あと base とか依存がちょっとうざい。&lt;/p&gt;
&lt;p&gt;勉強して自分で wrapper 書いてみたいって思ったけど、当面は無理かな。。&lt;/p&gt;

&lt;h4&gt;おまけ: CentOS 4.7 にインストール&lt;/h4&gt;

&lt;p&gt;subversion すら入っていないので svn co した kaa.base と kaa.imlib2 を sftp でアップロードする。&lt;/p&gt;

&lt;p&gt;Imlib2 は sourceforge.net から最新のリリースを持ってきてインストール&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href="http://sourceforge.net/projects/enlightenment/files/imlib2-src/"&gt;http://sourceforge.net/projects/enlightenment/files/imlib2-src/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;pre&gt;&lt;code&gt;$ ./configure --without-x
$ make
# make install&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;/usr/local 以下にインストールする。別にいいかと思って prefix は設定しなかった。&lt;/p&gt;
&lt;p&gt;/usr/local/lib が LD_LIBRARY_PATH に含まれていないので /etc/ld.so.conf.d に imlib2.conf を作成し、適当に /usr/local/lib と書いて ldconfig を実行。&lt;/p&gt;

&lt;p&gt;kaa.base と kaa.imlib2 はそれぞれ python setup.py install を実行する。 glib2 が古いから kaa.db が使えない？とかメッセージ出たけど関係ないから気にしない。&lt;/p&gt;

&lt;p&gt;インタプリタ起動して import 出来るのを確認し、スクリプトも実行できることを確認して作業終了。何かしらトラブル出ると思ってたからまたまた拍子抜けしてしまった。&lt;/p&gt;

&lt;p&gt;kaa-imlib2 普通に使う分には問題無いんだろうけど、もうちょっと楽できる wrapper あればいいなーって思った。そもそも画像処理なんてそんなに経験してないから何がどうとはまだ言えないけどね。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-7522406583910757272?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/7522406583910757272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/7522406583910757272'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2011/01/python-imlib2.html' title='Python から Imlib2 を使う'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-2898734940729100491</id><published>2010-11-26T00:31:00.004+09:00</published><updated>2010-11-26T00:44:08.895+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><title type='text'>pfff の formula 書いてみたけどうまくいかなかったの巻</title><content type='html'>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/facebook/pfff"&gt;facebook's pfff at master - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/perezvon/20101125/1290663949"&gt;pfffを試す - スコトプリゴニエフスク通信&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;これ良さげだなーと思ってインストールしようと思ったんだけど、どうせだしただインストールするんじゃなくて Homebrew の formula 書いてみようと思って試してみた。&lt;/p&gt;
&lt;p&gt;既存の formula を参考に適当に書いた。たしかに書きやすいし楽だ。&lt;/p&gt;

&lt;script src="https://gist.github.com/715532.js?file=pfff.rb"&gt;&lt;/script&gt;
&lt;pre style="display:none"&gt;&lt;code&gt;require 'formula'
class Pfff &lt;Formula
  url 'https://github.com/facebook/pfff/tarball/RELEASE-0.13'
  homepage 'https://github.com/facebook/pfff'
  md5 '82e19f8d2f7639e5ec519587cfdf82a4'
  head 'git://github.com/facebook/pfff.git'

  depends_on 'objective-caml'
  depends_on 'pcre'
  depends_on 'gtk+' =&gt; :optional
  depends_on 'libsvg-cairo' =&gt; :optional

  def install
    system "./configure", "--prefix=/usr/local/Cellar/pfff/0.13"
    system "make depend"
    system "make"
   
    bin.install "pfff"
    bin.install "sgrep"
    bin.install "spatch"
    bin.install "scheck"
    bin.install "stags"
    bin.install "codemap"
    bin.install "pfff_db_light"
  end
end&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;これでいいだろう、って思って&lt;/p&gt;
&lt;pre&gt;$ brew install pfff --HEAD&lt;/pre&gt;
&lt;p&gt;ってやるとエラーが出て make の段階で止まる。 ちなみに、普通に git clone して configure、make depend、make のコマンド叩いて実行するとエラー出ないでコンパイル完了する…。なんで？環境変数？&lt;/p&gt;
&lt;p&gt;pcre も /opt/local/include/pcre.h 見てファイル無いよとか configure でエラー吐くしなんか微妙な感じなんだけど、scheck とか結構重宝しそう。今のところ使ってない変数の報告くらいしか見てないけど。&lt;/p&gt;
&lt;p&gt;誰か TextMate の bundle 作ってくれるのを待ちたいと思います。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-2898734940729100491?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/2898734940729100491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/2898734940729100491'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2010/11/pfff-formula.html' title='pfff の formula 書いてみたけどうまくいかなかったの巻'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-4663330214176145235</id><published>2010-11-18T14:16:00.004+09:00</published><updated>2010-11-18T14:21:52.923+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pypi'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>pip で PyPI のパッケージ更新状況を確認する</title><content type='html'>&lt;p&gt;いつの間にか yolk がお亡くなりになってて微妙に不便だったから、コピペででっちあげた。&lt;/p&gt;
&lt;p&gt;パッケージの名前渡したらヴァージョンチェックしてくれるメソッド用意されてると思ったんだけど、無いくさいからいちいち検索してるのがちょっとアレ。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/technolize/5186421764/" title="pip outdated by technolize, on Flickr"&gt;&lt;img src="http://farm2.static.flickr.com/1290/5186421764_39790df17b.jpg" width="278" height="153" alt="pip outdated" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;でもまぁ、いいと思います！&lt;/p&gt;

&lt;script src="https://gist.github.com/704580.js?file=outdated.py"&gt;&lt;/script&gt;
&lt;pre style="display:none"&gt;&lt;code&gt;import pkg_resources
import xmlrpclib
import pip
import pip.download
from pip.log import logger
from pip.basecommand import Command
from pip.util import get_installed_distributions
from pip.commands.search import transform_hits, compare_versions, highest_version

class OutdatedCommand(Command):
    name = 'outdated'
    usage = '%prog'
    summary = 'check updated packages'
    
    def __init__(self):
        super(OutdatedCommand, self).__init__()
    
    def run(self, options, args):
        index_url = 'http://pypi.python.org/pypi'
        
        for dist in get_installed_distributions(local_only=True):
            pypi_hits = self.search(dist.key, index_url)
            hits = transform_hits(pypi_hits)
            print_results(hits)
    
    def search(self, query, index_url):
        pypi = xmlrpclib.ServerProxy(index_url, pip.download.xmlrpclib_transport)
        hits = pypi.search({'name': query})
        return hits


def print_results(hits):
    installed_packages = [p.project_name for p in pkg_resources.working_set]
    for hit in hits:
        name = hit['name']
        
        try:
            if name in installed_packages:
                dist = pkg_resources.get_distribution(name)
                try:
                    latest = highest_version(hit['versions'])
                    if dist.version &lt; latest:
                        logger.notify('%s: %s =&gt; %s' % (name, dist.version, latest))
                finally:
                    pass
        except UnicodeEncodeError:
            pass


OutdatedCommand()&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-4663330214176145235?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/4663330214176145235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/4663330214176145235'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2010/11/pip-pypi.html' title='pip で PyPI のパッケージ更新状況を確認する'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm2.static.flickr.com/1290/5186421764_39790df17b_t.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-5851873908787903324</id><published>2010-11-17T00:34:00.003+09:00</published><updated>2010-11-17T00:59:26.563+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlalchemy'/><title type='text'>SQLAlchemy で collate が utf8_bin なカラムだとユニコード文字列で取得出来ない</title><content type='html'>&lt;p&gt;某システムで検索の仕様変えることになって（厳密にはいろいろ違うけど）、大文字小文字の区別付けるために検索対象のカラムの collate を utf8_general_ci から utf8_bin に変更した。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ALTER TABLE `hoge` MODIFY `col` VARCHAR(255) NOT NULL DEFAULT '' CHARACTER SET utf8 COLLATE utf8_bin&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;検索は PHP で書いてて、テストも問題無かったからデプロイしたんだけど、このテーブルを Python で書いたクローラも参照してたから、ちょっと問題が出た。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;from sqlalchemy import *
from sqlalchemy.sql import select

engine = create_engine('mysql://localhost/sandbox', echo=False, encoding='utf-8', convert_unicode=True)
conn = engine.connect()
metadata = MetaData(bind=engine)
tbl1 = Table('table1', metadata, autoload=True)

for row in conn.execute(select([tbl1])):
    print row # Unicode文字列になっていない
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;ORM 使わないで書いてたやつなんだけど、取得した結果の文字カラムがユニコード文字列になってなくて、お馴染の UnicodeDecodeError でクローラが落ちる…。&lt;/p&gt;

&lt;p&gt;そもそもの書き方が悪い、っていうのがあるんだけど、一旦それは置いといて（というかすぐ直した）原因は何なのかってのを調べてみる。&lt;/p&gt;

&lt;p&gt;ローカルの環境は MySQL 5.1.51 + SQLAlchemy 0.6.1 で、上記のコードを試すと結果はユニコード文字列になってる。&lt;/p&gt;
&lt;p&gt;あれ、ってことで本番環境確認すると MySQL 5.0.91 + SQLAlchemy 0.6.1…なんだけど、DB サーバは別にあってそっちは MySQL 5.1.51。 SQLAlchemy のバージョン上げれば解決、だと思ったんだけど、問題解決にはならず結果は同じ…。&lt;/p&gt;

&lt;p&gt;あんまり検証してないけど、とりあえずこういうことらしい。SQLAlchemy がその辺うまいこと処理してくれるものだと思ってたんだけど、どうなんだろう…。&lt;/p&gt;

&lt;p&gt;それにしても余裕が無い…。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-5851873908787903324?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/5851873908787903324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/5851873908787903324'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2010/11/sqlalchemy-collate-utf8bin.html' title='SQLAlchemy で collate が utf8_bin なカラムだとユニコード文字列で取得出来ない'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-1508633851725673961</id><published>2010-11-13T01:12:00.005+09:00</published><updated>2010-11-13T01:36:23.847+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>Maatkit の mk-kill で SELECT だけを殺す</title><content type='html'>&lt;p&gt;どうもこんばんは。 MySQL さっぱりわからないクズです。&lt;/p&gt;

&lt;p&gt;いまいちクエリ改善できなくて、ヘタに検索すると刺さっちゃったりするシステム作ってしまった訳なんですけど、大人の事情でサーバのメモリ増設とかすんなり出来なかったりしてどうしようかなって状態だったりするんですが、とりあえず刺さったクエリを自動で殺す方法探したら Maatkit に含まれる mk-kill 使うのが一番手頃みたいだし cron&lt;sup&gt;*1&lt;/sup&gt; に仕込んでおいた。&lt;/p&gt;

&lt;pre&gt;$ mk-kill -kill-query --busy-time 1m&lt;/pre&gt;

&lt;p&gt;これで実行されてから1分以上経過したクエリが自動で殺されます。よかったよかった…なんですが、ALTER TABLE とかパーティションの更新とかもこれだと対象にされちゃうので、SELECT のみに限定したい場合は&lt;/p&gt;

&lt;pre&gt;$ mk-kill -kill-query --match-info SELECT --busy-time 1m&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;--match-info&lt;/code&gt; でパターンを指定してやればいいみたい。 info ってのがぱっと見だとわかりずらいけど、show processlist の info の部分ってことみたい。&lt;/p&gt;

&lt;p&gt;ぜんぜんわかんないことばかりで悲しいんだけど、Maatkit 便利だしいろいろ試したい。&lt;/p&gt;

&lt;p&gt;余談だけど、パーティションって2日先まで作って更新してくのがいいよね？とりあえず問題は出てないしデメリットも思いつかないから、このままでいくけど。。&lt;/p&gt;

&lt;p&gt;*1: --daemonize のオプション指定してみたけどちゃんと動かなかった。 pid 指定してみても駄目。何かに依存してるのかな。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-1508633851725673961?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/1508633851725673961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/1508633851725673961'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2010/11/maatkit-mk-kill-select.html' title='Maatkit の mk-kill で SELECT だけを殺す'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-4634174534825655480</id><published>2010-11-07T21:13:00.002+09:00</published><updated>2010-11-07T21:15:49.551+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diary'/><title type='text'>do</title><content type='html'>&lt;ul&gt;&lt;li&gt;MacBook も Homebrew に移行。とりあえず coreutils と tmux と zsh だけ入れた&lt;/li&gt;&lt;li&gt;limera1n で iPhone 4 を Jailbreak&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;何にも書かなくなっちゃったし、とりあえずその日にやったことだけでも記録付けるようにしたい。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-4634174534825655480?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/4634174534825655480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/4634174534825655480'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2010/11/do.html' title='do'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-7050149541593333624</id><published>2010-09-20T15:13:00.002+09:00</published><updated>2010-09-20T15:20:36.716+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='q4m'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='setup'/><title type='text'>MySQL 5.1 と Q4M のインストール</title><content type='html'>&lt;p&gt;まぁまぁまぁ。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CentOS 5.5&lt;/li&gt;
&lt;li&gt;MySQL 5.1.50&lt;/li&gt;
&lt;li&gt;Q4M 0.9.4&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;MySQLのインストール&lt;/h3&gt;
&lt;pre&gt;$ ./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-extra-charsets=all --with-plugins=all
$ make
# make install
# cp support-files/my-medium.cnf /etc/my.cnf
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod a+x /etc/rc.d/init.d/mysql
# /sbin/chkconfig mysqld on
# vim /etc/ld.so.conf.d/mysql
+/usr/local/mysql/lib/mysql
# /sbin/ldconfig
# cd /usr/local/mysql
# chown -R mysql:mysql .
# sudo -u mysql ./bin/mysql_install_db
# ./bin/mysqld_safe --user=mysql &amp;
# ./bin/mysql_secure_installation&lt;/pre&gt;

&lt;h3&gt;Q4Mのインストール&lt;/h3&gt;

&lt;pre&gt;$ ./configure --prefix=/usr/local/mysql --with-mysql=/usr/local/src/mysql-5.1.50
$ make
$ make test
# make install
# mysql -u root -f mysql &lt; support-files/install.sql&lt;/pre&gt;

&lt;h3&gt;PHPのMySQL拡張を個別に再インストール&lt;/h3&gt;

&lt;pre&gt;# yum remove php-mysql
$ wget php-5.x.x
$ tar zxvf php-5.x.x
$ cd php-5.x.x/ext/mysql
$ phpize
$ ./configure --with-mysql=/usr/local/mysql
$ make
# make install
# vim /etc/php.ini&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-7050149541593333624?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/7050149541593333624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/7050149541593333624'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2010/09/mysql-51-q4m.html' title='MySQL 5.1 と Q4M のインストール'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-1141823359191557661</id><published>2010-06-12T19:26:00.002+09:00</published><updated>2010-06-12T19:31:34.236+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Windows を使ってる</title><content type='html'>&lt;p&gt;糞だ糞だとギャーギャー心の中で騒ぎながら、それでも仕事だし Windows の PC を使ってる。&lt;/p&gt;

&lt;p&gt;なんか Windows ってぜんぜん進化してないように感じる。これはタイムマシンだ！僕が中学とか高校の頃から主役のアプリケーションが変っていない。というか、使えるアプリが出てきてない。これはある意味素晴しいことなんだろうけど、なんだかなーって正直思ってしまう。&lt;/p&gt;

&lt;p&gt;UI は何をどうやっても野暮ったいままでダサいし、フォントのレンダリングはマジで吐き気がする。酷すぎるだろ。&lt;/p&gt;

&lt;p&gt;それでも、エディタが使えれば仕事は出来るし、なんとかなってる。最初はかなり忘れてて、何を使おうかとかけっこう悩んだけど、とりあえず落ち着いてきた。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NetBeans&lt;/li&gt;
&lt;li&gt;xyzzy&lt;/li&gt;
&lt;li&gt;EmEditor free&lt;/li&gt;
&lt;li&gt;putty&lt;/li&gt;
&lt;li&gt;VirtualBox&lt;/li&gt;
&lt;li&gt;TortoiseGit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;xyzzy とか本当に素晴しいなーって改めて思うんだけれど、設定するのが面倒すぎてなんとも…。ずっとこのままの環境で仕事をすることになるのであれば、ちょっとずつでもやっておきたいんだけれど、どうしようかなーと。&lt;/p&gt;

&lt;p&gt;あとそれほど関係ないけど、VirtualBox 上に CentOS の環境を作ってる。yum とかちゃんと使うの実は初めてなんだけれど、まーなんとかなってる。なんともならないのが Apache の設定。VirtualHost の設定をすると Permission error で 403 forbidden になる。 SELinux は disabled なのに。何で？&lt;/p&gt;

&lt;p&gt;いろいろ大変ですなー。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-1141823359191557661?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/1141823359191557661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/1141823359191557661'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2010/06/windows.html' title='Windows を使ってる'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-2759199676958010660</id><published>2010-05-21T12:26:00.005+09:00</published><updated>2010-05-26T02:50:29.822+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>pip に upgrade コマンドを追加する</title><content type='html'>&lt;p&gt;Python のパッケージのイントールは最近だと pip を使うのが普通だと思いますが、この pip には何故か upgrade のサブコマンドが無いんですよねぇ。 いちいち &lt;code&gt;pip install --upgrade package&lt;/code&gt; ってやるの面倒だし自分で用意してみた。&lt;/p&gt;
&lt;p&gt;とはいってもやることは簡単で、lib/pythonx.x/site-packages/pip/commands にある install.py をコピーして upgrade.py にして、中をちょっといじるだけ。 モジュール化って素敵ですね。&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JXWoyyOGpiY/S_X_HYwRqlI/AAAAAAAAADs/-q33vkzHz24/s1600/100521-0001.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 230px; height: 320px;" src="http://2.bp.blogspot.com/_JXWoyyOGpiY/S_X_HYwRqlI/AAAAAAAAADs/-q33vkzHz24/s320/100521-0001.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5473561424507808338" /&gt;&lt;/a&gt;
&lt;script src="http://gist.github.com/408417.js?file=gistfile1.diff"&gt;&lt;/script&gt;

&lt;h4&gt;追記&lt;/h4&gt;
&lt;!-- http://twitter.com/laiso/status/14706637635 --&gt; &lt;style type='text/css'&gt;.bbpBox{background:url(http://s.twimg.com/a/1274739546/images/themes/theme1/bg.png) #9ae4e8;padding:20px;}&lt;/style&gt;&lt;div id='tweet_14706637635' class='bbpBox' style='background:url(http://s.twimg.com/a/1274739546/images/themes/theme1/bg.png) #9ae4e8;padding:20px;'&gt;&lt;p class='bbpTweet' style='background:#fff;padding:10px 12px 10px 12px;margin:0;min-height:48px;color:#000;font-size:16px !important;line-height:22px;-moz-border-radius:5px;-webkit-border-radius:5px;'&gt;&lt;a href='http://bit.ly/bGF0fe' target='_new'&gt;http://bit.ly/bGF0fe&lt;/a&gt; もしかしてPIP_CONFIG_FILEの設定(&lt;a href='http://bit.ly/9NvkGx)で[install]' target='_new'&gt;http://bit.ly/9NvkGx)で[install]&lt;/a&gt; upgrade=yes とすると常に--upgradeが実現できるんじゃないかな。あとでやってみよう&lt;span class='timestamp' style='font-size:12px;display:block;'&gt;&lt;a title='Tue May 25 17:23:33 ' href='http://twitter.com/laiso/status/14706637635'&gt;Tue May 25 17:23:33 &lt;/a&gt; via web&lt;/span&gt;&lt;span class='metadata' style='display:block;width:100%;clear:both;margin-top:8px;padding-top:12px;height:40px;border-top:1px solid #fff;border-top:1px solid #e6e6e6;'&gt;&lt;span class='author' style='line-height:19px;'&gt;&lt;a href='http://twitter.com/laiso'&gt;&lt;img src='http://a3.twimg.com/profile_images/734266981/Mozilla_normal.gif' style='float:left;margin:0 7px 0 0px;width:38px;height:38px;' /&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href='http://twitter.com/laiso'&gt;laiso&lt;/a&gt;&lt;/strong&gt;&lt;br/&gt;laiso&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;!-- end of tweet --&gt;

&lt;p&gt;laiso さんの tweet 見て試してみたらその通りだった。これが一番簡単です。&lt;/p&gt;
&lt;pre&gt;% touch .pip/pip.conf
% echo '[install]' &gt; pip.conf
% echo 'upgrade = true' &gt;&gt; pip.conf&lt;/pre&gt;
&lt;p&gt;これで install コマンドで常に upgrade オプションが有効になります。 すでにインストール済みのパッケージが更新されていない場合でも再インストールが実行されちゃうのでちょっと微妙だけど、PyPI のフィードとか yolk とかで更新確認してるから問題にはならないかなーと思います。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-2759199676958010660?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/2759199676958010660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/2759199676958010660'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2010/05/pip-upgrade.html' title='pip に upgrade コマンドを追加する'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JXWoyyOGpiY/S_X_HYwRqlI/AAAAAAAAADs/-q33vkzHz24/s72-c/100521-0001.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-8357885728045478648</id><published>2010-05-07T01:58:00.002+09:00</published><updated>2010-05-07T02:01:38.808+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zsh'/><category scheme='http://www.blogger.com/atom/ns#' term='leiningen'/><category scheme='http://www.blogger.com/atom/ns#' term='clojure'/><title type='text'>zsh で Leiningen コマンドの補完</title><content type='html'>&lt;p&gt;書いた。これこそ無くてもいいけどあるとちょっとだけ楽よね？良かったら使って！&lt;/p&gt;
&lt;script src="http://gist.github.com/392367.js?file=_lein"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-8357885728045478648?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/8357885728045478648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/8357885728045478648'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2010/05/zsh-leiningen.html' title='zsh で Leiningen コマンドの補完'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-7925553130960364526</id><published>2010-05-06T23:49:00.002+09:00</published><updated>2010-05-07T00:03:07.177+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='textmate'/><category scheme='http://www.blogger.com/atom/ns#' term='setup'/><title type='text'>TextMate のインストールとセットアップ</title><content type='html'>&lt;p&gt;うっかり TextMate のアプリと設定全部消しちゃったから環境再構築中。 とりあえず手順まとめとく。&lt;p&gt;

&lt;p&gt;まずはサイトから dmg イメージをダウンロード。&lt;a href="http://macromates.com/"&gt;http://macromates.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;TextMate.app 起動したら Preferences  &gt; Software Update を開き、アップデート対象を "Cutting-Edge" にして Check Now をクリックして最新版に更新。 他の設定は適当に。&lt;/p&gt;

&lt;p&gt;続いて Plugin をインストール。&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;ProjectPlus &lt;http://ciaranwal.sh/2008/08/05/textmate-plug-in-projectplus&gt;&lt;/li&gt;&lt;li&gt;AckMate &lt;http://github.com/protocool/ackmate&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;hetima さんので日本語入力できるようにしてもいいけど、とりあえず必要になってからでいいような気がするので今回はこのまま。&lt;/p&gt;

&lt;p&gt;Bundle のインストールは GetBundles &lt;a href="http://github.com/adamsalter/getbundles.tmbundle"&gt;http://github.com/adamsalter/getbundles.tmbundle&lt;/a&gt; を使って必要なものだけ入れる。&lt;/p&gt;
&lt;pre&gt;$ cd ~/Library/Application Supports/TextMate/Bundles
$ git clone http://github.com/adamsalter/getbundles.tmbundle.git&lt;/pre&gt;

&lt;p&gt;簡単ですね！&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-7925553130960364526?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/7925553130960364526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/7925553130960364526'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2010/05/textmate.html' title='TextMate のインストールとセットアップ'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-562658311598529004</id><published>2010-03-26T21:33:00.003+09:00</published><updated>2010-03-26T21:39:10.712+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='textmate'/><title type='text'>AckMate が便利というか素敵</title><content type='html'>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://github.com/protocool/AckMate"&gt;AckMate&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ack でプロジェクトを検索できる tmbundle は前かあったんだけど、今回の AckMate はプラグイン。快適度が違いますねー。&lt;/p&gt;

&lt;p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JXWoyyOGpiY/S6yqt9pP56I/AAAAAAAAADk/5dUMKEGcZwA/s1600/Picture+1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 278px;" src="http://1.bp.blogspot.com/_JXWoyyOGpiY/S6yqt9pP56I/AAAAAAAAADk/5dUMKEGcZwA/s320/Picture+1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5452920955457234850" /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-562658311598529004?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolize.blogspot.com/feeds/562658311598529004/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5467202919843205815&amp;postID=562658311598529004' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/562658311598529004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/562658311598529004'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2010/03/ackmate.html' title='AckMate が便利というか素敵'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JXWoyyOGpiY/S6yqt9pP56I/AAAAAAAAADk/5dUMKEGcZwA/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-7095595283039109302</id><published>2010-03-24T22:34:00.004+09:00</published><updated>2010-03-24T22:50:42.254+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='macports'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Leopard で Java6 使いたい</title><content type='html'>&lt;p&gt;VM の性能良くなってるよと言われても Leopard 用の、というか 32bit CPU 向けの Java6 を Apple は用意してくれていないので Snow Leopard にアップデートするまでおあずけかなーと思ってたんだけど、ちょっと調べてみたら OpenJDK6 なら使えるっぽい。 なら入れない理由はないなと思って MacPorts で検索してみたらちゃんとあった。&lt;/p&gt;

&lt;pre&gt;% port search openjdk
openjdk6 @b16 (java)
    Sun's java 6 virtual machine release under the GNUV2 license

openjdk6_bootstrap @b16-r1 (java)
    A binary build of OpenJDK6 to be used for bootstrapping the OpenJDK6 port.

Found 2 ports.
&lt;/pre&gt;

&lt;p&gt;特に variants も無いのでそのままインストールしてみる。&lt;/p&gt;

&lt;pre&gt;% sudo port -d install openjdk6&lt;/pre&gt;

&lt;p&gt;ant とか依存パッケージそれなりにあるのでちょっと時間掛かるけど、とりあえず順調にビルド進んでるなー、なんて思ったからかどうかわからないけどコケる。&lt;/p&gt;

&lt;pre&gt;&amp;lt;&amp;lt;&amp;lt;Finished Recursively making com build @ Wed Mar 24 22:35:04 JST 2010.
Done Processing SUBDIRS: tools javax org sun com
Error: Target org.macports.build returned: shell command &amp;quot; cd &amp;quot;/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_java_openjdk6/work/./&amp;quot; &amp;&amp; /usr/bin/make -j2 all ALT_BOOTDIR=&amp;quot;/opt/local/share/java/openjdk6_bootstrap&amp;quot; ALT_BINARY_PLUGS_PATH=&amp;quot;/opt/local/share/java/icedtea6-plugs/jre/lib/rt-closed.jar&amp;quot; ANT_HOME=&amp;quot;/opt/local/share/java/apache-ant&amp;quot; ALT_FREETYPE_HEADERS_PATH=&amp;quot;/opt/local/include&amp;quot; ALT_FREETYPE_LIB_PATH=&amp;quot;/opt/local/lib&amp;quot; ALT_CUPS_HEADERS_PATH=&amp;quot;/usr/include&amp;quot; ALT_MOTIF_DIR=&amp;quot;/opt/local&amp;quot; ALT_X11_PATH=&amp;quot;/opt/local&amp;quot; ALT_DEVTOOLS_PATH=/usr ALT_CACERTS_FILE=/System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts NO_DOCS=true HOTSPOT_BUILD_JOBS=1 &amp;quot; returned error 2
DEBUG: Backtrace: shell command &amp;quot; cd &amp;quot;/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_java_openjdk6/work/./&amp;quot; &amp;&amp; /usr/bin/make -j2 all ALT_BOOTDIR=&amp;quot;/opt/local/share/java/openjdk6_bootstrap&amp;quot; ALT_BINARY_PLUGS_PATH=&amp;quot;/opt/local/share/java/icedtea6-plugs/jre/lib/rt-closed.jar&amp;quot; ANT_HOME=&amp;quot;/opt/local/share/java/apache-ant&amp;quot; ALT_FREETYPE_HEADERS_PATH=&amp;quot;/opt/local/include&amp;quot; ALT_FREETYPE_LIB_PATH=&amp;quot;/opt/local/lib&amp;quot; ALT_CUPS_HEADERS_PATH=&amp;quot;/usr/include&amp;quot; ALT_MOTIF_DIR=&amp;quot;/opt/local&amp;quot; ALT_X11_PATH=&amp;quot;/opt/local&amp;quot; ALT_DEVTOOLS_PATH=/usr ALT_CACERTS_FILE=/System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts NO_DOCS=true HOTSPOT_BUILD_JOBS=1 &amp;quot; returned error 2
    while executing
&amp;quot;command_exec build&amp;quot;
    (procedure &amp;quot;portbuild::build_main&amp;quot; line 9)
    invoked from within
&amp;quot;$procedure $targetname&amp;quot;
Warning: the following items did not execute (for openjdk6): org.macports.activate org.macports.build org.macports.destroot org.macports.archive org.macports.install
Error: Status 1 encountered during processing.
To report a bug, see &amp;lt;http://guide.macports.org/#project.tickets&amp;gt;
&lt;/pre&gt;

&lt;p&gt;チケット自体は登録されてるっぽいので、ちょっと待ってれば治るかな。 Java のことぜんぜんわかんないから自分で調べてビルドする方がいいのかもしれないけど、どこから手をつけていいかわからないし Clojure 自体までぜんぜんだから、あんまり他のこと覚えてる余裕ないしとにかく待ってみます。。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-7095595283039109302?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolize.blogspot.com/feeds/7095595283039109302/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5467202919843205815&amp;postID=7095595283039109302' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/7095595283039109302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/7095595283039109302'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2010/03/leopard-java6.html' title='Leopard で Java6 使いたい'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-2363214556301145789</id><published>2010-02-15T22:19:00.005+09:00</published><updated>2010-02-15T22:36:49.666+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Tombloo から Pinbord.in に投稿する</title><content type='html'>&lt;p&gt;最初に Pinbord.in に登録しようとした時はちょうど TechCrunch だったかな？紹介されてユーザが増えたおかげで登録に $3 くらい支払いが発生するようになった時でした。 ちょっと待ってれば落ち着いてフリーになるかなと思ってアカウントだけ押さえて支払いはしないでいたんだけれど、とうとう数日前に PayPal で支払ってアクティベーションしました。 $6 だし iPhone アプリ買ったと思えば別になんとも思いませんが、倍支払ったと考えるとちょっと萎える。&lt;/p&gt;

&lt;p&gt;Pinbord はとてもよく出来てるし、なにより速い。いいサービスなんだけれど、日本の人で使ってる人そんなにいないみたいだし Tombloo + Pinboard で検索してみても無いみたいだったからコピペして自分で用意してみた。&lt;/p&gt;

&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JXWoyyOGpiY/S3lM0tiNh3I/AAAAAAAAADY/m1l2wAkGV-Q/s1600-h/Picture+3.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 347px; height: 363px;" src="http://3.bp.blogspot.com/_JXWoyyOGpiY/S3lM0tiNh3I/AAAAAAAAADY/m1l2wAkGV-Q/s400/Picture+3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5438462493486581618" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;script src="http://gist.github.com/304617.js?file=21_Pinboard.js"&gt;&lt;/script&gt;

&lt;p&gt;もうぜんぜんよくわかんないんだけど、Ack で適当に検索してちょこちょこいじったら問題なく動いたからとりあえずこれでいいけど、せっかくだし toread をフォームに出すところまではやりたいな。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-2363214556301145789?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolize.blogspot.com/feeds/2363214556301145789/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5467202919843205815&amp;postID=2363214556301145789' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/2363214556301145789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/2363214556301145789'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2010/02/tombloo-pinbordin.html' title='Tombloo から Pinbord.in に投稿する'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JXWoyyOGpiY/S3lM0tiNh3I/AAAAAAAAADY/m1l2wAkGV-Q/s72-c/Picture+3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-8406624283286848714</id><published>2010-01-24T20:06:00.002+09:00</published><updated>2010-01-24T20:09:45.707+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='clojure'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>プログラミング Clojure って本が出る</title><content type='html'>&lt;p&gt;ねーさっぱりですよ。反省。来月からもうちょっと頑張る。&lt;/p&gt;
&lt;p&gt;いよいよ Clojure の本出ますね！Web でいろいろ見ながら勉強したり（ちょっとだけ、ね）してるんだけど、やっぱり僕は本を見ながら写経しないと駄目みたいなので嬉しい。給料出たらすぐ買う予定。&lt;/p&gt;
&lt;div class="amazlet-box" style="margin-bottom:0px;"&gt;&lt;div class="amazlet-image" style="float:left;"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274067890/technolize-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://images-jp.amazon.com/images/G/09/icons/books/comingsoon_books.gif" alt="プログラミングClojure" style="border: none;" alt="no image" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"&gt;&lt;div class="amazlet-name" style="margin-bottom:10px;line-height:120%"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274067890/technolize-22/ref=nosim/" name="amazletlink" target="_blank"&gt;プログラミングClojure&lt;/a&gt;&lt;div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%"&gt;posted with &lt;a href="http://www.amazlet.com/browse/ASIN/4274067890/technolize-22/ref=nosim/" title="プログラミングClojure" target="_blank"&gt;amazlet&lt;/a&gt; at 10.01.24&lt;/div&gt;&lt;/div&gt;&lt;div class="amazlet-detail"&gt;Stuart Halloway &lt;br /&gt;オーム社 &lt;br /&gt;売り上げランキング: 1596&lt;br /&gt;&lt;/div&gt;&lt;div class="amazlet-link" style="margin-top: 5px"&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274067890/technolize-22/ref=nosim/" name="amazletlink" target="_blank"&gt;Amazon.co.jp で詳細を見る&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="amazlet-footer" style="clear: left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-8406624283286848714?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolize.blogspot.com/feeds/8406624283286848714/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5467202919843205815&amp;postID=8406624283286848714' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/8406624283286848714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/8406624283286848714'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2010/01/clojure.html' title='プログラミング Clojure って本が出る'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-314464461441816071</id><published>2009-11-21T10:36:00.004+09:00</published><updated>2009-11-22T19:07:56.708+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='clojure'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Clojure de Fibonacci number</title><content type='html'>&lt;p&gt;なんとなく試してみた。&lt;/p&gt;

&lt;pre&gt; ~/workspace/sketch
% time ./clojure.clj
3524578
./clojure.clj  2.44s user 0.11s system 98% cpu 2.588 total

 ~/workspace/sketch
% time ./python.py
3524578
./python.py  2.97s user 0.02s system 98% cpu 3.025 total&lt;/pre&gt;

&lt;p&gt;へー。 それだけなんだけど。&lt;/p&gt;

&lt;pre name="code" class="c"&gt;#!/usr/bin/env clj
(defn fib [n]
  (if (&lt;= n 2) 
    1 
    (+ (fib (- n 1)) (fib (- n 2)))))

(println (fib 33))&lt;/pre&gt;

&lt;pre name="code" class="python"&gt;#!/usr/bin/env python
# encoding: utf-8

from __future__ import print_function

def fib(n):
    if n &lt;= 2:
        return 1
    return fib(n - 1) + fib(n - 2)

print(fib(33))&lt;/pre&gt;

&lt;h4&gt;追記&lt;/h4&gt;
&lt;blockquote&gt;
&lt;pre name="code" class="c"&gt;(def fibs (lazy-cat [0 1] (map + fibs (rest fibs))))
(println (take 33 fibs))&lt;/pre&gt;
&lt;cite&gt;&lt;a href="http://blog.kzfmix.com/entry/1253877531"&gt;clojureでフィボナッチ&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;ほへー。よくわかりませんが早い…。&lt;/p&gt;

&lt;pre&gt;% time ./clojure.clj
(0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121
393 196418 317811 514229 832040 1346269 2178309)
./clojure.clj  1.02s user 0.11s system 94% cpu 1.200 total&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-314464461441816071?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolize.blogspot.com/feeds/314464461441816071/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5467202919843205815&amp;postID=314464461441816071' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/314464461441816071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/314464461441816071'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2009/11/clojure-de-fibonacci-number.html' title='Clojure de Fibonacci number'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-3184133247381143334</id><published>2009-11-14T14:37:00.005+09:00</published><updated>2009-11-14T14:46:30.310+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='clojure'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Clojure de FizzBuzz</title><content type='html'>&lt;p&gt;ちょっとだけお勉強。覚えること多いし、それ以上に考え方変えてかなきゃいけないから大変だなぁ。&lt;/p&gt;

&lt;pre name="code" class="c"&gt;#!/usr/bin/env clj

; FizzBuzz

(println (map (fn [x]
                (cond
                  (= (rem x 15) 0) 'FizzBuzz
                  (= (rem x 5) 0) 'Buzz
                  (= (rem x 3) 0) 'Fizz
                  :else x))
           (range 1 101)))&lt;/pre&gt;

&lt;p&gt;Lisp のインデントわからない…フォーマッタあるよね多分。&lt;/p&gt;
&lt;p&gt;完全に手続き脳だからいちいち &lt;code&gt;(println x)&lt;/code&gt; したくなるけど、そんなの後でやればいい、と。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-3184133247381143334?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolize.blogspot.com/feeds/3184133247381143334/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5467202919843205815&amp;postID=3184133247381143334' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/3184133247381143334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/3184133247381143334'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2009/11/clojure-de-fizzbuzz.html' title='Clojure de FizzBuzz'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-2569418567126530455</id><published>2009-11-11T22:13:00.006+09:00</published><updated>2009-11-11T22:34:58.210+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><title type='text'>Blogger での syntax highlight</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;a href="http://alexgorbatchev.com/wiki/SyntaxHighlighter"&gt;http://alexgorbatchev.com/wiki/SyntaxHighlighter&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;pre name="code" class="c"&gt;#include &amp;lt;stdio.h&amp;gt;

int main(int argc, char *argv[]) {
    printf("Hello, world!!\n");
    return 0;
}&lt;/pre&gt;

&lt;p&gt;対応言語少ないのが残念かな。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-2569418567126530455?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolize.blogspot.com/feeds/2569418567126530455/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5467202919843205815&amp;postID=2569418567126530455' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/2569418567126530455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/2569418567126530455'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2009/11/blogger-syntax-highlight.html' title='Blogger での syntax highlight'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-8043320458828020489</id><published>2009-11-11T21:44:00.004+09:00</published><updated>2009-11-11T22:22:57.960+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='clojure'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Clojure: first step</title><content type='html'>&lt;p&gt;なんにでも飛びつく悪い癖なんだけれど、いまだに Lisp が腑に落ちないというか理解できてないってのもあってとりあえず処理系だけはインストールしてたんだよね。 Mac なら MacPorts がやっぱり楽。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;% sudo port -v install clojure +rlwrap&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;+readline のオプションもあったけど +rlwrap でインストールした。たまたま検索して開いたページではこっちの方がおすすめって書かれてたしこれでよかった。&lt;/p&gt;
&lt;p&gt;で、起動するのに簡単なシェルスクリプト書いた方がいいよっていうから、それに倣って ~/bin/clj を作ったのね。内容は以下の通り。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/env bash
java -cp clojure/clojure.jar clojure.lang.Repl&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;インストール直後はこれで問題なく動いてたんだけど、久々に起動しようとしたらエラー出て、なんでかなーって調べたら /opt/local/bin/clj にすでにちゃんとしたスクリプトがインストールされてて、自分の書いたやつが classpath の関係でダメになってたってだけだった。&lt;/p&gt;

&lt;p&gt;そんな訳で、MacPorts でインストールしたらすぐそのまま Clojure で遊んでればよろしい、ということがわかりました！&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-8043320458828020489?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolize.blogspot.com/feeds/8043320458828020489/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5467202919843205815&amp;postID=8043320458828020489' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/8043320458828020489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/8043320458828020489'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2009/11/clojure-first-step.html' title='Clojure: first step'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5467202919843205815.post-8579355483419909638</id><published>2009-11-11T18:15:00.004+09:00</published><updated>2009-11-11T22:33:50.863+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>何度目の仕切り直しかわからないけど</title><content type='html'>&lt;p&gt;別にはてなに不満があるわけじゃないんだけど、いろいろと外部のブログサービスに手をつけては放置しまくってる。あんまり書くことないのにね…。&lt;/p&gt;

&lt;p&gt;実際退職してからびっくりするほどモチベーション上がらないし、やる余裕もなくなってきてて、これじゃーダメだって思って入るんだけれど、どうにもならない。&lt;/p&gt;

&lt;p&gt;……なんだけど、やっぱりプログラミングとかネットに対する興味は無くならないし、またプログラマとして仕事をしたいって気持ちは持ち続けているから、月に2回はプログラミングネタで更新しようという目標を立てました。少ない？&lt;/p&gt;

&lt;p&gt;実際苦し紛れなネタになることは目に見えてるけど、やらないよりはマシだもんね。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5467202919843205815-8579355483419909638?l=technolize.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technolize.blogspot.com/feeds/8579355483419909638/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5467202919843205815&amp;postID=8579355483419909638' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/8579355483419909638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5467202919843205815/posts/default/8579355483419909638'/><link rel='alternate' type='text/html' href='http://technolize.blogspot.com/2009/11/blog-post.html' title='何度目の仕切り直しかわからないけど'/><author><name>technolize</name><uri>http://www.blogger.com/profile/02685391084141942515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JXWoyyOGpiY/SJmE5-4LzEI/AAAAAAAAAAU/khrN1ZgPS3Q/s1600-R/technolize.png'/></author><thr:total>0</thr:total></entry></feed>
