panasonic DIGA DMZ-710 購入

以前、テレビはブラウン管テレビで3Dに対応をしていなかったのが、1080iのD端子出力には対応をしていたので、DIGA DMZ-690を購入した。
(3D対応の方は、D端子での1080i 出力は著作権保護の目的か何かは不明だが、無理矢理ダウンコンバートされてしまう。DMZ−690はD端子でも1080i出力をすることができた。)

で、テレビが壊れたので3D対応のVIERAを購入した。
ところが今度はDIGAは3D対応をしていないので、困っていた。

そこで、父上が助け船を。
家のVIERAは3Dに対応をしていない&母上が自分専用のDIGAが欲しいらしいので、
私が新しいDIGAを買って、今使って居るやつを母上にあげることに。

これも、即決 DMZ710に。
値段は大日ジョーシンで48000円で売っていた。ヨドバシカメラ53000代、
ヤマダ電機69000円にしては安い。
しかも、ジョーシンエレコム製の1700円のHDMIケーブルが1200円にしてくれるサービスが、あった。
そこで、エレコムの値引きはいいんで、普通にパナソニックのを買います。
と、いったら、それでも2480円を2000円にしてくれた。感謝。


以下はそのレビューである。

到着。panasonicスタイルは変わらない。

他の購入物は以下。阪神タイガースのネックウォーマーをおまけでもらった。

中を開けると、説明書が登場

本体が登場。VIERAと同じくまだ秘密のベールに隠されている。

箱を開けると、箱自体が持ち運びがしやすいように、持ち手がある。
芸が細かい。

内容物の確認。リモコン、コード、説明書。

690と比較をしてみた。

ほとんど同じだが微妙に違うところがある。

先端部は同様に寝ながら操作できるように、
角度を付けて赤外線発光部がある。

中に入っているもの。



本体登場。上から見ると690との違いはあまりわからない。

横からみた図。3Dときちんと書いてある。

開閉部は一緒。

録画は3つもある。

690と開口部は少し違って一つになる。

裏面を印刷してみた。
トリプルチューナーって書いていているから、
3つアンテナ線がいるかと思ったら、内部でしてくれる。


せっかくなので、2つ並べてみた。
本当はこういう起きかたをしたら放熱ができないのでしないほうがよい。





何げにjava powered どこでつかっているのだろう。
メニュー画面がjavaでできているのだろうか。

panasonic VIERA TH-L37DT3購入〜その3〜

よく考えたら、今現在のAVセンターはSA-607というやつで、
http://www.jp.onkyo.com/support/audiovisual/discontinued_products/txsa607/
HDMIには対応をしているが、実は3Dに対応していない。

そこで、Play Station 3から3Dビデオやゲームをしようと思っても、

PlayStation 3 - HDMI -  AVセンター - HDMI - VIERA
                                   +-スピーカー達

ということをすると、VIERAは3D出力することができないのである。
そこで、PlayStation 3から HDMIVIERAに出力させながら、
逆にVIERAから光デジタル出力でAVセンターに送り、そこから音を出せばいいかも。
と思った。
 つまり以下のようにするのである。

PlayStation3 -HDMI - VIERA - 光デジタル(S/PDIF) - AVセンター - スピーカー達 

光デジタルと、HDMIを比べてみると、音質はバイナリ完全一致する。
しかし、HDMIは次世代サラウンドである、Dolby True HDには対応できないため7.1chとかは無理になる。
まぁ、そもそも、現在のスピーカ構成はサブウーハーなしの5chだからどうでもよい。

そこで、あわてて近所の山田電機で購入してきた。
購入したのは Panasonic の RP-CA2020-W
1890円なり。

めでたく、想定通りの再生をすることができた。

カロリー計算〜その2〜

http://d.hatena.ne.jp/ymlab/20120102

の続き。
今度は、これをシステムの方で検索しやすいようにしなければならない。
日本語は超面倒で漢字や日本語があるため、ややこしい。
例えば、みかん一つにしても、

みかん
蜜柑
ミカン
オレンジ(←ちょっと強引か)

の全てにヒットする必要がある。
これは難しすぎる。
そこで、とりあえず携帯電話のアカサタナ検索みたいに、全てをひらがな検索すればいいんじゃね?目次みたいに。

ってことで、エクセルを起動し、名称の右に列を追加し、一つ一つ手入力・・・、できるわけがない。
そこで、mecab を使おうと思った。

mecab   京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 
共同研究ユニットプロジェクトを通じて開発されたオープンソース形態素解析エンジン。
言語, 辞書,コーパスに依存しない汎用的な設計を 基本方針としています。 パラメータの
推定に Conditional Random Fields (CRF) を用 いており, ChaSenが採用している 
隠れマルコフモデルに比べ性能が向上しています。また、平均的に ChaSen, Juman,
 KAKASIより高速に動作します。 ちなみに和布蕪(めかぶ)は, 作者の好物です。
http://mecab.sourceforge.net/

だ、そうである。

で、段々記事を書くのが面倒になってきたので(備忘録のために書いているが早く開発に戻りたい。)、
そのためのスクリプトを記述する。本気で保守する気もないので全くリファクタリングもしていない。

日本語文を入力すると、それにふりがなをつけた値を返す。
一応、WebAPI化させているので、ちょっとこざかしいこともしている。
http://ymlabo.ddo.jp/~ymlab/webservice/mecab/mecab_kanji2furigana.php?str=漢字

<?php /* vim: set fdm=marker: */

$str="";
if ( count( $_REQUEST['str'] ) != 0 ) {
	$str = mb_convert_encoding($_REQUEST['str'],"EUC","auto");
	$str = htmlspecialchars($str,ENT_QUOTES);
}

$from = 1;//0 is console. 1 is browser.



if ( strlen($str) == 0 ) {
	//this is not Web service
	$str = $argv[1];
	$str = mb_convert_encoding($str, "EUC", "auto");
	if ( $argc==1 ) {
		print "Usage ./php mecab_kanji2furigana.php nihongobun\n";
	}
	$from = 0;
}
//print "||".rawurlencode($stra)."||";

//print "str = $str | grade = $grade";

/** マルチバイト文字列を1文字ずつ配列に分割する
 * @see http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1417635014
 * */
function mbStringToArray( $sStr, $sEnc='UTF-8'){ /**{{{*/
	$aRes = array();
	while($iLen = mb_strlen( $sStr, 'SJIS')) {
		array_push($aRes, mb_substr( $sStr, 0, 1, $sEnc));
		$sStr = mb_substr( $sStr, 1, $iLen, $sEnc );
	}
	return $aRes;
}
/*}}}*/

/** Mecabライブラリを走らせる.*/
function runMecab( $str ) {
	$ret = "";

	exec ("/Users/ymlab/Sites/webservice/mecab/do_mecab.sh ". escapeshellarg($str), &$ary);
	//print "escapeshellarg=[".escapeshellarg($str)."]";
	//exec ("/Users/ymlab/Sites/webservice/mecab/do_mecab.sh ". $str, &$ary);
	$isAlpha = false;
	//print_r($ary);
	foreach ( $ary as $value) {
		//camma check
		if ( $value[0] == "," ) {
			$kanzi = ",";
			$hurigana = "";
		} else {
			$parse = explode(",", $value);
			$kanzi    = substr($parse[0], 0, strpos($parse[0], "\t"));
			$hurigana = $parse[7];
		}
		//print $parse[7];//フォーマットはこんな感じなので。[39] => 練習        名詞,サ変接続,*,*,*,*,練習,レンシュウ,レンシュー
		//print $kanzi;

		//学年でのチェックを入れることにする
	//	if (  !mb_ereg("[あ-ん]|[ア-ン]|[0-9]", $kanzi)) {
			$ret .= $hurigana;
	//	} else {
			/*//自分の単語が英数字の場合は、一文字スペースを入れておく。
			//[そうしないと、二つ以上英単語が並んだとき、くっついてしまう.]
			$isUrl = false;
			if ( mb_ereg("[a-z]|[A-Z]|[0-9]",$kanzi )) {
				if ( $isAlpha == true && $isUrl == false) {
					$ret .= " ";
				}
				$isAlpha = true;
			} else {
				$isAlpha = false;
			}
			$ret .= $kanzi;
		}
		*/
	}
	return $ret;
}


/** 与えられた文字列から、該当する学年に対応したルビを振ったデータを返す
 * @param str 変換する文字列
 * @return ret 変換された文字列
 */
//function translation($str,$from, $encode='ISO-8859-1'){ /*{{{*/
function translation($str, $from, $encode='EUC-JP'){ /*{{{*/
	$ret = "";
	//print "I'm in translation\n";
	//URLはstrに通さないように
	preg_match_all('/[^ -~]+|[ -~]+/', $str, $aMatches);
	for ( $i = 0 ;$i < count($aMatches[0]); $i++ ) {
		$str = $aMatches[0][$i];
		//print "$str";
		//漢字系でなかったら、そのままreturnする.
		if ( preg_match('/[ -~]+/', $str) ) {
			$ret .= $str;
		} else {
			$aaa = runMecab($str);
			$ret .= $aaa;
		}
		//print "ret=$ret<br />";
	}

	$ret =  mb_convert_kana($ret, 'KVc', mb_detect_encoding($ret, 'ASCII,JIS,UTF-8,EUC-JP,SJIS'));
	if ( $from == 1 ) {
		$ret = mb_convert_encoding($ret, "SJIS", "auto");
	}
	print $ret;
	$sEnc = mb_detect_encoding($sTest, 'ASCII,JIS,UTF-8,EUC-JP,SJIS');
	$a2 = mbStringToArray($sTest, $sEnc);
}
/**}}}*/
translation($str, $from);
?>


これで、漢字交じり文をひらがなにすることができるので、いよいよCSVファイルを落とし込もう。
適当に、このプログラムはputhurigana.php とかにしておいて、18回CSVを落とし込む。

$ php puthurigana.php 01.csv >h01.csv &
$ php puthurigana.php 02.csv >h02.csv &
$ php puthurigana.php 03.csv >h03.csv &

という感じ。ここ手入力の方が早そうだったので、手入力していった。

<?php
if ( $argc == 1 ) {
	fputs(STDERR, "usage $php puthurigana.php [filename]");
	exit;
}

$filename = $argv[1];
//fputs(STDERR,"filename = $filename\n");
$fp = @fopen( $filename, "r" );
$ret = "";
while( !feof( $fp ) ) {
	$row = fgets($fp, 1000);
	$arrayRow = explode(",", $row);
	//0〜1まで
	for ( $i=0; $i < 2; $i++ ) {
		$ret.= mb_convert_encoding($arrayRow[$i].",", "EUC-JP", "SJIS");
	}
	//mecab
		$arrayRow[1] = mb_convert_encoding($arrayRow[1], "EUC-JP", "SJIS");
//		fputs(STDERR, "arrayRow[1]=$arrayRow[1]\n");
		exec("php ../mecab_kanji2furigana.php ". escapeshellarg($arrayRow[1]), &$ary );
		//print_r($ary);
		$huriganaed = $ary[2];
		$ret.= "$huriganaed,";
		$ary="";//aryを初期化する.
	//その後の処理
	for ( ;$i < count($arrayRow)-1;$i++ ) {
		$ret.= mb_convert_encoding($arrayRow[$i].",", "EUC-JP", "SJIS");
	}
	$ret.= $arrayRow[$i];
	//print mb_convert_encoding($row, "EUC-JP", "SJIS");
}
print mb_convert_encoding($ret, "SJIS", "EUC");
fclose($fp);


?>

あとは、mecabが誤変換したところを修正していく作業をしていこう。

カロリー計算〜その1〜

カロリー計算を本気でしてみようと思い、まずは成分表が欲しい・・・。と思う。
ところが成分表のCSVXML等のデータは配布されていないらしい。

文部科学省

http://www.mext.go.jp/b_menu/shingi/gijyutu/gijyutu3/houkoku/1298713.htm

に、
資源調査分科会報告「日本食品標準成分表2010」について
というサイトがあり、ここから成分表をダウンロードすることができる。

しかし、しかしである。

[PDF]01穀類
http://www.mext.go.jp/component/b_menu/shingi/toushin/__icsFiles/afieldfile/2011/01/25/1299012_1.pdf

なんだなんだ、このみにくいPDFは!?

結構、というか相当困ってしまった。これではデータとして取得できないではないか。
もちろん、困ってばかりいても状況が改善するわけでもないので、
さらにググりまくると、大変素晴しいサイトを発見した。

『日本食品標準成分表2010』のPDFを.txtファイルに変換する
http://fujiitoshiki.com/wordpress/?p=26

ここで、ExcelからVBAを使ってTXTに変換してくれるというもの。
喜んで、ありがたく使わせてもらった。

ところが、このプログラム、大変残念なことに食品によっては大切な情報が欠落することがあるのだ。
例えば、

の場合、
こんな情報になる。(それぞれのカロリーや栄養素については30%果実ジュース以外はきちんと取得できる。)

1001	玄穀
1002	精白粒
1003	あわもち
1004	オートミール

精白粒はあわ以外にもいろんな種類があるのでこれではちょっと厳しい。
本当はこういう風にしたい。

1001	玄穀
1002	あわ(精白粒)
1003	あわ(あわもち)
1004	えんばく(オートミール)

そこで、非常に面倒ではあるが、エクセルで手入力をすることに。
具体的にはこんな風にした。

A B C D
1 1001 =if(b1="",d1,CONCATENATE("b1","(",D1,")")) 玄穀
2 1002 あわ =if(b2="",d1,CONCATENATE("b2","(",D2,")")) 精白粒
3 1003 あわ =if(b3="",d1,CONCATENATE("b3","(",D3,")")) あわもち
4 1004 えんばく =if(b3="",d1,CONCATENATE("b3","(",D3,")")) オートミール

エクセルでB列とC列を追加してB列には追加分を手入力。C列は上の数式を入力して、あとはマウスでえいやってコピーした。
現在はまだ統合マクロは使っていない。

これでなんとか成分データをCSV出力させることができた。
こういう時エクセルは便利だ。
〜その2〜へ続く。
http://d.hatena.ne.jp/ymlab/20120103

あけましておめでとうございます。

今年もよろしくお願いいたします。と、またどこかのこの記事を、万が一見てしまった
だれかさん。あいさつをしておこう。
昨年か、一昨年化前は、Xilinxのソフトウェアの使い方を記述していたが、
http://d.hatena.ne.jp/ymlab/20100101

今日も、プログラミングのためのデータ整備をしている。
成長がないというか、なんというか。
閑話休題

Appleで今日だけの割引とかいうセールをやっている。
しかしである。iMacは今日だけ値上がりしていないか!?

panasonic VIERA TH-L37DT3購入〜その2〜

これは、前の日の続きである。長くなりそうだ。


どーんと到着、前のテレビは腰が逝きそうな44kgもあったブラウン管テレビだが、今回は15kg、ずいぶん軽くなった。87100円なり。リサイクル料金2800円強。

開封の儀 本体が少しちら見できるのがうれしい。
発砲スチロールは3つに分離されている。
左から、転倒防止用のひも。

中央は、リモコン

右側は、テレビと、台との接続カバー

全部出すとこうなる。

ついに、本体がみえたぞー!すると、右の方に、なんか平べったいものが・・?

出してみると、テレビのスタンドでした。

テレビを出してみた。今のままでは秘密のベールに隠されている。

裏返してみると、ついに本体が(本体の裏)。

ここで、どうしたらよいのか分からなくなったので、基本ガイドの説明書を読むことに。
(最初から読め。)

説明書を読むと、机の上に、毛布などをしいて、本体下部が机からはみ出るように、かつ、表面が下になるように置けと書いてあったので、そのようにする。

ついでに、端子も撮ってみた。

説明書によると、スタンドに、スタンド台を取り付けるように書いてあったので、取り付ける。ドライバーが必要。
向きは、ねじ穴が、「八」のように、広がっているので間違えようがない。

さらに、カバーを装着。これは、穴に差し込むだけ。しかも弱い。いまだになぜいるのかが分からない。

次は、このスタンドをテレビに装着すればよい。下の写真の“]”を右に90度回転させたようなところに装着。

どーん。

これを、ねじで留める。こっちのねじは、ワッシャーとナットが付いている。
最初のねじの方はついてなくて、「ちょっと大丈夫か?」と思わせておいて、荷重がかかるところはきちんとついている。「そんなこともあろうかと!」に思わず「さすがパナソニック、やはり・・以下略」と唸ってしまう。

取り付け完了。

とりあえず、置いてみる。ここは感動してもいいところ。センタースピーカーが・・・。

完成と思っていたら、前面にシールが付いていた。こんなところにも、品質管理の高さがうかがえる。
「さすがパナ・・・」以下略。

わーい!右上のスピーカにわけのわからないものを乗っけているが気にしない。

センタースピーカーはこんなかわいそうな場所に追いやられてしまった。
どうすればいいのだろう。(上からみた図)

次は、他の機器との接続だ。HDMIケーブルと、LANケーブル。そして3Dメガネ。
ちなみに、12月31日までに購入すると、50円切手、領収書があれば、パナソニックから、
3D眼鏡(Mサイズ)がプレゼントされる。

ちなみに、3D眼鏡の中はこれだけ。やはり、これで数千円は高いと思う。

充電は、こういう場所にさす。USBから充電する。
ただし、この先端部は、たぶんmicroUSB。できればminiUSBにしてほしかった。

アンプの方は、スピーカーや、PS3、DIGA、PC2台からの接続で、完全にカオス化してしまった。

ちょっとだけ視聴した感想。

・2Dは、大変美しくてよい。
・3Dメガネは、テレビを無理やり3Dにしてみる機能を使っても、ご想像の通り大したことはない。
・3Dメガネは、まだ慣れていなくて、頭が痛くなる。周りを暗くするといいかも。
・3Dメガネは、軽い。
PS3で、グランツーリスモ5を3D化してみたが、全然必要ない。心底がっかりした。奥に引っ込む感じ。
パナソニックのネットワーク機能(アクトビラだったかな。)で3D体験コーナーがあったので、
 一番先頭にあったサイボーグ007のアニメの予告編を視聴した。
 ものすごく立体的で本当に、飛び出る感じで、感動した。映画館以上に飛び出る感じがした。

購入決意から、型番を選んで実際に購入するまであっという間だったが、大変満足できる。