<?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/"
	>

<channel>
	<title>SUEKICHI.org</title>
	<atom:link href="http://www.suekichi.org/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.suekichi.org/blog</link>
	<description>IT全般、プログラムとかいろいろ。</description>
	<lastBuildDate>Wed, 01 Feb 2012 03:53:03 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>ApacheのMaxClientsの設定とその挙動をまとめてみた</title>
		<link>http://www.suekichi.org/blog/2011/12/apache_maxclients/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apache_maxclients</link>
		<comments>http://www.suekichi.org/blog/2011/12/apache_maxclients/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 15:08:14 +0000</pubDate>
		<dc:creator>suekichi</dc:creator>
				<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.suekichi.org/blog/?p=159</guid>
		<description><![CDATA[ApacheのMaxClientsの設定とその挙動、mod_proxyの設定との関係について、なんとなくの理解だったので、まとめてみた。 環境 CentOS 5.6 Apache 2.2.3 MaxClients Max [...]]]></description>
			<content:encoded><![CDATA[<p>ApacheのMaxClientsの設定とその挙動、mod_proxyの設定との関係について、なんとなくの理解だったので、まとめてみた。</p>
<h2>環境</h2>
<ul>
<li>CentOS 5.6</li>
<li>Apache 2.2.3</li>
</ul>
<h2>MaxClients</h2>
<h3>MaxClientsを超えたコネクションがあった場合</h3>
<p>ListenBacklog の設定までキューにたまる、と<a href="http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxclients">ドキュメント</a>にはあるが、実際に接続してみると、なぜかそれ以上に接続できた。<br />
リクエストの処理を実行している(リクエストを受信し処理している)コネクションは、MaxClientsの値まで数、同時に処理されている（これをアクティブな接続と呼ぶことにする）。<br />
リクエストの処理が開始された時点で、以下のエラーログが出力される。<br />
<code><br />
[error] server reached MaxClients setting, consider raising the MaxClients setting<br />
</code><br />
このログが出力されるには以下の条件がある。</p>
<ul>
<li>コネクションのみの場合は出力されない。</li>
<li>起動から初めて、MaxClientsを超えた時にだけログが出力される。</li>
<li>reload(sighup)後、MaxClientsを超えた時にはログは出力されない。</li>
<li>restart(sigterm)後、MaxClientsを超えた時にログが出力される。</li>
</ul>
<p>アクティブなコネクションがMaxClientsの数ある状態から、MaxClients以下になった場合、待ちとなっていたコネクションが順次処理される。それ以外の接続は待ち状態のまま。</p>
<h2>mod_proxy max</h2>
<h3>設定値についての注意点</h3>
<ul>
<li>preforkの場合、常に1となる。</li>
<li>workerの場合、設定が有効となる。ただし、1プロセスあたりのバックエンドへのコネクションのmax値。つまり、バックエンドサーバーとの最大接続数は以下の式で求められる数となる。<br />
<code><br />
ServerLimit * max<br />
</code>
</li>
</ul>
<h3>1プロセスあたりの接続数がmaxを超えた場合</h3>
<ul>
<li>retry * timeoutの間、待ちになる</li>
<li>retry * timeoutを超えた場合503が発生する</li>
</ul>
<h3>maxを超えた接続がある状態で、max	以下になった場合</h3>
<p>順次実行される</p>
]]></content:encoded>
			<wfw:commentRss>http://www.suekichi.org/blog/2011/12/apache_maxclients/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google カレンダーのデザインが変わった!!! Google Calendar Color 拡張機能はまだ使えます</title>
		<link>http://www.suekichi.org/blog/2011/07/google_calendar_color_ok_20110701/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google_calendar_color_ok_20110701</link>
		<comments>http://www.suekichi.org/blog/2011/07/google_calendar_color_ok_20110701/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 00:43:57 +0000</pubDate>
		<dc:creator>suekichi</dc:creator>
				<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">http://www.suekichi.org/blog/?p=149</guid>
		<description><![CDATA[Googleカレンダーのデザインがきれいになりましたね。 やっと、土日の色もきれいになるのかとおもいきや、そこは今までのままでした・・・ というわけで、公開している Google Calendar Color 拡張機能  [...]]]></description>
			<content:encoded><![CDATA[<p>Googleカレンダーのデザインがきれいになりましたね。<br />
やっと、土日の色もきれいになるのかとおもいきや、そこは今までのままでした・・・</p>
<p>というわけで、公開している<br />
<a href="http://www.suekichi.org/blog/google-calendar-color-extension/"><br />
Google Calendar Color 拡張機能<br />
</a><br />
ですが、まだ必要なようです。デザイン変更後も、ちゃんと使えるようです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.suekichi.org/blog/2011/07/google_calendar_color_ok_20110701/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Calendar Color 拡張機能にFirefox用日曜始まり版を追記しました</title>
		<link>http://www.suekichi.org/blog/2011/04/add_sunday_css_google-calendar-color/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=add_sunday_css_google-calendar-color</link>
		<comments>http://www.suekichi.org/blog/2011/04/add_sunday_css_google-calendar-color/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 14:49:06 +0000</pubDate>
		<dc:creator>suekichi</dc:creator>
				<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">http://www.suekichi.org/blog/?p=146</guid>
		<description><![CDATA[Google Calendar Color 拡張機能にFirefox用日曜始まり版を追記しました。 Firefoxユーザーの方は、userContent.cssに記入すれば、使えると思います。 http://www.su [...]]]></description>
			<content:encoded><![CDATA[<p>Google Calendar Color 拡張機能にFirefox用日曜始まり版を追記しました。<br />
Firefoxユーザーの方は、userContent.cssに記入すれば、使えると思います。</p>
<p>http://www.suekichi.org/blog/google-calendar-color-extension/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.suekichi.org/blog/2011/04/add_sunday_css_google-calendar-color/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HT-03AにCyanogenMod-6.1を入れてみた</title>
		<link>http://www.suekichi.org/blog/2010/12/ht-03a_cyanogenmod-6-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ht-03a_cyanogenmod-6-1</link>
		<comments>http://www.suekichi.org/blog/2010/12/ht-03a_cyanogenmod-6-1/#comments</comments>
		<pubDate>Sat, 11 Dec 2010 14:28:15 +0000</pubDate>
		<dc:creator>suekichi</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.suekichi.org/blog/?p=110</guid>
		<description><![CDATA[HT-03AにAndroid 2.2ベースであるカスタムrom、CyanogenMod-6.1を入れてみました。 以下、その手順。 1. root化 　私のHT-03Aは純正の1.6でしたので、Universal And [...]]]></description>
			<content:encoded><![CDATA[<p>HT-03AにAndroid 2.2ベースであるカスタムrom、CyanogenMod-6.1を入れてみました。<br />
以下、その手順。</p>
<p>1. root化<br />
　私のHT-03Aは純正の1.6でしたので、Universal Androotを利用しました。<br />
　これまで純正1.6からのroot化は、1.5に戻してからなど、かなり大変な作業で躊躇していたのですが、このソフトのおかげであっという間にroot化OKでした。<br />
2. CyanogenMod romイメージのインストール。<br />
　ROM Managerというソフトを利用してインストールしました。<br />
　このソフトから、CyanogenModのromイメージをダウンロードして、インストールできるはずだったんですが、なぜか私が作業した時には、ダウンロードでエラーが発生してしまいましたので、直接xda developersからダウンロード後、SDカードにコピーして、SDカードからのインストールでインストールしました。</p>
<p>モッサロイドのHT-03Aなので、Android 2.2なんて使いものにならないと思っていたのですが、結構いい感じです。1.6より快適な感じ。<br />
一応スクリーンショットなどを。<br />
<a href="http://www.suekichi.org/blog/wp-content/uploads/2010/12/blog20101211-1.png"><img src="http://www.suekichi.org/blog/wp-content/uploads/2010/12/blog20101211-1.png" alt="" title="HT-03A CyanogenMod-6.1 スクリーンショット" width="320" height="480" class="alignnone size-full wp-image-113" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.suekichi.org/blog/2010/12/ht-03a_cyanogenmod-6-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaのInteger等のプリミティブ型ラッパクラスには要注意！</title>
		<link>http://www.suekichi.org/blog/2010/11/java_premitive/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=java_premitive</link>
		<comments>http://www.suekichi.org/blog/2010/11/java_premitive/#comments</comments>
		<pubDate>Sun, 14 Nov 2010 09:29:12 +0000</pubDate>
		<dc:creator>suekichi</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">http://www.suekichi.org/blog/?p=105</guid>
		<description><![CDATA[基本的なことだけど、Javaには、プリミティブ型とオブジェクト型がある。 プリミティブ型とは、boolean, int, long, double, floatとか。 それに対応するように、Boolean, Intege [...]]]></description>
			<content:encoded><![CDATA[<p>基本的なことだけど、Javaには、プリミティブ型とオブジェクト型がある。<br />
プリミティブ型とは、boolean, int, long, double, floatとか。<br />
それに対応するように、Boolean, Integer, Long, Double, Floatクラスがある。</p>
<p>これらのプリミティブ型とオブジェクト型、何が一番違うかというと、nullが入るかどうか（表現が変だけど）。<br />
つまり、</p>
<pre class="brush: java; title: ; notranslate">
int a = null; //コンパイルエラー
Integer b = null; //OK
</pre>
<p>ということだ。</p>
<p>あと、よく使われるのが、</p>
<pre class="brush: java; title: ; notranslate">
List&lt;Integer&gt; list = new ArrayList&lt;Integer&gt;();
list.add(1);

for (int i : list) {
	System.out.println(&quot;i=&quot; + i);
}
</pre>
<p>といったように、Collectionに数値を入れたい場合に使う。<br />
JDK1.4以降からの機能で、プリミティブ型の変数にオブジェクト型のオブジェクトをコード上はそのまま入れられるようになった。<br />
しかし、ここで注意！</p>
<p>最初に言ったように、Integerには、nullが入る。<br />
けど、intにはnullは入らない。<br />
なので、この例の場合、listというArrayListに、nullが入っている場合、<br />
for文のところで、NullPointerExceptionが発生する。<br />
このパターンで、NullPointerExceptionが発生した場合、<br />
debug等で見つけるのがちょっとわかりにくい。<br />
もしくは、Collectionから取り出したInteger等の変数を、<br />
プリミティブ型の引数を持ったメソッドに渡した場合なども、<br />
どこでNullPointerExceptionが発生しているのか、発生源を特定するのが難しいのだ。</p>
<p>アタリマエのことなのだけど、<br />
あまり気にしてないとハマるので、覚書。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.suekichi.org/blog/2010/11/java_premitive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DTI ServersMan@VPS Entryでunixbenchしてみた</title>
		<link>http://www.suekichi.org/blog/2010/09/dti-serversman-vps-entry-unixbench/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dti-serversman-vps-entry-unixbench</link>
		<comments>http://www.suekichi.org/blog/2010/09/dti-serversman-vps-entry-unixbench/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 12:38:31 +0000</pubDate>
		<dc:creator>suekichi</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[DTI]]></category>
		<category><![CDATA[ServersMan]]></category>
		<category><![CDATA[unixbench]]></category>
		<category><![CDATA[VPS]]></category>

		<guid isPermaLink="false">http://www.suekichi.org/blog/?p=83</guid>
		<description><![CDATA[とってもいまさらな感じですが、DTIのServerMan@VPS Entryで、unixbenchを動かしてみました。 BYTE UNIX Benchmarks (Version 5.1.2) System: dti-v [...]]]></description>
			<content:encoded><![CDATA[<p>とってもいまさらな感じですが、DTIのServerMan@VPS Entryで、unixbenchを動かしてみました。</p>
<div class="console">
   BYTE UNIX Benchmarks (Version 5.1.2)</p>
<p>   System: dti-vps-srv06: GNU/Linux<br />
   OS: GNU/Linux &#8212; 2.6.18-164.15.1.el5.028stab068.9 &#8212; #1 SMP Tue Mar 30 18:07:38 MSD 2010<br />
   Machine: i686 (i386)<br />
   Language: en_US.utf8 (charmap=&#8221;UTF-8&#8243;, collate=&#8221;UTF-8&#8243;)<br />
   CPU 0: Intel(R) Xeon(R) CPU L5520 @ 2.27GHz (4522.1 bogomips)<br />
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization<br />
   18:40:46 up 11 days,  2:20,  1 user,  load average: 0.29, 0.10, 0.02; runlevel </p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Benchmark Run: 金  9月 24 2010 18:40:46 &#8211; 19:14:15<br />
1 CPU in system; running 1 parallel copy of tests</p>
<p>Dhrystone 2 using register variables        4156504.7 lps   (10.0 s, 7 samples)<br />
Double-Precision Whetstone                     2138.6 MWIPS (10.3 s, 7 samples)<br />
Execl Throughput                               1461.9 lps   (29.5 s, 2 samples)<br />
File Copy 1024 bufsize 2000 maxblocks        172170.9 KBps  (30.0 s, 2 samples)<br />
File Copy 256 bufsize 500 maxblocks           46631.5 KBps  (30.0 s, 2 samples)<br />
File Copy 4096 bufsize 8000 maxblocks        368636.3 KBps  (30.0 s, 2 samples)<br />
Pipe Throughput                              313563.3 lps   (10.0 s, 7 samples)<br />
Pipe-based Context Switching                  98627.6 lps   (10.0 s, 7 samples)<br />
Process Creation                               4646.2 lps   (30.0 s, 2 samples)<br />
Shell Scripts (1 concurrent)                   1579.2 lpm   (60.0 s, 2 samples)<br />
Shell Scripts (8 concurrent)                    224.7 lpm   (60.2 s, 2 samples)<br />
System Call Overhead                         258911.3 lps   (10.0 s, 7 samples)</p>
<p>System Benchmarks Index Values               BASELINE       RESULT    INDEX<br />
Dhrystone 2 using register variables         116700.0    4156504.7    356.2<br />
Double-Precision Whetstone                       55.0       2138.6    388.8<br />
Execl Throughput                                 43.0       1461.9    340.0<br />
File Copy 1024 bufsize 2000 maxblocks          3960.0     172170.9    434.8<br />
File Copy 256 bufsize 500 maxblocks            1655.0      46631.5    281.8<br />
File Copy 4096 bufsize 8000 maxblocks          5800.0     368636.3    635.6<br />
Pipe Throughput                               12440.0     313563.3    252.1<br />
Pipe-based Context Switching                   4000.0      98627.6    246.6<br />
Process Creation                                126.0       4646.2    368.7<br />
Shell Scripts (1 concurrent)                     42.4       1579.2    372.5<br />
Shell Scripts (8 concurrent)                      6.0        224.7    374.5<br />
System Call Overhead                          15000.0     258911.3    172.6<br />
                                                                   ========<br />
System Benchmarks Index Score                                         335.3
</p></div>
<p>まー、予想通りな感じ。490円/月で十分ですな。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.suekichi.org/blog/2010/09/dti-serversman-vps-entry-unixbench/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google  Calendar の土日に色をつけるExtentsion、まだ使えます</title>
		<link>http://www.suekichi.org/blog/2010/05/google_calendar_extenion_useful/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google_calendar_extenion_useful</link>
		<comments>http://www.suekichi.org/blog/2010/05/google_calendar_extenion_useful/#comments</comments>
		<pubDate>Thu, 20 May 2010 14:59:47 +0000</pubDate>
		<dc:creator>suekichi</dc:creator>
				<category><![CDATA[プログラム]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.suekichi.org/blog/?p=64</guid>
		<description><![CDATA[今日、Google Calendarを見ると、デザインがアップデートされたとメッセージが表示されました。 これで、土日の色が公式に対応されたかっ！と思ったのですが、残念ながら対応されていませんでした。 以前作成したChr [...]]]></description>
			<content:encoded><![CDATA[<p>今日、Google Calendarを見ると、デザインがアップデートされたとメッセージが表示されました。<br />
これで、土日の色が公式に対応されたかっ！と思ったのですが、残念ながら対応されていませんでした。</p>
<p>以前作成したChrome用のExtensionですが、確認したところまだ有効でしたので、よければご利用ください。</p>
<p><a href="http://www.suekichi.org/blog/2010/04/google-calendar-color/">Google Calendar の土日に色をつける方法</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.suekichi.org/blog/2010/05/google_calendar_extenion_useful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhoneとAndroid、エンジニア的に比べてみた</title>
		<link>http://www.suekichi.org/blog/2010/05/iphone_vs_android/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=iphone_vs_android</link>
		<comments>http://www.suekichi.org/blog/2010/05/iphone_vs_android/#comments</comments>
		<pubDate>Tue, 04 May 2010 02:44:20 +0000</pubDate>
		<dc:creator>suekichi</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.suekichi.org/blog/?p=51</guid>
		<description><![CDATA[iPhoneとAndroid、エンジニア的に比べてみた 現在、iPhone 3GSを利用しているが以前はHT-03A、俗に言うGoogleケータイを利用していたことがある。ハードウェアスペックが足らず、のちにモッサロイド [...]]]></description>
			<content:encoded><![CDATA[<p>iPhoneとAndroid、エンジニア的に比べてみた</p>
<p>現在、iPhone 3GSを利用しているが以前はHT-03A、俗に言うGoogleケータイを利用していたことがある。ハードウェアスペックが足らず、のちにモッサロイドと呼ばれるほどトロい動作のため、iPhoneに乗り換えてしまった。日本初のAndroid携帯だったにもかかわらずまったく売れず、あたかもXperiaが初めてのAndroidのような扱い。<br />
実は、HT-03AもXperiaもソフトウェア的にはほとんど一緒で、ハードウェアスペックがかなりあがって、ソニー独自のアプリがインストールされているだけだ。</p>
<p>iPhoneとXperia(Android)を比べる記事はよくあるのだが、今回は、<br />
あまり書かれていない、よりエンジニア的な比べ方をしてみようと思う。</p>
<table>
<caption>iPhoneとAndroidの比較表</caption>
<tr>
<th></th>
<th>iPhone</th>
<th>Android</th>
</tr>
<tr>
<th>デスクトップの機能</th>
<td>ランチャー</td>
<td>
	ランチャー<br />
	通知領域<br />
	ウィジェット
	</td>
</tr>
<tr>
<th>実装できる機能</th>
<td>基本的に通常のアプリのみ</td>
<td>
通常のアプリの他、<br />
サービス(デーモン)、ホーム画面、ウィジェット、IME、<br />
がんばればOS自体
	</td>
</tr>
<tr>
<th>マルチタスク</th>
<td>iPhone OS 4.0 からサポート</td>
<td>サポート済み</td>
</tr>
<tr>
<th>ハードウェアボタン</th>
<td>ホームボタン</td>
<td>
	ホームボタン<br />
	メニューボタン<br />
	戻るボタン
	</td>
</tr>
<tr>
<th>開発環境</th>
<td>Xcode</td>
<td>eclipse</td>
</tr>
<tr>
<th>開発言語</th>
<td>objective-c</td>
<td>java</td>
</tr>
</table>
<h3>デスクトップの機能</h3>
<p>　まず、デスクトップ（と呼んでいいのか分からないが）の機能だが、iPhoneはいわゆるアプリランチャーとしての機能しか無い。あえていうなら、アイコンの上に書かれる数字で未読数等を知らせるのみだ。iPhoneOS4.0でやっとフォルダ機能が追加されることになった。<br />
　Androidでは、インストールされているアプリを起動するランチャー以外に、<br />
WindowsやMacでいうデスクトップとしての場所が用意される。そこには、アプリのショートカットや<br />
ウィジェットと呼ばれる小さなアプリを配置でき、カレンダーやTwitterのタイムラインの一部など、画面を表示するだけで情報を表示できる機能がある。これはiPhoneOS4.0でも無い機能だ。<br />
Androidには他にも、通知領域というWindowsのタスクトレイのような、ユーザーに処理の終了を伝えたりする場所が用意されている。</p>
<h3>実装出来る機能</h3>
<p> iPhoneでは、基本的に起動して、使って、終了する、普通のアプリしか実装できない。<br />
なので、IMEのカスタマイズ（カーソルキーや、アルファベットの予測変換等）の細かなカスタマイズはできず、Appleによる公式アップデートを期待するしかない。<br />
　Androidでは、IMEをつくって、デフォルトのものと置き換えたり、ホーム画面も自由につくって、変更できる。ウィジェットやサービスといった、バックグラウンドで常時動作するものなど、いろいろなアイデアを思いつく機能を実装できる。ここはAndroidのかなり優位なところだと思う。</p>
<h3>マルチタスク</h3>
<p>　iPhoneでは、OS4.0でのサポートが発表されたが、Androidではすでに実装済みである。<br />
　Androidでは、マルチタスクやスレッドを有効に利用して、ウィジェットや通知領域を利用した<br />
アプリを実装できる。iPhoneではマルチタスクはサポートされたが、それを有効に利用できる他の機能が不足しているように見える。<br />
　他に、重要な点として、Androidでは「インテント」という重要な機能がある。<br />
これは、アプリの一部機能を他のアプリと連携して動作する機能だ。文章で説明すると難しいのだが、例えば、Windowsでは、カメラで撮った写真を見る場合、付属のペイントでも見れるが、他の好きなソフトを自由に使うことができる。Windows等では当たり前の機能だが、iPhoneでは「ファイル」という概念がなく、アプリの中で扱うデータは写真やiPod内の音楽データなど一部例外を除き、そのアプリ内だけでしか利用できない。（あり）。AndroidではWindows等と同じように、データを扱うアプリを自由に選択でき、さらに、それが細かくわけられている。例えば、Exploreのようなインタフェースで、画像を表示するアプリがある場合、Explorerのような部分と画像を表示する部分、２つのアプリ（インテント）として個別に利用することができる。つまり、画像を選択するのはAアプリで、画像を見るのはBアプリ、といった使い方ができるのだ。この新しい概念が、マルチタスクやスレッドといったものをさらに有効利用できる機能としていると思う。</p>
<h3>ハードウェアボタン</h3>
<p>　iPhoneでは、ハードウェアボタンはホームボタン１つ（電源や音量ボタンはあるが）であり、アプリの切り替え（終了）に使われる。<br />
　Androidでは、ホームボタン、メニューボタン、戻るボタンの３つがあり、特にメニューボタンと戻るボタンが、Android独自の共通したインタフェースとして機能する。メニューボタンは、マウスの右クリックで出る、コンテキストメニューのような位置づけで、その画面で利用できる機能が、画面下部にメニューとして表示される。戻るボタンは、そのまま１つ前の画面、今出ているメニューを消す等、とりあえずこのボタンを押せば、前の状態に戻る（UNDOとは違う）。どちらが良いのかは、賛否両論あると思うが、私のは、iPhoneで、まず画面のどこを押したら分からない状態よりも、とりあえずメニューボタンを押せば、その画面でできることが表示されるところが、わかりやすいと思う。</p>
<h3>開発環境/言語</h3>
<p>　iPhoneは、XcodeというMacに付属の統合環境とObjective-C言語で開発する。非常に良くできたツールだが、EclipseやVisualStudioとはちょっと操作感が違うので慣れが必要だ。しかし、これは統合環境というより、Objective-CやCocoaフレームワークとの違いの方が大きいかもしれない。Objective-Cは、非常に面白い言語だが、文法が他の言語とちょっと違うので、これも慣れが必要。<br />
　また、iPhoneのSDKには、シミュレータも含まれているので、作ったアプリはちゃんと確認できるが、実機にインストールしようとすると、Appleへの開発者登録(有料)が必要になる。<br />
　Androidは、現在主流の言語のJavaで開発されており、アプリの開発もJavaで可能。開発環境も、利用者の多いEclipseで利用できる。もちろんシミュレータもあるが、実機での確認も容易に可能。iPhoneに比べ、開発者の敷居は非常に低いと思う。</p>
<h3>総論</h3>
<p>全体的にAndroidのほうが、ソフトウェアの開発環境、動作環境ともに、自由度が高く、エンジニアとしてはおもしろい機能が満載だ。iPhoneは、昨今のAppleの方針と同じく、締め付けがきつく、自由度は高くない。<br />
現在のAndroidアプリの市場はこの敷居の低さのせいもあってか、数は爆発的に増えているが、アプリの質としてはピンきりで、まだまだといった感じ。iPhoneアプリは、Androidに比べれば成熟してきているが、機能不足や限界を感じさせるアプリも多く見える。</p>
<p>私は、ソフトウェア的にはAndroidがかなり好きである。AndroidがiPhone並に流行って、<br />
大手のサービスやソフトウェアが参入してきてほしいと思う。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.suekichi.org/blog/2010/05/iphone_vs_android/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>yumでエラーが出た時の対処法 その2</title>
		<link>http://www.suekichi.org/blog/2010/04/yum_error_2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=yum_error_2</link>
		<comments>http://www.suekichi.org/blog/2010/04/yum_error_2/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 23:59:50 +0000</pubDate>
		<dc:creator>suekichi</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[DTI]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[ServersMan]]></category>
		<category><![CDATA[VPS]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://www.suekichi.org/blog/?p=39</guid>
		<description><![CDATA[前回のエントリーで、yumのエラーについて簡単に書いたが、もう少し詳細を記録する。 このblogは、DTIのServersMan@VPSというサービスの上で動作している。 メモリ256MB、ディスク10GBで490円/月 [...]]]></description>
			<content:encoded><![CDATA[<p>前回のエントリーで、yumのエラーについて簡単に書いたが、もう少し詳細を記録する。</p>
<p>このblogは、DTIのServersMan@VPSというサービスの上で動作している。<br />
メモリ256MB、ディスク10GBで490円/月額というびっくりな値段だ。<br />
VPSというだけあって、root権限ももらえて、アプリも自由に入れられ、普通のホスティングサービスとは一線を画す。<br />
CPUや、1サーバーあたりのユーザー数等は明記されていないが、今のところかなり快適だ。<br />
だがしかし、256MBのメモリだけはいかんともしがたい。<br />
このblog、WordPressを動かすために、apache、PHP、mysqlを動作させる必要があるが、<br />
まず、yumでのインストール につまづいた。<br />
yumを実行すると、以下のようなエラーが発生。</p>
<div class="console">
Loaded plugins: fastestmirror<br />
Repository &#8216;vz-base&#8217; is missing name in configuration, using id<br />
Repository &#8216;vz-updates&#8217; is missing name in configuration, using id<br />
Determining fastest mirrors<br />
Traceback (most recent call last):<br />
File &#8220;/usr/bin/yum&#8221;, line 29, in ?<br />
yummain.user_main(sys.argv[1:], exit_code=True)<br />
File &#8220;/usr/share/yum-cli/yummain.py&#8221;, line 309, in user_main<br />
errcode = main(args)<br />
File &#8220;/usr/share/yum-cli/yummain.py&#8221;, line 178, in main<br />
result, resultmsgs = base.doCommands()<br />
File &#8220;/usr/share/yum-cli/cli.py&#8221;, line 349, in doCommands<br />
return self.yum_cli_commands[self.basecmd].doCommand(self, self.basecmd, self.extcmds)<br />
File &#8220;/usr/share/yum-cli/yumcommands.py&#8221;, line 626, in doCommand<br />
return base.search(extcmds)<br />
File &#8220;/usr/share/yum-cli/cli.py&#8221;, line 799, in search<br />
for (po, keys, matched_value) in matching:<br />
File &#8220;/usr/lib/python2.4/site-packages/yum/__init__.py&#8221;, line 1813, in searchGenerator<br />
for sack in self.pkgSack.sacks.values():<br />
File &#8220;/usr/lib/python2.4/site-packages/yum/__init__.py&#8221;, line 661, in <lambda><br />
pkgSack = property(fget=lambda self: self._getSacks(),<br />
File &#8220;/usr/lib/python2.4/site-packages/yum/__init__.py&#8221;, line 501, in _getSacks<br />
self.repos.populateSack(which=repos)<br />
File &#8220;/usr/lib/python2.4/site-packages/yum/repos.py&#8221;, line 232, in populateSack<br />
self.doSetup()<br />
File &#8220;/usr/lib/python2.4/site-packages/yum/repos.py&#8221;, line 79, in doSetup<br />
self.ayum.plugins.run(&#8216;postreposetup&#8217;)<br />
File &#8220;/usr/lib/python2.4/site-packages/yum/plugins.py&#8221;, line 179, in run<br />
func(conduitcls(self, self.base, conf, **kwargs))<br />
File &#8220;/usr/lib/yum-plugins/fastestmirror.py&#8221;, line 181, in postreposetup_hook<br />
all_urls = FastestMirror(all_urls).get_mirrorlist()<br />
File &#8220;/usr/lib/yum-plugins/fastestmirror.py&#8221;, line 333, in get_mirrorlist<br />
self._poll_mirrors()<br />
File &#8220;/usr/lib/yum-plugins/fastestmirror.py&#8221;, line 376, in _poll_mirrors<br />
pollThread.start()<br />
File &#8220;/usr/lib/python2.4/threading.py&#8221;, line 416, in start<br />
_start_new_thread(self.__bootstrap, ())<br />
thread.error: can&#8217;t start new thread
</div>
<p>このエラーは、どうもメモリ不足の時に起きるようだ。<br />
そこで、メモリを確認すると以下。</p>
<p>Total: 262144k<br />
Used:  142392k<br />
Free:  119752k</p>
<p>現時点で、主に、<br />
sshd, syslogd, xinetd, crond, mysqldが動作しているが、mysqldが136MBもメモリを使っている。<br />
そこで、mysqldのメモリ節約設定を行う。<br />
/etc/my.cnfを編集し、</p>
<div class="file">
skip-innodb
</div>
<p>とし、再起動した。<br />
すると、mysqldが47MBに激減。</p>
<p>Total: 262144k<br />
Used:   53056k<br />
Free:  209088k</p>
<p>これで、apacheやPHPも快適だ。<br />
他にも、apacheの利用しないモジュールを外したりすることで、メモリを節約する設定とする。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.suekichi.org/blog/2010/04/yum_error_2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>yumでエラーが出た場合の対処法</title>
		<link>http://www.suekichi.org/blog/2010/04/yum_error/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=yum_error</link>
		<comments>http://www.suekichi.org/blog/2010/04/yum_error/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 14:41:13 +0000</pubDate>
		<dc:creator>suekichi</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[DTI]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[ServersMan]]></category>
		<category><![CDATA[VPS]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://www.suekichi.org/blog/?p=35</guid>
		<description><![CDATA[VPS環境で、yum installやyum updateであまり見たことの無いようなエラーが大量に出た場合、メモリ不足を疑ってみる。 メモリ256MBで、主なサービスとして、apache、mysql、sendmailが [...]]]></description>
			<content:encoded><![CDATA[<p>VPS環境で、yum installやyum updateであまり見たことの無いようなエラーが大量に出た場合、メモリ不足を疑ってみる。</p>
<p>メモリ256MBで、主なサービスとして、apache、mysql、sendmailが動作している状態ではyumは起動時にエラーを出した。<br />
もちろん、各サービスを停止してから実行すればよいのだが、メモリ節約 を試してみる。やってみたことは以下。</p>
<ol>
<li>apacheの使っていないモジュールをロードしない</li>
<li>sendmailをpostfixに変更</li>
<li>mysqlで、InnoDBをoffに</li>
</ol>
<p>一番効果があったのが、3のInnoDBをoffにすること。/etc/my.confに、「skip-innodb」とどこかに書けばOK。<br />
もちろん、InnoDBが使えないということは、トランザクション等使えないということだけど、mysqlだからいいよね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.suekichi.org/blog/2010/04/yum_error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

