<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="rss.css" type="text/css"?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:xhtml="http://www.w3.org/1999/xhtml" xml:lang="ja-JP">
	<channel rdf:about="http://www.machu.jp/diary/index.rdf">
	<title>まちゅダイアリー(without comments)</title>
	<link>http://www.machu.jp/diary/</link>
	<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/" />
	<description>RubyやLinuxなど、技術的に興味のあることについて。</description>
	<dc:creator>machu</dc:creator>
	<dc:rights>Copyright 2010 machu, copyright of comments by respective authors</dc:rights>
	<items><rdf:Seq>
<rdf:li rdf:resource="http://www.machu.jp/diary/20100207.html#p01"/>
<rdf:li rdf:resource="http://www.machu.jp/diary/20100118.html#p01"/>
<rdf:li rdf:resource="http://www.machu.jp/diary/20100117.html#p01"/>
<rdf:li rdf:resource="http://www.machu.jp/diary/20100116.html#p01"/>
<rdf:li rdf:resource="http://www.machu.jp/diary/20091231.html#p01"/>
<rdf:li rdf:resource="http://www.machu.jp/diary/20091230.html#p01"/>
<rdf:li rdf:resource="http://www.machu.jp/diary/20091223.html#p01"/>
<rdf:li rdf:resource="http://www.machu.jp/diary/20091123.html#p01"/>
<rdf:li rdf:resource="http://www.machu.jp/diary/20091105.html#p01"/>
<rdf:li rdf:resource="http://www.machu.jp/diary/20091104.html#p01"/>
<rdf:li rdf:resource="http://www.machu.jp/diary/20091020.html#p01"/>
<rdf:li rdf:resource="http://www.machu.jp/diary/20091019.html#p01"/>
<rdf:li rdf:resource="http://www.machu.jp/diary/20091018.html#p01"/>
<rdf:li rdf:resource="http://www.machu.jp/diary/20091002.html#p02"/>
<rdf:li rdf:resource="http://www.machu.jp/diary/20091002.html#p01"/>
</rdf:Seq></items>
</channel>
<item rdf:about="http://www.machu.jp/diary/20100207.html#p01">
<link>http://www.machu.jp/diary/20100207.html#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/20100207.html#p01" />
<dc:date>2010-02-09T01:18:49+09:00</dc:date>
<title>[memo] VMware Play..</title>
<dc:creator>machu</dc:creator>
<description>[memo] VMware Player が便利になってた これまで仮想化環境として VMware Server を使っていたんだけど、 PC を Windows7 + Core i3 へと新しくしたついでに Player へと移行した。 以前の Player はその名のとおりに再生専用（仮想イメージは事前に用意されたものを使う前提）で、自分で仮想環境を構築することができなかった。 その頃 (2006年の夏) は、QEMU と VMware の組み合わせで仮想環境を構築し..</description>
<content:encoded><![CDATA[<p>[memo] VMware Player が便利になってた</p>
<p>これまで仮想化環境として VMware Server を使っていたんだけど、 PC を Windows7 + Core i3 へと新しくしたついでに Player へと移行した。
以前の Player はその名のとおりに再生専用（仮想イメージは事前に用意されたものを使う前提）で、自分で仮想環境を構築することができなかった。
その頃 (2006年の夏) は、<a href="http://www.machu.jp/diary/20060609.html#p01">QEMU と VMware の組み合わせ</a>で仮想環境を構築していたんだけど、 VMware Server が無償提供されるようになってからは仮想環境の管理が楽な Server を使い続けてきた。</p>
<p>でも、昨年の秋に公開された最新のバージョン3では Player でも仮想環境を簡単に作ることができるようになっていた。</p>
<p>これが起動画面。メニューに「新規仮想マシンの作成」という項目がある。</p>
<p><a href="http://www.flickr.com/photos/machu/4341041710/"><img title="VMware Player" alt="VMware Player" src="http://farm5.static.flickr.com/4006/4341041710_5b62628bfb.jpg" class="flickr" width="500" height="426"></a></p>
<p>VMware Server と同じように、仮想マシンの設定は GUI で可能。
QEMU と併用していた頃は設定ファイルをエディタで書き換えていたなぁ…。</p>
<p><a href="http://www.flickr.com/photos/machu/4340297637/"><img title="VMware Player" alt="VMware Player" src="http://farm5.static.flickr.com/4014/4340297637_0401f25c97.jpg" class="flickr" width="500" height="403"></a></p>
<p>と、これだけだと Server と変わらないんだけど、驚いたのは OS をインストールしようとしたとき。
まずは Ubuntu でも入れてみるか、と iso イメージを選択したら、以下の画面が表示された。
画面の下のほうに、こんなメッセージが表示されている。</p>
<blockquote><p>Ubuntu Server 9.10が検出されました。この OS は簡易インストールを使用します。</p>
</blockquote>
<p><a href="http://www.flickr.com/photos/machu/4340339579/"><img title="VMware Player" alt="VMware Player" src="http://farm5.static.flickr.com/4062/4340339579_948ba44a47.jpg" class="flickr" width="500" height="367"></a></p>
<p>「次へ」をクリックすると、 Ubuntu に設定するユーザ名とパスワードの入力画面が表示される。
（Windowsの場合は、ライセンス番号の入力も要求される）</p>
<p><a href="http://www.flickr.com/photos/machu/4341099630/"><img title="VMware Player" alt="VMware Player" src="http://farm5.static.flickr.com/4017/4341099630_a6df729054.jpg" class="flickr" width="500" height="367"></a></p>
<p>この後、ホストOS上での仮想環境のインストール先ディレクトリと、作成する仮想ディスクの容量を指定すると、もうインストールが開始される。
キーボードやロケールなどの面倒な設定は不要で、「こんなに簡単？」ってほどアッサリにインストールが終了する。</p>
<ul>
<li><a href="http://www.forest.impress.co.jp/docs/news/20091029_325179.html">VMwareシリーズの最新版が公開、無償の「VMware Player」に仮想PC作成機能が追加</a></li>
</ul>
<p>スナップショットがないなど、一部の機能に制約があるけど、気軽に使うには便利だよなぁ。</p>]]></content:encoded>
</item>
<item rdf:about="http://www.machu.jp/diary/20100118.html#p01">
<link>http://www.machu.jp/diary/20100118.html#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/20100118.html#p01" />
<dc:date>2010-01-25T23:21:07+09:00</dc:date>
<title>新旧PC比較</title>
<dc:creator>machu</dc:creator>
<dc:subject>memo</dc:subject>
<description>5年前に組み立てたPCのレシートが出てきたので、昨日組み立てたPCとの新旧比較をやってみる。  パーツ旧PC値段新PC値段 マザーボードGIGABYTE GA-K8N Ultra-919kGIGABYTE GA-H55-UD3H10k CPUAMD Athlon 64 3200+ (Winchester Core, Socket 939)21kIntel Core i3 530 2.93GHz (Clarkdale Core, LGA 1156..</description>
<content:encoded><![CDATA[<h3>新旧PC比較</h3><p><a href="http://www.machu.jp/diary/20050328.html#p01">5年前に組み立てたPC</a>のレシートが出てきたので、<a href="http://www.machu.jp/diary/20100117.html#p01">昨日組み立てたPC</a>との新旧比較をやってみる。</p>
<table border="1">
<tr><td>パーツ</td><td>旧PC</td><td>値段</td><td>新PC</td><td>値段</td></tr>
<tr><td>マザーボード</td><td>GIGABYTE GA-K8N Ultra-9</td><td>19k</td><td>GIGABYTE GA-H55-UD3H</td><td>10k</td></tr>
<tr><td>CPU</td><td>AMD Athlon 64 3200+ (Winchester Core, Socket 939)</td><td>21k</td><td>Intel Core i3 530 2.93GHz (Clarkdale Core, LGA 1156)</td><td>13k</td></tr>
<tr><td>メモリ</td><td>DDR-400 512MB x 2 (1GB)</td><td>15k</td><td>DDR3 2GB x 2 (4GB)</td><td>10k</td></tr>
<tr><td>HDD</td><td>Maxtor 200GB (7200rpm, SATA2)</td><td>14k</td><td>Intel X25-V Value 40GB (SATA, SSD)</td><td>13k</td></tr>
<tr><td>ビデオカード</td><td>GIGABYTE GV-NX66128DP (GeForce 6600)</td><td>15k</td><td>CPUに内蔵</td><td>-</td></tr>
<tr><td>ケース</td><td>Owltech OWL-612-SLT/430 (電源付属)</td><td>18k</td><td>→</td><td>-</td></tr>
<tr><td>ディスプレイ</td><td>SAMSUNG SyncMaster 912T (19型)</td><td>50k</td><td>→</td><td>-</td></tr>
<tr><td>合計</td><td></td><td>152k</td><td></td><td>46k</td></tr>
</table>
<p>5年前のPCは少しお金をかけていたんだなと分かる。だからこそ、5年経ってもブルースクリーンが発生するまでは、特にストレス無く使えていたんだろう。</p>
<p>そして、新しいPCが前の1/3の値段で組めたのは、ケースとディスプレイを流用したことに加えて、各パーツの部品も安くなっているから。
特に、 Core i3 は 1万3千円でビデオカードも兼ねているのでコストパフォーマンスが高い。
明らかに悪い3D性能（2年前のMacBook Proと同等かそれ以下）を許容できるのならオススメの構成だなぁ。</p>
<h4>Windows 7 でのエクスペリエンスインデックス</h4>
<p>5年前のPCでの値はこちら。
メモリとHDD以外は3点台。
5年前としては健闘しているかな。</p>
<p><a href="http://www.flickr.com/photos/machu/4303154451/"><img title="windows7-old" alt="windows7-old" src="http://farm5.static.flickr.com/4031/4303154451_f07568714a.jpg" class="flickr" width="500" height="186"></a></p>
<p>現PCでの値。
Core i3 でもここまでできる。
SSDにすることで、ディスクのパフォーマンスが上がってる。
グラフィック、3D性能はCPU内蔵のため、まぁこんな程度かな。</p>
<p><a href="http://www.flickr.com/photos/machu/4303154529/"><img title="windows-new" alt="windows-new" src="http://farm5.static.flickr.com/4027/4303154529_98becf3d6e.jpg" class="flickr" width="500" height="238"></a></p>]]></content:encoded>
</item>
<item rdf:about="http://www.machu.jp/diary/20100117.html#p01">
<link>http://www.machu.jp/diary/20100117.html#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/20100117.html#p01" />
<dc:date>2010-01-22T00:44:51+09:00</dc:date>
<title>Intel Core i3 マシンにリニューアル</title>
<dc:creator>machu</dc:creator>
<dc:subject>memo</dc:subject>
<description>発端 5年前に組み立てたマシンが、ここ数ヶ月ブルースクリーンが多発するようになった。 いくつか対処してみたけど、状況は変わらず。  Windowsの回復コンソールから、ブルースクリーン発生前のバージョンに戻しても変わらず。 OS (Windows 7) を 64bit 版から 32bit 版に再インストールしても変わらず。 BlueScreenViewを入れて原因を確認。 いずれもエラー原因は MEMORY_MANAGEMENT だった。  HDDのスキャンディスクをしても異常なし。 CrystalDiskInfo でも異常なし。 Memtest86+でメモリをテストしても異常なし。  確証はないけど、マザーボードの故障と推測。 性能的には全然不満を感じていなかったけど、もう5年も使い続けてきたし、思い切って買い換えることにした。 基本方針  基本的にはネットとメール。それから写真と音楽 (iTunes) の管理。ゲームはや..</description>
<content:encoded><![CDATA[<h3>Intel Core i3 マシンにリニューアル</h3><p><a href="http://www.flickr.com/photos/machu/4285365246/"><img title="Core i5 on GIGABYTE GA-H55M-UD2H" alt="Core i5 on GIGABYTE GA-H55M-UD2H" src="http://farm3.static.flickr.com/2701/4285365246_37bc9c95c2_m.jpg" class="right" width="240" height="160"></a></p>
<h4>発端</h4>
<p><a href="http://www.machu.jp/diary/20050328.html#p01">5年前に組み立てたマシン</a>が、ここ数ヶ月ブルースクリーンが多発するようになった。</p>
<p>いくつか対処してみたけど、状況は変わらず。</p>
<ul>
<li>Windowsの回復コンソールから、ブルースクリーン発生前のバージョンに戻しても変わらず。</li>
<li>OS (Windows 7) を 64bit 版から 32bit 版に再インストールしても変わらず。</li>
<li><a href="http://gigazine.net/index.php?/news/comments/20090813_bluescreenview/">BlueScreenView</a>を入れて原因を確認。<ul>
<li>いずれもエラー原因は MEMORY_MANAGEMENT だった。</li>
</ul></li>
<li>HDDのスキャンディスクをしても異常なし。</li>
<li><a href="http://crystalmark.info/software/CrystalDiskInfo/">CrystalDiskInfo</a> でも異常なし。</li>
<li><a href="http://www.memtest.org/">Memtest86+</a>でメモリをテストしても異常なし。</li>
</ul>
<p>確証はないけど、マザーボードの故障と推測。
性能的には全然不満を感じていなかったけど、もう5年も使い続けてきたし、思い切って買い換えることにした。</p>
<h4>基本方針</h4>
<ul>
<li>基本的にはネットとメール。それから写真と音楽 (iTunes) の管理。ゲームはやらない。</li>
<li>もしかしたらそのうち簡単な動画編集をやるかも。</li>
</ul>
<p>PC でテレビを見ることもないし、メーカー系の PC は検討の対象外。
BTO で安い PC を買ってもよかったんだけど、今の PC のパーツを流用したかったので、必要最小限のパーツだけを交換することにした。
それに、こんなときじゃないとハードウェアについて勉強することもないしね。</p>
<h4>マザーボード＆CPU選び</h4>
<p>交換するパーツはマザーボード、CPU、メモリの3つ。ケース、電源、 HDD は流用したい。
電源が450Wしかないし、リビングに置くことを考えるとできれば静かにしたい。
一方で、せっかく買い換えるなら長く使えるようにしたい。</p>
<p>ちょっと調べてみたら、ちょうどグラフィック機能 (GPU) 内蔵の新しい Core i3 / i5 (Clarkdale) が発売されたばかりということが分かった。</p>
<ul>
<li>CPU に GPU を内蔵しているので、グラフィックカードが不要で省電力になりそう</li>
<li>ただしマザーボードが対応している必要あり (H55チップセット)</li>
<li>対応マザーボードが安い（1万円台前半〜）</li>
<li><a href="http://ja.wikipedia.org/wiki/LGA_1156">LGA1156ソケット</a>なので長く使える（といいな）</li>
</ul>
<p>秋葉原のお店で H55 チップセット搭載のマザーボードをいくつか比較して、Gigabyte 社の GA-H55-UD3H にした。
CPU は Core i3 か i5 かで迷ったけど、価格差ほどの違いは感じないだろうと判断して、一番安い i3 にした。
マザーボードが1万円。CPUは1万3千円。</p>
<h4>メモリ</h4>
<p>特に悩むことなく、リテール品の DDR3 メモリを 2GB x 2 で購入。これも1万円くらい。
マザーボードにはメモリスロットが4つ搭載されているので、将来的にメモリを増設することで8GB〜12GBくらいまで拡張可能。</p>
<h4>SSD</h4>
<p>これは必須じゃなかったんだけど、 CPU とマザーボードで費用を抑えられたこともあり、SSDを買うことにした。
システムドライブに入れることで PC を静かにしたい狙い。
容量はそれほど必要ないので、一番安い Intel の X25-V Value SATA SSD にした。
40GB で 1万3千円くらい。</p>
<p>マザーボード, CPU, メモリ, SSD で合計で4万6千円。大切に使おう。</p>
<h4>組み立て</h4>
<p>古い PC からマザーボードを取り外し、中にたまった埃を掃除してから、新しいパーツに入れ替えていった。
見た目は変わらないのに、中身が変わっている不思議。</p>
<p>さすがに同じパーツはマウスとキーボードくらいしか残ってないので、電話での Windows 7 の再アクティベーションを要求された。
いろいろ聞かれるかと思ったけど、特に理由を聞かれることもなく終了。</p>
<p>PC は確かに速くなったんだろうけど、それよりも感動したのが SSD にしたことでの静けさ。
これまでのガリガリ音が無くなって、本当にPCが起動してるのかな？って思うほど。
1万3千円でこの効果は、満足度が高いな〜。</p>
<p><a href="http://www.flickr.com/photos/machu/4285366992/"><img title="HDD and SDD" alt="HDD and SDD" src="http://farm3.static.flickr.com/2706/4285366992_948bf851a8_m.jpg" class="flickr" width="240" height="160"></a></p>]]></content:encoded>
</item>
<item rdf:about="http://www.machu.jp/diary/20100116.html#p01">
<link>http://www.machu.jp/diary/20100116.html#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/20100116.html#p01" />
<dc:date>2010-01-17T03:38:23+09:00</dc:date>
<title>日記のサーバを移設 → 元に戻した</title>
<dc:creator>machu</dc:creator>
<dc:subject>tDiary</dc:subject>
<description>この日記はCPIのVPSサーバというサービスで動かしているんだけど、どうもサーバのリソース制限（メモリ）に引っかかっていてレスポンスが悪くなっている。 monit を使ってサービス監視していて、リソース制限に引っかかってサーバプロセスが落ちた場合でも自動的に再起動しているんだけど、アラートが頻発している状態が続いている。 なので、仮に CPI の VPS サーバから、以前設置していたさくらのレンタルサーバに戻してみた。 （CPI から mod_proxy を使ってさくら側に転送している） サーバの応答時間  CPI の VPS サーバ … 8852 msec さくらインターネット … 2622 msec  応答時間はかなり早くなったんだけど、今度は503エラーが発生するようになった。 CPUに負荷がかかっているんだろうか。 今の状況  CPI の VPS サーバ（一番安いプラン） … メモリ不足が発生。 さくらインターネット（スタンダード） … CPU制限が発生。  VPSサーバのメモリは180MBなんだけど、近いうちに倍に増強されるみたい。 早く安定させたいところだけど、メモリが..</description>
<content:encoded><![CDATA[<h3>日記のサーバを移設 → 元に戻した</h3><p>この日記はCPIのVPSサーバというサービスで動かしているんだけど、どうもサーバのリソース制限（メモリ）に引っかかっていてレスポンスが悪くなっている。
<a href="http://www.machu.jp/diary/20090904.html#p01">monit を使ってサービス監視</a>していて、リソース制限に引っかかってサーバプロセスが落ちた場合でも自動的に再起動しているんだけど、アラートが頻発している状態が続いている。</p>
<p>なので、仮に CPI の VPS サーバから、以前設置していたさくらのレンタルサーバに戻してみた。
（CPI から mod_proxy を使ってさくら側に転送している）</p>
<h4>サーバの応答時間</h4>
<ul>
<li>CPI の VPS サーバ … 8852 msec</li>
<li>さくらインターネット … 2622 msec</li>
</ul>
<p>応答時間はかなり早くなったんだけど、今度は503エラーが発生するようになった。
CPUに負荷がかかっているんだろうか。</p>
<h4>今の状況</h4>
<ul>
<li>CPI の VPS サーバ（一番安いプラン） … メモリ不足が発生。</li>
<li>さくらインターネット（スタンダード） … CPU制限が発生。</li>
</ul>
<p>VPSサーバのメモリは180MBなんだけど、近いうちに倍に増強されるみたい。
早く安定させたいところだけど、メモリが増強されるまで様子を見るしかないかな。</p>
<h4>追記</h4>
<p>tDiary を 2.3.3.20090826 から svn の最新版に追従して、 ruby 1.9 をp0からp378に入れ替えたら、CPIでも応答時間が 8852 msec から 1231 msec へと劇的に改善された。
追従前後のプロファイル結果は以下の通り。</p>
<pre>  %   cumulative   self              self     total                                                                     
 time   seconds   seconds    calls  ms/call  ms/call  name                                                              
 51.59    10.86     10.86   191735     0.06     0.08  Proc#call                                                         
 17.81    14.61      3.75        4   937.50  4812.50  Marshal.load                                                      
  8.79    16.46      1.85   191799     0.01     0.01  Kernel.respond_to?                                                
  7.13    17.96      1.50   127837     0.01     0.01  String#encoding                                                   
  5.56    19.13      1.17        3   390.00   390.00  Thread#join                                                       
  3.42    19.85      0.72   127866     0.01     0.01  BasicObject#==                                                    
  2.71    20.42      0.57    63934     0.01     0.01  String#force_encoding                                             </pre>
<pre> %   cumulative   self              self     total                                                                     
 time   seconds   seconds    calls  ms/call  ms/call  name                                                              
 19.48     0.30      0.30        3   100.00   100.00  Thread#join                                                       
 19.48     0.60      0.30        7    42.86    80.00  ERB::Compiler::SimpleScanner2#scan                                
 18.18     0.88      0.28      212     1.32     5.38  Kernel.require                                                    
  3.25     0.93      0.05      440     0.11     0.11  ERB::Compiler#content_dump                                        
  3.25     0.98      0.05      132     0.38     3.71  Array#each                                                        
  3.25     1.03      0.05      107     0.47     2.80  BasicObject#instance_eval                                         
  2.60     1.07      0.04      933     0.04     0.04  Fixnum#&gt;                                                          </pre>
<p>ううん…。
Rubyが古かったのが原因なのか、tDiaryが古かったのが原因なのか、その両方なのか。
でも、これで安定するといいなぁ。</p>
<p>リソース制限内に収まるようになったので、さくらに戻すのはやめて、CPIで引き続き動かすことにした。</p>
<h4>追記</h4>
<p>プロファイルの結果を見ていると、改善前はProc#call, Kernel.respond_to?, String#encodingが20万回 (!) も呼ばれている。
昔からこうだったとは考えにくいので、 tDiary や Ruby のバージョンじゃなくて変に大量のデータがたまっていたのかもしれない。</p>]]></content:encoded>
</item>
<item rdf:about="http://www.machu.jp/diary/20091231.html#p01">
<link>http://www.machu.jp/diary/20091231.html#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/20091231.html#p01" />
<dc:date>2010-01-02T03:26:52+09:00</dc:date>
<title>スイーツな話</title>
<dc:creator>machu</dc:creator>
<dc:subject>Life</dc:subject>
<description>年末に新宿の伊勢丹へ出かけたついでに、ちょっと奮発して美味しいスイーツ（笑）を買ってきた。 伊勢丹の地下にあるJEAN-PAUL HEVINという名前の、チョコレートがメインのお店。 隣には「飲むチョコレート..</description>
<content:encoded><![CDATA[<h3>スイーツな話</h3><p>年末に新宿の伊勢丹へ出かけたついでに、ちょっと奮発して美味しいスイーツ（笑）を買ってきた。
伊勢丹の地下にある<a href="http://www.jph-japon.co.jp/">JEAN-PAUL HEVIN</a>という名前の、チョコレートがメインのお店。
隣には「飲むチョコレート」を楽しめるカフェも併設されている。</p>
<p>パッケージもチョコレート色。
青いラインがワンポイントになってる。</p>
<p><a href="http://www.flickr.com/photos/machu/4232664015/"><img title="jean paul hevin" alt="jean paul hevin" src="http://farm5.static.flickr.com/4008/4232664015_8fb5b7cb34_m.jpg" class="flickr" width="240" height="160"></a></p>
<p>箱を開けるとケーキが2つ。
直前まで冷蔵庫で冷やしていても、表面のチョコレートはもう溶け出しているくらい柔らかい。</p>
<p><a href="http://www.flickr.com/photos/machu/4233435810/"><img title="jean paul hevin" alt="jean paul hevin" src="http://farm3.static.flickr.com/2517/4233435810_7bd0263953_m.jpg" class="flickr" width="240" height="160"></a></p>
<p>それでもなんとか形を崩さずに箱から取り出す。
手前が<a href="http://www.jph-japon.co.jp/product/05_gateau/9330_04.html">ドウジャ</a>で奥が<a href="http://www.jph-japon.co.jp/product/05_gateau/9289.html">カラカス</a>というケーキ。
どっちもかなり濃厚な味。
ちなみに2つのケーキを6人で分けて食べた。1人あたり1/3しかないけど、予想どおりこれだけでちょうどいいと思えるほどの濃厚さだった。</p>
<p><a href="http://www.flickr.com/photos/machu/4232664509/"><img title="jean paul hevin" alt="jean paul hevin" src="http://farm3.static.flickr.com/2704/4232664509_27fb41825d_m.jpg" class="flickr" width="240" height="160"></a></p>
<p>もう一つの箱にはマカロンが。ほとんど同じ色に見えるけど、実はぜんぶ違う味。
こっちも美味しかった。</p>
<p><a href="http://www.flickr.com/photos/machu/4232664391/"><img title="jean paul hevin" alt="jean paul hevin" src="http://farm3.static.flickr.com/2731/4232664391_e2c74df44d_m.jpg" class="flickr" width="240" height="160"></a></p>
<p>というわけで、今年最後の贅沢だった。
ごちそうさまでした。</p>]]></content:encoded>
</item>
<item rdf:about="http://www.machu.jp/diary/20091230.html#p01">
<link>http://www.machu.jp/diary/20091230.html#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/20091230.html#p01" />
<dc:date>2010-01-02T02:13:02+09:00</dc:date>
<title>Wii のお天気チャンネルで</title>
<dc:creator>machu</dc:creator>
<dc:subject>Life</dc:subject>
<dc:subject>Wii</dc:subject>
<description>週間予報にでてくる温度のマ..</description>
<content:encoded><![CDATA[<h3>Wii のお天気チャンネルで</h3><p>週間予報にでてくる温度のマークが、顔文字に見えてしかたない。</p>
<p><a href="http://www.flickr.com/photos/machu/4232653015/"><img title="Wii weather news" alt="Wii weather news" src="http://farm3.static.flickr.com/2701/4232653015_bce7340da9_m.jpg" class="flickr" width="240" height="217"></a></p>
<p>左側の（℃）の部分、ね。天気にビックリしているみたい。</p>]]></content:encoded>
</item>
<item rdf:about="http://www.machu.jp/diary/20091223.html#p01">
<link>http://www.machu.jp/diary/20091223.html#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/20091223.html#p01" />
<dc:date>2009-12-23T16:00:21+09:00</dc:date>
<title>Keynote で年賀状を作ってみた</title>
<dc:creator>machu</dc:creator>
<dc:subject>Life</dc:subject>
<description>M-1も終わっていよいよ年末が近づいてきた。 そろそろ年賀状の季節。 だいたい毎年はプリントサービスを使っていたんだけど、今年はマックを使ってみることにした。 最初に思いつくのは iPhoto を使うことだけど、文字を自由に入れられないので年賀状には不向き。 カレンダーなんかは簡単にできるのにね。 筆まめみたいなソフトを買うのもなんだかなーと悩んだ末に、 Keynote を使えないかと思いついた。 「keynote 年賀状」で検索してもほとんど事例がでてこないので不安だったけど、やってみたら意外と簡単かつキレイに作れたよ。  マックと Keynote で年賀状を作るメリット  高価なソフトを買わなくていい（iWork をすでに持っている場合） 影や写真のデコレーションが簡単かつキレイ！ 写真や文字の配置が直感的に操作できる ヒラギノフォントが使える  Windows の場合は PowerPoint 2007 を使ってもいいと思う。 PowerPoint だとワードアートも使えるしね。 ただ、2007より前のバージョンだと、影やデコレーションがちょっと面倒。 僕は2007を持っていな..</description>
<content:encoded><![CDATA[<h3>Keynote で年賀状を作ってみた</h3><p>M-1も終わっていよいよ年末が近づいてきた。
そろそろ年賀状の季節。
だいたい毎年はプリントサービスを使っていたんだけど、今年はマックを使ってみることにした。</p>
<p>最初に思いつくのは iPhoto を使うことだけど、文字を自由に入れられないので年賀状には不向き。
カレンダーなんかは簡単にできるのにね。
筆まめみたいなソフトを買うのもなんだかなーと悩んだ末に、 Keynote を使えないかと思いついた。</p>
<p>「keynote 年賀状」で検索してもほとんど事例がでてこないので不安だったけど、やってみたら意外と簡単かつキレイに作れたよ。</p>
<p><a href="http://www.flickr.com/photos/machu/4208295666/"><img title="GreetingCard" alt="GreetingCard" src="http://farm5.static.flickr.com/4043/4208295666_4e4a87a9a2_m.jpg" class="flickr" width="240" height="162"></a></p>
<h4>マックと Keynote で年賀状を作るメリット</h4>
<ul>
<li>高価なソフトを買わなくていい（iWork をすでに持っている場合）</li>
<li>影や写真のデコレーションが簡単かつキレイ！</li>
<li>写真や文字の配置が直感的に操作できる</li>
<li>ヒラギノフォントが使える</li>
</ul>
<p>Windows の場合は PowerPoint 2007 を使ってもいいと思う。
PowerPoint だとワードアートも使えるしね。
ただ、2007より前のバージョンだと、影やデコレーションがちょっと面倒。
僕は2007を持っていないので、今回は Keynote にした。</p>
<p>以下は Keynote で年賀状を作る手順。
使っている Keynote は1つ前のバージョン ('08) なので、最新版だと使い方が変わっているかも。</p>
<h4>スライドサイズをハガキの大きさに合わせる</h4>
<p>Keynote を起動した直後は、スライドのサイズがディスプレイと同じ比率になってるので、まずはハガキサイズに合わせて変更する。
メニューを探してもスライドのサイズ設定が見つからないなーと思っていたら、ツールバーの「インスペクタ」→「書類」→「スライドのサイズ」→「カスタムのスライドサイズ」で設定できた。</p>
<p><a href="http://www.flickr.com/photos/machu/4208272330/"><img title="Keynoteでスライドサイズ変更" alt="Keynoteでスライドサイズ変更" src="http://farm3.static.flickr.com/2585/4208272330_2116cc178e_m.jpg" class="flickr" width="169" height="240"></a></p>
<p><a href="http://blog12345.seesaa.net/article/29590311.html">はがき年賀状ハガキのピクセルサイズ</a>を参考にしてサイズを決定。</p>
<blockquote><p>ハガキ用紙サイズは、mmでいうと「100×148」。基本（200dpi）で、「幅787×高さ1165」ピクセル。
通常のイラストレータ−ツールなどで年賀状などの絵を描く場合もこれでいけると思う。</p>
<p>ちなみに300dpiだと1181×1748。
400dpiでは1575×2331となる。</p>
</blockquote>
<p>僕は200dpiでの 1165 x 787 ピクセルに設定した。</p>
<h4>全体的なレイアウトを決める</h4>
<p>年賀状の場合、おおむねロゴ、写真、挨拶文、住所・名前から構成されるので、これらをどういう風に配置するのかをイメージする。
といっても、僕はデザインには自信がないので、ネット上のサンプルを参考にした。
参考にする場合は、なるべくシンプルなデザインのものを選ぶのがポイント。</p>
<h4>ロゴの素材を探す</h4>
<p>シンプルなデザインでも、ワンポイントで絵柄（ロゴ）が入っていると引き締まるので、使えそうな素材をネットで探す。
僕は <a href="http://nenga.nifty.com/">@nifty の年賀状サイト</a>に公開されていた無料年賀状素材を使わせてもらった。
ちなみに、このサイトにはロゴだけじゃなくて年賀状のデザインも置いてある（有料のものが多いけど）。
レイアウトを考えるのが面倒な場合は、デザインごとダウンロードして、Keynoteの背景に貼り付けちゃうと楽だと思う。</p>
<h4>挨拶文を入れる</h4>
<p>Keynote上にテキストで挨拶文を入れていく。
フォントは「ヒラギノ丸ゴ Pro」を選択した。
Keynote だとテキストに縁取りできないのが残念だけど、影を使うことである程度は代用できる。
この場合は、文字色を白に設定し、影のオフセットを0px, ぼかしを1pxにすればOK。</p>
<h4>写真を貼り付ける</h4>
<p>ここが一番楽しいところ。
写真を Keynote 上に貼り付け、レイアウトしていく。</p>
<p>ここでのポイントは、「マスク」機能を使うこと。
貼り付けた写真を選択して、メニューの「フォーマット」→「マスク」を選択する。
すると、写真の一部だけを切り取った形で、年賀状に貼り付けられる。
画面上は切り取られているように見えるけど、実際には写真全体のデータが残っているので、あとからでも自由に写真の切り取り部分を変えることができる。</p>
<p><a href="http://www.flickr.com/photos/machu/4208272396/"><img title="Keynoteで写真をマスク" alt="Keynoteで写真をマスク" src="http://farm5.static.flickr.com/4061/4208272396_96d67c0433_m.jpg" class="flickr" width="240" height="205"></a></p>
<p>ツールバーの「インスペクタ」から、「グラフィック」→「線」→「飾り枠」を選ぶと、写真の枠を選ぶことができる。
自動で影も付くし、オシャレな枠が多いが嬉しい。
さらに「インスペクタ」→「位置と回転」を使えば、写真を斜めに配置できる。</p>
<p>写真を丸く切り取りたい場合は、「図形でマスク」機能を使う。
メニューの「フォーマット」→「図形でマスク」→「楕円」を選ぶと、写真を楕円形に切り取ることができる。
他にも星や吹き出しなど、いくつかの図形が選べる。
右下の風太くんも、楕円形でマスクして配置している。</p>
<p><a href="http://www.flickr.com/photos/machu/4208284320/"><img title="Keynoteで年賀状作成" alt="Keynoteで年賀状作成" src="http://farm5.static.flickr.com/4055/4208284320_8e30e0c271_m.jpg" class="flickr" width="240" height="150"></a></p>
<h4>PNG形式でエクスポートする</h4>
<p>僕の場合はプリンタが Windows 機にしか繋がっていないので、 PDF でエクスポートして Windows 機に持っていった。
写真屋さんでプリントしてもらうなら、 JPEG で出力してもいい。</p>
<h4>印刷する</h4>
<p>最後にプリンタのフチなし印刷で、年賀状を印刷する。
ちなみに、フチなし印刷の場合は多少4隅が切り取られるので、データ作成時には4隅にマージンを持たせておくことが大切。</p>
<h4>終わりに</h4>
<p>手持ちのKeynoteだけで簡単に作れたので満足。
参考までに<a href="http://dl.dropbox.com/u/147729/GreetingCard.key.tgz">Keynote で作ったテンプレート</a>を置いておくよ。</p>]]></content:encoded>
</item>
<item rdf:about="http://www.machu.jp/diary/20091123.html#p01">
<link>http://www.machu.jp/diary/20091123.html#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/20091123.html#p01" />
<dc:date>2009-11-23T18:07:29+09:00</dc:date>
<title>国際千葉駅伝 2009</title>
<dc:creator>machu</dc:creator>
<dc:subject>Life</dc:subject>
<description>TV を付けたらちょうど国際千葉駅伝が始まるところだったので、せっかくなので観に行ってきた。 沿道には応援の人が結構集まっていて、あわ..</description>
<content:encoded><![CDATA[<h3>国際千葉駅伝 2009</h3><p>TV を付けたらちょうど<a href="http://ja.wikipedia.org/wiki/%E5%9B%BD%E9%9A%9B%E5%8D%83%E8%91%89%E9%A7%85%E4%BC%9D">国際千葉駅伝</a>が始まるところだったので、せっかくなので観に行ってきた。
沿道には応援の人が結構集まっていて、あわせて大会のスタッフさんがパイロンを並べたりと準備をしていた。
交通規制を告げるパトカーが通過して数分後に、先導のパトカーとフジテレビの中継車が遠くから見えてくる。
あの中継車に竹下アナが乗っているんだなーとか、考えてた。</p>
<p><a href="http://www.flickr.com/photos/machu/4126895259/"><img title="2009 INTERNATIONAL CHIBA EKIDEN (国際千葉駅伝 2009) 3rd Leg" alt="2009 INTERNATIONAL CHIBA EKIDEN (国際千葉駅伝 2009) 3rd Leg" src="http://farm3.static.flickr.com/2791/4126895259_35e51df89c_m.jpg" class="flickr" width="240" height="160"></a></p>
<p>先頭は日本の竹沢選手。後続が見えなくなるほどの力強い走りだった。</p>
<p><a href="http://www.flickr.com/photos/machu/4126844045/"><img title="2009 INTERNATIONAL CHIBA EKIDEN (国際千葉駅伝 2009) 3rd Leg" alt="2009 INTERNATIONAL CHIBA EKIDEN (国際千葉駅伝 2009) 3rd Leg" src="http://farm3.static.flickr.com/2506/4126844045_fef5a2103d_m.jpg" class="flickr" width="160" height="240"></a></p>
<p>2位争いは学生選抜とオーストラリア。</p>
<p><a href="http://www.flickr.com/photos/machu/4126844185/"><img title="2009 INTERNATIONAL CHIBA EKIDEN (国際千葉駅伝 2009) 3rd Leg" alt="2009 INTERNATIONAL CHIBA EKIDEN (国際千葉駅伝 2009) 3rd Leg" src="http://farm3.static.flickr.com/2662/4126844185_a81dae8fa0_m.jpg" class="flickr" width="161" height="240"></a></p>
<p>しかし、生で見るとその速さに驚く。
このペースで10kmも走るんだから、すごいよなぁ。</p>]]></content:encoded>
</item>
<item rdf:about="http://www.machu.jp/diary/20091105.html#p01">
<link>http://www.machu.jp/diary/20091105.html#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/20091105.html#p01" />
<dc:date>2009-11-05T23:46:35+09:00</dc:date>
<title>URL短縮サービス ow.ly は実URLが表示されずに危険 → グリモン書いた</title>
<dc:creator>machu</dc:creator>
<dc:subject>memp</dc:subject>
<description>最近、Twitterで ow.ly というドメインの URL 短縮サービスをよく見かけるようになった。 このサービス、 tinyurl のような従来型のサービスとは大きな違いがある。 これまでの URL 短縮サービスは、本当の URL (以下、実URLと呼ぶ) へリダイレクトするだけだった。 一方で ow.ly は、画面の上部に独自のツールバー (Ow.ly Social Bar 2.0) が表示される。  実URLは、 ow.ly ドメイン上のフレーム内に描画されている。 面白いサービスだと思うけど、この仕組みはセキュリティ的にはちょっと危険。 悪用されると、フィッシングの被害を受けてしまう恐れがある。 ow.ly では実URLのアドレスが表示されない ow.ly のリンクをたどると、アドレスバーには実URLのアドレスではなく、 ow.ly のアドレスが表示される。 そのため、フレーム内に表示されているページが、本当に正しいページであることを..</description>
<content:encoded><![CDATA[<h3>URL短縮サービス ow.ly は実URLが表示されずに危険 → グリモン書いた</h3><p>最近、Twitterで ow.ly というドメインの URL 短縮サービスをよく見かけるようになった。
このサービス、 tinyurl のような従来型のサービスとは大きな違いがある。
これまでの URL 短縮サービスは、本当の URL (以下、実URLと呼ぶ) へリダイレクトするだけだった。
一方で ow.ly は、画面の上部に独自のツールバー (<a href="http://ow.ly/socialbar">Ow.ly Social Bar 2.0</a>) が表示される。 
実URLは、 ow.ly ドメイン上のフレーム内に描画されている。</p>
<p>面白いサービスだと思うけど、この仕組みはセキュリティ的にはちょっと危険。
悪用されると、フィッシングの被害を受けてしまう恐れがある。</p>
<h4>ow.ly では実URLのアドレスが表示されない</h4>
<p>ow.ly のリンクをたどると、アドレスバーには実URLのアドレスではなく、 ow.ly のアドレスが表示される。
そのため、フレーム内に表示されているページが、本当に正しいページであることを確認できない。
例えば、以下の画面。一見するとはてなのログイン画面だけど、アドレスバーのドメインは ow.ly になっている。
偽の「はてなログイン画面」へ誘導されていたとしても、この状態からは見分けがつかない。</p>
<p><a href="http://www.flickr.com/photos/machu/4077206511/"><img title="ow.ly" alt="ow.ly" src="http://farm3.static.flickr.com/2619/4077206511_d0bbaf5cc6_m.jpg" class="flickr" width="240" height="131"></a></p>
<p>これに気がついたのは、 Twitter で勉強会の案内として <a href="http://atnd.org/">ATND</a> へのリンク (ow.lyの短縮URL) が貼られたいたから。
ATND にログインしようとして、アドレスバーのドメインが ow.ly のままだったので、慌てて ID とパスワードの入力を止めた（ATNDはOpenIDでログインするため、はてなのログイン画面が表示されていた）。
もし偽サイトだったら、簡単に ID とパスワードが盗まれていた所だった。</p>
<h4>問題点</h4>
<p>最大の問題は、フレーム内に別ドメインのページを表示していること。
このため、セキュリティの基本である「アドレスバーのドメインを確認する」ことができない。</p>
<p>ただ、これを否定すると ow.ly のサービス自体を否定することになっちゃう。
だからせめて、 ow.ly のソーシャルバー上に、実URLのドメインを表示するようにしてほしい。
（ただし、内側のフレーム内からソーシャルバー上のドメインを書き換えられる危険性があるので、完全な対策じゃない）</p>
<h4>対策1: ow.ly のソーシャルバーを閉じる</h4>
<p>ow.ly のソーシャルバーは、右上に「×」ボタンがある。
これをクリックするとソーシャルバーが消え、フレーム内の実URLが直接表示されるようになる。ログイン画面など、重要な情報を入力する画面では、必ずソーシャルバーを閉じてアドレスを確認するほうがいい。</p>
<p>ソーシャルバーなんて表示されなくていい！という人（僕）のために、自動的にソーシャルバーを閉じる GreaseMonkey スクリプトを書いた。</p>
<p><a href="http://userscripts.org/scripts/review/61293">Hide Ow.ly Social Bar</a></p>
<p>このグリモンをインストールすると、 ow.ly の短縮URLにアクセスしたときに、自動的に実URLへとリダイレクトするようになる。</p>
<h4>対策2: ソーシャルバー上に実URLを表示する</h4>
<p>ow.ly のソーシャルバーは使いたいという人向けに、ソーシャルバー上に実URLを表示するグリモンを書いた。</p>
<p><a href="http://userscripts.org/scripts/review/61292">Show URL on Ow.ly Social Bar</a></p>
<p>このグリモンをインストールすると、 Ow.ly のソーシャルバー上に、フレーム内の実URLが表示される。
ただし、さっき完全な対策じゃないと書いたように、フレーム内からソーシャルバーの文字を上書きできる危険性もあるので、あくまでも参考までに使うこと。
本当に重要な情報を入力するときには、右上の「×」ボタンでソーシャルバーを閉じてからの方がいい。</p>
<h4>まとめ</h4>
<p>フレームを使ったサイトはフィッシングの危険があるとは、かなり前から言われていること。
それでも、いまだにこういうサービスが受け入れられているのは少し驚きだった。
フレームを否定する気はなくて、使いたいなら危険性を理解しながら注意して使えばいいと思う。
このページがそのためのお手伝いになれば幸い。</p>]]></content:encoded>
</item>
<item rdf:about="http://www.machu.jp/diary/20091104.html#p01">
<link>http://www.machu.jp/diary/20091104.html#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/20091104.html#p01" />
<dc:date>2009-11-05T08:29:11+09:00</dc:date>
<title>iTunes から Twitter につぶやけるようになってる</title>
<dc:creator>machu</dc:creator>
<dc:subject>iTunes</dc:subject>
<dc:subject>twitter</dc:subject>
<description>久しぶりに iTunes でアルバムを物色していたら、試聴ページから Twitter につぶやくためのメニューが用意されていることに気がついた。 ちょっと分かりにくいけど、「購入する」ボタンの右にある「▼」ボタンをクリックすると、「Twitterで共有」というメニューが表示される。  「Twitterで共有」を選択すると、（Macの場合は）Safariが起動して Twitter の..</description>
<content:encoded><![CDATA[<h3>iTunes から Twitter につぶやけるようになってる</h3><p>久しぶりに iTunes でアルバムを物色していたら、試聴ページから Twitter につぶやくためのメニューが用意されていることに気がついた。
ちょっと分かりにくいけど、「購入する」ボタンの右にある「▼」ボタンをクリックすると、「Twitterで共有」というメニューが表示される。</p>
<p><a href="http://www.flickr.com/photos/machu/4075722361/"><img title="Twitterへのリンク" alt="Twitterへのリンク" src="http://farm3.static.flickr.com/2517/4075722361_f32ee184c6_m.jpg" class="flickr" width="240" height="120"></a></p>
<p>「Twitterで共有」を選択すると、（Macの場合は）Safariが起動して Twitter のページが表示される。
つぶやき欄には、以下のようにアーティスト名、曲名、iTunes へのリンクと #iTunes ハッシュタグが入っている。
ちゃんとハッシュタグが入っているところがニクい。</p>
<pre>アトリエ・ボッサ・コンシャス - WINTER SONG - http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?i=334822535&amp;id=334822233&amp;s=143462 #iTunes</pre>
<p>これで、気になっている曲を簡単に Twitter でつぶやくことができる。
ここまでくると、本当に何でも Twitter へという流れを実感するなぁ。</p>
<p><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?i=334822535&amp;id=334822233&amp;s=143462">曲へのリンク</a>を Firefox でクリックすると、「アプリケーションの起動」ダイアログが表示される。
ここで iTunes を選ぶと、 iTunes が起動して先ほどの曲の画面が表示されるという仕組み。</p>
<p><a href="http://www.flickr.com/photos/machu/4076475780/"><img title="FirefoxからiTunesへ" alt="FirefoxからiTunesへ" src="http://farm4.static.flickr.com/3521/4076475780_c77dcedd24_m.jpg" class="flickr" width="240" height="230"></a></p>
<p>ちなみに、購入したのは「冬ボッサ」というアルバム。
冬っぽく透明感のある曲が10曲入って、600円というお買い得価格。
カバーなので、ほとんど知っている曲ばかりなのも嬉しい。
iTunes のランキングで1位なのも納得できるなぁ。</p>
<p><a href="http://www.amazon.co.jp/%E5%86%AC%E3%83%9C%E3%83%83%E3%82%B5-%E3%82%A2%E3%83%88%E3%83%AA%E3%82%A8%E3%83%BB%E3%83%9C%E3%83%83%E3%82%B5%E3%83%BB%E3%82%B3%E3%83%B3%E3%82%B7%E3%83%A3%E3%82%B9/dp/B002MZQZY6%3FSubscriptionId%3D0VQ4VDB1VMJE2RGYE782%26tag%3Dmachu-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB002MZQZY6"><img class="amazon" src="http://ecx.images-amazon.com/images/I/41op-XgWpnL._SL160_.jpg"
height="160" width="160"
alt="CD" title="CD">
CD</a> はちょうど4日発売。
こちらは2,100円なので、モノにこだわらないのであれば iTunes のほうがお買い得。</p>]]></content:encoded>
</item>
<item rdf:about="http://www.machu.jp/diary/20091020.html#p01">
<link>http://www.machu.jp/diary/20091020.html#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/20091020.html#p01" />
<dc:date>2009-10-19T23:48:18+09:00</dc:date>
<title>Wii Fit Plus が良くできている</title>
<dc:creator>machu</dc:creator>
<dc:subject>Life</dc:subject>
<description>発売日から少し時間が経ったけど、ようやく  Wii Fit Plus を購入した。 しばらく購入を見送っていたのは、新しく追加されたトレーニングの数が少なく、あまり魅力を感じなかったから。 それでもようやく購入したのは、毎日の計測でのウィーボ君の言葉に飽きてきたから。 値段も1,700円と安いので、そんな軽い気持ちで購入したんだけど、思った以上に良くできているソフトだった。 前作からの引き継ぎユーザへの配慮 ソフトを起動すると、前作のデータを自動的に引き継いでくれる。 まぁ、ここまでは普通なんだけど、さらにデータを引き継いだ場合には、ウィーボ君が前作のユーザ向けに新機能を親切に解説してくれる。 メニュー画面では、アニメーションで新しく追加されたボタンが表示されるので、いつの間にか知らないボタンが増え..</description>
<content:encoded><![CDATA[<h3>Wii Fit Plus が良くできている</h3><p>発売日から少し時間が経ったけど、ようやく <a href="http://www.amazon.co.jp/%E4%BB%BB%E5%A4%A9%E5%A0%82-Wii%E3%83%95%E3%82%A3%E3%83%83%E3%83%88-%E3%83%97%E3%83%A9%E3%82%B9-%E3%82%BD%E3%83%95%E3%83%88%E5%8D%98%E5%93%81/dp/B002C1ARJ4%3FSubscriptionId%3DAKIAJMISDK2FBSFI3HAQ%26tag%3Dmachu-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB002C1ARJ4"><img class="amazon" src="http://ecx.images-amazon.com/images/I/51tgF34N%2BJL._SL160_.jpg"
height="160" width="115"
alt="Wii Fit Plus" title="Wii Fit Plus">
Wii Fit Plus</a> を購入した。</p>
<p>しばらく購入を見送っていたのは、新しく追加されたトレーニングの数が少なく、あまり魅力を感じなかったから。
それでもようやく購入したのは、毎日の計測でのウィーボ君の言葉に飽きてきたから。
値段も1,700円と安いので、そんな軽い気持ちで購入したんだけど、思った以上に良くできているソフトだった。</p>
<h4>前作からの引き継ぎユーザへの配慮</h4>
<p>ソフトを起動すると、前作のデータを自動的に引き継いでくれる。
まぁ、ここまでは普通なんだけど、さらにデータを引き継いだ場合には、ウィーボ君が前作のユーザ向けに新機能を親切に解説してくれる。
メニュー画面では、アニメーションで新しく追加されたボタンが表示されるので、いつの間にか知らないボタンが増えてる！なんてことにならない。
よくあるチュートリアルと同じと言えば同じなんだけど、バージョンアップのためにここまで丁寧に作り込むのは、ちゃんと使う人のことを考えてる証拠。</p>
<h4>毎日ちゃんと続けられるための工夫</h4>
<p>無印 Wii Fit での大きな不満は、体重の測定に時間がかかることだった。
体重を記録したいだけなのに、毎回ウィーボ君に健康マメ知識を勧められ、服装を選択し、測定。
そして、重心の測定結果が発表され、その後にようやくBMI/体重の発表。最後にはバランス年齢の測定を勧められる。
時間のあるときならいいけど、毎日続けようとするとこの手間が面倒になってくる。
Plus では、この問題もちゃんと解決されていた。</p>
<p>あまり宣伝されていないけど、 Wii Fit Plus ではかんたん測定モードが追加されている。
これは、からだ測定のスピーディ版で、測定に本当に必要な手順だけを実施するもの。
メニューからかんたん測定を選択すると、いきなり測定。
次の画面で重心とBMIの測定結果がまとめて表示される。
感覚的には1/3くらいの時間で測定できるようになった。</p>
<p>毎日ちょっとした時間に続けようと思ったら、この手間の差は大きいものになってくる。
個人的にはかんたん測定だけでも、2,000円分の価値はあったように思う。</p>
<p>さらに、まだ試していないけど、1日の切り替え時間を従来の0時だけでなく3時からも選べるようになったらしい。
これまでは帰宅が遅くなって測定できなかった日もあったけど、これからは時間を気にせずに安心して測定できる。
他にも、マイメニューの追加により、毎回トレーニングメニューを自分で選ばなくて良くなっている。
このように、毎日続けられることを考えて、しっかり改良されている。</p>
<h4>欲張りすぎないバージョンアップ</h4>
<p>追加トレーニングの数が少ないことから、最初は値段に見合わないバージョンアップだと思ってた。
でも、ちゃんと毎日続けられることを考えての改良が入っていることを知って、考えを改めなおした。</p>
<p>普通、こういうバージョンアップの時は、売りやすいようにカタログスペックを意識してしまうことが多い。
その結果として「○○種類ものトレーニング追加」といった数に走りがちになる(GTが車種数を誇っていたように)。
でも、 Wii Fit Plus は、売りやすさを目的とした数に走るのではなく、長く使ってもらえることを目的として質の向上に力を注いでいる。
使う人のことを考えると当たり前のことなんだけど、簡単にできることじゃないよなぁ。</p>]]></content:encoded>
</item>
<item rdf:about="http://www.machu.jp/diary/20091019.html#p01">
<link>http://www.machu.jp/diary/20091019.html#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/20091019.html#p01" />
<dc:date>2009-10-19T22:02:08+09:00</dc:date>
<title>もっと簡単にデバッグ用にメソッドの呼び出し元（スタックトレース）をログに出力する方法</title>
<dc:creator>machu</dc:creator>
<dc:subject>Ruby</dc:subject>
<description>昨日の日記で、メソッドの呼び出し元をログに出力する方法について書いた。 それは、メソッド内で意図的に例外を発生させ、例外オブジェクトのスタックトレースから呼び出し元を知るというもの。 そうしたら、caller メソッドを使ってスタックトレースが取得できるツッコミをいただいた。 caller メソッドは知らなかったので、両者を比較してみた。 例外オブジェクトからスタックトレースを得る方法（昨日の日記より） def some_method   begin     raise Ex..</description>
<content:encoded><![CDATA[<h3>もっと簡単にデバッグ用にメソッドの呼び出し元（スタックトレース）をログに出力する方法</h3><p><a href="http://www.machu.jp/diary/20091018.html#p01">昨日の日記</a>で、メソッドの呼び出し元をログに出力する方法について書いた。
それは、メソッド内で意図的に例外を発生させ、例外オブジェクトのスタックトレースから呼び出し元を知るというもの。
そうしたら、<a href="http://www.machu.jp/diary/20091018.html#c01">caller メソッドを使ってスタックトレースが取得できるツッコミ</a>をいただいた。
caller メソッドは知らなかったので、両者を比較してみた。</p>
<h4>例外オブジェクトからスタックトレースを得る方法（昨日の日記より）</h4>
<pre>def some_method
  begin
    raise Exception.new
  rescue Exception =&gt; e
    STDERR.puts e.backtrace.join(", ")
  end

  # ここから関数本体
end</pre>
<h4>caller メソッドでスタックトレースを得る方法（ツッコミでのご指摘）</h4>
<pre>def some_method
  STDERR.puts caller

  # ここから関数本体
end</pre>
<h4>まとめ</h4>
<p>どうみても <a href="http://www.ruby-lang.org/ja/man/html/_C1C8A4DFB9FEA4DFB4D8BFF4.html#caller">caller メソッド</a>の方がシンプル。
これだけで終わっては面白くないので、 caller の戻り値を調べてみた。
戻り値は文字列の配列で、文字列はスタックトレースと同じ形式 (ファイル名:行番号:メソッド名) になってた。</p>
<pre>$ irb
irb(main):001:0&gt; c = caller
=&gt; ["/opt/local/lib/ruby/1.8/irb/workspace.rb:52:in `irb_binding'", "/opt/local/lib/ruby/1.8/irb/workspace.rb:52"]
irb(main):002:0&gt; c.class
=&gt; Array    # caller の戻り値は文字列の配列
irb(main):003:0&gt; c.first.class
=&gt; String
irb(main):004:0&gt; puts c  # 文字列はスタックトレースと同じ形式 (ファイル名:行番号:メソッド名)
/opt/local/lib/ruby/1.8/irb/workspace.rb:52:in `irb_binding'
/opt/local/lib/ruby/1.8/irb/workspace.rb:52
=&gt; nil</pre>]]></content:encoded>
</item>
<item rdf:about="http://www.machu.jp/diary/20091018.html#p01">
<link>http://www.machu.jp/diary/20091018.html#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/20091018.html#p01" />
<dc:date>2009-10-18T23:32:00+09:00</dc:date>
<title>デバッグ用にメソッドの呼び出し元（スタックトレース）をログに出力する方法</title>
<dc:creator>machu</dc:creator>
<dc:subject>Ruby</dc:subject>
<description>ちょっとした小ネタ。 Ruby スクリプトをデバッグするときに、あるメソッドがどこから呼び出されたのかを知りたいときがある。 普通ならデバッガとブレークポイントを使えばいいんだろうけど、 CGI で動作するスクリプトなどでデバッガが使えないときもある。 そんなときは、メソッド内..</description>
<content:encoded><![CDATA[<h3>デバッグ用にメソッドの呼び出し元（スタックトレース）をログに出力する方法</h3><p>ちょっとした小ネタ。
Ruby スクリプトをデバッグするときに、あるメソッドがどこから呼び出されたのかを知りたいときがある。
普通ならデバッガとブレークポイントを使えばいいんだろうけど、 CGI で動作するスクリプトなどでデバッガが使えないときもある。</p>
<p>そんなときは、メソッド内で意図的に例外を発生させ、即座に例外をキャッチすればいい。
キャッチした例外オブジェクトの backtrace メソッドを呼び出せば、メソッドの呼び出し元を調べることができる。</p>
<pre>def some_method
  begin
    raise Exception.new
  rescue Exception =&gt; e
    STDERR.puts e.backtrace.join(", ")
  end

  # ここから関数本体
end</pre>
<p>このサンプルは CGI を想定しているので、標準エラー出力にスタックトレースを書き出している（Apache HTTP サーバの場合は、 error_log で読むことができる）。
ちなみに、改行ではなくカンマで連結しているのは、余計なデータが付与されるのを防ぐため。
改行で連結すると、スタックトレースの一行ごとに、 error_log の整形情報（日付、ログレベル、リファラ）が付与されてしまう。</p>]]></content:encoded>
</item>
<item rdf:about="http://www.machu.jp/diary/20091002.html#p02">
<link>http://www.machu.jp/diary/20091002.html#p02</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/20091002.html#p02" />
<dc:date>2009-10-03T13:20:00+09:00</dc:date>
<title>追記</title>
<dc:creator>machu</dc:creator>
<description>キャッシュにputするデータが小さいという指摘をいただいた。 確かに数バイトでは少なかったかも…と思い、 tDiary キャッシュサイズを参考にして、 8KB のデータを put するようにした。 データサイズ8KBでのベンチマーク結果 データ数 = 10  methodusersystemtotal PStoreAdapter#put9.721.2010.92 PStoreAdapter#get2.651.274.02 PStoreAdapter2#put1.920.392.31 PStoreAdapter2#get0.520..</description>
<content:encoded><![CDATA[<h3>追記</h3><p>キャッシュに<a href="http://twitter.com/wtnabe/status/4540823178">putするデータが小さいという指摘</a>をいただいた。
確かに数バイトでは少なかったかも…と思い、 tDiary キャッシュサイズを参考にして、 8KB のデータを put するようにした。</p>
<h4>データサイズ8KBでのベンチマーク結果</h4>
<h5>データ数 = 10</h5>
<table border="1">
<tr><td>method</td><td>user</td><td>system</td><td>total</td></tr>
<tr><td>PStoreAdapter#put</td><td>9.72</td><td>1.20</td><td>10.92</td></tr>
<tr><td>PStoreAdapter#get</td><td>2.65</td><td>1.27</td><td>4.02</td></tr>
<tr><td>PStoreAdapter2#put</td><td>1.92</td><td>0.39</td><td>2.31</td></tr>
<tr><td>PStoreAdapter2#get</td><td>0.52</td><td>0.18</td><td>0.70</td></tr>
<tr><td>MemCacheAdapter#put</td><td>2.05</td><td>0.29</td><td>2.34</td></tr>
<tr><td>MemCacheAdapter#gut</td><td>1.24</td><td>0.25</td><td>1.49</td></tr>
</table>
<h5>データ数 = 100</h5>
<table border="1">
<tr><td>method</td><td>user</td><td>system</td><td>total</td></tr>
<tr><td>PStoreAdapter#put</td><td>113.3</td><td>106.2</td><td>219.5</td></tr>
<tr><td>PStoreAdapter#get</td><td>20.8</td><td>10.2</td><td>31.0</td></tr>
<tr><td>PStoreAdapter2#put</td><td>1.91</td><td>0.53</td><td>2.44</td></tr>
<tr><td>PStoreAdapter2#get</td><td>0.51</td><td>0.19</td><td>0.70</td></tr>
<tr><td>MemCacheAdapter#put</td><td>2.04</td><td>0.44</td><td>2.48</td></tr>
<tr><td>MemCacheAdapter#gut</td><td>1.21</td><td>0.33</td><td>1.54</td></tr>
</table>
<h5>データ数 = 1000</h5>
<table border="1">
<tr><td>method</td><td>user</td><td>system</td><td>total</td></tr>
<tr><td>PStoreAdapter#put</td><td>-</td><td>-</td><td>-</td></tr>
<tr><td>PStoreAdapter#get</td><td>-</td><td>-</td><td>-</td></tr>
<tr><td>PStoreAdapter2#put</td><td>1.99</td><td>0.93</td><td>2.92</td></tr>
<tr><td>PStoreAdapter2#get</td><td>0.56</td><td>0.22</td><td>0.78</td></tr>
<tr><td>MemCacheAdapter#put</td><td>2.07</td><td>0.29</td><td>2.36</td></tr>
<tr><td>MemCacheAdapter#gut</td><td>1.14</td><td>0.24</td><td>1.38</td></tr>
</table>
<h4>考察</h4>
<p>1つのファイルに全キャッシュを格納する PStoreAdapter は、明らかに落ち込みが激しい。
データサイズを8KBにすると処理時間が10倍になった。
さらにデータ数に応じて計算量がO(n)で増加するので、大量のデータを1つの PStore ファイルのは望ましくない。</p>
<p>PStoreAdapter2 と MemCacheAdapter はデータサイズの増大で処理時間は2〜3倍に増加しているけど、データ数に関わらずに計算量は O(1) 。
<a href="http://www.machu.jp/diary/20091002.html#c01">ツッコミで指摘</a>をいただいているけど、 tDiary くらいの規模のアプリケーションであれば、ファイル数の増加とメモリの消費のどちらを選ぶかで選択してもいいかも。</p>]]></content:encoded>
</item>
<item rdf:about="http://www.machu.jp/diary/20091002.html#p01">
<link>http://www.machu.jp/diary/20091002.html#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.machu.jp/diary/20091002.html#p01" />
<dc:date>2009-10-02T09:17:53+09:00</dc:date>
<title>Memcached と PStore のベンチマーク比較</title>
<dc:creator>machu</dc:creator>
<dc:subject>tDiary</dc:subject>
<dc:subject>Ruby</dc:subject>
<description>tDiary のプラグインを作っていると、ローカルにキャッシュを保存することがよくある。 flickr プラグインが取得した XML の写真情報だったり、プロフィールプラグインが取得したプロフィールデータだったり。 今は、 PStore を使って保存しているけど、 Memcached を使ったらどうなるかと思って比較してみた。 比較対象  1ファイルに全てのデータを保存する PStore..</description>
<content:encoded><![CDATA[<h3>Memcached と PStore のベンチマーク比較</h3><p>tDiary のプラグインを作っていると、ローカルにキャッシュを保存することがよくある。
flickr プラグインが取得した XML の写真情報だったり、プロフィールプラグインが取得したプロフィールデータだったり。
今は、 PStore を使って保存しているけど、 Memcached を使ったらどうなるかと思って比較してみた。</p>
<h4>比較対象</h4>
<ul>
<li>1ファイルに全てのデータを保存する PStore (ファイル数 = 1) → PStoreAdapter</li>
<li>1ファイルに1データを保存する PStore (ファイル数 = データ数) → PStoreAdapter2</li>
<li>Memcached → MemcacheAdapter</li>
</ul>
<h4>ベンチマーク環境</h4>
<p>Rubyで書いた。<a href="http://gist.github.com/199335">gistにて公開</a>。
データ数を10, 100, 1000と増やし、それぞれの書き込み時間と読み込み時間を計測した。</p>
<ul>
<li>Intel Core 2 Duo 2.2 GHz, 4GB memory</li>
<li>Mac OS X 10.6.1</li>
</ul>
<h4>ベンチマーク結果</h4>
<p>「full」ボタンを押すと全画面表示される。
上からデータ数10, 100, 1000での時間。ループ回数は10000回。</p>
<p><div style="width:425px;text-align:left" id="__ss_2107201"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/machu/pstore-and-memcached-benchmark" title="PStore and Memcached benchmark">PStore and Memcached benchmark</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=random-091001185649-phpapp01&stripped_title=pstore-and-memcached-benchmark" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=random-091001185649-phpapp01&stripped_title=pstore-and-memcached-benchmark" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">documents</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/machu">Kohei MATSUOKA</a>.</div></div></p>
<h4>分かったこと</h4>
<ul>
<li>PStoreで1ファイルにデータを詰め込むとスケールしない。</li>
<li>PStoreで1ファイル1データとするとスケールする。</li>
<li>PStoreとMemcachedの時間は同じくらい。<ul>
<li>PStoreは、おそらくディスクのキャッシュが効いているから。ディスクIOが発生すると遅くなるのでは。</li>
</ul></li>
</ul>
<h4>感想</h4>
<p>tDiary のキャッシュを memcached に載せると速くなるかもと期待したけど、そう甘くはないかも。</p>]]></content:encoded>
</item>
</rdf:RDF>
