<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>yamablo &#187; OS</title>
	<atom:link href="http://yamablo.com/category/os/feed" rel="self" type="application/rss+xml" />
	<link>http://yamablo.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sat, 31 Jul 2010 04:30:13 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://yamablo.com/category/os/feed" />
		<item>
		<title>Vine5でE-Mobileを使ってインターネットに接続する</title>
		<link>http://yamablo.com/2010/02/28-195105.php</link>
		<comments>http://yamablo.com/2010/02/28-195105.php#comments</comments>
		<pubDate>Sun, 28 Feb 2010 10:51:05 +0000</pubDate>
		<dc:creator>yama3</dc:creator>
				<category><![CDATA[UNIX/Linux]]></category>
		<category><![CDATA[モバイル]]></category>
		<category><![CDATA[E-Mobile]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Vine]]></category>
		<category><![CDATA[インターネット]]></category>

		<guid isPermaLink="false">http://yamablo.com/?p=1168</guid>
		<description><![CDATA[以前まではVine4を使っていて、E-Mobileには対応していないとかどっかで見たか聞いたかした記憶が残っており、Vine5でもどうせ対応していないだろうと思い、今まで全く試していなかったのだが、昨日ちょっとしたこと [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://yamablo.com/wp-content/uploads/2010/02/VineLinux.jpg"><img src="http://yamablo.com/wp-content/uploads/2010/02/VineLinux.jpg" alt="" title="VineLinux" width="500" height="215" class="aligncenter size-full wp-image-1167" /></a></p>
<p>以前まではVine4を使っていて、E-Mobileには対応していないとかどっかで見たか聞いたかした記憶が残っており、Vine5でもどうせ対応していないだろうと思い、今まで全く試していなかったのだが、昨日ちょっとしたことからググってみたところ、どうやらVine5ではE-Mobileが利用可能！とかいう記事を見つけ、その設定をやってみたところ、実際に自分の環境でも接続されることが確認できたため、その設定方法を書こうと思います。なお、今回使用しているE-Mobile端末は、D02-HWで、パソコンはThinkPad X22というかなり古めのパソコンです。普段はこのパソコンはVine5とWindows7RCのデュアルブート構成をとっているのですが、3月1日からWindows7RCは2時間おきにシャットダウンされるということで、モバイル時にどうしようか考えていたのが原因です。前からUbuntuであればE-Mobile接続が可能なことは知っていたので、このマシンもデュアル構成をやめにしてUbuntu1本にしようかと思っていたのですが、このマシンスペックでUbuntuを使うのはストレスが溜まりそうということでいろいろ探しておりました。では、以下でその設定法を書かせていただきます。</p>
<h3>ネットワーク接続</h3>
<p><a href="http://yamablo.com/wp-content/uploads/2010/02/vine-emobile.jpg"><img src="http://yamablo.com/wp-content/uploads/2010/02/vine-emobile-300x225.jpg" alt="" title="vine-emobile" width="300" height="225" class="aligncenter size-medium wp-image-1166" /></a></p>
<p>上の画像のように、Vine5をデスクトップで利用していることを想定しています。メニューバーの中から、システム、設定、インターネットとネットワークを選んでいき、ネットワーク接続を選択します。すると、下の図のようなウィンドウが開きます。</p>
<p><a href="http://yamablo.com/wp-content/uploads/2010/02/vine-emobile3.jpg"><img src="http://yamablo.com/wp-content/uploads/2010/02/vine-emobile3-300x231.jpg" alt="" title="vine-emobile3" width="300" height="231" class="aligncenter size-medium wp-image-1164" /></a><br />
<span id="more-1168"></span></p>
<h3>接続方法はモバイルブロードバンド</h3>
<p>ネットワーク接続ウィンドウでは、ネットワークへの接続方法をまず始めに選択します。選択項目は「有線」や「無線」「モバイルブロードバンド」などがありますが、E-Mobileを使う場合は、「モバイルブロードバンド」を選択します。そして、「追加」ボタンを押して、モバイルブロードバンドの設定を行います。</p>
<h3>設定項目</h3>
<p>追加ボタンを押すと、まずはじめにモバイル広帯域接続として、接続タイプを<br />
選択します。ここでは<strong>GSM接続を作成</strong>を選びます。GSM接続を作成を<br />
選択し、OKボタンを押すと、以下のような接続情報を設定するためのウィンドウが現れます。<br />
ここに、E-Mobile接続のための情報を入力します。設定内容は、次のようになっています。</p>
<ul>
<li>番号：<span style="color: #red;">*99#</span></li>
<li>ユーザ名：<span style="color: #red;">em</span></li>
<li>パスワード：<span style="color: #red;">em</span></li>
<li>APN：<span style="color: #red;">emb.ne.jp</span></li>
</ul>
<p>実際に入力された画像は以下です。</p>
<p><a href="http://yamablo.com/wp-content/uploads/2010/02/vine-emobile2.jpg"><img src="http://yamablo.com/wp-content/uploads/2010/02/vine-emobile2-260x300.jpg" alt="" title="vine-emobile2" width="260" height="300" class="aligncenter size-medium wp-image-1165" /></a></p>
<h3>接続を開始する</h3>
<p>接続を開始するには、デスクトップのメニューバー右側にあるネットワークのアイコンを<br />
クリックし、先ほど作成したモバイルブロードバンドの「GSM接続１」（名前を変更している<br />
場合は該当する名前）をクリックすればネットワークに無事繋がります。</p>
<p><a href="http://yamablo.com/wp-content/uploads/2010/02/vine-emobile5.jpg"><img src="http://yamablo.com/wp-content/uploads/2010/02/vine-emobile5-300x189.jpg" alt="" title="vine-emobile5" width="300" height="189" class="aligncenter size-medium wp-image-1162" /></a></p>
<h3>その他</h3>
<p><a href="http://yamablo.com/wp-content/uploads/2010/02/vine-emobile4.jpg"><img src="http://yamablo.com/wp-content/uploads/2010/02/vine-emobile4-300x91.jpg" alt="" title="vine-emobile4" width="300" height="91" class="aligncenter size-medium wp-image-1163" /></a></p>
<p>ほかに、場合によってはキーリング・マネージャーが動いて何かパスワードを設定しろ、<br />
とかパスワードを入力しろ、とか言ってくることがあります。キーリングの自動解除などは<br />
自分はあまり詳しく知らないのですが、以下に情報があるようなので参照してみては？</p>
<ul>
<li><a href="http://linux.getinfomation.com/2009/08/vine-linux5lan.html" target="_blank">Vine Linux5でログイン(無線LAN接続)するたびに、[キーリングのロック解除]を開かないようにする方法 &#8211; キノウからのLinux</a></li>
</ul>
<h3>参考サイト</h3>
<ul>
<li><a href="http://trac.vinelinux.org/wiki/NetworkManager" target="_blank">NetworkManager – VineSeed</a></li>
</ul>
<p><strong>関連記事</strong>
<ul class="similar-posts">
<li><a href="http://yamablo.com/2009/05/21-131806.php" title="XAMPP for LinuxをVineLinuxにインストールさせた">XAMPP for LinuxをVineLinuxにインストールさせた</a></li>
<li><a href="http://yamablo.com/2009/05/21-194415.php" title="XAMPP for LinuxにSmartyをインストールする。">XAMPP for LinuxにSmartyをインストールする。</a></li>
<li><a href="http://yamablo.com/2009/07/08-210000.php" title="[PR] 不動産相談なら全国ネットワークのハイアークラブへ">[PR] 不動産相談なら全国ネットワークのハイアークラブへ</a></li>
<li><a href="http://yamablo.com/2009/07/19-114237.php" title="CentOSのインストール後に行ったこと一覧">CentOSのインストール後に行ったこと一覧</a></li>
<li><a href="http://yamablo.com/2009/05/11-213817.php" title="LinuxOSのディストリビューション一覧">LinuxOSのディストリビューション一覧</a></li>
</ul>
<p><!-- Similar Posts took 16.131 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://yamablo.com/2010/02/28-195105.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://yamablo.com/2010/02/28-195105.php" />
	</item>
		<item>
		<title>パソコンのキーバインドを変更する方法</title>
		<link>http://yamablo.com/2010/02/08-212746.php</link>
		<comments>http://yamablo.com/2010/02/08-212746.php#comments</comments>
		<pubDate>Mon, 08 Feb 2010 12:27:46 +0000</pubDate>
		<dc:creator>yama3</dc:creator>
				<category><![CDATA[UNIX/Linux]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[フリーソフト]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[アプリケーション]]></category>
		<category><![CDATA[キーボード]]></category>
		<category><![CDATA[ソフトウェア]]></category>
		<category><![CDATA[パソコン]]></category>

		<guid isPermaLink="false">http://yamablo.com/?p=1135</guid>
		<description><![CDATA[最近は、自分のパソコンをより使いやすくするためにいろいろと試行錯誤を行っています。その一環として、今回はキーボードの配置を変更するための方法と自分の配置したあとの結果について書いてみようと思います。
レジストリを変更し [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://yamablo.com/wp-content/uploads/2010/02/keyboard.jpg"><img src="http://yamablo.com/wp-content/uploads/2010/02/keyboard.jpg" alt="" title="keyboard" width="500" height="200" class="aligncenter size-full wp-image-1137" /></a></p>
<p>最近は、自分のパソコンをより使いやすくするためにいろいろと試行錯誤を行っています。その一環として、今回はキーボードの配置を変更するための方法と自分の配置したあとの結果について書いてみようと思います。</p>
<h3>レジストリを変更してキー配置を変更する</h3>
<p>まずは、キーバインドの変更として有名どころである<strong>Ctrl</strong>キーと<strong>CapsLock</strong>キーの入替です。これはキーバインドを変更しようとする人にとっては基本でしょう。というかCapsLockキーがこの場所にあるってのが自分としては信じられない。なんでこんな使いやすい場所にほとんど使う機会がないようなキーが配置されているのかってことですね。逆に、Ctrlキーはよく使うキーの1つだけれどもちょっと使いにくい場所にあるんですよね。ということで、まずは、CtrlとCapsLockキーの入替を行います。ここで使ったアプリケーションは<a href='http://www.vector.co.jp/soft/winnt/util/se214366.html' target='_blank'>Change Key</a>というアプリケーションを使いました。これはレジストリを直接変更することにより、キーバインドを変更してやるというものです。これを使って、CtrlとCapsLockの入替だけでなく、スペースバーの左右に無駄に配置されている無変換キーと変換キーも別のキーに割り当てました。具体的には、無変換キーにBackSpaceキーを、変換キーにEnterキーを割り当てています。この無変換・変換キーについては、上から割り当てを書き換えるだけで、既存の無変換・変換キーを別のキーに割り当てるということは全くしませんでした。というか、今までこの2つのキーは使ったことが無いし。</p>
<p><span id="more-1135"></span></p>
<h3>レジストリ変換では対応できないショートカット</h3>
<p>上のアプリケーションを使ってレジストリを書き換えることにより、多少使いやすくなったのですが、それでも半日くらいパソコンを触っているとあまり効率が向上していないことに気づき始め、何が原因かと思っていたら矢印キーの4つですね。この4つは、カーソルの移動で使うことがほとんどですが、これを使う機会がホントに多い。なのに、通常のホームポジションからは少し離れた場所に配置されているキーということでこれはキーバインドの変更対象です。ここで困ったのは、もう割り当てるキーがない！ということです。ということでレジストリの変更ではなくここはアプリケーションによって対応することにしました。ということで次の項目でどう対処したかを書こうかと思います。</p>
<h3>AutoHotKeyを利用する</h3>
<p>AutoHotKeyは、常駐するアプリケーションでキーボードからの入力を一旦AutoHotKeyが受け取り、それをAutoHotKey内で処理をしたあとに通常のキーの入力を処理するところに送ってくれるソフトウェアです。こういう常駐するアプリケーションはパソコンの処理が遅くなってしまうという先入観があって今まで使ってこなかったのですがどうやらこのアプリケーションはそんな心配は無用のようです。今使っているのですが、タスクマネージャで見てみても約2MB程度しかメモリを使っていないということで、オススメですね。また、<a href='http://lukewarm.s101.xrea.com/' target='_blank'>AutoHotkey</a>は先ほどの、<a href='http://www.vector.co.jp/soft/winnt/util/se214366.html' target='_blank'>Change Key</a>では無理であった2つのキーの組合せ（例えばAltキーとhキーなど）に対してもその処理を変更することができます。ということで自分がこのアプリケーションを用いて行った変更は、前述の4つの矢印キーの割り当てです。自分の場合はこれをAltキー+h,j,k,lキーに対してそれぞれ左矢印、下矢印、上矢印、右矢印を割り当てています。この割り当てはUNIX/Linux環境などでvimというエディタを使っている方ならすぐに分かると思いますが、vimのコマンドラインモードでのキー割り当てと同様の動きになります。自分は、3年ほど前からvimを使い続けており、他のエディタを使っているときでさえ間違ってjキーを連打してしまったりするくらいなので今回の割り当てには満足です。もし、vimではなくemacs環境を使うことが多い人はemacs用にスクリプトを変更して使うとよいでしょう。</p>
<h3>AutoHotKeyのキー割り当てスクリプト</h3>
<p>以下のスクリプトを読み込ませることで、Alt+hで左矢印、Alt+jで下矢印、Alt+kで上矢印、Alt+lで右矢印に置き返されます。</p>
<p><code>
<pre class="dos">
$!h::
Send, {left}
return

$!j::
Send, {down}
return

$!k::
Send, {up}
return

$!l::
Send, {right}
return
</pre>
<p></code></p>
<h3>まとめ</h3>
<p>キーボードって一番よく使うパソコンの周辺機器の1つなのでそれを使いやすくしておくことは重要ですね。今回の記事のようにキーバインドを変更するだけでなく、春からの新生活に向けて気分を一新させてキーボード自体を使いやすいものに買い変えるも1つの方法ですよ。ちなみに自分の使っているキーボードは下のキーボードになりますよ。</p>
<table  class="g-tools_table">
<tr>
<td colspan="2"><span class="g-tools_title"><a href="http://www.amazon.co.jp/Microsoft-Natural-Ergonomic-Keyboard-B2M-00010/dp/B000BQ6NOA%3FSubscriptionId%3D15SMZCTB9V8NGR2TW082%26tag%3D1987yama3-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB000BQ6NOA" target="_top">Microsoft Natural Ergonomic Keyboard 4000 B2M-00010</a><img src='http://www.assoc-amazon.jp/e/ir?t=1987yama3-22&#038;l=ur2&#038;o=9' width='1' height='1' border='0' alt='' /></span></td>
</tr>
<tr>
<td valign="top"><span class="g-tools_img"><a href="http://www.amazon.co.jp/Microsoft-Natural-Ergonomic-Keyboard-B2M-00010/dp/B000BQ6NOA%3FSubscriptionId%3D15SMZCTB9V8NGR2TW082%26tag%3D1987yama3-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB000BQ6NOA" target="_top"><img src="http://ecx.images-amazon.com/images/I/31SZJ5XJEJL._SL160_.jpg"  alt="Microsoft Natural Ergonomic Keyboard 4000 B2M-00010" /></a></span></td>
<td valign="top"><span class="g-tools_body"><br /><strong>おすすめ平均</strong> <img src="http://g-images.amazon.com/images/G/01/detail/stars-4-0.gif" /><br /><img src="http://g-images.amazon.com/images/G/01/detail/stars-4-0.gif" alt="stars" />いいんですが..<br /><img src="http://g-images.amazon.com/images/G/01/detail/stars-5-0.gif" alt="stars" />割に使いやすい。<br /><img src="http://g-images.amazon.com/images/G/01/detail/stars-5-0.gif" alt="stars" />Very nice and good for wirst health<br /><img src="http://g-images.amazon.com/images/G/01/detail/stars-4-0.gif" alt="stars" />microsoft natural ergonomic keyboard 4000<br /><img src="http://g-images.amazon.com/images/G/01/detail/stars-4-0.gif" alt="stars" />パームレストと絶妙な傾斜で肩凝り解消！</p>
<p><a href="http://www.amazon.co.jp/Microsoft-Natural-Ergonomic-Keyboard-B2M-00010/dp/B000BQ6NOA%3FSubscriptionId%3D15SMZCTB9V8NGR2TW082%26tag%3D1987yama3-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB000BQ6NOA" target="_top">Amazonで詳しく見る</a></span><span class="g-tools_by"> by <a href="http://www.goodpic.com/mt/aws/index.html" >G-Tools</a></span></td>
</tr>
</table>
<h3>ダウンロード</h3>
<ul>
<li><a href='http://www.vector.co.jp/soft/winnt/util/se214366.html' target='_blank'>Change Key キーボードのキーを変更の詳細情報 : Vector ソフトを探す！</a></li>
<li><a href='http://lukewarm.s101.xrea.com/' target='_blank'>AutoHotkeyを流行らせるページ</a></li>
</ul>
<p><strong>関連記事</strong>
<ul class="similar-posts">
<li><a href="http://yamablo.com/2009/12/11-085115.php" title="[UNIX/Linux] 文字コード変換コマンド nkf">[UNIX/Linux] 文字コード変換コマンド nkf</a></li>
<li><a href="http://yamablo.com/2009/12/26-172007.php" title="[Linux] gcc, g++ によるC/C++のコンパイル・オプション">[Linux] gcc, g++ によるC/C++のコンパイル・オプション</a></li>
<li><a href="http://yamablo.com/2009/05/13-212851.php" title="[フリーソフト] UltimateDefrag">[フリーソフト] UltimateDefrag</a></li>
<li><a href="http://yamablo.com/2009/07/19-114237.php" title="CentOSのインストール後に行ったこと一覧">CentOSのインストール後に行ったこと一覧</a></li>
<li><a href="http://yamablo.com/2009/09/11-004008.php" title="基本情報技術者の問題解説 【計算問題】　No1">基本情報技術者の問題解説 【計算問題】　No1</a></li>
</ul>
<p><!-- Similar Posts took 17.076 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://yamablo.com/2010/02/08-212746.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://yamablo.com/2010/02/08-212746.php" />
	</item>
		<item>
		<title>CentOSでGo（インストール編）</title>
		<link>http://yamablo.com/2010/01/13-224555.php</link>
		<comments>http://yamablo.com/2010/01/13-224555.php#comments</comments>
		<pubDate>Wed, 13 Jan 2010 13:45:55 +0000</pubDate>
		<dc:creator>yama3</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[UNIX/Linux]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Go]]></category>

		<guid isPermaLink="false">http://yamablo.com/?p=1014</guid>
		<description><![CDATA[前回の記事（人気のプログラミング言語ランキング）で少し書いたGoogle発のプログラミング言語であるGoを自分のCentOS5にインストールしたので、そのインストールの過程を書いてみます。
これからインストールしようとし [...]]]></description>
			<content:encoded><![CDATA[<p>前回の記事（<a href="http://yamablo.com/2010/01/13-090952.php" target="_blank">人気のプログラミング言語ランキング</a>）で少し書いたGoogle発のプログラミング言語である<strong>Go</strong>を自分のCentOS5にインストールしたので、そのインストールの過程を書いてみます。</p>
<p>これからインストールしようとしている方、また、インストールの途中でつまづいた人は参考にしてみてはいかがでしょうか？</p>
<h3>下準備</h3>
<p>自分の使っているCentOSには、Mecurialとよばれるものがインストールされていいないようで、まずはこれをyum経由でインストールします。続いて、インストールに用いる<em>easy_install</em>コマンドも必要なのでその関連もインストールします。具体的には、以下のコマンドをrootユーザにて実行します。</p>
<p><code>
<pre class="dos">
# yum install python-setuptools
# yum install python-devel
# easy_install mercurial
</pre>
<p><code><br />
<span id="more-1014"></span></p>
<h3>環境変数の設定</h3>
<p>Goを用いるのに必要（インストールに必要？）な環境変数を設定します。設定する環境変数は、全部で$GOROOT, $GOOS, $GOARCH, $GOBINの4つです。これらは、自分のホームフォルダの<em>.bashrc</em>の末尾に以下を書き込みます。</p>
<p><code>
<pre class="dos">
$export GOROOT=$HOME/go
$export GOOS=linux
$export GOARCH=386
$export PATH=$PATH:$HOME/bin
</pre>
<p></code></p>
<p>また、自分のホームフォルダに<em>bin</em>フォルダを作っておきます。</p>
<p><code>
<pre class="dos">
$ mkdir ~/bin
</pre>
<p></code></p>
<h3>Goをインストール</h3>
<p>まずは、Goのソースコードをリポジトリから入手します。コマンドは以下のものになります。回線速度によっては結構時間がかかると思います。自分はここで10分以上かかったと思います。</p>
<p><code>
<pre class="dos">
$hg clone -r release https://go.googlecode.com/hg/ $GOROOT
</pre>
<p></code></p>
<p>最後に入手したソースコードをmakeします。コマンドは以下で。</p>
<p><code>
<pre class="dos">
$ cd ~/.go/src
$ ./all.bash
</pre>
<p></code></p>
<p>ここも結構時間がかかるので、気長に待つようにしましょう。上のコマンドを入力すると、必要なパッケージが揃っていれば以下の出力が得られて終了します。</p>
<p><code>
<pre class="dos">
regex-dna
spectral-norm
k-nucleotide
mandelbrot
meteor-contest
pidigits
threadring
chameneosredux

--- cd ../test
4 known bugs; 0 unexpected bugs
</pre>
<p></code></p>
<p>上の出力例の4 known bugs;の4のところは場合によっては別の数字になることもあるようですが、気にする必要はないみたいです。</p>
<h3>インストール時のエラー</h3>
<p>自分の場合は、<em>./all.bash</em>したときにエラーが出てきました。エラーの内容は、<em>bison</em>というパッケージがインストールされていない、ということだったので、<em>yum install bison</em>として、bisonをインストール後、再度./all.bashすることでうまくインストールすることができました。</p>
<p>また、他にも</p>
<p><code>
<pre class="dos">
/home/test/bin/gotest: line 141: ./6.out: cannot execute binary file
make[1]: *** [test] エラー 126
make[1]: ディレクトリ `/home/test/go/src/pkg/archive/tar' から出ます
make: *** [archive/tar.test] エラー 2
</pre>
<p></code></p>
<p>というエラーが発生することもあるようです。その場合の対策方法は</p>
<ul>
<li><a href='http://d.hatena.ne.jp/hydrangeas/20091111/1257937111' target='_blank'> Goインストール on 9.04 - 紫陽花観察日記</a></li>
</ul>
<p>に書かれているので是非ご参照を。</p>
<h3>Hello Worldを実行</h3>
<p>適当なディレクトリで以下のプログラムを実行し、コンパイルから実行までを行うと、画面に<em>Hello World</em>と表示され終了です。</p>
<h4>テストプログラム(hello.go)</h4>
<p><code>
<pre class="dos">
package main
import "fmt"

func main() {
        fmt.Printf("Hello World\n")
}
</pre>
<p></code></p>
<h4>コンパイル＆実行</h4>
<p><code>
<pre class="dos">
$ 8g hello.go
$ 8l hello.8
$ ./8.out
</pre>
<p></code></p>
<h3>まとめ</h3>
<p>以上で、インストールから簡単な導入用のプログラムまでをやってみました。今度は時間があるときにでも少しまともなプログラムを書いてみようかなと思います。できれば、Goのメリットでもあるような並列処理の容易さなんかの分かるプログラムを書いてみたいな。</p>
<h3>参考サイト</h3>
<ul>
<li><a href='http://golang.org/doc/install.html#tmp_57' target='_blank'>Installing Go</a></li>
<li><a href='http://zaru.tofu-kun.org/2009/11/11/%E6%96%B0%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%80%8Cgo%E3%80%8D%E3%82%92centos%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97/' target='_blank'>新プログラミング言語「Go」をCentOSにインストールしてみた &lt;&lt;  zaru blog</a></li>
<li><a href='http://d.hatena.ne.jp/hydrangeas/20091111/1257937111' target='_blank'> Goインストール on 9.04 - 紫陽花観察日記</a></li>
</ul>
<p><strong>関連記事</strong>
<ul class="similar-posts">
<li><a href="http://yamablo.com/2009/12/26-172007.php" title="[Linux] gcc, g++ によるC/C++のコンパイル・オプション">[Linux] gcc, g++ によるC/C++のコンパイル・オプション</a></li>
<li><a href="http://yamablo.com/2010/02/08-212746.php" title="パソコンのキーバインドを変更する方法">パソコンのキーバインドを変更する方法</a></li>
<li><a href="http://yamablo.com/2009/08/17-171307.php" title="Google Code Jam 2009開催">Google Code Jam 2009開催</a></li>
<li><a href="http://yamablo.com/2009/12/11-085115.php" title="[UNIX/Linux] 文字コード変換コマンド nkf">[UNIX/Linux] 文字コード変換コマンド nkf</a></li>
<li><a href="http://yamablo.com/2009/07/19-114237.php" title="CentOSのインストール後に行ったこと一覧">CentOSのインストール後に行ったこと一覧</a></li>
</ul>
<p><!-- Similar Posts took 13.634 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://yamablo.com/2010/01/13-224555.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://yamablo.com/2010/01/13-224555.php" />
	</item>
		<item>
		<title>PCが遅くなったら「Glary Utilities」</title>
		<link>http://yamablo.com/2010/01/10-230045.php</link>
		<comments>http://yamablo.com/2010/01/10-230045.php#comments</comments>
		<pubDate>Sun, 10 Jan 2010 14:00:45 +0000</pubDate>
		<dc:creator>yama3</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[フリーソフト]]></category>
		<category><![CDATA[WIndows]]></category>
		<category><![CDATA[メンテナンス]]></category>
		<category><![CDATA[高速化]]></category>

		<guid isPermaLink="false">http://yamablo.com/?p=1000</guid>
		<description><![CDATA[年初めということで、もし自分がお使いのPCの速度が遅いなぁと感じるようであれば、メンテナンスをしておくといいですよ。メンテナンスの方法はいろいろあります。例えば、

不要なファイルの削除
ハードディスクのデフラグ
不要な [...]]]></description>
			<content:encoded><![CDATA[<p>年初めということで、もし自分がお使いのPCの速度が遅いなぁと感じるようであれば、メンテナンスをしておくといいですよ。メンテナンスの方法はいろいろあります。例えば、</p>
<ul>
<li>不要なファイルの削除</li>
<li>ハードディスクのデフラグ</li>
<li>不要なアプリケーションのアンインストール</li>
<li>無効なレジストリの削除</li>
<li>スパイウェア・アドウェアの削除</li>
</ul>
<p>などが考えられます。これらを手動でやるのは面倒なんですよね。ということで、こういったPCのメンテナンスを一括でやってくれる無料のアプリケーションで<strong>Glary Utilities</strong>というのがあります。</p>
<p><img src="http://yamablo.com/wp-content/uploads/2010/01/GlaryUtilities_01.jpg" style="width: 320px; margin: 0px auto;" /><br />
<span id="more-1000"></span></p>
<h3>Glary Utilitiesとは？？</h3>
<p><strong>Glary Utilities</strong>とは、ディスクやレジストリのクリーナーや、アンインストール・マネージャ、メモリチューニング、ディスク解析、スパイウェア・アドウェアの削除など、Windowsのパフォーマンスを改善するためのソフトウェアです。</p>
<p>このような機能を持ったアプリはほかにも多く存在するのですが、このGlary Utilitiesのスゴイところは、ボタンを1クリックするだけで上記問題点をスキャンしてくれる点です。ですので、あまりPCに詳しくない方でも手軽にメンテナンスできるのではないでしょうか？</p>
<h3>Glary Utilitiesのインストール</h3>
<p>Glary Utilitiesは以下のURLからダウンロードすることができます。</p>
<ul>
<li><a href='http://www.glaryutilities.com/gu.html?tag=download' target='_blank'>http://www.glaryutilities.com/gu.html?tag=download</a></li>
</ul>
<p>上のサイトからDownload Nowをクリックすればダウンロードが始まります。ダウンロードしたファイルを実行し、Nextをクリックし続ければインストールが完了します。もし、文字化けするようであれば、一旦Englishを選択し、英語のまま進めてください。以下のURLからダウンロードできる「言語定義ファイル」をインストール後に設定することで日本語化することが可能です。</p>
<ul>
<li><a href="http://www.glaryutilities.com/language/japanese.lng" target="_blank">http://www.glaryutilities.com/language/japanese.lng</a></li>
</ul>
<p>もし、インストール時に文字化けするようであれば、Englishのままインストールを行ってください。インストール後に、Cドライブの中の自分がインストールしたフォルダを開き、./Glary Utilities/languagesフォルダ内に上記URLのテキストファイルを保存してください。その後、Glary Utilitiesを起動し、メニュー、設定、言語と辿り、言語をJapaneseに変更してくれれば、Glary Utilitiesの日本語化が完了します。</p>
<h3>簡単操作</h3>
<p>Glary Utilitiesの1クリックメンテナンスから、メンテナンスしたい項目にチェックを入れてください。そして、「問題点をスキャン」を押せば、PC内をスキャンしてくれます。問題があればスキャン後に問題箇所を提示するダイアログが表示されますので、そこから簡単に問題を修復することができます。</p>
<h3>参考URL</h3>
<ul>
<li><a href='http://www.lifehacker.jp/2009/10/glary_utilities.html' target='_blank'>Winマシンが最近遅いなぁと感じたら、『Glary Utilities』 : ライフハッカー［日本版］, 仕事も生活も上手くこなすライフハック情報満載のブログ・メディア</a></li>
<li><a href="http://www.glaryutilities.com/gu.html?tag=download" target="_blank">http://www.glaryutilities.com/gu.html?tag=download</a></li>
</ul>
<p><strong>関連記事</strong>
<ul class="similar-posts">
<li><a href="http://yamablo.com/2008/11/17-003158.php" title="デフラグ完了">デフラグ完了</a></li>
<li><a href="http://yamablo.com/2009/05/13-212851.php" title="[フリーソフト] UltimateDefrag">[フリーソフト] UltimateDefrag</a></li>
<li><a href="http://yamablo.com/2009/07/26-220313.php" title="Subversionのススメ">Subversionのススメ</a></li>
<li><a href="http://yamablo.com/2008/11/22-220450.php" title="Synergy　マウス・キーボード共有ソフト">Synergy　マウス・キーボード共有ソフト</a></li>
<li><a href="http://yamablo.com/2009/01/21-173456.php" title="C/C++のプログラム高速化">C/C++のプログラム高速化</a></li>
</ul>
<p><!-- Similar Posts took 16.280 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://yamablo.com/2010/01/10-230045.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://yamablo.com/2010/01/10-230045.php" />
	</item>
		<item>
		<title>JavaとC++のコラボレーション【JNI】</title>
		<link>http://yamablo.com/2010/01/07-105953.php</link>
		<comments>http://yamablo.com/2010/01/07-105953.php#comments</comments>
		<pubDate>Thu, 07 Jan 2010 01:59:53 +0000</pubDate>
		<dc:creator>yama3</dc:creator>
				<category><![CDATA[UNIX/Linux]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JNI]]></category>
		<category><![CDATA[コラボレーション]]></category>

		<guid isPermaLink="false">http://yamablo.com/?p=983</guid>
		<description><![CDATA[JNI(Java Native Interface)と呼ばれる技術を使うことにより、JavaとC++の2つのプログラミング言語を統合的に扱うことができます。このように2つのプログラム言語を統合的に扱い、1つのプログラムを [...]]]></description>
			<content:encoded><![CDATA[<p><strong>JNI</strong>(Java Native Interface)と呼ばれる技術を使うことにより、JavaとC++の2つのプログラミング言語を統合的に扱うことができます。このように2つのプログラム言語を統合的に扱い、1つのプログラムを作ることは色々なメリットがあります。そのメリットの1つは、1つのプログラミング言語だけでは享受することのないメリットを複数のプログラミング言語を用いることにより、享受できるようになることです。具体的には、GUIに優れたJavaと、実行速度の高いC/C++を組み合わせることにより、パフォーマンスに優れたプログラムをより短時間で作れるようになるでしょう。</p>
<h3>JNIを使うための準備</h3>
<p>環境は、UNIX/Linuxを対象としています。が、ウェブ上や書籍なんかを見る限り、WindowsでもJNIの利用は可能なようなので、Windows上で利用したい方は一度探してみてください。そのうち、自分もWindows用の利用方法も書くかもしれません。</p>
<p>まず、JNIを利用するための準備ですが、これは特にありません。まぁ当然ながら、JavaとC++を利用するということで、JavaとC++の実行環境はそれぞれ必要になります。これらは、お使いのディストリビューションによって異なることもありますので、各自準備しておいてください。</p>
<p>では、続きでは実際のサンプル用のソースコードを書いていきます。</p>
<p><span id="more-983"></span></p>
<h3>サンプル用のソースコード</h3>
<h4>Java側</h4>
<p><code>
<pre class="dos">
public class JniExample {
    static {
        System.loadLibrary( "JniExample" );
    }
    public int              intField = 17;
    public static String    stringField = "Hello!";

    private static native void Call( JniExample x );
    public JniExample() { }

    public static void main( String[] args ) {
        JniExample my = new JniExample();
        my.Call( my );
    }
}
</pre>
<p></code></p>
<h4>C++側</h4>
<p><code>
<pre class="dos">
#include &lt;jni.h&gt;
#include "JniExample.h"
#include &lt;iostream&gt;

using namespace std;
JNIEXPORT void JNICALL Java_JniExample_Call (JNIEnv *env, jclass clazz, jobject obj) {
    jfieldID intFieldId = env-&gt;GetFieldID(clazz, "intField", "I" );
    if( intFieldId == 0 ) exit(1);
    int intFieldVal = env-&gt;GetIntField( obj, intFieldId );

    jfieldID strFieldId = env-&gt;GetStaticFieldID( clazz, "stringField", "Ljava/lang/String;" );
    if( strFieldId == 0 ) exit(1);
    jstring jstr = (jstring) env-&gt;GetStaticObjectField( clazz, strFieldId );
    const char *str = (jstr == 0) ? 0 : env-&gt;GetStringUTFChars( jstr, 0 );

    cout &lt;&lt; intFieldVal &lt;&lt; endl;
    cout &lt;&lt; str &lt;&lt; endl;

    env-&gt;ReleaseIntArrayElements( jarr, arr, 0 );
    env-&gt;ReleaseStringUTFChars( jstr, str );
    return;
}
</pre>
<p></code></p>
<h3>JNIの全体像</h3>
<p>ソースコードの詳しい説明を行う前に、JNIの全体像を簡単に書いてみようと思います。JNIでは、Java側のソースコードをコンパイルし、C/C++で読み込めるヘッダファイルを生成します。次に、C/C++側では先ほどの処理で生成されたヘッダファイルをプログラムの最初に読み込ませます。C/C++のコンパイル時は、実行コードは生成しないで、コンパイル処理のみをしておけば十分です。その後、オブジェクト･コードから、共有ライブラリを生成します。Java側のプログラムでは、この共有ライブラリを読み込む、という記述を書いておきます。これによって、Javaでプログラムを実行した際に、C/C++のソースコードを実行しようと思ったときに、共有ライブラリ上からC/C++のコードを実行することになります。</p>
<h3>ソースコードの解説</h3>
<h4>Javaソースコード</h4>
<p>まず、Java側では最初に<em>System.loadLibrary</em>と呼れる記述がありますこれは、共有ライブラリを読み込むための記述になります。このメソッドの引数に共有ライブラリ名を指定します。この共有ライブラリ名ですが記述が分かりにくいですが、まず、共有ライブラリのファイル名は、<strong>lib******.so</strong>(UNIX/Linuxの場合)としなければいけません。そして、メソッドで指定する共有ライブラリ命は、この******部分のみを記述することになります。例えば、共有ライブラリが<em>libMyApplication.so</em>であれば、<em>System.loadLibrary(&#8220;MyApplication&#8221;)</em>となります。</p>
<p>次に、Javaではなく、C/C++で実装するメソッドには、メソッド宣言部分の戻り値の型の記述の前に<strong>native</strong>というキーワードを付け、そのメソッドの中身はなにも書きません。</p>
<h4>C/C++ソースコード</h4>
<p>C/C++ソースコードはいろいろなことを書かなければいけません。まず、インクルード・ファイルです。インクルード・ファイルは、<em>jni.h</em>と、Java側から吐き出されたヘッダファイル（上の例なら<em>JniExample.h</em>）です。jni.hには、JNIを使うための基本的な定義がいろいろと書かれています。JniExample.hには、自分の書いたJavaソースコードをC/C++で利用するために必要な定義がなされています。次に、C/C++の関数定義です。この関数定義には、Javaソースコードで<em>natime</em>キーワードをつけた関数を全て同様の形式で書かなければいけません。形式は、</p>
<p><code>
<pre class="dos">
JNIEXPORT {戻り値の型} JNICALL Java_{Javaの呼び出されるクラス名}_{メソッド名} ( 省略 )
</pre>
<p></code></p>
<p>です。また、引数は、上のサンプルのように記述したり、その引数の後ろに複数の引数を<br />
追加することも可能です。ここで追加された複数の引数は、Javaの呼び出し部分でも同様に<br />
する必要があります。</p>
<p>次は、Javaのメンバ変数をC/C++で読み込む作業です。これは少し、面倒な書き方をしている例ですが、このように書くことでC/C++でJavaの変数を読み込むことができます。coutの行では、読み込んだJavaの変数の値をC/C++で出力しています。正しく読み込めていますよね。最後は、C/C++で取得した変数を開放する作業です。</p>
<h3>コンパイル方法</h3>
<p>以上は、ソースコードの説明になりました。次は、ソースコードをどのようにコンパイルするかを具体的に見て見ましょう。コンパイルは正直いって面倒ですｗ。途中、Javaのバージョンによってコマンド（パス）が変わってしまうのですが、以下では<em>jdk1.6.0_16</em>として話を進めます。ここの部分は自身の環境に合わせて適宜変更してください。</p>
<ul>
<li>手順１：Javaプログラムのコンパイル($ javac JniExample.java)</li>
<li>手順２：Javaヘッダファイルの生成($ javah -jni JniExample)</li>
<li>手順３：C/C++プログラムのコンパイル<br />
($ g++ -fPIC -g -c -I/usr/java/jdk1.6.0_16/include -I/usr/java/jdk1.6.0_16/include/linux JniExample.cpp</li>
<li>手順４：共有ライブラリの生成($ g++ -shared -o libJniExample.so JniExample.o)</li>
</ul>
<p>この一連でコンパイルが完了します。実行時には、共有ライブラリのPATHをカレントディレクトリに指定($ export LD_LIBRARY_PATH=***.soのパス:$LD_LIBRARY_PATH)し、Javaのプログラム実行をします($ java JniExample)。これでJavaVMが立ち上がり、JavaとC/C++を用いたプログラムが実行されます。</p>
<h3>まとめ</h3>
<p>以上、簡単にJavaとC/C++をコラボレーションさせたプログラムの作成方法とその実行方法を説明しました。また、今後この発展系を紹介するかもしれませんので、そのときはご参考にしてください。</p>
<h3>参考サイト</h3>
<ul>
<li>[PDF] <a href="http://www.cs.technion.ac.il/~gabr/papers/cuj_jni.pdf" target="_blank">JNI-C++ integration made easy</a></li>
<li><a href='http://ja.wikipedia.org/wiki/Java_Native_Interface' target='_blank'>Java Native Interface &#8211; Wikipedia</a></li>
<li><a href='http://www.hellohiro.com/native.htm' target='_blank'>JavaでHello World　JNI編</a></li>
<li><a href='http://www.alles.or.jp/~torutk/oojava/maneuver/2001/jni/jni.html' target='_blank'>JNI:Java Native Interface</a></li>
</ul>
<table  class="g-tools_table">
<tr>
<td colspan="2"><span class="g-tools_title"><a href="http://www.amazon.co.jp/JNI-Native-Interface%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E2%80%95C-%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E7%94%A8%E3%81%84%E3%81%9FJava%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-books/dp/4894710803%3FSubscriptionId%3D15SMZCTB9V8NGR2TW082%26tag%3D1987yama3-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4894710803" target="_top">JNI:Java Native Interfaceプログラミング―C/C++コードを用いたJavaアプリケーション開発 (Java books)</a><img src='http://www.assoc-amazon.jp/e/ir?t=1987yama3-22&#038;l=ur2&#038;o=9' width='1' height='1' border='0' alt='' /></span></td>
</tr>
<tr>
<td valign="top"><span class="g-tools_img"><a href="http://www.amazon.co.jp/JNI-Native-Interface%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E2%80%95C-%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E7%94%A8%E3%81%84%E3%81%9FJava%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-books/dp/4894710803%3FSubscriptionId%3D15SMZCTB9V8NGR2TW082%26tag%3D1987yama3-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4894710803" target="_top"><img src="http://ecx.images-amazon.com/images/I/41KEMPES32L._SL160_.jpg"  alt="JNI:Java Native Interfaceプログラミング―C/C++コードを用いたJavaアプリケーション開発 (Java books)" /></a></span></td>
<td valign="top"><span class="g-tools_body">Rob Gordon </p>
<p><strong>おすすめ平均</strong> <img src="http://g-images.amazon.com/images/G/01/detail/stars-4-0.gif" /><br /><img src="http://g-images.amazon.com/images/G/01/detail/stars-4-0.gif" alt="stars" />かなり良い本であることは間違いないが・・・<br /><img src="http://g-images.amazon.com/images/G/01/detail/stars-4-0.gif" alt="stars" />日本で唯一のJNI専門書<br /><img src="http://g-images.amazon.com/images/G/01/detail/stars-4-0.gif" alt="stars" />JNIを使わなければならないに</p>
<p><a href="http://www.amazon.co.jp/JNI-Native-Interface%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E2%80%95C-%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E7%94%A8%E3%81%84%E3%81%9FJava%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-books/dp/4894710803%3FSubscriptionId%3D15SMZCTB9V8NGR2TW082%26tag%3D1987yama3-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4894710803" target="_top">Amazonで詳しく見る</a></span><span class="g-tools_by"> by <a href="http://www.goodpic.com/mt/aws/index.html" >G-Tools</a></span></td>
</tr>
</table>
<p><strong>関連記事</strong>
<ul class="similar-posts">
<li><a href="http://yamablo.com/2009/12/13-112411.php" title="Androidでタグクラウドを実装する（ソースコード付き）">Androidでタグクラウドを実装する（ソースコード付き）</a></li>
<li><a href="http://yamablo.com/2010/01/13-090952.php" title="人気のプログラミング言語ランキング">人気のプログラミング言語ランキング</a></li>
<li><a href="http://yamablo.com/2009/11/23-224843.php" title="Androidアプリ開発中">Androidアプリ開発中</a></li>
<li><a href="http://yamablo.com/2009/06/03-215212.php" title="[情報処理技術者] オープンソースソフトウェア（OSS）について">[情報処理技術者] オープンソースソフトウェア（OSS）について</a></li>
<li><a href="http://yamablo.com/2009/05/20-195349.php" title="[PHP] 正規表現を使ったValidate関数">[PHP] 正規表現を使ったValidate関数</a></li>
</ul>
<p><!-- Similar Posts took 36.251 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://yamablo.com/2010/01/07-105953.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://yamablo.com/2010/01/07-105953.php" />
	</item>
		<item>
		<title>[Linux] gcc, g++ によるC/C++のコンパイル・オプション</title>
		<link>http://yamablo.com/2009/12/26-172007.php</link>
		<comments>http://yamablo.com/2009/12/26-172007.php#comments</comments>
		<pubDate>Sat, 26 Dec 2009 08:20:07 +0000</pubDate>
		<dc:creator>yama3</dc:creator>
				<category><![CDATA[UNIX/Linux]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[C/C++]]></category>
		<category><![CDATA[最適化]]></category>
		<category><![CDATA[高速化]]></category>

		<guid isPermaLink="false">http://yamablo.com/?p=922</guid>
		<description><![CDATA[UNIX/Linuxを用いて、C/C++のプログラムをコンパイルする際に多くの場合使用するコンパイラはgccやg++と呼ばれるものを使うことがほとんどだと思います。なので、今回はこれらgccやg++コマンドを用いてC/C [...]]]></description>
			<content:encoded><![CDATA[<p>UNIX/Linuxを用いて、C/C++のプログラムをコンパイルする際に多くの場合使用するコンパイラはgccやg++と呼ばれるものを使うことがほとんどだと思います。なので、今回はこれらgccやg++コマンドを用いてC/C++のプログラムをコンパイルする際のオプションについて説明しようと思います。普通にコンパイルするだけなら、<span style="color: red;">gcc プログラム名</span>や<span style="color: red;">g++ プログラム名</span>などとしてコンパイルするだけでできてしまいます。しかし、このコンパイル時にいくつかのコンパイル・オプションを付加することにより、柔軟にプログラムのコンパイルを行うことができるようになります。例えば、コンパイル時間に時間がかかったとしてもプログラムの実行時間を短くしたい、とか生成される実行可能ファイルのファイル名を変更したり、ヘッダファイルのインクルードパスを変更したり、といったことができるようになります。では、続きでいくつかのオプションを紹介します。</p>
<h3>主要オプション</h3>
<h4>オプション -o</h4>
<p>後に続く文字列をファイル名とする実行可能ファイルを生成します。これを指定しない場合は、<strong>a.out</strong>という名前の実行可能ファイルを生成しますが、これを指定することで、実行可能ファイルの名前を任意の名前にすることが可能になります。</p>
<h4>オプション -c</h4>
<p>ソースファイルのコンパイルのみを行って、オプジェクトファイルを生成するためのオプション。リンカによるリンクを行わない。これにより生成されたオブジェクトファイルはリンクされていないため、そのままでは実行することはできない</p>
<h4>オプション -I</h4>
<p>通常のヘッダファイル以外のヘッダファイルを使用する際に、そのヘッダファイルが存在するパスを記述します。<span style="color: red;">-I</span>の後ろにヘッダファイルの存在するディレクトリへのパスを書くことによって使用できます。通常は使用する必要はないはず。</p>
<p><span id="more-922"></span></p>
<h3>最適化オプション（プログラムの高速化）</h3>
<h4>オプション -O1, -O2, -O3</h4>
<p>まず、実行プログラムの最適化を行うオプションです。実行可能ファイルのサイズやコンパイルに要する時間を犠牲にして、実行ファイルを実行した時の実行時間の短縮を行うことでプログラムの高速化を目指します。3つの種類は、最適化の強さの具合を表わしており、O1 -&gt; O2 -&gt; O3の順で最適化が強くなり、O3の場合が最も強い最適化を行います。</p>
<p><code> </p>
<pre class="dos">
g++ -O3 hello.cpp</pre>
<p></code></p>
<h4>オプション -mtune=cpu_type</h4>
<p>=の後ろのcpu_typeにはユーザ環境固有のCPUタイプを直接指定することで、プログラムの最適化を行います。設定できるマシンタイプはgcc, g++ のバージョンによって違うのですが、<strong>pentium4, prescott, nocona, core2</strong>などがあります。これは実行するマシンに依存したオプションの1つなので、使用するには注意が必要です。</p>
<p><code> </p>
<pre class="dos">
g++ -mtune=core2 hello.cpp</pre>
<p></code></p>
<p><strong>関連記事</strong>
<ul class="similar-posts">
<li><a href="http://yamablo.com/2010/01/13-224555.php" title="CentOSでGo（インストール編）">CentOSでGo（インストール編）</a></li>
<li><a href="http://yamablo.com/2009/12/11-085115.php" title="[UNIX/Linux] 文字コード変換コマンド nkf">[UNIX/Linux] 文字コード変換コマンド nkf</a></li>
<li><a href="http://yamablo.com/2009/05/23-122635.php" title="[Linux] tarコマンドによる圧縮・解凍コマンド">[Linux] tarコマンドによる圧縮・解凍コマンド</a></li>
<li><a href="http://yamablo.com/2009/09/23-114828.php" title="[Android開発] オプションメニューの生成とアイコン">[Android開発] オプションメニューの生成とアイコン</a></li>
<li><a href="http://yamablo.com/2009/07/24-120311.php" title="長倍精度演算用C++ライブラリNTLの利用">長倍精度演算用C++ライブラリNTLの利用</a></li>
</ul>
<p><!-- Similar Posts took 40.722 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://yamablo.com/2009/12/26-172007.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://yamablo.com/2009/12/26-172007.php" />
	</item>
		<item>
		<title>[Androidアプリ] EStrong Exploler</title>
		<link>http://yamablo.com/2009/12/22-011324.php</link>
		<comments>http://yamablo.com/2009/12/22-011324.php#comments</comments>
		<pubDate>Mon, 21 Dec 2009 16:13:24 +0000</pubDate>
		<dc:creator>yama3</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[UNIX/Linux]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[Samba]]></category>
		<category><![CDATA[アプリ]]></category>

		<guid isPermaLink="false">http://yamablo.com/?p=895</guid>
		<description><![CDATA[Androidで自分が使っているファイラーアプリ（EStrong Exploler）に先日バージョンアップがあり、とても便利な機能が付いたのでブログに書いてみようと思います。ファイラーといえば、Astroあたりが人気のよ [...]]]></description>
			<content:encoded><![CDATA[<p>Androidで自分が使っているファイラーアプリ（<strong>EStrong Exploler</strong>）に先日バージョンアップがあり、とても便利な機能が付いたのでブログに書いてみようと思います。ファイラーといえば、<strong>Astro</strong>あたりが人気のようだが、自分は、<strong>EStrong Exploler</strong>を使っている。というのも、このアプリは、Android端末のSDカード以外にも実はSambaサーバーのフォルダも参照できるようになっている。これは、自宅などでSambaサーバーを運用している人にとっては重宝する機能だと思う。自分自身、自宅内のみのローカルサーバーではあるが、Linux(CentOS)にSambaを起動させて運用している。そして、自宅内では無線LAN(Wi-Fi)も運用しているので、自宅にいるときにはHT03-AにてCentOSの共有フォルダ内を自由に参照することができるのだ。この機能が以前から重要だと考えていたので、<strong>EStrong Exploler</strong>を使い続けてきた。</p>
<h3>最近の新機能</h3>
<p><a href="http://yamablo.com/wp-content/uploads/2009/12/estrongExp00.jpg"><img alt="" src="http://yamablo.com/wp-content/uploads/2009/12/estrongExp00.jpg" class="aligncenter" width="450" /></a></p>
<p>上で書いたSambaサーバーを利用できるだけでもよかったのだが、さらに今回新機能がついた。それは、FTPサーバー内のフォルダを閲覧できるようになった。残念ながらファイルの閲覧・編集は現在は無理（？）のようだが、これは時期にバージョンアップにより可能になるだろう。とはいえ、FTPサーバー内のファイルをコピーして自端末内やSambaサーバー上に複製したり、自端末やSambaサーバー上からファイルをアップロードすることも可能である。Web運営を行っている人にとっては、ここまで便利なアプリはなかなかないだろう。実は昨日、<strong>AndFTP</strong>というアプリを見てインストールしてみたのだが、これはFTPサーバーとの接続がメインであって、自端末やSambaサーバーとのアップロード・ダウンロードについては考慮されていない気がする。</p>
<p><span id="more-895"></span><br />
<!-- img1 --><br />
<a href="http://yamablo.com/wp-content/uploads/2009/12/estrongExp10.jpg"><img alt="" src="http://yamablo.com/wp-content/uploads/2009/12/estrongExp10.jpg" class="aligncenter" width="400" /></a></p>
<h3>微妙な日本語化がおもしろい</h3>
<p>これは機能というわけではないのだが、もともとは海外製のアプリで、それを何かの翻訳機のようなもので日本語対応させているように思われる。例えば、メニューを開くと<strong>任務管理器</strong>なる項目が存在したり、「新しい」という項目があったりする。ほかにも、「私どもについて」とか「もう一度おすと終了するには」といった項目が操作をしていると出てきます。こういった部分がちょっと面白く疲れた気分のときに癒されたり癒されなかったり。</p>
<p><!-- img2 --><br />
<a href="http://yamablo.com/wp-content/uploads/2009/12/estrongExp06.png"><img alt="" src="http://yamablo.com/wp-content/uploads/2009/12/estrongExp06.png" class="aligncenter" width="250" /></a></p>
<h3>どんなAndroidユーザが使うべき？</h3>
<p>当然、Sambaサーバーを自宅内や会社内などの通常過ごす空間に導入されている方、また、Webサーバ（FTPサーバー）を運用し、Webページを作っている方なんかには役立つアプリケーションではないでしょうか？</p>
<p><strong>関連記事</strong>
<ul class="similar-posts">
<li><a href="http://yamablo.com/2009/09/17-222346.php" title="android 路線探索アプリの比較">android 路線探索アプリの比較</a></li>
<li><a href="http://yamablo.com/2009/10/14-201302.php" title="HT-03Aにインストールしているアプリ一覧">HT-03Aにインストールしているアプリ一覧</a></li>
<li><a href="http://yamablo.com/2009/11/23-224843.php" title="Androidアプリ開発中">Androidアプリ開発中</a></li>
<li><a href="http://yamablo.com/2010/05/01-223615.php" title="Android Marketに公開して3週間">Android Marketに公開して3週間</a></li>
<li><a href="http://yamablo.com/2010/05/16-222757.php" title="Android アプリ開発時の汎用関数の紹介">Android アプリ開発時の汎用関数の紹介</a></li>
</ul>
<p><!-- Similar Posts took 52.361 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://yamablo.com/2009/12/22-011324.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://yamablo.com/2009/12/22-011324.php" />
	</item>
		<item>
		<title>[UNIX/Linux] 文字コード変換コマンド nkf</title>
		<link>http://yamablo.com/2009/12/11-085115.php</link>
		<comments>http://yamablo.com/2009/12/11-085115.php#comments</comments>
		<pubDate>Thu, 10 Dec 2009 23:51:15 +0000</pubDate>
		<dc:creator>yama3</dc:creator>
				<category><![CDATA[UNIX/Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[nkf]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[コマンド]]></category>
		<category><![CDATA[文字コード]]></category>

		<guid isPermaLink="false">http://yamablo.com/?p=850</guid>
		<description><![CDATA[UNIX/LinuxとWindowsマシンを使い分けている人にとってやっかいなことの1つは、マシン間での文字コードの変換でしょう。WindowsはShift-JIS、それに対してUNIX/LinuxはUTF-8であったり [...]]]></description>
			<content:encoded><![CDATA[<p>UNIX/LinuxとWindowsマシンを使い分けている人にとってやっかいなことの1つは、マシン間での文字コードの変換でしょう。WindowsはShift-JIS、それに対してUNIX/LinuxはUTF-8であったりEUC-JPであったりと文字コードがWindowsと違っていることが多いですよね。となると、UNIX/Linux側でファイルサーバ（Samba）を起動し、ファイル共有を行っていたとしても、文字コードが違っているためにうまく使えないこともあると思います。そんなときに、UNIX/Linuxマシンには文字コードを変換するコマンド<strong>nkf</strong>が存在します。今回は、そんなnkfコマンドについて解説します。</p>
<h3>文字コード変換といえばnkf</h3>
<p>基本的な構文は、</p>
<p><code>
<pre class="dos">
$ nkf オプション ファイル名 [ &gt; 出力ファイル名]
</pre>
<p></code></p>
<p>となっています。また、オプションは、</p>
<ul>
<li>-j(省略可)：JISコード（ISO-2022-JP）を出力</li>
<li>-e：EUCコードを出力</li>
<li>-s：Shift-JISコードを出力</li>
<li>-w：UTF-8コードを出力（BOM無し）</li>
<li>-Lu：UNIX改行形式（LF）に変換</li>
<li>-Lw：Windows改行形式（CRLF）に変換</li>
<li>-Lm：Macintosh改行形式（CR）に変換</li>
<li>-g(&#8211;guess)：自動判別の結果を表示</li>
<li>&#8211;overwrite：引数のファイルに直接上書き</li>
<li>&#8211;version：バージョン情報を表示（インストール済みかのチェックなど）</li>
</ul>
<p>となっています。変換先文字コードの頭文字1文字（UTF-8の場合例外的にw）ですね。また、環境によって変わってくる改行形式（CR, LF, CR+LF）についても、L～というオプションによって変換できます。LはLine break（改行）の略でしょうか。また、現在のファイルの文字コードを知りたい場合は、-gオプションを使えばOKです。</p>
<p><span id="more-850"></span></p>
<p>このまま<strong>nkf -w ファイル名</strong>などとしただけでは、ファイルの文字コードは変換されずに、指定した文字コードに変換したファイルの中身がそのままターミナル上に出力されるだけになります。文字コードを変換したファイルを作成するには、<strong> &gt; 出力ファイル名</strong>などとして、出力先をファイルにしましょう。この指定方法では、同じファイル名を指定すると、ファイルのデータが消失してしまうので注意しましょう。この方法で行う場合は、文字コードを変換するファイル名と出力先ファイル名は別のファイル名を指定しましょう。しかし、文字コードをnkfコマンドで変換してその後、mvコマンドでファイル名を変換し、上書きするのは面倒です。そんな場合は、nkfコマンドに<strong>&#8211;overwrite</strong>オプションを付加しましょう。overwriteオプションを付加することによって、入力となるファイルの文字コードを指定した文字コードに変換した結果で入力ファイルを上書きしてくれます。</p>
<h3>コマンド例文</h3>
<p><code>
<pre class="dos">
$ nkf -g example.txt       # 文字コードをチェック
$ nkf -e example.txt       # EUCに変換した結果を標準出力
$ nkf -e example.txt &gt; conv.txt    # EUCに変換した結果をconv.txtに出力
$ nkf -e --overwrite example.txt      # 文字コードをEUCに変換し、上書き
$ nkf -w Lu --overwrite example.txt   # 文字コードをUTF-8、改行コードをUNIX/Linixに変換し、上書き
$ nkf -s --overwrite *.html           # ディレクトリ内すべての～.htmlファイルをShift-JISに変換し上書き
</pre>
<p></code></p>
<p><strong>関連記事</strong>
<ul class="similar-posts">
<li><a href="http://yamablo.com/2009/05/23-122635.php" title="[Linux] tarコマンドによる圧縮・解凍コマンド">[Linux] tarコマンドによる圧縮・解凍コマンド</a></li>
<li><a href="http://yamablo.com/2009/12/26-172007.php" title="[Linux] gcc, g++ によるC/C++のコンパイル・オプション">[Linux] gcc, g++ によるC/C++のコンパイル・オプション</a></li>
<li><a href="http://yamablo.com/2009/07/21-214512.php" title="PHPとUTF-8の罠">PHPとUTF-8の罠</a></li>
<li><a href="http://yamablo.com/2009/05/21-131806.php" title="XAMPP for LinuxをVineLinuxにインストールさせた">XAMPP for LinuxをVineLinuxにインストールさせた</a></li>
<li><a href="http://yamablo.com/2010/02/08-212746.php" title="パソコンのキーバインドを変更する方法">パソコンのキーバインドを変更する方法</a></li>
</ul>
<p><!-- Similar Posts took 46.413 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://yamablo.com/2009/12/11-085115.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://yamablo.com/2009/12/11-085115.php" />
	</item>
		<item>
		<title>Android Donutsが配信されました</title>
		<link>http://yamablo.com/2009/10/30-203845.php</link>
		<comments>http://yamablo.com/2009/10/30-203845.php#comments</comments>
		<pubDate>Fri, 30 Oct 2009 11:38:45 +0000</pubDate>
		<dc:creator>yama3</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Donuts]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[モバイル]]></category>

		<guid isPermaLink="false">http://yamablo.com/?p=768</guid>
		<description><![CDATA[1週間前にいきなり（？）配信が開始されたAndroid Donuts(ver1.6)ですが、ようやく本日の午前4：00ごろに私のHT03-Aにも配信されてきました。待っていてもなかなか来ないので、もしかしたら自分のところ [...]]]></description>
			<content:encoded><![CDATA[<p>1週間前にいきなり（？）配信が開始されたAndroid Donuts(ver1.6)ですが、ようやく本日の午前4：00ごろに私のHT03-Aにも配信されてきました。待っていてもなかなか来ないので、もしかしたら自分のところにはずっと配信されないんじゃないか？とも思っていましたけれど、無事配信されてよかったです。ちなみにインストール前の確認画面が左下みたいなので、インストールを指定し再起動をかけたときのセットアップ中の画像が右下みたいな感じです。セットアップ時間はだいたい4分半くらいだったかな。</p>
<div style="margin: 10px auto; width: 480px;">
<a href="http://yamablo.com/wp-content/uploads/2009/10/DonutsPrev.png"><img src="http://yamablo.com/wp-content/uploads/2009/10/DonutsPrev-200x300.png" alt="DonutsPrev" title="DonutsPrev" width="180" height="300" class="aligncenter size-medium wp-image-765" style="float: left;" /></a><br />
<a href="http://yamablo.com/wp-content/uploads/2009/10/androidSetup.jpg"><img src="http://yamablo.com/wp-content/uploads/2009/10/androidSetup-300x225.jpg" alt="androidSetup" title="androidSetup" width="270" height="225" class="aligncenter size-medium wp-image-764" style="float: right;" /></a>
</div>
<hr style="clear: both; width: 0px;" />
<p>セットアップが完了し、起動し終わると無事Donuts(1.6)にアップデートされていることが分かります。</p>
<p><span id="more-768"></span></p>
<h3>Donutsの使用感</h3>
<p>思っていたよりはサクサク動かないなぁという点はちょっと残念かな。あとは、検索バーが使いやすくなったってのは嬉しい変更点。今まではWeb上しか検索しなかったけど、アプリの検索もしてくれるし、連絡先も拾ってきてくれる点がいいなぁと思います。しかし、検索バーが少しだけスリムになった（縦幅が小さくなった）点はいいのですが、その結果作られたわずかなスペースがデッドスペースになってしまっているんですよね。このデッドスペースだけはどうにかして欲しいなぁと思うんですがどうなんでしょうか。個人的には、検索バーのサイズは今までのままでよかったんじゃないか？と思います。</p>
<div style="margin: 10px auto; width: 430px;">
<a href="http://yamablo.com/wp-content/uploads/2009/10/Donuts03.png"><img src="http://yamablo.com/wp-content/uploads/2009/10/Donuts03-200x300.png" alt="Donuts03" title="Donuts03" width="200" height="300" class="aligncenter size-medium wp-image-767" style="float: left;" /></a><a href="http://yamablo.com/wp-content/uploads/2009/10/Donuts01.png"><img src="http://yamablo.com/wp-content/uploads/2009/10/Donuts01-200x300.png" alt="Donuts01" title="Donuts01" width="200" height="300" class="aligncenter size-medium wp-image-766" style="float: right;" /></a></p>
<hr style="clear: both; width: 0px;" />
</div>
<p><strong>関連記事</strong>
<ul class="similar-posts">
<li><a href="http://yamablo.com/2010/05/01-223615.php" title="Android Marketに公開して3週間">Android Marketに公開して3週間</a></li>
<li><a href="http://yamablo.com/2009/11/11-095109.php" title="Android 搭載端末一覧">Android 搭載端末一覧</a></li>
<li><a href="http://yamablo.com/2008/11/12-212238.php" title="[Web] Google Web Master Tool 新機能？">[Web] Google Web Master Tool 新機能？</a></li>
<li><a href="http://yamablo.com/2009/05/31-120941.php" title="最近ブックマークしたブログ記事＆ニュース記事">最近ブックマークしたブログ記事＆ニュース記事</a></li>
<li><a href="http://yamablo.com/2009/06/01-212402.php" title="Google Chromeがバージョンアップ">Google Chromeがバージョンアップ</a></li>
</ul>
<p><!-- Similar Posts took 65.718 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://yamablo.com/2009/10/30-203845.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://yamablo.com/2009/10/30-203845.php" />
	</item>
		<item>
		<title>AppleのMagic Mouse</title>
		<link>http://yamablo.com/2009/10/21-221931.php</link>
		<comments>http://yamablo.com/2009/10/21-221931.php#comments</comments>
		<pubDate>Wed, 21 Oct 2009 13:19:31 +0000</pubDate>
		<dc:creator>yama3</dc:creator>
				<category><![CDATA[OS]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[マウス]]></category>

		<guid isPermaLink="false">http://yamablo.com/?p=746</guid>
		<description><![CDATA[iPhoneから始まり, iPod Touch, MacBook Proなどで利用されているマルチタッチ型のインターフェースが今度はMacのデスクトップ用のマウスでも利用できるようになったようです. クリック操作や360 [...]]]></description>
			<content:encoded><![CDATA[<p>iPhoneから始まり, iPod Touch, MacBook Proなどで利用されているマルチタッチ型のインターフェースが今度はMacのデスクトップ用のマウスでも利用できるようになったようです. クリック操作や360度スクロール, ズーム, スワイプ操作と数々の操作をマルチタッチのマウスにて行うことができます. しかもMacとの接続方式はBluetoothとのことで, 煩わしいコード配線に悩む必要もありません. </p>
<p>自分自身, 今使っているPCがWindowsマシンとUNIX/Linuxマシンということで, この<strong>Magic Mouse</strong>を利用することはできませんが, Windowsマシンを離脱してMacマシンに乗り換えるときがきたらきっとこのMagic Mouseにお世話になることでしょう。そのときを期待しながら待つことに<br />
します. </p>
<h3>参考サイト</h3>
<ul>
<li><a href='http://www.apple.com/jp/magicmouse/' target='_blank'>アップル &#8211; Magic Mouse &#8211; 世界初、マルチタッチ対応のMagic Mouse登場。</a></li>
<li><a href='http://ameblo.jp/ohorikawa/entry-10369893589.html' target='_blank'>新型iMacとMagic Mouse｜Thank U &#8211; WEB・携帯 システム開発、ECサイト構築、サイト制作、EC-CUBEカスタマイズ、Movable Typeカスタマイズ、SEO</a></li>
<li><a href='http://japanese.engadget.com/2009/10/20/imac-27-apple-magic-mouse/' target='_blank'>新 iMac 27インチ ＆ Apple Magic Mouse 実機ギャラリー</a></li>
<li><a href='http://d.hatena.ne.jp/tanemori/20091021/MagicMouse' target='_blank'>Magic Mouse &#8211; soundscape out</a></li>
<li><a href='http://d.hatena.ne.jp/Imamura/20091021/1256109600' target='_blank'>Magic Mouse買えず &#8211; Imamuraの日記</a></li>
</ul>
<p><strong>関連記事</strong>
<ul class="similar-posts">
<li><a href="http://yamablo.com/2009/10/05-090552.php" title="Mac People 2009.11">Mac People 2009.11</a></li>
<li><a href="http://yamablo.com/2009/05/25-124055.php" title="Mac OS Xを狙うトロイの木馬">Mac OS Xを狙うトロイの木馬</a></li>
<li><a href="http://yamablo.com/2009/03/14-125613.php" title="PC周りのコードレス化">PC周りのコードレス化</a></li>
<li><a href="http://yamablo.com/2009/05/09-183220.php" title="[第1回]Windows7RCレビュー（数式入力パネル編）">[第1回]Windows7RCレビュー（数式入力パネル編）</a></li>
<li><a href="http://yamablo.com/2009/05/19-233030.php" title="NTT DoCoMoからGoogle Android搭載携帯を発売">NTT DoCoMoからGoogle Android搭載携帯を発売</a></li>
</ul>
<p><!-- Similar Posts took 48.087 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://yamablo.com/2009/10/21-221931.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://yamablo.com/2009/10/21-221931.php" />
	</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.880 seconds -->
