<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">

	<title>Planet TLUG</title>
	<link rel="self" href="http://planet.tlug.jp/atom.xml"/>
	<link href="http://planet.tlug.jp/"/>
	<id>http://planet.tlug.jp/atom.xml</id>
	<updated>2012-02-05T09:57:12+00:00</updated>
	<generator uri="http://www.planetplanet.org/">Planet/2.0 +http://www.planetplanet.org</generator>

	<entry xml:lang="en">
		<title type="html">Asakusa – Tsukiji – Asakusa</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/SDjIKSZCwUE/"/>
		<id>http://blog.zuco.org/?p=3074</id>
		<updated>2012-02-05T07:57:04+00:00</updated>
		<content type="html">&lt;p&gt;When you are too busy coding and your mind doesn&amp;#8217;t work anymore, instead of keep pushing, take a break and do something completely different. That&amp;#8217;s what I did on Saturday. I left home in the afternoon and walked down the  &lt;a href=&quot;http://en.wikipedia.org/wiki/Sumida_River&quot;&gt;Sumida River&lt;/a&gt; until it ends.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821357803/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7016/6821357803_28c9a58134.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-3074&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821357875/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7022/6821357875_2e11738070.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821358027/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7165/6821358027_7061c96bab.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Kuramae Bridge (&lt;a href=&quot;http://ja.wikipedia.org/wiki/蔵前橋&quot;&gt;japanese&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821358175/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7173/6821358175_e855a4b510.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821358359/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7167/6821358359_b0e4cc4dac.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821358509/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7155/6821358509_76b7326ae7.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;These are representations of famous art works that follows the walls on the river side. Nobody do any graffiti, damage or vandalize them. In almost any other country things wound&amp;#8217;t work that way&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821358641/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7010/6821358641_17a3bccb82.jpg&quot; width=&quot;331&quot; height=&quot;500&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The boat was turning around.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821358821/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7148/6821358821_f5bac7849a.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821358947/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7162/6821358947_1b8c1a16f4.jpg&quot; width=&quot;331&quot; height=&quot;500&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821359191/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7151/6821359191_ddd6267ba3.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821359071/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7165/6821359071_4af5798c71.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821359399/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7159/6821359399_67810c83f3.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The colored one is Shin Oohashi bridge (&lt;a href=&quot;http://ja.wikipedia.org/wiki/新大橋&quot;&gt;Japanese&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821359535/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7003/6821359535_0cd4283996.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821359647/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7156/6821359647_d0f5f6a96b.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Under the Kiyosu Bridge (&lt;a href=&quot;http://ja.wikipedia.org/wiki/清洲橋&quot;&gt;Japanese&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821359765/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7033/6821359765_b5bec8d46a.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I was lucky it was a perfect clean night.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821359907/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7014/6821359907_c50260f361.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821360025/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7001/6821360025_2b7c038aba.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Big residential towers in Tsukishima&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821360163/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7143/6821360163_feae49a22b.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821360319/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7154/6821360319_a877eb0b17.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821360455/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7156/6821360455_b39c358a2a.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821360615/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7012/6821360615_b31e5dc04d.jpg&quot; width=&quot;331&quot; height=&quot;500&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821360787/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7145/6821360787_197b6e166b.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821361095/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7162/6821361095_eb4e243a4d.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;These streets are full of restaurants to eat &lt;a href=&quot;http://en.wikipedia.org/wiki/Monjayaki&quot;&gt;monja&lt;/a&gt;. It looks like a vomit but it&amp;#8217;s delicious.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821360949/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7152/6821360949_2fe06d2b8f.jpg&quot; width=&quot;331&quot; height=&quot;500&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mini police station, with a phone&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821361221/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7022/6821361221_168c157c82.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821361313/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7013/6821361313_294debd842.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There is a planet close to Tokyo tower, I wonder which one&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821361565/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7023/6821361565_0229bfb33a.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821361843/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7145/6821361843_cd4f008ece.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821362613/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7005/6821362613_576e844f18.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Tsukiji_fish_market&quot;&gt;Tsukiji&lt;/a&gt; the fish market of Tokyo. The biggest fish market in the world!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821362437/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7018/6821362437_41e5bf3b16.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821363571/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7026/6821363571_61a1226955.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821364585/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7163/6821364585_333530c1f5.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821363951/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7166/6821363951_9e0efce8cf.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821366401/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7003/6821366401_1a7f5d11d2.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821366287/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7171/6821366287_6109cce997.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;These are some pics, I took more, check them out at http://www.flickr.com/photos/drzuco/tags/tsukiji/&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821366647/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7028/6821366647_d249d711d2.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821366781/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7141/6821366781_45479d6a8c.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821366943/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7010/6821366943_ec6239ff67.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Paintings in the Tsukiji station of the Oedo line.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821367201/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7171/6821367201_1bba491386.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Heading back home to Asakusa&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821367331/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7017/6821367331_5f4a79a4dd.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821367435/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7174/6821367435_df469ea857.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821367559/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7025/6821367559_ea04d01902.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821367681/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7146/6821367681_b6e0befd35.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821367817/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7001/6821367817_1cae1374b3.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821368105/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7035/6821368105_bce805f71e.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821368257/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7004/6821368257_bbec563a49.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Kaminari Mon Hotel&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821368381/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7018/6821368381_ca73d7eeff.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s so rare to find this street empty :)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821368945/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7025/6821368945_bb6de65859.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821370003/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7144/6821370003_fbec6f2efd.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821369903/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7146/6821369903_c7f5430c33.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Small bars in some parallel streets near the &lt;a href=&quot;http://en.wikipedia.org/wiki/Asakusa&quot;&gt;Asakusa Temple&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821370093/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7035/6821370093_6825635c23.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821370267/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7157/6821370267_f3bc1d6399.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Long exposure&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6817949067/&quot; title=&quot;Praying by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7171/6817949067_aeb686636c.jpg&quot; width=&quot;331&quot; height=&quot;500&quot; alt=&quot;Praying&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Maybe he was going to do something important, a travel seems to be in his plans. Before doing whatever that guy was going to do, he stopped for 2 seconds to do a little pray. I was lucky he popped up in my viewfinder :)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/6821370529/&quot; title=&quot;Asakusa - Tsukiji - Asakusa Photowalk by pietrozuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7170/6821370529_c56528b4bf.jpg&quot; width=&quot;500&quot; height=&quot;331&quot; alt=&quot;Asakusa - Tsukiji - Asakusa Photowalk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;End! It was a walk of about 10Km, very good to make my brain rest and think.&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/SDjIKSZCwUE&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Arigato from Japan Earthquake Victims</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/m5YO_DnMZk4/"/>
		<id>http://blog.zuco.org/?p=3059</id>
		<updated>2012-01-27T11:33:14+00:00</updated>
		<content type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;If you cannot see the video, check &lt;a href=&quot;http://youtu.be/SS-sWdAQsYg&quot;&gt;here direct link.&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/m5YO_DnMZk4&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">[Haskell] Conduitのトリビアルでシンプルなサンプル</title>
		<link href="http://d.hatena.ne.jp/oskimura/20120127/1327636241"/>
		<id>http://d.hatena.ne.jp/oskimura/20120127/1327636241</id>
		<updated>2012-01-27T03:50:41+00:00</updated>
		<content type="html" xml:lang="ja">&lt;div class=&quot;section&quot;&gt;
&lt;p&gt;Haskellの新しいIOライブラリのトリビアルなサンプルを書きました。&lt;/p&gt;
&lt;p&gt;Conduitとは、水道管とか溝とか言う意味です。&lt;/p&gt;
&lt;p&gt;この例は読み込みと書き込みのファイルを開いて10文字だけコピーするだけのサンプルです&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;do構文で組み立てられたResourceTモナドをrunResourceで実行とモナド変換を行います&lt;/p&gt;
&lt;p&gt;このdo構文の中は大まかに分けて３つとなります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; リソースの確保&lt;/li&gt;
&lt;li&gt; パイプ処理&lt;/li&gt;
&lt;li&gt; リソース開放&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;

&lt;h4&gt; リーソスの確保&lt;/h4&gt;
&lt;pre&gt;
(srcKey, rHandle) &amp;#60;- with (openFile src $ ReadMode) $ hClose 
&lt;/pre&gt;
&lt;p&gt;withを使ってリソースを確保します。&lt;/p&gt;
&lt;p&gt;withの第一引数が確保。第二引数が開放のためです。&lt;/p&gt;
&lt;p&gt;それぞれコンストラクタとデストラクタのようなものです。&lt;/p&gt;
&lt;p&gt;withの返り値はタプルとなっています。このタプルの一番目がキーとなっており開放のために使います。二番目はハンドルとなっており、パイプ処理の時にSource,Sinkに変換して使います。&lt;/p&gt;
&lt;h5&gt; with定義&lt;/h5&gt;
&lt;pre&gt;
withSource
:: Resource m =&amp;#62; Base m aallocate
-&amp;#62; (a -&amp;#62; Base m ())free resource
-&amp;#62; ResourceT m (ReleaseKey, a)

&lt;/pre&gt;
&lt;br /&gt;

&lt;h4&gt; パイプ処理&lt;/h4&gt;
&lt;p&gt;ResourceTを組み立てる必要があります。&lt;/p&gt;
&lt;p&gt;そのために&lt;/p&gt;
&lt;p&gt;source -&amp;#62; conduit -&amp;#62; sink&lt;/p&gt;
&lt;p&gt;(unixの例えでばよけばcoduitはパイプ&quot;|&quot;)&lt;/p&gt;
&lt;p&gt;というパイプを作り必要があります。&lt;/p&gt;
&lt;p&gt;この例の場合&lt;/p&gt;
&lt;pre&gt;
(sourceHandle rHandle) $= (isolate 10) $$ sinkHandle wHandle
&lt;/pre&gt;
&lt;p&gt;該当箇所となります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; source&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
sourceHandle rHandle
&lt;/pre&gt;
&lt;h5&gt; sourceHandle定義&lt;/h5&gt;
&lt;pre&gt;
sourceHandle :: ResourceIO m =&amp;#62; Handle -&amp;#62; Source m ByteString
&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt; conduit&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
(isolate 10)
&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt; sink&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
sinkHandle wHandle
&lt;/pre&gt;
&lt;h5&gt; sinkHandle定義&lt;/h5&gt;
&lt;pre&gt;
sinkHandle :: ResourceIO m =&amp;#62; Handle -&amp;#62; Sink ByteString m ()
&lt;/pre&gt;
&lt;p&gt;となります&lt;/p&gt;
&lt;p&gt;sourceHandle, sinkHandleはそれぞれハンドルをsource、sinkに変換する関数です。&lt;/p&gt;
&lt;p&gt;($=)演算子はConduitを結合するための演算子です。&lt;/p&gt;
&lt;p&gt;こうして作られたパイプコンビネータ($$)ResourceT組み立てます。&lt;/p&gt;
&lt;h5&gt; isolate定義&lt;/h5&gt;
&lt;pre&gt;
isolate :: Resource m =&amp;#62; Int -&amp;#62; Conduit ByteString m ByteString
&lt;/pre&gt;
&lt;h5&gt; ($$) 定義&lt;/h5&gt;
&lt;pre&gt;
($$) :: (IsSource src, Resource m) =&amp;#62; src m a -&amp;#62; Sink a m b -&amp;#62; ResourceT m b
&lt;/pre&gt;
&lt;h5&gt; ($=)定義&lt;/h5&gt;
&lt;pre&gt;
($=) :: (IsSource src, Resource m) =&amp;#62; src m a -&amp;#62; Conduit a m b -&amp;#62; Source m b
&lt;/pre&gt;
&lt;h4&gt; リソース開放&lt;/h4&gt;
&lt;p&gt;リソースの開放release関数を使って行われます&lt;/p&gt;
&lt;pre&gt;
release srcKey
&lt;/pre&gt;
&lt;h5&gt; release定義&lt;/h5&gt;
&lt;pre&gt;
release :: Resource m =&amp;#62; ReleaseKey -&amp;#62; ResourceT m ()
&lt;/pre&gt;
&lt;/div&gt;</content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">The Joy of Gems: Cooking up Rails Plugins</title>
		<link href="http://www.mobalean.com/blog/2012/01/13/the-joy-of-gems-cooking-up-rails-plugins"/>
		<id>urn:uuid:a3bfd2b9-d5bb-4860-86d8-967161cb19a1</id>
		<updated>2012-01-13T08:25:00+00:00</updated>
		<content type="html">&lt;p&gt;
	Last night I presented at Cookpad&amp;rsquo;s &lt;a href=&quot;http://www.tokyorails.org/events/43676042/&quot;&gt;Tokyo Rails event&lt;/a&gt;. This installment had the largest turn out I&amp;rsquo;ve seen so far, with at least forty participants. I think word&amp;rsquo;s gotten out that Tokyo Rails has the best food of any Ruby group in the city (and great people too)! This time we had some great home cooked Korean food.&lt;/p&gt;
&lt;p&gt;
	My presentation was about converting Rails plugins to gems. Fortuitously, there was an announcement last week that &lt;a href=&quot;http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released&quot;&gt;vendor/plugins will be deprecated&lt;/a&gt;, and gem plugins would become the standard way of building a Rails plugin. So the timing of my presentation worked out great.&lt;/p&gt;
&lt;p&gt;
	Unfortunately, I don&amp;rsquo;t think my slides showed up so well on the projector. I&amp;rsquo;ve attached them below, so if anyone is interested, please have a look at them.&lt;/p&gt;
&lt;div id=&quot;__ss_11010428&quot;&gt;
	&lt;strong&gt;&lt;a href=&quot;http://www.slideshare.net/pwim/the-joy-of-gems-cooking-up-rails-plugins&quot; title=&quot;The Joy of Gems: Cooking up Rails Plugins&quot;&gt;The Joy of Gems: Cooking up Rails Plugins&lt;/a&gt;&lt;/strong&gt;&lt;/div&gt;</content>
		<author>
			<name>Paul McMahon</name>
			<email>paul@mobalean.com</email>
			<uri>http://www.mobalean.com/blog</uri>
		</author>
		<source>
			<title type="html">mobalean Blog : Paul McMahon | mobalean Blog</title>
			<subtitle type="html">Mobile in Japan</subtitle>
			<link rel="self" href="http://www.mobalean.com/blog/author/paul.rss"/>
			<id>http://www.mobalean.com/blog/author/paul.rss</id>
			<updated>2012-01-13T08:38:04+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">I didn’t know that I died when I was 30</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/6FrHqZSoTEk/"/>
		<id>http://blog.zuco.org/?p=3030</id>
		<updated>2012-01-13T06:26:21+00:00</updated>
		<content type="html">&lt;p&gt;How many people in this world achieved amazing results within the first 3 decades of their lives? &lt;a href=&quot;http://en.wikipedia.org/wiki/Alexander_the_Great&quot; title=&quot;Alexander the Great&quot;&gt;Alexander the Great&lt;/a&gt; by the age of thirty, had created one of the largest empires of the ancient world. Jesus Christ died around 30. &lt;a href=&quot;http://en.wikipedia.org/wiki/Albert_Einstein&quot; title=&quot;Albert Einstein&quot;&gt;Albert Einstein&lt;/a&gt; conceived in his mind his most important theories, before 30.  &lt;a href=&quot;http://en.wikipedia.org/wiki/Nikola_Tesla&quot; title=&quot;Nikola Tesla&quot;&gt;Nikola Tesla&lt;/a&gt; also achieved his most important inventions during 3 decades, and many others. 30 years is a life, an entire life. No more than 200 years ago, life expectancy was around 40. That means one life! Nowadays life expectancy in the industrialized world is 2 or 3 times that, which means, at least two lives in one!&lt;/p&gt;
&lt;p&gt;Culture and society understands life as a progressive path with goals down the road to achieve. Birth, Education, Job, Family, Old Age and Death. All this on a “life spam”, but it doesn’t specify time. So what about if we extend our lives up to 120 years? That means that we again start to work before 25, and keep working until we retire, let’s say 90&amp;#8230; Does it make any sense? So, let’s face it. We humans can achieve whatever we want, in the first 30 years of our live. We can change the world in just 3 decades!&lt;/p&gt;
&lt;p&gt;So, I propose to change our vision to a new way to understand life and goals. I’m 36 at the moment I’m writing this. If I assume my symbolic death when I was 30, it means that now I’m 6 years old. But I don’t need to go to elementary school and I don’t have to deal with all the obstacles of my lack of experience as a 6 year old child. I want to imagine, that I woke up and now I’m 6 years old but I have all the knowledge that I’ve accumulated in my first 30 years of life.&lt;br /&gt;
I already spent one life, whatever I did it’s done, I can’t change it. But, I can learn from that life experience for my new life that’s started 6 years ago and I just didn’t know. So instead of start thinking in terms of “I’m too old now”, “I lost the train and the opportunity to do this or that&amp;#8230;”, “I can’t start a new career now”&amp;#8230; I will think in terms of “I’m 6 years old and I know a lot!!, I still have one more life left in this video game”.&lt;/p&gt;
&lt;p&gt;So that’s it, I’m still in the middle of the road of my life, that means I have just made the 50% of it. We can start over again, planning again, studying again, doing again whatever we want and work for this second chance we have.&lt;/p&gt;
&lt;p&gt;If you are in your 30s think about this: you just started your clock again and you maybe didn’t realize about it. If you are in your 40s, you are just about 10 years old! You still have a life ahead so don’t loose the illusion. If you are far away from that, remember that at 60, you will die again, and a third chance is given to you, so don’t waste it, because that’s the last one, at least based on our current medical advances :)&lt;/p&gt;
&lt;p&gt;This is my exercise for this 2012. Realize that I died at 30, I’m 6 years old, and my life started again. Let&amp;#8217;s take a break, and rethink about everything. I have the opportunity to make it again, better and more interesting than before. Go ahead and do the same. Think about what you have done until now and if you are not satisfied with it, now it’s the moment to start anew!&lt;/p&gt;
&lt;p&gt;Good luck!&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/6FrHqZSoTEk&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">Erlangのソースコードを読むためにその一</title>
		<link href="http://d.hatena.ne.jp/oskimura/20111224"/>
		<id>http://d.hatena.ne.jp/oskimura/20111224</id>
		<updated>2011-12-24T00:00:00+00:00</updated>
		<content type="html" xml:lang="ja">&lt;div class=&quot;section&quot;&gt;
&lt;p&gt;Erlangのソースコードを読むためにその一&lt;/p&gt;
&lt;p&gt;ErlangのBeam/Emulatorを読むために、valgrindをつかってコールトレースを表示する方法を紹介します。&lt;/p&gt;
&lt;h4&gt; configureとビルド&lt;/h4&gt;
&lt;p&gt;config時に&lt;/p&gt;
&lt;pre&gt;
./configure --disable-hipe
&lt;/pre&gt;
&lt;p&gt;とする必要があります。&lt;/p&gt;
&lt;p&gt;これをしないvalgrindオプション付きのVMをビルドする際に、&lt;/p&gt;
&lt;p&gt;リンク時にシンボルが解決されずビルドに失敗してしまいます。&lt;/p&gt;
&lt;p&gt;hipeというは、Erlangの最適化の一種で、コンパイル後のコードの一部をbyteコードではなくネイティブコードとしてコンパイルしてVMから呼び出す手法のようです。&lt;/p&gt;
&lt;p&gt;この中で、valgrindオプション付きのVMは浮動小数点系のシンボルが解決できないようです。(otp R14B04)&lt;/p&gt;
&lt;pre&gt;
make
&lt;/pre&gt;
&lt;p&gt;し、あとはvalgrindつきのVMをビルドします。&lt;/p&gt;
&lt;pre&gt;
cd erts/emulator
make valgrind
&lt;/pre&gt;
&lt;h4&gt; 実行&lt;/h4&gt;
&lt;p&gt;次にbin/cerlを修正します。&lt;/p&gt;
&lt;pre&gt;
#exec valgrind $valgrind_xml $valgrind_log $valgrind_misc_flags $BINDIR/$EMU_NAME $emu_xargs $early_beam_args &quot;$PROGNAME&quot; $late_beam_args -pz $PRELOADED

exec valgrind &quot;--trace-children=yes&quot; &quot;--child-silent-after-fork=no&quot; &quot;--tool=callgrind&quot; $valgrind_xml $valgrind_log $valgrind_misc_flags $BINDIR/$EMU_NAME $emu_xargs $early_beam_args &quot;$PROGNAME&quot; $late_beam_args -pz $PRELOADED
&lt;/pre&gt;
&lt;p&gt;これはvalgrindに対してオプションを渡すためにやっています。&lt;/p&gt;
&lt;pre&gt;
bin/cerl -valgrind
&lt;/pre&gt;
&lt;p&gt;とすると&lt;/p&gt;
&lt;p&gt;callgrind.out.47836&lt;/p&gt;
&lt;p&gt;みたいなファイルができていると思います。これがvalgrindの出力したファイルです。&lt;/p&gt;
&lt;h4&gt; コールツリー出力&lt;/h4&gt;
&lt;p&gt;このままでもいいんですが、コールとレースを見たいので次のコマンドを発行してコールグラフを出力します。&lt;/p&gt;
&lt;pre&gt;
callgrind_annotate -I=../erts/emulator/beam,../erts/emulator/sys/unix     --tree=both ./callgrind.out.47836
&lt;/pre&gt;
&lt;p&gt;すこしcallgrind_annotateオプションの説明をすると&lt;/p&gt;
&lt;p&gt; -Iオプションはソースの場所を指定しています。&lt;/p&gt;
&lt;p&gt; -tree=bothはコールツリーを表示し呼び出し元と先を表示するという意味です。&lt;/p&gt;
&lt;/div&gt;</content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Books, Sports, Music, Electronics</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/t6IoBZNQ97k/"/>
		<id>http://blog.zuco.org/?p=2746</id>
		<updated>2011-12-16T04:05:03+00:00</updated>
		<content type="html">&lt;p&gt;If you are in Tokyo I recommend to follow this path.&lt;br /&gt;
Get out at &lt;a href=&quot;http://en.wikipedia.org/wiki/Kudanshita_Station&quot;&gt;Kudanshita&lt;/a&gt; station, exit 2 and walk all the road down to &lt;a href=&quot;http://en.wikipedia.org/wiki/Jinbōchō,_Tokyo&quot;&gt;Jimboucho&lt;/a&gt; to find tons and tons of old books. Even if you don&amp;#8217;t understand Japanese, it&amp;#8217;s very interesting to see the atmosphere in there. Then you&amp;#8217;ll find streets dedicated to sports, then streets of music and finally you will be in Akihabara, the geek kingdom. &lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;small&gt;View &lt;a href=&quot;http://maps.google.com/maps/ms?msa=0&amp;amp;msid=213641766438208403039.0004b42d89ff87e7c2cc0&amp;amp;ie=UTF8&amp;amp;t=h&amp;amp;vpsrc=1&amp;amp;ll=35.69875,139.76195&amp;amp;spn=0.006265,0.019269&amp;amp;source=embed&quot;&gt;Books, Sports, Music, Electronics &lt;/a&gt; in a larger map&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://maps.google.com/maps/ms?msid=213641766438208403039.0004b42d89ff87e7c2cc0&amp;#038;msa=0&quot;&gt;Direct link to Google Maps&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/t6IoBZNQ97k&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Java Life</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/ybuxrPS-wJc/"/>
		<id>http://www.pietrozuco.com/?p=2596</id>
		<updated>2011-12-13T06:06:55+00:00</updated>
		<content type="html">&lt;p&gt;I used to do this kind of life for some time, not only in Java, almost for everything. Now my cubicle is my home. Anyway really funny video:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/ybuxrPS-wJc&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Introducing Liam</title>
		<link href="http://www.bawdo.com/posts/52"/>
		<id>tag:www.bawdo.com,2005:Post/52</id>
		<updated>2011-11-05T17:07:28+00:00</updated>
		<content type="html">&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://picasaweb.google.com/lh/photo/UyWaUp3WJtBmTI_MpnALtA?feat=embedwebsite&quot;&gt;&lt;img src=&quot;https://lh6.googleusercontent.com/-kKvR7MDvExQ/TrVs0hh2xhI/AAAAAAAAAKA/YHqZkRjwREg/s400/liam.jpg&quot; height=&quot;226&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;From &lt;a href=&quot;https://picasaweb.google.com/106857227817345963550/ScrapbookPhotos?authuser=0&amp;amp;feat=embedwebsite&quot;&gt;Scrapbook Photos&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</content>
		<author>
			<name>Keith Bawden</name>
			<uri>http://www.bawdo.com</uri>
		</author>
		<source>
			<title type="html">bawdo.com</title>
			<link rel="self" href="http://www.bawdo.com/posts.atom"/>
			<id>tag:www.bawdo.com,2005:/posts</id>
			<updated>2011-11-05T17:19:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Baby Asahi Beer</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/JQosSETLYxc/"/>
		<id>http://dtpen.zuco.org/?p=2740</id>
		<updated>2011-10-04T11:01:41+00:00</updated>
		<content type="html">&lt;p&gt;I saw this size only in Japan! :)&lt;br /&gt;
Sometimes I saw these small cans, specially on tombs or dead altars. &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.zuco.org/wp-content/uploads/2011/10/babybeer.jpg&quot;&gt;&lt;img src=&quot;http://blog.zuco.org/wp-content/uploads/2011/10/babybeer-1024x768.jpg&quot; alt=&quot;&quot; title=&quot;babybeer&quot; width=&quot;640&quot; height=&quot;480&quot; class=&quot;alignnone size-large wp-image-2741&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/JQosSETLYxc&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Too many HDD</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/8vZQjpK55Qs/"/>
		<id>http://dtpen.zuco.org/?p=2731</id>
		<updated>2011-10-02T06:37:28+00:00</updated>
		<content type="html">&lt;p&gt;This is the result of buying whatever you find in &lt;a href=&quot;http://en.wikipedia.org/wiki/Akihabara&quot;&gt;Akihabara&lt;/a&gt;. Maybe I should recycle the magnets inside or the plates? This is just a lot of junk that spent already 2 years in my balcony&amp;#8230;  &lt;a href=&quot;http://blog.zuco.org/wp-content/uploads/2011/10/11-1.jpg&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-2732&quot; title=&quot;Junk HDD&quot; src=&quot;http://blog.zuco.org/wp-content/uploads/2011/10/11-1.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;480&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/8vZQjpK55Qs&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">github</title>
		<link href="http://d.hatena.ne.jp/oskimura/20110802/1317479898"/>
		<id>http://d.hatena.ne.jp/oskimura/20110802/1317479898</id>
		<updated>2011-10-01T14:38:18+00:00</updated>
		<content type="html" xml:lang="ja">&lt;div class=&quot;section&quot;&gt;
&lt;p&gt;githubのソースがのっけられるかテスト&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;</content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Precautions before creating a server dependent mobile application</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/mQZHBCOAimw/"/>
		<id>http://www.pietrozuco.com/?p=2577</id>
		<updated>2011-09-27T08:36:47+00:00</updated>
		<content type="html">&lt;p&gt;A server costs money. Not only the monthly rate you have to pay to keep it alive, also maintenance and system administration takes time, so it takes money.&lt;br /&gt;
If you plan to develop an app that uses a server to read/write data, be very careful and before starting anything, take into account these considerations.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt; Does your server need HA (&lt;a href=&quot;http://en.wikipedia.org/wiki/High_availability&quot;&gt;High Availability&lt;/a&gt;)? How to know that!? Does your application need to connect to your server to operate? In the answer is yes, you need HA! That means that your application, to do what it has to do, needs to be able to connect to the server. You can&amp;#8217;t prevent when the user will do that and the last thing you want is a bad rating and some complain in the App Store.&lt;br /&gt;
HA is more expensive than conventional systems. It&amp;#8217;s more difficult to configure and to administer. If you don&amp;#8217;t have experience as a system administrator, and you have a great idea for an app that needs a server to work, think about partnership with a good friend with experience as sysadmin.&lt;/li&gt;
&lt;li&gt; Is your server able to scale? What about if your app is a great success and your current configuration is not ready for the overload? Even if your app is great it can become a great deception for the users just because your system wasn&amp;#8217;t able to scale when it was needed. Remember, the user doesn&amp;#8217;t know and doesn&amp;#8217;t care about technical issues. For the user all technical explanations are just excuses. So try to avoid to be in such situation. &lt;/li&gt;
&lt;li&gt; Is your app a &lt;a href=&quot;http://www.pietrozuco.com/2011/09/08/when-to-make-your-app-free-or-paid/&quot;&gt;paid or free app&lt;/a&gt;? If it&amp;#8217;s a paid app, think about including in the price, not only the expenses to maintain the server. Think also about the expenses for scaling! The same reason of the previous point. Maybe you need to provide 2xTimes or more the performance of your current system. That will cost you money and you have to include that expense in your app price as well. It&amp;#8217;s important to plan for an eventual future scenario. It doesn&amp;#8217;t depend only on how many times your app was downloaded. How will people use the app? Does it help on common repetitive daily tasks? Does it make intense network use with the server (for example a photo sharing service)? The amount of data to read/write, just text? multimedia? It&amp;#8217;s not easy and a mistake can costs not only money but also reputation and bad ratings. &lt;/li&gt;
&lt;li&gt; If your app is free, well good luck! It&amp;#8217;s a free app and the number of downloads could be huge. Who is going to pay for the server?? Ok you can use ads but remember, a paid app will cost a specific amount of money that you can control. You know exactly how much money you will get for each app and that makes prospection easier. For ad-based apps, you know you will get paid but you don&amp;#8217;t know how much and when. If a customer buys the app, he paid for it in that very moment. Even if he&amp;#8217;ll never use the app again, the transaction has been made and you got paid. For ad-based ones, maybe he will start using the app next month or never. So risks increase for server dependent free-apps.&lt;/li&gt;
&lt;li&gt; Even if your system administrator is a guru, as a developer you have to think about the possibility that your application architecture could create some constrains if time to scale comes. So the whole plan has to be discussed with your admin as well.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Just try to think about how your system will react in case of the worse and best scenario. Don&amp;#8217;t let you go only by the enthusiasm of your idea. Keeping a cold mind, will save you from bad headaches. &lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/mQZHBCOAimw&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Making your app free or paid</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/DKhrDr0OCFg/"/>
		<id>http://www.pietrozuco.com/?p=2545</id>
		<updated>2011-09-08T10:31:32+00:00</updated>
		<content type="html">&lt;p&gt;Before making your app free-ad based or paid, or both, it&amp;#8217;s better to spend some time thinking about how people will use your app.&lt;/p&gt;
&lt;p&gt;Ads need a network connection and need to be visible. Your app has to be used under this two circumstances. So, the perfect app for ads is an app that needs to connect to Internet and that the user spends a lot of time using it. Apple has two common business models for ads: &amp;#8220;Cost Per Mille&amp;#8221; (CPM) which basically counts impressions, that means views. You get money just because the user views the advertisement. The other model is &amp;#8220;Cost Per Click&amp;#8221; (CPC). You get paid only when the user interacts with the iAd banner (the ad). So, more time using the app, more time seeing the ads or eventually more possibilities to interact with the ads = more money.&lt;br /&gt;
For example, news, blogs, feeds, entertainment and social networking are perfect apps for ads. The user will be connected to Internet, and will spend time everyday using the app. For Games, it depends. If it&amp;#8217;s a simple game, that people use in dead times, you are sure that they will use it several times per day. In this case, ads are convenient. For more complex and time consuming games, people usually play them when they have time. This doesn&amp;#8217;t happen quite often. So, making a more advanced game and the revenue from the ads, maybe is not worth the effort. There is a difference between free time and dead time. I&amp;#8217;ll explain it later.&lt;/p&gt;
&lt;p&gt;There are applications that the user wants to have but don&amp;#8217;t use them everyday or many times per day, like reference, productivity and tools. For this type of applications, following the paid pattern is better. For example take &lt;a href=&quot;http://www.pietrozuco.com/photographers-rights/&quot;&gt;Photographers Rights&lt;/a&gt;. If you are a photographer, you may want to have this app because you never know when you will need to know your rights in another country or in your own country as a photographer. For this reason, Photographers Rights App is a good reference, and a must have for a pro photographer. However, it will be used on specific situations. That&amp;#8217;s why making it free with ads is not the business model for an app like this. It follows the paid app pattern.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s important to understand the concept of &lt;strong&gt;free-time&lt;/strong&gt; and &lt;strong&gt;dead-time&lt;/strong&gt;. When you are in the train, waiting for an appointment, lunch time, quick break in your job, waiting in the airport and so forth. Those moments are forced inactivity moments. You have to stay there, doing nothing more than just wait. Instead of wasting our life as plants doing the photosynthesis with artificial light, people always try to do something during those short periods of time. That&amp;#8217;s dead-time. You didn&amp;#8217;t plan for it, and it&amp;#8217;s imposed to you by the circumstances. You usually don&amp;#8217;t know how much time will take a dead-time period. That&amp;#8217;s why those dead-time periods are perfect for a time-free app (I&amp;#8217;ll talk later about time-free-apps and time-fixed-apps). Dead times are perfect for ad based apps. People have countless dead time periods during the day and that&amp;#8217;s the moment they will look for some app to spend that time with. For example, reading a blog, playing a simple game, using social network or checking some rss. It&amp;#8217;s OK to interrupt these activities at any moment. You really don&amp;#8217;t know when the dead time is going to end, so you also don&amp;#8217;t know if you will have full concentration during that dead time. Perfect to put ads on them.&lt;/p&gt;
&lt;p&gt;Free time is different. You know when you have free time and you usually know how much free time you have. During free time, people will, eventually, decide to use a more immersive app. In this case I think that ads based apps, like reading news, blogs, rss, social media, multimedia entertainment, are more profitable. The user can use them in dead and free time as well, because the user can spend more than one hour reading news or just 5 minutes. On the other hand, games played when you have more time ahead, usually are more immersive, complex and content rich. In that case, maybe it&amp;#8217;s better to go for a paid model. People willing to spend time playing games, usually spend money on games. Ads, in these cases, are a distraction that nobody want to see. Remember people hate ads! So, usually an ad is accepted on something they don&amp;#8217;t give a huge value, like a time-dead app.&lt;/p&gt;
&lt;p&gt;All this is related with other two concepts: &lt;em&gt;time-free-apps&lt;/em&gt; and &lt;em&gt;time-fixed-apps&lt;/em&gt;.&lt;br /&gt;
Time-free-apps are those that you can interrupt at any moment because the task never ends. For example, reading the news. You can read them later as the process of reading news &amp;#8220;never ends&amp;#8221;. Everyday you have more news to read. Watching a movie also is a time-free activity, you can interrupt and continue it at any moment. But time-fixed-apps are related with activities that you cannot interrupt without loosing something. For example, even if every app can be stopped at any time, nobody likes to stop a game in a very important moment. If you are a game player, how many times did it happen to arrive to the destination station, and get out of the train and keep playing? Players also hate to receive a call in the most exciting-adrenaline-consuming moment! Think also about edition apps, from writing or image editing, which, in reality, are time-fixed apps. You start writing and at a certain point the concentration flow is full. If you interrupt the process in that very moment, it&amp;#8217;s hard to come back as fresh as you were before. That&amp;#8217;s why, usually time-fixed apps are used during free-time and time-free apps are used during dead-times.&lt;/p&gt;
&lt;p&gt;Of course it depends on everybody. There are people able to dictate several letters at the same time, like Napoleon. But those cases are exceptions. Usually people loose concentration very easily.&lt;/p&gt;
&lt;p&gt;To conclude:&lt;/p&gt;
&lt;p&gt;During free time, people tend to use time-fixed apps and not always an ads based model makes sense. Reading news, rss, blogs, social media and entertainment are the best for ads because those apps can be used during dead times and during free time.&lt;/p&gt;
&lt;p&gt;During dead-times, people tend to use time-free apps, that they can interrupt at any time and continue later on. Furthermore, simple apps that are just less boring than waiting staring at a wall, go under this category. These apps are good for ads, because people have countless dead-time moments.&lt;/p&gt;
&lt;p&gt;I didn&amp;#8217;t want to use the the terms of synchronous apps and asynchronous apps, for time-fixed and time-free apps. Mainly because all apps in a phone are asynchronous. The user can always interrupt them and come back to the same point later on. The synchrony is just psychological, not related with the apps.&lt;/p&gt;
&lt;p&gt;This has nothing to do with LITE apps. These apps have a different approach. When to use ads on a LITE app or create a LITE and a Full app is a topic for another post :-)&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/DKhrDr0OCFg&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Dynamic Methods vs. Method Missing</title>
		<link href="http://www.mobalean.com/blog/2011/09/08/dynamic-methods-vs-method-missing"/>
		<id>urn:uuid:bd30fc67-2402-4331-b09d-8a5270cb0a79</id>
		<updated>2011-09-08T09:38:00+00:00</updated>
		<content type="html">&lt;p&gt;
	For a class I'm organizing on &lt;a href=&quot;http://rubyeigo.doorkeeper.jp/&quot;&gt;metaprograming in Ruby&lt;/a&gt;, we&amp;rsquo;re using &lt;a href=&quot;http://t.co/UB7LLct&quot;&gt;Metaprograming Ruby&lt;/a&gt; as a textbook. In the chapter &lt;em&gt;Tuesday: Methods&lt;/em&gt;, the book introduces two techniques for removing duplication: dynamically defining methods and using method_missing. It gives examples of applying both techniques to some sample code of which a simplified version is reproduced below:&lt;/p&gt;
&lt;pre&gt;# initial code
class Computer
  def initialize(data_source)
    @data_source = data_source
  end

  def mouse
    puts &amp;quot;Price: #{data_source.mouse_price}&amp;quot;
  end

  def keyboard
    puts &amp;quot;Price: #{data_source.mouse_price}&amp;quot;
  end

  def monitor
    puts &amp;quot;Price: #{data_source.mouse_price}&amp;quot;
  end
  
  #...
end

# dynamic methods
class Computer
  def initialize(data_source)
    @data_source.methods.grep(/^(.*)_price$/) { Computer.define_component $1 }
  end
  
  def self.define_component(name)
    define_method(name) do
      puts &amp;quot;Price: #{data_source.send(&amp;quot;#{name}_price&amp;quot;)
    end
  end
end

# method_missing
class Computer
  instance_methods.each do |m|
    undef_method m unless m.to_s =~ /^__|method_missing|respond_to?/
  end

  def method_missing(name, *args)
    super if !respond_to?(name)
    puts &amp;quot;Price: #{data_source.send(&amp;quot;#{name}_price&amp;quot;)
  end

  def respond_to?(method)
    @data_source.respond_to?(&amp;quot;#{name}_price&amp;quot;)
  end
end
&lt;/pre&gt;
&lt;p&gt;
	However, the book doesn't discuss when you should use one technique versus another. Here&amp;rsquo;s my rule: only use method_missing when it is infeasible to use dynamic methods.&lt;/p&gt;
&lt;p&gt;
	One good example of using method_missing is ActiveRecord's find_by method. With it, you can call a method like find_by_name_and_birthdate. While ActiveRecord could theoretically use the dynamic method technique, generating every possible method would be overkill, thus using method_missing makes sense.&lt;/p&gt;
&lt;p&gt;
	One counter example can be found in an example in the Metaprograming Ruby book itself:&lt;/p&gt;
&lt;pre&gt;class Roulette
  def method_missing(name, *args)
    person = name.to_s.capitalize 
    super unless %w[Bob Frank Bill].include? person
    number = 0
    3.times do
      number = rand(10) + 1
      puts &amp;quot;#{number}...&amp;quot;
    end
    &amp;quot;#{person} got a #{number}&amp;quot;
  end
end
&lt;/pre&gt;
&lt;p&gt;
	In this case, we have three methods we want Roulette to respond to: bob, frank, and bill. As we know these methods in advance, you should use the dynamic_method strategy:&lt;/p&gt;
&lt;pre&gt;class Roulette
  %w[bob frank bill].each do |name|
    define_method name do
      number = 0
      3.times do
        number = rand(10) + 1
        puts &amp;quot;#{number}...&amp;quot;
      end
      &amp;quot;#{name.to_s.capitalize} got a #{number}&amp;quot;
    end
  end
end
&lt;/pre&gt;
&lt;p&gt;
	Now back to our initial example with Computer, which technique should we apply? Given that we can apply the dynamic methods technique, we should use it. Oh, and assuming we are always passed an instance of DataStore, I'd refactor it like so:&lt;/p&gt;
&lt;pre&gt;# dynamic methods
class Computer
  DataSource.methods.grep(/^(.*)_price$/).each do |name|
    define_method(name) do
      puts &amp;quot;Price: #{data_source.send(&amp;quot;#{name}_price&amp;quot;)
    end
  end
end&lt;/pre&gt;</content>
		<author>
			<name>Paul McMahon</name>
			<email>paul@mobalean.com</email>
			<uri>http://www.mobalean.com/blog</uri>
		</author>
		<source>
			<title type="html">mobalean Blog : Paul McMahon | mobalean Blog</title>
			<subtitle type="html">Mobile in Japan</subtitle>
			<link rel="self" href="http://www.mobalean.com/blog/author/paul.rss"/>
			<id>http://www.mobalean.com/blog/author/paul.rss</id>
			<updated>2012-01-13T08:38:04+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Best iOS development books and references</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/2xI8wZrdZDM/"/>
		<id>http://www.pietrozuco.com/?p=2525</id>
		<updated>2011-09-05T15:45:08+00:00</updated>
		<content type="html">&lt;p&gt;After reading many books about iOS development, these are the ones that I found most useful and enlightening. Apple documentation is very good as well, but, unfortunately, they don&amp;#8217;t have an easy progressive path. It&amp;#8217;s more like a modular, self contained reference repository.&lt;br /&gt;
Learning how to program for iOS is a huge topic that not only requires understanding of a concrete programming language and a framework, it also requires the understanding of the philosophy behind Apple products. Coding of iOS devices also opens the door to learn how to program for MacOS X as well. If you are a Windows developer, this is a great opportunity to learn how to code on a powerful UNIX platform.&lt;br /&gt;
I strongly recommend to read these books or at least, try to use them as a point of reference to understand what you need to learn to create a strong base that will help you, coding any application you want, and also saving a lot of time while being more productive and taking advantage of this technology.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;strong&gt;Programming iOS 4&lt;/strong&gt; is, by all means, the best book I&amp;#8217;ve ever found about iPhone/iPod/iPad development. It covers almost everything. For more esoteric stuff you have to search your way in Apple documentation, but this book will give you a clear understanding about the whole picture. It&amp;#8217;s a dense book, with a lot of content. If you are looking for a quick guide, this is not the book for you. Anyway, if you plan to do something serious quick guides or for dummies series are not for you either.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
For a more practical approach, &lt;strong&gt;Beginning iPhone 4 Development&lt;/strong&gt; is like a quick reference and a learning guide at the same time. It&amp;#8217;s really practical and has ready to use code recipes for most common patterns, such as: navigation controllers, pickers, table views and so on. This is not the book that will give you a strong understanding. For that you have Programming iOS 4, which is much better, in that sense. Anyway, I recommend Beginning iPhone 4 Development, I used it a lot and I still use it when I forget how to use common controls.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
You have to read &lt;strong&gt;Programming in Objective-C&lt;/strong&gt; period! The content of this book or an equivalent is essential. You can go ahead taking a dummies series and build an View Based app or a Table View app, but if you want to do something different, you will have no idea about what&amp;#8217;s going on without Objective-C.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;strong&gt;Learn Objective-C on the Mac&lt;/strong&gt; covers the same content as Programming in Objective-C, but from a more practical approach. I recommend both. In fact they complement each other. Anyway, Programming in Objective-C gives a more deep theoretical explanation of the language. Believe me, you&amp;#8217;ll need it!&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
If you only plan to code for iOS, you won&amp;#8217;t need &lt;strong&gt;Cocoa Programming for Mac OS X&lt;/strong&gt;. This is the best book to learn Cocoa I&amp;#8217;ve ever read. It gives a little approach to iPhone development as well, but its main purpose is MacOS X platform. The App Store is available also for Mac, so it&amp;#8217;s not a bad idea to learn how to code for Mac as well. Anyway, you need a Mac to develop for the iOS, so I think it&amp;#8217;s a good idea to master these skills as well.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
To be honest, &lt;strong&gt;Head First iPhone and iPad Development&lt;/strong&gt; was a very big deception for me. The &lt;a href=&quot;http://www.amazon.com/gp/product/0596009208/ref=as_li_tf_tl?ie=UTF8&amp;#038;tag=z082-20&amp;#038;linkCode=as2&amp;#038;camp=217145&amp;#038;creative=399369&amp;#038;creativeASIN=0596009208&quot;&gt;Head First Java&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=z082-20&amp;#038;l=as2&amp;#038;o=1&amp;#038;a=0596009208&amp;#038;camp=217145&amp;#038;creative=399369&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt; and &lt;a href=&quot;http://www.amazon.com/gp/product/0596007124/ref=as_li_tf_tl?ie=UTF8&amp;#038;tag=z082-20&amp;#038;linkCode=as2&amp;#038;camp=217145&amp;#038;creative=399369&amp;#038;creativeASIN=0596007124&quot;&gt;Head First Design Patterns&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=z082-20&amp;#038;l=as2&amp;#038;o=1&amp;#038;a=0596007124&amp;#038;camp=217145&amp;#038;creative=399369&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt; are amazing books. But don&amp;#8217;t let the reputation of those books influence your judgment if you plan to buy Head First iPhone and iPad Development. The book is too practical, so practical, that it&amp;#8217;s like a funny recipe book that you can use to build apps similar to those explained&amp;#8230; but nothing more. Table Views are a topic of tremendous importance. It&amp;#8217;s a pattern that you can use to build countless applications but, for some reason, the topic is not deeply covered. Just to mention an example, the book spends several chapters talking about a Table View based reference application (a drink mixer) but it didn&amp;#8217;t cover how to create hierarchical tables in a proper way. I expected more from this book, based on the great reputation that Head First series has. I found several &lt;a href=&quot;http://oreilly.com/catalog/errata.csp?isbn=0636920010135&quot;&gt;erratas&lt;/a&gt; as well.&lt;/p&gt;
&lt;p&gt;To end with this post, here you have these good online references. The one that always you have to give precedence is Apple official documentation, so I suggest you to read as much Apple docs as you can. Specially HIG (&lt;a href=&quot;http://developer.apple.com/library/ios/#DOCUMENTATION/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html&quot;&gt;iOS Human Interface Guidelines&lt;/a&gt;). If you don&amp;#8217;t follow what the HIG says, don&amp;#8217;t complain later if your app is rejected in the App Store. &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://developer.apple.com/devcenter/ios/index.action&quot;&gt;Apple documentation staring point.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.iphonedevsdk.com/forum/&quot;&gt;iPhone Dev SDK Forum&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.iphonesdkarticles.com/&quot;&gt;iPhone SDK Articles&lt;/a&gt; One of the best code examples and references out there.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/&quot;&gt;Stackoverflow&lt;/a&gt; well, you know it! :-)&lt;/p&gt;
&lt;p&gt;To conclude. If you plan to develop and sell apps for iOS, you will sooner or later join the Apple Development program. The forums in the portal are a huge, amazing source of information. It&amp;#8217;s an amazingly active community. I&amp;#8217;m sure you can find an answer for your problem in those forums.&lt;/p&gt;
&lt;p&gt;Let me know if you have more suggestions, links and books you would like to mention.&lt;br /&gt;
I would love to hear about good book titles for developing games by the way :)&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/2xI8wZrdZDM&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Guessing a String's Encoding Under Ruby 1.9</title>
		<link href="http://www.mobalean.com/blog/2011/09/02/guessing-a-strings-encoding-under-ruby-1-9"/>
		<id>urn:uuid:d39cf0cc-f794-4edf-afff-682ddb5e12be</id>
		<updated>2011-09-02T18:06:00+00:00</updated>
		<content type="html">&lt;p&gt;
For our Japanese invoicing solution, 請求書.jp, we record the initial HTTP referrer for each user who signs up to our service. Search engines have standardize on the q parameter to represent a search query, such as &lt;a href=&quot;https://www.seikyusho.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88&quot;&gt;請求書テンプレート&lt;/a&gt;, so we use this parameter to guess what query a user signs up by. Unfortunately, search engines have not standardized on an encoding to use, and the query parameter can be encoded in any one of UTF-8, EUC-JP, or Shift_JIS. To work around this, we use the following Ruby 1.9 code:
&lt;/p&gt;

&lt;p&gt;
This code allows us to try each of the three expected encodings, and then encode the result into UTF-8 for display within our admin interface.
&lt;/p&gt;</content>
		<author>
			<name>Paul McMahon</name>
			<email>paul@mobalean.com</email>
			<uri>http://www.mobalean.com/blog</uri>
		</author>
		<source>
			<title type="html">mobalean Blog : Paul McMahon | mobalean Blog</title>
			<subtitle type="html">Mobile in Japan</subtitle>
			<link rel="self" href="http://www.mobalean.com/blog/author/paul.rss"/>
			<id>http://www.mobalean.com/blog/author/paul.rss</id>
			<updated>2012-01-13T08:38:04+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Really cheap DIY iPad stand</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/l7gir7UW_IM/"/>
		<id>http://www.zuco.org/?p=2493</id>
		<updated>2011-08-26T19:02:39+00:00</updated>
		<content type="html">&lt;p&gt;Do you have an iPad and a book support? That&amp;#8217;s what I had at home. I had one book support that I didn&amp;#8217;t use, it cost 100 yen, it&amp;#8217;s about 0.9€ or $1.3 then you need something to stick on it so the iPad won&amp;#8217;t slide down.&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s all :-)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_6460.jpg&quot;&gt;&lt;img src=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_6460-1024x768.jpg&quot; alt=&quot;&quot; title=&quot;Really cheap DIY iPad stand&quot; width=&quot;584&quot; height=&quot;438&quot; class=&quot;alignnone size-large wp-image-2595&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_6459.jpg&quot;&gt;&lt;img src=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_6459-1024x768.jpg&quot; alt=&quot;&quot; title=&quot;Really cheap DIY iPad stand&quot; width=&quot;584&quot; height=&quot;438&quot; class=&quot;alignnone size-large wp-image-2591&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_6461.jpg&quot;&gt;&lt;img src=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_6461-1024x768.jpg&quot; alt=&quot;&quot; title=&quot;Really cheap DIY iPad stand&quot; width=&quot;584&quot; height=&quot;438&quot; class=&quot;alignnone size-large wp-image-2599&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_6463.jpg&quot;&gt;&lt;img src=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_6463-1024x768.jpg&quot; alt=&quot;&quot; title=&quot;Really cheap DIY iPad stand&quot; width=&quot;584&quot; height=&quot;438&quot; class=&quot;alignnone size-large wp-image-2601&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/l7gir7UW_IM&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Physical Facebook like button</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/IdLALnPHRds/"/>
		<id>http://www.zuco.org/?p=2487</id>
		<updated>2011-08-26T18:44:04+00:00</updated>
		<content type="html">&lt;p&gt;This is in Yurakucho, on my way to the Apple Store in Ginza.&lt;br /&gt;
The panel is full of pictures of the same model and she&amp;#8217;s wearing in different styles.&lt;br /&gt;
You have to give a &amp;#8220;like&amp;#8221; to the one you like :)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_63951.jpg&quot;&gt;&lt;img src=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_63951.jpg?w=600&quot; alt=&quot;&quot; title=&quot;IMG_6395&quot; width=&quot;600&quot; height=&quot;450&quot; class=&quot;alignleft size-medium wp-image-2489&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_63941.jpg&quot;&gt;&lt;img src=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_63941.jpg?w=600&quot; alt=&quot;&quot; title=&quot;IMG_6394&quot; width=&quot;600&quot; height=&quot;450&quot; class=&quot;alignleft size-medium wp-image-2488&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/IdLALnPHRds&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Getting things well done!</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/KpXSrKJFU-I/"/>
		<id>http://www.pietrozuco.com/?p=2506</id>
		<updated>2011-08-26T15:07:03+00:00</updated>
		<content type="html">&lt;p&gt;After I read the news about Steve Jobs stepping back as Apple&amp;#8217;s CEO, I was going back in time, digging in my memories and experiences, since the first day I started working in an IT company. I came up with a really simple conclusion that needs some explanation. It&amp;#8217;s so simple that just saying it, has no effect. But it&amp;#8217;s really powerful.&lt;/p&gt;
&lt;p&gt;I have a long experience working with &lt;a href=&quot;http://en.wikipedia.org/wiki/Workaholic&quot;&gt;workaholics&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Micromanagement&quot;&gt;micromanagers&lt;/a&gt;. I’m wrong if I put these two profiles together. A micromanager can be a workaholic but not all workaholics are micromanagers. In fact many of them are not managers at all.&lt;br /&gt;
I know how these profiles behave, how they think. I know how to predict many of their actions, in fact they are very predictable. I know how bad they can be for a company, how much they can damage a working environment. Sometimes they can also be useful, but it’s much better if they never have total power and are managed by somebody else that knows exactly what kind of people they&amp;#8217;re dealing with. They are not bad or good people, in fact their behavior roots are very complex. &lt;/p&gt;
&lt;p&gt;After reading many articles about Steve Jobs, his personality, about glimpses of his life and stories from people that know him; there was something that wasn’t clear to me. He is usually described as a workaholic and a micromanager. Many people now is saying that this, hypothetical “qualities”, are good for a CEO and maybe many people will try to get inspired by those descriptions. Well, I don’t know him, but thinking about what he did and what Apple was doing under his control, makes me think completely different.&lt;/p&gt;
&lt;p&gt;I read a &lt;a href=&quot;https://plus.google.com/107117483540235115863/posts/gcSStkKxXTw&quot;&gt;story&lt;/a&gt; (worth reading) today in Google+, from &lt;a href=&quot;https://plus.google.com/107117483540235115863/about&quot;&gt;Vic Gundotra&lt;/a&gt; that inspired me to write this post. He talks about Steve Jobs calling him by phone, on a Sunday morning, talking about the yellow gradient of the second O in the Google icon on the iPhone. How do you interpret that? Obviously that Steve is a workaholic and a micromanager. But wait a minute. I’m pretty sure he was right about the yellow gradient of that icon. Nobody else would have changed it, or even care about it. So, who had to do it then? Someone that really cares about doing things well: Steve Jobs.&lt;/p&gt;
&lt;p&gt;So let’s think about this from a different approach. Think about all the things you think are really well done, from a refrigerator, a car, a phone, whatever, and put them in one set. Then do the opposite, you will find that it’s much easier to find things that have been just done but not well done. You can have a Windows PC and it can help you to perform common operations on a computer, but if you compare it with a Mac, you will notice the difference. Operations are the same, the purpose is the same but almost every corner in the the Apple machine is well designed or at least, they really tried to do it well, and that&amp;#8217;s important.&lt;/p&gt;
&lt;p&gt;So, do you think that Steve Jobs behavior can just be classified as a workaholic and a micromanager? If you ever worked with that kind of people, do you think that they can achieve, what Steve did? To be disruptive in technology you need to be able to see the big picture, to make an abstraction of the tiny world that surrounds everyone of us and think differently. Somebody that gets trapped in a compulsive behavior denotes his/her incapacity to perform such abstraction from their environment. So, do you still think that the key is being, apparently, a workaholic and a micromanager? I don’t think so. There is much more behind that. If we look at the root problem, it’s easy to realize that sooner or later somebody has to do things well to achieve success.  What if somebody else noticed that the yellow gradient was wrong and was willing to change it? Do you think that Steve would have been there, spending his time taking care even of that tiny detail if everybody took care of details willing to get things well done? I don’t know, maybe, but probably not. &lt;/p&gt;
&lt;p&gt;I remember a painful time with a micromanager I worked with years ago. I like to take care about details and get things well done without having a bad impact on production. I didn’t even know that I wanted to do things well, it was just the way I felt comfortable. He was the opposite, he micromanaged me in every possible way, telling me even how to code stuff that he had no idea about. He forced me to take wrong paths because usually a micromanager is a paranoid that thinks that only him is the right guy to do the job. At the end, his interventions were useless and made me waste a lot of time that I could spend improving my work. Later he realized I was right. We still had time to fix it but, as the project worked, his mentality followed with the “who cares, as far as it works!!” mentality.&lt;br /&gt;
This mentality is the root of every thing that gets done, but that never will get well done!&lt;br /&gt;
This is the big difference. You can improve that icon, setting the right yellow to the second O. It’s not a waste of time. Tiny details make a big difference when they merge in the final product. &lt;/p&gt;
&lt;p&gt;If you lead, if you are responsible for a project and you care to get things well done, if you care about details, about the big picture and realize that it’s made by all those tiny &lt;em&gt;insignificant&lt;/em&gt; parts, if you just care! If you love to see the job done perfectly and beautifully, but you are alone&amp;#8230; what will you become if nobody else cares and think that you are just an obsessive person? You become like Steve Jobs, and, in that case, you have to carry all the weight and do it by yourself.&lt;/p&gt;
&lt;p&gt;To conclude: it’s hard for me to believe that he is a real, by nature micromanager. Maybe he is a workaholic and a forced micromanager. Just taking a look to Apple products and how they are always ahead of time from everybody else, gives a clue of what is the behavioral pattern that he wanted to be embedded in the company. &lt;/p&gt;
&lt;p&gt;This is the inspiration I want to take from all this. I will always try to keep &amp;#8220;getting things well done&amp;#8221;. I didn’t really realize about this subtle-different-simple concept before, until now. I loved to see things getting closer to perfection and never reaching it, but I didn’t realize that the main stream just don’t care as far as they are not the consumers.&lt;/p&gt;
&lt;p&gt;I’ll keep this in mind for all my applications. Even if it’s a free app, even if it’s just a prototype, even if the app produces no profit at all, adding a little constant effort and just having the will to take care of the whole thing, keeping in mind that a perfect whole is made by it’s tiny perfect parts, is the most important quality to get things &lt;strong&gt;well&lt;/strong&gt; done.&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/KpXSrKJFU-I&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Photographers Rights, iPhone app</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/oUkKJv-w5D8/"/>
		<id>http://zucowall.com/blog/?p=2049</id>
		<updated>2011-08-25T04:08:21+00:00</updated>
		<content type="html">&lt;p&gt;&lt;center&gt;&lt;img src=&quot;http://www.pietrozuco.com/wp-content/uploads/2011/08/photorightsblog.png&quot; /&gt;&lt;/center&gt;&lt;/p&gt;
&lt;p&gt;Photographers Rights app is ready to &lt;a href=&quot;http://itunes.apple.com/us/app/photographers-rights/id458324345?ls=1&amp;#038;mt=8&quot;&gt;download&lt;/a&gt; from the Apple Store. This is my first application about photography, let me know if you like it, comments or anything you would like me to add to it &lt;img src=&quot;http://blog.zuco.org/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.pietrozuco.com/2011/08/25/ready-photographers-rights/&quot; title=&quot;Photographers Rights iPhone App&quot;&gt;Checkout more about it here&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/oUkKJv-w5D8&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">PDF generation and Heroku</title>
		<link href="http://www.mobalean.com/blog/2011/08/02/pdf-generation-and-heroku"/>
		<id>urn:uuid:bc673759-681e-493d-966d-1816253030d9</id>
		<updated>2011-08-02T12:07:00+00:00</updated>
		<content type="html">&lt;p&gt;For &lt;a href=&quot;http://www.seikyusho.jp&quot;&gt;請求書.jp&lt;/a&gt;, we wanted to provide our users with a way to generate PDF versions of invoices. We used the PDFKit gem (&lt;a href=&quot;https://github.com/jdpace/PDFKit&quot;&gt;https://github.com/jdpace/PDFKit&lt;/a&gt;), which by itself is a thin wrapper around wkhtmltopdf (&lt;a href=&quot;http://code.google.com/p/wkhtmltopdf/&quot;&gt;http://code.google.com/p/wkhtmltopdf/&lt;/a&gt;), to easily generate PDFs. With this tool chain it is possible to generate PDFs for any page, using the HTML and CSS you already have in place.&lt;/p&gt;

&lt;h3&gt;Installation&lt;/h3&gt;

&lt;p&gt;Installation is quite simple:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;add PDFKit to your Gemfile, install the wkhtmltopdf-binary gem&lt;/li&gt;
	&lt;li&gt;add the following to your config/application.rb (Rails 3) to hook PDFKit into Rack:&lt;br /&gt;
&lt;pre&gt;
config.middleware.use PDFKit::Middleware
&lt;/pre&gt;
&lt;/li&gt;
	&lt;li&gt;add an initializer (config/initializers/pdfkit.rb) like this:&lt;br /&gt;
&lt;pre&gt;
PDFKit.configure do |config|
  config.default_options = { page_size: 'A4', print_media_type: true }
end
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Basically that’s it, but please see https://github.com/jdpace/PDFKit for more details. Anyway, pretty easy, no?&lt;/p&gt;

&lt;h3&gt;Getting it to work on Heroku&lt;/h3&gt;

&lt;p&gt;Well, the tricky part starts when you want to deploy this to Heroku.&lt;/p&gt;

&lt;p&gt;First, you’ll need to include a statically linked 64bit Linux version of wkhtmltopdf in your application. You can download it from &lt;a href=&quot;http://code.google.com/p/wkhtmltopdf/downloads/list&quot;&gt;http://code.google.com/p/wkhtmltopdf/downloads/list&lt;/a&gt; (wkhtmltopdf-0.10.0_rc2-static-amd64.tar.bz2 for instance). To use the same binaries in development and production, we removed the wkhtmltopdf-binary gem again, downloaded the binaries for Linux and Mac so all our development environments are covered, and extended config/initializers/pdfkit.rb like this:&lt;/p&gt;

&lt;pre&gt;
PDFKit.configure do |config|
  config.default_options = { page_size: 'A4', print_media_type: true }
  if RUBY_PLATFORM =~ /linux/
    wkhtmltopdf_executable = 'wkhtmltopdf-amd64'
  elsif RUBY_PLATFORM =~ /darwin/
    wkhtmltopdf_executable = 'wkhtmltopdf-osx'
  else
    raise &quot;Unsupported. Must be running linux or intel-based Mac OS.&quot;
  end
  config.wkhtmltopdf = Rails.root.join('vendor', 'bin', wkhtmltopdf_executable).to_s
end
&lt;/pre&gt;

&lt;p&gt;After deploying to Heroku, the second issue you are likely to notice is the following: Requesting a PDF page just sits there for a while and then returns an application error. That is because you are most likely using external stylesheets and wkhtmltopdf will request them in order to generate the PDF. But your Dyno is currently busy with generating the PDF, so it can’t respond to the incoming request regarding the stylesheets.&lt;/p&gt;

&lt;p&gt;Unfortunately starting a second Dyno or using unicorn on the cedar stack doesn’t really help here, because Heroku’s router doesn’t know which Dynos are busy but rather distributes the workload according to different parameters. So basically doing a request from within your application to your application won’t work reliably. Putting a cache / CDN (like AWS’ cloudfront) in front of your assets mitigates the problem, but users might still see an application error because the cache / CDN needs to request those files from time to time. Serving all your assets altogether from S3 works of course, but makes deployment to Heroku harder.&lt;/p&gt;

&lt;p&gt;The solution we employed in the end was to avoid the additional requests entirely and instead embed the printing styles into the HTML itself, using the following code in the layout (HAML):&lt;/p&gt;

&lt;pre&gt;
!!!
%html{:lang =&gt; &quot;ja&quot;}
  %head
    %title= 請求書.jp
    - if request_from_pdfkit?
      %style{type: &quot;text/css&quot;}
        = File.read(Rails.root.join(&quot;public&quot;,&quot;stylesheets&quot;,&quot;print.css&quot;))
    - else
      = javascript_include_tag 'application'
      = stylesheet_link_tag ‘application’
&lt;/pre&gt;

&lt;p&gt;And in the application_helper.rb:&lt;/p&gt;

&lt;pre&gt;
  def request_from_pdfkit?
    # when generating a PDF, PDFKit::Middleware will set this flag
    request.env[&quot;Rack-Middleware-PDFKit&quot;] == &quot;true&quot;
  end
&lt;/pre&gt;

&lt;p&gt;The downside of this solution is though that we need to have a static print.css in the public/stylesheets directory and can’t use Rails 3.1’s asset pipeline as before.&lt;/p&gt;

&lt;p&gt;The third challenge we had to address was caused by using non-Latin script, Japanese in our case. To have Japanese script in the PDF, you need Japanese fonts installed on the server doing the PDF generation, so it can embed the font. There are no Japanese fonts installed on Heroku though. Fortunately we could come up with a way to install the required font within the Heroku environment. For that to work, we added the font to vendor/fonts in the Rails project and added the following initializer:&lt;/p&gt;

&lt;pre&gt;
if Rails.env.production?
  font_dir = File.join(Dir.home, &quot;.fonts&quot;)
  Dir.mkdir(font_dir) unless Dir.exists?(font_dir)

  Dir.glob(Rails.root.join(&quot;vendor&quot;, &quot;fonts&quot;, &quot;*&quot;)).each do |font|
    target = File.join(font_dir, File.basename(font))
    File.symlink(font, target) unless File.exists?(target)
  end
end
&lt;/pre&gt;

&lt;p&gt;With this setup we can now reliably generate nice looking PDFs for our users.&lt;/p&gt;</content>
		<author>
			<name>Michael</name>
			<email>michael@mobalean.com</email>
			<uri>http://www.mobalean.com/blog</uri>
		</author>
		<source>
			<title type="html">mobalean Blog : Michael | mobalean Blog</title>
			<subtitle type="html">Mobile in Japan</subtitle>
			<link rel="self" href="http://www.mobalean.com/blog/author/michael.rss"/>
			<id>http://www.mobalean.com/blog/author/michael.rss</id>
			<updated>2011-11-02T04:19:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">[postscript][fizzbuzz]</title>
		<link href="http://d.hatena.ne.jp/oskimura/20110802/1312272611"/>
		<id>http://d.hatena.ne.jp/oskimura/20110802/1312272611</id>
		<updated>2011-08-02T08:10:11+00:00</updated>
		<content type="html" xml:lang="ja">&lt;div class=&quot;section&quot;&gt;

&lt;pre class=&quot;syntax-highlight&quot;&gt;
1 {dup 100 ge {exit} {dup 5 mod 0 eq {(Buzz) exch} if dup 3 mod 0 eq {(Fizz)  exch} if dup 1 add}  ifelse} loop pstack
&lt;/pre&gt;

&lt;/div&gt;</content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Buying a new camera? Don’t listen to fanboys!</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/KgfG1nRhPMU/"/>
		<id>http://zucowall.com/blog/?p=2027</id>
		<updated>2011-07-30T08:45:14+00:00</updated>
		<content type="html">&lt;p&gt;&lt;img align=&quot;left&quot; class=&quot;postpicture&quot; src=&quot;http://farm4.static.flickr.com/3629/3310511904_ea6103f6f5_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;equipment&quot; /&gt; If you are not a pro and you are about to buy a new good camera, I&amp;#8217;m sure you will ask advice before you spend a good slice of your salary on a piece of hardware.&lt;br /&gt;
The first advice is &amp;#8220;Don&amp;#8217;t listen to fanboys!&amp;#8221; This is not only an advice before you buy a camera, but in general. There are two kind of fanboys, the one that just likes a vendor and consider every camera just a tool to accomplish what at the end is the only important thing: take a picture!&lt;br /&gt;
Then the other fanboy an extremist fanatic one. Try to avoid his/her advice because for them, the brand is just a kind of religion or a way of living. For them there is no better camera than the one they love, and you are looking for an objective advice before you spend your money right? So you&amp;#8217;ve been warned.&lt;/p&gt;
&lt;p&gt;So here some advices for non pro users, before you buy a new camera:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt; Don&amp;#8217;t listen to radical fanboys! How to detect them? Easy, just pronounce the name of the competence. If he is a Canon guy, just say that you are going to buy Nikon because their optic and sensor is superior (usually they get more upset when you touch their vendor&amp;#8217;s weak point and that&amp;#8217;s funny!) or, if he is a Nikon fanboy, just say that you are going to buy a Canon because it&amp;#8217;s cheaper and the ergonomic is superior. Based on the energy in their reaction and the number of insults for the opposite vendor, you will discover them. And I forgot, if they are Pentax fanboys, just tell them &amp;#8220;Pentax? What is that? A brand?&amp;#8221; But if, otherwise, they just point out a list of possible choices from different vendors, you know you will get the most objective perspective from that person experience.&lt;/li&gt;
&lt;li&gt; First try to get a clear idea of why do you want a new camera and what do you want to do with it. If you are currently happy with the camera you have and you never missed any particular option but you want to get more Mpx or the natural next upgrade, just try to follow your vendor advice for the new version of your current camera. Check forums and try to get your hands on the new one before you buy it. This is the easy scenario because you are not looking for anything new, you just want to upgrade what you already have so you can focus on a specific vendor and a particular device line. This is a good site to see comparisons and performance of each latest camera: &lt;a href=&quot;http://www.dpreview.com/&quot;&gt;www.dpreview.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; If you want to upgrade for your next level as a photographer and you are looking for something that will let you learn more about photography, be careful before you buy a reflex. Usually a reflex is harder to use than a compact, it&amp;#8217;s big, heavy and more expensive. Buying a reflex won&amp;#8217;t make you more professional and believe me, it won&amp;#8217;t even make you look professional. Experienced photographers can understand if you are a pro or not, based on the way you hold and handle your camera &lt;img src=&quot;http://blog.zuco.org/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt;
&lt;ol type=&quot;a&quot;&gt;
&lt;li&gt;&lt;em&gt;Do you want to learn photography to be a pro and make a living with it?&lt;/em&gt; In that case measure your steps, think about what kind of photography you want to start with. Products? Wedding? Fashion? whatever? Check your budget, and for how long you can live receiving no money at all. A little outdated, but good advices here for &amp;#8220;&lt;a href=&quot;http://www.kenrockwell.com/tech/go-pro.htm&quot;&gt;how to go pro&lt;/a&gt;&amp;#8221; A general advice is, buy a semi-pro DSLR. Any big vendor Nikon, Canon or Pentax is fine and they have reasonable prices. Also be very careful about lenses. If you decide to go with one vendor, try to make the right decision at first. You don&amp;#8217;t want to buy a Canon body, a couple of good lenses and then realize that maybe a Nikon would fit better with your expectations. You will change many bodies in your photographer life but few lenses. So be careful. It&amp;#8217;s OK if you make the wrong choice with the body model, because you can always upgrade and still use the same lenses and accessories. &lt;/li&gt;
&lt;li&gt;&lt;em&gt;Do you just love photography and you want to get better pictures, and improve your knowledge but you have no intention to work on this field?&lt;/em&gt; In this case forget high end pro equipment. Of course this depends on your budget, but as a general rule, if you are not going to make a living with photography, just take an entry level DSLR or a semi-pro from the major vendors. The &lt;a href=&quot;http://zucowall.com/blog/2010/01/pentax-k-x-review/&quot;&gt;Pentax k-y&lt;/a&gt; are great for this. My suggestion is, take an entry level, a cheap standard lens (usually the one coming with the kit) and a bright prime of 50mm or 85mm or take a good point and shot that let you go completely manual: like a Canon G12 here a revision of the previous model &lt;a href=&quot;http://zucowall.com/blog/2010/01/canon-g11-review-and-pictures/&quot;&gt;G11&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt; If you just don&amp;#8217;t know, and you are afraid that maybe in the future you are going to loose interest in photography but you want to try and you want to learn, in that case I strongly recommend to take a good Point &amp;#038; Shot camera like &lt;a href=&quot;http://www.dpreview.com/reviews/CanonG12/&quot;&gt;Canon G12&lt;/a&gt;, &lt;a href=&quot;http://www.dpreview.com/previews/olympusep3/&quot;&gt;Olympus pen&lt;/a&gt; or &lt;a href=&quot;http://www.dpreview.com/news/1007/10072110panasonicdmclx5.asp&quot;&gt;Panasonic Lumix&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; About 2nd hand it&amp;#8217;s not bad and nothing to be avoided. You have to understand what you are buying, how to check for defects and also from who or where you are buying it. I got my old Nikon D200 from a 2nd hand shop and it still works. This is a pro camera, very robust so the possibilities to buy one with some defect are less than a cheap, Point &amp;#038; Shot 2nd hand camera. My suggestion is, don&amp;#8217;t run away from 2nd hand, but try to buy with the advice of a friend with experience in photography, so eventually you can get a good deal. Don&amp;#8217;t forget to offer your friend a beer! &lt;img src=&quot;http://blog.zuco.org/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt;  &lt;/li&gt;
&lt;li&gt; Finally, remember to start small but never start too cheap, you get what you pay for. Ask yourself what do you really want to do in photography, talk with friends with experience and check camera reviews. It&amp;#8217;s much better to get a camera that match 90% of what you are looking for than paying much more money for a camera beyond your expectations with options you&amp;#8217;ll never use. Remember, for every product you buy, it doesn&amp;#8217;t matter if it&amp;#8217;s a camera or a laptop, every option that you don&amp;#8217;t need or don&amp;#8217;t use, is wasted money. &lt;/li&gt;
&lt;li&gt; And for those that just want to get better pictures: Don&amp;#8217;t waste your money buying better cameras, first figure out why you think your pictures are bad. Is it the camera or is it you?&lt;/li&gt;
&lt;/li&gt;&lt;/ol&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/KgfG1nRhPMU&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">[Scala]PostScriptっぽい言語を作成中</title>
		<link href="http://d.hatena.ne.jp/oskimura/20110728/1311849142"/>
		<id>http://d.hatena.ne.jp/oskimura/20110728/1311849142</id>
		<updated>2011-07-28T10:32:22+00:00</updated>
		<content type="html" xml:lang="ja">&lt;div class=&quot;section&quot;&gt;

&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synPreProc&quot;&gt;import&lt;/span&gt; scala.collection.mutable.Stack
&lt;span class=&quot;synPreProc&quot;&gt;import&lt;/span&gt; scala.util.parsing.combinator._
&lt;span class=&quot;synPreProc&quot;&gt;import&lt;/span&gt; scala.util.parsing.combinator.syntactical._
&lt;span class=&quot;synPreProc&quot;&gt;import&lt;/span&gt; scala.util.parsing.combinator.lexical._


&lt;span class=&quot;synComment&quot;&gt;//----------------------------------------------------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;synType&quot;&gt;abstract&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt; Instraction
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt; POP[A]        &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instraction
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt; PUSH          &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instraction
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt; EXCH          &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instraction
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt; ADD[A &amp;#60;: Int] &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instraction
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt; VAR           &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instraction

&lt;span class=&quot;synType&quot;&gt;abstract&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt; StackVal 
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt;  StrVal[A &amp;#60;: &lt;span class=&quot;synConstant&quot;&gt;String&lt;/span&gt;](v:A)      &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; StackVal
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt;  CharVal[A &amp;#60;: Char](v:A)       &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; StackVal
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt;  IntVal[A &amp;#60;: Int](v:A)         &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; StackVal
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt;  BoolVal[A &amp;#60;: Boolean](v:A)    &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; StackVal
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt;  RealVal[A &amp;#60;: Double](v:A)     &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; StackVal
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt;  Name(v:&lt;span class=&quot;synConstant&quot;&gt;String&lt;/span&gt;)                &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; StackVal
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt;  Dict(m : Map[Name, StackVal])     &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; StackVal
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt;  ArrayVal(v:List[StackVal])       &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; StackVal
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt;  ExecArray[+Instr](v:List[Instr])   &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; StackVal
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Mark                       &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; StackVal
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Null                       &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; StackVal

&lt;span class=&quot;synComment&quot;&gt;//--------------------------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt; DictionaryStack {
  &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; m = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; Stack(): Stack[Dict]
  m.push(Dict(Map())) 
&lt;span class=&quot;synIdentifier&quot;&gt;  def&lt;/span&gt; push(d:Dict) {
    m.push(d)
  }
  &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; pop = ()=&amp;#62;{ m.pop }

&lt;span class=&quot;synIdentifier&quot;&gt;  def&lt;/span&gt; lookup(n:Name): Option[StackVal] = {
    &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; e = m.find( e =&amp;#62; e.m.contains(n) )
    e match {
      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; None    =&amp;#62; None
      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Some(x) =&amp;#62; x.m.get(n)
    }
  }
 &lt;span class=&quot;synType&quot;&gt;override&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt; def&lt;/span&gt; toString():&lt;span class=&quot;synConstant&quot;&gt;String&lt;/span&gt; = {
    &lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt; m.toString()
  }
}

&lt;span class=&quot;synComment&quot;&gt;//-----------------------------------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;synType&quot;&gt;abstract&lt;/span&gt;  &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt; Instr 
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Pop               &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt; Push(v:StackVal)   &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Exch              &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Dup               &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; If                &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; IfElse            &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Exec              &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Def               &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Load              &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Stor              &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Begin             &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; End               &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Loop              &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Exit              &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt;  Cvx(p:ExecArray[Instr])  &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr

&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Dynamic         &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr

&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Add             &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Sub             &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Mul             &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr

&lt;span class=&quot;synType&quot;&gt;case object&lt;/span&gt; Eq              &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; Instr
&lt;span class=&quot;synComment&quot;&gt;//---------------------------------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt; Enviroment {
  &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; operand    = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; Stack():  Stack[StackVal] 
  &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; execute    = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; Stack():  Stack[Instr]
  &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; dictionary = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; DictionaryStack():  DictionaryStack

&lt;span class=&quot;synIdentifier&quot;&gt;  def&lt;/span&gt; pushExec(a: ExecArray[Instr]) = {
    
    a match {
      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; ExecArray(is:List[Instr]) =&amp;#62; &lt;span class=&quot;synStatement&quot;&gt;for&lt;/span&gt; (i &amp;#60;- is.reverse) {execute.push(i)}
      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; _                         =&amp;#62; println(&lt;span class=&quot;synConstant&quot;&gt;&quot;abort&quot;&lt;/span&gt;)
    }
  }

  
&lt;span class=&quot;synIdentifier&quot;&gt;  def&lt;/span&gt; print() = {
    println(&lt;span class=&quot;synConstant&quot;&gt;&quot;op   &quot;&lt;/span&gt; ++ operand.toString())
    println(&lt;span class=&quot;synConstant&quot;&gt;&quot;exe  &quot;&lt;/span&gt; ++ execute.toString())
    println(&lt;span class=&quot;synConstant&quot;&gt;&quot;dict &quot;&lt;/span&gt; ++ dictionary.toString())
  }

}

&lt;span class=&quot;synComment&quot;&gt;//-----------------------------------------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;synType&quot;&gt;object&lt;/span&gt; StackParser &lt;span class=&quot;synType&quot;&gt;extends&lt;/span&gt; StandardTokenParsers  {
  lexical.reserved += ( &lt;span class=&quot;synConstant&quot;&gt;&quot;true&quot;&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;&quot;false&quot;&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;&quot;if&quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;&quot;ifelse&quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;&quot;exit&quot;&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;&quot;loop&quot;&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;&quot;pop&quot;&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;&quot;push&quot;&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;&quot;p&quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;&quot;mark&quot;&lt;/span&gt; , &lt;span class=&quot;synConstant&quot;&gt;&quot;add&quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;&quot;sub&quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;&quot;mul&quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;&quot;eq&quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;&quot;exec&quot;&lt;/span&gt;
                      , &lt;span class=&quot;synConstant&quot;&gt;&quot;exch&quot;&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;&quot;dup&quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;&quot;def&quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;&quot;begin&quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;&quot;end&quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;&quot;dynamic&quot;&lt;/span&gt;)
  lexical.delimiters +=(&lt;span class=&quot;synConstant&quot;&gt;&quot; &quot;&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;&quot;/&quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;&quot;{&quot;&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;&quot;}&quot;&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;&quot;[&quot;&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;&quot;]&quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;&quot;&amp;#60;&amp;#60;&quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;&quot;&amp;#62;&amp;#62;&quot;&lt;/span&gt; )

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; pop    : Parser [Instr] =  
    (&lt;span class=&quot;synConstant&quot;&gt;&quot;pop&quot;&lt;/span&gt;) ^^^ Pop 
  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; bool   : Parser [StackVal] =  
    (&lt;span class=&quot;synConstant&quot;&gt;&quot;true&quot;&lt;/span&gt;|&lt;span class=&quot;synConstant&quot;&gt;&quot;false&quot;&lt;/span&gt;) ^^ { &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&quot;true&quot;&lt;/span&gt; =&amp;#62; BoolVal(&lt;span class=&quot;synConstant&quot;&gt;true&lt;/span&gt;)
  &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&quot;false&quot;&lt;/span&gt; =&amp;#62; BoolVal(&lt;span class=&quot;synConstant&quot;&gt;false&lt;/span&gt;)
} 
  
  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt;    : Parser[StackVal] =  
    numericLit ^^ {&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; s =&amp;#62; IntVal(s.toInt)}  
  
  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; str    : Parser[StackVal] =  
    stringLit ^^ {&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; s =&amp;#62; StrVal(s.toString)}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; value  : Parser[StackVal] =  
    (bool | &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; | str | mark | name | compval)

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; push   : Parser[Instr] =  
    value ^^ { &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; v =&amp;#62;  Push(v)}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; compval : Parser[StackVal] =
    (dict | array | execArray ) 

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; array  : Parser[StackVal] =  
    (&lt;span class=&quot;synConstant&quot;&gt;&quot;[&quot;&lt;/span&gt; ~&amp;#62; rep(value) &amp;#60;~ &lt;span class=&quot;synConstant&quot;&gt;&quot;]&quot;&lt;/span&gt;) ^^ {&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; s =&amp;#62; ArrayVal(s)}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; execArray : Parser[ExecArray[Instr]] = 
    &lt;span class=&quot;synConstant&quot;&gt;&quot;{&quot;&lt;/span&gt; ~&amp;#62; terms &amp;#60;~ &lt;span class=&quot;synConstant&quot;&gt;&quot;}&quot;&lt;/span&gt; ^^ {&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; s =&amp;#62; ExecArray (s)}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; if_       : Parser[Instr] =  
    (&lt;span class=&quot;synConstant&quot;&gt;&quot;if&quot;&lt;/span&gt;)  ^^^ If

   lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; ifelse : Parser[Instr]  =
    (&lt;span class=&quot;synConstant&quot;&gt;&quot;ifelse&quot;&lt;/span&gt;) ^^^ {IfElse}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; add  : Parser[Instr]  = 
    &lt;span class=&quot;synConstant&quot;&gt;&quot;add&quot;&lt;/span&gt; ^^^ {Add}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; sub  : Parser[Instr]  = 
    &lt;span class=&quot;synConstant&quot;&gt;&quot;sub&quot;&lt;/span&gt; ^^^ {Sub}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; mul  : Parser[Instr]  = 
    &lt;span class=&quot;synConstant&quot;&gt;&quot;mul&quot;&lt;/span&gt; ^^^ {Mul}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; eq  : Parser[Instr]  = 
    &lt;span class=&quot;synConstant&quot;&gt;&quot;eq&quot;&lt;/span&gt; ^^^ {Eq}
 
  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; loop   : Parser[Instr]  = 
    &lt;span class=&quot;synConstant&quot;&gt;&quot;loop&quot;&lt;/span&gt; ^^^ {Loop}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; exit   : Parser[Instr]  = 
    (&lt;span class=&quot;synConstant&quot;&gt;&quot;exit&quot;&lt;/span&gt;) ^^^ {Exit}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; mark   : Parser[StackVal]  = 
    (&lt;span class=&quot;synConstant&quot;&gt;&quot;mark&quot;&lt;/span&gt;) ^^^ {Mark}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; name   : Parser[Name]  = 
    (&lt;span class=&quot;synConstant&quot;&gt;&quot;/&quot;&lt;/span&gt; ~&amp;#62; ident) ^^ { &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; s =&amp;#62; Name(s) }

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; pair   : Parser[(Name, StackVal)] = 
    (name ~ value) ^^ {&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; n ~ v =&amp;#62; (n,v) }

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; dict   : Parser[StackVal]  = 
    (&lt;span class=&quot;synConstant&quot;&gt;&quot;&amp;#60;&amp;#60;&quot;&lt;/span&gt; ~&amp;#62; rep1(pair) &amp;#60;~ &lt;span class=&quot;synConstant&quot;&gt;&quot;&amp;#62;&amp;#62;&quot;&lt;/span&gt;) ^^ { &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; (xs) =&amp;#62; Dict(xs.toMap) }
  
  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; def_ : Parser[Instr] =
    (&lt;span class=&quot;synConstant&quot;&gt;&quot;def&quot;&lt;/span&gt;) ^^^ {Def}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; begin  : Parser[Instr] = 
    &lt;span class=&quot;synConstant&quot;&gt;&quot;begin&quot;&lt;/span&gt; ^^^ {Begin}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; end    : Parser[Instr] = 
    &lt;span class=&quot;synConstant&quot;&gt;&quot;end&quot;&lt;/span&gt; ^^^ {End}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; exec : Parser[Instr] = 
    &lt;span class=&quot;synConstant&quot;&gt;&quot;exec&quot;&lt;/span&gt; ^^^ {Exec}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; exch : Parser[Instr] = 
    &lt;span class=&quot;synConstant&quot;&gt;&quot;exch&quot;&lt;/span&gt; ^^^ {Exch}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; dup : Parser[Instr] = 
    &lt;span class=&quot;synConstant&quot;&gt;&quot;dup&quot;&lt;/span&gt; ^^^ {Dup}

  
  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; dynamic :Parser[Instr] =
    (&lt;span class=&quot;synConstant&quot;&gt;&quot;dynamic&quot;&lt;/span&gt;) ^^^ {Dynamic}

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; sym : Parser[StackVal] = 
    ident ^^ { &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; s =&amp;#62; Name(s) }
  
  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; term   : Parser[Instr]  =  
    (exit | begin | end | push  | pop | add | sub | mul | eq | loop | if_ | ifelse | exec | exch | dup | def_ | begin | end | dynamic)

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; compterm : Parser[Instr] = 
    (if_)

  lazy &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; terms  : Parser[List[Instr]] = 
    rep1(term)
&lt;span class=&quot;synIdentifier&quot;&gt;   def&lt;/span&gt; parse(text : &lt;span class=&quot;synConstant&quot;&gt;String&lt;/span&gt;)(p : List[Instr]=&amp;#62;Unit) = {
       &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; scanner = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; StackParser.lexical.Scanner(text)
       &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; result  = StackParser.terms(scanner);
    
       result match {
 &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Success(result, x) =&amp;#62; println(&lt;span class=&quot;synConstant&quot;&gt;&quot;sucess : &quot;&lt;/span&gt; ++ result.toString ++ &lt;span class=&quot;synConstant&quot;&gt;&quot; / &quot;&lt;/span&gt;++ x.toString);
    p(result)
 &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Failure(msg, _)    =&amp;#62; println(&lt;span class=&quot;synConstant&quot;&gt;&quot;failure : &quot;&lt;/span&gt; ++ msg)
 &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Error(msg, _)      =&amp;#62; println(&lt;span class=&quot;synConstant&quot;&gt;&quot;error : &quot;&lt;/span&gt; ++ msg)
       }
   }
}



&lt;span class=&quot;synIdentifier&quot;&gt;def&lt;/span&gt; exit_(e: Enviroment):Enviroment =  {
  &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; p = e.execute.pop
  println(p)
   p match {
     &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Loop =&amp;#62; &lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt; e;
     &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; _    =&amp;#62; &lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt; exit_(e)
  }
}



&lt;span class=&quot;synComment&quot;&gt;//-------------------------------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;synType&quot;&gt;object&lt;/span&gt; Evaluator {
&lt;span class=&quot;synIdentifier&quot;&gt;  def&lt;/span&gt; eval(i:Instr, e:Enviroment): Enviroment = {
    println(i)

    i match {      
      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Pop     =&amp;#62; 
e.operand.pop;  

      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Push(v) =&amp;#62; 
println(&lt;span class=&quot;synConstant&quot;&gt;&quot;push&quot;&lt;/span&gt;);e.operand.push(v) ; 

      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Exch =&amp;#62; 
&lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; v1 = e.operand.pop; &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; v2 = e.operand.pop; 
      e.operand.push(v1); e.operand.push(v2);

      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Dup =&amp;#62; 
&lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; v1 = e.operand.pop; e.operand.push(v1);e.operand.push(v1);

      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; If =&amp;#62; 
&lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; p = e.operand.pop; &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; c = e.operand.pop
      (c,p) match {
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; (BoolVal(c),p:ExecArray[Instr])  =&amp;#62; &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; (c) {e.pushExec(p)} 
      }



      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; IfElse  =&amp;#62; 
&lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; p1 = e.operand.pop; &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; p2 = e.operand.pop; &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; c = e.operand.pop
      (c,p1,p2) match {
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; (BoolVal(c),p1:ExecArray[Instr],p2:ExecArray[Instr])  =&amp;#62; &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; (c) {e.pushExec(p1)} &lt;span class=&quot;synStatement&quot;&gt;else&lt;/span&gt;  {e.pushExec(p2)}  
      }


      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Def =&amp;#62;
&lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; v = e.operand.pop; &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; s = e.operand.pop;
(s,v) match { 
  &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; (n:Name,vs:StackVal) =&amp;#62; 

    e.dictionary.m.pop.m match {
      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; d:Map[Name,StackVal] =&amp;#62;   

e.dictionary.push(Dict(d + (n -&amp;#62; vs)));
    } 
}
      &lt;span class=&quot;synComment&quot;&gt;// for dictionar stack&lt;/span&gt;
      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Begin  =&amp;#62;  
&lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; v = e.operand.pop 
      v match {  
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Dict(d)  =&amp;#62;  e.dictionary.push(Dict(d)) ;
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; _        =&amp;#62; println(&lt;span class=&quot;synConstant&quot;&gt;&quot;unmatch type.&quot;&lt;/span&gt;)
      }

      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; End    =&amp;#62;  
e.dictionary.pop ;

      &lt;span class=&quot;synComment&quot;&gt;//  for execute stack&lt;/span&gt;
      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Exec  =&amp;#62; 
&lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; p = e.operand.pop
      p match { &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; ps:ExecArray[Instr] =&amp;#62; e.pushExec(ps) }


      &lt;span class=&quot;synComment&quot;&gt;// loop proc&lt;/span&gt;
      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Loop  =&amp;#62;        
&lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; p = e.operand.pop
      p match { &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; ExecArray(ps:List[Instr]) =&amp;#62; e.pushExec(ExecArray[Instr](Loop::ps)) }


      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Exit   =&amp;#62;            
exit_(e); 

      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Dynamic  =&amp;#62;
&lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; n = e.operand.pop
      n match {
&lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; n:Name =&amp;#62; 
  e.dictionary.lookup(n) match {
    &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Some(v) =&amp;#62; println(&lt;span class=&quot;synConstant&quot;&gt;&quot;found &quot;&lt;/span&gt; ++ v.toString);e.operand.push(v)
    &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; None    =&amp;#62; println(&lt;span class=&quot;synConstant&quot;&gt;&quot;unboud symbol&quot;&lt;/span&gt; ++ n.toString)
  }
      }


      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Add =&amp;#62;
&lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; v1 = e.operand.pop; &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; v2 = e.operand.pop;
      (v1,v2) match { &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; (IntVal(n1),IntVal(n2)) =&amp;#62; e.operand.push(IntVal[Int](n1+n2)); } 

      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Sub =&amp;#62;
&lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; v1 = e.operand.pop; &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; v2 = e.operand.pop;
      (v1,v2) match { &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; (IntVal(n1),IntVal(n2)) =&amp;#62; e.operand.push(IntVal[Int](n2-n1)); } 

      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Mul =&amp;#62;
&lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; v1 = e.operand.pop; &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; v2 = e.operand.pop;
      (v1,v2) match { &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; (IntVal(n1),IntVal(n2)) =&amp;#62; e.operand.push(IntVal[Int](n1*n2)); } 

      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Eq =&amp;#62;
&lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; v1 = e.operand.pop; &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; v2 = e.operand.pop;
      (v1,v2) match { &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; (IntVal(n1),IntVal(n2)) =&amp;#62; e.operand.push(BoolVal(n1==n2)); } 


      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; _       =&amp;#62; 
println(&lt;span class=&quot;synConstant&quot;&gt;&quot;this instruction not implements &quot;&lt;/span&gt; ++ i.toString ++ &lt;span class=&quot;synConstant&quot;&gt;&quot; .&quot;&lt;/span&gt;);
    }

    e.print
    &lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt; e;
  }
&lt;span class=&quot;synIdentifier&quot;&gt;  def&lt;/span&gt; run(e:Enviroment):Enviroment = {
    println(&lt;span class=&quot;synConstant&quot;&gt;&quot;run&quot;&lt;/span&gt;)
    &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; (!e.execute.isEmpty) {
      &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; i = e.execute.pop;
      &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; e2 = eval(i,e)
      &lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt; run(e2);
    }
    &lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt; e
  }


&lt;span class=&quot;synIdentifier&quot;&gt;  def&lt;/span&gt; parse(str:&lt;span class=&quot;synConstant&quot;&gt;String&lt;/span&gt;)  = {
    &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; e = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; Enviroment
    StackParser.parse(str)((x:List[Instr]) =&amp;#62; { e.pushExec(ExecArray(x)); run(e);});
  }

  

&lt;span class=&quot;synIdentifier&quot;&gt;  def&lt;/span&gt; cvx(ps:List[StackVal]):ExecArray[Instr] = {
    &lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt; ExecArray(ps.map((x)=&amp;#62; Push(x)))
  }


&lt;span class=&quot;synIdentifier&quot;&gt;  def&lt;/span&gt; repl() = {
    &lt;span class=&quot;synType&quot;&gt;var&lt;/span&gt; e = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; Enviroment
    print(&lt;span class=&quot;synConstant&quot;&gt;&quot;&amp;#62; &quot;&lt;/span&gt;)
    &lt;span class=&quot;synType&quot;&gt;var&lt;/span&gt; line = readLine

    &lt;span class=&quot;synStatement&quot;&gt;while&lt;/span&gt; (line != &lt;span class=&quot;synConstant&quot;&gt;&quot;quit&quot;&lt;/span&gt;) {

      StackParser.parse(line)((x:List[Instr]) =&amp;#62; 
{ e.pushExec(ExecArray(x)); 
  e =  run(e);
        });

      print(&lt;span class=&quot;synConstant&quot;&gt;&quot;&amp;#62; &quot;&lt;/span&gt;)
      line = readLine
    }
  }
}

&lt;span class=&quot;synIdentifier&quot;&gt;def&lt;/span&gt; parse(str:&lt;span class=&quot;synConstant&quot;&gt;String&lt;/span&gt;)  = {
  Evaluator.parse(str);
}


&lt;span class=&quot;synIdentifier&quot;&gt;def&lt;/span&gt; repl() = {
  Evaluator.repl
}

&lt;span class=&quot;synComment&quot;&gt;// /fact { dup 1 eq  { dup 1 sub  /fact dynamic  exec mul } { pop 1 } ifelse }  def 10 /fact dynamic exec&lt;/span&gt;
&lt;/pre&gt;

&lt;/div&gt;</content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Massive construction work at Iidabashi</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/_ue0KG8PaV4/"/>
		<id>http://www.pietrozuco.com/?p=2337</id>
		<updated>2011-07-21T07:17:33+00:00</updated>
		<content type="html">&lt;p&gt;It&amp;#8217;s quite usual in Tokyo to see a building in some place, and after one week or less it just disappeared and after some months, you come back to the same place and you see a new building. Tokyo&amp;#8217;s shape changes really quickly, but what I saw today was beyond what I&amp;#8217;m used to see. At least in my 5 years living here.&lt;/p&gt;
&lt;p&gt;As you can see in the map, the blue area has been completely demolished. Hundred of apartments and tens of buildings just removed. I don&amp;#8217;t know what they are building there, but just imagine the process to move all those people and companies away from there.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/iidabashiconstructionwork1.jpg&quot;&gt;&lt;img src=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/iidabashiconstructionwork1.jpg?w=600&quot; alt=&quot;&quot; title=&quot;iidabashiconstructionwork&quot; width=&quot;600&quot; height=&quot;542&quot; class=&quot;alignnone size-medium wp-image-2343&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://maps.google.com/maps/ms?msid=213641766438208403039.0004a88ec32aac1d7e468&amp;amp;msa=0&amp;amp;ll=35.69851,139.743299&amp;amp;spn=0.00198,0.002875&quot;&gt;Map here.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Look at that! The blue zone has been completely demolished&amp;#8230;&lt;/p&gt;
&lt;p&gt;Some pictures of the current construction work. Any ideas of what are they building there?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_62871.jpg&quot;&gt;&lt;img src=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_62871.jpg?w=600&quot; alt=&quot;&quot; title=&quot;IMG_6287&quot; width=&quot;600&quot; height=&quot;450&quot; class=&quot;alignnone size-medium wp-image-2341&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_62881.jpg&quot;&gt;&lt;img src=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_62881.jpg?w=600&quot; alt=&quot;&quot; title=&quot;IMG_6288&quot; width=&quot;600&quot; height=&quot;450&quot; class=&quot;alignnone size-medium wp-image-2340&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_62891.jpg&quot;&gt;&lt;img src=&quot;http://blog.zuco.org/wp-content/uploads/2011/09/img_62891.jpg?w=600&quot; alt=&quot;&quot; title=&quot;IMG_6289&quot; width=&quot;600&quot; height=&quot;450&quot; class=&quot;alignnone size-medium wp-image-2339&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/_ue0KG8PaV4&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">A Step Towards Internationalizing the Japanese Ruby Community</title>
		<link href="http://www.mobalean.com/blog/2011/07/20/a-step-towards-internationalizing-the-japanese-ruby-community"/>
		<id>urn:uuid:68dc0551-172b-4dd0-ad70-dda2c9ea0bc8</id>
		<updated>2011-07-20T17:13:00+00:00</updated>
		<content type="html">&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;http://vimeo.com/26507951&quot;&gt;Aaron Patterson&amp;rsquo;s opening keynote&lt;/a&gt; at this year&amp;rsquo;s RubyKaigi once again raised the issue of communication between Japanese and international Rubyists. This topic also came up in &lt;a href=&quot;http://vimeo.com/26541587&quot;&gt;Akira Matsuda&amp;rsquo;s&lt;/a&gt; and &lt;a href=&quot;http://www.slideshare.net/kakutani/the-gate-8616906&quot;&gt;Shintaro Kakutani&amp;rsquo;s&lt;/a&gt; presentations. I also gave &lt;a href=&quot;http://www.ustream.tv/recorded/16057682/highlight/187818&quot;&gt;a lightning talk&lt;/a&gt; where I presented some ideas for creating globally minded Japanese Rubyists. Helping to address the issues raised in these presentations is a goal I am working towards.&lt;/p&gt;
&lt;p&gt;
	A key part in internationalizing the local community is involving Japan&amp;rsquo;s foreign residents. At last night&amp;rsquo;s asakusa.rb meetup, I was impressed that all the speakers gave presentations in English. Having around five foreigners listening was enough of an impetus for Japanese to speak in English, something that wouldn&amp;rsquo;t have happened if all participants were Japanese.&lt;/p&gt;
&lt;p&gt;
	With &lt;a href=&quot;http://tokyorubyistmeetup.doorkeeper.jp/&quot;&gt;Tokyo Rubyist Meetup&lt;/a&gt;, we are creating an opportunity for Japanese and non-Japanese Rubyists to get together. However, it will take more than a meetup every couple of months to create real change within the community. With that in mind, I created a survey for &amp;ldquo;Rubyを使っての英語学習&amp;rdquo;, asking participants for feedback on how they would like to combine using Ruby and learning English.&lt;/p&gt;
&lt;p&gt;
	&lt;img alt=&quot;Results of「Rubyを使っての英語学習」Survey &quot; height=&quot;371&quot; src=&quot;https://spreadsheets.google.com/a/mobalean.com/spreadsheet/oimg?key=0AicWrbiWsf7SdGZIc0N2d2VrT1VpWFl3ZURtOFVFdUE&amp;amp;oid=1&amp;amp;zx=sp6fg0gf1pal&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;
&lt;p&gt;
	The result shows that people are most interested in interactive activities, such as pair programming or a workshop, in a small group or one-on-one basis. As a trial of this, I&amp;rsquo;ve created &lt;a href=&quot;http://rubyeigo.doorkeeper.jp/&quot;&gt;Drop in Ruby 英会話&lt;/a&gt;, which will have up to four participants come to our office, where we will talk about and use ruby together. By running this event in a casual manner, I hope to be able to adapt the session to the participants individual skill levels, and to get a better idea of how we can continue with this approach in the future.&lt;/p&gt;
&lt;p&gt;
	Like learning a language, the most important thing in making the community more global is to try. As such, I intend to continue to explore different paths we can take to internationalization. Continued feedback from everyone is welcome. You can find me on Twitter as &lt;a href=&quot;http://twitter.com/pwim&quot;&gt;@pwim&lt;/a&gt;.&lt;/p&gt;</content>
		<author>
			<name>Paul McMahon</name>
			<email>paul@mobalean.com</email>
			<uri>http://www.mobalean.com/blog</uri>
		</author>
		<source>
			<title type="html">mobalean Blog : Paul McMahon | mobalean Blog</title>
			<subtitle type="html">Mobile in Japan</subtitle>
			<link rel="self" href="http://www.mobalean.com/blog/author/paul.rss"/>
			<id>http://www.mobalean.com/blog/author/paul.rss</id>
			<updated>2012-01-13T08:38:04+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Rubyを使っての英語学習</title>
		<link href="http://www.mobalean.com/blog/2011/07/14/ruby-english"/>
		<id>urn:uuid:7ce8d763-593d-402a-9866-dedc98ec68f9</id>
		<updated>2011-07-14T19:40:00+00:00</updated>
		<content type="html">&lt;p&gt;
	Rubyは日本で開発されたプログラミング言語で、CRubyのコア実装に関わった多くのコントリビューター（貢献者）は、日本人です。 しかしながら、日本人ではないRubyユーザは、日本人よりはるかに多く存在します。 Web開発のフレームワークとして成功を収めているRuby on Railsを例にとっても、約1000人のコントリビューターの中で、日本人は1%以下です。これは、日本でRubyが十分に活用できていないことを表しています。&lt;/p&gt;
&lt;p&gt;
	日本のデベロッパーが国際的なRubyコミュニティに参加できていない一つの理由に、言語の違いがあります。日本は歴史的な経緯や島国ということもあり、一般的な日本人は、日本人ではない人と話す機会があまりなく、まして英語を話す人との機会は、英語を得意としない周辺諸国と比べても多くありません。&lt;/p&gt;
&lt;p&gt;
	昨年のRuby会議以降、私は日本のRubyコミュニティの国際化のために動いています。そのため、私のように東京に住んでいる、日本人ではないrubyistsのための&lt;a href=&quot;http://www.tokyorubyistmeetup.org&quot;&gt;Tokyo Rubyist Meetup&lt;/a&gt;を作り、日本人のrubyistsたちと集まることができています。このイベントはとても成功していますが、まだまだ改善の余地があります。&lt;/p&gt;
&lt;p&gt;
	私は、英語学習とRubyを組み合わせたアイディアを模索しています。英語を学習する最もポピュラーな方法は、英会話学校に通うことです。しかし、英会話学校の先生は技術的な知識は持っておらず、Rubyについて語り合うことはできません。そこで、1つのアイディアとして、Rubyについて語り合える英会話学校形式のクラスを作ってみてはと思っています。これは、日本人が、英語で技術的なトピックについて話すいい練習の機会になると思います。&lt;/p&gt;
&lt;p&gt;
	他のアイディアとして、英語でRubyの使い方を学ぶ講義形式のセミナーやコースも考えています。これは、日本人に技術的な英語の練習とRubyの学習を同時にできる機会を与えてくれます。&lt;/p&gt;
&lt;p&gt;
	英語による1対1のペアプログラミングは、Rubyと英語のスキルが同時に改善するもう一つの方法です。ペアプログラミングでの開発は大変素晴らしく、それはコミュニケーションを頻繁に必要とし、技術的な英語を学ぶ理想的な方法だと思います。&lt;/p&gt;
&lt;p&gt;
	もし、英語を上達したいと考えていたり、いくつかのアイディアに興味を持っていただけたなら、&lt;a href=&quot;https://spreadsheets.google.com/a/mobalean.com/spreadsheet/viewform?formkey=dGZIc0N2d2VrT1VpWFl3ZURtOFVFdUE6MQ&quot;&gt;「Rubyを使っての英語学習について」のアンケート&lt;/a&gt;にご協力いただけますと幸いです。&lt;/p&gt;
&lt;p&gt;
	よろしくお願いいたします。&lt;/p&gt;</content>
		<author>
			<name>Paul McMahon</name>
			<email>paul@mobalean.com</email>
			<uri>http://www.mobalean.com/blog</uri>
		</author>
		<source>
			<title type="html">mobalean Blog : Paul McMahon | mobalean Blog</title>
			<subtitle type="html">Mobile in Japan</subtitle>
			<link rel="self" href="http://www.mobalean.com/blog/author/paul.rss"/>
			<id>http://www.mobalean.com/blog/author/paul.rss</id>
			<updated>2012-01-13T08:38:04+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">[Scala]</title>
		<link href="http://d.hatena.ne.jp/oskimura/20110714/1310623918"/>
		<id>http://d.hatena.ne.jp/oskimura/20110714/1310623918</id>
		<updated>2011-07-14T06:11:58+00:00</updated>
		<content type="html" xml:lang="ja">&lt;div class=&quot;section&quot;&gt;
&lt;p&gt;Scalaで次のような定義をすると&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synType&quot;&gt;class&lt;/span&gt; DictionaryStack
{
  &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; m = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; Stack(): Stack[Dict]
&lt;span class=&quot;synIdentifier&quot;&gt;  def&lt;/span&gt; push(d:Dict) {
    m.push(d)
  }
  &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; pop = ()=&amp;#62;{ m.pop }

&lt;span class=&quot;synIdentifier&quot;&gt;  def&lt;/span&gt; lookup(n:Name){
    &lt;span class=&quot;synType&quot;&gt;val&lt;/span&gt; e = m.find( e =&amp;#62; e.m.contains(n) )
    e match {
      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; None =&amp;#62; None
      &lt;span class=&quot;synType&quot;&gt;case&lt;/span&gt; Some(x) =&amp;#62; Some(x.m.get(n))
    }
  }
}
&lt;/pre&gt;

&lt;p&gt;DictionaryStackのインスタンスを作成して&lt;/p&gt;
&lt;p&gt;メソッドを呼びだそうとするとpop()もpush()も無いといわれる…&lt;/p&gt;
&lt;/div&gt;</content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Is this a Sunspot?</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/Luj8Ygz0Qgw/"/>
		<id>http://zucowall.com/blog/?p=2023</id>
		<updated>2011-07-12T09:05:28+00:00</updated>
		<content type="html">&lt;p&gt;For the first 2 pictures I used a Nikon D700, lens 200mm.&lt;br /&gt;
I think it&amp;#8217;s a sunspot, of course the big one is dust on the lens &lt;img src=&quot;http://blog.zuco.org/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm7.static.flickr.com/6129/5929175337_a2f796521e.jpg&quot; width=&quot;367&quot; height=&quot;353&quot; alt=&quot;Sunspot1&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm7.static.flickr.com/6133/5929733288_1836720c90.jpg&quot; width=&quot;446&quot; height=&quot;396&quot; alt=&quot;Sunspot2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;These ones with a Nikon D200 with a 300mm lens. &lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm7.static.flickr.com/6137/5929175225_f5361345ff.jpg&quot; width=&quot;500&quot; height=&quot;483&quot; alt=&quot;Sunspot3&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm7.static.flickr.com/6016/5929175151_fd2087027f.jpg&quot; width=&quot;500&quot; height=&quot;494&quot; alt=&quot;Sunspot4&quot; /&gt;&lt;/p&gt;
&lt;p&gt;For both pictures I used a polarized filter and an ND filter. Maximum speed, smallest aperture and minimum ISO.&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/Luj8Ygz0Qgw&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">Start::Clean</title>
		<link href="http://d.hatena.ne.jp/oskimura/20110711/1310350531"/>
		<id>http://d.hatena.ne.jp/oskimura/20110711/1310350531</id>
		<updated>2011-07-11T02:15:31+00:00</updated>
		<content type="html" xml:lang="ja">&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;先日スタートCleanをおこないました。みなさんこんな誰得？な集まりにきて頂いてありがとうございました。&lt;/p&gt;
			&lt;br /&gt;

			&lt;h4&gt; 私がおこなったプレゼンです&lt;/h4&gt;
			&lt;p&gt;&lt;div id=&quot;__ss_8554799&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.slideshare.net/oskimura/clean-8554799&quot; title=&quot;Clean &quot;&gt;Clean &lt;/a&gt;&lt;/strong&gt;&lt;div&gt;View more &lt;a href=&quot;http://www.slideshare.net/&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/oskimura&quot;&gt;Osamu Kimura&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;
			&lt;br /&gt;

			&lt;p&gt;みんな&lt;/p&gt;
			&lt;p&gt;CleanはWindows以外ですんなり動かずみんな苦労していました…&lt;/p&gt;
			&lt;p&gt;みんなLinuxやMac…&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; ツイッターのまとめです&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;&lt;a href=&quot;http://togetter.com/li/159883&quot; target=&quot;_blank&quot;&gt;http://togetter.com/li/159883&lt;/a&gt;&lt;/p&gt;
			&lt;h4&gt; ranhaさん&lt;/h4&gt;

			&lt;ul&gt;
				&lt;li&gt; Cleanの∃∀がおかしいといいだす&lt;/li&gt;
				&lt;li&gt; ranhaさんが  Start = Startな式を書いたり&lt;/li&gt;
				&lt;li&gt; Startを不動点の式につっこんだり&lt;/li&gt;
				&lt;li&gt; 一人End Cleanを開始していたのが印象てきでした&lt;/li&gt;
			&lt;/ul&gt;
			&lt;br /&gt;

			&lt;p&gt;懇親会では定理証明器でPEGパーサーを証明する話とかをしてました。&lt;/p&gt;
			&lt;p&gt;基本的にgdgdした感じに終始してました…&lt;/p&gt;
			&lt;h4&gt; 追記&lt;/h4&gt;
			&lt;p&gt;&lt;a href=&quot;http://d.hatena.ne.jp/eldesh/&quot;&gt;id:eldesh&lt;/a&gt;さんのまとめ&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://d.hatena.ne.jp/eldesh/20110711/1310375107&quot; target=&quot;_blank&quot;&gt;http://d.hatena.ne.jp/eldesh/20110711/1310375107&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;</content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">[memo][Clean]ジェネリック</title>
		<link href="http://d.hatena.ne.jp/oskimura/20110704/1309786161"/>
		<id>http://d.hatena.ne.jp/oskimura/20110704/1309786161</id>
		<updated>2011-07-04T13:29:21+00:00</updated>
		<content type="html" xml:lang="ja">&lt;div class=&quot;section&quot;&gt;
			&lt;h4&gt; 動機&lt;/h4&gt;
			&lt;p&gt;TreeとListの(==)とかに明示的に関数の定義をするのが面倒なので自動的に定義してほしい。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
:: List a = Nil a
          | Cons a (List a)
:: Tree a = Leaf a
          | Node (Tree a) (Tree a)
&lt;/pre&gt;

&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synStatement&quot;&gt;class&lt;/span&gt; Functor f
&lt;span class=&quot;synStatement&quot;&gt;where&lt;/span&gt;
    &lt;span class=&quot;synType&quot;&gt;fmap :: (a -&amp;#62; b) (f a) -&amp;#62; (f b)&lt;/span&gt;
&lt;/pre&gt;

			&lt;h4&gt; アイディア&lt;/h4&gt;
			&lt;p&gt;代数的データ構造って直積、直和、Unitから構成されている&lt;/p&gt;
			&lt;p&gt;それと関数と基本型を押さえればいけるはず&lt;/p&gt;
			&lt;br /&gt;

			&lt;p&gt;それぞれUNIT、直和、直積を表現するため&lt;/p&gt;
&lt;pre&gt;
:: UNIT a     = UNIT a
:: PAIR a b   = PAIR a b
:: EITHER l r = LEFT l | RIGHT r
&lt;/pre&gt;

			&lt;p&gt;変換関数&lt;/p&gt;
&lt;pre&gt;
:: ListS a :== EITHER UNIT (PAIR a (List a))
&lt;/pre&gt;

			&lt;p&gt;代数的構造のリストから構造へ&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synType&quot;&gt;listToStruct  :: (List a)  -&amp;#62; ListS a&lt;/span&gt;
listToStruct Nil           = LEFT UNIT
listToStruct (Cons x xs)   = RIGHT (PAIR x xs)
&lt;/pre&gt;

			&lt;p&gt;構造から代数的構造のリストへ&lt;/p&gt;
&lt;pre&gt;
listFromStruct  :: (ListS a) -&amp;#62; List a
listFromStruct (LEFT UNIT)         = Nil
listFromStruct (RIGHT (PAIR x xs)  = Cons x xs
&lt;/pre&gt;

			&lt;h4&gt; 総称関数&lt;/h4&gt;
			&lt;p&gt;総称定義から様々な種類の型のインスタンスを導出できる。&lt;/p&gt;
&lt;pre&gt;
Generics定義  = 総称定義 ;
              | 総称ケース;
              | 導出定義;

総称定義      = generic 関数名 型変数+ :: 関数の型
総称ケース    = 関数名 {|総称型引数|} {パターン}+ = 関数本体
総称型引数    = CONS &amp;#91;of {パターン}]
              | FIELD &amp;#91;of {パターン}]
              | 型構成子名
              | 型変数
&lt;/pre&gt;

			&lt;p&gt;ジェネリックなmap関数の定義&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synType&quot;&gt;generic gMap a b ::     a          -&amp;#62; b&lt;/span&gt;
gMap &lt;span class=&quot;synSpecial&quot;&gt;{|c|}&lt;/span&gt;       x                 = x
gMap &lt;span class=&quot;synSpecial&quot;&gt;{|PAIR|}&lt;/span&gt;    fx fy  (PAIR x y) = PAIR (fx x) (fy y)
gMap &lt;span class=&quot;synSpecial&quot;&gt;{|EITHER|}&lt;/span&gt;  fl fr  (LEFT x)   = LEFT (fl x)
gMap &lt;span class=&quot;synSpecial&quot;&gt;{|EITHER|}&lt;/span&gt;  fl fr  (RIGHT x)  = RIGHT (fr x)
gMap &lt;span class=&quot;synSpecial&quot;&gt;{|CONS|}&lt;/span&gt;    fx     (CONS x)   = CONS (fx x)
gMap &lt;span class=&quot;synSpecial&quot;&gt;{|FIELD|}&lt;/span&gt;   fx     (FIELD x)  = FIELD (fx x)
&lt;/pre&gt;

			&lt;p&gt;ジェネリックな等価(==) 定義&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synType&quot;&gt;generic gEq a ::       a            a            -&amp;#62; Bool&lt;/span&gt;
gEq &lt;span class=&quot;synSpecial&quot;&gt;{|&lt;/span&gt;&lt;span class=&quot;synType&quot;&gt;Int&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;|}&lt;/span&gt;            x            y            = x == y
gEq &lt;span class=&quot;synSpecial&quot;&gt;{|&lt;/span&gt;&lt;span class=&quot;synType&quot;&gt;Char&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;|}&lt;/span&gt;           x            y            = x == y
gEq &lt;span class=&quot;synSpecial&quot;&gt;{|&lt;/span&gt;&lt;span class=&quot;synType&quot;&gt;Bool&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;|}&lt;/span&gt;           x            y            = x == y
gEq &lt;span class=&quot;synSpecial&quot;&gt;{|&lt;/span&gt;&lt;span class=&quot;synType&quot;&gt;Real&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;|}&lt;/span&gt;           x            y            = x == y
gEq &lt;span class=&quot;synSpecial&quot;&gt;{|UNIT|}&lt;/span&gt;           UNIT         UNIT         = &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;
gEq &lt;span class=&quot;synSpecial&quot;&gt;{|PAIR|}&lt;/span&gt;   eqx eqy (PAIR x1 y1) (PAIR x2 y2) = eqx x1 x2 &amp;#38;&amp;#38; eqy y1 y2
gEq &lt;span class=&quot;synSpecial&quot;&gt;{|EITHER|}&lt;/span&gt; eql eqr (LEFT x)     (LEFT y)     = eql x y
gEq &lt;span class=&quot;synSpecial&quot;&gt;{|EITHER|}&lt;/span&gt; eql eqr (RIGHT x)    (RIGHT y)    = eqr x y
gEq &lt;span class=&quot;synSpecial&quot;&gt;{|EITHER|}&lt;/span&gt; eql eqr  x           y            = &lt;span class=&quot;synConstant&quot;&gt;False&lt;/span&gt;
gEq &lt;span class=&quot;synSpecial&quot;&gt;{|CONS|}&lt;/span&gt;   eq      (CONS x)     (CONS y)     = eq x y
gEq &lt;span class=&quot;synSpecial&quot;&gt;{|FIELD|}&lt;/span&gt;  eq      (FIELD x)    (FIELD y)    = eq x y
&lt;/pre&gt;

			&lt;p&gt;gMapは自動的に次のような型classを定義します&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synStatement&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;gMap{|*|} t         :: t -&amp;#62; t&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;gMap{|*-&amp;#62;*|} t      :: (a -&amp;#62; b) (t a) -&amp;#62; t b&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;gMap{|*-&amp;#62;*-&amp;#62;*|} t   :: (a1 -&amp;#62; b1) (a2 -&amp;#62; b2) (t a1 a2) -&amp;#62; t b1 b2&lt;/span&gt;
&lt;/pre&gt;

			&lt;p&gt;インスタンスの導出&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
derive gEq  List, Tree, &lt;span class=&quot;synSpecial&quot;&gt;[]&lt;/span&gt;
derive gMap List, Tree, &lt;span class=&quot;synSpecial&quot;&gt;[]&lt;/span&gt;
&lt;/pre&gt;

			&lt;p&gt;gMapを使用するにはkindを指定する必要があります。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synType&quot;&gt;fmap :: (a -&amp;#62; b) (f a) -&amp;#62; (f b) | gMap{|*-&amp;#62;*|} f&lt;/span&gt;
fmap f x y = gMap&lt;span class=&quot;synSpecial&quot;&gt;{|*-&amp;#62;*|}&lt;/span&gt; f x y
&lt;/pre&gt;

&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synType&quot;&gt;bmap :: (a1 -&amp;#62; b1) (a2 -&amp;#62; b2) (f a1 a2) -&amp;#62; (f b1 b2) | gMap{|*-&amp;#62;*-&amp;#62;*|} f&lt;/span&gt;
bmap f1 f2 x y = gMap&lt;span class=&quot;synSpecial&quot;&gt;{|*-&amp;#62;*-&amp;#62;*|}&lt;/span&gt; f1 f2 x y
&lt;/pre&gt;

			&lt;h5&gt; 課題&lt;/h5&gt;
&lt;pre&gt;
等値性は、種*に関してのみ意味をなすのではない。本例では、要素比較の標準的な方法を変える。
種*と*-&amp;#62;*の等値性を明示的に使用する
&lt;/pre&gt;
			&lt;p&gt;というのはよく分からなかった&lt;/p&gt;
		&lt;/div&gt;</content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">[PostScript] Green Bookを読んで</title>
		<link href="http://d.hatena.ne.jp/oskimura/20110703/1309658211"/>
		<id>http://d.hatena.ne.jp/oskimura/20110703/1309658211</id>
		<updated>2011-07-03T01:56:51+00:00</updated>
		<content type="html" xml:lang="ja">&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;二章の実行モデルの所を読みました&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; OPERAND STACK&lt;/li&gt;
				&lt;li&gt; DICTIONARY STACK&lt;/li&gt;
				&lt;li&gt; EXECUTION STACK&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;(あとこれにGraphic State Stackと言うのもあるそうです)&lt;/p&gt;
			&lt;h4&gt; THE OPERAND STACK&lt;/h4&gt;
			&lt;p&gt;様々オブジェクトを置くスタックです&lt;/p&gt;
			&lt;p&gt;オブジェクトは二種類あって&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; simple object&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;integer, mark, real, boolean, name, and null&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; composite object&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;string, dictionary, array,procedure&lt;/p&gt;
			&lt;p&gt;procedure=実行可能配列&lt;/p&gt;
			&lt;h4&gt; THE DICTIONARY STACK&lt;/h4&gt;
			&lt;p&gt;辞書を保存するスタック&lt;/p&gt;
			&lt;p&gt;辞書は一般の言語に置ける環境のスコープの様にあつかう事ができる&lt;/p&gt;
			&lt;p&gt;symbol load&lt;/p&gt;
			&lt;p&gt;の様に使用する事により、辞書スタックのトップから順に下に検索していく。&lt;/p&gt;
			&lt;p&gt;初期状態ではsystemdictとuserdictが積まれている状態です。&lt;/p&gt;
			&lt;p&gt;beginとすることで、OPERAND STACKのトップにある辞書をDICTIONARY STACKのトップに積む事ができます&lt;/p&gt;
			&lt;p&gt;endとすることでDICTIONARY STACKに対してpopすることができます。&lt;/p&gt;
			&lt;p&gt;name loadとすることで、DICTIONARY STACKからnameに一致する値を検索します。&lt;/p&gt;
			&lt;p&gt;name var store とすることで、&amp;#60;name,value&amp;#62;のペアを設定できます。&lt;/p&gt;
			&lt;h4&gt; THE EXECUTION STACK&lt;/h4&gt;
			&lt;p&gt;実行スタックは実行可能配列を保存するスタックです。&lt;/p&gt;
			&lt;p&gt;対話環境の場合&lt;/p&gt;
			&lt;p&gt;exec, run, or stopped, for, ifelse, forall&lt;/p&gt;
			&lt;p&gt;などの命令が明示的にEXECUTION STACKに積む命令です。&lt;/p&gt;
			&lt;p&gt;初期状態では- job server -が積まれているようです。&lt;/p&gt;
		&lt;/div&gt;</content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">When storage technology improvement will come?</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/iXkJ7Ca_V1k/"/>
		<id>http://www.zuco.org/?p=2314</id>
		<updated>2011-07-02T17:52:00+00:00</updated>
		<content type="html">&lt;p&gt;Just look at this screenshot from &lt;a href=&quot;http://store.apple.com/us/product/H5184VC/A/Thunderbolt&quot;&gt;Apple&lt;/a&gt; and let me know what you think:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.pietrozuco.com/wp-content/uploads/2011/06/primitivestorage.png&quot;&gt;&lt;img src=&quot;http://www.pietrozuco.com/wp-content/uploads/2011/06/primitivestorage-600x369.png&quot; alt=&quot;&quot; title=&quot;primitivestorage&quot; width=&quot;600&quot; height=&quot;369&quot; class=&quot;alignnone size-medium wp-image-2315&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m not criticizing Apple. In fact it&amp;#8217;s one of the few companies that is really trying to combine design, technology, usability and performance in their products. &lt;img src=&quot;http://www.pietrozuco.com/wp-content/uploads/2011/06/Portable_78_rpm_record_player.jpg&quot; alt=&quot;&quot; title=&quot;Portable_78_rpm_record_player&quot; width=&quot;189&quot; height=&quot;252&quot; class=&quot;alignright size-full wp-image-2319&quot; /&gt; Even if storage improved during the last years, it&amp;#8217;s still in the Neolithic Era compared with other technologies. Just look at that huge box. It&amp;#8217;s bigger than the laptop next to it. For example, in the same place we can put an entire computer. Storage is only capable to put a hard mechanical drive, with a metallic disk, an engine and a head reading its surface&amp;#8230; It&amp;#8217;s just an evolution of the phonograph concept, using magnetic fields. On the right we have an early &lt;a href=&quot;http://en.wikipedia.org/wiki/Phonograph&quot;&gt;1930s portable wind-up phonograph&lt;/a&gt; &lt;img src=&quot;http://blog.zuco.org/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt;&lt;br /&gt;
I wonder when we will have a real improvement in storage. I mean having the same 4T of the picture, right in the same space of a 2.5inch disk for example.&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/iXkJ7Ca_V1k&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">[memo] Jetty6.1のソースを読んでみた</title>
		<link href="http://d.hatena.ne.jp/oskimura/20110630/1309441337"/>
		<id>http://d.hatena.ne.jp/oskimura/20110630/1309441337</id>
		<updated>2011-06-30T13:42:17+00:00</updated>
		<content type="html" xml:lang="ja">&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;JettyはServletに基づくWebコンテナです。&lt;/p&gt;
			&lt;br /&gt;

			&lt;h4&gt; 初期化時&lt;/h4&gt;
			&lt;p&gt;MainからはServerが作成され、ContextHandlerCollectionがhandlerにSocketConnectorがconnectorに設定され、&lt;/p&gt;
			&lt;p&gt;Server.start()-&amp;#62;Server.doStart()でServer実行が開始される。&lt;/p&gt;
			&lt;p&gt;ServerにdoStart(),doStop()というのが定義されていて、これがデーモンになってる。&lt;/p&gt;
			&lt;p&gt;このデーモンが通信を行うためのHandlerをstartさせる。&lt;/p&gt;
			&lt;p&gt;_sessionIdManager.start()&lt;/p&gt;
			&lt;p&gt;_threadPool.start()&lt;/p&gt;
			&lt;p&gt;が実行されtreadが動きます&lt;/p&gt;
			&lt;br /&gt;

			&lt;br /&gt;

			&lt;br /&gt;

			&lt;h4&gt; リクエスト&lt;/h4&gt;
			&lt;p&gt;SelectChannelConnectorがHttpConnectionを作成し&lt;/p&gt;
			&lt;p&gt;HttpConnection作成時にServer,Connectorが渡され、parser,RequestHandler,request,responseを作成するっぽい。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
    &lt;span class=&quot;synType&quot;&gt;public&lt;/span&gt; HttpConnection(Connector connector, EndPoint endpoint, Server server)
    {
        _uri = URIUtil.__CHARSET==StringUtil.__UTF8?&lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; HttpURI():&lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; EncodedHttpURI(URIUtil.__CHARSET);
        _connector = connector;
        _endp = endpoint;
        _parser = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; HttpParser(_connector,endpoint,&lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; RequestHandler(),_connector.getHeaderBufferSize(),_connector.getRequestBufferSize());
        _requestFields = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; HttpFields();
        _responseFields = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; HttpFields();
        _request = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; Request(&lt;span class=&quot;synType&quot;&gt;this&lt;/span&gt;);
        _response = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; Response(&lt;span class=&quot;synType&quot;&gt;this&lt;/span&gt;);
        _generator = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; HttpGenerator(_connector,_endp,_connector.getHeaderBufferSize(),_connector.getResponseBufferSize());
        _generator.setSendServerVersion(server.getSendServerVersion());
        _server = server;
    }
&lt;/pre&gt;

			&lt;p&gt;ServerからServerHandlerまでhandle()を使って処理を委譲するのが基本動作っぽい(target,ServletRequest,ServletResposnt,int)を渡し続ける&lt;/p&gt;
			&lt;p&gt;気になったこと RequestがContinuationを持っている！&lt;/p&gt;
			&lt;p&gt;出力時に&lt;/p&gt;
			&lt;p&gt;HttpConection$Output.flush()で書き出し（response）&lt;/p&gt;
			&lt;p&gt;SelectChannelEndPointは出力（response）&lt;/p&gt;
			&lt;p&gt;みたいなことをするっぽい.&lt;/p&gt;
			&lt;h4&gt;　今後&lt;/h4&gt;
			&lt;p&gt;ThreadPoolやContinuation回りのリクエストをどう捌いているかをみたい。&lt;/p&gt;
			&lt;h4&gt; 追記&lt;/h4&gt;
			&lt;p&gt;SelectorManagerにこんなコメントが…&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
                    &lt;span class=&quot;synComment&quot;&gt;// Look for JVM bugs over a monitor period.&lt;/span&gt;
                    &lt;span class=&quot;synComment&quot;&gt;// http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6403933&lt;/span&gt;
                    &lt;span class=&quot;synComment&quot;&gt;// http://bugs.sun.com/view_bug.do?bug_id=6693490&lt;/span&gt;
&lt;/pre&gt;

		&lt;/div&gt;</content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Using the Asset Pipeline under Rails 3.1</title>
		<link href="http://www.mobalean.com/blog/2011/06/29/using-the-asset-pipeline-under-rails-3-1"/>
		<id>urn:uuid:30553663-3903-4f8e-989f-caf2e7a41066</id>
		<updated>2011-06-29T10:24:00+00:00</updated>
		<content type="html">&lt;p&gt;
	&lt;a href=&quot;https://www.seikyusho.jp&quot;&gt;請求書.jp&lt;/a&gt; allows Japanese freelancers and small businesses to easily create invoices. We&amp;rsquo;ve built it using Rails 3.0 in conjunction with Coffee Script and Sass, and host the application on Heroku. Although CoffeeScript and Sass have made developing the service easier, getting them setup on Heroku is a bit of a hassle. However, Rails 3.1 introduces the asset pipeline, which not only makes it easier to use CoffeeScript and Sass, but also handles the packaging of these resources into a single file for increased performance.&lt;/p&gt;
&lt;p&gt;
	Although Rails 3.1 has not been officially released yet, it is out of beta and into the fourth release candidate. Given how attractive the asset pipeline was, I decided to give upgrading &lt;a href=&quot;https://www.seikyusho.jp&quot;&gt;請求書.jp&lt;/a&gt; a shot.&lt;/p&gt;
&lt;p&gt;
	The biggest challenge was to find information about how the asset pipeline works. I was able to come across a &lt;a href=&quot;http://blog.nodeta.com/2011/06/14/rails-3-1-asset-pipeline-in-the-real-world/&quot;&gt;couple&lt;/a&gt; &lt;a href=&quot;http://asciicasts.com/episodes/265-rails-3-1-overview&quot;&gt;articles&lt;/a&gt;&amp;nbsp;and &lt;a href=&quot;http://www.youtube.com/watch?v=cGdCI2HhfAU&quot;&gt;a presentation DHH gave&lt;/a&gt;, but overall the information was sparse on how it actually worked. The best success I had in understanding how everything worked was to generate a new rails project with 3.1 and then use the scaffold command to generate a simple resource. By studying the generated code, I was able to figure out how to convert our application. The following is a summary of the asset pipeline specific changes I made.&lt;/p&gt;
&lt;pre&gt;# Gemfile
gem 'rails', '3.1.0.rc4'
gem 'sprockets', '= 2.0.0.beta.10' # rails 3.1.0.rc4 compatible
gem 'sass-rails', &amp;quot;~&amp;gt; 3.1.0.rc&amp;quot;
gem 'coffee-script'
gem 'uglifier'

# app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require ../../../vendor/assets/javascripts/externals
//= require_tree .

# vendor/assets/javascripts/externals.js:
//= require ./jshashtable-2.1.js
//= require ./jquery.numberformatter-1.2.2.min.js

# app/assets/javascripts/invoices.coffee
// Invoicing specific CoffeeScript that is dependent on jquery.numberformatter

# app/assets/stylesheets/application.css
/*
 *= require_self
 *= require_tree ./web
 */

# app/assets/stylesheets/_compatibility.css.sass
/* Macros for browser compatibility */

# app/assets/stylesheets/web/*.css.sass
@import compatibility
/* Styling of various elements */

# app/assets/stylesheets/print.css.sass
/* Print specific CSS */

# config/application.rb
config.assets.enabled = true

# config/environments/production.rb
config.assets.compress = true
config.assets.js_compressor = :uglifier
&lt;/pre&gt;
&lt;p&gt;
	After getting everything migrated to the asset pipeline, the rest of the upgrade involved identifying outstanding issues in Rails 3.1. These issues appeared in places where I was doing something that was a bit unusual, such as &lt;a href=&quot;https://github.com/rails/rails/issues/1842&quot;&gt;accessing a relation in an after_initialize block&lt;/a&gt; or &lt;a href=&quot;https://github.com/rails/rails/issues/1876&quot;&gt;storing an unsaved ActiveRecord object to the session&lt;/a&gt;. Rather than delving into the internals of Rails, I&amp;rsquo;ve worked around these issues.&lt;/p&gt;
&lt;p&gt;
	After resolving these issues, we deployed it to Heroku. There we discovered one issue - that the New Relic plugin isn&amp;rsquo;t compatible with Rails 3.1. Once removing the plugin, we had no other issues.&lt;/p&gt;
&lt;p&gt;
	Upgrading &lt;a href=&quot;https://www.seikyusho.jp&quot;&gt;請求書.jp&lt;/a&gt; to Rails 3.1 took me a total of eleven hours. In its current state, Rails 3.1 is usable, but upgrading requires a fair amount of independent research and debugging. Once it is actually released, these hiccups should go away, and upgrading your application should go smoothly.&lt;/p&gt;</content>
		<author>
			<name>Paul McMahon</name>
			<email>paul@mobalean.com</email>
			<uri>http://www.mobalean.com/blog</uri>
		</author>
		<source>
			<title type="html">mobalean Blog : Paul McMahon | mobalean Blog</title>
			<subtitle type="html">Mobile in Japan</subtitle>
			<link rel="self" href="http://www.mobalean.com/blog/author/paul.rss"/>
			<id>http://www.mobalean.com/blog/author/paul.rss</id>
			<updated>2012-01-13T08:38:04+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Time in Sicily is 20 minutes faster</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/AmqNlMDM3cU/"/>
		<id>http://www.zuco.org/?p=2306</id>
		<updated>2011-06-09T22:57:53+00:00</updated>
		<content type="html">&lt;p&gt;Based on the &amp;#8220;&lt;a href=&quot;http://www.corriere.it/cronache/11_giugno_08/giallo-orologi-siciliani-avanti-sciacca_ccdc47aa-91ff-11e0-9b49-77b721022eeb.shtml&quot;&gt;Corriere della Sera&lt;/a&gt;&amp;#8221; (one of the most important newspapers in Italy) and &lt;a href=&quot;http://it.notizie.yahoo.com/orologi-siciliani-avanti-di-venti-minuti--mistero-nel-catanese.html&quot;&gt;Yahoo news&lt;/a&gt;, for a mysterious reason not yet understood, all digital clocks in Catania (The second most important city in Sicily) are running 20 minutes faster. Also some cities nearby Catania seems to be affected in the same way. There are many theories at the moment, but none are able to give an explanation yet. Some people say it&amp;#8217;s the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mount_Etna&quot;&gt;Etna&lt;/a&gt; (the largest volcano in Italy) recent activity might have produced some sort of radiation. Others claim it&amp;#8217;s due to the construction of a Submarine communications cable that is generating huge magnetic waves around the city&amp;#8230; Maybe soon some people will talk about UFO&amp;#8217;s and any other sort of ideas&amp;#8230;&lt;/p&gt;
&lt;p&gt;The fact, anyway, is that time is running faster in Sicily, maybe it could be the name for a movie &lt;img src=&quot;http://blog.zuco.org/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;Sources (Italian)&lt;br /&gt;
&lt;a href=&quot;http://www.corriere.it/cronache/11_giugno_08/giallo-orologi-siciliani-avanti-sciacca_ccdc47aa-91ff-11e0-9b49-77b721022eeb.shtml&quot;&gt;Corriere della Sera&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://it.notizie.yahoo.com/orologi-siciliani-avanti-di-venti-minuti--mistero-nel-catanese.html&quot;&gt;Yahoo News&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.ilsussidiario.net/News/Curiosita/2011/6/9/MISTERO-A-CATANIA-Orologi-impazziti-vanno-avanti-di-venti-minuti/2/184977/&quot;&gt;Ilsussidiario&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/AmqNlMDM3cU&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">■</title>
		<link href="http://d.hatena.ne.jp/oskimura/20110607/1307438586"/>
		<id>http://d.hatena.ne.jp/oskimura/20110607/1307438586</id>
		<updated>2011-06-07T09:23:06+00:00</updated>
		<content type="html" xml:lang="ja">&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;ｔ&lt;/p&gt;
		&lt;/div&gt;</content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">■</title>
		<link href="http://d.hatena.ne.jp/oskimura/20110607/1307438518"/>
		<id>http://d.hatena.ne.jp/oskimura/20110607/1307438518</id>
		<updated>2011-06-07T09:21:58+00:00</updated>
		<content type="html" xml:lang="ja">&lt;div class=&quot;section&quot;&gt;
			&lt;h4&gt; さくさくテキストマイニング第三回&lt;/h4&gt;
			&lt;br /&gt;

			&lt;p&gt;詳しい発表内容や技術的、論理的なことがらは他の人の素晴らしい記事があるでしょうから私はかきません。&lt;/p&gt;
			&lt;p&gt;なので、気づいた事を箇条がきにします。&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; テキストマイニングはやって見ないとそれが必要かどうかも分からない&lt;/li&gt;
				&lt;li&gt; 自明な結論やイミフな結果がでることも多い&lt;/li&gt;
				&lt;li&gt; なので、必要性を理解してもらうのが大変&lt;/li&gt;
				&lt;li&gt; イミフな答えの場合は手法等などを間違えている&lt;/li&gt;
				&lt;li&gt; 結局ドメイン、アルゴリズム両方の知識が不可欠&lt;/li&gt;
				&lt;li&gt; 発展途上の分野なのでやってみない分からない事がおおい&lt;/li&gt;
				&lt;li&gt; 発展途上なので、モデルが正しいかどうか分からない&lt;/li&gt;
				&lt;li&gt; 手法云々のまえに散布図ぐらいみようぜ&lt;/li&gt;
				&lt;li&gt; 帰納的な分野なので、経験が重要&lt;/li&gt;
				&lt;li&gt; マイニング系技術の発展マーケティングに大きな革命を起こしつつある？&lt;/li&gt;
				&lt;li&gt; UI大事&lt;/li&gt;
				&lt;li&gt; テキストマイニングは定性面、定量面両方の両方の特徴をもっている&lt;/li&gt;
				&lt;li&gt; 分析の前の前処理超重要!&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;この勉強会は技術的、論理的なことから、実際の応用やマーケティングまで幅ひろく内容が及ぶので、エンジニア以外の方にもおすすめの勉強会だとおもいました。&lt;/p&gt;
			&lt;p&gt;結論としてはとりあえずやってみないと判断できないよねという感じでした。&lt;/p&gt;
		&lt;/div&gt;</content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">モナド</title>
		<link href="http://d.hatena.ne.jp/oskimura/20110607/1307437858"/>
		<id>http://d.hatena.ne.jp/oskimura/20110607/1307437858</id>
		<updated>2011-06-07T09:10:58+00:00</updated>
		<content type="html" xml:lang="ja">&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;以下の事について説明します。&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; モノイドの三つの法則&lt;/li&gt;
				&lt;li&gt; 自己関手&lt;/li&gt;
				&lt;li&gt; 自己関手圏&lt;/li&gt;
				&lt;li&gt; 自然変換(η,μ)&lt;/li&gt;
				&lt;li&gt; モナド&lt;/li&gt;
				&lt;li&gt; モノイド、モナドとHaskellの対応&lt;/li&gt;
			&lt;/ul&gt;
			&lt;h4&gt; モノイド&lt;/h4&gt;
			&lt;p&gt;&lt;span class=&quot;deco&quot;&gt;&lt;/span&gt;&lt;/p&gt;
			&lt;p&gt;まずモノイドとは以下の性質を満たす代数構造のことです。&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; 結合律&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt; (a * b) * c = a * (b * c)&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; 右単位元&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt; e * a = a&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; 左単位元&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt; a = e * a&lt;/p&gt;
			&lt;h4&gt; モナド&lt;/h4&gt;
			&lt;p&gt;つぎにモナドとは何か説明したとおもいます。&lt;/p&gt;
			&lt;p&gt;モナドとは先ほど説明したモノイドの性質を満たす。自己関手圏の事です。&lt;/p&gt;
			&lt;p&gt;そのため次の事を説明します。&lt;/p&gt;
			&lt;br /&gt;


			&lt;ul&gt;
				&lt;li&gt; 自己関手&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;  &lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~T:~C~\to~C&quot; class=&quot;tex&quot; alt=&quot; T: C ￥to C&quot; /&gt;&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; 自然変換η&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;  &lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~\eta~:~Id_C~\to~T&quot; class=&quot;tex&quot; alt=&quot; ￥eta : Id_C ￥to T&quot; /&gt;&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; 自然変換μ&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;  &lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~\mu~:~T^2~\to~T&quot; class=&quot;tex&quot; alt=&quot; ￥mu : T^2 ￥to T&quot; /&gt;&lt;/p&gt;
			&lt;p&gt;自己関手圏とは&lt;/p&gt;
			&lt;p&gt;自己関手&lt;/p&gt;
			&lt;p&gt; &lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~T:~C~\to~C&quot; class=&quot;tex&quot; alt=&quot; T: C ￥to C&quot; /&gt;&lt;/p&gt;
			&lt;p&gt;を定義し、この関手を圏とみなすものです。&lt;/p&gt;
			&lt;p&gt;次に二つの自然変換&lt;/p&gt;
			&lt;p&gt;  &lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~\eta~:~Id_C~\to~T&quot; class=&quot;tex&quot; alt=&quot; ￥eta : Id_C ￥to T&quot; /&gt;&lt;/p&gt;
			&lt;p&gt;と&lt;/p&gt;
			&lt;p&gt; &lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~\mu~:~T^2~\to~T&quot; class=&quot;tex&quot; alt=&quot; ￥mu : T^2 ￥to T&quot; /&gt;&lt;/p&gt;
			&lt;p&gt;を定義します。&lt;/p&gt;
			&lt;p&gt;この二つはTの自己関手圏の射と定義することも可能です。&lt;/p&gt;
			&lt;p&gt;あとはこれを利用して、モノイドの三つの規則を満たすだけです。&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; 結合則&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/oskimura/20110607172545&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/o/oskimura/20110607/20110607172545.png&quot; alt=&quot;f:id:oskimura:20110607172545p:image&quot; title=&quot;f:id:oskimura:20110607172545p:image&quot; class=&quot;hatena-fotolife&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; 左単位元&lt;/li&gt;
				&lt;li&gt; 右単位元&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/oskimura/20110607172546&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/o/oskimura/20110607/20110607172546.png&quot; alt=&quot;f:id:oskimura:20110607172546p:image&quot; title=&quot;f:id:oskimura:20110607172546p:image&quot; class=&quot;hatena-fotolife&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;br /&gt;

			&lt;p&gt;上の図はμやηといった自然変換の位置で右(左)結合、右(左)単位元を表現しています。&lt;/p&gt;
			&lt;h4&gt; おまけ&lt;/h4&gt;
			&lt;p&gt;&lt;span class=&quot;deco&quot;&gt;&lt;/span&gt;上記三つの定義とHaskellの関数の対応&lt;/p&gt;

			&lt;table&gt;
				&lt;tr&gt;&lt;td&gt;モナド&lt;/td&gt;&lt;td&gt;Haskell&lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt;T&lt;/td&gt;&lt;td&gt;fmap: a -&amp;#62; b -&amp;#62; f a -&amp;#62; f b&lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt;η&lt;/td&gt;&lt;td&gt;return : a -&amp;#62; m b&lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt;μ&lt;/td&gt;&lt;td&gt;join: m m a -&amp;#62; m b&lt;/td&gt;&lt;/tr&gt;

			&lt;/table&gt;
			&lt;h4&gt; 今後&lt;/h4&gt;

			&lt;ul&gt;
				&lt;li&gt; Kleisli圏について&lt;/li&gt;
				&lt;li&gt; Haskellとのモナドとは&lt;/li&gt;
				&lt;li&gt; パーサコンビネーターつかって説明&lt;/li&gt;
			&lt;/ul&gt;
		&lt;/div&gt;</content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">モナドのための圏論入門</title>
		<link href="http://d.hatena.ne.jp/oskimura/20110607/1307437857"/>
		<id>http://d.hatena.ne.jp/oskimura/20110607/1307437857</id>
		<updated>2011-06-07T09:10:57+00:00</updated>
		<content type="html" xml:lang="ja">&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;「モナドは自己関手圏のモノイド対象にすぎない」とワドラーはいったがその事を説明したいと思います。&lt;/p&gt;
			&lt;p&gt;次のものを説明します。&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; 対象&lt;/li&gt;
				&lt;li&gt; 射&lt;/li&gt;
				&lt;li&gt; 結合則&lt;/li&gt;
				&lt;li&gt; 恒等射&lt;/li&gt;
				&lt;li&gt; 圏&lt;/li&gt;
				&lt;li&gt; 関手&lt;/li&gt;
				&lt;li&gt; 自然変換&lt;/li&gt;
			&lt;/ul&gt;
			&lt;h4&gt; 圏の基礎&lt;/h4&gt;
			&lt;p&gt;圏は以下のものから構成されます&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; 射&lt;/li&gt;
				&lt;li&gt; 対象&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;射はソースとターゲットを結ぶ矢印とされます&lt;/p&gt;
			&lt;p&gt;XがソースYがターゲットの社は次の通りに記述されます。&lt;/p&gt;
			&lt;p&gt;&lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~f~:~X~\to~Y&quot; class=&quot;tex&quot; alt=&quot; f : X ￥to Y&quot; /&gt;&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; 射の結合&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;&lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~f~:~X~\to~Y&quot; class=&quot;tex&quot; alt=&quot; f : X ￥to Y&quot; /&gt;&lt;/p&gt;
			&lt;p&gt;&lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~g~:~Y~\to~Z&quot; class=&quot;tex&quot; alt=&quot; g : Y ￥to Z&quot; /&gt;&lt;/p&gt;
			&lt;p&gt;の二つの射が存在した場合結合する事ができます&lt;/p&gt;
			&lt;p&gt;&lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~g~\circ~f~:~X~\to~Z&quot; class=&quot;tex&quot; alt=&quot; g ￥circ f : X ￥to Z&quot; /&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/oskimura/20110607164423&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/o/oskimura/20110607/20110607164423.png&quot; alt=&quot;f:id:oskimura:20110607164423p:image&quot; title=&quot;f:id:oskimura:20110607164423p:image&quot; class=&quot;hatena-fotolife&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;br /&gt;

			&lt;br /&gt;

			&lt;p&gt;さらに以下の公理を満たす必要があります。&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; 恒等射&lt;/li&gt;
				&lt;li&gt; 結合則&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;&lt;span class=&quot;deco&quot;&gt;恒等射&lt;/span&gt;&lt;/p&gt;
			&lt;p&gt;任意の対象Xに対して射 &lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~id_X~:~X~\to~X~&quot; class=&quot;tex&quot; alt=&quot; id_X : X ￥to X &quot; /&gt;が存在し恒等射という、さらに任意の射&lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~f~:~A~\to~B&quot; class=&quot;tex&quot; alt=&quot; f : A ￥to B&quot; /&gt;に対して&lt;/p&gt;
			&lt;p&gt;&lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~id_B~\circ~f~=~f~=~f~\circ~id_A&quot; class=&quot;tex&quot; alt=&quot; id_B ￥circ f = f = f ￥circ id_A&quot; /&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/oskimura/20110607165928&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/o/oskimura/20110607/20110607165928.png&quot; alt=&quot;f:id:oskimura:20110607165928p:image&quot; title=&quot;f:id:oskimura:20110607165928p:image&quot; class=&quot;hatena-fotolife&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;が成り立つ。&lt;/p&gt;
			&lt;p&gt;&lt;span class=&quot;deco&quot;&gt;結合則&lt;/span&gt;&lt;/p&gt;
			&lt;p&gt;&lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~h~\circ~&amp;#40;g~\circ~f&amp;#41;~=~&amp;#40;h~\circ~g&amp;#41;~\circ~f&quot; class=&quot;tex&quot; alt=&quot; h ￥circ &amp;#40;g ￥circ f&amp;#41; = &amp;#40;h ￥circ g&amp;#41; ￥circ f&quot; /&gt;&lt;/p&gt;
			&lt;p&gt;が成り立ちこれを結合則という。&lt;/p&gt;
			&lt;br /&gt;

			&lt;br /&gt;

			&lt;h4&gt; 関手&lt;/h4&gt;
			&lt;p&gt;圏Cと圏Gが存在したとして、&lt;/p&gt;
			&lt;p&gt;CからGに対して&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; 対象&lt;/li&gt;
				&lt;li&gt; 射&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;を対応させるものである。この時関手は以下の性質を保っていなけばならない。&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; 恒等射&lt;/li&gt;
				&lt;li&gt; 射の合成&lt;/li&gt;
			&lt;/ul&gt;
			&lt;br /&gt;

			&lt;h4&gt; 自然変換&lt;/h4&gt;
			&lt;p&gt;圏Cと圏Dの間に、F、Gという関手が存在し、&lt;/p&gt;
			&lt;p&gt;FからGへ移す射&lt;/p&gt;
			&lt;p&gt;&lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~\eta_x~:~F&amp;#40;x&amp;#41;~\to~G&amp;#40;x&amp;#41;&quot; class=&quot;tex&quot; alt=&quot; ￥eta_x : F&amp;#40;x&amp;#41; ￥to G&amp;#40;x&amp;#41;&quot; /&gt;&lt;/p&gt;
			&lt;p&gt;が存在した場合&lt;/p&gt;
			&lt;p&gt;&lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~f^\forall~:~X~\to~Y&quot; class=&quot;tex&quot; alt=&quot; f^￥forall : X ￥to Y&quot; /&gt;&lt;/p&gt;
			&lt;p&gt;に対して&lt;/p&gt;
			&lt;p&gt;&lt;img src=&quot;http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?~\eta_Y~\circ~F&amp;#40;f&amp;#41;~=~G&amp;#40;f&amp;#41;~\circ~\eta_X&quot; class=&quot;tex&quot; alt=&quot; ￥eta_Y ￥circ F&amp;#40;f&amp;#41; = G&amp;#40;f&amp;#41; ￥circ ￥eta_X&quot; /&gt;&lt;/p&gt;
			&lt;p&gt;が可換になることが成り立つ。&lt;/p&gt;
			&lt;p&gt;これを満たす射ηを自然変換と呼ぶ&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/oskimura/20110607170919&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/o/oskimura/20110607/20110607170919.png&quot; alt=&quot;f:id:oskimura:20110607170919p:image&quot; title=&quot;f:id:oskimura:20110607170919p:image&quot; class=&quot;hatena-fotolife&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;また関手を対象、自然変換を射とみなす、関手圏を定義する事ができる。&lt;/p&gt;
		&lt;/div&gt;</content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Small power</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/ziiFE_2M-Qc/"/>
		<id>http://www.zuco.org/?p=2290</id>
		<updated>2011-06-01T00:09:02+00:00</updated>
		<content type="html">&lt;p&gt;Small, old and crappy building in &lt;a href=&quot;http://maps.google.com/?ie=UTF8&amp;amp;ll=35.657565,139.774635&amp;amp;spn=0.000806,0.001631&amp;amp;t=h&amp;amp;z=20&quot;&gt;Kachidoki &lt;/a&gt; close to a big and modern one.&lt;br /&gt;
Maybe the owner didn&amp;#8217;t want to sell the portion of soil where it was built. I wonder if the architects had to design the building to &amp;#8220;avoid&amp;#8221; that portion.&lt;/p&gt;
&lt;div class=&quot;flickr&quot;&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/drzuco/5781067913/&quot; title=&quot;Untitled by drzuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2191/5781067913_0f003f0ed8_z.jpg&quot; width=&quot;640&quot; height=&quot;426&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.pietrozuco.com/wp-content/uploads/2011/05/kachidoki.jpg&quot; alt=&quot;&quot; title=&quot;kachidoki&quot; width=&quot;600&quot; height=&quot;463&quot; class=&quot;alignnone size-full wp-image-2292&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;zcredits&quot;&gt; The aerial view thanks to &lt;a href=&quot;http://maps.google.com/&quot;&gt;Google Maps&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/ziiFE_2M-Qc&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">How Italians vote to STOP Nuclear Power Plants</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/sSB-evGyLYE/"/>
		<id>http://www.zuco.org/?p=2273</id>
		<updated>2011-05-28T23:47:13+00:00</updated>
		<content type="html">&lt;p&gt;If you want to see an example of what is NOT a democratic country, of what is NOT a Government that thinks about their own people and that ONLY cares about the interest of corrupt politicians, here you have the ballot that, we Italians, have to vote to make the important decision if we want to have Nuclear Power Plants in a &lt;strong&gt;seismic country&lt;/strong&gt; that have almost no infrastructures to deal with catastrophes.&lt;/p&gt;
&lt;p&gt;Look at the picture. The text in the middle tells you basically that if you DON&amp;#8217;T want Nuclear Plants in Italy you have to vote &amp;#8220;YES&amp;#8221;. That text is a mumbo jumbo of legal crap that even a lawyer will have a headache to understand. They think this is democracy without common sense. Do they think I have to understand all this crap? Do I have the time and skills to go all through this and understand if I have to vote YES or NO?&lt;/p&gt;
&lt;p&gt;Look at the picture and take your own conclusions.  (Click to see in full size)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://farm3.static.flickr.com/2182/5768378410_e9d903a2a3_o.jpg&quot; title=&quot;Nuclear Plants in Italy by drzuco, on Flickr&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2182/5768378410_8932244c89_z.jpg&quot; width=&quot;640&quot; height=&quot;341&quot; alt=&quot;Nuclear Plants in Italy&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is a translation of just a small part of that mumbo jumbo.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;Do you want to derogate the Executive Order of June 25th 2008, number 112, modified from the law number 133 of August 6 2088, the resulting text having successive effects of modification and integration, named &amp;#8220;Urgent dispositions for the economic development, the simplification, competition, stabilization of the public finances and the equalization of taxes&amp;#8221;, only limited to the following parts: article 7, point 1, letter d: &amp;#8220;d) the establishment of centrals of nuclear energy into the national territory&amp;#8221;; as well as the law number 99 of July 23 2009, of the resultant text as an effect of modifications and successive integrations, named &amp;#8220;Dispositions about the energy&amp;#8221;, limited only to the following parts: article 25, comma 1, limited to the words: &amp;#8220;of the localization into the national territory&amp;#8230;&amp;#8221; &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;More info here, in Italian: &lt;a href=&quot;http://www.fermiamoilnucleare.it&quot;&gt;http://www.fermiamoilnucleare.it&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/sSB-evGyLYE&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Photography blog moved</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/nv-hUJZncB0/"/>
		<id>http://www.zuco.org/?p=2266</id>
		<updated>2011-05-19T23:58:47+00:00</updated>
		<content type="html">&lt;p&gt;Just to let you know that my previous photography blog: www.darkboxnotes.com has been moved to &lt;a href=&quot;http://www.zucowall.com&quot;&gt;www.zucowall.com&lt;/a&gt;&lt;br /&gt;
I think it’s better to include all my photography stuff under one domain. I’m planing to add everything visual and photography to zucowall.com. The site is best viewed with Firefox, Chrome and Safari. I just don’t care about IE, sorry for IE users, but you can always upgrade and use a better and more secure browser.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.zucowall.com&quot;&gt;&lt;img src=&quot;http://www.pietrozuco.com/wp-content/uploads/2011/05/zucowallexcerpt.jpg&quot; alt=&quot;&quot; title=&quot;zucowallexcerpt&quot; width=&quot;240&quot; height=&quot;168&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/nv-hUJZncB0&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Long time</title>
		<link href="http://erinhughes.com/long_time"/>
		<id>http://erinhughes.com/299 at http://erinhughes.com</id>
		<updated>2011-05-18T21:37:40+00:00</updated>
		<content type="html">&lt;p&gt;A couple of days ago I fired up my Skype and heard this message left by 2 drunken fools rambling on and on about how I never call and write and how they had t shirts for me.... In addition I have got a few email enquiries asking how things were going. &lt;br /&gt;&lt;br /&gt;I have not posted anything since I got to America. There was just too much going on and I was not really feeling like .... well like I was really back in the USA. I have had the feeling more like I am on vacation from Japan and soon I will have to go back. There was more then a few times when I questioned why I was here WTF I was gonna do about XYZ problem and how I was gonna make it till the next day. In that time a couple of things pulled me through, team reports of matches on the TokyoGaijin.com text messages and emails from friends and lastly, the videos of all of my teammates at my going away party. Honestly, Lonnie told me not to watch them till I was on the plane. I waited till I needed them and they really helped me get through a couple of tough times. &lt;br /&gt;&lt;br /&gt;When I got to Texas, the first thing I did was try to find the rugby club in my area. It was kind of a disappointment. I have been on plenty of teams before, but the coach and a couple of others made me feel pretty unwelcome right away. I shrugged it off and things got better, but when I got my work schedule I found I had to work on Saturday, our game day here, and the fact that I did not have health insurance till February did not help. Finally in January I scratched my leg. I slid in on my shin for a try in touch and got what I thought was a little brush burn. $300 and a swollen leg and 3 weeks of antibiotics later, I decided to wait till I had real health insurance to keep playing. There are some summer 7s and 10s matches coming up and I am trying to get fit to play in them. &lt;br /&gt;&lt;br /&gt;After a long peacefully quite wait Satomi, Eric, Anna, and little baby Sara all arrived with the help from my mother in law. &amp;nbsp;&lt;br /&gt;&lt;br /&gt;It took some time to get all our stuff and fill the house but we did it and now have a guest bedroom, anyone want to come and stay in Houston for a couple days?&lt;br /&gt;&lt;br /&gt;Eric started going to school and playing rugby. Both are going well for him, he scored a hard fought try on the wing in his last game of the season, and his English is improving also he passed ESOL reading and writing level 1, and his teachers and coaches are always ecstatic about having him around. In school Eric seems to be enjoying himself and his teacher is very happy at how well he does in math, especially word problems, with out being able to read them he still manages to under stand the problem and solve it correctly. &lt;br /&gt;&lt;br /&gt;His Rugby Couch lets him play all over to get the feel for the right position and he likes prop lock and hooker, but the assistant coach would rather stick him on the wing cause he is tall skinny and fast. In his first couple of games Eric made a name for himself and had everyone screaming his name as he ran across the field twice to drag a player to the ground from the opposition who had made it past everyone else and stop what seemed like inevitable tries. &lt;br /&gt;&lt;br /&gt;He is naturally better then me at everything he tries to do, but he is never very serious about anything still, like father like son. He always asks why we do not have after parties for his team like we did in Tokyo? &quot;In a few years...&quot; I say. &amp;nbsp;&lt;br /&gt;&lt;br /&gt;Anna has become quite the handful since moving but is still cute and funny! She speaks Japanese and English, in a very matter of fact way, so fast that the words sometimes run together into nonsense. Her favorite phrase right now is &quot;You gotta wait!&quot; &lt;br /&gt;&lt;br /&gt;Sara is a patient little angle who rarely cries.... except at 4 AM or when she really wants to be held. &lt;br /&gt;&lt;br /&gt;Finally I left the company I came to Houston to join, and had to find some new employment. There was nothing wrong with the company I was at, I just did not fit in. I found a new job and it appears to be a great fit so far. Things are getting better little by little. &lt;br /&gt;&lt;br /&gt;I want to say that I miss all my friends from Japan and enjoyed the lessons learned, during my time in Tokyo. I miss all of my friends at GMO, TGRFC and TLUG, and hope through out the crisis you are doing well. I think about you all at least once or twice a day and think Gambatte!&lt;br /&gt;&lt;br /&gt;Seriously if you're interested in coming to Houston, send me a message on my contact page or you can hit me up on Skype at erin_hughes_jp.&amp;nbsp;&lt;/p&gt;</content>
		<author>
			<name>Erin Hughes</name>
			<uri>http://erinhughes.com</uri>
		</author>
		<source>
			<title type="html">Erin Hughes.com</title>
			<link rel="self" href="http://www.erinhughes.com/rss.xml"/>
			<id>http://www.erinhughes.com/rss.xml</id>
			<updated>2012-02-05T09:57:12+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">Yesod勉強会</title>
		<link href="http://d.hatena.ne.jp/oskimura/20110516/1305536215"/>
		<id>http://d.hatena.ne.jp/oskimura/20110516/1305536215</id>
		<updated>2011-05-16T08:56:55+00:00</updated>
		<content type="html" xml:lang="ja">&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;こちらのYesod勉強会に参加しました。&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://partake.in/events/5f27d86f-0211-4af4-9a9e-5f123056e44e&quot; target=&quot;_blank&quot;&gt;http://partake.in/events/5f27d86f-0211-4af4-9a9e-5f123056e44e&lt;/a&gt;&lt;/p&gt;
			&lt;br /&gt;

			&lt;p&gt;Haskellは雇用対策にならない(解雇対策にはなる)。&lt;/p&gt;
			&lt;p&gt;Web業界は誇大広告&lt;/p&gt;
			&lt;p&gt;Happs-&amp;#62;happstack,WASH,Haskell CGIの比較&lt;/p&gt;
			&lt;p&gt;happsは死んだらしい。&lt;/p&gt;
			&lt;br /&gt;

			&lt;br /&gt;

			&lt;p&gt;Happstack,Snap,Yesodの三種類&lt;/p&gt;
			&lt;p&gt;2006年からHackageがでてきたので、使える(実用的な)ライブラリが増えた。&lt;/p&gt;
			&lt;h4&gt; Textの登場&lt;/h4&gt;
			&lt;p&gt;HaskellのStringの欠点&lt;/p&gt;
			&lt;p&gt;大きい、遅い。&lt;/p&gt;
			&lt;p&gt;ByteStringの登場のおかげで早くなった。リストではなくByte Arrayなので、&lt;/p&gt;
			&lt;p&gt;ByteStringはエンコーディングを考慮しないバイト列だったので、UTF16でエンコードされた16ビット列をあらわすTextの登場。&lt;/p&gt;
			&lt;h4&gt;Itreateeの登場&lt;/h4&gt;
			&lt;p&gt;次世代遅延I/O&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; 高速&lt;/li&gt;
				&lt;li&gt; compsable&lt;/li&gt;
				&lt;li&gt; 安全&lt;/li&gt;
				&lt;li&gt; リソースの速やかな開放&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;Enumrator -&amp;#62; Enumratee -&amp;#62; Iteratee&lt;/p&gt;
			&lt;br /&gt;

			&lt;h4&gt; Happstack&lt;/h4&gt;
			&lt;p&gt;Happstackは高速化されIteratee化&lt;/p&gt;
			&lt;br /&gt;

			&lt;p&gt;BarleyといHasekellのお勉強サイトがあるみたいです。&lt;/p&gt;
			&lt;br /&gt;

			&lt;p&gt;snap周辺のライブラリ&lt;/p&gt;

			&lt;ul&gt;
				&lt;li&gt; heiste&lt;/li&gt;
				&lt;li&gt; xmlhtl&lt;/li&gt;
			&lt;/ul&gt;
			&lt;br /&gt;

			&lt;br /&gt;

			&lt;h4&gt; Yesodの登場&lt;/h4&gt;

			&lt;ul&gt;
				&lt;li&gt; 早い&lt;/li&gt;
				&lt;li&gt; フルスタック&lt;/li&gt;
			&lt;/ul&gt;
			&lt;h5&gt; yesodで書かれたページ&lt;/h5&gt;
			&lt;p&gt;  -- htpp://yesodweb.com&lt;/p&gt;
			&lt;p&gt;  -- yacage&lt;/p&gt;
			&lt;p&gt;  -- &lt;/p&gt;
			&lt;br /&gt;

			&lt;h4&gt; WAI (Web Application Interface)&lt;/h4&gt;
			&lt;p&gt;Webアプリケーションのためのインターフェイス&lt;/p&gt;
			&lt;h4&gt; parseRoutes&lt;/h4&gt;
			&lt;p&gt;URL Routeを扱うDSL&lt;/p&gt;
			&lt;h4&gt; persistent&lt;/h4&gt;
			&lt;p&gt;永続データを扱うDSL&lt;/p&gt;
			&lt;p&gt;Non Realional&lt;/p&gt;
			&lt;p&gt;Mongo DBに対応&lt;/p&gt;
			&lt;h4&gt; devel-server&lt;/h4&gt;
			&lt;p&gt;コードを変更した時にコンパイルせずに実行可能&lt;/p&gt;
			&lt;h4&gt; webkit-handler&lt;/h4&gt;
			&lt;p&gt;webアプリをスタンドアローンGUIアプリの様に実行できる。&lt;/p&gt;
			&lt;br /&gt;

			&lt;h4&gt; i18n&lt;/h4&gt;
			&lt;p&gt;Yesod0.8.1から追加&lt;/p&gt;
			&lt;br /&gt;

			&lt;h4&gt; WAI&lt;/h4&gt;

			&lt;ul&gt;
				&lt;li&gt; Handler Application -&amp;#62; I&lt;/li&gt;
			&lt;/ul&gt;

			&lt;ul&gt;
				&lt;li&gt; Application Request -&amp;#62; Iteratee IO Response&lt;/li&gt;
			&lt;/ul&gt;
			&lt;br /&gt;

			&lt;h4&gt; cab&lt;/h4&gt;
			&lt;p&gt;山本さんが作っているパッケージ管理コマンド&lt;/p&gt;
			&lt;h4&gt; gitcab&lt;/h4&gt;
			&lt;p&gt;gitリポジトリ可視化ツール&lt;/p&gt;
		&lt;/div&gt;</content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="ja">■</title>
		<link href="http://d.hatena.ne.jp/oskimura/20110516/1305536214"/>
		<id>http://d.hatena.ne.jp/oskimura/20110516/1305536214</id>
		<updated>2011-05-16T08:56:54+00:00</updated>
		<content type="html"></content>
		<author>
			<name>Kimura Osamu</name>
			<uri>http://d.hatena.ne.jp/oskimura/</uri>
		</author>
		<source>
			<title type="html">針の上でprocessは幾つ踊れるか？</title>
			<subtitle type="html">針の上でprocessは幾つ踊れるか？</subtitle>
			<link rel="self" href="http://d.hatena.ne.jp/oskimura/rss"/>
			<id>http://d.hatena.ne.jp/oskimura/rss</id>
			<updated>2012-01-31T02:00:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Japanese keyboard with xorg 1.8+</title>
		<link href="http://www.bawdo.com/posts/49"/>
		<id>tag:www.bawdo.com,2005:Post/49</id>
		<updated>2011-05-07T02:14:51+00:00</updated>
		<content type="html">&lt;p&gt;
	Xorg has decided to dramatically change the way input devices are handled again. Without too many gory details basically input device configuration has moved back into the xorg.conf file. However, hardware detection is now handled by udev so if you compile your own xorg then you will need to ensure you enable udev support.&lt;/p&gt;
&lt;p&gt;
	After upgrading to xorg 1.8+ you will probably find your Japanese keyboard (that was probably configured using a custom fdi file) is now being treated as a US layout keyboard. Without updating your xorg configuration you will also see the following in your Xorg.log files:&lt;/p&gt;
&lt;p&gt;
	&lt;code&gt;Applying InputClass &amp;quot;evdev keyboard catchall&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;
	This basically means during startup a config was not found for your keyboard so a catchall config is used. Which of course defaults to a US layout.&lt;/p&gt;
&lt;h3&gt;
	The New Config&lt;/h3&gt;
&lt;p&gt;
	One nice thing about this new change is that you can break out device specific configs and place them in a separate directory. This way your working main config can remain untouched whilst you hack on getting your keyboard working. So here is what you need to do (as root):&lt;/p&gt;
&lt;p&gt;
	1. mkdir&amp;nbsp;/etc/X11/xorg.conf.d&lt;/p&gt;
&lt;p&gt;
	2. vim/etc/X11/xorg.conf.d/90-jp-keyboard.conf&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Section &amp;quot;InputClass&amp;quot;&lt;/span&gt;

        Identifier &amp;quot;keyboard-all&amp;quot;

        Driver &amp;quot;evdev&amp;quot;

        Option &amp;quot;XkbLayout&amp;quot; &amp;quot;jp&amp;quot;

        Option &amp;quot;XkbOptions&amp;quot; &amp;quot;ctrl:nocaps&amp;quot;

        MatchIsKeyboard &amp;quot;on&amp;quot;

        Option &amp;quot;AutoServerLayout&amp;quot; &amp;quot;on&amp;quot;

EndSection&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
	3. Restart your X session and test.&lt;/p&gt;
&lt;p&gt;
	If you have a working fdi config for your keyboad you can reuse the key-value pairs from it. However, for some reason&amp;nbsp;&amp;nbsp;&lt;strong&gt;Option &amp;quot;XkbVariant&amp;quot; &amp;quot;,jp106&amp;quot; &lt;/strong&gt;breaks my keayboard completely. Leaving it out worked, YMMV..&lt;/p&gt;</content>
		<author>
			<name>Keith Bawden</name>
			<uri>http://www.bawdo.com</uri>
		</author>
		<source>
			<title type="html">bawdo.com</title>
			<link rel="self" href="http://www.bawdo.com/posts.atom"/>
			<id>tag:www.bawdo.com,2005:/posts</id>
			<updated>2011-11-05T17:19:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Using googletest and googlemock in Eclipse</title>
		<link href="http://jmglov.blogspot.com/2011/04/using-googletest-and-googlemock-in.html"/>
		<id>tag:blogger.com,1999:blog-15370741.post-3302228622368816392</id>
		<updated>2011-04-29T16:13:59+00:00</updated>
		<content type="html">Since &lt;a href=&quot;http://stackoverflow.com/questions/3951808/using-googletest-in-eclipse-how/5800368#5800368&quot;&gt;my answer on Stack Overflow&lt;/a&gt; doesn't seem to be getting any attention (and thereby helping no-one), I figured I'd post it here. :)&lt;br /&gt;&lt;br /&gt;Here's the summary for people already familiar with &lt;a href=&quot;http://www.eclipse.org/&quot;&gt;Eclipse&lt;/a&gt;:&lt;ol&gt; &lt;li&gt;Created a new C++ project in Eclipse (I chose Executable &amp;gt; Empty Project)&lt;/li&gt; &lt;li&gt;Downloaded &lt;a href=&quot;http://googletest.googlecode.com/files/gtest-1.5.0.tar.bz2&quot;&gt;googletest 1.5.0&lt;/a&gt;, untarred, and ran &lt;tt&gt;./scripts/fuse_gtest_files.py . /contrib&lt;/tt&gt;&lt;/li&gt; &lt;li&gt;Back in Eclipse, excluded the &lt;tt&gt;contrib&lt;/tt&gt; directory from the Release build configuration, and added &lt;tt&gt;/contrib&lt;/tt&gt; to the include directories (odd, I know)&lt;/li&gt; &lt;li&gt;Added a &lt;tt&gt;src&lt;/tt&gt; directory and added a class named &lt;tt&gt;Foo&lt;/tt&gt; (see below for the contents of &lt;tt&gt;Foo.h&lt;/tt&gt;--I left &lt;tt&gt;Foo.cpp&lt;/tt&gt; empty for now)&lt;/li&gt; &lt;li&gt;Added a &lt;tt&gt;test&lt;/tt&gt; directory in Eclipse, excluded it from the Release build configuration, added &lt;tt&gt;/contrib&lt;/tt&gt; to the include directories, and added new source files &lt;tt&gt;FooTest.cpp&lt;/tt&gt; and &lt;tt&gt;AllTests.cpp&lt;/tt&gt; (see below for contents)&lt;/li&gt; &lt;li&gt;Built and ran the project&lt;/li&gt; &lt;/ol&gt;&lt;br /&gt;&lt;div&gt;Foo.h&lt;/div&gt;&lt;pre&gt;#ifndef FOO_H_&lt;br /&gt;#define FOO_H_&lt;br /&gt;class Foo {&lt;br /&gt;public:&lt;br /&gt;  virtual ~Foo();&lt;br /&gt;  Foo();&lt;br /&gt;  bool foo(void) { return true; }&lt;br /&gt;};&lt;br /&gt;#endif /* FOO_H_ */&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;FooTest.cpp&lt;/div&gt;&lt;pre&gt;#include &quot;gtest/gtest.h&quot;&lt;br /&gt;#include &quot;Foo.h&quot;&lt;br /&gt;namespace {&lt;br /&gt;  class FooTest : public ::testing::Test {&lt;br /&gt;  protected:&lt;br /&gt;    Foo foo;&lt;br /&gt;  };&lt;br /&gt;  TEST_F(FooTest, Foo) {&lt;br /&gt;    ASSERT_TRUE(foo.foo());&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;AllTests.cpp&lt;/div&gt;&lt;pre&gt;#include &quot;gtest/gtest.h&quot;&lt;br /&gt;#include &quot;FooTest.cpp&quot;&lt;br /&gt;int main(int argc, char **argv) {&lt;br /&gt;  ::testing::InitGoogleTest(&amp;amp;argc, argv);&lt;br /&gt;  return RUN_ALL_TESTS();&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Here are the detailed steps:&lt;br /&gt;&lt;ol&gt; &lt;li&gt;In Eclipse, open the &lt;span&gt;File&lt;/span&gt; menu and select &lt;span&gt;New&lt;/span&gt; &amp;gt; &lt;span&gt;C++ Project&lt;/span&gt;&lt;/li&gt; &lt;li&gt;Project Type: &lt;span&gt;Executable&lt;/span&gt; &amp;gt; &lt;span&gt;Empty Project&lt;/span&gt;&lt;/li&gt; &lt;li&gt;Toolchain: &lt;span&gt;Linux GCC&lt;/span&gt;&lt;/li&gt; &lt;li&gt;Click &lt;span&gt;Finish&lt;/span&gt;&lt;/li&gt; &lt;li&gt;Open a terminal and &lt;tt&gt;cd /tmp&lt;/tt&gt;&lt;/li&gt; &lt;li&gt;&lt;tt&gt;wget &lt;a href=&quot;http://googletest.googlecode.com/files/gtest-1.5.0.tar.bz2&quot;&gt;http://googletest.googlecode.com/files/gtest-1.5.0.tar.bz2&lt;/a&gt;&lt;/tt&gt;&lt;/li&gt; &lt;li&gt;&lt;tt&gt;cd gtest-1.5.0/&lt;/tt&gt;&lt;/li&gt; &lt;li&gt;&lt;tt&gt;./scripts/fuse_gtest_files.py . /contrib&lt;/tt&gt;&lt;/li&gt; &lt;li&gt;Back in Eclipse, right-click on the project folder in the Project Explorer pane, then select &lt;span&gt;Refresh&lt;/span&gt;&lt;/li&gt; &lt;li&gt;In the Project Explorer pane, right-click on the &lt;tt&gt;contrib&lt;/tt&gt; folder, select **Exclude from build...*, untick only the &lt;span&gt;Release&lt;/span&gt; box, and click &lt;span&gt;OK&lt;/span&gt;&lt;/li&gt; &lt;li&gt;Right-click on the &lt;tt&gt;contrib&lt;/tt&gt; folder and select &lt;span&gt;Properties&lt;/span&gt; &amp;gt; &lt;span&gt;C/C++ Build&lt;/span&gt; &amp;gt; &lt;span&gt;Settings&lt;/span&gt; &amp;gt; &lt;span&gt;Tool Settings&lt;/span&gt; tab &amp;gt; &lt;span&gt;GCC C++ Compiler&lt;/span&gt; &amp;gt; &lt;span&gt;Directories&lt;/span&gt;&lt;/li&gt; &lt;li&gt;Click on the &lt;span&gt;Add...&lt;/span&gt; button, then the &lt;span&gt;Workspace...&lt;/span&gt; button, then select &lt;tt&gt;/contrib&lt;/tt&gt; and click &lt;span&gt;OK&lt;/span&gt; to add the directory&lt;/li&gt; &lt;li&gt;Click &lt;span&gt;OK&lt;/span&gt; once more to accept your changes to the build settings&lt;/li&gt; &lt;li&gt;Right-click on the project in the Project Explorer pane and select &lt;span&gt;New&lt;/span&gt; &amp;gt; &lt;span&gt;Folder&lt;/span&gt;, enter &lt;tt&gt;src&lt;/tt&gt; as its name, and click &lt;span&gt;OK&lt;/span&gt;&lt;/li&gt; &lt;li&gt;Right-click on the &lt;tt&gt;src&lt;/tt&gt; folder in the Project Explorer pane and select &lt;span&gt;New&lt;/span&gt; &amp;gt; &lt;span&gt;Class&lt;/span&gt;, name it &lt;tt&gt;Foo&lt;/tt&gt;, then click &lt;span&gt;OK&lt;/span&gt; (see above for contents of &lt;tt&gt;Foo.h&lt;/tt&gt;; &lt;tt&gt;Foo.cpp&lt;/tt&gt; can be left as is)&lt;/li&gt; &lt;li&gt;Right-click on the project in the Project Explorer pane and select &lt;span&gt;New&lt;/span&gt; &amp;gt; &lt;span&gt;Folder&lt;/span&gt;, enter &lt;tt&gt;test&lt;/tt&gt; as its name, and click &lt;span&gt;OK&lt;/span&gt;&lt;/li&gt; &lt;li&gt;Follow the steps above to add &lt;tt&gt;/contrib&lt;/tt&gt; and &lt;tt&gt;/src&lt;/tt&gt; as include directories to the &lt;tt&gt;test&lt;/tt&gt; directory&lt;/li&gt; &lt;li&gt;Right-click on the &lt;tt&gt;test&lt;/tt&gt; folder, then select &lt;span&gt;New&lt;/span&gt; &amp;gt; &lt;span&gt;Source File&lt;/span&gt; to add &lt;tt&gt;AllTests.cpp&lt;/tt&gt; to the &lt;tt&gt;test&lt;/tt&gt; folder, then repeat the same steps to add &lt;tt&gt;FooTest.cpp&lt;/tt&gt; (see above for contents)&lt;/li&gt; &lt;li&gt;Right-click on &lt;tt&gt;FooTest.cpp&lt;/tt&gt; and select &lt;span&gt;Exclude from build...&lt;/span&gt;, click the &lt;span&gt;Select All&lt;/span&gt; button, then &lt;span&gt;OK&lt;/span&gt;&lt;/li&gt; &lt;li&gt;Right-click on the project in the Project Explorer pane, and select &lt;span&gt;Properties&lt;/span&gt; &amp;gt; &lt;span&gt;C/C++ Build&lt;/span&gt; &amp;gt; &lt;span&gt;Settings&lt;/span&gt; &amp;gt; &lt;span&gt;Tool Settings&lt;/span&gt; tab &amp;gt; &lt;span&gt;GCC C++ Linker&lt;/span&gt; &amp;gt; &lt;span&gt;Libraries&lt;/span&gt;, then click the &lt;span&gt;Add...&lt;/span&gt; button, enter &lt;span&gt;pthread&lt;/span&gt; (required by googletest), click &lt;span&gt;OK&lt;/span&gt; to add the library, then &lt;span&gt;OK&lt;/span&gt; once more to accept the changes&lt;/li&gt; &lt;li&gt;Hit &lt;span&gt;Ctrl-b&lt;/span&gt; to build the project&lt;/li&gt; &lt;li&gt;Hit &lt;span&gt;Ctrl-F11&lt;/span&gt; to run the project&lt;/li&gt; &lt;li&gt;Victory!&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/15370741-3302228622368816392?l=jmglov.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Josh Glover</name>
			<email>noreply@blogger.com</email>
			<uri>http://jmglov.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">jmglov</title>
			<link rel="self" href="http://jmglov.blogspot.com/atom.xml"/>
			<id>tag:blogger.com,1999:blog-15370741</id>
			<updated>2012-01-16T20:38:07+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Why the FlyJin phenomenon</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/uPMPEmUztTA/"/>
		<id>http://www.zuco.org/?p=2231</id>
		<updated>2011-04-15T13:47:05+00:00</updated>
		<content type="html">&lt;p&gt;The term flyjin has been created in the twitter world of foreigners and expats living in Japan.&lt;br /&gt;
It&amp;#8217;s a kind of a derivative joke from the word &amp;#8220;gaijin&amp;#8221; which in some context is a pejorative term of the formal &amp;#8220;gaikokujin&amp;#8221; meaning &amp;#8220;foreigner&amp;#8221;. Basically &amp;#8220;flyjin&amp;#8221; means, the man/woman that flies away.&lt;/p&gt;
&lt;p&gt;This term was born due to the huge number of foreigners leaving Japan and flying away after the great &lt;a href=&quot;http://www.zuco.org/2011/04/05/coming-back-to-a-normal-life/&quot;&gt;Tohoku Earthquake/Tsunami/Nuclear Crisis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Everyone has his/her own reasons to take that decision, specially people with kids fearing a possible nuclear contamination or strong aftershocks. Anyway, all this &amp;#8220;flyjin phenomenon&amp;#8221; has been also criticized, mainly by some Japanese individuals and companies. For some people, this behavior was considered as a betrayal to Japan by many foreigners.&lt;/p&gt;
&lt;p&gt;I didn&amp;#8217;t leave the country, I didn&amp;#8217;t get in panic so I&amp;#8217;m not a flyjin, but I want to explain the reasons that justified the behavior of so many people. It&amp;#8217;s perfectly understandable and human considering the information and the reality of foreigners in Japan.&lt;/p&gt;
&lt;p&gt;Many Japanese don&amp;#8217;t know how was this crisis from a foreigner perspective. So, if you are a Japanese reader or not, this is what a &amp;#8220;gaikokujin&amp;#8221; experienced:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt; Earthquakes are not a common thing! Japan is maybe the most ready and better informed country in the world about earthquakes. Japanese learn since primary school how to protect themselves, what an earthquake is, and what it could feel like. It&amp;#8217;s something you learn since you are a kid. I&amp;#8217;m not saying that Japanese are used to earthquakes, but they have a better understanding of them. This is not the same for other countries. Even countries which historically suffered earthquakes, are not ready as Japan is. So the normal and natural reaction is fear, doubt and for some people, panic.&lt;/li&gt;
&lt;li&gt; Many embassies called directly to their nationals saying &amp;#8220;would you like to come back? we have a free-ticket flight for you!&amp;#8221;. Some embassies even told to their nationals: &amp;#8220;You should consider to leave the country!&amp;#8221;. So what is the common reaction, when you live in a foreign country and your embassy calls you telling that you should leave and that they have free-flights for you? It&amp;#8217;s quite normal and human, specially for people with kids, to leave! Personally I don&amp;#8217;t believe in any government or embassy or media, but the common behavior is to believe in your own government.&lt;/li&gt;
&lt;li&gt; Foreign media over reacted and manipulated the information, providing sensationalistic news of what was going on here. Families living abroad, started to believe what media said and called their relatives in Japan saying to please leave, go away, radiations will kill you! That&amp;#8217;s also natural and human. People tend to believe in TV and they don&amp;#8217;t think. That&amp;#8217;s a problem of &lt;a href=&quot;http://www.amazon.com/gp/product/0275992586/ref=as_li_qf_sp_asin_tl?ie=UTF8&amp;#038;tag=z082-20&amp;#038;linkCode=as2&amp;#038;camp=1789&amp;#038;creative=9325&amp;#038;creativeASIN=0275992586&quot;&gt;Media Literacy&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=z082-20&amp;#038;l=as2&amp;#038;o=1&amp;#038;a=0275992586&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;, and it happens everywhere.&lt;br /&gt;
Of course we cannot deny that the situation was critical, thousands of people died due to the tsunami and the danger and fear of the evolution of the nuclear crisis, which kept everyone of us, Japanese and foreigners, in constant tension. But that&amp;#8217;s not a justification for the manipulation and sensationalism made by many foreign media.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As an example of what foreign media said about this crisis, here you have some images of Spanish newspapers. This kind of news were almost a clone of all other newspapers around Europe. So just imagine, if you are in a foreign country and you see your own newspapers saying this, and your family read this, what are you going to do?&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;postpicture&quot; align=&quot;left&quot; src=&quot;http://www.pietrozuco.com/wp-content/uploads/2011/04/13.jpg&quot; alt=&quot;&quot; title=&quot;sensationalist media&quot; width=&quot;200&quot; height=&quot;278&quot; /&gt;&lt;img class=&quot;postpicture&quot; align=&quot;left&quot; src=&quot;http://www.pietrozuco.com/wp-content/uploads/2011/04/17.jpg&quot; alt=&quot;&quot; title=&quot;sensationalist media&quot; width=&quot;200&quot; height=&quot;276&quot; /&gt;&lt;img class=&quot;postpicture&quot; align=&quot;left&quot; src=&quot;http://www.pietrozuco.com/wp-content/uploads/2011/04/15.jpg&quot; alt=&quot;&quot; title=&quot;sensationalist media&quot; width=&quot;200&quot; height=&quot;278&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Translating from the left:&lt;/p&gt;
&lt;p&gt;&amp;#8220;Japan a country of phantoms&amp;#8230;&amp;#8221;, &amp;#8220;Exodus in Tokyo&amp;#8221;, &amp;#8220;Nuclear Leak in Japan&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;postpicture&quot; src=&quot;http://www.pietrozuco.com/wp-content/uploads/2011/04/16b.jpg&quot; alt=&quot;&quot; title=&quot;sensationalist media&quot; width=&quot;319&quot; height=&quot;222&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8220;Fukushima is out of control&amp;#8221;, &amp;#8220;Leak without control&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;postpicture&quot; src=&quot;http://www.pietrozuco.com/wp-content/uploads/2011/04/16a.jpg&quot; alt=&quot;&quot; title=&quot;sensationalist media&quot; width=&quot;481&quot; height=&quot;222&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8220;Nuclear Panic&amp;#8221;, &amp;#8220;Japan looses control and UE says: Nuclear Apocalypse&amp;#8221;, &amp;#8220;Apocalypse Now?&amp;#8221;&lt;/p&gt;
&lt;p&gt;This is the reality from the (gaikokujin) foreigner perspective. Embassies recommending to evacuate and alerting of an imminent nuclear disaster or destructive aftershocks. News going crazy spreading out the panic and running in sensationalism. Families begging to come back home. Under those circumstances, it&amp;#8217;s normal and human to take the decision to leave and protect your own family.&lt;/p&gt;
&lt;p&gt;Why I didn&amp;#8217;t become a flyjin? Well, basically I don&amp;#8217;t believe in any government. Neither the Japanese, neither Europeans, Americans or whatever other country. I didn&amp;#8217;t believe the media in this crisis. I just tried to apply common sense, reading as many different sources as possible, reading articles from physics and scientists. Remember what is going on now in the reactor is science, it&amp;#8217;s physics and those laws cannot be changed by politicians, journalists or any ecologist group.&lt;/p&gt;
&lt;p&gt;Sources: The pictures of the Spanish newspapers are from &amp;#8220;&lt;a href=&quot;http://losojosdeella.blogspot.com/2011/03/espanol-con-altos-indices-de-radiacion.html&quot;&gt;los ojos de ella&lt;/a&gt;&amp;#8220;.&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/uPMPEmUztTA&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">nagios-mode for Emacs</title>
		<link href="http://jmglov.blogspot.com/2011/04/nagios-mode-for-emacs.html"/>
		<id>tag:blogger.com,1999:blog-15370741.post-6638865812994446134</id>
		<updated>2011-04-11T20:16:48+00:00</updated>
		<content type="html">Thanks for &lt;tt&gt;nagios-mode.el&lt;/tt&gt;, Michael Orlitzky! Here's how I achieved syntax highlighting-induced joy for &lt;a href=&quot;http://www.nagios.org/&quot;&gt;Nagios&lt;/a&gt; config files in XEmacs Instant Classic (if you have to ask, you don't deserve to know ;).&lt;br /&gt;&lt;ol&gt; &lt;li&gt;Browse to &lt;a href=&quot;http://michael.orlitzky.com/git/?p=nagios-mode.git;a=blob_plain;f=nagios-mode.el;hb=HEAD&quot;&gt;http://michael.orlitzky.com/git/?p=nagios-mode.git;a=blob_plain;f=nagios-mode.el;hb=HEAD&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt; &lt;li&gt;Save file to something like &lt;tt&gt;~/.xemacs/user_lisp/nagios-mode.el&lt;/tt&gt;&lt;/li&gt; &lt;li&gt;If you haven't already included &lt;tt&gt;~/.xemacs/user_lisp&lt;/tt&gt; in your load path, do so now by adding the following to your &lt;tt&gt;~/.xemacs/custom.el&lt;/tt&gt;: &lt;pre&gt;(add-to-list 'load-path &quot;$HOME/.xemacs/user_lisp/&quot;)&lt;/pre&gt;&lt;/li&gt; &lt;li&gt;Now, load &lt;tt&gt;nagios-mode.el&lt;/tt&gt; by adding the following to your &lt;tt&gt;~/.xemacs/custom.el&lt;/tt&gt;: &lt;pre&gt;(autoload 'nagios-mode &quot;$HOME/.xemacs/user_lisp/nagios-mode.el&quot;&lt;br /&gt;     &quot;Major mode for editing Nagios config files&quot; t)&lt;/pre&gt;&lt;/li&gt; &lt;li&gt;Finally, you'll want &lt;tt&gt;nagios-mode.el&lt;/tt&gt; automatically enabled for Nagios config files, so add the following to your &lt;tt&gt;~/.xemacs/custom.el&lt;/tt&gt;: &lt;pre&gt;; nagios-mode&lt;br /&gt;(add-to-list 'auto-mode-alist&lt;br /&gt;     '(&quot;nagios-config/objects/.+\\.cfg$&quot; . nagios-mode))&lt;/pre&gt;&lt;/li&gt; &lt;br /&gt;&lt;a href=&quot;http://www.google.com/search?channel=fs&amp;amp;q=john+hodgman+you%27re+welcome&amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;gl=uk#q=john+hodgman+you%27re+welcome&amp;amp;hl=en&amp;amp;prmd=ivnso&amp;amp;source=univ&amp;amp;tbm=vid&amp;amp;tbo=u&amp;amp;sa=X&amp;amp;ei=ueGiTevRNs7Jswas0cDqAQ&amp;amp;ved=0CCcQqwQ&amp;amp;bav=on.2,or.r_gc.r_pw.&amp;amp;fp=c875dd2b8adea15a&quot;&gt;You're welcome.&lt;/a&gt; ;)&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/15370741-6638865812994446134?l=jmglov.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Josh Glover</name>
			<email>noreply@blogger.com</email>
			<uri>http://jmglov.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">jmglov</title>
			<link rel="self" href="http://jmglov.blogspot.com/atom.xml"/>
			<id>tag:blogger.com,1999:blog-15370741</id>
			<updated>2012-01-16T20:38:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Ruby Light #6</title>
		<link href="http://jmglov.blogspot.com/2011/04/ruby-light-6.html"/>
		<id>tag:blogger.com,1999:blog-15370741.post-329742339292632599</id>
		<updated>2011-04-06T23:51:33+00:00</updated>
		<content type="html">This is the most complicated bit of meta-programming in Ruby Light so far. Johan and I cooked it up; the beautiful plumbing is his, the basis of the &lt;tt&gt;instance_exec&lt;/tt&gt; rebinding trick is mine.&lt;br /&gt;&lt;br /&gt;The intent is as follows: for each request to a Rails controller, redirect unless all of the URL query parameters you get are valid.&lt;br /&gt;&lt;br /&gt;And this is how it actually works: &lt;ol&gt;&lt;li&gt;When Rails loads the &lt;tt&gt;FooController&lt;/tt&gt; class: &lt;ol&gt; &lt;li&gt;&lt;tt&gt;FooController&lt;/tt&gt; mixes in the &lt;tt&gt;ParamsFilter&lt;/tt&gt; module, resulting in it getting the &lt;tt&gt;known_params&lt;/tt&gt; and &lt;tt&gt;parse_known_params&lt;/tt&gt; class methods and the &lt;tt&gt;redirect_if_unknown_params&lt;/tt&gt; and &lt;tt&gt;select_unknown&lt;/tt&gt; instance methods (et al.).&lt;/li&gt; &lt;li&gt;&lt;tt&gt;FooController&lt;/tt&gt; calls the &lt;tt&gt;known_params&lt;/tt&gt; class method to always accept the &quot;limit&quot; and &quot;offset&quot; params, but only accept the &quot;bar&quot; param when the &lt;tt&gt;Foo&lt;/tt&gt; object is of type &quot;bar&quot;.&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;li&gt; On each request: &lt;ol&gt; &lt;li&gt; &lt;tt&gt;FooController&lt;/tt&gt;'s &lt;tt&gt;before_filter&lt;/tt&gt; calls its &lt;tt&gt;redirect_if_unknown_params&lt;/tt&gt; instance method.&lt;/li&gt; &lt;li&gt;&lt;tt&gt;redirect_if_unknown_params&lt;/tt&gt; rejects unknown parameters using the private &lt;tt&gt;select_unknown&lt;/tt&gt; instance method.&lt;/li&gt; &lt;li&gt;&lt;tt&gt;select_unknown&lt;/tt&gt; calls &lt;tt&gt;known_param?&lt;/tt&gt; on each param.&lt;/li&gt; &lt;li&gt;If the param has a &lt;tt&gt;:when&lt;/tt&gt; component, &lt;tt&gt;known_param?&lt;/tt&gt; executes its value (which is a block)--and here's the cool part--&lt;span&gt;in the context of the controller instance!&lt;/span&gt; This is cool because &lt;tt&gt;Proc&lt;/tt&gt; objects normally operate in the context in which they were defined (i.e. they are closures). Calling &lt;tt&gt;instance_eval&lt;/tt&gt; or &lt;tt&gt;instance_exec&lt;/tt&gt; with a &lt;tt&gt;Proc&lt;/tt&gt; argument (which is &lt;span&gt;not&lt;/span&gt; the same thing as a block!) results in the &lt;tt&gt;Proc&lt;/tt&gt;'s binding being changed to context where it is &lt;span&gt;called&lt;/span&gt;. This results in &lt;span&gt;self&lt;/span&gt;, which was the &lt;tt&gt;FooController&lt;/tt&gt; class when the &lt;tt&gt;Proc&lt;/tt&gt; was defined, being set to the &lt;tt&gt;FooController&lt;/tt&gt; &lt;span&gt;instance&lt;/span&gt; on which &lt;tt&gt;known_param?&lt;/tt&gt; is executing.&lt;/li&gt; &lt;/ol&gt; &lt;/li&gt; &lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;And now, the code:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;app/controllers/foo_controller.rb&lt;/div&gt;&lt;pre&gt;class FooController  ApplicationController&lt;br /&gt;  include ParamsFilter&lt;br /&gt;&lt;br /&gt;  before_filter :redirect_if_unknown_params&lt;br /&gt;  known_params :limit, :offset, :only =&gt; :bar, :when =&gt; lambda {@type == 'bar'}&lt;br /&gt;  # [...]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;lib/params_filter.rb&lt;/div&gt;&lt;pre&gt;module ParamsFilter&lt;br /&gt;  def self.included(base)&lt;br /&gt;    base.send :extend, ClassMethods&lt;br /&gt;    base.send :include, InstanceMethods&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  module ClassMethods&lt;br /&gt;    attr_reader :known_params&lt;br /&gt;&lt;br /&gt;    def known_params(*args, &amp;amp;block)&lt;br /&gt;      @@known_params ||= HashWithIndifferentAccess.new&lt;br /&gt;      @@known_params.merge! parse_known_params(*args, &amp;amp;block)&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    def parse_known_params(*args, &amp;amp;block)&lt;br /&gt;      HashWithIndifferentAccess.new.tap do |known_params|&lt;br /&gt;        options = (args.last.is_a? Hash) ? args.pop.dup : {}&lt;br /&gt;        options[:when] = block if block_given?&lt;br /&gt;&lt;br /&gt;        args.each do |param|&lt;br /&gt;          known_params[param] = options&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  module InstanceMethods&lt;br /&gt;    def known_params(*args)&lt;br /&gt;      @known_params ||= HashWithIndifferentAccess.new&lt;br /&gt;      @known_params.merge! self.class.parse_known_params(*args)&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    def redirect_if_unknown_params&lt;br /&gt;      unknown = select_unknown request.query_parameters, request.path_parameters&lt;br /&gt;      redirect_without_unknown_params unknown unless unknown.empty?&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    private&lt;br /&gt;&lt;br /&gt;    def select_unknown(query_params = {}, path_params = {})&lt;br /&gt;      query_params.reject {|param, _| known_param? param, path_params}&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    def known_param?(param, params)&lt;br /&gt;      if options = param_options(param)&lt;br /&gt;        if action_matches_params? options[:only], params&lt;br /&gt;          options[:when].nil? || instance_exec(param, &amp;amp;options[:when])&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    def redirect_without_unknown_params(unknown_params)&lt;br /&gt;      # Actually perform redirect&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    # [...]&lt;br /&gt;  end&lt;br /&gt;end&lt;/pre&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/15370741-329742339292632599?l=jmglov.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Josh Glover</name>
			<email>noreply@blogger.com</email>
			<uri>http://jmglov.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">jmglov</title>
			<link rel="self" href="http://jmglov.blogspot.com/atom.xml"/>
			<id>tag:blogger.com,1999:blog-15370741</id>
			<updated>2012-01-16T20:38:07+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Please Donate</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/WkSAmxCaklI/"/>
		<id>http://www.zuco.org/?p=2228</id>
		<updated>2011-04-06T11:23:00+00:00</updated>
		<content type="html">&lt;p&gt;This is the sound of the Earthquake/Tsunami on March 11th.&lt;/p&gt;
&lt;p&gt;&lt;center&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;/center&gt;&lt;/p&gt;
&lt;p&gt;Here you have some links for donations and help:&lt;/p&gt;
&lt;p&gt;Japanese Red Cross information &lt;a href=&quot;http://www.jrc.or.jp/english/index.html&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
The Peace Boat information &lt;a href=&quot;http://www.peaceboat.org/english/index.php?page=view&amp;#038;nr=19&amp;#038;type=22&amp;#038;menu=62&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
Save the Children information &lt;a href=&quot;http://www.savethechildren.org/site/apps/nlnet/content2.aspx?c=8rKLIXMGIpI4E&amp;#038;b=6478593&amp;#038;ct=9179855&amp;#038;notoc=1&quot;&gt;here&lt;/a&gt;. &lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/WkSAmxCaklI&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Coming back to a normal life</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/BdZiGSE2Tjc/"/>
		<id>http://www.zuco.org/?p=2217</id>
		<updated>2011-04-04T15:42:51+00:00</updated>
		<content type="html">&lt;p&gt;&lt;img class=&quot;postpicture&quot; align=&quot;left&quot; src=&quot;http://www.pietrozuco.com/wp-content/uploads/2011/04/japanmap.jpg&quot; alt=&quot;Tohoku Earthquake&quot; /&gt; It was about 3 weeks of silence due to the great Tohoku earthquake. I have a lot to say and little time for blogging so let’s start. However, what you will find here are not breaking news, but thoughts and conclusions from the point of view of a foreigner living in Tokyo.&lt;/p&gt;
&lt;p&gt;It was 14:46, I was working in my office at Tameikesanno st., just the next building close to the American Embassy. As you can imagine it just started shaking, then stronger and stronger&amp;#8230; and then really badly!&lt;br /&gt;
It’s hard to explain what was in my mind at that moment. The first thing I thought was “Is this the great Kanto earthquake?” Fortunately or unfortunately it wasn&amp;#8217;t. &lt;/p&gt;
&lt;p&gt;I was thinking about my girlfriend, friends and everybody else around. Where are them? I faced the possibility that in that very moment they could die. In such situation, I wasn’t able to understand if that was a really big quake of just a bigger one. I had never felt something similar, so for me, and everybody else in the office, it was just insanely big! The building I’m working in is new, well built, strong but&amp;#8230; what about other ones? One thought came to my mind just straight away: “If you get out the building now or 5 or 10 minutes later, nothing is going to change. If something really bad happened to somebody you care, it has already happened and you cannot do anything now to stop it!” So I waited until the first quake ended, then took my stuff, checked with my coworkers and run away from the building, looking for a taxi to reach home and see how she was (my gf) !! I couldn’t contact using the mobile network but fortunately data network was almost OK. Twitter was the main source of information and the faster way to contact with her and friends. I could see from the taxi people in the streets with their helmets, people looking up to the buildings to see if some of them were damaged.&lt;/p&gt;
&lt;p&gt;Then the second quake came, when I was still in the taxi. The driver turned the radio on just before the second quake came and at a certain moment the radio sent out an alert for the next coming quake. The driver stopped the car, and we waited for a few seconds. That moment into the taxi was like being in a boat… The taxi driver was pretty old and he told me he had never experienced such a big quake before in his whole life. The traffic was jammed and it would take a really long time to reach home if I kept inside the car. So I just paid the driver and came back home by walk. Fortunately I was quite close already so it took me about 1.5hours to reach home.  Other people didn’t have the same luck. Many of them spent 6 to 8 hours or more to reach home and some other people had to spend the night at stations or in their offices until the next day. Trains collapsed and the entire transportation infrastructure was almost frozen.&lt;/p&gt;
&lt;p&gt;Finally I reached home, everything was quite fine. A lot of stuff around, some stuff broken but she was OK and also friends were OK. At Tokyo we were really lucky, infrastructures resisted pretty well and not a single one building had collapsed. &lt;/p&gt;
&lt;p&gt;For the next days we stayed at home feeling an aftershock after another. It was like a never ending dance of the earth. The feeling at some point, experienced by many other people as well, was like being dizzy, like being in a boat! Always worrying about the next quake, worrying about the next alert, worrying about almost everything. Those were a really paranoid days I won’t forget. &lt;/p&gt;
&lt;p&gt;Here you can see a map showing the sequence of quakes in Japan since March 11th 2011. &lt;a href=&quot;http://www.japanquakemap.com/&quot;&gt;http://www.japanquakemap.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This was basically my story. It was the first time I felt an earthquake of such magnitude and I’m pretty sure I’m not the only one. Unfortunately for people in the north of Japan, affected by the tsunami, things weren’t so smooth. Thousands of fatalities and missing lives, families destroyed, broken, no food and water during the first days. The psychological impact that such a cataclysm will have in their minds will last for decades. &lt;/p&gt;
&lt;p&gt;They need help. Japanese National Guard, Japan Red Cross, US military forces and many other organizations and volunteers are doing a great job but help is always needed and not just right now but during years. Money and support will help those people during a short period of time. They not only need to feed their stomachs right now but they need to rebuild their lives. That takes time and, especially, that takes constant economic support. &lt;/p&gt;
&lt;p&gt;So please don&amp;#8217;t forget victims after few months. &lt;/p&gt;
&lt;p&gt;More information about the earthquake in the &lt;a href=&quot;http://en.wikipedia.org/wiki/2011_T%C5%8Dhoku_earthquake_and_tsunami&quot;&gt;wikipedia&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here you have some links for donations and help.&lt;br /&gt;
Japanese Red Cross information &lt;a href=&quot;http://www.jrc.or.jp/english/index.html&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
The Peace Boat information &lt;a href=&quot;http://www.peaceboat.org/english/index.php?page=view&amp;#038;nr=19&amp;#038;type=22&amp;#038;menu=62&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
Save the Children information &lt;a href=&quot;http://www.savethechildren.org/site/apps/nlnet/content2.aspx?c=8rKLIXMGIpI4E&amp;#038;b=6478593&amp;#038;ct=9179855&amp;#038;notoc=1&quot;&gt;here&lt;/a&gt;. &lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/BdZiGSE2Tjc&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Ruby Light #5</title>
		<link href="http://jmglov.blogspot.com/2011/04/ruby-light-5.html"/>
		<id>tag:blogger.com,1999:blog-15370741.post-7888189764235988382</id>
		<updated>2011-04-01T16:31:58+00:00</updated>
		<content type="html">This is a remix of &lt;a href=&quot;http://jmglov.blogspot.com/2011/02/ruby-light-1.html&quot;&gt;Ruby Light #1&lt;/a&gt;, done better (IMHO):&lt;br /&gt;&lt;br /&gt;&lt;div&gt;test/lib/redirect_io.rb&lt;/div&gt;&lt;pre&gt;require 'stringio'&lt;br /&gt;&lt;br /&gt;module RedirectIo&lt;br /&gt;  def setup&lt;br /&gt;    $stderr = @stderr = StringIO.new&lt;br /&gt;    $stdin = @stdin = StringIO.new&lt;br /&gt;    $stdout = @stdout = StringIO.new&lt;br /&gt;    super&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def teardown&lt;br /&gt;    $stderr = STDERR&lt;br /&gt;    $stdin = STDIN&lt;br /&gt;    $stdout = STDOUT&lt;br /&gt;    super&lt;br /&gt;  end&lt;br /&gt;end&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;test/unit/timestamp_logger_test.rb&lt;/div&gt;&lt;pre&gt;require 'test_helper'&lt;br /&gt;require 'lib/generic_test_helper.rb'  # from Ruby Light #3&lt;br /&gt;require 'lib/redirect_io'&lt;br /&gt;&lt;br /&gt;class TimestampLoggerTest  Test::Unit::TestCase&lt;br /&gt;  include GenericTestHelper&lt;br /&gt;  include RedirectIo&lt;br /&gt;&lt;br /&gt;  LOG_LEVELS = [:error, :warn, :info, :debug]&lt;br /&gt;&lt;br /&gt;  def setup&lt;br /&gt;    super  # RedirectIO.setup needs to run&lt;br /&gt;&lt;br /&gt;    @logger = TimestampLogger.new $stdout&lt;br /&gt;    @logger.level = Logger::DEBUG&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def test_timestamps&lt;br /&gt;    LOG_LEVELS.each do |level|&lt;br /&gt;      @logger.send level, 'foo'&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    @stdout.string.split(&quot;\n&quot;).each do |line|&lt;br /&gt;      assert_match /^#{TIMESTAMP_MATCHER} /, line&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def test_labels&lt;br /&gt;    LOG_LEVELS.each do |level|&lt;br /&gt;      @logger.send level, 'foo'&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    [:error, :warn].each do |level|&lt;br /&gt;      assert_match /^#{TIMESTAMP_MATCHER} \[#{level.to_s.upcase}\] /, @stdout.string&lt;br /&gt;    end&lt;br /&gt;  end&lt;/pre&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/15370741-7888189764235988382?l=jmglov.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Josh Glover</name>
			<email>noreply@blogger.com</email>
			<uri>http://jmglov.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">jmglov</title>
			<link rel="self" href="http://jmglov.blogspot.com/atom.xml"/>
			<id>tag:blogger.com,1999:blog-15370741</id>
			<updated>2012-01-16T20:38:07+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Do you have meat?</title>
		<link href="http://www.bawdo.com/posts/51"/>
		<id>tag:www.bawdo.com,2005:Post/51</id>
		<updated>2011-03-13T05:28:45+00:00</updated>
		<content type="html">&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	Kaori and I went out for supplies (the new word for food shopping here in Japan) earlier today. There were a lot more people than usual walking around.&lt;/p&gt;
&lt;p&gt;
	Some were carrying bags from the local shop, others were simply taking a walk, and some were queuing for water.&lt;/p&gt;
&lt;p&gt;
	Lots of shelves were bare, but there was still a lot of things to buy. We got some of the last milk on offer, and we had to line up for around 45 minutes to reach the cash register.&amp;nbsp;Other than that there was nothing exciting going on.&lt;/p&gt;
&lt;p&gt;
	However, the third floor was damaged by water and is closed. I assume it was a burst water pipe up there. So we could not get any gas refills for our gas cooker, but other than that we got everything we need.&lt;/p&gt;
&lt;p&gt;
	Besides potatoes, carrots and some other basics we bought some mince, steak and sausages. So we now have around 10kg of meat in the freezer. A 3kg lump of pork, and around 6 kg of Genghis Kahn.&amp;nbsp;&lt;a href=&quot;http://en.wikipedia.org/wiki/Jingisukan&quot;&gt;http://en.wikipedia.org/wiki/Jingisukan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
	So my mum can relax. One of the questions she asked when I called was, &amp;quot;do you have enough meat&amp;quot;?&lt;/p&gt;
&lt;p&gt;
	Yep we do now :-)&lt;/p&gt;</content>
		<author>
			<name>Keith Bawden</name>
			<uri>http://www.bawdo.com</uri>
		</author>
		<source>
			<title type="html">bawdo.com</title>
			<link rel="self" href="http://www.bawdo.com/posts.atom"/>
			<id>tag:www.bawdo.com,2005:/posts</id>
			<updated>2011-11-05T17:19:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Japan Quake - March 11, 2011</title>
		<link href="http://www.bawdo.com/posts/50"/>
		<id>tag:www.bawdo.com,2005:Post/50</id>
		<updated>2011-03-12T04:43:18+00:00</updated>
		<content type="html">&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	I have created to animations using images from the following site I have created an animated gif of Japan's seismic activity starting at 0200 on the day of the quake through to 1212 the next day.&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;http://www.jma.go.jp/en/quake/quake_local_index.html&quot;&gt;http://www.jma.go.jp/en/quake/quake_local_index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
	Fast Version: &lt;a href=&quot;http://www.youtube.com/watch?v=F9SxEGA_TY0&quot;&gt;http://www.youtube.com/watch?v=F9SxEGA_TY0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
	Slowed Down Version: &lt;a href=&quot;http://www.youtube.com/watch?v=yh5SfjKmU9A&quot;&gt;http://www.youtube.com/watch?v=yh5SfjKmU9A&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;img alt=&quot;&quot; /&gt;&lt;/p&gt;</content>
		<author>
			<name>Keith Bawden</name>
			<uri>http://www.bawdo.com</uri>
		</author>
		<source>
			<title type="html">bawdo.com</title>
			<link rel="self" href="http://www.bawdo.com/posts.atom"/>
			<id>tag:www.bawdo.com,2005:/posts</id>
			<updated>2011-11-05T17:19:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Numero Email Contatto Ambasciata Italia Tokyo terremoto, イタリア大使館緊急電話番号</title>
		<link href="http://feedproxy.google.com/~r/Zucoorg-en/~3/npWjnJ3Qvow/"/>
		<id>http://www.zuco.org/?p=2208</id>
		<updated>2011-03-11T12:27:20+00:00</updated>
		<content type="html">&lt;p&gt;L&amp;#8217;ambasciata d&amp;#8217;Italia mi ha inviato questa email con numeri di contatto. Efficientissima, solo dopo meno di un paio di ore, ho ricevuto questa comunicazione, in italiano e Giapponese:&lt;/p&gt;
&lt;p&gt;The Italian embassy sent this email with emergency numbers and email to contact in case some Italian or relative has been affected by the Earthquake.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;
L&amp;#8217;Ambasciata d&amp;#8217;Italia in Tokyo sta attentamente monitorando la situazione a seguito del terremoto e del relativo tsunami che hanno colpito il nord-est del Giappone.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si pregano i connazionali residenti nelle zone colpite che abbiano subito conseguenze di grave entitá di voler contattare l&amp;#8217;Ambasciata utilizzando il numero di telefono 03-3453-5274 o l&amp;#8217;e-mail consular.tokyo@esteri.it.&lt;/p&gt;
&lt;p&gt;日本北東部を直撃した強い揺れの地震とそれに伴い発生した津波につきましてイタリア大使館は現在状況収集を行っています。&lt;/p&gt;
&lt;p&gt;被災地在住で大きな被害に遭われたイタリア人の方は大使館にご連絡ください。電話の場合は 03-3453-5274 メールの場合は consular.tokyo@esteri.it にご連絡ください。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;UPDATE:&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;
L’Ambasciata d’Italia ricorda che le persone che si trovano nelle aree colpite dal terremoto possono usare l’NTT &amp;#8220;Disaster Message Exchange&amp;#8221; per registrare un messaggio per i familiari/conoscenti.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il servizio è ora attivo, per il momento solo da e per numeri di rete fissa ed e’ solo in lingua giapponese.&lt;/p&gt;
&lt;p&gt;Per lasciare un messaggio occorre: chiamare il numero telefonico 171, quindi premere 1 e poi comporre il numero della propria abitazione o quello eventualmente concordato con i propri familiari (compreso prefisso locale). Digitare quindi 1# e, al termine del messaggio pre-registrato, lasciare il proprio messaggio (max. 30 secondi) e comporre 9# per chiudere la registrazione.&lt;/p&gt;
&lt;p&gt;Con lo stesso servizio è possibile ascoltare i messaggi registrati da parenti o amici. In tal caso, dopo aver chiamato il numero 171, occorre digitare 2 e poi comporre il numero della propria abitazione o quello eventualmente concordato con i propri familiari. Digitare quindi 1# e, dopo il messaggio pre-registrato, ascoltare il messaggio e comporre 9# per chiudere la comunicazione. Per aggiungere un ulteriore messaggio digitare 3# e registrare il messaggio.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Scaricare istruzioni &lt;a href=&quot;http://zuco.org/sources/ISTRUZIONI_SERVIZIO_171_NTT.pdf&quot;&gt;PDF&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Zucoorg-en/~4/npWjnJ3Qvow&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Pietro Zuco</name>
			<uri>http://blog.zuco.org</uri>
		</author>
		<source>
			<title type="html">ZUCO.ORG</title>
			<subtitle type="html">Mobile applications developer, my thoughts and experiences from Tokyo</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/Zucoorg-en"/>
			<id>http://feeds.feedburner.com/Zucoorg-en</id>
			<updated>2012-02-05T08:19:09+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Ruby Light #4</title>
		<link href="http://jmglov.blogspot.com/2011/03/ruby-light-4.html"/>
		<id>tag:blogger.com,1999:blog-15370741.post-7968919777366185934</id>
		<updated>2011-03-11T01:44:07+00:00</updated>
		<content type="html">&lt;div&gt;eval_string.rb&lt;/div&gt;&lt;pre&gt;class EvalString  String&lt;br /&gt;  def eval(b)&lt;br /&gt;    b.eval String.new(self)&lt;br /&gt;  end&lt;br /&gt;end&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;irb session&lt;/div&gt;&lt;pre&gt;&gt;&gt; foo = 1&lt;br /&gt;=&gt; 1&lt;br /&gt;&gt;&gt; bar = 2&lt;br /&gt;=&gt; 2&lt;br /&gt;&gt;&gt; str = EvalString.new &quot;foo+bar&quot;&lt;br /&gt;=&gt; &quot;foo+bar&quot;&lt;br /&gt;&gt;&gt; str&lt;br /&gt;=&gt; &quot;foo+bar&quot;&lt;br /&gt;&gt;&gt; str.eval(binding)&lt;br /&gt;=&gt; 3&lt;/pre&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/15370741-7968919777366185934?l=jmglov.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Josh Glover</name>
			<email>noreply@blogger.com</email>
			<uri>http://jmglov.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">jmglov</title>
			<link rel="self" href="http://jmglov.blogspot.com/atom.xml"/>
			<id>tag:blogger.com,1999:blog-15370741</id>
			<updated>2012-01-16T20:38:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Ruby Light #3</title>
		<link href="http://jmglov.blogspot.com/2011/03/ruby-light-3.html"/>
		<id>tag:blogger.com,1999:blog-15370741.post-8785925103773949833</id>
		<updated>2011-03-10T00:10:12+00:00</updated>
		<content type="html">This insanity is my own:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;generic_test_helper.rb&lt;/div&gt;&lt;pre&gt;require 'flexmock'&lt;br /&gt;&lt;br /&gt;module GenericTestHelper&lt;br /&gt;  include FlexMock::TestCase&lt;br /&gt;&lt;br /&gt;  TIMESTAMP_MATCHER = '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[+]\d{2}:\d{2}'&lt;br /&gt;&lt;br /&gt;  def clear_mocked_method(mock, method)&lt;br /&gt;    return unless mock.is_a? FlexMock&lt;br /&gt;&lt;br /&gt;    mock.instance_eval { @expectations.delete method.to_sym }&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def mock_method(mock, method, retval, with = nil)&lt;br /&gt;    mock = flexmock mock unless mock.is_a? FlexMock&lt;br /&gt;    clear_mocked_method mock, method&lt;br /&gt;&lt;br /&gt;    if with.nil?&lt;br /&gt;      mock.should_receive(method).and_return retval&lt;br /&gt;    else&lt;br /&gt;      mock.should_receive(method).with(with).and_return retval&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;foo_test.rb&lt;/div&gt;&lt;pre&gt;require 'generic_test_helper'&lt;br /&gt;class FooTest  Test::Unit::TestCase&lt;br /&gt;  include GenericTestHelper&lt;br /&gt;&lt;br /&gt;  def test_exceptions_are_logged&lt;br /&gt;    exception = nil&lt;br /&gt;    begin&lt;br /&gt;      1 / 0&lt;br /&gt;    rescue Exception =&gt; exception&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    mock_database_lookups&lt;br /&gt;    clear_mocked_method Bar.instance_eval{@flexmock_proxy}.mock, :find_by_id&lt;br /&gt;    flexmock(Bar).should_receive(:find_by_id).and_raise(exception)&lt;br /&gt;&lt;br /&gt;    assert_nothing_raised { Foo.run 0 }&lt;br /&gt;    assert_match /exception caught: #{Regexp.escape exception.message} #{exception.backtrace.map{|str| Regexp.escape(str)}.join &quot;\n#{TIMESTAMP_MATCHER}&quot;  }/,&lt;br /&gt;        @stdout.string&lt;br /&gt;  end&lt;br /&gt;end&lt;/pre&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/15370741-8785925103773949833?l=jmglov.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Josh Glover</name>
			<email>noreply@blogger.com</email>
			<uri>http://jmglov.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">jmglov</title>
			<link rel="self" href="http://jmglov.blogspot.com/atom.xml"/>
			<id>tag:blogger.com,1999:blog-15370741</id>
			<updated>2012-01-16T20:38:07+00:00</updated>
		</source>
	</entry>

</feed>

