<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7003251064971894280</id><updated>2011-12-12T02:39:10.796+09:00</updated><category term='Android'/><category term='Android の定石'/><title type='text'>林檎生活100</title><subtitle type='html'>林檎な生活をつづった日記</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default?start-index=101&amp;max-results=100'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>226</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-6978244916177825230</id><published>2011-12-10T15:11:00.001+09:00</published><updated>2011-12-12T02:39:10.810+09:00</updated><title type='text'>Python 3 チュートリアルを Python 2 で試しながら読んでみた #1</title><content type='html'>&lt;p&gt;Django が、Python 3 に対応していないので、Python の勉強をするなら Python 2 環境に慣れておかないとダメ。ということで、手元にある「Python チュートリアル 第2版」のコードを Python 2.7.2 (Windows XP) 上で試してみたよ。&lt;/p&gt;&lt;p&gt;とりあえず、Python 2 インタプリタをめいっぱい Python 3 互換で動くようにするために、次のようなスタートアップファイルを作成した。あくまで、対話環境の初期化ファイルなので、ファイルを指定して実行するときは、同じようなインポートをファイルごとに記述する必要がある。&lt;/p&gt;&lt;pre&gt;# -*- coding: utf-8 -*-&lt;br /&gt;from __future__ import division, print_function, unicode_literals&lt;br /&gt;from future_builtins import ascii, filter, map, hex, oct, zip&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;それで、環境変数 PYTHONSTARTUP にそのファイルのパスを登録した。ちなみにエディタは、IDLE を使用している。設定は、フォントを FixedSys の10ptに変更し、Default Source Encoding を UTF-8 に変更した。ただし、IDLE 上のインタプリタでは、スタートアップファイルが反映されなかったので、Python (command line) で起動したインタプリタ上で実行している。&lt;/p&gt;&lt;p&gt;さて、チュートリアルを読み進めていこう。&lt;/p&gt;&lt;p&gt;最初の関門かなと思ったのは、「3.1.1 数値」の割り算の部分。Python 2 と Python 3 で動作が異なる部分だけど、スタートアップファイルの設定で、同じ動作をしてくれた。素晴らしい。&lt;/p&gt;&lt;p&gt;次の問題は、文字コード。日本人プログラマーなら1度は頭を悩ませたことがある問題。「3.1.3 Unicode について」のところも、スタートアップファイルの設定で、ほぼ同じ動作をしてくれた。&lt;/p&gt;&lt;p&gt;ここから先は、当分トラブルはなさそうだなと思っていたら、「4.1 if 文」に伏兵が潜んでいたよ。input 関数の引数にスタートアップファイルで設定したまま非 Ascii 文字を含む文字列を入れるとダメっぽい。input 関数は、テストコードくらいでしか使わないだろうけど、こういうエラーが生じることは覚えとかないとかな。&lt;p&gt;&lt;p&gt;「4.2 for 文」で、print 文と print 関数の違いを見た。出力が、タプルとして評価された結果になってしまっている。スタートアップファイルの設定があれば問題はない。&lt;/p&gt;&lt;p&gt;「4.3 range() 関数」では、range 関数の戻り値を print 関数の引数としたとき、動作が異なるところが見られる。Python 3 の range 関数は、Python 2 の xrange 関数と同様に反復可能体 (iterable object) を返すが、Python 2 の range 関数はそうではないためだ。とりあえず、range 関数を使ったままのコードで for 文の動作は問題ない。&lt;/p&gt;&lt;p&gt;「4.7.1 引数のデフォルト値」で、Python 2 と Python 3 での input 関数の違いに遭遇。Python 2 の raw_input 関数が Python 3 での input 関数になったそうだ。Python 2 の input 関数は、Python 3 での eval(input()) になるらしい。&lt;/p&gt;&lt;p&gt;4章まで読了。次回は5章から。Pythonista 目指して頑張ろう。&lt;/p&gt; &lt;ul&gt; &lt;li&gt;  &lt;h4&gt;Python 2.7.2&lt;/h4&gt;&lt;pre&gt;&gt;&gt;&gt; (50-5*6)/4&lt;br /&gt;5&lt;br /&gt;&gt;&gt;&gt; 8/5&lt;br /&gt;1&lt;br /&gt;&gt;&gt;&gt; 'Hello\u0020World !'&lt;br /&gt;'Hello\\u0020World !'&lt;br /&gt;&gt;&gt;&gt; 'あいう'.encode('utf-8')&lt;br /&gt;&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;  File "&lt;pyshell#12&gt;", line 1, in &lt;module&gt;&lt;br /&gt;    'あいう'.encode('utf-8')&lt;br /&gt;UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 0: ordinal not in range(128)&lt;br /&gt;&gt;&gt;&gt; x = int(input("整数を入れてください: "))&lt;br /&gt;整数を入れてください: 42&lt;br /&gt;&gt;&gt;&gt; a = ['cat', 'window', 'defenestrate']&lt;br /&gt;&gt;&gt;&gt; for x in a:&lt;br /&gt;...     print(x, len(x))&lt;br /&gt;...&lt;br /&gt;('cat', 3)&lt;br /&gt;('window', 6)&lt;br /&gt;('defenestrate', 12)&lt;br /&gt;&gt;&gt;&gt; print(range(10))&lt;br /&gt;[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]&lt;br /&gt;&gt;&gt;&gt; list(range(5))&lt;br /&gt;[0, 1, 2, 3, 4]&lt;br /&gt;&gt;&gt;&gt;&lt;/pre&gt; &lt;/li&gt; &lt;li&gt;  &lt;h4&gt;Python 2.7.2 (Python 3 互換設定済)&lt;/h4&gt;&lt;pre&gt;&gt;&gt;&gt; (50-5*6)/4&lt;br /&gt;5.0&lt;br /&gt;&gt;&gt;&gt; 8/5&lt;br /&gt;1.6&lt;br /&gt;&gt;&gt;&gt; 'Hello\u0020World !'&lt;br /&gt;u'Hello World !'&lt;br /&gt;&gt;&gt;&gt; 'あいう'.encode('utf-8')&lt;br /&gt;b'\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86'&lt;br /&gt;&gt;&gt;&gt; x = int(input("整数を入れてください: "))&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;  File "&lt;stdin&gt;", line 1, in &lt;module&gt;&lt;br /&gt;UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-9: ordinal not in range(128)&lt;br /&gt;&gt;&gt;&gt; a = ['cat', 'window', 'defenestrate']&lt;br /&gt;&gt;&gt;&gt; for x in a:&lt;br /&gt;...     print(x, len(x))&lt;br /&gt;...&lt;br /&gt;cat 3&lt;br /&gt;window 6&lt;br /&gt;defenestrate 12&lt;br /&gt;&gt;&gt;&gt; print(range(10))&lt;br /&gt;[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]&lt;br /&gt;&gt;&gt;&gt; list(range(5))&lt;br /&gt;[0, 1, 2, 3, 4]&lt;br /&gt;&gt;&gt;&gt;&lt;/pre&gt; &lt;/li&gt; &lt;li&gt;  &lt;h4&gt;Python 3.2.1&lt;/h4&gt;&lt;pre&gt;&gt;&gt;&gt; (50-5*6)/4&lt;br /&gt;5.0&lt;br /&gt;&gt;&gt;&gt; 8/5&lt;br /&gt;1.6&lt;br /&gt;&gt;&gt;&gt; 'Hello\u0020World !'&lt;br /&gt;'Hello World !'&lt;br /&gt;&gt;&gt;&gt; 'あいう'.encode('utf-8')&lt;br /&gt;b'\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86'&lt;br /&gt;&gt;&gt;&gt; x = int(input("整数を入れてください: "))&lt;br /&gt;整数を入れてください: 42&lt;br /&gt;&gt;&gt;&gt; a = ['cat', 'window', 'defenestrate']&lt;br /&gt;&gt;&gt;&gt; for x in a:&lt;br /&gt;...     print(x, len(x))&lt;br /&gt;...&lt;br /&gt;cat 3&lt;br /&gt;window 6&lt;br /&gt;defenestrate 12&lt;br /&gt;&gt;&gt;&gt; print(range(10))&lt;br /&gt;range(0, 10)&lt;br /&gt;&gt;&gt;&gt; list(range(5))&lt;br /&gt;[0, 1, 2, 3, 4]&lt;br /&gt;&gt;&gt;&gt;&lt;/pre&gt; &lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;参考文献&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.amazon.co.jp/gp/product/487311442X/ref=as_li_ss_tl?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=487311442X"&gt;Pythonチュートリアル 第2版&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=487311442X" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-6978244916177825230?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/6978244916177825230/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=6978244916177825230' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6978244916177825230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6978244916177825230'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2011/12/python-3-python-2-1.html' title='Python 3 チュートリアルを Python 2 で試しながら読んでみた #1'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-4124908961554154560</id><published>2011-08-15T13:39:00.010+09:00</published><updated>2011-08-24T01:14:09.437+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android の定石'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Android の定石 #1 スプラッシュ画面の表示</title><content type='html'>Android の定石っぽいものをメモとして書いておくことにした．出来る限り，正しいコードを書くように心がけるつもりだけど，Android の開発を始めて1ヶ月も経ってないので，いろいろ間違ってたりするかもしれない．間違っていたら，ぜひ教えてください．&lt;br /&gt;&lt;br /&gt;さて今回は，スプラッシュ画面（スプラッシュスクリーン）を Android で実現する方法について．&lt;br /&gt;&lt;br /&gt;基本的な流れは，次のとおり．&lt;br /&gt;&lt;br /&gt;1. スプラッシュ画面（スプラッシュ画像を表示するアクティビティ）を表示する．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-gznfeCWZsXM/Tkin8OhZLvI/AAAAAAAAA7c/b0bd1dFleos/s1600/device-2011-08-15-135836.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 192px; height: 320px;" src="http://4.bp.blogspot.com/-gznfeCWZsXM/Tkin8OhZLvI/AAAAAAAAA7c/b0bd1dFleos/s320/device-2011-08-15-135836.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5640943186413694706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. N ミリ秒後にスプラッシュ画面から遷移する．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-iZjyZpe5geU/Tkin8XE19ZI/AAAAAAAAA7k/-1uf1o4XjTE/s1600/device-2011-08-15-135632.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 192px; height: 320px;" src="http://1.bp.blogspot.com/-iZjyZpe5geU/Tkin8XE19ZI/AAAAAAAAA7k/-1uf1o4XjTE/s320/device-2011-08-15-135632.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5640943188709864850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1 は，レイアウト XML ファイルに ImageView を追加し画像を表示するだけなので割愛する．&lt;br /&gt;&lt;br /&gt;重要なのは 2．時間を待って画面遷移をさせるために，Handler#postDelayed() を使用する．Handler#postDelayed() は，N ミリ秒後に Runnable オブジェクトの run() を実行するメソッドだ．（Handler クラスを一文で表すとなんだろうなぁ……．）&lt;br /&gt;&lt;br /&gt;実際のコードは次のとおり．コードを見た方がわかりやすい．&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: java"&gt;public class MainActivity extends Activity {&lt;br /&gt;    @Override&lt;br /&gt;    public void onCreate(Bundle savedInstanceState) {&lt;br /&gt;        super.onCreate(savedInstanceState);&lt;br /&gt;        setContentView(R.layout.main);&lt;br /&gt;&lt;br /&gt;        // スプラッシュ画面から、1000ミリ秒後に遷移する。&lt;br /&gt;        new Handler().postDelayed(new Runnable() {&lt;br /&gt;            public void run() {&lt;br /&gt;                Intent intent = new Intent(MainActivity.this, SubActivity.class);&lt;br /&gt;                startActivity(intent);&lt;br /&gt;&lt;br /&gt;                // アクティビティを終了させることで、スプラッシュ画面に戻ることを防ぐ。&lt;br /&gt;                MainActivity.this.finish();&lt;br /&gt;            }&lt;br /&gt;        }, 1000);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;スプラッシュ画面表示時間は，values/integers.xml などに入れておくのも良いかと思う．&lt;br /&gt;&lt;br /&gt;プロジェクトファイルは下記 URL に置いてあるので，参考にしてほしい．&lt;br /&gt;&lt;br /&gt;&lt;a href="http://idisk.mac.com/takuya0301/Public/Android/Example001.zip"&gt;http://idisk.mac.com/takuya0301/Public/Android/Example001.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://developer.android.com/reference/android/os/Handler.html"&gt;Android Developers: Handler&lt;/a&gt;&lt;br /&gt;&lt;a href="http://andante.in/i/androidアプリtips/splash画面を作成してみる。/"&gt;素人のアンドロイドアプリ開発日記: splash画面を作成してみる。&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-4124908961554154560?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/4124908961554154560/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=4124908961554154560' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4124908961554154560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4124908961554154560'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2011/08/android-1.html' title='Android の定石 #1 スプラッシュ画面の表示'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-gznfeCWZsXM/Tkin8OhZLvI/AAAAAAAAA7c/b0bd1dFleos/s72-c/device-2011-08-15-135836.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-4316257718993233463</id><published>2011-05-08T22:55:00.005+09:00</published><updated>2011-05-08T23:26:44.001+09:00</updated><title type='text'>HP Compaq nx6320 で Intel Wireless WiFi Link 4965AGN を使う方法</title><content type='html'>&lt;span style="font-weight:bold;"&gt;※起動しなくなってもいっさい保証できないので，自己責任で実施してね．&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;HP Compaq nx6320 が認めているカード以外は，BIOS ではじかれる．BIOS にホワイトリストが含まれているらしい．なので，ホワイトリストを除去した（正確には，ホワイトリストを参照しないなのかな？） BIOS を書き込めば，Intel Wireless WiFi Link 4965AGN などの Wi-Fi カードが動作する．（なお，このカードは，オークションで安く出回っている．）&lt;br /&gt;&lt;br /&gt;ということなのだが，自力でやる方法を探す暇がなかった．とりあえず，ダウンロードサイトなどで出回っているツールを使って解決できたので，自己責任で使用してください．&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sendspace.com/file/13iovk"&gt;sp38742_SLIC21_SLPon_no_whitelist.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;なお，ネタ元は，参考文献をどうぞ．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.logsoku.com/thread/hibari.2ch.net/notepc/1218785940/"&gt;ログ速: 【ＨＰ】HPCompaq nx6320/6310買得 No3【ビジネス】&lt;/a&gt; (&gt;&gt;690)&lt;br /&gt;&lt;a href="http://forums.mydigitallife.info/archive/index.php/t-7681.html"&gt;My Digital Life Forums: This is no request thread! HP COMPAQ bioses, how to modify the bios? [Archive]&lt;/a&gt; (&gt;&gt;TTAV134 14 Aug 2009, 11:01 PM)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-4316257718993233463?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/4316257718993233463/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=4316257718993233463' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4316257718993233463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4316257718993233463'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2011/05/hp-compaq-nx6320-intel-wireless-wifi.html' title='HP Compaq nx6320 で Intel Wireless WiFi Link 4965AGN を使う方法'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-1073431802707269402</id><published>2011-04-10T16:55:00.007+09:00</published><updated>2011-04-10T17:22:15.582+09:00</updated><title type='text'>写真を Aperture 3 から flickr に GPS 情報付きでアップロードする方法</title><content type='html'>写真を Aperture 3 から &lt;a href="http://www.flickr.com/"&gt;flickr&lt;/a&gt; に GPS 情報付きでアップロードするには，以下のような Aperture と flickr の設定変更が必要なのだ．&lt;br /&gt;&lt;br /&gt;1. Aperture 3 の設定&lt;br /&gt;アップロードする写真に位置情報を含めるようにする設定をする．&lt;br /&gt;&lt;br /&gt;1.1.「Aperture &gt; 環境設定… &gt; 詳細 &gt; 公開する写真に位置情報を含める」をチェックする．&lt;br /&gt;&lt;br /&gt;2. flickr の設定&lt;br /&gt;アップロードされる写真の位置情報を公開するようにする．&lt;br /&gt;&lt;br /&gt;2.1. flickr にログインする．&lt;br /&gt;2.2. グローバルメニューの You の横の▼をクリックし，プルダウンメニュー中の Your Account をクリックする．&lt;br /&gt;2.3. Privacy &amp; Permissions タブをクリックする．&lt;br /&gt;2.4. Import EXIF location data の右端にある Edit をクリックする．&lt;br /&gt;2.5. Yes please, that would be lovely. をチェックし，SAVE ボタンをクリックする．&lt;br /&gt;&lt;br /&gt;これで自動的に，写真についている GPS 情報が flickr の Your Maps に反映される．&lt;br /&gt;&lt;br /&gt;僕の場合はこんなかんじ．（コンタクトの追加もぜひしてねｗ）&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/takuya0301/map"&gt;Flickr: Explore TSUCHIDA Takuya's photos on the map&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;flickr の日本地図は残念な感じなので，改善を期待．（たぶん，アメリカの Yahoo! 地図の問題だろうけど．）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-1073431802707269402?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/1073431802707269402/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=1073431802707269402' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1073431802707269402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1073431802707269402'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2011/04/aperture-3-flickr-gps.html' title='写真を Aperture 3 から flickr に GPS 情報付きでアップロードする方法'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-7222217024177477142</id><published>2011-04-06T23:44:00.003+09:00</published><updated>2011-04-07T01:06:38.516+09:00</updated><title type='text'>MacPorts から SpiderMonkey をインストール</title><content type='html'>MacPorts がインストールされている状態であれば，次のコマンド打つだけ．&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$ sudo port -c install spidermonkey&lt;/pre&gt;&lt;br /&gt;次のコマンドでインタプリタを起動できる．&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$ js&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-7222217024177477142?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/7222217024177477142/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=7222217024177477142' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7222217024177477142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7222217024177477142'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2011/04/macports-spidermonkey.html' title='MacPorts から SpiderMonkey をインストール'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-8312487281423115595</id><published>2011-04-03T03:14:00.007+09:00</published><updated>2011-04-03T03:24:47.823+09:00</updated><title type='text'>NetBeans 6.9.1 付属の GlassFish のアップデート方法</title><content type='html'>Mac OS X 上で NetBeans 6.9.1 をインストールしたら，GlassFish のアップデートが Update Tool からうまく実行できなかったのでメモ．&lt;br /&gt;&lt;br /&gt;とりあえず，直接 pkg コマンドで GlassFish のアップデートを実行したらうまくいった．（既存環境でやって，一度失敗してるので，壊したくない人はやめといた方が無難かも．）&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$ cd /Applications/NetBeans/glassfish-3.0.1/bin/&lt;br /&gt;$ sudo ./pkg image-update&lt;br /&gt;$ ./asadmin start-domain --upgrade&lt;br /&gt;$ ./asadmin start-domain&lt;br /&gt;$ ./asadmin stop-domain&lt;/pre&gt;&lt;br /&gt;ここまでやっとくと，とりあえず最新版になって，NetBeans 6.9.1 からも正常に起動できるっぽい．&lt;br /&gt;&lt;br /&gt;蛇足だけど，GlassFish の日本語メッセージの文字コードは，Shift JIS みたいだからターミナルの設定変えて実行すると良い．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-8312487281423115595?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/8312487281423115595/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=8312487281423115595' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8312487281423115595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8312487281423115595'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2011/04/netbeans-691-glassfish.html' title='NetBeans 6.9.1 付属の GlassFish のアップデート方法'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-8402550067527970090</id><published>2010-11-23T20:30:00.003+09:00</published><updated>2010-11-23T20:37:16.081+09:00</updated><title type='text'>［日記］LTM Essentials WBT Forum</title><content type='html'>BIG-IP で有名な &lt;a href="http://www.f5.com/"&gt;F5 Networks&lt;/a&gt; の無料オンライントレーニングをはじめた．良く知らないけど，BIG-IP Essentials v10.x をベースにしているらしい．BIG-IP も使いこなして，ネットワークエンジニアとしてステップアップするのだ♪&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.f5networks.co.jp/service/training/ltm.html"&gt;F5 Networks Japan: LTM Essentials WBT Forum&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-8402550067527970090?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/8402550067527970090/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=8402550067527970090' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8402550067527970090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8402550067527970090'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2010/11/ltm-essentials-wbt-forum.html' title='［日記］LTM Essentials WBT Forum'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-580600500641208894</id><published>2010-09-19T11:36:00.003+09:00</published><updated>2010-09-19T11:47:47.158+09:00</updated><title type='text'>［資格］MOS Excel 2007</title><content type='html'>仕事で Excel 2007 をよく使うので，Excel 2007 の勉強のために MOS (Microsoft Office Specialist) Excel 2007 資格を取得してきた．&lt;br /&gt;&lt;br /&gt;まあ，商業高校の生徒でも普通に合格しているレベルなので，就職とか転職とかで役に立つ資格ではないけどね．富士通エフ・オー・エムのテキストや問題集で勉強すると，案外知らない便利そうな機能が多くて，これ業務で使えそうだなってのがあるからオススメ．&lt;br /&gt;&lt;br /&gt;資格を取得するだけなら，「&lt;a href="http://www.amazon.co.jp/gp/product/4893116886?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4893116886"&gt;よくわかるマスター MCAS Excel 2007 完全マスターI  公認テキスト&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4893116886" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;」だけで十分．95%以上本番に類似した模擬試験ソフトが入ってるからｗ正直，12,390円という受験料の高さが問題ｗ今回は合格したので，会社から受験料払ってもらえるからいいんだけどね♪&lt;br /&gt;&lt;br /&gt;蛇足だけど，模擬試験ソフトは，模擬試験ソフトの修正パッチを適用した方がいいよ．あと，Office 2007 をインストールするときは，完全オプションでインストールしないと，模擬試験ソフトを起動したときに，「エラーが発生しました 指定されたキャストは有効ではありません。・・・」というエラーが出て動作しないので注意．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4893116886?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4893116886"&gt;よくわかるマスター MCAS Excel 2007 完全マスターI 公認テキスト&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4893116886" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4893116673?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4893116673"&gt;よくわかる Microsoft Office Excel 2007（基礎）&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4893116673" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4893116681?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4893116681"&gt;よくわかる Microsoft Office Excel 2007（応用）&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4893116681" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-580600500641208894?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/580600500641208894/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=580600500641208894' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/580600500641208894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/580600500641208894'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2010/09/mos-excel-2007.html' title='［資格］MOS Excel 2007'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-8906578457639953541</id><published>2010-05-30T16:35:00.007+09:00</published><updated>2010-05-30T18:39:04.245+09:00</updated><title type='text'>Windows 7 64ビット版を BootCamp でインストール</title><content type='html'>Windows 7 の64ビット版を BootCamp でインストールしようとすると，&lt;br /&gt;&lt;pre&gt;Select CD-ROM Boot Type:&lt;/pre&gt;&lt;br /&gt;と表示されて止まってしまう．これは，El Torito ブートセクタファイルが BIOS と EFI の2種類あるので選択画面が出るが，BootCamp からのインストールではなぜか何も入力できないからなんだよね．（要確認）&lt;br /&gt;&lt;br /&gt;なので，&lt;a href="http://www.microsoft.com/Downloads/details.aspx?familyid=696DD665-9F76-4177-A811-39C26D3B3B34&amp;displaylang=ja#RelatedLinks"&gt;Windows AIK&lt;/a&gt; を使用して，読み込む El Torito ブートセクタファイルを事前に指定したディスクを作成することで解決している．（El Torito については参考文献を参照のこと．）&lt;br /&gt;&lt;br /&gt;その作業の詳細は，ググればいっぱい出てくると思うので割愛させてもらうとして，作業で使用するコマンドのオプションを僕の場合は変更しているので，それをメモしておこうと思う．（ここでは，Z: ドライブに Windows 7 のマスタメディアがあるものとする．なお，今回は MSDN AA で配布されている Windows 7 Professional 64 ビット日本語版を使用した．）&lt;br /&gt;&lt;pre&gt;&gt; "C:\Program Files\Windows AIK\Tools\x86\oscdimg.exe" -bZ:\boot\etfsboot.com -lGRMCPRXFRER_JA_DVD -m -n Z:\ C:\ja_windows_7_professional_x64_dvd_x15-65823.iso&lt;/pre&gt;&lt;br /&gt;それぞれのオプションの意味は次のとおり．&lt;br /&gt;&lt;pre&gt;-b: El Torito ブート セクタ ファイルの場所の指定する（主目的）&lt;br /&gt;-l: ボリューム ラベルを指定する（ボリュームラベル指定しないと CD-ROM となっていたから）&lt;br /&gt;-m: イメージの最大サイズ制限を無視する（ISO として出力すると，72分 CD-R のサイズがデフォルトになるから）&lt;br /&gt;-n: 長いファイル名を使用する（長いファイル名が存在した場合に削られるのは良くないから）&lt;/pre&gt;&lt;br /&gt;オプションについては，参考文献のサイトとヘルプを参照して自分なりに設定しているのだけど，誤認識しているものもあるかもしれないので，間違っていたら教えてください．&lt;br /&gt;&lt;br /&gt;○参考文献&lt;br /&gt;&lt;a href="http://no-outlet.blog.bbiq.jp/blog/2009/05/select-cd-rom-b.html"&gt;この先行き止まり: Select CD-ROM Boot Type:&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/Downloads/details.aspx?familyid=696DD665-9F76-4177-A811-39C26D3B3B34&amp;displaylang=ja#RelatedLinks"&gt;Microsoft ダウンロードセンター: Windows 7 用の Windows 自動インストール キット (AIK)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/ja-jp/library/cc749036(WS.10).aspx"&gt;Microsoft TechNet: Oscdimg のコマンド ライン オプション&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ja.wikipedia.org/wiki/ISO_9660"&gt;Wikipedia: ISO 9660&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;○追記（2010年5月30日）&lt;br /&gt;d オプションを付けるとうまくいかないので注意．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-8906578457639953541?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/8906578457639953541/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=8906578457639953541' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8906578457639953541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8906578457639953541'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2010/05/windows-7-64-bootcamp.html' title='Windows 7 64ビット版を BootCamp でインストール'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-9221149978047918531</id><published>2010-04-25T04:39:00.012+09:00</published><updated>2010-04-25T23:21:37.644+09:00</updated><title type='text'>画像置換を JavaScript (jQuery) でやってみる</title><content type='html'>お久しぶり！社会人になってしまったので，Blog 更新する暇なかった！&lt;br /&gt;&lt;br /&gt;いま，ちょっとした Web サイトを作成中なんだよね．その制作過程で，「画像置換どうしよう？」ってことになったんで，今回はそれについて書くことにした．&lt;br /&gt;&lt;br /&gt;Windows もメイリオが入ってから，フォントがだいぶ綺麗になったと思うけど，見出しに使うフォントとしてはいまいち．でも，Mac OS X ならヒラギノ明朝があるから，それを見出しにすればいいよなぁと思った．&lt;br /&gt;&lt;br /&gt;また，Mac OS X の場合はフォントがあるんだから，テキストとしてコピーできるように，フォントがある場合は画像置換をしたくない．そして，見出し1つ1つに id を付けるのは嫌だったし，XHTML を汚したくない．さらに言えば，CSS に置換用画像のファイル名をいっぱい書かなければならないのもどうかなと思うわけだ．&lt;br /&gt;&lt;br /&gt;なので，条件としては，&lt;br /&gt;&lt;br /&gt;・ヒラギノ明朝が存在すれば，画像置換はしない&lt;br /&gt;・XHTML と CSS を汚さない&lt;br /&gt;&lt;br /&gt;ということで考えてみた．&lt;br /&gt;&lt;br /&gt;そーなると，CSS でどーにかするっていう画像置換は無理なので，JavaScript で頑張ることにした．まあ，美しいサイトを見たいなら JavaScript くらい有効にしておいてくれということでｗアクセシビリティとしても XHTML を汚さないので大丈夫だと思うし．&lt;br /&gt;&lt;br /&gt;んで，今回は，&lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; で，&lt;br /&gt;&lt;br /&gt;・ヒラギノ明朝の存在判定&lt;br /&gt;・h1, h2 要素のテキストのハッシュ値からの画像名計算&lt;br /&gt;・h1, h2 要素のテキストの img 要素への変換&lt;br /&gt;&lt;br /&gt;ということをすることで，画像置換を行ってみた．サンプルは次のとおり．&lt;br /&gt;&lt;br /&gt;&lt;a href="http://idisk.mac.com/takuya0301/Public/Web/IR/index.html"&gt;JavaScript による画像置換サンプル&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;使用したライブラリは，jquery.js と &lt;a href="http://code.google.com/p/jquery-fontavailable/"&gt;jquery.fontavailable.js&lt;/a&gt;，&lt;a href="http://plugins.jquery.com/project/md5"&gt;jquery.md5.js&lt;/a&gt;．&lt;br /&gt;&lt;br /&gt;JavaScript を書くことがないので，こういう書き方が正しいかわからないけど，次のようなかんじで記述したら OK だった．&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$(function() {&lt;br /&gt;  // Image Replacement&lt;br /&gt;  if (!$.fontAvailable("Hiragino Mincho Pro") &amp;&amp;&lt;br /&gt;      !$.fontAvailable("ヒラギノ明朝 Pro W3")) {&lt;br /&gt;    $("h1").each(function() {&lt;br /&gt;      $(this).replaceWith(&lt;br /&gt;        '&amp;lt;h1&gt;&amp;lt;img src="img/ir/h1_' + $.md5($(this).text()) +&lt;br /&gt;        '.jpg" alt="' + $(this).text() + '" /&gt;&amp;lt;/h1&gt;');&lt;br /&gt;    });&lt;br /&gt;&lt;br /&gt;    $("h2").each(function() {&lt;br /&gt;      $(this).replaceWith(&lt;br /&gt;        '&amp;lt;h2&gt;&amp;lt;img src="img/ir/h2_' + $.md5($(this).text()) +&lt;br /&gt;        '.jpg" alt="' + $(this).text() + '" /&gt;&amp;lt;/h2&gt;');&lt;br /&gt;    });&lt;br /&gt;  }&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;一応，Mac OS X での Safari と Firefox，Chrome，Opera，Windows での Internet Explorer 6，Internet Explorer 7，Internet Explorer 8，Firefox，Safari，Chrome，Opera での動作を確認．&lt;br /&gt;&lt;br /&gt;それにしても jQuery って便利だねぇ．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-9221149978047918531?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/9221149978047918531/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=9221149978047918531' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/9221149978047918531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/9221149978047918531'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2010/04/javascript-jquery.html' title='画像置換を JavaScript (jQuery) でやってみる'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-1570095484663354716</id><published>2010-03-14T11:10:00.010+09:00</published><updated>2010-03-15T15:11:38.093+09:00</updated><title type='text'>Office 2010 優待アップグレードキャンペーンで，卒業直前に Office 2007 アカデミックを購入する場合</title><content type='html'>&lt;a href="http://office.microsoft.com/ja-jp/products/"&gt;Office 2007&lt;/a&gt; を3月5日からパッケージ製品発売前日までに購入し， &lt;a href="http://www.microsoft.com/japan/office/2010/"&gt;Office 2010&lt;/a&gt; 優待アップグレードキャンペーンへ申し込むと，3,000円で Office 2010 にアップグレードできる．&lt;br /&gt;&lt;br /&gt;詳細は，キャンペーンサイトに譲るが，どうやら店頭からの購入日がキャンペーン期間中であれば，過去の優待パッケージ製品でもいい．（まあ，過去の優待パッケージが残っているとは思えないけどね．）そして，購入するパッケージがアカデミックでもいい．ここで，本年度卒業の学生は，Office 2007 Professional アカデミックを購入して，Office 2010 Professional アカデミックへのアップグレードが可能なのかが重要になる．&lt;br /&gt;&lt;br /&gt;僕は，Office 2010 が学生のうちに出ないかなぁと待ってたんだけど，結局学生のうちにでないということになった．でも，Office 2010 優待アップグレードキャンペーン対象の Office 2007 Professional アカデミックは学生のうちに購入できる．Office 2010 の本国の価格情報から，Office 2010 Professional を入手する場合の費用は，Office 2010 Professional（非アカデミック）購入価格より Office 2007 Professional アカデミック購入価格＋3,000円の方が安くなると思う．なので，学生のうちに買った Office 2007 Professional アカデミックから，社会人になってから発売される Office 2010 Professional アカデミックに優待アップグレードキャンペーンによってアップグレードできれば安上がりになる．ちなみに学生時に購入したアカデミック版は，卒業後でも個人用途であればそのまま使用できるからね．&lt;br /&gt;&lt;br /&gt;さて，ここらへんはどうなってるんだろう．ちょっと，Microsoft に問い合わせてみるかなぁ．&lt;br /&gt;&lt;br /&gt;追記（2010年3月15日）：&lt;br /&gt;Microsoft に問い合わせてみた結果，Office Professional 2007 アカデミックを在学中に購入し，Office 2010 優待アップグレードキャンペーンに応募すれば，Office Professional 2010 アカデミックが発売後に届くらしい．もちろん，それを使用することはライセンス上問題がないとのことだ．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.microsoft.com/japan/office/2010/techg/"&gt;Microsoft Office 2010 優待アップグレード キャンペーン&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-1570095484663354716?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/1570095484663354716/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=1570095484663354716' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1570095484663354716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1570095484663354716'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2010/03/office-2007-office-2010.html' title='Office 2010 優待アップグレードキャンペーンで，卒業直前に Office 2007 アカデミックを購入する場合'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-4945478824811917210</id><published>2010-02-19T02:12:00.006+09:00</published><updated>2010-02-19T02:19:25.527+09:00</updated><title type='text'>Mac OS X で Hex Dump（バイナリビューワー）</title><content type='html'>Mac OS X でとりあえず16進数でバイナリを表示したいときに使えるツールのメモ．&lt;br /&gt;&lt;pre&gt;$ hexdump ファイル名&lt;br /&gt;$ xxd ファイル名&lt;/pre&gt;&lt;br /&gt;xxd の方のデフォルトの表示フォーマットのが好きだな．機能の差とかはよく知らない．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-4945478824811917210?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/4945478824811917210/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=4945478824811917210' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4945478824811917210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4945478824811917210'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2010/02/mac-os-x-hex-dump.html' title='Mac OS X で Hex Dump（バイナリビューワー）'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-2151192541880679163</id><published>2010-02-14T01:56:00.004+09:00</published><updated>2010-02-14T02:44:12.171+09:00</updated><title type='text'>またたび式 C 入門 #0</title><content type='html'>どうも，お久しぶりですｗ&lt;br /&gt;&lt;br /&gt;修士論文とレポートで忙しくてほったらかしてたんだよね．一応，修士論文発表会も終わり，単位認定結果を待つのみとなったので，ブログを書くのを復活させよう♪&lt;br /&gt;&lt;br /&gt;久しぶりのブログのネタは，いわゆる C 言語の入門ネタをやろうかと思ってる．C の入門ネタなんてインターネット上に腐るほどあるので，いまさら感はあるんだけど，1回くらいは C の入門ってーのを書いてみたいと前々から思っていたのでｗほかの言語でちゃんとした入門ネタを書こうとも思ったんだけど，入門ネタを書けるほど修得してる言語って C くらいかなぁと……．そもそも，C ってとんでもない人がわんさかいるから，僕が偉そうに書くというのもいろいろ自爆してる気がするけどｗｗｗ&lt;br /&gt;&lt;br /&gt;ということで，「またたび式 C 入門」と題して，C 言語の入門ネタを書いていこう．またたび式という名前は，とりあえず C 入門じゃ検索し辛いから，適当に付けた名前なのであまり気にせずにｗあと，林檎生活なんだけど，ターゲットプラットフォームは，Windows XP にした．とりあえず，Windows ユーザ向けに書いてみたかったからなんだよね．Windows ユーザ向けで書いてどのくらい読む人がいるか知りたかったのと，Windows っていう C に向かない環境でとりあえず学ぶ方法を開拓してみたかったから．&lt;br /&gt;&lt;br /&gt;まあ，今回のエントリは，ぐだぐだ僕の C 言語とそれを学ぶことについて思ってることを書くだけにする．#1 からちゃんと入門っぽいエントリにするのでねｗ&lt;br /&gt;&lt;br /&gt;まず，C を学びたい人ってどういう人だろうねという話．とりあえず，C って有名だから学び始める人が多いのかもしれない．実際，僕はそんな感じで勉強し始めた．学校で教えられるから勉強し始めた人も多いと思う．最近だと，実務で必要だからという人もいるかもしれないね．Web アプリケーションでよく使われる言語からプログラミングを始めて，組み込みの仕事もやることになってみたいな友達を知ってるから．&lt;br /&gt;&lt;br /&gt;じゃ，C を学んでハッピーになれる人は？とりあえず，大学で研究するために必要な人は，ハッピーになれるはずだね．学ばないと研究にならないわけだしｗ実務で使用する人もハッピーになれると思うけど，入門書が役に立つとは思えないな．C の案件って組み込みが多いだろうし，入門書じゃそこまでカバーしきれないから．とりあえず，プログラミングを始めたくて C を選んだ人は，ハッピーにならない気がするな．いわゆる Windows アプリケーションを作成することを夢見てたり，ゲームプログラミングを夢見てるのであれば，C という選択肢はイバラの道だ．Windows API を叩いて Windows アプリケーションを作成するよりは，Visual Studio と C# で作った方が簡単だよね．ゲームを作るにしても，いまなら C# でいいんじゃないかなぁ．Direct X を C++ で叩くよりは，C# で叩いた方が行数が少なかったよね．ハッピーになる人なんて，UNIX アプリケーションのソースを読まなきゃならない人とか，C++ や Objective-C の前段階として学ぶ人くらいじゃないかなぁ．&lt;br /&gt;&lt;br /&gt;実際のところ C は広く使われてるから，なんでもかんでもやろうと思えばできる．ハードウェアに近いドライバから，GUI アプリケーションや Web アプリケーションまで．でも，C じゃなきゃ困るというところは，組み込み系とか UNIX アプリケーション系とかに限定されてくる．あとは，リバースエンジニアリングをする目的で Windows API を知らなきゃならないとかいう状況かな．その場合は，もちろんアセンブラの知識の方が重要になるけどね．&lt;br /&gt;&lt;br /&gt;という感じで，C をいまさらやらなくてもいいよなぁと思うところもあるわけだけど，大学ではまだ C を教えてるみたいだし，UNIX のサーバとかは C で開発されているのが多いし，とりあえず C を学びたい人はいそうだ．OpenGL や OpenMP，OpenCV を使って研究用の書き捨てのコードを書くなら C っていう選択肢は有りだし，C で書かれている便利なものが多くあるんだよな．&lt;br /&gt;&lt;br /&gt;うーん，またたび式では，Windows 上で C の UNIX 的な使い方を勉強しつつ，いろんなライブラリを使える程度のスキルを身につけられるようにすることを目標にしようかな．発展的には，Windows API を使ってみることで，C からかけ離れた使い方を勉強してみるとかｗあと，UNIX の開発ツールの使い方とかも一緒に学んで，UNIX アプリケーションのソースを読めるようにするとかね．&lt;br /&gt;&lt;br /&gt;まっ，こんなことをグダグダと書いてしまったけど，次回からはちゃんと C 入門を書いていきます．全編通しての例題として考えているのは，リバーシ！いわゆる，オセロねｗコンピュータの思考ルーチンとかも作って，最終的には GUI 化しようとか企んでるわけです♪&lt;br /&gt;&lt;br /&gt;ではでは，お楽しみにｗ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-2151192541880679163?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/2151192541880679163/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=2151192541880679163' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2151192541880679163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2151192541880679163'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2010/02/c-0.html' title='またたび式 C 入門 #0'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-6769281936167921118</id><published>2009-12-22T02:06:00.003+09:00</published><updated>2009-12-22T02:15:11.930+09:00</updated><title type='text'>WILLCOM のメールアドレスに迷惑メール</title><content type='html'>WILLCOM のメールアドレスに，12月15日から迷惑メールが届くようになった．サイトとかに登録しているメールアドレスでもないので，迷惑メールが届くようになるのはおかしい．そもそも，この現象についていろいろなブログが書いている．WILLCOM の方で，メールアドレスの流出があったのではないかと思ってしまう．&lt;br /&gt;&lt;br /&gt;WILLCOM の迷惑メール対策機能は，残念ながらしょぼいので今回の件に対応できそうにない．WILLCOM の方での対策を待つしかない．WILLCOM からの音沙汰がないので，現状について何らかの発表をしてほしいなと思う．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.206xs.com/webdiary/475.htm"&gt;WebDiary: Willcomでスパム爆発中！&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ohtsuka.cocolog-nifty.com/blog/2009/12/willcomcom-6f99.html"&gt;何の変哲もない新婚生活…: ＠willcom.comあての迷惑メールが届くようになった．&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-6769281936167921118?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/6769281936167921118/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=6769281936167921118' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6769281936167921118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6769281936167921118'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/12/willcom.html' title='WILLCOM のメールアドレスに迷惑メール'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-6151071483103474637</id><published>2009-11-04T05:51:00.006+09:00</published><updated>2009-11-04T06:24:49.197+09:00</updated><title type='text'>Dell Inspiron Mini 12 無線 LAN 換装 Atheros AR5007EG (AR5BXB63)</title><content type='html'>Dell Inspiron Mini 12 に搭載されている無線 LAN モジュール Broadcom BCM94312MCG を Yahoo! オークションで購入した  Atheros AR5007EG (AR5BXB63) に換装した．どちらも 802.11b/g 対応なのは変わらないが，FreeBSD をインストールして無線アクセスポイントとして使用したかったので，対応している Atheros のものにしたのだ．&lt;br /&gt;&lt;br /&gt;FreeBSD 7.2-RELEASE で認識し，クライアントとして使用できることは確認できたが，FreeBSD 7.1-RELEASE では認識できなかった．Windows XP でも，Aspire One の無線 LAN ドライバをインストールすることで使用できることを確認した．（ダウンロードできるサイトは参考文献にある．）&lt;br /&gt;&lt;br /&gt;以下，その作業手順．&lt;br /&gt;&lt;br /&gt;1. バッテリーを外す．&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/SvCa-yYcN5I/AAAAAAAAA2Q/5J4UKCJse9A/s1600-h/Inspiron+Mini+12+Wi-Fi%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/SvCa-yYcN5I/AAAAAAAAA2Q/5J4UKCJse9A/s320/Inspiron+Mini+12+Wi-Fi%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5399986356684076946" /&gt;&lt;/a&gt;&lt;br /&gt;2. 画面を最大まで開く．&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SvCa-jWjyiI/AAAAAAAAA2I/TEvCqnzescA/s1600-h/Inspiron+Mini+12+Wi-Fi%5B3%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SvCa-jWjyiI/AAAAAAAAA2I/TEvCqnzescA/s320/Inspiron+Mini+12+Wi-Fi%5B3%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5399986352649652770" /&gt;&lt;/a&gt;&lt;br /&gt;3. 左側の F1 のあたりにある隙間を使ってヒンジカバーを浮かせて外していく．&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SvCa-WPrB5I/AAAAAAAAA2A/AEuuknGZ9y8/s1600-h/Inspiron+Mini+12+Wi-Fi%5B4%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SvCa-WPrB5I/AAAAAAAAA2A/AEuuknGZ9y8/s320/Inspiron+Mini+12+Wi-Fi%5B4%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5399986349131106194" /&gt;&lt;/a&gt;&lt;br /&gt;4. ヒンジカバーを外したら，ヒンジカバーの陰に隠れていたキーボードを止めているネジを外す．&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SvCazpcYJzI/AAAAAAAAA14/7n2C_zPgNhM/s1600-h/Inspiron+Mini+12+Wi-Fi%5B5%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SvCazpcYJzI/AAAAAAAAA14/7n2C_zPgNhM/s320/Inspiron+Mini+12+Wi-Fi%5B5%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5399986165306107698" /&gt;&lt;/a&gt;&lt;br /&gt;5. キーボードを外すときには，キーボードと本体を繋いでいるケーブルに注意する．&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/SvCazd7qrnI/AAAAAAAAA1w/HrOmubWbi68/s1600-h/Inspiron+Mini+12+Wi-Fi%5B6%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/SvCazd7qrnI/AAAAAAAAA1w/HrOmubWbi68/s320/Inspiron+Mini+12+Wi-Fi%5B6%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5399986162216119922" /&gt;&lt;/a&gt;&lt;br /&gt;6. ケーブルのささっているところの左右のケーブルをロックしている茶色い部分を引き出してケーブルを外す．&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SvCazMMl2_I/AAAAAAAAA1o/PSwu2mGKjj0/s1600-h/Inspiron+Mini+12+Wi-Fi%5B7%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SvCazMMl2_I/AAAAAAAAA1o/PSwu2mGKjj0/s320/Inspiron+Mini+12+Wi-Fi%5B7%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5399986157455268850" /&gt;&lt;/a&gt;&lt;br /&gt;7. 無線 LAN モジュールについている白黒のケーブルを外し，ネジを外す．&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SvCay37n4GI/AAAAAAAAA1g/LrDbJ_ZL2i4/s1600-h/Inspiron+Mini+12+Wi-Fi%5B8%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SvCay37n4GI/AAAAAAAAA1g/LrDbJ_ZL2i4/s320/Inspiron+Mini+12+Wi-Fi%5B8%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5399986152015388770" /&gt;&lt;/a&gt;&lt;br /&gt;8. 無線 LAN モジュールが浮くので，交換したい無線 LAN モジュールに交換する．&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SvCayisu5II/AAAAAAAAA1Y/zOqZSeT2m8E/s1600-h/Inspiron+Mini+12+Wi-Fi%5B9%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SvCayisu5II/AAAAAAAAA1Y/zOqZSeT2m8E/s320/Inspiron+Mini+12+Wi-Fi%5B9%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5399986146315789442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;簡単に交換できるので，802.11n に対応させたりしたい人はやってみるといいかもしれない．Intel Wireless WiFi Link 4965AGN なら普通に購入できるし，ドライバも簡単に手に入ると思う．Windows でクライアントとして使用することを前提としてだけどね．&lt;br /&gt;&lt;br /&gt;関連製品：&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/B001Q79XZY?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=B001Q79XZY"&gt;Intel Wireless WiFi Link 4965AGN&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=B001Q79XZY" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://hellohelloworld.cocolog-nifty.com/blog/2009/01/inspiron-mini-2.html"&gt;へろへろ日記: Inspiron mini 12 分解&lt;/a&gt;&lt;br /&gt;&lt;a href="http://supportapj.dell.com/support/edocs/systems/ins1210/ja/sm/hingecvr.htm#wp1179889"&gt;Dell: Inspiron 1210 サービスマニュアル&lt;/a&gt;&lt;br /&gt;&lt;a href="http://support.acer-euro.com/drivers/notebook/as_one_150.html"&gt;Acer Europe: Drivers for Aspire One 150&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-6151071483103474637?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/6151071483103474637/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=6151071483103474637' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6151071483103474637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6151071483103474637'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/11/dell-inspiron-mini-12-lan-atheros.html' title='Dell Inspiron Mini 12 無線 LAN 換装 Atheros AR5007EG (AR5BXB63)'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zhVOi4fKc_M/SvCa-yYcN5I/AAAAAAAAA2Q/5J4UKCJse9A/s72-c/Inspiron+Mini+12+Wi-Fi%5B2%5D.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-6689572751722213953</id><published>2009-10-30T02:49:00.007+09:00</published><updated>2009-11-01T17:25:55.946+09:00</updated><title type='text'>FreeBSD でサーバ構築 #18 Cyrus IMAP 編</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2009/10/freebsd-17-uw-imap-imap.html#links"&gt;林檎生活100: FreeBSD でサーバ構築 #17 UW IMAP 編&lt;/a&gt;の続き．今回は，&lt;a href="http://cyrusimap.web.cmu.edu/"&gt;Cyrus IMAP&lt;/a&gt; で IMAP サーバを構築してみる．&lt;br /&gt;&lt;br /&gt;Cyrus IMAP は，メールボックスを1箇所で集中管理するタイプのサーバで，クウォータを設定できたり，サーバサイドでのメールフィルタ (Sieve) を使用できたりする．UW IMAP に比べ高機能で高性能だが，その分設定する項目も多くなっているので，導入は少し面倒である．このエントリでは，UW IMAP 編で UW IMAP を導入したときと同等の機能の IMAP サーバを構築することを目指すことにする．つまり，IMAP over SSL なサーバであり，クウォータやメールフィルタの設定は行わない．（そのような設定に付いては，参考文献を参照してほしい．）&lt;br /&gt;&lt;br /&gt;Cyrus IMAP の動作は，UW IMAP の動作とは大きく異なる．UW IMAP のように UNIX のメール環境と共存するわけではなく，完全に独立したメールボックスを構成する．そのため，サーバにログインして mail コマンドでメールを読むことはできなくなる．あくまで IMAP（設定によっては POP も可能．）でメールボックスにアクセスする．UNIX のメール環境における，ローカルのメールボックス (/var/mail) とユーザのメールボックス (~/mbox) は使用しないのだ．Sendmail のローカル配信が Cyrus IMAP のメールボックスになるように設定するので，このような動作になる．&lt;br /&gt;&lt;br /&gt;さて，さっそくインストールと設定をしていこう．&lt;br /&gt;&lt;br /&gt;1. Ports からインストールする．&lt;br /&gt;&lt;pre&gt;# cd /usr/ports/security/cyrus-sasl23&lt;br /&gt;# make install clean&lt;/pre&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/Su0iWUUNn0I/AAAAAAAAA1Q/n9YjztVkyn4/s1600-h/Cyrus+IMAP%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/Su0iWUUNn0I/AAAAAAAAA1Q/n9YjztVkyn4/s320/Cyrus+IMAP%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5399009295093047106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. cyrus ユーザの所有権を持つ証明書と秘密鍵を /var/imap/certs などに配置する．&lt;br /&gt;&lt;br /&gt;3. 設定ファイル (/usr/local/etc/imapd.conf) を変更する．下記設定項目について，該当行を変更する．&lt;br /&gt;&lt;pre&gt;allowplaintext: yes&lt;br /&gt;admins: root&lt;br /&gt;sasl_pwcheck_method: saslauthd&lt;br /&gt;sasl_mech_list: plain&lt;br /&gt;tls_cert_file: /var/imap/certs/cert.pem&lt;br /&gt;tls_key_file: /var/imap/certs/key.pem&lt;br /&gt;tls_ca_file: /var/imap/certs/cacert.pem&lt;br /&gt;tls_ca_path: /var/imap/certs&lt;/pre&gt;&lt;br /&gt;4. メールスプールなどを作成・設定するスクリプトを実行する．&lt;br /&gt;&lt;pre&gt;# /usr/local/cyrus/bin/mkimap&lt;/pre&gt;&lt;br /&gt;5. /etc/rc.conf に次の行を追加する．&lt;br /&gt;&lt;pre&gt;cyrus_imapd_enable="YES"&lt;/pre&gt;&lt;br /&gt;6.Cyrus IMAP を起動する．DB_ERROR ってのが大量に出るが，ユーザのメールボックスにメールが配信されると，そのメッセージはでなくなるので気にしない．&lt;br /&gt;&lt;pre&gt;# /usr/local/etc/rc.d/imapd start&lt;/pre&gt;&lt;br /&gt;7. ユーザのメールボックスを作成する．&lt;br /&gt;&lt;pre&gt;# cyradm --user root localhost&lt;br /&gt;&gt; createmailbox user.takuya&lt;br /&gt;&gt; quit&lt;/pre&gt;&lt;br /&gt;8. Sendmail のローカル配信を Cyrus IMAP にするので，設定ファイル (僕の環境では，/etc/mail/lucifer.legna.org.mc である．) に以下の行を追記する．&lt;br /&gt;&lt;pre&gt;dnl Cyrus IMAP options&lt;br /&gt;define(`confLOCAL_MAILER', `cyrusv2')&lt;br /&gt;MAILER(`cyrusv2')&lt;/pre&gt;&lt;br /&gt;9. Sendmail に設定を反映し，再起動する．&lt;br /&gt;&lt;pre&gt;# cd /etc/mail&lt;br /&gt;# make install&lt;br /&gt;# /etc/rc.d/sendmail restart&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;設定完了♪メールの送受信をしてテストしてみてほしい．WAN 側から接続するときは TCP の143番へのポートマッピングを設定すること．&lt;br /&gt;&lt;br /&gt;残った問題として，IMAP over TLS の状態じゃなく，平文の状態でもログインができてしまうことがある．imapd.conf の allowplaintext を no にすればいいのだけど，そうすると cyradm が使えなくなる．うーん，どうしたらいいのかな．&lt;br /&gt;&lt;br /&gt;次回は，メールのちょっとした設定などについて解説して，メール編は終わりの予定♪では，また．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://cyrusimap.web.cmu.edu/imapd/"&gt;Cyrus IMAP Server v2.3 Documentation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873110432?ie=UTF8&amp;tag=takuya0301-22&amp;link_code=as3&amp;camp=767&amp;creative=3999&amp;creativeASIN=4873110432"&gt;IMAP&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-6689572751722213953?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/6689572751722213953/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=6689572751722213953' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6689572751722213953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6689572751722213953'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/10/freebsd-18-cyrus-imap.html' title='FreeBSD でサーバ構築 #18 Cyrus IMAP 編'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zhVOi4fKc_M/Su0iWUUNn0I/AAAAAAAAA1Q/n9YjztVkyn4/s72-c/Cyrus+IMAP%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-8884402432967313078</id><published>2009-10-29T03:35:00.002+09:00</published><updated>2009-10-29T03:56:08.883+09:00</updated><title type='text'>FreeBSD 7.1-RELEASE on DELL Inspiron Mini 12</title><content type='html'>インストールしてみての雑感．&lt;br /&gt;&lt;br /&gt;無線 LAN を認識しないのは痛い．比較的交換が楽なので，Atheros チップの無線 LAN モジュールに交換してみる予定．&lt;br /&gt;&lt;br /&gt;snd_hda で，音は多分出る．未確認だけど．&lt;br /&gt;&lt;br /&gt;SD カードをマウントできた．&lt;br /&gt;&lt;br /&gt;Web カメラもデバイスとしては認識してるみたい．&lt;br /&gt;&lt;br /&gt;トラックパッドは当然動くだろうな．&lt;br /&gt;&lt;br /&gt;S3, S4 は動作せず．画面を閉じても液晶は消えるけどサスペンドには移行しない．&lt;br /&gt;&lt;br /&gt;VGA ポートはわからん．FreeBSD で外部ディスプレイを使おうとしたことが無いからなぁ．&lt;br /&gt;&lt;br /&gt;こいつをベースに無線 LAN ブロードバンドルータ兼サーバを作成する予定．お楽しみに．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-8884402432967313078?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/8884402432967313078/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=8884402432967313078' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8884402432967313078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8884402432967313078'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/10/freebsd-71-release-on-dell-inspiron.html' title='FreeBSD 7.1-RELEASE on DELL Inspiron Mini 12'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-6859933250536022612</id><published>2009-10-29T02:22:00.004+09:00</published><updated>2009-10-31T18:33:01.019+09:00</updated><title type='text'>Windows XP と FreeBSD デュアルブートメモ</title><content type='html'>Windows XP インストール済み PC (DELL Inspiron Mini 12) に，FreeBSD をインストールしてデュアルブートする方法についてのメモ．&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gparted.sourceforge.net/livecd.php"&gt;GParted Live CD&lt;/a&gt; でパーティションを縮小し，空き領域を作成する．&lt;br /&gt;&lt;br /&gt;空き領域に FreeBSD をインストールする．ブートマネージャを None にすると FreeBSD だけが起動するようになる．&lt;br /&gt;&lt;br /&gt;FreeBSD に付属しているブートマネージャをインストールするなら，インストール時に BootMgr を選択すること．インストール後にブートマネージャをインストールするなら，次のコマンドを実行すること．&lt;br /&gt;&lt;pre&gt;# boot0cfg -B /dev/da0&lt;/pre&gt;&lt;br /&gt;Windows XP 付属のブートマネージャを使用する場合は，次の手順を踏むこと．&lt;br /&gt;&lt;br /&gt;1. FreeBSD を起動し，USB メモリ (/dev/da0s1) に FreeBSD のネイティブルートパーティション (/dev/ad0s2) の最初のセクタをファイル化したものを保存する．&lt;br /&gt;&lt;pre&gt;# mount_msdosfs /dev/da0s1 /mnt&lt;br /&gt;# cd /mnt&lt;br /&gt;# dd if=/dev/ad0s2 of=/mnt/bootsect.bsd bs=512 count=1&lt;/pre&gt;&lt;br /&gt;2. Windows XP インストールディスクから回復コンソールを起動し，MBR を修復する．（ここらへんがあやふや．ブートの話なんてほとんど忘れてしまったなぁ．）&lt;br /&gt;&lt;pre&gt;&gt; fixmbr&lt;br /&gt;&gt; fixboot c:&lt;br /&gt;&gt; exit&lt;/pre&gt;&lt;br /&gt;3. FreeBSD の fdisk でアクティブパーティションを Windows XP の入ってるパーティションに変更する．&lt;br /&gt;&lt;pre&gt;# fdisk -a&lt;/pre&gt;&lt;br /&gt;4. Windows XP が起動したら，コマンドプロンプトを起動し，先ほどの USB メモリ (F:) から bootsect.bsd を C ドライブにコピーする．&lt;br /&gt;&lt;pre&gt;&gt; copy F:\bootsect.bsd C:\&lt;/pre&gt;&lt;br /&gt;5. C:\boot.ini を開き，最終行に次の行を追加する．（なお，最終行のあとに空行が1行必要だった気がする．FreeBSD 7.1-RELEASE の部分は自由に命名できる．）&lt;br /&gt;&lt;pre&gt;C:¥BOOTSECT.BSD="FreeBSD 7.1-RELEASE"&lt;/pre&gt;&lt;br /&gt;メモ書きなので，過信しないようにしてください．fixmbr と fixboot がよくわかっていないので，詳しい人教えてください．&lt;br /&gt;&lt;br /&gt;追記（2009年10月31日）：&lt;br /&gt;fixmbr と fixboot はいらないらしい．アクティブパーティションが変更されているのが問題みたいだね．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-6859933250536022612?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/6859933250536022612/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=6859933250536022612' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6859933250536022612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6859933250536022612'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/10/windows-xp-freebsd.html' title='Windows XP と FreeBSD デュアルブートメモ'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-5122412260102085113</id><published>2009-10-28T17:38:00.002+09:00</published><updated>2009-10-28T17:53:59.709+09:00</updated><title type='text'>LaCie 4big Quadra 修理</title><content type='html'>悪いことは重なるものだ．LaCie 4big Quadra のドライブがひとつお亡くなりになった．&lt;br /&gt;&lt;br /&gt;そして，マウントできなくなった．RAID 5 + Spare 構成だから，自動的にリビルドがかかるから大丈夫なはずなんだが，リビルド中に電源を落としてしまったせいかも．（寝ぼけた頭で，認識しねぇなぁと思って，電源落としたんだよね．馬鹿でゴメンよ．）&lt;br /&gt;&lt;br /&gt;まずいなってことで，Data Rescue II 体験版でサルベージできることを確認し，結局ダウンロード購入した．&lt;br /&gt;&lt;br /&gt;重要なデータだけさくっとサルベージしたけど，全部取り出すには保存先がないってことで，あわてて外付けドライブを購入．これが届くのはだいぶ先になりそう……．&lt;br /&gt;&lt;br /&gt;今後の運用計画．RAID5 について調べて，案外危ないらしいってことで，今度から RAID10 で使おうと考え中．そうすると Spare がなくなってしまうのだけど，RAID10 で壊れたら，今回購入予定の外付け HDD にディスクのクローンを作成してバックアップを取るという方法でいこうかなと．RAID10 で1台故障中でも使用はできるし，万が一もう1台壊れたとしても，外付け HDD へのバックアップがあるから，被害は最小限にとどめられると思ったから．それ以前に，外付け HDD へのバックアップも月1くらいで定期的に行った方が良さそうだなぁ．&lt;br /&gt;&lt;br /&gt;バックアップ地獄だなｗｗｗ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-5122412260102085113?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/5122412260102085113/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=5122412260102085113' title='3 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5122412260102085113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5122412260102085113'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/10/lacie-4big-quadra.html' title='LaCie 4big Quadra 修理'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-4965717507275736101</id><published>2009-10-27T17:21:00.003+09:00</published><updated>2009-10-27T17:43:05.025+09:00</updated><title type='text'>Intel SSDSA2MH080G1C5 修理</title><content type='html'>MacBook に使ってた Intel の SSD が壊れた……．&lt;br /&gt;&lt;br /&gt;あれ，Mail が落ちた？って思ったらフリーズして，再起動しても起動しなくなった．ディスク自体は認識していて，パーティション切り直したりもできたけど，結局 OS インストール時にファイルがコピーできなくてダメ．&lt;br /&gt;&lt;br /&gt;いまは，MacBook に元々入っていた Fujitsu の HDD 環境に戻った．修理には2〜3週間くらいかかるらしい．新しい方の SSD で帰ってきたらいいのになぁ．&lt;br /&gt;&lt;br /&gt;それにしても，Time Machine のお陰で復旧がめちゃくちゃ早い．Time Machine 様々だねぇ．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-4965717507275736101?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/4965717507275736101/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=4965717507275736101' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4965717507275736101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4965717507275736101'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/10/intel-ssdsa2mh080g1c5.html' title='Intel SSDSA2MH080G1C5 修理'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-7935609815366188499</id><published>2009-10-23T22:13:00.009+09:00</published><updated>2009-10-26T22:08:14.144+09:00</updated><title type='text'>FreeBSD でサーバ構築 #17 UW IMAP 編</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2009/10/freebsd-16-ssl.html"&gt;林檎生活100: FreeBSD でサーバ構築 #16 SMTP over SSL: TLS による暗号化通信&lt;/a&gt;の続き．今回は，&lt;a href="http://www.washington.edu/imap/"&gt;UW IMAP&lt;/a&gt; で IMAP サーバを構築する．&lt;br /&gt;&lt;br /&gt;UW IMAP は，ワシントン大学で開発された IMAP サーバで，リファレンス実装的な立場のものである．伝統的な UNIX のメール環境（FreeBSD のメール環境も含む．）に親和性が高く，導入が容易であるので，今回の IMAP サーバに選択した．とりあえず，IMAP over SSL が使用でき，IMAP の基本的な機能を持っているので十分だろう．ただ，ほかの IMAP サーバよりもメールボックスへのアクセスに時間がかかる（どちらかというと，サーバではなくメールボックス形式の問題．）ので，大量のメールを捌く必要があるのであれば，次回以降に解説する &lt;a href="http://cyrusimap.web.cmu.edu/"&gt;Cyrus IMAP&lt;/a&gt; を使用した方がいいかもしれない．なお，UW IMAP の持つ機能の詳細は，Web サイトや参考文献を参照してほしい．&lt;br /&gt;&lt;br /&gt;UW IMAP の動作はとてもシンプルだ．メールクライアントが IMAP サーバへのアクセスを試みると &lt;a href="http://ja.wikipedia.org/wiki/Inetd"&gt;inetd&lt;/a&gt; （TCP/UDP ポートを監視し，そのポートにパケットが届くと対応づけられたサーバを起動するデーモン．）によって起動され，メールボックスを操作したり，情報を返したりするように動作する．また，サーバが起動された際に，ローカルのメールボックス (/var/mail) からユーザのメールボックス (~/mbox) にメールを移動させる動作をする．（ただし，~/mbox が存在しない場合は，ローカルのメールボックスを IMAP サーバのメールボックスと見なす．）これによって，サーバ上でメールを mail コマンドで読んでも，メールクライアントで UW IMAP を経由してメールを読んでも，ユーザのメールボックスにメールが保持される．ゆえに，自然に IMAP サーバを導入することができる．&lt;br /&gt;&lt;br /&gt;インストール方法は，次のとおりである．&lt;br /&gt;&lt;br /&gt;1. Ports からインストールする．&lt;br /&gt;&lt;span style="color: red;"&gt;SSL を使用しない場合は，SSL_AND_PLAINTEXT にチェックを入れること．&lt;/span&gt;デフォルトで，SSL を使用しない認証をはじくようにコンパイルされるため．&lt;br /&gt;&lt;pre&gt;# cd /usr/ports/mail/imap-uw&lt;br /&gt;# make install clean&lt;/pre&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SuWF9XuaasI/AAAAAAAAA1I/eLniBgiBwH4/s1600-h/UW+IMAP%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SuWF9XuaasI/AAAAAAAAA1I/eLniBgiBwH4/s320/UW+IMAP%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5396867017860606658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/SuWF9GL25UI/AAAAAAAAA1A/jPZso_EPKAM/s1600-h/UW+IMAP%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/SuWF9GL25UI/AAAAAAAAA1A/jPZso_EPKAM/s320/UW+IMAP%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5396867013152269634" /&gt;&lt;/a&gt;&lt;br /&gt;2. inetd の設定ファイル /etc/inetd.conf の該当行を次のように有効化する．&lt;br /&gt;&lt;pre&gt;# example entry for the optional imap4 server&lt;br /&gt;#&lt;br /&gt;imap4  stream  tcp     nowait  root    /usr/local/libexec/imapd        imapd（コメントを外す．）&lt;/pre&gt;&lt;br /&gt;3. /etc/rc.conf に次の行を追加し， inetd を有効化する．&lt;br /&gt;&lt;pre&gt;inetd_enable="YES"&lt;/pre&gt;&lt;br /&gt;4. inetd を起動する．&lt;br /&gt;&lt;pre&gt;# /etc/rc.d/inetd start&lt;/pre&gt;&lt;br /&gt;5. 証明書を配置する．&lt;br /&gt;&lt;pre&gt;# cd /etc/mail/certs&lt;br /&gt;# mkdir /usr/local/certs&lt;br /&gt;# umask 066&lt;br /&gt;# cat key.pem cert.pem &gt; /usr/local/certs/imapd.pem&lt;br /&gt;# umask 022&lt;/pre&gt;&lt;br /&gt;鍵と証明書を同じファイルに記述して，/usr/local/certs に imapd.pem というファイル名で配置するだけ．（場所とファイル名は固定みたい．）&lt;br /&gt;&lt;br /&gt;6. メールボックスのスケルトンを作っておく．&lt;br /&gt;&lt;pre&gt;# touch /usr/share/skel/mbox&lt;/pre&gt;&lt;br /&gt;これは，新規ユーザを追加したときに自動的に mbox がホームディレクトリに作成されるようにするためだ．UW IMAP は，ホームディレクトリに mbox があると /var/mail からメールを取得してくるという仕様になっていて，mbox が無い場合は /var/mail のメールボックスを直接参照する．デフォルトのままユーザが使用すると，/var/mail 以下にメールが蓄積され，論理パーティションを切っている /var を圧迫することになりかねないので，このようなスケルトンを作成する．（まぁ，ssh や ftp でログインされて，mbox を消されたら，結局 /var/mail にメールがたまるわけだけどね．）&lt;br /&gt;&lt;br /&gt;これで設定完了♪&lt;br /&gt;&lt;br /&gt;外部から接続する場合は，TCP の143番に対してのポートマッピングを設定しよう．また，認証については，PAM を使用しているのだが，/etc/pam.d/imap の内容のままで問題ないので省略した．&lt;br /&gt;&lt;br /&gt;次回は，Cyrus IMAP の設定について説明する．Cyrus IMAP には，振り回されたからなぁ．（自分のミスでｗｗｗ）&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.washington.edu/imap/"&gt;University of Washington: IMAP Information Center&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873110432?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873110432"&gt;IMAP&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873110432" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-7935609815366188499?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/7935609815366188499/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=7935609815366188499' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7935609815366188499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7935609815366188499'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/10/freebsd-17-uw-imap-imap.html' title='FreeBSD でサーバ構築 #17 UW IMAP 編'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zhVOi4fKc_M/SuWF9XuaasI/AAAAAAAAA1I/eLniBgiBwH4/s72-c/UW+IMAP%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-5966920137811313740</id><published>2009-10-15T05:19:00.007+09:00</published><updated>2009-10-22T22:30:50.073+09:00</updated><title type='text'>FreeBSD でサーバ構築 #16 SMTP over SSL: TLS による暗号化通信</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2009/09/freebsd-15-smtp-authentication-smtp.html"&gt;林檎生活100: FreeBSD でサーバ構築 #15 SMTP Authentication (SMTP-AUTH)&lt;/a&gt;の続き．前回は，認証のための機能を Sendmail に導入した．今回は，その認証のための通信を暗号化するために SMTP over SSL を導入する．&lt;br /&gt;&lt;br /&gt;SMTP over SSL とは，SMTP セッションを SSL によって暗号化するものだ．（SSL と TLS については参考文献を参照してほしい．）これによって，メールクライアントからメールサーバへの通信は暗号化される．認証を行い，メールを受け渡すプロセスまでだ．しかし，メールサーバから次のメールサーバに転送される場合の通信の暗号化は保証されない．つまり，メールが最終配送先に届くまでの経路すべてが暗号化されるわけではないことに注意しよう．ここで暗号化の対象としているのは，メールの内容ではなく，認証時のユーザ名とパスワードなのだ．（メール本体の暗号化の問題は，全然別になるってことだね．）&lt;br /&gt;&lt;br /&gt;さて，さっそくその機能を導入しよう．幸運なことに，この機能はすでに FreeBSD の Sendmail に入っているので，SSL 証明書を配置し，設定を変更するだけでいい．（生成については，&lt;a href="http://applelife100.blogspot.com/2009/07/openssl.html#links"&gt;林檎生活100: OpenSSL で自己署名証明書を作成する&lt;/a&gt;か&lt;a href="http://applelife100.blogspot.com/2009/07/namecheap-ssl.html#links"&gt;林檎生活100: Namecheap で格安 SSL 証明書を取得する方法&lt;/a&gt;を参考にしてほしい．）&lt;br /&gt;&lt;br /&gt;1. /etc/mail/certs ディレクトリを作成する．&lt;br /&gt;&lt;pre&gt;# mkdir /etc/mail/certs&lt;/pre&gt;&lt;br /&gt;2. /etc/mail/certs ディレクトリに証明書を配置（もしくは生成）し，アクセス権を次のように変更する．（秘密鍵のアクセス権に注意．証明書へのシンボリックリンクととなるハッシュのファイル名は，対象の証明書によって異なる．ちょっとここらへんの用途がわかってない．）&lt;br /&gt;・自己署名証明書の場合&lt;br /&gt;lrwxr-xr-x  1 root  wheel     8 Oct 15 05:06 807f5ca7.0 -&gt; cert.pem&lt;br /&gt;-rw-r--r--  1 root  wheel  1172 Oct 13 05:41 cert.pem&lt;br /&gt;-rw-------  1 root  wheel   887 Oct 13 05:41 key.pem&lt;br /&gt;&lt;br /&gt;・ルート CA による署名済み SSL 証明書の場合&lt;br /&gt;lrwxr-xr-x  1 root  wheel    10 Oct 15 05:05 594f1775.0 -&gt; cacert.pem&lt;br /&gt;-rw-r--r--  1 root  wheel  1162 Oct 13 05:41 cacert.pem&lt;br /&gt;-rw-r--r--  1 root  wheel  1172 Oct 13 05:41 cert.pem&lt;br /&gt;-rw-------  1 root  wheel   887 Oct 13 05:41 key.pem&lt;br /&gt;&lt;br /&gt;3. /etc/mail/lucifer.legna.org.mc（自分の環境に合わせた設定ファイルを変更すること．）を変更する．&lt;br /&gt;3.1. まず，非暗号化通信時に認証を行わないように設定する．これによって，暗号化されていない状態での認証を防ぎ，ユーザ名やパスワードの漏洩を防止する．&lt;br /&gt;&lt;pre&gt;dnl Set SASL options&lt;br /&gt;TRUST_AUTH_MECH(`PLAIN')&lt;br /&gt;define(`confAUTH_MECHANISMS', `PLAIN')&lt;br /&gt;define(`confAUTH_OPTIONS', `p')（この行を追加する．）&lt;/pre&gt;&lt;br /&gt;3.2. 使用する SSL 証明書など，SMTP over SSL に関わるオプションを設定する．（上から順に，証明書ディレクトリへのパス，CA 証明書へのパス，サーバ証明書へのパス，サーバ秘密鍵へのパスである，最後のオプションは，クライアント検証を行わないというオプションである．クライアント認証うんぬんの話は割愛する．）&lt;br /&gt;・自己署名証明書の場合&lt;br /&gt;&lt;pre&gt;dnl SSL Options&lt;br /&gt;define(`confCACERT_PATH',`/etc/mail/certs')&lt;br /&gt;define(`confCACERT',`/etc/mail/certs/cert.pem')&lt;br /&gt;define(`confSERVER_CERT',`/etc/mail/certs/cert.pem')&lt;br /&gt;define(`confSERVER_KEY',`/etc/mail/certs/key.pem')&lt;br /&gt;define(`confTLS_SRV_OPTIONS', `V')&lt;/pre&gt;&lt;br /&gt;・ルート CA による署名済み SSL 証明書の場合&lt;br /&gt;&lt;pre&gt;dnl SSL Options&lt;br /&gt;define(`confCACERT_PATH',`/etc/mail/certs')&lt;br /&gt;define(`confCACERT',`/etc/mail/certs/cacert.pem')&lt;br /&gt;define(`confSERVER_CERT',`/etc/mail/certs/cert.pem')&lt;br /&gt;define(`confSERVER_KEY',`/etc/mail/certs/key.pem')&lt;br /&gt;define(`confTLS_SRV_OPTIONS', `V')&lt;/pre&gt;&lt;br /&gt;4. 設定ファイルを更新し，Sendmail  を再起動する．&lt;br /&gt;&lt;pre&gt;# cd /etc/mail&lt;br /&gt;# make install&lt;br /&gt;# /etc/rc.d/sendmail restart&lt;/pre&gt;&lt;br /&gt;これで，SMTP over SSL による通信ができるようになったはずである．メールクライアントの設定を変更して，TLS による接続を試みてみるといい．また，暗号化していない状態での認証が棄却されることを確かめよう．&lt;br /&gt;&lt;br /&gt;また，telnet で 250-STARTTLS が表示されることで設定されているか確認できる．STARTTLS というのは，暗号化通信を開始するコマンド名である．&lt;br /&gt;&lt;br /&gt;正常に動作しないときは，/var/log/maillog を確認してみよう．エラーメッセージがファイルの最後あたりに出ていると思う．&lt;br /&gt;&lt;br /&gt;以上．こんな感じで Sendmail を設定して，メールクライアントから見た場合の送信用サーバが完成した♪&lt;br /&gt;&lt;br /&gt;WAN 側から接続する際には，TCP 25 番に対してポートマッピングを設定しよう．&lt;br /&gt;&lt;br /&gt;次回は，メールクライアントから見た受信用サーバを構築の段階に入る．いまや自分用サーバで POP サーバを使う必要性は感じないので，IMAP サーバを対象とする．メジャーな IMAP サーバはいくつかあるが，この Blog では UW IMAP と Cyrus IMAP を取り上げる．導入な簡単な UW IMAP を先にさっくり構築してみて，その後で Cyrus-IMAP の構築をやる．少ない人数で大量のメールをさばかないのであれば，前者の UW IMAP で十分だと思う．UNIX のメールシステムとの親和性も高いので，すごく自然に導入できる．しかし，人数が多かったり大量のメールをさばかなければならないのであれば，後者の Cyrus IMAP を使用した方がいいだろう．クウォータを利用したい場合もこっちになる．&lt;br /&gt;&lt;br /&gt;とりあえず，それぞれのサーバの特徴などは次回以降説明する．お楽しみに〜．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://ja.wikipedia.org/wiki/Secure_Sockets_Layer"&gt;Wikipedia: Secure Sockets Layer&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.rfc-editor.org/rfc/rfc2487.txt"&gt;RFC2487: SMTP Service Extension for Secure SMTP over TLS&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111765?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111765"&gt;sendmail 第3版〈VOLUME1〉運用編&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111765" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111803?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111803"&gt;sendmail 第3版〈VOLUME2〉設定編&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111803" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111889?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111889"&gt;sendmailクックブック―設定と運用のためのレシピ集&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111889" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.freebsd.org/doc/en/books/handbook/"&gt;FreeBSD Handbook&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;追記（2009年10月15日）：&lt;br /&gt;クライアント検証・認証についての補足．&lt;br /&gt;&lt;br /&gt;今回の設定で，メールクライアントがサーバを検証することが可能になり，接続先メールサーバが保証されることになる．（自己署名の場合はダメだけどねｗ）しかし，メールサーバはクライアントを認証を通った誰かとしか感知しない．よって，サーバがクライアントを検証したい場合に，クライアント検証が必要になる．しかしながら，証明書を持って接続してくるクライアントを検証するという設定が今回のサーバに必要ないと思ったので，自動的に検証しようとする動作を無効化するオプションを付加した．（また，僕の理解が浅いので説明したくなかったというのもあるｗ）&lt;br /&gt;&lt;br /&gt;クライアント認証というのは，クライアントの証明書をもとに認証する方法．これも使い方によっては便利だと思うのだが，僕が必要としなかったのと，その説明をきちんとできなさそうだったので説明していない．&lt;br /&gt;&lt;br /&gt;加えて，今回設定したサーバがメールを転送する際には，別のサーバから見てクライアントになる．その際に証明書を呈示する設定もできるのだが，省略してある．これについても必要性を感じなかったからである．&lt;br /&gt;&lt;br /&gt;今回の設定は，あくまでユーザ名とパスワードによる認証を暗号化することが目的なので，ほかの観点について抜けていて申し訳ない．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-5966920137811313740?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/5966920137811313740/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=5966920137811313740' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5966920137811313740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5966920137811313740'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/10/freebsd-16-ssl.html' title='FreeBSD でサーバ構築 #16 SMTP over SSL: TLS による暗号化通信'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-5083836771601925606</id><published>2009-10-12T01:31:00.002+09:00</published><updated>2009-10-12T02:56:02.932+09:00</updated><title type='text'>FreeBSD でサーバ構築 #A SSH と公開鍵認証</title><content type='html'>SSH の設定について，直接コンピュータを触れる環境であれば，特に SSH を使ってリモートからログインする必要はないわけだが，ファイルをコピーする必要があったり，外出先からログインする必要があったりするときには便利なので，その設定を解説する．&lt;br /&gt;&lt;br /&gt;リモートからパスワードログインをするだけであれば，次のように設定するだけで，好きな SSH クライアントからアクセスできるようになる．&lt;br /&gt;&lt;br /&gt;1. /etc/rc.conf に次の行を追加する．&lt;br /&gt;&lt;pre&gt;sshd_enable="YES"&lt;/pre&gt;&lt;br /&gt;2. 再起動するか，次のコマンドを実行する．&lt;br /&gt;&lt;pre&gt;# /etc/rc.d/sshd start&lt;/pre&gt;&lt;br /&gt;これだけだ．たとえば，Mac OS X のターミナルからログインしたい場合は，次のようなコマンドを打ち，プロンプトに従ってパスワードを入力するだけでいい．&lt;br /&gt;&lt;pre&gt;$ ssh takuya@192.168.1.254（ユーザ名@ホスト名の形になる．）&lt;/pre&gt;&lt;br /&gt;はじめての接続のときに，yes/no のプロンプトがでるが，yes と答えておこう．これは，接続先ホストを known_hosts に加えるかという質問で，known_hosts に記述されているホストに再度接続しようとした場合に，そのホストが前回接続したホストと同一かということをチェックするための仕組みになっている．（同じホスト名で接続しても，実際のコンピュータが同一でなく，ログインパスワードを盗まれるようなダミーサーバに接続しているということが考えられるので，このような仕組みでチェックしている．）&lt;br /&gt;&lt;br /&gt;しかしながら，このような方法だとパスワードが暗号化されているとはいえ，パスワードを入力するという作業が伴うため，ヒューマンエラーによってパスワードを露呈してしまう可能性がある．（たとえば，ログイン名としてパスワードを入力してしまうようなミス．）したがって，極力パスワードを入力せずにログインするようにしたい．&lt;br /&gt;&lt;br /&gt;SSH には，そのためのログイン方法のひとつとして，公開鍵認証が含まれている．公開鍵認証についての説明はこのエントリ内で解説できる内容ではないので割愛する．また，SSH が公開鍵認証をどのように使っているかについても割愛する．詳細が知りたい方は，参考文献を読んでほしい．&lt;br /&gt;&lt;br /&gt;ひとつ言えることは，公開鍵認証によって安全性が高まるということだ．公開鍵認証時に必要なのは，鍵となるファイルとその鍵を手元で複合するパスフレーズ（まあ，パスワードみたいなものだ．）となる．パスワードひとつだけよりも安全そうな気がすると思うｗ鍵もパスフレーズもネットワーク上を流れない認証方式なのでより安全ということだ．鍵を誰かに奪われても，パスフレーズがないと使えないしね．&lt;br /&gt;&lt;br /&gt;では，公開鍵認証をできるように設定してみよう．前述の設定を行って，パスワード認証ができる状態であるとする．公開鍵認証の設定は，Mac OS X のターミナルから行う．&lt;br /&gt;&lt;br /&gt;1. 鍵を生成する．&lt;br /&gt;&lt;pre&gt;$ ssh-keygen&lt;br /&gt;Generating public/private rsa key pair.&lt;br /&gt;Enter file in which to save the key (/Users/takuya/.ssh/id_rsa): &lt;br /&gt;Enter passphrase (empty for no passphrase): &lt;br /&gt;Enter same passphrase again: &lt;/pre&gt;&lt;br /&gt;2. 鍵を配置する．鍵の保存用ディレクトリ（ssh の known_hosts なども入る．）を接続先ホストに作成し，そこに authorized_keys というファイルを作成し，公開鍵の情報を追記している．&lt;br /&gt;&lt;pre&gt;$ ssh takuya@192.168.1.254 'mkdir .ssh'&lt;br /&gt;$ cat .ssh/id_rsa.pub | ssh takuya@192.168.1.254 'cat &gt;&gt; .ssh/authorized_keys'&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;これで完了♪公開鍵認証で接続するときもコマンドは同じで，公開鍵認証が自動的に使用されるようになる．&lt;br /&gt;&lt;pre&gt;$ ssh takuya@192.168.1.254&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;WAN からのアクセスも許容する場合は，公開鍵認証のみを使用するように設定しよう．/etc/ssh/sshd_config の次の行を変更する．&lt;br /&gt;&lt;pre&gt;# Change to no to disable PAM authentication&lt;br /&gt;#ChallengeResponseAuthentication yes&lt;br /&gt;ChallengeResponseAuthentication no（この行を追記する．）&lt;/pre&gt;&lt;br /&gt;なんで，PasswordAuthentication no の追記でないのかということが気になると思う．不勉強なので正確性に欠けるかもしれないが，簡単に説明しよう．まず PasswordAuthentication は FreeBSD 7.1-RELEASE の SSH のデフォルト設定は no になっているので，パスワード認証はされない．しかし，ChallengeResponseAuthentication のデフォルト設定は yes になっている．さらに，チャレンジレスポンス認証は，UsePAM が yes になっているため PAM を使用するようになっているので，PAM のデフォルト設定上パスワード認証になるということだ．&lt;br /&gt;&lt;br /&gt;あと，WAN からのアクセスを行う際に，間にルータがある場合は TCP 22番のポートマッピングを設定することを忘れないようにしよう．&lt;br /&gt;&lt;br /&gt;以上，ざっと簡単に SSH の解説を行った．ちょっと適当に流してしまったので，ちゃんと勉強したい人はもっときちんと説明している Web サイトを参照したり，参考文献にあげた本を参照してね．&lt;br /&gt;&lt;br /&gt;あー，そういえば，Leopard からキーチェーンと連動する ssh-agent っぽい機能が付いたみたいで，かなり便利♪裏側がどーなってるか知らないから，ちょっとわからない部分があってとまどうけどね……．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873112877?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873112877"&gt;実用SSH 第2版―セキュアシェル徹底活用ガイド&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873112877" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://donrails.araki.net/archives/id/6431"&gt;ARAKI notes: ssh-copy-idがmacにないの不便だなあ，と一瞬おもったのでcopyしてくる&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-5083836771601925606?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/5083836771601925606/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=5083836771601925606' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5083836771601925606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5083836771601925606'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/10/freebsd-ssh.html' title='FreeBSD でサーバ構築 #A SSH と公開鍵認証'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-115171709342938715</id><published>2009-10-09T01:31:00.007+09:00</published><updated>2009-10-09T02:40:57.800+09:00</updated><title type='text'>携帯シンク for Mac 5 で BAUM のアドレス帳と Snow Leopard のアドレスブックを同期</title><content type='html'>Willcom のケータイをネットインデックスの nico.neco から京セラの BAUM に機種変更して，Mac とアドレス帳の同期ができるぞと思って携帯シンク for Mac 5 を購入した♪BAUM 対応を謳ってはいないんだけど，どうやら Honey Bee 2 の設定でいけるらしいので，その設定を行った際のメモ．&lt;br /&gt;&lt;br /&gt;○携帯シンク［電話帳］&lt;br /&gt;1. メニューバー&gt;携帯シンク[電話帳]&gt;環境設定…をクリック．&lt;br /&gt;2. 以下の項目を設定して，設定確認をクリック．&lt;br /&gt;接続ケーブル：自動&lt;br /&gt;携帯電話機種：WILLCOM HONEY BEE 2&lt;br /&gt;暗証番号：●●●●（ケータイの設定にあわせてね．）&lt;br /&gt;&lt;br /&gt;○iSync&lt;br /&gt;1. 携帯シンクを起動．&lt;br /&gt;2. メニューバー&gt;携帯シンク&gt;環境設定…をクリック．&lt;br /&gt;3. 以下の項目を設定して，設定確認をクリック．&lt;br /&gt;携帯電話機種：WILLCOM HONEY BEE 2&lt;br /&gt;暗証番号：●●●●（ケータイの設定にあわせてね．）&lt;br /&gt;4. メニューバー&gt;アプリケーション&gt;携帯シンク iSync 登録補助ツールをクリック．&lt;br /&gt;5. USB mini-B ケーブル (WILLCOM) をクリック．&lt;br /&gt;6. iSync が起動していたら終了させ，待ち受け画面を表示した BAUM と Mac を付属の USB ケーブルで接続．&lt;br /&gt;7. BAUM の製造番号（ケータイの電池パックを外すとあるシールに記述されている．）を入力し，確認をクリック．&lt;br /&gt;8. iSync のアイコンをクリックし，メニューバー&gt;ファイル&gt;情報を見るで“iSync”の情報を開き，32ビットモードで開くにチェックを入れる．（64ビットアプリケーションに携帯シンクが対応していないかららしい．）&lt;br /&gt;9. iSync を起動し，メニューバー&gt;デバイス&gt;デバイスを追加…をクリック．&lt;br /&gt;10. Honey Bee 2 (実際に接続されているケータイは BAUM だけどね．) が見つかって，アドレス帳を同期できるようになる．&lt;br /&gt;&lt;br /&gt;iSync での同期が一番便利な気がする．iSync で同期される項目は次のとおり．（マニュアルの内容を参考にしている．）&lt;br /&gt;&lt;br /&gt;○同期対象&lt;br /&gt;・名前&lt;br /&gt;・フリガナ&lt;br /&gt;・電話番号&lt;br /&gt;・メールアドレス&lt;br /&gt;・住所&lt;br /&gt;・誕生日&lt;br /&gt;・メモ&lt;br /&gt;&lt;br /&gt;○非同期対象&lt;br /&gt;・グループ（ケータイのデータを保持．）&lt;br /&gt;・血液型（ケータイのデータを保持．）&lt;br /&gt;・趣味（ケータイのデータを保持．）&lt;br /&gt;・メモリ番号（メモリ番号を再設定．）&lt;br /&gt;・上記項目以外（初期値に設定．）&lt;br /&gt;&lt;br /&gt;誕生日は，マニュアルではケータイのデータを保持だったが，実際には同期されていた．メモリ番号が変わるのは，メモリ番号によるショートカットを使ってる人には痛い仕様だと思う．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://blog.shigekix.org/archives/51271738.html"&gt;shigekix blog: BAUMとMacの電話帳連携&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;関連製品：&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/B000ZK9NO4?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=B000ZK9NO4"&gt;携帯シンク for Mac 5 FOMA 充電ケーブルセット&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=B000ZK9NO4" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/B000ZK9NNK?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=B000ZK9NNK"&gt;携帯シンク for Mac 5 au WIN専用充電ケーブルセット&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=B000ZK9NNK" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/B000ZK9NNU?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=B000ZK9NNU"&gt;携帯シンク for Mac 5 au 充電ケーブルセット&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=B000ZK9NNU" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/B000ZK9NOE?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=B000ZK9NOE"&gt;携帯シンク for Mac 5 PDC 充電ケーブルセット&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=B000ZK9NOE" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-115171709342938715?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/115171709342938715/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=115171709342938715' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/115171709342938715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/115171709342938715'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/10/for-mac-5-baum-snow-leopard.html' title='携帯シンク for Mac 5 で BAUM のアドレス帳と Snow Leopard のアドレスブックを同期'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-2027479489987898374</id><published>2009-10-04T21:02:00.006+09:00</published><updated>2009-12-07T09:13:45.168+09:00</updated><title type='text'>MacBook (Late 2006) に Windows 7 RTM をインストール</title><content type='html'>MacBook (Late 2006) の Snow Leopard から Boot Camp を使って Windows 7 をインストールした．そのままでインストールできちゃったんだけど，ちょっとハマってしまったところもあったので，それについてメモっとこう．ちなみに使用した Windows 7 は，MSDN AA から取得した Windows 7 Professional 32bit なので，製品版と同じもののはず．&lt;br /&gt;&lt;br /&gt;○Wireless Mighty Mouse の認識&lt;br /&gt;そのままだと Bluetooth デバイスとして認識しなかった．&lt;a href="http://d.hatena.ne.jp/nisoyasu/20090830/1251622591"&gt;写真とMacとiPhone: Windows 7 RCでWireless Mighty Mouseを使用&lt;/a&gt;によると．Bluetooth デバイス一覧に Wireless Mighty Mouse が出てきたら，右クリック（トラックパッドに2本指をおきながらクリックする．）してプロパティを選択し，HID準拠マウス（項目名があやふやだから間違ってるかもｗ）のチェックを入れる．これを設定すれば，普通に Bluetooth 接続のマウスとして使用できた．&lt;br /&gt;&lt;br /&gt;○Wi-Fi の接続&lt;br /&gt;AirMac Express と MacBook (Late 2006) の Atheros AR5006X の接続だったんだけど，無線モードが 802.11g のみだと接続できなかった．802.11b しか対応していないのかどーなのかよくわからないけど，AirMac Express の無線モードの設定を 802.11b/g 互換にすれば接続できた．&lt;br /&gt;&lt;br /&gt;○Wireless Mighty Mouse のスリープ&lt;br /&gt;10秒動かさないと，Wireless Mighty Mouse がスリープしてしまう．いちいちクリックしてから，マウスカーソルを動かすことになるので不便．対策できなかったので，だれか教えてください．&lt;br /&gt;&lt;br /&gt;追記（2009年12月7日）：&lt;br /&gt;Wireless Mighty Mouse のスリープについて，&lt;a href="http://www.laloopa.com/20090211/windows7-on-bootcamp-doesnt-recognize-wireless-mighty-mouse"&gt;ここ&lt;/a&gt;に解決策が書いてあるとのコメントを貰った．僕は，SSD が壊れてから Windows 7 をインストールしてないので，動作を確認していないけど，もし困っている方がいれば試してみてね．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://d.hatena.ne.jp/nisoyasu/20090830/1251622591"&gt;写真とMacとiPhone: Windows 7 RCでWireless Mighty Mouseを使用&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.laloopa.com/20090211/windows7-on-bootcamp-doesnt-recognize-wireless-mighty-mouse"&gt;La Loopa: Boot Camp 上の Windows 7 で Wireless Mighty Mouse を認識しない件について&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-2027479489987898374?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/2027479489987898374/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=2027479489987898374' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2027479489987898374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2027479489987898374'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/10/macbook-late-2006-windows-7.html' title='MacBook (Late 2006) に Windows 7 RTM をインストール'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-5884540406842787727</id><published>2009-09-30T23:40:00.004+09:00</published><updated>2009-09-30T23:54:18.308+09:00</updated><title type='text'>MacBook (Late 2006) メモリ4GB増設（3GB認識）</title><content type='html'>MacBook (Late 2006) に BUFFALO の D2/N667-2GX2/E というメモリを増設した．Mac 対応を謳っていなかったけど，無事に2GBのメモリ2枚と認識している．だけど，実際には3GBのメモリとしての使用となる．（1GBは天使の取り分らしいｗ）&lt;br /&gt;&lt;br /&gt;システムプロファイラで，2GBメモリ2枚が認識されていることが確認できる．アクティビティモニタで，3GBのメモリとして動作していることが確認できる．&lt;br /&gt;&lt;br /&gt;VMware Fusion とか使ってると2GBじゃ微妙に足りなくなるからなぁ．最近の MacBook は，4GBをちゃんと認識するので4GB積むことをオススメする．MacBook (Late 2006) とか，3GB までしか使用できない場合は，財布とメモリ使用状況を天秤にかけてみよう．&lt;br /&gt;&lt;br /&gt;関連製品：&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/B00243GS34?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=B00243GS34"&gt;BUFFALO D2/N667-2GX2/E&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=B00243GS34" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-5884540406842787727?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/5884540406842787727/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=5884540406842787727' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5884540406842787727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5884540406842787727'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/09/macbook-late-2006-4gb3gb.html' title='MacBook (Late 2006) メモリ4GB増設（3GB認識）'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-2051849490078225306</id><published>2009-09-28T16:01:00.004+09:00</published><updated>2009-09-30T23:55:55.674+09:00</updated><title type='text'>MacBook (Late 2006) Snow Leopard HDD vs. SSD</title><content type='html'>MacBook (Late 2006) に Snow Leopard をインストールするついでに SSD に換装したので，起動スピードの違いを調べてみた．Snow Leopard を標準インストールしたときの起動時間を動画に撮ってみた．&lt;br /&gt;&lt;br /&gt;○実験環境&lt;br /&gt;・MacBook (Late 2006)&lt;br /&gt;Processor: 2 GHz Intel Core 2 Duo&lt;br /&gt;Memory: 2 GB 667 MHz DDR2 SDRAM&lt;br /&gt;&lt;br /&gt;・HDD&lt;br /&gt;Fujitsu MHV2080BH&lt;br /&gt;&lt;br /&gt;・SSD&lt;br /&gt;Intel SSDSA2MH080G1C5&lt;br /&gt;&lt;br /&gt;まず，HDD の場合．&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/j6j_ArdU7qE&amp;hl=ja&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/j6j_ArdU7qE&amp;hl=ja&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;だいたい，32秒くらい．&lt;br /&gt;&lt;br /&gt;次に，SSD の場合．&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/7gIYHIOV3O0&amp;hl=ja&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/7gIYHIOV3O0&amp;hl=ja&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;だいたい，25秒くらい．&lt;br /&gt;&lt;br /&gt;わかりきってたことだけど，体感できる速度差があるねｗ普通に使っていても，軽いなぁと思う．新しい Mac 買うより，MacBook なら SSD に換装した方が体感速度はよくなりそう♪&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-2051849490078225306?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/2051849490078225306/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=2051849490078225306' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2051849490078225306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2051849490078225306'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/09/macbook-late-2006-snow-leopard-hdd-vs.html' title='MacBook (Late 2006) Snow Leopard HDD vs. SSD'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-2031139564027302063</id><published>2009-09-25T06:10:00.005+09:00</published><updated>2009-09-25T07:07:42.967+09:00</updated><title type='text'>iCal (Mac OS X &amp; iPhone) と Google カレンダーを CalDAV で同期する方法</title><content type='html'>iCal と Google カレンダーを CalDAV で同期する方法について．これによって，Google カレンダーを Mac OS X や iPhone から参照・編集できるようになる．（なので，厳密には同期じゃない．）&lt;br /&gt;&lt;br /&gt;その手順は，以下の通り．&lt;br /&gt;&lt;br /&gt;○iCal (Mac OS X)&lt;br /&gt;1. メニューバーの iCal ＞環境設定…をクリックする．&lt;br /&gt;2. アカウントタブをクリックし，＋をクリックしてアカウントを追加する．&lt;br /&gt;3. 説明（任意）を入力し，ユーザ名とパスワードに Google のアカウントを入力する．さらに，サーバオプションのアカウントの URL に以下のように入力し，追加ボタンをクリックする．&lt;br /&gt;&lt;br /&gt;https://www.google.com/calendar/dav/YOUREMAIL@DOMAIN.COM/user（YOURMAIL@DOMAIN.COM を Gmail のメールアドレスに書き換えること．）&lt;br /&gt;&lt;br /&gt;○iCal (iPhone)&lt;br /&gt;1. 設定をタップする．&lt;br /&gt;2. メール/連絡先/カレンダー＞アカウントを追加…＞その他＞CalDAVアカウントを追加をタップする．&lt;br /&gt;3. サーバとユーザ名，パスワード，説明を Mac OS X と同様に入力する．&lt;br /&gt;&lt;br /&gt;こんなかんじで設定すると，Google カレンダーを編集できるようになる．&lt;br /&gt;&lt;br /&gt;ちなみに，iCal に存在していたカレンダーを Google カレンダーに移行する場合は，まず，iCal で移行元のカレンダーを選択し，メニューバーのファイル＞書き出し…をクリックして対象となるカレンダーを書き出す．次に，移行先のカレンダーを選択し，メニューバーのファイル＞読み込み…をクリックしてその書き出したファイルを読み込むという手順を踏めばいい．&lt;br /&gt;&lt;br /&gt;また，MobileMe には同期されないため，カレンダーを参照・編集したいそれぞれの端末でこの設定をする必要がある．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.google.com/support/calendar/bin/answer.py?answer=99358&amp;&amp;hl=en"&gt;Google Calender Help: Get Started with CalDAV&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-2031139564027302063?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/2031139564027302063/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=2031139564027302063' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2031139564027302063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2031139564027302063'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/09/ical-mac-os-x-iphone-google-caldav.html' title='iCal (Mac OS X &amp; iPhone) と Google カレンダーを CalDAV で同期する方法'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-1185780160044235120</id><published>2009-09-15T00:18:00.003+09:00</published><updated>2009-10-26T20:00:08.701+09:00</updated><title type='text'>FreeBSD でサーバ構築 #15 SMTP Authentication (SMTP-AUTH)</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2009/06/freebsd-14.html"&gt;林檎生活100: FreeBSD でサーバ構築 #14 リレー設定&lt;/a&gt;の続き．今回は，SMTP に認証を付加する SMTP Authentication の設定を行う．これによって，認証に通ったものだけリレーするようになるので，前回の設定を使わなくてもよくなるｗ（前回の設定を解除する場合は，/etc/mail/access を空にし，make maps を実行する．）だけど，Sendmail に設定するのは少し面倒くさいんだなぁ……．&lt;br /&gt;&lt;br /&gt;SMTP Authentication は，SMTP の拡張機能として &lt;a href="http://www.ietf.org/rfc/rfc2554.txt"&gt;RFC2554&lt;/a&gt; で規定されている．Sendmail も V8.10 からサポートしているが，FreeBSD に付属している Sendmail は SMTP Authentication を組み込まれてコンパイルされていない．したがって，SMTP Authentication を組み込むために，Sendmail をリビルドする必要がある．&lt;br /&gt;&lt;br /&gt;SMTP Authentication は，SASL (Simple Authentication and Security Layer) というフレームワークによって実現される．そのため，SASL ライブラリが必要になるので，Sendmail に SMTP Authentication を組み込むときによく使われる &lt;a href="http://cyrusimap.web.cmu.edu/"&gt;Cyrus SASL&lt;/a&gt; を使用する．（そもそも，ほかのライブラリを知らないｗ）&lt;br /&gt;&lt;br /&gt;また，当然のことながら，認証の際にはユーザ名とパスワードが必要になる．今回は，FreeBSD のユーザ名とパスワードに連動するような方法をとる．（もちろん，独立したユーザ名とパスワードにすることも可能であるが，その方法については説明しない．そのような方法については，sasl auxprop というようなキーワードで検索してほしい．）&lt;br /&gt;&lt;br /&gt;FreeBSD のユーザ名とパスワードに連動させる場合，saslauthd というデーモンが必要になる．これは，SASL ライブラリを使用した認証のためのデーモンである．このデーモンが，FreeBSD の PAM (Pluggable Authentication Modules) を使用して FreeBSD のユーザ名とパスワードでの認証を行う．（念のため言っておくと，PAM 以外を使用した認証のデーモンとして動作させることもできる．）つまり，Sendmail は SASL ライブラリを使用して，saslauthd に認証を依頼し，saslauthd が PAM を使用して FreeBSD のユーザ名とパスワードで認証を行い，その結果を Sendmail に返却する．というような仕組み．（たぶん……．）&lt;br /&gt;&lt;br /&gt;さて，Sendmail に SMTP Authentication を組み込む作業をしていこう．&lt;br /&gt;&lt;br /&gt;1. Cyrus SASL のインストール&lt;br /&gt;cyrus-sasl2 と cyrus-sasl2-saslauthd という Port をインストールする．（cyrus-sasl2-saslauthd は cyrus-sasl2 に依存しているので，cyrus-sasl2-saslauthd をインストールするだけで両方インストールされる．）オプションとして，Berkeley DB を使うように BDB にチェックをいれる．（今後のエントリで書く予定の Cyrus IMAP でも Cyrus SASL を使用する予定で，そのインストール要件に Cyrus SASL を Berkeley DB を使用するようにコンパイルしておくことを強く推奨されてるためである．）&lt;br /&gt;&lt;pre&gt;# cd /usr/ports/security/cyrus-sasl2-saslauthd&lt;br /&gt;# make install clean&lt;/pre&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sq5S0NtYygI/AAAAAAAAA0w/_ShZUywUZdI/s1600-h/SASL%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sq5S0NtYygI/AAAAAAAAA0w/_ShZUywUZdI/s320/SASL%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5381329661741025794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sq5S0SP_aEI/AAAAAAAAA04/SZnfd6WUvCE/s1600-h/SASL%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sq5S0SP_aEI/AAAAAAAAA04/SZnfd6WUvCE/s320/SASL%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5381329662959904834" /&gt;&lt;/a&gt;&lt;br /&gt;cyrus-sasl2-saslauthd をインストールすると，Sendmail.conf というものが /usr/local/lib/sasl2 に作成される．これは，Sendmail が Cyrus SASL を使用するときの設定ファイルで，pwcheck_method オプションが記述されており，認証に saslauthd を使用するように設定されている．&lt;br /&gt;&lt;br /&gt;2. saslauthd の起動&lt;br /&gt;rc.conf に次の行を追記する．&lt;br /&gt;&lt;pre&gt;saslauthd_enable="YES"&lt;/pre&gt;&lt;br /&gt;そして，次のコマンドで起動する．いつものサーバと同じようなかんじだが，Ports からインストールしたので，/usr/local 以下に起動スクリプトが配置されている．&lt;br /&gt;&lt;pre&gt;/usr/local/etc/rc.d/saslauthd start&lt;/pre&gt;&lt;br /&gt;3. Sendmail のコンパイルオプションの設定&lt;br /&gt;/etc/make.conf に次の行を追記する．（&lt;a href="http://www.freebsd.org/doc/en/books/handbook/"&gt;FreeBSD Handbook&lt;/a&gt;の説明通り．）&lt;br /&gt;&lt;pre&gt;SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL&lt;br /&gt;SENDMAIL_LDFLAGS=-L/usr/local/lib&lt;br /&gt;SENDMAIL_LDADD=-lsasl2&lt;/pre&gt;&lt;br /&gt;4. Sendmail のリビルドとインストール&lt;br /&gt;次の手順でリビルドとインストールを行う．（&lt;a href="http://www.freebsd.org/doc/en/books/handbook/"&gt;FreeBSD Handbook&lt;/a&gt;の説明通り．）&amp;&amp; は，左辺の実行が成功したら右辺を評価するという動作をする．&lt;br /&gt;&lt;pre&gt;# cd /usr/src/lib/libsmutil&lt;br /&gt;# make cleandir &amp;&amp; make obj &amp;&amp; make&lt;br /&gt;# cd /usr/src/lib/libsm&lt;br /&gt;# make cleandir &amp;&amp; make obj &amp;&amp; make&lt;br /&gt;# cd /usr/src/usr.sbin/sendmail&lt;br /&gt;# make cleandir &amp;&amp; make obj &amp;&amp; make &amp;&amp; make install&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;5. FreeBSD の再起動&lt;br /&gt;再起動して，Sendmail と saslauthd の自動起動を確認する．（saslauthd が起動していないというのが，認証時のハマりポイントだったりするので覚えていてほしい．）&lt;br /&gt;&lt;br /&gt;6. Sendmail の設定&lt;br /&gt;次のコマンドを実行することで，ホスト名.mc という設定ファイル（僕の環境では lucifer.legna.org.mc になる．）が生成される．&lt;br /&gt;&lt;pre&gt;# cd /etc/mail&lt;br /&gt;# make&lt;/pre&gt;&lt;br /&gt;その設定ファイルに次の行（バッククウォートとクウォートが対応していることに注意．）を追記する．SASL での認証に平文を使用するという設定である．（認証で最終的に PAM を使用するので，平文でないと認証できないため．）メールクライアントとして，Outlook Express を使用する場合 LOGIN という項目も追加する必要があるらしい．（/usr/ports/security/cyrus-sasl2/files/Sendmail.README を参照のこと．）&lt;br /&gt;&lt;pre&gt;dnl Set SASL options&lt;br /&gt;TRUST_AUTH_MECH(`PLAIN')&lt;br /&gt;define(`confAUTH_MECHANISMS', `PLAIN')&lt;/pre&gt;&lt;br /&gt;設定ファイルをインストールし，Sendmail を再起動する．&lt;br /&gt;&lt;pre&gt;# make install&lt;br /&gt;# /etc/rc.d/sendmail restart&lt;/pre&gt;&lt;br /&gt;7. 設定の確認&lt;br /&gt;次のコマンドを実行し，Compiled with 行に SASLv2 という項目があることを確認する．（sendmail を起動（デーモンとして起動するわけではない．）して最低限のデバッグ情報を出力するようにデバッグモードを設定し，/dev/null を標準入力させることで何も動作させずに終了させている．）&lt;br /&gt;&lt;pre&gt;# sendmail -d0 &lt; /dev/null&lt;/pre&gt;&lt;br /&gt;さらに，telnet で認証方式 250-AUTH PLAIN が表示されることを確認する．&lt;br /&gt;&lt;pre&gt;# telnet localhost smtp&lt;br /&gt;EHLO localhost&lt;br /&gt;QUIT&lt;/pre&gt;&lt;br /&gt;LAN 内の PC で メールクライアントから SMTP Authentication による認証ができるか確認する．平文による認証なので，WAN 側から実行するのはセキュリティ上の問題がある．&lt;br /&gt;また，次のサイトを利用して，不正リレーのチェックを実行する．&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.abuse.net/relay.html"&gt;Abuse.net: Mail relay testing&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;これで，SMTP Authentication の設定は完了である．/etc/mail/access を設定している場合は，ファイルの内容を空にして make maps を実行しておこう．さて，次回は，STARTTLS という機能を使用して，SMTP セッションを暗号化する方法について記述する．これで，平文による認証ごと暗号化できるので，WAN 側から SMTP サーバを安全に利用することができるようになるのだ♪&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111765?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111765"&gt;sendmail 第3版〈VOLUME1〉運用編&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111765" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111803?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111803"&gt;sendmail 第3版〈VOLUME2〉設定編&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111803" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111889?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111889"&gt;sendmailクックブック―設定と運用のためのレシピ集&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111889" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.freebsd.org/doc/en/books/handbook/"&gt;FreeBSD Handbook&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;追記（2009年10月26日）：&lt;br /&gt;saslauthd が使用する PAM について．saslauthd を d オプションで起動して試してみるとわかるのだが，Sendmail から saslauthd を使用した場合，サービス名は smtp になる．しかしながら，/etc/pam.d には smtp がないので，デフォルトの other が使用される．その中身の説明は省くが，デフォルトのままだと UNIX 認証モジュールが使用されることになる．つまり，ログイン時のようにユーザ名とパスワードによる認証が裏で行われる．Sendmail での認証がログイン時のユーザ名とパスワードでできるのはこのためなのだ．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-1185780160044235120?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/1185780160044235120/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=1185780160044235120' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1185780160044235120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1185780160044235120'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/09/freebsd-15-smtp-authentication-smtp.html' title='FreeBSD でサーバ構築 #15 SMTP Authentication (SMTP-AUTH)'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zhVOi4fKc_M/Sq5S0NtYygI/AAAAAAAAA0w/_ShZUywUZdI/s72-c/SASL%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-1371222221113976314</id><published>2009-09-14T21:28:00.004+09:00</published><updated>2009-09-14T21:40:05.818+09:00</updated><title type='text'>DVD プレーヤーのダウングレード</title><content type='html'>Apple 製 DVD プレーヤーのバージョンが，最近の Mac では5.1.0になっている．以前購入した Mac OS X Leopard に付属している DVD プレーヤーのバージョンは5.0.3である．&lt;br /&gt;&lt;br /&gt;なぜか，5.1.0のバージョンから，VIDEO_TS フォルダを直接再生することができなくなった． そこで，5.1.0を5.0.3にダウングレードしてみた．&lt;br /&gt;&lt;br /&gt;その手順は，5.0.3の入っている Mac から，5.1.0の入っている Mac へ，次のファイルをコピーして持ってくるだけ．これで，問題なく VIDEO_TS フォルダを再生できるようになる．&lt;br /&gt;&lt;pre&gt;/System/Library/Frameworks/DVDPlayBack.framework&lt;br /&gt;/Applications/DVD Player.app&lt;/pre&gt;&lt;br /&gt;Snow Leopard については，そのうち調査予定♪&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-1371222221113976314?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/1371222221113976314/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=1371222221113976314' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1371222221113976314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1371222221113976314'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/09/dvd.html' title='DVD プレーヤーのダウングレード'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-5059582757654673997</id><published>2009-08-18T17:54:00.003+09:00</published><updated>2009-08-18T18:06:46.945+09:00</updated><title type='text'>Mac OS X Leopard: ターミナルの環境設定</title><content type='html'>Mac OS X Leopard のターミナルの環境設定メモ．Pro をベースに，フォントに「Osaka-等幅 14 pt.」を選択し，option キーに meta キーをマッピングするというかんじ．&lt;br /&gt;&lt;br /&gt;普段使ってる環境はこういう見た目．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/Soptvqo0nRI/AAAAAAAAA0Q/cPBujM19_tM/s1600-h/Terminal%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 221px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/Soptvqo0nRI/AAAAAAAAA0Q/cPBujM19_tM/s320/Terminal%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5371226171259526418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;○環境設定&lt;br /&gt;&lt;br /&gt;1. 起動時に開くウィンドウを Pro にする．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SoptwK3v3TI/AAAAAAAAA0Y/-0W5uIQBDmI/s1600-h/Terminal%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 251px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SoptwK3v3TI/AAAAAAAAA0Y/-0W5uIQBDmI/s320/Terminal%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5371226179912064306" /&gt;&lt;/a&gt;&lt;br /&gt;2. Pro をデフォルトにし，フォントを「Osaka-等幅 14 pt.」にする．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/SoptwtjjdpI/AAAAAAAAA0g/6mDURqRMUU4/s1600-h/Terminal%5B3%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 251px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/SoptwtjjdpI/AAAAAAAAA0g/6mDURqRMUU4/s320/Terminal%5B3%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5371226189222606482" /&gt;&lt;/a&gt;&lt;br /&gt;3. option キーに meta キーをマッピングするために，「メタキーとして option キーを使用」をチェックする．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SoptxJh07xI/AAAAAAAAA0o/NCpmTeg12L4/s1600-h/Terminal%5B4%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 251px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SoptxJh07xI/AAAAAAAAA0o/NCpmTeg12L4/s320/Terminal%5B4%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5371226196731555602" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-5059582757654673997?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/5059582757654673997/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=5059582757654673997' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5059582757654673997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5059582757654673997'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/08/mac-os-x-leopard.html' title='Mac OS X Leopard: ターミナルの環境設定'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zhVOi4fKc_M/Soptvqo0nRI/AAAAAAAAA0Q/cPBujM19_tM/s72-c/Terminal%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-6188610656862359594</id><published>2009-08-17T04:57:00.001+09:00</published><updated>2009-08-17T13:24:41.104+09:00</updated><title type='text'>Mac OS X の bash の環境設定ファイル</title><content type='html'>Mac OS X Leopard のデフォルトシェルである bash で，どのようにして PATH や MANPATH などの環境変数が設定されていくのかのメモ．&lt;br /&gt;&lt;br /&gt;1. /etc/profile&lt;br /&gt;ログインシェルを起動して，最初に実行される環境設定ファイル．/usr/libexec/path_helper -s  と /etc/bashrc を実行している．&lt;br /&gt;&lt;br /&gt;2. /usr/libexec/path_helper -s&lt;br /&gt;/etc/paths ファイルと /etc/paths.d ディレクトリのファイルを読み込み，そこに列挙されたパスを PATH 環境変数に設定する．（path_helper の実体は bash 用シェルスクリプト．bash に詳しければ読めるはず．path_helper の先頭にコメントで説明があるが，実行内容とかなり乖離していることに注意．）&lt;br /&gt;&lt;br /&gt;3. /etc/bashrc&lt;br /&gt;対話型シェルとして起動された場合，ホスト名とカレントディレクトリ名，ユーザ名，ドル記号（例えば，michael:~ takuya$ というような文字列．）をプロンプト文字列として設定する．また，bash がウィンドウサイズをコマンドごとにチェックし，必要であれば LINES 環境変数と COLUMNS 環境変数を変更するように，checkwinsize を設定する．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-6188610656862359594?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/6188610656862359594/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=6188610656862359594' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6188610656862359594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6188610656862359594'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/08/mac-os-x-bash.html' title='Mac OS X の bash の環境設定ファイル'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-4774053263514392327</id><published>2009-08-16T01:34:00.004+09:00</published><updated>2009-08-16T01:53:56.845+09:00</updated><title type='text'>bash の環境設定ファイルの意味について .bash_profile .bash_login .profile .bashrc .bash_logout</title><content type='html'>bash の環境設定ファイルのそれぞれの意味についてのメモ．&lt;br /&gt;&lt;br /&gt;○環境設定ファイル&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/etc/profile    ログインシェルとして起動されたときに実行される．&lt;br /&gt;~/.bash_profile ログインシェルとして起動されたときに実行される．&lt;br /&gt;~/.bash_login   ログインシェルとして起動されたときに実行される．（.bash_profile が読めないとき．）&lt;br /&gt;~/.profile      ログインシェルとして起動されたときに実行される．（.bash_profile と .bash_login が読めないとき．）&lt;br /&gt;~/.bashrc       ログインシェルとして起動されなかったときに実行される．&lt;br /&gt;~/.bash_logout  ログインシェルを終了する前に実行される．&lt;/pre&gt;&lt;br /&gt;○実行順序&lt;br /&gt;&lt;pre&gt;if [ -r /etc/profile ]; then&lt;br /&gt;    source /etc/profile&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ -r ~/.bash_profile ]; then&lt;br /&gt;    source ~/.bash_profile&lt;br /&gt;elif [ -r ~/.bash_login ]; then&lt;br /&gt;    source ~/.bash_login&lt;br /&gt;elif [ -r ~/.profile ]; then&lt;br /&gt;    source ~/.profile&lt;br /&gt;fi&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-4774053263514392327?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/4774053263514392327/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=4774053263514392327' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4774053263514392327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4774053263514392327'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/08/bash.html' title='bash の環境設定ファイルの意味について .bash_profile .bash_login .profile .bashrc .bash_logout'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-7989514917402006703</id><published>2009-08-05T02:25:00.005+09:00</published><updated>2009-08-05T02:58:48.822+09:00</updated><title type='text'>Microsoft Expression Web SuperPreview for Internet Explorer</title><content type='html'>Internet Explorer のバージョンごとに表示して，レンダリングを確かめられる Microsoft 製のツール．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/Snh1J8KK5zI/AAAAAAAAA0I/xEue3eaX_kA/s1600-h/SuperPreview%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 194px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/Snh1J8KK5zI/AAAAAAAAA0I/xEue3eaX_kA/s320/SuperPreview%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5366167769640003378" /&gt;&lt;/a&gt;&lt;br /&gt;Internet Explorer 6，Internet Explorer 7，Internet Explorer 8 のレンダリングを確認できる．最近のブラウザ事情からすると，IE については，6〜8まで対応していればいいんじゃないかなと思うので，必要充分じゃないかな．僕は &lt;a href="http://www.legna.org"&gt;Legna&lt;/a&gt; を IE6 と IE7 に対応させるために使用してみて便利だなと感じた．&lt;br /&gt;&lt;br /&gt;関連サイト：&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8e6ac106-525d-45d0-84db-dccff3fae677&amp;displaylang=en"&gt;Microsoft Download Center: Expression Web SuperPreview for Internet Explorer&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-7989514917402006703?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/7989514917402006703/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=7989514917402006703' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7989514917402006703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7989514917402006703'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/08/microsoft-expression-web-superpreview.html' title='Microsoft Expression Web SuperPreview for Internet Explorer'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zhVOi4fKc_M/Snh1J8KK5zI/AAAAAAAAA0I/xEue3eaX_kA/s72-c/SuperPreview%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-2263896795759884944</id><published>2009-08-05T01:36:00.001+09:00</published><updated>2009-08-05T20:25:04.071+09:00</updated><title type='text'>ヒラギノを TrueType フォント (TTF) に変換する</title><content type='html'>&lt;a href="http://xmlgraphics.apache.org/fop/"&gt;Apache FOP&lt;/a&gt; で，ヒラギノを使いたいと思ったんだけど，OS 付属のヒラギノは，OpenType フォント (OTF) なので，そのままでは使用することができない．なので，&lt;a href="http://fontforge.sourceforge.net/"&gt;FontForge&lt;/a&gt; を使用して，TrueType フォントに変換してみた．これって，ライセンス上どうなんだろう……．まずいかな……．&lt;br /&gt;&lt;br /&gt;まずは，いつもの &lt;a href="http://www.macports.org/"&gt;MacPorts&lt;/a&gt; を使って，FontForge をインストールする．&lt;br /&gt;&lt;pre&gt;$ sudo port -c install fontforge&lt;/pre&gt;&lt;br /&gt;結構時間がかかるので，先にやっておいてほかの作業を同時進行する．とりあえず，作業ディレクトリを用意して，そこに移動する．&lt;br /&gt;&lt;pre&gt;$ mkdir ~/Documents/Fonts&lt;br /&gt;$ cd ~/Documents/Fonts&lt;/pre&gt;&lt;br /&gt;今回は，ヒラギノ明朝 Pro W3 を変換してみるので，対象のフォントファイルを作業ディレクトリにコピーする．&lt;br /&gt;&lt;pre&gt;$ cp /Library/Fonts/ヒラギノ明朝\ Pro\ W3.otf .&lt;/pre&gt;&lt;br /&gt;fontforge で対象のフォントファイルを開く．&lt;br /&gt;&lt;pre&gt;$ fontforge ヒラギノ明朝\ Pro\ W3.otf&lt;/pre&gt;&lt;br /&gt;こんな画面が出ると思うけど，とりあえず「すべて選択 (A)」をクリックして，「はい (Y)」をクリックする．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SnhsNfvlLzI/AAAAAAAAA0A/Jx66se9Z9Zw/s1600-h/fontforge%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 217px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SnhsNfvlLzI/AAAAAAAAA0A/Jx66se9Z9Zw/s320/fontforge%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5366157935127113522" /&gt;&lt;/a&gt;&lt;br /&gt;このウィンドウが出たら，メニューの CID &gt; 単一化 (F) をクリックする．（CID については，参考文献を参照のこと．）&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SnhsNBjkAQI/AAAAAAAAAz4/OpbODs5c1lY/s1600-h/fontforge%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 137px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SnhsNBjkAQI/AAAAAAAAAz4/OpbODs5c1lY/s320/fontforge%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5366157927023640834" /&gt;&lt;/a&gt;&lt;br /&gt;そうするとこのように，グリフが表示される．Unicode 文字名に対応するかららしい．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/SnhsMktZsxI/AAAAAAAAAzw/mS0Dyo5mtJs/s1600-h/fontforge%5B3%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 137px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/SnhsMktZsxI/AAAAAAAAAzw/mS0Dyo5mtJs/s320/fontforge%5B3%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5366157919280280338" /&gt;&lt;/a&gt;&lt;br /&gt;最後に，ファイル &gt; フォントを出力 (G)… クリックし，適当な名前をつけ，出力が TrueType になっていることを確認し，保存する．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SnhsMewzLOI/AAAAAAAAAzo/fuMOQ8nFwqk/s1600-h/fontforge%5B4%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 315px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SnhsMewzLOI/AAAAAAAAAzo/fuMOQ8nFwqk/s320/fontforge%5B4%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5366157917683920098" /&gt;&lt;/a&gt;&lt;br /&gt;こんな風に，比較的簡単に変換できる．FontForge を使って，斜体 (Oblique) フォントやボールド (Bold) フォントをつくる方法についてもそのうち説明したいと思う．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://awithd.blog52.fc2.com/blog-entry-102.html"&gt;小悪魔な林檎♪: OTFからTTFのヒラギノ&lt;/a&gt;&lt;br /&gt;&lt;a href="http://fontforge.sourceforge.net/ja/cidmenu.html"&gt;FontForge: CID メニューと CID キー指定フォント&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;追記（2009年8月5日）：&lt;br /&gt;Xcode 3.1 が必要だったような気がする．インストールしたのがちょっと前だったので忘れてたけど，なんかメモっぽいのに書いてあった．Xcode 3.1 は，Apple Developer Connection からダウンロードできるよ．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-2263896795759884944?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/2263896795759884944/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=2263896795759884944' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2263896795759884944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2263896795759884944'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/08/truetype-ttf.html' title='ヒラギノを TrueType フォント (TTF) に変換する'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zhVOi4fKc_M/SnhsNfvlLzI/AAAAAAAAA0A/Jx66se9Z9Zw/s72-c/fontforge%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-2761250441915737598</id><published>2009-07-29T06:31:00.005+09:00</published><updated>2009-07-29T06:48:32.015+09:00</updated><title type='text'>Apache FOP エラー対策</title><content type='html'>&lt;a href="http://www.docbook.org/"&gt;DocBook&lt;/a&gt; を試してみていて，XSL-FO プロセッサが必要になったので，&lt;a href="http://xmlgraphics.apache.org/fop/"&gt;Apache FOP&lt;/a&gt; を MacPorts からインストールしてみた．FO ファイルから PDF ファイルを作成しようとしたら，次のようなエラーが出たので，その対策についてメモ．&lt;br /&gt;&lt;pre&gt;2009/07/29 5:57:56 org.apache.fop.hyphenation.Hyphenator getHyphenationTree&lt;br /&gt;致命的: Couldn't find hyphenation pattern en&lt;/pre&gt;&lt;br /&gt;なんか，ハイフネーションパターンがライセンスの問題で FOP に含まれていないかららしい．なので，それをインストールすればエラーはでなくなる．インストール手順は次のとおり．&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://sourceforge.net/projects/offo/"&gt;Objects for Formatting Objects&lt;/a&gt;からダウンロードする．&lt;br /&gt;2. 解凍する．&lt;br /&gt;3. fop-hyph.jar を /opt/local/share/java/fop/0.94/build/ にコピーする．（0.94というバージョン番号は変化する可能性がある．）&lt;br /&gt;&lt;br /&gt;これで，エラーが出なくなる♪日本語を含む PDF を出力する話もしないとな．&lt;br /&gt;&lt;br /&gt;関連サイト：&lt;br /&gt;&lt;a href="http://xmlgraphics.apache.org/fop/"&gt;Apache FOP&lt;/a&gt;&lt;br /&gt;&lt;a href="http://offo.sourceforge.net/"&gt;Objects For Formatting Objects&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="https://bugzilla.redhat.com/show_bug.cgi?id=479685"&gt;Red Hat Bugzilla: Bug 479685&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-2761250441915737598?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/2761250441915737598/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=2761250441915737598' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2761250441915737598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2761250441915737598'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/07/apache-fop.html' title='Apache FOP エラー対策'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-2933557510566286661</id><published>2009-07-27T13:26:00.003+09:00</published><updated>2009-07-27T13:34:56.754+09:00</updated><title type='text'>Twitter "Follow" Badge を貼ってみた</title><content type='html'>自分の &lt;a href="http://twitter.com/"&gt;Twitter&lt;/a&gt; へのリンクをバッジとして，ページに貼ることができる．右側のようにね．&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.go2web20.net/twitterFollowBadge/"&gt;GO2WEB20: Twitter "Follow" Badge for your site/blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;説明するまでもないけど，アカウント名とラベル，色，左右，表示ポジションを選択してコードを生成するだけ．あとは，生成された JavaScript を Blogger なら，レイアウト&gt;HTMLの編集&gt;テンプレートを編集の末尾，body終了タグの直前にコピーアンドペーストすればバッジが貼られる．&lt;br /&gt;&lt;br /&gt;お試しあれ♪&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-2933557510566286661?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/2933557510566286661/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=2933557510566286661' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2933557510566286661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2933557510566286661'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/07/twitter-follow-badge.html' title='Twitter &quot;Follow&quot; Badge を貼ってみた'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-5969127959004037557</id><published>2009-07-14T06:42:00.003+09:00</published><updated>2009-07-14T12:46:26.671+09:00</updated><title type='text'>Cyrus IMAP サーバ OTP エラー対策</title><content type='html'>Cyrus のエラーを解決するのをあきらめて，UW-IMAP を使ってたりするわけだけど，やっぱり Cyrus IMAP 使いたいよねってことで，エラーに改めて取り組むことに．&lt;a href="http://applelife100.blogspot.com/2009/07/cyrus-imap-server.html#links"&gt;林檎生活100: Cyrus IMAP Server エラー&lt;/a&gt;で書いたエラーとは違うけど，次のようなエラーの対策について．&lt;br /&gt;&lt;pre&gt;Jul 14 06:36:32 lucifer imap[752]: OTP unavailable because can't read/write key&lt;br /&gt;database /etc/opiekeys: Permission denied&lt;/pre&gt;&lt;br /&gt;OTP は，One Time Password のことで，それが有効になっているからこのエラーが出るらしい．なので，imapd.conf（FreeBSD なら /usr/local/etc/imapd.conf になる．）の次の行を有効にすることで，ひとまずは出なくなる．普通に使っているなら，この行はきちんと設定されているような気がするけど．&lt;br /&gt;&lt;pre&gt;sasl_mech_list: cram-md5 digest-md5&lt;/pre&gt;&lt;br /&gt;さて，残りのエラーが問題なんだよなぁ……．&lt;br /&gt;&lt;br /&gt;追記（2009年7月14日）：&lt;br /&gt;コメントで頂いた解決策について．security/cyrus-sasl2 をインストールする際に，config を OTP=off にすることでこのエラーはでなくなる．たしかに，OTP を使わないのであれば，OTP=off でのインストールという方がクールだね．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://enoki.blog4.fc2.com/blog-entry-288.html"&gt;雨と樹海とFreeBSDと: Postfixのインストール&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-5969127959004037557?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/5969127959004037557/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=5969127959004037557' title='4 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5969127959004037557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5969127959004037557'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/07/cyrus-imap-otp.html' title='Cyrus IMAP サーバ OTP エラー対策'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-9080053726522443260</id><published>2009-07-12T23:53:00.002+09:00</published><updated>2009-07-13T00:23:07.094+09:00</updated><title type='text'>Namecheap で格安 SSL 証明書を取得する方法</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2009/07/openssl.html#links"&gt;林檎生活100: OpenSSL で自己署名証明書を作成する&lt;/a&gt;で，SSL 証明書を作成したが，きちんとした認証局によって署名された証明書ではないので，ブラウザやメーラからの SSL 接続時に警告が出てしまうという問題がある．&lt;br /&gt;&lt;br /&gt;そこで今回は，ほとんどのブラウザで問題なく認証される SSL 証明書の発行サービスである RapidSSL で，SSL 証明書を取得する．この RapidSSL は，&lt;a href="http://www.rapidssl.com/"&gt;本家&lt;/a&gt;で$69，&lt;a href="http://www.rapid-ssl.jp/"&gt;日本の正規販売パートナー&lt;/a&gt;で3,200円ということで非常に安い．でも，もっと安く済ませるために &lt;a href="http://www.namecheap.com/"&gt;Namecheap&lt;/a&gt; という海外の販売サイトを使用して，$10.95という価格で取得してみることにする．&lt;br /&gt;&lt;br /&gt;まず，最初ににやらなければならないことは，証明書署名要求 (CSR) を作成することだ．って偉そうに言ってるけど，SSL の仕組みはちゃんと理解してないので，参考文献にあげた本のとおりのコマンドだｗ&lt;br /&gt;&lt;pre&gt;# cd /etc/mail/certs&lt;br /&gt;# umask 066&lt;br /&gt;# openssl req -new -x509 -nodes -out newcert.pem -keyout key.pem&lt;br /&gt;# openssl x509 -x509toreq -in newcert.pem -signkey key.pem -out csr.pem&lt;br /&gt;# rm newcert.pem&lt;/pre&gt;&lt;br /&gt;インタラクティブに入力が必要な部分は，自己署名証明書を作成するときと同じ．自己署名証明書と秘密鍵を作って，自己署名証明書から証明書署名要求を作成する．証明書署名要求を作成しさえすれば，自己署名証明書はいらないので削除する．（次の画像は，自己署名証明書を作成する部分のキャプチャ．）&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/Slnx7fV5sxI/AAAAAAAAAvQ/mXBCIi8XU7U/s1600-h/SSL%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/Slnx7fV5sxI/AAAAAAAAAvQ/mXBCIi8XU7U/s320/SSL%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357579236061852434" /&gt;&lt;/a&gt;&lt;br /&gt;生成された証明書署名要求 csr.pem ファイル中の "-----BEGIN CERTIFICATE REQUEST-----" から "-----END CERTIFICATE REQUEST-----" までを RapidSSL で申請する際に使用する．&lt;br /&gt;&lt;br /&gt;ということで，この証明書署名要求をコピー＆ペーストできるようにしなければならない．そこで， SSH を有効にして，Mac のターミナルからログインすることにした．まず，FreeBSD 側の設定．&lt;br /&gt;&lt;pre&gt;# vi /etc/rc.conf&lt;br /&gt;sshd_enable="YES"（この行を追記する．）&lt;br /&gt;# /etc/rc.d/sshd start&lt;/pre&gt;&lt;br /&gt;Mac のターミナルからの接続．&lt;br /&gt;&lt;pre&gt;$ ssh takuya@192.168.1.254&lt;/pre&gt;&lt;br /&gt;というかんじ．いずれ，SSH の設定などのエントリを書きたいなぁ．ちなみに，無効化する時の手順はこの通り．&lt;br /&gt;&lt;pre&gt;# /etc/rc.d/sshd stop&lt;br /&gt;# vi /etc/rc.conf&lt;br /&gt;sshd_enable="NO"（NO に書き換えるか，行を削除する．）&lt;/pre&gt;&lt;br /&gt;下準備は整ったので，Namecheap での作業に入ろう．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SlnzJ2AEjdI/AAAAAAAAAwI/yFokS1MAbkg/s1600-h/SSL%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SlnzJ2AEjdI/AAAAAAAAAwI/yFokS1MAbkg/s320/SSL%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357580582174100946" /&gt;&lt;/a&gt;&lt;br /&gt;右側の "Login to your account" の "Signup for a Free Account" をクリックし，新規アカウントを作成する．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SlnzJ4ZR25I/AAAAAAAAAwA/5VQuwzxzWLo/s1600-h/SSL%5B3%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SlnzJ4ZR25I/AAAAAAAAAwA/5VQuwzxzWLo/s320/SSL%5B3%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357580582816701330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SlnzJlfDlfI/AAAAAAAAAv4/YAhPTMRy1CQ/s1600-h/SSL%5B4%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SlnzJlfDlfI/AAAAAAAAAv4/YAhPTMRy1CQ/s320/SSL%5B4%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357580577740658162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SlnzJeIwOkI/AAAAAAAAAvw/17yOINxWBIc/s1600-h/SSL%5B5%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 247px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SlnzJeIwOkI/AAAAAAAAAvw/17yOINxWBIc/s320/SSL%5B5%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357580575768066626" /&gt;&lt;/a&gt;&lt;br /&gt;ヘッダメニューの "SSL Certificate" の "Low Cost SSL Certificate" をクリックする．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SlnzJCgzocI/AAAAAAAAAvo/Dzk7u6jCEg0/s1600-h/SSL%5B6%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SlnzJCgzocI/AAAAAAAAAvo/Dzk7u6jCEg0/s320/SSL%5B6%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357580568352760258" /&gt;&lt;/a&gt;&lt;br /&gt;"Rapid SSL" の "Add to Cart" をクリックする．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sln0q22yMrI/AAAAAAAAAxQ/hp3Y9Hvxv80/s1600-h/SSL%5B7%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sln0q22yMrI/AAAAAAAAAxQ/hp3Y9Hvxv80/s320/SSL%5B7%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357582248850895538" /&gt;&lt;/a&gt;&lt;br /&gt;"DURATION" を必要なら変更し，"UPDATE CHANGES" をクリックし，"Standard Checkout" をクリックする．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sln0qiv-4SI/AAAAAAAAAxI/uMQrARv_Sg4/s1600-h/SSL%5B8%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sln0qiv-4SI/AAAAAAAAAxI/uMQrARv_Sg4/s320/SSL%5B8%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357582243453657378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sln0qvK29JI/AAAAAAAAAxA/LHFlu54duVE/s1600-h/SSL%5B9%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sln0qvK29JI/AAAAAAAAAxA/LHFlu54duVE/s320/SSL%5B9%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357582246787609746" /&gt;&lt;/a&gt;&lt;br /&gt;支払い方法は，適宜選択のこと．入金した資金から支払うか，直接クレジットカードで支払うかを選択できる．今回は，PayPal 経由で支払いたかったので，上の項目を選択した．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sln0qcDnW7I/AAAAAAAAAw4/MExKUdDaziY/s1600-h/SSL%5B10%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sln0qcDnW7I/AAAAAAAAAw4/MExKUdDaziY/s320/SSL%5B10%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357582241656953778" /&gt;&lt;/a&gt;&lt;br /&gt;入金されてないので，"Add Funds to your account" をクリックして入金する．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sln0qET7EmI/AAAAAAAAAww/3OYjLSuOyQM/s1600-h/SSL%5B11%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sln0qET7EmI/AAAAAAAAAww/3OYjLSuOyQM/s320/SSL%5B11%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357582235282903650" /&gt;&lt;/a&gt;&lt;br /&gt;入金の詳細は省略．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/Sln2k7QTavI/AAAAAAAAAxw/oUR70ZhJ28s/s1600-h/SSL%5B12%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/Sln2k7QTavI/AAAAAAAAAxw/oUR70ZhJ28s/s320/SSL%5B12%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357584345975712498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/Sln2kh8sbPI/AAAAAAAAAxo/vHvMVuDduDg/s1600-h/SSL%5B13%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/Sln2kh8sbPI/AAAAAAAAAxo/vHvMVuDduDg/s320/SSL%5B13%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357584339182578930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sln2kWq_1CI/AAAAAAAAAxg/LO0z1yZcZPY/s1600-h/SSL%5B14%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sln2kWq_1CI/AAAAAAAAAxg/LO0z1yZcZPY/s320/SSL%5B14%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357584336155563042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sln2kOTFbQI/AAAAAAAAAxY/d6AHSNtbonk/s1600-h/SSL%5B15%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sln2kOTFbQI/AAAAAAAAAxY/d6AHSNtbonk/s320/SSL%5B15%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357584333907782914" /&gt;&lt;/a&gt;&lt;br /&gt;支払い完了．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sln3JrcP1fI/AAAAAAAAAyY/KNCb5aAok7I/s1600-h/SSL%5B16%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sln3JrcP1fI/AAAAAAAAAyY/KNCb5aAok7I/s320/SSL%5B16%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357584977386001906" /&gt;&lt;/a&gt;&lt;br /&gt;黄色い通知メッセージの "SSL Certificate Page" をクリックする．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sln3JWSG3XI/AAAAAAAAAyQ/EGb4gaQOaZM/s1600-h/SSL%5B17%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sln3JWSG3XI/AAAAAAAAAyQ/EGb4gaQOaZM/s320/SSL%5B17%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357584971706326386" /&gt;&lt;/a&gt;&lt;br /&gt;"Activate Now" をクリックする．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sln3JAWhR3I/AAAAAAAAAyI/Q58wf01OM6c/s1600-h/SSL%5B18%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sln3JAWhR3I/AAAAAAAAAyI/Q58wf01OM6c/s320/SSL%5B18%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357584965819254642" /&gt;&lt;/a&gt;&lt;br /&gt;今回のは Web サーバ用じゃないので，"Other" を選択する．Web サーバ用なら，Web サーバ名に合ったものを選択する．そして，さっき作成した証明書署名要求 csr.pem の "-----BEGIN CERTIFICATE REQUEST-----" から "-----END CERTIFICATE REQUEST-----" までを貼り付ける．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sln3I5sp0nI/AAAAAAAAAyA/X45QCcjK2HU/s1600-h/SSL%5B19%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sln3I5sp0nI/AAAAAAAAAyA/X45QCcjK2HU/s320/SSL%5B19%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357584964033041010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sln3I55uA4I/AAAAAAAAAx4/AZqS8fyc9T8/s1600-h/SSL%5B20%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sln3I55uA4I/AAAAAAAAAx4/AZqS8fyc9T8/s320/SSL%5B20%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357584964087841666" /&gt;&lt;/a&gt;&lt;br /&gt;"CSR Information" を確認し，"APPROVER EMAIL"（承認用メールアドレス）を選択する．届くメールアドレスであれば，好きなものを選んで OK．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sln5bcXi-GI/AAAAAAAAAzg/3FXYQWll4mU/s1600-h/SSL%5B21%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sln5bcXi-GI/AAAAAAAAAzg/3FXYQWll4mU/s320/SSL%5B21%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357587481600653410" /&gt;&lt;/a&gt;&lt;br /&gt;連絡先情報を入力する．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/Sln5bONOXlI/AAAAAAAAAzY/7yI0zWGBVDE/s1600-h/SSL%5B22%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/Sln5bONOXlI/AAAAAAAAAzY/7yI0zWGBVDE/s320/SSL%5B22%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357587477799263826" /&gt;&lt;/a&gt;&lt;br /&gt;申請完了．メールを待って（30分以内には来たはず．），メールに記述されている URL をクリックする．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sln5a1TIP1I/AAAAAAAAAzQ/aTJ_czKFOdA/s1600-h/SSL%5B23%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sln5a1TIP1I/AAAAAAAAAzQ/aTJ_czKFOdA/s320/SSL%5B23%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357587471113142098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sln5apGZqII/AAAAAAAAAzI/arA3W4jxP7Y/s1600-h/SSL%5B24%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sln5apGZqII/AAAAAAAAAzI/arA3W4jxP7Y/s320/SSL%5B24%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357587467838531714" /&gt;&lt;/a&gt;&lt;br /&gt;「承認します」をクリックして，注文を承認する．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sln5afB4AJI/AAAAAAAAAzA/hpsK7Vh0alQ/s1600-h/SSL%5B25%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sln5afB4AJI/AAAAAAAAAzA/hpsK7Vh0alQ/s320/SSL%5B25%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5357587465135194258" /&gt;&lt;/a&gt;&lt;br /&gt;注文完了．メールを待って（1日以内には来たはず．），メールに記述されている "-----BEGIN CERTIFICATE REQUEST-----" から "-----END CERTIFICATE REQUEST-----" までを，cert.pem というファイルに記述して保存する．&lt;br /&gt;&lt;pre&gt;# cd /etc/mail/certs&lt;br /&gt;# vi cert.pem&lt;/pre&gt;&lt;br /&gt;CA のルート証明書を取得し，ハッシュ名のシンボリックリンクを作成する．&lt;br /&gt;&lt;pre&gt;# cd /etc/mail/certs&lt;br /&gt;# fetch -o cacert.pem http://www.geotrust.com/resources/root_certificates/certificates/Equifax_Secure_Certificate_Authority.cer&lt;br /&gt;# ln -s cacert.pem `openssl x509 -noout -hash &lt; cacert.pem`.0&lt;/pre&gt;&lt;br /&gt;最後に，証明書を検証して，証明書が正しいかチェックする．OK なら csr.pem はいらないので，削除する．&lt;br /&gt;&lt;pre&gt;# cd /etc/mail/certs&lt;br /&gt;# openssl verify -CAfile cacert.pem cert.pem&lt;br /&gt;# openssl verify -CApath . cert.pem&lt;br /&gt;# rm csr.pem&lt;/pre&gt;&lt;br /&gt;以上で，格安の SSL 証明書の取得は完了♪メールサーバにこの証明書を使わせることで，警告は表示されなくなるはずだ．&lt;br /&gt;&lt;br /&gt;関連サイト：&lt;br /&gt;&lt;a href="http://www.rapidssl.com/"&gt;RapidSSL&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.namecheap.com/"&gt;Namecheap&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111889?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111889"&gt;sendmailクックブック―設定と運用のためのレシピ集&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111889" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-9080053726522443260?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/9080053726522443260/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=9080053726522443260' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/9080053726522443260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/9080053726522443260'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/07/namecheap-ssl.html' title='Namecheap で格安 SSL 証明書を取得する方法'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zhVOi4fKc_M/Slnx7fV5sxI/AAAAAAAAAvQ/mXBCIi8XU7U/s72-c/SSL%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-1046911245864044580</id><published>2009-07-06T08:51:00.006+09:00</published><updated>2009-07-06T09:05:36.959+09:00</updated><title type='text'>Legna のデザイン</title><content type='html'>こんな風に，Web サイトをデザイン中．まだ，XHTML や CSS では書いてないんだけど，ほぼこのデザインで決まり．ちょっと寂しいから，画像を制作してるんだけど，なかなか完成しないorz&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SlE8qvQGbNI/AAAAAAAAAvA/CYcDGeugYDU/s1600-h/Legna+Design%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SlE8qvQGbNI/AAAAAAAAAvA/CYcDGeugYDU/s320/Legna+Design%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5355128136856399058" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://applelife100.blogspot.com/2008/06/freebsd-1.html#links"&gt;林檎生活100: FreeBSD でサーバ構築&lt;/a&gt;の作業は，この前ふと思い立ったときに Sendmail 編と IMAP 編の設定を完成させ， Apache 編のインストールと基本設定，DAV 設定，Digest 認証設定，SSL 設定などを一通りこなしてしまったので，ほぼ最後までのネタは出揃っているんだよねｗ本当は，エントリを全て書いてから Web デザインとかやったらいいんだろうなぁｗｗｗ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-1046911245864044580?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/1046911245864044580/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=1046911245864044580' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1046911245864044580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1046911245864044580'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/07/legna.html' title='Legna のデザイン'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zhVOi4fKc_M/SlE8qvQGbNI/AAAAAAAAAvA/CYcDGeugYDU/s72-c/Legna+Design%5B1%5D.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-2390869061137781505</id><published>2009-07-04T22:37:00.004+09:00</published><updated>2009-07-06T08:47:00.879+09:00</updated><title type='text'>OpenSSL で自己署名証明書を作成する</title><content type='html'>SSL を使って暗号化通信をするためには，公開鍵証明書が必要になる．（なんで公開鍵証明書が必要かとか，SSL の仕組みの話については，参考文献を参照してね．僕がちゃんとした解説をする自信がないのでｗ）なので，SSL を使いたいときは，証明書を準備する必要がある．知ってる人もいると思うけど，この証明書ってのがタダじゃない．有名な &lt;a href="https://www.verisign.co.jp/"&gt;VeriSign&lt;/a&gt; で発行してもらうと，一番安いものでも85,050円／年もするのだ．&lt;br /&gt;&lt;br /&gt;自宅サーバで SSL を使いたいだけのために，こんな大金は支払えないので，自己署名証明書というものを作成する．俗に，オレオレ証明書ともいうらしい．そのニュアンス通り，「僕がこの人間は僕だと言うから，この人間は僕です．」という論理になるような証明書のこと．（VeriSign の証明書なら，「VeriSign がこのサーバがサーバ A だと言うから，このサーバはサーバ A です．」というようになる．）本来は，どっかに証明してもらわなければならないんだけど，自宅サーバの SMTP や IMAP に接続するときに SSL を使用したいということなら，自己署名証明書でもいいよねということで，今回のエントリの内容になるわけ．&lt;br /&gt;&lt;br /&gt;FreeBSD 7.1-RELEASE での自己署名証明書のつくりかたはこんなかんじ．UNIX 系 OS ならどれでも同じ．&lt;br /&gt;&lt;br /&gt;1. ディレクトリ作成&amp;移動&lt;br /&gt;証明書を置くディレクトリを適当な場所に作成し，そのディレクトリに移動する．&lt;br /&gt;&lt;pre&gt;# mkdir /usr/local/certs&lt;br /&gt;# cd /usr/local/certs&lt;/pre&gt;&lt;br /&gt;2. マスク設定&lt;br /&gt;作成される証明書が，ほかのユーザから読まれないようにマスクを設定する．つまり，所有者だけが読める (-rw-------) ファイルが生成されるようにする．&lt;br /&gt;&lt;pre&gt;# umask 066&lt;/pre&gt;&lt;br /&gt;3. 秘密鍵と証明書を作成&lt;br /&gt;openssl req コマンドで新しく (new) 1年間 (-days 365) 有効な X509 証明書 (x509) を暗号化しないで (nodes) 作成する．秘密鍵が key.pem で，証明書が cert.pem になる．いくつか質問事項（下記のは，Mac OS X 上でやったものを貼付けたのだったりするｗ）に答えると作成される．Common Name の項目が重要で，ここにサーバのホスト名 (FQDN) を入力する．例えば，この証明書をメールサーバで使用すると仮定し，メールクライアントの設定で，IMAP サーバの項目に lucifer.legna.org と入力するなら，Common Name も lucifer.legna.org にしなければならない．&lt;br /&gt;&lt;pre&gt;$ openssl req -new -days 365 -x509 -nodes -keyout key.pem -out cert.pem&lt;br /&gt;Generating a 1024 bit RSA private key&lt;br /&gt;.................................................++++++&lt;br /&gt;........................++++++&lt;br /&gt;writing new private key to 'key.pem'&lt;br /&gt;-----&lt;br /&gt;You are about to be asked to enter information that will be incorporated&lt;br /&gt;into your certificate request.&lt;br /&gt;What you are about to enter is what is called a Distinguished Name or a DN.&lt;br /&gt;There are quite a few fields but you can leave some blank&lt;br /&gt;For some fields there will be a default value,&lt;br /&gt;If you enter '.', the field will be left blank.&lt;br /&gt;-----&lt;br /&gt;Country Name (2 letter code) [AU]:JP&lt;br /&gt;State or Province Name (full name) [Some-State]:Hokkaido&lt;br /&gt;Locality Name (eg, city) []:Sapporo&lt;br /&gt;Organization Name (eg, company) [Internet Widgits Pty Ltd]:Legna&lt;br /&gt;Organizational Unit Name (eg, section) []:&lt;br /&gt;Common Name (eg, YOUR name) []:lucifer.legna.org&lt;br /&gt;Email Address []:root@legna.org&lt;/pre&gt;&lt;br /&gt;自己署名証明書はこんなかんじで簡単につくれる．証明書の内容を表示するには，次のコマンドを入力すればいい．textオプションは，テキストで表示するオプションで，証明書の詳細まですべて表示してくれる．noout オプションは，証明書を出力しないというオプションだ．証明書を出力してもそのままじゃ人間には理解できないからね．（cat などで中身を表示してみればわかるが，ASCII 文字がめちゃくちゃに並んでいるようにしか見えない．）&lt;br /&gt;&lt;pre&gt;$ openssl x509 -text -noout &lt; cert.pem &lt;br /&gt;Certificate:&lt;br /&gt;    Data:&lt;br /&gt;        Version: 3 (0x2)&lt;br /&gt;        Serial Number:&lt;br /&gt;            ea:56:42:a9:71:18:04:78&lt;br /&gt;        Signature Algorithm: sha1WithRSAEncryption&lt;br /&gt;        Issuer: C=JP, ST=Hokkaido, L=Sapporo, O=Legna, CN=lucifer.legna.org/emailAddress=root@legna.org&lt;br /&gt;        Validity&lt;br /&gt;            Not Before: Jul  3 14:16:18 2009 GMT&lt;br /&gt;            Not After : Jul  3 14:16:18 2010 GMT&lt;br /&gt;        Subject: C=JP, ST=Hokkaido, L=Sapporo, O=Legna, CN=lucifer.legna.org/emailAddress=root@legna.org&lt;br /&gt;        Subject Public Key Info:&lt;br /&gt;            Public Key Algorithm: rsaEncryption&lt;br /&gt;            RSA Public Key: (1024 bit)&lt;br /&gt;                Modulus (1024 bit):&lt;br /&gt;                    00:ba:eb:0a:6d:b7:43:26:50:eb:c9:4a:91:5b:a3:&lt;br /&gt;                    8f:ec:3c:11:5d:93:59:7d:3d:4a:b2:af:6f:cf:26:&lt;br /&gt;                    84:7c:b9:fa:43:53:98:f5:48:70:d5:18:97:87:f1:&lt;br /&gt;                    14:bd:b1:e2:26:16:8a:6c:d2:11:f2:3a:c5:81:19:&lt;br /&gt;                    3f:ed:72:0d:ee:7d:69:b8:7c:9d:8b:53:e1:f4:43:&lt;br /&gt;                    4e:75:0d:2e:d6:a7:1b:2f:8c:27:6a:e0:f6:cc:48:&lt;br /&gt;                    94:10:bf:5c:26:ff:bd:6b:a5:a0:e8:eb:01:0f:c0:&lt;br /&gt;                    04:09:9e:03:09:7c:b8:25:82:9d:49:25:a7:83:d4:&lt;br /&gt;                    35:e2:15:4d:bc:52:c3:db:8d&lt;br /&gt;                Exponent: 65537 (0x10001)&lt;br /&gt;        X509v3 extensions:&lt;br /&gt;            X509v3 Subject Key Identifier: &lt;br /&gt;                CB:00:73:E3:4D:59:10:14:B7:EF:35:A2:E6:78:55:84:B4:7E:A3:55&lt;br /&gt;            X509v3 Authority Key Identifier: &lt;br /&gt;                keyid:CB:00:73:E3:4D:59:10:14:B7:EF:35:A2:E6:78:55:84:B4:7E:A3:55&lt;br /&gt;                DirName:/C=JP/ST=Hokkaido/L=Sapporo/O=Legna/CN=lucifer.legna.org/emailAddress=root@legna.org&lt;br /&gt;                serial:EA:56:42:A9:71:18:04:78&lt;br /&gt;&lt;br /&gt;            X509v3 Basic Constraints: &lt;br /&gt;                CA:TRUE&lt;br /&gt;    Signature Algorithm: sha1WithRSAEncryption&lt;br /&gt;        5b:b6:d5:42:9c:e8:23:1e:0c:e4:ec:f6:13:02:0d:cc:09:d9:&lt;br /&gt;        90:68:ee:7e:f6:5d:75:f1:1c:28:5d:91:de:46:d0:7c:46:30:&lt;br /&gt;        9d:65:fa:b2:01:04:12:5c:a5:6d:44:c9:2f:3f:b7:1e:a0:d4:&lt;br /&gt;        5c:52:4a:e5:d5:0c:bb:3f:56:e3:2d:89:27:ef:77:22:0c:ec:&lt;br /&gt;        96:94:0b:53:69:b8:14:75:d5:b1:08:5f:a2:86:44:60:f6:6b:&lt;br /&gt;        b4:e7:dd:12:32:2a:a3:ab:51:97:c4:45:e5:8d:96:e7:e1:ad:&lt;br /&gt;        10:cd:13:7e:38:06:16:5d:34:db:e7:95:76:34:d9:10:e8:e2:&lt;br /&gt;        32:1a&lt;/pre&gt;&lt;br /&gt;とりあえず，これがあれば SSL を使用して暗号化通信ができるようになる．さらに，Namecheap で RapidSSL という格安のサーバ証明書を取得する方法について，近々エントリを書く予定．価格も10.95ドル／年（2009年7月4日現在の為替で，1050円くらい！）と出してもいい値段だし，きちんとした機関が証明してくれるので，ブラウザやメールクライアントで SSL で接続しても，証明書が認証できないから危険かもしれないなんて警告はでなくなる♪お楽しみに〜．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://ja.wikipedia.org/wiki/Secure_Sockets_Layer"&gt;Wikipedia Secure Sockets Layer&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-2390869061137781505?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/2390869061137781505/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=2390869061137781505' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2390869061137781505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2390869061137781505'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/07/openssl.html' title='OpenSSL で自己署名証明書を作成する'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-6430224520479614645</id><published>2009-07-03T19:21:00.002+09:00</published><updated>2009-07-03T19:34:21.450+09:00</updated><title type='text'>Inspiron Mini 12 修理</title><content type='html'>DELL の対応は思ってたより悪くないｗ電話の担当者が日本語を母国語としてないようなので，意思疎通に多少の難点はあるけど．&lt;br /&gt;&lt;br /&gt;○電話から修理完了までのプロセス&lt;br /&gt;6/12 テクニカルサポートに電話する&lt;br /&gt;6/12 メールがくる&lt;br /&gt;6/12 メールで破損部の画像を送る&lt;br /&gt;6/21 連絡がなかったため，メールで破損部の画像を再送する&lt;br /&gt;6/22 メールで連絡がくる&lt;br /&gt;6/23 破損の経緯をメールで伝える&lt;br /&gt;6/23 電話で連絡がくるがとれなかったｗ&lt;br /&gt;6/23 引き取り日選択についてのメールがきてたが，みてなかったｗ&lt;br /&gt;6/23 再度電話がきて，引き取り日を確定する&lt;br /&gt;6/23 引き取り日確定についてのメールがくる&lt;br /&gt;6/27 佐川急便さんに Inspiron Mini 12 の本体のみをそのまま渡す&lt;br /&gt;〜修理期間中2回ほど電話がくる〜&lt;br /&gt;7/3 修理完了&lt;br /&gt;&lt;br /&gt;○修理箇所&lt;br /&gt;・左側ヒンジ&lt;br /&gt;・HDD（なぜか壊れていて，40GBから80GBになって返ってきたｗ）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-6430224520479614645?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/6430224520479614645/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=6430224520479614645' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6430224520479614645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6430224520479614645'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/07/inspiron-mini-12.html' title='Inspiron Mini 12 修理'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-426580959301077348</id><published>2009-07-02T22:28:00.001+09:00</published><updated>2009-07-17T10:50:54.125+09:00</updated><title type='text'>Cyrus IMAP Server エラー</title><content type='html'>メールサーバ構築の関係で，FreeBSD 上に Cyrus IMAP Server をインストールしてみたんだけど，起動時にこんなエラーがでた．&lt;br /&gt;&lt;pre&gt;Jul  3 01:14:18 lucifer ctl_cyrusdb[67112]: DBERROR: error listing log files: DB_NOTFOUND: No matching key/data pair found&lt;br /&gt;Jul  3 01:14:18 lucifer ctl_cyrusdb[67112]: DBERROR: archive /var/imap/db: cyrusdb error&lt;/pre&gt;&lt;br /&gt;Ports の mail/cyrus-imapd23 と mail/cyrus-imapd22 でこの現象がでた．mail/cyrus-imapd2 は問題なかった．&lt;br /&gt;&lt;br /&gt;ソースをちょこっと追ってみたんだけど，動作を完全に理解できなかったのであきらめた．ctl_cyrusdb が定期的に実行されて，checkpoint をつくるらしいんだけど，そこでどうやらエラーを吐いてる．エラーを吐かなくするパッチは簡単につくれるんだけど，なぜエラーになってるのかを完全に追いきれなかったし，このエラーによって生じている問題自体が不明なんだよね……．&lt;br /&gt;&lt;br /&gt;追記（2009年7月17日）：&lt;br /&gt;コメントを頂いたおかげで解決♪ユーザ作成（メールも1通送信してみた．）すればエラーはでなくなる．運用してみれば解決するというなんとも単純な僕のミスでした．UW-IMAP から Cyrus IMAP Server に移行しようかなぁ……．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-426580959301077348?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/426580959301077348/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=426580959301077348' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/426580959301077348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/426580959301077348'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/07/cyrus-imap-server.html' title='Cyrus IMAP Server エラー'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-7154805693744240849</id><published>2009-06-25T23:23:00.008+09:00</published><updated>2009-09-14T18:20:52.887+09:00</updated><title type='text'>FreeBSD でサーバ構築 #14 リレー設定</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2009/06/freebsd-13.html"&gt;林檎生活100: FreeBSD でサーバ構築 #13 ドメイン名のメールの受信&lt;/a&gt;の続き．今回は，メールクライアントからこのメールサーバをメール送信サーバ（SMTP サーバ）として使用できるように，リレーの設定をする．（次回説明する SMTP-AUTH を使用する場合は，今回の設定は必要ない．）&lt;br /&gt;&lt;br /&gt;さて，メールクライアントからメール送信サーバとして使用できるようにするにはどうすればいいのか．逆に言えば，なぜメール送信サーバとして使用できないのかをまず考えよう．&lt;br /&gt;&lt;br /&gt;SMTP サーバは，メールを受け取ると基本的には次の2つの処理をする．&lt;br /&gt;&lt;br /&gt;1. ローカル配信&lt;br /&gt;2. 転送（リレー）&lt;br /&gt;&lt;br /&gt;1のローカル配信は，自ホスト宛のメールということで，どこから送られてきても基本的には受信してローカル配信をする．（メールアドレスさえ知っていれば，誰からのメールでもとりあえず届くよね．）2の転送は，自ホスト宛ではないメールを MX レコードを引いたりして，別のメールサーバに転送するということだ．これをどこから送られてきても処理していたら，問題になってしまうので，転送は制限されている．それゆえ，デフォルトでは，メールクライアントからメール送信サーバとして扱えないようになっている．&lt;br /&gt;&lt;br /&gt;なぜ問題になるのか．それは，スパムメールの中継サーバに悪用される可能性があるからだ．（悪用される可能性と書いたけど，誰からのメールでも転送する（オープンリレー）状態で放置しておいたら，スパムを転送しようとしてオープンリレーのサーバを探しているクローラに発見されて悪用される．）なので，FreeBSD の Sendmail では，localhost 以外からのメールを転送はしないようにリレー設定されている．&lt;br /&gt;&lt;br /&gt;では，ある特定のホストやユーザからのメールを転送するように設定しようと思う．普通に考えれば，ユーザ認証すればいいんじゃない？と思うところだけど，SMTP はスパムメールという概念すらなかったころの古いプロトコルなのでユーザ認証の仕組みがないんだよね．（ユーザ認証が使えるようにする設定は，次回やろうと思ってはいるんだけどね．）なので今回は，メールは自宅からしか使わないことを前提に，LAN 内のホストからの転送を許可するように設定してみる．&lt;br /&gt;&lt;br /&gt;1. /etc/mail/access の変更&lt;br /&gt;リレーを許可するホストを指定するには，/etc/mail/access ファイルに次のような行を追加する．これは，接続したホストの IP アドレスが 192.168.1.xxx であればリレーを許可するというものだ．LAN 内のホストの IP アドレスが 192.168.1.xxx である場合は，この設定でメールクライアントからメール送信サーバとして扱えるようになる．&lt;br /&gt;&lt;pre&gt;Connect:192.168.1       RELAY&lt;/pre&gt;&lt;br /&gt;2. アクセスデータベースを再構築する．&lt;br /&gt;&lt;pre&gt;# cd /etc/mail&lt;br /&gt;# make maps&lt;/pre&gt;&lt;br /&gt;以上で設定完了だ．メールクライアントにこのメールサーバを設定するとリレーが可能になっているはずだ．今回は SMTP サーバと会話してみよう．（ちょくせつ SMTP コマンドを発行するということ．）Mac OS X などサーバではないクライアントから次のようにコマンドを打ってみよう．（適宜ホスト名などは，自分の環境に置き換えてほしい．）&lt;br /&gt;&lt;pre&gt;$ telnet 接続先ホスト IP smtp&lt;br /&gt;Trying 接続先ホスト IP...&lt;br /&gt;Connected to 接続先ホスト IP.&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;220 接続先ホスト名 ESMTP Sendmail 8.14.3/8.14.3; Fri, 26 Jun 2009 08:38:17 +0900 (JST)&lt;br /&gt;HELO 接続元ホスト名&lt;br /&gt;250 接続先ホスト名 Hello [接続元ホスト IP], pleased to meet you&lt;br /&gt;MAIL From: 送信元メールアドレス&lt;br /&gt;250 2.1.0 送信元メールアドレス... Sender ok&lt;br /&gt;RCPT To: 送信先メールアドレス&lt;br /&gt;250 2.1.5 送信先メールアドレス... Recipient ok&lt;br /&gt;DATA&lt;br /&gt;354 Enter mail, end with "." on a line by itself&lt;br /&gt;To: 送信先メールアドレス&lt;br /&gt;Subject: This is test mail.&lt;br /&gt;This is test mail from Mac OS X.&lt;br /&gt;.&lt;br /&gt;250 2.0.0 n5PNcHsY002853 Message accepted for delivery&lt;br /&gt;QUIT&lt;br /&gt;221 2.0.0 lucifer.legna.org closing connection&lt;br /&gt;Connection closed by foreign host.&lt;br /&gt;$&lt;/pre&gt;&lt;br /&gt;接続元ホスト IP：192.168.1.7&lt;br /&gt;接続先ホスト IP：192.168.1.255&lt;br /&gt;接続元ホスト名：michael.legna.org（適当で OK．）&lt;br /&gt;接続先ホスト名：lucifer.legna.org&lt;br /&gt;送信元メールアドレス：takuya__at__legna.org&lt;br /&gt;送信先メールアドレス：example__at__example.com&lt;br /&gt;&lt;br /&gt;というかんじだ．送信できることを確認してほしい．時間があれば，access の内容を書き換えて実験してみてほしい．また，WAN 側から悪用されるようなリレーが働いていないかどうか，次のサイトにアクセスして調べてみよう．Address to test: の項目に接続先ホスト名 (lucifer.legna.org) を入力し，Test for relay をクリックするだけだ．出力の最後に Relay test result の項があり，All tests performed, no relays accepted. となっていれば WAN 側から悪用されることはないはずだ．&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.abuse.net/relay.html"&gt;Abuse.net: Mail relay testing&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/SkQNqg857rI/AAAAAAAAAu4/A1Eb-cTTZCg/s1600-h/RELAY%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/SkQNqg857rI/AAAAAAAAAu4/A1Eb-cTTZCg/s320/RELAY%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5351417281274048178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/SkQNqXNmkeI/AAAAAAAAAuw/qdsQyfAw19Q/s1600-h/RELAY%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/SkQNqXNmkeI/AAAAAAAAAuw/qdsQyfAw19Q/s320/RELAY%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5351417278659727842" /&gt;&lt;/a&gt;&lt;br /&gt;というかんじ．リレーの話を理解してもらえたかな．SMTP がシンプルゆえの設定というかんじ．次回は，Sendmail に SMTP 認証する機能を付加したいと思う．いくつかインストールしなければならないプログラムがあるし，Sendmail をリビリルドしなきゃならないし，かなり面倒くさいかんじなんだよなぁ……．まあ，LAN 内からしか使わないっていう人は，次の回の設定はいらないね．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111765?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111765"&gt;sendmail 第3版〈VOLUME1〉運用編&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111765" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111803?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111803"&gt;sendmail 第3版〈VOLUME2〉設定編&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111803" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111889?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111889"&gt;sendmailクックブック―設定と運用のためのレシピ集&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111889" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-7154805693744240849?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/7154805693744240849/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=7154805693744240849' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7154805693744240849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7154805693744240849'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/freebsd-14.html' title='FreeBSD でサーバ構築 #14 リレー設定'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zhVOi4fKc_M/SkQNqg857rI/AAAAAAAAAu4/A1Eb-cTTZCg/s72-c/RELAY%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-8197429888345370512</id><published>2009-06-25T21:47:00.001+09:00</published><updated>2009-06-25T21:47:00.518+09:00</updated><title type='text'>FreeBSD でサーバ構築 #13 ドメイン名のメールの受信</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2009/06/freebsd-12.html#links"&gt;林檎生活100: FreeBSD でサーバ構築 #12 メールの受信&lt;/a&gt;の続き．今回は，ホスト名 (takuya__at__lucifer.legna.org) ではなく，ドメイン名 (takuya__at__legna.org) のメールを受信できるように設定しよう．&lt;br /&gt;&lt;br /&gt;まず何をやらなければならないかを考える．変わったのはメールアドレスのホスト名をドメイン名だけにしたことだ．つまり，ドメイン名 (legna.org) からメールサーバのホスト名 (lucifer.legna.org) を引けるようになる必要がある．つまり，MX レコードにこれを設定する必要がある．そして，Sendmail は，rc.conf に設定されているホスト名 (hostname="lucifer.legna.org") のメールをローカル配信するものとして処理するが，ドメイン名 (legna.org) のメールをローカル配信するものとしては処理しない．よって，ドメイン名のメールをローカル配信するものとしては処理するように設定する必要がある．&lt;br /&gt;&lt;br /&gt;それでは，この2点について設定していこう．&lt;br /&gt;&lt;br /&gt;1. MX レコードの記述&lt;br /&gt;MX レコードの記述は，次のようにそのまま書ける．（起点名が legna.org だから省略して空白になる．）シリアル番号を増加させることと，named を再起動させることを忘れないように．&lt;br /&gt;&lt;pre&gt;          MX 10 lucifer.legna.org.&lt;/pre&gt;&lt;br /&gt;2. ローカル配信するメールのホスト名の設定&lt;br /&gt;/etc/mail/local-host-names というファイルに，次の内容を記述し，Sendmail を再起動する．このファイルに記述されたホスト名宛のメールについては，ローカル配信するものとして処理するようになる．&lt;br /&gt;&lt;pre&gt;legna.org&lt;/pre&gt;&lt;br /&gt;設定はこれだけ．これで，takuya__at__legna.org というメールアドレスのメールを受信できるようになるので，実際にメールを送って試してみてね．&lt;br /&gt;&lt;br /&gt;ローカル配信するメールのホスト名の設定にはいくつか方法があるのだけど，今回は，設定ファイルをビルドする必要がなく，Sendmail を再起動するだけで実現できるこの方法をとることにした．僕としては，この方法がオススメ．&lt;br /&gt;&lt;br /&gt;さて，次回は，メールクライアント（Max OS X の Mail や Thunderbird など．） から送信サーバ（SMTP サーバ）として扱えるように設定する．その際に，メールのリレーについての話もする予定．お楽しみに♪&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111765?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111765"&gt;sendmail 第3版〈VOLUME1〉運用編&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111765" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111803?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111803"&gt;sendmail 第3版〈VOLUME2〉設定編&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111803" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111889?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111889"&gt;sendmailクックブック―設定と運用のためのレシピ集&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111889" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-8197429888345370512?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/8197429888345370512/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=8197429888345370512' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8197429888345370512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8197429888345370512'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/freebsd-13.html' title='FreeBSD でサーバ構築 #13 ドメイン名のメールの受信'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-4379485979677476139</id><published>2009-06-24T21:04:00.000+09:00</published><updated>2009-06-24T21:04:01.240+09:00</updated><title type='text'>C 言語の話#4 リスト</title><content type='html'>リストを&lt;a href="http://applelife100.blogspot.com/2009/06/c-3.html#links"&gt;林檎生活100: C 言語の話#3 オブジェクト指向プログラミング？&lt;/a&gt;のように実装．まあ，スタック的操作しか実装してないけどｗイテレータもやればできるもんだね．&lt;br /&gt;&lt;pre&gt;/* main.c */&lt;br /&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;#include &amp;lt;string.h&gt;&lt;br /&gt;#include "book.h"&lt;br /&gt;#include "list.h"&lt;br /&gt;&lt;br /&gt;int main(void)&lt;br /&gt;{&lt;br /&gt;    List *books;&lt;br /&gt;    Book *book;&lt;br /&gt;    Iterator *it;&lt;br /&gt;&lt;br /&gt;    books = newList();&lt;br /&gt;&lt;br /&gt;    books-&gt;push(books, newBook("伝奇集", "J.L. ボルヘス"));&lt;br /&gt;    books-&gt;push(books, newBook("ぼく、オタリーマン。", "よしたに"));&lt;br /&gt;    books-&gt;push(books, newBook("ブタのいどころ", "小泉吉宏"));&lt;br /&gt;&lt;br /&gt;    it = newIterator(books);&lt;br /&gt;    while (it-&gt;hasNext(it)) {&lt;br /&gt;        book = it-&gt;next(it);&lt;br /&gt;        printf("%s\t%s\n", book-&gt;getTitle(book), book-&gt;getAuthor(book));&lt;br /&gt;    }&lt;br /&gt;    deleteIterator(it);&lt;br /&gt;&lt;br /&gt;    while ((book = books-&gt;pop(books)) != NULL)&lt;br /&gt;        deleteBook(book);&lt;br /&gt;&lt;br /&gt;    deleteList(books);&lt;br /&gt;&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;/pre&gt;&lt;pre&gt;/* list.h */&lt;br /&gt;#ifndef __LIST_H__&lt;br /&gt;#define __LIST_H__&lt;br /&gt;&lt;br /&gt;typedef struct _List List;&lt;br /&gt;typedef struct _Iterator Iterator;&lt;br /&gt;typedef struct _Element Element;&lt;br /&gt;&lt;br /&gt;struct _List {&lt;br /&gt;    Element *first;&lt;br /&gt;    int ((*push)(List *list, void *data));&lt;br /&gt;    void *((*pop)(List *list));&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;struct _Iterator {&lt;br /&gt;    Element *e;&lt;br /&gt;    int ((*hasNext)(const Iterator *it));&lt;br /&gt;    void *((*next)(Iterator *it));&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;List *newList(void);&lt;br /&gt;void deleteList(List *list);&lt;br /&gt;&lt;br /&gt;Iterator *newIterator(List *list);&lt;br /&gt;void deleteIterator(Iterator *it);&lt;br /&gt;&lt;br /&gt;#endif /* __LIST_H__ */&lt;/pre&gt;&lt;pre&gt;/* list.c */&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;stdlib.h&gt;&lt;br /&gt;#include "list.h"&lt;br /&gt;&lt;br /&gt;struct _Element {&lt;br /&gt;    Element *next;&lt;br /&gt;    void *data;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;int list_push(List *list, void *data);&lt;br /&gt;void *list_pop(List *list);&lt;br /&gt;&lt;br /&gt;int iterator_hasNext(const Iterator *it);&lt;br /&gt;void *iterator_next(Iterator *it);&lt;br /&gt;&lt;br /&gt;Element *newElement(Element *e, void *data);&lt;br /&gt;void deleteElement(Element *e);&lt;br /&gt;&lt;br /&gt;List *newList(void)&lt;br /&gt;{&lt;br /&gt;    List *list;&lt;br /&gt;&lt;br /&gt;    list = (List *)malloc(sizeof(List));&lt;br /&gt;    if (list == NULL) {&lt;br /&gt;        fprintf(stderr, "%s:%d: error: %s()\n", __FILE__, __LINE__, __func__);&lt;br /&gt;        return NULL;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    list-&gt;first = NULL;&lt;br /&gt;&lt;br /&gt;    list-&gt;push = list_push;&lt;br /&gt;    list-&gt;pop = list_pop;&lt;br /&gt;&lt;br /&gt;    return list;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void deleteList(List *list)&lt;br /&gt;{&lt;br /&gt;    free(list);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int list_push(List *list, void *data)&lt;br /&gt;{&lt;br /&gt;    Element *e;&lt;br /&gt;&lt;br /&gt;    e = newElement(list-&gt;first, data);&lt;br /&gt;    if (e == NULL) {&lt;br /&gt;        fprintf(stderr, "%s:%d: error: %s()\n", __FILE__, __LINE__, __func__);&lt;br /&gt;        return -1;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    list-&gt;first = e;&lt;br /&gt;&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void *list_pop(List *list)&lt;br /&gt;{&lt;br /&gt;    Element *e;&lt;br /&gt;    void *data;&lt;br /&gt;&lt;br /&gt;    if (list-&gt;first == NULL)&lt;br /&gt;        return NULL;&lt;br /&gt;&lt;br /&gt;    e = list-&gt;first;&lt;br /&gt;    data = e-&gt;data;&lt;br /&gt;    list-&gt;first = e-&gt;next;&lt;br /&gt;&lt;br /&gt;    deleteElement(e);&lt;br /&gt;&lt;br /&gt;    return data;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Iterator *newIterator(List *list)&lt;br /&gt;{&lt;br /&gt;    Iterator *it;&lt;br /&gt;&lt;br /&gt;    it = (Iterator *)malloc(sizeof(Iterator));&lt;br /&gt;    if (it == NULL) {&lt;br /&gt;        fprintf(stderr, "%s:%d: error: %s()\n", __FILE__, __LINE__, __func__);&lt;br /&gt;        return NULL;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    it-&gt;e = list-&gt;first;&lt;br /&gt;&lt;br /&gt;    it-&gt;hasNext = iterator_hasNext;&lt;br /&gt;    it-&gt;next = iterator_next;&lt;br /&gt;&lt;br /&gt;    return it;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void deleteIterator(Iterator *it)&lt;br /&gt;{&lt;br /&gt;    free(it);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int iterator_hasNext(const Iterator *it)&lt;br /&gt;{&lt;br /&gt;    return it-&gt;e != NULL ? 1 : 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void *iterator_next(Iterator *it)&lt;br /&gt;{&lt;br /&gt;    void *data;&lt;br /&gt;&lt;br /&gt;    if (!iterator_hasNext(it))&lt;br /&gt;        return NULL;&lt;br /&gt;&lt;br /&gt;    data = it-&gt;e-&gt;data;&lt;br /&gt;    it-&gt;e = it-&gt;e-&gt;next;&lt;br /&gt;&lt;br /&gt;    return data;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Element *newElement(Element *next, void *data)&lt;br /&gt;{&lt;br /&gt;    Element *e;&lt;br /&gt;&lt;br /&gt;    e = (Element *)malloc(sizeof(Element));&lt;br /&gt;    if (e == NULL) {&lt;br /&gt;        fprintf(stderr, "%s:%d: error: %s()\n", __FILE__, __LINE__, __func__);&lt;br /&gt;        return NULL;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    e-&gt;next = next;&lt;br /&gt;    e-&gt;data = data;&lt;br /&gt;&lt;br /&gt;    return e;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void deleteElement(Element *e)&lt;br /&gt;{&lt;br /&gt;    free(e);&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-4379485979677476139?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/4379485979677476139/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=4379485979677476139' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4379485979677476139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4379485979677476139'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/c-4.html' title='C 言語の話#4 リスト'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-6769351230884234566</id><published>2009-06-23T06:25:00.002+09:00</published><updated>2009-06-23T06:31:49.933+09:00</updated><title type='text'>Mac OS X の Vim 文字コード</title><content type='html'>Vim ユーザといいながらも，文字コードまわりを理解していなかった（ダメ&lt;br /&gt;&lt;br /&gt;&lt;a href="http://peace-pipe.blogspot.com/2006/04/mac-6-vim-mac.html"&gt;Peace Pipe: Mac 環境構築 その6 - vim の文字コード設定 [mac]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;このページが非常に参考になった．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-6769351230884234566?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/6769351230884234566/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=6769351230884234566' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6769351230884234566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6769351230884234566'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/mac-os-x-vim.html' title='Mac OS X の Vim 文字コード'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-172845270281829365</id><published>2009-06-23T05:17:00.003+09:00</published><updated>2009-06-23T05:23:10.475+09:00</updated><title type='text'>EMOBILE + Interlink マイ IP サービス</title><content type='html'>FreeBSD でこれを実現すれば，回線引かなくてもサーバ立ち上げることができそう．&lt;br /&gt;&lt;br /&gt;今年度中に実験したいなぁ．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.emobile.jp/"&gt;EMOBILE&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.interlink.or.jp/service/myip/"&gt;Interlink: マイ IP サービス&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-172845270281829365?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/172845270281829365/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=172845270281829365' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/172845270281829365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/172845270281829365'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/emobile-interlink-ip.html' title='EMOBILE + Interlink マイ IP サービス'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-1750076389343085164</id><published>2009-06-22T06:30:00.004+09:00</published><updated>2009-06-24T21:48:23.541+09:00</updated><title type='text'>FreeBSD でサーバ構築 #12 メールの受信</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2009/06/freebsd-11-mail.html#links"&gt;林檎生活100: FreeBSD でサーバ構築 #11 メールコマンド mail&lt;/a&gt;の続き．今回は，メールを受信できるように設定しよう．&lt;br /&gt;&lt;br /&gt;メールを受信するということは，どういう仕組みで動作しているのかを簡単に説明しよう．takuya__at__lucifer.legna.org（メールアドレスをボットに拾われるのが嫌なので，@ を __at__ で表記する．これってどのくらい効果があるんだろう？）というメールアドレスにメールを送信する場合，次のような手順で処理される．（厳密な手順ではないんだけど，だいたいあってるはずｗ）&lt;br /&gt;&lt;br /&gt;1. lucifer.legna.org の MX レコードをネームサーバに問い合わせ，転送先メールサーバにメールを転送する．（MX の前はメールアドレスに置けるホスト名に対応し，MX の後はそのメールアドレスのメールを転送すべきサーバのホスト名に対応する．）&lt;br /&gt;&lt;pre&gt;lucifer   MX 10 lucifer.legna.org.&lt;/pre&gt;&lt;br /&gt;2. メールサーバ (lucifer.legna.org) は，メールアドレスのホスト名 lucifer.legna.org のメールを受け取ることになっている場合受け取る．（MX レコードだけであれば，偽装が可能なのでサーバ側でもチェックする．）&lt;br /&gt;&lt;br /&gt;3. メールアドレスのユーザ名 (takuya) を参照し，ユーザのメールボックスに配送する．&lt;br /&gt;&lt;br /&gt;いろいろ細かいところを端折るとこんなかんじ．このことから，MX レコードを設定し，サーバへ接続できるようにポートを開放し，メールサーバがメールアドレスのホスト名が lucifer.legna.org であるメールを受け取るようにすればいい．&lt;br /&gt;&lt;br /&gt;あと，忘れてはならないのがメールサーバを起動すること．正確には，メールサーバが 127.0.0.1 のインタフェースからしか接続を許可しない設定で起動するようになっているので，その限定を解除して起動させるということだ．&lt;br /&gt;&lt;br /&gt;1. MX レコードの記述&lt;br /&gt;&lt;pre&gt;lucifer   MX 10 lucifer.legna.org.&lt;/pre&gt;&lt;br /&gt;がネームサーバに記述されていることを確認する．記述されていなかったら記述する．&lt;br /&gt;&lt;br /&gt;2. 受信ホスト名設定&lt;br /&gt;Sendmail は，設定されているホスト名宛のメールを受信するので，それが設定されていれば設定は必要ない．もし設定されていなければ，rc.conf の hostname に設定するだけ．&lt;br /&gt;&lt;br /&gt;3. Sendmail の起動&lt;br /&gt;rc.conf に次の行を記述する．&lt;br /&gt;&lt;pre&gt;sendmail_enable="YES"&lt;/pre&gt;&lt;br /&gt;FreeBSD を再起動するか，次のコマンドを入力する．&lt;br /&gt;&lt;pre&gt;# /etc/rc.d/sendmail restart&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;4. ポート開放&lt;br /&gt;SMTP は TCP 25番ポートなので，グローバル IP 25番への接続をサーバのプライベート IP 25番への接続に変換する．ネームサーバの設定でやったのと同じ．&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ここまで設定したら，それぞれの項目の設定が正しいかチェックしよう．&lt;br /&gt;&lt;br /&gt;1. MX レコードの記述&lt;br /&gt;次のコマンドを入力する．&lt;br /&gt;&lt;pre&gt;$ nslookup -type=mx lucifer.legna.org&lt;/pre&gt;&lt;br /&gt;出力にこのような行があれば OK．&lt;br /&gt;&lt;pre&gt;lucifer.legna.org mail exchanger = 10 lucifer.legna.org.&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;2. 受信ホスト名設定&lt;br /&gt;次のコマンドを入力する．&lt;br /&gt;&lt;pre&gt;$ hostname&lt;/pre&gt;&lt;br /&gt;出力にこのような行があれば OK．&lt;br /&gt;&lt;pre&gt;lucifer.legna.org&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;3. Sendmail の起動&lt;br /&gt;次のコマンドを入力する．&lt;br /&gt;&lt;pre&gt;# /etc/rc.d/sendmail status&lt;/pre&gt;&lt;br /&gt;出力にこのような行があれば OK．&lt;br /&gt;&lt;pre&gt;sendmail is running as pid 710.&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;4. ポート開放&lt;br /&gt;次のページに，ホスト名 (lucifer.legna.org) とポート番号 (25) を入力し，ポートチェックをクリック．&lt;br /&gt;&lt;a href="http://www.cman.jp/network/support/port.html"&gt;CMAN: ポートチェック&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ここまでチェックが完了したら，Gmail などからメールを送ってみよう．そうするとユーザのメールボックスにメールが届くはずだ．全解説明した mail コマンドで確認してほしい．&lt;br /&gt;&lt;br /&gt;今回はここまで．Sendmail の設定といっても，Sendmail はデフォルトのままでネームサーバの設定などだけだったけどねｗほとんどデフォルトでもメールって動くんだなぁと僕も感心してしまった．次回は．takuya__at__lucifer.legna.org ではなく，よくある takuya__at__legna.org というドメイン名だけのメールを受信できるように設定する．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111765?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111765"&gt;sendmail 第3版〈VOLUME1〉運用編&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111765" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111803?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111803"&gt;sendmail 第3版〈VOLUME2〉設定編&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111803" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111889?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111889"&gt;sendmailクックブック―設定と運用のためのレシピ集&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111889" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-1750076389343085164?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/1750076389343085164/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=1750076389343085164' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1750076389343085164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1750076389343085164'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/freebsd-12.html' title='FreeBSD でサーバ構築 #12 メールの受信'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-6573249323656266343</id><published>2009-06-21T08:22:00.004+09:00</published><updated>2009-07-02T02:37:32.930+09:00</updated><title type='text'>FreeBSD でサーバ構築 #11 メールコマンド mail</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2009/06/freebsd-10.html#links"&gt;林檎生活100: FreeBSD でサーバ構築 #10 ポートマッピングとゾーン転送&lt;/a&gt;の続き．今回からは，Sendmail 編に入るんだけど，今回は Sendmail の話はせずにメールコマンドについて話したいと思う．メールコマンドはメールの送受信の確認のために使うからね．ちなみに，ここまで書くのに1年かかってるｗｗｗApache 編を書き終えるまでに何年かかるんだろうｗまあ，そんなに廃れない知識だと思うので，無駄にはならないはずだけどね．&lt;br /&gt;&lt;br /&gt;ではさっそくメールを送ってみたいと思う．実は，FreeBSD をインストールしただけで，デフォルトのメールサーバである Sendmail は機能を限定して動作している．なので，ローカルのユーザ間でのメール送受信はもちろんできるし，インターネットへの接続がきちんと設定されていれば，外部のメールアドレスへのメール送信ができてしまうのだ．外部のメールアドレスへメール送信ができるのがなぜかについては，Sendmail の設定をするあたりで説明をしようと思うので，今回は送信できるんだなぁと思っておいてもらえれば OK．&lt;br /&gt;&lt;br /&gt;では，適当なメールアドレスにメールを送る．次のようにコマンドを入力する．&lt;br /&gt;&lt;pre&gt;$ mail  メールアドレス&lt;/pre&gt;&lt;br /&gt;そうすると，このような画面になると思う．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sj0ec1qZQEI/AAAAAAAAAtg/9mio5X3fOmk/s1600-h/mail%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sj0ec1qZQEI/AAAAAAAAAtg/9mio5X3fOmk/s320/mail%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5349465413176082498" /&gt;&lt;/a&gt;&lt;br /&gt;件名を入力して，Enter を押す．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/Sj0ectuU94I/AAAAAAAAAtY/DdTo2aPhDbQ/s1600-h/mail%5B3%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/Sj0ectuU94I/AAAAAAAAAtY/DdTo2aPhDbQ/s320/mail%5B3%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5349465411045095298" /&gt;&lt;/a&gt;&lt;br /&gt;次に本分を入力して，行頭で ctrl+D を入力することで送信される．EOT と出力されると思うが，それは End Of Transmission（転送終了）の意味なのだ．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sj0ecTQw3CI/AAAAAAAAAtQ/U6NpsMVeeTE/s1600-h/mail%5B4%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/Sj0ecTQw3CI/AAAAAAAAAtQ/U6NpsMVeeTE/s320/mail%5B4%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5349465403941772322" /&gt;&lt;/a&gt;&lt;br /&gt;僕は Gmail のアドレスに送付してみた．メールサーバによっては，スパムとしてはじかれる可能性があるので，届かない場合はメールアドレスを変えて試してほしい．（それでも届かない場合は，プロバイダ側で SMTP で使用する 25 番ポートを塞いでいる可能性がある．このことについては，参考文献を参照のこと．）&lt;br /&gt;&lt;br /&gt;次に，自分自身にメールを送ってみる．これは，ローカルで動作している Sendmail を経由して，自分のメールボックスにメールを送るということだ．このような感じで送ってみる．（メールアドレスは，ユーザ名だけでも，ユーザ名@localhost でも，ユーザ名@自ホスト名でもいい．）&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sj1jbP-YbjI/AAAAAAAAAto/QCj5TTwydM8/s1600-h/mail%5B5%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sj1jbP-YbjI/AAAAAAAAAto/QCj5TTwydM8/s320/mail%5B5%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5349541252181814834" /&gt;&lt;/a&gt;&lt;br /&gt;これで，自分宛にメールが送信されたはずだ．では，メールが届いてるかチェックしてみよう．ここからが，ちょっと癖のある mail コマンドの操作になるのでついてきてほしい．まず，引数なしで，mail とだけ打って実行しよう．&lt;br /&gt;&lt;pre&gt;$ mail&lt;/pre&gt;&lt;br /&gt;そうすると，こんな画面になるはずだ．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sj1mr9KNSWI/AAAAAAAAAtw/o2gBQ0Pa48U/s1600-h/mail%5B6%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sj1mr9KNSWI/AAAAAAAAAtw/o2gBQ0Pa48U/s320/mail%5B6%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5349544837723801954" /&gt;&lt;/a&gt;&lt;br /&gt;1行目にバージョン情報など（1993年6月6日のバージョン！）が表示され，2行目に /var/mail/takuya にメッセージが1通あり，そのうち1通が新着ということが表示されている．3行目からは，メールボックスに入っているメール一覧が表示される．それが終わったあとに，mail プログラム用のコマンド入力を受け付ける状態になる．メールを見るために enter を押してみよう．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/Sj1msDnW2WI/AAAAAAAAAt4/CuqfhIEKfoc/s1600-h/mail%5B7%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/Sj1msDnW2WI/AAAAAAAAAt4/CuqfhIEKfoc/s320/mail%5B7%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5349544839456676194" /&gt;&lt;/a&gt;&lt;br /&gt;このように新着メールの内容が表示されたはずだ．何も入力せずに enter を入力すると，1番上の新着メールを表示することになる．新着メールが2通以上あるときは，enter を押していくだけで，上から順にメールを参照することができる．さて，h と入力してみよう．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sj1msWTXxwI/AAAAAAAAAuA/NeDjKcxx5Nw/s1600-h/mail%5B8%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sj1msWTXxwI/AAAAAAAAAuA/NeDjKcxx5Nw/s320/mail%5B8%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5349544844473124610" /&gt;&lt;/a&gt;&lt;br /&gt;このような画面になったはずだ．起動時に表示されたメール一覧が表示される．メールの先頭にあった N マーク，つまり新着を表す印がなくなっていることには注目してほしい．この状態で enter を押しても，そのメールを参照することはできない．もう1回そのメールを見たいときには，メールの先頭についている番号を入力する必要がある．1 と入力してみよう．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sj1qXezytZI/AAAAAAAAAuQ/LTXz538l1aY/s1600-h/mail%5B9%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sj1qXezytZI/AAAAAAAAAuQ/LTXz538l1aY/s320/mail%5B9%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5349548884025849234" /&gt;&lt;/a&gt;&lt;br /&gt;さっきと同じような画面が出力されたはずだ．こうやってメールを参照すればいい．より詳細なメールの情報がほしくて，メールヘッダを表示したいときには，P 1 と入力する．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sj1msknemCI/AAAAAAAAAuI/aozRnBWzJ1A/s1600-h/mail%5B9%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/Sj1msknemCI/AAAAAAAAAuI/aozRnBWzJ1A/s320/mail%5B9%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5349544848315553826" /&gt;&lt;/a&gt;&lt;br /&gt;そうすると，このようにメールヘッダの情報をすべて表示してくれる．終了させるときは，q を入力すればいい．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sj1v4gUBK7I/AAAAAAAAAuo/y8XMp5LnDRw/s1600-h/mail%5B11%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sj1v4gUBK7I/AAAAAAAAAuo/y8XMp5LnDRw/s320/mail%5B11%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5349554948923272114" /&gt;&lt;/a&gt;&lt;br /&gt;mbox にメッセージ1通を保存しましたと出力されることに注意してほしい．読んだメールは，システムのメールボックスから，ホームディレクトリにあるメールボックス (~/mbox) に保存されるようになっているのだ．なので，mail をもう1回実行してみてほしい．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sj1v4c8qmfI/AAAAAAAAAug/J4_pogYyG0w/s1600-h/mail%5B12%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/Sj1v4c8qmfI/AAAAAAAAAug/J4_pogYyG0w/s320/mail%5B12%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5349554948020017650" /&gt;&lt;/a&gt;&lt;br /&gt;そうすると，このようなメッセージが出力されて，保存したメールを見ることができない．こうなるのは，メールボックスからホームディレクトリの mbox にメールが移動したからだ．郵便局 (/var/mail/takuya) にあったメールが，自宅に転送されて読み終わったので，自宅のメールボックス (~/mbox) に保存したというように考えてもらうといいと思う．自宅のメールボックスのメールを見るためには，mail コマンドを次のように実行する．&lt;br /&gt;&lt;pre&gt;$ mail -f ~/mbox&lt;/pre&gt;&lt;br /&gt;そうすると，このようなさっき見た画面を見ることができるはずだ．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/Sj1v4DSay8I/AAAAAAAAAuY/Y6BW9gBD6h4/s1600-h/mail%5B13%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/Sj1v4DSay8I/AAAAAAAAAuY/Y6BW9gBD6h4/s320/mail%5B13%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5349554941131934658" /&gt;&lt;/a&gt;&lt;br /&gt;こんなかんじで，mail コマンドの使い方を説明した．これから Sendmail の設定をやっていく上で，たぶん役に立つはずだｗもっとちゃんと mail コマンドを使ってみたいという人は，参考文献にあげた mail コマンドの man の日本語翻訳を参考にしてほしい．次回は，Sendmail を設定して，今回 FreeBSD から送信した外部のメールアドレスから逆にメールを送信し，FreeBSD でメールを受信できるようにしたいと思う．たぶん，mail コマンドより理解しやすいと思うのでお楽しみにｗｗｗ&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&amp;lc=1&amp;cmd=&amp;man=mail&amp;dir=jpman-7.1.2%2Fman&amp;amp;sect=0"&gt;FreeBSD 日本語マニュアル検索: On-line Manual of "mail"&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ja.wikipedia.org/wiki/Outbound_Port_25_Blocking"&gt;Wikipedia: Outbound Port 25 Blocking&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;追記（2009年7月2日）：&lt;br /&gt;メールを保存するコマンド．&lt;br /&gt;&lt;pre&gt;&amp; s メール番号 ファイル名&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-6573249323656266343?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/6573249323656266343/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=6573249323656266343' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6573249323656266343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6573249323656266343'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/freebsd-11-mail.html' title='FreeBSD でサーバ構築 #11 メールコマンド mail'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zhVOi4fKc_M/Sj0ec1qZQEI/AAAAAAAAAtg/9mio5X3fOmk/s72-c/mail%5B2%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-8580296946429790449</id><published>2009-06-20T10:36:00.002+09:00</published><updated>2009-06-22T07:46:30.236+09:00</updated><title type='text'>メールの仕組み</title><content type='html'>メールの仕組みということで，メールがどうやって送受信されているのかについて説明する．&lt;br /&gt;&lt;br /&gt;PC でメールを使用したことがある人は，メールクライアント（Mac OS X の Mail や &lt;a href="http://mozilla.jp/thunderbird/"&gt;Thuderbird&lt;/a&gt; など．）に SMTP (Simple Mail Transfer Protocol) サーバと POP (Post Office Protocol) サーバか IMAP (Internet Message Access Protocol) サーバを設定したことがあると思う．それらが正しく設定されていれば，メールは無事に使えるようになったんじゃないかな．こうやって設定した項目が，メールの仕組みを実現する上でどのように動作しているのかを説明していく．&lt;br /&gt;&lt;br /&gt;まず，メールのもっとも根幹を担っている SMTP について．Simple Mail Transfer Protocol の名前のとおり，単純にメールを転送するプロトコルだ．太郎 (taro@aaa.com) が花子 (hanako@bbb.com) にメールを送る場合，この図のような流れになる．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SjreI9vUXVI/AAAAAAAAAtA/yNGtuo70z1A/s1600-h/SMTP%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SjreI9vUXVI/AAAAAAAAAtA/yNGtuo70z1A/s320/SMTP%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5348831753049234770" /&gt;&lt;/a&gt;&lt;br /&gt;1. メール転送&lt;br /&gt;太郎がメールを送ると太郎のメールクライアントは，設定されている太郎のメールサーバ (mail.aaa.com) に花子宛のメールを転送していいか確認し，OK であればメールを転送する．&lt;br /&gt;&lt;br /&gt;2. 転送先を調べる&lt;br /&gt;太郎のメールサーバは，花子宛のメールを転送するサーバを調べる必要がある．それは，メールアドレスのドメイン部分（bbb.com) について，ネームサーバの MX レコードを対象として問い合わせることで実現する．この問い合わせによって，花子宛のメールは，花子のメールサーバ (mail.bbb.com) に転送すればいいことがわかる．&lt;br /&gt;&lt;br /&gt;3. メール転送&lt;br /&gt;太郎のメールサーバは，花子のメールサーバに花子宛のメールを転送していいか確認し，OK であればメールを転送する．花子のメールサーバは，花子宛のメールを保存するメールボックスがローカルにあるので，そのメールボックスに配送する．&lt;br /&gt;&lt;br /&gt;というような流れ．1と3で行っていることが同じってことがわかるかな．メールサーバにこのメール受け取って処理くれる？って聞いて，OK ならメールを転送しているだけ．あとは，メールサーバが別のメールサーバに転送するなり，ローカルのメールボックスに配送するなりを選択しているのだ．2は別のメールサーバに転送するときに転送先サーバを決める重要な作業で，転送先はネームサーバの MX レコードによって決まる．&lt;br /&gt;&lt;br /&gt;さて，お気づきのことと思うけど，花子のメールサーバと花子の間に矢印がない．そう，SMTP がサポートするのはここまでなのだ．メールサーバが動いてるサーバのメールボックスまではメールが届くけど，そのメールボックスのメールを普通のユーザは見ることができない．（逆に言えば，PC 上でメールサーバが動いているという稀有な人は，SMTP だけでメールの送受信ができるんだけどね．）&lt;br /&gt;&lt;br /&gt;それで登場するのが，POP と IMAP なのだ．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SjrpbTWvxSI/AAAAAAAAAtI/jXk5jn3XR24/s1600-h/SMTP%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SjrpbTWvxSI/AAAAAAAAAtI/jXk5jn3XR24/s320/SMTP%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5348844162717304098" /&gt;&lt;/a&gt;&lt;br /&gt;POP はメールサーバのメールボックスからメールを取得するプロトコルで，IMAP はメールサーバのメールボックスを操作するプロトコル．POP はメールをダウンロードして持ってくるだけだから，複数の PC でメールを管理するのには向かない．IMAP はサーバ上にあるメールを参照したり操作したりするから，複数の PC でメールを管理するのには向いている．だけど，サーバに接続しないとメールが見れないので，常時接続じゃないと辛い．というかんじで，それぞれ特徴がある．&lt;br /&gt;&lt;br /&gt;今回は，すごく簡単にメールの仕組みを説明した．より具体的な仕組みについては，メールサーバを構築する課程で説明していく予定．まあ，だんだんとわかるようになると思うよ．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111765?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111765"&gt;sendmail 第3版〈VOLUME1〉運用編&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111765" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-8580296946429790449?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/8580296946429790449/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=8580296946429790449' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8580296946429790449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8580296946429790449'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/blog-post_7537.html' title='メールの仕組み'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zhVOi4fKc_M/SjreI9vUXVI/AAAAAAAAAtA/yNGtuo70z1A/s72-c/SMTP%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-7524299659007728468</id><published>2009-06-19T07:14:00.008+09:00</published><updated>2009-06-19T07:56:37.192+09:00</updated><title type='text'>MacBook の DVD ドライブ (UJ-857D) をリージョンフリーにする方法</title><content type='html'>&lt;a href="http://www.bbc.co.uk/topgear/"&gt;Top Gear&lt;/a&gt; にはまって，リスニングもできないのに Top Gear の DVD を買ってしまったｗｗｗ買ったのはいいんだけど，リージョンのことをすっかり忘れていたので，今回のエントリのようなことになった．&lt;br /&gt;&lt;br /&gt;リージョンフリーってグレーなのかなぁと思ってたけど，法律的には問題なしみたいだね．ただ，保証とかそこらへんがなくなりそうだなぁ……．ちゃんと確認してはいないけど．とりあえず，うちの MacBook (Late 2006) の DVD-RW ドライブ (MATSUSHITA DVD-R UJ-857D)  をリージョンフリーにしてみたので，その方法を書いとく．&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold; color:red;"&gt;※この方法を実行して何か不利益を被ったとしても一切保証はしません．&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Mac OS X Tiger から起動する．&lt;br /&gt;ファームウェアの書き込みツールが Tiger じゃないと動かないため．僕は，外付けドライブに Tiger をインストールして作業した．&lt;br /&gt;&lt;br /&gt;2. ファームウェアのリビジョンを調べる．&lt;br /&gt;システムプロファイラを起動して，ディスク作成の項目からファームウェアのリビジョンを調べられる．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/Sjq-3ktTYfI/AAAAAAAAAsY/A5-W4CH_Wyc/s1600-h/Region+Free%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 222px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/Sjq-3ktTYfI/AAAAAAAAAsY/A5-W4CH_Wyc/s320/Region+Free%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5348797369411658226" /&gt;&lt;/a&gt;&lt;br /&gt;3. リージョンフリーにするファームウェアをダウンロードする．&lt;br /&gt;次のページの下の方にある表になっているところを参照し，使用している Mac の名前とドライブ名とファームウェアのリビジョンを確認して，対象となるファームウェアをダウンロードする．デフォルト版とリージョンフリー版が別れているが，結局リンク先のファイルは同じで，両方のバージョンのファームウェアが入っているので，片方をダウンロードすれば問題ない．&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.powerbook-fr.com/dossiers/dvd_region_free_en_article30.html"&gt;MacBook-fr: Region Free&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4. ダウンロードしたファイルを解凍する．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SjrBu0MwDDI/AAAAAAAAAsg/vDBF-7Fpp44/s1600-h/Region+Free%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 181px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SjrBu0MwDDI/AAAAAAAAAsg/vDBF-7Fpp44/s320/Region+Free%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5348800517486152754" /&gt;&lt;/a&gt;&lt;br /&gt;5. リージョンフリー版（この場合は Update KBVB to region free の方．）ファームウェアアップデータを実行する．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SjrCkWW-cPI/AAAAAAAAAso/pIwrxEOMobQ/s1600-h/Region+Free%5B3%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 157px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SjrCkWW-cPI/AAAAAAAAAso/pIwrxEOMobQ/s320/Region+Free%5B3%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5348801437188911346" /&gt;&lt;/a&gt;&lt;br /&gt;6. 再起動する．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SjrCkoAMzKI/AAAAAAAAAsw/4YfCmNFt0k8/s1600-h/Region+Free%5B4%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 117px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SjrCkoAMzKI/AAAAAAAAAsw/4YfCmNFt0k8/s320/Region+Free%5B4%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5348801441925221538" /&gt;&lt;/a&gt;&lt;br /&gt;7. 普段の環境（Mac OS X Leopard な環境だな．）に戻り，&lt;a href="http://xvi.rpc1.org/"&gt;Region X&lt;/a&gt; というツールでリージョンを変更して DVD を鑑賞する．&lt;br /&gt;&lt;br /&gt;というかんじ．Max OS X Tiger の環境が懐かしく感じるなぁ．本当にリージョンフリー化されてるのって人は，&lt;a href="http://www.macupdate.com/info.php/id/16366/dvd-info-x"&gt;DVD Info X&lt;/a&gt; というソフトウェアでチェックしてみるといいよ．標準版のファームウェアにも戻せるので，戻したくなったらそれで戻せばいいはずだ．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.powerbook-fr.com/dossiers/dvd_region_free_en_article30.html"&gt;MacBook-fr: Region Free&lt;/a&gt;&lt;br /&gt;&lt;a href="http://xvi.rpc1.org/"&gt;xvi's site&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;関連製品：&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/B001PMRK0K?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=B001PMRK0K"&gt;Top Gear: Complete Season 10&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=B001PMRK0K" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-7524299659007728468?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/7524299659007728468/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=7524299659007728468' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7524299659007728468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7524299659007728468'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/macbook-dvd-uj-857d.html' title='MacBook の DVD ドライブ (UJ-857D) をリージョンフリーにする方法'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zhVOi4fKc_M/Sjq-3ktTYfI/AAAAAAAAAsY/A5-W4CH_Wyc/s72-c/Region+Free%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-3615000290690329942</id><published>2009-06-18T03:48:00.006+09:00</published><updated>2009-09-14T14:46:11.207+09:00</updated><title type='text'>FreeBSD でサーバ構築 #5.5 アップデートの自動化</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2008/07/freebsd-5.html"&gt;林檎生活100: FreeBSD でサーバ構築 #5&lt;/a&gt;と&lt;a href="http://applelife100.blogspot.com/2009/01/freebsd-6.html"&gt;林檎生活100: FreeBSD でサーバ構築 #6&lt;/a&gt;の間あたりのネタだな．絶対に設定するべきってわけじゃないから，あまり気にしなくてもいいエントリだｗ&lt;br /&gt;&lt;br /&gt;今回は，freebsd-update を自動実行してアップデートがあることを通知するようにすることと，portsnap を自動実行して最新の Ports コレクションをダウンロードしておくことと，portaudit を自動実行して Ports のセキュリティ問題を定期的に調査するようにすることについて．これは，cron というユーティリティで，指定時刻に定期実行させるように設定することで実現する．&lt;br /&gt;&lt;br /&gt;まずは，freebsd-update で，FreeBSD 本体のセキュリティアップデートを自動取得するように設定する．/etc/crontab の末尾に次の行を追加して，毎日実行するように設定する．&lt;br /&gt;&lt;pre&gt;#&lt;br /&gt;# Check update and download freebsd security patches.&lt;br /&gt;@daily                                  root    freebsd-update cron&lt;/pre&gt;&lt;br /&gt;セキュリティアップデートがあると，root 宛にメールが届くようになっているので，そのメールが届いたら早めにセキュリティアップデートを実行しよう．root 宛のメールを見る方法や別のアドレスに転送する方法は，メールサーバの構築のときに説明する．&lt;br /&gt;&lt;br /&gt;つぎに，portsnap も自動実行するように設定する．freebsd-update と同様に，/etc/crontab の末尾に次の行を追加する．&lt;br /&gt;&lt;pre&gt;#&lt;br /&gt;# Download a compressed snapshot of the Ports Collection.&lt;br /&gt;@daily                                  root    portsnap cron&lt;/pre&gt;&lt;br /&gt;これについては，とくに通知は届かない．（毎日なんらかの Ports はアップデートされてるからね．）新しく Ports をインストールする前に，portsnap update を実行するだけで最新の Ports ツリーにできるところが魅力なわけだ．&lt;br /&gt;&lt;br /&gt;最後に，portaudit も自動実行するように設定する．とは言っても，Ports から portaudit をインストールするだけで，自動実行の設定がされる．（/usr/etc/periodic/security/410.portaudit によって実行される．）そして，毎日実行されて届く lucifer.legna.org security run output という件名のメールの中に，portaudit の実行結果が記述されるようになる．Ports の更新も含めたインストール方法はこんな感じ．&lt;br /&gt;&lt;pre&gt;# portsnap fetch&lt;br /&gt;# portsnap extract（以前にこのコマンドを実行したことがあるのであれば，portsnap update で OK．）&lt;br /&gt;# cd /usr/ports/ports-mgmt/portaudit&lt;br /&gt;# make install clean&lt;/pre&gt;&lt;br /&gt;ついでに，Ports をアップデートするツール portupgrade をインストールしておこう．これを使って，脆弱性がみつかった Ports をアップデートしよう．&lt;br /&gt;&lt;pre&gt;# cd /usr/ports/ports-mgmt/portupgrade&lt;br /&gt;# make install clean&lt;/pre&gt;&lt;br /&gt;使い方はこんなかんじ．（Ports インストール直後は，実行ファイルへのパスが更新されていないので，rehash コマンドを打ってから実行すること．）&lt;br /&gt;&lt;br /&gt;○すべてのインストール済み Ports をアップグレード&lt;br /&gt;&lt;pre&gt;# portupgrade -a&lt;/pre&gt;&lt;br /&gt;○すべてのインストール済み Ports それぞれについてアップグレードするか訪ねる&lt;br /&gt;&lt;pre&gt;# portupgrade -ai&lt;/pre&gt;&lt;br /&gt;○指定した Port をアップグレード&lt;br /&gt;&lt;pre&gt;# portupgrade ポート名&lt;/pre&gt;&lt;br /&gt;○指定した Port とその Port を必要としている Port をアップグレード&lt;br /&gt;&lt;pre&gt;# portupgrade -r ポート名&lt;/pre&gt;&lt;br /&gt;○指定した Port とその Port が必要としている Port をアップグレード&lt;br /&gt;&lt;pre&gt;# portupgrade -R ポート名&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.freebsd.org/doc/en/books/handbook/updating-upgrading-freebsdupdate.html"&gt;FreeBSD Handbook: FreeBSD Update&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.freebsd.org/doc/en/books/handbook/ports-using.html"&gt;FreeBSD Handbook: Using the Ports Collection&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.freebsd.org/doc/en/books/handbook/security-portaudit.html"&gt;FreeBSD Handbook: Monitoring Third Party Security Issues&lt;/a&gt;&lt;br /&gt;&lt;a href="http://nhh.mo-blog.jp/ttt/2006/03/freebsd_portaud_9a59.html"&gt;ttt: (FREEBSD) PORTAUDITでPORTSのセキュリティチェック&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-3615000290690329942?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/3615000290690329942/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=3615000290690329942' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/3615000290690329942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/3615000290690329942'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/freebsd-55.html' title='FreeBSD でサーバ構築 #5.5 アップデートの自動化'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-8898772743590546404</id><published>2009-06-17T04:48:00.004+09:00</published><updated>2009-06-17T09:03:30.997+09:00</updated><title type='text'>freebsd-update で FreeBSD をアップグレード</title><content type='html'>FreeBSD 7.0-RELEASE がいつの間にかセキュリティアップサポートから外れていたようなので，freebsd-update コマンドを使って FreeBSD 7.1-RELEASE にアップグレードしてみた．打ったコマンドはこんなかんじ．/var/db/freebsd-update がデフォルトのワーキングディレクトリなのだが容量不足だった．なので /usr/freebsd-update というディレクトリをつくり，そこをワーキングディレクトリとした．コマンドの -d オプションはそのため．&lt;br /&gt;&lt;pre&gt;# freebsd-update -d /usr/freebsd-update -r 7.1-RELEASE upgrade&lt;br /&gt;（何回かでる質問に y と答える．）&lt;br /&gt;# freebsd-update -d /usr/freebsd-update install&lt;br /&gt;# shutdown -r now&lt;br /&gt;# freebsd-update -d /usr/freebsd-update install&lt;/pre&gt;&lt;br /&gt;楽になったもんだなぁ．大変だった頃が懐かしくなる．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.freebsd.org/security/"&gt;FreeBSD Security Information&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.freebsd.org/doc/en/books/handbook/updating-upgrading-freebsdupdate.html"&gt;FreeBSD Handbook: FreeBSD Update&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-8898772743590546404?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/8898772743590546404/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=8898772743590546404' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8898772743590546404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8898772743590546404'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/freebsd-update-freebsd.html' title='freebsd-update で FreeBSD をアップグレード'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-6889054464063542580</id><published>2009-06-16T08:27:00.002+09:00</published><updated>2009-06-16T09:36:46.499+09:00</updated><title type='text'>FreeBSD でサーバ構築 #10 ポートマッピングとゾーン転送</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2009/06/freebsd-9.html#links"&gt;林檎生活100: FreeBSD でサーバ構築 #9 BIND の設定&lt;/a&gt; の続き．AirMac Express のポートマッピングの話とゾーン転送がされているかの確認，そして，インターリンク（僕が使っているプロバイダ．）の逆引き設定について書いていく．今回で，BIND に関わる話は最後だね．&lt;br /&gt;&lt;br /&gt;まず，AirMac Express のポートマッピングについて．DNS は，UDP の53番ポートを問い合わせに，TCP の53番ポートをゾーン転送に使う．なので，AirMac Express のポートマッピングの設定を次のように変更することで，問い合わせパケットとゾーン転送パケットがサーバ (192.168.1.254) に届くようになる．AirMac Express に必要な設定はこれだけだ．ほかのルータなどもこのような設定項目があるはずなので，そこで設定してほしい．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SjbcMrPEcHI/AAAAAAAAAsI/E-D1qs9V970/s1600-h/AirMac+Express%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 179px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SjbcMrPEcHI/AAAAAAAAAsI/E-D1qs9V970/s320/AirMac+Express%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5347703717871513714" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SjbcMeTmB3I/AAAAAAAAAsA/rtSryyD-Cl0/s1600-h/AirMac+Express%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 319px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SjbcMeTmB3I/AAAAAAAAAsA/rtSryyD-Cl0/s320/AirMac+Express%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5347703714400831346" /&gt;&lt;/a&gt;&lt;br /&gt;設定の確認は，WAN 側から次のようなコマンドを打つことで確認できる．（友人などにやってもらうといいかもね．）&lt;br /&gt;&lt;pre&gt;$ nslookup lucifer.legna.org 203.152.220.151&lt;/pre&gt;&lt;br /&gt;これは，WAN 側からホスト名 lucifer.legna.org を構築したネームサーバで名前解決できるかを調べている．LAN 側からは名前解決できているはずなので，ポートマッピングが正常であれば，WAN 側からも名前解決できるはずであるからね．&lt;a href="http://www.enc.com.au/itools/nslookup.php"&gt;WAN 側から nslookup をしてくれる Web サービス&lt;/a&gt;を使う手もあるけど，ネームサーバを指定できないので問題があった場合に原因を特定しにくいんだよね．&lt;br /&gt;&lt;br /&gt;次は，ゾーン転送について．これは，待ちましょうｗ&lt;a href="http://www.everydns.com/"&gt;EveryDNS.net&lt;/a&gt; の場合は，1時間に1回ゾーン転送を試行してくれるので，それを待つしかない．ポートを空けて1時間待ってみて，次のコマンドを打ってみよう．&lt;br /&gt;&lt;pre&gt;$ nslookup lucifer.legna.org ns1.everydns.net&lt;/pre&gt;&lt;br /&gt;これで名前解決できていれば OK．できていなかったら，/var/log/messages に次のような行がないか見てほしい．&lt;br /&gt;&lt;pre&gt;Jun 15 12:39:45 lucifer named[1330]: client 71.6.202.218#51272: zone transfer 'legna.org/AXFR/IN' denied&lt;/pre&gt;&lt;br /&gt;71.6.202.218 からゾーン転送の要求がきたが，要求に応じなかったことを表している．これがある場合は，allow-transfer サブステートメントに 71.6.202.218 が設定されているか確認しよう．（allow-transfer サブステートメントを設定していない場合は，この行が表示されることはないはず．）もちろん，71.6.202.218 が信頼できるスレーブであること（この場合は，EveryDNS.net のサーバであること．）が前提だけどね．&lt;br /&gt;&lt;br /&gt;最後に，逆引き設定について．これは，インターリンクが提供しているサービスを使用する場合の話なので，すべての固定グローバル IP を取得可能なプロバイダで設定できるわけではないんだけどね．設定画面はこんなかんじ．ここで設定することで，IP アドレスからホスト名を参照することができるようになるよ．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SjboJnSJMlI/AAAAAAAAAsQ/jSdQP9Roz4E/s1600-h/Reverse+Lookup%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 156px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SjboJnSJMlI/AAAAAAAAAsQ/jSdQP9Roz4E/s320/Reverse+Lookup%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5347716859410592338" /&gt;&lt;/a&gt;&lt;br /&gt;本来，ネームサーバを設定する際には，今回設定したようなホスト名から IP アドレスを求める正引きと言われる名前解決と，IP アドレスからホスト名を求める逆引きと言われる名前解決を設定する必要がある．しかし，固定グローバル IP を1つだけ割り当てて貰っているような場合は，その逆引きゾーンの権限が委譲されないので，自前のネームサーバでグローバル向けの逆引き設定をすることにほとんど意味はない．ひとつのサーバで，正引きと逆引きが対応するように設定すべきだと思うが，固定グローバル IP を1つだけ割り当ててもらっているような環境では，逆引きを設定しないか，逆引きをプロバイダ側に持ってもらうかというちぐはぐな状態になってしまう．&lt;br /&gt;&lt;br /&gt;さて，次回はメールサーバ立ち上げのために，Sendmail の説明に入っていく♪Postfix が流行ってる中で，FreeBSD デフォルトの Sendmail で行くぞ☆&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.enc.com.au/itools/nslookup.php"&gt;Craig Small's Home Page: NSlookup&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-6889054464063542580?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/6889054464063542580/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=6889054464063542580' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6889054464063542580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6889054464063542580'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/freebsd-10.html' title='FreeBSD でサーバ構築 #10 ポートマッピングとゾーン転送'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zhVOi4fKc_M/SjbcMrPEcHI/AAAAAAAAAsI/E-D1qs9V970/s72-c/AirMac+Express%5B2%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-8241215960811570738</id><published>2009-06-15T21:08:00.009+09:00</published><updated>2009-10-13T04:54:09.411+09:00</updated><title type='text'>FreeBSD でサーバ構築 #9 BIND の設定</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2009/01/freebsd-8.html#links"&gt;林檎生活100: FreeBSD でサーバ構築 #8&lt;/a&gt;の続き．BIND の設定ファイルである /etc/namedb/named.conf とドメインのゾーンファイルの書き方を説明する．&lt;br /&gt;&lt;br /&gt;まずは，named.conf の書き方．といっても，デフォルトにちょっと追加するだけなので，詳しい文法は知らなくてもいいと思う．&lt;br /&gt;&lt;br /&gt;1. 21行目の listen-on サブステートメントを次のようにコメントアウトする．&lt;br /&gt;&lt;pre&gt;// If named is being used only as a local resolver, this is a safe dafault.&lt;br /&gt;// For named to be accessible to the network, comment this option, spedify&lt;br /&gt;// the proper IP address, or delete this option.&lt;br /&gt;//      listen-on       { 127.0.0.1; };&lt;/pre&gt;&lt;br /&gt;これが記述されていると，BIND は localhost インタフェースに来た問い合わせ，つまり，ローカルからの問い合わせにしか応答しなくなる．なので，外からの自分が所有するドメイン（僕の場合は，legna.org だね．）への問い合わせを受け付ける必要があるので，インタフェースを限定しないようにコメントアウトする．&lt;br /&gt;&lt;br /&gt;2. 自分が所有するドメインのゾーンファイルの場所などをファイル末尾に追記する．&lt;br /&gt;&lt;pre&gt;zone "legna.org" {&lt;br /&gt;        type master;&lt;br /&gt;        file "master/legna.org";&lt;br /&gt;        allow-transfer {&lt;br /&gt;                71.6.202.218;&lt;br /&gt;        };&lt;br /&gt;};&lt;/pre&gt;&lt;br /&gt;zone のあとの名前は起点名というもので，あとから重要になるのでドメイン名をそのまま使おう．マスタを示す type master; を記述して，ゾーンファイルへのパスを記述する．ゾーンファイルの名前は何でもいいが，ドメイン名が無難だろう．allow-transfer サブステートメントは，ゾーンの転送を許可するスレーブの IP アドレスを記述している．一応，everydns.net のを調べて記述しているが，不明な場合は次のように記述してもいい．allow-transfer のデフォルトは any だからだ．&lt;br /&gt;&lt;pre&gt;zone "legna.org" {&lt;br /&gt;        type master;&lt;br /&gt;        file "master/legna.org";&lt;br /&gt;};&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;named.conf の変更はこれだけだ．固定 IP 1つだけを取得していることを前提にしているので，逆引きゾーンなどの設定は省略させてもらう．&lt;br /&gt;&lt;br /&gt;さて，それではゾーンファイルを書くことにしよう．僕の場合は，/etc/namedb/master/legna.org がゾーンファイルになる．今回はテンプレートがないので，スクラッチから記述していこう．&lt;br /&gt;&lt;br /&gt;1. TTL（Time To Live: 生存期間）の記述&lt;br /&gt;&lt;pre&gt;$TTL 3h&lt;/pre&gt;&lt;br /&gt;このゾーンへの問い合わせに対しての応答で，TTL に記述した時間だけ問い合わせもとサーバにキャッシュしておくように指示するという意味がある．まああまり気にしなくてもいい．3h は 3時間の意味．&lt;br /&gt;&lt;br /&gt;2. SOA レコードの記述&lt;br /&gt;まずは，次のような SOA (Start Of Authority) レコードを記述する．（ドメイン名のあとのドットを忘れないように．）&lt;br /&gt;&lt;pre&gt;@ SOA lucifer.legna.org. hostmaster.legna.org. 2009061500 3h 1h 1w 1h&lt;/pre&gt;&lt;br /&gt;@は起点名 legna.org に置き換えられる．lucifer.legna.org. はネームサーバの記述で，hostmaster.legna.org. は hostmaster@legna.org ということでメールアドレスの記述で，ネームサーバの管理者の問い合わせ先ということだ．2009061500 はシリアル番号で，スレーブがゾーンデータを更新するときに参照するため，ゾーンファイルを更新したら必ず増加させよう．YYYYMMDDNN（年月日当日更新回数）で記述することで更新するたびにシリアル番号を確実に増加させることができる．&lt;br /&gt;&lt;br /&gt;残りの4つの時間は，先頭からリフレッシュ，リトライ，期限切れ，ネガティブキャッシュ TTL を表す．それぞれ，スレーブがゾーンデータをチェックする間隔，リフレッシュ間隔が過ぎてもマスタにアクセスできなかった場合のリトライ間隔，ゾーンデータが無効になる期限，ネガティブキャッシュ（資源レコード集合やドメイン名の非存在をキャッシュする機能．）の生存期間を表す．&lt;br /&gt;&lt;br /&gt;3. NS レコードの記述&lt;br /&gt;NS（ネームサーバ）の前には，@が省略されている．つまり，legna.org. というものが省略されていると考える．僕の環境の場合は，次のように ネームサーバの情報を記述する．&lt;br /&gt;&lt;pre&gt;          NS    lucifer.legna.org.&lt;br /&gt;          NS    ns1.everydns.net.&lt;br /&gt;          NS    ns2.everydns.net.&lt;br /&gt;          NS    ns3.everydns.net.&lt;br /&gt;          NS    ns4.everydns.net.&lt;/pre&gt;&lt;br /&gt;4. MX レコードの記述&lt;br /&gt;MX（メールエクスチェンジャ）はメールサーバの構築のときに説明する．とりあえず，こんな感じに書いておく．&lt;br /&gt;&lt;pre&gt;lucifer   MX 10 lucifer.legna.org.&lt;/pre&gt;&lt;br /&gt;5. A レコードの記述&lt;br /&gt;A（ホスト）の前には lucifer と記述されている．末尾にドットがないので，起点名が付与されるので，lucifer.legna.org. になる．このレオードで IP とホスト名を関連づける．&lt;br /&gt;&lt;pre&gt;lucifer   A     203.152.220.151&lt;/pre&gt;&lt;br /&gt;6. CNAME レコードの記述&lt;br /&gt;賛否両論あるが，localhost と www はここで記述するのが好き．別名みたいなもの．&lt;br /&gt;&lt;pre&gt;localhost CNAME localhost.&lt;br /&gt;www       CNAME lucifer.legna.org.&lt;/pre&gt;&lt;br /&gt;全部まとめるとこうなる．&lt;br /&gt;&lt;pre&gt;$TTL 3h&lt;br /&gt;@ SOA lucifer.legna.org. hostmaster.legna.org. 2009061500 3h 1h 1w 1h&lt;br /&gt;&lt;br /&gt;          NS    lucifer.legna.org.&lt;br /&gt;          NS    ns1.everydns.net.&lt;br /&gt;          NS    ns2.everydns.net.&lt;br /&gt;          NS    ns3.everydns.net.&lt;br /&gt;          NS    ns4.everydns.net.&lt;br /&gt;&lt;br /&gt;          MX 10 lucifer.legna.org.&lt;br /&gt;&lt;br /&gt;lucifer   A     203.152.220.151&lt;br /&gt;&lt;br /&gt;localhost CNAME localhost.&lt;br /&gt;www       CNAME lucifer.legna.org.&lt;/pre&gt;&lt;br /&gt;これで，ゾーンファイルの記述も完了．設定の反映と確認作業をつぎのようなかんじで行おう．&lt;br /&gt;&lt;pre&gt;# /etc/rc.d/named restart&lt;br /&gt;Stopping named.&lt;br /&gt;Starting named.&lt;br /&gt;# exit&lt;br /&gt;$ nslookup lucifer.legna.org 0.0.0.0&lt;br /&gt;Server:         0.0.0.0&lt;br /&gt;Address:        0.0.0.0#53&lt;br /&gt;&lt;br /&gt;Name:   lucifer.legna.org&lt;br /&gt;Address: 203.152.220.151&lt;br /&gt;$ nslookup www.legna.org 0.0.0.0&lt;br /&gt;（省略）&lt;br /&gt;$ nslookup localhost.legna.org 0.0.0.0&lt;br /&gt;（省略）&lt;/pre&gt;&lt;br /&gt;以上で，BIND の設定は完了．次回は，ルータのポート解放とゾーン転送，逆引き設定（インターリンクの場合のみ．）について書いて，BIND 編の最終回としたいと思う．そのあとは，メールサーバをやるぞ☆&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/gp/product/4873111250?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873111250"&gt;DNS &amp; BINDクックブック―ネームサーバ管理者のためのレシピ集&lt;/a&gt;&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=4873111250" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://oldwww.isc.org/index.pl?/sw/bind/arm94/"&gt;BIND 9 Administrator Reference Manual&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www5d.biglobe.ne.jp/~stssk/rfc/rfc2308j.html"&gt;RFC2308（日本語訳）&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.graco.c.u-tokyo.ac.jp/~nishi/net/dns/localhost.html"&gt;西村大介の KTYY でのページ: localhost 問題&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;追記（2009年6月22日）：&lt;br /&gt;MX レコードの表記を変更．Sendmail の回での説明のため．&lt;br /&gt;&lt;br /&gt;追記（2009年10月13日）：&lt;br /&gt;DNS の回送について．ローカルで答えられない問い合わせをほかのネームサーバ（例えば，プロバイダのネームサーバ．）に回送する方法．僕のサーバでは，この設定をすることにした．プロバイダのサーバに任せた方が，キャッシュとか効いていいかなぁってｗ&lt;br /&gt;&lt;br /&gt;その設定は，named.conf の該当箇所を次のように修正するだけ．forward ステートメントは，ローカルで答えられない問い合わせは回送して，再起的問い合わせをしないために only にする．forwarders ステートメントは，うちのブロードバンドルータの IP アドレスを指定し，ブロードバンドルータに解決を任せる．（そして，そのブロードバンドルータがプロバイダのネームサーバに回送するわけなんだけどねｗ）&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;// In addition to the "forwarders" clause, you can force your name&lt;br /&gt;// server to never initiate queries of its own, but always ask its&lt;br /&gt;// forwarders only, by enabling the following line:&lt;br /&gt;//&lt;br /&gt;        forward only;&lt;br /&gt;        &lt;br /&gt;// If you've got a DNS server around at your upstream provider, enter&lt;br /&gt;// its IP address here, and enable the line below.  This will make you&lt;br /&gt;// benefit from its cache, thus reduce overall DNS traffic in the Internet.&lt;br /&gt;        forwarders {&lt;br /&gt;                192.168.1.1;&lt;br /&gt;        };&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-8241215960811570738?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/8241215960811570738/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=8241215960811570738' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8241215960811570738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8241215960811570738'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/freebsd-9.html' title='FreeBSD でサーバ構築 #9 BIND の設定'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-7208723328644484526</id><published>2009-06-14T21:26:00.008+09:00</published><updated>2009-06-23T21:23:48.906+09:00</updated><title type='text'>C 言語の話#3 オブジェクト指向プログラミング？</title><content type='html'>オブジェクト指向プログラミング？を C言語でやってみた．オブジェクト指向プログラミングというよりも，カプセル化をやっているだけなのだけどねｗ&lt;br /&gt;&lt;br /&gt;論じるよりソースを見てもらえると早い．やってみたのはこんなかんじのことだ．&lt;br /&gt;&lt;pre&gt;/* main.c */&lt;br /&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;#include "book.h"&lt;br /&gt;&lt;br /&gt;int main(void)&lt;br /&gt;{&lt;br /&gt;    Book *book;&lt;br /&gt;&lt;br /&gt;    book = newBook("伝奇集", "J.L. ボルヘス");&lt;br /&gt;&lt;br /&gt;    printf("%s\t%s\n", book-&gt;getTitle(book), book-&gt;getAuthor(book));&lt;br /&gt;&lt;br /&gt;    deleteBook(book);&lt;br /&gt;&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;new でつくって，アクセッサで値を参照して，delete で解放する．基本的なルールはこんなかんじ．&lt;br /&gt;&lt;br /&gt;・「クラス名 *インスタンス変数名;」でインスタンス変数を宣言する．&lt;br /&gt;・「インスタンス変数 = newクラス名(引数…);」でインスタンス化する．&lt;br /&gt;・「インスタンス変数名-&gt;関数名(インスタンス変数名, 引数…)」で関数を呼び出す．&lt;br /&gt;・「deleteクラス名(インスタンス変数名);」でインスタンスを解放する．&lt;br /&gt;&lt;br /&gt;new と delete の対応に気をつけさえすれば，Book クラスのメモリのことを気にしなくていいようになっている．（理想としてはね．）&lt;br /&gt;&lt;br /&gt;book.h と book.c の実装はこんな感じ．&lt;br /&gt;&lt;pre&gt;/* book.h */&lt;br /&gt;#ifndef __BOOK_H__&lt;br /&gt;#define __BOOK_H__&lt;br /&gt;&lt;br /&gt;typedef struct _Book Book;&lt;br /&gt;&lt;br /&gt;struct _Book {&lt;br /&gt;    char *title;&lt;br /&gt;    char *author;&lt;br /&gt;    char *((*getTitle)(const Book *book));&lt;br /&gt;    char *((*getAuthor)(const Book *book));&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;Book *newBook(const char *title, const char *author);&lt;br /&gt;void deleteBook(Book *book);&lt;br /&gt;&lt;br /&gt;#endif /* __BOOK_H__ */&lt;/pre&gt;&lt;pre&gt;/* book.c */&lt;br /&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;#include &amp;lt;stdlib.h&gt;&lt;br /&gt;#include &amp;lt;string.h&gt;&lt;br /&gt;#include "book.h"&lt;br /&gt;&lt;br /&gt;char *book_getTitle(const Book *book);&lt;br /&gt;char *book_getAuthor(const Book *book);&lt;br /&gt;&lt;br /&gt;Book *newBook(const char *title, const char *author)&lt;br /&gt;{&lt;br /&gt;    Book *book;&lt;br /&gt;&lt;br /&gt;    book = (Book *)malloc(sizeof(Book));&lt;br /&gt;    if (book == NULL) {&lt;br /&gt;        fprintf(stderr, "%s:%d: error: %s()\n", __FILE__, __LINE__, __func__);&lt;br /&gt;        return NULL;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    book-&gt;title = (char *)malloc(strlen(title) + 1);&lt;br /&gt;    if (book-&gt;title == NULL) {&lt;br /&gt;        free(book);&lt;br /&gt;        fprintf(stderr, "%s:%d: error: %s()\n", __FILE__, __LINE__, __func__);&lt;br /&gt;        return NULL;&lt;br /&gt;    }&lt;br /&gt;    book-&gt;author = (char *)malloc(strlen(author) + 1);&lt;br /&gt;    if (book-&gt;author == NULL) {&lt;br /&gt;        free(book-&gt;title);&lt;br /&gt;        free(book);&lt;br /&gt;        fprintf(stderr, "%s:%d: error: %s()\n", __FILE__, __LINE__, __func__);&lt;br /&gt;        return NULL;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    strcpy(book-&gt;title, title);&lt;br /&gt;    strcpy(book-&gt;author, author);&lt;br /&gt;&lt;br /&gt;    book-&gt;getTitle = book_getTitle;&lt;br /&gt;    book-&gt;getAuthor = book_getAuthor;&lt;br /&gt;&lt;br /&gt;    return book;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void deleteBook(Book *book)&lt;br /&gt;{&lt;br /&gt;    free(book-&gt;author);&lt;br /&gt;    free(book-&gt;title);&lt;br /&gt;&lt;br /&gt;    free(book);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;char *book_getTitle(const Book *book)&lt;br /&gt;{&lt;br /&gt;    return book-&gt;title;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;char *book_getAuthor(const Book *book)&lt;br /&gt;{&lt;br /&gt;    return book-&gt;author;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;こういう実装が好きでよくやるのだけど，もっといい方法があったら教えてほしい．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-7208723328644484526?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/7208723328644484526/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=7208723328644484526' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7208723328644484526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7208723328644484526'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/c-3.html' title='C 言語の話#3 オブジェクト指向プログラミング？'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-4581106907463028392</id><published>2009-06-13T02:03:00.004+09:00</published><updated>2009-06-13T02:10:20.423+09:00</updated><title type='text'>iTunes ライブラリを移動する方法</title><content type='html'>iTunes Music フォルダを移動する方法．新しい外付け HDD を買ったので，iTunes ライブラリを移動♪&lt;br /&gt;&lt;br /&gt;1. iTunes&gt;環境設定…&gt;詳細の「"iTunes Music"フォルダの場所」を新しいフォルダに変更する．また，「"iTunes Music"フォルダを整理する」がチェックされていることを確認する．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SjKLwNo-QuI/AAAAAAAAArg/TuoUPcaBDWg/s1600-h/iTunes%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 319px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SjKLwNo-QuI/AAAAAAAAArg/TuoUPcaBDWg/s320/iTunes%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346489368053695202" /&gt;&lt;/a&gt;&lt;br /&gt;2. ファイル&gt;ライブラリ&gt;ライブラリを統合…をクリックし，ポップアップウィンドウの統合をクリックする．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SjKL5Gqo5dI/AAAAAAAAArw/uBhBbFkG9hQ/s1600-h/iTunes%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 171px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SjKL5Gqo5dI/AAAAAAAAArw/uBhBbFkG9hQ/s320/iTunes%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346489520800458194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SjKL4w_V2oI/AAAAAAAAAro/5KHzVqyAdh4/s1600-h/iTunes%5B3%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 122px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SjKL4w_V2oI/AAAAAAAAAro/5KHzVqyAdh4/s320/iTunes%5B3%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346489514981710466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://support.apple.com/kb/HT1449?viewlocale=ja_JP"&gt;iTunes for Mac: 「iTunes Music」フォルダを移動する&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-4581106907463028392?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/4581106907463028392/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=4581106907463028392' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4581106907463028392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4581106907463028392'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/itunes.html' title='iTunes ライブラリを移動する方法'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zhVOi4fKc_M/SjKLwNo-QuI/AAAAAAAAArg/TuoUPcaBDWg/s72-c/iTunes%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-3475339865502555753</id><published>2009-06-13T01:30:00.004+09:00</published><updated>2009-06-13T01:47:44.602+09:00</updated><title type='text'>LaCie 4big Quadra を購入</title><content type='html'>LaCie 4big Quadra 2TB を購入した♪RAID 5 を構築できるバックアップドライブがほしいなということで．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SjKCuC7UlDI/AAAAAAAAArI/SvGC-hBjqy8/s1600-h/4big+Quadra%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 229px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SjKCuC7UlDI/AAAAAAAAArI/SvGC-hBjqy8/s320/4big+Quadra%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346479435213476914" /&gt;&lt;/a&gt;&lt;br /&gt;デザインもかっこよくて，とてもいい感じ．背面もすっきりしている．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SjKCuPFfSvI/AAAAAAAAArQ/FO9CA10cAOM/s1600-h/4big+Quadra%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 229px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SjKCuPFfSvI/AAAAAAAAArQ/FO9CA10cAOM/s320/4big+Quadra%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346479438477347570" /&gt;&lt;/a&gt;&lt;br /&gt;RAID 5+Spare で使用する．3台で RAID5 を組み，1台は故障したときのスペアドライブとすることで，耐障害性の高い状態にした．アクセスも高速だし，とくに不満はない．&lt;br /&gt;&lt;br /&gt;僕が行った初期設定はこんな感じ．&lt;br /&gt;&lt;br /&gt;1. 電源をオンにする．&lt;br /&gt;2. 前面 LED と背面 LED が青の点滅から青の点灯に変わる（正常起動）ことを確認し電源をオフにする．&lt;br /&gt;3. 前面スイッチを押したまま起動し，前面 LED を赤と青の交互点滅（RAID 設定モード）状態にする．&lt;br /&gt;4. 背面の+と-のスイッチを細いもので押し， RAID 設定番号を6 (RAID 5+Spare) にする．&lt;br /&gt;5. 前面スイッチを押して，前面 LED を青の点滅にし，青の点灯になるまで待つ．&lt;br /&gt;6. 電源を一度オフにし，再度電源をオンにする．&lt;br /&gt;7. 前面 LED と背面 LED が青の点滅から青の点灯に変わることを確認する．&lt;br /&gt;8. 電源スイッチを AUTO にする．（Mac の起動と 4big Quadra の起動を連動させるため．）&lt;br /&gt;&lt;br /&gt;ほかの製品と比べても，こいつは大きいなぁ．まあ，4台 HDD が入ってるから当然なんだけどさ．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/SjKCudtcryI/AAAAAAAAArY/wslyBxw7ths/s1600-h/4big+Quadra%5B3%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 229px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/SjKCudtcryI/AAAAAAAAArY/wslyBxw7ths/s320/4big+Quadra%5B3%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346479442403045154" /&gt;&lt;/a&gt;&lt;br /&gt;関連製品：&lt;br /&gt;&lt;a href="http://www.lacie.com/jp/products/product.htm?pid=11113"&gt;LaCie 4big Quadra&lt;/a&gt;（&lt;a href="http://www.amazon.co.jp/gp/product/B00287B8OA?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=B00287B8OA"&gt;Amazon で製品を見る&lt;/a&gt;）&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=B00287B8OA" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-3475339865502555753?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/3475339865502555753/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=3475339865502555753' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/3475339865502555753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/3475339865502555753'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/lacie-4big-quadra.html' title='LaCie 4big Quadra を購入'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zhVOi4fKc_M/SjKCuC7UlDI/AAAAAAAAArI/SvGC-hBjqy8/s72-c/4big+Quadra%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-1576364598527872148</id><published>2009-06-12T20:20:00.005+09:00</published><updated>2009-06-12T20:34:11.419+09:00</updated><title type='text'>Inspiron Mini 12 のヒンジ破損</title><content type='html'>左側のヒンジが死亡した．普通にディスプレイを開いたら，ガリガリって音がして，ディスプレイがぐらつくようになってしまった．外側からわかる亀裂や破損はないんだけど，あきらかに左側のヒンジがずれてがたつく．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SjI8HDfcUZI/AAAAAAAAArA/sloE6ePTdmY/s1600-h/Inspiron+Mini+12%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SjI8HDfcUZI/AAAAAAAAArA/sloE6ePTdmY/s320/Inspiron+Mini+12%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5346401799536136594" /&gt;&lt;/a&gt;&lt;br /&gt;とりあえずテクニカルサポートに電話したら，破損部分の写真をメールで送ってくれと言われたので，メールに写真2枚を添付して送った．無償修理の対象内だといいなぁ．&lt;br /&gt;&lt;br /&gt;3ヶ月しか経ってないのに，ヒンジ破損は残念だなぁ．筐体がちゃちぃのは仕方ないが，ヒンジは丈夫にしてほしい．&lt;br /&gt;&lt;br /&gt;関連製品：&lt;br /&gt;&lt;a href="http://www.dell.co.jp/content/products/productdetails.aspx/laptop-inspiron-12"&gt;Dell Inspiron Mini 12&lt;/a&gt;（&lt;a href="http://www.amazon.co.jp/gp/product/B002ARVIVG?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=1211&amp;creativeASIN=B002ARVIVG"&gt;Amazon で製品を見る&lt;/a&gt;）&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=B002ARVIVG" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-1576364598527872148?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/1576364598527872148/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=1576364598527872148' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1576364598527872148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1576364598527872148'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/inspiron-mini-12.html' title='Inspiron Mini 12 のヒンジ破損'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zhVOi4fKc_M/SjI8HDfcUZI/AAAAAAAAArA/sloE6ePTdmY/s72-c/Inspiron+Mini+12%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-1971106388536929335</id><published>2009-06-03T00:21:00.005+09:00</published><updated>2009-06-03T00:36:13.337+09:00</updated><title type='text'>rc.conf の gateway_enable についてのメモ</title><content type='html'>&lt;a href="http://www.freebsd.org/"&gt;FreeBSD&lt;/a&gt; の /etc/rc.conf に gateway_enable="YES" を追加すると，IP フォワーディング（この場合，あるインタフェースから別のインタフェースへの IP パケットの転送の意味．）が有効になる．ルータとして機能させるために必要な設定．/etc/rc.d/routing というシェルスクリプトの87, 88行目のコマンドが，この設定によって実行される．&lt;br /&gt;&lt;pre&gt;echo -n ' IP gateway=YES'&lt;br /&gt;sysctl net.inet.ip.forwarding=1 &gt;/dev/null&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-1971106388536929335?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/1971106388536929335/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=1971106388536929335' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1971106388536929335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1971106388536929335'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/rcconf-gatewayenable.html' title='rc.conf の gateway_enable についてのメモ'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-595989364751685676</id><published>2009-06-02T02:13:00.008+09:00</published><updated>2009-09-15T00:33:01.198+09:00</updated><title type='text'>Inspiron Mini 12 で Age of Empires II Gold Edition</title><content type='html'>就活も終わったし，&lt;a href="http://www.microsoft.com/japan/games/age2gold/"&gt;Age of Empires II Gold Edition&lt;/a&gt; を Inspiron Mini 12 でやるかぁと思ったら，動作しないことが判明した（泣）&lt;br /&gt;&lt;br /&gt;原因は，搭載されている Intel GMA 500 にあるのではないかなぁと予想．いろいろ試行錯誤をしてみたが，お手上げだった．だれか動かした人がいたら教えてください．&lt;br /&gt;&lt;br /&gt;関連製品：&lt;br /&gt;&lt;a href="http://www.dell.co.jp/content/products/productdetails.aspx/laptop-inspiron-12"&gt;Dell Inspiron Mini 12&lt;/a&gt;（&lt;a href="http://www.amazon.co.jp/gp/product/B002ARVIVG?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=1211&amp;creativeASIN=B002ARVIVG"&gt;Amazon で製品を見る&lt;/a&gt;）&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=B002ARVIVG" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/japan/games/age2gold/"&gt;Age of Empires II Gold Edition&lt;/a&gt;（&lt;a href="http://www.amazon.co.jp/gp/product/B00005RDO2?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=1211&amp;creativeASIN=B00005RDO2"&gt;Amazon で製品を見る&lt;/a&gt;）&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=B00005RDO2" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;br /&gt;追記（2009年9月15日）：&lt;br /&gt;ディスプレイドライバを無効にして，Windows 標準のディスプレイドライバで実行すると起動できた♪&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-595989364751685676?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/595989364751685676/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=595989364751685676' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/595989364751685676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/595989364751685676'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/06/inspiron-mini-12-age-of-empires-ii-gold.html' title='Inspiron Mini 12 で Age of Empires II Gold Edition'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-7758339999279801422</id><published>2009-05-27T06:24:00.005+09:00</published><updated>2009-05-27T06:51:47.723+09:00</updated><title type='text'>就職活動について</title><content type='html'>書くの忘れてたんだけど，&lt;a href="http://www.nri.co.jp/"&gt;野村総合研究所&lt;/a&gt; (NRI) から内定をいただいた．それで，来年度から野村総合研究所のテクニカルエンジニア (TE) として働く予定♪&lt;br /&gt;&lt;br /&gt;ちなみに，&lt;a href="http://www.square-enix.com/"&gt;スクウェア・エニックス&lt;/a&gt;から内定を貰ったりして，就職活動はかなりいいかんじだった．あと，何社か内定を貰ったんだけど，とくに印象深いのは，&lt;a href="http://www.diva.co.jp/"&gt;ディーバ&lt;/a&gt;という連結会計パッケージを開発している企業．&lt;br /&gt;&lt;br /&gt;最終的に迷った企業についてコメントを書いておこう．&lt;br /&gt;&lt;br /&gt;○&lt;a href="http://www.nri.co.jp/"&gt;野村総合研究所&lt;/a&gt;&lt;br /&gt;インターンシップの経験もあり，一緒に働きたいメンバがいたことが大きい．茶髪でインターンの面接を受けて，通過させてくれる懐の深さにも惹かれたｗ一緒に働きたいからって言ってくれて，いろいろと情報をくれた友達に感謝．インターン中に OB 訪問した先輩や，インストラクタの先輩にも感謝．いい人が多い会社で，みんな楽しそうな顔をしているのが良かった．あと，人事部の方々がみんな現場経験者ということで，技術屋の自分としては非常に話しやすかった．技術を知っている人に評価してもらえるということは嬉しい．自分がやった仕事の影響力が大きくて，未来を創っていく感もあり，やりがいがありそう．やっぱり，年収と福利厚生は魅力だった．&lt;br /&gt;&lt;br /&gt;○&lt;a href="http://www.square-enix.com/"&gt;スクウェア・エニックス&lt;/a&gt;&lt;br /&gt;ゲームを創りたくてプログラミングを始めたから，スクエニで仕事をすることは夢だった．ネットワークエンジニアとしての志望にしたので，直接的にゲームには関われないけど，伊勢幸一氏の記事を読むとこういうネットワークエンジニアっていいなと思わされる．内定者懇親会の前に辞退したので，内定者にどんな人がいるか気になるなぁ．&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.marubeni-sys.com/infinite-ideas/chousen/square_enix/index.html"&gt;Infinite-Ideas: (株)スクウェア・エニックス 伊勢幸一氏&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;○&lt;a href="http://www.diva.co.jp/"&gt;ディーバ&lt;/a&gt;&lt;br /&gt;プログラマーをやるならこの企業．グローバル展開を目指したパッケージを開発し，優秀なフィリピン人を雇ったり，先進的な技術を取り入れようとするいい意味でのベンチャー精神がある．でも，ベンチャーにしては安定している印象．そして何より，社員の人がいい人ばかりで，人事部の方には札幌まで来てもらって，話を聞いてもらった．内定者も優秀な人ばっかりで，内定者懇親会も楽しかった♪&lt;br /&gt;&lt;br /&gt;○&lt;a href="http://www.netone.co.jp/"&gt;ネットワンシステムズ&lt;/a&gt;&lt;br /&gt;ネットワークを極めたいならここ．技術検証エンジニアだったら CCIE を持っていて当然という世界らしい．内定者懇親会に，日本オラクルを蹴ってきたという人がいて驚いたｗ&lt;br /&gt;&lt;br /&gt;ほかの内定企業2社については，残念ながら迷わなかったので割愛させていただく．どういった対策をしたかなど，詳細な情報がほしいという人は，&lt;a href="http://mixi.jp/show_friend.pl?id=9183021"&gt;mixi&lt;/a&gt; 経由で聞いてね．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-7758339999279801422?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/7758339999279801422/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=7758339999279801422' title='4 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7758339999279801422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7758339999279801422'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/05/blog-post.html' title='就職活動について'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-2636597696768363611</id><published>2009-05-19T07:50:00.000+09:00</published><updated>2009-05-19T07:50:00.736+09:00</updated><title type='text'>JDK 1.6 を使うように NetBeans を設定する</title><content type='html'>&lt;a href="http://www.netbeans.org/"&gt;NetBeans&lt;/a&gt; 6.5.1 をインストールして，Code Coverage Plugin を最新にした．いざ，Coverage を使おうとしたら JDK 1.6 じゃねーと使えないよってメッセージが出て使えなかった．なので，JDK 1.6 をデフォルトで使うように設定した．&lt;br /&gt;&lt;br /&gt;1. /Applications/NetBeans/NetBeans\ 6.5.1.app/Contents/Resources/NetBeans/etc/netbeans.conf を次のように書き換える．&lt;br /&gt;&lt;pre&gt;19c19&lt;br /&gt;&lt; netbeans_jdkhome=/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home&lt;br /&gt;---&lt;br /&gt;&gt; netbeans_jdkhome=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home&lt;/pre&gt;&lt;br /&gt;ついでに，Mac OS X 側のデフォルトも /Applications/Utilities/Java/Java Preferences.app を使用して変更した．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/ShCdfQesRZI/AAAAAAAAAq4/JXaQRvlaTgQ/s1600-h/JDK+1.6%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 222px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/ShCdfQesRZI/AAAAAAAAAq4/JXaQRvlaTgQ/s320/JDK+1.6%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5336938718759241106" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-2636597696768363611?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/2636597696768363611/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=2636597696768363611' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2636597696768363611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2636597696768363611'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/05/jdk-16-netbeans.html' title='JDK 1.6 を使うように NetBeans を設定する'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zhVOi4fKc_M/ShCdfQesRZI/AAAAAAAAAq4/JXaQRvlaTgQ/s72-c/JDK+1.6%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-5153228305406851166</id><published>2009-05-18T02:00:00.006+09:00</published><updated>2009-05-18T02:52:24.601+09:00</updated><title type='text'>BCM2046 を Microsoft スタックで動作させる方法</title><content type='html'>Inspiron Mini 12 の Bluetooth チップである BCM2046 のドライバをインストールすると，Bluetooth Driver Stack は当然 Broadcom スタックになる．個人的には，Microsoft スタックで動作させたいので，Microsoft スタックで動作させる方法についてのメモ．&lt;br /&gt;&lt;br /&gt;1. BCM2046 ドライバをインストールする．&lt;br /&gt;ドライバは，Windows に入ってないので，それをインストールする．&lt;br /&gt;&lt;br /&gt;2. BCM2046 ドライバをアンインストールする．&lt;br /&gt;アンインストールしても，Microsoft スタックで動作させるためのドライバは残っている．&lt;br /&gt;&lt;br /&gt;3. bth.inf を書き換えて再起動もしくは，書き換えた bth.inf で BCM2046 のドライバを手動更新する．&lt;br /&gt;書き換えた内容は以下のとおり．エントリ末尾の関連ファイルから書き換えた bth.inf をダウンロードできるのでそれを使ってくれてもいい．保証はしないけどｗ&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;75a76&lt;br /&gt;&gt; BCM2046 Bluetooth Device=                        BthUsb, USB\Vid_413c&amp;Pid_02b0&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;こんな手順でできるはず．1ヶ月くらい前にやったことで半分くらい忘れてるから間違ってるかも……．&lt;br /&gt;&lt;br /&gt;関連ファイル：&lt;br /&gt;&lt;a href="http://idisk.mac.com/takuya0301/Public/Windows/bth.inf"&gt;http://idisk.mac.com/takuya0301/Public/Windows/bth.inf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-5153228305406851166?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/5153228305406851166/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=5153228305406851166' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5153228305406851166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5153228305406851166'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/05/bcm2046-microsoft.html' title='BCM2046 を Microsoft スタックで動作させる方法'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-7669665873057175586</id><published>2009-04-12T19:10:00.010+09:00</published><updated>2009-06-02T14:34:52.440+09:00</updated><title type='text'>Inspiron Mini 12（Ubuntu 版）への Windows XP のインストール</title><content type='html'>Inspiron Mini 12（Ubuntu 版）へ Windows XP Professional SP2 をインストールしたので，その作業メモ．&lt;br /&gt;&lt;br /&gt;インストールすべきドライバをリストアップして，必要なものには説明をつけて，ダウンロードサイトへリンクを貼ったので，結構役に立つんじゃないかな？ｗ&lt;br /&gt;&lt;br /&gt;○ハードウェア環境&lt;br /&gt;Inspiron Mini 12（Ubuntu 版）&lt;br /&gt;CPU：Intel Atom Z520&lt;br /&gt;メモリ：1GB&lt;br /&gt;キーボード：US 配列&lt;br /&gt;リムーバブルディスク：Transcend SDHC 16GB&lt;br /&gt;CD-ROM ドライブ：BUFFALO DVSM-P58U2/B&lt;br /&gt;&lt;br /&gt;○ブート&lt;br /&gt;F12 を押して，USB 接続の CD-ROM ドライブからブートする．&lt;br /&gt;&lt;br /&gt;○インストール&lt;br /&gt;キーボード：101キーボード（US 配列だから．）&lt;br /&gt;HDD パーティション容量：32768MB (32GB)&lt;br /&gt;HDD パーティションフォーマット：FAT&lt;br /&gt;名前：TSUCHIDA Takuya&lt;br /&gt;組織：Legna&lt;br /&gt;コンピュータ名：GABRIEL&lt;br /&gt;Administrator パスワード：（設定する．）&lt;br /&gt;ワークグループ：LEGNA&lt;br /&gt;&lt;br /&gt;僕は途中で日本語入力をデフォルトの Microsoft Natural Input 2002 ver. 8.1 から Microsoft IME Standard 2002 ver. 8.1 に変更する．インストール後にも変更はできるので，インストール後でもいい．ちなみに，US 配列キーボードでの IME オン／オフは，Alt + `（バッククウォート．Tab の上のキー．）でできる．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_zhVOi4fKc_M/SD6-Et8CNDI/AAAAAAAAATM/VLjtaCXk_dA/s1600-h/Windows+XP%5B3%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_zhVOi4fKc_M/SD6-Et8CNDI/AAAAAAAAATM/VLjtaCXk_dA/s200/Windows+XP%5B3%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5205807207547024434" /&gt;&lt;/a&gt;&lt;br /&gt;○初期設定&lt;br /&gt;自動更新：あとで設定します&lt;br /&gt;ユーザ名：takuya&lt;br /&gt;&lt;br /&gt;インストール後の初期設定．ここでのポイントは，自動更新を一時的にオフにしておくこと．これは，更新作業が裏で勝手に進んで，ソフトウェアのインストールなどの作業が滞るのを防ぐため．ユーザ名はディレクトリ名になるので，アルファベットでスペースなしを個人的にオススメする．小文字にしてるのは，Unix ユーザっぽくしたいからで，深い意味はないｗちなみに，この時点で，Unix でいうところのユーザ名とフルネームが同時に設定される．スタートメニューに表示されるフルネームは変更可能なので，あとから説明する．&lt;br /&gt;&lt;br /&gt;○ユーザ&lt;br /&gt;・ユーザアカウント&lt;br /&gt;名前：TSUCHIDA Takuya（フルネームにあたる．）&lt;br /&gt;パスワード：（設定する．）&lt;br /&gt;画像：猫（僕が好きなだけｗ）&lt;br /&gt;&lt;br /&gt;ここでの名前の設定は，ディレクトリ名に影響しない．だから，ここで日本語名とかにしても OK．&lt;br /&gt;&lt;br /&gt;○アプリケーション（XP 版に標準添付されていると思われるもの．）&lt;br /&gt;ドライバを入れるまでネットワークに接続できないため，SDカード（Windows インストール直後から読める．）にダウンロードしたアプリケーションを入れておくことをオススメする．再インストールになったときもその方が楽．&lt;br /&gt;&lt;br /&gt;・&lt;a href="http://supportapj.dell.com/support/downloads/download.aspx?c=jp&amp;l=ja&amp;s=gen&amp;releaseid=R203579&amp;SystemID=INSPIRON1210&amp;servicetag=&amp;os=WW1&amp;osl=jp&amp;deviceid=19358&amp;devlib=0&amp;typecnt=0&amp;vercnt=2&amp;catid=-1&amp;impid=-1&amp;formatcnt=1&amp;libid=25&amp;fileid=283559"&gt;バッテリーメーター&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;・&lt;a href="http://support.ap.dell.com/support/downloads/download.aspx?c=jp&amp;l=ja&amp;s=gen&amp;releaseid=R203580&amp;SystemID=INSPIRON1210&amp;servicetag=&amp;os=WW1&amp;osl=jp&amp;deviceid=19358&amp;devlib=0&amp;typecnt=0&amp;vercnt=2&amp;catid=-1&amp;impid=-1&amp;formatcnt=1&amp;libid=25&amp;fileid=283560"&gt;ワイヤレスセレクトスイッチ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;・&lt;a href="http://support.ap.dell.com/support/downloads/download.aspx?c=jp&amp;l=ja&amp;s=gen&amp;releaseid=R203604&amp;SystemID=INSPIRON1210&amp;servicetag=&amp;os=WW1&amp;osl=jp&amp;deviceid=18333&amp;devlib=0&amp;typecnt=0&amp;vercnt=1&amp;catid=-1&amp;impid=-1&amp;formatcnt=1&amp;libid=27&amp;fileid=283590"&gt;DVD 再生ソフト&lt;/a&gt;（未インストール）&lt;br /&gt;DVD を見る状況がないからインストールしていない．&lt;br /&gt;&lt;br /&gt;・&lt;a href="http://support.ap.dell.com/support/downloads/download.aspx?c=jp&amp;l=ja&amp;s=gen&amp;releaseid=R210377&amp;SystemID=INSPIRON1210&amp;servicetag=&amp;os=WW1&amp;osl=jp&amp;deviceid=13213&amp;devlib=0&amp;typecnt=0&amp;vercnt=1&amp;catid=-1&amp;impid=-1&amp;formatcnt=1&amp;libid=25&amp;fileid=299887"&gt;サポートセンター&lt;/a&gt;（未インストール）&lt;br /&gt;いらない．&lt;br /&gt;&lt;br /&gt;○ドライバ&lt;br /&gt;ドライバを入れるまでネットワークに接続できないため，SDカード（Windows インストール直後から読める．）にダウンロードしたドライバを入れておくことをオススメする．再インストールになったときもその方が楽．&lt;br /&gt;&lt;br /&gt;・&lt;a href="http://support.ap.dell.com/support/downloads/download.aspx?c=jp&amp;l=ja&amp;s=gen&amp;releaseid=R202600&amp;SystemID=INSPIRON1210&amp;servicetag=&amp;os=WW1&amp;osl=jp&amp;deviceid=18333&amp;devlib=0&amp;typecnt=0&amp;vercnt=1&amp;catid=-1&amp;impid=-1&amp;formatcnt=1&amp;libid=27&amp;fileid=281861"&gt;チップセット&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;・&lt;a href="http://support.ap.dell.com/support/downloads/download.aspx?c=jp&amp;l=ja&amp;s=gen&amp;releaseid=R207116&amp;SystemID=INSPIRON1210&amp;servicetag=&amp;os=WW1&amp;osl=jp&amp;deviceid=18334&amp;devlib=0&amp;typecnt=0&amp;vercnt=2&amp;catid=-1&amp;impid=-1&amp;formatcnt=1&amp;libid=6&amp;fileid=289946"&gt;ビデオ&lt;/a&gt;&lt;br /&gt;トレイアイコンを表示しないように設定するには，画面のプロパティ&gt;詳細設定&gt;Intel(R) Graphics Media Accelerator Driverを開き，トレイ アイコンを表示のチェックを外す．&lt;br /&gt;&lt;br /&gt;・&lt;a href="http://support.ap.dell.com/support/downloads/download.aspx?c=jp&amp;l=ja&amp;s=gen&amp;releaseid=R202599&amp;SystemID=INSPIRON1210&amp;servicetag=&amp;os=WW1&amp;osl=jp&amp;deviceid=16219&amp;devlib=0&amp;typecnt=0&amp;vercnt=1&amp;catid=-1&amp;impid=-1&amp;formatcnt=1&amp;libid=3&amp;fileid=281860"&gt;オーディオ&lt;/a&gt;&lt;br /&gt;トレイアイコンを表示しないように設定するには，コントロール パネル&gt;サウンド、音声、およびオーディオ デバイス&gt;Realtek HDオーディオ設定を開き，左下の i の書いてあるアイコンをクリックして，システムトレイにアイコンを表示するのチェックを外す．&lt;br /&gt;&lt;br /&gt;・&lt;a href="http://support.ap.dell.com/support/downloads/download.aspx?c=jp&amp;l=ja&amp;s=gen&amp;releaseid=R202601&amp;SystemID=INSPIRON1210&amp;servicetag=&amp;os=WW1&amp;osl=jp&amp;deviceid=18794&amp;devlib=0&amp;typecnt=0&amp;vercnt=1&amp;catid=-1&amp;impid=-1&amp;formatcnt=1&amp;libid=27&amp;fileid=281862"&gt;カードスロット&lt;/a&gt;&lt;br /&gt;カードスロットに挿したカードによって，リムーバブルドライブのアイコンが変わるようになるだけなのかな……．&lt;br /&gt;&lt;br /&gt;・&lt;a href="http://support.ap.dell.com/support/downloads/download.aspx?c=jp&amp;l=ja&amp;s=gen&amp;releaseid=R202606&amp;SystemID=INSPIRON1210&amp;servicetag=&amp;os=WW1&amp;osl=jp&amp;deviceid=18977&amp;devlib=0&amp;typecnt=0&amp;vercnt=1&amp;catid=-1&amp;impid=-1&amp;formatcnt=1&amp;libid=17&amp;fileid=281869"&gt;内蔵カメラ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;・&lt;a href="http://support.ap.dell.com/support/downloads/download.aspx?c=jp&amp;l=ja&amp;s=gen&amp;releaseid=R202610&amp;SystemID=INSPIRON1210&amp;servicetag=&amp;os=WW1&amp;osl=jp&amp;deviceid=18795&amp;devlib=0&amp;typecnt=0&amp;vercnt=1&amp;catid=-1&amp;impid=-1&amp;formatcnt=1&amp;libid=5&amp;fileid=281872"&gt;Bluetooth&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;・&lt;a href="http://support.ap.dell.com/support/downloads/download.aspx?c=jp&amp;l=ja&amp;s=gen&amp;releaseid=R202605&amp;SystemID=INSPIRON1210&amp;servicetag=&amp;os=WW1&amp;osl=jp&amp;deviceid=18331&amp;devlib=0&amp;typecnt=0&amp;vercnt=1&amp;catid=-1&amp;impid=-1&amp;formatcnt=1&amp;libid=5&amp;fileid=281865"&gt;ネットワーク&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;・&lt;a href="http://support.ap.dell.com/support/downloads/download.aspx?c=jp&amp;l=ja&amp;s=gen&amp;releaseid=R202607&amp;SystemID=INSPIRON1210&amp;servicetag=&amp;os=WW1&amp;osl=jp&amp;deviceid=18804&amp;devlib=0&amp;typecnt=0&amp;vercnt=1&amp;catid=-1&amp;impid=-1&amp;formatcnt=1&amp;libid=5&amp;fileid=281870"&gt;無線ネットワーク&lt;/a&gt;&lt;br /&gt;Broadcom ワイヤレス ユーティリティを起動して，「このツールでワイヤレス ネットワークを管理する」と「ユーティリティ アイコンを表示する」のチェックを外す．これで，Windows 標準の「ワイヤレス ネットワーク接続」で無線 LAN を管理できるようになる．まあ，この設定はお好みで．&lt;br /&gt;&lt;br /&gt;・&lt;a href="http://support.ap.dell.com/support/downloads/download.aspx?c=jp&amp;l=ja&amp;s=gen&amp;releaseid=R203578&amp;SystemID=INSPIRON1210&amp;servicetag=&amp;os=WW1&amp;osl=jp&amp;deviceid=16223&amp;devlib=0&amp;typecnt=0&amp;vercnt=1&amp;catid=-1&amp;impid=-1&amp;formatcnt=1&amp;libid=17&amp;fileid=283558"&gt;タッチパッド&lt;/a&gt;&lt;br /&gt;Windows デフォルトのドライバで困らないと思ってたけど，感度の調節のためにインストールした．&lt;br /&gt;&lt;br /&gt;○ネットワーク&lt;br /&gt;ネットワークに接続する．&lt;br /&gt;&lt;br /&gt;○アクティベーション&lt;br /&gt;アクティベーションする．&lt;br /&gt;&lt;br /&gt;○Windows Update&lt;br /&gt;優先度の高い更新プログラムをすべてインストールする．&lt;br /&gt;&lt;br /&gt;○ウイルススキャンソフトウェア&lt;br /&gt;&lt;a href="http://onecare.live.com/"&gt;Windows Live OneCare&lt;/a&gt; 90日間無料試用版をインストールする．&lt;br /&gt;&lt;br /&gt;SD にバックアップするように，バックアップの設定をする．SD は NTFS でフォーマットしておいた方がいいかもね．あとは，チューンアップの設定で，不要なファイルの削除をするように設定する．そして，チューンアップを実行して完了♪&lt;br /&gt;&lt;br /&gt;関連製品：&lt;br /&gt;&lt;a href="http://www.dell.co.jp/content/products/productdetails.aspx/laptop-inspiron-12"&gt;Dell Inspiron Mini 12&lt;/a&gt;（&lt;a href="http://www.amazon.co.jp/gp/product/B002ARVIVG?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=1211&amp;creativeASIN=B002ARVIVG"&gt;Amazon で製品を見る&lt;/a&gt;）&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=B002ARVIVG" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://www.transcend.co.jp/Products/ModDetail.asp?ModNo=216"&gt;Transcend TS16GSDHC6&lt;/a&gt;（&lt;a href="http://www.amazon.co.jp/gp/product/B0015AOK1O?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=1211&amp;creativeASIN=B0015AOK1O"&gt;Amazon で製品を見る&lt;/a&gt;）&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=B0015AOK1O" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;a href="http://buffalo.jp/products/catalog/storage/dvsm-p58u2_b/"&gt;BUFFALO DVSM-P58U2/B&lt;/a&gt;（&lt;a href="http://www.amazon.co.jp/gp/product/B0012SCZ1G?ie=UTF8&amp;tag=takuya0301-22&amp;linkCode=as2&amp;camp=247&amp;creative=1211&amp;creativeASIN=B0012SCZ1G"&gt;Amazon で製品を見る&lt;/a&gt;）&lt;img src="http://www.assoc-amazon.jp/e/ir?t=takuya0301-22&amp;l=as2&amp;o=9&amp;a=B0012SCZ1G" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;br /&gt;&lt;br /&gt;追記（2009年4月14日）：&lt;br /&gt;SD カードが出っ張るのが残念すぎるなぁ……．半分のサイズになってる SD カードやマイクロ SD カードアダプタがないかなぁｗ&lt;br /&gt;&lt;br /&gt;追記（2009年5月18日）：&lt;br /&gt;タッチパッドのドライバをインストールした方がいいね．&lt;br /&gt;&lt;br /&gt;追記（2009年6月2日）：&lt;br /&gt;使用したドライブについてコメントを頂いたので，その情報を追記した．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-7669665873057175586?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/7669665873057175586/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=7669665873057175586' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7669665873057175586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7669665873057175586'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/04/inspiron-mini-12ubuntu-windows-xp.html' title='Inspiron Mini 12（Ubuntu 版）への Windows XP のインストール'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_zhVOi4fKc_M/SD6-Et8CNDI/AAAAAAAAATM/VLjtaCXk_dA/s72-c/Windows+XP%5B3%5D.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-2707805781239661777</id><published>2009-03-15T23:25:00.002+09:00</published><updated>2009-03-15T23:29:01.888+09:00</updated><title type='text'>十分条件と必要条件</title><content type='html'>十分条件と必要条件って混同する．&lt;br /&gt;&lt;br /&gt;P -&gt; Q&lt;br /&gt;&lt;br /&gt;としたときの，Pが十分条件で，Qが必要条件である．&lt;br /&gt;&lt;br /&gt;参考文献の Blog の先生の説明の「十分ある方から, 必要な方へと物は流れるのだ」は，非常にわかりやすいと思う．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://phaos.hp.infoseek.co.jp/preparations/condition.htm"&gt;微分積分いい気分: 必要条件・十分条件&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-2707805781239661777?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/2707805781239661777/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=2707805781239661777' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2707805781239661777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2707805781239661777'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/03/blog-post.html' title='十分条件と必要条件'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-7156969490557257507</id><published>2009-02-27T22:48:00.004+09:00</published><updated>2009-03-01T02:21:44.126+09:00</updated><title type='text'>Mac OS X で Glade のためのメモ</title><content type='html'>GTK+ で開発するなら，Glade でしょってことでインストールしてみた．（じつは，Glade 使ったこと無いけどｗｗｗ）起動画面はこんなかんじ．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/SafzHkryWDI/AAAAAAAAAqw/2MAtxeJR3c4/s1600-h/Glade%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 198px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/SafzHkryWDI/AAAAAAAAAqw/2MAtxeJR3c4/s320/Glade%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5307477997311383602" /&gt;&lt;/a&gt;&lt;br /&gt;とはいっても，メニューのキーボードアクセラレータのキー表示が化けたり，かなーり不完全．Mac OS X 用の Glade パッケージをつくりたいという猛者のために，ここにメモっておくよ．GTK+ OS X Framework インストール済みの環境なら大丈夫だと思う．（いろいろやったんで，実際ここに書いたことだけじゃ足りないかもしれない……．）&lt;br /&gt;&lt;pre&gt;$ cd ~&lt;br /&gt;$ curl -O http://github.com/rhult/gtk-osx-build/raw/master/gtk-osx-build-setup.sh&lt;br /&gt;$ sh gtk-osx-build-setup.sh&lt;br /&gt;$ JHB=fw-10.4 bin/jhbuild bootstrap&lt;br /&gt;$ JHB=fw-10.4 bin/jhbuild shell&lt;br /&gt;（ここから開発用シェルに切り替わる．）&lt;br /&gt;$ curl -O http://ftp.gnome.org/pub/GNOME/sources/glade3/3.1/glade3-3.1.5.tar.gz&lt;br /&gt;$ tar -vxzf  glade3-3.1.5.tar.gz&lt;br /&gt;$ cd glade3-3.1.5&lt;br /&gt;（ここでデフォルトフォントに日本語フォントを指定するようにソースを書き換える．）&lt;br /&gt;$ vim src/main.c&lt;br /&gt;    /* Pass NULL here since we parsed the gtk+ args already...&lt;br /&gt;     * from this point on we need a DISPLAY variable to be set.&lt;br /&gt;     */&lt;br /&gt;    gtk_init (NULL, NULL);&lt;br /&gt;    /* 次の行を追加する． */&lt;br /&gt;    gtk_settings_set_string_property (gtk_settings_get_default (), "gtk-font-name", "Hiragino Kaku Gothic Pro 13", NULL);&lt;br /&gt;$ ./configure&lt;br /&gt;$ make&lt;br /&gt;$ make check&lt;br /&gt;$ sudo make install&lt;br /&gt;$ glade-3&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://live.gnome.org/GTK%2B/OSX/"&gt;GNOME Live!: GTK+/OSX&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-7156969490557257507?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/7156969490557257507/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=7156969490557257507' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7156969490557257507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7156969490557257507'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/02/mac-os-x-glade.html' title='Mac OS X で Glade のためのメモ'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zhVOi4fKc_M/SafzHkryWDI/AAAAAAAAAqw/2MAtxeJR3c4/s72-c/Glade%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-4550677812108257194</id><published>2009-02-27T21:42:00.003+09:00</published><updated>2009-02-27T21:46:08.215+09:00</updated><title type='text'>Mac OS X でのファイルをダウンロードするコマンド</title><content type='html'>wget や fetch の Mac OS X における代替コマンドってかんじ．&lt;br /&gt;&lt;pre&gt;$ curl -O &lt;span style="font-style:italic;"&gt;URL&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-4550677812108257194?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/4550677812108257194/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=4550677812108257194' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4550677812108257194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4550677812108257194'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/02/mac-os-x.html' title='Mac OS X でのファイルをダウンロードするコマンド'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-3010859911709257963</id><published>2009-02-27T00:42:00.003+09:00</published><updated>2009-02-27T02:48:21.127+09:00</updated><title type='text'>GTK+ OS X Framework で日本語を表示する方法</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2009/02/gtk-on-mac-os-x.html#links"&gt;林檎生活100: GTK+ on Mac OS X 入門&lt;/a&gt;で GTK+ OS X Framework を紹介したんだよね．そのエントリのコメントに，デフォだと日本語表示できないのでこうやったらできますよっていうのを教えてもらった．その解決策は，&lt;a href="http://d.hatena.ne.jp/paella/20090217/1234865008"&gt;GTK+ on OS Xで日本語を表示するには&lt;/a&gt;にある．&lt;br /&gt;&lt;br /&gt;それを参考にして，別の解決策を考えたのでそれも紹介しとこうと思う．&lt;br /&gt;&lt;br /&gt;まず，なぜ日本語が表示できないかというと，デフォルトのフォントが Lucida Grande 12 になってるからみたい．&lt;br /&gt;&lt;br /&gt;なので，デフォルトのフォントを変更するようにソースを書き換える．デフォルトのセッティングを取得して，デフォルトのフォントを「ヒラギノ 角ゴ Pro」にする．Mac OS X の UI で使われているフォントのサイズが13ptみたいなので，サイズはそれにあわせてみた．&lt;br /&gt;&lt;pre&gt;#include &amp;lt;gtk/gtk.h&gt;&lt;br /&gt;&lt;br /&gt;int&lt;br /&gt;main (int argc, char **argv)&lt;br /&gt;{&lt;br /&gt;    GtkWidget *window;&lt;br /&gt;    GtkWidget *label;&lt;br /&gt;    GtkSettings *settings;&lt;br /&gt;&lt;br /&gt;    gtk_init (&amp;argc, &amp;argv);&lt;br /&gt; &lt;br /&gt;    settings = gtk_settings_get_default ();&lt;br /&gt;    gtk_settings_set_string_property (settings, "gtk-font-name", "Hiragino Kaku Gothic Pro 13", NULL);&lt;br /&gt;&lt;br /&gt;    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);&lt;br /&gt;    g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);&lt;br /&gt;    gtk_widget_show_all (window);&lt;br /&gt;&lt;br /&gt;    /* Add your widgets to the window here. */&lt;br /&gt;    label = gtk_label_new ("こんにちは，世界！");&lt;br /&gt;    gtk_container_add (GTK_CONTAINER (window), label);&lt;br /&gt;    gtk_widget_show (label);&lt;br /&gt;&lt;br /&gt;    /* Run the main loop. */&lt;br /&gt;    gtk_main ();&lt;br /&gt;&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;これで，日本語が表示できるようになる．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SaapPKtvWFI/AAAAAAAAAqo/UNWlJm26g7g/s1600-h/GTK%2B%5B4%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 262px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SaapPKtvWFI/AAAAAAAAAqo/UNWlJm26g7g/s320/GTK%2B%5B4%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5307115288942041170" /&gt;&lt;/a&gt;&lt;br /&gt;ほかの環境のことを考えると，フォントがあるかチェックしたり，OS 判別したり，ロケールにあわせたりすべきなんだろうけど，その方法がよくわかんなかったので，とりあえずベタ書き．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-3010859911709257963?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/3010859911709257963/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=3010859911709257963' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/3010859911709257963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/3010859911709257963'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/02/gtk-os-x-framework.html' title='GTK+ OS X Framework で日本語を表示する方法'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zhVOi4fKc_M/SaapPKtvWFI/AAAAAAAAAqo/UNWlJm26g7g/s72-c/GTK%2B%5B4%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-7374762825023732797</id><published>2009-02-26T06:43:00.012+09:00</published><updated>2009-02-26T22:50:35.114+09:00</updated><title type='text'>GTK+ on Mac OS X 入門</title><content type='html'>GTK+ が Mac OS X の X11 上じゃなくて，Quartz 上で使えるようになった．&lt;a href="http://www.gtk-osx.org/"&gt;GTK+ on OSX&lt;/a&gt; から，GTK+ OS X Framework をダウンロードしよう♪&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/SaW8vCu-SdI/AAAAAAAAAqQ/PtZy97L6nWc/s1600-h/GTK%2B%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 247px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/SaW8vCu-SdI/AAAAAAAAAqQ/PtZy97L6nWc/s320/GTK%2B%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5306855252299762130" /&gt;&lt;/a&gt;&lt;br /&gt;使い方はこんなかんじ．&lt;br /&gt;&lt;br /&gt;1. Download Framework をクリックしてダウンロード．&lt;br /&gt;&lt;br /&gt;2. パッケージをインストール．&lt;br /&gt;&lt;br /&gt;3. Xcode を起動して，新規プロジェクトから GTK+ Application を選択してプロジェクトを作成&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SaW_fojzIwI/AAAAAAAAAqg/xRLEqBMSziI/s1600-h/GTK%2B%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 270px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SaW_fojzIwI/AAAAAAAAAqg/xRLEqBMSziI/s320/GTK%2B%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5306858286110417666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SaW_fR0El_I/AAAAAAAAAqY/oseZaGeAKow/s1600-h/GTK%2B%5B3%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 216px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SaW_fR0El_I/AAAAAAAAAqY/oseZaGeAKow/s320/GTK%2B%5B3%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5306858280004655090" /&gt;&lt;/a&gt;&lt;br /&gt;最近 GTK+ を使ってないので，全然覚えてないので正確性に欠けそうだが，とりあえず Hello, world! っぽいものをつくろう．デフォルトの状態でコンパイルするとウィンドウがひとつ表示されるだけのコードが書かれてるので，ウィンドウに Hello, world! と書かれたラベルを表示することにする．&lt;br /&gt;&lt;br /&gt;と，その前に，main.c の内容についてざっと説明する．いかにも，C というかんじのプログラムであることは，なんとなくわかってもらえるかなぁと思う．（Win32API とか C のプログラムに見えなくなってくるからねｗ）#include の行はおまじないｗということで，GTK+ を使うときにはこうやって書く必要がある．main 関数の定義は，C とまったく同じなので問題ないよね．GtkWidget 型ってなんじゃって思うかもしれないけど，これはウィンドウやボタン，ラベルなどの部品のための型なんだな．まぁ，こういう Gtk~ 型がいろいろと定義されてるんだよね．C の FILE 型みたいなもんで，実体は構造体だったりする．いわゆる隠蔽（カプセル化）の手法．gtk_init() は，おまじ……といいたいところだが，まあ初期化して，GTK+ 向けの引数を処理してくれるらしい．次の3行は，ウィンドウを作成して，ウィンドウが消されたらプログラムを終了するようにして，ウィンドウを表示するという意味．gtk_main() でマウスクリックやキーボード入力のイベントを待ち受ける状態になる．というかんじ．&lt;br /&gt;&lt;pre&gt;#include &amp;lt;gtk/gtk.h&gt;&lt;br /&gt;&lt;br /&gt;int&lt;br /&gt;main (int argc, char **argv)&lt;br /&gt;{&lt;br /&gt;    GtkWidget *window;&lt;br /&gt;&lt;br /&gt;    gtk_init (&amp;argc, &amp;argv);&lt;br /&gt;&lt;br /&gt;    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);&lt;br /&gt;    g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);&lt;br /&gt;    gtk_widget_show_all (window);&lt;br /&gt;&lt;br /&gt;    /* Add your widgets to the window here. */&lt;br /&gt;&lt;br /&gt;    /* Run the main loop. */&lt;br /&gt;    gtk_main ();&lt;br /&gt;&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;これを次のように書き換えよう．ラベル変数を宣言して，ラベルを作成して，ウィンドウのコンテナに追加して，ラベルを表示する．なんとなく，わかってもらえるだろうか．&lt;br /&gt;&lt;pre&gt;#include &amp;lt;gtk/gtk.h&gt;&lt;br /&gt;&lt;br /&gt;int&lt;br /&gt;main (int argc, char **argv)&lt;br /&gt;{&lt;br /&gt;    GtkWidget *window;&lt;br /&gt;    GtkWidget *label;&lt;br /&gt;&lt;br /&gt;    gtk_init (&amp;argc, &amp;argv);&lt;br /&gt;&lt;br /&gt;    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);&lt;br /&gt;    g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);&lt;br /&gt;    gtk_widget_show_all (window);&lt;br /&gt;&lt;br /&gt;    /* Add your widgets to the window here. */&lt;br /&gt;    label = gtk_label_new ("Hello, world!");&lt;br /&gt;    gtk_container_add (GTK_CONTAINER (window), label);&lt;br /&gt;    gtk_widget_show (label);&lt;br /&gt;&lt;br /&gt;    /* Run the main loop. */&lt;br /&gt;    gtk_main ();&lt;br /&gt;&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;これで，コンパイルして実行すると，Hello, world! という文字列が表示されたウィンドウが表示されるはずだ．&lt;br /&gt;&lt;br /&gt;GTK+ の基本的なプログラミングは，部品 (GtkWidget) を作成して，部品のシグナル（マウスクリックなどのイベントによって生じる．）に関数を指定して，部品をコンテナに入れて（パッキング），表示して，イベント待ちをするってかんじ．&lt;br /&gt;&lt;br /&gt;C で GUI プログラミングをするにはもってこいだと思う．大学の課題で，GUI プログラミングの課題が出たら，Xlib や Win32API で組むよりは，GTK+ で組んだ方がだいぶ楽だと個人的には思う．（実際のところ，僕は Win32API でプログラムを組むことが多かったがｗ）もしくは，GLUT という選択肢もある．ボタンやダイアログを使うなら GTK+ で，画像表示だけなら GLUT ってのがいいのかな．普通の GTK+ なら，OpenGL を中に表示させるライブラリもあるんだけど，ちょっとこの Mac OS X 版で使えるかどうかは不明．だれか教えてください(*- -)(*_ _)&lt;br /&gt;&lt;br /&gt;追記（2009年2月26日）：&lt;br /&gt;コメントに，日本語の文字列の表示の仕方の説明をいただいたたので紹介．どうやら，そのままでは日本語フォントが設定されてなくて日本語の文字列が表示できないのだ．&lt;a href="http://d.hatena.ne.jp/paella/20090217/1234865008"&gt;GTK+ on OS Xで日本語を表示するには&lt;/a&gt;に方法が説明されているので参考にしてね♪&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://library.gnome.org/devel/gtk-tutorial/stable/"&gt;GTK+ 2.0 Tutorial&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gnome.gr.jp/docs/gtk+-2.0.x-tut/gtk-tut.html"&gt;GTK+ 2.0 チュートリアル (2003-01-24版)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-7374762825023732797?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/7374762825023732797/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=7374762825023732797' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7374762825023732797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7374762825023732797'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/02/gtk-on-mac-os-x.html' title='GTK+ on Mac OS X 入門'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zhVOi4fKc_M/SaW8vCu-SdI/AAAAAAAAAqQ/PtZy97L6nWc/s72-c/GTK%2B%5B1%5D.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-8381009069006316173</id><published>2009-02-21T02:37:00.003+09:00</published><updated>2009-02-21T02:45:24.550+09:00</updated><title type='text'>読解を助ける Wiki みたいなのがあったらいいなぁ</title><content type='html'>と思った．いま，数学書を読んでるんだけど，僕の馬鹿頭では，理解できないことが多すぎて，なかなか読み進まなかったりする．本質的に知識が足りないというのはもちろんだが，すこし言ってもらえればわかる程度のことで，ほかの本を読んだり，ググったりするのは面倒だ．&lt;br /&gt;&lt;br /&gt;なので，読解を助ける Wiki みたいなのが，あったらいいなぁと思う．基本的なシステムは，Wiki で実現できそうだ．本ごとにページをつくって，そこにページ（行数もかなぁ．）とわからないことを書く．誰かが，それについて解答する．それを共通の知識として，Wiki に保存しておく．&lt;br /&gt;&lt;br /&gt;こうすれば，同じ本を読む人が，ここがわからないなぁって思ったときに，そこの情報を調べればわかるかもしれない．わからなければ，そこに書けばいいし，書かれてないことは，あまりにも当然すぎることなのかもしれない．まあ，一言二言で済むのであれば，書いておいた方がいい情報だとは思うけどね．&lt;br /&gt;&lt;br /&gt;ということで，こういう Wiki があったらどう？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-8381009069006316173?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/8381009069006316173/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=8381009069006316173' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8381009069006316173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8381009069006316173'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/02/wiki.html' title='読解を助ける Wiki みたいなのがあったらいいなぁ'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-8543189319020660355</id><published>2009-02-11T14:35:00.005+09:00</published><updated>2009-02-12T04:28:52.450+09:00</updated><title type='text'>ZIP ファイルにパスワードを付ける</title><content type='html'>Mac OS X でパスワード付き ZIP ファイルをつくる方法について．&lt;br /&gt;&lt;br /&gt;ZIP ファイルをつくるのは，対象となるファイルやフォルダ上でコンテキストメニューを開いて”○○○”を圧縮を選択するだけなのは，知っていると思う．じゃー，パスワード付き ZIP ファイルはどうやってつくるのかというと，この方法で ZIP ファイルを作成しておいて，ターミナルからパスワードを付加するのだ．&lt;br /&gt;&lt;br /&gt;その方法はこんなかんじ．&lt;br /&gt;&lt;pre&gt;$ zipcloak sample.zip&lt;/pre&gt;&lt;br /&gt;あとは，設定したいパスワードを入力するように指示されるので，そこに入力すればいい．これでパスワードが設定された ZIP ファイルになる．ただし，標準のアーカイブユーティリティでは解凍できないため，StuffIt Expander などを使うようにしよう．まぁ，unzip コマンドで解凍してもいいと思うけどね．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-8543189319020660355?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/8543189319020660355/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=8543189319020660355' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8543189319020660355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8543189319020660355'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/02/zip.html' title='ZIP ファイルにパスワードを付ける'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-7600780615428275861</id><published>2009-01-26T00:46:00.005+09:00</published><updated>2009-03-21T11:02:12.405+09:00</updated><title type='text'>Mac OS X でシリアルコンソール #2</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2008/12/mac-os-x-1.html"&gt;林檎生活100: Mac OS X でシリアルコンソール #1&lt;/a&gt;の続き．さて，Mac OS X をシリアル端末としてつかう方法についてやっていく．（僕は，FreeBSD のインストール作業で，シリアルコンソールにつなぐための端末として使用した．）そのためには，screen というコマンドをつかうことになる．screen というコマンドは結構多機能なので，そのうちのごくごく基本的な部分について説明しようと思う．（いずれ，僕もきちんと調べて，便利なところとかを説明できたらなぁと思っている．）&lt;br /&gt;&lt;br /&gt;接続手順はこんなかんじ．&lt;br /&gt;&lt;br /&gt;1. シリアルケーブルで対象機器と Mac をつなぐ．&lt;br /&gt;&lt;br /&gt;2. 次のコマンドで，シリアルポートのデバイスを調べる．（僕の場合は，/dev/tty.usbserial-A5002wiq だった．）&lt;br /&gt;&lt;pre&gt;$ ls /dev/tty.*&lt;/pre&gt;&lt;br /&gt;3. 次のコマンドを入力して，シリアルコンソールへ接続する．（○○○の部分は，自分のシリアルポートのデバイスを入力すること．-h オプションは，スクロールバックバッファの行数で，デフォルトが100行と短いので多めにとっておいた方がいい．）&lt;br /&gt;&lt;pre&gt;$ screen -h 65536 /dev/tty.○○○&lt;/pre&gt;&lt;br /&gt;これで，シリアルコンソールに接続される．以下，簡単な screen の使い方を説明する．&lt;br /&gt;&lt;br /&gt;○コマンド&lt;br /&gt;ctrl+a [: スクロールバックモードに入る（画面に表示された履歴を参照．vi キーバインド．esc などを押すことで終了．）&lt;br /&gt;ctrl+a ctrl+\: 終了&lt;br /&gt;&lt;br /&gt;僕は，これくらいしか使いこなせていないｗｗｗほかにもいろいろな機能があるみたいなんだけどねぇ．まっ，これでシリアル端末として Mac を活用できると思うので，ぜひ使ってみてほしい．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-7600780615428275861?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/7600780615428275861/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=7600780615428275861' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7600780615428275861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7600780615428275861'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/01/100-mac-os-x-1-mac-os-x-freebsd-screen.html' title='Mac OS X でシリアルコンソール #2'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-1712868372536299384</id><published>2009-01-21T23:57:00.001+09:00</published><updated>2009-01-22T00:04:15.531+09:00</updated><title type='text'>FreeBSD でサーバ構築 #8</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2009/01/freebsd-7.html#links"&gt;林檎生活100: FreeBSD でサーバ構築 #7&lt;/a&gt;の続き．今回はセカンダリ DNS サーバについての話．また，無償で使える DNS サービスである &lt;a href="http://www.everydns.com/"&gt;EveryDNS&lt;/a&gt; をセカンダリ DNS サーバとして使う方法についても説明する．&lt;br /&gt;&lt;br /&gt;セカンダリ DNS サーバ（スレーブネームサーバとも．）というのは，バックアップや負荷分散のために設置する DNS サーバである．ドメインに対して権威を持つ DNS サーバ（プライマリ DNS サーバという．マスターネームサーバとも．）のクローンとして動作すると考えればいい．この仕組みによって，プライマリ DNS サーバに障害が発生しても，セカンダリ DNS サーバが使用されることで，名前解決ができないという状態を回避することができるようになるのだ．&lt;br /&gt;&lt;br /&gt;じゃ，2台目の DNS サーバを構築して解決だね♪ということなのだが，実際にはプロバイダから貰っている固定 IP アドレスがひとつしかないってことがざらなので，2台も DNS サーバは立てれない．じゃー，どうするのか？友達も自宅サーバ立てていて，友達の DNS サーバにセカンダリ DNS サーバになってもらおうという方法もある．しかし，そんな友達は稀有だと思うので，林檎生活100としては，無償で使える DNS サービス &lt;a href="http://www.everydns.com/"&gt;EveryDNS&lt;/a&gt; を利用することをオススメすることにする．&lt;br /&gt;&lt;br /&gt;さて，その利用手順は次のとおりだ．&lt;br /&gt;&lt;br /&gt;1. ユーザ名とメールアドレス，パスワードを入力し，アカウントを作成する．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SXc3ncbh-OI/AAAAAAAAAow/pZpLhTkG1Bk/s1600-h/EveryDNS%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 238px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SXc3ncbh-OI/AAAAAAAAAow/pZpLhTkG1Bk/s320/EveryDNS%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5293761037783398626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. 独自ドメイン名（僕の場合は，legna.org になる．）で，プライマリ DNS サーバのホスト名（僕の場合は，lucifer.legna.org になる．）入力し，セカンダリ DNS サーバを作成する．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SXc3nNvLS1I/AAAAAAAAAoo/XkFM1Kbnaws/s1600-h/EveryDNS%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 238px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SXc3nNvLS1I/AAAAAAAAAoo/XkFM1Kbnaws/s320/EveryDNS%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5293761033839266642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;たったこれだけだねｗ現段階での準備はここまでで OK．実際には，プライマリ DNS サーバを構築して，そのプライマリ DNS サーバが持つゾーン情報をセカンダリ DNS サーバに転送しないことには機能しないんだけど，セカンダリ DNS サーバを作ってしまえば，プライマリ DNS サーバをいじるだけで，セカンダリ DNS サーバをいじることはなくなるので，先に紹介させていただいた．&lt;br /&gt;&lt;br /&gt;蛇足だが，プライマリ DNS サーバが死んだら，そのサーバで動いてる Web サーバも死んでるし，ぶっちゃけセカンダリ DNS サーバなくてもいいんですけどという意見があると思う．僕もそう思う．だけど，セカンダリ DNS サーバがひとつでもないと，レジストラでドメインにDNS サーバを設定できなかったのだ．（正確には，レジストラ上では設定できたが，org ドメインの DNS サーバに反映されなかった．）ということで，セカンダリ DNS サーバが必要なのだ．&lt;br /&gt;&lt;br /&gt;次回はやっと BIND の設定に入れそうだ♪次回にこうご期待ｗ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-1712868372536299384?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/1712868372536299384/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=1712868372536299384' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1712868372536299384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1712868372536299384'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/01/freebsd-8.html' title='FreeBSD でサーバ構築 #8'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zhVOi4fKc_M/SXc3ncbh-OI/AAAAAAAAAow/pZpLhTkG1Bk/s72-c/EveryDNS%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-2700533752102036963</id><published>2009-01-20T11:52:00.005+09:00</published><updated>2009-06-15T08:04:42.422+09:00</updated><title type='text'>FreeBSD でサーバ構築 #7</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2009/01/freebsd-6.html"&gt;林檎生活100: FreeBSD でサーバ構築 #6&lt;/a&gt;の続き．今回は，独自ドメインについて．取得方法ではなくて，それがどのようにして名前解決されるのかってことについての読み物だね．&lt;br /&gt;&lt;br /&gt;ここでは，独自ドメインを取得済みとして話を進めていく．取得していない場合は，適当なレジストラでドメインを取得してほしい．取得方法については省略．レジストラに詳しく書いてあるからね♪&lt;br /&gt;&lt;br /&gt;さて，僕は legna.org という独自ドメインを持っていて，DNS サーバには lucifer.legna.org というホスト名をつける．DNS サーバには，www.legna.org を登録し，そのホスト名で Web サーバにアクセスできるようにする予定だとしよう．これが完成したときに，www.legna.org はどのようにして名前解決されるのだろうか？&lt;br /&gt;&lt;br /&gt;&lt;a href="http://applelife100.blogspot.com/2008/08/dns.html"&gt;林檎生活100: DNS の仕組み&lt;/a&gt;の図を参考にして考えてみてほしい．実は，図でいうところの com のネームサーバ（今回は legna.org なので org のネームサーバになるが．）のところで，追えなくなるはずだ．legna.org の DNS サーバのことを org の DNS サーバが知っていなければならないからね．&lt;br /&gt;&lt;br /&gt;ということで，独自ドメインを取得した後に，そのドメインと DNS サーバを結びつける作業をしなきゃなんない．僕の場合は，lucifer.legna.org という DNS サーバを登録した．くわえて，ns1.everydns.net という無償のセカンダリ DNS として登録した．このセカンダリ DNS については，次回のエントリで説明する．（次回のエントリでその DNS サーバの設定方法を教えるので，とりあえずセカンダリ DNS サーバには，ns1.everydns.net を登録しておけばいいと思う．）&lt;br /&gt;&lt;br /&gt;僕が契約しているドメインは，このような画面でネームサーバを設定する．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SjWB_VRKB2I/AAAAAAAAAr4/jN9gnrMAKXc/s1600-h/Domain+Manager%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 260px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SjWB_VRKB2I/AAAAAAAAAr4/jN9gnrMAKXc/s320/Domain+Manager%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5347323057613178722" /&gt;&lt;/a&gt;&lt;br /&gt;これで，名前解決できるようになるだろうか？実は，まだ足りないものがあるｗlucifer.legna.org を引けないので，legna.org の DNS サーバの IP アドレスがわからないのだ．lucifer.legna.org というホストは，legna.org というドメインに含まれている．legna.org の DNS サーバは lucifer.legna.org である．lucifer.legna.org というホストは……，というような「鶏と卵」の問題だ．ということで，org の DNS サーバには，グルーレコードと言われる lucifer.legna.org と IP アドレスを結びつけるレコードが DNS サーバが登録されるときに一緒に登録される．（まあ，普通の A レコードだけどね．）&lt;br /&gt;&lt;br /&gt;これで，図と同じように名前解決できるようになるはずだよね♪DNS サーバをちゃんと立ち上げればだけどｗｗｗ&lt;br /&gt;&lt;br /&gt;さて，独自ドメインがどうやって名前解決できるようになっているかわかっていただけただろうか．まあ，実際にはドメインの委譲って作業で，それをレジストラを介してやっているにすぎないんだけどね〜．次回は，今回ちょろっと出てきたセカンダリ DNS について説明しようと思う．無償のセカンダリ DNS の利用方法についても書くので，お楽しみに〜．&lt;br /&gt;&lt;br /&gt;追記（2009年6月15日）：&lt;br /&gt;Interlink のドメインマネージャの画像を追加．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-2700533752102036963?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/2700533752102036963/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=2700533752102036963' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2700533752102036963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2700533752102036963'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/01/freebsd-7.html' title='FreeBSD でサーバ構築 #7'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zhVOi4fKc_M/SjWB_VRKB2I/AAAAAAAAAr4/jN9gnrMAKXc/s72-c/Domain+Manager%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-6325345185232849477</id><published>2009-01-19T00:12:00.006+09:00</published><updated>2009-01-19T08:08:05.584+09:00</updated><title type='text'>FreeBSD インストール用 USB メモリの作成 #3</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2008/12/freebsd-usb-1.html"&gt;林檎生活100: FreeBSD インストール用 USB メモリの作成 #1&lt;/a&gt;で作ったやつでは，それをインストールメディアとして使うことができず，ネットワークインストール用になってしまったのでその対策．&lt;br /&gt;&lt;br /&gt;問題点は，インストール中のメディアを選択するところで，USB メモリを選択する方法がないこと．（当然なんだけどなｗ）ということで，USB メモリに DOS パーティションを作成し，インストールに必要なデータはそこから取得することにする．&lt;br /&gt;&lt;br /&gt;以下，作業手順．&lt;br /&gt;&lt;br /&gt;1. MBR を書き込む．&lt;br /&gt;&lt;pre&gt;# fdisk -BIv /dev/da0&lt;/pre&gt;&lt;br /&gt;2. sysinstall を起動する．&lt;br /&gt;&lt;pre&gt;# sysinstall&lt;/pre&gt;&lt;br /&gt;3. Configure&gt;Fdisk を実行し，パーティションを64MBの FreeBSD パーティション（パーティションタイプ：165）と残容量の FAT32X パーティション（パーティションタイプ：12）の2つに分割する．さらに，W を入力し，ブートマネージャとして None を選択し，パーティション設定を反映させる．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/SXMvBUGHJXI/AAAAAAAAAoQ/21sUx5080mg/s1600-h/FreeBSD+Server%5B47%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 210px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/SXMvBUGHJXI/AAAAAAAAAoQ/21sUx5080mg/s320/FreeBSD+Server%5B47%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5292625686711182706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4.  FreeBSD パーティションをブート用パーティションにする．&lt;br /&gt;&lt;pre&gt;# bsdlabel -w -B /dev/da0s1&lt;br /&gt;# newfs /dev/da0s1a&lt;br /&gt;# ftp ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.0/7.0-RELEASE-i386-bootonly.iso&lt;br /&gt;# mdconfig -a -t vnode -f 7.0-RELEASE-i386-bootonly.iso -u 0&lt;br /&gt;# mount_cd9660 /dev/md0 /cdrom&lt;br /&gt;# mount /dev/da0s1a /mnt&lt;br /&gt;# cp -Rpv /cdrom/* /mnt&lt;br /&gt;# echo 'console=comconsole' &gt;&gt; /mnt/boot/loader.conf（注意：シリアルコンソールでインストールする場合に限る．）&lt;br /&gt;# umount /mnt&lt;br /&gt;# umount /cdrom&lt;br /&gt;# mdconfig -d -u 0&lt;/pre&gt;&lt;br /&gt;5. FAT32X パーティションをインストールメディア用パーティションにする．&lt;br /&gt;&lt;pre&gt;# newfs_msdos /dev/da0s2&lt;br /&gt;# ftp ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.0/7.0-RELEASE-i386-disc1.iso&lt;br /&gt;# mdconfig -a -t vnode -f 7.0-RELEASE-i386-disc1.iso -u 0&lt;br /&gt;# mount_cd9660 /dev/md0 /cdrom&lt;br /&gt;# mount_msdosfs /dev/da0s2 /mnt&lt;br /&gt;# cp -Rpv /cdrom/* /mnt&lt;br /&gt;# umount /mnt&lt;br /&gt;# umount /cdrom&lt;br /&gt;# mdconfig -d -u 0&lt;/pre&gt;&lt;br /&gt;以上で完成♪もしかしたら，MBR を書き込む fdisk はいらなくて，sysinstall の fdisk でブートマネージャを Standard にするだけでもいいのかもしれない．未確認なので，試してみた方はそれで動作するか教えてください．&lt;br /&gt;&lt;br /&gt;注意することは，起動時に接続しているシリアルコンソールの種類を聞かれるので，VT100 or compatible terminal. にあたる2を入力すること．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SXMxXVoOX5I/AAAAAAAAAoY/QNbEaWXfuuM/s1600-h/FreeBSD+Server%5B45%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 221px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SXMxXVoOX5I/AAAAAAAAAoY/QNbEaWXfuuM/s320/FreeBSD+Server%5B45%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5292628264103075730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;あとは，普通のインストールと同じ．インストールメディアは，前述の通り DOS を選択すること．&lt;br /&gt;&lt;br /&gt;これでインストールが完了すれば，シリアルコンソールから FreeBSD を操作できる環境に♪と思ったら，そう甘くはなかった．ログインプロンプトが，シリアルコンソールに表示されないのだ．実は，loader.conf に設定しているのだけでは足りない．（ブートのときに，前半と後半があるような感覚．詳細は失念した．ブートについて調べれば，出てくる情報だと思う．）/etc/ttys を編集する必要があるのだ．&lt;br /&gt;&lt;br /&gt;その作業手順はこちら．&lt;br /&gt;&lt;br /&gt;1. 起動時の画面で，4を入力しシングルユーザモードに入る．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SXOzDzIrNmI/AAAAAAAAAog/-6JSM4HgsGg/s1600-h/FreeBSD+Server%5B48%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 221px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SXOzDzIrNmI/AAAAAAAAAog/-6JSM4HgsGg/s320/FreeBSD+Server%5B48%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5292770864938038882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. シェルの選択画面で enter を入力する．&lt;br /&gt;&lt;pre&gt;Enter full pathname of shell or RETURN for /bin/sh: [enter]&lt;/pre&gt;&lt;br /&gt;3. ファイルシステムをチェックする．ファイルシステムに修復が必要なときに対話的に実行しない (-p)．&lt;br /&gt;&lt;pre&gt;# fsck -p&lt;/pre&gt;&lt;br /&gt;4. fstab に記述された (-a) UFS ファイルシステムだけ (-t ufs) をマウントする．&lt;br /&gt;&lt;pre&gt;# mount -a -t ufs&lt;/pre&gt;&lt;br /&gt;5. /etc/ttys を vi などで，該当する行を次のように編集する．&lt;br /&gt;&lt;br /&gt;ttyd0   "/usr/libexec/getty std.9600"   dialup  off secure&lt;br /&gt;↓&lt;br /&gt;ttyd0   "/usr/libexec/getty std.9600"   vt100   on  secure&lt;br /&gt;&lt;br /&gt;6. 再起動する．&lt;br /&gt;&lt;pre&gt;# shutdown -r now&lt;/pre&gt;&lt;br /&gt;以上．これで，シリアルコンソールからログインできるようになる．あー，大変だった．このエントリ書いて，日曜日がなくなった気がするｗｗｗ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-6325345185232849477?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/6325345185232849477/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=6325345185232849477' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6325345185232849477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6325345185232849477'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/01/freebsd-usb-3.html' title='FreeBSD インストール用 USB メモリの作成 #3'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zhVOi4fKc_M/SXMvBUGHJXI/AAAAAAAAAoQ/21sUx5080mg/s72-c/FreeBSD+Server%5B47%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-8090657187139831326</id><published>2009-01-18T12:13:00.007+09:00</published><updated>2009-01-18T16:58:23.715+09:00</updated><title type='text'>FreeBSD のデフォルト named.conf の邦訳</title><content type='html'>今回は，FreeBSD 7.0-RELEASE にデフォルトで入っている named.conf を読んでみようと思う．調べても直接的な情報がすくない気がするし，結局 &lt;a href="https://www.isc.org/files/Bv9.4ARM.pdf"&gt;ARM&lt;/a&gt; で確認をとることになったから，ここに書く意味はあるのかなぁと思った♪&lt;br /&gt;&lt;br /&gt;では，上からサクサクといこ〜．手元に，named.conf を表示しながら読み進めるといいと思う．コメントの邦訳の語調が変なのは仕様ｗこの語調で書いてたら楽しくなってきたので，そのままにしてるｗｗｗ&lt;br /&gt;&lt;br /&gt;まず，最初のコメントブロック．最初の行が，バージョンなどなど（バージョン管理ツールで入力された内容だね．）が表記されている．今回の named.conf は，1.26.4.1 というバージョンだった．その次の行からのコメントの内容は，次のような感じ．&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic; color:gray;"&gt;\named.conf(5) と named(8) の man ページを参照してね．あと詳細なドキュメントが /usr/share/doc/bind9 にあるよ．&lt;br /&gt;&lt;br /&gt;もし，権威あるサーバをセットアップしようとしてるなら，DNS がどう動いてるのか細かいとこまできちんと理解してからやってね．ちょっとした失敗でも，グループに影響して接続を壊したり，無駄な大量のトラフィックを発生させちゃうかも．&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;さて，次は options ステートメント部分だ．directory オプションは作業ディレクトリを示す．pid-file オプションはプロセス ID を記述したファイルへのパス．dump-file オプションは，サーバの内部データベースのダンプをとるときの保存先．（/var/dump/named_dump.db と設定されていて，rndc dumpdb というコマンドでダンプをとると，/var/named/var/dump/named_dump.db に保存される．謎仕様な気がするのは僕だけ？ｗ）statistics-file オプションは，サーバの統計情報をとるときの保存先．&lt;br /&gt;&lt;br /&gt;listen-on サブステートメントは，問い合わせを待ち受けるネットワークインタフェースを指定するためのステートメントだ．デフォルトでは，ループバックアドレスの 127.0.0.1 だけが設定されているので，自分自身からの問い合わせしか受け付けないようになっている．このサブステートメントにくっついてるコメントの意味はこんなかんじ．&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic; color:gray;"&gt;ローカルリゾルバとしてしか named を使わないんだったら，これは安全なデフォルト設定だよ．named をネットワークからアクセス可能にするなら，コメントするか，適当なアドレスを設定するか，このオプションを削除してね．&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;listen-on-v6 サブステートメントは，IPv6 用のやつ．コメントになってる．&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic; color:gray;"&gt;システム上で IPv6 を有効にしてるんだったら，ローカルリゾルバとして使うためにコメントを外してね．ネットワークからアクセス可能にするなら，適当な IPv6 アドレスか，any ってキーワードを設定してね．&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;disable-empty-zone オプションってのが，最近（9.4.x からだったと思う．）追加されたオプションだ．ARM 読むまで知らなかったんだけど，BIND は，Built-in Empty Zones ってのを持っていて，それらのゾーンが自動的に設定される．その自動的に設定されるのを無効にするのがこのオプション．Empty Zone てのは，NXDOMAIN（ドメインが存在しないという確認応答．）を返すような問い合わせがルートネームサーバに行かないようにするために，SOA レコードと NS レコードだけを設定した空のゾーンのことだ．つまり，Built-in Empty Zones は，NXDOMAIN を返すような問い合わせのゾーン一覧で，自動的に BIND によって設定されるようになっている．&lt;br /&gt;&lt;br /&gt;設定ファイルでは，disable-empty-zone オプションが3つ設定されている．なぜこの3つが設定されているかは，コメントに書いてある．&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic; color:gray;"&gt;これらのゾーンは，下の方で指定している empty zone でカバー済みだよ．関連する empty zone を削除したりしたら，これらの行をコメントしてね．&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;forward オプションは，回想の設定のためのオプション．つまり，自分で解決せずに指定した DNS サーバに解決を依頼する設定をするためのオプション．forwarders サブステートメントは，回送先の DNS サーバの IP アドレスを設定するためのステートメント．&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic; color:gray;"&gt;fowarders サブステートメントに追加した際に，次の行を有効にすることで，fowarders に指定した回送先だけに問い合わせて，自分自身からの問い合わせをしないように強制できるよ．&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic; color:gray;"&gt;上位プロバイダに DNS サーバを持っているなら，ここにその IP アドレスを入力して，下の行を有効にしてね．キャッシュによって得するし，インターネットの DNS トラフィックを減らすことができるよ．&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;query-source サブステートメントは，問い合わせで使うインタフェースとポートを指定することができる．コメントされているデフォルト設定がなぜそうなっているかについては，コメントに書いてある．&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic; color:gray;"&gt;ファイアウォールがホストとその問い合わせ先のネームサーバの間にある場合，下の query-source サブステートメントのコメントを外す必要があるかもね．以前のバージョンの BIND だといつも53番ポートから問い合わせてたんだけど，バージョン8以降はランダムな非特権 UDP ポートをデフォルトで使っちゃうからね．&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ここまでで，option ステートメントは終わり♪終わった直後に書いてあるコメントの意味は次のような感じ．&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic; color:gray;"&gt;ローカルネームサーバとして有効にしたいなら，このサーバに問い合わせられるように /etc/resolv.conf の最初にに 127.0.0.1 を入力することを忘れないようにね．/etc/rc.conf でネームサーバを有効にすることも必ずやってよね．&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;さて，やっと zone ステートメントの記述が出てきた．一番最初は，ルートネームサーバへのヒントファイルの設定だね．&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic; color:gray;"&gt;伝統的なルートヒント機能だよ．これを使うか，下の方のスレーブゾーンを使ってね．&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;で，スレーブゾーンの方法がなんでいいのかがコメントで書いてあって，その後にコメントされた設定が書いてある．&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic; color:gray;"&gt;ルートネームサーバのゾーンをスレーブすることはとってもいいことなんだよ．ひとつ目は，高速にローカルで名前解決できるようになるんだよ．ふたつ目は，見せかけのトラフィックをルートに送ることがなくなるんだよ．みっつ目は，ルートサーバが DDoS によって停止したりすることにたいして回復力があるんだよ．&lt;br /&gt;&lt;br /&gt;他方では，この方法は予期しない不全状態がサーバを無能にしないように，ヒントファイルによる方法よりも監視することが必要なんだよね．多くのクライアントに供給するネームサーバは，このアプローチによって個々のホストより有益だろうね．用心して使えばね．&lt;br /&gt;&lt;br /&gt;この方法を使うには，下のエントリのコメントを外して，上のヒントゾーンをコメントしてね．&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;さらに，zone の設定が続く．それぞれの意味を適当に書いといた．コメントの意味は次のとおり．&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic; color:gray;"&gt;ローカルに供給される下記のゾーンは，これらのゾーンへのあらゆる問い合わせが，ネットワークから出ることやルートネームサーバにとんでいくことを防いでくれるんだよ．これにはふたつ利点がある．ひとつ目は，高速にローカルで名前解決できるようになるんだよ．ふたつ目は，見せかけのトラフィックをルートに送ることがなくなるんだよ．&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;localhost は，localhost．&lt;br /&gt;127.in-addr.arpa は，localhost の逆引き．&lt;br /&gt;255.in-addr.arpa はブロードキャストアドレスの逆引き．&lt;br /&gt;0.ip6.arpa は，IPv6 の localhost の逆引き．&lt;br /&gt;0.in-addr.arpa はローカルアドレスの逆引き．&lt;br /&gt;10.in-addr.arpa〜168.192.in-addr.arpa は，プライベートネットワークの逆引き．&lt;br /&gt;254.169.in-addr.arpa は，リンクローカルアドレスの逆引き．&lt;br /&gt;2.0.192.in-addr.arpa は，TEST-NET っていう例として使う IP アドレス空間の逆引き．&lt;br /&gt;18.198.in-addr.arpa と 19.198.in-addr.arpa は，ルータのベンチマークテストにつかう IP アドレス空間（知らなかった〜ｗ）の逆引き．&lt;br /&gt;240.in-addr.arpa〜254.in-addr.arpa は，IANA が予約している古い Class E の IP アドレス空間の逆引き．&lt;br /&gt;1.ip6.arpa〜7.e.f.ip6.arpa は，IPv6 の未割り当てアドレス空間の逆引き．&lt;br /&gt;c.f.ip6.arpa と d.f.ip6.arpa は，IPv6 のユニークローカルアドレス空間の逆引き．&lt;br /&gt;8.e.f.ip6.arpa〜b.e.f.ip6.arpa は，IPv6 のリンクローカルアドレス空間の逆引き．&lt;br /&gt;c.e.f.ip6.arpa〜f.e.f.ip6.arpa は，IPv6 の廃止されたサイトローカルアドレス空間の逆引き．&lt;br /&gt;ip6.int は，廃止された IPv6 の逆引き．&lt;br /&gt;&lt;br /&gt;これに続くのは，自分でゾーンを記述するときの例となるゾーン．動的更新されるゾーンと逆引き用のスレーブゾーンの設定例が書いてある．コメントはこんなかんじ．&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic; color:gray;"&gt;注意：下に書いてある IP アドレスは，デモやドキュメントのための偽ものだから使っちゃダメだよ．&lt;br /&gt;&lt;br /&gt;スレーブゾーン設定情報の例．これはスレーブになるときに便利だと思うよ．少なくとも，君のドメインのスレーブになるゾーンをつくるときにはね．君のネットワーク管理者に，返事してくれるマスターネームサーバの IP アドレスを聞いてみたら．&lt;br /&gt;&lt;br /&gt;逆引きゾーンを含めることを忘れないようにねっ！これは，IP アドレスのバイトごとに逆順にしたものに，.INADDR.ARPA をつないだものだよ．IPv6 の場合は .IP6.ARPA だけどね．&lt;br /&gt;&lt;br /&gt;マスターゾーンの設定を始める前に，必ず DNS と BIND がどう働くか完全に理解してよね．そこにはわかり辛い落とし穴があるかもしれないんだから．スレーブゾーンの方がたいていは簡単に設定できるよ．&lt;br /&gt;&lt;br /&gt;注意：やみくもに下の例を有効にしちゃだめなんだからね．代わりになる現実の名前とアドレスを使ってよね．&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;以上．長かったなぁ．デフォルトの設定ファイルはこうなってるってことがわかっていただけたと思う．なので，FreeBSD で DNS サーバを立てるときには，このデフォルト設定ファイルを有効に使ったらいいんじゃないかな．関連ファイルとして，普通の語調で邦訳した named.conf をあげておく．&lt;br /&gt;&lt;br /&gt;関連ファイル：&lt;br /&gt;&lt;a href="http://idisk.mac.com/takuya0301/Public/FreeBSD/named_ja.conf"&gt;http://idisk.mac.com/takuya0301/Public/FreeBSD/named_ja.conf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="https://www.isc.org/files/Bv9.4ARM.pdf"&gt;BIND 9 Administrator Reference Manual&lt;/a&gt;&lt;br /&gt;Paul Albitz, Cricket Liu. 第4版 DNS &amp;amp; BIND, オライリー・ジャパン, 2002.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-8090657187139831326?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/8090657187139831326/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=8090657187139831326' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8090657187139831326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8090657187139831326'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/01/freebsd-namedconf.html' title='FreeBSD のデフォルト named.conf の邦訳'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-1681236531152783056</id><published>2009-01-16T06:19:00.003+09:00</published><updated>2009-01-16T06:29:31.227+09:00</updated><title type='text'>kinput2.macim が Leopard で動かないわけ</title><content type='html'>kinput2.macim が Mac OS X Leopard で動かないのなんでだろうって調べてたら，至極当然の理由がわかったｗ&lt;br /&gt;&lt;br /&gt;Leopard から Input Method を Carbon の Text Service Manager API から叩けなくなり，その代わりに Cocoa の Input Method Kit から叩くように変更になったからだ．kinput2.macim では Text Service Manager API を利用しているため，Leopard では動作しないというわけだ．&lt;br /&gt;&lt;br /&gt;ソースをなんとなく眺めてみたが，僕には手を出せそうにないので諦めることにした．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://homepage1.nifty.com/daemon/MachTen/sonoda/"&gt;http://homepage1.nifty.com/daemon/MachTen/sonoda/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sol.dti.ne.jp/~kikuyan/macosx/x11kotoeri.html"&gt;http://www.sol.dti.ne.jp/~kikuyan/macosx/x11kotoeri.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ult.riise.hiroshima-u.ac.jp/~nagato/hiki/hiki.cgi?MacOSX%CD%D1%A4%CEkterm%A4%C8kinput2"&gt;http://ult.riise.hiroshima-u.ac.jp/~nagato/hiki/hiki.cgi?MacOSX%CD%D1%A4%CEkterm%A4%C8kinput2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-1681236531152783056?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/1681236531152783056/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=1681236531152783056' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1681236531152783056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/1681236531152783056'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/01/kinput2macim-leopard.html' title='kinput2.macim が Leopard で動かないわけ'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-3097994238849028448</id><published>2009-01-14T09:27:00.005+09:00</published><updated>2009-01-14T09:58:53.588+09:00</updated><title type='text'>iAntiVirus をインストールしてみた</title><content type='html'>今回は，Mac OS X 用のウイルススキャンソフトウェアの &lt;a href="http://www.iantivirus.com/"&gt;iAntiVirus&lt;/a&gt; をインストールしてみたことについて．なんといっても，個人利用なら無償で利用できるということが嬉しい♪以前，&lt;a href="http://applelife100.blogspot.com/2008/02/clamxav.html#links"&gt;林檎生活100: ClamXav をインストールした．&lt;/a&gt;で，ClamXav というウイルススキャンソフトウェアを紹介したけど，今回のが断然使い勝手がいいと思う．インタフェースがシンプルだしね．&lt;br /&gt;&lt;br /&gt;インストール手順は次のとおり．&lt;br /&gt;&lt;br /&gt;1. 次のサイトにアクセス．&lt;br /&gt;&lt;a href="http://www.iantivirus.com/"&gt;http://www.iantivirus.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Start Free Download Now! と書かれた緑色のボタンをクリックしてダウンロード．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/SW04lLr2C_I/AAAAAAAAAoA/Or-vMvYj4RA/s1600-h/iAntiVirus%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 250px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/SW04lLr2C_I/AAAAAAAAAoA/Or-vMvYj4RA/s320/iAntiVirus%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5290947348673203186" /&gt;&lt;/a&gt;&lt;br /&gt;3. パッケージ形式のインストーラなので普通にインストール．&lt;br /&gt;&lt;br /&gt;使い方は，画面を見て察してくださいｗｗｗこれでもかっていうくらいシンプルなのでｗわからないなぁっていう人は，参考文献にあげた Blog を参考にしてみてください．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SW04lCwkvrI/AAAAAAAAAoI/y8I_7cLJLAw/s1600-h/iAntiVirus%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 242px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SW04lCwkvrI/AAAAAAAAAoI/y8I_7cLJLAw/s320/iAntiVirus%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5290947346277121714" /&gt;&lt;/a&gt;&lt;br /&gt;あまりにシンプルすぎて，疑問に残ったのがスケジュールで自動スキャンを Daily 指定した場合，何時に実行されるのかということ．調べてもわからなかったので，誰かわかる人教えてください(*- -)(*_ _)一応，Daily に設定して使ってみてわかったら，ここに追記する予定．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://hajimemasita.blogspot.com/2008/07/mac-iantivirus-free-edition.html"&gt;Macはじめました。: Macのセキュリティ対策アプリケーション - iAntiVirus (Free Edition)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-3097994238849028448?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/3097994238849028448/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=3097994238849028448' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/3097994238849028448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/3097994238849028448'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/01/iantivirus.html' title='iAntiVirus をインストールしてみた'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zhVOi4fKc_M/SW04lLr2C_I/AAAAAAAAAoA/Or-vMvYj4RA/s72-c/iAntiVirus%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-4555053332744070389</id><published>2009-01-13T06:44:00.002+09:00</published><updated>2009-01-13T06:55:50.581+09:00</updated><title type='text'>Windows 7 on VMware Fusion</title><content type='html'>え〜，&lt;a href="http://www.microsoft.com/windows/windows-7/"&gt;Windows 7&lt;/a&gt; をインストールしてた途中で熱が出て，後日インフルエンザだったことが発覚し，寝込んでた．そんで，その日に書く予定だった日記を書けなかったので，完全に乗り遅れてしまったのだｗｗｗ&lt;br /&gt;&lt;br /&gt;とりあえず，VMware Fusion の仮想マシンへのインストールについて．&lt;br /&gt;&lt;br /&gt;実行環境は次のとおり．&lt;br /&gt;&lt;br /&gt;MacBook (Late 2006)&lt;br /&gt;OS: Mac OS X 10.5.4&lt;br /&gt;CPU: 2 GHz Intel Core 2 Duo&lt;br /&gt;RAM: 2 GB 667 MHz DDR2 SDRAM&lt;br /&gt;&lt;br /&gt;VMware Fusion&lt;br /&gt;Version: 2.0.1&lt;br /&gt;&lt;br /&gt;仮想マシンは次のような設定にした．&lt;br /&gt;&lt;br /&gt;・ディスクイメージファイルを使用してインストール&lt;br /&gt;・簡易インストールを使用しない&lt;br /&gt;・RAM を512MBに設定&lt;br /&gt;&lt;br /&gt;RAM が512MBという点については，僕の環境によるものなのでご了承いただきたい．Windows Vista の推奨が1GBなので，1GBはメモリを割いた方がいいと思う．&lt;br /&gt;&lt;br /&gt;実際に仮想マシンを起動し，インストール開始する．インストール手順などは割愛させてもらう．ウィザードに従ってインストールするだけであるし，Vista とほとんどそのウィザードは変わっていないので．&lt;br /&gt;&lt;br /&gt;インストール時間は，30分ほど．内蔵 HDD にディスクイメージを置き，外付け HDD（FireWire 接続）に仮想マシンを作成したので，高速にインストールできたのかもしれない．&lt;br /&gt;&lt;br /&gt;使ってみた感じは，Vista よりは軽いんじゃね？ってかんじ．XP よりは重いんじゃね？ってかんじｗもうちょっとハイスペックな Mac だったら，仮想マシン上でも Windows 7 で行ける気がする．Vista に移行しないなら Windows 7 に移行することになりそうだから，それを考えると Windows 7 はいいんじゃないかなぁと思う．それに，Windows 7 が良くないと困るしｗUMPC がバカ売れしてる背景からも，Windows 7 は軽くなるか，軽いバージョンを出すでしょ♪&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-4555053332744070389?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/4555053332744070389/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=4555053332744070389' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4555053332744070389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/4555053332744070389'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/01/windows-7-on-vmware-fusion.html' title='Windows 7 on VMware Fusion'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-3838895295315816987</id><published>2009-01-09T04:56:00.001+09:00</published><updated>2009-01-09T04:56:00.543+09:00</updated><title type='text'>ドライブの書き込み能力を調べる方法</title><content type='html'>システムプロファイラを起動し，ハードウェアの中のディスク作成をクリックする．-R DL に書き込めるかなどの情報を取得できる．MacBook (Late 2006) は，-R DL に書き込めないのだorzこうやって調べる方法を最近まで知らなかったので，ここに書いとく．&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SWULFMxQNDI/AAAAAAAAAn4/PIyRCOEcn_E/s1600-h/Writing+Method%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 228px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SWULFMxQNDI/AAAAAAAAAn4/PIyRCOEcn_E/s320/Writing+Method%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5288645521371575346" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-3838895295315816987?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/3838895295315816987/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=3838895295315816987' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/3838895295315816987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/3838895295315816987'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/01/blog-post.html' title='ドライブの書き込み能力を調べる方法'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zhVOi4fKc_M/SWULFMxQNDI/AAAAAAAAAn4/PIyRCOEcn_E/s72-c/Writing+Method%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-8044880943028332841</id><published>2009-01-08T01:08:00.002+09:00</published><updated>2009-01-08T01:14:17.541+09:00</updated><title type='text'>FreeBSD でサーバ構築 #6</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2008/07/freebsd-5.html#links"&gt;林檎生活100: FreeBSD でサーバ構築 #5&lt;/a&gt;の続き．前回から半年くらい時間が空いてしまって申し訳ない．今回は DNS サーバについてやっていこう♪&lt;br /&gt;&lt;br /&gt;とは言ったものの，DNS についてはいろいろと説明することが多すぎる．仕組みをすべて説明しないにしても，独自ドメインをきちんと引けるようにするには，DNS サーバの設定にはじまり，レジストラでのドメインネームのネームサーバの設定，セカンダリ DNS の設定などがある．それらの設定だけでも大変だし，それらの設定が正しいかを確認する方法なども説明しなきゃならない．また，設定の反映に時間がかかるので，正しいか間違っているかの判断をするのに時間がかかるのだ．（レジストラでの設定の反映には，数時間から数日かかるといわれている．また，セカンダリ DNS として無料のサービスを使うとなると，そのセカンダリ DNS へレコードが転送されるまでの時間もかかる．）&lt;br /&gt;&lt;br /&gt;ということなので，今回は DNS サーバを起動することだけに焦点をしぼってやって行く．つまり，ゾーン（ドメイン名空間の一部についての完全な情報）を持たない DNS サーバを構築することになる．この DNS サーバによって名前解決を行うことができるようになる．さらに，これに独自ドメインのゾーンを追加することで，独自ドメインを引けるようになるので，そのための準備にもなる．&lt;br /&gt;&lt;br /&gt;&lt;a href="http://applelife100.blogspot.com/2008/08/dns.html"&gt;林檎生活100: DNS の仕組み&lt;/a&gt;の図の真ん中のネームサーバが，今回構築する DNS サーバに相当する．実際に，図のような名前解決を行うサーバとして稼働するはずである．&lt;br /&gt;&lt;br /&gt;さて，前置きが長くなったが，さっそくその方法を書いていこう．&lt;br /&gt;&lt;br /&gt;1. rc.conf に次の行を追加．これで，再起動すると自動的に named (BIND) が起動する．&lt;br /&gt;&lt;pre&gt;named_enable="YES"&lt;/pre&gt;&lt;br /&gt;2. 再起動しない場合は，次のコマンドを打つことで，named (BIND) が起動する．&lt;br /&gt;&lt;pre&gt;# /etc/rc.d/named start&lt;/pre&gt;&lt;br /&gt;これだけｗFreeBSD の場合は，設定ファイルがある程度記述されているので，名前解決を行うサーバとして稼働させるだけなら，これだけでいい．あまりに簡単すぎて，きちんと動作しているか不安なので動作チェックをしてみよう．nslookup というコマンドを用いた動作チェックの方法は次のとおり．&lt;br /&gt;&lt;br /&gt;1. 0.0.0.0（ゼロアドレスといい「自分のホスト」の意味になる．）の DNS サーバに google.com の名前解決をさせ，名前が解決できていることを確認する．&lt;br /&gt;&lt;pre&gt;# nslookup google.com 0.0.0.0&lt;/pre&gt;&lt;br /&gt;2. named (BIND) を停止する．&lt;br /&gt;&lt;pre&gt;# /etc/rc.d/named stop&lt;/pre&gt;&lt;br /&gt;3. 0.0.0.0の DNS サーバに google.com の名前解決をさせ，名前が解決できていないことを確認する．&lt;br /&gt;&lt;pre&gt;# nslookup google.com 0.0.0.0&lt;/pre&gt;&lt;br /&gt;というかんじだ．次回は，独自ドメインがどのような仕組みで引かれるようになるかについて説明する．また，機会があれば，FreeBSD のデフォルトの設定ファイルの解説をしようかと思う．設定ファイルの説明をするためには，Empty Zone についての説明もしないとなぁ．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-8044880943028332841?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/8044880943028332841/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=8044880943028332841' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8044880943028332841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8044880943028332841'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2009/01/freebsd-6.html' title='FreeBSD でサーバ構築 #6'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-6012635791970011765</id><published>2008-12-26T15:23:00.008+09:00</published><updated>2009-01-13T07:07:26.961+09:00</updated><title type='text'>Mac OS X でシリアルコンソール #1</title><content type='html'>Mac OS X でシリアルコンソールを使おう♪&lt;a href="http://applelife100.blogspot.com/2008/12/freebsd-usb-2.html"&gt;林檎生活100: FreeBSD インストール用 USB メモリの作成 #2&lt;/a&gt;は，この布石だｗOS をシリアルコンソールからインストールというのはなかなかないかもしれないけど，Cisco のルータの設定とかはシリアルコンソールからだよね．まっ，そういうときに役に立つんじゃないかな．&lt;br /&gt;&lt;br /&gt;さて，Mac OS X でシリアル接続をするわけなんだけど，最近の Mac にはシリアルポート (RS-232C) がないっ！どの機種のどこにもないっ！ということで，物理的にポートを増やさなきゃならないので，今回は&lt;a href="http://akizukidenshi.com/"&gt;秋月電子通商&lt;/a&gt;の&lt;a href="http://akizukidenshi.com/catalog/items2.php?p=1&amp;q=FT232RL"&gt;FT232RL USB-RS232C変換モジュール&lt;/a&gt;をつかうことにする．代引き手数料込みで¥2,200ということでとってもお買い得♪&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SVR-QOOuXWI/AAAAAAAAAnQ/TcQqtJd0GeQ/s1600-h/Serial+Console%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 201px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SVR-QOOuXWI/AAAAAAAAAnQ/TcQqtJd0GeQ/s320/Serial+Console%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5283987079975296354" /&gt;&lt;/a&gt;&lt;br /&gt;さて，こいつが手に入ったら，こいつを USB ポートに接続して終わり♪ってわけじゃないんだよなぁ．Mac OS X にはこいつのドライバが入ってないので，手動でインストールしなきゃなんない．&lt;br /&gt;&lt;br /&gt;ということで，こっからドライバインストールの手順．&lt;br /&gt;&lt;br /&gt;1. FTDI Chip の Web サイトにアクセス．&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ftdichip.com/"&gt;FTDI Chip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Driver をクリック．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SVSAyP9QOsI/AAAAAAAAAnw/HMt48cAQtsw/s1600-h/Serial+Console%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 212px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SVSAyP9QOsI/AAAAAAAAAnw/HMt48cAQtsw/s320/Serial+Console%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5283989863577696962" /&gt;&lt;/a&gt;&lt;br /&gt;3. VCPをクリック．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVSAyEoxtgI/AAAAAAAAAno/uT81Jl4n4KE/s1600-h/Serial+Console%5B3%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 212px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVSAyEoxtgI/AAAAAAAAAno/uT81Jl4n4KE/s320/Serial+Console%5B3%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5283989860539020802" /&gt;&lt;/a&gt;&lt;br /&gt;4. 下の方にスクロールし，Mac OS X 用のドライバをダウンロード．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SVSAyJJMEZI/AAAAAAAAAng/19KZuZ1JxsQ/s1600-h/Serial+Console%5B4%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 212px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SVSAyJJMEZI/AAAAAAAAAng/19KZuZ1JxsQ/s320/Serial+Console%5B4%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5283989861748707730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/SVSAx9jItkI/AAAAAAAAAnY/gNjug8RD2gc/s1600-h/Serial+Console%5B5%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 212px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/SVSAx9jItkI/AAAAAAAAAnY/gNjug8RD2gc/s320/Serial+Console%5B5%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5283989858636314178" /&gt;&lt;/a&gt;&lt;br /&gt;5. ドライバをインストール．普通のアプリケーションと変わらないので，詳細は省略．&lt;br /&gt;&lt;br /&gt;6. 再起動．&lt;br /&gt;&lt;br /&gt;7. FT232RL USB-RS232C変換モジュールを接続．&lt;br /&gt;&lt;br /&gt;8. ターミナルを起動して，次のコマンドを打って，/dev/tty.usbserial-???????? が増えていることを確認する．（?の部分はシリアルナンバーが入るので，ハードウェアごとに異なる．）&lt;br /&gt;&lt;pre&gt;$ ls /dev/tty.*&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;以上でハードウェアの準備は完了♪次回は，Mac OS X でシリアルコンソールを使う方法について．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-6012635791970011765?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/6012635791970011765/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=6012635791970011765' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6012635791970011765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/6012635791970011765'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2008/12/mac-os-x-1.html' title='Mac OS X でシリアルコンソール #1'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zhVOi4fKc_M/SVR-QOOuXWI/AAAAAAAAAnQ/TcQqtJd0GeQ/s72-c/Serial+Console%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-2450482138936964602</id><published>2008-12-25T18:47:00.001+09:00</published><updated>2009-01-13T20:46:48.818+09:00</updated><title type='text'>FreeBSD インストール用 USB メモリの作成 #2</title><content type='html'>&lt;a href="http://applelife100.blogspot.com/2008/12/freebsd-usb-1.html#links"&gt;林檎生活100: FreeBSD インストール用 USB メモリの作成 #1&lt;/a&gt; の続き？作成した FreeBSD インストール用の USB メモリをちょっと改造して，シリアルコンソールからインストールできるようにしようっていうことなんだけどねｗ&lt;br /&gt;&lt;br /&gt;ということで，その手順．&lt;br /&gt;&lt;br /&gt;1. 作成した USB メモリ (/dev/da?s1a) を FreeBSD 上でマウントする．&lt;br /&gt;&lt;pre&gt;# mount /dev/da?s1a /mnt&lt;/pre&gt;&lt;br /&gt;2. loader.conf のあるディレクトリに移動する．&lt;br /&gt;&lt;pre&gt;# cd /mnt/boot&lt;/pre&gt;&lt;br /&gt;3. loader.conf を編集（vi もしくは ee を使ってね．）し，console から始まる行を追加する．&lt;br /&gt;&lt;pre&gt;# vi loader.conf&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;console=comconsole&lt;/pre&gt;&lt;br /&gt;4. USB メモリをアンマウントする．&lt;br /&gt;&lt;pre&gt;# umount /mnt&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;たったこれだけｗ&lt;br /&gt;&lt;br /&gt;TeraTerm で確認をとった．Mac OS X からのシリアル接続はまた別の機会に♪&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.freebsd.org/doc/ja/books/handbook/serialconsole-setup.html"&gt;FreeBSD ハンドブック: 18.6. シリアルコンソールの設定&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-2450482138936964602?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/2450482138936964602/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=2450482138936964602' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2450482138936964602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2450482138936964602'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2008/12/freebsd-usb-2.html' title='FreeBSD インストール用 USB メモリの作成 #2'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-5178230347570839705</id><published>2008-12-24T17:15:00.004+09:00</published><updated>2009-01-18T22:14:49.089+09:00</updated><title type='text'>FreeBSD インストール用 USB メモリの作成 #1</title><content type='html'>FreeBSD を USB メモリからインストールするために，インストール用の USB メモリを作成する．今回は，FreeBSD 上で作業するので，FreeBSD がインストールされたマシンを用意してほしい．&lt;br /&gt;&lt;br /&gt;僕は，VMware Fusion 上の FreeBSD 7.0-RELEASE で作業した．使用した USB メモリは，ELECOM の MF-BU204GWH．VMware Fusion の設定から USB デバイスを選択し，USB メモリに対応するやつ（僕が使った USB メモリの場合，Transcend series となっていた．）を有効にする．そうすると，FreeBSD に認識され，画面にメッセージが表示される．&lt;span style="font-weight:bold;"&gt;このとき表示される da?（? の部分は数字．）をきちんとメモしておこう．&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;さて，ここからが本題．FreeBSD 上でやっていこう．作業手順は次のとおり．&lt;br /&gt;&lt;br /&gt;1. MBR（この説明をすると長いので，自分で調べてほしい．また，FreeBSD のブートは面白いので，そっちについてもぜひ♪）を書き込み (-B)，USB メモリ全体をひとつのスライス（物理パーティション）として確保する (-I)．冗長モードはいわずもがな (-v)．これで，/dev/da?s1 というスライスができているはず．&lt;br /&gt;&lt;pre&gt;# fdisk -BIv /dev/da?&lt;/pre&gt;&lt;br /&gt;2. ラベル（論理パーティション）をスライス (da?s1) 上に作成する．ラベルを書き込み (-w)，ブートストラップ（FreeBSD のブートについて調べれば出てくるよ．）を書き込む (-B)．これで，/dev/da?s1a というラベルができているはず．&lt;br /&gt;&lt;pre&gt;# bsdlabel -w -B /dev/da?s1&lt;/pre&gt;&lt;br /&gt;3. da?s1a というラベルにファイルシステムを作成する．&lt;br /&gt;&lt;pre&gt;# newfs /dev/da?s1a&lt;/pre&gt;&lt;br /&gt;4. FreeBSD のインストール用の ISO イメージをダウンロードする．&lt;br /&gt;&lt;pre&gt;# ftp ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.0/7.0-RELEASE-i386-bootonly.iso&lt;/pre&gt;&lt;br /&gt;5. ISO イメージをマウントする．mdconfig で /dev/md0 を作成する．md0 (-u) に，ISO ファイル (-t vnode -f) をアタッチ (-a) する．そして，/dev/md0 をタイプを指定して (-t cd9660) マウント．&lt;br /&gt;&lt;pre&gt;# mdconfig -a -t vnode -f 7.0-RELEASE-i386-bootonly.iso -u 0&lt;br /&gt;# mount -t cd9660 /dev/md0 /cdrom&lt;/pre&gt;&lt;br /&gt;6. USB メモリ (/dev/da?s1a) をマウントする．&lt;br /&gt;&lt;pre&gt;# mount /dev/da?s1a /mnt&lt;/pre&gt;&lt;br /&gt;7. ISO イメージの中身をコピーする．ディレクトリを再帰的に (-R)，パーミッションをできる限り保持したまま (-p) コピーする．冗長モードはいわずもがな (-v)ｗ&lt;br /&gt;&lt;pre&gt;# cp -Rpv /cdrom/* /mnt&lt;/pre&gt;&lt;br /&gt;8. ISO イメージと USB メモリをアンマウントし，ISO イメージをデタッチ (-d) する．&lt;br /&gt;&lt;pre&gt;# umount /mnt&lt;br /&gt;# umount /cdrom&lt;br /&gt;# mdconfig -d -u 0&lt;/pre&gt;&lt;br /&gt;こんな感じで完成♪&lt;br /&gt;&lt;br /&gt;ためしに，DNRH-001 で起動してみた．Load Optimized Defaults を実行した状態から，Advanced BIOS Features の First Boot Device をUSB-HDD にすることで USB メモリから起動できたので，おそらくほかの PC でもいけると思う．&lt;br /&gt;&lt;br /&gt;ほかの情報を見ると，MBR とスライスのブートセクタをゼロクリアしているものがあるが，これは必要なのだろうか？妥当性が不明だったので，今回はゼロクリアしないことにしている．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://www.kishiro.com/FreeBSD/install_from_usb_memory.html"&gt;kishiro.com: USBメモリからFreeBSDをインストールする&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;追記（2009年1月18日）：&lt;br /&gt;disc1 をコピーする方法から，bootonly をコピーする方法に変更．この方が小さくて済む．ネットワークインストールではなく，USB メモリをメディアとしてインストールするための方法は，&lt;a href="http://applelife100.blogspot.com/2009/01/freebsd-usb-3.html#links"&gt;林檎生活100: FreeBSD インストール用 USB メモリの作成 #3&lt;/a&gt;を参照のこと．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-5178230347570839705?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/5178230347570839705/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=5178230347570839705' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5178230347570839705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5178230347570839705'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2008/12/freebsd-usb-1.html' title='FreeBSD インストール用 USB メモリの作成 #1'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-8262044480944186023</id><published>2008-12-23T18:22:00.003+09:00</published><updated>2008-12-23T18:38:01.121+09:00</updated><title type='text'>DNRH-001 #1 UPS 除去 &amp; BIOS アップデート</title><content type='html'>ざっと，写真とスクリーンショット．&lt;br /&gt;&lt;br /&gt;1. 初期状態&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCuVW5Y-fI/AAAAAAAAAdo/IwFoDDwn2cc/s1600-h/DNRH-001%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCuVW5Y-fI/AAAAAAAAAdo/IwFoDDwn2cc/s320/DNRH-001%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5282914044852369906" /&gt;&lt;/a&gt;&lt;br /&gt;2. UPS 除去（UPSの状態をモニタしているケーブルも除去）&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SVCuVqWqg9I/AAAAAAAAAdw/Ca_6lQbzZnY/s1600-h/DNRH-001%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SVCuVqWqg9I/AAAAAAAAAdw/Ca_6lQbzZnY/s320/DNRH-001%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5282914050075427794" /&gt;&lt;/a&gt;&lt;br /&gt;3. BIOS は，SST だったので，VIA の BIOS Flash Utility for Windows XP でアップデート（SST じゃない場合は，参考文献参照のこと．）&lt;br /&gt;&lt;a href="http://www.via.com.tw/en/products/mainboards/downloads.jsp?motherboard_id=241"&gt;VIA Technologies, Inc.: VIA EPIA PD-Series Mini-ITX Board - Downloads&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCuVzW2ScI/AAAAAAAAAd4/NpbgEeSECjE/s1600-h/DNRH-001%5B3%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCuVzW2ScI/AAAAAAAAAd4/NpbgEeSECjE/s320/DNRH-001%5B3%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5282914052492118466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCuVwXCXzI/AAAAAAAAAeA/HPsF_n6ZGxY/s1600-h/DNRH-001%5B4%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 228px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCuVwXCXzI/AAAAAAAAAeA/HPsF_n6ZGxY/s320/DNRH-001%5B4%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5282914051687604018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/SVCuWIwfDHI/AAAAAAAAAeI/xZPEWxOq_20/s1600-h/DNRH-001%5B5%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 228px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/SVCuWIwfDHI/AAAAAAAAAeI/xZPEWxOq_20/s320/DNRH-001%5B5%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5282914058236791922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCujIPhjQI/AAAAAAAAAeQ/Fyqqj99_Y1E/s1600-h/DNRH-001%5B6%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 228px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCujIPhjQI/AAAAAAAAAeQ/Fyqqj99_Y1E/s320/DNRH-001%5B6%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5282914281436843266" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SVCujb2txTI/AAAAAAAAAeY/xstJS6HuLgA/s1600-h/DNRH-001%5B7%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 228px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SVCujb2txTI/AAAAAAAAAeY/xstJS6HuLgA/s320/DNRH-001%5B7%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5282914286701495602" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SVCujyxxrpI/AAAAAAAAAeg/hv0ic-dNVMQ/s1600-h/DNRH-001%5B8%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 228px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SVCujyxxrpI/AAAAAAAAAeg/hv0ic-dNVMQ/s320/DNRH-001%5B8%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5282914292854795922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCuj9JCgRI/AAAAAAAAAeo/ajgrMo2RvcY/s1600-h/DNRH-001%5B9%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 228px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCuj9JCgRI/AAAAAAAAAeo/ajgrMo2RvcY/s320/DNRH-001%5B9%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5282914295636721938" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SVCujwdlhHI/AAAAAAAAAew/4ZTMydbWUA4/s1600-h/DNRH-001%5B10%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 228px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SVCujwdlhHI/AAAAAAAAAew/4ZTMydbWUA4/s320/DNRH-001%5B10%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5282914292233241714" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCvn66OirI/AAAAAAAAAfI/9RAFMqnvA98/s1600-h/DNRH-001%5B11%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCvn66OirI/AAAAAAAAAfI/9RAFMqnvA98/s320/DNRH-001%5B11%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5282915463268829874" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCvnsnLUZI/AAAAAAAAAfA/0oXnykWfWZ0/s1600-h/DNRH-001%5B12%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCvnsnLUZI/AAAAAAAAAfA/0oXnykWfWZ0/s320/DNRH-001%5B12%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5282915459430830482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCvnOUxsQI/AAAAAAAAAe4/pLgfJ2V9xgg/s1600-h/DNRH-001%5B13%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 106px;" src="http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCvnOUxsQI/AAAAAAAAAe4/pLgfJ2V9xgg/s320/DNRH-001%5B13%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5282915451300589826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ちなみに BIOS は，Load Optimized Defaults の状態にしといた．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://pc.usy.jp/wiki/index.php?DNRH-001"&gt;usyWiki: DNRH-001&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-8262044480944186023?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/8262044480944186023/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=8262044480944186023' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8262044480944186023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/8262044480944186023'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2008/12/dnrh-001-1-ups-bios.html' title='DNRH-001 #1 UPS 除去 &amp; BIOS アップデート'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zhVOi4fKc_M/SVCuVW5Y-fI/AAAAAAAAAdo/IwFoDDwn2cc/s72-c/DNRH-001%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-7720499820572886210</id><published>2008-12-01T01:33:00.013+09:00</published><updated>2009-04-05T05:07:48.921+09:00</updated><title type='text'>Zend Framework のための PHP 入門 #1</title><content type='html'>ということで，PHP ネタをやるよ〜．方向性は，Zend Framework の使い方を理解するために必要な PHP の文法とプログラミングテクニックを中心にやってく．すぐに実用できる内容ではないのが申し訳ない．PHP をすぐに実用できるレベルで教えるってのは，難しいことだと思う．なんというか，PHP は簡単ですぐに実用できるってのが世の中の流れだけど，僕はそう思えないんだよね．メールフォームとかアンケートフォームとかを作るだけなら簡単だけど，ログインしてなにかするようなものになってくると，それっぽいものはできてもセキュリティがしっかりしているものはできない．僕がつくってもそうなってしまうのだｗ&lt;br /&gt;&lt;br /&gt;ということで，フレームワークとして Zend Framework を使うことを前提にして，それを扱う上で必要な PHP の文法を理解して，プログラミングの能力を高めることを中心にする．はっきり言って，つまらないと思うｗｗｗだけど，これを読み終わったら Zend Framework を使う下準備が整ったというレベルに達しているように頑張るので，ぜひ読んでみてくれぃ．&lt;br /&gt;&lt;br /&gt;前提とする知識として，HTML を読み書きでき，HTML ファイルをサーバにアップロードして公開できること．開発環境として，MAMP（&lt;a href="http://applelife100.blogspot.com/2008/11/mamp.html#links"&gt;林檎生活100: MAMP のインストール方法&lt;/a&gt;を参照．）を使用する．ほかの環境で勉強する際は，前述のエントリの php.ini の設定を読んで，その環境を設定すること．&lt;br /&gt;&lt;br /&gt;さて，今回の内容は，PHP が何してるものかということについて．残念ながら PHP の表面を知っているだけでは，PHP を扱うのは難しい．トラブルが起きたときに何が問題で，何が問題でないかという切り分けができないからね．ということで，PHP がどんな風に動いているのかについて書いていく．&lt;br /&gt;&lt;br /&gt;まずは，PHP が動いてない HTTP サーバ (Apache) の動きを図に表すと，こんなかんじになる．（正確に把握することではなくて，こういうふうに処理されているんだという感覚を掴んでほしい．）&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/STLXOKPVfwI/AAAAAAAAAdA/J9Ia-j86WBE/s1600-h/php%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 254px; height: 200px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/STLXOKPVfwI/AAAAAAAAAdA/J9Ia-j86WBE/s320/php%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5274514751871090434" /&gt;&lt;/a&gt;&lt;br /&gt;1. リクエストを送信&lt;br /&gt;2. HTML ファイルを読み込む&lt;br /&gt;3. HTML ファイルの内容を送信&lt;br /&gt;&lt;br /&gt;例えば，次のような HTML を書いた sample01.html というファイルを MAMP の /アプリケーション/MAMP/htdocs/sample01.html に置いたとする．（通常なら HTTP サーバにアップロードすることになる．）&lt;br /&gt;&lt;pre&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"&lt;br /&gt;    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"&gt;&lt;br /&gt;&amp;lt;head&gt;&lt;br /&gt;&amp;lt;title&gt;Zend Framework のための PHP 入門#1 (sample01.html)&amp;lt;/title&gt;&lt;br /&gt;&amp;lt;/head&gt;&lt;br /&gt;&amp;lt;body&gt;&lt;br /&gt;&amp;lt;h1&gt;これは，sample01.html です．&amp;lt;/h1&gt;&lt;br /&gt;&amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;/pre&gt;&lt;br /&gt;そして，MAMP を起動して，ブラウザから &lt;a href="http://localhost:8888/sample01.html"&gt;http://localhost:8888/sample01.html&lt;/a&gt; にアクセスすると，「これは，sample01.html です．」と表示される．&lt;br /&gt;&lt;br /&gt;この動作は，ユーザが localhost にある HTTP サーバに対して，(1.) sample01.html がほしいということをリクエストし，(2.) HTTP サーバが sample01.html を読み込み，(3.) ユーザに sample01.html の内容を送信していることになる．&lt;br /&gt;&lt;br /&gt;では，PHP が入るとどうなるのか．PHP が動いている HTTP サーバの動きを図に表すと，こんなかんじになる．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/STLjpARoDII/AAAAAAAAAdg/oDlbJjQdfSo/s1600-h/PHP%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 294px; height: 254px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/STLjpARoDII/AAAAAAAAAdg/oDlbJjQdfSo/s320/PHP%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5274528407192341634" /&gt;&lt;/a&gt;&lt;br /&gt;1. リクエストを送信&lt;br /&gt;2. PHP ファイルを読み込む&lt;br /&gt;3. PHP ファイルを渡す&lt;br /&gt;4. 処理した結果を返す&lt;br /&gt;5. 返された結果を送信&lt;br /&gt;&lt;br /&gt;これについても例を示そう．例えば，次のような sample02.php というファイルを前述の通りのフォルダに置く．&lt;br /&gt;&lt;pre&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"&lt;br /&gt;    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"&gt;&lt;br /&gt;&amp;lt;head&gt;&lt;br /&gt;&amp;lt;title&gt;Zend Framework のための PHP 入門#1 (sample02.php)&amp;lt;/title&gt;&lt;br /&gt;&amp;lt;/head&gt;&lt;br /&gt;&amp;lt;body&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;    echo "&amp;lt;h1&gt;これは，sample02.php です．&amp;lt;/h1&gt;\n";&lt;br /&gt;?&gt;&lt;br /&gt;&amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;/pre&gt;&lt;br /&gt;そして，&lt;a href="http://localhost:8888/sample01.html"&gt;http://localhost:8888/sample02.php&lt;/a&gt; にアクセスすると，「これは，sample02.php です．」と表示される．&lt;br /&gt;&lt;br /&gt;この動作は，ユーザが localhost にある HTTP サーバに対して，(1.) sample02.php がほしいということをリクエストし，(2.) HTTP サーバが sample02.php を読み込み，(3.) sample02.php を PHP モジュールに渡し，PHP モジュールがファイルのスクリプト部分を実行することで，echo で出力された&amp;lt;h1&gt;これは〜の文字列にスクリプトが置き換えられ，(4.) その結果を HTTP サーバに戻し，(5.) HTTP サーバがユーザにその結果を送信していることになる．&lt;br /&gt;&lt;br /&gt;単純に言えば，sample02.php の中の PHP スクリプト部分を実行して，出力された結果を置き換えたテキストデータを，ユーザに送信していることになる．PHP のやっていることの本質は，基本的にこれだけなのだ．sample02.php を sample01.html に書き換えるような作業と言っても差し支えない．それが，リクエストがあるたびに毎回行われている．&lt;span style="font-weight:bold;"&gt;この書き換えられる感覚を忘れないでほしい．&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;さて，これだけでは毎回同じ結果になるので，まったく意味がない．実際には，状態（これは，クライアントから送信されたデータだったり，サーバのファイルだったり，サーバの時刻だったり，クッキーだったり，データベースだったりする．）によって，振る舞い（スクリプトの出力や状態の変更．）が変わることで，Web アプリケーションが実現できている．それを図に表すと次のようになる．&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/STLi_AmobwI/AAAAAAAAAdY/uN5xMcFmarI/s1600-h/PHP%5B3%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 308px; height: 320px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/STLi_AmobwI/AAAAAAAAAdY/uN5xMcFmarI/s320/PHP%5B3%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5274527685725941506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;この場合の例は，次のようになる．次のようなコードを記述した sample03.php というファイルを前述の通りのフォルダに置く．ソースの内容を気にする必要はまったくないからね．&lt;br /&gt;&lt;pre&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"&lt;br /&gt;    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"&gt;&lt;br /&gt;&amp;lt;head&gt;&lt;br /&gt;&amp;lt;title&gt;Zend Framework のための PHP 入門#1 (sample03.php)&amp;lt;/title&gt;&lt;br /&gt;&amp;lt;/head&gt;&lt;br /&gt;&amp;lt;body&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;    echo "&amp;lt;h1&gt;これは，{$_GET['filename']} です．&amp;lt;/h1&gt;\n";&lt;br /&gt;?&gt;&lt;br /&gt;&amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;/pre&gt;&lt;br /&gt;そして，&lt;a href="http://localhost:8888/sample03.php?filename=sample03.php"&gt;http://localhost:8888/sample03.php?filename=sample03.php&lt;/a&gt; にアクセスしてみよう．ここで注意すべきなのは，GET パラメータが付加されていることだ．filename が sample03.php ですよというパラメータが付加されている．&lt;br /&gt;&lt;br /&gt;さらに，&lt;a href="http://localhost:8888/sample03.php?filename=abcdef"&gt;http://localhost:8888/sample03.php?filename=abcdef&lt;/a&gt;を実行してみよう．そうすると，「これは，abcdef です．」と表示されるはずだ．つまり，ユーザの入力によって動作が変わっていることがわかると思う．今回は，入力内容をそのまま表示しているだけだが，この入力内容に応じて様々な動作ができるようになる．この入力自体も HTML のフォームからの入力であったり，Flash からの入力であったりといろいろ考えられる．ただ，あくまで PHP の本質は，図に表したものだと言うことを忘れないでほしい．&lt;br /&gt;&lt;br /&gt;ついでに，&lt;a href="http://localhost:8888/sample03.php"&gt;http://localhost:8888/sample03.php&lt;/a&gt;でアクセスしてみてほしい．エラーメッセージ「Notice: Undefined index: filename in /Applications/MAMP/htdocs/sample03.php on line 10」とともに「これは， です．」と表示されると思う．（エラーメッセージが表示されない場合は，php.ini の設定がエラーメッセージを表示しないようになってるためだと思う．）これは，パラメータがないのに内部でそのパラメータを参照しているために表示されるエラーメッセージだ．（Notice になっているので，正確には通知メッセージかな．）こういう状況でも，エラーが出ないように，エラー処理を中でやらなければならないんだけど，今回は省略している．こういうメッセージが出るようなプログラムを組んでしまったときは，無視せずにエラーメッセージがでないようにプログラムを修正しようねｗ&lt;br /&gt;&lt;br /&gt;こんなかんじで，1回目の内容は終わり．わかっていただけただろうか？1番言いたいのは，PHP のやっていることは図に表した通り単純で，ほかの周辺技術と分けて考えてほしいということ．それさえ掴めれば，必要な周辺技術の勉強をちょこっとするだけで，PHP とシームレスに連携できる．なぜなら，どんな周辺技術にしろ，そこから取得したデータを PHP で処理することは変わらないから．データを取得したあとの処理方法って，PHP をきちんと理解していればどうにかなるし，PHP を理解していなければどうにもならないのだ．&lt;br /&gt;&lt;br /&gt;ということで，次回からは PHP の文法まわりをやっていくのでよろしく．おそらく，次回からはもっとつまらなくなると思うｗｗｗ&lt;br /&gt;&lt;br /&gt;追記（2008年12月7日）：&lt;br /&gt;$_GET['filename'] のアンダーバーが抜けていたのを修正．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-7720499820572886210?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/7720499820572886210/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=7720499820572886210' title='4 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7720499820572886210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/7720499820572886210'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2008/12/zend-framework-php-1.html' title='Zend Framework のための PHP 入門 #1'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zhVOi4fKc_M/STLXOKPVfwI/AAAAAAAAAdA/J9Ia-j86WBE/s72-c/php%5B1%5D.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-2140721700822319587</id><published>2008-11-30T02:21:00.004+09:00</published><updated>2008-11-30T03:22:49.275+09:00</updated><title type='text'>Java Festa 2008 に行ってきた♪</title><content type='html'>&lt;a href="http://www.javafesta.jp/"&gt;Java Festa 2008&lt;/a&gt; に行ってきた．寝坊して，セッションをふたつしか聞けなかったという，まじでダメ人間だったけどな．本当に，予約したのにこんなんで本当に申し訳ない．&lt;br /&gt;&lt;br /&gt;さて，聞けたセッションについて，簡単に感想．&lt;br /&gt;&lt;br /&gt;○「今が旬」GlassFish を召し上がれ&lt;br /&gt;&lt;br /&gt;GlassFish ネタだった．名前は知ってるけど，触ったことないや〜ってかんじだったんで，興味津々で聞いた．実際，プレゼンも面白かったし，ねこび〜んの話とか織り交ぜてて，ナイスなプレゼンだった．&lt;br /&gt;&lt;br /&gt;内容は，GlassFish を導入する利点とかがメインかな．インストールやら管理やらが簡単そうで良さげだった．といっても，全然 Java EE わかんないんだよねｗｗｗ&lt;a href="http://directwebremoting.org/"&gt;DWR&lt;/a&gt;っていうがあることが知れたのが，発見だったｗ本筋と関係ないｗｗｗJava EE のお勉強をそのうちしたいなと思っているので，機会があったら使ってみようと思う．&lt;br /&gt;&lt;br /&gt;○Cloud Computing - Google App Engines&lt;br /&gt;&lt;a href="http://code.google.com/intl/ja/appengine/"&gt;Google App Engines&lt;/a&gt; これは技術として，めちゃくちゃ面白いと思う．Google のインフラを使った（なんと，BigTable が使えるのだ！）Web アプリケーションが作れる．ハードウェアやらなんやらのインフラは完全に Google まかせで，準備された API を使って開発するだけってかんじ．現状の開発言語は Python．開発は，ローカルで開発して，専用のスクリプトでアップロードってかんじみたいだった．&lt;br /&gt;&lt;br /&gt;質問タイムに，質問してくれた人には Google のTシャツあげるよって行ったから，Tシャツ欲しくてダメダメな質問を投げたｗプレゼンしてる方が，&lt;a href="http://code.google.com/appengine/downloads.html"&gt;Mac OS X 用のランチャー&lt;/a&gt;を使ってたので，「コマンドラインからのアップロードとかできないんですか？」って質問した．正直，できないってことが考えられないんだけどね．あの質問をした人がこの Blog を書いてる人間なのでよろしく．&lt;br /&gt;&lt;br /&gt;で，貰ったよ〜．こんなTシャツ♪&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/STGE7yG3ZGI/AAAAAAAAAcw/mQx8KElLmZs/s1600-h/Google+T-shirt%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/STGE7yG3ZGI/AAAAAAAAAcw/mQx8KElLmZs/s320/Google+T-shirt%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5274142801225278562" /&gt;&lt;/a&gt;&lt;br /&gt;サイズのとこに，150って書いてあって，すっげぇ小さいｗとりあえず，部屋着になりそうだｗ&lt;br /&gt;&lt;br /&gt;で，ゲットしたぜって顔で帰宅途中にもうちょっとましな質問を思いついてしまったorz気になるのが「現状では，プリミティブな API（といってもバックグラウンドで動いているインフラからしたら，十分に抽象化されているけどね．）だけを提供しているが，今後より開発が簡単になるようなフレームワークを Google として提供する予定はあるのか？」ということ．まあ，おそらくそれは，Google はそこまでしないと思うけどね．プレゼンの中で，Python のライブラリのほとんどをそこで使えるよって行っていたので，いまある財産を有効に使って，ユーザグループでの活性化を期待してるんだと思った．&lt;br /&gt;&lt;br /&gt;有意義だったなぁ．Python の勉強もかねて，遊んでみるのもいいかもね．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-2140721700822319587?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/2140721700822319587/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=2140721700822319587' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2140721700822319587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/2140721700822319587'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2008/11/java-festa-2008.html' title='Java Festa 2008 に行ってきた♪'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zhVOi4fKc_M/STGE7yG3ZGI/AAAAAAAAAcw/mQx8KElLmZs/s72-c/Google+T-shirt%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-9131892512560578943</id><published>2008-11-23T00:38:00.010+09:00</published><updated>2008-11-23T01:31:00.155+09:00</updated><title type='text'>MAMP のインストール方法</title><content type='html'>&lt;a href="http://www.mamp.info/en/"&gt;MAMP&lt;/a&gt; について．PHP の言語ネタをやろっかなぁとか思ってるので，その環境づくりのためにね♪&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://www.mamp.info/en/"&gt;MAMP&lt;/a&gt; にアクセス．&lt;br /&gt;2. Download Now をクリック．&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SSgrijVWYoI/AAAAAAAAAcI/_oSY5497FZc/s1600-h/MAMP%5B1%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 247px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SSgrijVWYoI/AAAAAAAAAcI/_oSY5497FZc/s320/MAMP%5B1%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5271511236437500546" /&gt;&lt;/a&gt;&lt;br /&gt;3. 左側の MAMP のアイコンをクリックしてダウンロード．&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zhVOi4fKc_M/SSgri7iDhtI/AAAAAAAAAcQ/ODGf35zA86M/s1600-h/MAMP%5B2%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 247px;" src="http://1.bp.blogspot.com/_zhVOi4fKc_M/SSgri7iDhtI/AAAAAAAAAcQ/ODGf35zA86M/s320/MAMP%5B2%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5271511242933241554" /&gt;&lt;/a&gt;&lt;br /&gt;4. ダウンロードした MAMP_1.7.2.dmg をダブルクリック．&lt;br /&gt;5. Agree をクリック．&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zhVOi4fKc_M/SSgrjSAmoZI/AAAAAAAAAcY/lwzP67qAnYM/s1600-h/MAMP%5B3%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://2.bp.blogspot.com/_zhVOi4fKc_M/SSgrjSAmoZI/AAAAAAAAAcY/lwzP67qAnYM/s320/MAMP%5B3%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5271511248966951314" /&gt;&lt;/a&gt;&lt;br /&gt;6. MAMP フォルダをアプリケーションフォルダにドラッグアンドドロップしてコピー．&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SSgrjpQCiNI/AAAAAAAAAcg/xmsYjF2nE5k/s1600-h/MAMP%5B4%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 232px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SSgrjpQCiNI/AAAAAAAAAcg/xmsYjF2nE5k/s320/MAMP%5B4%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5271511255205710034" /&gt;&lt;/a&gt;&lt;br /&gt;7. アプリケーション&gt;MAMP&gt;MAMP を起動する．&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zhVOi4fKc_M/SSgr7KiQhrI/AAAAAAAAAco/mcHUKViCTG0/s1600-h/MAMP%5B5%5D.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 266px;" src="http://3.bp.blogspot.com/_zhVOi4fKc_M/SSgr7KiQhrI/AAAAAAAAAco/mcHUKViCTG0/s320/MAMP%5B5%5D.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5271511659277485746" /&gt;&lt;/a&gt;&lt;br /&gt;こんなかんじ．基本的にデフォルトのままでいこうと思う．次のエントリから，PHP 言語入門というかんじで，いわゆるこうやったら動く系の話ではなくて，プログラミング言語としての基本的な話をしていく予定．&lt;br /&gt;&lt;br /&gt;追記（2008年11月22日）：&lt;br /&gt;XHTML と共存させるためにちょっと設定を変更．アプリケーション&gt;MAMP&gt;conf&gt;php5&gt;php.ini をテキストエディットなどのテキストエディタで開いて，76行目の&lt;br /&gt;&lt;pre&gt;short_open_tag = On&lt;/pre&gt;&lt;br /&gt;を&lt;br /&gt;&lt;pre&gt;short_open_tag = Off&lt;/pre&gt;&lt;br /&gt;に変更しよう．こうすることで，&amp;lt;?xmlの部分でエラーが発生することを防げる．&lt;br /&gt;&lt;br /&gt;覚えておかなくてもいいが，PHP では，&amp;lt;?phpという風にして，ここから PHP のスクリプトの記述ですよということを示す．その代替として，&amp;lt;?でもいいようになっている．しかし，XHTML では，&amp;lt;?xmlから始まる XML 宣言を先頭につけるので，PHP のスクリプトを処理するプログラムが，そこが PHP のスクリプトであると勘違いしてエラーを出してしまうのだ．それを防ぐために，この設定をしたわけ．&lt;br /&gt;&lt;br /&gt;ついでに，エラーを表示するために，277行目の&lt;br /&gt;&lt;pre&gt;display_errors = Off&lt;/pre&gt;&lt;br /&gt;を&lt;br /&gt;&lt;pre&gt;display_errors = On&lt;/pre&gt;&lt;br /&gt;に変更しよう．PHP の勉強をするときには，この設定をしておいたほうが，エラーが画面に表示されるのでわかりやすいと思う．&lt;span style="font-weight:bold;"&gt;ただし，実際に運用する環境ではエラーが画面に表示されないようにすること．&lt;/span&gt;セキュリティの問題があるからね．&lt;br /&gt;&lt;br /&gt;設定を変更したら，MAMP を再起動しよう．&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-9131892512560578943?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/9131892512560578943/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=9131892512560578943' title='6 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/9131892512560578943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/9131892512560578943'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2008/11/mamp.html' title='MAMP のインストール方法'/><author><name>つっちぃ (TSUCHIDA Takuya)</name><uri>http://www.blogger.com/profile/11290873995971470141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-KyiZM3HS9CM/Ti2G5mBNbpI/AAAAAAAAA5s/znOOGSoEWJo/s220/portrait.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zhVOi4fKc_M/SSgrijVWYoI/AAAAAAAAAcI/_oSY5497FZc/s72-c/MAMP%5B1%5D.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7003251064971894280.post-5383424790771753930</id><published>2008-11-15T07:36:00.003+09:00</published><updated>2008-11-15T07:46:07.508+09:00</updated><title type='text'>AppleScript 入門 林檎なスクリプト言語♪</title><content type='html'>結構前から，AppleScript の言語ガイドを読んでたんだけど，いまいちしっくりこないんだよね〜．やっぱり，英語圏の人にわかりやすいようなシンタックスだからなのかなぁ．そして，いつも書いてる階乗と FizzBuzz を書いてみたんだけど，あまり AppleScript らしくないんだよね．ちゃんと理解していないけど，オブジェクトとかもあるみたいだし，もうちょっと遊んでみようと思う．&lt;br /&gt;&lt;br /&gt;階乗のプログラムはこんなかんじ．&lt;br /&gt;&lt;pre&gt;--&lt;br /&gt;-- factorial.applescript&lt;br /&gt;--&lt;br /&gt;on factorial(n)&lt;br /&gt; if n ≤ 0 then&lt;br /&gt;  return 1&lt;br /&gt; else&lt;br /&gt;  return factorial(n - 1) * n&lt;br /&gt; end if&lt;br /&gt;end factorial&lt;br /&gt;&lt;br /&gt;factorial(10)&lt;/pre&gt;&lt;br /&gt;FizzBuzz はこう．（イベントログに出力してる．）&lt;br /&gt;&lt;pre&gt;--&lt;br /&gt;-- fizzbuzz.applescript&lt;br /&gt;--&lt;br /&gt;repeat with i from 1 to 100&lt;br /&gt; if i mod 3 = 0 and i mod 5 = 0 then&lt;br /&gt;  log "FizzBuzz"&lt;br /&gt; else if i mod 3 = 0 then&lt;br /&gt;  log "Fizz"&lt;br /&gt; else if i mod 5 = 0 then&lt;br /&gt;  log "Buzz"&lt;br /&gt; else&lt;br /&gt;  log i&lt;br /&gt; end if&lt;br /&gt;end repeat&lt;/pre&gt;&lt;br /&gt;なんとなくわかるかなｗ≤は，alt+&amp;lt;で入力できるよ．&amp;lt;=で代替もできるけど，スクリプトエディタで実行すると自動的にそれに書き換えられるねぇ．&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;a href="http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptLangGuide/"&gt;AppleScript Language Guide&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7003251064971894280-5383424790771753930?l=applelife100.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://applelife100.blogspot.com/feeds/5383424790771753930/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7003251064971894280&amp;postID=5383424790771753930' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5383424790771753930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7003251064971894280/posts/default/5383424790771753930'/><link rel='alternate' type='text/html' href='http://applelife100.blogspot.com/2008/11/applescript.html' title='AppleScript 入門 林檎なスクリプト言語♪'/><author><name>つっ
