tag:blogger.com,1999:blog-36644327580009046382024-03-13T07:24:54.668+09:00Bioinformaticsのお勉強医療系の仕事をしています。生命の尊さ、美しさがどのようなメカニズムで生じるのかに興味があります。科学の方法論を用いて、このような問いに応えたい、私はこう思って医学生物学の基礎研究のトレーニングを受けてきました。生命を科学的手法を用いて理解を試みる上で、genomeを始めとした種々の大量データの処理が必要不可欠であることを痛感しました。また、生命科学が物理学、数学、統計学、有機化学などの種々の学問と深い関わりを持つことを実感しました。そのため、このブログは広範囲の学問領域に関しての記事を載せています。日々の学習内容を文書に書き残し、それを読み返すことによって、体系化された知識を身に付けることを目標としています。どうぞよろしくお願いします。kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comBlogger599125tag:blogger.com,1999:blog-3664432758000904638.post-49135022036281344892015-09-28T08:12:00.002+09:002015-09-28T08:12:34.976+09:00Perlのエラーを直すPerlの実行時に、以下のような警告が出て邪魔です。これは、調べたところ、ログインしているMacのbashの環境設定が、Ubuntu内で反映しているのが問題だそうです。<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
perl: warning: Setting locale failed.</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
perl: warning: Please check that your locale settings:</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>LANGUAGE = (unset),</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>LC_ALL = (unset),</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>LC_CTYPE = "UTF-8",</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>LANG = "ja_JP.UTF-8"</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
are supported and installed on your system.</div>
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
perl: warning: Falling back to a fallback locale ("ja_JP.UTF-8").</div>
<br />
そこで、Ubuntuの~/.bashrcの末尾に<br />
<br />
export LC_ALL=en_US.UTF-8<br />
<br />
を追加するとうまくいきます。kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-89534049748298329182015-09-27T10:02:00.002+09:002015-09-27T10:02:24.386+09:00OSのイメージを仮想アプライアンスとして出力他のパソコンのVirtualboxへ現在のパソコンのVIrtualbox内のUbuntuを移植したい場合、仮想アプライアンスとして出力がおすすめです。OVAファイルが生成されますので、それをインポートすればよいです。kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-14930079122450863512015-09-27T09:49:00.005+09:002015-09-27T09:49:51.609+09:00VirtualboxのスナップショットVirtualboxはその瞬間の設定すべての差分を記録することができます。それがスナップショットというシステムです。OSを選択するウィンドウで、Spanpshotを選択すれば、スナップショットを作成できます。<br />
重大な設定変更を行う前にはスナップショットを作成することをお勧めします。kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-12150279346911455062015-09-27T09:31:00.002+09:002015-09-27T09:31:37.449+09:00Ubuntu15.04へBioperlをインストールBioperlはプラットフォームごとに様々なインストール方法が存在する。<div>
一番、conservativeな方法はソースコードからのビルドだが、ハマるポイントも多い。</div>
<div>
UbuntuはAPTでパッケージとしてインストールが可能なため、それに頼るとする。</div>
<div>
<br /></div>
<div>
$ sudo apt-get install bioperl<br /><br />
こちら(<a href="http://www.bioperl.org/wiki/Getting_Started">http://www.bioperl.org/wiki/Getting_Started</a>)を参考にして、テストを行う。<br />
以下のファイルをtest.plとでも作っておく。<br />
<br />
use Bio::Seq;<br />
use Bio::SeqIO;<br />
<br />
# create a sequence object of some DNA<br />
my $seq = Bio::Seq->new(-id => 'testseq', -seq => 'CATGTAGATAG');<br />
<br />
# print out some details about it<br />
print "seq is ", $seq->length, " bases long\n";<br />
print "revcom seq is ", $seq->revcom->seq, "\n";<br />
<br />
# write it to a file in Fasta format<br />
my $out = Bio::SeqIO->new(-file => '>testseq.fsa', -format => 'Fasta');<br />
$out->write_seq($seq);<br />
<br />
<br />
その後、<br />
<br />
$ perl test.pl<br />
$ ls <br />
test.pl testseq.fsa<br />
$ less testseq.fsa<br />
>testseq<br />
CATGTAGATAG<br />
<br />
問題なく動いているようである。</div>
kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-60431478304091218242015-09-27T09:09:00.002+09:002015-09-27T09:09:40.354+09:00Virtualbox内のUbuntuにNATのポートフォワーディングによりSSH接続する# sshサーバーをインストール<br />
$ sudo apt-get install ssh<br />
<br />
<br />
Ubuntuを選択して、Setting内のNetwork内のAdapter1を選択。初期設定はNATとなっているはず。Advanceを選択すると、ポートフォワーディングができる。私は以下のようにした。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-esNEx8It5os/Vgcw_y46xEI/AAAAAAAAdwU/jyIY-J8yC0s/s1600/Screen%2BShot%2B2015-09-26%2Bat%2B19.55.50.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="514" src="http://3.bp.blogspot.com/-esNEx8It5os/Vgcw_y46xEI/AAAAAAAAdwU/jyIY-J8yC0s/s640/Screen%2BShot%2B2015-09-26%2Bat%2B19.55.50.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
ホストのMacより以下のようにコマンドをうって、Virtualbox内のUbuntuへログインできる。</div>
<div class="separator" style="clear: both; text-align: left;">
$ ssh -P 2222 kappa@localhost</div>
<br />kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-25763739481820038962015-09-27T08:53:00.000+09:002015-09-27T08:53:03.815+09:00Ubuntu15.04をインストールしてからすぐに行うこと#自分のユーザー所有のフォルダ名を英語に変更<br />
$ LANG=C xdg-user-dirs-gtk-update<br />
$ sudo reboot<br />
<br />
<br />
#以下のコマンド3つてCUI起動になります。grubの設定ファイルを書き換えていたかつてとは異なる部分ですので注意が必要です<br />
$ systemctl get-default<br />
$ sudo systemctl set-default multi-user.target<br />
$ sudo reboot<br />
<br />
今後、都合が悪くなれば設定を追加します。kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-19322346898567920822015-09-27T08:17:00.004+09:002015-09-27T09:15:24.667+09:00OS X Yosemite上のVirtualbox5.0.4にUbuntu15.04をインストールBioperlを一通り勉強しようと思い至ったため、表題の通りOS X Yosemite上のVirtualbox5.0.4にUbuntu15.04をインストールしました。<br />
<br />
<br />kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-49273986302099307672015-05-22T00:12:00.001+09:002015-05-22T00:12:53.070+09:00Macで外部モニターに接続yosemiteの条件でお話します。<br />
<br />
<br />
設定から、ディスプレイの設定まで行って、以下のウィンドウにたどり着きます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-mqSk-50a_AE/VV31fiv5J8I/AAAAAAAASvw/mTwH1ituFbk/s1600/Screen%2BShot%2B2015-05-22%2Bat%2B0.10.27.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="442" src="http://2.bp.blogspot.com/-mqSk-50a_AE/VV31fiv5J8I/AAAAAAAASvw/mTwH1ituFbk/s640/Screen%2BShot%2B2015-05-22%2Bat%2B0.10.27.png" width="640" /></a></div>
<div>
ここからが重要。</div>
<div>
<b>altキー</b>を押します。</div>
<div>
すると、Detect displayという表示が、ウィンドウの右下に表示されます。それをクリックすれば、外部接続をうまく認識します。</div>
<div>
<br /></div>
<div>
altキーを使うの何とかならないかなあ。すぐ忘れていまいます。</div>
<div>
<br /></div>
<div>
<br /></div>
kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-42912845261932350832015-04-26T09:25:00.002+09:002015-05-22T00:09:38.693+09:00Evernoteのローカルデータの場所以下のディレクトリ以下にローカルに保存されているアカウントごとのデータが存在します。<br />
/Users/(ユーザの名前)/Library/Containers/com.evernote.Evernote/Data/Library/Application Support/com.evernote.Evernote/accounts<br />
<br />
<br />
以下のディレクトリ以下をバックアップを取っておくとよいでしょう。<br />
<div>
/Users/(ユーザの名前)/Library/Containers/com.evernote.Evernote/Data/Library/Application Support/<br />
と</div>
/Users/(ユーザの名前)/Library/Containers/com.evernote.Evernotekappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-66017832921332119172015-03-01T22:55:00.002+09:002015-03-01T22:55:21.488+09:00Macで外部モニターが認識されない際の対処法プレゼンなどで外部モニターにつないだが、反応が無いときの対処法です。<br />
<br />
「System preferences」の「Displays」を選択します。<br />
<br />
次にOptionキーを押すと、ウィンドウの右下に「Detect Dislpays」という隠しアイコン(?)が出現しますので、それをクリックします。<br />
<br />
非常にわかりにくい仕様だと思いました。<br />
<br />
このトラブルシューティングを知っていると、学会などの大舞台でヘマをこかなくて済みますね。<br />
<br />kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-81854302986566595212015-02-26T08:54:00.000+09:002015-02-26T08:54:00.414+09:00OS X 10.10 Yosemiteでウィンドウを大きくするOS X 10.10 Yosemiteでウィンドウを大きくするには、<br />
<br />
ウィンドウの左上の緑のボタンをoptionキーを押しながらクリックします。10.9からのアップデート項目です。kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-47189799950032743822015-02-13T19:32:00.001+09:002015-02-13T19:32:16.521+09:00Humanのスライスが見れるサイトCTやMRIなどの断層撮影像を正確に理解するには、Humanのスライスを勉強する必要があります。ここでは、そのようなスライスが掲載されているサイトを紹介します。<br />
<div>
<br /></div>
<div>
(1)BrainMaps.org<br />
脳の解剖のデータベースと思いきや、体幹の解剖も登録されていました。</div>
<div>
<a href="http://brain-maps.org/ajax-viewer.php?datid=54&sname=1725">http://brain-maps.org/ajax-viewer.php?datid=54&sname=1725</a></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-bUP88BmIHIg/VN3Qz3zX5RI/AAAAAAAAC-w/8blxoNj1Lzg/s1600/Screen%2BShot%2B2015-02-13%2Bat%2B19.22.33.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-bUP88BmIHIg/VN3Qz3zX5RI/AAAAAAAAC-w/8blxoNj1Lzg/s1600/Screen%2BShot%2B2015-02-13%2Bat%2B19.22.33.png" height="361" width="640" /></a></div>
<div>
<br />
(2)The Internet Pathology Laboratory for Medical EducationWebPath(通称WenPath)<br />
<a href="http://library.med.utah.edu/WebPath/HISTHTML/ANATOMY/ANATOMY.html">http://library.med.utah.edu/WebPath/HISTHTML/ANATOMY/ANATOMY.html</a><br />
(1)に比べると、画質が粗いですが、全身が見れるのでオススメです。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-em7hQ95jQ_s/VN3SSlIgzlI/AAAAAAAAC-8/2e10jd8wCGo/s1600/Screen%2BShot%2B2015-02-13%2Bat%2B19.30.11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-em7hQ95jQ_s/VN3SSlIgzlI/AAAAAAAAC-8/2e10jd8wCGo/s1600/Screen%2BShot%2B2015-02-13%2Bat%2B19.30.11.png" height="640" width="592" /></a></div>
<br /></div>
kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-71184160100525646502015-02-08T14:22:00.001+09:002015-02-08T14:22:07.159+09:00系統的に組織学が学べるサイトミシガン大学のサイトは、系統的に組織学が学べるのでおすすめです。バーチャルスライドへのリンクも多数あります。<br />
<a href="http://histology.med.umich.edu/schedule/medical">http://histology.med.umich.edu/schedule/medical</a>kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-46076618496679719322015-02-08T13:33:00.004+09:002015-02-08T13:33:54.203+09:00医用画像の読影ソフト - Osilix今回は、医用画像の読影ソフトであるOsilixをご紹介します。<br />
<a href="http://www.osirix-viewer.com/index.html">http://www.osirix-viewer.com/index.html</a><br />
<br />
<br />
OsilixはCTやMRIなどの医用画像データの標準フォーマットであるDICOMファイルを扱うことのできるビュアです。32bitと64bitの二つのタイプが提供されており、前者はGPLで提供されていますので、いますぐ無料で使う事ができます。<br />
<br />
また、上記ホームページには、DICOMファイルのサンプルが多数置いてあるので、それをダウンロードして閲覧している大変勉強になります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-A3uT1pxCvlc/VNbmKU2DKqI/AAAAAAAAC9Q/X7FKIvMGTRo/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B13.27.59.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-A3uT1pxCvlc/VNbmKU2DKqI/AAAAAAAAC9Q/X7FKIvMGTRo/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B13.27.59.png" height="400" width="640" /></a></div>
<br />kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-28011081372723098432015-02-08T13:22:00.001+09:002015-02-10T17:11:55.932+09:00発生生物学のバーチャルスライド発生生物学のバーチャルスライドの掲載しているページを二つご紹介します。<br />
<div>
<br /></div>
<div>
#1. The virtual human embryo(<a href="http://www.ehd.org/virtual-human-embryo/">http://www.ehd.org/virtual-human-embryo/</a>)<br />
ヒトの胎児の各発生段階のバーチャルスライドを見る事ができます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-TD1sjnNURUw/VNbjo1ELmwI/AAAAAAAAC88/AWZw_QB6BQc/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B13.17.48.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-TD1sjnNURUw/VNbjo1ELmwI/AAAAAAAAC88/AWZw_QB6BQc/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B13.17.48.png" height="542" width="640" /></a></div>
<br />
<br />
<br />
#2. UNSW Embryology - Embryo virtual slides(<a href="https://embryology.med.unsw.edu.au/embryology/index.php/Embryo_Virtual_Slides#Stage_20">https://embryology.med.unsw.edu.au/embryology/index.php/Embryo_Virtual_Slides#Stage_20</a>)<br />
stage22のヒトの胎児の発色のよいHE染色標本を見る事ができます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-Mol55KxGgSc/VNbkZ-o7N8I/AAAAAAAAC9E/lfNPkmAUsaQ/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B13.21.39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-Mol55KxGgSc/VNbkZ-o7N8I/AAAAAAAAC9E/lfNPkmAUsaQ/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B13.21.39.png" height="496" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
#3. BrainMaps.org - Nissl, Rattus(<a href="http://brain-maps.org/index.php?action=viewslides&datid=89">http://brain-maps.org/index.php?action=viewslides&datid=89</a>)</div>
<div class="separator" style="clear: both; text-align: left;">
BrainMapsのサイトにちゃっかり、ラット胎児ののNissl染色標本のバーチャルスライドが掲載されていました。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-p7d1mEkto7M/VNcD9xNtZPI/AAAAAAAAC94/PJJNV0NE8Pw/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B15.35.46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-p7d1mEkto7M/VNcD9xNtZPI/AAAAAAAAC94/PJJNV0NE8Pw/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B15.35.46.png" height="348" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />
<br />
<br />
#4. Zebrafish atral at the Jake Gittlen Cancer Research Foundation(<a href="http://zfatlas.psu.edu/search.php">http://zfatlas.psu.edu/search.php</a>)<br />
Zebrafishだけでなくて、マウスのembryoも掲載されていました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-k7j13FA_sYI/VNm8y-mwuSI/AAAAAAAAC-c/LY7qhxC9XQI/s1600/Screen%2BShot%2B2015-02-10%2Bat%2B17.08.39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-k7j13FA_sYI/VNm8y-mwuSI/AAAAAAAAC-c/LY7qhxC9XQI/s1600/Screen%2BShot%2B2015-02-10%2Bat%2B17.08.39.png" height="306" width="640" /></a></div>
<br /></div>
kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-67691704899144613512015-02-08T12:14:00.002+09:002015-02-11T08:56:57.919+09:00脳解剖のデータベース<div>
<br /></div>
<div>
Whole Slide Imaging Repository</div>
<div>
<a href="https://digitalpathologyassociation.org/whole-slide-imaging-repository">https://digitalpathologyassociation.org/whole-slide-imaging-repository</a></div>
<div>
に、組織学のデータベースが紹介されていたので、勉強してみました。</div>
<div>
<br />
#1. BrainMaps<br />
<br /></div>
<div>
このなかでも、 BrainMaps(<a href="http://brain-maps.org/">http://brain-maps.org</a>)がすこぶる勉強になりました。</div>
<div>
ヒトを含む様々な動物の脳の様々なスライドを見ることができます。レスポンスも早く快適です。中枢系の研究者に有用です。</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-g2cRe3Zg7qk/VNbR93OB72I/AAAAAAAAC8s/j_FcwJStUXU/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B12.02.46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-g2cRe3Zg7qk/VNbR93OB72I/AAAAAAAAC8s/j_FcwJStUXU/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B12.02.46.png" height="342" width="640" /></a></div>
<div>
<br /></div>
<div>
<br />
#2.Michigan state university brain biodiversity bank - The Human Brain Atlas (<a href="https://www.msu.edu/~brains/brains/human/index.html">https://www.msu.edu/~brains/brains/human/index.html</a>)<br />
<br />
Sagital, Coronal, Horizontal(axial)のすべてのスライスについてバーチャルスライドをみることができます。<br />
他の動物のものも見る事ができる。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-lO-9fu0v634/VNb80dY8AWI/AAAAAAAAC9g/OfDEEJlWr80/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B15.05.39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-lO-9fu0v634/VNb80dY8AWI/AAAAAAAAC9g/OfDEEJlWr80/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B15.05.39.png" height="462" width="640" /></a></div>
<br />
<br /></div>
<div>
<br />
#3. The human brain.info(<a href="http://www.thehumanbrain.info//index.php">http://www.thehumanbrain.info//index.php</a>)<br />
このサイトのコンセプトも上の二つと同じ。ただし、詳細なアノテーションが付けられていることと、固定標本がみれる点が良い。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-nzIqyCruXoE/VNcAQMvx3GI/AAAAAAAAC9s/4i9mA6--4m4/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B15.07.36.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-nzIqyCruXoE/VNcAQMvx3GI/AAAAAAAAC9s/4i9mA6--4m4/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B15.07.36.png" height="396" width="640" /></a></div>
<br />
#4. Zoomable Human Brain Atlas(<a href="http://zoomablebrain.bio.uci.edu/">http://zoomablebrain.bio.uci.edu</a>)<br />
このサイトがもっともわかりやすいです。Fiber stainとNissl stainの両方があります、Coronal, horizontal, sagitalの3セクションも載っています。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-a7r8QR6E5to/VNcER66z96I/AAAAAAAAC-A/fgnGffiQdg4/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B15.37.36.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-a7r8QR6E5to/VNcER66z96I/AAAAAAAAC-A/fgnGffiQdg4/s1600/Screen%2BShot%2B2015-02-08%2Bat%2B15.37.36.png" height="564" width="640" /></a></div>
<br />
<br />
<br /></div>
kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-54221873770192730802014-12-29T17:35:00.001+09:002014-12-29T17:35:12.222+09:00KeyRemap4MacBookはKarabinerに名前変更KeyRemap4MacBookはKarabinerと名前を変えました。<br />
<br />
<a href="https://pqrs.org/osx/karabiner/">https://pqrs.org/osx/karabiner/</a><br />
<br />
英語のキーボードで日本語入力するときや、かなキーをcommandキーとして併用したいときの必需品です。kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-82387776243996663002014-12-29T17:24:00.005+09:002014-12-29T17:24:42.005+09:00Macのハードディスクのお掃除Macを長く使っていくと、ディレクトリのいろいろなところに不要なファイルがたまり込んでいきます(Windowsも同じかもしれませんが)。<br />
<br />
DiskWave<br />
<a href="http://diskwave.barthe.ph/">http://diskwave.barthe.ph</a><br />
<br />
というアプリを使うと、GUIベースで簡単に、どのディレクトリが容量を消費しているのかが可視化できます。kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-40149804085479582742014-10-11T14:24:00.000+09:002014-10-11T14:27:16.359+09:00Debian7.0.0で音が出ないとき# alsactl init<br />
<div>
<br /></div>
<div>
でマイクから音ができるようになった。<br />
<br />
自動起動されるように<br />
# vi /etc/rc.local<br />
で<br />
alsactl init<br />
を一行追記しておいた。</div>
kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-9393334957033295312014-07-26T18:33:00.000+09:002014-07-26T21:41:13.310+09:00Day24 Raspberry Piカメラモジュールでタイムラプス撮影<div class="separator" style="clear: both; text-align: left;">
今回はRaspberry Piカメラモジュールでタイムラプス撮影を行います。ハードウェアの構成は最後の写真参照。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
本稿は以下のサイトを参考にしています。</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://ohmylab.net/blog/20140323-rspberry-pi-time-lapse-cam/">http://ohmylab.net/blog/20140323-rspberry-pi-time-lapse-cam/</a></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://www.youtube.com/watch?v=SfWdCbrLmCE">https://www.youtube.com/watch?v=SfWdCbrLmCE</a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
###タイムラプス撮影###</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
まずは、Raspberry piにログインします。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
#Macからログイン(-P以降はSSH用に設定したポート番号。192.168.11.7は家庭内のLanで固定したpiの無線LANのポート番号)</div>
<div class="separator" style="clear: both; text-align: left;">
<b>ssh pi@192.168.11.7 -p XXXXX</b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
#タイムラプス撮影(大量のjpgファイルが生成される)</div>
<div class="separator" style="clear: both; text-align: left;">
<b>mkdir /home/pi/Pictures</b></div>
<div class="separator" style="clear: both; text-align: left;">
<b>raspistill -o /home/pi/Pictures/image-%04d.jpg -tl 6000 -t 600000 -w 1920 -h 1080</b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
#ログアウト</div>
<div class="separator" style="clear: both; text-align: left;">
<b>exit</b></div>
<div class="separator" style="clear: both; text-align: left;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: left;">
#Macの任意のディレクトリにすべてのファイルをダウンロード</div>
<div class="separator" style="clear: both; text-align: left;">
<b>scp -P XXXXX pi@192.168.11.7:/home/pi/test ~/Pictures</b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
####生成したファイルから動画を作る。mencoderを使用。####</div>
<div class="separator" style="clear: both; text-align: left;">
#mencoderのインストール</div>
<div class="separator" style="clear: both; text-align: left;">
<b>sudo apt-get -y install mencoder</b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
#mencoderに与えるファイルリストを生成</div>
<div class="separator" style="clear: both; text-align: left;">
<b>ls *.jpg > stills.txt</b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
#タイムラプス画像のファイル群から動画を生成</div>
<div class="separator" style="clear: both; text-align: left;">
<b>mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=1920:1080 -o tlcam.avi -mf type=jpeg:fps=24 mf://@stills.txt</b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
#動画のダウンロード</div>
<div class="separator" style="clear: both;">
<b>scp -P XXXXX pi@192.168.11.7:/home/pi/tlcam.avi ~/Pictures</b></div>
<div>
<b><br /></b></div>
<div>
#VLCで動画再生</div>
<div>
<b>open -a "VLC" tlcam.avi</b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
###raspistillの文法解説####</div>
<div class="separator" style="clear: both;">
<b>raspistill -o /home/pi/Pictures/image-%04d.jpg -tl 6000 -t 600000 -w 1920 -h 1080</b></div>
<div>
とは</div>
<div>
<br /></div>
<div>
<b>-o /home/pi/Pictures/image-%04d.jpg</b></div>
<div>
連番のファイルを生成</div>
<div>
<b><br /></b></div>
<div>
<b> -tl 6000</b></div>
<div>
6000ミリ秒(6sec)のタイムラプスで</div>
<div>
</div>
<div>
<b>-t 600000</b></div>
<div>
600000ミリ秒(600sec = 10min)の間 </div>
<div>
<b><br /></b></div>
<div>
<b>-w 1920</b></div>
<div>
横が1920pixel</div>
<div>
<b><br /></b></div>
<div>
<b> -h 1080</b></div>
<div>
縦が1080pixel</div>
<div>
<b><br /></b></div>
<div>
<b>という指定をしている。</b></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-OVUZOLyGYkg/U9NqL1eSggI/AAAAAAAACkg/nhasq-p9PAs/s1600/IMG_1532.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-OVUZOLyGYkg/U9NqL1eSggI/AAAAAAAACkg/nhasq-p9PAs/s1600/IMG_1532.jpg" height="240" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-ppe8fq_Y3p8/U9NqLzFRp2I/AAAAAAAACkc/40s2UV2rNDM/s1600/IMG_1534.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-ppe8fq_Y3p8/U9NqLzFRp2I/AAAAAAAACkc/40s2UV2rNDM/s1600/IMG_1534.jpg" height="320" width="240" /></a></div>
<br />kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-84599120021969517602014-04-06T22:38:00.001+09:002014-04-06T22:38:08.258+09:00Day24 Raspberry Pi専用カメラモジュールを使う<a href="http://jp.rs-online.com/web/p/video-modules/7757731/">Raspberry Pi専用カメラモジュール</a>を使って写真撮影を試みた。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-F6R3ygimX0w/U0FYfyxA70I/AAAAAAAACgs/C_xQx2NGIoA/s1600/IMG_0834.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-F6R3ygimX0w/U0FYfyxA70I/AAAAAAAACgs/C_xQx2NGIoA/s1600/IMG_0834.jpg" /></a></div>
<br />
#Raspberry Piのカメラを有効化する<br />
<b>sudo raspi-config</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-brLFsGo0NF8/U0FJNADZ3oI/AAAAAAAACgM/3GhpGud5PkU/s1600/Screen+Shot+2014-04-06+at+21.31.08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-brLFsGo0NF8/U0FJNADZ3oI/AAAAAAAACgM/3GhpGud5PkU/s1600/Screen+Shot+2014-04-06+at+21.31.08.png" height="262" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-8SOQDwZBopU/U0FJNN5fmbI/AAAAAAAACgQ/rAsZPb36vsA/s1600/Screen+Shot+2014-04-06+at+21.31.22.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-8SOQDwZBopU/U0FJNN5fmbI/AAAAAAAACgQ/rAsZPb36vsA/s1600/Screen+Shot+2014-04-06+at+21.31.22.png" height="262" width="400" /></a></div>
設定が終わると再起動される。<br />
<br />
静止画の撮影にはデフォルトでインストールされているraspistillコマンドを使用する。<br />
<br />
#撮影<br />
<b>raspistill -o image.jpg</b><br />
<b><br /></b>CUIで画像を表示させるには、<br />
fbiかimg2txtというアプリケーションを使用すれば良いが、ssh接続ではどちらもうまく行かない。手元にダウンロードしてしまうのがよいだろう。<br />
<br />
#ログアウト<br />
<b>exit</b><br />
<br />
#ダウンロード<br />
<b>scp -P xxxxx pi@192.168.11.7:/home/pi/image.jpg ./image.jpg</b><br />
<br />
#画像表示<br />
<b>open image.jpg</b><br />
<b><br /></b>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-acgmlM-yiBA/U0FYDnueCaI/AAAAAAAACgk/1vLuvftwsvY/s1600/image.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-acgmlM-yiBA/U0FYDnueCaI/AAAAAAAACgk/1vLuvftwsvY/s1600/image.jpg" height="240" width="320" /></a></div>
<b><br /></b>
ピントを合わせるのに一苦労だった。どうやってこのカメラモジュールを使いこなすかは、今後の課題だ。<br />
<br />
林和孝『Raspberry Piで遊ぼう』ラトルズ 2014kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-33677859237112988292014-03-31T18:12:00.004+09:002014-03-31T18:12:47.008+09:00OSとはハードウェアの抽象化を行うプログラムのことであるOSの本質を考える上で、抽象化という概念をイメージすると理解しやすいように思う。<br />
<br />
抽象化とは、内部のことをとやかく言わないで、外界とのインターフェースを通じて対称とやりとりをする仕組みをつくることと言える。<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-2NlL4ubzQsc/UzksreetBQI/AAAAAAAACfU/7vFCnv-h4Ow/s1600/%E6%8A%BD%E8%B1%A1%E5%8C%96.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-2NlL4ubzQsc/UzksreetBQI/AAAAAAAACfU/7vFCnv-h4Ow/s1600/%E6%8A%BD%E8%B1%A1%E5%8C%96.png" height="227" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
数学の関数もこれとまったく同じ構造といえる。<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-5hcSZkw-ed4/Uzkr48LvHXI/AAAAAAAACfI/p2M8JXaGt0Q/s1600/%E3%81%A3%E3%81%A1%E3%82%85%E3%81%86%E6%98%87%E8%8F%AF%EF%BC%92.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-5hcSZkw-ed4/Uzkr48LvHXI/AAAAAAAACfI/p2M8JXaGt0Q/s1600/%E3%81%A3%E3%81%A1%E3%82%85%E3%81%86%E6%98%87%E8%8F%AF%EF%BC%92.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
この数式は、xに具体的な値を入力すると、関数が実装している具体的な手続きにもとづいて(この手続きは遮蔽されていてもよい)、yが出力されてくるということを意味している。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-LrfudWZapSA/Uzkswb8PjVI/AAAAAAAACfc/aGocEfra3Zo/s1600/%E5%90%8D%E7%A7%B0%E6%9C%AA%E8%A8%AD%E5%AE%9A.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-LrfudWZapSA/Uzkswb8PjVI/AAAAAAAACfc/aGocEfra3Zo/s1600/%E5%90%8D%E7%A7%B0%E6%9C%AA%E8%A8%AD%E5%AE%9A.png" height="227" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
コンピュータシステムにおいても、抽象化の概念は大変重要だ。</div>
<div class="separator" style="clear: both; text-align: left;">
Operating Systemはハードディスクなどのハードウェアとアプリケーションソフトウェアとの間に入って、ハードウェアを仮想化している。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-Yi2ER7xqghk/UzktiejtohI/AAAAAAAACfk/GDBF4_tJyO0/s1600/%E5%90%8D%E7%A7%B0%E6%9C%AA%E8%A8%AD%E5%AE%9A2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-Yi2ER7xqghk/UzktiejtohI/AAAAAAAACfk/GDBF4_tJyO0/s1600/%E5%90%8D%E7%A7%B0%E6%9C%AA%E8%A8%AD%E5%AE%9A2.png" height="262" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
このようにOSがハードウェアを抽象化することのメリットは、ハードウェアに対しての具体的な操作をOSが一手に引き受けることで、アプリケーションは共通のシステム・コールという入力を使用すればよくなるからである。OSが無い場合のことを考える。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-KQ1BPRuDigQ/UzkuOBUABCI/AAAAAAAACfw/PG4uFrpApIE/s1600/%E5%90%8D%E7%A7%B0%E6%9C%AA%E8%A8%AD%E5%AE%9A3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-KQ1BPRuDigQ/UzkuOBUABCI/AAAAAAAACfw/PG4uFrpApIE/s1600/%E5%90%8D%E7%A7%B0%E6%9C%AA%E8%A8%AD%E5%AE%9A3.png" height="320" width="288" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
OSが無い場合、アプリケーションがハードウェアを利用する場合、ハードウェアを使用するための方法を具体的に実装する必要が出てくる。先ほどのようにハードウェアとの間にOSが存在し、共通の規格であるシステム・コールを発行しさせえすればよかったのとは大違いである。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
この話を発展させると、「インターフェースがあるところには抽象化がある」と言えるのではないだろうか。なにもOSだけの話ではない。流通システムを例にとると、お店(小売業者)にとって、流通システムとは生産者との間のインターフェースであり、各地に点在する生産者からダイレクトに買い付けるよりも問屋に注文した方が、細かい連絡や事務手続きが省けて、かつ大量注文が可能である。しかし、そのかわり流通システムを介すると、そこでお金が発生する。それは当然の事である。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-HGjss3IbjI4/UzkxRWNkoWI/AAAAAAAACf8/6ZTA2MIno8s/s1600/%E5%90%8D%E7%A7%B0%E6%9C%AA%E8%A8%AD%E5%AE%9A4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-HGjss3IbjI4/UzkxRWNkoWI/AAAAAAAACf8/6ZTA2MIno8s/s1600/%E5%90%8D%E7%A7%B0%E6%9C%AA%E8%A8%AD%E5%AE%9A4.png" height="227" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
OSも流通業者と考えれば、コストが発生するのは当たり前である。この場合のコストとは、お金ではなく、CPUへの負荷である。OSが細かいハードウェアの制御を一手に引き受けてくれるので、OS自体がCPUに負荷をかけることは避けられないのである。エアコンなどの家電製品に組み込まれるプログラムは、組み込みプログラムといってOSを利用せず、直接ハードウェアを制御していることが多い。この利点は、OSを動かすコストを回避できる点にある。OSを使用するかしないかは利用できる資源によってケースバイケースと言える。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
以上をまとめると、OSはハードウェアとアプリケーションの位置して、ハードウェアを抽象化する。そして、アプリケーションに共通の規格であるシステムを提供する事で、アプリケーションがハードウェアを容易に制御できるようにするプログラムのことをいうのである。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
(注)図中の矢印は一方行であったが、逆方向のやり取りがあってもかまわない。</div>
kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-44349811638612569332014-03-31T17:38:00.001+09:002014-03-31T17:38:42.167+09:00Day23 ルータのポート解放を行い、サーバーを外部に公開(びびりなのですぐにポートを閉じたが。。)WAN側から特定のポートでアクセスがあったとき、LAN側の特定のIPアドレスにつなぐようにルータの設定をすることができる。<br />
私のbuffalo airstationでは以下の通りである。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-fWeai_4h1DI/UzkpMa6bevI/AAAAAAAACe0/9U5mi7gZJjo/s1600/wanlan4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-fWeai_4h1DI/UzkpMa6bevI/AAAAAAAACe0/9U5mi7gZJjo/s1600/wanlan4.png" height="476" width="640" /></a></div>
<br />
<br />
<br />
普段、raspberry piをインターネットに接続させず、家の中のLANだけで遊んでいるときは以下の様な環境になっている。ルーターも含めて、LAN内のすべてのデバイスにはプライベートIPアドレス(192.168.11で始まる番号)が割り当てられている。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-mP0bWU3RLbQ/Uzkipx4pC3I/AAAAAAAACeU/OF5y5J4TY5g/s1600/wanlan1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-mP0bWU3RLbQ/Uzkipx4pC3I/AAAAAAAACeU/OF5y5J4TY5g/s1600/wanlan1.png" height="306" width="640" /></a></div>
<br />
<br />
WANとLANの関係を考慮すると以下のようになる。ルーターがプライベートとグローバルのIPアドレスを同時に持っていて、LANとWANの仲立ちをしていることに注意。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-UnAvn-pztjQ/Uzkm1l9hKRI/AAAAAAAACeo/KMOT7wLoHqA/s1600/wanlan2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-UnAvn-pztjQ/Uzkm1l9hKRI/AAAAAAAACeo/KMOT7wLoHqA/s1600/wanlan2.png" height="640" width="568" /></a></div>
<br />
<br />
<br />
ssh用にポートを解放してssh接続したときのイメージ図。手元にあるiphoneなどのスマートフォンで4G回線などの外部回線で外から、raspberry piにアクセスする時のイメージ。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-fyziPnC7GCU/UzkmxAzyIDI/AAAAAAAACeg/fJrF72uvvDM/s1600/wanlan3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-fyziPnC7GCU/UzkmxAzyIDI/AAAAAAAACeg/fJrF72uvvDM/s1600/wanlan3.png" height="556" width="640" /></a></div>
<br />
ルーターはポート番号ごとにアクセスの制限をかけていることを認識する事が一番大事である。<br />
<br />
<br />
【参考文献】<br />
画像は以下のサイトから頂いた。<br />
<a href="http://www.civillink.net/sozai/index.html">素材のデータベース</a><br />
<a href="http://www.digipot.net/?p=774">Digipot</a><br />
<br />
<br />
<br />kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-18592928450574739132014-03-31T09:29:00.003+09:002014-03-31T09:42:31.486+09:00Day22 SSHの公開鍵認証設定の続きDay21では、鍵の作成をMacでおこなってハマってしまった。そこで見方を変えて、Raspberry Piで鍵を作成して、秘密鍵をMacに渡すという方針を取った。<br />
<br />
#piにて<br />
#鍵作成<br />
<b>ssh-keygen -t rsa</b><br />
<b><br /></b>
これで、~/.ssh/以下に、公開鍵(id_rsa.pub)と秘密鍵(id_rsa)が追加される。<br />
#まずは、公開鍵の内容を~/.ssh/authorized_keysに追記<br />
<b>cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys</b><br />
<b><br /></b>
#追記が終われば公開鍵は消去してよい<br />
<b>rm ~/.ssh/id_rsa.pub</b><br />
<br />
#次に、~/.sshのディレクトリに対するアクセス権を700、~/.ssh/authorized_keysのアクセス権を600に変更する。これにより、他のユーザからはこれらのディレクトリやファイルを閲覧できなくなる。<br />
<b>chmod 700 ~/.ssh</b><br />
<b>chmod 600 ~/.ssh/authorized_keys</b><br />
<br />
最後にMacの~/.ssh/に秘密鍵'(~/.ssh/id_rsa)を移動する。<br />
<u>ログアウトしてMacに戻ってから、</u><br />
<b><br /></b>
#-Pのpを大文字にしないとハマる<br />
<br />
<div class="p1">
#Macのホームディレクトリ(~)にサーバー(pi)の~/.ssh/をダウンロード</div>
<div class="p1">
<b>scp -P hogenumber pi@192.168.11.7:~/.ssh/authorized_keys ~/</b></div>
<div class="p1">
<b><br /></b></div>
<div class="p1">
<b><br /></b></div>
<div class="p1">
<b><br /></b></div>
<div class="p1">
あとは、piにログインして、鍵の後始末と、パスワードによるログインを禁止するだけ。</div>
<div class="p1">
#再度piにログイン</div>
<div class="p1">
<b>ssh -p hogenumber pi@192.168.11.7</b></div>
<div class="p1">
<b><br /></b></div>
#追記が終われば秘密鍵も消去してよい<br />
<b>rm ~/.ssh/id_rsa</b><br />
<div class="p1">
<b><br /></b></div>
<div class="p1">
#パスワードによるログインを禁止する</div>
<div class="p1">
<b>sudo vim /etc/ssh/sshd_config</b></div>
<div class="p1">
<b><br /></b></div>
<div class="p1">
52 PasswordAuthentication yes</div>
<div class="p1">
を</div>
<div class="p1">
52 PasswordAuthentication no</div>
<div class="p1">
に変更</div>
<div class="p1">
<br /></div>
<div class="p1">
#sshサーバを再起動</div>
<div class="p1">
<b>sudo /etc/init.d_ssh restart</b></div>
<div class="p1">
<b><br /></b></div>
<div class="p1">
<b><br /></b></div>
<div class="p1">
あとは接続のテストだけ。</div>
<div class="p1">
勿体ぶるようだが、確実に鍵の効果を検証するため、一度~/.ssh/id_rsaをホームディレクトリに入れておいて、エラーになるかを見てみる。デフォルトで~/.sshの鍵を探すようになっているので、この方法をとった。</div>
<div class="p1">
</div>
<div class="p1">
<b><br /></b>
あらかじめ、鍵のアクセス権は600に変更しておく<br />
<b>sudo chmod 600 ~/id_rsa</b><br />
<b><br /></b>
#id_rsaを指定せずにログインを試みる</div>
<div class="p1">
<b>ssh -p hogenumber pi@192.168.11.7</b></div>
<div class="p1">
Permission denied (publickey).</div>
<div class="p1">
<br /></div>
<div class="p1">
それでは、鍵を指定しみる。</div>
<div class="p1">
<b>ssh -p hogenumber -i ~/id_rsa pi@192.168.11.7</b></div>
<div>
<br /></div>
<div>
すると、以下のウィンドウが開くので、piで鍵を作成するときに入力したパスワードを入力する。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-dSj7FFyULXQ/UziqqBju8QI/AAAAAAAACdc/G2v_tPCMSlE/s1600/Screen+Shot+2014-03-31+at+8.36.13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-dSj7FFyULXQ/UziqqBju8QI/AAAAAAAACdc/G2v_tPCMSlE/s1600/Screen+Shot+2014-03-31+at+8.36.13.png" height="195" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
すると、ログインに成功する。</div>
<div>
<div class="p1">
Last login: Mon Mar 31 08:59:43 2014 from 192.168.11.2</div>
<br />
<div class="p2">
<b>pi@raspberrypi</b><span class="s1"> </span><span class="s2"><b>~ $</b></span><span class="s1"> </span></div>
<b>exit</b><br />
<b><br /></b>
<b><br /></b>
Macの~/.ssh以下にid_rsaをおいておけば、いちいち指定しなくても自動で読みにいく。そこで、~/id_rsaを~/.ssh/に移動させる。<br />
<b>mv ~/id_rsa ~/.ssh</b><br />
<b><br /></b>
ログインのテスト<br />
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: Times; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
</div>
<br />
<div class="p1" style="-webkit-text-stroke-width: 0px; color: black; font-family: Times; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<div style="margin: 0px;">
<b>ssh -p hogenumber pi@192.168.11.7</b></div>
</div>
<div class="p1">
Last login: Mon Mar 31 08:59:43 2014 from 192.168.11.2</div>
<br />
<div class="p2">
<b>pi@raspberrypi</b><span class="s1"> </span><span class="s2"><b>~ $</b></span><span class="s1"> </span></div>
</div>
<div>
<span class="s1"><br /></span></div>
<div>
<br />
うまくいった。</div>
<div>
<br />
<br />
<br />
iphoneのiOS用SSHクライアントであるpromptからパスワードログインを試みるとはじかれることを確認してみる。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-rLzzZyVfeQI/UziyusAsduI/AAAAAAAACds/QIUAdcXSEgk/s1600/fig2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-rLzzZyVfeQI/UziyusAsduI/AAAAAAAACds/QIUAdcXSEgk/s1600/fig2.png" height="320" width="180" /></a></div>
<br /></div>
<div>
ばっちり。<br />
<br />
promptでssh接続したいときは、Macの時と同様、サーバーで鍵を作成し、公開鍵の内容をサーバーの~/.ssh/authorized_keysへ追記、秘密鍵をpromptに登録すればよい。<br />
<br />
piで作った秘密鍵をMacに落としておいて、<br />
itunesを開いて、AppsのPromptを選択肢、id_rsaをAddで追加すればよい。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-EJ61-gSQcc0/Uzi0ge8JdcI/AAAAAAAACd4/BJ9DmRO-UI0/s1600/Screen+Shot+2014-03-31+at+9.18.30.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-EJ61-gSQcc0/Uzi0ge8JdcI/AAAAAAAACd4/BJ9DmRO-UI0/s1600/Screen+Shot+2014-03-31+at+9.18.30.png" height="187" width="640" /></a></div>
あとは、iphone上でpromptを開いて、ipアドレス、ポート番号、ユーザ名、パスワード(<b><u>この場合、鍵作成時のパスワード</u></b>)を入力して、最後に鍵マークをクリックして先ほどアップロードしたファイルを選択すればok。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-9jvMpsAb7Ro/Uzi18i8MvAI/AAAAAAAACeE/OXrs1iL1M8Q/s1600/IMG_0811.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-9jvMpsAb7Ro/Uzi18i8MvAI/AAAAAAAACeE/OXrs1iL1M8Q/s1600/IMG_0811.jpg" height="200" width="112" /></a></div>
あとはお好みで、他のパソコンにも鍵を入れておいても良い。<br />
これでサーバーのセキュリティに関しての、一通りの作業は終了した。<br />
<br />
<br /></div>
<div>
###############################################################<br />
<br /></div>
<div>
最後にひとつ議論しておく。<br />
鍵の作成を今回のようにサーバーで行うか、クライアントで行うかというのは実はどちらでもよいそうだ。<br />
<br />
以下のサイトが詳しい。<br />
<a href="http://d.hatena.ne.jp/midori_kasugano/20100125/1264424662">秘密鍵と公開鍵は、サーバー側(ssh接続される側)で作ろうがクライアント側(sshコマンドを打って接続しに行く側)で作ろうが、どっちでもいいそうな。</a><br />
<br />
通常は、クライアントで作成して、サーバーに公開鍵を送信する事が多いようだが、大量に鍵を作成するときは面倒なので、サーバー側で作成して、クライアントに配布するという形式を取る事もあるそうだ。<br />
<br />
<br /></div>
<div class="p1">
<b><br /></b></div>
<div class="p1">
<b><br /></b></div>
<div class="p1">
<b><br /></b></div>
<div class="p1">
<b><br /></b></div>
kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.comtag:blogger.com,1999:blog-3664432758000904638.post-10486071412936484792014-03-31T00:53:00.000+09:002014-03-31T00:53:17.967+09:00Day21 sshのルートログインの禁止とSSHの公開鍵認証設定ここまでの作業<br />
Day19:rootとpiのパスワードを設定<br />
Day20:sshのポート番号の変更<br />
<br />
今回は、sshのルートログインの禁止とSSHの公開鍵認証設定を行います。<br />
<br />
#####sshのルートログインの禁止#####<br />
<b>sudo vim /etc/ssh/sshd_config</b><br />
<b><br /></b>
27 PermitRootLogin yes<br />
を<br />
27 PermitRootLogin no<br />
に変更<br />
<br />
#sshサーバの再起動<br />
<br />
<div class="p1">
<b>vim /etc/ssh/sshd_config</b></div>
<br />
これでrootログインはできなくなった。<br />
<br />
<br />
<br />
#####SSHの公開鍵認証設定####<br />
<br />
日経Linux『誰でもできる! Raspberry Piで楽しもう』日経BP社 2013のp62 - 66を参考にした。<br />
<br />
まずは、手元のMacで鍵を生成する。<br />
<b>kappa$ ssh-keygen -t rsa</b><br />
<b><br /></b>
デフォルトのままでEnterを2回押すと、~/.ssh/に公開鍵(id_rsa.pub)と秘密鍵(id_rsa)が生成する。<br />
<div class="p1">
<b>kappa$ ls ~/.ssh</b></div>
<br />
<div class="p1">
id_rsa id_rsa.pub known_hosts</div>
<div class="p1">
<br /></div>
<div class="p1">
<br /></div>
<div class="p1">
これから、この公開鍵(id_rsa.pub)をサーバーの自分がいつもログインするpiユーザの支配下に送り込み、そして、piの~/.ssh/authorized_keysに公開鍵の内容を追記する。</div>
<div class="p1">
<br /></div>
<div class="p1">
#サーバーに公開鍵を送信(piユーザーのホームディレクトリ)</div>
<div class="p1">
<b>kappa$ scp -P hogenumber id_rsa.pub pi@192.168.11.7:~/ </b></div>
<div class="p1">
<b><br /></b></div>
<div class="p1">
<br /></div>
<div class="p1">
<br /></div>
<div class="p1">
ここからはRasPiにログインしてからの操作。</div>
<div class="p1">
#~/.ssh/の作成し、公開鍵を移動させる。</div>
<div class="p1">
<b>mkdir ~/.ssh</b></div>
<div class="p1">
<b>mv ~/id_r~/.ssh/</b></div>
<div class="p1">
<b><br /></b></div>
<div class="p1">
<b><br /></b></div>
<div class="p1">
#公開鍵の内容を追記(authorized_keysファイルがなければ新規作成される)</div>
<div class="p1">
</div>
<div class="p1">
<b>cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys</b></div>
<div class="p1">
<b><br /></b></div>
<div class="p1">
#####パスワードログインを無くして、いよいよ公開鍵認証のみでログインできる状態にする####</div>
<b>sudo vim /etc/ssh/sshd_config</b><br />
<div>
<b><br /></b></div>
<div>
<div class="p1">
<span class="s1"> 51 </span>#PasswordAuthentication yes</div>
<div class="p1">
<span class="s1"> 52 </span>PasswordAuthentication no</div>
<div class="p1">
<br /></div>
<div class="p1">
これでok.</div>
<div class="p1">
#サーバー再起動</div>
<div class="p1">
<b style="background-color: #fff9ee; color: #222222; font-family: Georgia, Utopia, 'Palatino Linotype', Palatino, serif; font-size: 15.0150146484375px; line-height: 32.372371673583984px;">sudo /etc/init.d/ssh restart</b></div>
<div class="p1">
<span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="background-color: white; font-size: 15px; line-height: 32.372371673583984px;">あとは、Macからログインしてみるだけだ!</span></span></div>
<div class="p1">
<span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="background-color: white; font-size: 15px; line-height: 32.372371673583984px;">と思ったらハマった。</span></span></div>
<div class="p1">
<span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="background-color: white; font-size: 15px; line-height: 32.372371673583984px;">以前サーバー構築した時も同様のところでハマったのでピンと来た。</span></span></div>
<div class="p1">
<span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="background-color: white; font-size: 15px; line-height: 32.372371673583984px;"></span></span></div>
<div class="p1">
<span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15px; line-height: 32.372371673583984px;">「<a href="http://takuya-1st.hatenablog.jp/entry/20090216/1234742055">SSHが鍵認証されないとき、パーミッションを疑え。</a>」だろうと思った。</span></span></div>
<div class="p1">
<span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15px; line-height: 32.372371673583984px;">そこで、raspiはモニターにつないでスタンドアロンの環境で以下の作業をして、いろいろ考えてみる事にした。</span></span></div>
<div class="p1">
<span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15px; line-height: 32.372371673583984px;">(続く)</span></span></div>
<div>
<br /></div>
<div class="p1">
<b style="background-color: #fff9ee; color: #222222; font-family: Georgia, Utopia, 'Palatino Linotype', Palatino, serif; font-size: 15.0150146484375px; line-height: 32.372371673583984px;"><br /></b></div>
</div>
kappahttp://www.blogger.com/profile/10849945413740752130noreply@blogger.com