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

<channel>
	<title>日曜研究室 〜技術的な日常〜 &#187; 技術</title>
	<atom:link href="http://peta.okechan.net/blog/archives/category/tech/feed" rel="self" type="application/rss+xml" />
	<link>http://peta.okechan.net/blog</link>
	<description>技術的な観点から日常を綴ります</description>
	<lastBuildDate>Sat, 24 Jul 2010 18:32:06 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>jQueryを使って、イメージのディゾルブチェンジをする</title>
		<link>http://peta.okechan.net/blog/archives/751</link>
		<comments>http://peta.okechan.net/blog/archives/751#comments</comments>
		<pubDate>Sat, 24 Jul 2010 09:18:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://peta.okechan.net/blog/?p=751</guid>
		<description><![CDATA[久々にWordPressをアップグレードして、プラグインやらテーマやらも更新しました。スッキリ。 でも派手なテーマを使ってもなんか味気ない色気ない。ポスト自体がほとんど装飾がないものばかりですからねぇ。その辺もやり過ぎない程度に気をつけて行きたいところです。 さて本題ですが、最近巡回してるあるブログでjQueryを使って、イメージのディゾルブチェンジをしたい（未達成）という記事を読みまして、未達成ならじゃあ僕がやったろうやないかーということで作ってみました。 しかし正直言って、さらっと読んだだけでは元記事に書いてある問題点がいまいち理解できなかったので、問題点の解決策の提示というよりは、自分なりの作り方の提示ってことになります。 ディソルブの処理の概要としては、frontとbackの2つのimgがあって、backに次の画像をセットしてfadeInし同時にfrontをfadeOutし、そしてfrontとbackの参照を切り替えるってな感じです。 ゲームとかでよく使うダブルバッファリング処理を想像してもらうと分かりやすいかと。 そのディゾルブ処理部分のソースは具体的にこうなってます。 $(class_flick).load(function(){ layout(back); back.fadeTo('slow', 1); front.fadeTo('slow', 0); var tmp = back; back = front; front = tmp; }); 概要の説明のままですね。 layoutっていう関数は画像の表示位置の調節を行うだけですのでここではさほど重要ではありません。 一番重要なのは1行目で、$(class_flick)はfrontとback両方のimgを指すのですが、そのloadイベントによってsrcを変更して画像を読み込み終わったタイミングが分かるので、その中でディゾルブ処理を行うようにしています。 あとはボタンをクリックしたタイミングなどで、backのsrcを変更してやるだけで次の画像を読み込みながらのディゾルブ処理ができると、そういうことになります。 今回作ったサンプルは、ディゾルブ処理を行うイメージギャラリーの&#8221;てい&#8221;でjQueryのプラグイン風に書いてますので、簡単にプラグイン化できると思います。 あとはちゃんとやるんだったら、画像の先読み機能を付けたり、ボタンを連打すると挙動がおかしかたりするのでその辺の制御するようにすると良いんではないかなんて思います。 また、今回作ったサンプルには例によって？flickrの画像を適当に使ってますので、何か問題あればコメント欄とかで教えて頂ければ幸いです。 しっかし、jQueryとhtmlを1年ぶりぐらいに触った気がする。えらい苦労するかと思ったけどそうでもなかったり。]]></description>
		<wfw:commentRss>http://peta.okechan.net/blog/archives/751/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XenServer コマンドについて</title>
		<link>http://peta.okechan.net/blog/archives/739</link>
		<comments>http://peta.okechan.net/blog/archives/739#comments</comments>
		<pubDate>Wed, 09 Jun 2010 09:51:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[TouchTerm]]></category>
		<category><![CDATA[XenServer]]></category>

		<guid isPermaLink="false">http://peta.okechan.net/blog/archives/739</guid>
		<description><![CDATA[XenServerで幾つかサーバーを運用してます。 実験的なサービスなどは非安定版のソフトウェアを使うことが多く、VMがフリーズしてしまうこともたまにあります。 （サポートされたOSで安定してるソフトウェアを使う分にはVMがフリーズした事はなく、コントロールドメイン自体もフリーズ等の問題が起きたことはないので、XenServer自体の安定性には問題はないと思います。） 例えVMがフリーズしてしまったとしても、XenServer（コントロールドメイン）自体は問題なく動いてるので、ssh接続してxsconsoleから該当のVMを強制再起動させるだけで復旧出来るので大きな問題ではないですが、外出中でノートPCもない場合（基本僕はノートPCは持ち歩きません）ssh接続自体が出来なくてｵﾜﾀ＼(^o^)／となります。 そこでいつも持ち歩いてるiPhoneにTouchTerm（450円：Proじゃない方）を入れて使ってみたのですが、xsconsoleが表示できなくてここでもｵﾜﾀ＼(^o^)／となってしまいました。 （xsconsoleはターミナルの縦横文字数が少ないとエラーを出して起動しないので、それを満たすようにTouchTermの文字サイズを小さくすることでxsconsoleはエラーを出さず起動するようになったようなのですが、全く内容が表示されないという問題が起きてしまい操作できませんでした。） TouchTerm自体は、3G回線でも接続でき、ポートもデフォルトの22から変更することができ、鍵の生成・利用もできるので、ssh接続してコマンドを打つという用途だと過不足なく実行可能ですばらしいアプリだと思います。 で、xsconsoleを使わずにVMの強制再起動をするために、XenServerのコマンドを色々調べたのでちょっとまとめておきます。 VMのリストを表示 xe vm-list すべてのVM（起動中か否かに関係なく）の情報を表示します。情報の内容はVMのuuid、name-label、power-state（起動中かどうかの状態）。 稼働中の（コントロールドメイン以外の）VMのすべてのパラメータを表示 xe vm-list power-state=running is-control-domain=false params=all オプションの意味はそのまんまです。実行結果を見れば分かりますがすべてのパラメータってのがかなり多め（60個以上）。 これで表示されるパラメータをpower-state=runningみたいにVMの絞り込みのオプションに使えます。 稼働中の（コントロールドメイン以外の）VMのname-labelとuuidを表示 xe vm-list power-state=running is-control-domain=false params=name-label,uuid paramsにallではなく、パラメータ名をカンマ区切りで指定すると、指定したパラメータの分だけ表示されます。 特定のVMについてパラメータをすべて表示 xe vm-param-list uuid=12345678-9abc-def0-1234-56789abcdef0 実はvm-listだと値を取得するのに計算リソースを食うという理由でCPU使用率等表示されないパラメータがいくつかありますが、vm-param-listでは表示されます。 その代わりuuidの指定が必要で一度に表示出来るのは一つのVMについてのみです。 特定のVMについてCPU使用率を表示 xe vm-param-get uuid=12345678-9abc-def0-1234-56789abcdef0 param-name=VCPUs-utilisation これでCPU使用率が取得出来ます。小数点以下桁数3の数値で表示され0.000がCPU利用率0%、1.000がCPU利用率100%に相当するようです。 さらに仮想CPUコアが複数ある場合もあるため、例えば2コアの場合は、&#8221;0: 0.251; 1:0.036&#8243;のように表示されます。 1コアの場合も同じく、&#8221;0: 0.843&#8243;のように表示されます。 特定のVMについて0番目のコアのCPU使用率を表示 xe vm-param-get uuid=12345678-9abc-def0-1234-56789abcdef0 param-name=VCPUs-utilisation param-key=0 CPU使用率以外にも&#60;key&#62;: &#60;value&#62;; &#60;key&#62;: &#60;value&#62;&#8230;という形式の値になってるパラメータがありますが、param-keyに&#60;key&#62;を指定すれば&#60;value&#62;だけを抽出することができます。 特定のVMについてOS名を表示 [...]]]></description>
		<wfw:commentRss>http://peta.okechan.net/blog/archives/739/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xlrd, xlwtでExcelファイルをテンプレートとして使うもうひとつの方法（のヒント）</title>
		<link>http://peta.okechan.net/blog/archives/731</link>
		<comments>http://peta.okechan.net/blog/archives/731#comments</comments>
		<pubDate>Fri, 28 May 2010 06:27:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[xlrd]]></category>
		<category><![CDATA[xlutils]]></category>
		<category><![CDATA[xlwt]]></category>

		<guid isPermaLink="false">http://peta.okechan.net/blog/archives/731</guid>
		<description><![CDATA[先日書いた、xlrd, xlwtでExcelファイルをテンプレートとして使う というエントリですが、そのときに 正直言うとxlrdのスタイル情報から属性を全部読み取ってxlwt.Styleクラスのインスタンスを生成してwriteメソッドに渡すコードを書けばいいだけ と書いたもう一つの方法についてヒントを書いておきます。 先日のエントリの段階では、そのもう一つの方法はコピーする属性の数が多くて面倒という理由で選択しませんでしたが、xlutils.copyでスタイルもコピー出来ると言うことはその内部の処理で上記に挙げた処理を行うコードがあるはず、ということで調べてみました。 xlutilsのソースを全体的に流し読みしてみましたが、あまり直感的ではないアルゴリズムを多様してる印象です。 xlrdやxlwtのソースを見た時も同じ印象で、その時はBIFF形式のアレっぷりが影響してるのかと思ってましたが、もしかしたら書いた人のクセかもしれません。 （クラスに__call__メソッドを定義するのはメリットよりもデメリットのほうが大きいと思うんですよね〜） 前置きはこの辺にして、スタイルをコピーしてるまさにその処理は、filter.pyの276行目以降約60行に渡って（xlutils 1.4.1）書かれています。 ひたすら属性を一つずつコピーしてる感じで、これを1から書けといわれればかなり面倒ですが、ほぼそのままコピペで使えるようなのでコピペして自作の関数やメソッドにして使うのもアリかなと思います。 xlrd.Bookとxlwt.Workbookのインスタンスをメンバに持つクラスを作って、そのメソッドとしてスタイルをコピーするコードを書いて、”Excelファイルをテンプレートとして使えるクラス”にするのが先日書いた方法よりもオーソドックスかなぁと思います。]]></description>
		<wfw:commentRss>http://peta.okechan.net/blog/archives/731/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PythonのちょっとマニアックかもしれないTips</title>
		<link>http://peta.okechan.net/blog/archives/729</link>
		<comments>http://peta.okechan.net/blog/archives/729#comments</comments>
		<pubDate>Sat, 22 May 2010 08:27:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[FAT32]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://peta.okechan.net/blog/archives/729</guid>
		<description><![CDATA[バッファローのHD-PSGU2シリーズという、2.5インチHDDを内蔵したUSB外付けポータブルHDDがありまして、そのHD-PSGU2には仮想 CD機能がついてます。 仮想CD機能とはどういうものかというと、CDイメージ（isoファイル）をHD-PSGU2のHDDに保存して付属のツールで設定すると、あたかもそのCDイメージと同じ内容を持ったCDが入ったCDドライブが存在するかのごとくBIOSレベルで認識されるというものです。（説明下手や・・・） 年中PCにOSをインストールしまくったりしてる自分にとっては、OSのインストールCDを焼く必要がなく、時間の節約ができ（一般的にCD焼くよりHDDにコピーする方がはるかに早い）さらにメディアを消費しなくて済むからエコかつ財布にやさしいという素晴らしいメリットをこの仮想CD機能はもたらしてくれるのです。 ただ一つ大きな問題があって、仮想CD機能で利用するCDイメージの選択ツールがWindows専用なんです。しかも出来が悪い。 自分はMacユーザーなのでCDイメージを切り替えるためだけにWindowsを立ち上げなきゃならんという非常にめんどくさい事になってました。 （その点、本体だけでイメージの切り替えができるUMA-ISOは非常に素晴らしいのですが、HDD別売なのに割高で、基本的に楽天やAmazonのマケプレに出店してるハンファ・ジャパンのショップからしか買えないという、ハンとかファとかついてる会社には直接住所氏名メアドを渡して取引したくない自分にとっては、選択肢たえりえませんでした。） それでMacでもなんとかならんかね？と思って調べてみたところ、HD-PSGU2のHDDの中にSYSTEM.BINという隠しファイルがあって、その中の特定の箇所にCDイメージのファイル名を書き込むと、CDイメージの指定ができるようでした。 純正イメージ切り替えツールは、それを書き換えてただけっぽいです。 一瞬Mac用のツールを作るのは楽勝かと思ったんですが、SYSTEM.BINに書き込まれているファイル名をよく見ると、8.3のDOS形式のSFN（Short File Name）なんです。 LFN（Long File Name、いわゆる普通のファイル名）からSFNを生成するアルゴリズム自体はシンプルなんですが、実際はファイルを作成したタイミングによってSFNは変わってしまうため、HD-PSGU2のデフォルトフォーマットであるFAT32を解析して保存されてるSFNを直接見ない限りは正確なところが分かりません。 例えば単にファイルを生成しただけの場合LFNとSFNの対応は以下のようになるのですが、 LFN            →    SFN testtestA.txt    →    testte~1.txt testtestB.txt    →    testte~2.txt testtestC.txt    →    testte~3.txt このあとtesttestA.txtを綺麗さっぱり削除した後に、純粋にSFN生成アルゴリズムによってtesttestC.txtのSFNを求めるとtestte~2.txtとなってズレが生じてしまう訳です。 （この後、testtestD.txtを生成するとSFNはどうなるんだろう。調べてないや） で、Mac + Pythonという縛りで（commandでシェル実行しても構わない）SFNを取得したりFAT32を解析したりできるライブラリとかを探したんですが見つけられなかったので自分で作ってしまいました。そんでCDイメージ切り替えツールも作ってしまいました。 コマンドラインツールなので純正ツールには見劣りしますが、遥かに使い易いです。なんせ出来がいいのでw FAT32の仕様や、解析するプログラムのソースを説明すると超長くなってしまうのでここには書きませんが、それを作る過程で個人的に勉強になったなぁと思ったPythonのTipsを書いとこうと思います。 環境はMac OS X 10.6とPython 2.6.5なので違うと使えないかも。 あるファイルがどのマウントポイントの配下にあるか調べる方法 pathにファイル名が入ってるとして、 path = os.path.abspath(os.path.join(path, os.pardir)) でどんどん上の階層をたどりながら、 os.path.ismount(path) で調べるだけで分かります。 最初はpathはファイル名じゃなくてディレクトリ名で始めないとマズくね？と思ったりもしますがその辺はabspath先生がよしなにやってくれるようです。 マウントポイントからブロックデバイスのパスを取得する方法 commandsモジュールを使ってオプションなしのmountコマンドを実行（ commands.getstatusoutput(&#8216;mount&#8217;) [...]]]></description>
		<wfw:commentRss>http://peta.okechan.net/blog/archives/729/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xlrd, xlwtでExcelファイルをテンプレートとして使う</title>
		<link>http://peta.okechan.net/blog/archives/723</link>
		<comments>http://peta.okechan.net/blog/archives/723#comments</comments>
		<pubDate>Fri, 21 May 2010 17:58:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[xlrd]]></category>
		<category><![CDATA[xlutils]]></category>
		<category><![CDATA[xlwt]]></category>

		<guid isPermaLink="false">http://peta.okechan.net/blog/?p=723</guid>
		<description><![CDATA[PythonでExcelファイル（BIFF形式、拡張子でいえばxls）を扱う場合には、 pyExcelerator xlrd, xlwt, xlutils Win32OLE（Windows環境のみ） 辺りを使うのが一般的かと思います。他の選択肢は知りません。 今回は開発環境がMac OS X 10.6、デプロイ環境がCentOS 5.4だったので当然Win32OLEの選択肢は除外しました。 pyExceleratorは、罫線やフォントやセルのスタイルなどのデータを細かく指定して書き出せるようですが、読み込み機能が凄くシンプルで、セルの値とその座標のみ抽出できる（罫線やフォントやセルのスタイルなどは読み込めない）ようで、「装飾を施して体裁を整えたExcelファイルを読み込む」→「必要な部分だけ上書きして保存」といういわゆるテンプレート方式のExcelファイルの利用ができません。（まぁ、かなりのコード数を利用側で費やせば不可能ではないと思いますが、それってPythonでExcelファイルを扱うモジュールを自作するようなもので・・・） xlrd, xlwt, xlutils（多分それぞれExcel Read, Excel Write, Excel Utilitiesの略かな？）も、モジュールが別になってる事から分かる通り、読み込みと書き込みが別になってるのですが、xlutilsを使うことである程度連携させることができます。 具体的には、 from xlrd import open_workbook from xlutils.copy import copy rb = open_workbook('test.xls', formatting_info=True) wb = copy(rb) wb.save('test2.xls') とすれば、test.xlsの体裁を保ったままtest2.xlsに保存する事ができます。 ミソはformatting_info=Trueで、これを指定するとxlrdがセルのスタイル情報も読み込んでくれて、xlutils.copyがちゃんとxlwtにコピーしてくれます。（ただ、ページ設定等はコピーされないようです。） で、wb.saveの前にwb（xlwt.Workbookクラスのインスタンス）のget_sheetメソッドを使ってxlwt.Worksheetクラスのインスタンスを取得し、そのwriteメソッドなどを使って必要なデータを上書きすれば目的達成！となるはずですが、実際にやってみると上書きしたセルのスタイル情報がクリアされてしまうという問題が起きます。 そこで、Worksheetクラスのwriteメソッドの引数定義を見ると def write(self, r, c, label='', style=Style.default_style): となっていて、styleを指定しない場合にはデフォルト値（スタイルなしだと思われる）で上書きされるようになってます。 styleにxlwt.Styleクラスのインスタンスを渡せば良さそうですが、xlrdからスタイルを読み込んでこのメソッドのstyleに渡してもクラスが違うとかでエラーになります。 xlwtとxlrdのファイル構成を見ると分かるのですが、かなりクラスの構成が違うようで、xlwtのstyleとxlrtのstyleはダックタイピングには対応してないようです。 じゃあ、xlrdじゃなくてxlwt自体から元のstyleを取り出してwriteメソッドの引数に渡してやればいいんじゃないか？xlutils.copyでスタイル情報もコピーされてるんでしょ？と思いますが、ソースを見るとxlwt.Styleクラスのインスタンスは即座にインデックス（単なる数値）に変換されてそのインデックスが保持されるようになっていて、xlwt.Styleクラスのインスタンスはどこにも保持されてないように見えました。 さらにインデックスからxlwt.Styleに逆変換するのも難しい感じでした。（BIFF形式に詳しければ不可能ではないと思います） まぁ、正直言うとxlrdのスタイル情報から属性を全部読み取ってxlwt.Styleクラスのインスタンスを生成してwriteメソッドに渡すコードを書けばいいだけですが、スタイルの属性も多岐にわたっててなんかめんどくさそうだったのと、writeメソッドの仕様的にstyleを指定しなかったら元のスタイルを保持するほうが美しくね？と思ったのでその方向で行くことにしました。 ソースを読むとxlwt.Worksheet.writeメソッドは最終的にxlwt.Row.insert_cellメソッドを実行するようになっています。 [...]]]></description>
		<wfw:commentRss>http://peta.okechan.net/blog/archives/723/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Celeron E3200はAtom330の代わりになるか</title>
		<link>http://peta.okechan.net/blog/archives/689</link>
		<comments>http://peta.okechan.net/blog/archives/689#comments</comments>
		<pubDate>Sun, 22 Nov 2009 19:36:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[64bit]]></category>
		<category><![CDATA[Atom]]></category>
		<category><![CDATA[Atom330]]></category>
		<category><![CDATA[Celeron]]></category>
		<category><![CDATA[Celeron E3200]]></category>
		<category><![CDATA[D945GCLF2]]></category>
		<category><![CDATA[M-N9300WF-I]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://peta.okechan.net/blog/?p=689</guid>
		<description><![CDATA[自作界においてのAtom系プラットホームの魅力といえば、低価格・低発熱・低消費電力・省スペースあたりになると思います。逆に弱点といえば性能・機能・拡張性あたりでしょうか。 最近、Skype映像通話専用マシンとしてD945GCLF2を使ったマシンを組み立て使ってました。完全にSkype専用として使うには十分な性能を発揮してくれていたのですが、いくら専用といってもブラウザの一つやExplorerの一つくらいは同時に開くもので、その場合のレスポンスにストレスを感じていました。またCPUに負荷がかかってるとAeroの描画もなんか引っかかりがあるというか遅い気がしていました。 そこでAtom系プラットホームと同程度の消費電力でより性能のいい構成ができないか考えてみました。 まずAMD系を調べてみたのですが、ソケットAM3用のCPU（45nm狙い）に対応したMini-ITXマザーが見つけられなかった（まだ市場に出てない？）のと、今回の構成を考えた1週間ほど前にAMD系でミドルクラスのPCを1台組んだばっかりだったのでAMDは除外することに。 次にCeleron E3200の消費電力が低いという噂を思い出して調べてみると・・・凄いっスねコレ（汗2.4GHzでFSBは800Mhz、2次キャッシュは1MBでVT対応。しかも価格は4,500円前後という。以前はハイエンド指向で最近は低価格・低消費電力も気になってはいたのですが、ちょうどAtomが出たタイミングと重なったこともあり、今までCeleronに注目してませんでした。ということでCPUはE3200で決定。 後からVIA系という選択肢もあったなと思い出しましたが、何年も前からVIA系は追ってないのでまぁいいやと。 E3200だとTDP 65Wという表記が気になるのとAtom330に＋αするぐらいの性能があればいいので2.4GHzから1.6GHzにアンダークロック（以降UC）して使うことにしました。 次にマザーをどれにするか考えました。Windows 7でAeroを使うので、それなりにグラフィックの能力がある物を使いたいと考えていたので、あまり細かく考えずにNVIDIA系で安い物という基準でManliのM-N9300WF-Iをチョイス。Manliって何？www と思いましたがZOTACの例のマザーのOEM先という噂があったのでもし本当なら品質に大きな差はないはずという目論見で買ってみました。 実は元々D945GCLF2を入れていたケースはNoah800であり、マザーやCPUは物理的にちゃんと収まるのか（特にヒートシンク）とか電源容量は足りるか（Noah800は80W）と心配してましたが、結論から言うと、スペース的な問題はなく、電源容量も一応大丈夫でした。一応というのは、後の測定結果を見て貰うと分かるのですが、E3200をUCすればトータルの消費電力は80Wに余裕で収まってるのですが、いくつか不安定な点があり、その原因の一つに電源の貧弱さがあるのではないかと少々疑念を持ったためです。他の電源で試せば良いのですがめんどくさいのでやってません。 以前の構成と今回の構成は以下の通り。 CPU Celeron E3200(1.6GHz) Atom330(1.6GHz) Motherboard Manli M-N9300WF-I Intel D945GCLF2 Chipset MCP79(Geforce 9300) 945GC+ICH7 Graphics Geforce 9300 GMA 950 Memory PQI DDR2-800(533Mhz駆動) 1GB x 1 SSD OCZSSD2-2C30G OS Windows 7 Ultimate x64 以降の消費電力はSANWA SUPPLY ワットチェッカーPlus(TAP-TST7)で計測。グラフィックスメモリの割り当ては双方デフォルトのままです（多分双方128MB）。 1.OS起動 E3200 Atom330 秒数 72秒 69秒 消費電力ピーク [...]]]></description>
		<wfw:commentRss>http://peta.okechan.net/blog/archives/689/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DomUのCentOS5.3 x86_64にiSCSI Enterprise Targetをインストール</title>
		<link>http://peta.okechan.net/blog/archives/686</link>
		<comments>http://peta.okechan.net/blog/archives/686#comments</comments>
		<pubDate>Thu, 13 Aug 2009 22:20:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[iSCSI]]></category>
		<category><![CDATA[iSCSI Enterprise Target]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://peta.okechan.net/blog/archives/686</guid>
		<description><![CDATA[DomUなCentOS5.3 x86_64でiSCSIターゲットを動かす必要があったのでやってみました。 最初はyumで簡単にインストールできるということで、scsi-target-utils（tgtd）を試してみたのですが、設定ファイルではなくコマンドで設定するその方法が気に入らず（まぁLinuxなんでシェルスクリプトを設定ファイルだと考えればいいのですが）、またMacのglobalSAN iSCSIイニシエータからどうやっても書き込み出来ません（接続は出来る）でした。 前者はともかく後者は致命的なので、scsi-target-utilsはあきらめて、scsi-target-utilsと同じくらいメジャーと思われるiSCSI Enterprise Target（以下IET）をインストールしてみました。 以下、IETのインストール方法です。 多分、DomUとかx86_64とかじゃなくても、影響のある部分を適宜読み替えることで対応可能かと思います。 1．必要なパッケージのインストール yum install kernel-xen-devel gcc openssl-devel 2．カーネルソースパスの確認 ls /usr/src/kernels/ これで出てきたディレクトリの中で自分のアーキテクチャ・バージョンにあったものを使います。 うちでは&#8221;2.6.18-128.4.1.el5-xen-x86_64&#8243;だったので、以下それで書きます。 3．iscsi_trgt.koのパスの確認 updatedb locate iscsi_trgt.ko うちでは、&#8221;/lib/modules/2.6.18-128.4.1.el5xen/kernel/iscsi/iscsi_trgt.ko&#8221;だったので、以下それで書きます。 4．カーネルモジュールディレクトリの確認 ls /lib/modules/ 自分のバージョン・アーキテクチャに合ったディレクトリが2種類見つかると思います。うちでは 2.6.18-128.el5xen と 2.6.18-128.4.1.el5xen でした。 IETはmake時に短い方のディレクトリを使います。 5．カーネルモジュールの依存関係の確認 vi /lib/modules/2.6.18-128.el5xen/modules.dep このファイルにiscsi_trgt.koのパスが無いときは3で確認したパスを末尾に追加する。うちでは&#8221;/lib/modules/2.6.18-128.4.1.el5xen/kernel/iscsi/iscsi_trgt.ko:&#8221;と追加しました。 6．IETのダウンロード・インストール cd /usr/src wget http://sourceforge.net/projects/iscsitarget/files/iscsitarget/0.4.17/iscsitarget-0.4.17.tar.gz/download tar zxvf iscsitarget-0.4.17.tar.gz cd iscsitarget-0.4.17 make KSRC=/usr/src/kernels/2.6.18-128.4.1.el5-xen-x86_64 make KSRC=/usr/src/kernels/2.6.18-128.4.1.el5-xen-x86_64 install KSRCには2で調べたカーネルソースディレクトリを指定します。 7．iSCSIターゲットで利用するディスクを用意 [...]]]></description>
		<wfw:commentRss>http://peta.okechan.net/blog/archives/686/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XenServer5.5 on ML115 G5にmunin-node + ipmitoolをインストールする方法</title>
		<link>http://peta.okechan.net/blog/archives/684</link>
		<comments>http://peta.okechan.net/blog/archives/684#comments</comments>
		<pubDate>Wed, 12 Aug 2009 08:31:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[munin]]></category>
		<category><![CDATA[OpenIPMI]]></category>
		<category><![CDATA[XenServer]]></category>

		<guid isPermaLink="false">http://peta.okechan.net/blog/archives/684</guid>
		<description><![CDATA[うちで使ってるXenServerの1台がバージョン5.0だったので5.5にアップデートしました。 うちではmuninとipmiで物理サーバーの温度監視をしてるので、munin-nodeとipmitoolをDom0に入れてたんですが、アップデートしたら（予想はしてましたが）Dom0に独自にインストール・設定してたものが綺麗さっぱり消えてました。 でまぁ、munin-nodeとipmitoolを入れ直すハメになった訳です。 今後もアップデートする度に調べながらインストールしなおすのは時間がかかるので、ここにまとめておこうと思います。 ちなみに、タイトルにXenServer5.5とかML115 G5とか書いてますけど、RedHat系でipmi対応のサーバーなら同じような方法でインストールできると思います。 あとmunin(munin-nodeじゃなくて)がどっかのサーバーで動作中という前提で書いてますので、munin自体のインストール・設定方法はここには書いてません。 1．いきなり関係ないけどmlocateのインストール（locate厨なもので。必要ない時は飛ばして下さい） yum &#8211;enablerepo=base install mlocate 2．yumにrpmforgeリポジトリの追加 rpm &#8211;import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt rpm -ivh http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm 3．rpmforgeを無効にしておく vi /etc/yum.repos.d/rpmforge.repo enabled = 1 を enabled = 0 にする。 4．OpenIPMIをインストール・起動・動作確認・自動起動設定 yum &#8211;enablerepo=base install OpenIPMI OpenIPMI-tools /etc/init.d/ipmi start ipmitool sensor chkconfig ipmi on ipmitool sensor でそれっぽいデータが出たら大丈夫でしょう。 5．munin-nodeのインストール yum &#8211;enablerepo=rpmforge,base install munin-node 6．ipmitool_sensor_（munin-nodeプラグイン）を配置 wget http://muninexchange.projects.linpro.no/download.php?phid=579 mv [...]]]></description>
		<wfw:commentRss>http://peta.okechan.net/blog/archives/684/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>awstatsの自動アップデートには気をつけた方がいい</title>
		<link>http://peta.okechan.net/blog/archives/674</link>
		<comments>http://peta.okechan.net/blog/archives/674#comments</comments>
		<pubDate>Tue, 07 Jul 2009 07:56:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[awstats]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[SELinux]]></category>

		<guid isPermaLink="false">http://peta.okechan.net/blog/archives/674</guid>
		<description><![CDATA[CentOS5.3で動かしてるアクセス解析ソフトのawstatsが急に動作しなくなるという問題が。 ブラウザで見ても404が返ってくるばかりで、かなり頭の中がパニックになりましたが、まずリバースプロキシとして使ってるDeleGateを疑うことに。 （その前にローカルプロキシのdolipoを疑うというステップがありましたが省略） 色々調べてみましたがDeleGateには問題はありませんでした。 awstatsが動いてたサーバーの/etc/httpd/conf.dあたりを見ると、awstats.conf.rpmnewというファイルが。 yumで自動アップデートする設定にしてるのでそれでアップデートされたんだろうなぁと思い、/var/log/yum.logを見ると案の定今朝更新されてました。 元のawstats.confではバーチャルドメイン対応の設定をしてたのと、awstats.conf.rpmnewにはデフォルトの設定が書かれてただけなので、rpmnewの方を消してapacheを再起動してみましたが、状況は全く変わらず。 ちょっと悶絶するくらい「何で〜？」ってなりましたが、よく調べてみると、どうもawstats本体のディレクトリが/usr/local/awstatsから/var/www/awstatsに変わってるようで、しかも元の/usr/local/awstatsの中身の主要なファイルが消えてました。 もちろんawstats.plも消えてるので404が出るのは当たり前です。 まぁ、yumでアップデートされたんなら古いプログラムファイルが削除されるのは分かるんですけど、なんで/usr/localなんだ？ yumでアップデートされるということは、yumかrpmで入れたはず。 でまぁ、ちょっとした謎を抱えたまま、パスが変わってるのは分かったので各種設定ファイルをそれに合わせて書き換えました。 これで、定時のcronでの更新も動作するようになったんですけど、やっぱりブラウザからは閲覧できません。 正確には404ではなくawstats.plは表示されるようになったんですが、集計データが全て0のままで使い物にならない状態でした。 awstatsのバージョンが上がったからデータファイルの互換性がなくなったのかと思いましたがそうでもないみたいで。 現にコンソールからはoutputオプションをつければデータは見れました。 パーミッション等でCGI経由ではデータファイルが読み込めない問題が起きてるのかなと思い、apacheのエラーログを見ましたが全くエラーが記録されておらず。 perlに-wをつけてwarningも記録するようにしてみたら、awstats.plの9533行目で未初期化変数使用のwarningが出ましたが、今回の問題とは関係なさそうでした。 というか関係ないと思いたい。あんなソース読みたくない。 ＼(^o^)／ こんな感じでゴロゴロして現実逃避してたら、ふと一つの可能性に気づきました。 SELinuxじゃね？ 開発コミュニティの理念がアレだとか、めんどくさいとかで評判の悪いSELinuxですが、僕は以前から意地でもSELinuxオンで行く事を決めてたので、今回のサーバーでもオンになっています。 /etc/log/audit/audit.logを見るとビンゴ！わんさかとawstats.plがらみのdeniedが記録されてました。 audit2allowとかで許可してあげると、ちゃんとブラウザでも表示されるようになりました。 しかし、awstatsのディレクトリが変わるってどういうことよ？ まぁ元々ソースから入れた訳でもないはずなのに/usr/localに入ってた事がおかしいんですけどね。 perlもファイルが読めないならちゃんとエラー吐いてくれよと。 まぁ、perl/CGIからだとSELinuxのせいでファイルがある事さえ認識できなかったのかもしれないですけど。 これで4時間くらい食ってしまいましたよorz]]></description>
		<wfw:commentRss>http://peta.okechan.net/blog/archives/674/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XREAのレンタル共用サーバーに設置したWordPressでメディアの一括削除ができない</title>
		<link>http://peta.okechan.net/blog/archives/664</link>
		<comments>http://peta.okechan.net/blog/archives/664#comments</comments>
		<pubDate>Fri, 03 Jul 2009 05:34:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[XREA]]></category>

		<guid isPermaLink="false">http://peta.okechan.net/blog/archives/664</guid>
		<description><![CDATA[WordPressのバージョンは2.7.1です。 いつも書いてる通りXREAのサーバーはあまり触りたくないのですが、依頼なので仕方ありません。 XREAでWordPressを動かす場合、モジュール版PHPではパーミッションの関連上ファイル操作に難があり、普通に設置しただけではWordPressから画像などをアップロードすることが出来ません。（PHPのセーフモードがらみの問題で、仕様ですね） そこで、管理画面は（もしくはアップロード用スクリプトのみを）CGI版PHPで動かす設定を.htaccessで施すことによってその問題を回避する方法があります。 まぁココまでは&#8221;XREA WordPress&#8221;などで検索すれば幾らでも出てくる情報なんですが、その設定をやった上で、今回新たに「メディアライブラリの一覧で、個々のファイルの左にあるチェックボックスを複数チェックして、一括して削除しようとしたときに、サーバーからの応答が無くなる」という問題が発生しました。 応答がなくても、実際によく調べてみると、ファイルの削除もデータベースの操作も完了してるっぽかったので正確には「削除できてる」んですが、削除ボタン（実際には適用ボタンですか）を押してから、ブラウザが延々といわゆる「読み込み中」のまま、という状態です。 HTTPヘッダも何も返ってこない状態。 該当部分のソースを読んでみたり色々テストしていくと、削除処理をした後のリダイレクト処理部分で&#8221;wp_redirect&#8221;という関数が呼ばれており、どうもその関数が上手く動いてない様子でした。 ちなみにモジュール版なら&#8221;wp_redirect&#8221;関数自体は普通に動作します。 一括削除処理だけモジュール版で動作するようにしようかと一瞬思いましたが、そのwp_redirect関数を含むファイルって、upload.phpなんですよね。 つまりupload.phpに表示・追加・削除の機能が一つにまとめられてるので、htaccessのfilesディレクティブで切り替える方法が使えません。 とりあえず今回はwp_redirectを呼んでる行をコメントアウトして、 &#60;html&#62; &#60;header&#62; &#60;title&#62;wordpress redirect&#60;/title&#62; &#60;meta http-equiv=&#8221;Refresh&#8221; content=&#8221;0; URL=$location&#8221;&#62; &#60;/header&#62; &#60;body&#62; しばらくお待ち下さい。 &#60;/body&#62; &#60;/html&#62; という内容を返すようにしました。 文字化けるかもしれないのでもっとちゃんとしたソースを返すようにした方がいいです。 他にもwp_redirect関数を呼び出してる部分があったのですが、それらはちゃんと動いてるようでした（ホントかな）のでそのままです。 一応調査の中で、 header(&#8216;Location: http://example.com/&#8217;); などと一行だけ書いたスクリプトをCGI版で動かしてみたりしましたが普通に動きました。 まぁ、これが動かなかったら大問題になりますけど。 原因は複合的なんでしょうね。]]></description>
		<wfw:commentRss>http://peta.okechan.net/blog/archives/664/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
