Friday, April 27, 2012

トマト・リコピン・健康

    「トマトが赤くなると医者が青くなる」という諺があります。トマトのこの高名は、(特に赤いトマトに)リコピンという成分を豊富に含んでいるからです[1]

トマトに含まれる栄養成分[7]
    リコピン:有害な活性酸素の働きを抑える強い抗酸化作用⇒ガンや動脈硬化などの予防効果
    ビタミンA(42μg (5%)):
    ビタミンC(14mg(17%)):
    ビタミンE(0.54mg(4%))
    ビタミンB6(トマトジュースの場合0.09mg[6])
    カ ロテン(Carotene; 640μg):抗酸化物質
    カリウム(Potassium;237mg(5%))
    食物繊維(Dietary fiber;1.2%)
    ルチンとゼアキサンチン(123μg):前者は血管を強化する
    クエン酸:疲労回復

     リコピン(リコペン、lycopene)は、緑黄色野菜(ニンジンなど)に含まれるベータカロチンの仲間で、その抗酸化(活性酸素を除去してくれる)作用はベータカロチンの2倍の働きがあると言われています。

    血液中のリコピンやビタミン濃度の低い女性は、子宮頚ガンにかかりやすく、また血中のリコピン濃度の低い人は、慢性大腸炎を起こしやすい。

    京都大学研究グループでは、「肝細胞などを用いたin vitroの解析結果から、トマト、特にトマトジュース中に脂肪燃焼作用を有する13-oxo-ODA(13-オキソ-9,11-オクタデカジエン酸)が多く含まれることを発見しました」そうです[2]

    喫煙者と非喫煙者では、通常は血中リコピン濃度は同じですが、タバコを3本吸うと、その害を消すために血中リコピン濃度が40%も減少してしまうそうです。

    老化や生活習慣病の予防をしたり美白効果を期待するなら、1日に15mgのリコピンを摂取することが望ましいです。

    但し、要注意なのは、普通のトマトジュースには塩分が入っていることです。普通のトマトジュースを毎食200mlずつ飲むと、摂取する塩分は約2.4gとなる[4]。 WHO(世界保健機構)が提唱する塩分摂取量の目安、1日5〜6gの約半分に到達してしまいます。因みに、厚生労働省で推奨されている一日の塩分摂取量の目安は10グラム以下ですが、高血圧の人は6グラムだそうです。高血圧治療ガイドライン2000年版では7g以下とされています[4]

    余談ですが、塩分の取りすぎで高血圧になるのは、「食塩感受性」(血圧が塩分に敏感に反応するタイプ)[5]の人に限るそうです。高血圧で食塩非感受性の人も結構います。そのような人たちは、減塩しても高血圧症を改善することはできません。

    フィンランドの研究者はトマト豊富の食事をすると、脳梗塞の防止効果があるという研究内容を発表しました。1031名の男性を対象に12年追跡して行われた研究で、血液にリコピン含有量が高ければ高いほど脳梗塞が発生しにくいという結論が得られました。


参考リンク
[1] トマトが赤くなると医者が青くなる?! 「トマトの効果」
[2] トマトから脂肪肝、血中中性脂肪改善に有効な健康成分を発見:効果を肥満マウスで確認
[3] トマトジュース騒動 毎食200ml摂取なら塩分2.4gで心配の声
[4] 人間に必要な塩はどのくらい?--減塩ネット
[5] 食塩感受性とは?
[6] ビタミンB6の含有量一覧表
[7] Tomato - Wikipedia
[8] Lycopene, what is it, benefits, how to increase lycopene in your diet
[9] Tomatoes are 'stroke preventers

Tuesday, April 24, 2012

赤ワイン・ポリフェノール・健康とその真実

    赤ワインに含まれるポリフェノールはアントシアニン系(赤色や紫色、青色などのもと)、タンニン(渋み)、カテキン系、クルクミン系 、レスベラトロール(DNAを酸化から守る)等があります。 (ビタミンCもDNAを酸化から守りますが、少しDNAを傷つけると云われています)。新聞、雑誌、テレビでワインに関してたびたび登場するキーワードは、このポリフェノールです。
    フランス人が肉や乳製品を中心とした高脂肪な食生活を送っているにもかかわらず、心疾患などの生活習慣病に罹患する率が低いという「フレンチパラドックス」というものです。

よく言われるワインの効用
  • 動脈硬化やガンの予防-ポリフェノール(活性酸素と素早く結合)
  • アルツハイマーの予防-マグネシウム(脳細胞の活性化)、カリウム
  • 高血圧予防-カリウム(体内のナトリウムと結合、塩分減少させる)
    熟成した高級ワインには通常のワインと比べ、特に多くの有効成分が倍加されています。だから、高級志向の日本人には余計売れるでしょうね。が、ワインほどピンきりの商品はないため、偽装も絶えません。余程知識がないと、安易に高いブランドを買わないほうが無難です[20]。
    ワインの適量は1杯(ポリフェール含有量は一番多い野菜の20倍あると言われる)とされます。



しかし、しかしですが

いいことばかりではありません!

    ワインには大体16パーセントのアルコールはあります。アルコールは細胞を殺しします。非常に分かりやすい話です。理屈はともかく、一般的には「適量」の飲用者は禁酒者かアル中者より(端的にいうと)死亡率が低いそうです。


    国際がん研究機関はアルコールをIARC発がん性リスクのグループ1(ヒトに対する発癌性が認められる(Carcinogenic)、化学物質、混合物、環境)に分類しています。

    2000年5月28日の毎日新聞には以下の記事内容はあります。
抗酸化物質のポリフェノールが「体によい」といわれ、赤ワインやココア、チョコレートなどを口にする人も多い。だが、1日に食べている野菜や果物、緑茶のポリフェノール量を合わせると、赤ワインでグラス3杯程度、板チョコレートで3枚以上に当たり、通常の食事でもポリフェノールが摂取できていることが、国民生活センターの商品テストで分かった。同センターは「ポリフェノールだけを気にしていると、商品によっては脂質や糖質、アルコールやカフェインの取りすぎにつながる」と“ポリフェノール信仰”の行き過ぎにクギを刺している。
    過去の研究は、ワインを他のアルコールと同じものであると結論付けて、つまり基本的に体に良くないものとしていました。しかし、最近の10年か20年、「新しい」研究成果がどんどん発表されて、ワインは実は体にいいのではないかと変わってきました。

    つい最近、そのすべてを覆すような論文は発表されました。Charles J. Holahan氏の"Wine Consumption and 20-Year Mortality Among Late-Life Moderate Drinkers" (Journal of Studies on Alcohol and Drugs. Volume 73, 2012; Issue 1: January 2012)は、55から65歳までの802人を20年追跡し、各種疾患の発病率と死亡率などを解析しました。その結論は、ワインは他のアルコールより各種の確率を改善するような関係を見いだせなかったことです。つまり、「フレンチパラドックス」を裏付ける証拠はないことです[7]。

    人々困惑させるのは、University of Connecticutの教授であったDipak K. Dasです。同氏は、レスベラトロールresveratrol)の研究に関して有名な研究者でした。しかし、同大学の調査によると、氏は145回以上にわたって研究データを捏造していました。時には、フォトショップまで使って 捏造を行っていました。作ったデータだから信憑性はもっともらしく聞こえるに違いありません。その証拠、同氏の名前は500編以上の論文に名前を挙げています。その内170編はレスベラトロールに関するものです。[8]
    そもそも、レスベラトロールが健康にいいといわれるのは、この成分はサーチュイン(sirtuin)を活性化(activate)させるとされるからです。サーチュインは細胞の代謝(metabolism)を制御するそうです。この説にも賛否両論で、相互矛盾する研究が発表されています[11]。仮に本当に寿命を長くする効果があっても、賛成派の研究に使われるレスベラトロールの量は、4000mg/日(Dr. Auwerxの研究)です。グラス一杯の赤ワインには、僅か1mgしかない(!!!)ことを考えると、赤ワインの長寿効果はほとんどないとしか言いようがありません。もう一人の有名研究者であるSinclair の研究に使われた量でも、約その20分の1である20mgです。後者の研究で確認された「延命」効果は定かではないが、一日20杯のワインでも飲んだら、アル中で逆に早死にしてしまいます。
    もう一つの落とし穴は、人間のレスベラトロール吸収効率です。当然ながらほとんどの実験は動物で行われているので、しかも、なるべく寿命の短いものを対象にしてます。その限られた動物にある程度の効果が確認されていても、同じことは人間の体で同様に繰り返されるかは保障できません。これは、レスベラトロールに限った話ではありません。

     複雑で分かりにくい研究成果はともかく、ワインに入っている添加剤なら分かりやすいでしょう。亜硫酸塩ソルビン酸があなたを悪酔いさせるという説はあります。特に輸入ワインには現地マーケットのより多量に入っているそうです。この亜硫酸塩とソルビン酸は「日本人を狂わせる五つの有害物質」とされる中に入っています。因みに他の三つは安息香酸(防腐剤)、亜硝酸塩(発色剤)、味の素(MSG 核酸系調味料)です。

参考リンク
[1] ワインの健康効果
[2] 赤ワイン健康説のウソ(魚拓)
[3] ワインに含まれる亜硫酸塩とソルビン酸があなたを悪酔いさせる
[4] 亜硫酸塩-食と健康に関する辞典
[5] Health effects of wine
[6] Wine Consumption and 20-Year Mortality Among Late-Life Moderate Drinkers
[7] Late-Life Alcohol Consumption and 20-Year Mortality。同日本語記事、「ワインが健康に良いウソ? 米研究が“都市伝説”暴く
[8] Red Wine and Lies(赤ワインとそのウソ)
[9] UConn Investigation Finds That Health Researcher Fabricated Data
[10] Wine Fraud
[11] The Truth About Red Wine And Your Health
[11] Longevity Gene Debate Opens Trans-Atlantic Rift
[12] Resveratrol - Wikipedia
[13] 日本人を狂わせる5つの有害物質

Saturday, April 21, 2012

Panoramioの新しい・余計な機能

PanoramioはGoogle MapやGoogle Earth上に写真をリンクし、表示させるサービスです。

最近、投稿された写真に自動的に撮影場所を検出し、ユーザに提示する機能が発表されました。

これは素晴らしいことであるように聞こえますが、実は大きいな落とし穴があります。既に投稿された写真について突然「新しい場所」を沢山提示されました。その「新しい」場所は、おそらくGoogle Mapに登録されているランドマークの代表点です。それは、Panoramioで指定されている「撮影場所」、つまり投稿時地図上で指定する位置と違います。せっかく地図上で正確に撮影位置を指定したのに、撮影対象の位置を「新しい位置」(つまり正しいはずの位置)を提示されるのは、大きいなお世話です。おかげで、一々その提示を無視するように操作しなければいけなくなります。

ちなみに、ここの提示には以下の説明があります。
This suggestion was automatically added by Panoramio

関連記事:
Panoramio Automatically Detects the Location of Your Photos When Uploading

Monday, April 16, 2012

クオンツ分析(quantitative analysis)投資法

Yahoo!Japanファイナンスから、「焦点:米銀行出身者、中国でクオンツファンドを相次いで立ち上げ」という記事がありました。「中国のクオンツファンドに関する政府統計や業界団体のデータはない。ただしシェン氏は、現在の運用残高はおよそ100億元と推定しており、今後3年で10倍の1000億元に成長する、との見方を示す。」とのことです。2012年4月16日現在は1元=12.875円ですので、1000億円は約1.3円です。

このクオンツファンドは、つまり「クオンツ分析」(以下HFK「ヘッジファンド用語集」の定義を参照)手法で投資の判断をするファンドのことです。
クオンツ分析(quantitative analysis):数学的モデルを利用して、統計的・計量的に証券の投資判断をする手法。クオンツは「quantitative」(計量的)から派生した言葉で、クオンツ分析によって運用されるファンドは「クオンツ・ファンド」と呼ばれることがある。
1980年代、アメリカでロケット工学を専攻した科学者が、量子力学などの手法を金融工学に取り入れたのが発端で、その後デリバティブ取引やリスク・マネジメントなどさまざまな分野で盛んに用いられるようになった。2007年夏のサブプライム住宅ローン危機では、大手金融機関の大規模クオンツ・ファンドが、相次いで損失を計上したことが話題となった。
金融経済用語集では、以下の定義になっています。
クオンツは、「Quantitative(数量的、定量的)」から派生した用語で、高度な数学的手法や数理モデルを使って、マーケットを分析したり、投資戦略や金融商品を考案・開発したりすること、もしくはその専門家のことをいう。1980年代のアメリカで、NASAのロケット工学を専攻した科学者が、量子力学などの手法を金融工学に取り入れたのが始まりで、その後、デリバティブ取引やリスクマネジメントなど様々な分野で盛んに用いられるようになった。この関連用語として、過去の市場データや企業業績の推移などの数値化できる情報を用いて分析したり、予測モデルを構築したりすることをを専門に行っている人を「クオンツ・アナリスト」という。また、定量モデルにより銘柄の魅力度を判断し、投資を行う運用手法を「クオンツ運用」といい、その運用手法を使ったファンドが「クオンツ・ファンド」である。
しかし、どう考えても、皆が同じ手法で投資の売・買タイミングを判断するなら、相場はそれだけで一気に動くはずです。その次の瞬間(すべてシステム化されているので、大体秒単位のはずですが)、その手法の根拠はすでに崩れてしまっているかもしれません。金融経済用語集の続きは以下になっています。まあ、素人でも分かるような話ですね。でも、「プロ」と自称している人達が平気に行っています。自分の大事な資産を任せた人たちもどうかと思いますね。
ちなみに、2007年夏のサブプライムローン問題では、大手金融機関の大規模クオンツ・ファンドが、相次いで損失を計上したことが話題となった。これは、多くのファンドが同じ指標で判断して投資をしていたため、売却銘柄が類似し、結果的に多くのファンドでパフォーマンスが著しく毀損してしまったとのこと。一般にクオンツ運用の特性として、(1)過去のデータに基づくため市場環境の変化に脆弱、(2)ファンド間でのポートフォリオの類似性が高い、といった点があり、今後の成功の鍵は、まだ使用されていない「独自ファクター」の開発であるとのこと。
「投資」とは格好よく言っていますが、所詮ギャンブルですね。ギャンブルである以上、「常勝」というのは、ありません。これは、ゲーム理論ですでに証明されている数学の問題です。但し、ギャンブラー(資産を「プロ」に預かった人も同じです!!!)は常に、「俺は勝てます」、あるいは、「今は負けていますが、いずれ元を取れて、さらい大儲けできるはず」とか、勘違いしています。正確に言うと、自分に言い聞かせています。

因みに、これまでのところ、同ニュースにあるシェン・イ氏が運用しているクオンツファンドのリターンは200%以上といいます。まさに奇跡的な実績ですね。AIJの真似っこでないことを願っています。あるいは、ただ単に「ビギナーズ・ラック」ではないことを信じたいですね。

Friday, April 13, 2012

LINUXでジョブ(コマンド)を定期的に自動実行

cron を Windows のサービスとして登録
cygrunsrv --install cron --path /usr/sbin/cron --args -D
cron サービスを起動
cygrunsrv --start cron
cron サービスが起動しているかどうか確認
cygrunsrv --query cron
ジョブ(定期的に実行したいコマンド)を編集
crontab -e
crontabファイルの例
# #で始まる行はコメントです
分 時 日 月 曜日 コマンド# 毎日0時0分command1を実行0 0 * * * /usr/bin/command1# 月曜日から金曜日までの0時0分にcommand2を実行0 0 * * 1-5 /usr/bin/command2
以上の手順は、cygwinでも同じです。

Wednesday, April 11, 2012

PerlでGPXファイルを日付ごとに分割する

Perlの初心者ですが、練習として、ある期間にわたって記録されたログデータを日ごとに分割するプログラムを作ってみました。以下の処理をPerlで実現することにもなっています。
書式指定した文字列を作成する
文字列から一番目のタグを取り出す
文字列から指定したパタンのマッチング
サブルーチン(関数)の書き方
サブルーチンの引数の代入。また、関数にファイル名や配列の渡し方
配列の使い方。FIFOとしての使い方(PUSH,POP,初期化(空にする))。配列に配列を追加する
ハッシュ(連想配列)の使い方
ファイル操作。ファイルからの入力、ファイルへの出力。ファイルの削除
ソースコードは、以下の通りです。
-------------------------------------------
#!/usr/bin/perl
use strict; #これを使うと、バグが減る!
my $file=$ARGV[0];
open (IN, $file) or die "$!";
my $tag;
my $tagStart;
my $tagEnd;
my $pattern;
my @header = (); #配列でヘッダー情報を一時保管する
my $headerCount = 0;
my $headerEnd = "<bounds.*\/>";
my $isHeader = 1;
my $minWPTCount = 20;
my $outFileCount = 0;
my $outFileName;
my $outFileNameRoot = "out";
my $currDate = "";
my $prevDate = "";
my @trkptElement = ();
my @trkptElementList = ();
my $elementType = "";
my $countElements = 0;
my $trackPointKey = "trkpt";
my $lon;
my $lat;
my $startTime = "";
my %trkPtRange = ( #ハッシュ配列を使ってトラックの点情報を記録
  "latmin" => '0.0',
  "latmax" => '0.0',
  "lonmin" => '0.0',
  "lonmax" => '0.0'
);
my $fo; #出力のファイルハンドらー
sub findKey() #文字列にあるキーワードがあるかどうかをチェックする
{
  my $ret = $_[0];
  my $key = $_[1];
  $ret =~ m/$key/;
}
sub findTag() #XMLのタグを取り出す
{
  my $ret = $_[0];
  $ret =~ /<(.*?)>/;
  $ret = $1;
}
sub getLatLon() #緯度経度を取り出す関数
{
  my $ret = $_[0];
  my $lon;
  my $lat;
  $ret =~ /"(.*?)"/;
  $lat = $1;
  $ret = $'; # ポストマッチの結果を使う
  $ret =~ /"(.*?)"/;
  $lon = $1;
  return ($lat, $lon);
}
sub printElement() #XML要素を引数のファイルハンドらーに出力する
{
  my ($fh, $array) = @_; #引数はファイルハンドらーと要素の配列
  print $fh @$array;
}
# ここからは mainに相当;入力ファイルにあるすべての行を逐次に処理
while(<IN>) {
  my $line = $_;
  if ($isHeader == 1)
  {
    $header[$headerCount] = $line;
    $headerCount++;
    if ($line =~ /$headerEnd/) {
      $isHeader = 0;
      $line = $&;
    }
  } else {
    if (&findKey($line, "^<$trackPointKey")) { #文字列のパターンマッチング
      ($lat, $lon) = &getLatLon($line);
      if ($lat > $trkPtRange{"latmax"}) {
          $trkPtRange{"latmax"} = $lat;
      } elsif ($lat < $trkPtRange{"latmin"}) {
          $trkPtRange{"latmin"} = $lat;
      }
      if ($lon > $trkPtRange{"lonmax"}) {
          $trkPtRange{"lonmax"} = $lon;
      } elsif ($lon < $trkPtRange{"lonmin"}) {
          $trkPtRange{"lonmin"} = $lon;
      }
      $trkptElement[0] = $line;
      $elementType = "$trackPointKey";
      $countElements++;
    } else {
      $tag = &findTag($line);
      if ($elementType eq "$trackPointKey") {
        if ($tag eq "ele") {
          $trkptElement[1] = $line;
        } elsif ($tag eq "time") {
          $trkptElement[2] = $line;
        } elsif ($tag eq "name") {
          $trkptElement[3] = $line;
        } elsif ($tag eq "cmt") {
          $trkptElement[4] = $line;
        } elsif ($tag eq "desc") {
          $trkptElement[5] = $line;
        } elsif ($tag eq "\/$trackPointKey") {
          $trkptElement[6] = $line;
          push (@trkptElementList,@trkptElement);
        }
      }
      if ($tag eq "time") {
        if ($countElements == 1) {
          $startTime = $line;
        }
        $tagStart = "<" . $tag . ">";
        $tagEnd = "</" . $tag . ">";
        $pattern = $tagStart . ".*" . $tagEnd;
        $line =~ /$pattern/;
        my $tmp = $&;
        $tmp =~ s/$tagStart//g; #get rid of the starting tag
        $tmp =~ s/$tagEnd//g;   #get rid of the ending tag
        my $year = substr($tmp, 0, 4);
        my $month = substr($tmp, 5, 2);
        my $day = substr($tmp, 8, 2);
        my $currDate = $year . "/" . $month . "/" . $day;
        if ($prevDate eq "" || $prevDate ne $currDate) {
          $outFileName = sprintf("%s%03d.gpx",$outFileNameRoot, $outFileCount);
          open($fo, ">$outFileName") or die "$!";
          if ($prevDate ne "") {
            #分割したファイルの日付と範囲情報をその日のものに設定
            $header[7] = $startTime;
            $header[8] = "<bounds minlat=\"" . $trkPtRange{"latmin"} . "\" minlon=\"" . $trkPtRange{"lonmin"} . "\" maxlat=\"". $trkPtRange{"latmax"} ."\" maxlon=\"". $trkPtRange{"lonmax"} ."\"\/>";
            &printElement($fo, \@header); #output the header
            &printElement($fo, \@trkptElementList);
            print $fo "</gpx>\n";
            close($fo); #ファイルを閉じる
            if ($countElements > $minWPTCount) {
              #指定点数上のログしか出力しない
              $outFileCount++;
            }
          }
          @trkptElementList = ();
          $countElements = 0;
        }
        if ($countElements == 0) {
          $trkPtRange{"latmin"} = $lat;
          $trkPtRange{"latmax"} = $lat;
          $trkPtRange{"lonmin"} = $lon;
          $trkPtRange{"lonmax"} = $lon;
        }
        $prevDate = $currDate;
      }
    }
  }
}
close($fo);
# 最後のファイルには、指定点数以下しかなければ、削除する
if($countElements< $minWPTCount) {
  unlink $outFileName;
}

Tuesday, April 10, 2012

Lytro:ピンボケの心配はなくなったが、他のカメラはまだ捨ちゃだめ!

(2013年5月現在はWindows用のアプリケーションも開発されましたが、いずれ気軽に扱えるようなフォーマットにはまだなっていない。また、実勢価格は5万弱です。)

 最近話題のLytroカメラですが、ピント合わせが不要!というのは最大の売り文句です。これでしたら、だれでも気軽に使えて、既存のカメラが要らなくなるのではないかという期待も高いです。

 しかし、以下にまとめた仕様とメリ・デメリをご覧になっていただければ分かるように、既存のカメラを置き換えられるまでは、まだ相当な時間が掛かるようです。

仕様:
商品構成:8GB(最大350枚撮影か、399ドル)と16GB(750、499ドル)モデルだけ、増設する手段はない
レンズ-8x光学ズーム;絞り:常時F/2.
制御ボタン:シャッターボタン;ズームスラーだー; タッチスクリーン
ディスプレー:1.52インチ(38.55mm) バックライトLCD、ガラス・タッチスクリーン
ライトフィールド解像度:-11メガ本光線、ライトフィールドセンサーで記録できる光の本数
寸法:1.61x 1.61x 4.41(インチ)、 41mmx41mmx112mm
出力画像解像度: 1080x1080-pixel画素、JPEGフォーマット
ファイルサイズ:15MB+1MB/一枚

利点:
ピンボケの心配はない。付属のアプリケーションで、任意の点に焦点距離を合わせられる
バックライト。シャッターボタンを押下とトップでスライドによるズーム調整だけ
起動が早い
シャッター反応がはない(フォーカス調整が不要なため)
撮影間隔は短い(数秒)
サイズが小さくて軽い
無料のウェブストレージと閲覧サービス

欠点:
解像度はまだ低い
ポケットには収まりにくい
暗い環境における撮影には不向き
価格は高め
Lytroの写真は同社のオンラインサービスでしか処理できない。PCで処理する場合、OS XのMacでしか使えない
画像のレタッチは焦点距離の変更・指定だけ
ファイルサイズは大きい;一枚約16MB(!!!);その分データの読み込みと処理に時間がかかる(解像度はたかが1000X1000であるわりに)


参考リンク[4]によると、以下のメリ・デメリがあるそうです。


 メリット:

  • カメラとしての作りはよくできており、非常に操作しやすい
  • まったく新しいテクノロジーに触れて写真に対するコンセプトが変わる
  • 子供は喜ぶだろう

デメリット

  • 画質は平凡
  • 撮影上のオプションはほとんど何も用意されていない
  • 表示は専用ソフト(現在はMac版のみ)以外ではできず、表示方法のオプションも限られている


参考記事:
  1. Focus On The Lytro: A Visual TourLytro: The Next Big Thing In Photography
  2.   ASCII.jp:「ピント合わせは撮影後」で話題のLytroカメラを衝動買い (1/4 ... 写真撮影後にピント合わせができるカメラ「Lytro」でいろいろ撮影してみた ...
  3. 「撮った後で焦点を変えられる」革新的カメラ-Lytroを使ってみた ...

  4. 撮った後で焦点を変えられる革命的カメラLytroの実写レビュー:可能性は巨大だが…ウェブ魚拓キャッシュ

Lytro Light Field Camera - specifications, good and bad


Lytro camera had been a hot topic in the news, and now available in the market (online order). There are three options: Red Hot (16GB) for $499, Graphite (8GB) $399, Electric Blue (8GB) $399.

Specifications:

Lens-8x optical zoom; Constant f/2 lens.
Controls Power button: Shutter button; Zoom slider; Touchscreen
Display-1.52 in | 38.55mm back-lit LCD display with glass touchscreen.
Light Field Resolution:-11 Megarays: the number of light rays captured by the light field sensor.
Dimensions-1.61 in x 1.61 in x 4.41 in | 41 mm x 41 mm x 112 mm
Image Resolution: 1080x1080-pixel; JPEG

Good:
Easy to use/operate
No need to worry about focus, which can be set to any point in the picture with the bundled software.
Easy to use, only tap to take, slide on the top to zoom.
Turns on instantly.
Fast shutter response.
Little delay between taking photos.
Small and light.
Free Web storage and viewing service.

Bad:
Limited resolution.
Not really "portable", hard to fit into pocket.
Grainy and noisy in low light environment.
A little too expansive for a fancy toy/gadget.
Lytro photos can be posted online ONLY(!!!) via the company's site; currently the camera works only with Macs with OS X (too bad to Windows users!!!)
Lytro photos cannot be edited in any way except focus
Large file size; 5 tt 10 times larger when compared to JPG format of typical qualities, with about times more numbers of pixels (12MP)!

References:

Lytro review-You've never seen a camera like this before
Lytro Light Field Camera

MFCでスクロールバーのイベント処理

またMFCでのプログラミングについての話です。古いようで、重宝されている場合も時々あるので、仕方がありません。でも、実に泥臭いことをやらせられますね。苦労もいいところです。

何故かVisual Studioのリソースエディタでは、ダイアログに張り付けたスクロールバー自身に、そのようなイベントがありません。

ちょっと調べたら、親のウインドウにWM_VSCROLLとWM_HSCROLLのイベントがあがるようです。

よって、それぞれのイベントハンドラーで対応の処理を書けばよいです。

さらに面倒なのは、スクロールバーの設定です。全体のサイズと位置ははSetWindowPosを使って設定します。

た とえば、画像表示のインターフェースで、表示している画像は全体の何割を占めているかを示すには、SCROLLINFO 構造体を使って、CScrollBar::SetScrollInfoを通して、設定できます。以下は横スクロールバーを設定するソースコードの例です。
void CMyView::OnInitialUpdate() 
{
   CView::OnInitialUpdate();

   // Set SCROLLINFO for the scroll bar. m_ScrollBar is of type 
   // CScrollBar class, and it is a member variable in CMyView class.
   SCROLLINFO info;
   info.cbSize = sizeof(SCROLLINFO);     
   info.fMask = SIF_ALL;     
   info.nMin = 0;     
   info.nMax = width_of_image; 
   info.nPage = width_of_display_area;     
   info.nPos = 0;    
   info.nTrackPos = 0; 
   m_ScrollBar.SetScrollInfo(&info);
}

「別のプロセスが使用中です」ファイルを消す方法

Windows での話です。あるファイルを削除しようとすると、「別のプロセスが使用中です」というエラーメッセージが表示され、削除できません。この「別のプロセス」であるはずのアプリケーションをとっくに終了したはずなので、あたかもそのアプリがまだ動作して、そのファイルを使っているかのように見えます。

以下の方法で、解決できる場合が多いです。
  1. WindowsのProcess Explorerをダウンロードして、起動します。
  2. メニューから 「Find」 → 「Find Handle or DLL」 を選択します。
  3. 検索ダイアログで、使用中と表示されるファイル名またはフォルダ名を入力して検索をします
問題の原因であるプロセスの一覧が表示されるはずです。

もうひとつは、フリーソフト「Unlocker」を使うことです。これは、インストールが必要になりますが、ロックされている(つまり「別のプロセスが使用中」とされている)ファイルをリストアップしてくれるので、とても分かりやすいです。

MFCのPicture Controlに画像を表示させる

MFCというのは、今でも計算速度や、リソースの使用については、マイクロソフトの他の開発環境よりも優れています。しかし、設計がいまいちなので、プログラマーにとっては、分かりにくい部分も多いです。以下は、MFCのPicture Controlに画像を表示させる例です。ちょっとした小技ではありますが、知らないと、実に戸惑ってしまいます。

CBitmap bmp; // 画像
BOOL bRet;

// 画像をピクチャーコントロールに設定
bRet = bmp.Attach((HBITMAP)::LoadImage(AfxGetInstanceHandle(), "c:\\temp\\t.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE) );

if (bRet == TRUE)
{
  CStatic* pictbox = (CStatic*)GetDlgItem(IDC_STATIC_PICTURE);
  pictbox->SetBitmap(bmp);
}

IDC_STATIC_PICTUREはPicture ControlのIDです。
但し、Picture Controlの「Type」を「ビットマップ」に設定しないと、何にも出で来ないです!実にひどい設計ですね。正確に言うと、分かりにくいです。めちゃくちゃ。

Thursday, April 5, 2012

自分の電子書籍をKindle Storeで無料出版するには

1.まずKindleのKDP(Kindle Direct Publishing)でアカウントを作成
もともとamazon.comでアカウントを持っていれば、そのアカウントをそのまま使えます

2.出版社の情報を記入
amazon.comのアカウントするときに住所、電話番号などの情報を詳しく入れなくてもよかったですが、KDPにおいては、全部入力しなければいけません。
そもそもそれで売上の知らせや送金先などにも使われるので、正しいものを入れないと、自分に不利だけです。

3.コンテンツの作成
iPadやiPhoneの電子書籍なら、iBooks Authorという無料で魅力的なツールがありますが、残念ながらMacでしか動作しません。KDPで電子書籍出版したい場合、複雑なツールは一切要りません。何とマイクるソフト社のWordだけでいいです。
但し、派手な機能はサポートされませんので、doc形式で保存できる、しかも簡単な書式しか使えません。
目次はWordの機能で作成します。やり方は、マイクロソフト社の「Word でテキストを登録して目次を作成する方法」を参照してください。
フォントに関しては、太字、イタリックとヘッディングは使えます。
画像も使えますが、「挿入」メニューで、JPGフォーマットの画像を直接挿入しなければいけません。
他に唯一使えるのはテーブルです。
段付けは、書式の段落設定-インデントを利用します。やり方については、マイクロソフト社の「段落にインデントを設定する」を参照してください。
ページ分けをはっきりしたいときには、必ずページブレークを入れます。

本の基本ないよとしては、Titleページ、Copyrightページ、Dedication、Preface、本体、Prologueなどはあげられます。
最後のページに、Back Matter、つまり、Bibliographies, Appendices, Notes or Glossariesを書きます。

4.Guide Itemsというブックマークを作成
Kindleの電子し書籍には3種類のブックマークがあります。カバーページ、目次と本の初めです。この3か所に飛ぶためのブックマークを作成するには、Wordのブックマーク機能で、それぞれの個所で、nameがそれぞれcover、TOC、Startであるブックマークを挿入すればOKです。

5.Web Page, Filtered (*HTM & *HTML) 形式で保存
これはeBookを作成するために必須のものです。
コンテンツ作成作業はすべて完了してから、別名保存で、適当なところに、Web Page, Filtered (*HTM & *HTML) 形式で保存します。

6.電子書籍をアップロードし、出版!
KDPにログインして、Upload Bookで作成した作品をアップロードします。meta情報を入力し、Save and Publishをクリックしてから、約24時間後、Kindle Storeで見られるようになります。

7.その他注意事項
以上の作業はすべて無料で行えます。ISBN番号だけは、別途に申請しなければいけないし、有料です。
しかし、かといって、なんでも出版できるでもありません。Amazonによる審査があり、以下のものはまず却下されます。
・ポルノ(Pornography )か人に不快感を与える(offensive)性的な表現(Pornography)
・人に不快感を与える表現(offensive Content)
・違法あるいは権利侵害の内容(Illegal and Infringing Content )
・Public Domain and Other Non-Exclusive Content
・貧弱な内容(Poor Customer Experience )

参考情報:
日本Kindleの会:Kindleを愛用する人、Kindleで本を出版したい人、KDKでアプリケーションを開発したい人、その他Kindleに興味を持つ人が集まるSNSです(非公式)(同サイトによる)。「Kindleの便利な使用方法や出版・アプリ開発に関しての情報交換」です。

Wednesday, April 4, 2012

Ciscoコマンド集

(これは、Ping-tの同内容のバックアップです。サイトの変更などによる内容消失を防ぐためのものです。)
コマンド一覧