<?xml version='1.0' encoding='UTF-8'?><rss version='2.0'><channel><title>ヅラッシュ！</title><copyright>Copyright(c) NI-Lab. All Right Reserved.</copyright><description>職業/趣味プログラマの日記・備忘録ブログ。リンクはご自由に。ツッコミ/コメントはお気軽に。</description><link>http://www.nilab.info/z3/</link><image><title>ヅラッシュ！</title><link>http://www.nilab.info/z3/</link><url>http://www.nilab.info/z3/z3_logo.png</url></image><lastBuildDate>Thu, 17 May 2012 03:00:02 +0900</lastBuildDate><item><category>everytrail</category><guid>http://www.nilab.info/z3/20120513_02.html</guid><pubDate>Sun, 13 May 2012 00:00:00 +0900</pubDate><title>東山動植物園に行ってきた</title><description>&lt;p&gt;EveryTrail for iPhone でGPSログを取っておいた (途中からだけど・・・)。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/f0/0/20120513_higashiyama_zoo_01.png&quot; alt=&quot;東山動植物園 Higashiyama Zoo&quot; title=&quot;東山動植物園 Higashiyama Zoo&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120513_higashiyama_zoo_02.jpg&quot; alt=&quot;東山動植物園 Higashiyama Zoo&quot; title=&quot;東山動植物園 Higashiyama Zoo&quot; /&gt;&lt;/p&gt;

&lt;p&gt;
EveryTrail: non-flash map for websites &amp;amp; blogs&lt;br /&gt;
&lt;a href=&quot;http://www.everytrail.com/view_trip.php?trip_id=1574173&quot;&gt;Higashiyama Zoo at EveryTrail&lt;/a&gt;&lt;br&gt;&lt;iframe src=&quot;http://www.everytrail.com/iframe2.php?trip_id=1574173&amp;width=400&amp;height=300&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; width=&quot;400&quot; height=&quot;300&quot;&gt;&lt;/iframe&gt;EveryTrail - Find the &lt;a href=&quot;http://www.everytrail.com/best/hiking-california&quot;&gt;best hikes in California&lt;/a&gt; and beyond
&lt;/p&gt;

&lt;p&gt;
ログファイル:&lt;br /&gt;
- KML: &lt;a href=&quot;/f0/0/20120513_1574173.kmz&quot;&gt;1574173.kmz&lt;/a&gt;&lt;br /&gt;
- GPX: &lt;a href=&quot;/f0/0/20120513_1574173.gpx&quot;&gt;1574173.gpx&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;GPXをルートラボに投稿 (EveryTraiklのKMLファイルには高さの情報が入っていなかったのでGPX)。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/f0/0/20120513_higashiyama_zoo_03.png&quot; alt=&quot;東山動植物園 Higashiyama Zoo&quot; title=&quot;東山動植物園 Higashiyama Zoo&quot; /&gt;&lt;/p&gt;

&lt;blockquote&gt;
場所&lt;br /&gt;
愛知県名古屋市千種区田代町字瓶杁&lt;br /&gt;
&lt;br /&gt;
タグ&lt;br /&gt;
名古屋 東山動植物園&lt;br /&gt;
&lt;br /&gt;
距離&lt;br /&gt;
1.7km&lt;br /&gt;
&lt;br /&gt;
最大標高差&lt;br /&gt;
41m&lt;br /&gt;
&lt;br /&gt;
平均斜度&lt;br /&gt;
全体：-0.6%&lt;br /&gt;
上り：3.8%&lt;br /&gt;
下り：4.7%&lt;br /&gt;
&lt;br /&gt;
獲得標高&lt;br /&gt;
上り：30m&lt;br /&gt;
下り：28m&lt;br /&gt;
&lt;br /&gt;
日時&lt;br /&gt;
2012年5月13日 11:00:56 ～ 11:47:48&lt;br /&gt;
&lt;br /&gt;
所要時間&lt;br /&gt;
46分52秒&lt;br /&gt;
&lt;br /&gt;
平均速度&lt;br /&gt;
2.1km/h&lt;br /&gt;
&lt;br /&gt;
想定所要時間&lt;br /&gt;
車：3分&lt;br /&gt;
自転車：7分&lt;br /&gt;
徒歩：20分&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://latlonglab.yahoo.co.jp/route/watch?id=6e05d9199faf263299f13a676c3668be&quot;&gt;Higashiyama Zoo - ルートラボ - LatLongLab&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;
&lt;script type=&quot;text/javascript&quot; encoding=&quot;UTF-8&quot; src=&quot;http://latlonglab.yahoo.co.jp/route/paste?id=6e05d9199faf263299f13a676c3668be&amp;width=360&amp;height=360&amp;mapstyle=topographic&amp;graph=false&amp;maponly=false&quot;&gt;&lt;/script&gt;
&lt;/p&gt;

&lt;p&gt;GPSログ取得中に撮影した写真あれこれ。写りがいまいちすぎる。。。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120513_4415786-photo1.jpg&quot; alt=&quot;東山動植物園 Higashiyama Zoo&quot; title=&quot;東山動植物園 Higashiyama Zoo&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120513_4415787-photo2.jpg&quot; alt=&quot;東山動植物園 Higashiyama Zoo&quot; title=&quot;東山動植物園 Higashiyama Zoo&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120513_4415788-photo3.jpg&quot; alt=&quot;東山動植物園 Higashiyama Zoo&quot; title=&quot;東山動植物園 Higashiyama Zoo&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120513_4415789-photo4.jpg&quot; alt=&quot;東山動植物園 Higashiyama Zoo&quot; title=&quot;東山動植物園 Higashiyama Zoo&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120513_4415790-photo5.jpg&quot; alt=&quot;東山動植物園 Higashiyama Zoo&quot; title=&quot;東山動植物園 Higashiyama Zoo&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120513_4415791-photo6.jpg&quot; alt=&quot;東山動植物園 Higashiyama Zoo&quot; title=&quot;東山動植物園 Higashiyama Zoo&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120513_4415792-photo7.jpg&quot; alt=&quot;東山動植物園 Higashiyama Zoo&quot; title=&quot;東山動植物園 Higashiyama Zoo&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120513_4415793-photo8.jpg&quot; alt=&quot;東山動植物園 Higashiyama Zoo&quot; title=&quot;東山動植物園 Higashiyama Zoo&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120513_4415794-photo9.jpg&quot; alt=&quot;東山動植物園 Higashiyama Zoo&quot; title=&quot;東山動植物園 Higashiyama Zoo&quot; /&gt;&lt;/p&gt;

&lt;p&gt;
Ref.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.everytrail.com/view_trip.php?trip_id=1574173&quot;&gt;Higashiyama Zoo - Walking trip | EveryTrail&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://latlonglab.yahoo.co.jp/route/watch?id=6e05d9199faf263299f13a676c3668be&quot;&gt;Higashiyama Zoo - ルートラボ - LatLongLab&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
</description><link>http://www.nilab.info/z3/20120513_02.html</link></item><item><category>iphone</category><guid>http://www.nilab.info/z3/20120513_01.html</guid><pubDate>Sun, 13 May 2012 00:00:00 +0900</pubDate><title>iOS 5.1.1 のアップデート内容</title><description>&lt;blockquote&gt;
iOS 5.1.1&lt;br /&gt;
&lt;br /&gt;
このアップデートには、次のような機能向上とバグ修正が含まれています：&lt;br /&gt;
&lt;br /&gt;
	•	“画面をロック”ショートカットを使用して撮影される写真にHDRオプションを使用するときの信頼性が向上&lt;br /&gt;
	•	新しいiPadで2Gと3Gネットワークの切り替えができない問題を修正&lt;br /&gt;
	•	一定の状況下で、ビデオのAirPlay再生に影響を及ぼす問題を修正&lt;br /&gt;
	•	Safariブックマークとリーディングリストの同期の信頼性が向上&lt;br /&gt;
	•	購入手続の完了後に“購入できません”通知が表示される問題を修正&lt;br /&gt;
	•	iMessageで絵文字が正しく表示されない問題を修正&lt;br /&gt;
&lt;br /&gt;
このアップデートのセキュリティ内容については、次のWebサイトを参照してください：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://support.apple.com/kb/HT1222?viewlocale=ja_JP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;iPhone ソフトウェア更新プログラム&lt;/cite&gt;
&lt;/blockquote&gt;
</description><link>http://www.nilab.info/z3/20120513_01.html</link></item><item><category>programming</category><guid>http://www.nilab.info/z3/20120508_03.html</guid><pubDate>Tue, 08 May 2012 00:00:00 +0900</pubDate><title>さいきんのボクの開発環境</title><description>&lt;p&gt;未来の自分が過去を懐かしむためにメモ。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ : Windows 7 + Cygwin + 秀丸エディタ + g++ ＋ GNU make&lt;/li&gt;
&lt;li&gt;C++ : MacBook Air (Mac OS X Lion) + MacVim + g++&lt;/li&gt;
&lt;li&gt;Java : MacBook Air (Mac OS X Lion) + Eclipse&lt;/li&gt;
&lt;li&gt;Ruby : MacBook Air (Mac OS X Lion) + MacVim&lt;/li&gt;
&lt;li&gt;HTML + JavaScript + CSS : MacBook Air (Mac OS X Lion) + jEdit + Firefox&lt;/li&gt;
&lt;li&gt;HTML + JavaScript + CSS : Windows XP + 秀丸エディタ + Firefox&lt;/li&gt;
&lt;li&gt;HTML + JavaScript + CSS : Windows 7 + 秀丸エディタ + Firefox&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ちょっと前までは、&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ : Windows 7 + Cygwin + Eclipse + g++ ＋ GNU make&lt;/li&gt;
&lt;li&gt;Java : Windows XP + Eclipse&lt;/li&gt;
&lt;li&gt;Java : Windows 7 + Eclipse&lt;/li&gt;
&lt;li&gt;Ruby : Windows XP + 秀丸エディタ&lt;/li&gt;
&lt;li&gt;Ruby : Windows 7 + 秀丸エディタ&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;という環境も使っていたのだけど、さいきん触っていない。&lt;/p&gt;

</description><link>http://www.nilab.info/z3/20120508_03.html</link></item><item><category>ruby</category><guid>http://www.nilab.info/z3/20120508_02.html</guid><pubDate>Tue, 08 May 2012 00:00:00 +0900</pubDate><title>コンソールに流れる電光掲示板</title><description>&lt;p&gt;Ruby で書いてみる。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
#!/usr/bin/env ruby
 
STDOUT.sync = true
 
text = &amp;#39;                    Hello, world. This is a pen. My name is Pen. Good-bye world.&amp;#39;
len = 20
 
(0..text.size()-len).each{|i|
  print &amp;quot;#{text[i,len]}\r&amp;quot;
  sleep 0.1
}
print&amp;quot;\n&amp;quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;STDOUT.sync = true が大事。&lt;/p&gt;

&lt;blockquote&gt;
実行すると，順に表示されるはずが，数秒後一気に出力されてしまう。&lt;br /&gt;
&lt;br /&gt;
これは，バッファリングされていることが原因なので，それを抑止する，&lt;br /&gt;
&lt;br /&gt;
STDOUT.sync = true&lt;br /&gt;
&lt;br /&gt;
をプログラムの頭に書いてやる事により解決した。&lt;br /&gt;
&lt;br /&gt;
putsだときちんとsleepされるのに，printだとバッファされるのは何ででしょ。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://ugawalab.miyakyo-u.ac.jp/m6/fukuchi/blog/2008/10/rubysleep.html&quot;&gt;rubyでsleepが機能しない（ ∵ バッファリング）: m6 BLOG&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

</description><link>http://www.nilab.info/z3/20120508_02.html</link></item><item><category>c++</category><guid>http://www.nilab.info/z3/20120508_01.html</guid><pubDate>Tue, 08 May 2012 00:00:00 +0900</pubDate><title>C++のコピーコンストラクタと代入演算子オーバーロードが呼ばれるとき</title><description>&lt;p&gt;
調べたいこと。&lt;br /&gt;
・オブジェクトがコピーまたは代入されるときの挙動&lt;br /&gt;
・std::vector#push_back や std::vector#back での挙動&lt;br /&gt;
・std::map#[] での挙動&lt;br /&gt;
&lt;p&gt;

&lt;p&gt;サンプルコード copytest.cpp&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;map&amp;gt;
 
class Hoge {
public:
  // デフォルト コンストラクタ
  Hoge(){
    this-&amp;gt;name = &amp;quot;xxx&amp;quot;;
    std::cout &amp;lt;&amp;lt; &amp;quot;default constructor: &amp;quot; &amp;lt;&amp;lt; this-&amp;gt;name &amp;lt;&amp;lt; std::endl;
  };
  // コンストラクタ
  Hoge(std::string name){
    this-&amp;gt;name = name;
    std::cout &amp;lt;&amp;lt; &amp;quot;constructor: &amp;quot; &amp;lt;&amp;lt; this-&amp;gt;name &amp;lt;&amp;lt; std::endl;
  };
  // コピー コンストラクタ
  Hoge(const Hoge&amp;amp; hoge){
    this-&amp;gt;name = hoge.name;
    std::cout &amp;lt;&amp;lt; &amp;quot;copy constructor: &amp;quot; &amp;lt;&amp;lt; this-&amp;gt;name &amp;lt;&amp;lt; std::endl;
  };
  // 代入演算子のオーバーロード
  Hoge&amp;amp; operator=(const Hoge&amp;amp; hoge){
    this-&amp;gt;name = hoge.name;
    std::cout &amp;lt;&amp;lt; &amp;quot;assignment operator: &amp;quot; &amp;lt;&amp;lt; this-&amp;gt;name &amp;lt;&amp;lt; std::endl;
  }
  void PrintName(){
    std::cout &amp;lt;&amp;lt; &amp;quot;PrintName: &amp;quot; &amp;lt;&amp;lt; this-&amp;gt;name &amp;lt;&amp;lt; std::endl;
  };
  virtual ~Hoge(){
  };
private:
  std::string name;
};
 
int main(){
 
  std::cout &amp;lt;&amp;lt; &amp;quot;\n***** h1 test *****&amp;quot; &amp;lt;&amp;lt; std::endl;
  Hoge h1(&amp;quot;Alice&amp;quot;); // 普通のコンストラクタ
  h1.PrintName();
 
  std::cout &amp;lt;&amp;lt; &amp;quot;\n***** h2 test *****&amp;quot; &amp;lt;&amp;lt; std::endl;
  Hoge h2 = h1; // コピーコンストラクタ
  h2.PrintName();
 
  std::cout &amp;lt;&amp;lt; &amp;quot;\n***** h3 test *****&amp;quot; &amp;lt;&amp;lt; std::endl;
  Hoge h3(&amp;quot;Bob&amp;quot;);
  h3.PrintName();
  h3 = h1; // 代入
  h3.PrintName();
 
  std::cout &amp;lt;&amp;lt; &amp;quot;\n***** h4 test *****&amp;quot; &amp;lt;&amp;lt; std::endl;
  std::vector&amp;lt;Hoge&amp;gt; v1;
  v1.push_back(h1); // std::vector#push_back でコピーが発生
 
  std::cout &amp;lt;&amp;lt; &amp;quot;\n***** h5 test *****&amp;quot; &amp;lt;&amp;lt; std::endl;
  Hoge&amp;amp; h5 = v1.back(); // 参照を返す
  h5.PrintName();
 
  std::cout &amp;lt;&amp;lt; &amp;quot;\n***** h6 test *****&amp;quot; &amp;lt;&amp;lt; std::endl;
  Hoge* h6 = &amp;amp;v1.back(); // 参照のポインタ
  h6-&amp;gt;PrintName();
 
  std::cout &amp;lt;&amp;lt; &amp;quot;\n***** h7 test *****&amp;quot; &amp;lt;&amp;lt; std::endl;
  std::map&amp;lt;std::string, Hoge&amp;gt; m1;
  m1[&amp;quot;key1&amp;quot;]; // 存在しないキーを指定したためデフォルトコンストラクタが呼ばれる
 
  std::cout &amp;lt;&amp;lt; &amp;quot;\n***** h8 test *****&amp;quot; &amp;lt;&amp;lt; std::endl;
  m1[&amp;quot;key1&amp;quot;] = h1; // 代入
 
  std::cout &amp;lt;&amp;lt; &amp;quot;\n***** h9 test *****&amp;quot; &amp;lt;&amp;lt; std::endl;
  m1[&amp;quot;key1&amp;quot;].PrintName();
 
  std::cout &amp;lt;&amp;lt; &amp;quot;\n***** h10 test *****&amp;quot; &amp;lt;&amp;lt; std::endl;
  m1[&amp;quot;key2&amp;quot;].PrintName(); // 存在しないキーを指定したためデフォルトコンストラクタが呼ばれる
 
  std::cout &amp;lt;&amp;lt; &amp;quot;\n***** h11 test *****&amp;quot; &amp;lt;&amp;lt; std::endl;
  Hoge&amp;amp; h11 = m1[&amp;quot;key1&amp;quot;]; // 参照を返す
  h11.PrintName();
 
  std::cout &amp;lt;&amp;lt; &amp;quot;\n***** h12 test *****&amp;quot; &amp;lt;&amp;lt; std::endl;
  Hoge h12 = m1[&amp;quot;key1&amp;quot;]; // コピーが発生
  h12.PrintName();
 
  std::cout &amp;lt;&amp;lt; &amp;quot;\n***** h13 test *****&amp;quot; &amp;lt;&amp;lt; std::endl;
  m1[&amp;quot;key3&amp;quot;] = h1; // 存在しないキーを指定したためデフォルトコンストラクタが呼ばれ、その後で代入が発生
 
   return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;実行結果。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
$ g++ copytest.cpp 
$ ./a.out 
 
***** h1 test *****
constructor: Alice
PrintName: Alice
 
***** h2 test *****
copy constructor: Alice
PrintName: Alice
 
***** h3 test *****
constructor: Bob
PrintName: Bob
assignment operator: Alice
PrintName: Alice
 
***** h4 test *****
copy constructor: Alice
 
***** h5 test *****
PrintName: Alice
 
***** h6 test *****
PrintName: Alice
 
***** h7 test *****
default constructor: xxx
copy constructor: xxx
copy constructor: xxx
 
***** h8 test *****
assignment operator: Alice
 
***** h9 test *****
PrintName: Alice
 
***** h10 test *****
default constructor: xxx
copy constructor: xxx
copy constructor: xxx
PrintName: xxx
 
***** h11 test *****
PrintName: Alice
 
***** h12 test *****
copy constructor: Alice
PrintName: Alice
 
***** h13 test *****
default constructor: xxx
copy constructor: xxx
copy constructor: xxx
assignment operator: Alice
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;std::map[key] でデフォルトコンストラクタが呼ばれるのは良いとして、その後2回もコピーコンストラクタが呼ばれているのはどういうわけなんだろうか。&lt;/p&gt;

&lt;p&gt;ちなみに環境は Mac OS X Lion と g++ 4.2.1 を使用。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
$ uname -mrsv
Darwin 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 x86_64
 
$ g++ --version
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;参考資料。&lt;/p&gt;

&lt;blockquote&gt;
コピー操作が行われるときにコピーコンストラクタが呼び出されるということでした。通常のコンストラクタと同じく、明示的にコピーコンストラクタを宣言しなかった場合には、コンパイラが暗黙のうちにコピーコンストラクタを生成しています。これをデフォルトコピーコンストラクタと呼びますが、これは何をしているのでしょう？　これは単にクラスのメンバをそのままコピーするだけです。つまり、単純な代入操作です。この章で、何度か話した、ポインタがそのままコピーされるというのは、実はデフォルトコピーコンストラクタがそうさせているのです。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.geocities.jp/ky_webid/cpp/language/016.html&quot;&gt;C++編（言語解説）　第１６章　コピーコンストラクタ&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
back() 関数はベクタの最終要素への参照を返す。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.cppll.jp/cppreference/cppvector_details.html&quot;&gt;C++ ベクタ&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
[]の中にキーを書けば、そのキーをもつ要素の値にアクセスできます。mapはキーが重複登録されることがないので、このような使い方が可能です。一方、multimapの場合は、キーの重複登録が許可されているため、[]演算子ではアクセスできません。もし同じキーがあったとき、どちらのことを指しているのか判断できないからです。&lt;br /&gt;
&lt;br /&gt;
なお、もし存在しないキーを指定してアクセスした場合には、そのキーを自動的に登録します。そして、そのキーに対応する値は、その値の型のデフォルトコンストラクタによって初期化されます。そのため、不正なアクセスによりエラーが発生することがないのですが、これは長所でもあり短所でもあります。むしろ、例外を発生させてくれた方が間違いが見つかりやすいという考え方もあります。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.geocities.jp/ky_webid/cpp/library/010.html&quot;&gt;C++編（標準ライブラリ）　第１０章　map&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

</description><link>http://www.nilab.info/z3/20120508_01.html</link></item><item><category /><guid>http://www.nilab.info/z3/20120506_03.html</guid><pubDate>Sun, 06 May 2012 00:00:00 +0900</pubDate><title>創作料理 月のもぐら</title><description>&lt;p&gt;きょうの昼食は、創作ひつまぶしのお店。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/f0/0/20120506_tsuki_no_mogura_1.jpg&quot; alt=&quot;創作料理 月のもぐら&quot; title=&quot;創作料理 月のもぐら&quot; /&gt;&lt;/p&gt;

&lt;p&gt;入口から左側へ、こっち側は初めてきた。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120506_tsuki_no_mogura_3.jpg&quot; alt=&quot;創作料理 月のもぐら&quot; title=&quot;創作料理 月のもぐら&quot; /&gt;&lt;/p&gt;

&lt;p&gt;並盛でかなりのボリューム。個人的には小盛り(100円引き)でじゅうぶん。&lt;img src=&quot;/f0/0/20120506_tsuki_no_mogura_7.jpg&quot; alt=&quot;創作料理 月のもぐら&quot; title=&quot;創作料理 月のもぐら&quot; /&gt;&lt;/p&gt;

&lt;p&gt;角煮温玉ひつまぶし。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120506_tsuki_no_mogura_5.jpg&quot; alt=&quot;創作料理 月のもぐら&quot; title=&quot;創作料理 月のもぐら&quot; /&gt;&lt;/p&gt;
&lt;p&gt;マグロとアボカドのひつまぶし。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120506_tsuki_no_mogura_6.jpg&quot; alt=&quot;創作料理 月のもぐら&quot; title=&quot;創作料理 月のもぐら&quot; /&gt;&lt;/p&gt;
&lt;p&gt;メニューに無いけど、お子様ランチは500円。おにぎりが豚のひつまぶし。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120506_tsuki_no_mogura_4.jpg&quot; alt=&quot;創作料理 月のもぐら&quot; title=&quot;創作料理 月のもぐら&quot; /&gt;&lt;/p&gt;
&lt;p&gt;ランチアンケートを書くと100円引きに。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120506_tsuki_no_mogura_2.jpg&quot; alt=&quot;創作料理 月のもぐら&quot; title=&quot;創作料理 月のもぐら&quot; /&gt;&lt;/p&gt;

&lt;p&gt;TEL: 0568-74-3811&lt;br /&gt;住所: 愛知県小牧市北外山1747-1 (愛知県小牧市大字北外山字池田1747-1)&lt;/p&gt;

&lt;p&gt;
Ref.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.bridge-cf.jp/shop/tuki%5Fno%5Fmogura/&quot;&gt;創作料理 月のもぐら/小牧市北外山/飲食店/居酒屋&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ameblo.jp/tuki-no-mogura/&quot;&gt;月のもぐら スタッフブログ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://r.tabelog.com/aichi/A2303/A230301/23008229/&quot;&gt;創作料理 月のもぐら ソウサクリョウリツキノモグラ - 小牧口/和食（その他） [食べログ]&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://gourmet.walkerplus.com/157158022001/&quot;&gt;創作料理　月のもぐら - グルメウォーカー&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ja.foursquare.com/v/%E6%9C%88%E3%81%AE%E3%82%82%E3%81%90%E3%82%89/4bf6a9704d5f20a11aae99fe&quot;&gt;月のもぐら - foursquare&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://tou.ch/spot/101981/&quot;&gt;創作料理 月のもぐらの情報だよ！ | ロケタッチ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nilab.info/z3/20110610_01.html&quot;&gt;[ヅ] 創作料理 月のもぐら&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
</description><link>http://www.nilab.info/z3/20120506_03.html</link></item><item><category>3d</category><category>firefox</category><guid>http://www.nilab.info/z3/20120506_02.html</guid><pubDate>Sun, 06 May 2012 00:00:00 +0900</pubDate><title>Firefoxの3Dビュー『Tilt』を試してみた</title><description>&lt;p&gt;Mozilla Firefox にて、ページ上で右クリック → [要素を調査] → [3Dビュー]&lt;/p&gt;

&lt;p&gt;このブログ &lt;a href=&quot;http://www.nilab.info/z3/&quot;&gt;ヅラッシュ！&lt;/a&gt; を3Dビューで見てみた。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120506_firefox_3d_view_tilt_3.png&quot; alt=&quot;Firefoxの3Dビュー: ヅラッシュ！&quot; title=&quot;Firefoxの3Dビュー: ヅラッシュ！&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.nilab.info/buzztube/&quot;&gt;BuzzTube&lt;/a&gt; を3Dビューで見てみた。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120506_firefox_3d_view_tilt_2.png&quot; alt=&quot;Firefoxの3Dビュー: BuzzTube&quot; title=&quot;Firefoxの3Dビュー: BuzzTube&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.nilab.info/&quot;&gt;トップページ&lt;/a&gt;を3Dビューで見てみた。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120506_firefox_3d_view_tilt_1.png&quot; alt=&quot;Firefoxの3Dビュー: NI-Lab.&quot; title=&quot;Firefoxの3Dビュー: NI-Lab.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Mozilla.org のブログ &lt;a href=&quot;http://blog.mozilla.org/tilt/&quot;&gt;Tilt&lt;/a&gt; でいくつか動画が公開されてた。3D ｶｺ(・∀・)ｲｲ!!&lt;/p&gt;

&lt;p&gt;&lt;iframe width=&quot;420&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/_7eG_PONHRw&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;⇒ &lt;a href=&quot;http://www.youtube.com/watch?v=_7eG_PONHRw&quot;&gt;Inspecting CNN, Reddit and Hackernews with Tilt - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width=&quot;420&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/Z41I3cRgykk&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;⇒ &lt;a href=&quot;http://www.youtube.com/watch?v=Z41I3cRgykk#!&quot;&gt;Tilt: DOM nodes and effects - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
Firefox includes new developer tools that represent the structure of websites in a new way and make it easier to live-edit CSS code. The first is a powerful visual layout tool unique to Firefox, Page Inspector 3D View. Nicknamed Tilt, it is a brand new WebGL-based website visualization tool that highlights the structure of a page better than a flat view, so anyone can immediately understand the relationship of the code to the page output. While developer tools like “view source” have always been useful to learn about how to develop a page, the 3D View more clearly illustrates how the parts of a website are structured. After selecting “3D” View in Page Inspector, just hover your mouse over the elements to get more information about each piece you select.&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://blog.mozilla.org/blog/2012/03/13/firefox-adds-new-developer-tools-and-add-on-sync/&quot;&gt;Firefox Adds New Developer Tools and Add-on Sync | The Mozilla Blog&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;
Ref.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.mozilla.org/blog/2012/03/13/firefox-adds-new-developer-tools-and-add-on-sync/&quot;&gt;Firefox Adds New Developer Tools and Add-on Sync | The Mozilla Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.mozilla.org/tilt/2011/05/10/tilt-a-webgl-based-3d-visualization-of-a-webpage/&quot;&gt;Tilt: a WebGL-based 3D visualization of a Webpage at Tilt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
</description><link>http://www.nilab.info/z3/20120506_02.html</link></item><item><category>twitter</category><guid>http://www.nilab.info/z3/20120506_01.html</guid><pubDate>Sun, 06 May 2012 00:00:00 +0900</pubDate><title>Twitter Counter を使ってみた</title><description>&lt;p&gt;フォロワー数が3月あたりで激減してた(ってせいぜい20人ぐらいだけど)。グラフがキュンッと急降下してる。&lt;br /&gt;&lt;img width=&quot;600&quot; height=&quot;666&quot; src=&quot;/f0/0/20120505_twitter_counter_1.png&quot; alt=&quot;Twitter Counter&quot; title=&quot;Twitter Counter&quot; /&gt;&lt;/p&gt;
&lt;p&gt;さいきんフォロー数もたまにちょっとだけ減らしたりしてる。&lt;br /&gt;&lt;img width=&quot;600&quot; height=&quot;289&quot; src=&quot;/f0/0/20120505_twitter_counter_2.png&quot; alt=&quot;Twitter Counter&quot; title=&quot;Twitter Counter&quot; /&gt;&lt;/p&gt;

&lt;p&gt;
Ref.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://twittercounter.com/&quot;&gt;Twitter Stats by Twitter Counter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://twittercounter.com/nilab&quot;&gt;NI-Lab. Twitter Stats - Twitter Counter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
</description><link>http://www.nilab.info/z3/20120506_01.html</link></item><item><category>everytrail</category><category>gps</category><guid>http://www.nilab.info/z3/20120504_01.html</guid><pubDate>Fri, 04 May 2012 00:00:00 +0900</pubDate><title>小牧城へ行ってきたGPSログ</title><description>&lt;p&gt;iPhone 4S + EveryTrail for iPhone によるGPSログ。&lt;/p&gt;

&lt;p&gt;
&lt;h2&gt;&lt;a href=&quot;http://www.everytrail.com/view_trip.php?trip_id=1559060&quot;&gt;Komaki Castle&lt;/a&gt;&lt;/h2&gt; &lt;object width=&quot;400&quot; height=&quot;300&quot; codebase=&quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.everytrail.com/swf/widget.swf&quot;/&gt;&lt;param name=&quot;FlashVars&quot; value=&quot;units=metric&amp;mode=0&amp;key=ABQIAAAA_7wvFEi7gGngCZrOfos63hSN1xyBy-BzBD--25ZLXpVi3GfbehTQlZCXdpUFII2A5CGeExVTCyX1ow&amp;tripId=1559060&amp;startLat=35.290239&amp;startLon=136.91407423&amp;mapType=Hybrid&amp;&quot;&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; src=&quot;http://www.everytrail.com/swf/widget.swf&quot; quality=&quot;high&quot; width=&quot;400&quot; height=&quot;300&quot; FlashVars=&quot;units=metric&amp;mode=0&amp;key=ABQIAAAA_7wvFEi7gGngCZrOfos63hSN1xyBy-BzBD--25ZLXpVi3GfbehTQlZCXdpUFII2A5CGeExVTCyX1ow&amp;tripId=1559060&amp;startLat=35.290239&amp;startLon=136.91407423&amp;mapType=Hybrid&amp;&quot; play=&quot;true&quot;  quality=&quot;high&quot;  pluginspage=&quot;http://www.adobe.com/go/getflashplayer&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;EveryTrail - Find the &lt;a href=&quot;http://www.everytrail.com/best/hiking-california&quot;&gt;best hikes in California&lt;/a&gt; and beyond&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.everytrail.com/trip/widgetimpression?trip_id=1559060&quot;&gt;&lt;/script&gt;
&lt;/p&gt;

&lt;p&gt;EveryTrailでのスクリーンショット。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_everytrail.jpg&quot; alt=&quot;Komaki Castle - Hiking trip | EveryTrail : 小牧山と小牧城&quot; title=&quot;Komaki Castle - Hiking trip | EveryTrail : 小牧山と小牧城&quot; /&gt;&lt;br /&gt;⇒ &lt;a href=&quot;http://www.everytrail.com/view_trip.php?trip_id=1559060&quot;&gt;Komaki Castle - Hiking trip | EveryTrail&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
GPSログファイル&lt;br /&gt;
- &lt;a href=&quot;/f0/0/20120504_1559060.kmz&quot;&gt;KML: 1559060.kmz&lt;/a&gt;&lt;br /&gt;
- &lt;a href=&quot;/f0/0/20120504_1559060.gpx&quot;&gt;GPX: 1559060.gpx&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;kmzファイルを&lt;a href=&quot;http://latlonglab.yahoo.co.jp/route/&quot;&gt;ルートラボ&lt;/a&gt;にインポートしてみた。&lt;/p&gt;

&lt;p&gt;
&lt;script type=&quot;text/javascript&quot; encoding=&quot;UTF-8&quot; src=&quot;http://latlonglab.yahoo.co.jp/route/paste?id=f4345c94a280eb0929ba5039d26117fc&amp;width=360&amp;height=480&amp;mapstyle=topographic&amp;graph=true&amp;maponly=false&quot;&gt;&lt;/script&gt;
&lt;/p&gt;

&lt;p&gt;ルートラボでのスクリーンショット。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_routelab.jpg&quot; alt=&quot;小牧山と小牧城 (Komaki Castle) - ルートラボ - LatLongLab&quot; title=&quot;小牧山と小牧城 (Komaki Castle) - ルートラボ - LatLongLab&quot; /&gt;&lt;br /&gt;⇒ &lt;a href=&quot;http://latlonglab.yahoo.co.jp/route/watch?id=f4345c94a280eb0929ba5039d26117fc&quot;&gt;小牧山と小牧城 (Komaki Castle) - ルートラボ - LatLongLab&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ログ取得中に撮影した写真あれこれ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_01.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_02.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_03.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_04.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_05.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_06.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_07.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_08.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_09.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_10.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_11.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_12.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_13.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_14.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_15.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_16.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_17.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_18.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_19.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_20.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_21.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_22.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120504_komaki_castle_23.jpg&quot; alt=&quot;小牧山と小牧城&quot; title=&quot;小牧山と小牧城&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ref. &lt;a href=&quot;http://www.everytrail.com/view_trip.php?trip_id=1559060&quot;&gt;Komaki Castle - Hiking trip | EveryTrail&lt;/a&gt;&lt;/p&gt;
</description><link>http://www.nilab.info/z3/20120504_01.html</link></item><item><category>design</category><guid>http://www.nilab.info/z3/20120501_02.html</guid><pubDate>Tue, 01 May 2012 00:00:00 +0900</pubDate><title>単語をタグクラウドのように並べてくれるWordle</title><description>&lt;p&gt;&lt;img width=&quot;600&quot; height=&quot;246&quot; src=&quot;/f0/0/20120501_wordle_1.png&quot; alt=&quot;Wordle - Zlash&quot; title=&quot;Wordle - Zlash&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Wordle は、文章を入力すると単語をタグクラウドのように並べてくれる Java アプレット。&lt;/p&gt;

&lt;p&gt;ブログなどのRSSを指定することも可能。このブログ『ヅラッシュ！』のRSSを使ってみたらこんな感じ。&lt;br /&gt;&lt;img width=&quot;600&quot; height=&quot;349&quot; src=&quot;/f0/0/20120501_wordle_2.png&quot; alt=&quot;Wordle - 2012年4月に読んだ本&quot; title=&quot;Wordle - 2012年4月に読んだ本&quot; /&gt;&lt;br /&gt;⇒ &lt;a href=&quot;http://www.wordle.net/show/wrdl/5221209/2012%E5%B9%B44%E6%9C%88%E3%81%AB%E8%AA%AD%E3%82%93%E3%81%A0%E6%9C%AC&quot;&gt;Wordle - 2012年4月に読んだ本&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;この Wordle を知ったのは書籍『ビューティフルビジュアライゼーション』(Beautiful Visualization)。&lt;br /&gt;『ビューティフルビジュアライゼーション』には Wordle の単語配置アルゴリズムの解説が載っていて興味深い。&lt;/p&gt;

&lt;p&gt;Wordleの配置アルゴリズムは、単語を螺旋状に移動して置ける場所を探す。&lt;br /&gt;&lt;img src=&quot;/lab/hatena/f/20120428104003.jpg&quot; alt=&quot;Wordleの配置アルゴリズムは、単語を螺旋状に移動して置ける場所を探す。&quot; title=&quot;Wordleの配置アルゴリズムは、単語を螺旋状に移動して置ける場所を探す。&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Wordleの重なり判定、階層的なボックス領域、Broadphase、領域四分木(region quadtree)。&lt;br /&gt;&lt;img src=&quot;/lab/hatena/f/20120428104612.jpg&quot; alt=&quot;Wordleの重なり判定、階層的なボックス領域、Broadphase、領域四分木(region quadtree)。&quot; title=&quot;Wordleの重なり判定、階層的なボックス領域、Broadphase、領域四分木(region quadtree)。&quot; /&gt;&lt;/p&gt;

&lt;blockquote&gt;
Wordle is a toy for generating “word clouds” from text that you provide. The clouds give greater prominence to words that appear more frequently in the source text. You can tweak your clouds with different fonts, layouts, and color schemes. The images you create with Wordle are yours to use however you like. You can print them out, or save them to the Wordle gallery to share with your friends.&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.wordle.net/&quot;&gt;Wordle - Beautiful Word Clouds&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;
Ref.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.wordle.net/&quot;&gt;Wordle - Beautiful Word Clouds&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.wordle.net/gallery?username=NI-Lab.&quot;&gt;Wordle - Gallery: NI-Lab.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nilab.info/wiki/Book4873115043.html&quot;&gt;ビューティフルビジュアライゼーション (Beautiful Visualization) (Book4873115043 - MemoWiki)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;

</description><link>http://www.nilab.info/z3/20120501_02.html</link></item><item><category>ruby</category><category>yahoo_maps_api</category><guid>http://www.nilab.info/z3/20120501_01.html</guid><pubDate>Tue, 01 May 2012 00:00:00 +0900</pubDate><title>Yahoo! Open Local Platform の業種コード一覧</title><description>&lt;p&gt;業種コードのリストが欲しいので作ってみた。&lt;/p&gt;

&lt;blockquote&gt;
業種マスターAPIは、YOLPで使用される業種コードを階層構造状に取得できます。&lt;br /&gt;
業種コードは、全3階層で構成されます。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/genreCode.html&quot;&gt;Yahoo!デベロッパーネットワーク - YOLP（地図） - 業種マスター&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ruby + 業種マスターAPIを使って現時点(2012年5月1日現在)の業種コード一覧を取得して出力。&lt;/p&gt;

&lt;p&gt;Ruby によるソースコード。&lt;br /&gt;このコードを書くのにかかった時間は約40分。 &lt;a href=&quot;http://developer.yahoo.com/ruby/ruby-json.html&quot;&gt;Yahoo Developer Network - Parse JSON using Ruby&lt;/a&gt; が参考になった。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
#!/usr/bin/ruby
 
require &amp;#39;rubygems&amp;#39;
require &amp;#39;json&amp;#39;
require &amp;#39;net/http&amp;#39;
 
def get_genre_codes(appid, gc=&amp;#39;&amp;#39;)
  base_url = &amp;quot;http://category.search.olp.yahooapis.jp/OpenLocalPlatform/V1/genreCode&amp;quot;
  url = &amp;quot;#{base_url}?output=json&amp;amp;results=1000&amp;amp;appid=#{appid}&amp;amp;gc=#{gc}&amp;quot;
  resp = Net::HTTP.get_response(URI.parse(url))
  data = resp.body
 
  # we convert the returned JSON data to native Ruby
  # data structure - a hash
  result = JSON.parse(data)
 
  # if the hash has &amp;#39;Error&amp;#39; as a key, we raise an error
  if result.has_key? &amp;#39;Error&amp;#39;
    raise &amp;quot;web service error&amp;quot;
  end
  return result
end
 
def print_genre_codes(appid, gc=&amp;#39;&amp;#39;, level=1)
  if level &amp;gt; 3 then
    return
  end
  sleep 1
  obj = get_genre_codes(appid, gc)
  #json = JSON.pretty_generate(obj)
  #puts json
  features = obj[&amp;#39;Feature&amp;#39;]
  features.each{|f|
    puts &amp;quot;#{f[&amp;#39;Name&amp;#39;]}: #{f[&amp;#39;Id&amp;#39;]}&amp;quot;
    print_genre_codes(appid, f[&amp;#39;Id&amp;#39;], level+1)
  }
end
 
appid = &amp;#39;YOUR APPLICATION ID&amp;#39;
print_genre_codes(appid)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;出力された業種コード一覧 (実行環境は Mac OS X Lion + Ruby 1.8)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
グルメ: 01
和食: 0101
懐石料理: 0101001
会席料理: 0101002
割ぽう: 0101003
料亭: 0101004
小料理: 0101005
精進料理: 0101006
京料理: 0101007
豆腐料理: 0101008
ゆば料理: 0101009
おばんざい: 0101010
日本料理: 0101011
握り寿司: 0101012
回転寿司: 0101013
天ぷら、揚げ物: 0101014
とんかつ: 0101015
フライ: 0101016
そば: 0101017
うどん: 0101018
味噌煮込みうどん: 0101019
沖縄そば: 0101020
すき焼き: 0101021
しゃぶしゃぶ: 0101022
うなぎ: 0101023
どじょう: 0101024
焼き鳥: 0101025
串焼き: 0101026
鳥料理: 0101027
おでん: 0101028
お好み焼き、たこ焼き: 0101029
もんじゃ焼き: 0101030
丼もの、牛丼、親子丼: 0101031
沖縄料理: 0101032
郷土料理: 0101033
海鮮料理: 0101034
ふぐ料理: 0101035
かに料理: 0101036
すっぽん料理: 0101037
あんこう料理: 0101038
川魚料理: 0101039
牡蠣料理: 0101040
豚肉料理: 0101041
牛肉料理: 0101042
馬肉料理: 0101043
炭火焼き: 0101044
鉄板焼き: 0101045
牛タン料理: 0101046
もつ料理: 0101047
釜飯: 0101048
くじら料理: 0101049
炉端焼き: 0101050
野菜料理: 0101051
にんにく料理: 0101052
和食（その他）: 0101053
洋食: 0102
ステーキ、ハンバーグ: 0102001
パスタ、ピザ: 0102002
ハンバーガー: 0102003
洋食（その他）: 0102004
フランス料理（フレンチ）: 0102005
イタリア料理（イタリアン）: 0102006
スペイン料理: 0102007
ポルトガル料理: 0102008
地中海料理: 0102009
ドイツ料理: 0102010
ロシア料理: 0102011
スイス料理: 0102012
ベルギー料理: 0102013
アメリカ料理: 0102014
カリフォルニア料理: 0102015
ケイジャン料理: 0102016
オセアニア料理: 0102017
パシフィックリム料理: 0102018
ハワイ料理: 0102019
西洋各国料理: 0102020
シーフード、オイスターバー: 0102021
バーベキュー: 0102022
バイキング: 0103
バイキング: 0103001
中華: 0104
中華料理: 0104001
北京料理: 0104002
上海料理: 0104003
広東料理: 0104004
四川料理: 0104005
台湾料理: 0104006
香港料理: 0104007
餃子: 0104008
飲茶、点心: 0104009
アジア料理、エスニック: 0105
韓国料理、朝鮮料理: 0105001
アフリカ料理: 0105002
タイ料理: 0105003
ベトナム料理: 0105004
インドネシア料理: 0105005
インド料理: 0105006
ネパール料理: 0105007
パキスタン料理: 0105008
スリランカ料理: 0105009
トルコ料理: 0105010
中近東料理、アラビア料理: 0105011
メキシコ料理: 0105012
ブラジル料理: 0105013
アジア料理、エスニック（その他）: 0105014
ラーメン: 0106
ラーメン: 0106001
つけ麺: 0106002
カレー: 0107
カレー: 0107001
スープカレー: 0107002
欧風カレー: 0107003
インドカレー: 0107004
タイカレー: 0107005
焼肉、ホルモン、ジンギスカン: 0108
焼肉: 0108001
ジンギスカン: 0108002
ホルモン: 0108003
鍋: 0109
鍋料理: 0109001
居酒屋、ビアホール: 0110
和風居酒屋: 0110001
洋風居酒屋: 0110002
アジア居酒屋、無国籍居酒屋: 0110003
立ち飲み居酒屋: 0110004
ビアホール: 0110005
ビアレストラン: 0110006
定食、食堂: 0111
定食、食堂: 0111001
創作料理、無国籍料理: 0112
創作料理: 0112001
無国籍料理: 0112002
自然食、薬膳、オーガニック: 0113
自然食: 0113001
薬膳: 0113002
オーガニック: 0113003
持ち帰り、宅配: 0114
持ち帰り専門、弁当: 0114001
配達専門、宅配ピザ: 0114002
仕出し料理: 0114003
カフェ、喫茶店: 0115
カフェ: 0115001
喫茶店: 0115002
カフェバー: 0115003
インターネットカフェ: 0115004
シアトルカフェ: 0115005
複合カフェ: 0115006
ドッグカフェ: 0115007
猫カフェ: 0115008
ギャラリーカフェ: 0115009
ブックカフェ: 0115010
マンガ喫茶: 0115011
軽食: 0115012
和風喫茶: 0115013
カラオケ喫茶: 0115014
コーヒー、茶葉専門店: 0116
コーヒー専門店: 0116001
紅茶専門店: 0116002
中国茶専門店: 0116003
日本茶専門店: 0116004
パン、サンドイッチ: 0117
ベーカリー: 0117001
サンドイッチ: 0117002
ベーグル: 0117003
ホットドッグ: 0117004
パン、サンドイッチ（その他）: 0117005
スイーツ: 0118
洋菓子、ケーキ: 0118001
和菓子、甘味処、たい焼き: 0118002
中華菓子: 0118003
アイスクリーム、クレープ、パフェ: 0118004
バー: 0119
バー: 0119001
ショットバー: 0119002
アイリッシュパブ: 0119003
ダイニングバー: 0119004
バル、バール: 0119005
ビアバー: 0119006
ワインバー: 0119007
焼酎バー: 0119008
レストランバー: 0119009
ダーツバー: 0119010
ゴルフバー: 0119011
パブ、スナック: 0120
パブ: 0120001
スナック: 0120002
クラブ: 0120003
ラウンジ: 0120004
ディスコ、クラブハウス: 0121
ディスコ: 0121001
クラブハウス: 0121002
ビアガーデン: 0122
ビアガーデン: 0122001
ファミレス、ファストフード: 0123
ファミレス: 0123001
ファストフード: 0123002
ファストカジュアル: 0123003
パーティー、カラオケ: 0124
パーティースペース、宴会場: 0124001
カラオケボックス: 0124002
屋形船、クルージング: 0125
屋形船: 0125001
クルージング: 0125002
テーマパークレストラン: 0126
テーマパークレストラン: 0126001
アミューズメントレストラン: 0126002
オーベルジュ: 0127
オーベルジュ: 0127001
その他: 0128
その他: 0128001
ショッピング: 02
メガネ、コンタクトレンズ: 0201
メガネ、コンタクトレンズ: 0201001
ドラッグストア、市販薬: 0202
ドラッグストア: 0202001
漢方: 0202002
家庭用医療機器: 0202003
医療用品: 0202004
ドラッグストア、市販薬（その他）: 0202005
家電、携帯電話: 0203
電化製品: 0203001
家電量販店: 0203002
携帯電話: 0203003
パソコン: 0203004
百貨店、ショッピングセンター: 0204
デパート、百貨店: 0204001
ショッピングセンター: 0204002
アウトレットショップ: 0204003
ホームセンター: 0204004
商店街: 0204005
コンビニ、スーパー: 0205
コンビニ: 0205001
スーパー: 0205002
リサイクル、ディスカウントショップ: 0206
リサイクルショップ: 0206001
ディスカウントショップ: 0206002
金券ショップ: 0206003
生活用品、インテリア: 0207
ふとん、寝具: 0207001
日用雑貨: 0207002
文房具、事務用品: 0207003
家具: 0207004
インテリア用品: 0207005
印鑑、印章: 0207006
フラワーショップ: 0207007
100円ショップ: 0207008
作業服: 0207009
生活用品、インテリア（その他）: 0207010
趣味、スポーツ、工芸: 0208
CD、DVD、ビデオ: 0208001
書店: 0208002
おもちゃ: 0208003
たばこ: 0208004
スポーツ用品: 0208005
ゴルフ用品: 0208006
武道具: 0208007
趣味、スポーツ、工芸（その他）: 0208008
ファッション、アクセサリー、時計: 0209
衣料品店: 0209001
婦人服、ブティック: 0209002
呉服、和装小物: 0209003
紳士服: 0209004
子ども服、ベビー服: 0209005
マタニティー: 0209006
学生服、制服: 0209007
ジーンズショップ: 0209008
フォーマルウエア: 0209009
下着、ランジェリー: 0209010
毛皮: 0209011
靴、履物: 0209012
かばん、ハンドバッグ: 0209013
古着、リサイクル: 0209014
宝石、貴金属、真珠: 0209015
アクセサリー: 0209016
時計: 0209017
ファッション、アクセサリー、時計（その他）: 0209018
食品、食材: 0210
酒店: 0210001
米、米店: 0210002
鮮魚店: 0210003
果物、フルーツショップ: 0210004
卵、食肉: 0210005
健康食品: 0210006
海産物: 0210007
総菜: 0210008
自然食品: 0210009
コーヒー豆: 0210010
中華食材: 0210011
牛乳: 0210012
食品、食材（その他）: 0210013
通信販売: 0211
通信販売: 0211001
自動車、バイク: 0413
自動車整備: 0413001
板金、塗装: 0413002
レッカー: 0413003
ロードサービス: 0413004
電装品販売、修理: 0413005
自動車解体: 0413006
教習所: 0413007
洗車場: 0413008
車検代行: 0413009
新車販売: 0413010
中古車販売: 0413011
中古車買い取り: 0413012
カー用品: 0413013
中古部品: 0413014
オートバイ販売: 0413015
オートバイ修理: 0413016
自動車、バイク（その他）: 0413017
レジャー、エンタメ: 03
スポーツ: 0301
スポーツ施設: 0301001
野球場: 0301002
サッカー場: 0301003
ゴルフ場: 0301004
ゴルフ練習場: 0301005
テニスコート: 0301006
ボウリング場: 0301007
ダイビングショップ: 0301008
サーフショップ: 0301009
モータースポーツ: 0301010
スキー、スノーボード: 0301011
レンタルスキー、スノーボード: 0301012
スポーツ（その他）: 0301013
麻雀、ゲームセンター: 0302
麻雀: 0302002
ゲームセンター: 0302003
レジャー、趣味: 0303
遊園地、テーマパーク: 0303001
動物園: 0303002
水族館: 0303003
植物園: 0303004
海水浴場、遊泳場: 0303005
キャンプ場: 0303006
アウトドア: 0303007
ボート、ヨット: 0303008
釣り堀、釣り船: 0303009
プール: 0303010
観光農園: 0303011
ビリヤード: 0303012
レジャー、趣味（その他）: 0303013
ホテル、旅館: 0304
ホテル: 0304001
旅館: 0304002
民宿: 0304003
ビジネスホテル: 0304004
ペンション: 0304005
保養所: 0304006
公共の宿: 0304007
貸別荘: 0304008
ラブホテル: 0304009
宿泊施設（その他）: 0304010
エンタメ、映画館、美術館: 0305
映画館: 0305001
美術館: 0305002
博物館、科学館: 0305003
コンサートホール: 0305004
ライブハウス: 0305005
画廊: 0305006
公園: 0305007
交通、レンタカー: 0306
タクシー: 0306001
レンタカー: 0306002
運転代行サービス: 0306003
バス: 0306004
駐車場: 0306005
鉄道、駅: 0306006
海運、遊覧船: 0306007
航空会社: 0306008
交通、レンタカー（その他）: 0306009
旅行サービス: 0307
旅行代理店: 0307001
観光案内: 0307002
道の駅: 0307003
パーキングエリア: 0307004
ドライブイン: 0307005
旅行サービス（その他）: 0307006
パチンコ、パチスロ: 0308
パチンコ、パチスロ: 0308001
暮らし、生活: 04
交通、レンタカー: 0306
タクシー: 0306001
レンタカー: 0306002
運転代行サービス: 0306003
バス: 0306004
駐車場: 0306005
鉄道、駅: 0306006
海運、遊覧船: 0306007
航空会社: 0306008
交通、レンタカー（その他）: 0306009
病院、診療所: 0401
歯科: 0401001
内科: 0401002
小児科: 0401003
整形外科: 0401004
胃腸科: 0401005
外科: 0401006
眼科: 0401007
皮膚科: 0401008
耳鼻咽喉科: 0401009
産婦人科: 0401010
循環器科: 0401011
神経科: 0401012
リハビリテーション科: 0401013
歯科口腔外科: 0401014
泌尿器科: 0401015
肛門科: 0401016
呼吸器科: 0401017
心療内科: 0401018
アレルギー科: 0401019
脳神経外科: 0401020
美容外科: 0401021
リウマチ科: 0401022
神経内科: 0401023
形成外科: 0401024
放射線科: 0401025
麻酔科: 0401026
性病科: 0401027
消化器科: 0401028
精神科: 0401029
呼吸器外科: 0401030
心臓血管外科: 0401031
小児外科: 0401032
産科: 0401033
婦人科: 0401034
気管食道科: 0401035
矯正歯科: 0401036
小児歯科: 0401037
血液内科: 0401038
消化器外科: 0401039
腎臓内科: 0401040
肝臓科: 0401041
内視鏡科: 0401042
腹部外科: 0401043
胸部外科: 0401044
内分泌科: 0401045
人工透析科 : 0401046
人間ドック施設: 0401047
大学病院: 0401048
総合病院: 0401049
薬局: 0402
薬局: 0402001
マッサージ、整体、治療院: 0403
接骨、整骨、整復: 0403001
はり、きゅう: 0403002
整体、マッサージ: 0403003
カイロプラクティック: 0403004
視力回復センター: 0403005
マッサージ、整体、治療院（その他）: 0403006
介護、福祉: 0404
福祉施設: 0404001
老人福祉施設、有料老人ホーム: 0404002
在宅介護サービス: 0404003
介護施設: 0404004
グループホーム: 0404005
介護、福祉（その他）: 0404006
趣味、習い事: 0405
カルチャーセンター: 0405001
スポーツ教室: 0405002
スポーツクラブ: 0405003
ダイビングスクール: 0405004
スイミングスクール: 0405005
テニススクール: 0405006
空手道場: 0405007
陶芸教室: 0405008
絵画教室: 0405009
ガラス工芸教室: 0405010
華道教室: 0405011
茶道教室: 0405012
編み物教室: 0405013
ダンススクール、ダンス教室: 0405015
音楽教室: 0405016
ピアノ教室: 0405017
パソコン教室: 0405018
そろばん教室: 0405019
書道教室: 0405020
料理教室: 0405021
着付け教室: 0405022
バレエ教室: 0405023
写真、カメラ: 0405024
釣り: 0405025
楽器: 0405026
占い: 0405027
ダンス、舞踊: 0405028
囲碁、将棋: 0405029
模型: 0405030
趣味、習い事（その他）: 0405031
学校、大学、専門学校: 0406
小学校: 0406001
中学校: 0406002
高等学校: 0406003
高等専門学校: 0406004
大学: 0406005
専修学校、専門学校: 0406006
特別支援学校: 0406007
大学院: 0406008
短期大学: 0406009
通信制大学: 0406010
学校、大学、専門学校（その他）: 0406011
進学塾、予備校、各種学校: 0407
学習塾、進学教室: 0407001
予備校: 0407002
家庭教師: 0407003
英語学校: 0407004
英語以外の外国語学校: 0407005
日本語学校: 0407006
ビジネススクール: 0407007
通信教育: 0407008
フリースクール: 0407009
進学塾、予備校、各種学校（その他）: 0407010
保育園、幼稚園、育児: 0408
保育園: 0408001
幼稚園: 0408002
学童保育所: 0408003
託児所: 0408004
幼児教室: 0408005
児童福祉施設: 0408006
児童館: 0408007
ベビーシッター: 0408008
幼児教材: 0408009
ベビー用品: 0408010
保育園、幼稚園、育児（その他）: 0408011
住宅、不動産: 0409
不動産取引: 0409001
不動産鑑定: 0409002
アパート、マンション: 0409003
住宅展示場: 0409004
住宅販売: 0409005
アパート、マンション管理: 0409006
貸家: 0409007
住宅、不動産（その他）: 0409008
新築マンション: 0409009
新築一戸建て: 0409010
住宅設備: 0410
外構、造園業: 0410001
インテリア、リフォーム工事: 0410002
水道、配水管: 0410003
風呂釜、浴槽: 0410004
畳: 0410005
住宅設備、建設、建築工事: 0410006
住宅設備（その他）: 0410007
郵便局、宅配便: 0411
郵便、郵便局: 0411001
宅配便: 0411002
生活サービス: 0412
電話: 0412001
通信、インターネット: 0412002
テレビ、ラジオ: 0412003
新聞: 0412004
引越し: 0412005
ハウスクリーニング: 0412006
家電修理、取り付け: 0412007
便利業、代行サービス: 0412008
ごみ処理: 0412009
コインランドリー: 0412010
家具修理、再生: 0412011
ピアノ運送: 0412012
いす張り替え: 0412013
ピアノ調律: 0412014
白アリ駆除: 0412015
セキュリティー、防犯: 0412016
レンタルCD、DVD、ビデオ: 0412017
レンタルショップ: 0412018
ケーブルテレビ: 0412019
レンタルサイクル: 0412020
ガソリンスタンド: 0412021
鍵: 0412022
電気: 0412023
ガス: 0412024
靴修理: 0412025
リフォーム、仕立て直し: 0412026
クリーニング: 0412027
質店: 0412028
着付け: 0412029
貸衣装: 0412030
警備: 0412031
生活サービス（その他）: 0412032
自動車、バイク: 0413
自動車整備: 0413001
板金、塗装: 0413002
レッカー: 0413003
ロードサービス: 0413004
電装品販売、修理: 0413005
自動車解体: 0413006
教習所: 0413007
洗車場: 0413008
車検代行: 0413009
新車販売: 0413010
中古車販売: 0413011
中古車買い取り: 0413012
カー用品: 0413013
中古部品: 0413014
オートバイ販売: 0413015
オートバイ修理: 0413016
自動車、バイク（その他）: 0413017
結婚式場、結婚相談所: 0414
結婚式場: 0414001
結婚相談所: 0414002
ブライダルプロデュース: 0414003
葬祭、仏壇: 0415
葬祭業: 0415001
霊園: 0415002
墓石: 0415003
仏壇、仏具: 0415004
葬祭、仏壇（その他）: 0415005
銀行、保険、金融: 0416
保険業: 0416001
銀行: 0416002
信用金庫: 0416003
貸金業: 0416004
証券業: 0416005
労働金庫: 0416006
ゴルフ会員権: 0416007
銀行、保険、金融（その他）: 0416008
ペット、動物病院: 0417
動物病院、獣医師: 0417001
ペットサロン、トリミング: 0417002
ペットショップ、ペット用品: 0417003
ペットホテル: 0417004
ペット葬儀、ペット霊園: 0417005
調教師、ペットしつけ: 0417006
ペット、動物病院（その他）: 0417007
銭湯、浴場: 0418
銭湯: 0418001
スーパー銭湯: 0418002
健康ランド: 0418003
温泉浴場: 0418004
岩盤浴: 0418005
サウナ: 0418006
美容、サロン: 0419
美容院: 0419001
理容店: 0419002
かつら、毛髪業: 0419003
ヘアデザイナー: 0419004
エステティックサロン: 0419005
アロマセラピー: 0419006
ネイルサロン: 0419007
リフレクソロジー: 0419008
美容アドバイザー: 0419009
日焼けサロン: 0419010
まつげ、アイラッシュ: 0419011
リラクゼーション: 0419012
メイク: 0419013
美容、サロン（その他）: 0419014
専門職、弁護士、司法書士: 0420
税理士: 0420001
公認会計士: 0420002
司法書士: 0420003
行政書士: 0420004
弁護士: 0420005
社会保険労務士: 0420006
弁理士: 0420007
公証人: 0420008
経営コンサルタント: 0420009
ファイナンシャルプランナー: 0420010
信用調査、探偵: 0420011
翻訳、通訳: 0420012
専門職、弁護士、司法書士（その他）: 0420013
人材派遣: 0421
人材派遣: 0421001
人材紹介所: 0421002
看護師、家政婦紹介所: 0421003
人材派遣（その他）: 0421004
官公庁: 0422
国の機関: 0422001
都道府県機関: 0422002
市区町村機関: 0422003
官公庁（その他）: 0422004
公共サービス、各種団体: 0423
消防機関: 0423001
警察機関: 0423002
裁判所: 0423003
保健所: 0423004
職業安定所: 0423005
社会保険事務所: 0423006
公民館、集会所: 0423007
消費生活センター: 0423008
公共サービス、各種団体（その他）: 0423009
寺院、神社: 0424
寺院: 0424001
神社: 0424002
教会: 0424003
寺院、神社（その他）: 0424004
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;ツリー状に表示してもよかったかも。。。&lt;/p&gt;

&lt;p&gt;
Ref.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/genreCode.html&quot;&gt;Yahoo!デベロッパーネットワーク - YOLP（地図） - 業種マスター&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://developer.yahoo.com/ruby/ruby-json.html&quot;&gt;Yahoo Developer Network - Yahoo! Developer Network&lt;/a&gt; (Parse JSON using Ruby) ← 参考にしたコード&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;

</description><link>http://www.nilab.info/z3/20120501_01.html</link></item><item><category>book</category><guid>http://www.nilab.info/z3/20120430_01.html</guid><pubDate>Mon, 30 Apr 2012 00:00:00 +0900</pubDate><title>2012年4月に読んだ本</title><description>&lt;p&gt;この4月は、けっこうたくさんの本を読んだ。&lt;br /&gt;新しく読んだ書籍 (再読とか漫画とか雑誌とか雑誌っぽいムックは除く) が11冊。&lt;/p&gt;



&lt;h4&gt;坂崎 千春 / イラストのこと、キャラクターデザインのこと。&lt;/h4&gt;

&lt;p&gt;質感にこだわって手書き感を出したブルブル線が興味深い。&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;坂崎 千春 / イラストのこと、キャラクターデザインのこと。&quot; title=&quot;坂崎 千春 / イラストのこと、キャラクターデザインのこと。&quot; src=&quot;http://www.nilab.info/lab/hatena/f/20120403121104.jpg&quot; /&gt;&lt;/p&gt;

&lt;blockquote&gt;
suica のペンギン、カクカクシカジカ、クウネル君、チーバ君…など、老若男女だれもに親しまれ、愛されるキャラクターを描きつづけるイラストレーター・坂崎千春が語る、イラストのこと、キャラクターデザインのこと。&lt;br /&gt;
線・色・形といったイラストの技法、キャラクターを生み出すまでのプロセス、さらには仕事への取り組み方までを、かわいいキャラクターと素敵な写真と共に紹介します。ラフデザイン、レアグッズ写真、仕事場写真など貴重な資料も盛りだくさん。イラストレーターや、イラストレーターになりたい人はもちろん、キャラクターデザインについて知りたい企業の方も必読です。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4861007437/nilab-22/ref=nosim&quot;&gt;Amazon.co.jp： イラストのこと、キャラクターデザインのこと。: 坂崎 千春: 本&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;読書メモ ⇒ &lt;a href=&quot;http://www.nilab.info/wiki/Book4861007437.html&quot;&gt;イラストのこと、キャラクターデザインのこと。 (Book4861007437 - MemoWiki)&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;佐野 正弘 / 位置情報ビジネス 「位置ゲー」が火をつけた新しいマーケット&lt;/h4&gt;

&lt;p&gt;興味深い内容があれこれ詰まってた。&lt;br /&gt;インターネット＋モバイル(携帯電話、スマートフォン)＋位置情報(GPS機能)、位置ゲーの元祖、パケット定額制、ライフログ、ソーシャルゲームとしての位置ゲー、ローカライズの重要性、ケータイ文化圏とパソコン文化圏。&lt;/p&gt;

&lt;blockquote&gt;
コロニーな生活☆PLUS（コロプラ）、ケータイ国盗り合戦、しろつく、foursquare、ロケタッチ……。&lt;br /&gt;
&lt;br /&gt;
これらは「位置ゲー」「ジオメディア」などと呼ばれる新しいモバイル・コンテンツ、モバイル・サービス。&lt;br /&gt;
本書では、携帯電話やスマートフォン、GPS機能による位置情報、そしてインターネットの組み合わせによって誕生したコンテンツと、そのビジネスについて解説します。&lt;br /&gt;
&lt;br /&gt;
観光産業からは“期待の星”として、インターネット業界からは“ソーシャルの次”として注目を集める、位置情報ビジネス。&lt;br /&gt;
その広まりがいま、何をもたらそうとしているのか、本書を通して理解しましょう。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/483993830X/nilab-22/ref=nosim/&quot;&gt;Amazon.co.jp： 位置情報ビジネス ~「位置ゲー」が火をつけた新しいマーケット~ (マイコミ新書): 佐野 正弘: 本&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;読書メモ ⇒ &lt;a href=&quot;http://www.nilab.info/wiki/Book483993830X.html&quot;&gt;位置情報ビジネス 「位置ゲー」が火をつけた新しいマーケット (Book483993830X - MemoWiki)&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;ビューティフルビジュアライゼーション (Beautiful Visualization)&lt;/h4&gt;

&lt;p&gt;これはおもろ。さいきん流行りのインフォグラフィックスを含むような考え方や事例が紹介されている。データを視覚的表現に落としこむ。&lt;/p&gt;

&lt;blockquote&gt;
ビジュアライゼーションについてのエッセイ集。&lt;br /&gt;
ビジュアライゼーションは情報のグラフィカルな提示であり、その描写は複雑な情報を一目で明らかにしてくれます。地下鉄の路線図がよい例です。&lt;br /&gt;
情報をグラフィカルなイメージに変換することで、ただ単に美しいだけでなく、物事の真相と新しい解釈を効果的に生み出す細部の積み重なりを表現できます。&lt;br /&gt;
本書では学者や技術者、芸術家、分析の専門家など異なる立場でそれぞれのプロジェクトに取り組むその道のプロによるさまざまなビジュアライゼーション手法やツールを紹介します。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4873115043/nilab-22/ref=nosim/&quot;&gt;Amazon.co.jp： ビューティフルビジュアライゼーション: Julie Steele, Noah Iliinsky, 増井 俊之（監訳）, 牧野 聡: 本&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;読書メモ ⇒ &lt;a href=&quot;http://www.nilab.info/wiki/Book4873115043.html&quot;&gt;ビューティフルビジュアライゼーション (Beautiful Visualization) (Book4873115043 - MemoWiki)&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;図解 田中ウルヴェ京流 本番に強くなる コーピングの教科書&lt;/h4&gt;

&lt;p&gt;すごく読みやすい構成になってる。左のページに解説で、右のページに図解。&lt;/p&gt;

&lt;blockquote&gt;
コーピング(COPING)とは、英語のCOPE=「負けずに戦う」「難局に対処する」を語源に持つ、アメリカから上陸した今話題の認知行動療法です。つまり、自分の感情を上手にコントロールする技術を意味します。&lt;br /&gt;
&lt;br /&gt;
本書のゴールは、&lt;br /&gt;
1 ストレスとは何か? がわかること&lt;br /&gt;
↓&lt;br /&gt;
2 「自分の」ストレスとは何か? がわかること&lt;br /&gt;
↓&lt;br /&gt;
3 ストレスはあってもいい、むしろあった方がいいんだ、&lt;br /&gt;
ということが具体的にわかり、感じること&lt;br /&gt;
↓&lt;br /&gt;
4 日々起きるストレスの建設的、論理的、肯定的な対処法「コーピング」の方法がわかること&lt;br /&gt;
↓&lt;br /&gt;
5 ストレス対処によって、やる気を見つけること&lt;br /&gt;
↓&lt;br /&gt;
6 結果的にストレスを逆利用し、いざという本番に強くなること!&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4757305567/nilab-22/ref=nosim/&quot;&gt;Amazon.co.jp： コーピングの教科書: 田中ウルヴェ京: 本&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;読書メモ ⇒ &lt;a href=&quot;http://www.nilab.info/wiki/Book4757305567.html&quot;&gt;図解 田中ウルヴェ京流 本番に強くなる コーピングの教科書 (Book4757305567 - MemoWiki)&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;プロ論。&lt;/h4&gt;

&lt;p&gt;著名人50人分の働き方・生き方アドバイス集。B-ingに掲載された「巻頭インタビュー 21世紀を働く」を加筆・訂正した本。&lt;/p&gt;

&lt;blockquote&gt;
出版社からのコメント&lt;br /&gt;
仕事はしたい、でも会社や組織に縛られるのはイヤ。一生食べていけるような技術を身に付けたい、手に職つけたい、という若者が増えているという。中高年のサラリーマンでも、会社を辞めて、第2の人生は自分の好きなことをして食べていきたい、という人が多くなっている。そうした思いを実践し、生き生きと働いている著名人たちを紹介したのが本書です。彼らはどんなふうにそれを可能にしたのか。失敗、成功、挫折、恥かき体験、そして信念。そこに繰り広げられるのは、あなたや私と変わらない苦労であり、悔しさであり、喜びでした。でも、ほんの偶然の出会いやきっかけが、彼らを後押ししていく。それは、彼らにだけ特別起こったものではなく、きっと誰にでも起こるものなのだと思います。きっかけを探している人には誰にでも、、、。本書は、登場50人からあなたへの応援歌です。&lt;br /&gt;
みんながあなたに、「めげずに、好きなことやれよ」と呼びかけているのです。&lt;br /&gt;
&lt;br /&gt;
著者からのコメント&lt;br /&gt;
「毎日がつまらなく無気力に過ごしている」「先行きが不安でやる気が起きない」「会社に行きたくなくて遅刻ばかりしている」…。B-ing編集部には若いビジネスパーソンから、さまざまな悩みが寄せられます。しかしその一方で、「仕事で徹夜しても全然平気」「休みなんかいらない」「仕事というより遊んでいる感じ」「お金のために働いてるわけじゃない」…といった「仕事が面白くってしょうがない」人たちもいるんですよ。両者の違いはどこにあるのでしょうか？　その疑問を解消するために、B-ing編集部では「プロ論。」という連載を始めました。それから5年、計250人以上の一流といわれるプロに会って話を聞くうちに、「仕事を面白くする法則」に気づきました。それは…。本書を読んでいただければきっと分かると思います。 &lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4198619611/nilab-22/ref=nosim/&quot;&gt;Amazon.co.jp： プロ論。: B-ing編集部: 本&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;「努力も大事です。だって、運とタイミングがそろったときに準備ができてないと、それに乗れないですからね」&lt;/p&gt;
&lt;p&gt;「大事なのは、自分にとって何が幸せなのか、どうすればドキドキできるのかと、しっかり理解しておくことです。本当に何が好きなのかを考えてみる」&lt;/p&gt;
&lt;p&gt;「例えば今、ヒマワリが高値で取引されているとして、ヒマワリを今から植えたらみんなと同じです。待っているのは暴落しかない。必要なのは今、タンポポを植える勇気なんです」&lt;/p&gt;
&lt;p&gt;「大事なことは、自分自身が面白いと思えるかどうかです。そして誰かの役に立てるかということ」&lt;/p&gt;

&lt;p&gt;読書メモ ⇒ &lt;a href=&quot;http://www.nilab.info/wiki/Book4198619611.html&quot;&gt;プロ論。 (Book4198619611 - MemoWiki)&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;森 大二郎 / 検索エンジンはなぜ見つけるのか 知っておきたいウェブ情報検索の基礎知識&lt;/h4&gt;

&lt;blockquote&gt;
「第一線の開発者が書いた、深くて易しくて面白い検索エンジンの解説書」&lt;br /&gt;
――――　岡野原大輔氏（株式会社 プリファードインフラストラクチャー）&lt;br /&gt;
&lt;br /&gt;
◆地球上のウェブページから「本当に欲しかった情報」と人を結びつけるしくみを解説&lt;br /&gt;
情報社会の恩恵を受けるうえで今や欠かせない存在となった検索エンジンですが、&lt;br /&gt;
そのシステムを支える基本的なしくみや原理についてはそれほどよく知られていません。&lt;br /&gt;
&lt;br /&gt;
どうしたら世界中のウェブページの中から、もれなく一瞬で検索できるのか？&lt;br /&gt;
なぜわずか一言か二言の言葉を打ち込むだけで的確なページを見つけ出せるのか？&lt;br /&gt;
&lt;br /&gt;
日頃から検索エンジンを使っているエンドユーザーにこそ知ってほしいとの願いを込めて、&lt;br /&gt;
数式やコンピュータ用語の代わりに身近なものへの比喩を駆使し、徹底して平易な文章で、&lt;br /&gt;
しかし妥協なく基本原理から先端技術までを解説しています。&lt;br /&gt;
&lt;br /&gt;
＜本書の特徴＞&lt;br /&gt;
●「もれなく、すばやく、的確に」検索するためのさまざまな工夫がわかる&lt;br /&gt;
●「図書館」「本」「ライト」など身近な例で、本来複雑な検索エンジンのしくみがすらすらわかる&lt;br /&gt;
●「圧縮サフィックスアレイ」「協調フィルタリング」など先端技術の本質がわかる&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4822284611/nilab-22/ref=nosim/&quot;&gt;Amazon.co.jp： 検索エンジンはなぜ見つけるのか　―知っておきたいウェブ情報検索の基礎知識: 森大二郎: 本&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;読書メモ ⇒ &lt;a href=&quot;http://www.nilab.info/wiki/Book4822284611.html&quot;&gt;検索エンジンはなぜ見つけるのか 知っておきたいウェブ情報検索の基礎知識 (Book4822284611 - MemoWiki)&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;建設技術研究所 / 新 川なぜなぜおもしろ読本 ～防災から親水まで～&lt;/h4&gt;

&lt;blockquote&gt;
内容説明&lt;br /&gt;
一つのキーワードに関する様々な事柄をまとめた「なぜなぜおもしろ読本」シリーズの「川」版である。&lt;br /&gt;
「川」を仕事場としている技術者の著者らが、「川」に関する思いをこめて、Ｑ＆Ａ方式で平易に解説していく。日常何気なく接している「川」と、人との関わりが「目からウロコが落ちる」感覚で理解できる。&lt;br /&gt;
河川に関わる技術者や学生はもちろん、しっかりとした知識を持ちたい雑学好きの読者にも好適の書である。&lt;br /&gt;
&lt;br /&gt;
内容（「BOOK」データベースより）&lt;br /&gt;
川って何?から、ダムのメリット・デメリット、洪水からまちを守るためのさまざまな仕組みまで…意外と知らない、川にまつわる疑問や秘密をお話しします。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4764955237/nilab-22/ref=nosim/&quot;&gt;Amazon.co.jp： 新　川なぜなぜおもしろ読本: 防災から親水まで: 建設技術研究所: 本&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;読書メモ ⇒ &lt;a href=&quot;http://www.nilab.info/wiki/Book4764955237.html&quot;&gt;新 川なぜなぜおもしろ読本 ～防災から親水まで～ (Book4764955237 - MemoWiki)&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;吉谷 博光, 吉谷 桂子 / 花に囲まれて暮らす家 イギリスに住んで考えた家づくり&lt;/h4&gt;

&lt;blockquote&gt;
夫は「庭を美しく感じられる家」を妻は「家を美しく感じられる庭」を。こんな夫婦2人で考えたのは、どの部屋からも庭の花と緑が見える家。こだわって、コツコツつくりあげたイギリス風と和風が融合した、7つの庭の、眺めのいい家づくり。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4083330775/nilab-22/ref=nosim/&quot;&gt;Amazon.co.jp： 花に囲まれて暮らす家 イギリスに住んで考えた家づくり: 吉谷 博光, 吉谷 桂子: 本&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;読書メモ ⇒ &lt;a href=&quot;http://www.nilab.info/wiki/Book4083330775.html&quot;&gt;花に囲まれて暮らす家 イギリスに住んで考えた家づくり (Book4083330775 - MemoWiki)&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;佐々木 俊尚 / ケータイ小説家 ～憧れの作家10人が初めて語る“自分”～ &lt;/h4&gt;

&lt;blockquote&gt;
指を血だらけにしながらも、つらい体験や素直な気持ちをケータイに打ち込んでいく。書いているうちに、つらくて我慢できなくて、でも、読者の励ましでまた書き続ける。ケータイ小説家たちの純粋さ、一途な思い、そして読者との強い絆を、作家本人へのインタビューをもとに描き出します。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4093878161/nilab-22/ref=nosim/&quot;&gt;Amazon.co.jp： ケータイ小説家―憧れの作家10人が初めて語る“自分”: 佐々木 俊尚: 本&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ref. &lt;a href=&quot;http://www.nilab.info/wiki/Book4093878161.html&quot;&gt;ケータイ小説家 ～憧れの作家10人が初めて語る“自分”～ (Book4093878161 - MemoWiki)&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;パピエラボ / 紙と活版印刷とデザインのこと&lt;/h4&gt;

&lt;blockquote&gt;
3人の紙好きが出会ってはじめたお店「パピエラボ」。居心地のよい店内には紙にまつわるプロダクトや作家の作品が並べられ、活版印刷の窓口もあります。自由気侭にはじまったお店にはお客さん、作家さん、印刷所や工場の職人さんとの楽しい出会いがあり、そんな人たちとの記録のような本です。クリエイター注目の、古くて新しい活版印刷。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4894448564/nilab-22/ref=nosim/&quot;&gt;Amazon.co.jp： 紙と活版印刷とデザインのこと: パピエラボ: 本&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ref. &lt;a href=&quot;http://www.nilab.info/wiki/Book4894448564.html&quot;&gt;紙と活版印刷とデザインのこと (Book4894448564 - MemoWiki)&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;竹内 修二 / カラー図解 人体解剖の基本がわかる事典&lt;/h4&gt;

&lt;p&gt;いまのところ人体解剖する予定は無いけど、なんとなく。&lt;/p&gt;

&lt;blockquote&gt;
医療・薬学関係を目指す人、必読の１冊！ 人体の部位ごとに、名称・構造・機能などをわかりやすく解説しています。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.seitosha.co.jp/255_3631.html&quot;&gt;医学・健康・看護書 ＞ 図解カラー図解シリーズ ＞ カラー図解　人体解剖の基本がわかる事典&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ref. &lt;a href=&quot;http://www.nilab.info/wiki/Book4791618343.html&quot;&gt;カラー図解 人体解剖の基本がわかる事典 (Book4791618343 - MemoWiki)&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;以下、再読とか書籍っぽくないのとか。&lt;/p&gt;



&lt;h4&gt;BONte 008&lt;/h4&gt;

&lt;p&gt;&lt;img alt=&quot;BONte 008&quot; title=&quot;BONte 008&quot; src=&quot;http://www.nilab.info/lab/hatena/f/20120425231453.jpg&quot; /&gt;&lt;/p&gt;

&lt;blockquote&gt;
『ちびぎゃら ななっ』のラフたくさん。築地市場と寿司と鍋。猫ボンジロウin病院。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://mono.hatena.ne.jp/mono/wttHEAioNm#/nilab/wttHEAjg6T&quot;&gt;BONte 008 characte illustration &amp; more - はてなモノリス&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;



&lt;h4&gt;神田 敏 / Twitter革命&lt;/h4&gt;

&lt;p&gt;これは2年ぐらい前に読み終わっていたんだけど、ひさしぶりに軽く読み返して、読書メモを書いた。&lt;/p&gt;

&lt;p&gt;Twitterの歴史・特徴・機能・活用法や、Twitter界で実際に起きた出来事など、いい感じにまとまっている良書。&lt;/p&gt;

&lt;p&gt;読書メモ ⇒ &lt;a href=&quot;http://www.nilab.info/wiki/Book4797357398.html&quot;&gt;Twitter革命 #twrevo (Book4797357398 - MemoWiki)&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;勝間 和代 ＋ 広瀬 香美 / つながる力 ツイッターは「つながり」の何を変えるのか?&lt;/h4&gt;

&lt;p&gt;2年ほど前に読んだ本。ちょっと引っ張りだしてきて軽く再読。&lt;/p&gt;

&lt;blockquote&gt;
「ツイッターって何?」「ミクシィや2ちゃんねるとどこがちがう?」「皆どうして夢中になるの?」ネット上を震憾させた凸凹コンビが、そんな疑問に全てお答えします。ビズ・ストーン(twitter共同創業者)×勝間和代、スペシャル対談&amp;amp;本社訪問レポートを特別収録。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4887597746/nilab-22/ref=nosim&quot;&gt;Amazon.co.jp： つながる力 ツイッターは「つながり」の何を変えるのか?: 勝間 和代, 広瀬 香美: 本&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;



&lt;h4&gt;週刊 東洋経済 2011/8/27号 世界暴落＆10年後に食える仕事、食えない仕事&lt;/h4&gt;

&lt;p&gt;特集「10年後に食える仕事 食えない仕事」が気になって読んでみたけどうーん。。。&lt;/p&gt;

&lt;p&gt;読書メモ ⇒ &lt;a href=&quot;http://www.nilab.info/wiki/BookB005GFGOOA.html&quot;&gt;週刊 東洋経済 2011/8/27号 世界暴落＆10年後に食える仕事、食えない仕事 (BookB005GFGOOA - MemoWiki)&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;その他、漫画や読み返した本や雑誌などあれこれ&lt;/h4&gt;

&lt;blockquote&gt;
タマとかDNAとか。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://mono.hatena.ne.jp/mono/wttDXMxQpm#/nilab/wttGnwstS4&quot;&gt;ジョジョリオン 2 ジャンプコミックス / 荒木飛呂彦 - はてなモノリス&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
ワーゲンバスいいなぁ(´Д` )&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://mono.hatena.ne.jp/mono/wtpwcZ3GGw#/nilab/wttGryM1Ei&quot;&gt;VW BUS MEMORIES―LET’S PLAY VWs PRESENTS (NEKO MOOK 1114) - はてなモノリス&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
2001年発行のベストセラー。手元のは第24刷。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://mono.hatena.ne.jp/mono/wttr9hce77#/nilab/wtkJktDTKj&quot;&gt;向山淳子他 / ビッグ・ファット・キャットの世界一簡単な英語の本 〔Book〕 - はてなモノリス&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
競争原理は全体が右肩上がりでないと成り立たない。糖度70%を55%の本格的な餡に。AKB上位30人アンケート。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://mono.hatena.ne.jp/mono/wttGsMsE2m#/nilab/wttGsMtsdx&quot;&gt;AERA &apos;10.9.6 - はてなモノリス&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
スキマスイッチ再始動。セーフティネットを標榜する天下り天国のURの高家賃。建設不動産企業の倒産ラッシュ。オバマを超えるファーストレディー。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://mono.hatena.ne.jp/mono/wtkJmFfEFG#/nilab/wtkJmFgvxn&quot;&gt;AERA &apos;09.2.16 - はてなモノリス&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
こういうやり方は嫌われる。「ヘビーユーザーの10代や20代の若者は毎日数時間フェースブックを利用しており、これがなくなれば困るはずだ。彼らが月5ドルを出し渋るとは考えにくい」&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://mono.hatena.ne.jp/mono/wttGtBy4pb#/nilab/wttGtByQsa&quot;&gt;ニューズウィーク日本版 2009年 8・12/19 夏期合併号 - はてなモノリス&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
家の中にクライミングウォール。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://mono.hatena.ne.jp/mono/wttA3Qcnq4#/nilab/wttAgu2hpd&quot;&gt;SUMAI no SEKKEI 住まいの設計 No.633 MAR./APR. 2011 - はてなモノリス&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
発行日は2010年1月19日。北海道から沖縄、ネットショップまで703店が紹介されてる。エリア別の地図もある。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://mono.hatena.ne.jp/mono/wto5UUDyb4#/nilab/wto5UUE2uC&quot;&gt;全国インテリアショップガイド 最新版 (NEKO MOOK 1452) - はてなモノリス&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
懐かしいのを引っ張りだしてみた。重複したコード。メソッドの抽出。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://mono.hatena.ne.jp/mono/wtua8mYGPp#/nilab/wttCp1sWbn&quot;&gt;リファクタリング―プログラムの体質改善テクニック (Object Technology Series) - はてなモノリス&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
人気の高い動画コンテンツはダンスや歌など言葉を介さない直接的な身体表現。一過性のものにしたくなくて、サイドバーに設置できる時計にしたユニクロック。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://mono.hatena.ne.jp/mono/wtjFkv3Hr2#/nilab/wttCZyTdxJ&quot;&gt;プレジデント 2009年 1.12号 - はてなモノリス&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
学歴格差、年収格差、地域格差。過剰なマイナスの情報が子どもに人生を諦めさせる。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://mono.hatena.ne.jp/mono/wtjFkv3Hr2#/nilab/wtkESZRsQp&quot;&gt;プレジデント 2009年 1.12号 - はてなモノリス&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
なぜ太っている人ほど「借金体質」なのか。肥満は借金そのもの。食べる楽しみを優先したことで背負った健康上の負債。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://mono.hatena.ne.jp/mono/wtjFkv3Hr2#/nilab/wttD1fT99d&quot;&gt;プレジデント 2009年 1.12号 - はてなモノリス&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
「藍と白を基調にして夏ならではの涼やかなデコレーションを」「和洋を超える、ブルー＆ホワイトの美しさ」&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://mono.hatena.ne.jp/mono/wttKcZuJGW#/nilab/wtkMR37KMP&quot;&gt;エル・デコ ELLE DECO No.31 AUGUST 1997 - はてなモノリス&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
雑誌で気に入った写真をどんどんスクラップしていくと自分の好みとこう暮らしたいというアイデアがはっきりしてくる。テレンス・コンラン氏。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://mono.hatena.ne.jp/mono/wttKcZuJGW#/nilab/wttKXz8a7s&quot;&gt;エル・デコ ELLE DECO No.31 AUGUST 1997 - はてなモノリス&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;4月はたくさん読みすぎた感。。。&lt;/p&gt;

&lt;p&gt;
参考までに3月分はこちら。&lt;br /&gt;
⇒ &lt;a href=&quot;http://www.nilab.info/z3/20120402_03.html&quot;&gt;[ヅ] 2012年3月に読んだ本&lt;/a&gt;
&lt;/p&gt;
</description><link>http://www.nilab.info/z3/20120430_01.html</link></item><item><category>twitter</category><guid>http://www.nilab.info/z3/20120429_03.html</guid><pubDate>Sun, 29 Apr 2012 00:00:00 +0900</pubDate><title>Twitter「技術的な問題が発生しています」</title><description>&lt;p&gt;ロボットの手が取れちゃってる。。。 (グロ注意)&lt;/p&gt;

&lt;p&gt;&lt;img width=&quot;600&quot; height=&quot;341&quot; src=&quot;/f0/0/20120429_twitter_error.jpg&quot; alt=&quot;Twitter「技術的な問題が発生しています」&quot; title=&quot;Twitter「技術的な問題が発生しています」&quot; /&gt;&lt;/p&gt;

&lt;p&gt;
Ref.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nilab.info/z3/20070421_zlashdot_000586.html&quot;&gt;[ヅ] くすくすとさえずり続ける Twitter のねこにゃん画像&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nilab.info/z3/20070513_zlashdot_000606.html&quot;&gt;[ヅ] くすくすとさえずり続ける Twitter の 「ちょ、待てよ!」 ねこにゃん画像&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nilab.info/z3/20070817_zlashdot_000718.html&quot;&gt;[ヅ] Twitter: Napping! のネコ画像&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nilab.info/z3/20071001_zlashdot_000773.html&quot;&gt;[ヅ] Twitter: Bring that beat back! 画像&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nilab.info/z3/20110614_02.html&quot;&gt;[ヅ] Twitter Over Capacity と昔のネコ画像 (=^・・^=)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
</description><link>http://www.nilab.info/z3/20120429_03.html</link></item><item><category>everytrail</category><guid>http://www.nilab.info/z3/20120429_02.html</guid><pubDate>Sun, 29 Apr 2012 00:00:00 +0900</pubDate><title>EveryTrailのウィジェット</title><description>&lt;p&gt;ページのレイアウトが壮大に崩れているように見えるけど・・・&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;Multiple Trips Widget - Share your recent, popular, or favorite trips&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;border:1px solid #8D9D3A; width:190px;background-color:#ffffff; &quot;&gt;	&lt;div style=&quot;text-align: center; border-bottom:1px solid #DADADA;line-height:18px;color:#424241&quot;&gt;		&lt;b&gt;I&amp;#8217;m on&lt;/b&gt; &lt;A href=&quot;http://www.everytrail.com&quot;&gt;&lt;img src=&quot;http://www.everytrail.com/images/badge_ETlogo.png&quot; border=&quot;0&quot; title=&quot;EveryTrail: Map Your Trips&quot; alt=&quot;EveryTrail: Map Your Trips, Find local hikes&quot; style=&quot;vertical-align:top&quot;&gt;&lt;/a&gt;	&lt;/div&gt;	&lt;div  style=&quot;padding: 4px&quot;&gt;		&lt;div style=&quot;float: left; margin-right: 5px&quot;&gt;			&lt;img src=&quot;http://images.everytrail.com/userpics/493831-z3_profile.jpg&quot; width=&quot;50&quot;&gt;		&lt;/div&gt;		&lt;div style=&quot;font-size:12px&quot;&gt;		nilab&lt;br&gt;					&lt;span id=&quot;et-num-trips&quot;&gt;1 trip&lt;/span&gt;				&lt;br&gt;		&lt;a href=&quot;http://www.everytrail.com/profile.php?user_id=493831&quot; style=&quot;text-decoration:none&quot;&gt;see my profile&lt;/a&gt;		&lt;/div&gt;		&lt;div style=&quot;clear:both&quot;&gt;&lt;/div&gt;		&lt;/div&gt;			&lt;div style=&quot;background-color:#AABF4A;padding:2px;text-align:center;font-size:12px; color:#FFFFFF;font-weight:bold;padding:2px;&quot;&gt;									Popular trips							 by nilab	&lt;/div&gt;				&lt;div&gt;							&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.everytrail.com/user/badgetrips?user_id=493831&amp;order=popularity&quot;/&gt;					&lt;/div&gt;		&lt;div style=&quot;padding:4px;background-color:#DADADA;text-align:center&quot;&gt;&lt;b&gt;Check out EveryTrail &lt;a href=&quot;http://www.everytrail.com/guides&quot; style=&quot;font-weight:bold&quot;&gt;mobile travel guides&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;	&lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;
Ref.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.everytrail.com/&quot;&gt;EveryTrail - Travel Community, iPhone Guides for Sightseeing, Hiking, Walking Tours and more&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.everytrail.com/profile.php?user_id=493831&quot;&gt;nilab User Profile | EveryTrail&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
</description><link>http://www.nilab.info/z3/20120429_02.html</link></item><item><category>everytrail</category><category>iphone</category><category>gps</category><guid>http://www.nilab.info/z3/20120429_01.html</guid><pubDate>Sun, 29 Apr 2012 00:00:00 +0900</pubDate><title>EveryTrailを使ってみた</title><description>&lt;p&gt;iPhone 4GS に EveryTrail アプリをインストールして使ってみた。&lt;/p&gt;

&lt;p&gt;EveryTrail アプリはGPS等による位置情報を取得することができるロガーアプリ。取得したログは &lt;a href=&quot;http://www.everytrail.com/&quot;&gt;EveryTrail&lt;/a&gt; サイトに投稿して公開することができる。また、アプリ内で写真を撮影することにより、写真と位置情報を紐付けることも可能。&lt;/p&gt;

&lt;p&gt;EveryTrail に投稿すると、手軽にブログ等で地図と写真を公開できる。いわゆるブログ貼り付け機能。&lt;/p&gt;

&lt;p&gt;以下は、愛知県一宮市にある &lt;a href=&quot;http://www.kisosansenkoen.go.jp/~tower138/m138twinarch.html&quot;&gt;国営木曽三川公園 | ツインアーチ138(138タワーパーク)&lt;/a&gt; に行った際のログ(貼り付け方法は2パターン)。&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;Flash map with photos for websites &amp;amp; blogs&lt;/b&gt;&lt;br /&gt;
&lt;h2&gt;&lt;a href=&quot;http://www.everytrail.com/view_trip.php?trip_id=1549967&quot;&gt;138 Tower Park&lt;/a&gt;&lt;/h2&gt; &lt;object width=&quot;400&quot; height=&quot;300&quot; codebase=&quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.everytrail.com/swf/widget.swf&quot;/&gt;&lt;param name=&quot;FlashVars&quot; value=&quot;units=english&amp;mode=0&amp;key=ABQIAAAA_7wvFEi7gGngCZrOfos63hSN1xyBy-BzBD--25ZLXpVi3GfbehTQlZCXdpUFII2A5CGeExVTCyX1ow&amp;tripId=1549967&amp;startLat=35.35736903&amp;startLon=136.80567652&amp;mapType=Map&amp;&quot;&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; src=&quot;http://www.everytrail.com/swf/widget.swf&quot; quality=&quot;high&quot; width=&quot;400&quot; height=&quot;300&quot; FlashVars=&quot;units=english&amp;mode=0&amp;key=ABQIAAAA_7wvFEi7gGngCZrOfos63hSN1xyBy-BzBD--25ZLXpVi3GfbehTQlZCXdpUFII2A5CGeExVTCyX1ow&amp;tripId=1549967&amp;startLat=35.35736903&amp;startLon=136.80567652&amp;mapType=Map&amp;&quot; play=&quot;true&quot;  quality=&quot;high&quot;  pluginspage=&quot;http://www.adobe.com/go/getflashplayer&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;EveryTrail - Find &lt;a href=&quot;http://www.everytrail.com/best/hiking-california&quot;&gt;trail maps for California&lt;/a&gt; and beyond&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.everytrail.com/trip/widgetimpression?trip_id=1549967&quot;&gt;&lt;/script&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;non-flash map for websites &amp;amp; blogs&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.everytrail.com/view_trip.php?trip_id=1549967&quot;&gt;138 Tower Park at EveryTrail&lt;/a&gt;&lt;br&gt;&lt;iframe src=&quot;http://www.everytrail.com/iframe2.php?trip_id=1549967&amp;width=400&amp;height=300&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; width=&quot;400&quot; height=&quot;300&quot;&gt;&lt;/iframe&gt;EveryTrail - Find &lt;a href=&quot;http://www.everytrail.com/best/hiking-california&quot;&gt;trail maps for California&lt;/a&gt; and beyond
&lt;/p&gt;

&lt;p&gt;EveryTrail 本家サイトでも投稿した内容を閲覧することができる。以下、スクリーンショット。&lt;/p&gt;

&lt;p&gt;地図と写真。&lt;br /&gt;&lt;img width=&quot;600&quot; height=&quot;502&quot; src=&quot;/f0/0/20120429_everytrail_1.jpg&quot; alt=&quot;138 Tower Park - Tower and Park trip | EveryTrail&quot; title=&quot;138 Tower Park - Tower and Park trip | EveryTrail&quot; /&gt;&lt;/p&gt;
&lt;p&gt;航空写真と写真。&lt;br /&gt;&lt;img width=&quot;600&quot; height=&quot;502&quot; src=&quot;/f0/0/20120429_everytrail_2.jpg&quot; alt=&quot;138 Tower Park - Tower and Park trip | EveryTrail&quot; title=&quot;138 Tower Park - Tower and Park trip | EveryTrail&quot; /&gt;&lt;/p&gt;
&lt;p&gt;高度(標高)や移動速度のグラフ。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_3.jpg&quot; alt=&quot;138 Tower Park - Tower and Park trip | EveryTrail&quot; title=&quot;138 Tower Park - Tower and Park trip | EveryTrail&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Google Maps API の地形レイヤーも見れる。ズームするとこんなダークなデザインに。&lt;br /&gt;&lt;img width=&quot;600&quot; height=&quot;503&quot; src=&quot;/f0/0/20120429_everytrail_4.jpg&quot; alt=&quot;138 Tower Park - Tower and Park trip | EveryTrail&quot; title=&quot;138 Tower Park - Tower and Park trip | EveryTrail&quot; /&gt;&lt;/p&gt;

&lt;p&gt;EveryTrailにログインするとGPXやKML(KMZ)ファイルをダウンロードすることができる。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_5.png&quot; alt=&quot;Export This Trip : Download to view 3D in Google Earth : Download GPX for your GPS&quot; title=&quot;Export This Trip : Download to view 3D in Google Earth : Download GPX for your GPS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;ダウンロードURLは&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
http://www.everytrail.com/downloadKML.php?trip_id=1549967
&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code&gt;
http://www.everytrail.com/downloadGPX.php?trip_id=1549967
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;となっている。&lt;/p&gt;

&lt;p&gt;一応、ダウンロードしてここに置いておく。&lt;/p&gt;

&lt;p&gt;
KML: &lt;a href=&quot;/f0/0/20120429_1549967.kmz&quot;&gt;1549967.kmz&lt;/a&gt;&lt;br /&gt;
GPX: &lt;a href=&quot;/f0/0/20120429_1549967.gpx&quot;&gt;1549967.gpx&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;ダウンロードしたKMLをGoogle Earthで見るとこんな感じ。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_7.jpg&quot; alt=&quot;138 Tower Park - Tower and Park trip | EveryTrail&quot; title=&quot;138 Tower Park - Tower and Park trip | EveryTrail&quot; /&gt;&lt;/p&gt;

&lt;p&gt;
Ref.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.everytrail.com/&quot;&gt;EveryTrail - Travel Community, iPhone Guides for Sightseeing, Hiking, Walking Tours and more&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.everytrail.com/profile.php?user_id=493831&quot;&gt;nilab User Profile | EveryTrail&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.everytrail.com/view_trip.php?trip_id=1549967&quot;&gt;138 Tower Park - Tower and Park trip | EveryTrail&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;

&lt;h4&gt;せっかくなので今回のログに使った写真をずらずらっと&lt;/h4&gt;

&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_01.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_02.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_03.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_04.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_05.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_06.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_07.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_08.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_09.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_10.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_11.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_12.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_13.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_14.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_15.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_16.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_17.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120429_everytrail_photo_18.jpg&quot; alt=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; title=&quot;国営木曽三川公園 138タワーパーク ツインアーチ138&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ref. &lt;a href=&quot;http://www.kisosansenkoen.go.jp/~tower138/m138twinarch.html&quot;&gt;国営木曽三川公園 | ツインアーチ138(138タワーパーク)&lt;/a&gt;&lt;/p&gt;
</description><link>http://www.nilab.info/z3/20120429_01.html</link></item><item><category>agg</category><category>cairo</category><guid>http://www.nilab.info/z3/20120427_01.html</guid><pubDate>Fri, 27 Apr 2012 00:00:00 +0900</pubDate><title>AGGでPNG画像を拡大(bilinear補間とnearest neighbor補間)</title><description>&lt;p&gt;AGG (Anti-Grain Geometry) には PNG ファイルを読み書きする機能がないので、その部分は Cairo を使用。&lt;/p&gt;

&lt;p&gt;C++によるサンプルコード。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;math.h&amp;gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;cairo/cairo.h&amp;gt;
#include &amp;lt;agg_rendering_buffer.h&amp;gt;
#include &amp;lt;agg_rasterizer_scanline_aa.h&amp;gt;
#include &amp;lt;agg_ellipse.h&amp;gt;
#include &amp;lt;agg_trans_affine.h&amp;gt;
#include &amp;lt;agg_conv_transform.h&amp;gt;
#include &amp;lt;agg_span_image_filter_rgb.h&amp;gt;
#include &amp;lt;agg_span_image_filter_rgba.h&amp;gt;
#include &amp;lt;agg_span_image_filter_gray.h&amp;gt;
#include &amp;lt;agg_pixfmt_rgba.h&amp;gt;
#include &amp;lt;agg_scanline_u.h&amp;gt;
#include &amp;lt;agg_scanline_p.h&amp;gt;
#include &amp;lt;agg_renderer_scanline.h&amp;gt;
#include &amp;lt;agg_span_allocator.h&amp;gt;
#include &amp;lt;agg_span_interpolator_linear.h&amp;gt;
#include &amp;lt;agg_image_accessors.h&amp;gt;
#include &amp;lt;agg_path_storage.h&amp;gt;
#include &amp;lt;agg_conv_stroke.h&amp;gt;
 
typedef agg::pixfmt_rgba32 pixfmt;
//typedef agg::pixfmt_rgba32_pre pixfmt;
 
static agg::rendering_buffer* create_rendering_buffer(cairo_surface_t&amp;amp; src){
  unsigned char* d = cairo_image_surface_get_data(&amp;amp;src);
  int w = cairo_image_surface_get_width(&amp;amp;src);
  int h = cairo_image_surface_get_height(&amp;amp;src);
  int s = cairo_image_surface_get_stride(&amp;amp;src);
  agg::rendering_buffer* rb = new agg::rendering_buffer();
  rb-&amp;gt;attach(d, w, h, s);
  return rb;
}
 
static void draw_background_image(agg::renderer_base&amp;lt;pixfmt&amp;gt;&amp;amp; rbase, double scale){
 
  agg::renderer_scanline_aa_solid&amp;lt;agg::renderer_base&amp;lt;pixfmt&amp;gt; &amp;gt; rs(rbase);
 
  agg::trans_affine mtx;
  mtx *= agg::trans_affine_scaling(scale, scale);
 
  // fill polygon
  {
    agg::path_storage path;
    path.move_to(200, 50);
    path.line_to(100, 200);
    path.line_to(100, 250);
    path.line_to(150, 200);
    path.close_polygon();
    agg::rasterizer_scanline_aa&amp;lt;&amp;gt; ras;
    agg::scanline_p8 sl;
    // affine transform
    agg::conv_transform&amp;lt;agg::path_storage, agg::trans_affine&amp;gt; trans(path, mtx);
    ras.add_path(trans);
    rs.color(agg::rgba8(0,255,0,100));
    agg::render_scanlines(ras, sl, rs);
  }
 
  // draw polygon
  {
    agg::path_storage path;
    path.move_to(150, 50);
    path.line_to(150, 200);
    path.line_to(300, 150);
    path.close_polygon();
    agg::conv_stroke&amp;lt;agg::path_storage&amp;gt; stroke(path);
    stroke.width(5.0);
    stroke.line_cap(agg::butt_cap);
    stroke.line_join(agg::miter_join);
    stroke.inner_join(agg::inner_miter);
    stroke.miter_limit(4.0);
    agg::rasterizer_scanline_aa&amp;lt;&amp;gt; ras;
    agg::scanline_p8 sl;
    // affine transform
    agg::conv_transform&amp;lt;agg::conv_stroke&amp;lt;agg::path_storage&amp;gt;, agg::trans_affine&amp;gt; trans(stroke, mtx);
    ras.add_path(trans);
    rs.color(agg::rgba8(0,0,255,100));
    agg::render_scanlines(ras, sl, rs);
  }
 
  // draw polyline
  {
    agg::path_storage path;
    path.move_to(100, 100);
    path.line_to(200, 100);
    path.line_to(200, 200);
    agg::conv_stroke&amp;lt;agg::path_storage&amp;gt; stroke(path);
    stroke.width(10.0);
    stroke.line_cap(agg::round_cap);
    stroke.line_join(agg::round_join);
    stroke.inner_join(agg::inner_round);
    agg::rasterizer_scanline_aa&amp;lt;&amp;gt; ras;
    agg::scanline_p8 sl;
    // affine transform
    agg::conv_transform&amp;lt;agg::conv_stroke&amp;lt;agg::path_storage&amp;gt;, agg::trans_affine&amp;gt; trans(stroke, mtx);
    ras.add_path(trans);
    rs.color(agg::rgba8(255,0,0,100));
    agg::render_scanlines(ras, sl, rs);
  }
}
 
static void draw_image_bilinear(agg::renderer_base&amp;lt;pixfmt&amp;gt;&amp;amp; rbase, agg::rendering_buffer&amp;amp; image, double dx, double dy, double scale){
 
  pixfmt pixf_img(image);
 
  agg::trans_affine src_mtx;
  src_mtx *= agg::trans_affine_scaling(scale);
  src_mtx *= agg::trans_affine_translation(dx, dy);
 
  agg::trans_affine img_mtx;
  img_mtx *= agg::trans_affine_scaling(scale);
  img_mtx *= agg::trans_affine_translation(dx, dy);
  img_mtx.invert();
 
  agg::span_allocator&amp;lt;agg::rgba8&amp;gt; sa;
 
  typedef agg::span_interpolator_linear&amp;lt;&amp;gt; interpolator_type;
  interpolator_type interpolator(img_mtx);
 
  typedef agg::span_image_filter_rgba_bilinear_clip&amp;lt;pixfmt, interpolator_type&amp;gt; span_gen_type;
  span_gen_type sg(pixf_img, agg::rgba(1.0, 1.0, 1.0, 0.0), interpolator);
 
  agg::rasterizer_scanline_aa&amp;lt;&amp;gt; ras;
  agg::scanline_u8 sl;
  
  agg::path_storage ps;
  ps.move_to(0, 0);
  ps.line_to(image.width(), 0);
  ps.line_to(image.width(), image.height());
  ps.line_to(0, image.height());
  ps.close_polygon();
 
  agg::conv_transform&amp;lt;agg::path_storage&amp;gt; tr(ps, src_mtx);
  ras.add_path(tr);
 
  agg::render_scanlines_aa(ras, sl, rbase, sa, sg);
}
 
static void draw_image_nearest_neighbor(agg::renderer_base&amp;lt;pixfmt&amp;gt;&amp;amp; rbase, agg::rendering_buffer&amp;amp; image, double dx, double dy, double scale){
 
  pixfmt pixf_img(image);
 
  agg::trans_affine src_mtx;
  src_mtx *= agg::trans_affine_scaling(scale);
  src_mtx *= agg::trans_affine_translation(dx, dy);
 
  agg::trans_affine img_mtx;
  img_mtx *= agg::trans_affine_scaling(scale);
  img_mtx *= agg::trans_affine_translation(dx, dy);
  img_mtx.invert();
 
  agg::span_allocator&amp;lt;agg::rgba8&amp;gt; sa;
 
  typedef agg::span_interpolator_linear&amp;lt;&amp;gt; interpolator_type;
  interpolator_type interpolator(img_mtx);
 
  typedef agg::image_accessor_clip&amp;lt;pixfmt&amp;gt; img_src_type;
  img_src_type img_src(pixf_img, agg::rgba(1.0, 1.0, 1.0, 0.0));
 
  typedef agg::span_image_filter_rgba_nn&amp;lt;img_src_type, interpolator_type&amp;gt; span_gen_type;
  span_gen_type sg(img_src, interpolator);
 
  agg::rasterizer_scanline_aa&amp;lt;&amp;gt; ras;
  agg::scanline_u8 sl;
  
  agg::path_storage ps;
  ps.move_to(0, 0);
  ps.line_to(image.width(), 0);
  ps.line_to(image.width(), image.height());
  ps.line_to(0, image.height());
  ps.close_polygon();
 
  agg::conv_transform&amp;lt;agg::path_storage&amp;gt; tr(ps, src_mtx);
  ras.add_path(tr);
 
  agg::render_scanlines_aa(ras, sl, rbase, sa, sg);
}
 
static void draw_images(std::string outfile, void (*draw_image_func)(agg::renderer_base&amp;lt;pixfmt&amp;gt;&amp;amp;, agg::rendering_buffer&amp;amp;, double, double, double)){
 
  int width = 600;
  int height = 400;
  int bytes_per_pixel = 4;
 
  // canvas
  cairo_surface_t* surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height);
  unsigned char* data = cairo_image_surface_get_data(surface);
  agg::rendering_buffer rbuf;
  rbuf.attach(data, width, height, width * bytes_per_pixel);
  pixfmt pixf(rbuf);
  agg::renderer_base&amp;lt;pixfmt&amp;gt; rbase(pixf);
  rbase.clear(agg::rgba8(255, 255, 255, 255));
 
  // image1: load png image
  std::string image1_path = &amp;quot;input1.png&amp;quot;;
  cairo_surface_t* image1_surface = cairo_image_surface_create_from_png(image1_path.c_str());
  agg::rendering_buffer* rbuf_img1 = create_rendering_buffer(*image1_surface);
  
  // image2: load png image
  std::string image2_path = &amp;quot;input2.png&amp;quot;;
  cairo_surface_t* image2_surface = cairo_image_surface_create_from_png(image2_path.c_str());
  agg::rendering_buffer* rbuf_img2 = create_rendering_buffer(*image2_surface);
 
  // background image
  draw_background_image(rbase, 1.0);
  draw_background_image(rbase, 2.0);
 
  // drawing images
  draw_image_func(rbase, *rbuf_img1,  10,  20, 1.0);
  draw_image_func(rbase, *rbuf_img2,  30,  40, 1.0);
  draw_image_func(rbase, *rbuf_img1,  50,  60, 1.5);
  draw_image_func(rbase, *rbuf_img2,  70,  80, 1.5);
  draw_image_func(rbase, *rbuf_img1,  90, 100, 2.0);
  draw_image_func(rbase, *rbuf_img2, 110, 120, 2.0);
 
  // save image
  cairo_status_t status = cairo_surface_write_to_png(surface, outfile.c_str());
  
  // delete cairo surface
  cairo_surface_destroy(surface);
  cairo_surface_destroy(image1_surface);
  cairo_surface_destroy(image2_surface);
}
 
int main(void){
  draw_images(&amp;quot;output_bilinear.png&amp;quot;, draw_image_bilinear);
  draw_images(&amp;quot;output_nearest_neighbor.png&amp;quot;, draw_image_nearest_neighbor);
  return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;コンパイルと実行は Mac OS X Lion 上にて、以下のシェルスクリプトでやっている。 image_scaling.cpp がサンプルコードのファイル。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
#!/bin/bash
 
rm ./a.out
rm ./output_bilinear.png
rm ./output_nearest_neighbor.png
 
g++ -I/usr/local/include/agg2 -I/usr/local/Cellar/cairo/1.10.2/include -L/usr/local/lib -L/usr/local/Cellar/cairo/1.10.2/lib -lagg -lcairo ./image_scaling.cpp
 
chmod 744 ./a.out
./a.out
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;実行環境は Mac OS X Lion + AGG 2.5 + cairo 1.10.2&lt;/p&gt;

&lt;p&gt;
重ねる入力画像: input1.png&lt;br /&gt;
&lt;img src=&quot;/f0/0/20120427_input1.png&quot; alt=&quot;重ねる入力画像: input1.png&quot; title=&quot;重ねる入力画像: input1.png&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;
重ねる入力画像: input2.png&lt;br /&gt;
&lt;img src=&quot;/f0/0/20120427_input2.png&quot; alt=&quot;重ねる入力画像: input2.png&quot; title=&quot;重ねる入力画像: input2.png&quot; /&gt;&lt;br /&gt;
この画像は &lt;a href=&quot;http://www.nilab.info/z3/20120210_01.html&quot;&gt;[ヅ] Javaで透過度(アルファ値)のあるPNGファイルを出力する&lt;/a&gt; で作成した「背景が new Color(255, 255, 255, 0), // white (transparent)」の画像。
&lt;/p&gt;

&lt;p&gt;これらの画像を拡大して重ねる。&lt;/p&gt;

&lt;p&gt;
バイリニア補間で出力した画像: output_bilinear.png&lt;br /&gt;
&lt;img src=&quot;/f0/0/20120427_output_bilinear.png&quot; alt=&quot;バイリニア補間で出力した画像: output_bilinear.png&quot; title=&quot;バイリニア補間で出力した画像: output_bilinear.png&quot; /&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;
ニアレストネイバー補間で出力した画像: output_nearest_neighbor.png&lt;br /&gt;
&lt;img src=&quot;/f0/0/20120427_output_nearest_neighbor.png&quot; alt=&quot;ニアレストネイバー補間で出力した画像: output_nearest_neighbor.png&quot; title=&quot;ニアレストネイバー補間で出力した画像: output_nearest_neighbor.png&quot; /&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;ちょっと黒っぽくなっているのはなぜなのか。。。&lt;/p&gt;

&lt;p&gt;もしかして Cairo で PNG ファイルを読み込んでいるのが原因なのかな。&lt;br /&gt;Cairo は内部で Pre-multiplied alpha (乗算済みアルファ) という形式でデータを持っているみたい。&lt;/p&gt;

&lt;blockquote&gt;
CAIRO_FORMAT_ARGB32&lt;br /&gt;
&lt;br /&gt;
each pixel is a 32-bit quantity, with alpha in the upper 8 bits, then red, then green, then blue. The 32-bit quantities are stored native-endian. Pre-multiplied alpha is used. (That is, 50% transparent red is 0x80800000, not 0x80ff0000.)&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://cairographics.org/manual/cairo-Image-Surfaces.html&quot;&gt;Image Surfaces&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
プリマルチプライ済みアルファは、ソースカラーを表現するのに使用する用語であり、成分にアルファ値がすでに乗じてあります。プリマルチプライ処理は、各色成分の余分な乗算操作を排除することで画像のレンダリングをスピードアップします。たとえば、RGB 色空間では、プリマルチプライ済みアルファを使用して画像をレンダリングすることで、画像の各ピクセルに対する 3 つの乗算操作（赤×アルファ、緑×アルファ、および青×アルファ）を排除します。
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;https://developer.apple.com/jp/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_concepts/chapter_2_section_9.html&quot;&gt;Core Image Programming Guide:Color Components and Premultiplied Alpha&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;試しに、 agg::pixfmt_rgba32 で処理していたところを agg::pixfmt_rgba32_pre にしてみた。&lt;/p&gt;

&lt;p&gt;具体的にはこの typedef を&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
typedef agg::pixfmt_rgba32 pixfmt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;こんな感じに。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
typedef agg::pixfmt_rgba32_pre pixfmt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;処理してみたら、ニアレストネイバー補間のほうはけっこういい感じに見える。&lt;/p&gt;

&lt;p&gt;
バイリニア補間で出力した画像: output_bilinear.png&lt;br /&gt;
&lt;img src=&quot;/f0/0/20120427_output_bilinear_pre.png&quot; alt=&quot;バイリニア補間で出力した画像: output_bilinear.png&quot; title=&quot;バイリニア補間で出力した画像: output_bilinear.png&quot; /&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;
ニアレストネイバー補間で出力した画像: output_nearest_neighbor.png&lt;br /&gt;
&lt;img src=&quot;/f0/0/20120427_output_nearest_neighbor_pre.png&quot; alt=&quot;ニアレストネイバー補間で出力した画像: output_nearest_neighbor.png&quot; title=&quot;ニアレストネイバー補間で出力した画像: output_nearest_neighbor.png&quot; /&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;
Ref.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.antigrain.com/&quot;&gt;Anti-Grain Geometry -&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nilab.info/docs/agg2.5/classagg_1_1span__image__filter__rgba__bilinear__clip.html&quot;&gt;Anti-Grain Geometry - AGG (libagg): agg::span_image_filter_rgba_bilinear_clip&amp;lt; Source, Interpolator &amp;gt; Class Template Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nilab.info/docs/agg2.5/classagg_1_1span__image__filter__rgba__nn.html&quot;&gt;Anti-Grain Geometry - AGG (libagg): agg::span_image_filter_rgba_nn&amp;lt; Source, Interpolator &amp;gt; Class Template Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.antigrain.com/demo/&quot;&gt;Anti-Grain Geometry - Demo Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.antigrain.com/demo/image1.cpp.html&quot;&gt;Anti-Grain Geometry - image1.cpp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.antigrain.com/demo/image_transforms.cpp.html&quot;&gt;Anti-Grain Geometry - image_transforms.cpp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cairographics.org/&quot;&gt;cairographics.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nilab.info/z3/20120421_03.html&quot;&gt;[ヅ] Cairo で PNG 画像を読み込んで拡大して agg::renderer_base#blend_from で画像を重ねる&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;

</description><link>http://www.nilab.info/z3/20120427_01.html</link></item><item><category>life</category><guid>http://www.nilab.info/z3/20120422_01.html</guid><pubDate>Sun, 22 Apr 2012 00:00:00 +0900</pubDate><title>REDECKER children&apos;s rice-straw broom</title><description>&lt;p&gt;(*´Д｀) 赤い柄がかわいい子ども向けの箒(ほうき) を購入。お値段は1200円(＋送料500円)ほど。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/f0/0/20120422_redecker_1.jpg&quot; alt=&quot;REDECKER children&amp;#39;s rice-straw broom 赤い柄がかわいい子ども向けの箒(ほうき)&quot; title=&quot;REDECKER children&amp;#39;s rice-straw broom 赤い柄がかわいい子ども向けの箒(ほうき)&quot; /&gt;&lt;/p&gt;

&lt;p&gt;取手が赤い＆先端には革紐。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120422_redecker_2.jpg&quot; alt=&quot;REDECKER children&amp;#39;s rice-straw broom 赤い柄がかわいい子ども向けの箒(ほうき)&quot; title=&quot;REDECKER children&amp;#39;s rice-straw broom 赤い柄がかわいい子ども向けの箒(ほうき)&quot; /&gt;&lt;/p&gt;

&lt;p&gt;麦わらを留めている紐が赤・黒・赤。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120422_redecker_3.jpg&quot; alt=&quot;REDECKER children&amp;#39;s rice-straw broom 赤い柄がかわいい子ども向けの箒(ほうき)&quot; title=&quot;REDECKER children&amp;#39;s rice-straw broom 赤い柄がかわいい子ども向けの箒(ほうき)&quot; /&gt;&lt;/p&gt;

&lt;p&gt;REDECKER社のサイトで見れるカタログ。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120422_redecker_5.jpg&quot; alt=&quot;REDECKER children&amp;#39;s rice-straw broom 赤い柄がかわいい子ども向けの箒(ほうき)&quot; title=&quot;REDECKER children&amp;#39;s rice-straw broom 赤い柄がかわいい子ども向けの箒(ほうき)&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/f0/0/20120422_redecker_4.jpg&quot; alt=&quot;REDECKER children&amp;#39;s rice-straw broom 赤い柄がかわいい子ども向けの箒(ほうき)&quot; title=&quot;REDECKER children&amp;#39;s rice-straw broom 赤い柄がかわいい子ども向けの箒(ほうき)&quot; /&gt;&lt;br /&gt;⇒ &lt;a href=&quot;http://redecker.de/tl_files/redecker/bk/en/index.html#/70/&quot;&gt;Redecker 2011/2012 / 70&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
サイズ&lt;br /&gt;
全長:約80cm（ほうき部分含む）&lt;br /&gt;
ほうき部分:約28cm&lt;br /&gt;
&lt;br /&gt;
材　質&lt;br /&gt;
ボディ:ブナ&lt;br /&gt;
ほうき:麦わら&lt;br /&gt;
&lt;br /&gt;
商品説明&lt;br /&gt;
ドイツREDECKER社の赤い柄が可愛いほうきです。&lt;br /&gt;
子供のお手伝い用のほうきですが、そこはドイツ製品ですので実用性にも抜かりはありませんし&lt;br /&gt;
このくらいのコンパクトサイズの方が置く場所にも困りませんし、かえって便利かも知れません。&lt;br /&gt;
&lt;br /&gt;
コメント&lt;br /&gt;
柄はブナ、ほうきは麦わらです。柄の先端には、革ヒモがついています。&lt;br /&gt;
素朴なデザインが、なんとも可愛らしいほうきです。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://hb.afl.rakuten.co.jp/hgc/0e84c1e2.42badead.0e84c1e3.80c2876d/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Finnocence%2Fredecker014580-1%2F&quot;&gt;【楽天市場】[REDECKER/レデッカー]赤い柄が可愛い ほうき：葉山セレクト-Innocence&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
REDECKER（レデッカー）社とは&lt;br /&gt;
ドイツを拠点に、様々なカテゴリーに及ぶ生活用品を提案する1936年創業の老舗メーカーです。&lt;br /&gt;
マイスターの国ドイツのクラフトマンシップが支える伝統と技術。&lt;br /&gt;
それは熟練した職人達のハンドメイドによって産み出される製品に息づいています。&lt;br /&gt;
&lt;br /&gt;
彼らの拘りは技術だけではありません。&lt;br /&gt;
彼らが扱うのはシンプルでありながら美しいナチュラルな自然素材です。&lt;br /&gt;
彼らは、その素材の良さを損なうことなく数々の製品を世に送り出します。&lt;br /&gt;
&lt;br /&gt;
素材の重要性を理解しているからこそ、その素材が絶えないようにエコロジー、環境保護、リサイクルを考え、&lt;br /&gt;
自然素材が提供される場所や未来にまで厳しい目を持ちます。&lt;br /&gt;
REDECKER（レデッカー）社の製品を支えるものは職人の熟練の技と良質な自然素材です。&lt;br /&gt;
&lt;br /&gt;
REDECKER（レデッカー）社の製品は、全て天然素材を使用した手作りで、デザインはあくまでもシンプルで機能的。木のやさしいぬくもりがドイツらしいセンスを感じさせます。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.zakka.net/dengoo/&quot;&gt;デングー ドイツREDECKER(レデッカー)社 正規輸入代理店&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
REDECKER(レデッカー）は1936年創業のドイツの老舗ブラシメーカー。良質な天然素材を使用し、熟練された職人の手によってひとつひとつ丁寧に作られるブラシは、何年、いえ、何十年と使い続けられるものばかり。使えば使うほど手になじみ、愛着が湧いてくる、いわば一生モノ。現在はブラシだけでなく様々な家庭用品を手がけているREDECKER(レデッカー）ですが、どの製品も機能面の優秀さのみならず、シンプルで美しいデザインを兼ね備えている点がヨーロッパを中心に高く評価されています。またREDECKER(レデッカー）は、使用する材料のほとんどをEU圏内から調達し、原料輸送にかかるCO2の削減につなげるなど、環境への配慮も怠りません。｢人と環境に優しくありたい」と考えるREDECKER(レデッカー）。間伐材の利用や植林を行うなど、素材の有限性を意識する姿勢や、消費者の声を反映し製品を改良していくクラフトマンシップに、ドイツだけでなく世界中で愛され続けている理由がある、と言えそうです。&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;a href=&quot;http://www.zutto.co.jp/brand/brand_detail/142&quot;&gt;REDECKER（レデッカー）｜ずっと使い続けたいモノを集めたセレクトショップ - ZUTTO（ズット）&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;
Ref.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.redecker.de/&quot;&gt;We about us - Bürstenhaus Redecker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://hb.afl.rakuten.co.jp/hgc/0e84c1e2.42badead.0e84c1e3.80c2876d/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Finnocence%2Fredecker014580-1%2F&quot;&gt;【楽天市場】[REDECKER/レデッカー]赤い柄が可愛い ほうき：葉山セレクト-Innocence&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
</description><link>http://www.nilab.info/z3/20120422_01.html</link></item><item><category>agg  cairo</category><category>c++</category><guid>http://www.nilab.info/z3/20120421_03.html</guid><pubDate>Sat, 21 Apr 2012 00:00:00 +0900</pubDate><title>Cairo で PNG 画像を読み込んで拡大して agg::renderer_base#blend_from で画像を重ねる</title><description>&lt;p&gt;2次元描画ライブラリの Cairo と AGG (Anti-Grain Geometry) を組み合わせて処理してみた。&lt;/p&gt;

&lt;p&gt;C++によるサンプルコード。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;cairo/cairo.h&amp;gt;
#include &amp;lt;agg_rendering_buffer.h&amp;gt;
#include &amp;lt;agg_rasterizer_scanline_aa.h&amp;gt;
#include &amp;lt;agg_pixfmt_rgba.h&amp;gt;
#include &amp;lt;agg_renderer_scanline.h&amp;gt;
 
static cairo_surface_t* create_scaling_surface(cairo_surface_t&amp;amp; src, int width, int height){
  double w = cairo_image_surface_get_width(&amp;amp;src);
  double h = cairo_image_surface_get_height(&amp;amp;src);
  cairo_surface_t* s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height);
  cairo_t* c = cairo_create(s);
  cairo_scale(c, width / w, height / h);
  cairo_set_source_surface(c, &amp;amp;src, 0.0, 0.0);
  cairo_paint(c);
  cairo_destroy(c);
  return s;
}
 
static agg::rendering_buffer* create_rendering_buffer(cairo_surface_t&amp;amp; src){
  unsigned char* d = cairo_image_surface_get_data(&amp;amp;src);
  int w = cairo_image_surface_get_width(&amp;amp;src);
  int h = cairo_image_surface_get_height(&amp;amp;src);
  int s = cairo_image_surface_get_stride(&amp;amp;src);
  agg::rendering_buffer* rb = new agg::rendering_buffer();
  rb-&amp;gt;attach(d, w, h, s);
  return rb;
}
 
static void draw_image(agg::renderer_base&amp;lt;agg::pixfmt_rgba32&amp;gt;&amp;amp; rbase, cairo_surface_t&amp;amp; image, double dx, double dy, double scale){
  cairo_surface_t* s = &amp;amp;image;
  cairo_surface_t* ss = NULL;
  int w = cairo_image_surface_get_width(s);
  int h = cairo_image_surface_get_height(s);
  if(scale != 1.0){
    w = (int)(w * scale);
    h = (int)(h * scale);
    ss = create_scaling_surface(*s, w, h);
    s = ss;
  }
  agg::rendering_buffer* rb = create_rendering_buffer(*s);
  agg::pixfmt_alpha_blend_rgba&amp;lt;agg::blender_rgba&amp;lt;agg::rgba8, agg::order_rgba&amp;gt;, agg::rendering_buffer, agg::int32u&amp;gt; srcPixelFormatRenderer(*rb);
  agg::rect_i rect_src(0, 0, w, h);
  rbase.blend_from(srcPixelFormatRenderer, &amp;amp;rect_src, dx, dy, agg::cover_full);
  delete rb;
  if(ss){
    cairo_surface_destroy(ss);
  }
}
 
int main(void){
 
  int width = 600;
  int height = 400;
  int bytes_per_pixel = 4;
 
  // canvas
  cairo_surface_t* surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height);
  unsigned char* data = cairo_image_surface_get_data(surface);
  agg::rendering_buffer rbuf;
  rbuf.attach(data, width, height, width * bytes_per_pixel);
  agg::pixfmt_rgba32 pixf(rbuf);
  agg::renderer_base&amp;lt;agg::pixfmt_rgba32&amp;gt; rbase(pixf);
  rbase.clear(agg::rgba8(255, 255, 255, 255));
 
  // load png image
  std::string image1_path = &amp;quot;input1.png&amp;quot;;
  cairo_surface_t* image1_surface = cairo_image_surface_create_from_png(image1_path.c_str());
 
  // load png image
  std::string image2_path = &amp;quot;input2.png&amp;quot;;
  cairo_surface_t* image2_surface = cairo_image_surface_create_from_png(image2_path.c_str());
 
  // drawing
  draw_image(rbase, *image1_surface,  10,  20, 1.0);
  draw_image(rbase, *image2_surface,  30,  40, 1.0);
  draw_image(rbase, *image1_surface,  50,  60, 1.5);
  draw_image(rbase, *image2_surface,  70,  80, 1.5);
  draw_image(rbase, *image1_surface,  90, 100, 2.0);
  draw_image(rbase, *image2_surface, 110, 120, 2.0);
 
  // save image
  std::string path = &amp;quot;output.png&amp;quot;;
  cairo_status_t status = cairo_surface_write_to_png(surface, path.c_str());
  
  // delete cairo surface
  cairo_surface_destroy(surface);
  cairo_surface_destroy(image1_surface);
  cairo_surface_destroy(image2_surface);
 
  return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;コンパイルと実行は Mac OS X Lion 上にて、以下のシェルスクリプトでやっている。image_scaling.cpp がサンプルコードのファイル。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
#!/bin/bash
 
rm ./a.out
rm ./output.png
 
g++ -I/usr/local/include/agg2 -I/usr/local/Cellar/cairo/1.10.2/include -L/usr/local/lib -L/usr/local/Cellar/cairo/1.10.2/lib -lagg -lcairo ./image_scaling.cpp
 
chmod 744 ./a.out
./a.out
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;実行環境は Mac OS X Lion + AGG 2.5 + cairo 1.10.2&lt;/p&gt;

&lt;p&gt;重ねる入力画像: input1.png&lt;br /&gt;&lt;img src=&quot;/f0/0/20120421_input1.png&quot; alt=&quot;input1.png&quot; title=&quot;input1.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;重ねる入力画像: input2.png&lt;br /&gt;&lt;img src=&quot;/f0/0/20120421_input2.png&quot; alt=&quot;input2.png&quot; title=&quot;input2.png&quot; /&gt;&lt;br /&gt;この画像は &lt;a href=&quot;http://www.nilab.info/z3/20120210_01.html&quot;&gt;[ヅ] Javaで透過度(アルファ値)のあるPNGファイルを出力する&lt;/a&gt; で作成した「背景が new Color(255, 255, 255, 0), // white (transparent)」の画像。&lt;/p&gt;

&lt;p&gt;サンプルコードが出力する画像: output.png&lt;br /&gt;&lt;img src=&quot;/f0/0/20120421_output.png&quot; alt=&quot;output.png&quot; title=&quot;output.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;拡大して重ねて描画することはできたけど、なぜかちょっと黒っぽくなっている。やっぱりアルファ半透明画像の処理がAGGは苦手なのかなぁ。。。&lt;/p&gt;

&lt;p&gt;
Ref.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.antigrain.com/&quot;&gt;Anti-Grain Geometry -&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cairographics.org/&quot;&gt;cairographics.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nilab.info/docs/agg2.5/classagg_1_1renderer__base.html&quot;&gt;Anti-Grain Geometry - AGG (libagg): agg::renderer_base&amp;lt; PixelFormat &amp;gt; Class Template Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nilab.info/docs/agg2.5/classagg_1_1pixfmt__alpha__blend__rgba.html&quot;&gt;Anti-Grain Geometry - AGG (libagg): agg::pixfmt_alpha_blend_rgba&amp;lt; Blender, RenBuf, PixelT &amp;gt; Class Template Reference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;

</description><link>http://www.nilab.info/z3/20120421_03.html</link></item><item><category>food</category><guid>http://www.nilab.info/z3/20120421_02.html</guid><pubDate>Sat, 21 Apr 2012 00:00:00 +0900</pubDate><title>TIRANGA ティランガ 犬山店</title><description>&lt;p&gt;きょうの夕食は INDIAN RESTAURANT TIRANGA (インド料理レストラン ティランガ) 犬山店で。。。。って店が見つからないと思ったら、&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/f0/0/20120421_tiranga_1.jpg&quot; alt=&quot;INDIAN RESTAURANT TIRANGA (インド料理レストラン ティランガ) 犬山店&quot; title=&quot;INDIAN RESTAURANT TIRANGA (インド料理レストラン ティランガ) 犬山店&quot; /&gt;&lt;/p&gt;

&lt;p&gt;テイクアウトできます・・・じゃなくてテイクアウトするしかないお店だった。あるいは、そのまますぐ隣りのフードコートで食べるか。&lt;/p&gt;

&lt;p&gt;というわけで、フードコートでいただく。&lt;/p&gt;

&lt;p&gt;バターチキンカレーセットは辛くなくてまったりクリーミーな味。これはうまい。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120421_tiranga_3.jpg&quot; alt=&quot;INDIAN RESTAURANT TIRANGA (インド料理レストラン ティランガ) 犬山店&quot; title=&quot;INDIAN RESTAURANT TIRANGA (インド料理レストラン ティランガ) 犬山店&quot; /&gt;&lt;/p&gt;

&lt;p&gt;チキンマサラ。スパイスの効いたお肉がうまい。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120421_tiranga_4.jpg&quot; alt=&quot;INDIAN RESTAURANT TIRANGA (インド料理レストラン ティランガ) 犬山店&quot; title=&quot;INDIAN RESTAURANT TIRANGA (インド料理レストラン ティランガ) 犬山店&quot; /&gt;&lt;/p&gt;

&lt;p&gt;フードコート＆食料品売場が近いので他にも買って食べる。&lt;/p&gt;

&lt;p&gt;『ファーストフード ポッポ』の山盛りポテト。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120421_tiranga_2.jpg&quot; alt=&quot;『ファーストフード ポッポ』のフライドポテト&quot; title=&quot;『ファーストフード ポッポ』のフライドポテト&quot; /&gt;&lt;/p&gt;
&lt;p&gt;『たごさく』の栗豆おこわミニいなり＆鶏五目おこわミニいなり。&lt;br /&gt;&lt;img src=&quot;/f0/0/20120421_tiranga_5.jpg&quot; alt=&quot;『たごさく』の栗豆おこわミニいなり＆鶏五目おこわミニいなり&quot; title=&quot;『たごさく』の栗豆おこわミニいなり＆鶏五目おこわミニいなり&quot; /&gt;&lt;/p&gt;

&lt;p&gt;
Ref.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://ja.foursquare.com/v/tiranga-%E3%83%86%E3%82%A3%E3%83%A9%E3%83%B3%E3%82%AC-%E7%8A%AC%E5%B1%B1%E5%BA%97/4f926f5be4b06ce8578fe13c&quot;&gt;TIRANGA ティランガ 犬山店 - foursquare&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://inuyama-casta.com/main.html&quot;&gt;犬山キャスタ　毎日、ワクワクできたらいいね！　　INUYAMA CASTA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.itoyokado.co.jp/blog/138/&quot;&gt;イトーヨーカドー 犬山店&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tagosaku.co.jp/&quot;&gt;百貨店・駅ビル・デパ地下でおこわとお弁当なら「たごさく」「たもかみ」でおなじみの山和食品株式会社&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.7fs-poppo.jp/pp/&quot;&gt;ポッポ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
</description><link>http://www.nilab.info/z3/20120421_02.html</link></item><item><category>design</category><category>kyoto</category><category>train</category><guid>http://www.nilab.info/z3/20120421_01.html</guid><pubDate>Sat, 21 Apr 2012 00:00:00 +0900</pubDate><title>ローレルコート御所南の最寄り駅への路線図</title><description>&lt;p&gt;ろーれるこーとごしょみなみ(・∀・) なかなかカコイイデザイン。&lt;/p&gt;

&lt;p&gt;
&lt;img src=&quot;/f0/0/20120421_condo24.jpg&quot; alt=&quot;ローレルコート御所南｜シアーズ株式会社&quot; title=&quot;ローレルコート御所南｜シアーズ株式会社&quot; /&gt;
&lt;br /&gt;⇒ &lt;a href=&quot;http://sears.co.jp/condo24/&quot;&gt;ローレルコート御所南｜シアーズ株式会社&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;ちなみにここは5000万円以上の分譲マンション、お高い ( ；´Д｀)&lt;/p&gt;

&lt;p&gt;参考までに他の物件の最寄り駅への路線図も。&lt;/p&gt;

&lt;p&gt;
&lt;img src=&quot;/f0/0/20120421_condo23.jpg&quot; alt=&quot;プレミスト京都烏丸通｜シアーズ株式会社&quot; title=&quot;プレミスト京都烏丸通｜シアーズ株式会社&quot; /&gt;
&lt;br /&gt;⇒ &lt;a href=&quot;http://sears.co.jp/condo23/&quot;&gt;プレミスト京都烏丸通｜シアーズ株式会社&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;img src=&quot;/f0/0/20120421_condo22.jpg&quot; alt=&quot;アベニール三条油小路｜シアーズ株式会社&quot; title=&quot;アベニール三条油小路｜シアーズ株式会社&quot; /&gt;
&lt;br /&gt;⇒ &lt;a href=&quot;http://sears.co.jp/condo22/&quot;&gt;アベニール三条油小路｜シアーズ株式会社&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Ref. &lt;a href=&quot;http://sears.co.jp/condo24/&quot;&gt;ローレルコート御所南｜シアーズ株式会社&lt;/a&gt;&lt;/p&gt;

</description><link>http://www.nilab.info/z3/20120421_01.html</link></item></channel></rss>
