<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUABRXc5fip7ImA9WhRRFEk.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580</id><updated>2011-11-28T10:29:14.926+09:00</updated><category term="ruby" /><category term="メモリ" /><category term="templates" /><category term="jStat" /><category term="OAuth" /><category term="仮想化" /><category term="slab" /><category term="NTP" /><category term="boost" /><category term="hash" /><category term="C++" /><category term="MessagePack" /><category term="make" /><category term="git" /><category term="plugin" /><category term="python" /><category term="Jetpack" /><category term="extension" /><category term="rails" /><category term="haskell" /><category term="favicon" /><category term="debian" /><category term="Solaris" /><category term="RabbitMQ" /><category term="AMQP" /><category term="ベンチマーク" /><category term="visualize" /><category term="emacs" /><category term="jQuery" /><category term="mysql" /><category term="lifehack" /><category term="Javascript" /><category term="programming" /><category term="ddns" /><category term="jTemplates" /><category term="c" /><category term="SMF" /><category term="PHP" /><category term="libevent" /><category term="blogger" /><category term="Firefox" /><category term="unix" /><category term="Linux" /><category term="mac" /><category term="swap" /><category term="zsh" /><category term="memcached" /><category term="gcc" /><category term="ソースコード" /><category term="Protocol Buffers" /><category term="network" /><category term="pika" /><category term="libev" /><category term="zend" /><category term="R" /><category term="google" /><title>taksatouの日記</title><subtitle type="html">for my convenience</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://taksatou.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>43</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Taksatou" /><feedburner:info uri="taksatou" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CkYDRno-cCp7ImA9WhRTFUQ.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-7030317581652351185</id><published>2011-11-06T23:36:00.000+09:00</published><updated>2011-11-06T23:36:17.458+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-06T23:36:17.458+09:00</app:edited><title>ブログ移転しました</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/7030317581652351185/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2011/11/blog-post.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7030317581652351185?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7030317581652351185?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/X1sc_O5uN4U/blog-post.html" title="ブログ移転しました" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">http://mojavy.com/

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Zbc7BnrDBO8QyQMPL1wMHsW6HTM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Zbc7BnrDBO8QyQMPL1wMHsW6HTM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Zbc7BnrDBO8QyQMPL1wMHsW6HTM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Zbc7BnrDBO8QyQMPL1wMHsW6HTM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/X1sc_O5uN4U" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2011/11/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAGSXk8eCp7ImA9WhdSEUU.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-1293017961308078793</id><published>2011-07-21T02:41:00.001+09:00</published><updated>2011-07-21T02:42:08.770+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-21T02:42:08.770+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mysql" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title>tcpdumpの使い方メモ</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/1293017961308078793/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2011/07/tcpdump.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/1293017961308078793?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/1293017961308078793?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/-uFVxwrITOc/tcpdump.html" title="tcpdumpの使い方メモ" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">すぐ忘れるので自分用メモ

例えばmysqlだと以下でselect文がみれる。
sudo /usr/sbin/tcpdump -l -i eth0 -A -n -s 0 dst port 3306 | grep SELECT
unix ドメインソケットにながしてるデータを見る方法がないかあとで調査
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8z-7rpUS9wPzmM33VABLf7r_PVc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8z-7rpUS9wPzmM33VABLf7r_PVc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8z-7rpUS9wPzmM33VABLf7r_PVc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8z-7rpUS9wPzmM33VABLf7r_PVc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/-uFVxwrITOc" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2011/07/tcpdump.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04HQ3gzeip7ImA9WhZbGUQ.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-8067279237350887087</id><published>2011-06-25T20:04:00.002+09:00</published><updated>2011-06-25T20:05:32.682+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-25T20:05:32.682+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><title>railsのデフォルト起動ポートを変更する方法</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/8067279237350887087/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2011/06/rails.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/8067279237350887087?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/8067279237350887087?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/kA8uXon0GdM/rails.html" title="railsのデフォルト起動ポートを変更する方法" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">なんか毎回調べてる気がするのでメモ

config/boot.rbに以下を追記する

require 'rails/commands/server'
module Rails
  class Server
    def default_options
      super.merge({
                    :Port        =&amp;gt; 4000,
                  })                     
    end                                  
  end                                    
end                                      

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BJufKWc70g02ZLgW6y81AdqEAeY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BJufKWc70g02ZLgW6y81AdqEAeY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BJufKWc70g02ZLgW6y81AdqEAeY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BJufKWc70g02ZLgW6y81AdqEAeY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/kA8uXon0GdM" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2011/06/rails.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8NSXw4fCp7ImA9WhZaEEQ.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-1195084940857939608</id><published>2011-06-04T21:56:00.004+09:00</published><updated>2011-06-26T23:18:18.234+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-26T23:18:18.234+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="git" /><title>gitで迷子になった(no branch)に復帰する方法</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/1195084940857939608/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2011/06/gitno-branch.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/1195084940857939608?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/1195084940857939608?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/EbiW1VL_M50/gitno-branch.html" title="gitで迷子になった(no branch)に復帰する方法" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">gitを使って開発しているときに、以前のコミットのハッシュを直接指定してブランチを切らずにcheckoutすると(no branch)という無名のブランチができます。
どうしてそんなことをするかというと、例えば、開発を進めてる途中で別のやり方を思いついて以前の状態からやり直したいけど、あんまり自信ないからbranch切って名前つけるのはめんどくさい、みたいなときとか。まあブランチきればすむ話ですが、とにかくno branchで作業しちゃうときもあるのです。そういうときに限ってうまく実装できて、no branchで作業していることを忘れてそのままcommitしてしまったりします。
で、なにげなくmasterに戻ってみるとさっきの作業内容が見えなくなって焦るわけです。そういうときはno branchでコミットしたときのハッシュ値を直接指定してやればno branchでの状態に戻れます。no 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jRBFY26JqQ2ukPcA62KwK0SktUs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jRBFY26JqQ2ukPcA62KwK0SktUs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jRBFY26JqQ2ukPcA62KwK0SktUs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jRBFY26JqQ2ukPcA62KwK0SktUs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/EbiW1VL_M50" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2011/06/gitno-branch.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUBQH4zeSp7ImA9WhZUEUQ.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-7211675311875569778</id><published>2011-05-29T13:59:00.003+09:00</published><updated>2011-06-04T22:14:11.081+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-04T22:14:11.081+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gcc" /><category scheme="http://www.blogger.com/atom/ns#" term="C++" /><title>c++のコンテナをストリームに出力するコードスニペット</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/7211675311875569778/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2011/05/c_29.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7211675311875569778?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7211675311875569778?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/XG7g4dMyd-A/c_29.html" title="c++のコンテナをストリームに出力するコードスニペット" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">どういうことがしたいかというと、for (vector&amp;lt;string&amp;gt;::iterator it = lis.begin(); it != lis.end(); ++it) {
  cout &amp;lt;&amp;lt; *it &amp;lt;&amp;lt; endl;
}のようなループをかくのが面倒なのでcout &amp;lt;&amp;lt; lis &amp;lt;&amp;lt; endl;のように書きたい。これをやるにはtemplateパラメータにtemplateをつかってoperator&amp;lt;&amp;lt;をオーバーロードしてやればまあまあ簡単にかける。
forward_iteratorを実装してるコンテナならなんでもいけるはず。ネストしててもOKテンプレートパラメータが3つのコンテナ用の定義でlessとgreaterに分けてるのは、コンパイラに型推論をうまくやってもらうため。(テンプレートパラメータだけではstringの型と見分けがつかないので)
2011-06-04追記
古いコンパイラ
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7p-v3lnjr4AwPGFjPPUh0QjnqM0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7p-v3lnjr4AwPGFjPPUh0QjnqM0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7p-v3lnjr4AwPGFjPPUh0QjnqM0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7p-v3lnjr4AwPGFjPPUh0QjnqM0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/XG7g4dMyd-A" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2011/05/c_29.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMHRX0ycSp7ImA9WhZXEEw.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-239281271917083984</id><published>2011-04-29T02:37:00.002+09:00</published><updated>2011-04-29T02:40:34.399+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-29T02:40:34.399+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="emacs" /><title>ruby開発環境構築メモ - xmpfilterを使ってrubyスクリプトに注釈をつける</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/239281271917083984/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2011/04/xmpfilterruby.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/239281271917083984?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/239281271917083984?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/mjmpbX_x6ug/xmpfilterruby.html" title="ruby開発環境構築メモ - xmpfilterを使ってrubyスクリプトに注釈をつける" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">


rcodetoolsを入れて快適なemacs生活をエンジョイしたい。
sudo gem install rcodetools

rcodetoolsをいれるとxmpfilterというコマンドにrubyスクリプトを食わせると、コメントで注釈をつけてくれる
これをemacsで使うためのelispがパッケージにはいってるので、それをload-pathの通っているところにコピーする。
.emacs.d/tmpがないと実行時にエラーがでたので、mkdirしておく
cp /usr/lib/ruby/gems/1.8/gems/rcodetools-0.*/*.el  ~/.emacs.d/elisp/
cp /usr/lib/ruby/gems/1.8/gems/rcodetools-0.*/*.elc  ~/.emacs.d/elisp/
mkdir ~/.emacs.d/tmp

.
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/21n3HcR3uYdjk8SxWNIhjFOFeX8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/21n3HcR3uYdjk8SxWNIhjFOFeX8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/21n3HcR3uYdjk8SxWNIhjFOFeX8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/21n3HcR3uYdjk8SxWNIhjFOFeX8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/mjmpbX_x6ug" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2011/04/xmpfilterruby.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MHR3k6eCp7ImA9WhZQFU4.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-6641191948866021160</id><published>2011-04-23T15:11:00.004+09:00</published><updated>2011-04-23T15:17:16.710+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-23T15:17:16.710+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mysql" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="emacs" /><title>rails3でrinariからmysqlにつなぐメモ</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/6641191948866021160/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2011/04/rails3rinarimysql.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/6641191948866021160?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/6641191948866021160?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/xSzQJKlU-DQ/rails3rinarimysql.html" title="rails3でrinariからmysqlにつなぐメモ" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">
rails3でmysqlを使おうとすると、gem mysql2 を要求された。
なので、config/database.ymlには以下みたいになるが、rinari-sql は "sql-&amp;lt;adapter名&amp;gt;" という名前の関数を探しにいくので、emacs側でsql-mysql2がないというエラーになる。
development:
  adapter: mysql2
  database: foo
  host: localhost
  port: 3306
  username: bar
  password: baz
  encoding: utf8
  pool: 5
  timeout: 5000

これを避けるには、以下のようにしてsql-mysql2にaliasをはるelispをかけばOK
(defalias 'sql-mysql2 'sql-mysql)


&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sw_U42OWYntApf83j0NUPPgYpgc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sw_U42OWYntApf83j0NUPPgYpgc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sw_U42OWYntApf83j0NUPPgYpgc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sw_U42OWYntApf83j0NUPPgYpgc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/xSzQJKlU-DQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2011/04/rails3rinarimysql.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQCR3o8cCp7ImA9WhZREko.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-7593331634890308282</id><published>2011-04-08T23:27:00.006+09:00</published><updated>2011-04-09T00:42:46.478+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-09T00:42:46.478+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="haskell" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>haskellのリスト内包表記で格子点列挙</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/7593331634890308282/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2011/04/haskell.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7593331634890308282?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7593331634890308282?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/pYS_4X2Y5_k/haskell.html" title="haskellのリスト内包表記で格子点列挙" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">haskellのリスト内包表記について勉強してるときにたまたまこの記事を見つけたので試しにやってみた。
http://d.hatena.ne.jp/odz/20070131/1170284561


main = mapM print (mesh [[1..10],[1..10],[1..10]])

mesh [] = [[]]
mesh (x:xs) = [ x':xs' | x' &amp;lt;- x, xs' &amp;lt;- (mesh xs) ]

パフォーマンスは調べてません。
もっといいやり方はありそうだけど、そこそこ直感的。。かな?
リスト内包表記って気持ち的にはSQL書くのに近い気がする。

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_6l3bmZUHVjSw8mM_EVwxhzOOA0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_6l3bmZUHVjSw8mM_EVwxhzOOA0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_6l3bmZUHVjSw8mM_EVwxhzOOA0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_6l3bmZUHVjSw8mM_EVwxhzOOA0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/pYS_4X2Y5_k" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2011/04/haskell.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUADRX0yfCp7ImA9WhZSEUg.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-6379020064925542319</id><published>2011-03-27T01:40:00.002+09:00</published><updated>2011-03-27T01:42:54.394+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-27T01:42:54.394+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><title>ruby環境構築メモ - fastri編</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/6379020064925542319/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2011/03/ruby-fastri.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/6379020064925542319?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/6379020064925542319?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/GibqE4p_qYI/ruby-fastri.html" title="ruby環境構築メモ - fastri編" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">いまさらだけど、そろそろまじめにrubyの開発環境を整えようと思ったのでとりあえずfastriを導入した。
5分でおわると思いきや地味に苦労したので作業履歴メモ
http://eigenclass.org/hiki/fastri




手順
最新版のソースをおとす

展開してsetup.rbを実行

'fastri-server -b' でインデックス作成

'fastri-server -B' でフルテキストのインデックス作成

'fastri-server' で起動

qri Array みたいなかんじで使う


ところがqriを使おうとすると以下のようなエラーが。。
/usr/lib/ruby/1.8/rdoc/ri/ri_paths.rb:61: uninitialized constant Gem::Version (NameError)
from /usr/lib/ruby
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Ma5PaNhFt5mCFk32f8bnfvPxM6s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ma5PaNhFt5mCFk32f8bnfvPxM6s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Ma5PaNhFt5mCFk32f8bnfvPxM6s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ma5PaNhFt5mCFk32f8bnfvPxM6s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/GibqE4p_qYI" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2011/03/ruby-fastri.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04CQX46eSp7ImA9WhZTGE0.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-3400726939238714261</id><published>2011-03-22T23:22:00.002+09:00</published><updated>2011-03-23T01:06:00.011+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-23T01:06:00.011+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="OAuth" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><title>twitterやfacebookのOAuthをつかってrails+omniauthでログイン機能を実装するメモ その２</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/3400726939238714261/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2011/03/twitterfacebookoauthrailsomniauth.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/3400726939238714261?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/3400726939238714261?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/YS2HMzSUMGo/twitterfacebookoauthrailsomniauth.html" title="twitterやfacebookのOAuthをつかってrails+omniauthでログイン機能を実装するメモ その２" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">前回(http://taksatou.blogspot.com/2011/03/twitterfacebookrails.html) 、OAuthで認証するところまでできたので、今回はtwitterアカウントでログインするところを作ります。omniauthのrailsチュートリアルビデオのpart2に大体対応してますが、ここでの内容はちょっと変えてます。
- http://railscasts.com/episodes/236-omniauth-part-2Contentsrails generate
modelauthenrication.rb
user.rb

controller
view
routes.rb
確認
まとめ
rails generate以下のようにしてdeviseのセットアップとmigrationをします。
emailとpasswordはつかわないので消します。
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/G39W95Ez8jggCNuGutjqvvgUduA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/G39W95Ez8jggCNuGutjqvvgUduA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/G39W95Ez8jggCNuGutjqvvgUduA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/G39W95Ez8jggCNuGutjqvvgUduA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/YS2HMzSUMGo" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2011/03/twitterfacebookoauthrailsomniauth.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcHRHs6cSp7ImA9WhZTGEw.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-5103545352670872867</id><published>2011-03-22T00:06:00.017+09:00</published><updated>2011-03-23T01:07:15.519+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-23T01:07:15.519+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="OAuth" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><title>twitterやfacebookのOAuthをつかってrails+omniauthでログイン機能を実装するメモ その１</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/5103545352670872867/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2011/03/twitterfacebookrails.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/5103545352670872867?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/5103545352670872867?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/K2US2EmoWs4/twitterfacebookrails.html" title="twitterやfacebookのOAuthをつかってrails+omniauthでログイン機能を実装するメモ その１" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">OAuthをつかっていろんなサービスと連動したアプリケーションがつくりたくなったので調査。
railsでやるにはoauth_pluginとかwarden_oauthとか色々なプラグインがあるみたいだけど、omniauthがよさそうです。
rails初心者なので基本的にはomniauthのチュートリアルビデオに沿って作業します。
- https://github.com/intridea/omniauth
- http://railscasts.com/episodes/235-omniauth-part-1自前でパスワードやメールアドレスは保持せずに、twitterやfacebookのアカウントを使ってログインできるようにするのが目標です。
ちなみにtwitter anywhereを使えば似たようなことはできそうですが、twitterに依存してしまうので今回はパス。Contents
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9MDV-9RCJ4ag12i0w8eDtgVNpuA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9MDV-9RCJ4ag12i0w8eDtgVNpuA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9MDV-9RCJ4ag12i0w8eDtgVNpuA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9MDV-9RCJ4ag12i0w8eDtgVNpuA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/K2US2EmoWs4" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2011/03/twitterfacebookrails.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQHQnc5cCp7ImA9WhZTFkU.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-5463402502646112587</id><published>2011-03-21T15:01:00.001+09:00</published><updated>2011-03-21T15:02:13.928+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-21T15:02:13.928+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="git" /><title>githubでPermission denied (publickey)</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/5463402502646112587/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2011/03/githubpermission-denied-publickey.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/5463402502646112587?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/5463402502646112587?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/LCrewp-E8sM/githubpermission-denied-publickey.html" title="githubでPermission denied (publickey)" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">自分のgithubリポジトリに複数のホストからpushする方法についてメモ% git push git@github.com:taksatou/config.git master
とかやってPermission denied (publickey).
fatal: The remote end hung up unexpectedly
なってしまう場合は公開鍵が登録されていないhttps://github.com/account
のSSH Public Keys からpushしたいホストの公開鍵を登録すればOK
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/txYOu0vOsrRvX7HzPGMvgklwqLs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/txYOu0vOsrRvX7HzPGMvgklwqLs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/txYOu0vOsrRvX7HzPGMvgklwqLs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/txYOu0vOsrRvX7HzPGMvgklwqLs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/LCrewp-E8sM" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2011/03/githubpermission-denied-publickey.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MAQXs-fCp7ImA9WhZTGE0.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-7775568990246844049</id><published>2011-03-19T14:01:00.007+09:00</published><updated>2011-03-23T00:57:20.554+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-23T00:57:20.554+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="visualize" /><category scheme="http://www.blogger.com/atom/ns#" term="jStat" /><category scheme="http://www.blogger.com/atom/ns#" term="R" /><title>Javascriptの統計ライブラリ jStatについて</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/7775568990246844049/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2011/03/javascript-jstat.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7775568990246844049?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7775568990246844049?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/sagMfxS84yU/javascript-jstat.html" title="Javascriptの統計ライブラリ jStatについて" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">jStat (http://www.jstat.org/) とはJavascriptでMATLABやRのような処理をするためのライブラリです。
(同名のjvm統計データ監視ツールとは関係ないです)

http://www.readwriteweb.com/hack/2011/03/jstat-its-like-r-for-javascript.php
でも紹介されてます。
R開発者のEd Borasky氏によると、これからはJavascriptでビジュアライズするのがトレンドらしいです。というわけでちょっと遊んでみました。準備jStatは以下のものに依存してるけど、http://www.jstat.org/download から依存ライブラリをまとめてパッケージにしたものがダウンロードできるので特になにもしなくてOK。jQuery - version 1.4.4+ (http://
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zNuo57ksTDa_fHCteAi0JpCsziY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zNuo57ksTDa_fHCteAi0JpCsziY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zNuo57ksTDa_fHCteAi0JpCsziY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zNuo57ksTDa_fHCteAi0JpCsziY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/sagMfxS84yU" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2011/03/javascript-jstat.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UAQH05fSp7ImA9WhZTEkU.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-6243099614960237962</id><published>2011-03-16T23:12:00.002+09:00</published><updated>2011-03-16T23:20:41.325+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-16T23:20:41.325+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="unix" /><category scheme="http://www.blogger.com/atom/ns#" term="lifehack" /><title>tmuxの複数セッション間でバッファを共有する方法</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/6243099614960237962/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2011/03/tmux.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/6243099614960237962?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/6243099614960237962?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/GOaDVD8_oWw/tmux.html" title="tmuxの複数セッション間でバッファを共有する方法" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">マルチモニタで開発してる場合、それぞれのモニタ毎に端末アプリをたちあげることになりますが、端末ウィンドウ間でコピペをしたいときにマウスを使用せざるをえなくなってめんどうです。
emacsをサーバモードで起動すれば大抵の場合は事足りるのですが、いつもemacsだけで完結できるとは限りません。
というわけでtmuxとかscreenをつかってコピペするわけですが、tmuxのセッションをまたいでバッファを共有する方法をしらなかったのでメモ。manをみたところ、セッションをまたいでバッファをやりとりするのに以下コマンドが使えそうです。copy-buffer [-a src-index] [-b dst-index] [-s src-session] [-t dst-session]
(alias: copyb)
             Copy a session paste buffer to
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6CVt-evuDdoIKXrYFhRvwOYF_KE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6CVt-evuDdoIKXrYFhRvwOYF_KE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6CVt-evuDdoIKXrYFhRvwOYF_KE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6CVt-evuDdoIKXrYFhRvwOYF_KE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/GOaDVD8_oWw" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2011/03/tmux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4GQH48cCp7ImA9WhZTEU0.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-876770413906580812</id><published>2011-03-13T18:45:00.006+09:00</published><updated>2011-03-14T22:22:01.078+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-14T22:22:01.078+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="c" /><title>Cのプリプロセッサーについてのtips集</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/876770413906580812/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2011/03/ctips.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/876770413906580812?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/876770413906580812?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/oNzE0qEiFBM/ctips.html" title="Cのプリプロセッサーについてのtips集" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">Contentsプリプロセッサ処理のみを行う(gccの場合)
マクロの引数について
#ifdefと definedの違い
その他
pragmaとかpredefinedなマクロ

プリプロセッサ処理のみを行う(gccの場合)gcc -E a.cマクロの引数についてピリオド3つで可変長引数, __VA_ARGS__でその部分を展開
引数の頭に#をつけると文字列表記(ダブルコーテーションでくくられる)
引数の頭に##をつけると連結
#include &amp;lt;stdio.h&amp;gt; 
#define MY_PRINTF(...) fprintf(stderr, __VA_ARGS__)    
#define DEF(x, y) struct x##_##y##_t { static void f() { MY_PRINTF("%s, %s\n", #x, #y); } }  

DEF(foo, bar)
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HqUwltYx-1Eyj99i45ik3dZfmcQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HqUwltYx-1Eyj99i45ik3dZfmcQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HqUwltYx-1Eyj99i45ik3dZfmcQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HqUwltYx-1Eyj99i45ik3dZfmcQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/oNzE0qEiFBM" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2011/03/ctips.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEABR308eyp7ImA9Wx9TFkw.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-7005581503251626031</id><published>2010-11-25T01:38:00.001+09:00</published><updated>2010-11-25T01:39:16.373+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-25T01:39:16.373+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mac" /><title>MacBook Air 環境構築まとめ 追記</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/7005581503251626031/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2010/11/macbook-air_25.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7005581503251626031?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7005581503251626031?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/0elICs8HTok/macbook-air_25.html" title="MacBook Air 環境構築まとめ 追記" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Vs4R6_Mn1MY/TO0_UhujGaI/AAAAAAAAAR0/y7zg18mXUaQ/s72-c/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25EF%25BC%25882010-11-25+1.36.39%25EF%25BC%2589.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">virtualboxの仮想環境についてちょっと設定が必要だったのでメモ


http://taksatou.blogspot.com/2010/11/macbook-air.html


仮想環境に対してSSH接続するにはvertualboxの設定からネットワークアダプタにブリッジアダプタを追加する必要がある。
そうしないと、ホスト側とアダプタを共有してしまうらしく、ゲストOS側にIPが割りあてられないみたい




ゲストOS側はubuntuがうまくやってくれるみたいでなにもしなくてOK

：：
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zMAoaVCVfdcFO8O4V3v5zy_Qgmo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zMAoaVCVfdcFO8O4V3v5zy_Qgmo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zMAoaVCVfdcFO8O4V3v5zy_Qgmo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zMAoaVCVfdcFO8O4V3v5zy_Qgmo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/0elICs8HTok" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2010/11/macbook-air_25.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYNQXY7fyp7ImA9Wx9TFk0.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-7042585228568632283</id><published>2010-11-24T02:35:00.004+09:00</published><updated>2010-11-24T22:43:10.807+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-24T22:43:10.807+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="mac" /><title>MacBook Air 環境構築まとめ</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/7042585228568632283/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2010/11/macbook-air.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7042585228568632283?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7042585228568632283?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/kLgtPwblGwk/macbook-air.html" title="MacBook Air 環境構築まとめ" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">MacBook Airを購入したら環境をさらすのが流行ってるみたいなので便乗です。
macは完全に初心者なのでいろんな所を参考にしつつとりあえずいれてみた。


- Xcode  http://developer.apple.com/technologies/tools/xcode.html
開発者ならとりあえずいれておくらしい。

- iTerm http://iterm.sourceforge.net/
標準で付属しているTerminalだと256色が変だったのでこっちをつかうことにした。

- virtualbox  http://www.virtualbox.org/
- ubuntu  http://www.ubuntulinux.jp/products/JA-Localized/virtualbox
手元の環境は汚さずに仮想環境で開発するのがモダン。
VirtualBox用の
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/h9DPBjQFnumP-qnVBs8HcqQa37w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h9DPBjQFnumP-qnVBs8HcqQa37w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/h9DPBjQFnumP-qnVBs8HcqQa37w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h9DPBjQFnumP-qnVBs8HcqQa37w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/kLgtPwblGwk" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2010/11/macbook-air.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEESHcyeCp7ImA9Wx5UFU0.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-7899781223746319653</id><published>2010-10-20T00:16:00.005+09:00</published><updated>2010-10-20T00:53:29.990+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-20T00:53:29.990+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="unix" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="make" /><title>makeでちょっと便利なメタプログラミング</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/7899781223746319653/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2010/10/make.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7899781223746319653?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7899781223746319653?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/1J3SJmdPJBc/make.html" title="makeでちょっと便利なメタプログラミング" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">GNU Make 第3版を見てたら、マクロとevalを使ってちょっと便利でおもしろいことができることに気づいた。

とりあえず例を書くとこんな感じ。
rules = foo bar baz

define def-rule
$1:
 @echo $1
endef

$(foreach i, $(rules), $(eval $(call def-rule, $i)))

マクロとevalを使えば動的にルールを生成できるのだ。
これだけでfoo bar bazの三つのルールがつかえるようになる。
便利！

これを使えばサブコマンドを受け付けるコマンドを使うルールを定義したい時とか、複数のディレクトリに対して処理を行いたい時に妥協したシェルスクリプトを書く割合が減る気がする。

ただし、マクロの中は二重に評価されてしまうので、makeの自動変数やfor文、シェル変数を使いたい時は＄の個数に
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HqHbS6uHGbt9c8OZTDr7tKSsj4Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HqHbS6uHGbt9c8OZTDr7tKSsj4Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HqHbS6uHGbt9c8OZTDr7tKSsj4Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HqHbS6uHGbt9c8OZTDr7tKSsj4Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/1J3SJmdPJBc" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2010/10/make.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMHSHo-fyp7ImA9WxFbEkg.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-4749668094946002527</id><published>2010-07-04T23:22:00.002+09:00</published><updated>2010-07-04T23:23:59.457+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-04T23:23:59.457+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gcc" /><category scheme="http://www.blogger.com/atom/ns#" term="debian" /><title>debian 64bitで32bitバイナリをビルドするメモ</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/4749668094946002527/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2010/07/debian-64bit32bit.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/4749668094946002527?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/4749668094946002527?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/rDLfyRk_bN4/debian-64bit32bit.html" title="debian 64bitで32bitバイナリをビルドするメモ" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">64bit　debianのgccでCプログラムをビルドするとデフォルトで64bitになる。

gccで32bitバイナリを作りたい時はgcc-multilib(C++の場合は、g++-multilib） を入れる

% sudo apt-get install gcc-4.1-multilib 
として

% cc -m32 example.c
でOK

% objdump -p a.out | grep format
a.out:     file format elf32-i386http://blog.gnu-designs.com/fix-for-incompatible-libstdc-error-message
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LdOrmjSzZzCFfYWivP7W9NcMNqc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LdOrmjSzZzCFfYWivP7W9NcMNqc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LdOrmjSzZzCFfYWivP7W9NcMNqc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LdOrmjSzZzCFfYWivP7W9NcMNqc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/rDLfyRk_bN4" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2010/07/debian-64bit32bit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUEQ3Y_cCp7ImA9WxFUFkk.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-7759223840512071655</id><published>2010-06-27T23:00:00.004+09:00</published><updated>2010-06-27T23:00:02.848+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-27T23:00:02.848+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="debian" /><category scheme="http://www.blogger.com/atom/ns#" term="ddns" /><title>ddclientメモ</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/7759223840512071655/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2010/06/ddclient.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7759223840512071655?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7759223840512071655?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/JdYqhPJqofk/ddclient.html" title="ddclientメモ" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">以前から使っていたDiCEではここ最近になってなぜかIPの更新ができなくなってしまったので、DynDNS.comの説明を参考にしてddclientを導入した。

ダイナミックDNSサービスはDynDNSを利用
https://www.dyndns.com/

IPアドレス更新クライアントについて
https://www.dyndns.com/support/clients/

Linux / UNIX Update Clients
https://www.dyndns.com/support/clients/unix.html


上側に書いてあったのでddclientを採用。
主要なOSのバイナリは配布されている。
debianなら導入はapt-getでも可。


DynDNSを使っていれば設定ファイルは以下から自動で生成できる
https://www.dyndns.com/
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tlwFuzhrI9rli4fQt2_TtofTzGc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tlwFuzhrI9rli4fQt2_TtofTzGc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tlwFuzhrI9rli4fQt2_TtofTzGc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tlwFuzhrI9rli4fQt2_TtofTzGc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/JdYqhPJqofk" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2010/06/ddclient.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYBQH4zcCp7ImA9WxFUFUQ.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-7941338198730716011</id><published>2010-06-27T08:44:00.001+09:00</published><updated>2010-06-27T08:49:11.088+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-27T08:49:11.088+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="memcached" /><category scheme="http://www.blogger.com/atom/ns#" term="hash" /><category scheme="http://www.blogger.com/atom/ns#" term="boost" /><title>libmemcachedについてるlibhashkitであそぶ</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/7941338198730716011/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2010/06/libmemcachedlibhashkit.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7941338198730716011?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7941338198730716011?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/g3xc8rS_kKM/libmemcachedlibhashkit.html" title="libmemcachedについてるlibhashkitであそぶ" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">libmemcachedにlibhashkitなんていう便利そうなライブラリがついていたので、各種ハッシュアルゴリズムの特性を調べてみた。
http://libmemcached.org/libMemcached.html

libhashkitでつかえるアルゴリズムは以下の通り。(libhashkit/types.h参照)
それぞれのアルゴリズムの説明は検索すればでてくるので省略。
HASHKIT_HASH_MD5,
HASHKIT_HASH_CRC,
HASHKIT_HASH_FNV1_64,
HASHKIT_HASH_FNV1A_64,
HASHKIT_HASH_FNV1_32,
HASHKIT_HASH_FNV1A_32,
HASHKIT_HASH_HSIEH,
HASHKIT_HASH_MURMUR,
HASHKIT_HASH_JENKINS,


テスト方法は、互いに異なる
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eMGbvSKEB540AUoxLCNzF-dMjB4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eMGbvSKEB540AUoxLCNzF-dMjB4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eMGbvSKEB540AUoxLCNzF-dMjB4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eMGbvSKEB540AUoxLCNzF-dMjB4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/g3xc8rS_kKM" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2010/06/libmemcachedlibhashkit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4NQXo-fip7ImA9WxFUE0w.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-4930363876704204496</id><published>2010-06-23T02:12:00.004+09:00</published><updated>2010-06-24T02:43:10.456+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-24T02:43:10.456+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="blogger" /><category scheme="http://www.blogger.com/atom/ns#" term="debian" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>GoogleCLをdebianで試す</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/4930363876704204496/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2010/06/googlecldebian.html#comment-form" title="3 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/4930363876704204496?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/4930363876704204496?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/KPIiXZSHBs0/googlecldebian.html" title="GoogleCLをdebianで試す" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>3</thr:total><content type="html">ちょっと便利そうなものがでてたので試してみました。

http://japan.cnet.com/news/service/story/0,3800104747,20415466,00.htm
http://code.google.com/p/googlecl/


まずプロジェクトページからダウンロード～普通にインストール

wget http://googlecl.googlecode.com/files/googlecl-0.9.7.tar.gz
tar xzf googlecl-0.9.7.tar.gz
cd googlecl-0.9.7
sudo python setup.py install


gdataが必要らしいので同様にインストール
http://code.google.com/p/gdata-python-client/


wget http://
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZsncFf3bJ5L7iL_E-Rnx8J43vFU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZsncFf3bJ5L7iL_E-Rnx8J43vFU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZsncFf3bJ5L7iL_E-Rnx8J43vFU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZsncFf3bJ5L7iL_E-Rnx8J43vFU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/KPIiXZSHBs0" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2010/06/googlecldebian.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcER3s_cSp7ImA9WxFUEEg.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-7065906947231869527</id><published>2010-06-21T01:33:00.004+09:00</published><updated>2010-06-21T01:56:46.549+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-21T01:56:46.549+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="blogger" /><category scheme="http://www.blogger.com/atom/ns#" term="templates" /><title>bloggerのテンプレートの出し分けをする方法のメモ</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/7065906947231869527/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2010/06/blogger.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7065906947231869527?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/7065906947231869527?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/qwgHcTiVwv4/blogger.html" title="bloggerのテンプレートの出し分けをする方法のメモ" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">bloggerのトップページと個別の記事ページでテンプレートの出し分けをしたくなったのでやり方をメモ。


&amp;lt;b:if cond='data:blog.pageType == "item"'&amp;gt;
foo
&amp;lt;/b:if&amp;gt;

これでfooの部分が個別記事のなかでのみ有効になる


&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/i0LSBk71Do7LAQMENaSvd_cPjlo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i0LSBk71Do7LAQMENaSvd_cPjlo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/i0LSBk71Do7LAQMENaSvd_cPjlo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i0LSBk71Do7LAQMENaSvd_cPjlo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/qwgHcTiVwv4" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2010/06/blogger.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQARn0yeSp7ImA9WxFWF08.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-2098067199942386336</id><published>2010-06-05T15:18:00.002+09:00</published><updated>2010-06-05T16:19:07.391+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-05T16:19:07.391+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="RabbitMQ" /><category scheme="http://www.blogger.com/atom/ns#" term="AMQP" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="pika" /><title>AMQP関連の参考リンクまとめ</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/2098067199942386336/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2010/06/amqp.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/2098067199942386336?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/2098067199942386336?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/1ckbS39NZlk/amqp.html" title="AMQP関連の参考リンクまとめ" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">最近RabbitMQをよくいじっているので、参考にした記事などをまとめておきます。


RabbitMQとはerlangで実装されたAMQPの一つです。
http://www.rabbitmq.com/

概要をつかむには以下のスライドが参考になります。サンプルコードものってます。
http://www.slideshare.net/hungryblank/rabbitmq-with-python-and-ruby-rupy-2009

英語ですがこちらのブログ記事はチュートリアル的に書かれていてとても参考になりました
http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/

下記のブログでもRabbitMQ関連の記事がよくポストされてます。
http://somic.org/category/rabbitmq/

greeの
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GqaPKaOyX2m9kEH3USNxiU4v1eg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GqaPKaOyX2m9kEH3USNxiU4v1eg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GqaPKaOyX2m9kEH3USNxiU4v1eg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GqaPKaOyX2m9kEH3USNxiU4v1eg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/1ckbS39NZlk" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2010/06/amqp.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQDQnszeip7ImA9WxFSFUo.&quot;"><id>tag:blogger.com,1999:blog-7605170327719994580.post-1563072514274558004</id><published>2010-04-18T16:53:00.005+09:00</published><updated>2010-04-18T16:56:13.582+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-18T16:56:13.582+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="debian" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="NTP" /><title>debianの時計を合わせる</title><link rel="replies" type="application/atom+xml" href="http://taksatou.blogspot.com/feeds/1563072514274558004/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://taksatou.blogspot.com/2010/04/debian.html#comment-form" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/1563072514274558004?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7605170327719994580/posts/default/1563072514274558004?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Taksatou/~3/je9kIdNJQGg/debian.html" title="debianの時計を合わせる" /><author><name>taksatou</name><uri>http://www.blogger.com/profile/06653965188181943367</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_Vs4R6_Mn1MY/SxUgGxGFpjI/AAAAAAAAANE/CxiGy27DuNI/s1600-R/c20090707_katamari_01_cs1w1_300x.jpg" /></author><thr:total>0</thr:total><content type="html">普通はOSをインストールした時にちゃんと設定されはずですが、どういう訳かシステムの時計がずれてきていたので設定方法をメモ。

時計を合わせるにはntpdateというパッケージを使います。
debianではntpdate-debianというコマンドが使えます。

$ sudo apt-get install ntpdate
$ sudo ntpdate-debian
これでNTPサーバに問い合わせて時計を合わせてくれます。
/etc/default/ntpdateファイルを編集すればNTPサーバを変更できます。

ついでにcrontabの設定もしておきます。

$ sudo crontab -e
0 0 1 * * ntpdate-debian
 　
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DpxXCbi2DVS2MO0c-XvqBYkYVj4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DpxXCbi2DVS2MO0c-XvqBYkYVj4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DpxXCbi2DVS2MO0c-XvqBYkYVj4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DpxXCbi2DVS2MO0c-XvqBYkYVj4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Taksatou/~4/je9kIdNJQGg" height="1" width="1"/&gt;</content><feedburner:origLink>http://taksatou.blogspot.com/2010/04/debian.html</feedburner:origLink></entry></feed>

