<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Agenda Labs</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/" />
    <id>tag:labs.agenda-style.jp,2009-06-05://1</id>
    <updated></updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Commercial 4.25</generator>


<entry>
    <title>WindowsからCentOS5をリモートでGUI操作する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2012/01/windowscentos5gui.html" />
    <id>tag:labs.agenda-style.jp,2012:/blog//3.391</id>

    <published>2012-01-30T02:18:14Z</published>
    <updated>2012-01-30T02:26:54Z</updated>

    <summary>WindowsからCentOS5をリモートでGUI操作する方法を以下に記載します...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>WindowsからCentOS5をリモートでGUI操作する方法を以下に記載します。</p>

<p>今回は、VNCで行います。（標準でインストールされているはず・・）</p>

<p>まず、以下コマンドを実行する。パスワードは、Windowsから接続する時に入力するものになります。</p>

<blockquote>
# vncserver

You will require a password to access your desktops.<br>

Password:<br>
Verify:<br>
</blockquote>

<p>このままだと、CUIで表示されるため、GUIで表示するように設定します。</p>

<p>~/.vnc/xstartupのファイルの下2行を以下のようにします。</p>

<blockquote>
#!/bin/sh<br>
<br>
# Uncomment the following two lines for normal desktop:<br>
# unset SESSION_MANAGER<br>
# exec /etc/X11/xinit/xinitrc<br>
<br>
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup<br>
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources<br>
xsetroot -solid grey<br>
vncconfig -iconic &<br>
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &<br>
<font color="red">#twm &</font><br>
<font color="red">exec gnome-session</font>
</blockquote>

<p>以下コマンドでVNCを再起動します。</p>

<blockquote>
停止<br>
# vncserver -kill :1<br>
<br>
起動<br>
# vncserver
</blockquote>

<p>次にVNCで接続するポート(5901)をファイアウォールで許可します。</p>

<p>まず、/etc/sysconfig/iptablesに以下を追加します。</p>

<blockquote>
# vi /etc/sysconfig/iptables<br>
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
</blockquote>

<p>以下コマンドでiptablesを再起動し、設定を読み込ませます。</p>

<blockquote>
/etc/rc.d/init.d/iptables restart
</blockquote>

<p>次は、接続するPC側にVNCビューアをインストールします。<a href="http://www.vector.co.jp/soft/win95/net/se324464.html" target="_black">こちらから</a>インストール可能です。</p>

<p>インストールしたら、VNCビューアを起動します。「ホスト名」は「IP+":1"」と入力します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000487-932.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000487-932.html','popup','width=342,height=123,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000487-thumb-550x197-932.jpg" width="550" height="197" alt="WS000487.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>パスワードを入力すると、以下GUI画面が表示されます。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000489-938.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000489-938.html','popup','width=1005,height=716,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000489-thumb-550x391-938.jpg" width="550" height="391" alt="WS000489.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby - RubyGemをバージョンアップする</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2012/01/ruby---rubygem.html" />
    <id>tag:labs.agenda-style.jp,2012:/blog//3.389</id>

    <published>2012-01-26T00:02:03Z</published>
    <updated>2012-01-26T00:11:28Z</updated>

    <summary> RubyGemを特定のバージョンにするには以下の手順で行います。 &gt;gem i...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><p> RubyGemを特定のバージョンにするには以下の手順で行います。<p/></p>

<blockquote>
>gem install -v 1.8.15 rubygems-update<br><br>

>update_rubygems<br><br>

>gem -v<br>
1.8.15
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby - ユーザーエージェントを取得する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2012/01/ruby---3.html" />
    <id>tag:labs.agenda-style.jp,2012:/blog//3.388</id>

    <published>2012-01-18T23:40:22Z</published>
    <updated>2012-01-18T23:48:53Z</updated>

    <summary>以下の記述でユーザーエージェント情報を取得できる。 user_agent = r...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>以下の記述でユーザーエージェント情報を取得できる。</p>

<pre name="code" class="ruby">user_agent = request.env[&quot;HTTP_USER_AGENT&quot;]
</pre>

<p>以下は出力例です。</p>

<blockquote>
■PC上のFireFoxでアクセスした場合<br>
"Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0"<br>
<br>

■PC上のFireFoxのuser-Agent-Switcherを使用し、iPhone3.0としてアクセスした場合<br>
"Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16"<br>
</blockquote>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Windwosにmsysgitをインストールする</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2012/01/windwosmsysgit.html" />
    <id>tag:labs.agenda-style.jp,2012:/blog//3.387</id>

    <published>2012-01-16T03:02:00Z</published>
    <updated>2012-01-16T03:10:28Z</updated>

    <summary>msysgitのインストールのインストールする手順を記載します。 まず、http...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="git" label="Git" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>msysgitのインストールのインストールする手順を記載します。</p>

<p>まず、<a href="http://code.google.com/p/msysgit/" target="_blank">http://code.google.com/p/msysgit/</a>からダウンロードします。
<br>
今回は、「Full installer for official Git for Windows 1.7.8」をダウンロードします。
</p>

<p>ダウンロードしたexeファイルを実行し「next」をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000479-908.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000479-908.html','popup','width=503,height=392,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000479-thumb-550x428-908.jpg" width="550" height="428" alt="WS000479.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>同意画面が表示されるので、問題なければ「next」をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000480-911.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000480-911.html','popup','width=503,height=392,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000480-thumb-550x428-911.jpg" width="550" height="428" alt="WS000480.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>インストールするディレクトリを設定します。問題なければ「next」をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000481-914.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000481-914.html','popup','width=503,height=392,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000481-thumb-550x428-914.jpg" width="550" height="428" alt="WS000481.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>コンポーネントを設定します。問題なければ「next」をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000482-917.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000482-917.html','popup','width=503,height=392,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000482-thumb-550x428-917.jpg" width="550" height="428" alt="WS000482.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>スト―トメニューのフォルダ名を設定します。問題なければ「next」をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000483-920.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000483-920.html','popup','width=503,height=392,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000483-thumb-550x428-920.jpg" width="550" height="428" alt="WS000483.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>PATH環境変数を設定します。私はコマンドプロンプトで使用したいため、「Run Git from the Windows Command Prompt」を選択します。「Use Git Bash only」は、GitBash上のみで実行する場合に選択します。「Run Git and included Unix tools from the Windows Command Prompt」は、付属するUnixツールを使用する場合に選択します。いずれかを選択後「next」をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000484-923.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000484-923.html','popup','width=503,height=392,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000484-thumb-550x428-923.jpg" width="550" height="428" alt="WS000484.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>改行コードをコンバーションする設定？をします。問題なければ「next」をクリックします。インストールが開始されます。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000485-926.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000485-926.html','popup','width=503,height=392,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000485-thumb-550x428-926.jpg" width="550" height="428" alt="WS000485.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>「Finish」をクリックし、インストール完了です。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000486-929.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000486-929.html','popup','width=503,height=392,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2012/01/WS000486-thumb-550x428-929.jpg" width="550" height="428" alt="WS000486.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>コマンドプロンプトを開き、以下コマンドで確認します。</p>

<blockquote>
>git --version<br>
git version 1.7.8.msysgit.0
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Android - Error generating final archive: Debug Certificate expired on</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2012/01/android---error-generating-final-archive-debug-certificate-expired-on.html" />
    <id>tag:labs.agenda-style.jp,2012:/blog//3.384</id>

    <published>2012-01-04T07:23:00Z</published>
    <updated>2012-01-04T07:30:37Z</updated>

    <summary>Android プロジェクトをEclipse上で実行すると、以下エラーが発生した...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Android プロジェクトをEclipse上で実行すると、以下エラーが発生した。</p>

<blockquote>
Your project contains error(s),please fix them begore running your application
</blockquote>

<p>さらに、プロジェクトをクリーンしてみると、以下エラーが発生。</p>

<blockquote>
<strong>Error generating final archive: Debug Certificate expired on</strong> 11/09/02 16:20
</blockquote>

<p>debug.keystoreが古いと起こるらしい。</p>

<p>「C:\Documents and Settings\XXXX\.android」以下の「debug.keystore」ファイルを削除します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/12/WS000477-902.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/12/WS000477-902.html','popup','width=532,height=141,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/12/WS000477-thumb-550x145-902.jpg" width="550" height="145" alt="WS000477.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>プロジェクトを再度クリーンしてみて、実行すると正常に動作しました。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/12/WS000478-905.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/12/WS000478-905.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/12/WS000478-thumb-550x390-905.jpg" width="550" height="390" alt="WS000478.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android - EclipseのAndroid SDKをバージョンアップする</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/12/android---eclipseandroid-sdk.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.383</id>

    <published>2011-12-28T01:10:17Z</published>
    <updated>2011-12-28T01:17:31Z</updated>

    <summary>Eclipse上の「ウインドウ」&gt;「Android SDK and AVD ma...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Eclipse上の「ウインドウ」>「Android SDK and AVD manager」を選択すると、以下画面が表示されます。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/12/WS000474-893.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/12/WS000474-893.html','popup','width=745,height=433,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/12/WS000474-thumb-550x319-893.jpg" width="550" height="319" alt="WS000474.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>次に、左サイドメニューの「Availavle Package」を選択すると、以下画面が表示されます。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/12/WS000476-899.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/12/WS000476-899.html','popup','width=745,height=433,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/12/WS000476-thumb-550x319-899.jpg" width="550" height="319" alt="WS000476.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>「install Selected」ボタンを押せば、バージョンアップされます。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>HTML5とJavascripとCSS3でWEBカタログ（ページめくり）を実現する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/12/html5javascripcss3web.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.382</id>

    <published>2011-12-27T08:29:49Z</published>
    <updated>2011-12-27T08:35:57Z</updated>

    <summary>HTML5でページめくりを実現しようとしていたら、Create a page f...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="html5" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>HTML5でページめくりを実現しようとしていたら、<a href="http://www.netmagazine.com/tutorials/create-page-flip-effect-html5-canvas" target="_blank">Create a page flip effect with HTML5 canvas</a>というサイトを見つけた。</p>

<p>HTML5とJavascripとCSS3でページめくりを実現できる。ソースファイルは配布しているようなので、試しに動かしてみた。</p>

<p><strong><a href="http://labs.agenda-style.jp/blog/webcatalog_demo/demo.html" target="_blank">DEMO URL</a></strong></p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/12/WS000473-890.html" onclick="window.open('http://labs.agenda-style.jp/blog/webcatalog_demo/demo.html','popup','width=852,height=276,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/12/WS000473-thumb-550x178-890.jpg" width="550" height="178" alt="WS000473.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>FLASHではないので、HTMLなので文言の修正や画像の貼り付け等は簡単に行える！！</p>

<p>ただし、IE8がHTML5に対応していないので、企業向けには別途対策が必要である。</p>

<p>また、画像が多いとページめくりが遅くなるのが難点・・・。画像やページ数が多い場合は、Javascriptをカスタマイズするしかない。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>HTMLで動画再生 - 再生・停止・コマ送り javascript</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/12/html---javascript.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.381</id>

    <published>2011-12-26T08:23:37Z</published>
    <updated>2011-12-26T08:30:26Z</updated>

    <summary>HTMLでWindows media playerを埋め込み、Javascrip...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="javascript" label="javascript" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>HTMLでWindows media playerを埋め込み、Javascriptで再生・停止・コマ送りの制御をする。</p>


<pre name="code" class="xml">
&lt;html&gt;
    &lt;head&gt;
        &lt;script language=&quot;JavaScript&quot;&gt;
        &lt;!--

        &lt;!-- 再生 --&gt;
        function Play ()
        {
            movie.URL = &quot;test.wmv&quot;;
        }

        &lt;!-- 停止 --&gt;
        function Stop ()
        {
            movie.controls.stop();
        }

        &lt;!-- コマ送り --&gt;
        function Step ()
        {
            movie.controls.step(1);
        }

        // --&gt;
        &lt;/script&gt;
    &lt;/head&gt;

    &lt;body&gt;
        &lt;!--Windows Media Player 埋め込み--&gt;
        &lt;object ID=&quot;movie&quot; width=600 height=400
            classid=&quot;CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6&quot;
                type=&quot;application/x-mplayer2&quot;&gt;
          &lt;embed type=&quot;application/x-mplayer2&quot; 
            pluginspage=&quot;http://www.microsoft.com/Windows/MediaPlayer/&quot;
            src=&quot;test.wmv&quot;
            name=&quot;movie&quot;
            width=600 
            height=400
            autostart=1
            enabled=true
          &lt;/embed&gt;
        &lt;/object&gt;  
        &lt;!--動画コントロールボタン--&gt;
        &lt;p&gt;
            &lt;input type=&quot;button&quot; name=&quot;Play&quot; value=&quot;再生&quot; OnClick=&quot;Play()&quot;&gt;
            &lt;input type=&quot;button&quot; name=&quot;Stop&quot; value=&quot;停止&quot; OnClick=&quot;Stop()&quot;&gt;
            &lt;input type=&quot;button&quot; name=&quot;Stop&quot; value=&quot;コマ送り&quot; OnClick=&quot;Step()&quot;&gt;
        &lt;/p&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>

<p>※Windows meidia player ver.11以降でないと、コマ送りは対応していないようです。<br>
<a href="http://msdn.microsoft.com/en-us/library/bb249282.aspx" target="_blank">MSDN PARAM Tags</a>
</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Redis - ソート済みセット型の操作コマンド</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/redis---3.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.379</id>

    <published>2011-10-25T23:52:40Z</published>
    <updated>2011-10-25T23:55:28Z</updated>

    <summary>Redisのソート済みセット型を操作するコマンドを紹介します。すべてのメンバはス...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="redis" label="Redis" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Redisのソート済みセット型を操作するコマンドを紹介します。すべてのメンバはスコアに関連したハッシュ値を持ちます。</p>

<ul><li><font size='3' ><strong>ZADD(key, score, member)</strong></font ></li></ul>

<p>キーのソート済みセットにメンバを追加します。</p>

<blockquote>
redis 127.0.0.1:6379> ZADD testkey 1 user1<br>
(integer) 1<br>
redis 127.0.0.1:6379> ZRANGE testkey 0 10<br>
1) "user1"
</blockquote>

<ul><li><font size='3' ><strong>ZREM(key, member)</strong></font ></li></ul>

<p>キーのソート済みセットにメンバを削除します。</p>

<blockquote>
redis 127.0.0.1:6379> ZADD testkey 1 user1<br>
(integer) 1<br>
redis 127.0.0.1:6379> ZREM testkey user1<br>
(integer) 1<br>
redis 127.0.0.1:6379> ZRANGE testkey 0 10<br>
(empty list or set)
</blockquote>

<ul><li><font size='3' ><strong>ZRANK(key, member)</strong></font ></li></ul>

<p>ソート済みセットのメンバの昇順でのソート順を参照します。</p>

<blockquote>
redis 127.0.0.1:6379> ZADD testkey 1 user1<br>
(integer) 1
redis 127.0.0.1:6379> ZADD testkey 3 user2<br>
(integer) 1
redis 127.0.0.1:6379> ZADD testkey 2 user3<br>
(integer) 1
redis 127.0.0.1:6379> ZRANGE testkey 0 10<br>
1) "user1"<br>
2) "user3"<br>
3) "user2"<br>
redis 127.0.0.1:6379> ZRANK testkey user1<br>
(integer) 0<br>
redis 127.0.0.1:6379> ZRANK testkey user2<br>
(integer) 2<br>
redis 127.0.0.1:6379> ZRANK testkey user3<br>
(integer) 1
</blockquote>

<ul><li><font size='3' ><strong>ZREVRANK(key, member)</strong></font ></li></ul>

<p>ソート済みセットのメンバの昇順でのソート順を参照します。</p>

<blockquote>
redis 127.0.0.1:6379> ZRANGE testkey 0 10<br>
1) "user1"<br>
2) "user3"<br>
3) "user2"<br>
redis 127.0.0.1:6379> ZREVRANK testkey user1<br>
(integer) 2<br>
redis 127.0.0.1:6379> ZREVRANK testkey user2<br>
(integer) 0<br>
redis 127.0.0.1:6379> ZREVRANK testkey user3<br>
(integer) 1
</blockquote>

<ul><li><font size='3' ><strong>ZRANGE(key, start, end, [WITHSCORES])</strong></font ></li></ul>

<p>ソート済みセットのstart から end で指定された要素を昇順返します。負の値を指定すると末尾からになります。 [WITHSCORES]を追加することによりスコア値も返されます。</p>

<blockquote>
redis 127.0.0.1:6379> ZRANGE testkey 0 10<br>
1) "user1"<br>
2) "user3"<br>
3) "user2"<br>
redis 127.0.0.1:6379> ZRANGE testkey 0 10 WITHSCORES<br>
1) "user1"<br>
2) "1"<br>
3) "user3"<br>
4) "2"<br>
5) "user2"<br>
6) "3"
</blockquote>

<ul><li><font size='3' ><strong>ZREVRANGE(key, start, end, [WITHSCORES])</strong></font ></li></ul>

<p>ソート済みセットのstart から max で指定された要素を降順返します。負の値を指定すると先頭からになります。 [WITHSCORES]を追加することによりスコア値も返されます。</p>

<blockquote>
redis 127.0.0.1:6379> ZRANGE testkey 0 10 WITHSCORES<br>
1) "user1"<br>
2) "1"<br>
3) "user3"<br>
4) "2"<br>
5) "user2"<br>
6) "3"<br>
redis 127.0.0.1:6379> ZREVRANGE testkey 0 10 WITHSCORES<br>
1) "user2"<br>
2) "3"<br>
3) "user3"<br>
4) "2"<br>
5) "user1"<br>
6) "1"
</blockquote>

<ul><li><font size='3' ><strong>ZCOUNT(key, min, max)</strong></font ></li></ul>

<p>ソート済みセットのminから maxで指定されたスコア値を持った要素数を返します。 </p>

<blockquote>
redis 127.0.0.1:6379> ZRANGEBYSCORE testkey 1 2 WITHSCORES<br>
1) "user1"<br>
2) "1"<br>
3) "user3"<br>
4) "2"<br>
redis 127.0.0.1:6379> ZCOUNT testkey 1 2
(integer) 2
</blockquote>

<ul><li><font size='3' ><strong>ZSCORE(key, element)</strong></font ></li></ul>

<p>ソート済みセットのスコア値を返します。 </p>

<blockquote>
redis 127.0.0.1:6379> ZSCORE testkey user1
"1"
</blockquote>

<ul><li><font size='3' ><strong>ZSCORE(key, element)</strong></font ></li></ul>

<p>ソート済みセットのスコア値を返します。 </p>

<blockquote>
redis 127.0.0.1:6379> ZSCORE testkey user1
"1"
</blockquote>

<ul><li><font size='3' ><strong>ZREMRANGEBYRANK(key, start, end)</strong></font ></li></ul>

<p>ソート済みセットのstartからendのランクの要素を削除します。。 </p>

<blockquote>
redis 127.0.0.1:6379> ZRANGE testkey 0 5<br>
1) "user1"<br>
2) "user3"<br>
3) "user2"<br>
4) "user4"<br>
5) "user5"<br>
redis 127.0.0.1:6379> ZREMRANGEBYRANK testkey 3 4<br>
(integer) 2<br>
redis 127.0.0.1:6379> ZRANGE testkey 0 5<br>
1) "user1"<br>
2) "user3"<br>
3) "user2"
</blockquote>

<ul><li><font size='3' ><strong>ZREMRANGEBYSCORE(key, min, max)</strong></font ></li></ul>

<p>ソート済みセットのstartからendのスコア値を持つ要素を削除します。。 </p>

<blockquote>
redis 127.0.0.1:6379> ZRANGE testkey 0 10 WITHSCORES<br>
 1) "user1"<br>
 2) "1"<br>
 3) "user3"<br>
 4) "2"<br>
 5) "user2"<br>
 6) "3"<br>
 7) "user4"<br>
 8) "5"<br>
 9) "user5"<br>
10) "5"<br>
11) "user6"<br>
12) "5"<br>
redis 127.0.0.1:6379> ZREMRANGEBYSCORE testkey  5 5<br>
(integer) 3<br>
redis 127.0.0.1:6379> ZRANGE testkey 0 10<br>
1) "user1"<br>
2) "user3"<br>
3) "user2"
</blockquote>

<ul><li><font size='3' ><strong>ZUNIONSTOREZUNIONSTORE(dstkey, N, k1, ... [WEIGHTS, w1, ..., wN], [AGGREGATE, SUM|MIN|MAX])</strong></font ></li></ul>

<p>指定したキーのソート済みセットを結合します。重複したメンバは、スコアを足してユニークで表示されます。引数のNは結合するキー数を入れます。</p>

<blockquote>
redis 127.0.0.1:6379> ZRANGE testkey1 0 5 WITHSCORES<br>
1) "user1"<br>
2) "1"<br>
3) "user2"<br>
4) "2"<br>
5) "user3"<br>
6) "3"<br>
redis 127.0.0.1:6379> ZRANGE testkey2 0 5 WITHSCORES<br>
1) "user2"<br>
2) "1"<br>
3) "user3"<br>
4) "2"<br>
5) "user4"<br>
6) "3"<br>
redis 127.0.0.1:6379> ZUNIONSTORE testkey3 2 testkey1 testkey2<br>
(integer) 4<br>
redis 127.0.0.1:6379> ZRANGE testkey3 0 10 WITHSCORES<br>
1) "user1"<br>
2) "1"<br>
3) "user2"<br>
4) "3"<br>
5) "user4"<br>
6) "3"<br>
7) "user3"<br>
8) "5"
</blockquote>

<p>WEIGHTSオプションを付けるとキーごとに重みを付けることができます。スコア値と指定して重み値の積算の結果を得てから結合されます。</p>

<blockquote>
redis 127.0.0.1:6379> ZUNIONSTORE testkey3 2 testkey1 testkey2 WEIGHTS 2 3<br>
(integer) 4<br>
redis 127.0.0.1:6379> ZRANGE testkey3 0 10 WITHSCORES<br>
1) "user1"<br>
2) "2"<br>
3) "user2"<br>
4) "7"<br>
5) "user4"<br>
6) "9"<br>
7) "user3"<br>
8) "12"
</blockquote>

<p>AGGREGATEオプションで結合するときのアグリケートを指定します。以下はMAXを指定した場合ですが、結合する時にスコア値が最も大きい値を採用します。</p>

<blockquote>
redis 127.0.0.1:6379> ZUNIONSTORE testkey3 2 testkey1 testkey2 WEIGHTS 2 3 <br>
AGGREGATE MAX<br>
(integer) 4<br>
redis 127.0.0.1:6379> ZRANGE testkey3 0 10 WITHSCORES<br>
1) "user1"<br>
2) "2"<br>
3) "user2"<br>
4) "4"<br>
5) "user3"<br>
6) "6"<br>
7) "user4"<br>
8) "9"
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Redis - セット型の操作コマンド</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/redis---2.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.378</id>

    <published>2011-10-24T23:37:29Z</published>
    <updated>2011-10-24T23:40:28Z</updated>

    <summary>Redisのセット型を操作するコマンドを紹介します。セット型はRedis文字列型...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="redis" label="Redis" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Redisのセット型を操作するコマンドを紹介します。セット型はRedis文字列型の順不同の集合ですあり、メンバの重複を許可しません。</p>

<ul><li><font size='3' ><strong>SADD(key, member)</strong></font ></li></ul>

<p>キーにメンバを追加します。</p>

<blockquote>
redis 127.0.0.1:6379> SADD testkey1 user1<br>
(integer) 1<br>
redis 127.0.0.1:6379> SMEMBERS testkey1<br>
1) "user1"
</blockquote>

<ul><li><font size='3' ><strong>SREM(key, member)</strong></font ></li></ul>

<p>キーのメンバを削除します。</p>

<blockquote>
redis 127.0.0.1:6379> SADD testkey1 user1<br>
(integer) 1<br>
redis 127.0.0.1:6379> SREM testkey1 user1<br>
(integer) 1<br>
redis 127.0.0.1:6379> SMEMBERS testkey1<br>
(empty list or set)
</blockquote>

<ul><li><font size='3' ><strong>SMEMBERS(key)</strong></font ></li></ul>

<p>指定したキーのメンバを全て返します。</p>

<blockquote>
redis 127.0.0.1:6379> SMEMBERS testkey1<br>
1) "user1"<br>
2) "user2"<br>
3) "user3"
</blockquote>

<ul><li><font size='3' ><strong>SRANDMEMBER(key)</strong></font ></li></ul>

<p>指定したキーのメンバを全て返します。</p>

<blockquote>
redis 127.0.0.1:6379> SMEMBERS testkey1<br>
1) "user1"<br>
2) "user2"<br>
3) "user3"<br>
redis 127.0.0.1:6379> SRANDMEMBER testkey1<br>
"user3"<br>
redis 127.0.0.1:6379> SRANDMEMBER testkey1<br>
"user1"
</blockquote>

<ul><li><font size='3' ><strong>SREM(key, member)</strong></font ></li></ul>

<p>キーのメンバを削除します。</p>

<blockquote>
redis 127.0.0.1:6379> SADD testkey1 user1<br>
(integer) 1<br>
redis 127.0.0.1:6379> SREM testkey1 user1<br>
(integer) 1<br>
redis 127.0.0.1:6379> SMEMBERS testkey1<br>
(empty list or set)
</blockquote>

<ul><li><font size='3' ><strong>SPOP(key)</strong></font ></li></ul>

<p>キーのセットからランダムに値を参照し、削除します。</p>

<blockquote>
redis 127.0.0.1:6379> SMEMBERS testkey<br>
1) "user4"<br>
2) "user1"<br>
3) "user2"<br>
4) "user3"<br>
redis 127.0.0.1:6379> SPOP testkey<br>
"user1"<br>
redis 127.0.0.1:6379> SMEMBERS testkey<br>
1) "user4"<br>
2) "user2"<br>
3) "user3"
</blockquote>

<ul><li><font size='3' ><strong>SMOVE(srckey, dstkey, member)</strong></font ></li></ul>

<p>srckeyからdstkeyへメンバーを移動させます。</p>

<blockquote>
redis 127.0.0.1:6379> SMEMBERS testkey1<br>
1) "user1"<br>
2) "user2"<br>
redis 127.0.0.1:6379> SMEMBERS testkey2<br>
1) "user4"<br>
2) "user3"<br>
redis 127.0.0.1:6379> SMOVE testkey1 testkey2 user1<br>
(integer) 1<br>
redis 127.0.0.1:6379> SMEMBERS testkey1<br>
1) "user2"<br>
redis 127.0.0.1:6379> SMEMBERS testkey2<br>
1) "user4"<br>
2) "user1"<br>
3) "user3"
</blockquote>

<ul><li><font size='3' ><strong>SCARD(key)</strong></font ></li></ul>

<p>セット内の要素の数を変えします。</p>

<blockquote>
redis 127.0.0.1:6379> SMEMBERS testkey2<br>
1) "user4"<br>
2) "user1"<br>
3) "user3"<br>
redis 127.0.0.1:6379> SCARD testkey2<br>
(integer) 3
</blockquote>

<ul><li><font size='3' ><strong>SISMEMBER(key, member)</strong></font ></li></ul>

<p>メンバが存在するか確認します。。</p>

<blockquote>
redis 127.0.0.1:6379> SMEMBERS testkey2<br>
1) "user4"<br>
2) "user1"<br>
3) "user3"<br>
redis 127.0.0.1:6379> SISMEMBER testkey2 user1<br>
(integer) 1<br>
redis 127.0.0.1:6379> SISMEMBER testkey2 user2<br>
(integer) 0
</blockquote>

<ul><li><font size='3' ><strong>SINTER(key1, key2, ...)</strong></font ></li></ul>

<p>指定したキーの中で共通するセットのメンバを参照します。。</p>

<blockquote>
redis 127.0.0.1:6379> SMEMBERS testkey1<br>
1) "user1"<br>
2) "user2"<br>
3) "user3"<br>
redis 127.0.0.1:6379> SMEMBERS testkey2<br>
1) "user1"<br>
2) "user3"<br>
redis 127.0.0.1:6379> SINTER testkey1 testkey2<br>
1) "user1"<br>
2) "user3"
</blockquote>

<ul><li><font size='3' ><strong>SINTERSTORE(dstkey, key1, key2, ...)</strong></font ></li></ul>

<p>SINTERコマンドの結果の要素数を返します。</p>

<blockquote>
redis 127.0.0.1:6379> SMEMBERS testkey1<br>
1) "user1"<br>
2) "user2"<br>
3) "user3"<br>
redis 127.0.0.1:6379> SMEMBERS testkey2<br>
1) "user1"<br>
2) "user3"<br>
redis 127.0.0.1:6379> SINTER testkey1 testkey2<br>
1) "user1"<br>
2) "user3"<br>
redis 127.0.0.1:6379> SINTERSTORE testkey3 testkey1 testkey2<br>
(integer) 2<br>
redis 127.0.0.1:6379> SMEMBERS testkey3<br>
1) "user1"<br>
2) "user3"
</blockquote>

<ul><li><font size='3' ><strong>SUNION(key1, key2, ..., keyN)</strong></font ></li></ul>

<p>指定した全てのキーを返します。（重複は削除します。）</p>

<blockquote>
redis 127.0.0.1:6379> SMEMBERS testkey1
1) "user1"
2) "user2"
3) "user3"
redis 127.0.0.1:6379> SMEMBERS testkey2
1) "user1"
2) "user3"
redis 127.0.0.1:6379> SUNION testkey1 testkey2 testkey3
1) "user1"
2) "user2"
3) "user3"
</blockquote>

<ul><li><font size='3' ><strong>SUNIONSTORE(dstkey, key1, key2, ...)</strong></font ></li></ul>

<p>SUNIONコマンドの結果の要素数を返し、dstkeyに要素を追加します。</p>

<blockquote>
redis 127.0.0.1:6379> SUNION testkey1 testkey2<br>
1) "user1"<br>
2) "user2"<br>
3) "user3"<br>
redis 127.0.0.1:6379> SUNIONSTORE testkey3 testkey1 testkey2<br>
(integer) 3<br>
redis 127.0.0.1:6379> SMEMBERS testkey3<br>
1) "user1"<br>
2) "user2"<br>
3) "user3"
</blockquote>

<ul><li><font size='3' ><strong>SDIFF(key1, key2, ...)</strong></font ></li></ul>

<p>指定した複数のキーの差分を返します。</p>

<blockquote>
redis 127.0.0.1:6379> SMEMBERS testkey1<br>
1) "user1"<br>
2) "user2"<br>
3) "user3"<br>
redis 127.0.0.1:6379> SMEMBERS testkey2<br>
1) "user1"<br>
2) "user3"<br>
redis 127.0.0.1:6379> SDIFF testkey1 testkey2<br>
1) "user2"
</blockquote>

<ul><li><font size='3' ><strong>SDIFFSTORE(dstkey, key1, key2, ...)</strong></font ></li></ul>

<p>指定した複数のキーの差分を返し、その要素でキーを作成します。</p>

<blockquote>
redis 127.0.0.1:6379> SDIFF testkey1 testkey2<br>
1) "user2"<br>
redis 127.0.0.1:6379> SDIFFSTORE testkey4 testkey1 testkey2<br>
(integer) 1<br>
redis 127.0.0.1:6379> SMEMBERS testkey4<br>
1) "user2"
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Redis - リスト型の操作コマンド</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/redis---1.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.377</id>

    <published>2011-10-23T23:55:07Z</published>
    <updated>2011-10-23T23:58:09Z</updated>

    <summary>Redisのリストを操作するコマンドを紹介します。 RPUSH(key, str...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="redis" label="Redis" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Redisのリストを操作するコマンドを紹介します。</p>

<ul><li><font size='3' ><strong>RPUSH(key, string)</strong></font ></li></ul>

<p>リストの末尾に文字列を追加します。</p>

<blockquote>
redis 127.0.0.1:6379> RPUSH testkey TEST5<br>
(integer) 5<br>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
1) "TEST1"<br>
2) "TEST2"<br>
3) "TEST3"<br>
4) "TEST4"<br>
5) "TEST5"
</blockquote>

<ul><li><font size='3' ><strong>LPUSH(key, string)</strong></font ></li></ul>

<p>リストの先頭に文字列を追加します。</p>

<blockquote>
redis 127.0.0.1:6379> LPUSH testkey TEST0<br>
(integer) 6<br>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
1) "TEST0"<br>
2) "TEST1"<br>
3) "TEST2"<br>
4) "TEST3"<br>
5) "TEST4"<br>
6) "TEST5"
</blockquote>

<ul><li><font size='3' ><strong>LLEN(key)</strong></font ></li></ul>

<p>リストの長さを参照します。</p>

<blockquote>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
1) "TEST0"<br>
2) "TEST1"<br>
3) "TEST2"<br>
4) "TEST3"<br>
5) "TEST4"<br>
6) "TEST5"<br>
redis 127.0.0.1:6379> LLEN testkey<br>
(integer) 6
</blockquote>

<ul><li><font size='3' ><strong>LRANGE(key, start, end)</strong></font ></li></ul>

<p>指定した範囲のリスト値を参照します。。</p>

<blockquote>
redis 127.0.0.1:6379> LRANGE testkey 1 3<br>
1) "TEST1"<br>
2) "TEST2"<br>
3) "TEST3"
</blockquote>

<ul><li><font size='3' ><strong>LTRIM(key, start, end)</strong></font ></li></ul>

<p>指定した範囲のリストに変更します。</p>

<blockquote>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
1) "TEST0"<br>
2) "TEST1"<br>
3) "TEST2"<br>
4) "TEST3"<br>
5) "TEST4"<br>
6) "TEST5"<br>
redis 127.0.0.1:6379> LTRIM testkey 1 4<br>
OK<br>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
1) "TEST1"<br>
2) "TEST2"<br>
3) "TEST3"<br>
4) "TEST4"
</blockquote>

<ul><li><font size='3' ><strong>LINDEX(key, index)</strong></font ></li></ul>

<p>キーのリストの指定したインデックスの値を参照します。</p>

<blockquote>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
1) "TEST1"<br>
2) "TEST2"<br>
3) "TEST3"<br>
4) "TEST4"<br>
redis 127.0.0.1:6379> LINDEX testkey 3<br>
"TEST4"
</blockquote>

<ul><li><font size='3' ><strong>LSET(key, index, value)</strong></font ></li></ul>

<p>リストの指定したインデックスのリスト値を変更します。</p>

<blockquote>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
1) "TEST1"<br>
2) "TEST2"<br>
3) "TEST3"<br>
4) "TEST4"<br>
redis 127.0.0.1:6379> LSET testkey 0 NEWTEST1<br>
OK<br>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
1) "NEWTEST1"<br>
2) "TEST2"<br>
3) "TEST3"<br>
4) "TEST4"
</blockquote>

<ul><li><font size='3' ><strong>LREM(key, count, value)</strong></font ></li></ul>

<p>リスト内でvalueと一致するインデックスをcount分削除します。count値が負の場合は末尾から削除します。</p>

<blockquote>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
1) "TEST"<br>
2) "TEST1"<br>
3) "TEST2"<br>
4) "TEST3"<br>
5) "TEST4"<br>
6) "TEST"<br>
7) "TEST"<br>
8) "TEST"<br>
9) "TEST"<br>
redis 127.0.0.1:6379> LREM testkey 4 TEST<br>
(integer) 4<br>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
1) "TEST1"<br>
2) "TEST2"<br>
3) "TEST3"<br>
4) "TEST4"<br>
5) "TEST"
</blockquote>

<ul><li><font size='3' ><strong>LPOP(key)</strong></font ></li></ul>

<p>リストの先頭の値を返し、リストから削除します。</p>

<blockquote>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
1) "TEST1"<br>
2) "TEST2"<br>
3) "TEST3"<br>
4) "TEST4"<br>
5) "TEST"<br>
redis 127.0.0.1:6379> LPOP testkey<br>
"TEST1"<br>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
1) "TEST2"<br>
2) "TEST3"<br>
3) "TEST4"<br>
4) "TEST"<br>
</blockquote>

<ul><li><font size='3' ><strong>RPOP(key)</strong></font ></li></ul>

<p>リストの末尾の値を返し、リストから削除します。</p>

<blockquote>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
1) "TEST2"<br>
2) "TEST3"<br>
3) "TEST4"<br>
4) "TEST"<br>
redis 127.0.0.1:6379> RPOP testkey<br>
"TEST"<br>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
1) "TEST2"<br>
2) "TEST3"<br>
3) "TEST4"
</blockquote>

<ul><li><font size='3' ><strong>BLPOP(key1, key2, ..., keyN, timeout)</strong></font ></li></ul>

<p>指定したキーをLPOPコマンドよりtimeout秒しつづけます。</p>

<blockquote>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
(empty list or set)<br>
redis 127.0.0.1:6379> BLPOP testkey 20<br>
//20秒間 監視中
</blockquote>

<p>別のクライアントコマンドプロンプトを立ち上げ、20秒以内にLPUSHコマンドを実行。</p>

<blockquote>
LPUSH testkey TEST1<br>
(integer) 1<br>
</blockquote>

<p>指定したキーをLPOコマンドをtimeout秒実行しつづけます。</p>

<blockquote>
redis 127.0.0.1:6379> BLPOP testkey 20<br>
1) "testkey"<br>
2) "TEST1"<br>
(3.99s)<br><br>

redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
(empty list or set)
</blockquote>

<ul><li><font size='3' ><strong>BRPOP(key1, key2, ..., keyN, timeout)</strong></font ></li></ul>

<p>指定したキーをRPOPコマンドをtimeout秒実行しつづけます。</p>

<blockquote>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
(empty list or set)<br>
redis 127.0.0.1:6379> BRPOP testkey 20<br>
//20秒間 監視中
</blockquote>

<p>別のクライアントコマンドプロンプトを立ち上げ、20秒以内にLPUSHコマンドを実行。</p>

<blockquote>
LPUSH testkey TEST1<br>
(integer) 1<br>
</blockquote>

<p>BLPOPを実行した側でRPOPの実行結果が表ぞ</p>

<blockquote>
redis 127.0.0.1:6379> BRPOP testkey 20<br>
1) "testkey"<br>
2) "TEST1"<br>
(3.99s)<br><br>

redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
(empty list or set)
</blockquote>

<ul><li><font size='3' ><strong>RPOPLPUSH(srckey, dstkey)</strong></font ></li></ul>

<p>srckeyのキーのリストの末尾の値を削除し、dstkeyのキーの先頭に追加します。</p>

<blockquote>
redis 127.0.0.1:6379> LRANGE testkey 0 10<br>
1) "TEST1"<br>
2) "TEST2"<br>
3) "TEST3"<br>
4) "TEST4"<br>
redis 127.0.0.1:6379> LRANGE testkey1 0 10<br>
1) "TEST1"<br>
2) "TEST2"<br>
3) "TEST3"<br>
4) "TEST4"<br>
redis 127.0.0.1:6379> LRANGE testkey2 0 10<br>
1) "TEST5"<br>
2) "TEST6"<br>
3) "TEST7"<br>
redis 127.0.0.1:6379> RPOPLPUSH testkey1 testkey2<br>
"TEST4"<br>
redis 127.0.0.1:6379> LRANGE testkey1 0 10<br>
1) "TEST1"<br>
2) "TEST2"<br>
3) "TEST3"<br>
redis 127.0.0.1:6379> LRANGE testkey2 0 10<br>
1) "TEST4"<br>
2) "TEST5"<br>
3) "TEST6"<br>
4) "TEST7"
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Redis - 全ての型に対応した操作コマンド</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/redis--.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.376</id>

    <published>2011-10-21T09:26:00Z</published>
    <updated>2011-10-21T09:29:36Z</updated>

    <summary>Redisの全般の操作コマンドを紹介します。 EXISTS(key) 指定したキ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="redis" label="Redis" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Redisの全般の操作コマンドを紹介します。</p>

<ul><li><font size='3' ><strong>EXISTS(key)</strong></font ></li></ul>

<p>指定したキーが存在するか調べます。</p>

<blockquote>
redis 127.0.0.1:6379> EXISTS testkey<br>
(integer) 0<br>
redis 127.0.0.1:6379> SET testkey TEST<br>
OK<br>
redis 127.0.0.1:6379> EXISTS testkey<br>
(integer) 1
</blockquote>

<ul><li><font size='3' ><strong>DEL(key1, key2, ...)</strong></font ></li></ul>

<p>指定したキーを削除します。</p>

<blockquote>
redis 127.0.0.1:6379> SET testkey TEST<br>
OK<br>
redis 127.0.0.1:6379> DEL testkey<br>
(integer) 1<br>
redis 127.0.0.1:6379> GET testkey<br>
(nil)
</blockquote>

<ul><li><font size='3' ><strong>TYPE(key)</strong></font ></li></ul>

<p>指定したキーの型を返します。</p>

<blockquote>
redis 127.0.0.1:6379> SET testkey TEST<br>
OK<br>
redis 127.0.0.1:6379> TYPE testkey<br>
string
</blockquote>

<ul><li><font size='3' ><strong>KEYS(pattern)</strong></font ></li></ul>

<p>DBから指定したパターンに適合するキーを表示します。</p>

<blockquote>
redis 127.0.0.1:6379> KEYS test*<br>
1. "testkey2"<br>
2. "testkey"<br>
3. "testkey1"<br>
4. "testkey10"
</blockquote>

<ul><li><font size='3' ><strong>RANDOMKEY()</strong></font ></li></ul>

<p>DBからランダムでキーを取得します。</p>

<blockquote>
redis 127.0.0.1:6379> RANDOMKEY<br>
"testkey"<br>
redis 127.0.0.1:6379> RANDOMKEY<br>
"mykey"<br>
redis 127.0.0.1:6379> RANDOMKEY<br>
"testkey2"
</blockquote>

<ul><li><font size='3' ><strong>RENAME(oldkey, newkey)</strong></font ></li></ul>

<p>キーの名前を変更します。</p>

<blockquote>
redis 127.0.0.1:6379> SET testkey TEST<br>
OK<br>
redis 127.0.0.1:6379> RENAME testkey newtestkey<br>
OK<br>
redis 127.0.0.1:6379> GET testkey<br>
(nil)<br>
redis 127.0.0.1:6379> GET newtestkey<br>
"TEST"
</blockquote>

<ul><li><font size='3' ><strong>RENAMENX(oldkey, newkey)</strong></font ></li></ul>

<p>キーの名前を変更します。ただし、変更する名前のKEYが既に存在する場合は実行しません。</p>

<blockquote>
redis 127.0.0.1:6379> SET testkey TEST<br>
OK<br>
redis 127.0.0.1:6379> RENAMENX testkey1 newtestkey<br>
(integer) 1<br>
redis 127.0.0.1:6379> RENAMENX testkey1 newtestkey<br>
(error) ERR no such key
</blockquote>

<ul><li><font size='3' ><strong>DBSIZE()</strong></font ></li></ul>

<p>データベース内のキーの数を調べます。</p>

<blockquote>
redis 127.0.0.1:6379> KEYS *<br>
1. "newtestkey"<br>
2. "testkey"<br>
redis 127.0.0.1:6379> DBSIZE<br>
(integer) 2
</blockquote>

<ul><li><font size='3' ><strong>EXPIRE(key, seconds)</strong></font ></li></ul>

<p>指定したキーの有効期限を設定します。有効期限を過ぎるとキーが自動的に削除されます。</p>

<blockquote>
redis 127.0.0.1:6379> SET testkey TEST<br>
OK<br>
redis 127.0.0.1:6379> EXPIRE testkey 10<br>
(integer) 1<br>
redis 127.0.0.1:6379> GET testkey<br>
"TEST"<br>
<br>
10秒後・・・
<br><br>

redis 127.0.0.1:6379> GET testkey<br>
(nil)
</blockquote>

<ul><li><font size='3' ><strong>PERSIST(key)</strong></font ></li></ul>

<p>指定したキーの有効期限を削除します。</p>

<blockquote>
redis 127.0.0.1:6379> SET testkey TEST<br>
OK<br>
redis 127.0.0.1:6379> EXPIRE testkey 20<br>
(integer) 1<br>
redis 127.0.0.1:6379> PERSIST testkey<br>
(integer) 1<br>
<br>
20秒後・・・
<br><br>
redis 127.0.0.1:6379> GET testkey<br>
"TEST"
</blockquote>

<ul><li><font size='3' ><strong>TTL(key)</strong></font ></li></ul>

<p>指定したキーの有効期限を取得します。</p>

<blockquote>
redis 127.0.0.1:6379> SET testkey TEST<br>
OK<br>
redis 127.0.0.1:6379> EXPIRE testkey 20<br>
(integer) 1<br>
redis 127.0.0.1:6379> TTL testkey<br>
(integer) 13<br>
redis 127.0.0.1:6379> TTL testkey<br>
(integer) 12<br>
redis 127.0.0.1:6379> TTL testkey<br>
(integer) 11
</blockquote>

<ul><li><font size='3' ><strong>SELECT(index)</strong></font ></li></ul>

<p>指定したインデックスのDBへ移動します。</p>

<blockquote>
redis 127.0.0.1:6379> SELECT 0<br>
OK<br>
redis 127.0.0.1:6379> SET db0 1<br>
OK<br>
redis 127.0.0.1:6379> GET db0<br>
"1"<br>
redis 127.0.0.1:6379> SELECT 1<br>
OK<br>
redis 127.0.0.1:6379[1]> GET db0<br>
(nil)<br>
redis 127.0.0.1:6379[1]> SELECT 0<br>
OK<br>
redis 127.0.0.1:6379> GET db0<br>
"1"
</blockquote>

<ul><li><font size='3' ><strong>MOVE(key, dbindex)</strong></font ></li></ul>

<p>現在のDBから指定したインデックスのDBへキーを移動します。</p>

<blockquote>
redis 127.0.0.1:6379> SET testkey0 TEST0<br>
OK<br>
redis 127.0.0.1:6379> MOVE testkey0 1<br>
(integer) 1<br>
redis 127.0.0.1:6379> SELECT 1<br>
OK<br>
redis 127.0.0.1:6379[1]> GET testkey0<br>
"TEST0"
</blockquote>

<ul><li><font size='3' ><strong>FLUSHDB()</strong></font ></li></ul>

<p>現在のDBの全てのキーを削除します。。</p>

<blockquote>
redis 127.0.0.1:6379> KEYS *<br>
1) "testkey2"<br>
2) "testkey0"<br>
3) "testkey1"<br>
4) "db0"<br>
redis 127.0.0.1:6379> FLUSHDB<br>
OK<br>
redis 127.0.0.1:6379> KEYS *<br>
(empty list or set)
</blockquote>

<ul><li><font size='3' ><strong>FLUSHALL()</strong></font ></li></ul>

<p>現在のDB以外も含む全てのキーを削除します。。</p>

<blockquote>
redis 127.0.0.1:6379> SET testkey1 TEST<br>
OK<br>
redis 127.0.0.1:6379> SET testkey2 TEST<br>
OK<br>
redis 127.0.0.1:6379> SET testkey3 TEST<br>
OK<br>
redis 127.0.0.1:6379> SELECT 1<br>
OK<br>
redis 127.0.0.1:6379[1]> SET testkey1 TEST<br>
OK<br>
redis 127.0.0.1:6379[1]> SET testkey2 TEST<br>
OK<br>
redis 127.0.0.1:6379[1]> SET testkey3 TEST<br>
OK<br>
redis 127.0.0.1:6379[1]> FLUSHALL<br>
OK<br>
redis 127.0.0.1:6379[1]> KEYS *<br>
(empty list or set)<br>
redis 127.0.0.1:6379[1]> SELECT 0<br>
OK<br>
redis 127.0.0.1:6379> KEYS *<br>
(empty list or set)
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Redis - 文字列型の操作コマンド</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/redis----.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.375</id>

    <published>2011-10-19T23:28:00Z</published>
    <updated>2011-10-19T23:30:46Z</updated>

    <summary>Redisの文字列型の操作コマンドを紹介します。 ＳＥＴ(key, value)...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="redis" label="Redis" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Redisの文字列型の操作コマンドを紹介します。</p>

<ul><li><font size='3' ><strong>ＳＥＴ(key, value)</strong></font ></li></ul>

<p>キーに値を登録します。</p>

<blockquote>
redis 127.0.0.1:6379> SET testkey string<br>
OK
</blockquote>

<ul><li><font size='3' ><strong>SETNX(key, value)</strong></font ></li></ul>

<p>キーに値を登録する際に、値が既に入っている場合は代入しないようにする場合に使用します。</p>

<blockquote>
redis 127.0.0.1:6379> SET testkey1 TEST1<br>
redis 127.0.0.1:6379> SETNX testkey1 TEST1<br>
(integer) 0<br>
redis 127.0.0.1:6379> SETNX testkey10 TEST10<br>
(integer) 1
</blockquote>

<ul><li><font size='3' ><strong>SETEX(key, time, value)</strong></font ></li></ul>

<p>SETコマンドとEXPIREコマンドの効果を同時に実行する場合に使用します。EXPIREコマンドはキーの有効期限をします。</p>

<blockquote>
redis 127.0.0.1:6379> SETEX testkey 10 TEST<br>
OK<br>
redis 127.0.0.1:6379> GET testkey<br>
"TEST"<br>
<br>
10秒後
<br>
redis 127.0.0.1:6379> GET testkey<br>
(nil)
</blockquote>

<ul><li><font size='3' ><strong>MSET(key1, value1, key2, value2, ...) </strong></font ></li></ul>

<p>複数のキーに対してそれぞれの値を登録します。</p>

<blockquote>
redis 127.0.0.1:6379> MSET testkey1 10 testkey2 20<br>
OK<br>
redis 127.0.0.1:6379> GET testkey1<br>
"10"<br>
redis 127.0.0.1:6379> GET testkey2<br>
"20"
</blockquote>

<ul><li><font size='3' ><strong>MSETNX(key1, value1, key2, value2, ...)</strong></font ></li></ul>

<p>複数のキーに対してそれぞれの値を登録しますが、既に存在するキーが存在した場合は、処理を行わない場合に使用します。</p>

<blockquote>
redis 127.0.0.1:6379> MSETNX testkey1 10 testkey2 20<br>
(integer) 1<br>
redis 127.0.0.1:6379> GET testkey1<br>
"10"<br>
redis 127.0.0.1:6379> GET testkey2<br>
"20"<br>
redis 127.0.0.1:6379> MSETNX testkey1 10 testkey2 20 testkey3 30<br>
(integer) 0<br>
redis 127.0.0.1:6379> GET testkey3<br>
(nil)
</blockquote>

<ul><li><font size='3' ><strong>GET(key)</strong></font ></li></ul>

<p>キーの値を参照します。</p>

<blockquote>
redis 127.0.0.1:6379> GET testkey<br>
"string"
</blockquote>

<ul><li><font size='3' ><strong>GETSET(key, value)</strong></font ></li></ul>

<p>キーに値を登録し、登録前にキーの値を返します。</p>

<blockquote>
redis 127.0.0.1:6379>> SET testkey TEST1<br>
redis 127.0.0.1:6379> GETSET testkey TEST2<br>
"TEST1"
</blockquote>

<ul><li><font size='3' ><strong>MGET(key1, key2, ...)</strong></font ></li></ul>

<p>指定したキーの値を参照します。指定したキーが存在しない場合は「nil」が返ってきます。</p>

<blockquote>
redis 127.0.0.1:6379> SET testkey1 TEST1<br>
redis 127.0.0.1:6379> SET testkey2 TEST2<br>
redis 127.0.0.1:6379> SET testkey3 TEST3<br>
redis 127.0.0.1:6379> MGET testkey1 testkey3 testkey4<br>
1. "TEST1"<br>
2. "TEST3"<br>
3. (nil)
</blockquote>

<ul><li><font size='3' ><strong>INCR(key)</strong></font ></li></ul>

<p>指定したキーの値をインクリメントします。</p>

<blockquote>
redis 127.0.0.1:6379> INCR testkey<br>
(integer) 1<br>
redis 127.0.0.1:6379> INCR testkey<br>
(integer) 2<br>
redis 127.0.0.1:6379> INCR testkey<br>
(integer) 3<br>
redis 127.0.0.1:6379> GET testkey<br>
"3"
</blockquote>

<p>数値ではない文字列で実行すると以下のエラーが発生します。</p>

<blockquote>
redis 127.0.0.1:6379> INCR testkey<br>
(error) ERR value is not an integer
</blockquote>

<ul><li><font size='3' ><strong>INCRBY(key, integer)</strong></font ></li></ul>

<p>指定したキーの値を第2引数分インクリメントします。</p>

<blockquote>
redis 127.0.0.1:6379> INCRBY testkey 3<br>
(integer) 3<br>
redis 127.0.0.1:6379> INCRBY testkey 4<br>
(integer) 7<br>
redis 127.0.0.1:6379> INCRBY testkey 1<br>
(integer) 8
</blockquote>

<ul><li><font size='3' ><strong>DECR(key, integer)</strong></font ></li></ul>

<p>指定したキーの値をデクリメントします。</p>

<blockquote>
redis 127.0.0.1:6379> DECR testkey<br>
(integer) -1<br>
redis 127.0.0.1:6379> DECR testkey<br>
(integer) -2<br>
redis 127.0.0.1:6379> DECR testkey<br>
(integer) -3
</blockquote>

<ul><li><font size='3' ><strong>DECRBY(key, integer)</strong></font ></li></ul>

<p>指定したキーの値を第2引数分デクリメントします。</p>

<blockquote>
redis 127.0.0.1:6379> DECRBY testkey 2<br>
(integer) -2<br>
redis 127.0.0.1:6379> DECRBY testkey 4<br>
(integer) -6<br>
redis 127.0.0.1:6379> DECRBY testkey 2<br>
(integer) -8
</blockquote>

<ul><li><font size='3' ><strong>APPEND(key, value)</strong></font ></li></ul>

<p>指定したキーの値に文字列を追加します。</p>

<blockquote>
redis 127.0.0.1:6379> SET testkey TEST<br>
OK<br>
redis 127.0.0.1:6379> APPEND testkey TEST<br>
(integer) 8<br>
redis 127.0.0.1:6379> GET testkey<br>
"TESTTEST"
</blockquote>

<ul><li><font size='3' ><strong>SUBSTR(key, start, end)</strong></font ></li></ul>

<p>指定したキーの値の第2引数から第3引数でした位置の文字列を返します。</p>

<blockquote>
redis 127.0.0.1:6379> SET testkey AAABBBCCC<br>
OK<br>
redis 127.0.0.1:6379> SUBSTR testkey 3 5<br>
"BBB"<br>
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Redis - CentOSにインストールする</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/redis---centos.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.373</id>

    <published>2011-10-18T23:53:00Z</published>
    <updated>2011-10-19T23:53:05Z</updated>

    <summary>RedisをCentOSにインストールする手順を記載します。 Redisとは ・...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="redis" label="Redis" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>RedisをCentOSにインストールする手順を記載します。</p>

<ul><li><font size='3' ><strong>Redisとは</strong></font ></li></ul>

<p>・ 全てのデータをメモリ上で保持（インメモリベース）でするため、高速であるｃ</p>

<p>・ キー・バリュー・ストアである</p>

<p>・ 非同期でディスクで書き込みを行うため、サーバ再起動しても永続される</p>

<p>・ Ruby、Scala、Python、PHP、Perl、Java、、C++等の言語でサポート</p>

<p>・ Linux、BSD、Mac OS X、Solarisなど移植可能（Windowsは正式にサポートされていない）</p>

<p>・ github、digg、craigslist、ニコニコ生放送等で実績がある。</p>

<ul><li><font size='3' ><strong>Redisをダウンロード</strong></font ></li></ul>

<p>今回は、ver2.4.0をダウンロードします。（githubからも取得できます。）</p>

<blockquote>
# wget http://redis.googlecode.com/files/redis-2.4.0.tar.gz
</blockquote>

<ul><li><font size='3' ><strong>Redisをインストールする</strong></font ></li></ul>

<p>ダウンロードファイルを解凍します。</p>

<blockquote>
# tar xvzf redis-2.4.0.tar.gz<br>
</blockquote>

<p>makeしてインストールします。</p>

<blockquote>
# cd redis-2.4.0/<br>
# make<br>
# make install
</blockquote>

<ul><li><font size='3' ><strong>Redisを起動する</strong></font ></li></ul>

<p>Redisを起動させます。</p>

<blockquote>
# redis-server
</blockquote>

<p>起動する場合に設定ファイルをしてすることができます。指定しない場合（上記のコマンド）はデフォルト設定で起動します。</p>

<blockquote>
# redis-server reedis.conf
</blockquote>

<ul><li><font size='3' ><strong>Redisを操作してみる</strong></font ></li></ul>

<p>まず、デーモンで起動するため、redis.confのデーモン設定を修正します。</p>

<blockquote>
daemonize　yes
</blockquote>

<p>Redisを設定ファイル読み込んで起動します。</p>

<blockquote>
# redis-server redis.conf
</blockquote>

<p>操作をするためにコマンドラインクライアントのredis-cliを使用します。</p>

<blockquote>
# redis-cli<br>
redis>
</blockquote>

<p>キーに「Hello World!!」を入れて、取得してみます。</p>

<blockquote>
redis>　set testkey HelloWorld!!<br>
OK<br>
redis>　get testkey<br>
"HelloWorld!!"
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>HTML5入門 -  date/month/week/time/datetime-local inputタグ新規属性 2</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/html5---datemonthweektimedatetime-local-input-2.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.372</id>

    <published>2011-10-18T00:50:16Z</published>
    <updated>2011-10-18T00:52:21Z</updated>

    <summary><![CDATA[date  &lt;input type=&quot;date&quot;&gt...]]></summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="html5" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><span style="text-decoration: underline;"><strong>date</strong></span> </p>

<p>&lt;input type=&quot;date&quot;&gt;は、日付テキスト入力の場合に使用します。以下は、指定可能な属性である。</p>

<ul> 
<li>name属性</li>
<li>value属性</li>
<li>max属性</li>
<li>min属性</li>
<li>autocomplete属性</li>
<li>placeholder属性</li>
<li>readonly属性</li>
<li>required属性</li>
<li>list属性</li>
<li>step属性</li>
</ul>

<pre name="code" class="xml">
&lt;form action=&quot;xxx.php&quot; method=&quot;post&quot;&gt;
日付:&lt;input type=&quot;time&quot; name=&quot;time&quot;&gt;
&lt;input type=&quot;submit&quot; value=&quot;送信&quot;&gt;
&lt;/form&gt;</pre>

<p><span style="text-decoration: underline;"><strong>month/week/time</strong></span> </p>

<p>&lt;input type=&quot;month&quot;&gt;は、月の入力をする場合に使用します。</p>

<p>&lt;input type=&quot;week&quot;&gt;は、週の入力をする場合に使用します。</p>

<p>&lt;input type=&quot;time&quot;&gt;は、時間の入力をする場合に使用します。</p>

<p>それぞれの指定可能な属性は、以下です。</p>

<ul> 
<li>name属性</li>
<li>value属性</li>
<li>max属性</li>
<li>min属性</li>
<li>autocomplete属性</li>
<li>placeholder属性</li>
<li>readonly属性</li>
<li>required属性</li>
<li>list属性</li>
<li>step属性</li>
</ul>

<pre name="code" class="xml">
&lt;form action=&quot;"&quot; method=&quot;post&quot;&gt;
月:&lt;input type=&quot;date&quot; name=&quot;month&quot;&gt;
週:&lt;input type=&quot;week&quot; name=&quot;week&quot;&gt;
時間:&lt;input type=&quot;week&quot; name=&quot;week&quot;&gt;
&lt;input type=&quot;submit&quot; value=&quot;検索&quot;&gt;
&lt;/form&gt;</pre>

<p><span style="text-decoration: underline;"><strong>datetime-local
</strong></span> </p>

<p>&lt;input type=&quot;datetime-local&quot;&gt;は、ローカル日時を入力する場合に使用します。以下は、指定可能な属性である。</p>

<ul> 
<li>name属性</li>
<li>value属性</li>
<li>max属性</li>
<li>min属性</li>
<li>autocomplete属性</li>
<li>placeholder属性</li>
<li>readonly属性</li>
<li>required属性</li>
<li>list属性</li>
<li>step属性</li>
</ul>

<pre name="code" class="xml">&lt;form action=&quot;#&quot; method=&quot;post&quot;&gt;
ローカル日時:&lt;input type=&quot;datetime-local&quot; name=&quot;datetime-local&quot;&gt;
&lt;input type=&quot;submit&quot; value=&quot;検索&quot;&gt;
&lt;/form&gt;</pre>
]]>
        

    </content>
</entry>

<entry>
    <title>Java - java.net.ConnectException: Connection refused</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/java---javanetconnectexception-connection-refused.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.380</id>

    <published>2011-10-17T02:11:00Z</published>
    <updated>2011-10-17T02:13:25Z</updated>

    <summary>Tomcatを再起動させようとすると以下のエラーが発生した。 org.apach...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="java" label="Java" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Tomcatを再起動させようとすると以下のエラーが発生した。</p>

<blockquote>
org.apache.catalina.startup.Catalina stopServer<br>
致命的: Catalina.stop:<br>
<strong>java.net.ConnectException: Connection refused</strong><br>
        at java.net.PlainSocketImpl.socketConnect(Native Method)<br>
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)<br>
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)<br>
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)<br>
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)<br>
        at java.net.Socket.connect(Socket.java:529)<br>
        at java.net.Socket.connect(Socket.java:478)<br>
        at java.net.Socket.<init>(Socket.java:375)<br>
        at java.net.Socket.<init>(Socket.java:189)<br>
        at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:395)<br>
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:344)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:435)
</blockquote>

<p>すでにポートが使用されているということが原因らしいので、ポートを使用しているプロセスを調べてみる。</p>

<blockquote>
# lsof -i:8080<br>
COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME<br>
java    3819 root   41u  IPv6  79031       TCP *:webcache (LISTEN)
</blockquote>

<p>とりあえずプロセスを削除する。</p>

<blockquote>
# kill -9 3819
</blockquote>

<p>Tomcatの起動が正常に行われました。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Scala - 例外処理　throw, try, catch, finally</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/scala---throw.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.371</id>

    <published>2011-10-16T23:44:00Z</published>
    <updated>2011-10-16T23:46:16Z</updated>

    <summary>例外処理 throw Scalaの 例外処理 throwは以下のように記述します...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="scala" label="Scala" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<ul><li><strong>例外処理 throw</strong><li></ul>

<p>Scalaの 例外処理 throwは以下のように記述します。</p>

<blockquote>
throw 例外処理
</blockquote>

<p>以下はサンプルソースです。</p>

<pre name="code" class="ruby">package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {

    var map = Map( 1 -&gt; &quot;リンゴ&quot;, 2 -&gt; &quot;メロン&quot; , 3 -&gt; &quot;ミカン&quot;)
    map.foreach { 
      case(key, value) =&gt; 
        var match_num = key match {
          case 1 =&gt; value
          case 2 =&gt; value
          case _ =&gt; throw new Exception(&quot;エラーメッセージ&quot;)
        }
        println(match_num)
    }
  }  
}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
リンゴ<br>
メロン<br>
Exception in thread "main" java.lang.Exception: エラーメッセージ<br>
---<br>
---<br>
---
</blockquote>

<ul><li><strong>例外処理 try,catch,finally</strong><li></ul>

<p>Scalaの 例外処理 try,catch,finallyは以下のように記述します。基本的にJavaと一緒ですね。</p>

<pre name="code" class="ruby">try　{
　　例外をスローする可能性のある処理
}　catch　{
　　例外処理
}　finally　{
　　最後に必ず実行される処理
}</pre>

<p>以下はサンプルソースです。ミカンの場合にmatch文内のcaseのどれにもマッチしないのでエラーになります。</p>

<pre name="code" class="ruby">package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {
    try{
      var map = Map( 1 -&gt; &quot;リンゴ&quot;, 2 -&gt; &quot;メロン&quot; , 3 -&gt; &quot;ミカン&quot;)
      map.foreach { 
        case(key, value) =&gt; 
          var match_num = key match {
            case 1 =&gt; value
            case 2 =&gt; value

          }
          println(match_num)
      }
    } catch {
      case ex: MatchError =&gt; println(&quot;MatchErrorです。：&quot; + ex)
      case ex: Exception =&gt; println(&quot;想定外のエラーです。&quot; + ex)
    } finally {
      println(&quot;finally処理です。&quot;)
    }
  }  
}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
リンゴ<br>
メロン<br>
MatchErrorです。：scala.MatchError: 3 (of class java.lang.Integer)<br>
finally処理です。
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Scala - 制御式 match文</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/scala---match.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.370</id>

    <published>2011-10-15T01:07:00Z</published>
    <updated>2011-10-15T01:09:56Z</updated>

    <summary>制御式  match文 Scalaの match文は以下のように記述します。 変...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="scala" label="Scala" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<ul><li><strong>制御式  match文</strong><li></ul>

<p>Scalaの match文は以下のように記述します。</p>

<blockquote>
変数 match {
　case マッチする値 => println(value)
}
</blockquote>

<p>以下はサンプルソースです。</p>

<pre name="code" class="ruby">package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {

    var map = Map( 1 -&gt; &quot;リンゴ&quot;, 2 -&gt; &quot;メロン&quot; , 3 -&gt; &quot;ミカン&quot;)
    map.foreach { 
      case(key, value) =&gt; 
        key match {
          case 1 =&gt; println(value)
          case 2 =&gt; println(value)
          case _ =&gt; println(&quot;その他&quot;)
        }
    }
  }  
}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
リンゴ<br>
メロン<br>
その他
</blockquote>

<p>以下のcaseの書き方はdefaultを指定する場合に使用します。</p>
<pre name="code" class="ruby">
case _ =&gt; println(&quot;その他&quot;)
</pre>

<p>Scalaではcaseに指定している値のどれにもマッチしない場合は以下のようなエラーが発生するので、気を付けなければいけないようです！？</p>

<blockquote>
scala.MatchError: 3 (of class java.lang.Integer)
</blockquote>

<p>またcaseにif文を追加することも可能です。</p>

<p>コンパイルした実行結果は以下です。</p>

<pre name="code" class="ruby">package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {

    var map = Map( 1 -&gt; &quot;リンゴ&quot;, 2 -&gt; &quot;メロン&quot; , 3 -&gt; &quot;ミカン&quot;)

    var num = 10
    map.foreach { 
      case(key, value) =&gt; 
        key match {
          case 1 =&gt; println(value)
          case 2 if num &gt; 100 =&gt; println(value)
          case _ =&gt; println(&quot;その他&quot;)
        }
    }
  }  
}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
リンゴ<br>
その他<br>
その他
</blockquote>

<p>また、値を返すことも可能です。</p>

<pre name="code" class="ruby">
package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {

    var map = Map( 1 -&gt; &quot;リンゴ&quot;, 2 -&gt; &quot;メロン&quot; , 3 -&gt; &quot;ミカン&quot;)

    var num = 10
    map.foreach { 
      case(key, value) =&gt; 
        var match_num = key match {
          case 1 =&gt; value
          case 2 =&gt; value
          case _ =&gt; &quot;その他&quot;
        }
        println(match_num)
    }
  }  
}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
リンゴ<br>
メロン<br>
その他
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>PHP - configure: error: Cannot find MySQL header files under yes.</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/php---configure-error-cannot-find-mysql-header-files-under-yes.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.374</id>

    <published>2011-10-14T05:52:25Z</published>
    <updated>2011-10-14T05:54:53Z</updated>

    <summary>phpをインストール時に以下のconfigureスクリプトを実行しました。 # ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="php" label="PHP" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>phpをインストール時に以下のconfigureスクリプトを実行しました。</p>

<blockquote>
# ./configure --with-apxs2 --enable-mbstring --enable-zend-multibyte --with-mysql
</blockquote>

<p>すると以下のエラーが発生。<p/>



cc1515ccfaaf335a1fd7b05541bb4af0



<p>MySQLをソースがらインストールしていたためであった。以下でコマンドでmysql-develをインストールする。</p>

<blockquote>
# yum install mysql-devel
</blockquote>

<p>正常にmakeファイルが生成されました。</p>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>VMwareServer2 - 仮想マシンの削除</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/vmwareserver2---1.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.356</id>

    <published>2011-10-13T23:37:20Z</published>
    <updated>2011-10-13T23:39:32Z</updated>

    <summary>VMwareServer2で作成した仮想マシンを削除する手順を紹介します。 左エ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="vmware" label="VMware" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>VMwareServer2で作成した仮想マシンを削除する手順を紹介します。</p>

<p>左エリアの削除する仮想マシンを選択し、ヘッダーメニューの[Virtual Machine]-[remove Virtual Machine]を選択します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000409-779.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000409-779.html','popup','width=1272,height=503,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000409-thumb-550x217-779.jpg" width="550" height="217" alt="WS000409.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>確認画面が表示されるので、OKをクリックすれば削除されます。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000410-782.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000410-782.html','popup','width=421,height=210,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000410-thumb-550x274-782.jpg" width="550" height="274" alt="WS000410.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>VMwareServer2 - 仮想マシンを作成する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/vmwareserver2--.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.355</id>

    <published>2011-10-12T23:29:00Z</published>
    <updated>2011-10-13T23:44:58Z</updated>

    <summary>VMwareServer2で仮想マシンを作成する手順を紹介します。 仮想環境の作...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="vmware" label="VMware" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>VMwareServer2で仮想マシンを作成する手順を紹介します。</p>

<ul><li><font size='3' ><strong>仮想環境の作成</strong></font ></li></ul>

<p>VMwareを起動し、ログインします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000383-710.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000383-710.html','popup','width=1276,height=567,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000383-thumb-550x244-710.jpg" width="550" height="244" alt="WS000383.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>ヘッダーメニューの[Virtual Machine]-[Create Virtual Machine]を選択します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000384-713.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000384-713.html','popup','width=1277,height=564,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000384-thumb-550x242-713.jpg" width="550" height="242" alt="WS000384.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>仮想環境の名前を入力し、[Next]をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000385-716.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000385-716.html','popup','width=676,height=417,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000385-thumb-550x339-716.jpg" width="550" height="339" alt="WS000385.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>仮想環境のOSを選択します。[Operating System]を「Linux　operating System」を選択し、[Version]を「Red Hat Enterprise Linux 5 (32-bit)」を選択します。、[Next]をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000386-719.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000386-719.html','popup','width=1277,height=563,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000386-thumb-550x242-719.jpg" width="550" height="242" alt="WS000386.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>メモリとプロセッサーの設定を行います。のOSを選択します。とりあえずメモリは256MBに設定し、プロセッサーは1にします。</p>

<blockquote>
Recommended Size：メモリの推奨値<br>
Recommended Minimum：メモリの最小値（推奨）<br>
Recommended Maximum：メモリの最大値（推奨）
</blockquote>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000387-722.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000387-722.html','popup','width=673,height=417,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000387-thumb-550x340-722.jpg" width="550" height="340" alt="WS000387.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>HDDの設定を行います。「Create a New Virtual Disk」を選択します。</p>

<blockquote>
Create a New Virtual Disk：新しく仮想のディスクを作成する。<br>
Use an Existing Virtual Disk：既に作成した仮想ディスクを使用する。<br>
Don't Add a Hard Disk：仮想のディスクは追加しない
</blockquote>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000388-725.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000388-725.html','popup','width=672,height=414,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000388-thumb-550x338-725.jpg" width="550" height="338" alt="WS000388.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>HDDのプロパティ設定画面です。それぞれの項目の意味は以下になります。Capacity：8GB、Policies-Optimize for performanceを選択します。</p>

<blockquote>
Capacity：仮想ディスクの容量<br>
Location：仮想ディスクのディレクトリ<br>
Fileoption-Allocate all disk space now：全ての仮想ディスクにスペース割り当てる。<br>
Fileoption-Split disk into 2GB files：仮想ディスクを2GB毎に分割する。<br>
Disk Mode-Independent：仮想ディスク単独で使用する。<br>
Disk Mode-Independent-Persistent：パワーオフ等へのリストア時に内容を失わなくする。<br>
Disk Mode-Independent-Nonpersistent：パワーオフした場合に内容が失われる。<br>
Virtual Device Node-Adapter：仮想ディスクのアダプターの種類を選択する。<br>
Virtual Device Node-Device：仮想ディスクのデバイスナンバーを選択する。<br>
Policies-Optimize for safely：変更内容をキャッシュしないでにすぐに書き込みをする。<br>
Policies-Optimize for performance：変更内容をキャッシュしてから書き込みをする。<br>
</blockquote>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000389-728.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000389-728.html','popup','width=671,height=417,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000389-thumb-550x341-728.jpg" width="550" height="341" alt="WS000389.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>ネットワークアダプターの設定画面です。「Add a Network Adapter」を選択します。</p>

<blockquote>
Add a Network Adapter：仮想ネットワークアダプターのを追加する場合に選択する。<br>
Don't Add a Network Adapter：仮想ネットワークアダプターのを追加しない。<br>
</blockquote>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000390-731.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000390-731.html','popup','width=671,height=414,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000390-thumb-550x339-731.jpg" width="550" height="339" alt="WS000390.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>ネットワークアダプターのプロパティ画面です。Network Connection：Bridged、Connect at Power On：yesを選択します。</p>

<blockquote>
Network Connection：前回設定したネットワークの内、どのネットワークに接続するかを設定します。<br>
Connect at Power On：起動時にネットワークに自動接続する。<br>
</blockquote>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000391-734.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000391-734.html','popup','width=674,height=415,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000391-thumb-550x338-734.jpg" width="550" height="338" alt="WS000391.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>CD/DVDドライブの設定画面です。「Use a Physical Drive」を選択します。</p>

<blockquote>
Use a Physical Drive：物理ドライブを使用する。<br>
Use an ISO Image：イメージを読み込む仮想ドライブを作成する。<br>
Don't Add a CD/DVD Drive：ドライブを追加しない。
</blockquote>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000392-737.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000392-737.html','popup','width=673,height=413,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000392-thumb-550x337-737.jpg" width="550" height="337" alt="WS000392.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>CD/DVDドライバーのプロパティ画面です。デフォルトのままにします。</p>

<blockquote>
Host CD/DVD Drive:ホストのドライブを選択する。<br>
Connect at Power On：起動時にドライブに自動接続する。<br>
Virtual Device Node-Adapter：仮想ディスクのアダプターの種類を選択する。<br>
Virtual Device Node-Device：仮想ディスクのデバイスナンバーを選択する。
</blockquote>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000393-740.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000393-740.html','popup','width=672,height=414,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000393-thumb-550x338-740.jpg" width="550" height="338" alt="WS000393.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>フロッピードライバーの設定画面です。フロッピーは使用することが無いので、「Don't Add a Floppy Drive」を選択します。</p>

<blockquote>
Use a Physical Drive：物理フロッピードライブを使用する。<br>
Use a Floppy Image：フロッピーイメージを読み込む仮想ドライブを作成する。<br>
Create a New Floppy Image：フロッピーのイメージを作成する。<br>
Don't Add a Floppy Drive：フロッピードライブを作成しない。
</blockquote>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000394-743.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000394-743.html','popup','width=677,height=417,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000394-thumb-550x338-743.jpg" width="550" height="338" alt="WS000394.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>USBコントローラの設定画面です。USBは使用するので、「Add USB Controller」を選択します。</p>

<blockquote>
Add USB Controller：USBコントローラーを追加する。<br>
Don't Add a USB Controller：USBコントローラーを追加しない。
</blockquote>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000396-749.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000396-749.html','popup','width=674,height=416,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000396-thumb-550x339-749.jpg" width="550" height="339" alt="WS000396.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>設定準備完了画面が表示されます。その他のハードウェアを追加する場合は[More Hardware ]をクリックし、追加するハードウェアを選択します。今回は特に追加しないので、[Finish]をクリックします。
<br>※すぐに作成する仮想環境を起動する場合は「Power on your new virtual machine now」をチェックしてください。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000395-746.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000395-746.html','popup','width=673,height=413,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000395-thumb-550x337-746.jpg" width="550" height="337" alt="WS000395.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>左サイドエリアに仮想環境が追加されました。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000397-752.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000397-752.html','popup','width=1279,height=460,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000397-thumb-550x197-752.jpg" width="550" height="197" alt="WS000397.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p><a href ="http://labs.agenda-style.jp/blog/2011/10/vmwareserver2---1.html">VMwareServer2 - 仮想マシンの削除</a></p>
]]>
        

    </content>
</entry>

<entry>
    <title>VMwareServer2 - CentOS6.0をインストールする</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/vmwareserver2centos.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.354</id>

    <published>2011-10-11T23:23:00Z</published>
    <updated>2011-10-13T23:44:09Z</updated>

    <summary>VMwareServer2にCentOSをインストールする手順を紹介します。 C...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="vmware" label="VMware" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>VMwareServer2にCentOSをインストールする手順を紹介します。</p>

<ul><li><font size='3' ><strong>CentOS6.0をダウンロードする</strong></font ></li></ul>

<p><a href="http://isoredirect.centos.org/centos/6/isos/i386/" target="_blank">http://isoredirect.centos.org/centos/6/isos/i386/</a>から「CentOS-6.0-i386-bin-DVD.iso」をダウンロードします。
<br>※今回は32bitをダウンロードします。64bit向けの場合は、<a href="http://isoredirect.centos.org/centos/6/isos/x86_64/" target="_target">http://isoredirect.centos.org/centos/6/isos/x86_64/</a>からダウンロードしてください。</p>

<p>ダウンロードしたファイルを「C:\Virtual Machines」に置きます。</p>

<ul><li><font size='3' ><strong>CentOS6.0をインストールする</strong></font ></li></ul>

<p>VMwareを起動し、ログイン画面を表示させ、左サイドエリアの作成した仮想マシンを選択する。<br>※FireFoxだと画面が表示されませんでした。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000398-755.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000398-755.html','popup','width=1263,height=474,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000398-thumb-550x206-755.jpg" width="550" height="206" alt="WS000398.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>


<p>HardwareのCD/DVD Drive 1のEdtを選択します。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000400-758.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000400-758.html','popup','width=671,height=237,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000400-thumb-550x194-758.jpg" width="550" height="194" alt="WS000400.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>

<p>ISO Imageを選択し、[Choose the optical disk image path:]の[Browse..]をクリックします。
</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000401-761.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000401-761.html','popup','width=500,height=572,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000401-thumb-550x629-761.jpg" width="550" height="629" alt="WS000401.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>[Inventory]の[standard]をクリックし、[Contents]の[CentOS-6.0-i386-bin-DVD.iso]を選択し、OKをクリックします。SO Imageを選択する画面もOKをクリックします。
</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000402-764.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000402-764.html','popup','width=641,height=477,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000402-thumb-550x409-764.jpg" width="550" height="409" alt="WS000402.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>メインエリアの上部ある[Console]タブをクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000403-767.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000403-767.html','popup','width=1270,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000403-thumb-550x207-767.jpg" width="550" height="207" alt="WS000403.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>初めてアクセスすると、以下のような画面が表示されます。プラグインをインストールしないといけないようなので、[Install plugn-in]をクリックし、インストールをします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000405-770.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000405-770.html','popup','width=1269,height=475,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000405-thumb-550x205-770.jpg" width="550" height="205" alt="WS000405.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>VMwareを再起動し、再度[Console]タブをクリックします。コンソールで閲覧することができるようになりました。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000406-773.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000406-773.html','popup','width=739,height=459,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000406-thumb-550x341-773.jpg" width="550" height="341" alt="WS000406.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>ただし、以下のエラー画面が発生した。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000411-785.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000411-785.html','popup','width=419,height=209,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000411-thumb-550x274-785.jpg" width="550" height="274" alt="WS000411.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>IEのセキュリティにひっかかってしまったようなので、[ツール]-[インターネットオプション]→[セキュリティ]→[信頼済みサイト]→サイトボタンをクリックし、信頼済みサイトに追加します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000412-788.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000412-788.html','popup','width=446,height=314,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000412-thumb-550x387-788.jpg" width="550" height="387" alt="WS000412.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>とりあえず、エラーは解決したので、Enterキーを押下すると、以下画面が表示されます。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000420-791.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000420-791.html','popup','width=670,height=147,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000420-thumb-550x120-791.jpg" width="550" height="120" alt="WS000420.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>とりあえず、自然に再起動させようと思い、1分待ち再起動。以下画面が表示される。メディアのテストを行うかSkipするかを選択できます。テストをすると時間がかかるのでSkipします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000421-794.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000421-794.html','popup','width=734,height=459,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000421-thumb-550x343-794.jpg" width="550" height="343" alt="WS000421.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>インストール画面が表示されます。[Next]を選択します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000424-803.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000424-803.html','popup','width=812,height=652,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000424-thumb-550x441-803.jpg" width="550" height="441" alt="WS000424.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>言語を選択し、[Next]を選択します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000425-806.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000425-806.html','popup','width=805,height=651,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000425-thumb-550x444-806.jpg" width="550" height="444" alt="WS000425.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>キーボードを選択し、[Next]を選択します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000426-809.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000426-809.html','popup','width=808,height=656,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000426-thumb-550x446-809.jpg" width="550" height="446" alt="WS000426.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>ストレージデバイスを選択し、[Next]を選択します。今回は「エンタープライズストレージデバイス」を選択します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000427-812.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000427-812.html','popup','width=811,height=655,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000427-thumb-550x444-812.jpg" width="550" height="444" alt="WS000427.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>デバイスを選択し、[次へ]をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000429-818.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000429-818.html','popup','width=809,height=657,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000429-thumb-550x446-818.jpg" width="550" height="446" alt="WS000429.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>以下警告が発生。最初期化を選択します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000430-821.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000430-821.html','popup','width=809,height=652,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000430-thumb-550x443-821.jpg" width="550" height="443" alt="WS000430.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>HOST名を入力します。今回はデフォルトのままにします。ネットワーク設定もインストール後設定できるので飛ばします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000432-824.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000432-824.html','popup','width=809,height=657,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000432-thumb-550x446-824.jpg" width="550" height="446" alt="WS000432.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>使用するタイムゾーンを「アジア/東京」選択します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000434-827.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000434-827.html','popup','width=810,height=652,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000434-thumb-550x442-827.jpg" width="550" height="442" alt="WS000434.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>rootのパスワードを入力します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000435-830.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000435-830.html','popup','width=808,height=659,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000435-thumb-550x448-830.jpg" width="550" height="448" alt="WS000435.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>インストールタイプを選択します。今回は「既存のLinuxシステムを入れ替える」を選択します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000436-833.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000436-833.html','popup','width=810,height=657,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000436-thumb-550x446-833.jpg" width="550" height="446" alt="WS000436.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>以下確認がでます。「変更をディスクに書き込む」を選択します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000437-836.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000437-836.html','popup','width=810,height=655,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000437-thumb-550x444-836.jpg" width="550" height="444" alt="WS000437.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>追加のソフトウェアを選択できます。ここでは、「Basic Server」を選択し、「今すぐカスタマイズ」を選択します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000438-839.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000438-839.html','popup','width=813,height=658,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000438-thumb-550x445-839.jpg" width="550" height="445" alt="WS000438.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>必要なソフトウェアを選択します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000439-842.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000439-842.html','popup','width=810,height=650,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000439-thumb-550x441-842.jpg" width="550" height="441" alt="WS000439.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>インストールが開始されます。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000441-845.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000441-845.html','popup','width=807,height=656,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000441-thumb-550x447-845.jpg" width="550" height="447" alt="WS000441.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>インストールが完了すると以下画面が出力されます。再起動を行ってください。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000442-848.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000442-848.html','popup','width=806,height=651,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000442-thumb-550x444-848.jpg" width="550" height="444" alt="WS000442.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>ログイン画面が表示されます。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000443-851.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000443-851.html','popup','width=730,height=456,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000443-thumb-550x343-851.jpg" width="550" height="343" alt="WS000443.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p><a href="http://labs.agenda-style.jp/blog/2011/10/vmwareserver2--.html">VMwareServer2 - 仮想マシンを作成する</a></p>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>VMwareServer2 - Windowsにインストールする</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/vmware---vmwareserver2windows.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.353</id>

    <published>2011-10-10T23:27:15Z</published>
    <updated>2011-10-12T23:36:41Z</updated>

    <summary>VMwareServer2をWindowsにインストールする手順を記載します。 ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="vmware" label="VMware" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>VMwareServer2をWindowsにインストールする手順を記載します。</p>

<ul><li><font size='3' ><strong>VMwareServer2をダウンロードする</strong></font ></li></ul>

<p><a href="https://www.vmware.com/tryvmware/?p=server20&lp=1" taget="_blank">https://www.vmware.com/tryvmware/?p=server20&lp=1</a>にアクセスしログイン（アカウント作成）します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000361-671.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000361-671.html','popup','width=994,height=594,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000361-thumb-550x328-671.jpg" width="550" height="328" alt="WS000361.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px; " /></a></span></p>

<p>次の画面では、使用するホスト数を入力します。その次の画面でダウンロードするバージョンを選択し、ダウンロードを開始します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000363-674.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000363-674.html','popup','width=634,height=217,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000363-thumb-550x188-674.jpg" width="550" height="188" alt="WS000363.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;border: 1px #708090 solid;" /></a></span></p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000366-677.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000366-677.html','popup','width=963,height=196,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000366-thumb-550x111-677.jpg" width="550" height="111" alt="WS000366.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<ul><li><font size='3' ><strong>VMwareServer2をインストールする</strong></font ></li></ul>

<p>インストールしたexeファイルを実行します。インストール画面が表示されるので,[next]をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000367-680.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000367-680.html','popup','width=498,height=389,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000367-thumb-550x429-680.jpg" width="550" height="429" alt="WS000367.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>規約への同意画面が表示されます。「Yes,～」を選択し、,[next]をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000368-683.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000368-683.html','popup','width=497,height=382,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000368-thumb-550x422-683.jpg" width="550" height="422" alt="WS000368.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>インストールするディレクトリの画面が表示されます。ディレクトリを変更する場合は、[change]をクリックします。設定が完了したら[next]をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000369-686.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000369-686.html','popup','width=496,height=381,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000369-thumb-550x422-686.jpg" width="550" height="422" alt="WS000369.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>バーチャルマシーン上のストレージパス・ホスト名・HTTP&HTTPSのポート番号を選択します。インストール後、再起動する場合は、「Aloow ～」を選択し、[next]をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000370-689.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000370-689.html','popup','width=498,height=381,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000370-thumb-550x420-689.jpg" width="550" height="420" alt="WS000370.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>ショートカットを表示する箇所を選択し、[next]をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000371-692.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000371-692.html','popup','width=499,height=378,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000371-thumb-550x416-692.jpg" width="550" height="416" alt="WS000371.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>[install]をクリック後、インストールが開始されます。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000372-695.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000372-695.html','popup','width=498,height=380,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000372-thumb-550x419-695.jpg" width="550" height="419" alt="WS000372.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>ライセンス情報を入力します。SerialNumberはアカウントで登録したメールアドレスに「Access VMware Server」という件名のメールが届いているので、そのメールの「Access your VMware Server License and access your download」をクリックし、表示された画面のLicensing-VMware Server for Windows の番号を入力します。入力後、[Enter]をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000376-698.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000376-698.html','popup','width=498,height=381,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000376-thumb-550x420-698.jpg" width="550" height="420" alt="WS000376.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>[Finish]をクリックをしてインストールの完了です。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000377-701.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000377-701.html','popup','width=499,height=382,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000377-thumb-550x421-701.jpg" width="550" height="421" alt="WS000377.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<ul><li><font size='3' ><strong>VMwareServer2上にアクセスする</strong></font ></li></ul>

<p>[デスクトップ]-[スタート]-[すべてのプログラム]-[VMware]-[VMware Server]-[VMware Server　Home Page]を選択する。</p>

<p>ログインページが表示される。ホストOSのAdministrator権限のユーザ名とパスワードを入力する。<br>※URLがHTTPSのため、FireFoxでは例外サイトとして許可しないと接続できない。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000378-704.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000378-704.html','popup','width=918,height=448,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000378-thumb-550x268-704.jpg" width="550" height="268" alt="WS000378.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>Home Pageが表示されました。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000379-707.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000379-707.html','popup','width=1274,height=591,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000379-thumb-550x255-707.jpg" width="550" height="255" alt="WS000379.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p><a href="http://labs.agenda-style.jp/blog/2011/10/vmwareserver2centos.html">VMwareServer2 - CentOS6.0をインストールする</a></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Scala - 制御式 foreach文</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/scala---foreach.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.366</id>

    <published>2011-10-06T23:41:00Z</published>
    <updated>2011-10-11T23:29:22Z</updated>

    <summary>制御式  foreach文 Scalaの foreach文は以下のように記述しま...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="scala" label="Scala" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<ul><li><strong>制御式  foreach文</strong><li></ul>

<p>Scalaの foreach文は以下のように記述します。</p>

<blockquote>
コレクション.foreach(処理)<br>
オブジェクト.foreach(変数 => 処理)
</blockquote>

<p>以下はサンプルソースです。</p>

<pre name="code" class="ruby">package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {

    //引数なし
    println(&quot;引数なし-----&quot;)
    (0 to 2).foreach(println)

    println(&quot;引数あり1-----&quot;)
    (0 to 2).foreach(println( _ ))

    println(&quot;引数あり2-----&quot;)
    (0 to 2).foreach(i =&gt; 
      println( i + 10)
    )

    println(&quot;引数あり 処理付-----&quot;)
    (0 to 4).foreach(i =&gt; 
        if (i % 2 == 0) {
          println(i)
        }
    )

    println(&quot;配列-----&quot;)
    var ary = Array(1,2,3)
    ary.foreach(
       i =&gt; println( i + 10 )
    )

    println(&quot;Map-----&quot;)
    var map = Map( 1 -&gt; &quot;リンゴ&quot;, 2 -&gt; &quot;メロン&quot; )
    map.foreach { 
      case(key, value) =&gt; println(key + &quot; , &quot; + value)
    }
  }  
}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
引数なし-----<br>
0<br>
1<br>
2<br>
引数あり1-----<br>
0<br>
1<br>
2<br>
引数あり2-----<br>
10<br>
11<br>
12<br>
引数あり 処理付-----<br>
0<br>
2<br>
4<br>
配列-----<br>
11<br>
12<br>
13<br>
Map-----<br>
1 , リンゴ<br>
2 , メロン
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Linux - シェル上でスライス(文字列の抽出)</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/linux---1.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.369</id>

    <published>2011-10-05T23:47:15Z</published>
    <updated>2011-10-05T23:48:25Z</updated>

    <summary>sedやPerlを使用しなくても､bashの標準機能で文字列のスライスができます...</summary>
    <author>
        <name>staff</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>sedやPerlを使用しなくても､bashの標準機能で文字列のスライスができます。<br>
ただし、変数に入った値であることが前提となります。</p>
 
<h1>使用方法</h1>
<p>他の言語でおなじみのsubstr関数と同様の方法で扱えます。</p>
 
<ul>
<li>3文字目以降を返す</li>
</ul>
<blockquote>
$ str='abcde'  &nbsp;&nbsp;# 変数"str"に値"abcde"をセット<br>
$ echo <span style="color: #FF0000;">${str:3}</span>  # ${変数名:位置}を指定<br>
<span style="color: #FF0000;">de</span><br>
</blockquote>
 
<ul>
<li>3文字目から1文字分を返す</li>
</ul>
<blockquote>
$ echo ${str:3:1}<br>
d
</blockquote>
<ul>
<li>3文字目から1文字前を返す...は出来ませんでした。</li>
</ul>
<blockquote>
$ echo ${str:3:-1}<br>
bash: -1: substring expression < 0<br>
</blockquote>
<ul>
<li>0文字目から2文字分を返す</li>
</ul>
<blockquote>
$ echo ${str:0:2}
ab
</blockquote>

<br>
<b>参考</b>：<a href="http://www.amazon.co.jp/%E5%85%A5%E9%96%80bash-%E7%AC%AC3%E7%89%88-Cameron-Newham/dp/4873112540%3FSubscriptionId%3DAKIAIM37F4M6SCT5W23Q%26tag%3Dlvdrfree-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873112540" target="_blank">入門bash 第3版</a>
<br>
 ]]>
        
    </content>
</entry>

<entry>
    <title>Linux - vmstatにタイムスタンプを追加</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/vmstat.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.368</id>

    <published>2011-10-04T23:47:00Z</published>
    <updated>2011-10-04T23:49:04Z</updated>

    <summary>linux版のvmstatコマンドにはタイムスタンプを付与するオプションが無いで...</summary>
    <author>
        <name>staff</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[linux版のvmstatコマンドにはタイムスタンプを付与するオプションが無いです(RHEL5.1で確認)。<br>
コマンド結果を後から参照する場合、実施タイミングのトレースが難しくなってしまいます。
<br>
<br>
<br>

<ul><li><strong>vmstatのコマンド結果をパイプで渡す</strong><li></ul>
以下方法でタイムスタンプを挿入できます。<br>
※vmstatの結果を1秒おきに出力させ、コマンド結果の先頭にタイムスタンプに挿入

<br>
<blockquote>
$ vmstat 1 | perl -e 'while (<>) {print localtime() . ":$_";}'
</blockquote>

コマンド結果：
<blockquote>
<span style="color: #FF0000;">Tue Oct  4 11:07:04 2011:</span> procs -----------memory---------- ～略～<br>
<span style="color: #FF0000;">Tue Oct  4 11:07:05 2011:</span>  r  b   swpd   free   buff  cache                        ～略～<br>
<span style="color: #FF0000;">Tue Oct  4 11:07:06 2011:</span>  1  0 118536 767132 535040 13047736     ～略～<br>
<span style="color: #FF0000;">Tue Oct  4 11:07:07 2011:</span>  0  0 118536 767132 535040 13047752     ～略～<br>
</blockquote>
※一部、表示結果を省略しています。

<br>
<br>
<br>
<ul><li><strong>もう少し綺麗な形で出力してみました。</strong><li></ul>
Perlで3項演算子を使っています。<br>
正規表現にマッチした場合は、vmstat結果の末尾にタイムスタンプを付与しています。

<br>
<blockquote>
 $ vmstat 1 | perl -M'POSIX' -wnl -e '/^\s+\d\s+/ ? print $_ . strftime("%Y/%m/%d %H:%M:%S ", localtime()) : print $_'
</blockquote>

コマンド結果：
<blockquote>
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- <br>
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st<br>
1  0      0 233404  38972 150380    0    0     0     0   93    5  0  0 100  0  0     <span style="color: #FF0000;">2011/10/04 10:50:18</span><br>
0  0      0 232536  38972 150380    0    0     0     0 1984   11  0  0 100  0  0     <span style="color: #FF0000;">2011/10/04 10:50:19</span><br>
  ～略～
</blockquote>

<br>
<br>
<ul><li><strong>freeコマンドの場合</strong><li></ul>
vmstatのように１レコードづつ結果が出力されないので、各ブロックの頭にタイムスタンプを追加しています。

<blockquote>
$ free -m -s 1 | perl -M'POSIX' -wnl -e '/^\s+total/ ? print strftime("%Y/%m%d %H:%M:%S\n $_", localtime()) : print $_'
</blockquote>

<br>
コマンド結果：
<blockquote>
<span style="color: #FF0000;">2011/1004 11:01:47</span><br>
             total       used       free     shared    buffers     cached<br>
Mem:           491        264        227          0         38        146<br>
-/+ buffers/cache:         79        412<br>
Swap:          991          0        991<br>
<br>
<span style="color: #FF0000;">2011/1004 11:01:48</span><br>
             total       used       free     shared    buffers     cached<br>
Mem:           491        264        226          0         38        146<br>
-/+ buffers/cache:         79        412<br>
Swap:          991          0        991<br>
	
  ～略～
</blockquote>
]]>
        
    </content>
</entry>

<entry>
    <title>Scala - 制御式 do..while文</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/10/scala---dowhile.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.365</id>

    <published>2011-10-03T23:46:35Z</published>
    <updated>2011-10-11T23:29:17Z</updated>

    <summary>制御式 do..while文 Scalaのdo..while文は以下のように記述...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="scala" label="Scala" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<ul><li><strong>制御式 do..while文</strong><li></ul>

<p>Scalaのdo..while文は以下のように記述します。</p>

<blockquote>
do {処理} while(条件式)
</blockquote>

<p>以下はサンプルソースです。</p>

<pre name="code" class="ruby">package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {

    var num = 5

    do {
      println (num)
      num -= 1
    }while(num &gt; 0)

  }  
}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
5<br>
4<br>
3<br>
2<br>
1
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Scala - 制御式 for文</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/scala---for.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.364</id>

    <published>2011-09-29T23:20:00Z</published>
    <updated>2011-10-11T23:29:13Z</updated>

    <summary>制御式 for 文 ジェネレーター Scalaのfor文は以下のように記述します...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="scala" label="Scala" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<ul><li><strong>制御式 for 文 ジェネレーター</strong><li></ul>

<p>Scalaのfor文は以下のように記述します。</p>

<blockquote>
for (変数 <- コレクション) {処理}
</blockquote>

<p>「変数 <- コレクション」という形を<strong>ジェネレーター</strong>と呼びます。</p>

<p>以下はサンプルソースです。</p>

<pre name="code" class="ruby">package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {

    println(&quot;1～5まで繰り返す&quot;)
    for  (num &lt;- 1 to 5 ) {
      println(num)  
    }

    println(&quot;1～4まで繰り返す&quot;) 
    for  (num &lt;- 1 until 5 ) {
      println(num)  
    }

    println(&quot;List型を存在するまで繰り返す&quot;)
    for  (num:String &lt;- List(&quot;1&quot;,&quot;2&quot;,&quot;3&quot;,&quot;4&quot;,&quot;5&quot;)) {
      println(num)  
    }

    println(&quot;Map型をKeyとvalueに分けながら繰り返す&quot;)
    for  ((k, v) &lt;- Map(1 -&gt; &quot;リンゴ&quot;,2 -&gt; &quot;メロン&quot;,3 -&gt; &quot;バナナ&quot;)) {
      println(k + &quot; -&gt; &quot; + v)  
    }

    println(&quot;Mapの中のvlueがメロンのkeyを出力する&quot;)
    for  ((k, &quot;メロン&quot;) &lt;- Map(1 -&gt; &quot;リンゴ&quot;,2 -&gt; &quot;メロン&quot;,3 -&gt; &quot;バナナ&quot;)) {
      println(k)  
    }        
  }
}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
1～5まで繰り返す<br>
1<br>
2<br>
3<br>
4<br>
5<br>
1～4まで繰り返す<br>
1<br>
2<br>
3<br>
4<br>
List型を存在するまで繰り返す<br>
1<br>
2<br>
3<br>
4<br>
5<br>
Map型をKeyとvalueに分けながら繰り返す<br>
1 -> リンゴ<br>
2 -> メロン<br>
3 -> バナナ<br>
Mapの中のvlueがメロンのkeyを出力する<br>
2
</blockquote>

<ul><li><strong>制御式 for 文 ジェネレーター+フィルター</strong><li></ul>

<p>以下の記述でジェネレーターに対し、フィルターをかけることができます。</p>

<blockquote>
for (ジェネレータ if (条件))　{処理}
</blockquote>

<p>以下はサンプルソースです。</p>

<pre name="code" class="ruby">package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {

    println(&quot;1～5まで繰り返す。ただし、1・3を出力&quot;)
    for (num &lt;- 1 to 5 if (num ==1 || num == 3)) {
      println(num)  
    }
  }    
}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
1～5まで繰り返す。ただし、1・3を出力<br>
1<br>
3
</blockquote>

<ul><li><strong>制御式 for 文 ジェネレーター+yield</strong><li></ul>

<p>yieldを使用することでfor文の結果を受け取ることができる</p>

<blockquote>
for (ジェネレータ if (条件)) yield 変数
</blockquote>

<p>以下はサンプルソースです。</p>

<pre name="code" class="ruby">package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {

    for ((k, v) &lt;- Map(1 -&gt; &quot;リンゴ&quot;,2 -&gt; &quot;メロン&quot;,3 -&gt; &quot;バナナ&quot;)) yield println(v) 

  }   

}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
リンゴ<br>
メロン<br>
バナナ
</blockquote>

<ul><li><strong>制御式 for 文 2重ループ</strong><li></ul>

<p>以下の記述で、二重ループが可能です。</p>

<blockquote>
for (ジェネレータ1; ジェネレータ2)
</blockquote>

<p>以下はサンプルソースです。</p>

<pre name="code" class="ruby">package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {

    for (num1 &lt;- 1 to 2; num2 &lt;- 1 to 2) {
      println (num1 + &quot;,&quot; + num2)
    }

  }   

}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
1,1<br>
1,2<br>
2,1<br>
2,2
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Scala - 制御式 while文</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/scala---while.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.363</id>

    <published>2011-09-23T00:05:22Z</published>
    <updated>2011-10-11T23:29:07Z</updated>

    <summary>制御式 while文 Scalaのwhile文は以下のように記述します。 whi...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="scala" label="Scala" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<ul><li><strong>制御式 while文</strong><li></ul>

<p>Scalaのwhile文は以下のように記述します。</p>

<blockquote>
while (条件式) {処理}
</blockquote>

<p>条件式がtrueである限り処理を繰り返します。</p>

<p>以下はサンプルソースです。</p>

<pre name="code" class="ruby">package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {
    var num = 1

    while (num &lt;= 5) {
      println(&quot;numaは&quot; + num + &quot;である&quot;)  
      num += 1
    }
  }
}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
numaは1である<br>
numaは2である<br>
numaは3である<br>
numaは4である<br>
numaは5である
</blockquote>

<p>Scalaにはbreakまたcontinueはありません。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Scala - 制御式 if文</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/scala---if.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.362</id>

    <published>2011-09-21T23:41:00Z</published>
    <updated>2011-10-11T23:29:03Z</updated>

    <summary>条件式 if 文 Scalaのif文は以下のように記述します。 if (条件式)...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="scala" label="Scala" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<ul><li><strong>条件式 if 文</strong><li></ul>

<p>Scalaのif文は以下のように記述します。</p>

<blockquote>
if (条件式) {処理} else if (条件式) {処理}<br>
if (条件式) {処理} else if (条件式) {処理}<br>
if (条件式) {処理} else if (条件式) {処理} else {処理}
</blockquote>

<p>以下はサンプルソースです。</p>

<pre name="code" class="ruby">package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {
    var num = 1

    if (num == 1) {
      println(&quot;numaは1である。&quot;)  
    }

    if (num == 2) {
      println(&quot;numaは2である。&quot;) 
    }else if (num == 3){
      println(&quot;numaは3である。&quot;) 
    }else{
      println(&quot;numaは2でも3でもない&quot;) 
    }
  }
}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
numaは1である。<br>
numaは2でも3でもない
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby Tips</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/tech/ruby.html" />
    <id>tag:labs.agenda-style.jp,2011:/tech//5.367</id>

    <published>2011-09-20T23:40:00Z</published>
    <updated>2011-10-17T00:05:44Z</updated>

    <summary>Rubyに関する技術記事をまとめました。よく使用する基本構文やTipsを紹介しま...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/tech/">
        <![CDATA[<p>Rubyに関する技術記事をまとめました。よく使用する基本構文やTipsを紹介します。</p>

<h1><strong>条件判断</strong></h1>

<p>
<a href="/blog/2010/09/ruby-tips---casewhen--.html">
case～when文
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-tips---ifunless--.html">
if文
</a>
</p>

<p>
<a href="/blog/2010/09/ruby---unless.html">
unless文
</a>
</p>

<h1><strong>繰り返し</strong></h1>

<p>
<a href="/blog/2010/09/ruby-tips---timesupto--.html">
timesメソッド
</a>
</p>

<p>
<a href="/blog/2010/09/ruby---upto.html">
uptoメソッド
</a>
</p>

<p>
<a href="/blog/2010/09/ruby---step.html">
stepメソッド
</a>
</p>

<p>
<a href="/blog/2010/09/ruby---downto.html">
downtoメソッド
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-tips---for-.html">
for文
</a>
</p>

<p>
<a href="/blog/2010/09/ruby---while.html">
while文
</a>
</p>

<p>
<a href="/blog/2010/09/ruby---until.html">
until文
</a>
</p>

<p>
<a href="/blog/2010/09/ruby---each.html">
eachメソッド
</a>
</p>

<p>
<a href="/blog/2010/09/ruby---loop.html">
loopメソッド
</a>
</p>

<h1><strong>文字列</strong></h1>

<p>
<a href="/blog/2010/09/ruby-tips----.html">
文字列を結合する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-tips-----1.html">
文字列の文字・小文字の変換または統一
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-tips-----2.html">
整数(数値)に変換する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby--.html">
浮動小数点(数値)に変換する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby---8.html">
8進文字列を整数(数値)に変換する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby---16.html">
16進文字列を整数(数値)に変換する 
</a>
</p>

<p>
<a href="/blog/2010/09/ruby---1.html">
数値を文字列に変換する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-tips-----3.html">
文字列の長さを得る
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-tips-----3.html">
マルチバイト文字列の長さを得る
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-tips-----3.html">
文字列の長さが0であるかどうかを調べる
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-tips-----4.html">
文字列を特定の文字で分割する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-tips-----4.html">
特定の数の文字ずつに分割する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-tips-----4.html">
特定の数の文字ずつに分割する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-tips-----5.html">
文字列中に含まれている位置を調べる
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-tips-----5.html">
文字列中に含まれているかどうかを確認する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-tips-----5.html">
正規表現による検索
</a>
</p>

<h1><strong>日付・時刻</strong></h1>

<p>
<a href="/blog/2010/09/ruby----.html">
現在の時刻を取得する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby---2.html">
現在の日付を取得する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-----1.html">
時刻を加減する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-----1.html">
時刻の差を求める
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-----1.html">
何日後、何日前の日付を取得する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-----1.html">
何カ月後、何カ月前の日付を取得する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-----2.html">
閏年か判定する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-----3.html">
日付存在チェック
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-----4.html">
日付文字列を日付オブジェクトに変換する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-----4.html">
日付文字列を日付オブジェクトに変換する
</a>
</p>

<h1><strong>ファイル操作</strong></h1>

<p>
<a href="/blog/2010/09/ruby-----5.html">
ファイルを開く
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-----6.html">
ファイルの内容を一度に読み込む
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-----6.html">
ファイルの内容を出力する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-----6.html">
ファイルの内容を行を使用して出力する
</a>
</p>

<p>
<a href="/blog/2010/09/ruby-----6.html">
ファイルの内容を特定の長さのみ出力する
</a>
</p>

<h1><strong>その他</strong></h1>

<p>
<a href="/blog/2011/04/ruby-tips--01.html">
丸め誤差対応 BigDecimal
</a>
</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Scala - 関数の定義</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/scala---1.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.361</id>

    <published>2011-09-20T23:39:00Z</published>
    <updated>2011-10-11T23:28:58Z</updated>

    <summary>関数の定義 Scalaの関数の定義は以下のように行います。      def 関...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="scala" label="Scala" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<ul><li><strong>関数の定義</strong><li></ul>

<p>Scalaの関数の定義は以下のように行います。</p>

<pre name="code" class="ruby">  
  def 関数名(引数名: 引数型): 戻り値型 = {
    処理内容
  }
</pre>

<p>以下、サンプルです。</p>

<pre name="code" class="ruby">
package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {
   var num = test(10, 12)
    println(num)
  }

  def test(a: Int, y: Int): Int = {
    var num = a + y
    return num
  }
}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
22
</blockquote>

<p>引数が無い場合は[引数名: 引数型]は記述しなくても実行可能です。また、戻り値が無い場合も[: 戻り値型]は記述しなくても実行可能です。</p>

<p>以下、サンプルです。</p>

<pre name="code" class="ruby">package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {
    test()
  }

  def test() = {
    println(&quot;引数も戻り値もない関数を実行しました&quot;)
  }

}
</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
"引数も戻り値もない関数を実行しました"
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Scala - 変数と定数の宣言</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/scala--.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.360</id>

    <published>2011-09-19T23:26:00Z</published>
    <updated>2011-10-11T23:28:47Z</updated>

    <summary>変数と定数の宣言 変数の場合は「var 変数名:型」という形で宣言する。ただし、...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="scala" label="Scala" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<ul><li><strong>変数と定数の宣言</strong><li></ul>

<p>変数の場合は「var 変数名:型」という形で宣言する。ただし、初期値の型を同じ場合は型の宣言は不要です。</p>

<blockquote>
    var name:String = "太郎"<br>
    var age:Int = 20<br>
    var sex = "男"
</blockquote>

<p>定数の場合は「val 変数名:型」という形で宣言する。ただし、初期値の型を同じ場合は型の宣言は不要です。</p>

<blockquote>
    val name:String = "太郎"<br>
    val age:Int = 20<br>
    val sex = "男"
</blockquote>

<p>以下はサンプルソースです。</p>

<pre name="code" class="ruby">package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {

    var name:String = &quot;太郎&quot;
    var age:Int = 20
    val sex = &quot;男&quot;
    println(name)
    println(age)
    println(sex)
  }

}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
太郎<br>
20<br>
男
</blockquote>

<p>ちなみに定数に対し、値を変更しようとすると以下エラーが発生する。</p>

<blockquote>
error: reassignment to val
</blockquote>

<p>関数の引数宣言に関しても同じ記述ですが、型の省略はできません。</p>

<ul><li><strong>小技-複数の変数を一括で宣言する。</strong><li></ul>

<p>以下の記述で一括で変数を宣言できます。</p>

<blockquote>
 var name1, name2, name3 = &quot;太郎&quot;
</blockquote>

<p>以下はサンプルソースです。</p>

<pre name="code" class="ruby">
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {

    var name1, name2, name3 = &quot;太郎&quot;

    println(name1)
    println(name2)
    println(name3)

  }

}</pre>

<p>コンパイルした実行結果は以下です。</p>

<blockquote>
太郎<br>
太郎<br>
太郎
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Scala - Unitとは戻り値がないという意味の結果型</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/scala---unit.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.359</id>

    <published>2011-09-18T03:44:00Z</published>
    <updated>2011-10-11T23:28:39Z</updated>

    <summary>netbeansでScalaのプロジェクトを作成すると、以下内容ファイルが作成さ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="scala" label="Scala" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>netbeansでScalaのプロジェクトを作成すると、以下内容ファイルが作成される。</p>

<pre name="code" class="ruby">package scalaapplication1

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]): Unit = {
    println(&quot;Hello, world!&quot;)
  }

}</pre>

<p>「:Unit」というのが意味が解らず調べてみました。</p>

<p>Scalaの「:Unit」とは、戻り値がないという結果型です。Javaでいうとvoid意味がほぼ同じです。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Scala - Scala対応エディタNotePad++を使用してみる　</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/scala---scalanotepad.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.357</id>

    <published>2011-09-17T02:06:07Z</published>
    <updated>2011-10-11T23:28:35Z</updated>

    <summary>Scalaをコーディングをするためのエディタを探してみると、「NotePad++...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="scala" label="Scala" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Scalaをコーディングをするためのエディタを探してみると、「NotePad++」が対応しているようなので使用してみました。ちなみにNetBeansやEclipseでも対応しているようである。</p>

<p><a href="http://www.geocities.jp/npp_euc_jp/" target="_blank">http://www.geocities.jp/npp_euc_jp/</a>からNotePad++のzipファイルをダウンロードします。</p>

<p>ダウンロードしたファイルを解凍し、notepad++.exeを実行すると使用できます。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000444-854.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000444-854.html','popup','width=952,height=655,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000444-thumb-550x378-854.jpg" width="550" height="378" alt="WS000444.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>ただし、デフォルトではScalaを使用できないため、解凍したディレクトリの[npp.5.8.7-6.bin\unicode]以下に「userDefineLang.xml」を置く必要があります。「userDefineLang.xml」は以下のように取得できます。</p>

<ul>
<li><a href="http://lampsvn.epfl.ch/trac/scala/browser/scala-tool-support/trunk/src/notepad-plus/userDefineLang.xml">http://lampsvn.epfl.ch/trac/scala/browser/scala-tool-support/trunk/src/notepad-plus/userDefineLang.xml</a>から「userDefineLang.xml」をダウンロードする。</li>
<li>Scalaをインストール済みの場合は、[scala\misc\scala-tool-support\notepad-plus]にから「userDefineLang.xml」を取得する。</li>
</ul>

<p>notepad++を再起動すると、メニューバーの[言語]にScalaが追加されます。</p>

<p>ただし、まだまだ色とかはつかないみたいです・・。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Scala - 開発環境をNetBeansで構築する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/scala---netbeansscala.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.358</id>

    <published>2011-09-16T07:49:17Z</published>
    <updated>2011-10-11T23:28:10Z</updated>

    <summary>Scalaの開発環境をNetBeansで構築する手順を紹介します。 NetBea...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="scala" label="Scala" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Scalaの開発環境をNetBeansで構築する手順を紹介します。</p>

<ul><li><font size='3' ><strong>NetBeansをインストールする。</strong></font ></li></ul>

<p>「<a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk-7-netbeans-download-432126.html">http://www.oracle.com/technetwork/java/javase/downloads/jdk-7-netbeans-download-432126.html</a>」からNetBeansをダウンロードします。<br>※今回はjdk-7-nb-7_0_1-windows-ml.exeをダウンロードします。JDKとNetBeans両方を一括でインストールできます。</p>

<p>ダウンロードしたexeファイルを実行し、インストールします。</p>

<ul><li><font size='3' ><strong>Scalaのプラグインをインストールする。</strong></font ></li></ul>

<p>インストールしたNetBeansを実行します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000446-860.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000446-860.html','popup','width=1147,height=683,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000446-thumb-550x327-860.jpg" width="550" height="327" alt="WS000446.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>ツールバーの[ツール]-[プラグイン]を選択し、表示された画面の[設定]タブを選します。その画面で[追加]ボタンをクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000447-863.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000447-863.html','popup','width=909,height=547,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000447-thumb-550x330-863.jpg" width="550" height="330" alt="WS000447.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>名前は任意で、URLは「http://deadlock.netbeans.org/hudson/job/nbms-and-javadoc/lastStableBuild/artifact/nbbuild/nbms/updates.xml.gz」を入力し、[了解]ボタンをクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000449-866.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000449-866.html','popup','width=565,height=210,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000449-thumb-550x204-866.jpg" width="550" height="204" alt="WS000449.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>[使用可能なプラグイン]タグをクリックし、[カタログを再読み込み]ボタンをクリックします。しかし、ここで指定したURLがNotFoundであるエラーが発生。直接「http://deadlock.netbeans.org/hudson/」にアクセスしてみるとScalaのプロジェクトが無効化されていました。</p>

<p>なので、<a href="http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=36598">http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=36598</a>からダウンロードすることにします。</p>

<p>C:\Documents and Settings\xxxxxx\.netbeans\7.0以下にダウンロードしたファイルを解凍します。</p>

<p>NetBeans上でツールバーの[ツール]-[プラグイン]を選択し、[ダウンロード済み]タグの画面で[プラグインの追加]ボタンをクリックします。先程解凍してできたディレクトリ内ファイルを全て選択し、[インストール]ボタンをクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000450-869.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000450-869.html','popup','width=909,height=545,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000450-thumb-550x329-869.jpg" width="550" height="329" alt="WS000450.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>インストーラーが起動するので、[次へ]をクリックします。「署名されていない」と警告が表示されますが、続行してください。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000452-875.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000452-875.html','popup','width=536,height=474,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000452-thumb-550x486-875.jpg" width="550" height="486" alt="WS000452.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>インストールが完了しました。</p>

<ul><li><font size='3' ><strong>プロジェクト作成</strong></font ></li></ul>

<p>メニューバーの[ファイル]-[新規プロジェクト]を選択します。カテゴリを[Scala]を選択し、[Scala Application]を選択します。[次へ]をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000454-878.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000454-878.html','popup','width=725,height=497,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000454-thumb-550x377-878.jpg" width="550" height="377" alt="WS000454.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>何も変更せず、[完了]ボタンをクリックします。プロジェクトが作成されました。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000456-881.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000456-881.html','popup','width=786,height=495,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000456-thumb-550x346-881.jpg" width="550" height="346" alt="WS000456.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000457-884.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000457-884.html','popup','width=1271,height=763,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000457-thumb-550x330-884.jpg" width="550" height="330" alt="WS000457.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<ul><li><font size='3' ><strong>コンパイルして実行</strong></font ></li></ul>

<p>メニューバーの[実行]-[主プロジェクト実行]をクリックします。しかし、以下エラーが発生しました。</p>

<blockquote>
You must set SCALA_HOME or environment property and append "-J-Dscala.home=scalahomepath"<br>
property to the end of "netbeans_default_options" in NetBeansInstallationPath/etc/netbeans.conf to point to<br>
Scala installation directory.
</blockquote>

<p>「C:\Program Files\NetBeans 7.0.1\etc\netbeans.conf」の[netbeans_default_options=～]に変数（-J-Dscala.home=C:\scala-2.9.1.final）を追加する。<br>以下参考です。</p>

<blockquote>
# ${HOME} will be replaced by JVM user.home system property<br>
netbeans_default_userdir="${HOME}/.netbeans/7.0"<br><br>

# Options used by NetBeans launcher by default, can be overridden by explicit<br>
# command line switches:<br>
netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m <br>-J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true <br>-J-Dsun.java2d.noddraw=true -J-Dscala.home=C:\scala-2.9.1.final"<br>
</blockquote>

<p>修正後、NetBeansを再起動し、再度実行するとコンソールに「Hello, world!」が表示されました。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000458-887.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000458-887.html','popup','width=1276,height=764,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000458-thumb-550x329-887.jpg" width="550" height="329" alt="WS000458.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Scala - Windowsにインストールする</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/scala---windows.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.348</id>

    <published>2011-09-15T23:28:00Z</published>
    <updated>2011-10-11T23:27:57Z</updated>

    <summary>ScalaをWindowsにインストールする手順を紹介します。 Scalaをダウ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="scala" label="Scala" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>ScalaをWindowsにインストールする手順を紹介します。</p>

<ul><li><font size='3' ><strong>Scalaをダウンロードする</strong></font ></li></ul>

<p><a href="http://www.scala-lang.org/downloads/" taget="_blank">http://www.scala-lang.org/downloads/</a>の「scala-2.9.1.final.zip」をローカルにダウンロードします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000354-665.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000354-665.html','popup','width=971,height=582,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000354-thumb-550x329-665.jpg" width="550" height="329" alt="WS000354.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<ul><li><font size='3' ><strong>Scalaをインストールする</strong></font ></li></ul>

<p>ダウンロードしたファイルを解凍し、binディレクトリを環境変数Pathに指定します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000360-668.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000360-668.html','popup','width=401,height=135,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000360-thumb-550x185-668.jpg" width="550" height="185" alt="WS000360.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<ul><li><font size='3' ><strong>Scalaのインストール確認</strong></font ></li></ul>

<p>コマンドプロンプトで以下コマンドを実行。</p>

<blockquote>
C:\>scala -version<br>
Scala code runner version 2.9.1.final -- Copyright 2002-2011, LAMP/EPFL
</blockquote>

<ul><li><font size='3' ><strong>ScalaでHelloWorldを出力してみる</strong></font ></li></ul>

<p>コマンドプロンプトで「scala」と入力し、実行すると対話形式で確認ができるようになります。</p>

<blockquote>
C:\>scala<br>
Welcome to Scala version 2.9.1.final (Java HotSpot(TM) Client VM, Java 1.6.0_24).<br>
Type in expressions to have them evaluated.<br>
Type :help for more information.<br><br>

scala>
</blockquote>

<p>以下コマンドで、出力します。</p>

<blockquote>
scala> println("Hello, world!")<br>
Hello, world!
</blockquote>

<p>以下は演算を試した場合です。</p>

<blockquote>
scala> 100*100<br>
res1: Int = 10000
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>MySQL - リモート接続 - Host ... is not allowed to connect to this MySQL server</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/mysql-----host-is-not-allowed-to-connect-to-this-mysql-server.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.347</id>

    <published>2011-09-15T09:43:20Z</published>
    <updated>2011-09-15T09:43:33Z</updated>

    <summary>MySQLにリモート接続をしようとすると以下エラーが発生。 Host ... i...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="mysql" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>MySQLにリモート接続をしようとすると以下エラーが発生。</p>

<blockquote>
Host ... is not allowed to connect to this MySQL server
</blockquote>

<p>MYSQLは、デフォルトだとlocalhostのみ接続を許可しているため以下SQLでユーザとホストを指定する必要がある。</p>

<blockquote>
GRANT ALL PRIVILEGES ON *.* TO ユーザ名@'ホスト名（IP）' IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
</blockquote>

<p>'ホスト名（IP）' に「%」を指定すると、どのホストでも接続可能となる。</p>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Sendmail - [SMTP: Invalid response code received from server (code: 553, response: 5.3.0 ... User unknown)]</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/sendmail---smtp-invalid-response-code-received-from-server-code-553-response-530-user-unknown.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.352</id>

    <published>2011-09-14T23:46:00Z</published>
    <updated>2011-09-14T23:47:41Z</updated>

    <summary>PHPのアプリケーションでSendmailを使用し、メール送信すると以下エラーが...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="sendmail" label="Sendmail" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>PHPのアプリケーションでSendmailを使用し、メール送信すると以下エラーが発生した。</p>

<blockquote>
[SMTP: Invalid response code received from server (code: 553, response: 5.3.0 <test@test.com>... User unknown)]
</blockquote>

<p>別のドメインのメールアドレスに送信する場合はOKだが、特定のドメインのみNGであった。</p>

<p>原因は、Sendmailのhostnameを設定する設定ファイル（/etc/mail/local-host-names）に「test.com」が定義してあったためである。とりあえず、「ww.test.com」と定義し、以下コマンドでSendmailを再起動するれば解決した。<br>
※ホスティング先のデフォルト設定でドメインを指定されていたため気付かなかった・・
</p>

<blockquote>
/etc/init.d/sendmail restart
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Tomcat起動時のエラー - error: JVM_LIBDIR /usr/lib/jvm-exports/java does not exist or is not a directory</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/tomcat---error-jvm-libdir-usrlibjvm-exportsjava-does-not-exist-or-is-not-a-directory.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.345</id>

    <published>2011-09-14T00:29:28Z</published>
    <updated>2011-09-14T00:29:38Z</updated>

    <summary>Tomcatをyumでインストールし、起動したところ以下エラーが発生。 Star...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="java" label="Java" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Tomcatをyumでインストールし、起動したところ以下エラーが発生。</p>

<blockquote>
Starting tomcat5: /usr/bin/rebuild-jar-repository: error: JVM_LIBDIR /usr/lib/jvm-exports/java does not exist or is not a directory<br>
/usr/bin/rebuild-jar-repository: error: JVM_LIBDIR /usr/lib/jvm-exports/java does not exist or is not a directory<br>
/usr/bin/rebuild-jar-repository: error: JVM_LIBDIR /usr/lib/jvm-exports/java does not exist or is not a directory<br>
/usr/bin/rebuild-jar-repository: error: JVM_LIBDIR /usr/lib/jvm-exports/java does not exist or is not a directory<br>
</blockquote>

<p>/etc/tomcat5/tomcat5.confに設定している"JAVA_HOME"の値がデフォルトのままであった。JDKを後からインストールしたので、以下のように修正。</p>

<blockquote>
JAVA_HOME="/usr/java/jdk1.6.0_27/"
</blockquote>

<p>Tomcatを起動する。しかし、また別なエラーが発生。</p>

<blockquote>
Starting tomcat5: /usr/bin/rebuild-jar-repository: error: Could not find jdbc-stdext Java extension for this JVM
/usr/bin/rebuild-jar-repository: error: Could not find jndi Java extension for this JVM
/usr/bin/rebuild-jar-repository: error: Some detected jars were not found for this jvm
/usr/bin/rebuild-jar-repository: error: Could not find jaas Java extension for this JVM
/usr/bin/rebuild-jar-repository: error: Some detected jars were not found for this jvm
</blockquote>

<p>ライブラリが見つからないようである。</p>

<p>原因は、JDKは<font color="red">RPM</font>でインストールしてTomcatは<font color="red">yum</font>でインストールしたためであるようです。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>PHP - Maximum execution time of 30 seconds exceeded</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/php---maximum-execution-time-of-30-seconds-exceeded.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.343</id>

    <published>2011-09-12T23:37:11Z</published>
    <updated>2011-09-12T23:38:56Z</updated>

    <summary>大容量のCSVをインストールしていたら以下のエラーが発生。 Maximum ex...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="php" label="PHP" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>大容量のCSVをインストールしていたら以下のエラーが発生。</p>

<blockquote>
<strong>Maximum execution time of 30 seconds exceede</strong>
</blockquote>

<p>php.iniの設定で処理のタイムアウト時間を設定していたためである。以下の箇所を修正することにより対応。</p>

<blockquote>
max_execution_time = 30
</blockquote>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Windows - タスクスケジューラを使用し、バッチを定期実行する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/windows--.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.341</id>

    <published>2011-09-12T00:03:14Z</published>
    <updated>2011-09-12T00:03:31Z</updated>

    <summary>タスクスケジューラを使用し、バッチを定期実行する方法を紹介します。 [スタート]...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="windows" label="Windows" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>タスクスケジューラを使用し、バッチを定期実行する方法を紹介します。</p>

<p>[スタート]-[管理ツール]-[タスクスケジューラ]を選択します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000315-630.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000315-630.html','popup','width=818,height=536,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000315-thumb-550x360-630.jpg" width="550" height="360" alt="WS000315.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>タスクスケジューラを右クリックし、基本タスクを選択します。ウィザードが表示されるので、タスクの名前と説明（任意）を入力し、[次へ]をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000316-633.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000316-633.html','popup','width=821,height=538,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000316-thumb-550x360-633.jpg" width="550" height="360" alt="WS000316.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>タスクの実行タイミングを選択し、[次へ]をクリックします。（今回は「毎日」を選択します）</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000317-636.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000317-636.html','popup','width=822,height=537,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000317-thumb-550x359-636.jpg" width="550" height="359" alt="WS000317.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>トリガを実行しはじめる開始時刻とタスクの実行間隔を入力し、[次へ]をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000318-639.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000318-639.html','popup','width=820,height=536,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000318-thumb-550x359-639.jpg" width="550" height="359" alt="WS000318.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>タスクで行う操作を選択し、[次へ]をクリックします。（今回は、プログラムの開始を選択します。)</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000319-642.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000319-642.html','popup','width=819,height=536,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000319-thumb-550x359-642.jpg" width="550" height="359" alt="WS000319.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>操作するプログラムを選択します。引数等を指定することもできます。[次へ]をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000321-645.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000321-645.html','popup','width=820,height=536,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/09/WS000321-thumb-550x359-645.jpg" width="550" height="359" alt="WS000321.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>確認画面が表示されるので、問題なければ[完了]をクリックするとプロパティ画面が表示されます。</p>

<p>[全般]タグのセキュリティオプションでデフォルトが、「ユーザがログオンしているときのみ実行する」となっているので、ログオンしていない場合でも実行する場合は「ユーザがログオンしているかどうかにかかわらず実行する」を選択する必要があります。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>SQL Server - 2008 自動バックアップのバッチ作成</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/sql-server---no.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.340</id>

    <published>2011-09-10T01:59:00Z</published>
    <updated>2011-09-12T00:09:38Z</updated>

    <summary>ホスティン先のサーバがSQL Server Integration Servic...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="sqlserver" label="SQL Server" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>ホスティン先のサーバがSQL Server Integration Servicesをインストールできないため、メンテナンスプランでの自動バックアップができないので、バッチによる自動バックアップのバッチを作成してみました。</p>

<p>以下がサンプルです。</p>

<ul><li>db_backup.bat</li></ul>

<blockquote>
@echo on<br><br>

::ログ出力ファイルの定義<br>
set dir_log=C:\db_backup\sh\log\db_backup.log<br><br>

echo ----------------- >> %dir_log%<br><br>

::実行時刻を出力<br>
echo %date% %time% >> %dir_log%<br><br>

::バックアップSQLを実行<br>
sqlcmd -U ユーザ名 -P パスワード -i C:\db_backup\sh\db_backup.sql >> %dir_log%<br><br>

::外部ディスクへの接続<br>
NET USE \\xxx.xx.xxx.xxx\dir パスワード  /USER:ユーザ名 >> %dir_log%<br><br>

::DBバックアップファイルを外部ディスクへコピー<br>
xcopy "C:\db_backup\db.bak" \\xxx.xx.xxx.xxx\dir /Y /E >> %dir_log%<br><br>

</blockquote>

<p>以下のコマンドで、SQLServerにログインし、指定のファイルのSQLを実行します。-iオプションは入力するファイルを指定できます。</p>

<blockquote>
::バックアップSQLを実行<br>
sqlcmd -U ユーザ名 -P パスワード -i C:\db_backup\sh\db_backup.sql >> %dir_log%
</blockquote>

<p>バックアップSQLは以下になります。WITH INITを付けることによる上書きされるので、バックアップファイルのローテーションの設定はいらなくなります。</p>

<ul><li>db_backup.sql</li></ul>

<blockquote>
BACKUP DATABASE DB名 TO DISK='C:\db_backup\db.bak' WITH INIT<br>
GO
</blockquote>

<p>以下は外部のNASに保存するためのコマンドです。参考のため記載しえおきます。</p>

<blockquote>
::外部ディスクへの接続<br>
NET USE \\xxx.xx.xxx.xxx\dir パスワード  /USER:ユーザ名 >> %dir_log%<br><br>

::DBバックアップファイルを外部ディスクへコピー<br>
xcopy "C:\db_backup\db.bak" \\xxx.xx.xxx.xxx\dir /Y /E >> %dir_log%<br><br>
</blockquote>

<p>あとは、タスクマネージャーを使用し、db_backup.batを定期的実行すればOKです。</p>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>SQL Server - &quot;FK_subplan_job_id&quot; と競合しています。</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/sql-server---fk-subplan-job-id.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.339</id>

    <published>2011-09-08T23:48:00Z</published>
    <updated>2011-09-08T23:48:46Z</updated>

    <summary>SQL Server Management StudioよりSQL Server...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="sqlserver" label="SQL Server" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>SQL Server Management StudioよりSQL Server エージェントのジョブに設定したプランを削除しようとしたら以下、エラーが発生。</p>

<blockquote>
DELETE ステートメントは REFERENCE 制約 "FK_subplan_job_id" と競合しています。競合が発生したのは、データベース "msdb"、テーブル "dbo.sysmaintplan_subplans", column 'job_id' です。<br>
ステートメントは終了されました。 (Microsoft SQL Server、エラー: 547)
</blockquote>

<p>SQL文で直接削除することで、解決可能です。</p>

<p>以下SQL文でテーブルの内容を確認します。</p>

<blockquote>
Use MSDB<br>
GO<br>
Select * from sysmaintplan_subplans<br>
GO
</blockquote>

<p>以下SQL文でジョブのレコードを削除します。</p>

<blockquote>
delete from sysmaintplan_subplans Where subplan_id = '1A25CF3F-8E56-4007-BD95-B133A35517F9'<br>
GO
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Java - Linux にバイナリでTomcat5をインストールする</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/java---linux-tomcat5.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.346</id>

    <published>2011-09-08T06:47:00Z</published>
    <updated>2011-09-08T06:48:21Z</updated>

    <summary>Linux(CentOS5)にバイナリでTomcat5をインストールする手順を記...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="java" label="Java" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Linux(CentOS5)にバイナリでTomcat5をインストールする手順を記載します。</p>

<ul><li><font size='3' ><strong>JDKをインストール</strong></font ></li></ul>
<p>JDKのインストール方法は<a href="http://labs.agenda-style.jp/blog/2011/09/linux---jdk16.html" target="_blank">Java - LinuxにJDK(1.6)をインストールする</a>を参照してください。</p>

<ul><li><font size='3' ><strong>Tomcatのダウンロード</strong></font ></li></ul>
<p>今回はwgetコマンドで取得します。</p>

<blockquote>
# wget http://ftp.riken.jp/net/apache/tomcat/tomcat-5/v5.5.33/bin/apache-tomcat-5.5.33.tar.gz
</blockquote>

<ul><li><font size='3' ><strong>Tomcatのインストール・設定</strong></font ></li></ul>

<p>まず、解答し/usr/local/ディレクトリに移動させます。</p>
<blockquote>
# tar xzf apache-tomcat-5.5.33.tar.gz<br>
# mv apache-tomcat-5.5.33 /usr/local/
</blockquote>

<p>シンボリックリンクを入ります。（好みなのでディレクトリ名をtomcatにしても良い）</p>

<blockquote>
# cd /usr/local/<br>
# ln -s apache-tomcat-5.5.33 tomcat<br>
# ls -la tomcat
</blockquote>

<p>Tomcatの環境変数を定義します。</p>
<blockquote>
# vi /etc/profile.d/tomcat.sh<br>
export JAVA_HOME=/usr/java/jdk1.6.0_27<br>
export PATH=$PATH:$JAVA_HOME/bin<br>
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar<br>
export TOMCAT_HOME=/usr/local/tomcat<br>
export CATALINA_HOME=/usr/local/tomcat<br>
export CLASSPATH=$CLASSPATH:$CATALINA_HOME/common/lib
</blockquote>

<p>Tomcat起動用のスクリプトを作成します。
<br>参照：<a href"http://centossrv.com/tomcat6.shtml" target="_blank">Javaアプリケーションサーバー構築(Tomcat6)</a>
</p>

<blockquote>
<pre class="code">#!/bin/bash
#
# Startup script for the tomcat
#
# chkconfig: 345 80 15
# description: Tomcat is a Servlet+JSP Engine.

# Source function library.
. /etc/rc.d/init.d/functions
source /etc/profile.d/tomcat.sh

start(){
    if [ -z $(/sbin/pidof java) ]; then
        echo &quot;Starting tomcat&quot;
        /usr/local/tomcat/bin/startup.sh
        touch /var/lock/subsys/tomcat
    else
        echo &quot;tomcat allready running&quot;
    fi
}

stop(){
    if [ ! -z $(/sbin/pidof java) ]; then
        echo &quot;Shutting down tomcat&quot;
        /usr/local/tomcat/bin/shutdown.sh
        until [ -z $(/sbin/pidof java) ]; do :; done
        rm -f /var/lock/subsys/tomcat
    else
        echo &quot;tomcat not running&quot;
    fi
}

case &quot;$1&quot; in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    status)
        /usr/local/tomcat/bin/catalina.sh version
        ;;
    *)
        echo &quot;Usage: $0 {start|stop|restart|status}&quot;
esac

exit 0</pre>
</blockquote>

<p>tomcatを起動します。</p>

<blockquote>
# /etc/rc.d/init.d/tomcat start<br>
Using CATALINA_BASE:   /usr/local/tomcat<br>
Using CATALINA_HOME:   /usr/local/tomcat<br>
Using CATALINA_TMPDIR: /usr/local/tomcat/temp<br>
Using JRE_HOME:        /usr/java/jdk1.6.0_27<br>
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar
</blockquote>

<p>Tomcatの自動起動設定を行います。</p>

<blockquote>
# chkconfig --add tomcat<br>
# chkconfig tomcat on
</blockquote>

<p>以下にアクセスし、動作確認を行う。</p>

<blockquote>
http://xxx.xxx.x.xxx:8080/
</blockquote>

<ul><li><font size='3' ><strong>ApacheとTomcatを連携させる</strong></font ></li></ul>

<p><a href="http://labs.agenda-style.jp/blog/2011/09/java---apache2tomcat5.html"　target="_blank">Apache2とTomcat5を連携させる</a>を参照してください。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Java - Apache2とTomcat5を連携させる</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/java---apache2tomcat5.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.344</id>

    <published>2011-09-07T00:03:34Z</published>
    <updated>2011-09-07T00:03:40Z</updated>

    <summary>Apache2とTomcat5を連携させるには以下手順で行う。 Apacheのh...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="java" label="Java" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><strong>Apache2とTomcat5を連携させる</strong>には以下手順で行う。</p>




<p>
Apacheのhttpd.confの以下のコメントを外す。
</p>

<blockquote>
LoadModule proxy_module modules/mod_proxy.so<br>
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so<br>
</blockquote>

<p>proxy_ajp_moduleが記述されていなかったので、記述してApacheを再起動したところ、以下のメッセージが出力された。記述しなくても問題無い場合があるみたいです。</p>

<blockquote>
[warn] module proxy_ajp_module is already loaded, skipping
</blockquote>

<p>あとは、Apacheのhttpd.confにTomcatに遷移させるディレクトリを記述すればOKです。</p>

<p>"/etc/httpd/conf.d/proxy_ajp.conf"がある場合はこのファイルを編集する。</p>

<blockquote>
ProxyPass /tomcat/ ajp://localhost:8009/
ProxyPass /examples/ ajp://localhost:8009/jsp-examples/
</blockquote>

<p>"/etc/httpd/conf.d/proxy_ajp.conf"が無い場合は"/etc/httpd/conf/httpd.conf"に以下に追記する。</p>

<blockquote>
&lt;Location /docs/&gt;<br>
  ProxyPass ajp://localhost:8009/test/<br>
&lt;/Location&gt;
</blockquote>

<p>8009のポートはTomcatのserver.xmlの以下の部分で設定している。</p>

<blockquote>
&lt;Connector port=&quot;8009&quot;<br>
               enableLookups=&quot;false&quot; redirectPort=&quot;8443&quot; protocol=&quot;AJP/1.3&quot; /&gt;

</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Java - LinuxにJDK(1.6)をインストールする</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/linux---jdk16.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.338</id>

    <published>2011-09-06T05:24:00Z</published>
    <updated>2011-09-06T05:24:50Z</updated>

    <summary>LinuxにJDKをインストールする手順を記載します。 JDKがインストールされ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="java" label="Java" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>LinuxにJDKをインストールする手順を記載します。</p>

<ul><li><font size='3' ><strong>JDKがインストールされているか確認</strong></font ></li></ul>

<p>既にJDKがインストールされているか以下のコマンドで確認する。</p>

<blockquote>
# java -version<br>
 gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-46)
</blockquote>

<p>JDK1.6をインストールしたいので、以降の手順で行います。</p>

<ul><li><font size='3' ><strong>JDK1.6　ダウンロード</strong></font ></li></ul>

<p>以下のURLからダウンロードできます。</p>

<blockquote>
<a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u27-download-440405.html" target"_blank">http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u27-download-440405.html</a>
</blockquote>

<p>今回はwgetコマンドでダウンロードします。</p>

<blockquote>
# wget http://download.oracle.com/otn-pub/java/jdk/6u27-b07/jdk-6u27-li
nux-i586-rpm.bin
</blockquote>

<ul><li><font size='3' ><strong>JDK1.6　インストール</strong></font ></li></ul>

<p>ダウンロードしたファイルに実行権限を付与します。</p>

<blockquote>
chmod 755 jdk-6u27-linux-i586-rpm.bin
</blockquote>

<p>ファイルを実行します。</p>

<blockquote>
./jdk-6u27-linux-i586-rpm.bin
</blockquote>

<p>私の環境だとGNU gcjを優先しているため、以下の手順のJDKを優先させるように変更する。</p>

<p>以下でGNU gcjの登録をする。</p>

<blockquote>
# /usr/sbin/alternatives --remove java /usr/lib/jvm/jre-1.4.2-gcj/bin/java<br>
# /usr/sbin/alternatives --remove javac /usr/lib/jvm/jre-1.4.2-gcj/bin/javac<br>
</blockquote>

<p>以下でJDKの登録をする。</p>

<blockquote>
# /usr/sbin/alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_27/bin/java 100<br>
# /usr/sbin/alternatives --install /usr/bin/javac javac /usr/java/jdk1.6.0_27/bin/javac 100<br>
</blockquote>

<p>以下でJDKを設定する。</p>

<blockquote>
# /usr/sbin/alternatives --config java<br>
1 プログラムがあり 'java' を提供します。<br>
  選択       コマンド<br>
-----------------------------------------------<br>
*+ 1           /usr/java/jdk1.6.0_27/bin/java<br><br>

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:1
</blockquote>

<blockquote>
# /usr/sbin/alternatives --config javac<br>
2 プログラムがあり 'javac' を提供します。<br><br>

  選択       コマンド<br>
-----------------------------------------------<br>
*+ 1           /usr/lib/jvm/java-1.4.2-gcj/bin/javac<br>
   2           /usr/java/jdk1.6.0_27/bin/javac<br><br>

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
</blockquote>

<p>最後にバージョンの確認を行う。</p>

<blockquote>
# java -version<br>
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)<br>
Java HotSpot(TM) Client VM (build 20.2-b06, mixed mode, sharing)
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Java - Linux にyumでTomcat5をインストールする</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/linux---tomcat5.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.337</id>

    <published>2011-09-05T23:49:00Z</published>
    <updated>2011-09-06T04:49:51Z</updated>

    <summary>LinuxにTomcat5をインストールする手順を記載します。 yumでインスト...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>LinuxにTomcat5をインストールする手順を記載します。</p>

<ul><li><font size='3' ><strong>yumでインストール</strong></font ></li></ul>

<blockquote>
# yum install tomcat5 tomcat5-webapps
</blockquote>

<p>インストールしたTomcat5に含まれているファイルを表示するには以下コマンドを実行します。</p>

<blockquote>
# rpm -ql tomcat5
</blockquote>

<ul><li><font size='3' ><strong>Tomcat5の起動</strong></font ></li></ul>

<p>以下コマンドでTomcat5を起動します。</p>

<blockquote>
# /sbin/service tomcat5 start
</blockquote>

<ul><li><font size='3' ><strong>動作確認</strong></font ></li></ul>

<p>「http://xxx.xxxxx.xx:8080/」にアクセスし、Tomcatのデフォルトぺージが表示されればOKです。</p>

<p><br><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>IIS - ログのの出力時間が間違って表示される</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/iis--.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.334</id>

    <published>2011-09-05T02:14:00Z</published>
    <updated>2011-09-05T02:14:26Z</updated>

    <summary>ASPアプリが動作しているIISのログを確認しようとすると、ログの出力時間がシス...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="iis" label="IIS" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>ASPアプリが動作しているIISのログを確認しようとすると、ログの出力時間がシステム時間と異なって出力されていた。</p>

<p>デフォルトのログファイル形式のW3C形式では、一律でGMT (グリニッチ標準時) と規定されているからである。</p>

<p>解決方法は、ログ形式をIIS形式にすることで対応する。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000311-621.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000311-621.html','popup','width=500,height=492,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000311-thumb-550x541-621.jpg" width="550" height="541" alt="WS000311.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>ニーズウェルカンファレンス 2011 in Summer</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/tech/study/-2011-in-summer.html" />
    <id>tag:labs.agenda-style.jp,2011:/tech//5.342</id>

    <published>2011-09-03T01:54:14Z</published>
    <updated>2011-09-08T08:34:01Z</updated>

    <summary>INFOMATION 2011年9月3日（土） 13:00～16:30 株式会社...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
        <category term="過去の勉強会" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ニーズウェルカンファレンス" label="ニーズウェルカンファレンス" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/tech/">
        <![CDATA[<p><span style="text-decoration: underline;"><strong>INFOMATION</strong></span></p>

<ul>
<li>2011年9月3日（土）</li>
<li>13:00～16:30</li>
<li>株式会社ニーズウェル 5F</li>
</ul>

<p><span style="text-decoration: underline;"><strong>CONTENTS</strong></span></p>

<ul>
<li>Androidの未来予想図 ～現在の技術と未来の技術の予測～ </li>
<li>ソーシャルゲームなぜ人気なのか～2000億市場の分析と提案～</li>
<li>進化する検索システム～使いやすい検索エンジンの提案～</li>
<li>生命保険の身近なシステムについて</li>
<li>損保と私たち ～知って楽しい損保の話～</li>
<li>システムアーキテクチャを考える～「30分で差がつく」シリーズ①～</li>
<li>Scala 入門 ～関数型言語＋オブジェクト指向言語～</li>
<li>Hadoop～大量データと黄色いゾウ～</li>
<li>レコーディング・ハッピネスから始める～自分探しのエトセトラ～</li>
</ul>

<p><span style="text-decoration: underline;"><strong>Data</strong></span></p>

<ul>
<li>Androidの未来予想図 ～現在の技術と未来の技術の予測～<br><br>
<object id="presentation" width="550" height="400" type="application/x-shockwave-flash" data="/tech/Androidの未来予想図.swf"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="Androidの未来予想図.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="allowFullScreen" value="true" /> 
</object>
<br><br>
</li>
</ul>

<ul>
<li>ソーシャルゲームなぜ人気なのか～2000億市場の分析と提案～<br><br>
<object id="presentation" width="550" height="400" type="application/x-shockwave-flash" data="/tech/ソーシャルゲームなぜ人気なのか.swf"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="ソーシャルゲームなぜ人気なのか.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="allowFullScreen" value="true" /> 
</object>
<br><br>
</li>
</ul>

<ul>
<li>進化する検索システム～使いやすい検索エンジンの提案～<br><br>

<object id="presentation" width="550" height="400" type="application/x-shockwave-flash" data="/tech/進化する検索システム.swf"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="進化する検索システム.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="allowFullScreen" value="true" /> 
</object>
<br><br>
</li>
</ul>

<ul>
<li>生命保険の身近なシステムについて</li>
<object id="presentation" width="550" height="400" type="application/x-shockwave-flash" data="/tech/生命保険の身近なシステム.swf"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="生命保険の身近なシステム.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="allowFullScreen" value="true" /> 
</object>
<br><br>
</ul>

<ul>
<li>損保と私たち ～知って楽しい損保の話～</li>
<object id="presentation" width="550" height="400" type="application/x-shockwave-flash" data="/tech/よくわかる損保.swf"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="よくわかる損保.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="allowFullScreen" value="true" /> 
</object>
<br><br>
</ul>

<ul>

<li>システムアーキテクチャを考える～「30分で差がつく」シリーズ①～</li>
<object id="presentation" width="550" height="400" type="application/x-shockwave-flash" data="/tech/システムアーキテクチャを考える.swf"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="システムアーキテクチャを考える.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="allowFullScreen" value="true" /> 
</object>
<br><br>
</ul>

<ul>
<li>Scala 入門 ～関数型言語＋オブジェクト指向言語～<br><br>
<object id="presentation" width="550" height="400" type="application/x-shockwave-flash" data="/tech/次世代言語　Scala.swf"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="次世代言語　Scala.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="allowFullScreen" value="true" /> 
</object>
<br><br>
<object id="presentation" width="550" height="400" type="application/x-shockwave-flash" data="/tech/Scalaデメリット.swf"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="Scalaデメリット.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="allowFullScreen" value="true" /> 
</object>
<br><br>

</li>
</ul>

<ul>
<li>Hadoop～大量データと黄色いゾウ～<br><br>
<object id="presentation" width="550" height="400" type="application/x-shockwave-flash" data="/tech/HADOOP.swf"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="HADOOP.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="allowFullScreen" value="true" /> 
</object>
<br><br>

</li>
</ul>

<p><span style="text-decoration: underline;"><strong>IMAGE</strong></span></p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/tech/%E7%94%BB%E5%83%8F%20005.jpg"><img alt="画像 005.jpg" src="http://labs.agenda-style.jp/tech/assets_c/2011/09/画像 005-thumb-550x410-657.jpg" width="550" height="410" class="mt-image-none" style="" /></a></span></p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/tech/%E7%94%BB%E5%83%8F%20010.jpg"><img alt="画像 010.jpg" src="http://labs.agenda-style.jp/tech/assets_c/2011/09/画像 010-thumb-550x410-659.jpg" width="550" height="410" class="mt-image-none" style="" /></a></span></p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/tech/%E7%94%BB%E5%83%8F%20009.jpg"><img alt="画像 009.jpg" src="http://labs.agenda-style.jp/tech/assets_c/2011/09/画像 009-thumb-550x410-660.jpg" width="550" height="410" class="mt-image-none" style="" /></a></span></p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/tech/DSC_0004.JPG"><img alt="DSC_0004.JPG" src="http://labs.agenda-style.jp/tech/assets_c/2011/09/DSC_0004-thumb-550x412-663.jpg" width="550" height="412" class="mt-image-none" style="" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>IIS - システム自動時にSMTPを自動起動する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/iis---smtp.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.335</id>

    <published>2011-09-02T08:09:02Z</published>
    <updated>2011-09-02T08:09:16Z</updated>

    <summary>IISのSMTPサーバをシステム起動時に自動起動するには、[スタート] - [管...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="iis" label="IIS" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>IISのSMTPサーバをシステム起動時に自動起動するには、[スタート] - [管理ツール] - [サービス]を開き、[Simple Mail Transport Protocol (SMTP)] を右クリックし[プロパティ] を選択し、[スタートアップ種類]を「自動」にする。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000313-624.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000313-624.html','popup','width=1122,height=485,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000313-thumb-550x237-624.jpg" width="550" height="237" alt="WS000313.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>MySQL - JOINとカンマ演算の優先順位</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/09/mysql-limit.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.336</id>

    <published>2011-08-31T23:50:00Z</published>
    <updated>2011-08-31T23:49:52Z</updated>

    <summary>JOINとカンマ演算子はMySQLで同義とされているが、優先順位が異なる。 構文...</summary>
    <author>
        <name>staff</name>
        
    </author>
    
    <category term="mysql" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>JOINとカンマ演算子はMySQLで同義とされているが、優先順位が異なる。</p>
<p>構文が正しいはずであるのに、以下のエラーが発生した場合には、<br>JOINとカンマ演算子の優先順位によるものだと考えられる。</p>
<blockquote>Unknown column 'カラム名' in 'on clause'</blockquote>
<p>SELECT構文等で値を取得する際には注意が必要である。</p>
<p>対策としては、カンマ演算子の代わりにJOINのみを使用するか、括弧を使用し、明示的にグループ分けを行う。</p>]]>
        
    </content>
</entry>

<entry>
    <title>PHP - Fatal error:  Allowed memory size of xxxx bytes exhausted</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/php---fatal-error-allowed-memory-size-of-xxxx-bytes-exhausted.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.332</id>

    <published>2011-08-30T23:49:17Z</published>
    <updated>2011-08-30T23:48:59Z</updated>

    <summary>PHPのアプリケーション(ECCUBE)でCSVでデータを投入時に以下エラーが発...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="php" label="PHP" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>PHPのアプリケーション(ECCUBE)でCSVでデータを投入時に以下エラーが発生。</p>

<blockquote>
PHP Fatal error:  Allowed memory size of 16777216 bytes exhausted (tried to allocate 10001 bytes) in
</blockquote>

<p>メモリが足りていないということでPHPのメモリの上限の設定を変更する。</p>

<p>php.iniのパラメータ値を変更する。</p>

<blockquote>
memory_limit = 16M
</blockquote>

<p>またはスクリプトに以下の記述を追加する。</p>

<pre name="code" class="php">
ini_set(&quot;memory_limit&quot;,&quot;256M&quot;);
</pre>

<p><br><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>MySQL - ERROR 1060: Duplicate column name</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/mysql---error-1060-duplicate-column-name.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.331</id>

    <published>2011-08-29T23:57:03Z</published>
    <updated>2011-08-29T23:57:21Z</updated>

    <summary>テーブルにカラムを追加しようとSQLを発行したら、以下エラーが発生。 #1060...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="mysql" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>テーブルにカラムを追加しようとSQLを発行したら、以下エラーが発生。</p>

<blockquote>
#1060 - Duplicate column name 'カラム名' 
</blockquote>

<p>同じ名前のカラムが既にある場合に出力されるエラーである。</p>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Wrong permissions on configuration file, should not be world writable!</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/wrong-permissions-on-configuration-file-should-not-be-world-writable.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.330</id>

    <published>2011-08-24T23:42:07Z</published>
    <updated>2011-08-24T23:42:05Z</updated>

    <summary>phpMyAdminにアクセスしたら以下エラーが表示された。 Wrong per...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="その他" label="その他" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>phpMyAdminにアクセスしたら以下エラーが表示された。</p>

<blockquote>
<strong>Wrong permissions on configuration file, should not be world writable!</strong>
</blockquote>

<p>設定ファイルの権限が正しくないようなので、以下コマンドで変更する。</p>

<blockquote>
chmod 644 phpmyadmin/config.inc.php 
</blockquote>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>MySQL - 自動採番</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/mysql.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.333</id>

    <published>2011-08-23T23:53:02Z</published>
    <updated>2011-08-29T07:19:59Z</updated>

    <summary>MySQLではテーブルを生成する際、以下のように自動採番を行うカラムを簡単に作る...</summary>
    <author>
        <name>staff</name>
        
    </author>
    
    <category term="mysql" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>MySQLではテーブルを生成する際、以下のように自動採番を行うカラムを簡単に作る事ができます。</p>

<blockquote>
CREATE TABLE user_table (user_id SERIAL,user_name VARCHAR(30),age TINYINY(3));</blockquote>

<p>カラム名の後に、SERIALと入力するだけで、INSERTをする際にも明示しなくても、自動的に番号が割り振られます。</p>

<p>レコードを削除後も、同じ番号は割り振られません。</p>

<p>NOT NULL UNIQUE　AUTO_INCREMENT等の重要な属性も自動的に付与されます。</p>

<p>&nbsp;</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Apache - SSL証明書のパスフレーズを自動入力（省略）</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/apache---ssl.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.315</id>

    <published>2011-08-23T23:34:53Z</published>
    <updated>2011-08-23T23:35:36Z</updated>

    <summary>Apacheを定期的に自動再起動の設定をしていると、SSL証明書を設定している場...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="apache" label="Apache" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Apacheを定期的に自動再起動の設定をしていると、SSL証明書を設定している場合、パスフレーズの入力を求められ、再起動ができません。</p>

<p>上記の解決策として、パスフレーズを自動入力してApacheを再起動できる設定方法を紹介します。</p>

<p>/etc/httpd/conf.d/ssl.confの以下の箇所を修正します。</p>

<blockquote>
SSLPassPhraseDialog    builtin ※デフォルト<br>
↓<br>
SSLPassPhraseDialog  exec:/etc/httpd/conf.d/ppecho.sh ※修正後
</blockquote>

<p>builtinを指定した場合は、対話的に入力しなければいけませんが、execを指定した場合は外部のシェルから入力することを可能にします。</p>

<p>ppecho.shは以下のように記述します。</p>

<blockquote>
#!/bin/sh<br>
echo "パスフレーズ"
</blockquote>

<p>Apacheを再起動してもパスフレーズの入力を求められなくなりました。</p>

<blockquote>
#/etc/init.d/httpd restart<br>
Stopping httpd:                                            [  OK  ]<br>
Starting httpd:                                            [  OK  ]
</blockquote>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>ECCUBE - MDB2 Error: insufficient permissions MySQLエラー</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/eccube---mdb2-error-insufficient-permissions-mysql.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.329</id>

    <published>2011-08-22T01:02:09Z</published>
    <updated>2011-08-22T23:41:54Z</updated>

    <summary>ECCUBEのインストール時に以下エラーが発生した。 &gt;&gt; MDB2 Error...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="eccube" label="ECCUBE" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>ECCUBEのインストール時に以下エラーが発生した。</p>

<blockquote>
<strong>>> MDB2 Error: insufficient permissions</strong><br>
[Error message: Could not execute statement] [Last executed query: create table dtb_module_update_logs( log_id int NOT NULL, module_id int NOT NULL, buckup_path text, error_flg smallint DEFAULT 0, error text, ok text, create_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, update_date timestamp NOT NULL, PRIMARY KEY (log_id) ) ENGINE=InnoDB] [Native code: 1142] [Native message: CREATE command denied to user 'profl792'@'localhost' for table 'dtb_module_update_logs']
</blockquote>

<p>設定したMySQLユーザにDB作成の権限を付与していなかったからである。とりあえず、スーパーユーザで設定を行い、そのあと、data/config/config.phpでユーザを変更した。</p>

<p><br><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Apache - caught SIGTERM, shutting down</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/apache---caught-sigterm-shutting-down.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.314</id>

    <published>2011-08-21T23:25:51Z</published>
    <updated>2011-08-21T23:26:48Z</updated>

    <summary>毎日Apacheが自動的的に停止してしまっていたので、調査していたらApache...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="apache" label="Apache" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>毎日Apacheが自動的的に停止してしまっていたので、調査していたらApacheのログに以下のログが出力されていた。</p>

<blockquote>
<strong>caught SIGTERM, shutting down</strong>
</blockquote>

<p>終了のシグナル送られて、停止しているという意味である。</p>

<p>更に調査してみると、ログローテーションのスクリプトにkillコマンドによる一度Apacheを停止させていた。SSL証明書を設定したためにパスフレーズの入力を必要としたため、起動しなかった・・。</p>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Linux - libwrap refused connection to ～ messagesログ</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/linux---libwrap-refused-connection-to-messages.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.313</id>

    <published>2011-08-18T23:43:00Z</published>
    <updated>2011-08-18T23:43:14Z</updated>

    <summary>messagesログに以下が出力されていました。 libwrap refused...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>messagesログに以下が出力されていました。</p>

<blockquote>
<strong>libwrap refused connection to ssh (libwrap=sshd) from xxx.xx.xx.xxx</strong>
</blockquote>

<p>TCP Wrappersによる接続IPの制限を行っている場合、上記のように拒否したIPをログ出力しします。上記はxxx.xx.xx.xxxからのSSHによる接続を拒否したという意味です。</p>

<p>ちなみにsecureログには以下のように出力されています。</p>

<blockquote>
<strong>FAIL: ssh libwrap from= xxx.xx.xx.xxx</strong>
</blockquote>

<p><br><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Linux - 接続IPの制限(hosts.allow、hosts.deny)</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/linux---iphostsallowhostsdeny.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.311</id>

    <published>2011-08-17T23:43:00Z</published>
    <updated>2011-08-17T23:43:40Z</updated>

    <summary>TCP Wrappersによる接続IPの制限の方法を紹介します。 TCP Wra...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>TCP Wrappersによる<strong>接続IPの制限</strong>の方法を紹介します。</p>

<p>TCP Wrappersが「/etc/hosts.allow」と「/etc/hosts.deny」ファイルを参照し、IPの制限を行います。それぞれのファイルの役割は以下になります。</p>

<ul>
<li><strong>hosts.allow</strong><br>
許可する接続を宣言
</li>
<li><strong>hosts.deny</strong><br>
拒否する接続を宣言
</li>
</ul>

<p>以下のフォーマットで記述します。</p>

<blockquote>
デーモン名:Pアドレス()ホスト名)<br>
sshd:xxx.xxx.x.xxx, xxx.xx.xx.xxx<br>
</blockquote>

<p>また、例として以下のように記述も可能です、</p>

<blockquote>
※全てのサービスによる接続を特定のIPを許可する。<br>
ALL:xxx.xxx.x.xxx<br><br>

※全てのサービスによる接続を全てのIPを許可する。<br>
ALL:ALL<br><br>

※192.168.0.*のIPからの接続を許可する。<br>
sshd:192.168.0.*<br><br>

※192.168.0.10のIPを除く192.168.0.*からの接続を許可する。<br>
sshd:192.168.0.* EXCEPT 192.168.0.10<br><br>
</blockquote>

<p><br><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>ECCUBE - カテゴリが追加できない - ※ カテゴリの登録最大数を超えました。</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/eccube----.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.312</id>

    <published>2011-08-16T23:27:32Z</published>
    <updated>2011-08-16T23:28:26Z</updated>

    <summary>ECCUBEでカテゴリを追加しようとしたら以下メッセージが表示され、カテゴリが追...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="eccube" label="ECCUBE" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>ECCUBEでカテゴリを追加しようとしたら以下メッセージが表示され、カテゴリが追加できない 現象が発生。</p>

<blockquote>
<font color="red"><strong>※ カテゴリの登録最大数を超えました。</strong></font>
</blockquote>

<p>システム設定>パラメータ設定で最大カテゴリ登録数を制限しているからなので、設定値を変更すればOKです。</p>

<blockquote>
CATEGORY_MAX ：5000　※デフォルトは1000
</blockquote>

<p><br><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Linux - authentication failure messagesログに大量に出力</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/linux--authentication-failure-messages.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.310</id>

    <published>2011-08-16T00:29:16Z</published>
    <updated>2011-08-16T00:34:58Z</updated>

    <summary>messagesログファイルにauthentication failureという...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>messagesログファイルに<strong>authentication failure</strong>というログが大量に出力されていた。意味は「ログインに失敗」している場合に出力される。</p>

<blockquote>
Aug 14 04:53:39 staff sshd(pam_unix)[21856]: authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=xxx.xxx.xxx.xx  user=root
</blockquote>

<p>rhostのIPから接続を試みて失敗しているようである。</p>

<p>以下の対象方法を行うことで対応することが可能</p>

<ul>
<li>ファイアウォールによるIP制限</li>
<li>iptablesによるIP制限</li>
<li>TCP WrappersによるIPの制限(hosts.allow、hosts.deny)</li>
</ul>

<p>SSHによる接続はサーバ管理者のみで良いと思うので、特定のIPを遮断するより、特定のIPのみ接続を許可する設定を行う。</p>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>MySQL - チューニング max_connectionとは</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/mysql---max-connection.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.304</id>

    <published>2011-08-15T01:15:02Z</published>
    <updated>2011-08-15T01:15:19Z</updated>

    <summary>max_connectionとは、MySQLへの同時接続最大接続数を設定する項目...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="mysql" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><strong>max_connection</strong>とは、MySQLへの同時接続最大接続数を設定する項目です。</p>

<ul><li><font size='3' ><b>/etc/my.cnf</b></font ></li></ul>

<blockquote>
[mysqld]<br/>
max_connections=100
</blockquote>

<p>同時接続最大数を設定することにより、サーバへの負荷の増大を防ぎ、障害発生を防ぐ必要があります。（デフォルト設定値は100）</p>

<p>ただし、アクセスの多いサイトなどで最大接続数を低く設定しすぎると、ユーザへのレスポンスが遅くなるので、適切な値を設定することが大事です。（私はApacheの接続上限の値と一緒にしていますが・・）</p>

<p>現在のアクセス数を確認するには、以下のコマンドで確認できます。</p>

<blockquote>
# mysqladmin -u root -p extended-status | egrep '(Max|Threads_)'<br>
| Max_used_connections   | 101        |<br>
| Threads_cached             | 0          |<br>
| Threads_connected        | 1          |<br>
| Threads_created            | 14143  |<br>
| Threads_running            | 1          |
</blockquote>

<p>F5でページを更新させると、「Threads_connected」が上昇します。</p>

<blockquote>
# mysqladmin -u root -p extended-status | egrep '(Max|Threads_)'<br>
| Max_used_connections   | 101        |<br>
| Threads_cached             | 0          |<br>
| Threads_connected        | 13          |<br>
| Threads_created            | 14143  |<br>
| Threads_running            | 1          |
</blockquote>

<p><p>「Threads<em>connected」は現在の接続数になります。基本的にはこの値の流れを分析し、<strong>max</em>connection</strong>の値を検討するべきです。</p>.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>JavaScript - URLをパース（解析）するライブラリ 『parseUri』</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/javascript---url-parseuri.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.300</id>

    <published>2011-08-12T06:51:08Z</published>
    <updated>2011-08-12T06:51:36Z</updated>

    <summary>JavaScript でURLをパース（解析）するライブラリ 『parseUri...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="javascript" label="JavaScript" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>JavaScript でURLをパース（解析）するライブラリ 『parseUri』の使用方法を紹介します。</p>

<p>まず、『parseUri』をダウンロードします。<br /><a href="http://blog.stevenlevithan.com/archives/parseuri" target="_blank">http://blog.stevenlevithan.com/archives/parseuri</a>から「parseuri.js」をダウンロードします。</p>

<p>&nbsp;</p>

<p>ホスト名とURLのGETパラメータを取得する場合は以下のように記述します。</p>

<pre name="code" class="xml">//URL
var uri = 'http://labs.agenda-style.jp/?search_word=AgendaLabs'

//URLをパース
var parse_uri = new parseUri(uri);    

//ホスト名表示
alert(parse_uri.host); 

//パラメータ値表示
alert(parse_uri[&quot;queryKey&quot;][&quot;search_word&quot;]); </pre>

<p>パースしたオブジェクトは以下の様に生成されます。</p>

<table border="4" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>source</td>
<td>URL(パース前のURL)</td>
</tr>
<tr>
<td>protocol</td>
<td>プロトコル（http等）</td>
</tr>
<tr>
<td>authority</td>
<td>Basic認証等のユーザ名、パスワード、ホスト名</td>
</tr>
<tr>
<td>userInfo</td>
<td>Basic認証等のユーザ名、パスワード</td>
</tr>
<tr>
<td>user</td>
<td>ユーザ名</td>
</tr>
<tr>
<td>password</td>
<td>パスワード</td>
</tr>
<tr>
<td>host</td>
<td>ホスト名</td>
</tr>
<tr>
<td>port</td>
<td>ポート番号</td>
</tr>
<tr>
<td>relative</td>
<td>GETパラメータを含むドキュメントルートからのURI</td>
</tr>
<tr>
<td>path</td>
<td>GETパラメータを含まないドキュメントルートからのURI</td>
</tr>
<tr>
<td>directory</td>
<td>ディレクトリ</td>
</tr>
<tr>
<td>file</td>
<td>ファイル名</td>
</tr>
<tr>
<td>query</td>
<td>GETパラメータ</td>
</tr>
<tr>
<td>anchor</td>
<td>アンカー先</td>
</tr>
<tr>
<td>queryKey</td>
<td>GETパラメータ別パラメータ値</td>
</tr>
</tbody>
</table>

<p><br><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>JavaScript - 検索サイトからの検索ワードを取得する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/javascript.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.299</id>

    <published>2011-08-12T00:50:53Z</published>
    <updated>2011-08-12T00:52:00Z</updated>

    <summary>JavaScrptで検索エンジンからの検索ワードを取得する方法を紹介します。 U...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="javascrpt" label="JavaScrpt" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>JavaScrptで検索エンジンからの検索ワードを取得する方法を紹介します。<p/>

<p>URLのparseUriを使用するので、<a href="http://blog.stevenlevithan.com/archives/parseuri" target="_blank">http://blog.stevenlevithan.com/archives/parseuri</a>から「parseuri.js」をダウンロードして設置します。</p>

<p>検索エンジン別に検索ワードのパラメータ名は異なるので、注意してください。<br/>以下は、Googleのソースです。</p>

<pre name="code" class="xml">
&lt;script type=&quot;text/javascript&quot; src=&quot;parseuri.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; language=&quot;javascript&quot;&gt;
// 参照元URL（検索結果ページのURL）を取得し、URLをparseする。
var referer_parse_uri = new parseUri(document.referrer);    

//検索ワードのパラメータ値を取得
//※Googleのパラメータ名は&quot;q&quot;
var search_str = referer_parse_uri[&quot;queryKey&quot;][&quot;q&quot;]; //検索項目

      //URLエンコードをしているので、デコードする　
  　  search_str = decodeURI(serch_str); 

  　  alert('search_str');
&lt;/script&gt;</pre>

<p>以上です。</p>

<p><br><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Apache - HTTP通信をHTTPS通信に変更する(rewrite)設定</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/apache---httphttpsrewrite.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.305</id>

    <published>2011-08-11T06:35:00Z</published>
    <updated>2011-08-11T06:37:40Z</updated>

    <summary>ApacheでHTTP通信をHTTPS通信に変更する(rewrite)設定を紹介...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="apache" label="Apache" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>ApacheでHTTP通信をHTTPS通信に変更する(rewrite)設定を紹介します。</p>

<p>Apacheの設定ファイル（httpd.conf）に以下の記述を追加する。</p>

<blockquote>
&lt;VirtualHost xx.xx.xxx.xx:443&gt;<br>
    SSLEngine on<br>
    SSLCertificateChainFile /etc/httpd/conf/ssl.crt/test.cer<br>
    SSLCertificateFile /etc/httpd/conf/ssl.crt/test.crt<br>
    SSLCertificateKeyFile /etc/httpd/conf/ssl.key/test.key<br>
    <br>
    <br>
    <font color='red'>
    &lt;IfModule mod_rewrite.c&gt;<br>
        RewriteEngine On<br>
        RewriteCond %{SERVER_PORT} !^443$<br>
        RewriteRule ^/(.*)?$ https://%{HTTP_HOST}/$1 [L,R]<br>
    &lt;/IfModule&gt;<br>
     </font>
&lt;/VirtualHost&gt;
</blockquote>

<p>記述の意味は以下の通りである。</p>

<ul>
    <li>RewriteEngine On</li>
    <p>rewriteを有効・無効設定</p>
    <li>RewriteCond %{SERVER_PORT} !^443$</li>
    <p>ポート443への接続で無い場合、RewriteRuleを適用するという記述</p>
    <li>RewriteRule ^/(.*)?$ https://%{HTTP_HOST}/$1 [L,R]</li>
    <p>"/"以下にアクセスした場合、HTTPSに変更するという記述</p>
</ul>

<p><br><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Apache - チューニング　KeepAliveとは</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/apache---keepalive.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.303</id>

    <published>2011-08-10T23:38:00Z</published>
    <updated>2011-08-10T23:38:51Z</updated>

    <summary>Apacheの設定値のKeepAliveとは、1つのページを表示させるためのリク...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="apache" label="Apache" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Apacheの設定値の<strong>KeepAlive</strong>とは、1つのページを表示させるためのリクエスト後も一定時間接続を保持するかを設定する項目です。</p>

<p>たとえば、HTMLの中に画像を表示するためにimgタグを複数記述していた場合、HTMLをレスポンスとして受け取ったクライアントは再度画像ファイルを取得するために画像毎分サーバにリクエストを送ります。KeepAliveをOFFにしていると、画像毎に接続と切断を行いますが、ONにしていると接続切断の回数が減るので、負荷を軽減できます。 </p>

<p>しかし、リクエストが全て完了したとしても一定時間は接続を継続するので、余計なプロセスが残ってしまうため、必ずしも負荷を軽減するとは限りません。</p>

<p>そこで、<strong>MaxKeepAliveRequests</strong>と<strong>KeepAliveTimeout</strong>の設定をすることにより、KeepAliveの詳細の設定を行います。</p>

<p>「MaxKeepAliveRequests」は、接続から切断までに受け付けるリクエスト数を設定する項目です。</p>

<p>「KeepAliveTimeout」は、最後のリクエストから切断するまでの時間を設定します。</p>

<p>上記2点の設定値を適当な値にすることにより、負荷軽減を行うことが可能です。</p>

<ul><li><font size='3' ><b>httpd.conf</b></font ></li></ul>

<blockquote>
#<br>
# KeepAlive: Whether or not to allow persistent connections (more than<br>
# one request per connection). Set to "Off" to deactivate.<br>
#<br>
KeepAlive On<br>
<br>
#<br>
# MaxKeepAliveRequests: The maximum number of requests to allow<br>
# during a persistent connection. Set to 0 to allow an unlimited amount.<br>
# We recommend you leave this number high, for maximum performance.<br>
#<br>
MaxKeepAliveRequests 100<br>
<br>
#<br>
# KeepAliveTimeout: Number of seconds to wait for the next request from the<br>
# same client on the same connection.<br>
#<br>
KeepAliveTimeout 15

</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>HTML5入門 -  search/tel/url/email inputタグ新規属性 1</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/html5---rubyrtrp-2-1.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.298</id>

    <published>2011-08-10T10:14:00Z</published>
    <updated>2011-08-10T10:14:39Z</updated>

    <summary><![CDATA[search  &lt;input type=&quot;search&quot...]]></summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="html5" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><span style="text-decoration: underline;"><strong>search</strong></span> </p>

<p>&lt;input type=&quot;search&quot;&gt;は、検索テキスト入力の場合に使用します。以下は、指定可能な属性である。</p>

<ul> 
<li>name属性</li>
<li>value属性</li>
<li>size属性</li>
<li>maxlength属性</li>
<li>autocomplete属性</li>
<li>pattern属性</li>
<li>placeholder属性</li>
<li>readonly属性</li>
<li>required属性</li>
<li>list属性</li>
</ul>

<pre name="code" class="xml">
&lt;form action=&quot;i&quot; method=&quot;post&quot;&gt;
&lt;p&gt;&lt;label&gt;名前で検索：&lt;input type=&quot;search&quot; name=&quot;name&quot; size=&quot;10&quot; maxlength=&quot;20&quot;&gt;&lt;/label&gt;&lt;/p&gt;
&lt;p&gt;&lt;input type=&quot;submit&quot; value=&quot;検索する&quot;&gt;&lt;/p&gt;
&lt;/form&gt;</pre>

<p><span style="text-decoration: underline;"><strong>tel</strong></span> </p>

<p>&lt;input type=&quot;tel&quot;&gt;は、電話番号入力の場合に使用します。emailやurlの場合は入力形式を強制されるが、電話番号はされません。以下は、指定可能な属性である。</p>

<ul> 
<li>name属性</li>
<li>value属性</li>
<li>size属性</li>
<li>maxlength属性</li>
<li>autocomplete属性</li>
<li>pattern属性</li>
<li>placeholder属性</li>
<li>readonly属性</li>
<li>required属性</li>
<li>list属性</li>
</ul> 

<p><span style="text-decoration: underline;"><strong>url</strong></span> </p>

<p>&lt;input type=&quot;url&quot;&gt;は、URL入力の場合に使用します。このタイプを使用した場合、URL形式の文字列以外を指定すると入力チェックを自動で行ってくれます。以下は、指定可能な属性である。</p>

<ul> 
<li>name属性</li>
<li>value属性</li>
<li>size属性</li>
<li>maxlength属性</li>
<li>autocomplete属性</li>
<li>pattern属性</li>
<li>placeholder属性</li>
<li>readonly属性</li>
<li>required属性</li>
<li>list属性</li>
</ul> 

<pre name="code" class="xml">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
&lt;p&gt;&lt;label&gt;URL：&lt;input type=&quot;url&quot; name=&quot;url&quot; size=&quot;30&quot; maxlength=&quot;30&quot;&gt;&lt;/label&gt;&lt;/p&gt;
&lt;p&gt;&lt;input type=&quot;submit&quot; value=&quot;送信する&quot;&gt;&lt;/p&gt;
&lt;/form&gt;</pre>

<p>HTML5に対応しているブラウザであれば、入力チェックを試せます。</p>

<form action="" method="post">
<p><label>URL：<input type="url" name="url" size="30" maxlength="30"></label></p>
<p><input type="submit" value="送信する"></p>
</form>

<p><span style="text-decoration: underline;"><strong>email</strong></span> </p>

<p>&lt;input type=&quot;email&quot;&gt;は、メールアドレス入力の場合に使用します。このタイプを使用した場合、メールアドレス形式の文字列以外を指定すると入力チェックを自動で行ってくれます。以下は、指定可能な属性である。</p>

<ul> 
<li>name属性</li>
<li>value属性</li>
<li>size属性</li>
<li>maxlength属性</li>
<li>autocomplete属性</li>
<li>pattern属性</li>
<li>placeholder属性</li>
<li>readonly属性</li>
<li>required属性</li>
<li>list属性</li>
</ul> 

<pre name="code" class="xml">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
&lt;p&gt;&lt;label&gt;メール：&lt;input type=&quot;email&quot; name=&quot;email&quot; size=&quot;30&quot; maxlength=&quot;30&quot;&gt;&lt;/label&gt;&lt;/p&gt;
&lt;p&gt;&lt;input type=&quot;submit&quot; value=&quot;送信する&quot;&gt;&lt;/p&gt;
&lt;/form&gt;</pre>

<p>HTML5に対応しているブラウザであれば、入力チェックを試せます。</p>

<form action="" method="post">
<p><label>メール：<input type="email" name="email" size="30" maxlength="30"></label></p>
<p><input type="submit" value="送信する"></p>
</form>
]]>
        

    </content>
</entry>

<entry>
    <title>Linux - NTPサーバ　エラー | ntpq: read: Connection refused</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/ntp-ntpq-read-connection-refused.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.297</id>

    <published>2011-08-09T23:48:00Z</published>
    <updated>2011-08-09T23:48:24Z</updated>

    <summary>以下コマンドで動作確認をするとエラーが発生した。 # ntpq -p ntpq:...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>以下コマンドで動作確認をするとエラーが発生した。</p>

<blockquote>
# ntpq -p
ntpq: read: Connection refused
</blockquote>

<p>エラーが出力される可能性として以下が挙げられる。</p>

<ul>
<li>指定したNTPサーバのIPが間違っているまたは起動していない。</li>
<li>ファイアウォールやiptableでポートが閉じている。</li>
<li>ＶＰＳの環境を使用している。ホストOSの時刻設定と同一となり、NTPとの接続はできない。</li>
</ul>

<p><br>
<br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Linux - dc_serverとは</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/linux---dc-server.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.302</id>

    <published>2011-08-09T09:23:46Z</published>
    <updated>2011-08-09T09:25:30Z</updated>

    <summary>dc_serverとは、SSLやTLSなどのプロトコルを利用した暗号化通信セッシ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><strong>dc_server</strong>とは、SSLやTLSなどのプロトコルを利用した暗号化通信セッションのキャッシングに使用されるdistcacheのサーバです。</p>

<p>暗号化通信が必要な場合は、以下コマンドで起動する。</p>

<blockquote>
# /etc/init.d/dc_server start
</blockquote>

<p>また、以下コマンドで自動起動設定を行う。</p>

<blockquote>
# chkconfig dc_server on
</blockquote>

<p><br><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Linux - dc_clientとは</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/linux---dc-client.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.301</id>

    <published>2011-08-09T09:20:36Z</published>
    <updated>2011-08-09T09:20:46Z</updated>

    <summary>dc_clientとは、SSLやTLSなどのプロトコルを利用した暗号化通信セッシ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><strong>dc_client</strong>とは、SSLやTLSなどのプロトコルを利用した暗号化通信セッションのキャッシングに使用されるdistcacheのクライアントサーバです。</p>

<p>暗号化通信が必要な場合は、以下コマンドで起動する。</p>

<blockquote>
# /etc/init.d/dc_client start
</blockquote>

<p>また、以下コマンドで自動起動設定を行う。</p>

<blockquote>
# chkconfig dc_client on
</blockquote>

<p><br><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Linux - NTPサーバ インストール手順</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/linux---ntp.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.296</id>

    <published>2011-08-08T23:50:00Z</published>
    <updated>2011-08-29T08:56:05Z</updated>

    <summary>LinuxにNTPサーバをインストールする手順を記載します。 NTPがインストー...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>LinuxにNTPサーバをインストールする手順を記載します。</p>

<ul><li><font size='3' ><b>NTPがインストールされているか確認</b></font ></li></ul>

<p>以下、コマンドを入力する。ntp-X.X.X-X.fcX等が表示されていれば インストールされている。</p>

<blockquote>
rpm -qa | grep ntp
</blockquote>

<ul><li><font size='3' ><b>NTPをインストール</b></font ></li></ul>

<p>yumによりインストールを行う。</p>

<blockquote>
yum install ntp*
</blockquote>

<ul><li><font size='3' ><b>NTPの設定</b></font ></li></ul>

<p>ntp.confを編集し、NTPサーバを指定します。"# --- OUR TIMESERVERS -----"以下に時刻同期するNTPサーバを記載する。</p>

<blockquote>
restrict 127.0.0.1 ←このNTPサーバの接続許可IP<br>
restrict 192.168.0.x<br><br>

# --- OUR TIMESERVERS -----<br>
server ntp1.jst.mfeed.ad.jp<br>
server ntp2.jst.mfeed.ad.jp<br>
server ntp3.jst.mfeed.ad.jp<br>
<br>
<br>
#--- GENERAL CONFIGURATION ---
#以下は、上記で設定したNTPサーバと同期がとれなかった場合、<br>
#自サーバのハードウェアクロックと同期する設定
server  127.127.1.0     # local clock<br>
fudge   127.127.1.0 stratum 10<br>
<br>
<br>
#以下は時刻情報記録ファイル記録先の指定<br>
driftfile /var/lib/ntp/drift<br>
<br>
<br>
#以下はブロードキャストでの遅延時間を指定<br>
broadcastdelay  0.008<br>
</blockquote>

<ul><li><font size='3' ><b>NTPの起動</b></font ></li></ul>

<p>以下コマンドで起動</p>

<blockquote>
# service ntpd start<br>
Starting ntpd:                                             [  OK  ]
</blockquote>

<ul><li><font size='3' ><b>自動起動設定</b></font ></li></ul>

<p>以下コマンドでサーバ再起動時にNTPが自動で起動するように設定</p>

<blockquote>
# chkconfig ntpd on<br>
# chkconfig --list ntpd<br>
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
</blockquote>

<ul><li><font size='3' ><b>NTPの動作確認</b></font ></li></ul>

<p>以下コマンドで動作確認</p>

<blockquote>
# ntpq -p
</blockquote>

<p><strong>ntpq: read: Connection refused</storong>のエラーが発生する場合、サーバ自体の時刻が大幅にずれていることが原因である可能性がある。時刻を修正後、再度実行すると良い。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Linux - ネットワーク情報の設定(確認)方法</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/linux--.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.295</id>

    <published>2011-08-08T00:02:14Z</published>
    <updated>2011-08-08T00:02:07Z</updated>

    <summary>Linuxでのネットワーク情報設定確認方法は以下である。 ホスト名・ゲートウェイ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Linuxでのネットワーク情報設定確認方法は以下である。</p>

<ul><li><b>ホスト名・ゲートウェイ</b></li></ul>

<blockquote>
# cat /etc/sysconfig/network<br />
NETWORKING="yes"<br />
GATEWAY="192.0.0.xx"<br />
HOSTNAME="test.co.jp"
</blockquote>

<ul><li><b>DNSサーバ</b></li></ul>

<blockquote>
# cat /etc/resolv.conf<br />
nameserver xxx.xx.xxx.xxx
</blockquote>

<ul><li><b>NIC</b></li></ul>

<blockquote>
# cat /etc/sysconfig/network-scripts/ifcfg-eth0　
※自分の環境は以下でした<br />
# cat /etc/sysconfig/network-scripts/fcfg-venet0<br /><br />
DEVICE=venet0<br />
BOOTPROTO=static<br />
ONBOOT=yes<br />
IPADDR=127.0.0.1<br />
NETMASK=255.255.255.255<br />
BROADCAST=0.0.0.0
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Apache - バージョン確認方法</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/apache--.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.294</id>

    <published>2011-08-05T10:01:29Z</published>
    <updated>2011-08-05T10:02:00Z</updated>

    <summary>Apacheのバージョンを確認する場合、以下のコマンドを実行します。 # htt...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="apache" label="Apache" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Apacheのバージョンを確認する場合、以下のコマンドを実行します。</p>

<blockquote>
# httpd -V<br>
Server version: Apache/2.0.64<br>
Server built:   Mar  7 2011 23:10:31<br>
Server's Module Magic Number: 20020903:14<br>
Server loaded:  APR 0.9.4, APR-UTIL 0.9.4<br>
Compiled using: APR 0.9.4, APR-UTIL 0.9.4<br>
Architecture:   32-bit<br>
Server compiled with....<br>
 -D APACHE_MPM_DIR="server/mpm/prefork"<br>
 -D APR_HAS_SENDFILE<br>
 -D APR_HAS_MMAP<br>
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)<br>
 -D APR_USE_SYSVSEM_SERIALIZE<br>
 -D APR_USE_PTHREAD_SERIALIZE<br>
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT<br>
 -D APR_HAS_OTHER_CHILD<br>
 -D AP_HAVE_RELIABLE_PIPED_LOGS<br>
 -D HTTPD_ROOT="/etc/httpd"<br>
 -D SUEXEC_BIN="/usr/sbin/suexec"<br>
 -D DEFAULT_PIDLOG="logs/httpd.pid"<br>
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"<br>
 -D DEFAULT_LOCKFILE="logs/accept.lock"<br>
 -D DEFAULT_ERRORLOG="logs/error_log"<br>
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"<br>
 -D SERVER_CONFIG_FILE="conf/httpd.conf"
</blockquote>

<p><br>
<br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Linux - OSバーションの確認方法</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/linux---os.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.293</id>

    <published>2011-08-04T23:42:00Z</published>
    <updated>2011-08-04T23:42:09Z</updated>

    <summary>OS別に確認方法が異なる。 RedHat Enterprise Linux / ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>OS別に確認方法が異なる。</p>

<ul><li><b>RedHat Enterprise Linux / CentOS の場合 </b></li></ul>

<blockquote>
# cat /etc/redhat-release<br />
Red Hat Enterprise Linux ES release 4 (Nahant Update 4)
</blockquote>

<ul><li><b>Ubuntu の場合 </b></li></ul>

<blockquote>
# cat /etc/lsb-release<br />
DISTRIB_ID=Ubuntu<br>
DISTRIB_RELEASE=x.xx<br>
DISTRIB_CODENAME=hardy<br>
DISTRIB_DESCRIPTION="Ubuntu x.xx.x"
</blockquote>

<ul><li><b>Fedora の場合 </b></li></ul>

<blockquote>
# cat /etc/fedora-release<br>
Fedora release x (Werewolf)
</blockquote>

<ul><li><b>Debian の場合 </b></li></ul>

<blockquote>
# cat /etc/debian_version<br>
x.x
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Linux - 32bit版 or 64bit版　確認方法 </title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/linux---32bit-or-64bit.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.292</id>

    <published>2011-08-04T05:24:50Z</published>
    <updated>2011-08-04T05:25:13Z</updated>

    <summary>unameコマンドを使用して、システム情報を表示し確認する。 32bit版の場合...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>unameコマンドを使用して、システム情報を表示し確認する。</p>

<p>32bit版の場合は、以下のように表示させる。</p>

<blockquote>
# uname -m<br />
i686<br />
# uname -i<br />
i386
</blockquote>

<p>32bit版の場合は、以下のように表示させる。</p>

<blockquote>
# uname -m<br />
x86_64<br />
# uname -i<br />
x86_64
</blockquote>

<p>ちなみに、全ての項目を表示させる場合は、-aオプションで行う。</p>

<blockquote>
# uname -a<br />
Linux test.co.jp 2.6.18-xxxstab056 #1 SMP Mon Nov 2 13:19:07 UTC 2009 i686 i686 i386 GNU/Linux
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>HTML5入門 - ruby/rt/rp テキストの意味付け新規タグ 2　</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/html5---rubyrtrp-2.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.290</id>

    <published>2011-08-04T03:59:09Z</published>
    <updated>2011-08-04T04:00:04Z</updated>

    <summary>ruby   rt     rp ルビをふる場合に使用します。 「ルビをふる」と...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="html5" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><span style="text-decoration: underline;"><strong>ruby</strong></span>  
<span style="text-decoration: underline;"><strong>rt</strong></span>  
  </span><span style="text-decoration: underline;"><strong>rp</strong></span>
</p>

<p>ルビをふる場合に使用します。</p>

<p>「ルビをふる」とは、漢字に"ふりがな"を付ける（振る）ことです。ルビは"ふりがな"という意味ととらえてよいでしょう。</p>

<p>rubyタグを漢字に"ふりがな"を付けた文字列全体を囲みます。</p>

<p>rpタグはルビをカッコなどで囲む場合に、そのカッコを囲みます。</p>

<p>rｔタグはルビ(ふりがな)自体を囲みます。</p>

<pre name="code" class="xml">
&lt;ruby&gt;
新宿区富久町&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;しんじゅくくとみひさちょう&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;
&lt;/ruby&gt;</pre>

<p><br><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>ブログ記事とTwitterを連携させるサービス | twitbackr </title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/twitter-twitbackr.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.289</id>

    <published>2011-08-03T08:46:53Z</published>
    <updated>2011-08-03T08:59:40Z</updated>

    <summary>ブログを作成後、自動的にTwitterに配信できるサービス「twitbackr」...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="seo対策" label="SEO対策" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>ブログを作成後、自動的にTwitterに配信できるサービス「<a href="twitbackr" target="_blank">twitbackr</a>」の使い方を記載します。</p>

<p>まず、「twitbackr」アクセスし、Twitterにログインします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000298-606.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000298-606.html','popup','width=930,height=364,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000298-thumb-550x215-606.jpg" width="550" height="215" alt="WS000298.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>「ログイン」をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000299-609.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000299-609.html','popup','width=701,height=477,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000299-thumb-550x374-609.jpg" width="550" height="374" alt="WS000299.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>Ping URLをブログの更新Ping/Trackback先に登録します。</p>

<p>例えばアメブロの場合、「MYページ>ブログを書く>アメブロの設定>PING送信先の設定」の順に遷移し、「PING送信先の設定」画面を表示させます。ここにPING URLを登録すればOKです。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000305-612.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000305-612.html','popup','width=661,height=571,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000305-thumb-550x475-612.jpg" width="550" height="475" alt="WS000305.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>ブログ記事とTwitterを連携させるサービス | twitterfeed</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/08/twitter-twitterfeed.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.288</id>

    <published>2011-08-03T08:42:10Z</published>
    <updated>2011-08-03T08:43:20Z</updated>

    <summary>ブログを作成後、自動的にTwitterに配信できるサービス「twitterfee...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="seo対策" label="SEO対策" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>ブログを作成後、自動的にTwitterに配信できるサービス「<a href="http://twitterfeed.com/" target="_blank">twitterfeed</a>」の使い方を記載します。</p>

<p>まず、アカウントを作成します。twitterfeedにアクセスを行い、「Register Now」をクリックします。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000287-585.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000287-585.html','popup','width=981,height=516,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000287-thumb-550x289-585.jpg" width="550" height="289" alt="WS000287.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>

<p>「Email Address」にメールアドレス、「Password」にパスワード、「Confirm Password」に再度パスワード（確認用）を入力する。最後に画像認証(Captcha)を入力し、「Create Account」をクリックする。</p>


<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000288-588.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000288-588.html','popup','width=933,height=598,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000288-thumb-550x352-588.jpg" width="550" height="352" alt="WS000288.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>

<p>Feedの情報を登録します。「Feed Name」にブログ名、「Blog URL or RSS Feed URL (help)」にブログのRSSのＵＲＬを入力します。「test rss feed 」をクリックしテストを行い、"Feed parsed OK"と表示されればOKです。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000291-591.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000291-591.html','popup','width=935,height=529,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000291-thumb-550x311-591.jpg" width="550" height="311" alt="WS000291.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>

<p>
詳細の設定を行うため、「Advanced Settings」をクリックし、入力項目を表示させます。<br>「Check for new posts」は、RSSを確認しにいく間隔を設定します。<br>
「post up to～」はひとつのつぶやきに何個の記事を載せるかを設定します。<br>
「Post Content」はつぶやきにのせる内容を設定します。「タイトルと本文」「タイトルのみ」「本文のみ」が選択可能です。<br>
「Post Link」はつぶやきにブログへのリンクを載せるかを選択します。URL 短縮の方法も選択できます。<br>
「Post Sorting」はポストの順序を選択します。「公開日」と「投稿 ID」を選択できます。<br>
「Post Prefix」はつぶやきの一番前に表示させる文章を設定します。<br>
「Post Suffix」はつぶやきの一番後に表示させる文章を設定します。<br>
「Keyword Filter」はTwitter に載せるための承認用キーワードです。
</p>

<p>設定が終わったら、「Continue to Step 2」をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000292-594.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000292-594.html','popup','width=884,height=576,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000292-thumb-550x358-594.jpg" width="550" height="358" alt="WS000292.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>連携するサービスを選択します。今回はtwitterを選択します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000293-597.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000293-597.html','popup','width=921,height=561,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000293-thumb-550x335-597.jpg" width="550" height="335" alt="WS000293.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>twitterとの認証を行うため、「Authenticate Twitter」をクリックし、Twitterの認証を行ってください。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000295-600.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000295-600.html','popup','width=868,height=518,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000295-thumb-550x328-600.jpg" width="550" height="328" alt="WS000295.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>「create service」をクリックします。Feed Publishing画面に戻るので、「All Done」をクリックします。</p>

<p>確認画面が表示されるので、「Go to Dashbord」をクリックします。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000297-603.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000297-603.html','popup','width=986,height=355,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/08/WS000297-thumb-550x198-603.jpg" width="550" height="198" alt="WS000297.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>以上で完了になります。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Linux - vi 文字化け対応 文字コードを自動で判別する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/07/linux---vi.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.287</id>

    <published>2011-07-13T02:28:10Z</published>
    <updated>2011-07-13T02:51:51Z</updated>

    <summary>viコマンドの設定ファイルの&quot;~/.vimrc&quot;を編集する。 :set enco...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>viコマンドの設定ファイルの"~/.vimrc"を編集する。</p>

<blockquote>
:set encoding=utf-8<br>
:set fileencodings=euc-jp,sjis,2,utf-8
 ※判別する文字コードを指定
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>ECCUBE -スマートフォンでのアクセスでもPC用HTMLを送る 機種判別</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/07/eccube--pchtml.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.286</id>

    <published>2011-07-13T02:22:53Z</published>
    <updated>2011-07-13T02:26:57Z</updated>

    <summary>&quot;data/class/SC_Display.php&quot;に機種判別をしているメソッ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="eccube" label="ECCUBE" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>"data/class/SC_Display.php"に機種判別をしているメソッドが存在するので、条件式をコメントアウトする。</p>

<pre name="code" class="php">
    /**
     * 機種を判別する。
     *
     * SC_Display::MOBILE = ガラケー = 1
     * SC_Display::SMARTPHONE = スマホ = 2
     * SC_Display::PC = PC = 10
     *
     * @static
     * @return integer 端末種別ID
     */
    function detectDevice(){
        $nu = new Net_UserAgent_Mobile();
        $su = new SC_SmartphoneUserAgent_Ex();
        $retDevice = 0;
#        if ($nu-&gt;isMobile()) {
#            return DEVICE_TYPE_MOBILE;
#        } elseif ($su-&gt;isSmartphone()) {
#            return DEVICE_TYPE_SMARTPHONE;
#        } else {
            return DEVICE_TYPE_PC;
#        }
    }</pre>
]]>
        

    </content>
</entry>

<entry>
    <title>IIS Tips - ASPエラー  許可されていない親パスです</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/07/iis-tips---asp.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.285</id>

    <published>2011-07-05T06:05:00Z</published>
    <updated>2011-07-05T06:06:53Z</updated>

    <summary>とあるディレクトリにアクセスすると500エラーが発生した。 ログを確認すると、「...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="iis" label="IIS" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>とあるディレクトリにアクセスすると500エラーが発生した。</p>

<p>ログを確認すると、「<strong>エラー 許可されていない親パスです</strong>」とログに出力されていた・・</p>

<p>IIS5.0では、デフォルトで「親パスを有効にする」の設定がtrueだが、IIS.70だとfalseであるとのこと・・。</p>

<p>IISマネージャーを立ち上げ、対象のサイトを選択し、ASPをクリックする。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/07/WS000250-575.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/07/WS000250-575.html','popup','width=685,height=391,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/07/WS000250-thumb-550x313-575.jpg" width="550" height="313" alt="WS000250.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>「親パスを有効にする」をtrueにして、適用すればOKでした。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/07/WS000249-572.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/07/WS000249-572.html','popup','width=684,height=389,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/07/WS000249-thumb-550x312-572.jpg" width="550" height="312" alt="WS000249.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>HTML5入門 - time/mark/wbr テキストの意味付け新規タグ 1　</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/06/html5---timemark-1.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.284</id>

    <published>2011-06-29T09:38:42Z</published>
    <updated>2011-08-05T09:16:19Z</updated>

    <summary><![CDATA[time 日付や時刻を示す場合に使用します。 &lt;time&gt;2012-...]]></summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="html5" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><span style="text-decoration: underline;"><strong>time</strong></span></p>

<p>日付や時刻を示す場合に使用します。</p>

<pre name="code" class="xml">&lt;time&gt;2012-06-29&lt;/time&gt;</pre>

<p>timeタグは規定の日付フォーマット書かないとエラーになります（"13時10分"はエラーになります）。規定のフォーマット以外で記載したい場合は、datetime属性を使用します。datetime属性に規定のフォーマットで記載をし、タグ内で規定外のフォーマットで記載します。</p>

<pre name="code" class="xml">&lt;time datetime=&quot;2012-06-29&quot;&gt;2012年06月29日&lt;/time&gt;</pre>


<p>pubdate属性は、article要素の投稿日時を指定します。</p>


<p><span style="text-decoration: underline;"><strong>mark</strong></span></p>

<p>文書内のテキストをハイライトさせます。強調したい箇所ではなく、注意しやすくするために使用します。</p>

<pre name="code" class="xml">&lt;p&gt;
あああああああ&lt;mark&gt;テスト&lt;/mark&gt;あああああああ
&lt;/p&gt;</pre>
<p>以下のように見えます。<p/>

<p>
あああああああ<mark>テスト</mark>あああああああ
</p>

<p><span style="text-decoration: underline;"><strong>wpr</strong></span></p>

<p>改行しても良い位置を示す場合に使用します。ブラウザで半角文字を並べた場合に、改行されず、フレームをはみ出してしまうことを防ぎます。
</p>

<pre name="code" class="xml">&lt;/p&gt;
wbrを記載しない場合&lt;br&gt;
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
&lt;/p&gt;
</pre>

<pre name="code" class="xml">&lt;/p&gt;
wbrを記載しない場合&lt;br&gt;
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&lt;wpr&gt;aaaaaaaaaaaaaaaaaaaaaaaaaa
&lt;/p&gt;
</pre>

<p>以下のように見えます。<p/>

</p>

<p>wbrを記載しない場合<br>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</p></p>

<p></p>
wbrを記載しない場合<br>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<wpr>aaaaa<wbr>aaaaaaa<wbr>aa<wbr>aaaaaaaaaaaaaaaa<wbr>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</p></p>
]]>
        

    </content>
</entry>

<entry>
    <title>HTML5入門 - figure/figcaption  コンテンツのグループ化  新規タグ</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/06/html5---figurefigcaption.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.283</id>

    <published>2011-06-20T23:58:42Z</published>
    <updated>2011-06-29T09:39:24Z</updated>

    <summary><![CDATA[figure 画像・ソースコードであることを示す際に使用します。 &lt;fig...]]></summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="html5" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><span style="text-decoration: underline;"><strong>figure</strong></span></p>

<p>画像・ソースコードであることを示す際に使用します。</p>

<pre name="code" class="xml">&lt;figure id=&quot;kaeru&quot;&gt;
&lt;img src=&quot;images/test.gif&quot; alt=&quot;写真&quot;&gt;
&lt;p<pre name="code" class="xml"></pre>&gt;画像1&lt;/p&gt;
&lt;/figure&gt;</pre>

<p><span style="text-decoration: underline;"><strong>figcaption</strong></span></p>

<p>画像・ソースコード（figure）に対しての説明文を示す際利用します。</p>

<pre name="code" class="xml">&lt;figure id=&quot;kaeru&quot;&gt;
&lt;img src=&quot;images/test.gif&quot; alt=&quot;写真&quot;&gt;
&lt;figcaption&gt;画像1&lt;/figcaption&gt;
&lt;/figure&gt;</pre>

<p><br><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>HTML5入門 - section/header/body/footer セクション </title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/06/html5---sectionheaderbodyfooter.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.280</id>

    <published>2011-06-02T00:00:03Z</published>
    <updated>2011-06-29T09:39:42Z</updated>

    <summary>section ページ内のセクションであることを示す際に使用します。  セクショ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="html5" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><span style="text-decoration: underline;"><strong>section</strong></span></p>

<p>ページ内のセクションであることを示す際に使用します。 </p>

<p>セクションとは、文書内で意味や機能で分けた区切りのことです。ヘッダー、フッター、ボディなどもセクションに位置付けられます。</p>

<pre name="code" class="xml">&lt;section&gt;
&lt;h2&gt;概要セクション&lt;/h2&gt;
&lt;p&gt;文書の概要説明文&lt;/p&gt;
&lt;/section&gt;</pre>

<ul><li>HTML5での変更点</li></ul>
<p>HTML5で新規に追加されたタグです。</p>


<p><span style="text-decoration: underline;"><strong>header</strong></span></p>

<p>ページ内のイントロダクションなどであることを示す時に使用します。ヘッダー部分と呼ばれる区切りに使用します。 </p>
<pre name="code" class="xml">
&lt;header&gt;
&lt;h1&gt;サイト名&lt;/h1&gt;
&lt;p&gt;共通ヘッダー&lt;/p&gt;
&lt;/header&gt;</pre>

<ul><li>HTML5での変更点</li></ul>
<p>HTML5で新規に追加されたタグです。</p>

<p><span style="text-decoration: underline;"><strong>body</strong></span></p>

<p>HTMLドキュメントの本体を示します。 </p>

<pre name="code" class="xml">
&lt;body&gt;
&lt;p&gt;ドキュメントの本体の内容を記載&lt;/p&gt;
&lt;/body&gt; </pre>

<ul><li>HTML5での変更点</li></ul>
<p>スタイルを指定する属性の指定が無くなりました。</p>

<p><span style="text-decoration: underline;"><strong>footer</strong></span></p>

<p>記載箇所より直前のセクションのフッタであることを示します。そのセクションのカテゴリや記述者などの情報を記載します。</p>

<pre name="code" class="xml"> &lt;section&gt;
  &lt;h2&gt;Agenda Labsとは&lt;/h2&gt;
  &lt;p&gt;・・・・・・・・&lt;/p&gt;
 &lt;/section&gt;
 &lt;footer&gt;
  &lt;p&gt;運営：株式会社ニーズウェル&lt;/p&gt;
 &lt;/footer&gt;
</pre>

<ul><li>HTML5での変更点</li></ul>

<p>HTML5で新規に追加されたタグです。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>HTML5入門 - nav/article/aside/hgroup/address/h1-h6 セクション </title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/06/html5---navarticleasidehgroupaddressh1-h6.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.281</id>

    <published>2011-06-01T02:45:58Z</published>
    <updated>2011-06-29T09:39:59Z</updated>

    <summary><![CDATA[nav ナビゲーションのリンクを伴うセクションを表します。  &lt;body&...]]></summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="html5" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><span style="text-decoration: underline;"><strong>nav</strong></span></p>

<p>ナビゲーションのリンクを伴うセクションを表します。 </p>

<pre name="code" class="xml">&lt;body&gt;
&lt;header&gt;
&lt;nav&gt;
&lt;h1&gt;メニュー&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;top,htnkl&quot;&gt;トップ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;create.html&quot;&gt;ブログを書く&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;edit.html&quot;&gt;ブログを編集する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;/header&gt;
&lt;/body&gt; </pre>

<ul><li>HTML5での変更点</li></ul>

<p>HTML5で新規に追加されたタグです。</p>

<p><span style="text-decoration: underline;"><strong>article</strong></span></p>

<p>単体で完結するセクションであることを示す際に使用します 。記事、ブログのエントリ、コメントなど。</p>

<pre name="code" class="xml">&lt;article&gt;
&lt;h3&gt;コメント&lt;/h3&gt;
&lt;p&gt;コメント内容・・・・&lt;/p&gt;
&lt;/article&gt;</pre>

<ul><li>HTML5での変更点</li></ul>

<p>HTML5で新規に追加されたタグです。</p>

<p><span style="text-decoration: underline;"><strong>aside</strong></span></p>

<p>補足記事など、本筋のコンテンツから離れた内容を記載する箇所を示します。</p>

<pre name="code" class="xml">&lt;p&gt;
本筋文章・・・・・・・・・・・・
&lt;/p&gt;
&lt;aside&gt;
&lt;h1&gt;補足h1&gt;
&lt;p&gt;
補足情報・・・・・・・・・・・・・・・
&lt;/p&gt;
&lt;/aside&gt; </pre>

<ul><li>HTML5での変更点</li></ul>

<p>HTML5で新規に追加されたタグです。</p>

<p><span style="text-decoration: underline;"><strong>hgroup</strong></span></p>

<p>セクションの見出しを表します。小見出しや副題などの様に見出しが複数のレベルを持つとき記載する。</p>

<pre name="code" class="xml">&lt;hgroup&gt;
&lt;h1&gt;HTML5　概要&lt;/h1&gt;
&lt;h2&gt;HTML5　初級編&lt;/h2&gt;
&lt;h2&gt;HTML5　中級編&lt;/h2&gt;
&lt;h2&gt;HTML5  上級編&lt;/h2&gt;
&lt;/hgroup&gt;</pre>

<ul><li>HTML5での変更点</li></ul>

<p>HTML5で新規に追加されたタグです。</p>

<p><span style="text-decoration: underline;"><strong>address</strong></span></p>

<p>直近のセクション系要素に対する連絡先情報・問い合わせ先を示します。</p>

<pre name="code" class="xml">&lt;body&gt;
・・・・・・・・・
&lt;/body&gt;
&lt;address&gt;
問い合わせ先　株式会社ニーズウェル
&lt;/address&gt;</pre>

<ul><li>HTML5での変更点</li></ul>

<p>HTML5で新規に追加されたタグです。</p>

<p><span style="text-decoration: underline;"><strong>h1-h6</strong></span></p>

<p>該当のセクションの見出しを示します。</p>

<pre name="code" class="xml">&lt;section&gt;
    &lt;h2&gt;見出し&lt;/h2&gt;
    &lt;p&gt;・・・・・・・・・・・・・&lt;/p&gt;
&lt;/section&gt;</pre>

<ul><li>HTML5での変更点</li></ul>

<p>align属性が指定できなくなりました。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>HTML5入門 - script/noscript スクリプト </title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/05/html5---scriptnoscript.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.279</id>

    <published>2011-05-31T04:17:01Z</published>
    <updated>2011-06-29T09:40:16Z</updated>

    <summary>script Ｊａｖａｓｃｒｉｐｔやデータブロックを埋め込むときに使用します。 ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="html5" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><span style="text-decoration: underline;"><strong>script</strong></span></p>

<p>Ｊａｖａｓｃｒｉｐｔやデータブロックを埋め込むときに使用します。</p>


<pre name="code" class="xml">&lt;script&gt;
&lt;!--
document.write(&quot;TEST!!&quot;);
// --&gt;
&lt;/script&gt;</pre>

<p>JSファイルを読み込む場合は以下のように記述します。</p>

<pre name="code" class="xml">&lt;script src=&quot;test.js&quot;&gt;&lt;/script&gt; </pre>

<p>以下が属性値になります。</p>
<p>1.src属性<br>
外部のファイルを読み込む場合に指定
</p>

<p>2.type属性<br>
MIMEタイプを指定
</p>

<p>3.charset属性<br>
外部ファイルの文字エンコーディングを指定
</p>

<p>4.defer属性<br>
文書を読み込みが完了した時点でスクリプトを実行
</p>

<p>5.async属性
スクリプト記載箇所を読み込んだ時点で実行
</p>

<ul><li>HTML5での変更点</li></ul>

<p>type属性が必須でしたが、デフォルト値が"text/javascript"となったため省略可になりました。</p>

<p><span style="text-decoration: underline;"><strong>noscript</strong></span></p>

<p>スクリプトが動作しない環境用に表示内容を記載する。</p>

<pre name="code" class="xml">&lt;script&gt;
document.write(&quot;ＴＥＳＴ!!&quot;);
&lt;/script&gt;
&lt;noscript&gt;
&lt;p&gt;JavaScriptを有効にしてください。&lt;/p&gt;
&lt;/noscript&gt; </pre>

<ul><li>HTML5での変更点</li></ul>

<p>head要素内に配置可能になりました。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>ニーズウェルカンファレンス 2011 in Spring</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/tech/study/-2011-in-spring.html" />
    <id>tag:labs.agenda-style.jp,2011:/tech//5.278</id>

    <published>2011-05-31T02:38:48Z</published>
    <updated>2011-08-04T08:41:55Z</updated>

    <summary>INFOMATION 2011年5月28日（土） 13:00～16:30 株式会...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
        <category term="過去の勉強会" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ニーズウェルカンファレンス" label="ニーズウェルカンファレンス" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/tech/">
        <![CDATA[<p><span style="text-decoration: underline;"><strong>INFOMATION</strong></span></p>

<ul>
<li>2011年5月28日（土）</li>
<li>13:00～16:30</li>
<li>株式会社ニーズウェル 5F</li>
</ul>

<p><span style="text-decoration: underline;"><strong>CONTENTS</strong></span></p>

<ul>
<li>トップSEに求められるスキル</li>
<li>文字コード攻略</li>
<li>AR(拡張現実)　入門</li>
<li>Ｔｗｉｔｔｅｒについて</li>
<li>みんなでしゃべるぜ！生保業務</li>
<li>自分磨きの大切さ</li>
</ul>

<p><span style="text-decoration: underline;"><strong>Data</strong></span></p>

<ul>
<li>トップSEに求められるスキル<br><br>
<object id="presentation" width="550" height="400" type="application/x-shockwave-flash" data="/tech/トップSEに求められるスキル.swf"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="トップSEに求められるスキル.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="allowFullScreen" value="true" /> 
</object>
<br><br>
</li>
</ul>

<ul>

<ul>
<li>文字コード攻略<br><br>
<object id="presentation" width="550" height="400" type="application/x-shockwave-flash" data="/tech/文字コード攻略.swf"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="文字コード攻略.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="allowFullScreen" value="true" /> 
</object>
<br><br>
</li>
</ul>

<ul>
<li>AR(拡張現実)　入門<br><br>
<object id="presentation" width="550" height="400" type="application/x-shockwave-flash" data="/tech/AR入門.swf"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="AR入門.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="allowFullScreen" value="true" /> 
</object>
<br><br>
</li>
</ul>
]]>
        

    </content>
</entry>

<entry>
    <title>HTML5入門 - head/meta/title/base/link/style メタデータ定義 </title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/05/html5--.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.275</id>

    <published>2011-05-23T01:26:36Z</published>
    <updated>2011-06-29T09:40:32Z</updated>

    <summary><![CDATA[head 文書のヘッダ情報を表します。メタデータを表すタグは、&lt;head&...]]></summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="html5" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><span style="text-decoration: underline;"><strong>head</strong></span></p>

<p>文書のヘッダ情報を表します。メタデータを表すタグは、&lt;head&gt;タグ内に定義します。</p>

<pre name="code" class="xml">
&lt;head&gt;
&lt;meta charset=&quot;UTF-8&quot; /&gt;
&lt;title&gt;Agenda Labs&lt;/title&gt;
&lt;/head&gt;</pre>

<ul><li>HTML5での変更点</li></ul>
<p>head要素のprofile属性が廃止されました。</p>

<p><span style="text-decoration: underline;"><strong>tilte</strong></span></p>

<p>文書のタイトルを設定します。検索エンジンで上位に表示される要素としての重要度は高いので、アクセスを増やしたい場合は、検索されたいキーワードを埋め込むと良いです。</p>

<pre name="code" class="xml">
&lt;head&gt;
&lt;title&gt;Agenda Labs | タイトル説明ページ&lt;/title&gt;
&lt;/head&gt;</pre>
<ul><li>HTML5での変更点</li></ul>
<p>HTML4では必須の要素でしたが、HTML5では必須ではなくなりました。</p>


<p><span style="text-decoration: underline;"><strong>meta</strong></span></p>

<p>その文書に関する情報（メタデータ）を指定します。キーワードの指定(keyword)、ディスクりプション(description)・インデックスの指定（robots）、著作権情報の指定（copyright）の指定、文書作成に使用したソフトウェアの指定、デフォルトスタイルの指定（default-style）、リダイレクト・再読み込みの指定（refresh）、言語の指定（charset）などが可能です。</p>

<pre name="code" class="xml">
&lt;head&gt;
&lt;meta charset=&quot;UTF-8&quot;&gt;
&lt;/head&gt;
</pre>

<ul><li>HTML5での変更点</li></ul>

<p>name属性の値として<strong>application-name</strong>が追加されました。Webアプリの名前を設定します。 これはWebアプリを作成する場合に利用する値になります。</p>

<pre name="code" class="xml">&lt;meta name=&quot;application-name&quot; content=&quot;Agenda Labs&quot;&gt;</pre>

<p><span style="text-decoration: underline;"><strong>base</strong></span></p>

<p>相対パスの基準URIを指定する際に使用します。baseを指定する事でbody内に記載した相対パスがbaseからのパスになります。</p>

<pre name="code" class="xml">
&lt;title&gt;baseの説明ページ&lt;/title&gt;
&lt;base href=&quot;http://labs.agenda-style.jp/blog/&quot;&gt;
&lt;/head&gt;
</pre>

<ul><li>HTML5での変更点</li></ul>

<p>なし</p>

<p><span style="text-decoration: underline;"><strong>link</strong></span></p>

<p>リンクする外部リソースを指定します。タグを指定する場合には、href属性とref属性が必須です。</p>

<pre name="code" class="xml">&lt;head&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; media=&quot;screen&quot; href=&quot;style.css&quot; /&gt;
&lt;/head&gt;</pre>

<ul><li>HTML5での変更点</li></ul>
<p>なし</p>

<p><span style="text-decoration: underline;"><strong>style</strong></span></p>

<p>スタイルシートを記述します。type属性は、スタイリング言語（MIMEタイプ）を指定します。media属性は、どのメディアにどのスタイルを適用するかを指定します。 例えば、ブラウザで表示される場合、プリンタで印刷される場合などを指定できます。</p>

<pre name="code" class="xml">
&lt;head&gt;
&lt;style&gt;
h1{color:black;}
&lt;/style&gt;
&lt;/head&gt;
</pre>

<ul><li>HTML5での変更点</li></ul>

<p>scoped属性が追加されました。全体ではなく、 style要素の親要素とその子孫要素に対してのみスタイルが適用されます。 </p>
]]>
        

    </content>
</entry>

<entry>
    <title>HTML5入門 - DOCTYPE宣言</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/05/html5---doctype.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.274</id>

    <published>2011-05-20T01:26:35Z</published>
    <updated>2011-05-20T01:36:39Z</updated>

    <summary>!DOCTYPE html HTML5で作成されたことを宣言します。大文字と小文...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="html5" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><span style="text-decoration: underline;"><strong>!DOCTYPE html</strong></span></p>

<p>HTML5で作成されたことを宣言します。大文字と小文字は区別されません。DOCTYPE宣言を記載しない場合とブラウザのレンダリングモードが、互換モードとなってしまいます。</p>

<pre name="code" class="xml">
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;ja&quot;&gt;
</pre>

<p>以下はHTML4の場合の宣言です。HTML5ではかなり短縮可能ですね。</p>

<pre name="code" class="xml">&lt;!DOCTYPE HTML  PUBLIC  &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;</pre>

<p><br/>
<br/></p>
]]>
        

    </content>
</entry>

<entry>
    <title>スマートフォン(IPhone)・タブレット(IPad）のエミュレータ</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/05/iphoneipad.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.272</id>

    <published>2011-05-18T09:58:09Z</published>
    <updated>2011-05-18T09:58:12Z</updated>

    <summary>スマートフォン(IPhone)・タブレット(IPad）のエミュレータのiBBDe...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="スマートフォン" label="スマートフォン" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>スマートフォン(IPhone)・タブレット(IPad）のエミュレータのiBBDemo2.0の使い方を紹介します。</p>

<ul><li><b>Safariのインストール</b></li></ul>

<p>インストールは<a href="http://www.apple.com/jp/safari/" target="_blank">アップル - Safari</a>から可能です。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000208-527.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000208-527.html','popup','width=1280,height=770,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000208-thumb-550x330-527.jpg" width="550" height="330" alt="WS000208.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<ul><li><b>iBBDemo2.0のインストール</b></li></ul>

<p>ダウンロードは<a href="http://www.puresimstudios.com/ibbdemo/" target="_blank">iBBDemo2 - Cross Platform iPad and iPhone Simulator</a>から可能です。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000205-530.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000205-530.html','popup','width=1016,height=652,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000205-thumb-550x352-530.jpg" width="550" height="352" alt="WS000205.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>以下の、下部をクリックし、ダウンロードを開始します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000206-533.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000206-533.html','popup','width=255,height=217,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000206-thumb-550x468-533.jpg" width="550" height="468" alt="WS000206.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>ダウンロードした「iBBDemo2.air」を実行し、インストールが開始されます。</p>

<ul><li><b>使い方</b></li></ul>

<p>iPhoneを表示させる→CTRL＋2</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000216-548.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000216-548.html','popup','width=386,height=742,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000216-thumb-300x576-548.jpg" width="300" height="576" alt="WS000216.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>iPadを表示させる→CTRL＋1</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000213-539.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000213-539.html','popup','width=1103,height=758,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000213-thumb-550x377-539.jpg" width="550" height="377" alt="WS000213.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>縦横の表示は変更する→CTRL＋→　or  ←</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000218-555.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000218-555.html','popup','width=731,height=386,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/05/WS000218-thumb-550x290-555.jpg" width="550" height="290" alt="WS000218.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Can&apos;t open /var/run/atd.pid to signal atd. No atd running?</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/04/cant-open-varrunatdpid-to-signal-atd-no-atd-running.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.271</id>

    <published>2011-04-22T02:02:41Z</published>
    <updated>2011-04-22T02:13:52Z</updated>

    <summary>サーバを特定の時間にシャットダウンをさせようとして、以下コマンドを実行した。 e...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>サーバを特定の時間にシャットダウンをさせようとして、以下コマンドを実行した。</p>

<blockquote>
echo "/sbin/shutdown -h now" |at 19:00 04/20/2011
</blockquote>

<p>すると以下エラー発生。</p>

<blockquote>
Can't open /var/run/atd.pid to signal atd. No atd running?
</blockquote>

<p>以下、コマンドを実行し、解決。。</p>

<blockquote>
/etc/init.d/atd restart
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>HTML5 API チェッカーとは</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/04/html5-api.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.269</id>

    <published>2011-04-21T06:58:00Z</published>
    <updated>2011-08-05T10:00:15Z</updated>

    <summary>HTML5 および、それに関連する仕様に規定された API がブラウザーに実装さ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="html5" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>HTML5 および、それに関連する仕様に規定された API がブラウザーに実装されているかをチェックします。</p>

<p>この API チェッカーは、該当の API をブラウザーが準拠しているかどうかを 3 段階でチェックします。</p>

<ul><li><b>青色のアイコン</b></li></ul>

<p>実装されていることを表します。</p>

<ul><li><b>黄色のアイコン</b></li></ul>

<p>実装されている可能性がありますが、期待通りのタイプを返しません。</p>

<ul><li><b>赤色のアイコン</b></li></ul>

<p>実装されていいないことを表します。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2011/04/WS000201-524.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2011/04/WS000201-524.html','popup','width=1280,height=607,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2011/04/WS000201-thumb-550x260-524.jpg" width="550" height="260" alt="WS000201.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p><br/><br/></p>

<p>まだまだ対応はされたいない様子・・</p>
]]>
        

    </content>
</entry>

<entry>
    <title>ruby 入門 -丸め誤差対応 BigDecimal</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/04/ruby-tips--01.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.270</id>

    <published>2011-04-08T04:25:53Z</published>
    <updated>2011-10-05T03:23:57Z</updated>

    <summary>小数点以下の小さい単位で値を丸めて計算した結果、計算結果と正しい値がずれる現象の...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>小数点以下の小さい単位で値を丸めて計算した結果、計算結果と正しい値がずれる現象のことである。以下のように0.1を繰り返し足していくと、1.0と判定されない。</p>

<pre name="code" class="ruby">
num  = 0.1

while num <= 1.0
  puts num
  if num.to_f == 1.0
   puts "1.0として評価されました"
  end
  num = num + 0.1
end
</pre>

<blockquote>
>ruby test.rb<br />
0.1<br />
0.2<br />
0.3<br />
0.4<br />
0.5<br />
0.6<br />
0.7<br />
0.8<br />
0.9<br />
1.0
</blockquote>

<p>rubyでは、可変長浮動小数点計算機能ライブラリの「BigDecimal 」で対応可能である。</p>

<pre name="code" class="ruby">
require 'bigdecimal' 
num  = BigDecimal('0.1')

while num <= 1.0
  puts num
  if num == 1.0
   puts "1.0として評価されました"
  end
  num = num + BigDecimal('0.1')
end
</pre>

<blockquote>
>ruby test.rb<br />
0.1E0<br />
0.2E0<br />
0.3E0<br />
0.4E0<br />
0.5E0<br />
0.6E0<br />
0.7E0<br />
0.8E0<br />
0.9E0<br />
0.1E1<br />
1.0として評価されました
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Hadoop - Linuxへのインストール手順</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/04/hadoop---linux.html" />
    <id>tag:labs.agenda-style.jp,2011:/blog//3.268</id>

    <published>2011-04-04T04:50:46Z</published>
    <updated>2011-04-04T04:52:06Z</updated>

    <summary>HadoopをLinuxにインストールする手順を以下にまとめます。 JDKのイン...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="hadoop" label="Hadoop" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>HadoopをLinuxにインストールする手順を以下にまとめます。</p>

<ul><li><b>JDKのインストール</b></li></ul>

<p>JDKをインストールします。（既に入っているはずなので飛ばします。）</p>

<p>以下がインストールの確認方法です。</p>

<blockquote>
# java -version<br>
java version "1.6.0_22"<br>
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)<br>
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode)
</blockquote>

<ul><li><b>Hadoopユーザの作成</b></li></ul>

<p>Hadoop実行専用のユーザが必要です。</p>

<blockquote>
# adduser hadoop<br>
</blockquote>

<ul><li><b>SSHの設定</b></li></ul>

<p>SSHキーを作成します。</p>

<blockquote>
$ ssh-keygen -t rsa -P ""<br>
Generating public/private rsa key pair.<br>
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):<br>
Created directory '/home/hadoop/.ssh'.<br>
Your identification has been saved in /home/hadoop/.ssh/id_rsa.<br>
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.<br>
The key fingerprint is:<br>
df:7c:3c:62:8b:2e:84:a9:68:6e:15:87:85:8f:20:de hadoop@xxx.needswell.local
</blockquote>

<p>公開鍵をauthorized_keysにコピーします。</p>

<blockquote>
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
</blockquote>

<ul><li><b>Hadoopのダウンロード</b></li></ul>

<p>以下よりダウンロードします。今回は、「hadoop-0.21.0」をダウンロードします。</p>

<p><a href="http://ftp.kddilabs.jp/infosystems/apache//hadoop/core/" target="_blank">http://ftp.kddilabs.jp/infosystems/apache//hadoop/core/</a></p>

<ul><li><b>Hadoopのインストール</b></li></ul>

<p>ダウンロードした圧縮ファイルを回答します。</p>

<blockquote>
# tar -xvzf hadoop-0.21.0.tar.gz
</blockquote>

<p>/usr/localに移動し、所有者を変更します。</p>

<blockquote>
# mv hadoop-0.21.0 /usr/local/hadoop<br />
# cd /usr/local/<br />
# chown -R hadoop:hadoop /usr/local/hadoop
</blockquote>

<p>設定ファイルを修正します。</p>

<blockquote>
# vi /usr/local/hadoop/conf/hadoop-env.sh
</blockquote>

<blockquote>
# The java implementation to use.  Required.<br />
# export JAVA_HOME=/usr/lib/j2sdk1.6-sun
</blockquote>

<p>↓</p>

<blockquote>
# The java implementation to use.  Required.<br />
export JAVA_HOME=/usr/java/default
</blockquote>

<ul><li><b>動作確認</b></li></ul>

<blockquote>
$ bin/hadoop namenode -format フォーマット<br />
$ bin/start-all.sh 起動<br />
$ jps 確認<br />
$ bin/stop-all.sh  終了
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>ニーズウェルカンファレンス 2011 in Winter</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/tech/study/-2011-in-winter.html" />
    <id>tag:labs.agenda-style.jp,2011:/tech//5.273</id>

    <published>2011-02-26T01:52:25Z</published>
    <updated>2011-05-31T02:15:54Z</updated>

    <summary>INFOMATION 2011年2月26日（土） 13:00～16:30 株式会...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
        <category term="過去の勉強会" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ニーズウェルカンファレンス" label="ニーズウェルカンファレンス" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/tech/">
        <![CDATA[<p><span style="text-decoration: underline;"><strong>INFOMATION</strong></span></p>

<ul>
<li>2011年2月26日（土）</li>
<li>13:00～16:30</li>
<li>株式会社ニーズウェル 5F</li>
</ul>

<p><span style="text-decoration: underline;"><strong>CONTENTS</strong></span></p>

<ul>
<li>Android Bazaar and Conference 2011 Winterに参加して</li>
<li>プロジェクトマネジメント入門</li>
<li>Life after 6pm　～アフター6を楽しむための仕事術～</li>
<li>出来る男のビジネスメール！～あなたの不安解消します。これで明日からsales rep～</li>
<li>まだまだ現役？携帯Web開発のノウハウ　～開発に携わってわかったこと～</li>
<li>雲から日本を見てみよう　～イヌでもわかるクラウド～</li>
</ul>

<p><span style="text-decoration: underline;"><strong>Data</strong></span></p>

<ul>
<li>Life after 6pm　～アフター6を楽しむための仕事術～<br><br>
<object id="presentation" width="550" height="400" type="application/x-shockwave-flash" data="/tech/Life after 6.pm ～仕事術～.swf"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="Life after 6.pm ～仕事術～.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="allowFullScreen" value="true" /> 
</object>
<br><br>
</li>
<li>まだまだ現役？携帯Web開発のノウハウ　～開発に携わってわかったこと～<br><br>
<object id="presentation" width="550" height="400" type="application/x-shockwave-flash" data="/tech/携帯WEB開発.swf"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="携帯WEB開発.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="allowFullScreen" value="true" /> 
</object>
<br><br>
</li>
</ul>

<p><span style="text-decoration: underline;"><strong>IMAGE</strong></span></p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/tech/ne_image2.jpeg"><img alt="ne_image2.jpeg" src="http://labs.agenda-style.jp/tech/assets_c/2011/05/ne_image2-thumb-550x412-563.jpeg" width="550" height="412" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/tech/nw_image1.jpeg"><img alt="nw_image1.jpeg" src="http://labs.agenda-style.jp/tech/assets_c/2011/05/nw_image1-thumb-550x412-565.jpeg" width="550" height="412" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Twitter - follow me ボタン 無料配布サイト紹介</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/02/twitter---follow-me--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.232</id>

    <published>2011-02-18T00:03:37Z</published>
    <updated>2011-10-05T03:23:54Z</updated>

    <summary>Twitterボタン TwitterアカウントIDを入力し、コード発行ボタンを押...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="twitter" label="Twitter" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='4' ><strong><a href="http://twitbtn.com/" target="_blank">Twitterボタン</a></strong></font>
<br/></p>

<p>TwitterアカウントIDを入力し、コード発行ボタンを押すのみ！！</p>


<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000102-303.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000102-303.html','popup','width=1006,height=3610,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000102-thumb-550x1973-303.jpg" width="550" height="1973" alt="WS000102.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span>

<br /><br />

<font size='4' ><strong><a href="http://www.twittericon.com/" target="_blank">Twitter Icon</a></strong></font>
<br/><br/>
<p>TwitterアカウントIDを入力し、コード発行ボタンを押すのみ！！<br/>
Twitterのバックグラウンド画像も配布している。
</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000103-306.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000103-306.html','popup','width=1006,height=1600,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000103-thumb-550x874-306.jpg" width="550" height="874" alt="WS000103.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p><font size='4' ><strong><a href="http://www.twitterbuttons.com/" target="_blank">Get Free Twitter Buttons</a></strong></font>
<br/></p>

<p>TwitterアカウントIDを入力し、コード発行ボタンを押すのみ！！</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000104-309.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000104-309.html','popup','width=1006,height=1149,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000104-thumb-550x628-309.jpg" width="550" height="628" alt="WS000104.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p><br>　　　　　　　　　<br><br><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Twitter - つぶレコ　商品レコメンドサービス</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/02/twitter----.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.231</id>

    <published>2011-02-15T03:04:52Z</published>
    <updated>2011-10-05T03:22:05Z</updated>

    <summary>Twitter公式ナビゲーター twinaviを見ていると、つぶレコというサービ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="twitter" label="Twitter" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><a href='http://twinavi.jp/' target="_blank">Twitter公式ナビゲーター twinavi<a>を見ていると、<a href="http://tbrc.jp/">つぶレコ</a>というサービスを発見!!</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000100-297.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000100-297.html','popup','width=1006,height=746,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000100-thumb-550x407-297.jpg" width="550" height="407" alt="WS000100.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>Twitter上での商品レコメンドサービスとアフェリエイトサービスである。</p>

<p>さっそく試してみた。</p>

<p>ログイン画面でTwitterのアカウントIDを入力する。</p>

<p>これで利用可能だが、 本登録を行わないと、レコメンドフィー（金額）を得ることはできない。<p>

<p>とりあえず、「新宿御苑なう！！」と入力し、商品レコメンドを使用してみる。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000101-300.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000101-300.html','popup','width=1006,height=2268,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000101-thumb-550x1239-300.jpg" width="550" height="1239" alt="WS000101.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>ちなみに「Amazon」と「Yahooショッピング」と「価格.com」の商品をレコメンド可能のようである。</p>

<p>還元率はAmazonは1.7%、Yahooショッピングは1.0%である。価格.comはまだ還元していないようである。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - Windows 開発環境構築</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/02/android-tips---windows--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.217</id>

    <published>2011-02-10T08:46:03Z</published>
    <updated>2011-10-05T03:21:59Z</updated>

    <summary>Android SDKのインストール １．http://developer.an...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><b>Android SDKのインストール</b></font ><br /></p>

<p>１．<a href='http://developer.android.com/sdk/index.html'>http://developer.android.com/sdk/index.html</a>にアクセスを行い、<b>「android-sdk_r06-windows.zip」</b>をダウンロードする。</p>


<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/andorid_01-226.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/andorid_01-226.html','popup','width=1280,height=580,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/andorid_01-thumb-550x249-226.jpg" width="550" height="249" alt="andorid_01.jpg" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;border: 1px solid rgb(220, 220, 220);" /></a></span>


<p>
２．適当なディレクトリにダウンロードした<b>「android-sdk_r06-windows.zip」</b>を解凍する。
</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/andorid_02-229.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/andorid_02-229.html','popup','width=561,height=213,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/andorid_02-thumb-550x208-229.jpg" width="550" height="208" alt="andorid_02.jpg" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;border: 1px solid rgb(220, 220, 220);" /></a></span></p>

<p><font size='5' ><b>JDK のインストール</b></font ><br /></p>

<p>１．<a href='http://java.sun.com/javase/ja/6/download.html'>http://java.sun.com/javase/ja/6/download.html</a></a>にアクセスを行い、<b>「JDK 6 Update 20 with Java EE」</b>をダウンロードする。PlatformはWindowsを選択し、LanguageはMulti-languageを選択する。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/andorid_03-234.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/andorid_03-234.html','popup','width=1263,height=580,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/andorid_03-thumb-550x252-234.jpg" width="550" height="252" alt="andorid_03.jpg" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;border: 1px solid rgb(220, 220, 220);" /></a></span>


<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000065-237.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000065-237.html','popup','width=1280,height=580,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000065-thumb-550x249-237.jpg" width="550" height="249" alt="WS000065.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;border: 1px solid rgb(220, 220, 220);" /></a></span>

<p>２．ダウンロードした<b>「java_ee_sdk-6u1-jdk-windows-ml.exe」</b>を実行し。インストールする。今回は「次へ」をクリックするのみにする。</p>


<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000066-240.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000066-240.html','popup','width=790,height=632,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000066-thumb-550x440-240.jpg" width="550" height="440" alt="WS000066.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;border: 1px solid rgb(220, 220, 220)" /></a></span>


<font size='5' ><b>Eclipseのインストール </b></font ><br /><br />


<p>１．<a href='http://www.eclipse.org/downloads/ '>http://www.eclipse.org/downloads/ </a>へアクセスを行い、「Eclipse IDE for Java Developers」をダウンロードする。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000068-243.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000068-243.html','popup','width=1263,height=580,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000068-thumb-550x252-243.jpg" width="550" height="252" alt="WS000068.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;border: 1px solid rgb(220, 220, 220)" /></a></span>


<p>
２．適当なディレクトリにダウンロードした<b>「android-sdk_r06-windows.zip」</b>を解凍する。
</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000070-249.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000070-249.html','popup','width=561,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000070-thumb-550x470-249.jpg" width="550" height="470" alt="WS000070.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;border: 1px solid rgb(220, 220, 220)"" /></a></span></p>

<p>３．<a href='http://mergedoc.sourceforge.jp/ '>http://mergedoc.sourceforge.jp/ </a>へアクセスを行い、「日本語化プラグインPleiades 」をダウンロードする。今回は安定版バージョンをダウンロードする。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000069-246.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000069-246.html','popup','width=1178,height=520,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000069-thumb-550x242-246.jpg" width="550" height="242" alt="WS000069.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;border: 1px solid rgb(220, 220, 220)"" /></a></span>

<p>４．ダウンロードした「pleiades_1.3.1.zip」 を解凍し、plugins、features ディレクトリーを <ECLIPSE_HOME> ディレクトリーにコピーする。
</p>

<p>５．eclipse.ini の最終行に以下の記述を追加。</p>
<blockquote>
     -javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
</blockquote>

<p>６．Eclipseを起動する。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000071-252.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000071-252.html','popup','width=1002,height=649,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000071-thumb-550x356-252.jpg" width="550" height="356" alt="WS000071.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span>


<font size='5' ><b>EclipseへのAndroid Pluginインストール </b></font ><br /><br />



<p>１．[ヘルプ] - [新規ソフトウェアのインストール] を選択する。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000072-255.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000072-255.html','popup','width=1024,height=687,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000072-thumb-550x368-255.jpg" width="550" height="368" alt="WS000072.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span>


<p>２．[追加]をクリックする。[名前]には「Android Plugin」（適当で良い）を入力し、[ロケーション]には、'https://dl-ssl.google.com/android/eclipse/'を入力する。最後に[OK]をクリックする。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000074-258.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000074-258.html','popup','width=432,height=164,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000074-thumb-550x208-258.jpg" width="550" height="208" alt="WS000074.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span>


<p>３．[Developer Tools]にチェックをつけ、インストールされるまで[次へ]をクリックする。再起動を行い、完了。<br>
※途中、未署名コンポーネントインストールへの警告が表示されるが、[OK]ボタンクリック。
</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000075-261.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000075-261.html','popup','width=617,height=602,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000075-thumb-550x536-261.jpg" width="550" height="536" alt="WS000075.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p><font size='5' ><b>EclipseのAndroid Plugin設定</b></font ><br /></p>

<p>１．Eclipseを起動し、[ウィンドウ] - [設定] - [Android] を選択する。<br>
※Android SDKのパスが設定されていない旨の警告ダイアログが出るが、無視する。</p>
</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000076-264.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000076-264.html','popup','width=627,height=543,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000076-thumb-550x476-264.jpg" width="550" height="476" alt="WS000076.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>２．[参照]をクリックし、Android SDKのディレクトリを選択し、[適用]をクリックする。</p>

<p><font size='5' ><b>Platform APIのインストール</b></font ><br /></p>

<p>１．Eclipseから、[ウィンドウ] - [Android SDK and AVD Manager] -[Installed Packages]を選択して、[Update All...]ボタンクリックする。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000077-267.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000077-267.html','popup','width=745,height=433,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000077-thumb-550x319-267.jpg" width="550" height="319" alt="WS000077.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>２．今回は「SDK Platform Android 」と「Documentation for Android SDK, API」の最新版のみを[受諾]を選択して、その他のコンポーネントは[リジェクト]を選択する。[Install Accepted]ボタンクリックし、インストールを行う。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000078-270.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000078-270.html','popup','width=740,height=370,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000078-thumb-550x275-270.jpg" width="550" height="275" alt="WS000078.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>３．今回は「SDK Platform Android 」と「Documentation for Android SDK, API」の最新版のみを[受諾]を選択して、その他のコンポーネントは[リジェクト]を選択する。[Install Accepted]ボタンクリックし、インストールを行う。</p>

<p>以上です。<a href="http://labs.agenda-style.jp/blog/2010/09/android-tips---helloworld--.html" taget="_blank">次は、Helloworldを表示させてみます。</a></p>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - Googleマップを使用する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/02/android---google--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.236</id>

    <published>2011-02-05T03:39:09Z</published>
    <updated>2011-10-05T03:21:50Z</updated>

    <summary>新規プロジェクトを作成 １．Eclipseを起動し、[ファイル] - [新規] ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><b>新規プロジェクトを作成</b></font ><br /></p>

<p>１．Eclipseを起動し、[ファイル] - [新規] - [Android プロジェクト]を選択する。以下を入力し、[完了ボタンクリックする。
プロジェクト名：GoogleMaps<br/>
ターゲット：GoogleAPIs（今回は、8.0）<br/>
アプリケーション名：GoogleMaps<br/>
パッケージ名：android.googlemaps<br/>
CreateActivity：チェックボタンをはずす。<br/><br/>
</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000105-312.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000105-312.html','popup','width=500,height=673,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000105-thumb-550x740-312.jpg" width="550" height="740" alt="WS000105.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p><font size='5' ><b>新規クラスを作成</b></font ><br /><br /></p>

<p>１．GoogleMaps/src/android.googlemapsを右クリックし、[新規] - [クラス]を選択する。以下を入力し、[完了ボタンクリックする。<br>
名前：GoogleMapsActivity<br>
スーパークラス：com.google.android.maps.MapActivity
</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000106-315.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000106-315.html','popup','width=588,height=593,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000106-thumb-550x554-315.jpg" width="550" height="554" alt="WS000106.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span>
<br>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000107-318.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000107-318.html','popup','width=1024,height=687,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000107-thumb-550x368-318.jpg" width="550" height="368" alt="WS000107.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>2．作成したソースを以下のように修正する。</p>


<pre name="code" class="ruby">package android.googlemaps;

import android.os.Bundle;

import com.google.android.maps.MapActivity;

public class GoogleMapsActivity extends MapActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }
}
</pre>


<font size='5' ><b>Map画面を作成</b></font ><br /><br />

<p>1．/GoogleMaps/res/layout/main.xmlを以下のように修正する。</p>
<pre name="code" class="ruby">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    android:orientation=&quot;vertical&quot;
    android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;fill_parent&quot;
    &gt;

    &lt;com.google.android.maps.MapView
        android:id=&quot;@+id/mapview&quot;
        android:layout_width=&quot;fill_parent&quot;
        android:layout_height=&quot;fill_parent&quot;
        android:enabled=&quot;true&quot;
        android:clickable=&quot;true&quot;
        android:apiKey=&quot;@string/api_key&quot;
        /&gt;
&lt;/LinearLayout&gt;</pre>

<p>保存すると書式エラーになる。android:apiKey="@string/api_key"を定義していないためである。</p>

<p>2．android:apiKey="@string/api_key"を定義する。/GoogleMaps/res/values/strings.xmlを以下のように修正する。</p>

<pre name="code" class="ruby">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;resources&gt;
    &lt;string name=&quot;app_name&quot;&gt;GoogleMaps&lt;/string&gt;
    &lt;string name=&quot;api_key&quot;&gt;【APIキー】&lt;/string&gt;
&lt;/resources&gt; </pre>

<p>【APIキー】は<a href="http://code.google.com/intl/ja/android/maps-api-signup.html" target="_blank">Android Maps API Key Signup</a>を取得する。取得の仕方は、<a href="http://labs.agenda-style.jp/blog/2010/09/android---google---1.html" target="_blank">Android 入門 - Android Maps API Keyの取得 - </a>を参考にしてください。</p>


<p>1．/GoogleMaps/AndroidManifest.xmlをactivity（GoogleMapsActivity）とmapを使用するために以下のように修正を行う。</p>

<pre name="code" class="ruby">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
      package=&quot;android.googlemaps&quot;
      android:versionCode=&quot;1&quot;
      android:versionName=&quot;1.0&quot;&gt;

    &lt;uses-permission android:name=&quot;android.permission.INTERNET&quot;/&gt;

    &lt;application android:icon=&quot;@drawable/icon&quot; android:label=&quot;@string/app_name&quot;&gt;
        &lt;uses-library android:name=&quot;com.google.android.maps&quot;/&gt;
        &lt;activity android:name=&quot;.GoogleMapsActivity&quot;
                  android:label=&quot;@string/app_name&quot;&gt;
            &lt;intent-filter&gt;
                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
                &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
            &lt;/intent-filter&gt;
        &lt;/activity&gt;
    &lt;/application&gt;
&lt;/manifest&gt; </pre>

<p>mapを使用するために以下を追加。</p>
     <pre name="code" class="ruby">&lt;uses-library android:name=&quot;com.google.android.maps&quot;/&gt;</pre>

<p>インターネットで使用するために以下を追加。</p>

<pre name="code" class="ruby">
&lt;uses-permission android:name=&quot;android.permission.INTERNET&quot;/&gt;
</pre>

<p>activity（GoogleMapsActivity）を追加。</p>
<pre name="code" class="ruby">        &lt;activity android:name=&quot;.GoogleMapsActivity&quot;
                  android:label=&quot;@string/app_name&quot;&gt;
            &lt;intent-filter&gt;
                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
                &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
            &lt;/intent-filter&gt;
        &lt;/activity&gt;</pre>


<font size='5' ><b>Android Virtual Devices Managerの設定</b></font ><br /><br />

<p>1．Eclipseのメニューから「ウィンドウ」→「Android SDK and AVD Manager」を選択し、「Android SDK and AVD Manager」ウィンドウを表示します。[VirutulDevices]を選択し、[新規]ボタンをクリックする。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000112-327.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000112-327.html','popup','width=745,height=433,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000112-thumb-550x319-327.jpg" width="550" height="319" alt="WS000112.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span>

<p>2．以下のように入力する。[Create AVD]ボタンをクリックする<br/>
名前：GoogleMaps(任意)
ターゲット：Google APIs (Google Inc.) - API Level 8
</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000113-330.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000113-330.html','popup','width=400,height=502,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000113-thumb-550x690-330.jpg" width="550" height="690" alt="WS000113.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p><font size='5' ><b>アプリを実行</b></font ><br /></p>

<p>1．以下のように表示されればOK。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000114-333.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000114-333.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000114-thumb-550x390-333.jpg" width="550" height="390" alt="WS000114.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>一覧にも追加された。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000115-336.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000115-336.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000115-thumb-550x390-336.jpg" width="550" height="390" alt="WS000115.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p><br>　　　</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android - Unable to find explicit activity class {packagename/classname}; have you declared this activity in your AndroidManifest.xml?</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2011/01/android-tips---unable-to-find-explicit-activity-class-packagenameclassname-have-you-declared-this-ac.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.243</id>

    <published>2011-01-07T01:47:29Z</published>
    <updated>2011-10-05T03:18:45Z</updated>

    <summary>Androidで画面遷移を行おうと実行したら、以下エラーが発生。 Unable ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Androidで画面遷移を行おうと実行したら、以下エラーが発生。</p>

<blockquote>
Unable to find explicit activity class {packagename/classname}; have you declared this activity in your AndroidManifest.xml?
</blockquote>

<p><stronf>AndroidManifest.xml</strong>にActivityを追加していないことが原因だった。</p>

<p>追加したところ正常に動作した。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - Activityのサイクルについて</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/11/android---activity--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.267</id>

    <published>2010-11-30T01:28:00Z</published>
    <updated>2011-10-05T03:17:37Z</updated>

    <summary>Androidはアプリは画面に対しActivityを持ち、フォアグラウンドのAc...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Androidはアプリは画面に対しActivityを持ち、フォアグラウンドのActivityは1つだけ存在する。</p>

<p>Activityの状態が変化するたびに実行されるメソッドが以下になる。</p>

<ul><li>onCreate(Bundle) </li></ul>

<p>Activityが最初に起動する時に実行される（初期化のイメージ）。Bundleクラスのオブジェクトが渡されるが、onSaveInstanceStateメソッドで保存された情報がある場合は、その情報が渡される。オーバーライドする場合には、スーパークラスのメソッドを呼び出す必要がある。</p>

<ul><li>onStart()</li></ul>

<p>Activityが表示される直前に呼び出される（onCreate()の実行後）。</p>

<ul><li>onResume()</li></ul>

<p>Activityがユーザとのやり取りを始められるようになる直前に呼ばれる。（onStart()の実行後）。</p>

<ul><li>onPause()</li></ul>

<p>Activityがバックグラウンドになる直前に呼び出されます（他の画面を呼び出した時など）。ただし、メモリが少なくなるとアプリが通知なく破棄されることがあるので注意！！</p>

<ul><li>onStop() </li></ul>

<p>Activityがバックグラウンドになり、しばし使われないと判断された場合に呼び出され、終了状態になる。ただし、メモリが少なくなるとアプリが通知なく破棄されることがあるので注意！！</p>

<ul><li>onRestart()  </li></ul>

<p>終了状態になったActivityが再び実行される場合に呼ばれる。（onStop()の後に実行可能。）</p>

<ul><li>onDestroy() </li></ul>

<p>Activityが破棄される直前に呼び出される。</p>

<ul><li>onSaveInstanceState(Bundle) </li></ul>

<p>アクティビティの状態を保存させるためにこのイベントを呼ぶ。デフォルトでは、状態を保存されるようになっている・・。アプリのプロセスが終了していても、保存した値をonCreateメソッドの引数に入れることが可能。</p>

<ul><li>onRestoreInstanceState(Bundle)</li></ul>

<p>onSaveInstanceStateによって保存された状態からアクティビティが再初期化される直前に呼び出される。</p>

<p><br><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>NetBeansでAndroid開発環境を構築する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/11/netbeansandroid.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.266</id>

    <published>2010-11-16T00:37:46Z</published>
    <updated>2010-11-16T00:37:25Z</updated>

    <summary>NetBeansでも、Android開発環境を構築することができます。 手間はそ...</summary>
    <author>
        <name>staff</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>NetBeansでも、Android開発環境を構築することができます。</p>
<p>手間はそれほど掛かりませんのでNetBeansで開発してみたい方はぜひ。</p>
<p>&nbsp;</p>
<p><span style="font-size: medium;"><strong>Plug-Inのインストール</strong></span></p>
<p>１．NetBeansを起動し、「ツール」&rarr;「プラグイン」&rarr;「設定タブ」を選択する。</p>
<p>&nbsp;</p>
<span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_1-473.html','popup','width=920,height=555,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_1-473.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_1-thumb-550x331-473.jpg" alt="plugin_1.jpg" width="550" height="331" /></a></span>
<p>&nbsp;</p>
<p>２．追加ボタンを押下して、以下URLを入力する。</p>
<p>&nbsp;</p>
<span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_2-476.html','popup','width=574,height=221,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_2-476.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_2-thumb-550x211-476.jpg" alt="plugin_2.jpg" width="550" height="211" /></a></span>
<p>&nbsp;</p>
<p style="padding-left: 30px;">名前：任意の名前を入力</p>
<p style="padding-left: 30px;"><a href="http://kenai.com/downloads/nbandroid/updates.xml" target="_blank">URL：　http://kenai.com/downloads/nbandroid/updates.xml</a></p>
<p style="padding-left: 30px;">&nbsp;</p>
<p>３．了解ボタンを押下すると、アップデートセンターに更新が追加される。</p>
<p>&nbsp;</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_3-479.html','popup','width=920,height=555,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_3-479.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_3-thumb-550x331-479.jpg" alt="plugin_3.jpg" width="550" height="331" /></a></span>
<p>&nbsp;</p>
<p>４．「使用可能なプラグイン」タブを選択すると&rdquo;Android&rdquo;が増えているので選択してインストールボタンを選択する。</p>
<p>&nbsp;</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_4-482.html','popup','width=920,height=555,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_4-482.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_4-thumb-550x331-482.jpg" alt="plugin_4.jpg" width="550" height="331" /></a></span>
<p>５．利用規約が現れ、同意ボタンを押下するとインストールが開始される。</p>
<p>&nbsp;</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_5-485.html','popup','width=546,height=484,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_5-485.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_5-thumb-550x487-485.jpg" alt="plugin_5.jpg" width="550" height="487" /></a></span><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_6-488.html','popup','width=546,height=484,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_6-488.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_6-thumb-550x487-488.jpg" alt="plugin_6.jpg" width="550" height="487" /></a></span>
<p>&nbsp;</p>
<p>（途中で署名のないプラグインインストールの警告が出ますので、自己責任でお願いします。）</p>
<p>&nbsp;</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_6_1-491.html','popup','width=505,height=452,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_6_1-491.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_6_1-thumb-550x492-491.jpg" alt="plugin_6_1.jpg" width="550" height="492" /></a></span>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>６.インストールが成功したら完了画面が表示される。</p>
<p>&nbsp;</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_7-494.html','popup','width=546,height=484,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_7-494.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_7-thumb-550x487-494.jpg" alt="plugin_7.jpg" width="550" height="487" /></a></span>
<p>&nbsp;</p>
<p><span style="font-size: medium;"><strong>NetBeansでAndroidプロジェクトを新規作成する</strong></span></p>
<p>１．新規プロジェクトの作成を行うと「Android」プロジェクトが表示されるので、選択する。</p>
<p>&nbsp;</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_8-497.html','popup','width=737,height=503,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_8-497.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_8-thumb-550x375-497.jpg" alt="plugin_8.jpg" width="550" height="375" /></a></span>
<p>&nbsp;</p>
<p>２．AndroidPlatformに「MissingPlatform　NO　PLATFORM」と表示されるので、</p>
<p>ManagePlatformボタンを押下する。</p>
<p>&nbsp;</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_9-500.html','popup','width=737,height=503,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_9-500.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_9-thumb-550x375-500.jpg" alt="plugin_9.jpg" width="550" height="375" /></a></span>
<p>&nbsp;</p>
<p>３．プラットフォームマネージャーを開き、「プラットフォームを追加」ボタンを押下する。</p>
<p>&nbsp;</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_10-503.html','popup','width=676,height=516,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_10-503.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_10-thumb-550x419-503.jpg" alt="plugin_10.jpg" width="550" height="419" /></a><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_11-506.html','popup','width=616,height=490,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_11-506.html"></a></span>
<p>&nbsp;</p>
<p>４．プラットフォームの種類を「Google Android Open Handheld Platform」を選択して「次へ」ボタンを押下する。</p>
<p>&nbsp;</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_12-509.html','popup','width=837,height=503,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_12-509.html"></a><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_11-506.html','popup','width=616,height=490,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_11-506.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_11-thumb-550x437-506.jpg" alt="plugin_11.jpg" width="550" height="437" /></a><br /></span>
<p>&nbsp;</p>
<p>５．AndroidSDKが入っているフォルダを選択する。</p>
<p>&nbsp;</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_12-509.html','popup','width=837,height=503,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_12-509.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_12-thumb-550x330-509.jpg" alt="plugin_12.jpg" width="550" height="330" /></a></span>
<p>&nbsp;</p>
<p>６．今回使用する、Androidのバージョンを選択して完了ボタンを押下する。</p>
<p>&nbsp;</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_13-512.html','popup','width=837,height=503,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_13-512.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_13-thumb-550x330-512.jpg" alt="plugin_13.jpg" width="550" height="330" /></a></span>
<p>&nbsp;</p>
<p>７．プロジェクトの新規作成画面にAndroidのプラットフォームが追加されるので完了ボタンを押下する。</p>
<p>&nbsp;</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_14-515.html','popup','width=639,height=516,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_14-515.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_14-thumb-550x444-515.jpg" alt="plugin_14.jpg" width="550" height="444" /></a></span>
<p>&nbsp;</p>
<p>&nbsp;</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_15-518.html','popup','width=737,height=503,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_15-518.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_15-thumb-550x375-518.jpg" alt="plugin_15.jpg" width="550" height="375" /></a></span>
<p>８．AndroidProjectが完成！</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_16-521.html','popup','width=1728,height=943,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_16-521.html"><img class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" src="http://labs.agenda-style.jp/blog/assets_c/2010/11/plugin_16-thumb-550x300-521.jpg" alt="plugin_16.jpg" width="550" height="300" /></a></span>
<p>&nbsp;</p>
<p>&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>ニーズウェルカンファレンス 2010 in Autmun</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/tech/study/-2010-in-autmun.html" />
    <id>tag:labs.agenda-style.jp,2010:/tech//5.277</id>

    <published>2010-11-13T02:32:53Z</published>
    <updated>2011-08-04T08:30:16Z</updated>

    <summary>INFOMATION 2010年11月13日（土） 13:00～16:30 株式...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
        <category term="過去の勉強会" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ニーズウェルカンファレンス" label="ニーズウェルカンファレンス" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/tech/">
        <![CDATA[<p><span style="text-decoration: underline;"><strong>INFOMATION</strong></span></p>

<ul>
<li>2010年11月13日（土）</li>
<li>13:00～16:30</li>
<li>株式会社ニーズウェル 5F</li>
</ul>

<p><span style="text-decoration: underline;"><strong>CONTENTS</strong></span></p>

<ul>
<li>Androidアプリを作ろう ～アプリ作成の基本をチェック～</li>
<li>JavaアプリWEBのセキュリティ対策</li>
<li>営業のコミュニケーション</li>
<li>ハイパフォーマーを見極める面接手法とは ～これであなたも敏腕面接官～</li>
</ul>

<p><span style="text-decoration: underline;"><strong>Data</strong></span></p>

<ul>
<li>JavaアプリWEBのセキュリティ対策<br><br>
<object id="presentation" width="550" height="400" type="application/x-shockwave-flash" data="/tech/JavaWEBアプリのセキュリティ対策.swf"> 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="JavaWEBアプリのセキュリティ対策.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="allowFullScreen" value="true" /> 
</object>
<br><br>
</li>
</ul>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - RadioButton 文字列の色を設定</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---radiobutton---1.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.265</id>

    <published>2010-10-27T23:42:03Z</published>
    <updated>2011-10-05T03:17:34Z</updated>

    <summary>文字列の色を指定する場合、RadioButtonクラスのsetTextColor...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>文字列の色を指定する場合、RadioButtonクラスの<strong>setTextColor
メソッド</strong>を使用する。</p>

<pre name="code" class="ruby">package jp.android.helloworld;  

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.LinearLayout;
import android.view.ViewGroup;
import android.widget.RadioButton;
import android.graphics.Color;

public class HelloWorld extends Activity {  

    private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT;

    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        // レイアウトを作成
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout);

        //テキスト表示
        TextView tv = new TextView(this);
        tv.setText(&quot;ラジオボタンを表示してみた&quot;);
        layout.addView(tv, 
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        //ラジオボタン表示
        RadioButton radio1 = new RadioButton(this);
        radio1.setText(&quot;男&quot;);
        radio1.setTextColor(Color.BLUE);

        layout.addView(radio1, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        RadioButton radio2 = new RadioButton(this);
        radio2.setText(&quot;女&quot;);
        radio2.setTextColor(Color.RED);
        layout.addView(radio2, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

    }  
}  </pre>


<p>Colorクラスをimportし、Colorクラスを使用できるようにする。(Color.GREEN)</p>
<pre name="code" class="ruby">
import android.graphics.Color;
</pre>

<p><strong>setTextColorメソッド</strong>の引数に、表示させる色を定義する。<br/>指定可能な色の一覧は「<a href="http://developer.android.com/reference/android/graphics/Color.html"　target="_blank">Color | Android Developers</a>」を参考。</p>

<pre name="code" class="ruby">radio1.setTextColor(Color.BLUE);</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000165-468.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000165-468.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000165-thumb-550x390-468.jpg" width="550" height="390" alt="WS000165.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - RadioButton ラジオボタンを表示</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---radiobutton--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.264</id>

    <published>2010-10-26T23:50:01Z</published>
    <updated>2011-10-05T03:17:32Z</updated>

    <summary>ボタンを表示する場合、 RadioButtonクラスのRadioButton(C...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>ボタンを表示する場合、 RadioButtonクラスの<strong>RadioButton(Context context)コンストラクタ</strong>を使用する。</p>

<pre name="code" class="ruby">package jp.android.helloworld;  

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.LinearLayout;
import android.view.ViewGroup;
import android.widget.RadioButton;

public class HelloWorld extends Activity {  

    private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT;

    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        // レイアウトを作成
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout);

        //テキスト表示
        TextView tv = new TextView(this);
        tv.setText(&quot;ラジオボタンを表示してみた&quot;);
        layout.addView(tv, 
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        //ラジオボタン表示
        RadioButton radio1 = new RadioButton(this);
        radio1.setText(&quot;男&quot;);
        layout.addView(radio1, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        RadioButton radio2 = new RadioButton(this);
        radio2.setText(&quot;女&quot;);
        layout.addView(radio2, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

    }  
}  </pre>

<p>以下で<strong>RadioButtonクラス</strong>を利用できる。</p>

<pre name="code" class="ruby">import android.widget.RadioButton;</pre>

<p>以下で、ラジオボタンをLayoutに追加する。</p>

<pre name="code" class="ruby">        RadioButton radio2 = new RadioButton(this);
        radio2.setText(&quot;女&quot;);
        layout.addView(radio2, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000164-465.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000164-465.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000164-thumb-550x390-465.jpg" width="550" height="390" alt="WS000164.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - Button クリック時に動作させる（OnClick）</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---button-onclick--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.263</id>

    <published>2010-10-25T23:35:37Z</published>
    <updated>2011-10-05T03:17:26Z</updated>

    <summary>ボタンをクリック時に処理を行う場合、 Buttonクラスの親クラスのViewクラ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>ボタンをクリック時に処理を行う場合、 Buttonクラスの親クラスのViewクラスにある<strong>setOnClickListenerメソッド</strong>を使用する。</p>

<pre name="code" class="ruby">package jp.android.helloworld;  

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.view.ViewGroup;
import android.widget.Button;
import android.view.View.OnClickListener;
import android.view.View;

public class HelloWorld extends Activity {  

    private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT;
    private int flg;

    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        flg = 0;

        // レイアウトを作成
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout);

        //テキスト表示
        TextView tv = new TextView(this);
        tv.setText(&quot;名前&quot;);
        layout.addView(tv, 
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        //テキストボックス表示
        EditText edit = new EditText(this);
        edit.setWidth(200);     
        layout.addView(edit, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        //ボタン表示
        final Button button = new Button(this);   
        button.setWidth(200);  
        button.setText(&quot;クリックしてね&quot;);

        button.setOnClickListener(new OnClickListener() {
            // クリック時の処理
            public void onClick(View v) {
                if (flg==0){
                    button.setWidth(100);
                    button.setText(&quot;幅100だよ&quot;);
                    flg=1;
                }else{
                    button.setWidth(200);
                    button.setText(&quot;幅200だよ&quot;);
                    flg=0;
                }
            }
        });

        layout.addView(button, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)); 

    }  
}  </pre>

<p><strong>setOnClickListenerメソッド</strong>を使用するので、以下を記述します。</p>

<pre name="code" class="ruby">
import android.view.View.OnClickListener;
import android.view.View;</pre>

<p>イベント発生時に<strong>onClickメソッド</strong>が呼び出されます。onClickメソッド内にクリック時の動作を記述します。（javascriptと同じですね・・。）</p>

<pre name="code" class="ruby">        button.setOnClickListener(new OnClickListener() {
            // クリック時の処理
            public void onClick(View v) {
                if (flg==0){
                    button.setWidth(100);
                    button.setText(&quot;幅100だよ&quot;);
                    flg=1;
                }else{
                    button.setWidth(200);
                    button.setText(&quot;幅200だよ&quot;);
                    flg=0;
                }
            }
        });</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000161-456.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000161-456.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000161-thumb-550x390-456.jpg" width="550" height="390" alt="WS000161.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000162-459.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000162-459.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000162-thumb-550x390-459.jpg" width="550" height="390" alt="WS000162.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000163-462.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000163-462.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000163-thumb-550x390-462.jpg" width="550" height="390" alt="WS000163.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - Button ボタンの幅・高さを設定する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---button---2.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.262</id>

    <published>2010-10-24T23:48:50Z</published>
    <updated>2011-10-05T03:17:24Z</updated>

    <summary>ボタンに文字列を設定する場合、 ButtonクラスのsetWidthメソッド/s...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>ボタンに文字列を設定する場合、 Buttonクラスの<strong>setWidthメソッド/setHeightメソッド</strong>を使用する。</p>

<pre name="code" class="ruby">
package jp.android.helloworld;  

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.view.ViewGroup;
import android.widget.Button;



public class HelloWorld extends Activity {  

    private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT;

    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        // レイアウトを作成
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout);

        //テキスト表示
        TextView tv = new TextView(this);
        tv.setText(&quot;名前&quot;);
        layout.addView(tv, 
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        //テキストボックス表示
        EditText edit = new EditText(this);
        edit.setWidth(200);     
        layout.addView(edit, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        //ボタン表示
        Button button = new Button(this);   
        button.setText(&quot;送信&quot;);
        layout.addView(button, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)); 

    }  
}  </pre>

<p><strong>setWidthメソッド/setHeightメソッド</strong>の引数にサイズのピクセルを指定する。</p>

<pre name="code" class="ruby">
        button.setWidth(200);  
        button.setHeight(200);  
</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000160-453.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000160-453.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000160-thumb-550x390-453.jpg" width="550" height="390" alt="WS000160.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - Button ボタンに文字列を設定する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---button---1.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.261</id>

    <published>2010-10-21T23:47:03Z</published>
    <updated>2011-10-05T03:17:24Z</updated>

    <summary>ボタンに文字列を設定する場合、 ButtonクラスのsetTextメソッドを使用...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>ボタンに文字列を設定する場合、 Buttonクラスの<strong>setTextメソッド</strong>を使用する。</p>

<pre name="code" class="ruby">
package jp.android.helloworld;  

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.view.ViewGroup;
import android.widget.Button;



public class HelloWorld extends Activity {  

    private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT;

    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        // レイアウトを作成
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout);

        //テキスト表示
        TextView tv = new TextView(this);
        tv.setText(&quot;名前&quot;);
        layout.addView(tv, 
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        //テキストボックス表示
        EditText edit = new EditText(this);
        edit.setWidth(200);     
        layout.addView(edit, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        //ボタン表示
        Button button = new Button(this);   
        button.setText(&quot;送信&quot;);
        layout.addView(button, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)); 

    }  
}  </pre>

<p><strong>setTextメソッド</strong>の引数に表示させる文字列を設定する。</p>

<pre name="code" class="ruby">button.setText(&quot;送信&quot;);</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000159-450.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000159-450.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000159-thumb-550x390-450.jpg" width="550" height="390" alt="WS000159.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - Button ボタンを表示</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---button--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.260</id>

    <published>2010-10-21T05:16:07Z</published>
    <updated>2011-10-05T03:17:15Z</updated>

    <summary>ボタンを表示する場合、 ButtonクラスのButton(Context con...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>ボタンを表示する場合、 Buttonクラスの<strong>Button(Context context)コンストラクタ</strong>を使用する。</p>

<pre name="code" class="ruby">
package jp.android.helloworld;  

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.view.ViewGroup;
import android.widget.Button;



public class HelloWorld extends Activity {  

    private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT;

    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        // レイアウトを作成
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout);

        //テキスト表示
        TextView tv = new TextView(this);
        tv.setText(&quot;名前&quot;);
        layout.addView(tv, 
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        //テキストボックス表示
        EditText edit = new EditText(this);
        edit.setWidth(200);     
        layout.addView(edit, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        //ボタン表示
        Button button = new Button(this);   
        button.setWidth(150); 
        layout.addView(button, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)); 

    }  
}  </pre>

<p>以下で<strong>Buttonクラス</strong>を利用できる。</p>

<pre name="code" class="ruby">import android.widget.Button;</pre>

<p>以下で、ボタンをLayoutに追加する。</p>

<pre name="code" class="ruby">        Button button = new Button(this);   
        button.setWidth(150); 
        layout.addView(button, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)); </pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000158-447.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000158-447.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000158-thumb-550x390-447.jpg" width="550" height="390" alt="WS000158.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - EditText テキストボックスの文字サイズの設定</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---edittext---5.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.259</id>

    <published>2010-10-19T23:56:52Z</published>
    <updated>2011-10-05T03:17:11Z</updated>

    <summary>テキストボックスの文字サイズを設定する場合、 EditTextクラスのsetTe...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>テキストボックスの文字サイズを設定する場合、 EditTextクラスの<strong>setTextSizeメソッド</strong>を使用する。</p>

<pre name="code" class="ruby">package jp.android.helloworld;  

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.view.ViewGroup;
import android.widget.TextView.BufferType;

public class HelloWorld extends Activity {  

    private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT;

    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        // レイアウトを作成
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout);

        TextView tv = new TextView(this);
        tv.setText(&quot;名前&quot;);
        layout.addView(tv, 
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));


        EditText edit = new EditText(this);
        edit.setText(&quot;EditText テキストボックスに初期値を表示&quot;, BufferType.SPANNABLE);
        edit.setTextSize(12.0f);

        layout.addView(edit, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

    }  
}  </pre>

<p><strong>setTextSizeメソッド</strong>の引数に、float型の値でピクセルを指定する。</p>

<pre name="code" class="ruby">tedit.setTextSize(12.0f);</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000157-444.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000157-444.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000157-thumb-550x390-444.jpg" width="550" height="390" alt="WS000157.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - EditText テキストボックスの背景色の設定</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---edittext---4.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.258</id>

    <published>2010-10-18T23:45:41Z</published>
    <updated>2011-10-05T03:17:09Z</updated>

    <summary>テキストボックスの背景色を修正する場合、 EditTextクラスのsetText...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>テキストボックスの背景色を修正する場合、 EditTextクラスの<strong>setTextColorメソッド</strong>を使用する。</p>

<pre name="code" class="ruby">
package jp.android.helloworld;  

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.view.ViewGroup;
import android.widget.TextView.BufferType;
import android.graphics.Color;


public class HelloWorld extends Activity {  

    private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT;

    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        // レイアウトを作成
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout);

        TextView tv = new TextView(this);
        tv.setText(&quot;名前&quot;);
        layout.addView(tv, 
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));


        EditText edit = new EditText(this);
        edit.setText(&quot;EditText テキストボックスに初期値を表示&quot;, BufferType.SPANNABLE);
        edit.setTextColor(Color.WHITE);
        edit.setBackgroundColor(Color.GREEN);



        layout.addView(edit, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

    }  
}  </pre>

<p>以下でColorクラスを利用できる。</p>

<pre name="code" class="ruby">import android.graphics.Color;</pre>

<p><strong>setBackgroundColorメソッド</strong>の引数に、表示させる色を定義する。<br/>指定可能な色の一覧は「<a href="http://developer.android.com/reference/android/graphics/Color.html"　target="_blank">Color | Android Developers</a>」を参考。</p>

<pre name="code" class="ruby">edit.setBackgroundColor(Color.GREEN);</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000156-441.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000156-441.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000156-thumb-550x390-441.jpg" width="550" height="390" alt="WS000156.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - EditText テキストボックスの文字色の設定</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---edittext---3.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.257</id>

    <published>2010-10-18T09:02:37Z</published>
    <updated>2011-10-05T03:17:05Z</updated>

    <summary>テキストボックスの文字色を修正する場合、 EditTextクラスのsetBack...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>テキストボックスの文字色を修正する場合、 EditTextクラスの<strong>setBackgroundColorメソッド</strong>を使用する。</p>

<pre name="code" class="ruby">package jp.android.helloworld;  

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.view.ViewGroup;
import android.widget.TextView.BufferType;
import android.graphics.Color;


public class HelloWorld extends Activity {  

    private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT;

    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        // レイアウトを作成
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout);

        TextView tv = new TextView(this);
        tv.setText(&quot;名前&quot;);
        layout.addView(tv, 
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));


        EditText edit = new EditText(this);
        edit.setText(&quot;EditText テキストボックスに初期値を表示&quot;, BufferType.SPANNABLE);
        edit.setTextColor(Color.RED);



        layout.addView(edit, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

    }  
}  </pre>

<p>以下でColorクラスを利用できる。</p>

<pre name="code" class="ruby">import android.graphics.Color;</pre>

<p><strong>setTextColorメソッド</strong>の引数に、表示させる色を定義する。<br/>指定可能な色の一覧は「<a href="http://developer.android.com/reference/android/graphics/Color.html"　target="_blank">Color | Android Developers</a>」を参考。</p>

<pre name="code" class="ruby">edit.setTextColor(Color.RED);</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000155-438.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000155-438.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000155-thumb-550x390-438.jpg" width="550" height="390" alt="WS000155.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - EditText テキストボックスに初期値を表示</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---edittext---2.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.256</id>

    <published>2010-10-12T23:55:12Z</published>
    <updated>2011-10-05T03:16:50Z</updated>

    <summary>テキストボックスを表示する場合、 EditTextクラスのsetTextメソッド...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>テキストボックスを表示する場合、 EditTextクラスの<strong>setTextメソッド</strong>を使用する。</p>

<pre name="code" class="ruby">
package jp.android.helloworld;  

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.view.ViewGroup;
import android.widget.TextView.BufferType;

public class HelloWorld extends Activity {  

    private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT;

    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        // レイアウトを作成
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout);

        TextView tv = new TextView(this);
        tv.setText(&quot;名前&quot;);
        layout.addView(tv, 
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));


        EditText edit = new EditText(this);
        edit.setText(&quot;EditText テキストボックスに初期値を表示&quot;, BufferType.SPANNABLE);

        layout.addView(edit, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

    }  
}  </pre>

<p>以下でBufferTypeクラスを利用できる。</p>

<pre name="code" class="ruby">import android.widget.TextView.BufferType;</pre>

<p>以下で、テキストボックスに初期値を表示できる 。第1引数に表示させる文字列、第2引数にバッファータイプを指定する。バッファータイプについては、<a href="http://developer.android.com/reference/android/widget/TextView.BufferType.html">TextView.BufferType | Android Developers</a>を参考。</p>

<pre name="code" class="ruby">
edit.setText(&quot;EditText テキストボックスに初期値を表示&quot;, BufferType.SPANNABLE);</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000154-435.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000154-435.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000154-thumb-550x390-435.jpg" width="550" height="390" alt="WS000154.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>　　</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - EditText テキストボックスの幅と高さを設定</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---edittext---1.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.255</id>

    <published>2010-10-12T02:46:42Z</published>
    <updated>2011-10-05T03:18:24Z</updated>

    <summary>テキストボックスの幅を設定する場合、 EditTextクラスのsetWidthメ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>テキストボックスの幅を設定する場合、 EditTextクラスの<strong>setWidthメソッド</strong>を使用する。高さを設定する場合、 EditTextクラスの<strong>setHeightメソッド</strong>を使用する。</p>

<pre name="code" class="ruby">package jp.android.helloworld;  

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.view.ViewGroup;



public class HelloWorld extends Activity {  

    private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT;

    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        // レイアウトを作成
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout);

        TextView tv = new TextView(this);
        tv.setText(&quot;名前&quot;);
        layout.addView(tv, 
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));


        EditText edit = new EditText(this);
        edit.setWidth(40);
　　　 edit.setHeight(100);
        layout.addView(edit, 
                new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

    }  
}  </pre>

<p>以下で、テキストボックスの幅を設定する。単位ピクセルである。</p>

<pre name="code" class="ruby">
edit.setWidth(40);
</pre>

<p>以下で、テキストボックスの高さを設定する。単位ピクセルである。</p>

<pre name="code" class="ruby">
edit.setHeight(100);
</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000151-432.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000151-432.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000151-thumb-550x390-432.jpg" width="550" height="390" alt="WS000151.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>　　</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - TextView 文字サイズの指定</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---textview---3.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.249</id>

    <published>2010-10-07T23:42:22Z</published>
    <updated>2011-10-05T03:18:19Z</updated>

    <summary>文字サイズを指定する場合、TextViewクラスのsetTextSizeメソッド...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>文字サイズを指定する場合、TextViewクラスの<strong>setTextSizeメソッド</strong>を使用する。</p>

<pre name="code" class="ruby">package jp.android.helloworld;  


import android.app.Activity;
import android.os.Bundle;  
import android.widget.TextView;


public class HelloWorld extends Activity {  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        TextView tv = new TextView(this);  
        tv.setText(&quot;Hello!! Android!!!!!&quot;);
        tv.setTextSize(25.0f);
        setContentView(tv); 
    }  
}  </pre>

<p><strong>setTextSizeメソッド</strong>の引数に、float型の値でピクセルを指定する。</p>

<pre name="code" class="ruby">tv.setTextSize(25.0f);</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000144-411.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000144-411.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000144-thumb-550x390-411.jpg" width="550" height="390" alt="WS000144.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>　　</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - EditText テキストボックス表示</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---edittext--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.254</id>

    <published>2010-10-06T23:47:37Z</published>
    <updated>2011-10-05T03:16:37Z</updated>

    <summary>テキストボックスを表示する場合、 EditTextクラスのEditText(Co...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>テキストボックスを表示する場合、 EditTextクラスの<strong>EditText(Context context)コンストラクタ</strong>を使用する。</p>

<pre name="code" class="ruby">package jp.android.helloworld;  

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.EditText;
import android.widget.LinearLayout;



public class HelloWorld extends Activity {  

    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout);

        TextView tv = new TextView(this);
        tv.setText(&quot;名前&quot;);
        layout.addView(tv);

        EditText edit = new EditText(this);
        layout.addView(edit);

    }  
}  </pre>

<p>以下で<strong>EditTextクラス</strong>を利用できる。</p>

<pre name="code" class="ruby">import android.widget.EditText;</pre>

<p>以下で、テキストボックスをLayoutに追加する。</p>

<pre name="code" class="ruby">
EditText edit = new EditText(this);
layout.addView(edit);</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000149-426.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000149-426.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/10/WS000149-thumb-550x390-426.jpg" width="550" height="390" alt="WS000149.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>　　</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - TextView Paddingを指定</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---textview-padding--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.251</id>

    <published>2010-10-06T00:36:51Z</published>
    <updated>2011-10-05T03:16:34Z</updated>

    <summary>Paddingを指定する場合、TextViewクラスのsetPadding メソ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Paddingを指定する場合、TextViewクラスの<strong>setPadding
メソッド</strong>を使用する。</p>

<pre name="code" class="ruby">package jp.android.helloworld;  


import android.app.Activity;
import android.os.Bundle;  
import android.widget.TextView;


public class HelloWorld extends Activity {  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        TextView tv = new TextView(this);  
        tv.setText(&quot;Hello!! Android!!!!!&quot;);
        tv.setPadding(100, 10, 100, 10);
        setContentView(tv); 
    }  
}  </pre>

<p><strong>setTextScaleXメソッド</strong>の引数に、各ピクセル値を指定する。</p>

<pre name="code" class="ruby">tv.setPadding(100, 10, 100, 10);</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000146-417.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000146-417.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000146-thumb-550x390-417.jpg" width="550" height="390" alt="WS000146.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>　　</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - TextView 文字列の横幅の拡大率を指定</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---textview---4.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.250</id>

    <published>2010-10-05T08:31:29Z</published>
    <updated>2011-10-05T03:16:31Z</updated>

    <summary>文字列の横幅の拡大率を指定する場合、TextViewクラスのsetTextSca...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>文字列の横幅の拡大率を指定する場合、TextViewクラスの<strong>setTextScaleX
メソッド</strong>を使用する。</p>

<pre name="code" class="ruby">package jp.android.helloworld;  


import android.app.Activity;
import android.os.Bundle;  
import android.widget.TextView;


public class HelloWorld extends Activity {  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        TextView tv = new TextView(this);  
        tv.setText(&quot;Hello!! Android!!!!!&quot;);
        tv.setTextScaleX(4.5f);
        setContentView(tv); 
    }  
}  </pre>

<p><strong>setTextScaleXメソッド</strong>の引数に、float型の値でピクセルを指定する。（1.0fが通常の大きさである。）</p>

<pre name="code" class="ruby">tv.setTextScaleX(4.5f);</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000145-414.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000145-414.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000145-thumb-550x390-414.jpg" width="550" height="390" alt="WS000145.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>　　</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - TextView 幅と高さを指定</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---textview---5.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.252</id>

    <published>2010-10-04T23:41:22Z</published>
    <updated>2011-10-05T03:16:16Z</updated>

    <summary>文字列の幅と高さを指定する場合、TextViewクラスのsetWidth メソッ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>文字列の幅と高さを指定する場合、TextViewクラスの<strong>setWidth
メソッド、setHeightメソッド</strong>を使用する。</p>

<pre name="code" class="ruby">package jp.android.helloworld;  

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.graphics.Color;
import android.widget.LinearLayout;
import android.view.ViewGroup;

public class HelloWorld extends Activity {  

    private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT; 

    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        LinearLayout linearLayout = new LinearLayout(this);
        linearLayout.setOrientation(LinearLayout.VERTICAL);
        setContentView(linearLayout);

        TextView tv1 = new TextView(this);
        tv1.setText(&quot;Hello!! Android!!!!!&quot;);
        tv1.setWidth(100);
        tv1.setHeight(200);
        tv1.setTextColor(Color.BLACK);  
        tv1.setBackgroundColor(Color.YELLOW);
        linearLayout.addView(tv1, 
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        TextView tv2 = new TextView(this);
        tv2.setText(&quot;Hello!! Android!!!!!&quot;);
        tv2.setWidth(200);
        tv2.setHeight(200);
        tv2.setTextColor(Color.WHITE);
        tv2.setBackgroundColor(Color.BLUE);
        linearLayout.addView(tv2, 
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

    }  
}  </pre>



<p><strong>setWidthメソッド、setHeightメソッド</strong>の引数に、ピクセルの値を指定する。</p>

<pre name="code" class="ruby">
tv2.setWidth(200);
tv2.setHeight(200);
</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000147-420.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000147-420.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000147-thumb-550x390-420.jpg" width="550" height="390" alt="WS000147.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>　　</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - TextView 文字列の色を指定</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---textview---1.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.247</id>

    <published>2010-10-04T01:42:30Z</published>
    <updated>2011-10-05T03:18:16Z</updated>

    <summary>文字列の色を指定する場合、TextViewクラスのsetTextColor メソ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>文字列の色を指定する場合、TextViewクラスの<strong>setTextColor
メソッド</strong>を使用する。</p>

<pre name="code" class="ruby">
package jp.android.helloworld;  

import android.app.Activity;  
import android.os.Bundle;  
import android.widget.TextView;
import android.graphics.Color;


public class HelloWorld extends Activity {  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        TextView tv = new TextView(this);  
        tv.setText(&quot;Hello!! Android!!!!!&quot;);
        tv.setTextColor(Color.GREEN);
        setContentView(tv); 
    }  
}  
</pre>

<p>Colorクラスをimportし、Colorクラスを使用できるようにする。(Color.GREEN)</p>

<pre name="code" class="ruby">
import android.graphics.Color;
</pre>

<p><strong>setTextColorメソッド</strong>の引数に、表示させる色を定義する。<br/>指定可能な色の一覧は「<a href="http://developer.android.com/reference/android/graphics/Color.html"　target="_blank">Color | Android Developers</a>」を参考。</p>

<pre name="code" class="ruby">tv.setTextColor(Color.GREEN);</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000142-405.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000142-405.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000142-thumb-550x390-405.jpg" width="550" height="390" alt="WS000142.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>　　</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - TextView 文字列のスタイルを指定</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/10/android---textview---6.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.253</id>

    <published>2010-10-01T03:50:10Z</published>
    <updated>2011-10-05T03:16:01Z</updated>

    <summary>文字列の色スタイル指定する場合、TextViewクラスのsetTypeface ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>文字列の色スタイル指定する場合、TextViewクラスの<strong>setTypeface
メソッド</strong>を使用する。</p>

<pre name="code" class="ruby">package jp.android.helloworld;  

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.LinearLayout;
import android.view.ViewGroup;
import android.graphics.Typeface;


public class HelloWorld extends Activity {  

    private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT; 

    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        LinearLayout linearLayout = new LinearLayout(this);
        linearLayout.setOrientation(LinearLayout.VERTICAL);
        setContentView(linearLayout);

        TextView tv1 = new TextView(this);
        tv1.setText(&quot;Hello!! Android!!!!!&quot;);
        tv1.setTypeface(Typeface.DEFAULT_BOLD);

        linearLayout.addView(tv1, 
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        TextView tv2 = new TextView(this);
        tv2.setText(&quot;Hello!! Android!!!!!&quot;);
        tv2.setTypeface(Typeface.create(Typeface.SERIF, Typeface.BOLD_ITALIC));
        linearLayout.addView(tv2, 
          new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

    }  
}  
</pre>

<p>Typefaceクラスをimportし、Typefaceクラスを使用できるようにする。(Typeface.DEFAULT_BOLD)</p>

<pre name="code" class="ruby">
import android.graphics.Typeface;
</pre>

<p><strong>setTypefacerメソッド</strong>の引数に、表示させるスタイルを定義する。<br/>指定可能なスタイルの一覧は「<a href="http://developer.android.com/reference/android/graphics/Typeface.html"　target="_blank">Typeface | Android Developers</a>」を参考。</p>

<pre name="code" class="ruby">
tv1.setTypeface(Typeface.MONOSPACE);
</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000148-423.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000148-423.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000148-thumb-550x390-423.jpg" width="550" height="390" alt="WS000148.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>　　</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - TextView 背景色の指定</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/android---textview---2.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.248</id>

    <published>2010-09-29T03:13:33Z</published>
    <updated>2011-10-05T03:18:28Z</updated>

    <summary>背景色を指定する場合、TextViewクラスのsetBackgroundColo...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>背景色を指定する場合、TextViewクラスの<strong>setBackgroundColor
メソッド</strong>を使用する。</p>

<pre name="code" class="ruby">
package jp.android.helloworld;  


import android.app.Activity;
import android.os.Bundle;  
import android.widget.TextView;
import android.graphics.Color;


public class HelloWorld extends Activity {  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        TextView tv = new TextView(this);  
        tv.setText(&quot;Hello!! Android!!!!!&quot;);
        tv.setTextColor(Color.GREEN);
        tv.setBackgroundColor(Color.WHITE);
        setContentView(tv); 
    }  
}  </pre>

<p>Colorクラスをimportし、Colorクラスを使用できるようにする。(Color.GREEN)</p>
<pre name="code" class="ruby">
import android.graphics.Color;
</pre>

<p><strong>setBackgroundColorメソッド</strong>の引数に、表示させる色を定義する。<br/>指定可能な色の一覧は「<a href="http://developer.android.com/reference/android/graphics/Color.html"　target="_blank">Color | Android Developers</a>」を参考。</p>

<pre name="code" class="ruby"> tv.setBackgroundColor(Color.WHITE);</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000143-408.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000143-408.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000143-thumb-550x390-408.jpg" width="550" height="390" alt="WS000143.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>　　</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - TextView 文字列を表示</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/android---textview--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.246</id>

    <published>2010-09-28T23:32:46Z</published>
    <updated>2011-10-05T03:15:51Z</updated>

    <summary>文字列を表示する場合、TextViewクラスのsetTextメソッドを使用する。...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>文字列を表示する場合、TextViewクラスの<strong>setTextメソッド</strong>を使用する。</p>

<pre name="code" class="ruby">
package jp.android.helloworld;  


import android.app.Activity;  
import android.os.Bundle;  
import android.widget.TextView;  

public class HelloWorld extends Activity {  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  

        TextView tv = new TextView(this);  
        tv.setText(&quot;Hello!! Android!!!!!&quot;);  
        setContentView(tv);  
    }  
}  </pre>



<p><strong>setTextメソッド</strong>の引数に、表示させる文字列を定義する。</p>

<pre name="code" class="ruby">
tv.setText(&quot;Hello!! Android!!!!!&quot;); 
</pre>

<p>実行すると以下のように表示される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000141-402.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000141-402.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000141-thumb-550x390-402.jpg" width="550" height="390" alt="WS000141.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>　　</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 -ファイル操作 ファイルを読み込み</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-----6.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.245</id>

    <published>2010-09-28T23:30:00Z</published>
    <updated>2011-10-05T03:15:43Z</updated>

    <summary>ファイルの内容を一度に読み込む Fileクラスのreadメソッドを使用し、内容を...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><span style="font-size: large;"><strong>ファイルの内容を一度に読み込む</strong></span></p>

<p>Fileクラスの<strong>readメソッド</strong>を使用し、内容を読み込む。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

f = open(&quot;test.txt&quot;)
print f.read
f.close
</pre>

<p><b>This is Test!!</b>と記載されたファイルを読み込む場合の実行結果は以下のようになる。</p>

<blockquote>
&gt;ruby test.rb<br /> 
This is Test!!
</blockquote>

<p><span style="font-size: large;"><strong>ファイルの内容を出力する</strong></span></p>

<p>以下のように、内容を出力する。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

f = open(&quot;test.txt&quot;)
f.each {|line| print line}
f.close</pre>

<p><b>This is Test!!</b>と記載されたファイルを読み込む場合の実行結果は以下のようになる。</p>

<blockquote>
&gt;ruby test.rb<br /> 
This is Test!!
</blockquote>

<p><span style="font-size: large;"><strong>ファイルの内容を行を使用して出力する</strong></span></p>

<p>以下のように、内容を出力する。(例：2行目を出力)</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

open(&quot;test.txt&quot;) {|file|
  print file.readlines[1]
}</pre>

<p><b>1行目：This is Test1!!、2行目：This is Test2!!</b>と記載されたファイルを読み込む場合の実行結果は以下のようになる。</p>

<blockquote>
&gt;ruby test.rb<br /> 
This is Test2!!
</blockquote>

<p><span style="font-size: large;"><strong>ファイルの内容を特定の長さのみ出力する</strong></span></p>

<p>以下のように、内容を出力する。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

f = open(&quot;test.txt&quot;)
print f.read(5)
f.close</pre>

<p><b>This is Test!!</b>と記載されたファイルを読み込む場合の実行結果は以下のようになる。</p>

<blockquote>
&gt;ruby test.rb<br /> 
This
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 -ファイル操作 ファイルを開く</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-----5.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.244</id>

    <published>2010-09-28T06:25:32Z</published>
    <updated>2011-10-05T03:15:33Z</updated>

    <summary>ファイルを開く IOクラスのreadメソッドを使用し、ファイルを開く。第2引数に...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><span style="font-size: large;"><strong>ファイルを開く</strong></span></p>

<p>IOクラスの<strong>readメソッド</strong>を使用し、ファイルを開く。第2引数には、モードを指定する。</p>

<table border="1">

<tr>
<td><b>r</b></td>
<td>読み込み専用</td>
</tr>
<tr>
<td><b>r+</b></td>
<td>読み書き両用</td>
</tr>
<tr>
<td><b>w</b></td>
<td>書き込み専用。ファイルがない場合は新規に作成される。</td>
</tr>
<tr>
<td><b>w+</b></td>
<td>読み書き両用。ファイルがない場合は新規に作成される。</td>
</tr>
<tr>
<td><b>a</b></td>
<td>追加書き込み専用。ファイルがない場合は新規に作成される。</td>
</tr>
<tr>
<td><b>a+</b></td>
<td>読み込み、追加書き込み用。ファイルがない場合は新規に作成される。</td>
</tr>

</table>

<pre name="code" class="ruby">
#!/usr/bin/ruby

file = open(&quot;index.txt&quot;, &quot;r&quot;)
file.close</pre>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - 画面遷移</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/android----.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.240</id>

    <published>2010-09-28T02:39:26Z</published>
    <updated>2011-10-05T03:15:21Z</updated>

    <summary>新規プロジェクトを作成 １．Eclipseを起動し、[ファイル] - [新規] ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><b>新規プロジェクトを作成</b></font ><br /></p>

<p>１．Eclipseを起動し、[ファイル] - [新規] - [Android プロジェクト]を選択する。以下を入力し、[完了ボタンクリックする。
プロジェクト名：Transition<br/>
ターゲット：Android 2.2<br/>
アプリケーション名：Ｔransition<br/>
パッケージ名：android.sample<br/>
CreateActivity：MainActivity


<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000119-345.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000119-345.html','popup','width=500,height=766,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000119-thumb-550x842-345.jpg" width="550" height="842" alt="WS000119.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span><br/><br/>
</p>

<p><font size='5' ><b>色設定用xmlファイルを作成する</b></font ><br /><br /></p>

<p>１．/Transition/res/values/を右クリックし、[新規]-[その他]-[XML]-[XML作成]をするf。ファイル名を入力し、[完了]をクリックする。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000120-348.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000120-348.html','popup','width=500,height=578,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000120-thumb-550x635-348.jpg" width="550" height="635" alt="WS000120.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span>

<p>2.作成されたファイルをEclipseからクリックすると、リソース画面が表示される。[追加]ボタンを押す。[Create a new element]画面が表示されるので、[Color]を選択し、[OK]ボタンを押す。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000123-351.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000123-351.html','popup','width=1152,height=687,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000123-thumb-550x327-351.jpg" width="550" height="327" alt="WS000123.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span>


<p>3.elementのNameとValueの入力欄が表示されるので、適当なNameと色コードを入力する。<br/>（<a href="http://www.hi-ho.ne.jp/douton/htmlcolor.html">HTML色見本</a>）とりあえず、4色ほど追加する。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000124-354.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000124-354.html','popup','width=1152,height=687,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000124-thumb-550x327-354.jpg" width="550" height="327" alt="WS000124.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span>


<pre name="code" class="ruby">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;resources&gt;
    &lt;color name=&quot;yellowgreen&quot;&gt;#9ACD32&lt;/color&gt;
    &lt;color name=&quot;moccasin&quot;&gt;#FFE4B5&lt;/color&gt;
    &lt;color name=&quot;lightsteelblue&quot;&gt;#B0C4DE&lt;/color&gt;
    &lt;color name=&quot;black&quot;&gt;#000000&lt;/color&gt;
&lt;/resources&gt;</pre>


<font size='5' ><b>文字列（Label）設定用xmlファイルを修正する。</b></font ><br /><br />

<p>/Transition/res/values/strings.xmlを以下の様に修正する。</p>

<pre name="code" class="ruby">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;resources&gt;
    &lt;string name=&quot;app_name&quot;&gt;Transition&lt;/string&gt;
    &lt;string name=&quot;label_moccasin&quot;&gt;moccasin画面&lt;/string&gt;
    &lt;string name=&quot;label_yellowgreen&quot;&gt;yellowgreen画面&lt;/string&gt;

    &lt;string name=&quot;transition_moccasin&quot;&gt;moccasin画面へ&lt;/string&gt;
    &lt;string name=&quot;transition_yellowgreen&quot;&gt;yellowgreen画面へ&lt;/string&gt;
    &lt;string name=&quot;transition_end&quot;&gt;Activity終了&lt;/string&gt;
&lt;/resources&gt;</pre>


<font size='5' ><b>レイアウト設定用xmlファイルを修正する。</b></font ><br /><br />

<p>/Transition/res/layout/main.xmlを以下の様に修正する。</p>
<pre name="code" class="ruby">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    android:orientation=&quot;vertical&quot;
    android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;fill_parent&quot;
    android:background=&quot;@color/moccasin&quot;
    &gt;
&lt;TextView  
    android:layout_width=&quot;fill_parent&quot; 
    android:layout_height=&quot;wrap_content&quot; 
    android:textColor=&quot;@color/black&quot; 
    android:text=&quot;@string/label_moccasin&quot;
    /&gt;
&lt;/LinearLayout&gt;</pre>

<p>"@color"はXmlファイル名で、"/moccasin"はそのxmlで定義された属性である。"value@color/moccasin"と指定することで、そのvalueの値が取得できる。</p>

<font size='5' ><b>遷移先のActivityを作成する</b></font ><br /><br />

<p>１． /Transition/src/android/sample以下に新規Javaクラスを作成する。以下を入力し、[完了ボタンクリックする。<br/>
名前：YellowgreenActivity<br/>
スーパークラス：android.app.Activity
</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000128-366.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000128-366.html','popup','width=588,height=593,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000128-thumb-550x554-366.jpg" width="550" height="554" alt="WS000128.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p><font size='5' ><b>遷移先のレイアウト設定xmlファイルを作成する</b></font ><br /></p>

<p>１． /Transition/res/layoutを右クリックし、[新規]-[Android XML File]をクリックする。作成画面が表示されるので以下を入力し、[完了]ボタンをクリックする。<br/>
名前：yellowgreen.xml<br/>
</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000129-369.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000129-369.html','popup','width=689,height=677,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000129-thumb-550x540-369.jpg" width="550" height="540" alt="WS000129.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>２．作成された ソースを以下のように修正する。</p>

<pre name="code" class="ruby">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout
  xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    android:orientation=&quot;vertical&quot; 
    android:layout_width=&quot;fill_parent&quot; 
    android:layout_height=&quot;fill_parent&quot; 
    android:background=&quot;@color/yellowgreen&quot; 
  &gt;
  &lt;TextView 
    android:layout_width=&quot;fill_parent&quot; 
    android:layout_height=&quot;wrap_content&quot; 
    android:textColor=&quot;@color/black&quot; 
    android:text=&quot;@string/label_yellowgreen&quot;
    /&gt;
&lt;/LinearLayout&gt;</pre>

<p><font size='5' ><b>AndroidManifest.xmlにActvityを追加する。</b></font ><br /></p>

<p>1．"/Transition/AndroidManifest.xml"に遷移先のActvity(YellowgreenActivity)を追加する。</p>

<pre name="code" class="ruby">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
      package=&quot;android.sample&quot;
      android:versionCode=&quot;1&quot;
      android:versionName=&quot;1.0&quot;&gt;
    &lt;application android:icon=&quot;@drawable/icon&quot; android:label=&quot;@string/app_name&quot;&gt;
        &lt;activity android:name=&quot;.MainActivity&quot;
                  android:label=&quot;@string/app_name&quot;&gt;
            &lt;intent-filter&gt;
                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
                &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
            &lt;/intent-filter&gt;
        &lt;/activity&gt;
        &lt;activity android:name=&quot;.YellowgreenActivity&quot;&gt;&lt;/activity&gt;
    &lt;/application&gt;
    &lt;uses-sdk android:minSdkVersion=&quot;8&quot; /&gt;
&lt;/manifest&gt; </pre>

<p><font size='5' ><b>MainActivity.javaを修正する。</b></font ><br /></p>

<p>1．以下の様に修正する。</p>

<pre name="code" class="ruby">package android.sample;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

    private final int MENU_ID1 = Menu.FIRST;
    private final int MENU_ID2 = Menu.FIRST + 1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

    }

    /**
     * メニューを宣言する
     */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);

        menu.add(0, 
                MENU_ID1, 
                0, 
                getString(R.string.transition_yellowgreen)).setIcon(android.R.drawable.ic_menu_crop);
        menu.add(0, 
                MENU_ID2, 
                1, 
                getString(R.string.transition_end)).setIcon(android.R.drawable.ic_menu_close_clear_cancel);        
        return true;
    }
     /**
     * メニューボタンクリック時の処理
     */
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        super.onPrepareOptionsMenu(menu);
        return true;
    }

    /**
     * メニューを選択時の処理
     */
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case MENU_ID1:
            //YellowgreenActivityに遷移させる
            Intent intent = new Intent();
            intent.setClassName(
                    &quot;android.sample&quot;,
                    &quot;android.sample.YellowgreenActivity&quot;);
            startActivity(intent);
            return true;
        case MENU_ID2:
            //Activity終了させる
            finish();
            return true;
        default:
            break;
        }
        return super.onOptionsItemSelected(item);
    }
}</pre>

<p><font size='5' ><b>YellowgreenActivity.javaを修正する。</b></font ><br /></p>

<p>1．基本的にMain,javaと同じプログラムである。以下のように修正する。</p>

<pre name="code" class="ruby">package android.sample;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class YellowgreenActivity extends Activity {

    private final int MENU_ID1 = Menu.FIRST;
    private final int MENU_ID2 = Menu.FIRST + 1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.yellowgreen);
    }

    /**
     * メニューを宣言する
     */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);

        menu.add(0, 
                MENU_ID1, 
                0, 
                getString(R.string.label_moccasin)).setIcon(android.R.drawable.ic_menu_crop);
        menu.add(0, 
                MENU_ID2, 
                1, 
                getString(R.string.transition_end)).setIcon(android.R.drawable.ic_menu_close_clear_cancel);        
        return true;
    }

    /**
     * メニューボタンクリック時の処理
     */
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        super.onPrepareOptionsMenu(menu);
        return true;
    }

    /**
     * メニューを選択時の処理
     */
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case MENU_ID1:
            //メイン画面に遷移させる
            Intent intent = new Intent();
            intent.putExtra(&quot;skin_changed&quot;, true);
            intent.setClassName(
                    &quot;android.sample&quot;,
                    &quot;android.sample.MainActivity&quot;);
            startActivity(intent);
            return true;
        case MENU_ID2:
            //Activity終了させる
            finish();
            return true;
        default:
            break;
        }
        return super.onOptionsItemSelected(item);
    }
}</pre>

<p><font size='5' ><b>実行する。</b></font ><br /></p>

<p>1．アプリを実行し、メイン画面を表示させる。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000138-393.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000138-393.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000138-thumb-550x390-393.jpg" width="550" height="390" alt="WS000138.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>2．[Menu]ボタンをクリックし、メニューを表示させる。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000139-396.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000139-396.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000139-thumb-550x390-396.jpg" width="550" height="390" alt="WS000139.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>3．[yellowgreen画面へ]をクリックし、遷移する。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000140-399.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000140-399.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000140-thumb-550x390-399.jpg" width="550" height="390" alt="WS000140.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>　　　　</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 日付・時刻 日付文字列を日付オブジェクトに変換する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-----4.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.242</id>

    <published>2010-09-27T01:03:26Z</published>
    <updated>2011-10-05T03:15:10Z</updated>

    <summary>日付文字列を日付オブジェクトに変換する Dateクラスのstrptimeメソッド...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><b>日付文字列を日付オブジェクトに変換する</b></font ><br /></p>

<p>Dateクラスの<strong>strptimeメソッド</strong>は、日付文字列を日付オブジェクトに変換する。</p>

<pre name="code" class="ruby">require 'date'

p Date.strptime(&quot;2010/9/12&quot;, &quot;%Y/%m/%d&quot;)
</pre>

<blockquote>
<pre class="code">#&lt;Date: 4910903/2,0,2299161&gt;</pre>
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 日付・時刻 日付存在チェック</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-----3.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.239</id>

    <published>2010-09-26T11:49:33Z</published>
    <updated>2011-10-05T03:15:03Z</updated>

    <summary>日付存在チェック Dateクラスのexist?メソッドは、指定された日付が存在す...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><b>日付存在チェック</b></font ><br /></p>

<p>Dateクラスの<strong>exist?メソッド</strong>は、指定された日付が存在すれば、ユリウス日を返却し、存在しない場合は、偽を返します。</p>

<pre name="code" class="ruby">
require 'date'

p Date::exist?(2010, 12, 31)
p Date::exist?(2010, 2, 29)
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
2455562<br/>
nil
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 日付・時刻 閏年か判定する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-----2.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.238</id>

    <published>2010-09-25T07:17:29Z</published>
    <updated>2011-10-05T03:14:56Z</updated>

    <summary>閏年か判定する require &apos;date&apos; year = Date.new(2...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><b>閏年か判定する</b></font ><br /></p>

<pre name="code" class="ruby">
require 'date'

year = Date.new(2012)
p year.leap? 

year = Date.new(2013)
p year.leap?
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
true<br/>
false
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - エミュレータを日本語化する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/android-----1.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.241</id>

    <published>2010-09-24T07:18:17Z</published>
    <updated>2011-10-05T03:14:14Z</updated>

    <summary>１．エミュレータボタン起動したら、HOMEボタンをクリックする。 2．アプリ一覧...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>１．エミュレータボタン起動したら、HOMEボタンをクリックする。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000130-372.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000130-372.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000130-thumb-550x390-372.jpg" width="550" height="390" alt="WS000130.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>2．アプリ一覧ボタンをクリックする。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000131-375.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000131-375.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000131-thumb-550x390-375.jpg" width="550" height="390" alt="WS000131.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>3．「Setting」をクリックする。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000132-378.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000132-378.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000132-thumb-550x390-378.jpg" width="550" height="390" alt="WS000132.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>4．「Language & Keyboard」をクリックする。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000134-381.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000134-381.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000134-thumb-550x390-381.jpg" width="550" height="390" alt="WS000134.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>5．「Select language」をクリックする。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000135-384.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000135-384.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000135-thumb-550x390-384.jpg" width="550" height="390" alt="WS000135.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>6．「日本語」をクリックする。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000136-387.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000136-387.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000136-thumb-550x390-387.jpg" width="550" height="390" alt="WS000136.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>6．HOMEに戻ると日本語で表示されている。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000137-390.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000137-390.html','popup','width=797,height=566,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000137-thumb-550x390-390.jpg" width="550" height="390" alt="WS000137.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>　　　</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 日付・時刻 計算をする</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-----1.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.234</id>

    <published>2010-09-23T23:47:20Z</published>
    <updated>2011-10-05T03:14:38Z</updated>

    <summary>時刻を加減する Timeオブジェクトに数値を加減（秒数）することで、任意の時刻に...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><b>時刻を加減する</b></font ><br /></p>

<p>Timeオブジェクトに数値を加減（秒数）することで、任意の時刻にすることができる。</p>

<pre name="code" class="ruby">#!/usr/bin/ruby
require 'date'


puts &quot;現在の時刻:#{Time.now}&quot;

#10秒先の時刻
time = Time.now + 10
puts &quot;10秒後の時刻:#{time}&quot;

#24時間後の時刻
time = Time.now + 24*60*60
puts &quot;24時間後の時刻:#{time}&quot;</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
現在の時刻:Tue Sep 21 15:14:25 +0900 2010<br/>
10秒後の時刻:Tue Sep 21 15:14:35 +0900 2010<br/>
24時間後の時刻:Wed Sep 22 15:14:25 +0900 2010
</blockquote>

<font size='5' ><b>時刻の差を求める</b></font ><br /><br/>


<p>Timeオブジェクトに数値を減算（結果は秒単位）することで、任意の時刻にすることができる。</p>


<pre name="code" class="ruby">
#!/usr/bin/ruby
require 'date'

time1 = Time.local(2011, 12, 31, 0, 0, 0)
time2 = Time.local(2010, 12, 31, 0, 0, 0)

puts &quot;秒数の差：#{(time1 -time2)}&quot;

puts &quot;日の差：#{(time1 -time2).divmod(24*60*60)[0]}&quot;
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
秒数の差：31536000.0<br/>
日の差：365
</blockquote>

<p><font size='5' ><b>何日後、何日前の日付を取得する</b></font ><br /></p>

<p>Dateオブジェクトに数値を加減（秒数）することで、任意の日付にすることができる。また、<strong>nextメソッド</strong>・<strong>succメソッド</strong>でも取得が可能である。</p>

<pre name="code" class="ruby">
require 'date'

day = Date.new(2010, 9, 21)


puts &quot;1日前：#{(day-1).to_s}&quot;

puts &quot;1日後：#{(day+1).to_s}&quot;

puts &quot;1日後(next)：#{(day.next).to_s}&quot;

puts &quot;1日後(succ)：#{(day.succ).to_s}&quot;</pre>


<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
1日前：2010-09-20<br/>
1日後：2010-09-22<br/>
1日後(next)：2010-09-22<br/>
1日後(succ)：2010-09-22<br/>
</blockquote>

<font size='5' ><b>何カ月後、何カ月前の日付を取得する</b></font ><br /><br />

<p><strong>>>メソッド</strong>・<strong><<メソッド</strong>で取得が可能である。</p>

<pre name="code" class="ruby">require 'date'

day = Date.new(2010, 9, 21)


puts &quot;1か月後：#{(day &gt;&gt; 1).to_s}&quot;

puts &quot;1か月前：#{(day &lt;&lt; 1).to_s}&quot;
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
1か月後：2010-10-21<br/>
1か月前：2010-08-21
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 日付・時刻 現在の時刻を取得する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby----.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.233</id>

    <published>2010-09-23T09:52:53Z</published>
    <updated>2011-08-19T09:03:14Z</updated>

    <summary>現在の時刻を取得する Timeクラスのnowメソッドで現在の時刻を取得することが...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>現在の時刻を取得する</strong></font ><br /></p>

<p><strong>Timeクラスのnowメソッド</strong>で現在の時刻を取得することができる。</p>

<p>実行結果は以下のようになる。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

#曜日定義
wdays = [&quot;日&quot;, &quot;月&quot;, &quot;火&quot;, &quot;水&quot;, &quot;木&quot;, &quot;金&quot;, &quot;土&quot;]

time = Time.now

puts &quot;時刻:#{time}&quot;


puts &quot;年:#{time.year}&quot;
puts &quot;月:#{time.month}&quot;
puts &quot;日:#{time.day}&quot;
puts &quot;時:#{time.hour}&quot;
puts &quot;分:#{time.min}&quot;
puts &quot;秒:#{time.sec}&quot;
puts &quot;曜日:#{wdays[time.wday]}&quot;</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
時刻:Tue Sep 21 14:02:20 +0900 2010<br/>
年:2010<br/>
月:9<br/>
日:21<br/>
時:14<br/>
分:2<br/>
秒:20<br/>
曜日:火
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 日付・時刻 現在の日付を取得する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby---2.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.328</id>

    <published>2010-09-23T09:01:27Z</published>
    <updated>2011-08-19T09:03:08Z</updated>

    <summary>現在の日付を取得する Dateクラスのtodayメソッドで現在の日付を取得するこ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><b>現在の日付を取得する</b></font ><br /><br /></p>

<p><strong>Dateクラスのtodayメソッド</strong>で現在の日付を取得することができる。</p>

<pre name="code" class="ruby">#!/usr/bin/ruby
require 'date'

#曜日定義
wdays = [&quot;日&quot;, &quot;月&quot;, &quot;火&quot;, &quot;水&quot;, &quot;木&quot;, &quot;金&quot;, &quot;土&quot;]

day = Date.today

puts &quot;時刻:#{day}&quot;

puts &quot;年:#{day.year}&quot;
puts &quot;月:#{day.month}&quot;
puts &quot;日:#{day.day}&quot;
puts &quot;曜日:#{wdays[day.wday]}&quot;
puts &amp;quot;曜日:#{wdays[time.wday]}&amp;quot;
</pre>

<blockquote>
>ruby test.rb<br/>
時刻:2010-09-21<br/>
年:2010<br/>
月:9<br/>
日:21<br/>
曜日:火

</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - Android Maps API Keyの取得</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/android---google---1.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.237</id>

    <published>2010-09-22T04:36:41Z</published>
    <updated>2011-10-05T03:13:53Z</updated>

    <summary>１．まず、フィンガープリント（MD5)を取得する。コマンドプロンプトを開き、以下...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>１．まず、フィンガープリント（MD5)を取得する。コマンドプロンプトを開き、以下を実行する。パスワードを聞かれるが、未入力で良い。</p>

<blockquote>
>cd C:\Program Files\Java\jdk1.5.0_15\bin<br/>
>cd keytool -list -keystore "C:\Documents and Settings\%USERNAME%\.android\debug.keystore"<br/>
キーストアのパスワードを入力してください:<br/><br/>

*****************  警告 警告 警告  *****************<br/>
*  キーストアに保存された情報の完全性は検証されて  *<br/>
*  いません!  完全性を検証するには、キーストアの   *<br/>
*  パスワードを入力する必要があります。            *<br/>
*****************  警告 警告 警告  *****************<br/><br/>

キーストアのタイプ: jks<br/>
キーストアのプロバイダ: SUN<br/><br/>

キーストアには 1 エントリが含まれます。<br/><br/>

androiddebugkey, 2010/09/02, keyEntry,<br/>
証明書のフィンガープリント (MD5): 99:AA:99:AA:9A:9A:99:9A:A9:99:99:99:B9:C9:99:E9
</blockquote>

<p>debug.keystoreの在りかはOSによって異なる。</p>

<ul>
<li>MS XP<br>
C:\Documents and Settings\%USERNAME%\.android\debug.keystore
</li>
<li>MS Vista<br>
C:\Users\%USERNAME%\.android\debug.keystore
</li>
<li>Mac/Linux<br>
~/.android/debug.keystore
</li>
</ul>

<p>２．<a href="http://code.google.com/intl/ja/android/maps-api-signup.html" target="_blank">Android Maps API Key Signup</a>に取得したフィンガープリント（MD5)入力する。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000110-321.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000110-321.html','popup','width=1006,height=934,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000110-thumb-550x510-321.jpg" width="550" height="510" alt="WS000110.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>Keyとxmlレイアウトが発行される。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000111-324.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000111-324.html','popup','width=1006,height=649,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000111-thumb-550x354-324.jpg" width="550" height="354" alt="WS000111.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p>

<p>以上です。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android - 警告: Application does not specify an API level requirement! - </title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/android-tips---application-does-not-specify-an-api-level-requirement--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.235</id>

    <published>2010-09-22T02:34:02Z</published>
    <updated>2011-10-05T03:13:36Z</updated>

    <summary>アプリの実行時に、以下エラーが発生。 警告: Application does ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>アプリの実行時に、以下エラーが発生。</p>

<blockquote>
<strong>警告: Application does not specify an API level requirement!</strong><br/>
<strong>Device API version is 8 (Android 2.2)</strong>
</blockquote>

<p>「アプリケーションがAPIレベル要求を指定していない」というエラーである。AndroidManifest.xmlプラットフォームバージョンのAPIレベルを指定すればOK。</p>

<p><strong>&lt;uses-sdk android:minSdkVersion=&quot;6&quot; /&gt;</strong>を追加する。</p>

<pre name="code" class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
      package=&quot;jp.android.helloworld&quot;
      android:versionCode=&quot;1&quot;
      android:versionName=&quot;1.0&quot;&gt;
    &lt;application android:icon=&quot;@drawable/icon&quot; android:label=&quot;@string/app_name&quot;&gt;
        &lt;activity android:name=&quot;.HelloWorld&quot;
                  android:label=&quot;@string/app_name&quot;&gt;
            &lt;intent-filter&gt;
                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;
                &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
            &lt;/intent-filter&gt;
        &lt;/activity&gt;

    &lt;/application&gt;
    &lt;uses-sdk android:minSdkVersion=&quot;6&quot; /&gt;
&lt;/manifest&gt; </pre>

<p>警告が無くなった。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 文字列 検索する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-tips-----5.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.230</id>

    <published>2010-09-21T00:17:45Z</published>
    <updated>2011-08-19T08:58:59Z</updated>

    <summary>文字列中に含まれている位置を調べる indexメソッドは、文字列の左から右へ検索...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><b>文字列中に含まれている位置を調べる</b></font ><br /></p>

<p><strong>indexメソッド</strong>は、文字列の左から右へ検索を行い、文字列中の位置を数値でで返す。第2引数で検索開始位置を指定することができる。見つからなければ nil を返す。<strong>rindexメソッド</strong>は、文字列の右から左へ検索を行う。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

str = &quot;Cherry Banana Muskmelon Banana Lemon&quot;

p str.index(&quot;Banana&quot;)
p str.index(&quot;Lemon&quot;)
p str.index(&quot;Banana&quot;, 12)

p str.rindex(&quot;Banana&quot;)
p str.rindex(&quot;Banana&quot;, 12)
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
7<br/>
31<br/>
24<br/>
24<br/>
7
</blockquote>

<p><font size='5' ><b>文字列中に含まれているかどうかを確認する</b></font ><br /></p>

<p><strong>includeメソッド</strong>は、文字列中に含まれているかどうかを確認し、true  or false　を返す。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

str = &quot;Cherry Banana Muskmelon&quot;

p str.include?(&quot;Banana&quot;)
p str.include?(&quot;Lemon&quot;)
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
true<br>
false
</blockquote>

<p><br></p>

<p><font size='5' ><b>正規表現による検索</b></font ><br /></p>

<p><strong>scanメソッド</strong>は、正規表現による検索を行い、結果の文字列を配列で返す。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

str = &quot;電話番号1 090-1234-1234 電話番号2 090-9876-9876&quot;

p str.scan(/\d{2,4}-\d{2,4}-\d{4}/)

</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
["090-1234-1234", "090-9876-9876"]<br>
</blockquote>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 文字列 分割する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-tips-----4.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.229</id>

    <published>2010-09-20T10:09:04Z</published>
    <updated>2011-08-19T08:57:04Z</updated>

    <summary>文字列を特定の文字で分割する splitメソッドは、文字列を特定の文字で分割し、...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><b>文字列を特定の文字で分割する</b></font ><br /></p>

<p>splitメソッドは、文字列を特定の文字で分割し、配列で返す。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

str = &quot;リンゴ：メロン：スイカ：レモン&quot;

ary = str.split(/：/)

puts ary
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
["リンゴ","メロン","スイカ","レモン"]
</blockquote>

<p><font size='5' ><b>特定の数の文字ずつに分割する</b></font ><br /></p>

<p>unpackメソッドは、特定の数の文字ずつに分割し、配列で返す。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

str = &quot;123456789&quot;

ary = str.unpack(&quot;a1a3a5&quot;)

p ary
</pre>

<p>「a分割する桁数」を繰り返した文字列を引数に指定します。</p>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
["1", "234", "56789"]
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 文字列 長さを調べる</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-tips-----3.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.228</id>

    <published>2010-09-19T08:28:13Z</published>
    <updated>2011-08-19T08:56:19Z</updated>

    <summary>文字列の長さを得る lengthメソッドまたはsizeメソッドは、文字列の長さを...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='4' ><b>文字列の長さを得る</b></font ><br /></p>

<p>lengthメソッドまたはsizeメソッドは、文字列の長さを得ることができる。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

p &quot;abcdefghi&quot;.length
p &quot;abcdefghij&quot;.size
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
9<br>
10
</blockquote>

<p><font size='4' ><b>マルチバイト文字列の長さを得る</b></font ><br /></p>

<p>lengthメソッドまたはsizeメソッドでは、マルチバイト文字列の長さを得ることができない。splitメソッドを使用し以下のように取得する。</p>

<pre name="code" class="ruby">#!/usr/bin/ruby
#Shift_JISの場合
p &quot;あいうえお&quot;.split(//s).length 

#UTF-8の場合
p &quot;あいうえお&quot;.split(//u).length </pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
5<br>
5
</blockquote>

<font size='4' ><b>文字列の長さが0であるかどうかを調べる</b></font ><br /><br />


<p>emptyメソッドは、文字列の長さが0であるかどうかを調べることができる。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

p &quot;&quot;.empty?
p &quot;test&quot;.empty?
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
true<br>
false
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 文字列 数値を文字列に変換する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby---1.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.327</id>

    <published>2010-09-18T08:52:12Z</published>
    <updated>2011-08-19T08:53:48Z</updated>

    <summary>数値を文字列に変換する to_sメソッドは、数値を文字列に変換する 。 #!/u...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>数値を文字列に変換する</strong></font ><br /><br /></p>

<p>to_sメソッドは、数値を文字列に変換する 。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

num =10

p num.to_s
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
"10"
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 文字列 16進文字列を整数(数値)に変換する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby---16.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.326</id>

    <published>2010-09-18T08:50:05Z</published>
    <updated>2011-08-19T08:51:39Z</updated>

    <summary>16進文字列を整数に変換する  hexメソッドは、16進文字列を整数に変換する ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>16進文字列を整数に変換する </strong></font ><br /></p>

<p>hexメソッドは、16進文字列を整数に変換する 。</p>

<pre name="code" class="ruby">#!/usr/bin/ruby

str = &quot;FFFF&quot;

p str.hex</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
65535
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 文字列 8進文字列を整数(数値)に変換する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby---8.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.325</id>

    <published>2010-09-18T08:48:13Z</published>
    <updated>2011-08-19T08:49:36Z</updated>

    <summary>8進文字列を整数に変換する octメソッドは、8進文字列を整数に変換する。 #!...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>8進文字列を整数に変換する</strong></font ><br /></p>

<p>octメソッドは、8進文字列を整数に変換する。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

str = &quot;1010&quot;

p str.oct
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
520
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 文字列 浮動小数点(数値)に変換する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.324</id>

    <published>2010-09-18T08:34:11Z</published>
    <updated>2011-08-19T08:47:17Z</updated>

    <summary>浮動小数点に変換する to_fメソッドは、文字列を浮動小数点に変換する。 #!/...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>浮動小数点に変換する</strong></font ><br /></p>

<p>to_fメソッドは、文字列を浮動小数点に変換する。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

num = 10
str = &quot;10&quot;

p (num + str.to_i).to_f
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
20.0
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 文字列 整数(数値)に変換する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-tips-----2.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.227</id>

    <published>2010-09-18T05:59:08Z</published>
    <updated>2011-08-19T08:45:16Z</updated>

    <summary>整数に変換する to_iメソッドは、文字列を整数に変換する。 #!/usr/bi...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>整数に変換する</bstrong></font ><br /></p>

<p>to_iメソッドは、文字列を整数に変換する。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

num = 10
str = &quot;10&quot;

p num + str.to_i
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
20
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 文字列 大文字・小文字の変換または統一</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-tips-----1.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.226</id>

    <published>2010-09-17T08:43:40Z</published>
    <updated>2011-08-19T08:28:27Z</updated>

    <summary>文字列を大文字に統一する upcaseメソッドは、文字列の小文字を大文字に変換す...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='4' ><strong>文字列を大文字に統一する</strong></font ><br /></p>

<p>upcaseメソッドは、文字列の小文字を大文字に変換する。破壊的メソッド(upcase!)も存在する。</p>

<pre name="code" class="ruby">#!/usr/bin/ruby

str = &quot;hello, world&quot;
puts str.upcase
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
HELLO, WORLD
</blockquote>

<p><font size='4' ><strong>文字列を小文字に統一する</strong></font ><br /></p>

<p>downcaseメソッドは、文字列の大文字を小文字に変換する。破壊的メソッド(downcase!)も存在する。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

str = &quot;HELLO, WORLD&quot;
puts str.downcase
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
hello, world
</blockquote>

<p><font size='4' ><strong>文字列を大文字と小文字を入れ替える</strong></font ><br /></p>

<p>swapcaseメソッドは、文字列の大文字と小文字を入れ替える。破壊的メソッド(swapcase!)も存在する。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

str = &quot;hello, WORLD&quot;

puts str.swapcase
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
HELLO, world
</blockquote>

<p><font size='4' ><b>先頭の文字を(アルファベットであれば)大文字に、残りを小文字に変換する</b></font ><br /></p>

<p>capitalizeメソッドは、先頭の文字を(アルファベットであれば)大文字に、残りを小文字に変換する。破壊的メソッド(capitalize!)も存在する。変更が起こらなかった場合は nil を返します。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

str = &quot;hello, WORLD&quot;

puts str.capitalize
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
Hello, world
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 文字列 結合する</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-tips----.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.225</id>

    <published>2010-09-16T23:44:49Z</published>
    <updated>2011-08-19T08:25:29Z</updated>

    <summary>&apos;+&apos;を使用した結合 #!/usr/bin/ruby str1 = &apos;リンゴ&apos; ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>'+'を使用した結合</strong></font ><br /></p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

str1 = 'リンゴ'
str2 = ','
str3 = 'メロン'

str = str1 + str2 + str3

puts str
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
リンゴ,メロン
</blockquote>

<p><font size='5' ><strong>'&lt;&lt;'を使用した結合</strong></font ><br /></p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

str1 = 'リンゴ'
str2 = ','
str3 = 'メロン'

str = str1 << str2 << str3

puts str
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
リンゴ,メロン
</blockquote>

<p><font size='5' ><strong>concatメソッドを使用した結合</strong></font ><br /></p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

str1 = 'リンゴ'
str2 = ','
str3 = 'メロン'

str = (str1.concat(str2)).concat(str3)

puts str</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
リンゴ,メロン
</blockquote>

<font size='5' ><strong>式展開を使用した結合</strong></font ><br />

<pre name="code" class="ruby">
#!/usr/bin/ruby

str1 = 'リンゴ'
str2 = ','
str3 = 'メロン'

str = &quot;#{str1}#{str2}#{str3}&quot;

puts str
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
リンゴ,メロン
</blockquote>

<p><font color='red'>※本記載の結合方法では、式展開を使用することが、最も速度が速い。</font></p>

<p><font size='5' ><strong>配列を文字列に変更し結合</strong></font ><br /></p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

ary = ['リンゴ',',','メロン']

str = ary.join()

puts str
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
リンゴ,メロン
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 繰り返し loopメソッド</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby---loop.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.323</id>

    <published>2010-09-16T08:18:50Z</published>
    <updated>2011-08-19T08:19:51Z</updated>

    <summary>loopメソッド loop {   繰り返す処理 } 以下はサンプルである。 #...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><b>loopメソッド</b></font ><br /></p>

<pre name="code" class="ruby">
loop {
  繰り返す処理
}
</pre>

<p>以下はサンプルである。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

sum = 1

loop{
  puts sum
  sum +=1
  if sum > 5
    break
  end
}
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
10<br/>
9<br/>
8<br/>
7<br/>
6<br/>
5
</blockquote>

<p>繰り返しの制御は以下の通りである。</p>

<ul>
<li><b>break</b><br>
繰り返しを中断し抜ける命令
</li>
<li><b>next</b><br>
次の繰り返しへ処理を移す命令
</li>
<li><b>redo</b><br>
同じ条件で繰り返しをやり直す命令
</li>
</ul>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 繰り返し eachメソッド</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby---each.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.322</id>

    <published>2010-09-16T08:16:50Z</published>
    <updated>2011-08-19T08:18:24Z</updated>

    <summary>eachメソッド Rubyのeachメソッドは以下のように記述する。 オブジェク...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>eachメソッド</strong></font ><br /></p>

<p>Rubyのeachメソッドは以下のように記述する。</p>

<pre name="code" class="ruby">
オブジェクト.each do | 変数 |
  繰り返す処理
end
</pre>

<p>また、以下のようにブロックを使用できる。</p>

<pre name="code" class="ruby">
オブジェクト.each{ | 変数 |
  繰り返す処理
}
</pre>

<p>以下はサンプルである。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby


ary = [&quot;リンゴ&quot;,&quot;スイカ&quot;,&quot;レモン&quot;,&quot;メロン&quot;]

ary.each{ | n |
  puts n
}</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
リンゴ<br/>
スイカ<br/>
レモン<br/>
メロン
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 繰り返し until文</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby---until.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.321</id>

    <published>2010-09-16T08:14:38Z</published>
    <updated>2011-08-19T08:16:22Z</updated>

    <summary>until文 until 条件 do   繰り返す処理 end until文は条...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>until文</strong></font ><br /></p>

<pre name="code" class="ruby">
until 条件 do
  繰り返す処理
end
</pre>

<p>until文は条件式が<b>偽</b>の間、文を実行する。</p>

<p>以下はサンプルである。("do"は省略可能。)</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby
sum = 1
until sum &gt; 5
  puts sum
  sum += 1
end
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
1<br/>
2<br/>
3<br/>
4<br/>
5
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 繰り返し while文</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby---while.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.320</id>

    <published>2010-09-16T08:12:09Z</published>
    <updated>2011-08-19T08:14:08Z</updated>

    <summary>while文 Rubyのwhile文は以下のように記述する。 while 条件 ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>while文</strong></font ><br /></p>

<p>Rubyのwhile文は以下のように記述する。</p>

<pre name="code" class="ruby">
while 条件 do
  繰り返す処理
end
</pre>

<p>while文は条件式が<b>真</b>の間、文を実行する。</p>

<p>以下はサンプルである。("do"は省略可能。)</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

sum = 1
while sum &lt;= 5
  puts sum
  sum += 1
end
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
1<br/>
2<br/>
3<br/>
4<br/>
5
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 繰り返し for文</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-tips---for-.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.224</id>

    <published>2010-09-16T00:07:32Z</published>
    <updated>2011-08-19T08:21:12Z</updated>

    <summary>for文 Rubyのfor文は以下のように記述する。 for 変数 in 開始の...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>for文</strong></font ><br /></p>

<p>Rubyのfor文は以下のように記述する。</p>

<pre name="code" class="ruby">
for 変数 in 開始の数値..終了時の数値 do
  繰り返す処理
end
</pre>

<p>以下はサンプルである。("do"は省略可能。)</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

for i in 1..5 
  puts i
end
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
1<br/>
2<br/>
3<br/>
4<br/>
5
</blockquote>

<p>また、以下のように記述ことも可能である。</p>

<pre name="code" class="ruby">
for 変数 in オブジェクト do
  繰り返す処理
end
</pre>

<p>以下はサンプルである。("do"は省略可能。)</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

ary = [&quot;リンゴ&quot;,&quot;スイカ&quot;,&quot;レモン&quot;,&quot;メロン&quot;]

for i in ary
  puts i
end
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
リンゴ<br/>
スイカ<br/>
レモン<br/>
メロン
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 繰り返し downtoメソッド</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby---downto.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.319</id>

    <published>2010-09-15T08:07:07Z</published>
    <updated>2011-08-19T08:08:30Z</updated>

    <summary>downtoメソッド Rubyのdowntoメソッドは以下のように記述する。 オ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>downtoメソッド</strong></font ><br /></p>

<p>Rubyのdowntoメソッドは以下のように記述する。</p>

<pre name="code" class="ruby">
オブジェクトが持つ数値.downto(min){|変数|
  繰り返す処理
}
</pre>

<p>オブジェクトが持つ数値からminまで 1 ずつ減らしながら繰り返す。</p>

<p>以下はサンプルである。</p>

<pre name="code" class="ruby">#!/usr/bin/ruby
10.downto(5){|n|
  puts n
}</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
10<br/>
9<br/>
8<br/>
7<br/>
6<br/>
5
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 繰り返し stepメソッド</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby---step.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.318</id>

    <published>2010-09-15T08:05:02Z</published>
    <updated>2011-08-19T08:06:24Z</updated>

    <summary>stepメソッド Rubyのstepメソッドは以下のように記述する。 オブジェク...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>stepメソッド</strong></font ><br /></p>

<p>Rubyのstepメソッドは以下のように記述する。</p>

<pre name="code" class="ruby">
オブジェクトが持つ数値.step(limit, step){|変数|
  繰り返す処理
}
</pre>

<p>オブジェクトが持つ数値 からはじめ step を足しながら limit を越える前までブロックを繰り返す。float型や負の数値も設定できる。</p>

<p>以下はサンプルである。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

1.1.step(3.0, 0.3){|n|
  puts n
}
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
1.1<br/>
1.4<br/>
1.7<br/>
2.0<br/>
2.3<br/>
2.6<br/>
2.9
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 繰り返し uptoメソッド</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby---upto.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.317</id>

    <published>2010-09-15T08:02:44Z</published>
    <updated>2011-08-19T08:11:22Z</updated>

    <summary>uptoメソッド Rubyのuptoメソッドは以下のように記述する。 オブジェク...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>uptoメソッド</strong></font ><br /></p>

<p>Rubyのuptoメソッドは以下のように記述する。</p>

<pre name="code" class="ruby">
オブジェクトが持つ数値.upto(max){|変数|
  繰り返す処理
}
</pre>

<p>オブジェクトが持つ数値からmaxまで 1 ずつ増やしながら繰り返す。 self > max の場合は何もしない。</p>

<p>以下はサンプルである。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

3.upto(7){|n|
  puts n
}
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
3<br/>
4<br/>
5<br/>
6<br/>
7
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 繰り返し timesメソッド</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-tips---timesupto--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.223</id>

    <published>2010-09-15T01:18:43Z</published>
    <updated>2011-08-19T08:09:51Z</updated>

    <summary>timesメソッド Rubyのtimesメソッドは以下のように記述する。 繰り返...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>timesメソッド</strong></font ><br /></p>

<p>Rubyのtimesメソッドは以下のように記述する。</p>

<pre name="code" class="ruby">
繰り返す回数.times {
  繰り返す処理
}
</pre>

<p>以下はサンプルである。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

3.times {
  puts &quot;繰り返したい処理\n&quot;
}
</pre>

<p>また、ブロックの中で繰り返している回数を使用する場合は、以下のように記述する。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

3.times { |n|
  puts n
}
</pre>

<p>実行結果は以下のようになる。</p>

<blockquote>
>ruby test.rb<br/>
0<br/>
1<br/>
2
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 条件判断 unless文</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby---unless.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.316</id>

    <published>2010-09-14T07:55:10Z</published>
    <updated>2011-08-19T07:58:56Z</updated>

    <summary>unless文 Rubyのunless文は以下のように記述する。 unless ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><strong>unless文</strong></font ><br /></p>

<p>Rubyのunless文は以下のように記述する。</p>

<pre name="code" class="ruby">
unless 式1 then
  実行内容Ａ
else
  実行内容Ｄ
end
</pre>

<p>unless は if と反対で、条件式が偽の時に then 以下の式を評価します。unless 式にelsif を指定することはできない。</p>

<p>以下はサンプルである。"then"は記載しなくてもOK。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

#引数の入力チェック
if ARGV.size != 1     
    print &quot;入力エラー。&quot;  
    exit(-1)  
end  

argv = ARGV[0]  

unless argv.to_i  == 1  
  puts &quot;1以外が入力されました。&quot;  
else  
  puts &quot;1が入力されました。&quot;  
end  
</pre>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 条件判断 if文</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-tips---ifunless--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.222</id>

    <published>2010-09-14T01:14:40Z</published>
    <updated>2011-08-19T08:00:03Z</updated>

    <summary>if文 Rubyのif文は以下のように記述する。 if 式1 then   実行...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><b>if文</b></font ><br /></p>

<p>Rubyのif文は以下のように記述する。</p>

<pre name="code" class="ruby">
if 式1 then
  実行内容Ａ
elsif 式1then
  実行内容Ｂ
elsif  式1 then
  実行内容Ｃ
else
  実行内容Ｄ
end
</pre>

<p>以下はサンプルである。"then"は記載しなくてもOK。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

#引数の入力チェック
if ARGV.size != 1     
    print &quot;入力エラー。&quot;  
    exit(-1)  
end  

argv = ARGV[0]  

if argv.to_i  == 1  
  puts &quot;1が入力されました。&quot;  
elsif argv.to_i  == 2  
  puts &quot;2が入力されました。&quot;  
elsif argv.to_i  == 3  
  puts &quot;3が入力されました。&quot;  
else  
  puts &quot;1~3以外が入力されました。&quot;  
end  

</pre>

<p><br></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby 入門 - 条件判断 case～when文</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-tips---casewhen--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.221</id>

    <published>2010-09-07T07:11:37Z</published>
    <updated>2011-10-05T03:13:21Z</updated>

    <summary>Rubyのcase～when文は以下のように記述する。 case 対象オブジェク...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="ruby" label="Ruby" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Rubyのcase～when文は以下のように記述する。</p>

<pre name="code" class="ruby">
case 対象オブジェクト
when 値1 then
  実行内容Ａ
when 値2 then
  実行内容Ｂ
when 値3 then
  実行内容Ｃ
else
  実行内容Ｄ
end
</pre>

<p>以下はサンプルである。"then"は記載しなくてもOK。</p>

<pre name="code" class="ruby">
#!/usr/bin/ruby

#引数の入力チェック
if ARGV.size != 1   
    print &quot;入力エラー。&quot;
    exit(-1)
end

argv = ARGV[0]

case argv.to_i
when 1
    puts &quot;1が入力されました。&quot;
when 2
    puts &quot;2が入力されました。&quot;
when 3
    puts &quot;3が入力されました。&quot;
else
    puts &quot;1～3以外が入力されました。&quot;
end
</pre>

<p>実行してみる。</p>


<blockquote>
C:\workspace>ruby test.rb<br>
入力エラー。<br><br>
C:\workspace>ruby test.rb 1<br>
1が入力されました。<br><br>

C:\workspace>ruby test.rb 2<br>
2が入力されました。<br><br>

C:\workspace>ruby test.rb 3<br>
3が入力されました。<br><br>

C:\workspace>ruby test.rb 4<br>
1～3以外が入力されました。

</blockquote>

<p>条件が範囲の場合は以下のように記載</p>

<pre name="code" class="ruby">
case argv.to_i
when 1..3
    puts &quot;1～3が入力されました。&quot;
else
    puts &quot;1～3以外が入力されました。&quot;
end
</pre>

<p>以下の記載は上記と同じ結果である。</p>

<pre name="code" class="ruby">
case argv.to_i
when 1, 2, 3
    puts &quot;1～3が入力されました。&quot;
else
    puts &quot;1～3以外が入力されました。&quot;
end
</pre>

<p>when 節の最後の式に `*' を前置すればその式は配列展開される。<br>
以下の記載も上記と等価である。
</p>

<pre name="code" class="ruby">
ary= [1,2,3]

case argv.to_i
when *ary
    puts &quot;1～3が入力されました。&quot;
else
    puts &quot;1～3以外が入力されました。&quot;
end
</pre>
]]>
        

    </content>
</entry>

<entry>
    <title>Ruby on Rails - 500 internal server error | undefined method `rewind&apos; </title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/ruby-on-rails-tips---500-internal-server-error-undefined-method-rewind--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.220</id>

    <published>2010-09-07T06:01:53Z</published>
    <updated>2011-10-05T03:11:51Z</updated>

    <summary>Railsのバージョン更新後に起動し、アクセスすると以下エラーが発生。 500 ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="rubyonrails" label="Ruby on Rails" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>Railsのバージョン更新後に起動し、アクセスすると以下エラーが発生。</p>

<blockquote>
500 internal server error | undefined method `rewind'
</blockquote>

<p>Railsだけ更新すると、他のバージョンと合わず動かなくなることはよくある。</p>

<p>調査してみると、Passengerのバージョンが古いことが原因だった。</p>

<p>とりあえず、Passengerを最新にしてみる。</p>

<blockquote>
# gem install passenger<br>
# passenger-install-apache2-module 
</blockquote>

<p>正常に動作した。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Apache - 起動エラー　Address already in use: make_sock: could not bind to address [::]:80</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/apache---address-already-in-use-make-sock-could-not-bind-to-address-80--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.219</id>

    <published>2010-09-06T03:55:38Z</published>
    <updated>2011-10-05T03:13:11Z</updated>

    <summary>サーバが急に電源が落ち、再起動を行ったが、apacheが起動せず、以下エラーが発...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="apache" label="Apache" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p>サーバが急に電源が落ち、再起動を行ったが、apacheが起動せず、以下エラーが発生。</p>

<blockquote>
Address already in use: make_sock: could not bind to address [::]:80
</blockquote>

<p>すでにポート80番が使用されていた。apacheが正常終了されていなかったためである。</p>

<p>一度プロセスを停止する。まず、以下のように確認。</p>

<blockquote>
/usr/sbin/lsof -i | grep http<br/><br/>

httpd     1837 apache    3u  IPv6   7113       TCP *:http (LISTEN)<br/>
httpd     1837 apache    5u  IPv6   7118       TCP *:https (LISTEN)
</blockquote>

<p>以下のようにプロセスを停止する。</p>

<blockquote>
kill 1837
</blockquote>

<p>これでapacheを起動したところ、正常に動作した。</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Android 入門 - HelloWorldを表示させる</title>
    <link rel="alternate" type="text/html" href="http://labs.agenda-style.jp/blog/2010/09/android-tips---helloworld--.html" />
    <id>tag:labs.agenda-style.jp,2010:/blog//3.218</id>

    <published>2010-09-03T00:20:18Z</published>
    <updated>2011-10-05T03:12:56Z</updated>

    <summary>新規プロジェクトを作成 １．Eclipseを起動し、[ファイル] - [新規] ...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://labs.agenda-style.jp/blog/">
        <![CDATA[<p><font size='5' ><b>新規プロジェクトを作成</b></font ><br /></p>

<p>１．Eclipseを起動し、[ファイル] - [新規] - [プロジェクト] を選択する。[Android プロジェクト]を選択して、[次へ]ボタンクリックする。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000079-273.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000079-273.html','popup','width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000079-thumb-550x550-273.jpg" width="550" height="550" alt="WS000079.JPG" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span>

<p>２．以下の画像のように入力を行い、[完了]をクリックする。</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000080-276.html" onclick="window.open('http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000080-276.html','popup','width=500,height=654,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://labs.agenda-style.jp/blog/assets_c/2010/09/WS000080-thumb-550x719-276.jpg" width="550" height="719" alt="WS000080.JPG" class
