<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>システム開発のアイロベックス　フィード</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/" />
    <link rel="self" type="application/atom+xml" href="http://www.ilovex.co.jp/atom.xml" />
    <id>tag:www.ilovex.co.jp,2010-02-08://89</id>
    <updated>2010-09-02T01:57:41Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Enterprise 4.27-ja</generator>


<entry>
    <title>MySQLでテーブルの修復を行う</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/blog/system/industrysystem/mysqlde.html" />
    <id>tag:www.ilovex.co.jp,2010:/blog/system//76.2828</id>

    <published>2010-09-02T01:56:00Z</published>
    <updated>2010-09-02T01:57:41Z</updated>

    <summary>Access2007よりMySQLのデータベースを参照していたところ、 以下のエラーメッセージが表示されました。 「このフォームまたはレポートで指定されているレコードソース&apos;クエリ名&apos;が存在しません。」 エラーの示す通りクエリ自体が存在しない、 または名前がフォームで指定しているものと違っているのではないかと確認しましたが、 クエリはAccess内に存在していましたし、名前も一致していました。 よ...</summary>
    <author>
        <name>小口</name>
        
    </author>
    
        <category term="030_産業システム部" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.ilovex.co.jp/blog/system/">
        <![CDATA[<p>Access2007よりMySQLのデータベースを参照していたところ、<br />
以下のエラーメッセージが表示されました。</p>

<p>「このフォームまたはレポートで指定されているレコードソース'クエリ名'が存在しません。」</p>

<p>エラーの示す通りクエリ自体が存在しない、<br />
または名前がフォームで指定しているものと違っているのではないかと確認しましたが、<br />
クエリはAccess内に存在していましたし、名前も一致していました。</p>

<p>よく確認してみると、クエリ内で使用しているテーブルの1つが壊れているのが原因でした。<br />
そこでMySQLの以下のコマンドを使用してテーブルのチェックと修復を行いました。</p>

<p>●テーブルのチェック</p>

<p>CHECK TABLE [テーブル名];</p>

<p>テーブルが正常な場合は以下のように表示されます。</p>

<p>-------ここから-------</p>

<pre class="code" name="xml">
+---------------------------+-------+----------+----------+
| Table                     | Op    | Msg_type | Msg_text |
+---------------------------+-------+----------+----------+
| DatabaseName.TableName    | check | status   | OK       |
+---------------------------+-------+----------+----------+
1 row in set (0.05 sec)
</pre>

<p>-------ここまで-------</p>

<p>上記項目は以下のようになっています。</p>

<p>Table...チェックしたデータベース名とテーブル名<br />
Op...常に'check'<br />
Msg_type...現在の状態<br />
Msg_text...説明文</p>

<p>上記以外の表示がされた場合はテーブルが壊れている可能性があるので、<br />
修復が必要になります。</p>

<p>●テーブルの修復</p>

<p>REPAIR TABLE [テーブル名];</p>

<p>修復を行った後にもう一度テーブルのチェックを行います。<br />
以下のように表示されればテーブルの修復成功です。</p>

<p>-------ここから-------</p>

<pre class="code" name="xml">
+---------------------------+-------+----------+----------+
| Table                     | Op    | Msg_type | Msg_text |
+---------------------------+-------+----------+----------+
| DatabaseName.TableName    | repair| status   | OK       |
+---------------------------+-------+----------+----------+
1 row in set (0.05 sec)
</pre>

<p>-------ここまで-------</p>

<p><注意><br />
テーブルの修復を行う際は、失敗したときに備えて<br />
バックアップをとるなどの対応が必要です。</p>]]>
        
    </content>
</entry>

<entry>
    <title>Google Mapを画像にして貼りつけられるAPI</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/blog/system/webconsulting/google-mapapi.html" />
    <id>tag:www.ilovex.co.jp,2010:/blog/system//76.2939</id>

    <published>2010-09-01T12:19:55Z</published>
    <updated>2010-09-01T12:44:25Z</updated>

    <summary>Google Mapを画像としてホームページに埋め込む方法です。 一般的に使われているiframeで表示する方法※1では、 ひとつのページに複数のMapを貼りつけたときにページの読み込みが遅くなってしまいます。 たとえMapひとつだけだとしても、わずかな表示のタイムラグが気になる方もいるでしょう。 そういった場合にこのAPIが活躍します。 APIの詳細は、Google code「Static Ma...</summary>
    <author>
        <name>黒木</name>
        
    </author>
    
        <category term="051_Webコンサルティング部" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Google Apps" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="api" label="API" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="google" label="google" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="googleapps" label="Google Apps" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="googlemaps" label="Google Maps" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.ilovex.co.jp/blog/system/">
        <![CDATA[<p><b>Google Mapを画像としてホームページに埋め込む方法です。</b></p>

<p>一般的に使われている<a href="#iframe">iframeで表示する方法※1</a>では、<br />
ひとつのページに複数のMapを貼りつけたときにページの読み込みが遅くなってしまいます。<br />
たとえMapひとつだけだとしても、わずかな表示のタイムラグが気になる方もいるでしょう。</p>

<p>そういった場合にこのAPIが活躍します。<br />
APIの詳細は、<a href="http://code.google.com/intl/ja-JP/apis/maps/documentation/staticmaps/" target="_blank">Google code「Static Maps API デベロッパー ガイド」</a>をご覧いただければ良いですが、手っ取り早く作るには次のページをご利用ください。</p>

<p>「Google Static Maps ウィザード」<br />
<a href="http://ajax.appspot.com/gmaps-samples/simplewizard/makestaticmap.html" target="_blank">http://ajax.appspot.com/gmaps-samples/simplewizard/makestaticmap.html</a></p>

<p>ソースのkey&#61;の後ろには、<a href="http://code.google.com/intl/ja-JP/apis/maps/signup.html" target="_blank">APIキー</a>を入れます。<br />
APIキーはGoogleアカウントでログインした状態で、ホームページのURLを入力すれば取得できます。</p>

<p>ソースはimgタグで記述します。→&#60;img src&#61;&#34;生成されたURL&#34; &#47;&#62;<br />
imgタグなのでaltも入れられます。</p>

<p><b>＜完成サンプル＞</b><br />
<img src="http://maps.google.com/staticmap?center=35.691391,139.703543&markers=35.693154,139.705824,red&path=rgba:0x0000FF80,weight:5|35.69315,139.70582|&zoom=16&size=350x300&key=ABQIAAAA12H8DhPaMNuk4Pk-e3YZYBSAEgcGe_nXJSe8MzFvpwsyVG3smRSjgCBhjTKipS2QhDBbbCfcRJYUrg" alt="株式会社アイロベックス" /><br />
<a href="http://maps.google.co.jp/maps?f=q&source=s_q&hl=ja&geocode=&q=%E3%82%A2%E3%82%A4%E3%83%AD%E3%83%99%E3%83%83%E3%82%AF%E3%82%B9&sll=35.691417,139.704841&sspn=0.00569,0.009806&brcurrent=3,0x60188cdc1d00b42d:0x2b06aa45928dbab5,0&ie=UTF8&hq=%E3%82%A2%E3%82%A4%E3%83%AD%E3%83%99%E3%83%83%E3%82%AF%E3%82%B9&hnear=&ll=35.693151,139.706333&spn=0.010944,0.019612&z=16&iwloc=A" target="_blank">地図をGoogle Mapで見る</a></p>

<p></p>

<p>【ご注意】<br />
<a href="http://code.google.com/intl/ja-JP/apis/maps/documentation/staticmaps/" target="_blank">Google code「Static Maps API デベロッパー ガイド」</a>にも同じようにリンクURLを作成してくれるページを紹介していますが、そこで作成すると画像が表示できませんでした。<br />
これは赤字の部分が原因でした。</p>

<p>誤）http://maps.google.com/<span style="color:red;">maps/api/</span>staticmap&#38;center=.....<br />
正）http://maps.google.com/staticmap&#38;center=.....</p>

<p><br />
また、Mapのキャプチャを撮影して使用すると著作権侵害になりますが、Google Mapの規約では、APIから取得した情報をそのまま使用する場合は問題ないそうです。（Googleへ確認済み）</p>

<p></p>

<p><a name="iframe"></a>※1　iframeで貼り付ける方法</p>

<p>Google Mapの画面右上の「リンク」ボタンからHTMLソースを取得します。<br />
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.ilovex.co.jp/blog/system/assets_c/2010/09/googlemaps-341.html" onclick="window.open('http://www.ilovex.co.jp/blog/system/assets_c/2010/09/googlemaps-341.html','popup','width=1297,height=720,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.ilovex.co.jp/blog/system/assets_c/2010/09/googlemaps-thumb-300x166-341.jpg" width="300" height="166" alt="googleMaps" class="mt-image-none" style="" /><br />※クリックすると拡大します</a></span><br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>ADO接続文字列で、PROVIDER=SQLNCLIを使用する</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/blog/system/softwaredevelopment/adoprovidersqlncli.html" />
    <id>tag:www.ilovex.co.jp,2010:/blog/system//76.2938</id>

    <published>2010-09-01T02:45:44Z</published>
    <updated>2010-09-01T02:48:08Z</updated>

    <summary>ASP(VBScript)のWebシステムで、SQLServer2005に接続するシステムを開発しました。 DBはミラーリングされるので、接続文字列を以下のように設定しました。 &quot;PROVIDER=SQLNCLI;USER ID=[ID];PASSWORD=[Password];INITIAL CATALOG=[DB];Server=[サーバ]Failover Partner=[フェイルオーバーサ...</summary>
    <author>
        <name>松本</name>
        
    </author>
    
        <category term="040_ソフトウエア開発部" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.ilovex.co.jp/blog/system/">
        <![CDATA[<p>ASP(VBScript)のWebシステムで、SQLServer2005に接続するシステムを開発しました。</p>

<p>DBはミラーリングされるので、接続文字列を以下のように設定しました。</p>

<p><br />
"PROVIDER=SQLNCLI;USER ID=[ID];PASSWORD=[Password];INITIAL CATALOG=[DB];Server=[サーバ]Failover Partner=[フェイルオーバーサーバ]"</p>

<p><br />
「PROVIDER=SQLNCLI」の「SQLNCLI」は、SQL Native Client OLE DB プロバイダのことで、<br />
SQLServer2005の新機能を使用したい場合に指定します。</p>

<p>この接続文字列で、DBにも接続出来、フェイルオーバー発生時には<br />
DBが切り替わったのですが、システム内でストアドを実行する処理で、<br />
エラーが発生してしまいました。</p>

<pre name="code" class="vb">
	Set cmd = Server.CreateObject("ADODB.Command")
	Set cmd.ActiveConnection = goConn
	
	With cmd
		.CommandText = [ストアド名]
		.CommandType = adCmdStoredProc
		
		.Parameters.Refresh
		.Parameters("@Param") = Param
		
		.Execute ln, , adExecuteNoRecords		'※←エラー発生行
	End with
</pre>

<p>エラー内容：<br />
　　ADODB.Command (0x800A0E7C)<br />
　　Parameter オブジェクトが適切に定義されていません。<br />
　　矛盾した、または不完全な情報が提供されました。</p>

<p><br />
これを解決するには、上記の接続文字列に、<br />
「DataTypeCompatibility=80」を追加する必要があります。</p>

<p><br />
"PROVIDER=SQLNCLI;USER ID=[ID];PASSWORD=[Password];INITIAL CATALOG=[DB];Server=[サーバ]Failover Partner=[フェイルオーバーサーバ];DataTypeCompatibility=80"</p>

<p><br />
「DataTypeCompatibility」は、使用するデータ型処理モードを指定し、<br />
プロバイダ データ型の "0" または、SQL Server 2000 データ型の "80" を指定できるようです。</p>

<p>MSDNによると、</p>

<p>　　SQL Native Client を使用できるようにするには、<br />
　　ADO アプリケーションで、接続文字列に次のキーワードを実装する必要があります。</p>

<p>ということなので、「PROVIDER=SQLNCLI」を指定する場合は、<br />
「DataTypeCompatibility=80」をセットにして記述する必要があるようです。</p>

<p>詳しくは、下記のページでご確認ください。</p>

<p>＜参考＞<br />
SQL Native Client と ADO の併用<br />
<a href="http://technet.microsoft.com/ja-jp/library/ms130978(SQL.90).aspx">http://technet.microsoft.com/ja-jp/library/ms130978(SQL.90).aspx</a></p>

<p>SQL Native Client での接続文字列キーワードの使用<br />
<a href="http://technet.microsoft.com/ja-jp/library/ms130978(SQL.90).aspx">http://technet.microsoft.com/ja-jp/library/ms130822(v=SQL.90).aspx</a><br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>タスクスケジューラを設定する時の注意点</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/blog/system/distributionsystem/post-36.html" />
    <id>tag:www.ilovex.co.jp,2010:/blog/system//76.2933</id>

    <published>2010-08-31T12:49:50Z</published>
    <updated>2010-08-31T12:50:27Z</updated>

    <summary>みなさん、こんにちは。 流通システム部の赤羽です。 Windows Vista 以降、タスクスケジューラの設定画面が大きく変化しました。 先日、タスクスケジューラを使用してバッチプログラムを実行するときに、 悩んだことがありましたので、そのことについてお話いたします。 Windows Vista 以降のタスクスケジューラでプログラムを動作させる場合、 注意しなければならないことがあります。 それは...</summary>
    <author>
        <name>赤羽</name>
        
    </author>
    
        <category term="020_流通システム部" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Windows" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="windows" label="Windows" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="タスクスケジューラ" label="タスクスケジューラ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.ilovex.co.jp/blog/system/">
        <![CDATA[<p>みなさん、こんにちは。<br />
流通システム部の赤羽です。</p>

<p>Windows Vista 以降、タスクスケジューラの設定画面が大きく変化しました。<br />
先日、タスクスケジューラを使用してバッチプログラムを実行するときに、<br />
悩んだことがありましたので、そのことについてお話いたします。</p>

<p>Windows Vista 以降のタスクスケジューラでプログラムを動作させる場合、<br />
注意しなければならないことがあります。<br />
それは「作業フォルダ」の設定です。</p>

<p>動作させるプログラムが、別のファイルを参照する場合<br />
(例えば同じ階層にあるEXEファイルを実行し、その結果を基に動作するプログラム等)、<br />
作業フォルダの設定を行わないと、参照先のファイルが見つけられず、<br />
エラーが発生してしまいます。</p>

<p>作業フォルダの設定は、タスクスケジューラの編集画面の「操作」タブから<br />
実行したいプログラムを選択する画面の、「開始」のテキストボックスに入力します。<br />
(下図参照)</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="task.jpg" src="http://www.ilovex.co.jp/blog/system/img/task.jpg" width="458" height="493" class="mt-image-none" style="" /></span></p>

<p>まさか「開始」が作業フォルダの設定だとは思わず、随分悩みました。<br />
皆さんもタスクスケジューラの設定を行うときには、注意してみてください。</p>]]>
        
    </content>
</entry>

<entry>
    <title>いまさら気付いたこんなExcelショートカットキー</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/blog/system/webconsulting/excel-shortcut.html" />
    <id>tag:www.ilovex.co.jp,2010:/blog/system//76.2935</id>

    <published>2010-08-31T03:45:00Z</published>
    <updated>2010-08-31T06:05:00Z</updated>

    <summary>皆さん、こんにちは。 実は私、恥ずかしながら社会人になるまで、 ショートカットキーをほとんど使ったことがありませんでした。 全く気にせずExcelやWordを使っていましたが、 ある表のデータを日々更新するような作業で、やたらと時間がかかるなと思ったのです。 そこで今回は、もっと早く知っておけばよかったと感じた ショートカットキーを紹介します。 1.「F2」 セル内を編集する場合に使います。 入力...</summary>
    <author>
        <name>浅沼</name>
        
    </author>
    
        <category term="051_Webコンサルティング部" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="excel" label="Excel" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ショートカットキー" label="ショートカットキー" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.ilovex.co.jp/blog/system/">
        <![CDATA[<p>皆さん、こんにちは。<br />
実は私、恥ずかしながら社会人になるまで、<br />
ショートカットキーをほとんど使ったことがありませんでした。</p>

<p>全く気にせずExcelやWordを使っていましたが、<br />
ある表のデータを日々更新するような作業で、やたらと時間がかかるなと思ったのです。</p>

<p>そこで今回は、もっと早く知っておけばよかったと感じた<br />
ショートカットキーを紹介します。</p>

<p>1.「F2」<br />
セル内を編集する場合に使います。<br />
入力済みのセルに追加入力を行いたい場合、マウスでダブルクリックせずに、<br />
F2だけでセル内を編集出来ます。<br />
これを知っていればExcelでの編集がかなり楽になると思います。</p>

<p>2.「Ctrl + 1」<br />
「セルの書式設定」のダイアログを呼び出せます。<br />
やはりExcelを使っていると、セルに罫線や色をつけることが多いと思います。<br />
マウスで右クリックしなくても一発でダイアログを呼べるので便利です。</p>

<p>3.「Ctrl + +」、「Ctrl + - 」<br />
セルを追加（+）、削除（-）することが出来ます。<br />
押した後にどちら側にシフトするかも表示されますので、<br />
マウスで右クリックした時と同じように使えます。</p>

<p>今回紹介したショートカットを使うようになってから、<br />
Excelの使用中にマウスを触る時間が半分くらいに減りました。</p>

<p>作業時間もマウスをあちこち動かすより短くなったので、<br />
使ったことのなかった方はぜひお試しください。</p>]]>
        
    </content>
</entry>

<entry>
    <title>MTコンテスト2010　9/9まで応募受付中</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/blog/system/webconsulting/mtcontest2010.html" />
    <id>tag:www.ilovex.co.jp,2010:/blog/system//76.2936</id>

    <published>2010-08-30T23:06:23Z</published>
    <updated>2010-08-30T23:17:01Z</updated>

    <summary>Movable Typeで作成されたサイトのコンテスト「Movable Type コンテスト 2010」が現在開催中です。 弊社がアスキー賞を受賞した2007年以来3年ぶりの開催となる今年は、多くのエントリーが集まっているようです。 今年はスポンサーとして弊社も参加させていただいています。 Movable Typeで構築されたサイトならどのサイトでも応募資格があります。 エントリーの締め切りもあと...</summary>
    <author>
        <name>黒木</name>
        
    </author>
    
        <category term="051_Webコンサルティング部" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Movable Type" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="movabletype" label="MovableType" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mt3" label="MT3" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mt4" label="MT4" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mt5" label="MT5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="コンテスト" label="コンテスト" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.ilovex.co.jp/blog/system/">
        <![CDATA[<p>Movable Typeで作成されたサイトのコンテスト「Movable Type コンテスト 2010」が現在開催中です。</p>

<p>弊社が<a href="http://www.ilovex.co.jp/info/event/2008/05/post_13.html" target="_blank">アスキー賞を受賞</a>した2007年以来3年ぶりの開催となる今年は、多くのエントリーが集まっているようです。<br />
今年はスポンサーとして弊社も参加させていただいています。</p>

<p>Movable Typeで構築されたサイトならどのサイトでも応募資格があります。<br />
エントリーの締め切りもあとわずかですのでお早めにご応募ください。</p>

<p><br />
■<a href="http://www.mtcontest.jp/" target="_blank">Movable Typeコンテスト 2010</a><br />
<div style="border:solid 1px #CCCCCC; width:400px;"><a href="http://www.mtcontest.jp/" target="_blank"><img alt="Movable Type コンテスト2010" src="http://www.ilovex.co.jp/blog/system/2010/08/31/img/mtcontest2010.jpg" width="400" height="268" class="mt-image-none" /></a></div></p>

<p>【エントリー受付】・・・2010年6月9日（水）～2010年9月9日（木）<br />
【応募方法】・・・・・・専用応募フォームより登録（オンラインのみ）<br />
【結果発表】・・・・・・2010年10月下旬に受賞者にメールにて通知、また公式サイトで発表</p>]]>
        
    </content>
</entry>

<entry>
    <title>保守にやさしいコメントを書く</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/info/ilo_week/2010/08/post-243.html" />
    <id>tag:www.ilovex.co.jp,2010:/info/ilo_week//88.2934</id>

    <published>2010-08-30T03:00:00Z</published>
    <updated>2010-08-30T07:39:36Z</updated>

    <summary>プログラミングを行ううえで、プログラムソースにコメントを 記載するのは当たり前だ...</summary>
    <author>
        <name>アイロベックス</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.ilovex.co.jp/info/ilo_week/">
        <![CDATA[<p>プログラミングを行ううえで、プログラムソースにコメントを<br />
記載するのは当たり前だと思います。<br />
先日、過去のソースコードを見る機会があり、<br />
なるほどと思うことがあったのでご紹介したいと思います。</p>

<p>１）使用している技術についての解説、リファレンスマニュアルへのURL等が記載してあった。<br />
　 またそれを使用している理由等についてもコメントで述べられていた。<br />
　<br />
 　 本来であれば、このようなことはドキュメントに記すべきだと思いますが、<br />
 　 ドキュメントが一切ない場合には、まずソースコードを見ることになります。<br />
　<br />
　 開発当初は、開発初期メンバーが絡んでいることが多く、<br />
　 採用した技術を選定したメンバーがいるため、なぜそれが使われているのか？<br />
 　 なぜ他のものを採用しなかったか？<br />
 　 などその人に聞かなければわからないことが多々あります。<br />
　<br />
　 後で保守する身になって考え付く理由は、<br />
 　 「きっとそれが最適だと思ったんだろう」ぐらいしかわかりません。</p>

<p>　 実は、バージョンの組み合わせ、他のミドルウェアとの組み合わせにより<br />
　 問題があったため、いろいろ検証した結果、現在使用しているものだけが<br />
　 最終候補として残ったのかもしれません。<br />
　 そのようなことが、後から保守する担当者が想像しうるでしょうか？</p>

<p>２）ロジックの理由、特別な書き方をしている理由が述べられていた。</p>

<p>　 ソースコードの書き方が、わざと無駄なことをしているように見受けられる場合でも、<br />
　 実は重要な処理、何か問題を回避するための施策を行っていることがあります。<br />
　 それなのに、保守・改善等を求められた際、「ここが無駄な処理しているな～」<br />
　 という安易な考えで、無駄な処理を取ってしまったばかりに、<br />
 　 後々大問題になるといったことがあります。<br />
　<br />
 　 これらを回避するためには、なぜそのような書き方をしているのかの、<br />
 　 理由（言い訳）を書いておくと後で、他の人がソースコードを見た際に、<br />
 　 「○○の問題があるから、仕方なくそうなっているんだな」と納得することができ、<br />
 　 安易に手を加えて大問題ということが避けられます。<br />
　</p>

<p>逆に保守にやさしくないコメントをひとつだけ紹介します。<br />
開発者の方であれば、間違いなく納得してくれると思いますが、<br />
ウソが書いてあるコメントが本当に困ります。<br />
コメントがウソなのか、コメントのとおりに実装しようとしたが<br />
記述ミス、プログラムミスによりバグが混じっているのか、まったく見分けがつきません。</p>

<p>コメントには何をしているかと書くことも重要ですが、<br />
なぜそうなっているのかを書いてくれたほうが開発者にとっては助かります。<br />
何をしているかは、ソースコードを読める開発者であれば（普通読めますよね）<br />
見ればわかることですから、書いてくれれば助かりますが、<br />
ないことが致命的なことを招くわけではありません。</p>

<p><br />
ちなみに弊社では、コメントを書くルールがコーディング規約で決まっており、<br />
ソースチェックなども行っているので、コメントなしのプログラム等はありませんので<br />
ご安心ください。<br />
　</p>]]>
        
    </content>
</entry>

<entry>
    <title>PEAR::HTTP_Requestのmulti-partについて</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/blog/system/projectandsystemdevelopment/pearhttp-requestmulti-part.html" />
    <id>tag:www.ilovex.co.jp,2010:/blog/system//76.2931</id>

    <published>2010-08-27T05:00:00Z</published>
    <updated>2010-08-27T04:53:38Z</updated>

    <summary>先日、PEAR::HTTP_Requestを用いてリクエストを投げるプログラムを実装したのですが、 Content-Typeをmulti-part/form-data設定した場合に、いろいろとはまったことを書きます。 まずは、リクエストを投げるため、以下のように実装しました。 // HTTP_Requestの初期化 $request = new HTTP_Request(&quot;リクエストを投げるURL...</summary>
    <author>
        <name>中村（次）</name>
        
    </author>
    
        <category term="060_企画開発部" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.ilovex.co.jp/blog/system/">
        <![CDATA[<p>先日、PEAR::HTTP_Requestを用いてリクエストを投げるプログラムを実装したのですが、<br />
Content-Typeをmulti-part/form-data設定した場合に、いろいろとはまったことを書きます。</p>

<p>まずは、リクエストを投げるため、以下のように実装しました。</p>

<p>// HTTP_Requestの初期化<br />
$request = new HTTP_Request("リクエストを投げるURL");</p>

<p>// HTTPのヘッダー設定<br />
$request->setMethod(HTTP_REQUEST_METHOD_POST);<br />
$request->addHeader("Content-Type", "multi-part/form-data");</p>

<p>// リクエスト送信<br />
$result = $request->sendRequest();</p>

<p><br />
ひとまず、上記でリクエストを投げることが出来ますが、<br />
これだけだと、Content-Type:multi-part/form-dataになりません。<br />
「Content-Type:multi-part/form-data」と指定しているのにもかかわらず、<br />
multi-part形式で送られないのです。</p>

<p><br />
なぜかというと、Request.phpの969行目のコメントにこのような記述があります。</p>

<p>「multipart request, probably with file uploads」<br />
「multipartのリクエストならば"たぶん"ファイルがあるであろう」というもの。</p>

<p>試しにファイルを添付したところ、multi-partで送られました。<br />
$request->addFile("key", "ファイルパス");</p>

<p>ファイルが無ければ、Content-Typeを指定していても、<br />
multi-part形式にはならないのです。</p>

<p>今回実装したプログラムは、ファイルが無くても、<br />
multi-partで送る必要がありましたので、<br />
ファイルを添付することで対応しました。<br />
※ファイルを添付していても影響がないことがわかっていたので、そのように対応しました。</p>

<p>ちなみに、ファイルを添付したとしても、<br />
そのファイルが空の場合は、multi-partにならないので、ご注意を！<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>VMware ESXi4上のSolaris10環境でVMware Toolsをインストールする</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/blog/system/industrysystem/vmware-esxi4solaris10vmware-tools.html" />
    <id>tag:www.ilovex.co.jp,2010:/blog/system//76.2928</id>

    <published>2010-08-26T04:11:06Z</published>
    <updated>2010-08-26T04:11:46Z</updated>

    <summary>みなさん、こんにちは。 VMware Toolsをインストールするときは、解凍したファイルにあるvmware-install.plを実行することでインストールできますが、ESXi4上にSolaris10では途中で下記のエラーが発生する場合があります。 bash-3.00# ./vmware-install.pl Installing VMware Tools. （省略） Starting VMwa...</summary>
    <author>
        <name>山岡</name>
        
    </author>
    
        <category term="030_産業システム部" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.ilovex.co.jp/blog/system/">
        <![CDATA[みなさん、こんにちは。<br/>
<br/>
VMware Toolsをインストールするときは、解凍したファイルにあるvmware-install.plを実行することでインストールできますが、ESXi4上にSolaris10では途中で下記のエラーが発生する場合があります。<br/>
<br/>
<pre name="code" class="ruby" style="color:black;">
bash-3.00# ./vmware-install.pl
Installing VMware Tools.

（省略）

Starting VMware Tools services in the virtual machine:
   Switching to guest configuration:         done
   Guest memory manager:                     done
   Guest operating system daemon:            failed
Unable to start services for VMware Tools

Execution aborted.
</pre>
<br/>
<br/>
この場合は、以下のようにLANG=Cを最初に実行しておくことでエラーを回避することができます。<br/>
<br/>
<pre name="code" class="ruby" style="color:black;">
bash-3.00# LANG=C 
bash-3.00# ./vmware-install.pl
Installing VMware Tools.

（中略）

Starting VMware Tools services in the virtual machine:
   Switching to guest configuration:     done
   Guest memory manager:                 done
   Guest operating system daemon:        done

The configuration of VMware Tools 4.0.0 build-171294 for Solaris for this
running kernel completed successfully.

（中略）

Enjoy,

--the VMware team
</pre>
<br/>
<br/>
どうやら日本語環境ではエンコードに関する問題にひっかかってエラーになってしまうようです。<br/>
なので、LANG=C でロケールを英語モードにしてインストールするという意味になります。<br/>
]]>
        
    </content>
</entry>

<entry>
    <title>IISのデータ量制限</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/blog/system/softwaredevelopment/iis.html" />
    <id>tag:www.ilovex.co.jp,2010:/blog/system//76.2932</id>

    <published>2010-08-25T11:27:08Z</published>
    <updated>2010-08-25T11:37:15Z</updated>

    <summary>IISには、POSTする際のデータ量、 また、aspでページを描画する際のデータバッファ量に制限がかかっています。 POSTする際のデータ量というのは、 アップロードするファイルだけではなく、 input type=&quot;text&quot;等で入力された文字列のバイトデータ量も含まれます。 そうそうあることではないですが、 動的に件数を変更可能な明細登録画面などでは、 TEXT等のコントロールが数百～数千件に...</summary>
    <author>
        <name>牧野</name>
        
    </author>
    
        <category term="040_ソフトウエア開発部" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.ilovex.co.jp/blog/system/">
        <![CDATA[<p>IISには、POSTする際のデータ量、<br />
また、aspでページを描画する際のデータバッファ量に制限がかかっています。</p>

<p>POSTする際のデータ量というのは、<br />
アップロードするファイルだけではなく、<br />
input type="text"等で入力された文字列のバイトデータ量も含まれます。</p>

<p>そうそうあることではないですが、<br />
動的に件数を変更可能な明細登録画面などでは、<br />
TEXT等のコントロールが数百～数千件になってしまうことがあります。</p>

<p>このような時、各コントロールに入力された文字が<br />
半角で約20万5000文字（200KByte）を超えると、<br />
Post処理を行った際にWebブラウザ上で<br />
エラーコード「500 Internal Server Error」が発生します。</p>

<p>「500 Internal Server Error」だけではアバウトすぎて<br />
完全にエラーを特定できないので、IISのログを確認します。<br />
（C:\WINDOWS\system32\LogFiles\W3SVC1\exyymmdd.log）※yymmddはログの日付<br />
このログに「ASP 0104」のエラーログがあれば、以下の要領で対応ができます。</p>

<p>これは、IISの「AspMaxRequestEntityAllowed」というプロパティが<br />
デフォルトで204800バイトに設定されているため、<br />
この制限を越えてデータ送信をしてしまったために発生するエラーです。</p>

<p>エラーを回避するためには、この制限値を上げる必要があります。</p>

<p>コマンドプロンプトからコマンドで設定変更も可能ですが、<br />
この場合はIISの再起動が必要となってしまうので、<br />
MetaBase.XMLを編集すると簡単に対応ができます。<br />
ただし、必ずMetaBase.XMLのバックアップを必ずとり、<br />
すぐにリカバリーできる状態で行ってください。</p>

<p>手順は以下のとおりです。<br />
1.コントロールパネル→インターネットインフォメーションサービス→ローカルコンピュータ→プロパティ<br />
2.「メタベースの直接編集を有効にする」にチェックを付ける<br />
3.C\Windows\System32\inetsev\MetaBase.XMLを開く<br />
4.AspMaxRequestEntityAllowedの値が"204800"なので、必要に応じて変更する。<br />
  ※最大値は1,073,741,824です。</p>

<p>また、このエラーに遭遇した場合、<br />
aspでページを描画する際のデータバッファ量の制限にも到達する恐れがあります。<br />
こちらは、AspBufferingLimitという設定を変更することで対応できます。</p>

<p>AspMaxRequestEntityAllowedでエラーになった場合は、<br />
AspBufferingLimitの設定も見直しておく方が後々の手間を減らせると思います。</p>

<p>Micrsoftの公式サポート情報は以下のとおりです。<br />
http://support.microsoft.com/kb/327659/ja <br />
http://support.microsoft.com/kb/925764/ja</p>]]>
        
    </content>
</entry>

<entry>
    <title>Web SQL Databaseに触れる その2</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/blog/system/distributionsystem/web-sql-database-2.html" />
    <id>tag:www.ilovex.co.jp,2010:/blog/system//76.2930</id>

    <published>2010-08-24T07:44:29Z</published>
    <updated>2010-08-24T12:11:06Z</updated>

    <summary>みなさん、こんにちは。 流通システム部の古郡です。 前回の記事でWeb SQL Databaseについて簡単に説明しました。 今回は、実際のコードを使ってもう少し詳しく説明したいと思います。 以下のコードはページのロード時などにWeb SQL Databaseに接続し、 テーブルにデータがあれば取得して画面に表示するJavaScriptのコードです。 //データベース オープン(データベースに接続...</summary>
    <author>
        <name>古郡</name>
        
    </author>
    
        <category term="020_流通システム部" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.ilovex.co.jp/blog/system/">
        <![CDATA[<p>みなさん、こんにちは。<br />
流通システム部の古郡です。</p>

<p><a href='http://www.ilovex.co.jp/blog/system/distributionsystem/web-sql-database.html'>前回の記事</a>でWeb SQL Databaseについて簡単に説明しました。<br />
今回は、実際のコードを使ってもう少し詳しく説明したいと思います。</p>

<p>以下のコードはページのロード時などにWeb SQL Databaseに接続し、<br />
テーブルにデータがあれば取得して画面に表示するJavaScriptのコードです。</p>

<pre name="code" class="JavaScript">
//データベース オープン(データベースに接続する)
var db = window.openDatabase("testDb","","testDb","1024");
// テーブルが存在しなければ作成
db.transaction(
  function(tx) {
    tx.executeSql("create table if not exists testTable (id integer primary key autoincrement, name, val)");
  }
);
// データ取得
db.transaction(
  function(tx) {
    tx.executeSql("select * from testTable", [],
      function(tx, rs) {
        // ここで画面表示初期化の処理を呼ぶ
        initTable(); // 実際のコードは省略
        if(rs.rows.length > 0){
          for(var i = 0; i < rs.rows.length; i++){
          var row = rs.rows.item(i);
           // 画面表示の処理を呼ぶ
          addTable(row.id, row.name, row.val); // 実際のコードは省略
          }
        }
      },
      function(tx, ex) {
        alert('Sql Error CallBack');
      }
    );
  },
  function(ex){
    alert('transaction Error CallBack');
  }
);
</pre>

<p>画面イメージは<a href="http://www.ilovex.co.jp/blog/system/assets_c/2010/08/snap-331.html" onclick="window.open('http://www.ilovex.co.jp/blog/system/assets_c/2010/08/snap-331.html','popup','width=523,height=373,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">こちら</a>です。</p>

<p>それでは、詳しいコードの説明に入ります。<br />
まず2行目、ここでは前回紹介したwindow.openDatabaseを使用して、<br />
データベースとの接続を行っています。<br />
今回の例では「testDb」という名前のデータベースに接続しています。<br />
このとき、データベースが存在していない場合は新しく作成されます。</p>

<pre name="code" class="js:firstline[1]">
//データベース オープン(データベースに接続する)
var db = window.openDatabase("testDb","","testDb","1024");
</pre>

<p>戻り値であるオブジェクトはこの後使うので変数に代入します。<br />
本来はこのようなグローバル変数として使用するべきではありませんが、<br />
今回は例ということなので気にしないでください。</p>

<p>4行目では接続したデータベースにテーブルが存在しているか確認し、<br />
テーブルが存在しない場合はテーブルを作成しています。<br />
ここで、前回紹介したtransactionとexecuteSqlを使います。</p>

<p>db.transaction には引数としてトランザクションオブジェクトが渡されます。<br />
このトランザクションオブジェクト(例では変数tx)のexecuteSqlメソッドを使用してSQLを実行します。</p>

<pre name="code" class="js:firstline[3]">
// テーブルが存在しなければ作成
db.transaction(
  function(tx) {
    tx.executeSql("create table if not exists testTable (id integer primary key autoincrement, name, val)");
  }
);
</pre>

<p>10行目以降の処理でテーブルに存在するデータを取得します。<br />
ここで注目すべきは13行目以降の関数です。<br />
これは、実行したSQLが成功したときの処理になります。<br />
この関数には引数として、1つ目の引数にトランザクションオブジェクト、<br />
2つ目の引数に実行結果のオブジェクトが渡されます。</p>

<pre name="code" class="js:firstline[9]">
// データ取得
db.transaction(
  function(tx) {
    tx.executeSql("select * from testTable", [],
      function(tx, rs) {
        // ここで画面表示初期化の処理を呼ぶ
        initTable(); // 実際のコードは省略
        if(rs.rows.length > 0){
          for(var i = 0; i < rs.rows.length; i++){
          var row = rs.rows.item(i);
           // 画面表示の処理を呼ぶ
          addTable(row.id, row.name, row.val); // 実際のコードは省略
          }
        }
      },
      function(tx, ex) {
        alert('Sql Error CallBack');
      }
    );
  },
  function(ex){
    alert('transaction Error CallBack');
  }
);
</pre>

<p>SELECT文の結果は実行結果オブジェクトの「rows」というオブジェクトに格納されます。<br />
「rows」は16行目のようにrows.lengthで結果の件数を取得したり、<br />
18行目のようにrows.item(index)で該当行数の行データを取得することができます。</p>

<p>rows.item(index)で取得した行データは20行目のように、<br />
「行オブジェクト.カラム名」で列データを取得することができます。<br />
<pre name="code" class="js:firstline[20]">          addTable(row.id, row.name, row.val); // 実際のコードは省略</pre></p>

<p>今回はデータベースとの接続、および選択処理を例にWeb SQL Databaseを見てきました。<br />
実際に触ってみる場合は、Google Chromeのデベロッパーツールを使用すると、<br />
テーブルにどのような値が入っているのかを簡単に確認することができるので便利かと思います。</p>

<p>Web SQL Databaseの欠点としては、作成したデータベースを削除する手段が<br />
実際に使用しているファイルを削除するしかないところでしょうか。</p>

<p>私の環境は Windows7 ですが、データベースの削除には<br />
"ユーザフォルダ\AppData\Local\Google\Chrome\User Data\Default\databases"<br />
内のファイルを削除する必要がありました。</p>

<p>前回も少し触れましたがWeb SQL Databaseは仕様凍結状態になっており、<br />
今後の発展が期待できないAPIです。<br />
ただ、デザイナの方などがSQLを学ぶ材料としては非常によくできていると思いますし、<br />
家で簡単に使えるので駆け出しのプログラマの勉強材料としても十分だと思います。</p>

<p>興味を持った方は是非とも触ってみてはいかがでしょうか？</p>]]>
        
    </content>
</entry>

<entry>
    <title>ソフトだけではなくハードにも強く</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/info/ilo_week/2010/08/post-242.html" />
    <id>tag:www.ilovex.co.jp,2010:/info/ilo_week//88.2927</id>

    <published>2010-08-23T03:00:00Z</published>
    <updated>2010-08-23T03:00:34Z</updated>

    <summary>システム開発を行ううえで、ソフトウェアに強いのは当たり前ですが、 それを動かすハ...</summary>
    <author>
        <name>アイロベックス</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.ilovex.co.jp/info/ilo_week/">
        <![CDATA[<p>システム開発を行ううえで、ソフトウェアに強いのは当たり前ですが、<br />
それを動かすハードウェアについて、どの程度知識を持っているでしょうか。</p>

<p>今回は、私がハードウェア面の知識を蓄えるために、日々行っていることを紹介します。</p>

<p><strong>（１）一日一度ニュースサイトでリリース情報を確認</strong><br />
常に最新のリリース情報を知らなければ、何も始まりません。<br />
自分が普段使わないような機器であったとしても、大手IT系ニュースサイトで<br />
発表されているリリース情報は、全て目を通しておきます。<br />
この時には流し読みで覚える必要はありません。</p>

<p><strong>（２）特に注目されている商品は発売後3日以内に試す</strong><br />
最新のパソコンや、iPad、Android携帯など、日々ハードウェアは進化しています。<br />
特に話題になっている製品はお客様が使用される事も多く、<br />
その機器向けのソフトウェア開発を依頼される可能性があります。<br />
相談をうけてから触っていては遅いので、必ず3日以内には軽く触り、<br />
今後必ずユーザが増えると考えられる物は、購入して使うようにしています。</p>

<p><strong>（３）ベンチマーク情報を集める</strong><br />
システム開発を行う上で、それを動かすサーバを導入する事があります。<br />
その際にコストとパフォーマンスを最適化するためには、<br />
今市販されている機器の性能と価格を的確に把握する必要があります。<br />
例えばCPUを選ぶ際、IntelかAMDかという選択肢がある場合に、<br />
情報を集めていればコストパフォーマンスの良いものを選べますが、<br />
情報が無いと有名だからIntelで、といった選択しか出来ません。</p>

<p>これらの事を行う上で作業を楽にしてくれる方法に、Twitterがあります。</p>

<p>現在、大手ITサイトやメーカーはこぞってTwitterのアカウントを持っています。<br />
また、メーカーの広報の方のアカウントなどで、Webに載ってない最新情報を呟くこともあります。<br />
その他にも、ハードウェアやソフトウェアの業界で有名な人のアカウントをフォローしておくと、<br />
最新機器の使用感などもいち早く知ることが出来るのでオススメです。</p>

<p>是非、これらの事を1つでも試してソフトウェアだけでなく、<br />
ハードウェアにも強い開発者を目指してはいかがでしょうか。</p>]]>
        
    </content>
</entry>

<entry>
    <title>デスクトップのアイコンを整理する『Fences（フェンス）』</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/blog/system/webconsulting/fences.html" />
    <id>tag:www.ilovex.co.jp,2010:/blog/system//76.2929</id>

    <published>2010-08-22T15:00:00Z</published>
    <updated>2010-08-23T10:37:57Z</updated>

    <summary>デスクトップのアイコンを整理する『Fences』 見た目は良くないけど、デスクトップにアイコンを並べるのはやめられない...。 そんな方にオススメの無料アプリケーション、『Fences（フェンス）』を紹介します。 http://www.stardock.com/products/fences/index.asp デスクトップの好きな場所に枠を作り、その中にショートカットやフォルダをドラッグ＆ドロッ...</summary>
    <author>
        <name>川本</name>
        
    </author>
    
        <category term="051_Webコンサルティング部" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="アプリケーション" label="アプリケーション" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="デスクトップ" label="デスクトップ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.ilovex.co.jp/blog/system/">
        <![CDATA[デスクトップのアイコンを整理する『Fences』

見た目は良くないけど、デスクトップにアイコンを並べるのはやめられない...。<br />
そんな方にオススメの無料アプリケーション、『<a href="http://www.stardock.com/products/fences/index.asp" target="_blank">Fences（フェンス）</a>』を紹介します。<br /><br />

<a href="http://www.stardock.com/products/fences/index.asp" target="_blank">http://www.stardock.com/products/fences/index.asp</a><br /><br />

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="img_01.png" src="http://www.ilovex.co.jp/blog/system/2010/08/20/img_01.png" width="500" height="375" class="mt-image-none" style="" /></span><br /><br />

デスクトップの好きな場所に枠を作り、その中にショートカットやフォルダをドラッグ＆ドロップすると、自動でアイコンを整列してくれます。<br /><br /><br />

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="img_02.png" src="http://www.ilovex.co.jp/blog/system/2010/08/20/img_02.png" width="325" height="231" class="mt-image-none" style="" /></span><br /><br />

枠に入りきらないアイコンが存在すると、スクロールバーが表示され、枠の大きさに左右されず、アイコンを収納することが出来ます。<br /><br /><br />

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="img_03.png" src="http://www.ilovex.co.jp/blog/system/2010/08/20/img_03.png" width="500" height="375" class="mt-image-none" style="" /></span><br /><br />

デスクトップ上の何もない場所をダブルクリックすると全ての枠が不可視状態になり、必要な時だけ『Fences』を表示することが出来ます。<br />
（もう一度ダブルクリックすると可視状態に戻ります）<br /><br /><br />

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="img_04.png" src="http://www.ilovex.co.jp/blog/system/2010/08/20/img_04.png" width="500" height="375" class="mt-image-none" style="" /></span><br /><br />

また、枠の色を変更することも可能です。<br />
壁紙に合わせて、見やすくカスタマイズ出来ます。<br /><br /><br />

必要なアイコンをデスクトップに、しかも見やすく配置が可能。<br />
あると無いでは作業スピードにかなりの差が出ます。<br />
デスクトップにファイルを溜め込みがちな方は、一度試してみてはいかがでしょうか。<br />
対応OSはWindows XP、Windows Vista、Windows 7です。<br />
初期設定は英語ですが、日本語にも対応しております。<br /><br /><br />

ダウンロードは以下のページから。<br />
<a href="http://www.stardock.com/products/fences/downloads.asp" target="_blank">http://www.stardock.com/products/fences/downloads.asp</a><br /><br />
]]>
        
    </content>
</entry>

<entry>
    <title>ジェネリクス（総称）の仕組み</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/blog/system/industrysystem/no.html" />
    <id>tag:www.ilovex.co.jp,2010:/blog/system//76.2903</id>

    <published>2010-08-19T04:49:00Z</published>
    <updated>2010-08-19T04:49:08Z</updated>

    <summary><![CDATA[みなさん、こんにちは。 今回は、J2SE5.0から追加された言語仕様ジェネリクス「総称」が どのようにして実現されているのか、 List及び、ArrayListを例にして説明しようと思います。 以下に、Listインタフェースのコードの一部を抜粋したものを記載します。 public interface List&lt;E&gt; extends Collection&lt;E&gt; {     p...]]></summary>
    <author>
        <name>加藤</name>
        
    </author>
    
        <category term="030_産業システム部" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="JAVA" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="javaジェネリクス総称" label="Java ジェネリクス 総称" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.ilovex.co.jp/blog/system/">
        <![CDATA[みなさん、こんにちは。<br/>
今回は、J2SE5.0から追加された言語仕様ジェネリクス「総称」が<br/>
どのようにして実現されているのか、<br/>
List及び、ArrayListを例にして説明しようと思います。<br/>
<br/>
<br/>
以下に、Listインタフェースのコードの一部を抜粋したものを記載します。
<pre name="code" class="java">
public interface List&lt;E&gt; extends Collection&lt;E&gt; {

    public boolean add(E object);

    public E get(int index);

</pre>
ListおよびCollectionの後ろに&lt;E&gt;と、従来のJava言語には無かった記法がされています。<br/>
まず、この記法について説明をします。<br/>
<br/>
&lt;&gt;で囲まれている部分を「型引数」と呼びます。<br/>
型を引数（パラメータ）として受け取る部分を表しています。<br/>
メソッドの引数に対応するものだと考えてください。<br/>

&lt;&gt;内に記載するEは変数で、「型変数」と呼びます。<br/>
型そのものが格納される変数と考えてください。<br/>
このEがadd()メソッドの引数、およびget()メソッドの返り値として使用されています。<br/>
<br/>
つまり型変数に指定された型のオブジェクトを引数として取り、<br/>
型変数に指定された型のオブジェクトを返り値として返すことを意味しています。 <br/>
<br/>
ListをString型のみを格納できるオブジェクトとして宣言したい場合、
<pre name="code" class="java">
List&lt;String&gt; list;
</pre>
と記載しますが、これは、型変数EにStringを代入していることになります。<br/>
よって、上記のListインタフェースのコードは以下のように置き換えることができます。<br/>
<pre name="code" class="java">
public interface List&lt;String&gt; extends Collection&lt;String&gt; {

    public boolean add(String object);

    public String get(int index);

</pre>
こうして見ると、List&lt;String&gt;型のオブジェクトにはString型しか追加できず、<br/>
また取り出すオブジェクトもString型に限定される仕組みがわかるかと思います。<br/>

ちなみに、Listインタフェースの実装クラスであるArrayListの場合は以下のようになります。<br/>
<pre name="code" class="java">
public class ArrayList&lt;E&gt; extends AbstractList&lt;E&gt;
             implements List&lt;E&gt;
                       , RandomAccess
                       , Cloneable
                       , Serializable {

    public boolean add(E object) {
        ・・・
    }

    public E get(int index) {
        ・・・
    }

</pre>
<br/>
ArrayListをString型のみを格納できるオブジェクトとして宣言したい場合、
<pre name="code" class="java">
List&lt;String&gt; list = new ArrayList&lt;String&gt;();
</pre>
となるので、コードを以下のように置き換えることができます。<br/>
<br/>
<pre name="code" class="java">
public class ArrayList&lt;String&gt; extends AbstractList&lt;String&gt;
             implements List&lt;String&gt;
                       , RandomAccess
                       , Cloneable
                       , Serializable {

    public boolean add(String object) {
        ・・・
    }

    public String get(int index) {
        ・・・
    }

</pre>
<br/>
以上の説明で、ジェネリクスの仕組みが大体わかっていただけたのではないかと思います。<br/>]]>
        
    </content>
</entry>

<entry>
    <title>MT3（Movable Type 3）で使えるMultiblogマルチブログ</title>
    <link rel="alternate" type="text/html" href="http://www.ilovex.co.jp/blog/system/webconsulting/mt3multiblog.html" />
    <id>tag:www.ilovex.co.jp,2010:/blog/system//76.2926</id>

    <published>2010-08-18T08:09:25Z</published>
    <updated>2010-08-18T11:24:25Z</updated>

    <summary>MT5がリリースされて久しいですが、早くにMTを導入された方は、MT3で複数のブログを構築されています。 	MT3は「if文」が使えないためある程度機能も限られてしまいますが、複数のブログをまとめてサイトのトップページをポータル的に利用することも可能です。 	※MT3の中でも細かいバージョンに分かれています。出来るだけ公開用サイトと同じバージョンでテストをすることをお勧めします。 プラグインをイン...</summary>
    <author>
        <name>橋本</name>
        
    </author>
    
        <category term="051_Webコンサルティング部" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Movable Type" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mt3" label="MT3" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="multiblog" label="multiblog" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.ilovex.co.jp/blog/system/">
        <![CDATA[<p>MT5がリリースされて久しいですが、早くにMTを導入された方は、MT3で複数のブログを構築されています。<br />
	MT3は「if文」が使えないためある程度機能も限られてしまいますが、複数のブログをまとめてサイトのトップページをポータル的に利用することも可能です。<br />
	※MT3の中でも細かいバージョンに分かれています。出来るだけ公開用サイトと同じバージョンでテストをすることをお勧めします。<br />
</p>
<p>プラグインをインストールします。<br />
	Sixapart Movable Type プラグインディレクトリ：<a href="http://www.sixapart.jp/movabletype/plugins/multiblog.html" target="_blank">MultiBlog</a><br />
	残念ながら、ここで紹介されているダウンロードサイトはNot Foundになっているので、自助努力で入手してください。</p>
<p>---------------------------------------------------</p>
<p>ブログID（1,2）のエントリーのタイトル一覧を表示します。<br />
	※ブログごとに表示する画像を変えています。</p>
<p>&lt;dl&gt;<br />
	&lt;MTMultiBlogEntries include_blogs=&quot;1,2&quot; lastn=&quot;30&quot;&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;dt&gt;&lt;img src=&quot;image/image_&lt;$MTBlogID$&gt;.gif&quot;&gt;&lt;a href=&quot;&lt;$MTEntryLink$&gt;&quot;&gt;&lt;$MTEntryDate&quot;$&gt;&lt;/a&gt;&lt;/dt&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;dd&gt;&lt;$MTEntryTitle$&gt;&lt;/dd&gt;<br />
	&lt;/MTMultiBlogEntries&gt;<br />
	&lt;/dl&gt;</p>
<p>各ブログごとのエントリーの一覧を出す場合は下記のようになります。</p>
<p>&lt;MTMultiBlog include_blogs=&quot;1,2&quot;&gt;<br />
	&lt;dl&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;MTEntries lastn=&quot;30&quot;&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;dt&gt;&lt;img src=&quot;image/image_&lt;$MTBlogID$&gt;.gif&quot;&gt;&lt;a href=&quot;&lt;$MTEntryLink$&gt;&quot;&gt;&lt;$MTEntryDate$&gt;&lt;/a&gt;&lt;/dt&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;dd&gt;&lt;$MTEntryTitle$&gt;&lt;/dd&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;/MTEntries&gt;<br />
	&lt;/dl&gt;<br />
	&lt;/MTMultiBlog&gt;</p>
<p>---------------------------------------------------</p>
<p>ブログID（3）のエントリー一覧<br />
	※特定のカテゴリーのエントリーは表示させない</p>
<p>&lt;MTMultiBlog include_blogs=&quot;3&quot;&gt;<br />
	&lt;ul&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;MTEntries category=&quot;NOT カテゴリ名&quot;&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;$MTEntryTitle$&gt;&lt;/li&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;/MTEntries&gt;<br />
	&lt;/ul&gt;<br />
	&lt;/MTMultiBlog&gt;</p>
<p>---------------------------------------------------</p>
<p>ブログID（4）のエントリー一覧<br />
	※カテゴリーごとに表示する画像を変えています。<br />
	&lt;$MTCategoryLabel$&gt;&lt;$MTCategoryDescription$&gt;は画像の名前と説明に使い分けてください。</p>
<p>&lt;MTMultiBlog include_blogs=&quot;4&quot;&gt;<br />
	&lt;ul&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;MTEntries lastn=&quot;20&quot;&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;img src=&quot;image/&lt;MTEntryCategories&gt;&lt;$MTCategoryDescription$&gt;&lt;/MTEntryCategories&gt;&quot; alt=&quot;&lt;MTEntryCategories&gt;&lt;$MTCategoryLabel$&gt;&lt;/MTEntryCategories&gt;&quot; /&gt;&lt;br /&gt;&lt;$MTEntryTitle$&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;/li&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;/MTEntries&gt;<br />
	&lt;/ul&gt;<br />
	&lt;/MTMultiBlog&gt;</p>
<p>---------------------------------------------------</p>
<p>プラグイン：MultiBlog（再構築トリガーの設定）<br />
	※少々わかりづらい場所にあります。（メインメニュー／ブログ名／設定／プラグイン）</p>
<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="再構築トリガーの設定" src="http://www.ilovex.co.jp/blog/system/2010/08/18/20100818.png" width="460" height="236" class="mt-image-none" style="" /></span></p>
<p>---------------------------------------------------</p>]]>
        
    </content>
</entry>


</feed>
