<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6730181980158564519</id><updated>2011-08-17T12:02:14.024+09:00</updated><category term='WebService'/><category term='Internet'/><category term='MySQL'/><category term='Subversion'/><category term='Samba'/><category term='C/C++'/><category term='.Net'/><category term='このblogについて'/><category term='UML'/><category term='XML'/><category term='DirectoryService'/><category term='Perl'/><category term='Windows'/><category term='Security'/><category term='Java'/><category term='Ajax'/><category term='OpenSource'/><category term='PHP'/><category term='iPhone'/><category term='後で読む'/><category term='Trac'/><category term='Linux'/><category term='Software'/><category term='Hardware'/><category term='Apache'/><category term='正規表現'/><category term='設計'/><category term='コーディング'/><title type='text'>- Light Material -</title><subtitle type='html'>Memo blog.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default?start-index=101&amp;max-results=100'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>126</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-5910343951853902802</id><published>2008-09-15T11:31:00.003+09:00</published><updated>2008-09-15T11:39:16.528+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='このblogについて'/><title type='text'>久々の更新</title><content type='html'>物凄く久しぶりに更新です.&lt;br /&gt; 忙しいとか忙しくないとか言う事ではなく、どーにもアクティブに挑戦する気力が湧き上がってこない＋iPhoneのお陰でPC起動時間の減少→blog更新の停滞 orz&lt;br /&gt;&lt;br /&gt; この記事もblogにコメントをもらったことに気付いて、その返信を書いた事で「更新するか」という気になったと言うのが事の顛末.&lt;br /&gt;&lt;br /&gt;今後も更新頻度がどうなるか分かりませんが、「気付いたら更新してた」的なスタンスで続けて行きますw&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;※LifeCast↓と言うiPhone用アプリで投稿して見ましたが…微妙〜ですね orz&lt;br /&gt;&lt;br /&gt;Posted with &lt;a href='http://lifecast.sleepydog.net'&gt;LifeCast&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-5910343951853902802?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/5910343951853902802/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=5910343951853902802' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5910343951853902802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5910343951853902802'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/09/blog-post_15.html' title='久々の更新'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7476170024948180532</id><published>2008-07-20T03:39:00.007+09:00</published><updated>2008-12-12T05:47:10.669+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>続iPhone.</title><content type='html'>// 脱獄については記事の一番下に追記してます.&lt;br /&gt;&lt;br /&gt;　購入から一週間たちました.&lt;br /&gt;　やはりiPhoneは電話ではありません.&lt;br /&gt;　通話音質が悪い.&lt;br /&gt;　ガラパゴス携帯が素晴らしいのか、iPhoneがヘタレなのかは分かりませんが.&lt;br /&gt;　微妙な撥音が重要な英語圏の人たちは、iPhoneの通話音声品質で会話できるのか？と要らぬ心配をしてしまいます.&lt;br /&gt;&lt;br /&gt;　とは言え、英語圏の人たちの方がiPhoneを正しく捉えている事でしょう.&lt;br /&gt;　あくまでもインターネット端末、むしろ真の意味でのパーソナルなコンピュータで、電話はオマケ機能だと.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　ここからまったく話を変えて.&lt;br /&gt;　何やらiPhone 3G用の脱獄（JailBreak）ツールがそろそろリリースされそうだとか.&lt;br /&gt;　脱獄自体ライセンスの抵触にあたるのではないかと思いますが…多分lightmaterialも脱獄してしまう事でしょう orz&lt;br /&gt;　あの誘惑には勝てません.&lt;br /&gt;　iPhoneでは出来ない事が出来るのですから（可能性ですが、例えばBluetoothヘッドフォンで音楽を聴くとか）.&lt;br /&gt;　コンソールが使える、ファイルの保存が自由（デフォルトではiPhoneにファイル保存の自由はありません）と言うのが大きなメリットです.&lt;br /&gt;　考えるだけでも（私にとって）最強のガジェットになるかと思います.&lt;br /&gt;&lt;br /&gt;　今日一日iPhoneをかなりハードに使ってみました.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;通話　…　約2時間&lt;/li&gt;&lt;li&gt;Google Maps　…　約1時間（GPS使用してナビ代わり。移動中は閲覧せず信号待ちでチラ見）&lt;/li&gt;&lt;li&gt;インターネット　…　約4時間（Wi-Fi/3G混在。閲覧時間を除く実際の継続的な読み込み接続は1/10程度でしょうが）&lt;/li&gt;&lt;li&gt;iPod機能（音楽再生）　…　約5時間&lt;/li&gt;&lt;li&gt;SMS　…　10通（送受信）&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;　それでも13時〜翌3時半まで持ちました.&lt;br /&gt;　バッテリーが弱いと言う情報を多々目にしますが、同様の処理を他の端末で行った場合、ここまで持つか疑問です（同様の処理自体出来ないとは思いますが、仮に行った場合と言う意味）.&lt;br /&gt;&lt;br /&gt;　…これじゃ「無条件iPhone信者」と思われてしまいますかね？w&lt;br /&gt;&lt;ul&gt;&lt;li&gt;iPhoneのSafariは落ちまくる！&lt;/li&gt;&lt;li&gt;日本語入力が相変わらず重たくなる！&lt;/li&gt;&lt;li&gt;メール機能が悪い！&lt;/li&gt;&lt;li&gt;ローカライズの完成度が低い！&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;　よし、非難はこんなもんでいいでしょう.&lt;br /&gt;&lt;br /&gt;　現在のlightmaterialのホームは↓こんな感じです.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/SII7Ucmm2WI/AAAAAAAAALE/q_B2P_ki-Qw/s1600-h/photo.jpg"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/SII7Ucmm2WI/AAAAAAAAALE/q_B2P_ki-Qw/s320/photo.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5224803740164741474" /&gt;&lt;/a&gt;&lt;br /&gt;　この一週間で私にとってもっとも歓迎すべきニュースは「&lt;a href="http://mochasoft.dk/iphone_vnc.htm"&gt;Mocha VNC for iPhone and iPod&lt;/a&gt;」の登場です.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://journal.mycom.co.jp/news/2008/07/17/011/index.html"&gt;iPhone 3Gからデスクトップを遠隔操作「Mocha VNC Lite」&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　素敵です.&lt;br /&gt;　馴れると普通に（あくまでもiPhone的に. iPhoneでSafariを操作している感覚で、と表現した方が分かり易いかもしれません）WindowsやLinux、MacOSを操作する事が出来ます.&lt;br /&gt;　しかも無償で（有償版は右クリックが出来るとか、iPhone標準のソフトウェアキーボード以外が用意されているとか、Ctrl+Alt+Deleteキーの送信が出来る等の付加機能が予定されています）.&lt;br /&gt;　lightmaterialも即日インストール.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/SII-rbVi0HI/AAAAAAAAALM/A4ty5u9yZAc/s1600-h/photo2.jpg"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/SII-rbVi0HI/AAAAAAAAALM/A4ty5u9yZAc/s320/photo2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5224807433496612978" /&gt;&lt;/a&gt;&lt;br /&gt;　※VNCアイコンがMocha VNC Lite. 赤線で囲むのが面倒でした orz&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/SII-riExAFI/AAAAAAAAALU/yAJX9ry0lXY/s1600-h/photo3.jpg"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/SII-riExAFI/AAAAAAAAALU/yAJX9ry0lXY/s320/photo3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5224807435305287762" /&gt;&lt;/a&gt;&lt;br /&gt;　この画像、一見するとiPhoneのカバーフローの様ですが…&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kri9yIsnLbE/SII-rlXnrBI/AAAAAAAAALc/jhWV-2wWczg/s1600-h/photo5.jpg"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_kri9yIsnLbE/SII-rlXnrBI/AAAAAAAAALc/jhWV-2wWczg/s320/photo5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5224807436189674514" /&gt;&lt;/a&gt;&lt;br /&gt;　普通にiPhone経由で表示したWindows上で動作するiTunesのカバーフロー画像です.&lt;br /&gt;&lt;br /&gt;　実際にiPhoneで表示したカバーフローは↓こちら.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kri9yIsnLbE/SII-r3MeriI/AAAAAAAAALk/0DMUfgkYE-E/s1600-h/photo9.jpg"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_kri9yIsnLbE/SII-r3MeriI/AAAAAAAAALk/0DMUfgkYE-E/s320/photo9.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5224807440974786082" /&gt;&lt;/a&gt;&lt;br /&gt;　これはもう最強のキラーアプリです.&lt;br /&gt;　動作も軽快、画面サイズが異なる点はマルチタッチスクリーンの拡大縮小操作で克服.&lt;br /&gt;　馴れが必要ですが、マウス操作も実用レベルで操作可能になりました.&lt;br /&gt;&lt;br /&gt;　もうあれこれ考えるだけで興奮してくるのは、私を含むマニアック層だけかもしれませんが、相当に素晴らしい事です.&lt;br /&gt;&lt;br /&gt;　Mocha VNCと脱獄だけで半年は飽きずに済みそうです.&lt;br /&gt;　あ、もうこんな時間だ.&lt;br /&gt;　明日と言うか今日は出社して仕事予定.&lt;br /&gt;　さっさと寝ます.&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;&amp;nbsp;* 2008-07-21追記&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;　脱獄してしまいました orz&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://forums.whirlpool.net.au/forum-replies.cfm?t=1017825"&gt;Jailbreaking your iPhone 3G on Windows&lt;/a&gt;&lt;br /&gt;　&lt;span style="color: red; font-weight: bold"&gt;※脱獄（Jailbreak）行為はすべて自己責任. 最悪の場合iPhone自体が動かなくなる可能性もあります&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;　脱獄後は↓こんな感じです.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kri9yIsnLbE/SIQdHfsytLI/AAAAAAAAALs/zQBGyAy7Fcg/s1600-h/photo2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_kri9yIsnLbE/SIQdHfsytLI/AAAAAAAAALs/zQBGyAy7Fcg/s320/photo2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5225333482262279346" /&gt;&lt;/a&gt;&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kri9yIsnLbE/SIQdHbHDmvI/AAAAAAAAAL0/rzTino8J-nQ/s1600-h/photo.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_kri9yIsnLbE/SIQdHbHDmvI/AAAAAAAAAL0/rzTino8J-nQ/s320/photo.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5225333481030261490" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7476170024948180532?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7476170024948180532/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7476170024948180532' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7476170024948180532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7476170024948180532'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/07/iphone_20.html' title='続iPhone.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kri9yIsnLbE/SII7Ucmm2WI/AAAAAAAAALE/q_B2P_ki-Qw/s72-c/photo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-4739672735898034232</id><published>2008-07-13T16:18:00.004+09:00</published><updated>2008-07-13T16:57:38.376+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>iPhone 3G個人的総評.</title><content type='html'>　あっ………と言う間にiPhone購入から3日が経過しようとしている訳ですが、一通り触ってみた感想をグダグダと書いてみようと思います.&lt;br /&gt;&lt;br /&gt;　個人的には大方満足しています.&lt;br /&gt;　ただ、普通の携帯電話として購入すると「相当」痛い目にあいますw&lt;br /&gt;　それだけでは無く、普通のスマートフォンとして購入しても痛い目にあいますw&lt;br /&gt;&lt;br /&gt;　極個人的な満足ポイント、不満ポイントは次の通り.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;満足ポイント&lt;/li&gt;&lt;ol&gt;&lt;li&gt;iPodと携帯電話、２つのガジェットを持ち歩かなくてよくなった&lt;/li&gt;&lt;li&gt;WEBブラウズが一般携帯のフルブラウザ、スマートフォンのブラウザより数段快適&lt;/li&gt;&lt;li&gt;SMSがチャット風に表示され、視認性・使い勝手とも非常によい&lt;/li&gt;&lt;li&gt;Remote（iTunesをWi-Fi経由で操作するアプリ）が想像以上に便利だった&lt;/li&gt;&lt;li&gt;YouTubeが不満なく（個人的な感想ですから…）見られる&lt;/li&gt;&lt;li&gt;Google Mapsが死ぬほど軽快・便利に使える&lt;/li&gt;&lt;li&gt;タッチスクリーンで入力するフルキーボードが思ったよりも軽快に打てる（既に携帯のテンキー入力よりは早く打てる様になりました。両手使いますけどw）&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;不満ポイント&lt;/li&gt;&lt;ol&gt;&lt;li&gt;電話としてみると機能が貧弱過ぎる（電話として購入したら駄目ですw）&lt;/li&gt;&lt;li&gt;Safariが落ちまくる（売り、メリットの筆頭だけにダメージが大きい）&lt;/li&gt;&lt;li&gt;日本語入力環境（予測変換）がクソ（下品な言葉で失礼）&lt;/li&gt;&lt;li&gt;1日最低一回は再起動しないと快適に使えない（電話としてもスマートフォンやPDAとしても有り得ない。日本語入力環境のせいなんだけど…）&lt;/li&gt;&lt;li&gt;GPSが位置情報をキャッチしてくれない&lt;/li&gt;&lt;li&gt;メール着信時に音もバイブも鳴らない（致命傷。だからと言ってMobileMeは契約したくない）&lt;/li&gt;&lt;li&gt;バッテリが貧弱過ぎる&lt;/li&gt;&lt;li&gt;コピー＆ペーストが無い！！！（最初はいらないと思ってましたが、使ってみたら致命傷だと気付きました）&lt;/li&gt;&lt;li&gt;ストラップ穴が無い（一回テーブルの上に落として、こりゃストラップが必要だと思いました。どっかのメーカーがシリコンジャケットにストラップ穴付けてくれれば便利なんですけどねぇ）&lt;/li&gt;&lt;/ol&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;　…あれ？不満点が多いな…もしかして俺満足してないんじゃ？ orz&lt;br /&gt;　いやいや、そんな事はないはず.&lt;br /&gt;　気のせいです.&lt;br /&gt;&lt;br /&gt;　赤外線が無い点は友達が少ない私には必要ありません.&lt;br /&gt;　…人としてどうなのかと言う悲しすぎる事実はスルーの方向で orz&lt;br /&gt;　お財布携帯も個人的には必要ありませんし、必要であればシリコンジャケットの背中にカードを入れる事で代用出来ますので、機能が付いていなくても致命傷では無いと思います.&lt;br /&gt;&lt;br /&gt;　と言う事で、決して一般受けする製品ではありません.&lt;br /&gt;　今回はSoftBankの販売戦略とメディアの報道が、一般的な携帯電話購入層をミスリーディングする結果になったかと思います.&lt;br /&gt;　よくよく考えるとSoftBankはiPhoneのCMを打った訳でも無いので、特にメディアの報道姿勢が問題だったのかもしれませんね.&lt;br /&gt;&lt;br /&gt;　最初から機能を把握していて、割り切って購入した人は満足してるんじゃないかなぁと思います.&lt;br /&gt;　逆に普通の携帯電話として購入した人は不満爆発だと思いますがw&lt;br /&gt;　ただ、そういう人は高価なデジタル製品を良く調べずに買ってしまった、と言う非が少しは自分にもある、と自覚して頂きたい次第で.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-4739672735898034232?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/4739672735898034232/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=4739672735898034232' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4739672735898034232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4739672735898034232'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/07/iphone-3g.html' title='iPhone 3G個人的総評.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-6477438713176280562</id><published>2008-07-12T14:21:00.004+09:00</published><updated>2008-12-12T05:47:12.751+09:00</updated><title type='text'>iPhoneホワイト写真集.</title><content type='html'>　開封からアクティベート、iTunes同期までの写真.&lt;br /&gt;　基本ボケボケなのは気にしない方向で.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/SHhAXPulNTI/AAAAAAAAAJ0/FpFek2vV9Pw/s1600-h/VFTS0022.JPG"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/SHhAXPulNTI/AAAAAAAAAJ0/FpFek2vV9Pw/s320/VFTS0022.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5221994536039167282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kri9yIsnLbE/SHhAXXtO6uI/AAAAAAAAAJ8/HanwYclcq4g/s1600-h/VFTS0021.JPG"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_kri9yIsnLbE/SHhAXXtO6uI/AAAAAAAAAJ8/HanwYclcq4g/s320/VFTS0021.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5221994538180995810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kri9yIsnLbE/SHhAXqLBJ9I/AAAAAAAAAKE/mk-tgij4Zx4/s1600-h/VFTS0020.JPG"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_kri9yIsnLbE/SHhAXqLBJ9I/AAAAAAAAAKE/mk-tgij4Zx4/s320/VFTS0020.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5221994543137761234" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kri9yIsnLbE/SHhAXmoE41I/AAAAAAAAAKM/-R8Tkjtsco4/s1600-h/VFTS0019.JPG"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_kri9yIsnLbE/SHhAXmoE41I/AAAAAAAAAKM/-R8Tkjtsco4/s320/VFTS0019.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5221994542185898834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kri9yIsnLbE/SHhAX67DZHI/AAAAAAAAAKU/zrFtxC1ruwE/s1600-h/VFTS0018.JPG"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_kri9yIsnLbE/SHhAX67DZHI/AAAAAAAAAKU/zrFtxC1ruwE/s320/VFTS0018.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5221994547634201714" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kri9yIsnLbE/SHhAnIykkmI/AAAAAAAAAKc/yZUkzf9K7Ss/s1600-h/VFTS0017.JPG"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_kri9yIsnLbE/SHhAnIykkmI/AAAAAAAAAKc/yZUkzf9K7Ss/s320/VFTS0017.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5221994809054761570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kri9yIsnLbE/SHhAnUOvuuI/AAAAAAAAAKk/2kCQDlumJlA/s1600-h/VFTS0016.JPG"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_kri9yIsnLbE/SHhAnUOvuuI/AAAAAAAAAKk/2kCQDlumJlA/s320/VFTS0016.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5221994812125723362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kri9yIsnLbE/SHhAnS5dG3I/AAAAAAAAAKs/PatmfvpnYNw/s1600-h/VFTS0015.JPG"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_kri9yIsnLbE/SHhAnS5dG3I/AAAAAAAAAKs/PatmfvpnYNw/s320/VFTS0015.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5221994811767987058" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kri9yIsnLbE/SHhAnaMzMZI/AAAAAAAAAK0/3Ah_ar-GYg8/s1600-h/VFTS0014.JPG"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_kri9yIsnLbE/SHhAnaMzMZI/AAAAAAAAAK0/3Ah_ar-GYg8/s320/VFTS0014.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5221994813728174482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kri9yIsnLbE/SHhAnmLAzDI/AAAAAAAAAK8/F2QenQliZck/s1600-h/VFTS0013.JPG"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_kri9yIsnLbE/SHhAnmLAzDI/AAAAAAAAAK8/F2QenQliZck/s320/VFTS0013.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5221994816941902898" /&gt;&lt;/a&gt;&lt;br /&gt;※最後の写真はシリコンジャケットを着せてます&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-6477438713176280562?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/6477438713176280562/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=6477438713176280562' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/6477438713176280562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/6477438713176280562'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/07/iphone.html' title='iPhoneホワイト写真集.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kri9yIsnLbE/SHhAXPulNTI/AAAAAAAAAJ0/FpFek2vV9Pw/s72-c/VFTS0022.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-8049311657901832216</id><published>2008-07-12T01:56:00.006+09:00</published><updated>2008-07-13T02:12:55.436+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>あいふぉーんいんじゃぱん.</title><content type='html'>　何やら不穏な気配が漂い始めています.&lt;br /&gt;&lt;br /&gt;　触ってみた感想としては&lt;br /&gt;　『素晴らしい！！！』&lt;br /&gt;　の一言に尽きます.&lt;br /&gt;&lt;br /&gt;　んが、使っている内に不満点が出てきます.&lt;br /&gt;　日本人なら多分皆が皆感じる事でしょう.&lt;br /&gt;　そう、日本人にとって必要不可欠な日本語入力環境（予測変換）が「尋常ではない」ほど重い！！！！！ orz&lt;br /&gt;　// 2008-07-13&lt;br /&gt;　// 重くなったら再起動！！&lt;br /&gt;　// 仕様としてどうなのよコレ orz&lt;br /&gt;　// 今の所　使う→重くなる→再起動→軽快→使う→重くなる　の繰り返しですw&lt;br /&gt;&lt;br /&gt;　調べてみると、IT情報系サイトのレビューでも日本語入力環境が重いと書いてありましたので、lightmaterialが購入した個体の問題では無く、iPhoneで日本語環境を使用した際の共通の問題かと思います.&lt;br /&gt;　正直iPod機能を使って音楽を聞きながらSafariで日本語入力しようものなら、余裕で音が飛びます（その他の事をしてても音飛びは殆んどしない）.&lt;br /&gt;　iPod機能を使わず、Safariしか起動していない状態ですら日本語入力の処理が思いきり遅い.&lt;br /&gt;　いや、SafariじゃなくiPhone自体の設定画面で日本語を入力する時ですら思いきり遅い.&lt;br /&gt;　具体的に書くと、タップしてから最大3秒程度固まります（候補数等々でかかる秒数が変わっている模様）.&lt;br /&gt;　テンキー入力にしていると、今自分が何の文字を打っているのか分かりません（タップしてから画面に反映されるまで3秒かかった場合を考えてみれば分かると思います）.&lt;br /&gt;　更に変換候補がたまに画面外に表示されます.&lt;br /&gt;　使いものにならないレベルです.&lt;br /&gt;　使ったとしても「相当我慢しながら」使う事になります.&lt;br /&gt;　とても高速に文書を入力する事なんて出来る代物ではありません.&lt;br /&gt;&lt;br /&gt;　…はぁ…何だかなぁコレ orz&lt;br /&gt;　これだけレベルの高いガジェットなのに、日本人に一番必要な日本語入力がまともでは無いと言うのは、正直残念以外の何ものでもありません.&lt;br /&gt;　Appleには是非とも日本語入力環境の改善を要望…いや、要求したい所です.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　と、散々貶しましたが、日本語入力環境以外は思いきり満足していますw&lt;br /&gt;　素敵過ぎますiPhone！！&lt;br /&gt;　今まで使ってきた携帯電話って何だったんだ？と思う程の素敵さ加減です.&lt;br /&gt;　いや、本当に買ってよかった.&lt;br /&gt;　涙がちょちょぎれます.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　ちなみにiTunesとiPhoneの連系がおかしいです.&lt;br /&gt;　iPhoneからiTunes Storeで曲を購入してもiTunesに反映されません.&lt;br /&gt;　更にiTunesのデバイスリストにあるiPhoneを選択するとエラーが出ます.&lt;br /&gt;　何でしょうねコレ？&lt;br /&gt;　// 2008-07-12&lt;br /&gt;　// どうやらAppleのサーバーが混雑していたのが原因だった様です.&lt;br /&gt;　// 今日改めてやったら、ユーザー登録画面が表示され、正常に連携する事が出来ました.&lt;br /&gt;&lt;br /&gt;　後これはSoftbankの問題かもしれませんが、メールアドレスの設定が全然出来ません.&lt;br /&gt;　ID、パスワードを入力しても蹴られます（My Softbank自体には明後日までログイン出来ませんが、メールアドレスの設定だけは出来ると書いてあるんですがねぇ…）.&lt;br /&gt;　更にiPhoneにメール設定をしてみても、メールサーバーへの接続で蹴られてしまいます.&lt;br /&gt;　// 2008-07-12&lt;br /&gt;　// これも今日やってみたら正常にアクセス可能でした.&lt;br /&gt;&lt;br /&gt;　その他にも情報アンテナを張りめぐらせると色々と問題が勃発しているようですが…まぁ、この程度の事はご愛嬌（iPhone自体が素敵なので）.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-8049311657901832216?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/8049311657901832216/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=8049311657901832216' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8049311657901832216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8049311657901832216'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/07/blog-post.html' title='あいふぉーんいんじゃぱん.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-117819142192009133</id><published>2008-07-11T17:46:00.002+09:00</published><updated>2008-12-12T05:47:12.956+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>Getting an iPhone 3G.</title><content type='html'>　何故かタイトルが英語です.&lt;br /&gt;　多分間違えてます.&lt;br /&gt;　「Getting the iPhone 3G」が正しいのかもしれません.&lt;br /&gt;　それすら間違えてるかもしれません.&lt;br /&gt;　そんな事はどうでもいいですね.&lt;br /&gt;&lt;br /&gt;　そう.&lt;br /&gt;　やりましたよ.&lt;br /&gt;　入手しましたiPhone！！&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kri9yIsnLbE/SHcenoOXQqI/AAAAAAAAAJs/Pro9PBNqyDM/s1600-h/08-07-11_12-34.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_kri9yIsnLbE/SHcenoOXQqI/AAAAAAAAAJs/Pro9PBNqyDM/s320/08-07-11_12-34.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5221675959120773794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　まだ開封もアクティベーションもしてませんが（店頭でのアクティベーショントラブルで、結局自宅でロック解除する事になった…大丈夫か？？）、何故か入手できてしまいました.&lt;br /&gt;　…並んですらいないんですがｗ&lt;br /&gt;　東京より地方の方が入荷数は少なくとも絶対的な競争率が少ないんでしょうかね？？&lt;br /&gt;　絶対入手できないものだと思い込んでいたので、半分以上諦めムードのまま昼ちょっと前に飛び込んだ店で「iPhoneの白ありますか？」と聞いたら、笑顔で「はい、あります」といわれましたからｗ&lt;br /&gt;&lt;br /&gt;　…いえ、並んで入手した方には本当に申し訳ない気分で一杯です.&lt;br /&gt;　申し訳御座いません orz&lt;br /&gt;&lt;br /&gt;　何はともあれ16GB版、しかも欲しかったホワイトが手に入って興奮です.&lt;br /&gt;　さて、今日は飲み会があるから飲み会終わりに酔っ払いながらロック解除して翌日まで遊び倒してやります.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-117819142192009133?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/117819142192009133/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=117819142192009133' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/117819142192009133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/117819142192009133'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/07/getting-iphone-3g.html' title='Getting an iPhone 3G.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kri9yIsnLbE/SHcenoOXQqI/AAAAAAAAAJs/Pro9PBNqyDM/s72-c/08-07-11_12-34.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7093525428658966801</id><published>2008-06-29T16:23:00.003+09:00</published><updated>2008-06-29T17:16:08.649+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Samba'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Text file busy: exec of.</title><content type='html'>　何故かPerlを触っています.&lt;br /&gt;　VB/ASP → VB/ASP.Net → PHP → C# と触って来たlightmaterialはPerlを全然触った事がありません（C++もJavaも「使える」と明言出来るレベルではありません orz）.&lt;br /&gt;　勿論、コードを「ナントナク」読むとか他の人が書いたコードを少し修正する程度であれば可能ですが、一からPerlプログラムを書きなさい、と言われれば「無理です」と断言せざるを得ないレベルです orz&lt;br /&gt;&lt;br /&gt;　が、若干コードを触る必要が出てきそうなので、今のうちから徐々にPerlの独特な言語仕様を覚えようと頑張ってます.&lt;br /&gt;　いや、本当は頑張ってないんですけどw&lt;br /&gt;&lt;br /&gt;　それにしても、本当に独特の世界です.&lt;br /&gt;&lt;br /&gt;　他の言語のFunctionやメソッドにあたるサブルーチン（VBのSubプロシージャとは違います）の引数が「@_」に入ってるとか、普通に変数と配列を混在させて引数に渡したりすると受け側（サブルーチン内）で変数と配列の区別がつかないとか、「if ($a eq 'Oh my Goods') return 0;」と書かずに「return 0 if ($a eq 'Oh my Gods');」の様に書くとか…挙げればきりがないほど独特です.&lt;br /&gt;&lt;br /&gt;　とまぁ、別にWebアプリケーションの初期から広く一般に使用されているPerlの事を今更書いた所で何の意味も無いですねw&lt;br /&gt;&lt;br /&gt;　Perlが必要になるのは当然仕事での話なので、会社でも今やってる案件の合間を見て勉強し、家でも同様に勉強してたりします.&lt;br /&gt;　現在のPC、家電の配置状況だとXPを直接触らずFedora機からrdesktopで接続する方が操作性が良く、&lt;br /&gt;&lt;br /&gt;　Fedora機　→[rdesktop]→　XP　→[samba]→　Fedora機&lt;br /&gt;&lt;br /&gt;と言う「なんでやねん」的な遠回りかつ無駄な操作をしていますw&lt;br /&gt;　単にXPの使い慣れたエディタが使いたいだけなんですけど.&lt;br /&gt;&lt;br /&gt;　で、XPのエディタでSamba経由で直接Perlのファイルを編集して逐次実行状態を確認していますが（勉強なので）、実行タイミングにより以下の様なエラーが発生する事に気付きました.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;Text file busy: exec of '/var/www/html/nandeyanen/test.cgi' faild&lt;/div&gt;　※当然実行時のブラウザにはPerlにつき物の「Internal Server Error」が表示されます&lt;br /&gt;&lt;br /&gt;　んが？&lt;br /&gt;　なんじゃそりゃ？&lt;br /&gt;　同一コードでもタイミングによって成功したり…&lt;br /&gt;　これはどうやらPerlコードの問題じゃないな、と思い調べてみると、Sambaでのファイルロックが邪魔をしているらしい事が分かりました.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://kawamura.ucf.gr.jp/nikki/nik9903.html"&gt;楽園通信社日記&lt;/a&gt;（3月8日の記事）&lt;br /&gt;　※99年の記事ですw　先人達が残す膨大な情報の海に感謝&lt;br /&gt;&lt;br /&gt;　どうやらsmb.confで&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;oplocks = no&lt;/div&gt;　とする事で解決できる様です.&lt;br /&gt;　実際、上記設定でlightmaterialもエラーが解消されました.&lt;br /&gt;　この「oplocks」と言うSambaの設定は&lt;br /&gt;&lt;br /&gt;（&lt;a href="http://www3.ocn.ne.jp/~koshino/sambafaq.html"&gt;SambaFAQ&lt;/a&gt; より一部抜粋）&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;ＳＭＢではファイルを oplock(opportunistic lock,便宜的ロック)することで、そのファイルを独占的にアクセスすることができます。ファイルへのoplock権を得たクライアントは、そのファイルをアクセスしているのは自分だけであると判断し、ファイルのデータをクライアント上で積極的にキャッシュします。&lt;/div&gt;&lt;br /&gt;　と言うものであり、前述の様に「oplocks = no」とするか、または&lt;br /&gt;&lt;br /&gt;（&lt;a href="http://wiki.samba.gr.jp/mediawiki/J69"&gt;Samba-Jp&lt;/a&gt; より一部抜粋）&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;oplock break timeout パラメータの値を 50 程度に大きめにすることにより、Samba の応答を遅延させ、事象の発生を抑止することができます。&lt;/div&gt;&lt;br /&gt;　と言う設定で回避出来る問題の様です.&lt;br /&gt;　どちらかと言うと、noと設定してしまうよりは、後者の「oplock break timeout」パラメータを調整する方がサーバーの設定としては正しいかとは思います.&lt;br /&gt;&lt;br /&gt;　それにしても、PerlをやっててSambaの勉強になるとは思ってもみませんでした.&lt;br /&gt;&lt;br /&gt;　『知れば知るほど知らない事が増えていく』&lt;br /&gt;&lt;br /&gt;　エンドレスなメビウスの輪的な感慨に浸りつつ本日の勉強を続けます orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7093525428658966801?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7093525428658966801/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7093525428658966801' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7093525428658966801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7093525428658966801'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/06/text-file-busy-exec-of.html' title='Text file busy: exec of.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-5574966479104291022</id><published>2008-06-15T23:06:00.002+09:00</published><updated>2008-06-15T23:21:53.081+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='このblogについて'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>まずい.</title><content type='html'>　いや…本当に…何て言うか…まずい orz&lt;br /&gt;&lt;br /&gt;　多分7月中旬までこんな放置状態が続きますなこりゃ.&lt;br /&gt;&lt;br /&gt;　既に&lt;a href="http://lightmaterial.blogspot.com/2008/06/rdesktopwindows.html"&gt;REGZAショック&lt;/a&gt;からは立ち直りつつありますが、TVボード（ラック）買うとか&lt;a href="http://www.apple.com/jp/iphone/"&gt;iPhone&lt;/a&gt;の情報漁ったりとか&lt;a href="http://www.intel.co.jp/jp/personal/products/mids/index.htm"&gt;Netbook&lt;/a&gt;の情報漁ったりとか&lt;a href="http://japanese.engadget.com/tag/EeeBox/"&gt;EeeBox&lt;/a&gt;の情報漁ったりとか…&lt;br /&gt;　全然勉強する精神状態にありませんから orz&lt;br /&gt;&lt;br /&gt;　TVボードは昨日注文したし、Netbookは&lt;a href="http://global.msi.com.tw/index.php?func=proddesc&amp;prod_no=1474&amp;maincat_no=135&amp;cat2_no=582"&gt;MSIのWind&lt;/a&gt;で十中八九決定、iPhoneはもともとSoftbankユーザーなので16GBは決定で、後は色を黒にするか白にするかの選択だけ.&lt;br /&gt;　Windの国内販売が（&lt;a href="http://journal.mycom.co.jp/articles/2008/06/12/u100/index.html"&gt;レビュー記事&lt;/a&gt;が本当なら）6月末〜7月上旬予定、iPhoneが7月11日発売と.&lt;br /&gt;&lt;br /&gt;　そして入手後に一通りいじくり倒して7月中旬には普段の生活に戻る！！！…はずw&lt;br /&gt;&lt;br /&gt;　正直REGZA入手後の5月から生活リズムがグダグダです.&lt;br /&gt;　こんな事なら買わなければ良かったとすら思…いや、思わないかw&lt;br /&gt;&lt;br /&gt;　それにしても、デジタル系が好きな人にはたまらない6月下旬〜7月中旬となってますねぇ.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-5574966479104291022?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/5574966479104291022/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=5574966479104291022' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5574966479104291022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5574966479104291022'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/06/blog-post.html' title='まずい.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-5033611262494715132</id><published>2008-06-01T03:11:00.006+09:00</published><updated>2008-06-01T03:52:40.679+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>rdesktopからWindowsをシャットダウンしてみた.</title><content type='html'>　久しぶりの更新.&lt;br /&gt;　何を血迷ったか最近REGZAを買ってしまい、PCでテレビを見ていたlightmaterialはPCどころでは無くTVに釘付けです orz&lt;br /&gt;　正直、テレビはPCじゃなくテレビ受像機で見るものだと再認識した次第で.&lt;br /&gt;&lt;br /&gt;　そんな廃人状態から抜け出しつつある今日この頃.&lt;br /&gt;　最近Linux機からWindows機（ディスプレイはREGZAとなりましたｗ）を&lt;a href="http://www.rdesktop.org/"&gt;rdesktop&lt;/a&gt;で操作する事が多くなったんですが、XPのTerminalServer機能を使用している為、rdesktop経由で手軽にシャットダウンする事が出来ません（終了メニューがログオフと切断しか無い）.&lt;br /&gt;&lt;br /&gt;　そんな訳で↓極個人的にこんなん作ってみました.&lt;br /&gt;　私以外、使い道が無いと思いますｗ&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://sites.google.com/site/lightmaterial/shutdown-windows-for-terminal-server-client/ShutdownWin.lzh?attredirects=0"&gt;Shutdown Windows For Terminal Server Client&lt;/a&gt;&lt;br /&gt;※単純に操作される側のWindowsに突っ込んで、終了したい場合にプログラムを起動.&lt;br /&gt;※あくまでも極個人的にディザスタバックアップのつもりで上げてます.&lt;br /&gt;※C#.Netで作ってるので、遊び目的で起動するなら「.Net Framework 1.1」が必要.&lt;br /&gt;　&lt;br /&gt;　まぁ、単純に↓してるだけだったり…&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;        static private void ShutdownWindows()&lt;br /&gt;        {&lt;br /&gt;            // Local variable.&lt;br /&gt;            Type type = Type.GetTypeFromProgID("Shell.Application");&lt;br /&gt;            Object shell = Activator.CreateInstance(type);&lt;br /&gt;&lt;br /&gt;            // Windowsシャットダウンダイアログ呼び出し試行.&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                type.InvokeMember("ShutdownWindows", &lt;br /&gt;                    System.Reflection.BindingFlags.InvokeMethod, &lt;br /&gt;                    null, &lt;br /&gt;                    shell, &lt;br /&gt;                    null);&lt;br /&gt;            }&lt;br /&gt;            catch (Exception ex)&lt;br /&gt;            {&lt;br /&gt;                MessageBox.Show(null, &lt;br /&gt;                    "Windowsシャットダウンダイアログの起動に失敗しました.\r\n" + &lt;br /&gt;                    "[エラー内容]\r\n" + &lt;br /&gt;                    ex.Message.ToString(), &lt;br /&gt;                    "エラー通知");&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　今はWindows機をこれでシャットダウン、起動する時はマジックパケットと言う、一切Windows機に直接触らない生活を送ってますｗ&lt;br /&gt;&lt;br /&gt;　さて、こんなバカな事してないで、さっさとOpenLDAPの勉強を再開しないと orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-5033611262494715132?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/5033611262494715132/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=5033611262494715132' title='3 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5033611262494715132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5033611262494715132'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/06/rdesktopwindows.html' title='rdesktopからWindowsをシャットダウンしてみた.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-4422127381930904223</id><published>2008-04-15T19:02:00.018+09:00</published><updated>2008-12-12T05:47:15.076+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DirectoryService'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>PHPのLDAP関数でActiveDirectoryに接続 - その3.</title><content type='html'>　今回は単純にPHPから既存のActiveDirectoryへ接続するのでは無く、ActiveDirectoryの設定（と言っても極一部 orz）とSSL経由での接続を考慮に入れた場合のメモ.&lt;br /&gt;　何故SSL経由かと言うと、ActiveDirectoryのパスワード情報をLDAP通信で変更したい場合、SSL経由の接続じゃないとサーバーに怒られるからです.&lt;br /&gt;　※変更しないなら、SSL有効時においても平文で通信可能ではあります.&lt;br /&gt;&lt;br /&gt;　// 2008-04-18 WEBサーバーにCentOS 5.1を使用した場合のメモを追加.&lt;br /&gt;　今回の主な環境.&lt;br /&gt;　　・ActiveDirectoryサーバー　…　Windows Server 2003（Std/Ent）&lt;br /&gt;　　・WEBサーバー&lt;br /&gt;　　　　Windows　…　Windows XP Professional（IIS 5.1）&lt;br /&gt;　　　　Linux　　…　CentOS 5.1（Apache2.2.3）&lt;br /&gt;　　・PHP&lt;br /&gt;　　　　Windows　…　Version 5.2.5&lt;br /&gt;　　　　※php.iniの extension=php_ldap.dll のコメントアウトを解除&lt;br /&gt;　　　　Linux　　…　Version 5.1.6&lt;br /&gt;&lt;br /&gt;　尚、今回WEBサーバー代わりとなったXPは、テスト用ActiveDirectoryには参加していません.&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;1. ActiveDirectoryのインストール.&lt;/h3&gt;&lt;br /&gt;　普通にインストールします.&lt;br /&gt;　以上.&lt;br /&gt;&lt;br /&gt;　…と思ったけどもう少し書きます.&lt;br /&gt;&lt;br /&gt;　「スタート」→「サーバーの役割管理」を選択.&lt;br /&gt;　「サーバーの役割管理」ウィンドウで「役割を追加または削除する」を選択.&lt;br /&gt;　「サーバーの構成ウィザード」ダイアログ「サーバーの役割」で「ドメインコントローラ（Active Directory）」を選択.&lt;br /&gt;&lt;br /&gt;　後はお好きな様に設定.&lt;br /&gt;　必要に応じてDNSサーバーも自動的にインストールしてくれます.&lt;br /&gt;&lt;br /&gt;　結局書いても書かなくても同じだったか orz&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;2. SSL証明書をドメインコントローラに設定.&lt;/h3&gt;&lt;br /&gt;　色々方法はある様ですが、今回は手っ取り早くWindowsサーバーの「証明書サービス」を利用します.&lt;br /&gt;　※&lt;span style="font-style:italic;"&gt;環境により、インストール中にOSのCDを要求されます.&lt;/span&gt;&lt;br /&gt;　※ここでの設定方法は独学であるため、ほぼ100%の確率で誤りがあるかと思われます.&lt;br /&gt;&lt;br /&gt;　「スタート」→「コントロールパネル」→「プログラムの追加と削除」を選択.&lt;br /&gt;　「プログラムの追加と削除」ダイアログで、左側の「Windowsコンポーネントの追加と削除(A)」ボタンを選択.&lt;br /&gt;　「Windows コンポーネント ウィザード」ダイアログの一覧から、「証明書サービス」にチェックをつけて「次へ」→「完了」を選択.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kri9yIsnLbE/SASGgC-PnuI/AAAAAAAAAIU/S3ZhFHjzw8k/s1600-h/image2449.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_kri9yIsnLbE/SASGgC-PnuI/AAAAAAAAAIU/S3ZhFHjzw8k/s320/image2449.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5189420555749531362" /&gt;&lt;/a&gt;&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/SASJ5i-PnyI/AAAAAAAAAI0/geMEdkFptnk/s1600-h/image3269.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/SASJ5i-PnyI/AAAAAAAAAI0/geMEdkFptnk/s320/image3269.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5189424292371078946" /&gt;&lt;/a&gt;&lt;br /&gt;　「CAの種類」の指定で、「エンタープライズのルートCA」を選択します.&lt;br /&gt;　「スタンドアロンのルートCA」でも行けるかもしれませんが未確認.&lt;br /&gt;　時間があれば後日入れなおしてみるかもしれません.&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;　※面倒になったのでここから画像なしで行きます orz&lt;br /&gt;&lt;br /&gt;　「CA識別情報」の指定で、共通名に適当（適切）な名称を指定します.&lt;br /&gt;　ここで指定した名称は、証明書の名称であったり、識別名（ダイアログの下の方）で参照されます.&lt;br /&gt;　「証明書データベース」の指定では構成情報の保存場所を指定しますが、後からここに出力されたセキュリティ証明書（*.crt）を参照する事になるので、分かりやすい場所がいいかと思います&lt;span style="font-style:italic; color: #ff0000"&gt;※1&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;　インストール後、「スタート」→「コントロールパネル」→「管理ツール」→「証明機関」と言う項目が増えます.&lt;br /&gt;&lt;br /&gt;　基本的には、この段階でActiveDirectoryのSSL通信がサポートされている…はずです.&lt;br /&gt;　続いて実際に通信の為のセキュリティ設定を行います.&lt;br /&gt;&lt;br /&gt;　「スタート」→「コントロールパネル」→「管理ツール」→「既定のドメイン セキュリティの設定」を選択.&lt;br /&gt;　「既定のドメイン セキュリティの設定」ウィンドウの左ペイン（ツリー）から、「セキュリティの設定」→「公開キーのポリシー」→「信頼されたルート証明機関」を右クリックしてプロパティを開きます.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kri9yIsnLbE/SASN8S-Pn0I/AAAAAAAAAJE/ClPT2cQcv6Q/s1600-h/%E4%BF%A1%E9%A0%BC%E3%81%95%E3%82%8C%E3%81%9F%E3%83%AB%E3%83%BC%E3%83%88%E8%A8%BC%E6%98%8E%E6%A9%9F%E9%96%A2%E3%81%AE%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3.PNG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_kri9yIsnLbE/SASN8S-Pn0I/AAAAAAAAAJE/ClPT2cQcv6Q/s320/%E4%BF%A1%E9%A0%BC%E3%81%95%E3%82%8C%E3%81%9F%E3%83%AB%E3%83%BC%E3%83%88%E8%A8%BC%E6%98%8E%E6%A9%9F%E9%96%A2%E3%81%AE%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5189428737662230338" /&gt;&lt;/a&gt;　&lt;span style="text-decoration:line-through;"&gt;ここで「登録された Active Directory およびユーザープリンシパル名（UPN）の名前制約条件を満たす証明機関(D)」を選択しないと、SSLを有効にした状態ではPHPからユーザー情報の編集が出来ませんでした.&lt;br /&gt;　…私が他の設定を抜かしているだけかもしれませんけどｗ&lt;/span&gt;&lt;br /&gt;　// 2008-04-18 追記 ↑まったく関係ありませんでした orz&lt;br /&gt;&lt;br /&gt;　上記項目選択後、「OK」ボタンを選択してプロパティ画面を終了します.&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;　再度「信頼されたルート証明機関」を右クリックし、「インポート」を選択します.&lt;br /&gt;&lt;br /&gt;　「証明書のインポート ウィザード」で「次へ」→ファイルの指定で、本文『※1』で指定したフォルダにある「****.crt」を指定→「次へ」→「次へ」（選択不可になってるはず）→「完了」を選択して、証明書をインポートします.&lt;br /&gt;&lt;br /&gt;　「スタート」→「ファイル名を指定して実行」で&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;gpupdate /Force&lt;/div&gt;　と入力し、ポリシーを最新の状態に更新します.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold; text-decoration:underline;"&gt;【WEBサーバーがLinuxの場合のみ、以下を追加で実行】&lt;/span&gt;&lt;br /&gt;　「スタート」→「コントロールパネル」→「管理ツール」→「証明機関」を選択.&lt;br /&gt;　「証明機関」スナップインで、左ペインのツリーから目的のサーバーを探します…と言っても、多分ひとつだけしか無いと思いますけどｗ&lt;br /&gt;　目的のサーバーを右クリック→「プロパティ」→「全般」タブの「CA証明書」一覧で証明書（多分「証明書 #0」と言う様な名称）が選択されている事を確認して「証明書の表示」ボタン選択.&lt;br /&gt;　更に出てきたダイアログの「詳細」タブを選択→「ファイルにコピー」ボタン選択.&lt;br /&gt;　「証明書のエクスポート ウィザード」で「次へ」→「Base 64 encoded X509（CER）(S)」を選択して「次へ」→保存パスを指定して「次へ」→「完了」ボタンを選択して証明書をエクスポートします&lt;span style="font-style:italic; color: #ff0000"&gt;※2&lt;/span&gt;.&lt;br /&gt;　後でWEBサーバーにエクスポートしたCERファイルを渡す必要があるので、その点を考慮して保存パスを指定した方が良いかと思われます.&lt;br /&gt;&lt;br /&gt;※画像が無いので説明が分かり難いかも…英語だけど→「&lt;a href="http://adldap.sourceforge.net/wiki/doku.php?id=ldap_over_ssl"&gt;LDAP over SSL - Modifying Active Directory with PHP&lt;/a&gt;」の方が分かり易いかもしれません.&lt;br /&gt;&lt;br /&gt;　これでActiveDirectoryサーバー側の設定は終了です（本当かどうかは知りませんがｗ）.&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;3. SSL証明書をWEBサーバーに設定.&lt;/h3&gt;&lt;br /&gt;　次に、ActiveDirectoryサーバー（本当は証明書サーバーですが）で生成した証明書をWEBサーバー機に設定します.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold; text-decoration:underline;"&gt;【Windowsの場合】&lt;/span&gt;&lt;br /&gt;　「スタート」→「ファイル名を指定して実行」で&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;mmc&lt;/div&gt;　と入力し、管理用コンソール（GUIです）を起動します.&lt;br /&gt;　スナップインとかMMCとか言われているアレです.&lt;br /&gt;&lt;br /&gt;　コンソールのメニューから「ファイル」→「スナップインの追加と削除」を選択し、「スナップインの追加と削除」ダイアログを表示します.&lt;br /&gt;　上記ダイアログの「追加」ボタン（ダイアログ下部）を選択し、「スタンドアロン スナップインの追加」ダイアログを表示します.&lt;br /&gt;　スナップインの一覧が表示されているので、一覧の下の方にある「証明書」を選択状態にして「追加」ボタンを選択します.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/SASTfi-Pn1I/AAAAAAAAAJM/ikrAjsMX95E/s1600-h/image4611.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/SASTfi-Pn1I/AAAAAAAAAJM/ikrAjsMX95E/s320/image4611.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5189434840810757970" /&gt;&lt;/a&gt;　更にもうひとつ「証明書スナップイン」と言うダイアログが表示されますので、「コンピュータアカウント」を選択し「次へ」.&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/SASTfi-Pn2I/AAAAAAAAAJU/gnXF1KGawpk/s1600-h/image4729.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/SASTfi-Pn2I/AAAAAAAAAJU/gnXF1KGawpk/s320/image4729.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5189434840810757986" /&gt;&lt;/a&gt;　管理対象に「ローカルコンピュータ（このコンソールを実行しているコンピュータ）」が選択されている事を確認し、「完了」を選択します.&lt;br /&gt;　「スタンドアロン スナップインの追加」ダイアログの「閉じる」ボタンを選択します.&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kri9yIsnLbE/SASTfy-Pn3I/AAAAAAAAAJc/S9Py6BDow28/s1600-h/image4796.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_kri9yIsnLbE/SASTfy-Pn3I/AAAAAAAAAJc/S9Py6BDow28/s320/image4796.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5189434845105725298" /&gt;&lt;/a&gt;　「スナップインの追加と削除」ダイアログの空だった一覧に「証明書」が追加されている事を確認して、「OK」ボタンを選択します.&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kri9yIsnLbE/SASUUC-Pn4I/AAAAAAAAAJk/HB3ZBHp-D_Q/s1600-h/%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%B9%E3%83%8A%E3%83%83%E3%83%97%E3%82%A4%E3%83%B3%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB.PNG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_kri9yIsnLbE/SASUUC-Pn4I/AAAAAAAAAJk/HB3ZBHp-D_Q/s320/%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%B9%E3%83%8A%E3%83%83%E3%83%97%E3%82%A4%E3%83%B3%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5189435742753890178" /&gt;&lt;/a&gt;　証明書の分類一覧がツリー表示されたコンソールが表示されるので、「信頼されたルート証明機関」を右クリック→「すべてのタスク」→「インポート」を選択します.&lt;br /&gt;　本文『※1』で出力した「***.crt」ファイルを選択→「次へ」→「証明書をすべて次のストアに配置する」が選択されている事を確認して「次へ」→「完了」を選択し、証明書をインポートします.&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　あー長い orz&lt;br /&gt;&lt;br /&gt;　この段階で、正常に設定が完了しているか確認するには、Windows Server 2003のCDに入っている「ldp.exe」を使うのが良いかと思います.&lt;br /&gt;　インストーラの保存パスは&lt;br /&gt;　　[CD]:\SUPPORT\TOOLS\SUPTOOLS.exe&lt;br /&gt;　です.&lt;br /&gt;　このインストーラでインストール後、&lt;br /&gt;　　C:\Program Files\Support Tools\ldp.exe&lt;br /&gt;　を起動します.&lt;br /&gt;　使い方は…面倒なのでヘルプ参照でｗ&lt;br /&gt;&lt;br /&gt;　ちなみに、既にPHPでLDAP接続を試してて「つながんねぇ～！！」という状況の場合は、IISを再起動させる必要があります（コード上で接続プールをクリア出来るのかもしれませんが、私は知りませんので再起動 orz）.&lt;br /&gt;&lt;br /&gt;　「スタート」→「ファイル名を指定して実行」で「cmd」と入力してEnter.&lt;br /&gt;　出てきたコマンドプロンプトで&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;C:\&gt; net stop w3svc&lt;br /&gt;C:\&gt; net start w3svc&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold; text-decoration:underline;"&gt;【Linuxの場合】&lt;/span&gt;&lt;br /&gt;　OpenSSLの力を借りてCERをPEMにコンバートし、ldap.confに鍵情報を追加設定します.&lt;br /&gt;　本文『※2』で出力したCERファイルが「export.cer」と言う名称であったと仮定した場合のコマンドは次の通りです.&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@centos]# openssl x509 -in export.cer -out export.pem&lt;br /&gt;[??@centos]# cp export.pem /path to openldap/cacerts/export.pem&lt;br /&gt;[??@centos]# vi /path to ldap.conf&lt;br /&gt;# 以下、変更箇所&lt;br /&gt;host lightmaterial.example.com&lt;br /&gt;base dc=lightmaterial,dc=example,dc=com&lt;br /&gt;uri ldaps://lightmaterial.example.com&lt;br /&gt;# 以下、追加文言&lt;br /&gt;TLS_CACERT /path to openldap/cacerts/export.pem&lt;br /&gt;TLS_REQCERT never&lt;br /&gt;# 保存&lt;br /&gt;[??@centos]# /etc/init.d/httpd restart&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　これでWEBサーバー側の設定は終了.&lt;br /&gt;　後はコードを書くだけだ.&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;4. PHPからSSL経由でActiveDirectoryに接続してみる.&lt;/h3&gt;&lt;br /&gt;　ここでは、ActiveDirectoryに以下のユーザー情報が登録されているものとします.&lt;br /&gt;　・sAMAccountName=t_hokkaido&lt;br /&gt;　・cn=北海道 太郎 T.H&lt;br /&gt;　　　sn　…　北海道&lt;br /&gt;　　　givenName　…　太郎&lt;br /&gt;　　　initial　…　T.H&lt;br /&gt;　・SELFオブジェクトのアクセス許可&lt;br /&gt;　　　パスワードのリセット　…　ON&lt;br /&gt;　　　パスワードの変更　…　ON&lt;br /&gt;&lt;br /&gt;　尚、上記のアクセス許可を確認するには「Active Directory ユーザーとコンピュータ」右ペインの何も無い所で右クリック→「表示」→「拡張機能」を選択した状態で、各ユーザーのプロパティを開き、「セキュリティ」タブのユーザー一覧から「SELF」を選択する事で確認出来ます.&lt;br /&gt;　別に「パスワードの変更」だけでも良さそうですが、「パスワードのリセット」も選択しないとパスワード変更出来ませんでした…またバカなミス(文末追記参照)をしてるのかもしれませんが orz&lt;br /&gt;&lt;br /&gt;　ActiveDirectoryの情報は次の通りとします.&lt;br /&gt;　・DN　…　OU=Sapporo,DC=lightmaterial,DC=example,DC=com&lt;br /&gt;&lt;br /&gt;　こっからはさっさと行きます.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Windows環境下では、↓の環境設定をしなければ接続時にエラーが出ます.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;putenv('LDAPTLS_REQCERT=never')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;or die("couldn't setup reqcert-environment...");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// LDAPSを用いてドメインを指定しつつ接続.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ※ActiveDirectoryがSSL接続時に使用する標準ポートは「636」です.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$ldapConn = ldap_connect('ldaps://lightmaterial.example.com', 636)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;or die("couldn't connect to LDAP Server...");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// オプション設定.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// すべて設定しないと、Windows環境では上手くつながらない場合があります.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ldap_set_option($ldapConn, LDAP_OPT_PROTOCOL_VERSION, 3)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;or die("couldn't set protocol version...");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ldap_set_option($ldapConn, LDAP_OPT_REFERRALS, 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;or die("couldn't set referrals...");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// バインド.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ($ldapConn) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ldap_bind($ldapConn, 't_hokkaido@lightmaterial.example.com', 'this_is_password')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;or die("ldap_binding get an error.&amp;lt;br&amp;gt;reasons... " . ldap_error($ldapConn) . "&amp;lt;br&amp;gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo "ldap_binding is success.&amp;lt;br&amp;gt;";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ログインユーザーの情報を検索してみる.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (! ($result = ldap_search($ldapConn, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'OU=Sapporo,DC=lightmaterial,DC=example,DC=com', &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'(sAMAccountName=t_hokkaido)', &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;array('cn', 'sn', 'givenName', 'displayName', 'sAMAccountName')))) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ユーザー情報が見つかりません.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo "user not found.";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 今回はパスワードを変更してみる.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// パスワード文字列を加工してあるのは、渡す値がUnicode文字列である為.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ※パスワード文字列は「"」（ダブルクォーテーション）で囲む必要があります.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$plainPasswd = '"this_is_new_password"';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$length = strlen($plainPasswd);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$unicodePasswd = '';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for ($position=0; $position&lt;$length; $position++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$unicodePasswd .= "{$plainPasswd{$position}}\000";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ldap_modifyを使って実際に属性値を更新（ldap_mod_replaceでもOK）.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ちなみに、パスワード変更後も変更前のパスワードで認証出来てしまう場合は、&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 2回ldap_modifyしてあげるしか対処法は無さそうです.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 多分ldap_unbindしてもログオフした事にならないのが原因だと思います.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ldap_modify($ldapConn, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ldap_get_dn($ldapConn, ldap_first_entry($ldapConn, $result)), &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;array("unicodePwd" =&gt; $unicodePasswd));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// バインド開放（クローズ）.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ldap_unbind($ldapConn);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo "fin.";&lt;/div&gt;　これまでの設定に間違いが無く、且つ私がボケていなければLDAPSで接続した上でパスワードを変更出来たはずです.&lt;br /&gt;&lt;br /&gt;　長かった…&lt;br /&gt;　またしばらく長い投稿は止めよう orz&lt;br /&gt;&lt;br /&gt;　今回は、かなり参照させてもらったサイトがありますので、一応↓に挙げておきます（100%自己メモ）.&lt;br /&gt;&lt;br /&gt;[参照サイト]&lt;br /&gt;　・&lt;a href="http://support.microsoft.com/kb/224543"&gt;Using Ldp.exe to Find Data in the Active Directory&lt;/a&gt;&lt;br /&gt;　・&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;247078"&gt;How To Enable Secure Socket Layer (SSL) Communication over LDAP for Windows 2000 Domain Controllers&lt;/a&gt;&lt;br /&gt;　・&lt;a href="http://adldap.sourceforge.net/wiki/doku.php?id=ldap_over_ssl"&gt;LDAP over SSL - Modifying Active Directory with PHP&lt;/a&gt;&lt;br /&gt;　・&lt;a href="http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=2871482&amp;SiteID=17"&gt;unicodepwd and ldifde&lt;/a&gt;&lt;br /&gt;　・&lt;a href="http://jp.php.net/manual/ja/ref.ldap.php"&gt;PHPマニュアル LDAP関数&lt;/a&gt;&lt;br /&gt;　　※↑このページの下の方の英語でかかれたnoteに情報がある.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;注）この投稿…投稿してはミス発覚の連続で10回くらい修正してます orz&lt;br /&gt;　そろそろ本気で直書き止めるかな…&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;&amp;nbsp;* 2008-04-18 追記/修正.&lt;br /&gt;&amp;nbsp;* 　・WEBサーバーにCentOS追加&lt;br /&gt;&amp;nbsp;* 　・DNにbloggerと使っていたものをexampleに変更&lt;br /&gt;&amp;nbsp;* 　・下記問題に対応&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;　はい、アホ過ぎます orz&lt;br /&gt;&lt;br /&gt;　投稿当初、認証ユーザーが「Account Operators」に属している必要がある…と書きましたが、これが何も変更出来なくなる一番の原因だった様です（本文を見直した時に邪魔なので、斜線ではなく該当する文言ごと削除しました）.&lt;br /&gt;&lt;br /&gt;【現象】&lt;br /&gt;　1. 「Account Operators」に属するユーザーで認証（ldap_bind）&lt;br /&gt;　2. 自身のエントリーを取得&lt;br /&gt;　3. パスワード変更→正常に処理完了&lt;br /&gt;　4. しばらく普通に属性の変更やパスワードを再変更出来る&lt;br /&gt;　5. 何かの拍子に何の属性も変更出来なくなる&lt;br /&gt;&lt;br /&gt;【原因】&lt;br /&gt;　何も変更出来なくなった状態のユーザーを改めて確認すると、所属するグループに「Account Operators」が登録されているが、「セキュリティ」タブのグループから「Account Operators」が消えていた.&lt;br /&gt;　更に「SELF」のアクセス許可が「パスワード変更」のみONになっていた（それ以外はすべてOFF）.&lt;br /&gt;&lt;br /&gt;　つまる所、「Account Operators」権限で自分自身のパスワードをむやみに変更すると、何か変な事になる、と言う事ですね！！&lt;br /&gt;　…全然つまってないじゃん orz&lt;br /&gt;&lt;br /&gt;　何でこんな事になるのか分かりませんが、また時間を作って原因追求と言うか解析してみたいと思います.&lt;br /&gt;　本当に無駄な時間過ごしたなぁ…&lt;br /&gt;&lt;br /&gt;　あ、直しついでに「WEBサーバーとしてLinux（CentOS）を使った場合」も追記しました.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-4422127381930904223?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/4422127381930904223/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=4422127381930904223' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4422127381930904223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4422127381930904223'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/04/phpldapactivedirectory-3.html' title='PHPのLDAP関数でActiveDirectoryに接続 - その3.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kri9yIsnLbE/SASGgC-PnuI/AAAAAAAAAIU/S3ZhFHjzw8k/s72-c/image2449.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-1697602721394519796</id><published>2008-04-14T20:22:00.004+09:00</published><updated>2008-12-12T05:47:15.253+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='WebService'/><title type='text'>AjaxなOS - icloud.</title><content type='html'>　かなーり前にベータのアカウント登録していた&lt;a href="http://xcerion.com/"&gt;Xcerion&lt;/a&gt;の&lt;a href="http://icloud.com/"&gt;icloud&lt;/a&gt;.&lt;br /&gt;　ようやく連絡のメールが来たので、早速触ってみました.&lt;br /&gt;&lt;br /&gt;　↓こんな感じ.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/SANAFy-PntI/AAAAAAAAAIM/fT7dr5yQdxk/s1600-h/icloud.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/SANAFy-PntI/AAAAAAAAAIM/fT7dr5yQdxk/s320/icloud.PNG" alt="" id="BLOGGER_PHOTO_ID_5189061663987310290" border="0" /&gt;&lt;/a&gt;&lt;div style="clear: both;"&gt;&lt;/div&gt;　&lt;a href="http://www.itmedia.co.jp/bizid/articles/0703/15/news099.html"&gt;gooのAjax使ったOS&lt;/a&gt;とか&lt;a href="http://lightmaterial.blogspot.com/2007/10/ajaxwindows-ajaxos.html"&gt;ajaxOS&lt;/a&gt;とかよりも現実的なWEBアプリケーションに仕上がっています.&lt;br /&gt;　と言うか、まともに動くAjaxなOSを初めて触った気がしなくもないですｗ&lt;br /&gt;&lt;br /&gt;　現在の所IE限定の様ですが（Firefoxだと怒られた）、動作が比較的軽快で好感が持てます.&lt;br /&gt;　更に洗練されると、将来的に「もしかすると…」と言う事になるかもしれません.&lt;br /&gt;　※↑妄想.あくまでもAjaxなOSですので、過度な期待は厳禁です.&lt;br /&gt;&lt;br /&gt;　さて、寝る前に夢見てないでさっさと帰ろう orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-1697602721394519796?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/1697602721394519796/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=1697602721394519796' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/1697602721394519796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/1697602721394519796'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/04/ajaxos-icloud.html' title='AjaxなOS - icloud.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kri9yIsnLbE/SANAFy-PntI/AAAAAAAAAIM/fT7dr5yQdxk/s72-c/icloud.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7898508214992393545</id><published>2008-04-11T19:53:00.003+09:00</published><updated>2008-04-11T20:14:24.766+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DirectoryService'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>グループ ポリシー管理コンソール（GPMC）.</title><content type='html'>　と言う凄く便利なツール（コンソール）がある事を今日初めて知りました orz&lt;br /&gt;　会社の人が何やら見慣れぬコンソールを操作していたので、何かなぁと思いつつ検索かけたら出てくる出てくる.&lt;br /&gt;　「ActiveDirectory触った事あるなら、知ってて当たり前でしょｗ」と言われそうなくらい凄く有名らしい.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=ja&amp;FamilyID=0a6d4c24-8cbd-4b35-9272-dd3cbfc81887"&gt;グループ ポリシー管理コンソール (GPMC) Service Pack 1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://www.microsoft.com/japan/windowsserver2003/gpmc/gpmcwp.mspx"&gt;GPMC でのグループ ポリシーの管理&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　何が便利って、設定のレポートで変更内容が一目瞭然な点.&lt;br /&gt;　これは本当に便利.&lt;br /&gt;　複数のフォレストを管理出来るのも便利そうですが、私には理解不能な世界です.&lt;br /&gt;　バックアップ、リストアについての管理機能もあり、これも良さそうです.&lt;br /&gt;&lt;br /&gt;　それにしても…GPMCにしろリソースキットにしろ、これだけ便利なんだから、OSインストール（と言うか各機能追加）時に「こう言った機能を提供するツールがありますよ。ついでにインストールしますか？」みたいに提供してくれればいいと思うんですけどねぇ…&lt;br /&gt;&lt;br /&gt;　ま、最終的に無知な私がすべて悪いと言う事で終了します.&lt;br /&gt;　お疲れ様でした、自分 orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7898508214992393545?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7898508214992393545/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7898508214992393545' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7898508214992393545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7898508214992393545'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/04/gpmc.html' title='グループ ポリシー管理コンソール（GPMC）.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-329980780714462097</id><published>2008-04-06T19:08:00.006+09:00</published><updated>2008-04-06T21:25:31.431+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DirectoryService'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>OpenLDAPのconfigure時にBerkeley DB version mismatch.</title><content type='html'>　と言う事で見事につまずきました orz&lt;br /&gt;　make uninstallがあるのにStow使ってインストールしようとしたのが悪かったかなぁ？&lt;br /&gt;　と言うか、それ以前にOpenLDAPにBerkeleyDBが必要な事自体、まったく知りませんでしたから orz&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@debian]#  tar xvzf db-4.6.21.tar.gz&lt;br /&gt;[??@debian]# cd db-4.6.21/build_unix&lt;br /&gt;[??@debian]# ../dist/configure --prefix=/usr/local/stow/BerkeleyDB&lt;br /&gt;[??@debian]# make&lt;br /&gt;[??@debian]# su root -c 'make install'&lt;/div&gt;　※例にStowで管理してみようと思ったが為にPrefixでStow用のディレクトリ配下を指定&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@debian]# cd /usr/local/stow&lt;br /&gt;[??@debian]# su root -c 'stow BerkeleyDB'&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　ここまでは全然OKです.&lt;br /&gt;　Stowでインストール管理も出来ます（しつこい様ですが、BerkeleyDBにはmake uninstallがありますw）.&lt;br /&gt;&lt;br /&gt;　そして本題のOpenLDAPです.&lt;br /&gt;　これもStow配下へのインストールを試みます.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@debian]#  tar xvzf openldap-2.4.8.tgz&lt;br /&gt;[??@debian]# openldap-2.4.8/configure --prefix=/usr/local/stow/openldap&lt;br /&gt;Configuring OpenLDAP 2.4.8-Release ...&lt;br /&gt;[中略]&lt;br /&gt;checking for db.h... yes&lt;br /&gt;checking for Berkeley DB major version... 4&lt;br /&gt;checking for Berkeley DB minor version... 6&lt;br /&gt;checking for Berkeley DB link (-ldb-4.6)... yes&lt;br /&gt;checking for Berkeley DB version match... no&lt;br /&gt;configure: error: Berkeley DB version mismatch&lt;/div&gt;　※Prefixを付けて標準以外のディレクトリにインストールすると、db.hのチェックで見付けられない可能性があります.今回はStowでインストールかましているのでパスが通っています.&lt;br /&gt;&lt;br /&gt;　おうぷし orz&lt;br /&gt;　思い切りエラーが出やがります.&lt;br /&gt;　バージョンが合わないって…おかしい.&lt;br /&gt;　ここ↓を見てバージョンに間違いない事を確認したはずなんだけどなぁ…&lt;br /&gt;　&lt;a href="http://www.openldap.org/doc/admin24/appendix-recommended-versions.html"&gt;D. Recommended OpenLDAP Software Dependency Versions&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　と言う事でいつもの如く他力本願で検索ごー！&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://forums.devshed.com/ldap-programming-76/configure-error-berkeley-db-version-mismatch-181705.html"&gt;LDAP Programming&lt;/a&gt;（のフォーラムらしい）&lt;br /&gt;　※検索すると日本語ページの結果が出てきましたが、多分そこの情報を鵜呑みにすると面倒な事になります.&lt;br /&gt;&lt;br /&gt;　ここの下の方を見ると&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;export CPPFLAGS="-I/usr/local/BerkeleyDB.4.2/include"&lt;br /&gt;export LDFLAGS="-L/usr/local/BerkeleyDB.4.2/lib"&lt;br /&gt;export LD_LIBRARY_PATH="/usr/local/BerkeleyDB.4.2/lib/"&lt;/div&gt;&lt;br /&gt;　と書いてあるので、どうやらパスが通ってないらしい.&lt;br /&gt;　だったらエラーメッセージに「パスが通ってねーんだよコンチクショー！」と出力してくれればいいものを orz&lt;br /&gt;　何故メッセージが「version mismatch」？&lt;br /&gt;&lt;br /&gt;　と言う事で、いつまた再インストールやら設定変更するか分かりませんので、何度もexportする必要が無い様にldを使います.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@debian]#  su&lt;br /&gt;[debian]# echo /usr/local/stow/BerkeleyDB/include &gt;&gt; /etc/ld.so.conf.d/BerkeleyDB.conf&lt;br /&gt;[debian]# echo /usr/local/stow/BerkeleyDB/lib &gt;&gt; /etc/ld.so.conf.d/BerkeleyDB.conf&lt;br /&gt;[debian]# ldconfig&lt;br /&gt;[debian]# exit&lt;/div&gt;&lt;br /&gt;　これでパスが通ってる「はず」なので、もう一度configureを実行してみます.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@debian]#  openldap-2.4.8/configure --prefix=/usr/local/stow/openldap&lt;br /&gt;Configuring OpenLDAP 2.4.8-Release ...&lt;br /&gt;[中略]&lt;br /&gt;checking for db.h... yes&lt;br /&gt;checking for Berkeley DB major version... 4&lt;br /&gt;checking for Berkeley DB minor version... 6&lt;br /&gt;checking for Berkeley DB link (-ldb-4.6)... yes&lt;br /&gt;checking for Berkeley DB version match... yes&lt;br /&gt;checking for Berkeley DB thread support... yes&lt;br /&gt;checking Berkeley DB version for BDB/HDB backends... yes&lt;br /&gt;[中略]&lt;br /&gt;Making servers/slapd/backends.c&lt;br /&gt;    Add config ...&lt;br /&gt;    Add ldif ...&lt;br /&gt;    Add monitor ...&lt;br /&gt;    Add bdb ...&lt;br /&gt;    Add hdb ...&lt;br /&gt;    Add relay ...&lt;br /&gt;Making servers/slapd/overlays/statover.c&lt;br /&gt;    Add seqmod ...&lt;br /&gt;    Add syncprov ...&lt;br /&gt;Please run "make depend" to build dependencies&lt;br /&gt;[??@debian]# make depend&lt;br /&gt;[??@debian]# make&lt;br /&gt;[??@debian]# su root -c 'make install'&lt;br /&gt;[??@debian]# cd /usr/local/stow&lt;br /&gt;[??@debian]# su root -c 'stow openldap'&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　はい、OKそうです…実際に動くかは試してませんがw&lt;br /&gt;　まぁ、ここまでくればなんとかなりそうです.&lt;br /&gt;&lt;br /&gt;　それにしても、OpenLDAPを動かすのって結構面倒です.&lt;br /&gt;　今回は素で入れてますが、実際にはオプションなんか指定する必要があるはずですので、その辺の調査も必要ですし.&lt;br /&gt;&lt;br /&gt;※本文修正３回以上 orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-329980780714462097?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/329980780714462097/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=329980780714462097' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/329980780714462097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/329980780714462097'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/04/openldapconfigureberkeley-db-version.html' title='OpenLDAPのconfigure時にBerkeley DB version mismatch.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-463416808635151934</id><published>2008-04-06T16:18:00.005+09:00</published><updated>2008-12-12T05:47:15.438+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Debian4.0(etch)を入れてみた.</title><content type='html'>　先日Debian3.1(sarge)を入れた訳ですが、Debian4.0（etch）のnetinstall版CDを知人から入手した（相変わらずライタブルなドライブが壊れてて自分じゃ書き込めない orz）ので、『インストールしただけのSargeを消して』etchをインストールしましたw&lt;br /&gt;　まぁ、思い切り一年以上前にリリースされたOSなので、今さらかいっ！と言う感じがするのは気づかなかった事にします.&lt;br /&gt;&lt;br /&gt;　何やらインストール時にGUIな環境で出来るという話だったのですが、自宅の古物商で取り扱ってそうなPCではGUIがこけてダメでした.&lt;br /&gt;　諦めてテキストインストールで続行しましたが、インストールプロセスが結構シンプルになった様で、質問（設定）項目も少なくなってました.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/R_h675XacFI/AAAAAAAAAIE/sNw10w2Cbs4/s1600-h/Screenshot.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/R_h675XacFI/AAAAAAAAAIE/sNw10w2Cbs4/s320/Screenshot.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5186030140347019346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　おお、何か小綺麗になりましたよ、全体的にw&lt;br /&gt;　ただ、Gnomeのせいかウィンドウマネージャが変わったのか知りませんが、多少デスクトップ環境の動作が『もっさり』しています.&lt;br /&gt;　…Pen3 550MHzのPCだから仕方ないんですけど orz&lt;br /&gt;&lt;br /&gt;　何より驚いたのが「フォントが綺麗になっている」点です.&lt;br /&gt;　どうも平仮名の部分を見ると「&lt;a href="http://mplus-fonts.sourceforge.jp/"&gt;M+ Fonts&lt;/a&gt;」と同じ様な気がします.&lt;br /&gt;　ちょっと検索してみようか……ヨクワカラナカッタノデナカッタコトニ.&lt;br /&gt;&lt;br /&gt;　今までと違いデフォルトフォントでも余り気にならないので、一応「&lt;a href="http://mix-mplus-ipa.sourceforge.jp/"&gt;M+ と IPAフォントの合成フォント&lt;/a&gt;」を&lt;a href="http://lightmaterial.blogspot.com/2008/03/debian.html"&gt;インストールしました&lt;/a&gt;けど、このままいけそうです.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-463416808635151934?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/463416808635151934/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=463416808635151934' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/463416808635151934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/463416808635151934'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/04/debian40etch.html' title='Debian4.0(etch)を入れてみた.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kri9yIsnLbE/R_h675XacFI/AAAAAAAAAIE/sNw10w2Cbs4/s72-c/Screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-4504796947910115928</id><published>2008-04-05T18:15:00.003+09:00</published><updated>2008-04-05T18:39:28.318+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>ドライバは \Device\Harddisk0 でコントローラ エラーを検出しました.</title><content type='html'>　とある事情でHDDを換装し、別のOSをインストール.&lt;br /&gt;　入れたOSはWindows Server 2003（テスト用途なので、もちろんMSDN版ですが）.&lt;br /&gt;&lt;br /&gt;　で、Subversion等々を入れて某環境を再現していたんですが、どうにもOS自体の動きが遅い様な気が……&lt;br /&gt;　ハードウェアスペックもほぼ同等なはずなのに、です.&lt;br /&gt;&lt;br /&gt;　はて？&lt;br /&gt;　何だろう？&lt;br /&gt;　普通に考えればインストールしたてのこっちの方が快適に動くはずなんだけどなぁ…と.&lt;br /&gt;　原因が思い当たらなかったので、イベントログに何か出てないかチェックしてみると、以下の様なログが吐き出されていました.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;日付: 2008/99/99&lt;br /&gt;時刻: 99:99:99&lt;br /&gt;種類: エラー&lt;br /&gt;ユーザー: N/A&lt;br /&gt;コンピュータ: LM-SERVER&lt;br /&gt;ソース: Disk&lt;br /&gt;分類: なし&lt;br /&gt;イベントID: 11&lt;br /&gt;&lt;br /&gt;ドライバは \Device\Harddisk0 でコントローラ エラーを検出しました。&lt;br /&gt;&lt;br /&gt;詳細な情報は、http://go.microsoft.com/fwlink/events.asp の [ヘルプとサポート センター] を参照してください。&lt;/div&gt;&lt;br /&gt;　ありゃ？&lt;br /&gt;　もしかしてPIOモードで認識されてない、これ？&lt;br /&gt;　と、思い至り、早速デバイスマネージャで見る※と、転送モードが「PIO のみ」になっていやがるじゃないですか orz&lt;br /&gt;&lt;br /&gt;　最近こんな状態に出くわした事がなかったので、転送モードの事が頭の中から抜けかけていました.&lt;br /&gt;　う～ん何でだろう.&lt;br /&gt;　通常は何もしなくてもDMAモードに設定されてるはずだし…インストール時に何かやらかしたか？&lt;br /&gt;&lt;br /&gt;　結局PIOモードになっていた原因は分かりませんでしたが、エラーも動作の緩慢さも解消.&lt;br /&gt;　※これで直らない時はHDDにつながってるケーブルの指し直し、換装で直るかもしれません&lt;br /&gt;&lt;br /&gt;　最近忘れかけた時に懐かしのエラーに出くわす事が多くなった気が…まぁ、使ってる機材が一昔前のブツだからかと言う話もありますがｗ&lt;br /&gt;&lt;br /&gt;　そろそろPCも人生も入れ替えたい今日この頃.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;※デバイスマネージャ→IDE ATA/ATAPIコントローラ→プライマリIDEチャネル→「プロパティ」→「詳細設定」タブ→「転送モード」で確認出来ます&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-4504796947910115928?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/4504796947910115928/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=4504796947910115928' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4504796947910115928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4504796947910115928'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/04/deviceharddisk0.html' title='ドライバは \Device\Harddisk0 でコントローラ エラーを検出しました.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-49249176975038613</id><published>2008-03-30T19:08:00.008+09:00</published><updated>2008-12-12T05:47:15.604+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Debianで日本語入力環境＋フォント設定.</title><content type='html'>　OpenLDAPを色々といじろうと思い、Debian（何故か今さらSarge[=ver 3.1]）をインストール.&lt;br /&gt;　以前Tracのメモ書いた時にインストールしましたが、Ubuntuを上書きしてしまったので、再インストールと言う事に.&lt;br /&gt;&lt;br /&gt;　で、ついでにDebianについて↓を参考に基本的な所から勉強.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://www.debian.org/doc/manuals/reference/reference.ja.html"&gt;Debianリファレンス&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　こんな親切なサイトがあるなら、最初から見ておけばよかった orz&lt;br /&gt;&lt;br /&gt;　これでようやく dpkg/dselect/apt/aptitude について「なんとなく」理解.&lt;br /&gt;　後方互換はいいですが、なんか同じ様な機能で沢山コマンドがあると戸惑います.&lt;br /&gt;&lt;br /&gt;　取り合えず日本語入力が出来ない状態だったので（インストール選択が悪かったか？）、uim + uim-anthyをインストール.&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@debian]# aptitude install uim uim-anthy stow&lt;/div&gt;　※ついでに「&lt;a href="http://lightmaterial.blogspot.com/2008/03/stow.html"&gt;Stow&lt;/a&gt;」も入れたりしましたw&lt;br /&gt;&lt;br /&gt;　念のため再起動をかまします.&lt;br /&gt;　IM用のツールバーらしきものが見当たらなかったので、調べてみると「uim-toolbar-gtk」と言うものを起動するらしい.&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@debian]# uim-toolbar-gtk &amp;amp;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kri9yIsnLbE/R-9qA5XacEI/AAAAAAAAAH8/Aw7gCUD5eIw/s1600-h/Screenshot.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_kri9yIsnLbE/R-9qA5XacEI/AAAAAAAAAH8/Aw7gCUD5eIw/s320/Screenshot.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5183478259758297154" /&gt;&lt;/a&gt;&lt;br /&gt;　おお、これでなんとなく様になりました（※ツールバーは右上）.&lt;br /&gt;　常時起動するのであれば、Gnomeメニューの「アプリケーション」→「デスクトップの設定」→「拡張設定」→「セッション」で自動起動設定する事になるかと思います.&lt;br /&gt;&lt;br /&gt;　で、フォントがアレなのでスクリーンショットの通り、M+IPAフォントを導入です.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://mix-mplus-ipa.sourceforge.jp/"&gt;M+ と IPAフォントの合成フォント&lt;/a&gt;&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;　基本的にはFedoraとほとんど変わらないんですが、DebianではFontの管理を「Defoma （Debian Font Manager）」と言うもので管理する様で、その点だけ作業が異なりました.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@debian]# tar xvjf mixfont-mplus-ipa-TrueType-20060520.tar.bz2&lt;br /&gt;[??@debian]# cd opfc-ModuleHP-1.1.1_withIPAFonts_and_Mplus/fonts&lt;br /&gt;[??@debian]# mkdir /usr/share/fonts/truetype/M+IPA&lt;br /&gt;[??@debian]# cp M+* /usr/share/fonts/truetype/M+IPA/&lt;br /&gt;[??@debian]# cd /etc/defoma/hints&lt;br /&gt;[??@debian]# defoma-hints truetype /usr/share/fonts/truetype/M+IPA/*.ttf &gt; M+IPA.hints&lt;br /&gt;[??@debian]# defoma-font -td register-all M+IPA.hints&lt;br /&gt;[??@debian]# mkfontdir&lt;br /&gt;[??@debian]# mkfontscale&lt;/div&gt;　※fc-cacheが必要かも&lt;br /&gt;&lt;br /&gt;　あ〜気づいたらOpenLDAPいじる前にこんな時間だよ…&lt;br /&gt;　Debianの勉強だけで終わったじゃない orz&lt;br /&gt;&lt;br /&gt;　元々&lt;a href="http://lightmaterial.blogspot.com/2007/10/openldap-for-win32-1.html"&gt;OpenLDAP for Win32&lt;/a&gt;で勉強再開しようと思っていただけに、余計な時間をくってしまいましたが、まぁDebianの勉強が出来たという事でOKとしましょう.&lt;br /&gt;　それにしても、Debianをnetinstallすると余裕で2時間近く時間がかかります（PCの性能が酷く古いのも手伝ってますが）.&lt;br /&gt;　年々肥大化するLinuxも考え物ですよね.&lt;br /&gt;　正直Windows Server 2003の方がCD1枚30分前後でインストールが済んでしまいますからねぇ.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-49249176975038613?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/49249176975038613/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=49249176975038613' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/49249176975038613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/49249176975038613'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/03/debian.html' title='Debianで日本語入力環境＋フォント設定.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kri9yIsnLbE/R-9qA5XacEI/AAAAAAAAAH8/Aw7gCUD5eIw/s72-c/Screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-2382137789793755257</id><published>2008-03-26T20:46:00.007+09:00</published><updated>2008-04-10T20:59:52.397+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>すっかり忘れていたOutlook Expressの2GB制限.</title><content type='html'>　思い切り忘れてました orz&lt;br /&gt;&lt;br /&gt;　ここ数年Thunderbirdばかり使っていますが、会社の特定作業用PCでは諸事情によりOutlook Expressを使わなければなりません（Outlookも駄目）.&lt;br /&gt;　そのPCで今日から急にOutlook Expressの調子が悪くなり、メールの送信時に「警告」が出る様になりました.&lt;br /&gt;　メールによっては送信できたり出来なかったり…&lt;br /&gt;　ログを取ったりしても原因が分かりません.&lt;br /&gt;&lt;br /&gt;　んが、ふと思い出しました.&lt;br /&gt;　原因はそう、アレです.&lt;br /&gt;　「Outlook Expressはメールボックスが2GBを超えると何の前触れも無くメールボックスが壊れます」と言うファンタジーな仕様！&lt;br /&gt;　すーっかり忘れてましたよ、そんな制限がある事自体 orz&lt;br /&gt;&lt;br /&gt;　未だに直ってないと言うか「2GB超えそうなので注意して下さい」的なメッセージを出す様に様にすらなってない（サービスパックで直ったと思い込んでたんですが、実は2GBを超えそうになったら送受信ダイアログで「警告」としか出ないんですねコレｗ）事にも驚きましたが、あいも変わらず最適化機能が正常に動作してくれないのも素敵です.&lt;br /&gt;&lt;br /&gt;　仕方なしに「手動でメールボックス分散→メールボックス強制作り直し」で時間を大損です.&lt;br /&gt;　WindowsMailじゃもうそんな訳の分からない状態にはならないんでしょうけど、会社じゃ規定等の関係上まだまだ現役続行するしかないOutlookExpressです（Outlookも同じだし）.&lt;br /&gt;&lt;br /&gt;　むしろこんな有名な制限すら忘れる自分の脳みそ中枢が気になる今日この頃.&lt;br /&gt;　…もうロザン宇治原の脳みそを分けてもらうしかないか orz&lt;br /&gt;&lt;br /&gt;'/**&lt;br /&gt;'&amp;nbsp;* 2008-04-08 追記&lt;br /&gt;'&amp;nbsp;*/&lt;br /&gt;　Thunderbirdでも2GBを越えたらアウトって本当だろうか？&lt;br /&gt;　&lt;a href="http://app.blog.livedoor.jp/s_imai_jp/tb.cgi/50581547"&gt;http://app.blog.livedoor.jp/s_imai_jp/tb.cgi/50581547&lt;/a&gt;&lt;br /&gt;　&lt;span style="text-decoration: line-through"&gt;会社のThunderbirdの受信トレイは2GB越えていた様な気がするんですが…&lt;br /&gt;　明日確認してみよう.&lt;/span&gt;&lt;br /&gt;　[2008-04-10 追記] 2.4GBでした.&lt;br /&gt;&lt;br /&gt;　ちなみに、リンク先で「Windowのfseek」って書いてありますが、確かgccでも同じだったかと…「多分」ですけど orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-2382137789793755257?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/2382137789793755257/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=2382137789793755257' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2382137789793755257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2382137789793755257'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/03/outlook-express2gb.html' title='すっかり忘れていたOutlook Expressの2GB制限.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-2194030261926107494</id><published>2008-03-19T19:53:00.004+09:00</published><updated>2008-03-19T20:14:37.749+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Stow.</title><content type='html'>　と言う便利で素敵なソフトウェアがあるらしい.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://www.itmedia.co.jp/enterprise/articles/0803/19/news012.html"&gt;不要なパッケージを完全に削除できるインストーラー　GNU Stow&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　全然知りませんでした orz&lt;br /&gt;　いつまで経っても素人全開です.はい.&lt;br /&gt;&lt;br /&gt;　気を取り直して記事を見る限り、私が求めているものにかなり近い！&lt;br /&gt;&lt;ol&gt;&lt;li&gt;パッケージだとオプションの自由度が低いし、かと言ってわざわざパッケージをリビルドするのは面倒&lt;/li&gt;&lt;li&gt;ソースだと自由度が高いけど、完全に削除するのが面倒&lt;/li&gt;&lt;li&gt;インストール方法をパッケージとソースの両方で併用していると、プログラム間の相互連携に問題がおこる場合がある&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;　と言う問題を一挙に解決！！&lt;br /&gt;&lt;br /&gt;　…ただ、標準のディレクトリじゃなくて、別のディレクトリ（この場合Stow用のディレクトリ配下）にインストールすると、他のプログラムと連携とれなくなる場合がある気がしないでもない（ほぼ3番解決してないじゃない orz）.&lt;br /&gt;&lt;br /&gt;　まぁ、手動でパス通せばいいだけか…&lt;br /&gt;&lt;br /&gt;　取り敢えず、Stowを試す前に2ヶ月以上放置している自宅Linux機のアップデートしないといけません.&lt;br /&gt;　と言うか、地獄期間を過ぎた筈なのに何故か明日も仕事 orz&lt;br /&gt;　9日/16日（日曜）も密かに出社済み orz&lt;br /&gt;　そろそろ体にガタが来そうな今日この頃.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-2194030261926107494?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/2194030261926107494/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=2194030261926107494' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2194030261926107494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2194030261926107494'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/03/stow.html' title='Stow.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-1324096132536216225</id><published>2008-03-06T21:36:00.005+09:00</published><updated>2008-03-07T00:30:17.347+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='コーディング'/><title type='text'>システムハンガリアンが止められない.</title><content type='html'>　早い時間に帰るタイミングを逃しました orz&lt;br /&gt;　さて、そろそろ帰ります.&lt;br /&gt;&lt;br /&gt;　が、一言だけ.&lt;br /&gt;　CやVB（.Netでは無い）のコードを見ていると、&lt;br /&gt;&lt;br /&gt;　　m_FirstName&lt;br /&gt;　　p_TmpPath&lt;br /&gt;&lt;br /&gt;　とか&lt;br /&gt;&lt;br /&gt;　　m_szFirstName&lt;br /&gt;　　p_strTmpPath&lt;br /&gt;&lt;br /&gt;　と言った変数/メソッドの命名をしている人が居ます（と言うか、そう言う命名規則を設けている）.&lt;br /&gt;&lt;br /&gt;　当然&lt;br /&gt;&lt;br /&gt;　　m　…　スコープ → モジュール（メンバかも）&lt;br /&gt;　　p　…　スコープ → プライベート&lt;br /&gt;&lt;br /&gt;　や&lt;br /&gt;&lt;br /&gt;　　sz … 文字列（終端文字付）&lt;br /&gt;　　str …　単なるStringの略&lt;br /&gt;&lt;br /&gt;　を意味しています.&lt;br /&gt;　私は「m_」やら「p_」やらは使いませんが（※1）、「str」とか「sz」は好んで使っています.&lt;br /&gt;　実際、このblogで極稀に書くコードでもPrefixを付けて書いているはずです.&lt;br /&gt;　&lt;br /&gt;　で、この書き方を会社の人に言わせると「前時代的でダサ過ぎる.そもそもそれってシステムハンガリアン（※2）だしｗ」となる訳です.&lt;br /&gt;　まぁ、それはそうなんですけどね.&lt;br /&gt;　別に今の言語 + IDEをもってすれば、型もスコープも明確且つ明快に扱える（スコープは若干あれだけど）から、そんなPrefixなんて付ける必要はありませんよね（大方のスクリプト言語除く（※3））.&lt;br /&gt;　…と言うのは頭の中では理解してます.&lt;br /&gt;　が、実際問題としてソースコードをダダ読みしてると、個人的にはこっちの方が楽ですｗ&lt;br /&gt;&lt;br /&gt;　会社でハンガリー記法はやってないんですが、どうにも読み難くて仕方ありません！&lt;br /&gt;　何度読み慣れようとしても、全然頭に入って来やしません！！&lt;br /&gt;　システムハンガリアンまんせ～！！！&lt;br /&gt;&lt;br /&gt;　…じゅ、重症過ぎる orz&lt;br /&gt;&lt;br /&gt;　元には戻れない体になってしまったのワタシ.&lt;br /&gt;　そんな感じです.&lt;br /&gt;　どんな感じかは不明ですが、システムハンガリアンな書き方よりは明瞭なハズです.&lt;br /&gt;&lt;br /&gt;　嗚呼低レベル低レベル.&lt;br /&gt;　前時代的な書き方から抜け出られるのは何時の日か…&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;&amp;nbsp;* 2008-03-07 追記&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;　久しぶりに更新すると、情報が不足しがちになります.&lt;br /&gt;　まぁ、元々情報不足過ぎなんですが orz&lt;br /&gt;&lt;br /&gt;※1 「m_」「p_」を使わない　→　「Me」「this」の有無で切り分ける&lt;br /&gt;　基本的にメンバ変数やメソッドは「Me」（VB.Net）なり「this」（C++/C#/Java）を使っています.&lt;br /&gt;　ローカルな変数は何も付けず、メンバな変数には「すべて」付記します（無駄が多いｗ）.&lt;br /&gt;&lt;br /&gt;※2 システムハンガリアン　→　間違ったハンガリー記法&lt;br /&gt;　正しいハンガリー記法はそこまで否定されるものではありません.&lt;br /&gt;　正しいハンガリー記法は、変数の型では無く「データが何を表すのか」を表記します.&lt;br /&gt;　スコープの表記がどうなのかは…調べないと知りませんが orz&lt;br /&gt;&lt;br /&gt;※3 IDEのフォローでどうにでもなると言えばなるか…とも思いますが、変数の型すらどうにでもなるスクリプト言語（特にPHP）には、結構システムハンガリアン記法はあってるかと.&lt;br /&gt;　話は少しズレますが、「文系の人はPHPから始めずにJavaから始めましょう」.&lt;br /&gt;　低レベルな文系人間でもこれだけは声を大にして言いたい今日この頃.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-1324096132536216225?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/1324096132536216225/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=1324096132536216225' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/1324096132536216225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/1324096132536216225'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/03/blog-post_06.html' title='システムハンガリアンが止められない.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-1419016582981957165</id><published>2008-03-03T19:33:00.003+09:00</published><updated>2008-03-03T19:58:54.577+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='このblogについて'/><title type='text'>地獄終了.</title><content type='html'>　約2ヶ月間まるまる放置してましたが、またボチボチ再開します.&lt;br /&gt;&lt;br /&gt;　仕事はじめの翌週から予定外の（且つ急ぎの）案件が入ってからと言うもの、1ヵ月半で休み2日、毎日朝から深夜まで仕事、と言う地獄絵図状態 orz&lt;br /&gt;　もうここまで来ると、四六時中仕事の事しか考えられなくなります.&lt;br /&gt;　シャワー浴びてても飯を食べてても、頭の中でコードがのた打ち回ってましたｗ&lt;br /&gt;　疲れ過ぎで夢を見ず、仕事の悪夢でうなされなかったのが、せめてもの救いです.&lt;br /&gt;　この土日は久しぶりの休みを満喫…と言ってもまぁ寝ただけで終了ですが orz&lt;br /&gt;&lt;br /&gt;　それにしても、先ほど放置期間のアクセスログを確認してみましたが、blogって更新して無くても意外とアクセスがあるもんなんですねぇ.&lt;br /&gt;　…と言うか、むしろ更新してた頃より閲覧者が多いじゃないの orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-1419016582981957165?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/1419016582981957165/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=1419016582981957165' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/1419016582981957165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/1419016582981957165'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2008/03/blog-post.html' title='地獄終了.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-5214410847526834242</id><published>2007-12-28T19:48:00.000+09:00</published><updated>2007-12-28T20:04:59.373+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>基になる RCW から分割された COM オブジェクトを使うことはできません.</title><content type='html'>　と言う、非常に分かりにくいメッセージに出くわす事がたまにありますが、未だにこの辺の仕組みが理解出来ていません orz&lt;br /&gt;&lt;br /&gt;　このメッセージ、ExcelやWordなんかのCOMオブジェクトを使っていて、書き方を間違えると発生するものですが、以下の様な書き方をしなければ、なかなかお目にかかれません.&lt;br /&gt;　いや、お目にかかりたくは無いんですけどねｗ&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;#region " USING "&lt;br /&gt;using System;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;using Microsoft.Office.Interop.Excel;&lt;br /&gt;#endregion&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;namespace Com&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// CExcel の概要の説明です。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public class CExcel&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// 引数無しコンストラクタ&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public CExcel()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// デストラクタ&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;~CExcel()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// エラーを発生させてみるテスト.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void test()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Local variable.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ApplicationClass objExcel = new ApplicationClass();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Worksheet objWorksheet = new Worksheet();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Workbook 追加.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;objExcel.Workbooks.Add(Type.Missing);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 1ページ目の Worksheet を取得（非常識な取得の仕方ですが）&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;objWorksheet = (Worksheet)objExcel.Workbooks.get_Item(1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.Worksheets.get_Item(1);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Worksheet の名前を表示してみる.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MessageBox.Show(objWorksheet.Name); // Sheet1&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 本来必要は無いが、Worksheet を COM オブジェクトとしてを解放し&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * てみる.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 更に解放した Worksheet の Delete メソッドを呼び出してみる.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * この時点では何故かエラーが出ない.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * そして、Worksheet の名前を参照しようとすると&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 　基になる RCW から分割された COM オブジェクトを使うことはできません&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * と言う、非常に分かりにくいエラーメッセージが発生 orz&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * しかも、COM オブジェクト解放のみを実行した場合は、&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 　オブジェクト参照がオブジェクト インスタンスに設定されていません。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * と言う見慣れた「ああ、インスタンス化してねーじゃん」と言うメッ&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * セージになり、Delete メソッドだけ実行した場合は、&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 　HRESULT からの例外です : 0x800401A8。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * と言うエラーが参照段階で発生します.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.releaseComObject(objWorksheet);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;objWorksheet.Delete();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MessageBox.Show(objWorksheet.Name); // ここで例のエラーが発生.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Excel 終了.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;objExcel.Quit();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * ここの COM オブジェクトリリースは必要.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 解放しない場合、プログラムが終了するまで Excel プロセスが継続.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.releaseComObject(objExcel);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// すべてのCOMオブジェクトが解放されるまで、繰り返し ReleaseComObject を&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// 実行します。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;lt;param name="objInput"&amp;gt;COMオブジェクト&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void releaseComObject(Object objInput)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (System.Runtime.InteropServices.Marshal.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReleaseComObject(objInput) &amp;gt; 0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;objInput = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} // CExcel&lt;br /&gt;} // namespace&lt;/div&gt;　※見た通り、全く意味の無い適当な書き方です.&lt;br /&gt;　※参照追加でExcelのObjectLibraryを追加しないと動きません（念のため）.&lt;br /&gt;&lt;br /&gt;　参考に「&lt;a href="http://www.microsoft.com/japan/msdn/office/office2003/odc_OFComplexComObjectsPIAs.aspx"&gt;相互運用機能アセンブリを使った複雑な COM オブジェクトの処理 - Office のメニュー ボタンが機能停止した場合の対策&lt;/a&gt;」と言うページも見たのですが、未だにピンと来ません.&lt;br /&gt;　…私のレベルでは理解不能な話の様です orz&lt;br /&gt;&lt;br /&gt;　嗚呼低次元低次元...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-5214410847526834242?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/5214410847526834242/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=5214410847526834242' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5214410847526834242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5214410847526834242'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/12/rcw-com.html' title='基になる RCW から分割された COM オブジェクトを使うことはできません.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7326619286004313049</id><published>2007-12-25T19:41:00.000+09:00</published><updated>2007-12-25T19:52:55.992+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DirectoryService'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>ActiveDirectoryのグループポリシー適用状況を確認.</title><content type='html'>&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;C:\&gt; gpresult&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　gpupdate → gpresult でポリシーが適用されているか一目で分かる訳ですね.&lt;br /&gt;　いや～これは便利なコマンドです.&lt;br /&gt;&lt;br /&gt;　と言う、正に「そんな事も知らなかったのかよｗ」的なメモ orz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　さ、今日はクリスマスだし、更なる自虐的思想に陥る前にさっさと帰ろう.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7326619286004313049?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7326619286004313049/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7326619286004313049' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7326619286004313049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7326619286004313049'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/12/activedirectory.html' title='ActiveDirectoryのグループポリシー適用状況を確認.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-8968129851119428505</id><published>2007-12-25T19:18:00.000+09:00</published><updated>2007-12-25T19:35:54.529+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DirectoryService'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>電源設定.</title><content type='html'>　何を今更！？なメモ.&lt;br /&gt;&lt;br /&gt;　ActiveDirectory環境でXPの電源設定周りを統一的に設定（要するにグループポリシーでゴニョゴニョ）出来ないものか、と言う話があったので調べてみましたが、どうやらXPでは無理（Vistaでは可能）な様で orz&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://support.microsoft.com/kb/915160/ja"&gt;こんな方法でXPでも実現可能&lt;/a&gt;な様ですが、正直面倒この上ないので見なかった事にしたい気分ですｗ&lt;br /&gt;&lt;br /&gt;　ついでに電源設定周りのレジストリ格納場所も探してる最中に見受けられたのでメモ.&lt;br /&gt;&lt;br /&gt;　HKEY_CURRENT_USER\Control Panel\PowerCfg&lt;br /&gt;　HKEY_USERS\[ユーザー]\Control Panel\PowerCfg&lt;br /&gt;&lt;br /&gt;　と言うか、Powercfgと言うコマンド（ツール）がある事自体知りませんでしたから orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-8968129851119428505?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/8968129851119428505/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=8968129851119428505' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8968129851119428505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8968129851119428505'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/12/blog-post_25.html' title='電源設定.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7270514526207606873</id><published>2007-12-20T19:20:00.000+09:00</published><updated>2007-12-20T20:12:07.479+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Ajax'/><title type='text'>唖然とする某システム.</title><content type='html'>　最近、某所にて某システムを触る機会がありました.&lt;br /&gt;　…某某ばかりじゃ分からないけど orz&lt;br /&gt;　その某システムが凄い訳です.&lt;br /&gt;&lt;br /&gt;　PHPで書かれているんですが、まず、エラー画面にエラーハンドラで受け取ったエラー内容を「ほぼそのまま」表示します.&lt;br /&gt;　○○○.phpの○○行目で、○○関数の引数が○○だからエラーが出ましたよ、と（実際のメッセージは異なります）.&lt;br /&gt;　そりゃもう親切丁寧に教えてくれる訳ですよ orz&lt;br /&gt;&lt;br /&gt;　更にエラーが発生した際、場合によってはクエリを画面に出力してくれます.&lt;br /&gt;　まぁ！なんて親切なんでしょう♪ … orz&lt;br /&gt;　※これは多分意図した訳ではなく、デバッグ気分で echo ったであろうコードを削除し忘れているかと思われます&lt;br /&gt;&lt;br /&gt;　とまぁ、致命的と思われる事はこの辺にしておき、一番衝撃的な事（いや、上のも十分衝撃的なんですが、自分でもやってしまいそうと言う意味での衝撃的）が、Ajax周りの挙動.&lt;br /&gt;　私は余りそんな組み方をしませんが、&lt;br /&gt;&lt;br /&gt;　1. 複数の選択欄（SELECT）がある&lt;br /&gt;　2. 選択欄Aを選択するとAjaxが走り、サーバーへ選択欄Bのリストを取りに行く&lt;br /&gt;　3. サーバーから取得したリストを選択欄Bへセットする&lt;br /&gt;　（選択欄Dまで繰り返し...省略...）&lt;br /&gt;&lt;br /&gt;　と言う「まぁ、やるっちゃーやるな」と言う処理なんですが（私は選択する度にトラフィックが発生するのが嫌で、余程膨大な選択種が無い限り最初に全部読み込みます）、今回出くわした環境がアナログ回線だったが為に、下の様な挙動を連発する訳です.&lt;br /&gt;&lt;br /&gt;　選択欄Aで選択→選択欄Bが空欄のまま→ボーっと待つ→数秒後選択欄Bにリストがセットされる&lt;br /&gt;　選択欄Aで内容1を選択→選択欄Aで内容2を選択しなおす→数秒後選択欄Bには選択欄Aの内容1に連動するリストがセット&lt;br /&gt;&lt;br /&gt;　正直使う気が失せますね、これじゃ……&lt;br /&gt;　良くAjaxでデータを読み込む時に、ローディング画像を表示しつつDIVなどで画面を保護する作りにしますが、選択欄を連動させるくらいでそんな保護しませんしねぇ.&lt;br /&gt;　逆にいちいち選択内容変更する度に（選択欄を連動させる為だけに）ローディング画面になったら、Ajaxな意味が無くなるくらい煩わしくなりますし.&lt;br /&gt;&lt;br /&gt;　まぁ、平成19年も師走を迎えた昨今、そんなWindows95を思い出す速度環境下なんて余り無いでしょうから、そんなに気にする必要も無いのかもしれませんけどｗ&lt;br /&gt;&lt;br /&gt;　とは言いつつ、今回出くわした様な作りにはしない様に心掛けようと心底思った今日この頃.&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;&amp;nbsp;* 追記.&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;　この投稿書いてから、Gmailが高速化する手段として「&lt;a href="http://www.atmarkit.co.jp/news/200710/31/gmail.html"&gt;メッセージをあらかじめ読み込んでおくため、メールを開くときにGoogleサーバにアクセスしなくてもよくなり、メールの表示が速くなる&lt;/a&gt;」（『@IT』より一部抜粋）方法を選んだ事を思い出しました.&lt;br /&gt;　Ajaxも使い方次第では旧来よりユーザビリティを低下させるかもね、と.&lt;br /&gt;　※Gmailの場合、正確には「Ajaxなバックグラウンド処理で事前に読み込む」と言う方式らしい&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7270514526207606873?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7270514526207606873/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7270514526207606873' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7270514526207606873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7270514526207606873'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/12/blog-post.html' title='唖然とする某システム.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-4906128789101811922</id><published>2007-12-13T19:39:00.000+09:00</published><updated>2007-12-13T20:08:41.517+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>MTOS: Movable Type オープンソース・プロジェクト.</title><content type='html'>　久々の投稿.&lt;br /&gt;　仕事が忙しかった訳では無く、単に家で仕事をしていただけです.&lt;br /&gt;&lt;br /&gt;　… orz&lt;br /&gt;&lt;br /&gt;　そんなどうでもいい近況報告はおいておき、&lt;a href="http://www.movabletype.jp/opensource/"&gt;Movable Typeのオープンソース化プロジェクト&lt;/a&gt;が始まった様です.&lt;br /&gt;　まぁ、前からソース確認出来てたみたいですけど、lightmaterialは余り興味が無く、一度も見た事がありませんでした.&lt;br /&gt;　しかし「折角オープンソース化したんだしな」と、この機会にチラッと中身を覗いておこうと思い早速ダウンロード.&lt;br /&gt;&lt;br /&gt;　さて、どこから見るかな～&lt;br /&gt;　お！この「mtdb_base.php」って言うファイルは結構サイズがあるし、読み応えがありそうだ！&lt;br /&gt;　どれどれ…&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　……&lt;span style="font-size: 200%; font-weight: bold; color: #ff0000;"&gt;ぎゃーーーー！！！&lt;/span&gt;&lt;br /&gt;　き、き、き、汚ねぇよ！！！ orz&lt;br /&gt;&lt;br /&gt;　なんじゃこりゃ…&lt;br /&gt;　いや、そりゃ読める範疇なんだけどもね.&lt;br /&gt;　それにしたって、コメント全然無いし、トリッキー（初心者が見て理解不能な書き方. lightmaterialは一番嫌いです）だし、インデントがファイルによってタブ文字だったりスペースだったりするし、&lt;span style="font-style:italic;"&gt;SQL文がコード中に直書き&lt;/span&gt; されてるし……&lt;br /&gt;&lt;br /&gt;　有名所の会社でも、あんなコード書いてる所があるんだなぁ…と思い知った今日この頃.&lt;br /&gt;　他の会社もあんなモンなんでしょうかね？&lt;br /&gt;　ま、まさかね……ｗ&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;&amp;nbsp;* 追記&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;　そう言えば、以前サクラエディタと言うソフトのソースを見た時も「色んな人が書いてるから読みにくいなぁ」と思ったものですが、私としてはMovable Typeの方がよっぽど読みにくいです（C++とPHP比較するのもアレですが）.&lt;br /&gt;　そんな感じです、はい.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-4906128789101811922?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/4906128789101811922/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=4906128789101811922' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4906128789101811922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4906128789101811922'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/12/mtos-movable-type.html' title='MTOS: Movable Type オープンソース・プロジェクト.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-3668593179061358113</id><published>2007-11-13T08:42:00.000+09:00</published><updated>2007-11-13T08:43:30.101+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='後で読む'/><title type='text'>Google デベロッパー ホーム.</title><content type='html'>後で読む.&lt;br /&gt;&lt;br /&gt;http://www.google.co.jp/developer/prg/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-3668593179061358113?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/3668593179061358113/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=3668593179061358113' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/3668593179061358113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/3668593179061358113'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/11/google.html' title='Google デベロッパー ホーム.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-5190921716249759675</id><published>2007-11-10T15:07:00.000+09:00</published><updated>2007-11-10T15:28:34.637+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>WM_MOUSEWHEELメッセージ.</title><content type='html'>　「WM_MOUSEWHEEL」って、VisualStudio.Net2003（古っ）じゃ標準では使えないのか？&lt;br /&gt;　普通にやると&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;error C2065: 'WM_MOUSEWHEEL' : 定義されていない識別子です。&lt;/div&gt;&lt;br /&gt;　とVCコンパイラに怒られます.&lt;br /&gt;　はて？&lt;br /&gt;　windows.h→winuser.hの流れで読み込んで（宣言して）るはずなんだが？？&lt;br /&gt;&lt;br /&gt;　う～ん……&lt;br /&gt;　久々に触ったC++（お遊びレベル）でグダグダ悩んでも仕方なし.&lt;br /&gt;　さっさとgoogle先生に聞く事に.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://wisdom.sakura.ne.jp/products/books/wingame.html"&gt;Windowsゲームプログラミング&lt;/a&gt;（と言う本の紹介ページ）&lt;br /&gt;&lt;br /&gt;　このページの中段に&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;一部の開発環境を除いて、識別子 WM_MOUSEWHEEL が宣言されていないという問題が発生します。WM_MOUSEWHEEL は winuser.h ヘッダで宣言されていますが、#define _WIN32_WINNT 0x0400 が宣言されていないと認識されません。&lt;/div&gt;&lt;br /&gt;　との一文が.&lt;br /&gt;　へぇ.&lt;br /&gt;　そうなのね.&lt;br /&gt;　と言う事で、適切なヘッダファイル（当然「windows.h」を読み込む前）に&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;#ifndef _WIN32_WINNT 0x0400&lt;br /&gt;#define _WIN32_WINNT 0x0400&lt;br /&gt;#endif&lt;/div&gt;&lt;br /&gt;　と追記.&lt;br /&gt;&lt;br /&gt;　そしておもむろにビルドごー！&lt;br /&gt;　おお、普通に動くではないか！！&lt;br /&gt;　VS2003.Netのヤツめ、手こずらせやがるぜ！！！&lt;br /&gt;&lt;br /&gt;　…と言うか、いい加減さっさと最新バージョン買えって話ですね orz&lt;br /&gt;　「今年何年だと思ってるのさ？2007年も残り僅かだよ？ｗ」と笑われますね orz&lt;br /&gt;　金が無い.&lt;br /&gt;　ああ金が無い金が無い.&lt;br /&gt;　※家で仕事（VB/ASP）するケースもあるから、Express Editionじゃ問題だし.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-5190921716249759675?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/5190921716249759675/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=5190921716249759675' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5190921716249759675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5190921716249759675'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/11/wmmousewheel.html' title='WM_MOUSEWHEELメッセージ.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-2352439150253639825</id><published>2007-11-02T18:51:00.000+09:00</published><updated>2007-11-02T19:04:43.128+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Google Japan Blog: 大規模日本語 n-gram データの公開</title><content type='html'>&lt;a href="http://googlejapan.blogspot.com/2007/11/n-gram.html#links"&gt;Google Japan Blog: 大規模日本語 n-gram データの公開&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　n-gramは取り敢えず置いておき（貧乏人には厳しい…）、&lt;a href="http://mecab.sourceforge.net/"&gt;MeCab&lt;/a&gt;が非常に楽しそうだったので、その存在を忘れない様に走り書きメモ.&lt;br /&gt;　Java用のバインディング（要するにMeCabをプログラム言語から使える用にしたもの、またはその橋渡し）もある様なので、Javaの勉強がてら触りたい.&lt;br /&gt;&lt;br /&gt;　…そんな事妄想する前に、Javaでまともなコード書ける様にする方が先か orz&lt;br /&gt;&lt;br /&gt;　と言うか、googleの公式blogがあるということ自体、初めて知った今日この頃.&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;&amp;nbsp;* 2007-11-02 追記.&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;　なんか、googleのblogに「リンクを作成」と言う項目があったから、試しにやってみました.&lt;br /&gt;　こんな風に投稿される訳ですか.&lt;br /&gt;　ふーん…二度と使わないと思いますがｗ&lt;br /&gt;　本来の目的がメモなんで、リンク辿られるのもアレですし.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-2352439150253639825?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/2352439150253639825/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=2352439150253639825' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2352439150253639825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2352439150253639825'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/11/google-japan-blog-n-gram.html' title='Google Japan Blog: 大規模日本語 n-gram データの公開'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-2272870227997394673</id><published>2007-10-27T19:13:00.000+09:00</published><updated>2007-10-27T19:47:47.860+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='このblogについて'/><title type='text'>全角半角大文字小文字.</title><content type='html'>　今日は休日出勤.&lt;br /&gt;　土曜・日曜と休みがあるだけ有り難いと（自らに）思い（込ませ）ながら仕事中.&lt;br /&gt;&lt;br /&gt;　まったくどうでもいい話だけれども、他の社員が編集している文書ファイルを見てると、英語表記が半角だったり全角だったり大文字だったり小文字だったり（ある場所ではWindowsと書き、別の場所ではwindowsとかｗｉｎｄｏｗｓ[全角]とか…）します.&lt;br /&gt;　あれってどうにかならないもんですかね？&lt;br /&gt;&lt;br /&gt;　そういうファイルを開く度に、気になって気になって仕方がありません.&lt;br /&gt;　いや、気になるというか「イライラ」します orz&lt;br /&gt;&lt;br /&gt;　「そんな細かい事気にしてたら禿げるって！…あ…もうハゲ初期段階に突入してるか…」と思われるかもしれませんが、見た目も気になるのは勿論、データの再利用とかファイルに対して何らかの処理を行う時に面倒です.&lt;br /&gt;　そんな風に書いてるから、データ処理のコードにUppercaseとかLowercaseとかはたまた半角全角変換と言う実に非効率でコスト高（実際の金額の問題は無視して、処理負荷の意味で）なコードを書く羽目になるんですよ.&lt;br /&gt;　まったくもう！さっさと直しなさい！！&lt;br /&gt;&lt;br /&gt;　…なーんて言えるのは社内だけの話で、お客さんに対しては言える訳も無く、当たり前に実装するんですけど.&lt;br /&gt;&lt;br /&gt;　前に別のシステムで登録していたデータを移行する際、「姓と名のデータを分けて移行して」と言われたものの、どこぞの業者が作ったプログラムは『姓と名を分けずに一つの入力欄だけ設置』していた上に『姓と名の区切り文字のチェックも無し』と言う信じられない構造になっていて、データの中身を確認すると、案の定「姓と名の区切り文字が半角空白」「姓と名の区切り文字が全角空白」「&lt;span style="font-weight:bold;"&gt;姓と名の区切り文字が無い（絶望）&lt;/span&gt;」状態が混在.&lt;br /&gt;　更にフリガナも姓と名が区切り無く保存されている上に、半角全角の区別（チェック）もなく登録されている始末.&lt;br /&gt;　正にカオスなデータですｗ&lt;br /&gt;　件数もかなりの数だったので、流石にこれは分割してDB格納するのは諦めてもらいました.&lt;br /&gt;　半角全角の問題は、当然統一する様に直しましたけど.&lt;br /&gt;&lt;br /&gt;　こんな変換作業（コード書き含む）なんて、本当に無駄な労力です.&lt;br /&gt;　入力段階で（強制的に）統一しろって話ですよね.&lt;br /&gt;　まぁ、プログラムはいいとして…Excelが存在し続ける限り、この変換問題は延々と続く悪寒がしますけど.&lt;br /&gt;　人間諦めが肝心か…さて、さっさと帰りますか.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-2272870227997394673?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/2272870227997394673/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=2272870227997394673' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2272870227997394673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2272870227997394673'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/10/blog-post_27.html' title='全角半角大文字小文字.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-3483059139217701892</id><published>2007-10-23T19:06:00.000+09:00</published><updated>2007-10-23T19:16:16.677+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DirectoryService'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Windows版PHPのLDAP関数.</title><content type='html'>　一言メモ.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://lightmaterial.blogspot.com/2007/10/phpldapactivedirectory-2.html"&gt;以前書いたLDAP関数に関しての投稿&lt;/a&gt;は、Linux上で動作しているPHPで試していた訳ですが、マニュアルにある通り、Linux版ではOpenLDAPのクライアントがインストールされている必要があります.&lt;br /&gt;　で、私はてっきりWindows版もOpenLDAPのクライアントが入ってないと駄目なんだろうと思っていたんですが、実は無くても全然問題ないんですね.&lt;br /&gt;　これは楽だ！！&lt;br /&gt;&lt;br /&gt;　…って、心底今更な話か orz&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://www.php.net/manual/ja/ref.ldap.php"&gt;マニュアルを見ると、LDAP関数の要件&lt;/a&gt;に&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;LDAP サポートを有効にして PHP をコンパイルするには、 » OpenLDAP あるいは » Bind9.net から LDAP クライアント ライブラリを入手し、コンパイルしておく必要があります。 &lt;/div&gt;&lt;br /&gt;　と書いてあるから、完全に勘違いしてました.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-3483059139217701892?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/3483059139217701892/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=3483059139217701892' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/3483059139217701892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/3483059139217701892'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/10/windowsphpldap.html' title='Windows版PHPのLDAP関数.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-6842662756321775011</id><published>2007-10-18T22:48:00.000+09:00</published><updated>2008-12-12T05:47:15.893+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ajax'/><title type='text'>ajaxWindows - AjaxがOSに成るのは何時の日か.</title><content type='html'>　Ajaxが今までに無いほどの繁栄を見せている昨今.&lt;br /&gt;　タイトルにある&lt;a href="http://www.ajaxwindows.com/apps/windows/content/index.html"&gt;ajaxWindows&lt;/a&gt;の様な「AjaxなOS」がAjaxの行き着く究極なのでしょう.&lt;br /&gt;&lt;br /&gt;　んが、正直使えたモンじゃありません orz&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kri9yIsnLbE/RxdlkXrI7DI/AAAAAAAAAH0/TubfCnn3Hls/s1600-h/ajaxWindows.PNG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_kri9yIsnLbE/RxdlkXrI7DI/AAAAAAAAAH0/TubfCnn3Hls/s320/ajaxWindows.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5122674776661879858" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　確かに見た目は素晴らしいですが、動作が実用に耐えられるとは思えません.&lt;br /&gt;　私がユーザー登録した9月の段階は「まぁ、ベータだから…（アルファではなかったはず）」と思っていたのですが、とても「どこでもOS」と言えるレベルではなさそうです.&lt;br /&gt;　これは回線速度云々ではなく、現時点でのJavaScript自体の動作速度、言い換えればブラウザのJavaScript処理速度、ひいてはJavaScript自体の構造がOSなどのレスポンス重視の用途には「今の所」向いて居ないと言う事かもしれません.&lt;br /&gt;&lt;br /&gt;　ajaxWindows以外にも「&lt;a href="http://xcerion.com/"&gt;http://xcerion.com/&lt;/a&gt;」（3月にユーザー登録しましたが、まだ出来ない模様）なんかもありますが、今回のajaxWindowsを触って「あ～…根本的にAjaxでOS的な事を実用レベルで実装するのはまだまだ先の話だな」と実感した次第です.&lt;br /&gt;&lt;br /&gt;　と言うか、Ajaxアプリ専用のブラウザとか作ったら、もう少し快適になりそうな気がしないでもないんですけどｗ&lt;br /&gt;　まぁ、それじゃ本末転倒か.&lt;br /&gt;　素直にiPod Touch触ってた方が余程先進的だと個人的には思いました.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-6842662756321775011?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/6842662756321775011/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=6842662756321775011' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/6842662756321775011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/6842662756321775011'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/10/ajaxwindows-ajaxos.html' title='ajaxWindows - AjaxがOSに成るのは何時の日か.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kri9yIsnLbE/RxdlkXrI7DI/AAAAAAAAAH0/TubfCnn3Hls/s72-c/ajaxWindows.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-8438856100516049923</id><published>2007-10-14T23:39:00.000+09:00</published><updated>2007-10-20T18:39:19.252+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='正規表現'/><title type='text'>電話番号の正規表現.</title><content type='html'>　今まで下らないと思って見てこなかったアルマゲドン.&lt;br /&gt;　…不覚にも泣いてしまった orz&lt;br /&gt;　あんな茶番劇に…自分で自分が情けない.&lt;br /&gt;&lt;br /&gt;　と言うどーでもいい話に続いて、更にどーでもいい話をw&lt;br /&gt;　電話番号の正規表現.&lt;br /&gt;　検索かけると色々と出てきますが、心底意外にもその殆んどが怪しげな正規表現で「え〜…それじゃ抜け落ちるじゃん」と言う様な物でした.&lt;br /&gt;　何で？？&lt;br /&gt;　みんな使う機会が多いと思うんだけどなぁ.&lt;br /&gt;&lt;br /&gt;　勿論中には&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://blog.livedoor.jp/nipotan/archives/50634795.html"&gt;二度目の公開！電話番号の正規表現&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　と言う様な素晴らしい正規表現も見付かりました.&lt;br /&gt;　んが、そんなゴッツイ正規表現を求めるつもりは無い私の様な適当人間は、↓こんなんで十分だと思います.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;public class Formatter {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* Constructor.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public Formatter() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* Constructor: 初期値として値を引数にとります.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @param strValue&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public Formatter(String strValue) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.setValue(strValue);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* Property.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private String value;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* Accessor: valueを取得します.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @return String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public String getValue() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return (this.value != null) ? this.value : "";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* Accessor: valueをセットします.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @param strValue&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void setValue(String strValue) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.value = strValue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* --------------------------------------------------------------------- */&lt;br /&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* 電話番号として正しいフォーマットか確認します.&amp;lt;br&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* 「-」（ハイフン）付きのフォーマットである必要があります.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @return boolean&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public boolean validatePhoneNumber() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// -&gt; Local variable.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String strPattern = "(?!^(090|080|070))(?=^\\d{2,5}?-\\d{1,4}?-\\d{4}$)[\\d-]{12}|" +&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"(?=^(090|080|070)-\\d{4}-\\d{4}$)[\\d-]{13}|" + &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"(?=^0120-\\d{2,3}-\\d{3,4})[\\d-]{12}|" +&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"^0800-\\d{3}-\\d{4}";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//-&gt; Check and return value.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return this.checkMatch(this.getValue(), strPattern);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* 電話番号として正しいフォーマットか確認します.&amp;lt;br&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* 「-」（ハイフン）無しのフォーマットである必要があります.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @return boolean&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public boolean validatePhoneNumberWithOutSeparator() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// -&gt; Local variable.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String strPattern = "(?!^(090|080|070))^[\\d]{10}|" + &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"^(090|080|070)[\\d]{8}";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//-&gt; Check and return value.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return this.checkMatch(this.getValue(), strPattern);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* --------------------------------------------------------------------- */&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* 正規表現でマッチするか確認します.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @param strTarget&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @param strPattern&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @return boolean&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;protected boolean checkMatch(String strTarget, String strPattern) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// -&gt; Local variable.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;java.util.regex.Pattern objPattern;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;java.util.regex.Matcher objMatcher;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// -&gt; 引数チェック.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((strTarget == null) || (strPattern == null))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// -&gt; Pattern/Matcherオブジェクト生成.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;objPattern = Pattern.compile(strPattern);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;objMatcher = objPattern.matcher(strTarget);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// -&gt; Set return value.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return objMatcher.matches();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/div&gt;　※Java勉強中なのでコードはJava.&lt;br /&gt;&lt;br /&gt;　"(?!^(090|080|070))(?=^\\d{2,5}?-\\d{1,4}?-\\d{4}$)[\\d-]{12}|" +&lt;br /&gt;&lt;br /&gt;　これで固定電話番号確保（2007-10-20修正. 下部「追記 - 2」参照）.&lt;br /&gt;　先頭3桁が「090」「080（0800含む）」「070」&lt;span style="font-style:italic;"&gt;以外&lt;/span&gt;であり且つ、市外局番は2〜5桁、市内局番は1桁（田舎の方. 北海道では普通）〜4桁（東京とか）、下４桁は固定で、ハイフン含めて合計12桁である場合、または&lt;br /&gt;&lt;br /&gt;　"(?=^(090|080|070)-\\d{4}-\\d{4}$)[\\d-]{13}|"&lt;br /&gt;&lt;br /&gt;　携帯の古い090と新しい080およびPHSの070から始まる電話番号の場合は、3-4-4桁フォーマットでハイフン含めて合計13桁の場合、または&lt;br /&gt;&lt;br /&gt;　"(?=^0120-\\d{2,3}-\\d{3,4})[\\d-]{12}|^0800-\\d{3}-\\d{4}";&lt;br /&gt;&lt;br /&gt;　フリーダイヤル「0120」から始まる電話番号の場合は、4-3-3桁および4-2-4桁フォーマットでハイフン含めて合計12桁、フリーダイヤル「0800」から始まる電話番号の場合は、4-3-4桁でハイフン含めて合計13桁（2007-10-20追記. 初回修整時に桁数ミスってました）.&lt;br /&gt;　これらに該当するものを電話番号として正しいものとする.&lt;br /&gt;&lt;br /&gt;　…あれ？どこか固定で13桁になった所ってありましたっけ？&lt;br /&gt;　何かニュースかWEBで見た記憶が…取り敢えず気にせずいきますw&lt;br /&gt;　// &lt;STRIKE&gt;TODO 後で調べる.&lt;/STRIKE&gt;&lt;br /&gt;　※追記 - 1参照.&lt;br /&gt;&lt;br /&gt;　まぁ、これも正規表現かじった人に言わせれば「なんじゃそりゃw」なのかもしれませんw&lt;br /&gt;&lt;br /&gt;　…と言うか正規表現自体が未だに良く分かりません orz&lt;br /&gt;&lt;br /&gt;　何であんなにややっこしいんだろ.&lt;br /&gt;　正規表現に触れる度に、もっと自然語（普通の言語. 要するに普段使っている言葉）と親和性の高い方法って無いの？と言いたくなります.&lt;br /&gt;　アレですかね？&lt;br /&gt;　頭のいい人には、正規表現も自然語と同レベルに見えるんでしょうかね？&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;&amp;nbsp;* 2007-10-17 追記 - 1（追記の割りに長文です）.&lt;br /&gt;&amp;nbsp;* どうやら増えたのでは無く、今まで9桁だった固定電話番号が10桁に統合された&lt;br /&gt;&amp;nbsp;* ニュースを見たのを記憶していた様です.&lt;br /&gt;&amp;nbsp;* http://www.wdic.org/w/WDIC/9%E6%A1%81%E3%81%AE%E9%9B%BB%E8%A9%B1%E7%95%AA%E5%8F%B7&lt;br /&gt;&amp;nbsp;* 正直今年まで9桁の電話番号があるなんて知りませんでした.&lt;br /&gt;&amp;nbsp;* …正規表現で一致が抜け落ちるとか、人の正規表現についてアーダコーダ言っ&lt;br /&gt;&amp;nbsp;* てる場合じゃなかったと言うオチですね orz&lt;br /&gt;&amp;nbsp;* まぁ、それ以前に「0120」のケースを考えてなかった事にも気づいて、抜け落&lt;br /&gt;&amp;nbsp;* ち過ぎじゃねーかよっ！と.&lt;br /&gt;&amp;nbsp;* 「0120」（フリーダイヤル）の場合って、ハイフンの入れる位置が「極企業側&lt;br /&gt;&amp;nbsp;* の事情」によって変わりますので、4-2-4と4-3-3を想定しないといけません.&lt;br /&gt;&amp;nbsp;* と言う事で、週末0120について更に追記予定.&lt;br /&gt;&amp;nbsp;* ん？ハイフン無しのケース？（と言う事を知人に言われましたｗ）&lt;br /&gt;&amp;nbsp;* 正直それは「仕様を見直した方がいい」と言いたいのが本音です.&lt;br /&gt;&amp;nbsp;* それって姓と名を区切り無しに管理しているのと同じです.&lt;br /&gt;&amp;nbsp;* 印刷する時、市外局番・市内局番・下四桁を区切らず（区別せず）に数値だけ&lt;br /&gt;&amp;nbsp;* で印刷するんですか？と.&lt;br /&gt;&amp;nbsp;* 明確に区分されているものを「無かった事に」するんですか？と.&lt;br /&gt;&amp;nbsp;* そう言う事です…とは言え、「前のシステムからデータ引き継ぐ段階で既にハ&lt;br /&gt;&amp;nbsp;* イフン無かったんだから仕方ねーだろ！」とか言うケースも有り得ると言えば&lt;br /&gt;&amp;nbsp;* 有り得なくも無いので、それも週末に.&lt;br /&gt;&amp;nbsp;* って、別に改めて書く程の事でも無いんですけど.&lt;br /&gt;&amp;nbsp;* 一応動く事を確認しないと気が済まないので、改めて出直します.&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;&amp;nbsp;* 2007-10-20 追記 - 2.&lt;br /&gt;&amp;nbsp;* フリーダイヤル「0120」および「0800」を追加してみました.&lt;br /&gt;&amp;nbsp;* ついでに固定電話番号判定部分で括弧が1つ多かったので除去 orz&lt;br /&gt;&amp;nbsp;* 更に、固定電話番号12桁（ハイフン含む）の場合、先頭に「090」「080」&lt;br /&gt;&amp;nbsp;* 「070」が先頭に来た場合は除外する記述「(?!〜)」を追加してみました.&lt;br /&gt;&amp;nbsp;* …何か、やればやるほど抜けが見付かるダメっぷり orz&lt;br /&gt;&amp;nbsp;*/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-8438856100516049923?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/8438856100516049923/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=8438856100516049923' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8438856100516049923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8438856100516049923'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/10/blog-post_14.html' title='電話番号の正規表現.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7092541238102903816</id><published>2007-10-13T15:26:00.000+09:00</published><updated>2007-10-13T17:56:41.364+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Javaの勉強 - Post2.</title><content type='html'>　今日も事前知識0でJavaと対戦中.&lt;br /&gt;　Javaにまったく相手にされてない感じですが orz&lt;br /&gt;&lt;br /&gt;　私の様なずぶのJava素人が引っかかりそうな点をいくつか.&lt;br /&gt;&lt;br /&gt;&lt;h3 style="text-decoration: underline"&gt;&lt;a href="http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/ServletContext.html"&gt;◇ServletContext&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;　ASP.NetなどでもHttpContextと言う（コード本体以外の）クラスで使うとコードが汚くなる上にそれって反則技じゃん！でお馴染みの存在がありますが、JavaのServletContextとは異なる様だ（何方かと言うとHttpServletRequestの方が近いか？）.&lt;br /&gt;※Javaのcom.sun.net.httpserver.HttpContextは全くの別物.&lt;br /&gt;　ServletContextはアプリケーション全体で共有のObjectらしく、セットされた値はクライアントの別を問わず共通になる.&lt;br /&gt;　ASP.NetではHttpContextをaspxから直接呼び出す事は殆んど無い（少なくとも私は使わない）けど、Java（Servlet+JSP）のServletContextではASP.Netのaspxに当たるJSPから呼び出されるケースもある様だ.&lt;br /&gt;　Frameworkなどを使わず、純粋にServletからJSPに値を渡す際にもっともポピュラー（？）な方法が以下の様な方法だと思われます.&lt;br /&gt;&lt;br /&gt;【Servlet Test.java】&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;[省略...]&lt;br /&gt;protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//-&gt; get servlet object.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;javax.servlet.ServletContext objServContext = getServletContext();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//-&gt; set attribute on servletcontext.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;objServContext.setAttribute("TestData", "This is a test.");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//-&gt; get dispatcher object, and forwarding.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;javax.servlet.RequestDispatcher objDisp = request.getRequestDispatcher("/test.jsp");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;objDisp.forward(request, response);&lt;br /&gt;}&lt;/div&gt;　※何で名前空間フルで書いてるんだよwと思うかもしれないけど、私の様な素人にしてみればServletContextやRequestDispatcherがどの名前空間に属しているのか覚えるには、javax.servlet.*とimportするより、フルで書いた方が覚えると思う.&lt;br /&gt;&lt;br /&gt;【JSP test.jsp】&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;&amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;javax.servlet.ServletContext objServContext = getServletContext();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String strTest = (String)objServContext.getAttribute("TestData");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;println(strTest);&lt;br /&gt;//-&gt; 結果&lt;br /&gt;This is a test.&lt;br /&gt;%&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　非常に便利です.&lt;br /&gt;　ServletからJSP、はたまたServletからServlet等、Dispatcherでforward/includeした場合や、response.sendRedirectした場合においても使用可能です（スコープがApplicationだから普通はHttpSession使いますけど）.&lt;br /&gt;&lt;br /&gt;　しかし、このServletContextが妙.&lt;br /&gt;　Servletでは上記の様に「getServletContext」で取得しますが、何故かJSPでは「application」で代替する事が出来る.&lt;br /&gt;　↓こんな感じで.&lt;br /&gt;&lt;br /&gt;【JSP test.jsp】&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;&amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String strTest = (String)application.getAttribute("TestData");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;println(strTest);&lt;br /&gt;%&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　確かにこっちの方がスマートだ.&lt;br /&gt;　んが、だったらServletでも「application」って使えてもいいじゃない orz&lt;br /&gt;　何でこんな事になってるんだろう？&lt;br /&gt;　と言う事で調べてみると、「out」や「session」と同じ様に「暗黙的に宣言されているオブジェクト（暗黙オブジェクト）」と言う存在らしい.&lt;br /&gt;　ふーん.&lt;br /&gt;　慣れれば楽だけどなぁ…だから何でServletじゃ使えねーんだよ！と混乱しそうで恐い.&lt;br /&gt;&lt;br /&gt;　その他にもServletに関する各種情報を取得・設定出来ます.&lt;br /&gt;　例えばJSPで&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;&amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;out.println("Servlet Version : " + application.getMajorVersion() + "." + application.getMinorVersion());&lt;br /&gt;;//-&gt; 結果&lt;br /&gt;Servlet Version : 2.4&lt;br /&gt;%&amp;gt;&lt;/div&gt;&lt;br /&gt;　なんて事を書くと、Servlet自体のバージョンも取得出来ました.&lt;br /&gt;　…使いどころが思いつきませんがw&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="text-decoration: underline"&gt;◇getAttribute / setAttribute&lt;/h3&gt;&lt;br /&gt;　上記にある様に、あるインターフェイスに「getAttribute」および「setAttribute」メソッドが存在する場合、各オブジェクトにAttribute（属性）をセットしたり取得したり出来ます.&lt;br /&gt;　主にServletとJSPでの連系や、Application共通での値の保持、Session共通での値の保持なんかに使う事になりそうです.&lt;br /&gt;&lt;br /&gt;　Servlet→JSPでこのgetAttribute/setAttributeを使用する場合は、Attributeをセットするスコープ（何ていうか…要するに適用範囲と言いますか境界と言いますか…スコープです）が重要らしい.&lt;br /&gt;　まぁ、ServletContextで少し触れた様に、Application/Session/Requestで使い分けないと大変な事になるから、別にJavaに限らずWebアプリケーションでスコープを気にするのは当たり前ですねw&lt;br /&gt;&lt;br /&gt;　Applicationスコープ　…　アプリケーション（自分で作ったアプリケーション）内で共通&lt;br /&gt;　Sessionスコープ　…　クライアント別（1クライアントに対して共通）&lt;br /&gt;　Requestスコープ　…　リクエスト別（1回リクエスト内でのみ共通）&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;javax.servlet.ServletContext objServContext = getServletContext();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;objServContext.setAttribute("TestData", 1);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;javax.servlet.http.HttpSession objSession = request.getSession();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;objSession.setAttribute("TestData", 1);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;request.setAttribute("TestData", 1);&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　はぁ…&lt;br /&gt;　それにしても全然Java勉強が捗らない orz&lt;br /&gt;　新鮮で楽しいと言えば楽しいんですけど、頭に入るのにここまで時間がかかると、普通に使えるようになる気が一切しませんから…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7092541238102903816?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7092541238102903816/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7092541238102903816' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7092541238102903816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7092541238102903816'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/10/java-post2.html' title='Javaの勉強 - Post2.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-8628758907526427998</id><published>2007-10-11T19:12:00.000+09:00</published><updated>2007-10-11T19:17:42.546+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='後で読む'/><title type='text'>後で読む.</title><content type='html'>　マイコミジャーナル『実践サンプルで学ぶStruts 2 - 生まれ変わった定番フレームワークを徹底解説』&lt;br /&gt;　http://journal.mycom.co.jp/special/2007/struts2/001.html&lt;br /&gt;&lt;br /&gt;※この投稿は会社でチラ見して「後で自宅で詳しく見よう」と思っていたにも関わらず自宅に帰ったら見ようと思っていたページを見つけ出せなかったorz と言う間抜けな状況を解決する為の付箋紙的な投稿です.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-8628758907526427998?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/8628758907526427998/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=8628758907526427998' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8628758907526427998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8628758907526427998'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/10/blog-post.html' title='後で読む.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-245378464003858566</id><published>2007-10-08T21:38:00.000+09:00</published><updated>2007-10-08T22:04:21.870+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>OpenSourceのソースを見るのは何時の日か.</title><content type='html'>　休日出勤お疲れ様でした＞自分.&lt;br /&gt;　そんな事どーでもいいんですがｗ&lt;br /&gt;&lt;br /&gt;　先日Microsoftから「&lt;a href="http://www.itmedia.co.jp/enterprise/articles/0710/05/news009.html"&gt;.Net Frameworkのソースコードを公開する準備がある&lt;/a&gt;」と言う「今更かよ」なニュースが聞こえてきました.&lt;br /&gt;　今の時代、開発言語をオープンにして（…ソースをオープンにしただけでオープンソースか？と言われると現在の感覚から言えば「オープンソースでは無い」でしょうね. まったく紛らわしい言葉です. オープンソースって）、開発者からのフィードバックでより良い開発環境を構築していくのは至極当然の成り行きか、と思いました.&lt;br /&gt;&lt;br /&gt;　…んが.&lt;br /&gt;　実際の所、私の様な低レベル人間はオープンソース（広い意味で）のプログラムでもソースコードなんて見ちゃいないじゃん、と言う実にネガティブな事実に気づいた今日この頃.&lt;br /&gt;　そうだよね.&lt;br /&gt;　数年前に&lt;a href="http://internet.watch.impress.co.jp/cda/news/2004/02/13/2090.html"&gt;Windows2000のコードが流出した事件&lt;/a&gt;がありましたが、私がそのコードを見た所でちんぷんかんぷん120%ですよ.&lt;br /&gt;　何で100%を超えると行き成り120%に行く人が多いのかと言う疑問と同じくらいちんぷんかんぷんです.&lt;br /&gt;　あのソースコード流出で狂喜乱舞したハッカーorクラッカーな人と言うのは、ある程度の知識を有した人だけの話な訳ですよ.&lt;br /&gt;　だから、当時の私（今現在、何の進化もなし）は「ふーん、で？」な感想を持った事を覚えています.&lt;br /&gt;&lt;br /&gt;　せっかくのオープンなソースをまったく把握する事が出来ない私.&lt;br /&gt;　何時になったらそんなエクセレントなソースコードが読めるようになるんだろうか orz&lt;br /&gt;　もったいないもったいない…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-245378464003858566?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/245378464003858566/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=245378464003858566' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/245378464003858566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/245378464003858566'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/10/opensource.html' title='OpenSourceのソースを見るのは何時の日か.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-4997005925378072369</id><published>2007-10-07T23:17:00.000+09:00</published><updated>2007-10-08T00:17:37.849+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Javaの勉強 - Post1.</title><content type='html'>　ひっそりと長らく停止していたJavaの勉強.&lt;br /&gt;　今日からまた週2時間くらいの勢いで再開予定 orz&lt;br /&gt;&lt;br /&gt;　まぁ、アレです.&lt;br /&gt;　仕事が忙しいので.&lt;br /&gt;　明日も休日出勤だし.&lt;br /&gt;　本当は毎晩ビール飲んだ暮れてるのが原因だけど orz&lt;br /&gt;&lt;br /&gt;　と、それは置いておき、以前勉強した6時間分はすっかり頭の中から抜け落ちていたので、また第１歩からJavaを検証してみます.&lt;br /&gt;　今回はStrutsをいきなり使ったりせず、Java（JSP/Servlet）そのものをいじくります.&lt;br /&gt;　未だにTomcatとGeronimoの違いがよく分かりませんが（前者がJSP/Servletコンテナ・サーバ、後者がJ2EEコンテナ・サーバー（Application Server）…と言われてもねぇ）、それは今のところ無視して、普通にJSPとServletを動かして.&lt;br /&gt;&lt;br /&gt;　で、再開１日目にして早速つまづきましたw&lt;br /&gt;&lt;br /&gt;　Servletを触っていて、ふと「あれ？POSTされたデータのエスケープって、全部自分でやらないとダメなの？（自動で処理してくれるクラスって無いの？）」と言う疑問が沸き上がり、ちょろちょろと調べてみましたが、いまいち的を得た回答ページを見つける事が出来ず、『取り敢えず』以下の様なクラスを書いてみる事に.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;package com.blogspot.lightmaterial.core.String;&lt;br /&gt;&lt;br /&gt;import java.util.regex.*;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * 文字列に対するセキュリティ処理を実装します.&lt;br /&gt; */&lt;br /&gt;public class SecureString {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* Property.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;protected String value = null;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* Constructor.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public SecureString() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public SecureString(String strValue) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.setValue(strValue);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* Accessor.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public String getValue() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return this.value;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void setValue(String strValue) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.value = strValue;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* Htmlタグをエスケープします.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @access public&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @param void&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @return String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public String toEscape() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//-&gt; Local variable.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int nIndex = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String strTarget = new String();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String[] strPattern = {"&amp;lt;", "&amp;gt;", "'", "\""};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String[] strReplace = {"&amp;amp;lt;", "&amp;amp;gt;", "&amp;amp;#039;", "&amp;amp;quot;"};&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//-&gt; Check value property.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (this.value == null) return "";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//-&gt; Preserve value property.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;strTarget = this.value;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//-&gt; Replace value.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (nIndex=0; nIndex&amp;lt;strPattern.length; nIndex++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;strTarget = this.doReplace(strTarget, strPattern[nIndex], strReplace[nIndex]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;strTarget = Matcher.quoteReplacement(strTarget);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//-&gt; Set return value.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return strTarget;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* 文字列をそのまま返します.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @access public&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @param void&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @return String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public String toString() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return this.value;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* 文字列を置換します.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @access protected&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @param String Target&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @param String Pattern&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @param String Replace&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* @return String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;protected String doReplace(String strTarget, String strPattern, String strReplace) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//-&gt; Local variable.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Pattern objPattern = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Matcher objMatcher = null;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//-&gt; Replace target value.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;objPattern = Pattern.compile(strPattern);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;objMatcher = objPattern.matcher(strTarget);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;strTarget = (objMatcher.replaceAll(strReplace));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//-&gt; Set return value.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return strTarget;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;　Stringを使いまわしてるので、メモリが無駄になってる上にエラー処理を一切していないと言う恐怖のコードですが、Java自体よく分かってない上に適当に書いてるので気にせず行きましょう.&lt;br /&gt;&lt;br /&gt;　上記のコードを書き終わり、ServletのgetParameterの戻り値に適用.&lt;br /&gt;　「…一応普通に動いてるな…」とは思ったのですが、何しろこんな書き方で正しい訳が無い.&lt;br /&gt;　と言うか、書き方以前にきっとどこかにエスケープするクラスなりメソッドがあるはずなんですが、それが見つけられません.&lt;br /&gt;&lt;br /&gt;　そう.&lt;br /&gt;　それもこれもJavaのドキュメントが原因です.&lt;br /&gt;　Javaのドキュメントって、親切そうでいて、以外と使い勝手が悪い様な気がしてなりません.&lt;br /&gt;　それともPHPの親切なドキュメントに慣れすぎているのが悪いんでしょうか？&lt;br /&gt;　正直、あの悪名高きMSDN（サブスクリプションじゃなくてヘルプの方）よりも『個人的には』使い勝手が低い様な気がします.&lt;br /&gt;　いや、クラスの把握とかメソッドの把握にはいいんですが、何しろサンプルが異様に少ない.&lt;br /&gt;　javadocで生成しているが故の制限なのかもしれませんが、正直私の様な初心者にはヘルプにサンプルが載ってないのは致命傷です orz&lt;br /&gt;&lt;br /&gt;　こんな調子じゃ、これから先のJava勉強は茨の道確定ですね.&lt;br /&gt;　明日も仕事だし、今日は諦めてさっさと寝よっと.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-4997005925378072369?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/4997005925378072369/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=4997005925378072369' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4997005925378072369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4997005925378072369'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/10/java-post1.html' title='Javaの勉強 - Post1.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-328811480282941405</id><published>2007-10-04T19:24:00.001+09:00</published><updated>2008-03-28T20:55:20.017+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DirectoryService'/><title type='text'>OpenLDAP for Win32 - その1.</title><content type='html'>　OpenLDAP for Win32の設定やらでひっかかった所を忘れない内に書きなぐる予定です.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://lightmaterial.blogspot.com/2007/10/phpldapactivedirectory-2.html"&gt;先日書いた様に、PHPのLDAP関数でActive Directoryには接続・認証出来た&lt;/a&gt;ので、今度はOpenLDAPで試します.&lt;br /&gt;&lt;br /&gt;　Linuxでやろうかとも思いましたが、&lt;STRIKE&gt;面倒なので&lt;/STRIKE&gt; 先にWindows版からやった方が敷居が低いかな？と思い、以下のソフトをインストール.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://lucas.bergmans.us/hacks/openldap/"&gt;OpenLDAP for Win32&lt;/a&gt;&lt;br /&gt;　※2008-03-28追記　気づけば2回目書く前に「Project suspended」だそうです orz&lt;br /&gt;　　まだ &lt;a href="http://download.bergmans.us/openldap/"&gt;http://download.bergmans.us/openldap/&lt;/a&gt; ここからダウンロード可能ではありますが&lt;br /&gt;&lt;br /&gt;　インストールは普通に終了.&lt;br /&gt;　※時間があれば手順追って書きますが、今は時間が無いのでパス.&lt;br /&gt;&lt;br /&gt;　次に設定を.&lt;br /&gt;　『取り敢えず』動かしてみる事が目標なので、WEB上にあった設定例通り、以下の様に設定.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;suffix[tab]"dc=example,dc=com"&lt;br /&gt;rootdn[tab]"cn=Manager,dc=example,dc=com"&lt;br /&gt;rootpw[tab]secret&lt;/div&gt;　※『[tab]』はTAB文字（\t）. その他は変更なし.&lt;br /&gt;&lt;br /&gt;　そしてOpenLDAPサーバーを徐に開始（コントロールパネル→「管理ツール」→「サービス」→「OpenLDAP」を開始）.&lt;br /&gt;　問題なく起動した模様.&lt;br /&gt;&lt;br /&gt;　次にTOPツリーと言う物を作成するらしい.&lt;br /&gt;　Active Directoryで言う所の…何に当たるのかは不明ｗ&lt;br /&gt;　恐らく、Active Directoryを構築する際に「新しいドメインツリーを作成」とか「既存のドメインツリーに…」等々選択する項目の「最初のドメインツリーを作成」と言うものに当たるのでしょう.&lt;br /&gt;&lt;br /&gt;　と言う事で、早速ツリーやOU（OrganizationUnit. 綴りが合っているかは未確認）、ユーザーなんかを作成する事が出来るコマンド「ldapadd」を実行する事に.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;D:\OpenLDAP&amp;gt; ldapadd -x -D "cn=Manager,dc=example,dc=com" -w secret&lt;br /&gt;&lt;span style="font-style:italic;"&gt;ldap_bind: Invalid credentials (49)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;　… orz&lt;br /&gt;　なんじゃそりゃ.&lt;br /&gt;　「ldap_bind: Invalid credentials (49)」で検索してみるも、結構色んな原因があるらしく、ページを見つける度に設定ファイルやら何やらいじくりまわす事数十回.&lt;br /&gt;　これ↓が原因だった.&lt;br /&gt;&lt;br /&gt;【&lt;a href="http://lists.apple.com/archives/Darwin-userlevel/2005/Nov/msg00007.html"&gt;何故Appleのサイト？なMLから抜粋&lt;/a&gt;】&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;&amp;gt; OK, I think I see the problem... it looks like it's not possible to do a simple bind against the rootdn if your password is specified in cleartext. The workaround would be to use slappasswd like this:&lt;br /&gt;&amp;gt; &lt;br /&gt;&amp;gt; % slappasswd -s secret&lt;br /&gt;&amp;gt; {SSHA}ioGadl0574KxRPecJ7Pb5q33j2x/Fi3w&lt;/div&gt;　※注）ハッシュ結果は&lt;span style="font-style:italic;"&gt;コマンド実行毎に異なります.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;　…あ、そう.&lt;br /&gt;　そんなに単純な事なのかよっ！ orz&lt;br /&gt;　確かに設定ファイルには&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;　Cleartext passwords, especially for the rootdn, should be avoid.&lt;/div&gt;&lt;br /&gt;　とは書いてあるが、「駄目」とは書いてないじゃない orz&lt;br /&gt;　と言う事で、先のAppleMLの続きを読むと…&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;&amp;gt; I believe this is due to Mac OS X's version of OpenLDAP being built with --disable-cleartext.&lt;/div&gt;&lt;br /&gt;　アレか.&lt;br /&gt;　OpenLDAP for Win32では「--disable-cleartext」なオプションが適用された状態でビルドされているってのか？&lt;br /&gt;　…ダウンロードサイトなりREADME読めば、きっとちゃんと書いてあるんでしょうね orz&lt;br /&gt;　はい、結局その辺すっ飛ばしてる私が悪いと言う事で.&lt;br /&gt;　結局下記の通り実行.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;D:\OpenLDAP&amp;gt; slappasswd -s secret&lt;br /&gt;{SSHA}Fa6TV9xYXXh+iWrXqwRWj3fm1aTpylEt&lt;/div&gt;　※注）ハッシュ結果は&lt;span style="font-style:italic;"&gt;コマンド実行毎に異なります.&lt;/span&gt;&lt;br /&gt;　そして設定の「rootpw」を変更.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;suffix[tab]"dc=example,dc=com"&lt;br /&gt;rootdn[tab]"cn=Manager,dc=example,dc=com"&lt;br /&gt;rootpw[tab]{SSHA}Fa6TV9xYXXh+iWrXqwRWj3fm1aTpylEt&lt;/div&gt;　※『{SSHA}』から記述するので注意.&lt;br /&gt;&lt;br /&gt;　今日も今日とて時間の無駄！！！&lt;br /&gt;　自分がアホ人間である事を再認識した今日この頃.&lt;br /&gt;　続きはまた今度.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-328811480282941405?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/328811480282941405/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=328811480282941405' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/328811480282941405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/328811480282941405'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/10/openldap-for-win32-1.html' title='OpenLDAP for Win32 - その1.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-5395437344450316058</id><published>2007-10-02T18:36:00.000+09:00</published><updated>2007-10-02T19:02:29.512+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DirectoryService'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>PHPのLDAP関数でActiveDirectoryに接続 - その2.</title><content type='html'>　メモ走り書き.&lt;br /&gt;&lt;br /&gt;　ActiveDirectoryにはuidが存在しない様だ.&lt;br /&gt;　へぇ～…って、じゃあログインユーザー自身の情報をどうやって取得すればいいんだよ！？ orz&lt;br /&gt;&lt;br /&gt;　普通に考えればldap_searchのフィルタに&lt;br /&gt;&lt;br /&gt;　'(uid=' . $userid . ')'&lt;br /&gt;&lt;br /&gt;　の様に指定するんだろうけど、uidが存在しないんじゃなぁ…&lt;br /&gt;　と言う事でインターネットの海にどっぷりと沈みこみ、数時間後にようやく発見.&lt;br /&gt;　何でこんなに時間がかかったかは秘密.&lt;br /&gt;　秘密と言うか「cn」や「uid」をAttribute（属性）と呼ぶ事が分からなかったが為に、かなりのタイムロス orz&lt;br /&gt;&lt;br /&gt;　で、結局ズバリのページを見つけて歓喜↓&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://www.computerperformance.co.uk/Logon/LDAP_attributes_active_directory.htm"&gt;LDAP Attributes from Active Directory Users and Computers&lt;/a&gt;&lt;br /&gt;　※画面を少し下にスクロールしたら表があります.&lt;br /&gt;&lt;br /&gt;　「uid」の代わりに「sAMAccountName」（または「userPrincipalName」）を使えそうです.&lt;br /&gt;　これで心おきなく情報を取り放題ですよ.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;&lt;br /&gt;$objConnection = ldap_connect('ldap://example.com', 389);&lt;br /&gt;&amp;nbsp;&amp;nbsp;or die('could not connect Active-Directory.');&lt;br /&gt;ldap_set_option($objConnection, LDAP_OPT_PROTOCOL_VERSION, 3)&lt;br /&gt;&amp;nbsp;&amp;nbsp;or die('could not set protocol-version...');&lt;br /&gt;&lt;br /&gt;if (! $objConnection) die('connection-object is empty.');&lt;br /&gt;if (! @ldap_bind($objConnection, 'userid@example.com', 'password'))&lt;br /&gt;&amp;nbsp;&amp;nbsp;die("error.&amp;lt;br&amp;gt;reason... " . ldap_error($objConnection) . "&amp;lt;br&amp;gt;");&lt;br /&gt;&lt;br /&gt;if ($objResult = @ldap_search($objConnection, 'OU=exampleou,DC=example,DC=com', '(sAMAccountName=userid)', array('cn', 'sAMAccountName', 'userPrincipalName', 'mail'))) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;$aryResult = ldap_get_entries($objConnection, $objResult);&lt;br /&gt;&amp;nbsp;&amp;nbsp;print_r($aryResult);&lt;br /&gt;} else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;echo 'could not get entries.&amp;lt;br&amp;gt;';&lt;br /&gt;}&lt;br /&gt;ldap_unbind($objConnection);&lt;br /&gt;echo 'finish.';&lt;/div&gt;　※タグべた書きなのでコードが読みにくいと言うか汚いと言うか投げやりなのは気にしない方向で.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-5395437344450316058?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/5395437344450316058/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=5395437344450316058' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5395437344450316058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5395437344450316058'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/10/phpldapactivedirectory-2.html' title='PHPのLDAP関数でActiveDirectoryに接続 - その2.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-9080263241915764325</id><published>2007-10-02T11:58:00.000+09:00</published><updated>2007-10-02T14:13:29.919+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DirectoryService'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>PHPのLDAP関数でActiveDirectoryに接続.</title><content type='html'>　メモ走り書き.&lt;br /&gt;&lt;br /&gt;　PHP4の環境からActiveDirectoryでの認証が必要になったのでテスト.&lt;br /&gt;&lt;br /&gt;　・ADサーバー : Windows Server 2003 Standard Edition&lt;br /&gt;&lt;br /&gt;　マニュアルに従い、ldap_bindの第二引数にdnとして&lt;br /&gt;&lt;br /&gt;　　'cn=userid,ou=exampleou,o=excom,c=JP'&lt;br /&gt;　　'uid=userid,dc=example,dc=com'&lt;br /&gt;&lt;br /&gt;　等々つっこんでみましたが、&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;Warning: ldap_bind(): Unable to bind to server: Invalid credentials in ....&lt;/div&gt;&lt;br /&gt;　とエラーが出るばかりで認証出来ず.&lt;br /&gt;　何でだ？何でだ？と頭を悩ませる事1時間.&lt;br /&gt;&lt;br /&gt;　…ん？これって普通に「userid@example.com」形式じゃ駄目？&lt;br /&gt;　と思い至り、早速やってみると……普通に接続しやがりました orz&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;&lt;br /&gt;$objConnection = ldap_connect('ldap://example.com', 389);&lt;br /&gt;&amp;nbsp;&amp;nbsp;or die('could not connect Active-Directory.');&lt;br /&gt;//-&gt; ↓2007-10-02追記（これもセットした方が良さそうです）&lt;br /&gt;ldap_set_option($objConnection, LDAP_OPT_PROTOCOL_VERSION, 3)&lt;br /&gt;&amp;nbsp;&amp;nbsp;or die('could not set protocol-version...');&lt;br /&gt;&lt;br /&gt;if ($objConnection) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;if (@ldap_bind($objConnection, 'userid@example.com', 'password')) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo "success.&amp;lt;br&amp;gt;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;} else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo "error.&amp;lt;br&amp;gt;reason... " . ldap_error($objConnection) . "&amp;lt;br&amp;gt;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;ldap_unbind($objConnection);&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　まぁ、あれです.&lt;br /&gt;　アホです.&lt;br /&gt;　生粋のアホです orz&lt;br /&gt;　また今日も時間を無駄にした...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-9080263241915764325?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/9080263241915764325/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=9080263241915764325' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/9080263241915764325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/9080263241915764325'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/10/phpldapactivedirectory.html' title='PHPのLDAP関数でActiveDirectoryに接続.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-8468820498002083329</id><published>2007-09-28T23:17:00.000+09:00</published><updated>2007-09-29T00:16:39.500+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>データベースへの追加・更新…どのクラスで実装すべき？</title><content type='html'>　何を今更…と言う様な話なのは重々承知ですｗ&lt;br /&gt;&lt;br /&gt;　PHP4もライフサイクルが終了しますので、来年を持って会社で開発・使用していたFrameworkも終了し、ZendFrameworkに乗り換え様かと会社のSEさんが言ってました.&lt;br /&gt;&lt;br /&gt;　そうだよね.&lt;br /&gt;　と言いますか、ぶっちゃけ乗り換えがかなりの勢いで遅いですｗ&lt;br /&gt;　しかしそれもPHP4で運用している環境をサポートしなければならなかったが故（ZendFrameworkはPHP5.1.4以降で動作）.&lt;br /&gt;　致し方なしと言った所でしょう.&lt;br /&gt;&lt;br /&gt;　所で、lightmaterialを含め会社の人はPHP/.Netを使っているんですが、.Netの影響か会社のPHPFrameworkではDBに対するINSERT/UPDATE/DELETEをマネージャで実装しています.&lt;br /&gt;　勿論正確にはDBAdapter（DataBase用のアダプタ）のメソッドを呼び出すのがマネージャな訳です.&lt;br /&gt;　ADO.Netも似た様な構造です.&lt;br /&gt;　fillしたデータの各行に対して変更を加え、それらDBへのコミットはDataAdapterから行いますが、それを呼び出すのは当然マネージャなりデータを操作するクラスだったりします（個別に操作する別の方法もありますが、オブジェクト指向としては醜い方法です…と思いますｗ）.&lt;br /&gt;&lt;br /&gt;　が、ZendFrameworkのマニュアルを読むとDataRowクラスに「save」メソッド（追加・更新をDBへ反映させるメソッド）が実装されています.&lt;br /&gt;　要するに&lt;br /&gt;&lt;br /&gt;　　$objRow = $objTable-&gt;createRow();&lt;br /&gt;　　$objRow-&gt;save();&lt;br /&gt;　　//-&gt; 酒飲みながら流し見してたので本当にTableからcreateRowするかは確認してませんが、普通に考えればTableクラスから生成するかと.&lt;br /&gt;&lt;br /&gt;　な訳ですよ.&lt;br /&gt;　…いや、確かにそう言う実装方法も色々と見て来ましたので、別に戸惑う事でも何でもないんですが、ふと「あれ？DBへの追加・更新用のメソッドって、どこに実装すべきなんだ？どこに実装するのがエクセレントなんだ？」と言う疑問が湧き上がって訳です.&lt;br /&gt;&lt;br /&gt;　実際の所、どちらの方がスマートなんだろう？&lt;br /&gt;　各Rowに対する変更をTableオブジェクトでストアして一気にコミット…大量のデータが変更される環境では、トラフィック効率が非常に魅力的な方法です（リアルタイム性に欠けるんですがｗ）.&lt;br /&gt;　一方、各Rowにsave/deleteメソッドが実装されていると、小回りが効くと言うか、何かしらのインポート処理では無い限り、こちらの方がリアルタイム性＋トラフィック効率が良い様な気もします（さっきと書いてる事違うじゃない…と言う事は無く、一度に大量の処理が発生する場合は前者の方がトラフィックが減りますが、1レコードしか更新しない場合には後者のほうがトラフィックは少なくなります）.&lt;br /&gt;　ただしこの方法、数万レコードのインポート処理が発生するプログラムの場合、相当処理が遅いんじゃないの？ orz&lt;br /&gt;&lt;br /&gt;　うーん.&lt;br /&gt;　難しい.&lt;br /&gt;　Javaのデータベース周りって、どっちの方法がスタンダードなんだろ？&lt;br /&gt;　どちらのアプローチも間違いじゃないから悩ましい.&lt;br /&gt;　でもZendFrameworkに乗り換えるのは殆ど決定事項みたいですので、これからは2つのアプローチに慣れる必要がありそうです.&lt;br /&gt;&lt;br /&gt;　それにしても、会社のFrameworkってプログラム量が凄い少なくて済む（と言うか、かなりの勢いで全自動）から気に入ってたんですけどねぇ.&lt;br /&gt;　ちょっと残念です.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-8468820498002083329?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/8468820498002083329/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=8468820498002083329' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8468820498002083329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8468820498002083329'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/09/blog-post_28.html' title='データベースへの追加・更新…どのクラスで実装すべき？'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7336860073535356977</id><published>2007-09-25T14:55:00.000+09:00</published><updated>2007-09-25T15:12:29.452+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>SafariのLabelエレメント.</title><content type='html'>　ちょっと仕事中だけど忘れない様にメモ.&lt;br /&gt;　さっさと書きなぐります.&lt;br /&gt;&lt;br /&gt;　Macの標準ブラウザであるSafari.&lt;br /&gt;　会社には古いPowerPC系のMacしかないんだけど、そいつに入っているSafari（1.3.x系）ではLabelエレメントに対するJavascriptの取扱がちょっと変（もしかすると、この挙動が正規の動きなのかもしれないけど）.&lt;br /&gt;&lt;br /&gt;&amp;lt;form name="test_post" method="post"&amp;gt;&lt;br /&gt;&amp;lt;label onclick="javascript: alert(this.form.name)"&amp;gt;テスト&amp;lt;/label&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;　こんな感じで書くと、Formの名前は拾ってくれません（Labelエレメントの「this」そのものが無効. IEやFirefoxは拾います）.&lt;br /&gt;　私の中ではこの状態を「Safariの挙動」として把握していたのですが、ふと&lt;a href="http://lightmaterial.blogspot.com/2007/06/phppdf.html"&gt;Windows版のSafari&lt;/a&gt;で同じ様なJavaScriptを動かしてみると、&lt;span style="font-weight:bold; border-bottom: 1px dashed #000000"&gt;正常（？）に動作しやがります&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;　…で、結局どの挙動が正常なんだ？ orz&lt;br /&gt;&lt;br /&gt;　今回はWindows版しか試してませんが、もしかしてIntel Mac用（MacOS X 10.4.x）のSafari（2.0.x）でも普通に動くのか？？&lt;br /&gt;　むしろ1.3.x系Safariには、こんな下らないバグがずーっと残ってたとでも言うのか？？&lt;br /&gt;&lt;br /&gt;　うーん…今現状Intel Macが手元に無いから試しようが無いしなぁ～&lt;br /&gt;　ちらっと検索しても、なかなか該当する記事を見つける事が出来ませんでしたし.&lt;br /&gt;　これを口実に会社でIntel Mac買ってもらうかなｗ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7336860073535356977?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7336860073535356977/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7336860073535356977' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7336860073535356977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7336860073535356977'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/09/safarilabel.html' title='SafariのLabelエレメント.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-6715686038713134231</id><published>2007-09-21T18:47:00.000+09:00</published><updated>2007-09-21T18:57:37.375+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>PDF出力が一対一の直つなぎ環境で出力されなかった問題.</title><content type='html'>　先日書いた&lt;a href="http://lightmaterial.blogspot.com/2007/09/blog-post.html"&gt;一対一の直つなぎ環境だとPDFが出力されない&lt;/a&gt;、と言う問題.&lt;br /&gt;　なんの事は無い、単にサーバー側のDNS設定がおかしかっただけでした orz&lt;br /&gt;&lt;br /&gt;　誤設定　→　ルータ環境下でのDNS設定のまま&lt;br /&gt;　正設定　→　直つなぎ相手または自分&lt;br /&gt;&lt;br /&gt;　…って…んが？&lt;br /&gt;　何でだ？&lt;br /&gt;　そう言うもんなのか？&lt;br /&gt;　DNS設定がおかしいと、HTML/PHPは正常に表示されるが、PDF出力（PHPから生成）の場合は表示されないって？&lt;br /&gt;　そんなバカな話あるのか？&lt;br /&gt;&lt;br /&gt;　うーん…と言う事で、やっぱりコードが悪いのかもｗ&lt;br /&gt;&lt;br /&gt;　これは後日要確認！（と書いて調べてない事が山ほどある事は忘却の彼方へ…時間見て遣り残してる確認事項終わらせないとなぁ）.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-6715686038713134231?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/6715686038713134231/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=6715686038713134231' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/6715686038713134231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/6715686038713134231'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/09/pdf.html' title='PDF出力が一対一の直つなぎ環境で出力されなかった問題.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7744693124725170626</id><published>2007-09-18T22:18:00.000+09:00</published><updated>2007-09-18T22:45:59.739+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='このblogについて'/><title type='text'>今宵は愚痴を.</title><content type='html'>　18日22時現在…36時間起きっぱなし、ついさっきまで仕事しっぱなしの状態 orz&lt;br /&gt;　昨日は祝日なのに現時点で36時間…そう、休日仕事からのブチ抜きと言う最悪状態ですｗ&lt;br /&gt;&lt;br /&gt;　いや、自分が悪い部分もあるからある程度仕方ないと思うけど、流石に36時間頭フル回転の状態を続けると心身ともにぐったりです.&lt;br /&gt;　ただ、不思議な事に眠気はさほどありません.&lt;br /&gt;　朝が眠気のピークで、後はダルイだけです.&lt;br /&gt;　しかも余り普段と変わらないダルさ.&lt;br /&gt;　それどころか、さっきシャワーを浴びながら「このまま今日も徹夜で行けるんじゃ？」と思ったから自分が怖い.&lt;br /&gt;&lt;br /&gt;　因みに、仕事の山場を過ぎて終焉を迎えようかと言う時に「PDFがインターネットに繋がっている環境だと出力されるが、一対一の直つなぎ等のクローズドなネットワーク環境だと出力されない」と言う意味不明な現象に出くわしましたが、思考回路が焼き付きそうだったので放棄してきました orz&lt;br /&gt;　他のマシンだと問題無いので、たぶんコードじゃなくてネットワークの設定だとは思うんですけど、PDFが出力されないクローズドなネットワークでも普通にページ（スクリプト）の表示は出来るんだよなぁ…何だろ？？&lt;br /&gt;　正に意味不明.&lt;br /&gt;　寝てすっきりすれば直ぐ解決と言う楽な話に…はならないか orz&lt;br /&gt;&lt;br /&gt;　さ、悩みは明日に回してさっさと寝よ.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7744693124725170626?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7744693124725170626/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7744693124725170626' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7744693124725170626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7744693124725170626'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/09/blog-post.html' title='今宵は愚痴を.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-9192940876130834537</id><published>2007-09-09T17:37:00.000+09:00</published><updated>2007-09-09T18:38:15.809+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>PHPの配列によるメモリ消費.</title><content type='html'>　久々更新.&lt;br /&gt;&lt;br /&gt;　前から思っていましたが、何故PHPの配列はあんなにメモリを消費するんだろ.&lt;br /&gt;　大きいデータの場合、文字列→配列へexplodeなりすると、メモリ消費量が一気に10倍程度まで跳ね上がります orz&lt;br /&gt;　この傾向は当然ながらデータサイズが小さい物より大きいものの方がより顕著です.&lt;br /&gt;　迂闊に大きいデータを配列化しようものなら、貴重なメモリ資源が喰い散らかされてしまいます（終了時には解放されますが、Linuxのメモリ最適化処理なんかの環境下だと、終了後も一見掴みっぱなしに見えるから気持ち悪い…）.&lt;br /&gt;　例えばデータベース.&lt;br /&gt;　データベース回りの機能をクラス化すると、大抵SELECTクエリの結果データを配列へ格納する様に作ると思いますが、この時も直接mysql_fetch_xxxxで処理を回すより結構なメモリ消費量となってしまいます.&lt;br /&gt;　更に、データベースから取得した配列データのエンコードを変換して出力したいとした時、利便性から「mb_convert_variables」（配列データ中のエンコードを指定のエンコードに一括変換する関数）を使うケースが多いと思いますが、この「mb_convert_variables」も曲者で、処理後のメモリ消費が処理前の倍近くになってしまいます.&lt;br /&gt;　分かり易く書くと↓こんな感じ.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;echo "MEMORY0 : " . number_format(memory_get_usage()) . " byte（初期値）&amp;lt;br&amp;gt;";&lt;br /&gt;&lt;br /&gt;$strBuffer = str_repeat("ABCDEFG,", 10000);&lt;br /&gt;echo "MEMORY1 : " . number_format(memory_get_usage()) . " byte（文字列生成）&amp;lt;br&amp;gt;";&lt;br /&gt;&lt;br /&gt;$aryBuffer = explode(",", $strBuffer);&lt;br /&gt;echo "MEMORY2 : " . number_format(memory_get_usage()) . " byte（配列生成）&amp;lt;br&amp;gt;";&lt;br /&gt;&lt;br /&gt;unset($strBuffer);&lt;br /&gt;echo "MEMORY3 : " . number_format(memory_get_usage()) . " byte（文字列解放）&amp;lt;br&amp;gt;";&lt;br /&gt;&lt;br /&gt;mb_convert_variables("SJIS-win", "UTF-8", $aryBuffer);&lt;br /&gt;echo "MEMORY4 : " . number_format(memory_get_usage()) . " byte（mb_convert_variables実行）&amp;lt;br&amp;gt;";&lt;br /&gt;&lt;br /&gt;unset($aryBuffer);&lt;br /&gt;echo "MEMORY5 : " . number_format(memory_get_usage()) . " byte（配列解放）&amp;lt;br&amp;gt;";&lt;/div&gt;&lt;br /&gt;　※PHP5.2.1以前の場合、「memory_get_usage」は「--enable-memory-limit」付きでメイクする必要があります.&lt;br /&gt;&lt;br /&gt;　結果↓&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;MEMORY0 : 59,160 byte（初期値）&lt;br /&gt;MEMORY1 : 139,568 byte（文字列生成）&lt;br /&gt;MEMORY2 : 1,045,532 byte（配列生成）&lt;br /&gt;MEMORY3 : 965,600 byte（文字列解放）&lt;br /&gt;MEMORY4 : 1,637,344 byte（mb_convert_variables実行）&lt;br /&gt;MEMORY5 : 91,424 byte（配列解放）&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　内部で単純に複製して変換しているからなのかもしれませんが、メモリ消費が変換対象の配列変数を解放するまで掴みっぱなしになるのは如何なものかと…&lt;br /&gt;&lt;br /&gt;　まぁそんな事言い出すと、全部変数解放した後の消費量も気になるじゃねーか！って話になりますけどw&lt;br /&gt;&lt;br /&gt;　こうして考えると、世にあるPHP用Frameworkがそれぞれどの程度のメモリ消費なのか、見比べてみるのも面白いかもしれません.&lt;br /&gt;　同等の機能を実現出来るFrameworkなら、エコなコードの方がいいに決まってますから.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-9192940876130834537?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/9192940876130834537/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=9192940876130834537' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/9192940876130834537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/9192940876130834537'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/09/php.html' title='PHPの配列によるメモリ消費.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-8768013864654583373</id><published>2007-08-23T23:27:00.001+09:00</published><updated>2007-08-23T23:42:38.775+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Windows Live Writerで試し書き.</title><content type='html'>&lt;p&gt;　と言う事で、タイトル通り&lt;a href="http://get.live.com/betas/writer_betas" target="_blank"&gt;Windows Live Writer&lt;/a&gt;で試しに投稿しようとしてます.&lt;/p&gt; &lt;p&gt;　実際に上手く行くかは分かりませんがｗ&lt;/p&gt; &lt;p&gt;　と言うか、共通APIを使っているからなのか、カテゴリまでインポートしてくれるんですねぇ.&lt;/p&gt; &lt;p&gt;　…私が時代遅れなだけか orz&lt;/p&gt; &lt;p&gt;　所々動きがおかしいですが（まだBeta版だから仕方ないけど）、Windowsで書くならいいかも（他のblogエディタ使用経験なしｗ）.&lt;/p&gt; &lt;p&gt;　何よりbloggerでも自動認識したのが好印象.&lt;/p&gt; &lt;p&gt;　MSにしてはやりますな.&lt;/p&gt; &lt;p&gt;　さて、投稿実行実行っと.&lt;/p&gt; &lt;p&gt;/**&lt;br&gt;&amp;nbsp;* 2007-08-23&amp;nbsp;23:33追記.&lt;br&gt;&amp;nbsp;*/&lt;/p&gt; &lt;p&gt;　…改行するのに、Shift+EnterじゃないとPタグで改行されるんだ orz&lt;br&gt;　この辺は使い難いです.&lt;br&gt;　まぁ、よくよく考えたら、普段Linuxで投稿してるから関係ないっちゃー関係ないですねｗ&lt;br&gt;　と、微妙に追記動作テスト.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-8768013864654583373?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/8768013864654583373/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=8768013864654583373' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8768013864654583373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8768013864654583373'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/08/windows-live-writer.html' title='Windows Live Writerで試し書き.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-283008963936851969</id><published>2007-08-23T20:14:00.000+09:00</published><updated>2007-08-23T20:37:36.009+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>MySQLで数値データを桁区切り（3桁区切り）.</title><content type='html'>　to_charが無いMySQL.&lt;br /&gt;&lt;br /&gt;　◆ FORMAT(X[データ],D[小数点以下桁数])&lt;br /&gt;　　Select FORMAT(suchi, 0) as suchi From TestTable;&lt;br /&gt;&lt;br /&gt;　100%何を今更って話ですがｗ&lt;br /&gt;&lt;br /&gt;　今までデータの成型はコード側で行う事が多かったんですが、諸事情でSQL文で成型する事に.&lt;br /&gt;　「SQL上で成型する場合はto_charを…ってMySQLには無いんだった orz」と言う、常人にしてみれば馬鹿馬鹿しくて俄かには信じられない状況に.&lt;br /&gt;　まぁ、私の脳みそレベルが垣間見れる訳です.&lt;br /&gt;&lt;br /&gt;　そして何を血迷ったのか「さっさと調べよう」と検索エンジンへ.&lt;br /&gt;　…んが、まったく出てきやしません orz&lt;br /&gt;　検索の仕方がまずかったのか、30分ほどネットを彷徨うlightmaterial.&lt;br /&gt;　しかも、最終的にドキュメント読んだらすぐに見つかると言う駄目っぷり orz&lt;br /&gt;&lt;br /&gt;　あ～アホらしい.&lt;br /&gt;　体調悪いしさっさと帰ろう.&lt;br /&gt;&lt;br /&gt;　なんちゃってデータベース使い（要するに素人）から、本当のデータベース使い（MS SQLでもOracleでもPgSQLでもMySQLでも何でも来いや！な玄人）に成りたいと心底思った今日この頃.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-283008963936851969?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/283008963936851969/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=283008963936851969' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/283008963936851969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/283008963936851969'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/08/mysql3.html' title='MySQLで数値データを桁区切り（3桁区切り）.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-4296253418629198729</id><published>2007-08-17T23:56:00.000+09:00</published><updated>2008-12-12T05:47:16.665+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Eclipse3.3.</title><content type='html'>　…久しぶりの更新だ orz&lt;br /&gt;　まぁ、もう一個のblogは半年ほど放置状態なので、まだましと言う事にしておきます.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　更新をサボっている間にEclipse3.3が正式リリースされました.&lt;br /&gt;　今日から微妙にずれた夏期休暇が取れたので（取れたのでと言うか、取るために仕事三昧の日々を送って「取った」んですが）、今日は朝からEclipse3.3をインストールして自宅で仕事の続きをやってました♪&lt;br /&gt;　… orz&lt;br /&gt;&lt;br /&gt;　いや、そんな話は置いておき.&lt;br /&gt;　Eclipse3.3ですが、自宅のPen4 1.5GHzと言う廃棄一歩手前でも現役で頑張っているWindowsマシンでは、少々もたつきが発生しました.&lt;br /&gt;　今の所、これまた普通だと廃棄候補にあがる2GHzのFedora Core6マシンだと普通に使えるので、自宅で仕事するには問題なさそうです…悲しい話ですが orz&lt;br /&gt;&lt;br /&gt;　lightmaterialにとって一番実用的なのが、各コードタブをダブルクリックした際の挙動.&lt;br /&gt;　今までもダブルクリックでコードエディタ部分がウィンドウいっぱいに広がりましたが、今回からOutlineなどのサブペインが完全に隠れず、クイックアクセスアイコンとして表示されるようになり、すばやくサブペインを復元できます（下画像の赤囲み部分）.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kri9yIsnLbE/RsW-E1OCkFI/AAAAAAAAAHk/dGriZ3gqlas/s1600-h/Screenshot-15c.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_kri9yIsnLbE/RsW-E1OCkFI/AAAAAAAAAHk/dGriZ3gqlas/s320/Screenshot-15c.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5099691143281676370" /&gt;&lt;/a&gt;　未だにワイドなディスプレイを持っていないlightmaterialには必須機能ですw&lt;br /&gt;　逆にワイドディスプレイ使っている人には、そんなに恩恵が無いかもしれませんが.&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;　あと、VisualStudio（.Net）の様に、コードの選択範囲をD&amp;D移動出来るとかって言う記事をどこかで見かけましたが、何が悪いのか上手く動いてくれません orz&lt;br /&gt;　Professionalな方はキーボードだけで殆んどの操作を行うんでしょうが、lightmaterialの様な低レベル人間には結構役に立つんですけどね.&lt;br /&gt;　どっか設定の変更が必要なんだろうか？&lt;br /&gt;　後で設定項目を見直してみる必要があるかもしれません.&lt;br /&gt;&lt;br /&gt;　その他、細かいけどかなり良くなったのがタブ.&lt;br /&gt;　非アクティブなタブもアイコンとタイトル両方が描画されるようになって、非常に便利になりました.&lt;br /&gt;　便利になりましたと言いますか、今までが不便でした orz&lt;br /&gt;&lt;br /&gt;　と、まだ全然触れてませんが、3.2系よりも「使っていて心地よい」改善が気に入りましたので、休み明けには会社の環境も3.3系へ乗り換えようかと計画中.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　所でまったく関係ありませんが、某会社が販売している.Net系コンポーネントを見つけたんですが、Firefox（Firebug付き）でサンプルを試すとすごい状態になります.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/RsW_rlOCkGI/AAAAAAAAAHs/u5kThRZkjXc/s1600-h/Screenshot-14b.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/RsW_rlOCkGI/AAAAAAAAAHs/u5kThRZkjXc/s320/Screenshot-14b.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5099692908513235042" /&gt;&lt;/a&gt;　これは何もしていない状態のJavaScriptエラー数です.&lt;br /&gt;　ただ…ただページを表示しただけです orz&lt;br /&gt;　まぁ、確かに対応ブラウザはIE限定となってはいるんですが……ここまで特化したコードも珍しかったので一応メモ.&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;　上記コンポーネント自体は業務系で使用されるケースが多いような分類なので、今のところIE限定でも問題無いんですが、この先いつまでIE限定のWebアプリケーションが受け入れられるのか…&lt;br /&gt;　仕事で足突っ込んでますが、正直この辺の切り分けってまだまだ不確定要素が多いです.&lt;br /&gt;&lt;br /&gt;　来年の今頃もまだIE限定で行けるのか？&lt;br /&gt;　未だに「対応ブラウザはIEと&lt;span style="font-weight:bold;"&gt;Netscape&lt;/span&gt;で」とか言う状況で行けるのか？（lightmaterialの会社は違いますけど）&lt;br /&gt;　FirefoxやらSafari対応にまで踏み込まないと淘汰されて行くのか？&lt;br /&gt;　と、不安が募るばかり.&lt;br /&gt;&lt;br /&gt;　まぁ、そうは言いつつ日本ではまだまだIEオンリーで大丈夫なんでしょうけどねw&lt;br /&gt;　IE天国日本ですから.&lt;br /&gt;&lt;br /&gt;　嗚呼恐ろしや恐ろしや…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-4296253418629198729?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/4296253418629198729/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=4296253418629198729' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4296253418629198729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4296253418629198729'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/08/eclipse33.html' title='Eclipse3.3.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kri9yIsnLbE/RsW-E1OCkFI/AAAAAAAAAHk/dGriZ3gqlas/s72-c/Screenshot-15c.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-6069305470194262742</id><published>2007-07-31T23:00:00.000+09:00</published><updated>2008-12-12T05:47:16.927+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>EnumeratorとIterator.</title><content type='html'>　…またやってしまった orz&lt;br /&gt;　週末更新が途絶え過ぎです.&lt;br /&gt;　前回反省した様な事を書いておきながら、全然反省してなかった事が白日の下に orz&lt;br /&gt;&lt;br /&gt;　と、デジャヴな反省は置いておき.&lt;br /&gt;　最近Javaの勉強も全然進んでいませ…ここでも駄目すぎる事実が orz&lt;br /&gt;　反省しきりです.&lt;br /&gt;　27時間テレビなんて見るもんじゃありませんｗ&lt;br /&gt;&lt;br /&gt;　話が逸れまくりましたので元に戻して.&lt;br /&gt;　Javaの勉強が全然進んでいないと言う駄目すぎる状況にある訳ですが、会社でPHPのコードを書いている時にフと「あれ？…EnumeratorとIteratorって…何が違うんだ？」と言う疑問にブチ当たりました.&lt;br /&gt;　はい、設計の勉強云々以前の問題ですね orz&lt;br /&gt;&lt;br /&gt;　いや、これは.Netの弊害です！！&lt;br /&gt;　私も被害者なんです！！！ orz&lt;br /&gt;&lt;br /&gt;　何でPHP書いててこんな事を考えたのかと言うと、会社では主に「PHP4でも動く事が前提」でコードを書いてますので（&lt;a href="http://journal.mycom.co.jp/news/2007/07/17/035/index.html"&gt;もうPHP4系のライフサイクルも終わりますが&lt;/a&gt;）、オブジェクト指向ライクな構造をとる場合には、かなりの割合で自力実装が必要です.&lt;br /&gt;　そして、それらは独自Frameworkとして作成・実装している訳ですが、その中でCollectionに対する列挙処理として「Iterator」クラスを作成しています.&lt;br /&gt;　例えば、Collectionクラス（勿論自前実装）には「追加」「クリア」「Item取得」の様な振る舞い+「getIterator」を実装して、列挙処理にIteratorを使用するイメージです.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kri9yIsnLbE/Rq9MlhFr6HI/AAAAAAAAAHc/oud2pRUbJJY/s1600-h/iterator001.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_kri9yIsnLbE/Rq9MlhFr6HI/AAAAAAAAAHc/oud2pRUbJJY/s320/iterator001.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5093373911000410226" /&gt;&lt;/a&gt;&lt;div style="clear:both"&gt;&lt;/div&gt;　※実際にはこんなにシンプルではありませんｗ&lt;br /&gt;&lt;br /&gt;　んが、.NetではIteratorと言うものは「概念上」ありますが、実際にはEnumerator（IEnumerator）がカバーする仕組みになっていて、lightmaterialの頭の中では「Iterator=Enumerator」と言う図式が完全に出来上がっていました.&lt;br /&gt;　でも、実際にはJavaの実装で見ると、IteratorとEnumeratorには明確な差異があり、IteratorはEnumeratorの後継にあたり、Enumeratorでは実装されていなかった「要素の削除」機能が実装されているものだ、と定義されています.&lt;br /&gt;&lt;br /&gt;　あれ？&lt;br /&gt;　何だ？&lt;br /&gt;　ん？&lt;br /&gt;&lt;br /&gt;　…結局IteratorとEnumeratorって何が違うんだよぉぉぉぉ～～！！？ orz&lt;br /&gt;&lt;br /&gt;　Javaなら「はい、そうですか」と明確で明瞭に理解可能ですが、他の言語での実装方法を見ていると、その差異が見えてきません.&lt;br /&gt;　うーん…ここは深く考えずにJavaでは「Enumeratorは過去の産物で、これからはIteratorオンリーです！」と考え、.Netでは「IteratorってEnumeratorの別名でしょ？」と考えておいた方がいいのかなぁ.&lt;br /&gt;&lt;br /&gt;　恐るべし列挙子/反復子！&lt;br /&gt;　と言いますか、こんな低レベルな事書いてるPGなんて、全国探しても私くらいのものでしょう orz&lt;br /&gt;　むしろ自分自身が恐ろしい今日この頃.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-6069305470194262742?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/6069305470194262742/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=6069305470194262742' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/6069305470194262742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/6069305470194262742'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/07/enumeratoriterator.html' title='EnumeratorとIterator.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kri9yIsnLbE/Rq9MlhFr6HI/AAAAAAAAAHc/oud2pRUbJJY/s72-c/iterator001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-576634191979553225</id><published>2007-07-23T23:14:00.000+09:00</published><updated>2007-07-23T23:25:01.817+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='このblogについて'/><title type='text'>今週は無し.</title><content type='html'>　ベランダでタバコを吸ったら、北海道にある我が家から見て北（若干東）の空に高速に点滅する光が一つ.&lt;br /&gt;　飛行機の点滅より速く、位置は一切変わらない.&lt;br /&gt;　ましてやこの時間に北海道の東北へ向かう飛行機なんざ無い訳で…&lt;br /&gt;　ま、そんな事（事実だけど）は気にせず戒めへ.&lt;br /&gt;&lt;br /&gt;　今週は更新無し.&lt;br /&gt;&lt;br /&gt;　と言う書き込みを月曜日にする駄目っぷり orz&lt;br /&gt;　出張で書けなかった時を除いて一応土日どちらかで書いてたんだけどなぁ.&lt;br /&gt;　建前上反省反省.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-576634191979553225?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/576634191979553225/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=576634191979553225' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/576634191979553225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/576634191979553225'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/07/blog-post_23.html' title='今週は無し.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-774529463667507906</id><published>2007-07-18T22:45:00.000+09:00</published><updated>2007-07-18T22:58:02.357+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Confirm-Addressが窓の杜に掲載されていた.</title><content type='html'>　風邪引きました orz&lt;br /&gt;　熱がある上に何故か白目が充血しまくりです.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://lightmaterial.blogspot.com/2007/06/blog-post.html"&gt;最近お世話になって&lt;/a&gt;いる&lt;a href="http://kenmaz.is-a-geek.com/"&gt;Confirm-Address&lt;/a&gt;と言う&lt;a href="http://www.mozilla-japan.org/products/thunderbird/"&gt;Thunderbird&lt;/a&gt;用のExtensionが&lt;a href="http://www.forest.impress.co.jp/article/2007/07/18/confirmaddress.html"&gt;窓の杜に紹介&lt;/a&gt;されていました.&lt;br /&gt;&lt;br /&gt;　kenmazさん、おめでとう御座いま…す…？&lt;br /&gt;&lt;br /&gt;　こう言う事があると急にアクセス数が増えたり、サポートの要求が増えたり大変かもしれませんが頑張って下さい.&lt;br /&gt;&lt;br /&gt;　さ、脳みそが熱暴走する前にさっさと寝ます.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-774529463667507906?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/774529463667507906/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=774529463667507906' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/774529463667507906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/774529463667507906'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/07/confirm-address.html' title='Confirm-Addressが窓の杜に掲載されていた.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7922948989272012678</id><published>2007-07-17T22:35:00.000+09:00</published><updated>2007-07-17T22:56:35.217+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Ajaxの繁栄とgoogle.</title><content type='html'>　ちょいと興味深い記事があったのでメモ.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://www.atmarkit.co.jp/news/200702/06/eweek.html"&gt;グーグルが語る：Ajaxはなぜ最初失敗し、その後成功したのか&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　半年くらい前だったかなぁ.&lt;br /&gt;　知人と「最近のWebアプリケーションってちょっと前まで考えられなかったくらいリッチだよねぇ」と言う話題になった事がありました.&lt;br /&gt;　最近ではOfficeライクなWebアプリケーションやWeb（Ajax）OSが無償で利用出来る環境にまで成長していますから.&lt;br /&gt;　その時lightmaterialが「Ajaxの基礎技術自体は枯れた技術なのに、何で今までこんなのが出て来なかったんだろうねぇ」と言ったら、知人が「クライアント性能の問題じゃない？」とそっけなく言ったのを鮮明に覚えています.&lt;br /&gt;　なるほど…言われてみれば当たり前の話だな、と.&lt;br /&gt;&lt;br /&gt;　そんな話からgoogleがAjaxや自然言語に取り組んで失敗し、そして今の成功がある事を分かり易く（英文訳なので日本語としては多少分かり難いかもしれませんが）書いてある記事でした.&lt;br /&gt;　それと同時に、今や新しいコンピューティングとExperienceはOSの手を離れ、Network/Internet上に移行したのだなぁ、とWebアプリケーションメインでプログラム書いてるPGのくせに、改めて強く痛感した次第です.&lt;br /&gt;&lt;br /&gt;※Experienceと書いたのはカッコつけたのでは無く、WindowsXPの語源でありMSが好んで使う言葉を皮肉っただけです.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7922948989272012678?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7922948989272012678/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7922948989272012678' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7922948989272012678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7922948989272012678'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/07/ajaxgoogle.html' title='Ajaxの繁栄とgoogle.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7067916409527274455</id><published>2007-07-16T23:40:00.000+09:00</published><updated>2007-07-17T00:02:22.099+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>XML署名.</title><content type='html'>　XML署名……は、初めて耳にしたよ orz&lt;br /&gt;　何ですかXML署名って？ｗ&lt;br /&gt;&lt;br /&gt;　仕事で使うかもしれないと言う話が持ち上がり、色々と調べてみたんですが、結局使わない事になりやがりました.&lt;br /&gt;　が、何か面白そうだったので引き続き調査中.&lt;br /&gt;&lt;br /&gt;　元々「XML署名」と言うのは、XML（タグで区切られたデータを扱うファイル）の改ざん防止、ファイル真性の証明を目的として作られた規格との事.&lt;br /&gt;　詳しくは↓ココ参照.&lt;br /&gt;　&lt;a href="http://www.atmarkit.co.jp/fsecurity/rensai/webserv02/webserv01.html"&gt;＠IT:XMLデジタル署名とXML暗号&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　別に新しい技術と言う訳では無いようです.&lt;br /&gt;　確かに今やあらゆるデータのデファクトスタンダードとなりつつある（既に成ってる？）XMLに電子署名を付けるのは理にかなった考えです.&lt;br /&gt;&lt;br /&gt;　が、この機能を実現しようとするとちょいと面倒.&lt;br /&gt;　面倒と言うか、まだ上手く動かせてません orz&lt;br /&gt;　.Netで試してみたんですが、何故かエラーが発生.&lt;br /&gt;　丸々MSのサンプルを動かしてもエラー.&lt;br /&gt;　OpenSSLで自己署名した証明書の作り方が悪いんだろうか？？&lt;br /&gt;&lt;br /&gt;　でもこれが使える様になったら、結構面白そうです.&lt;br /&gt;　因みに.NetでもJavaでもちゃんと標準ライブラリとして実装されている様です.&lt;br /&gt;　.Netでは&lt;br /&gt;&lt;br /&gt;　System.Security.Cryptography.Xml.SignedXml&lt;br /&gt;&lt;br /&gt;　で実現するんですが、これ自体は何にも難しい事は無い（と思われる）んですが、ちゃんと動作するか確認するのに証明書を用意しないと駄目な訳で、エラーが出ると「これってコードが間違えてるのか？それとも証明書自体が悪いのか？」と前述した様に迷走モードに突入しますｗ&lt;br /&gt;&lt;br /&gt;　そんなXML電子署名ですが、ちゃんとサードパーティのライブラリもあります.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://www.langedge.jp/pub/LeXAdES/"&gt;Le-XAdES Library / XAdES署名ツール XAdEStool&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　まぁ、実際にはライブラリは公開されていない開発途中のライブラリですが、これが実際にライブラリとして公開されたら楽そうです.&lt;br /&gt;　実際問題、SOAPなんかのセキュリティ確保にXML署名が利用されている様ですので、今後ますます需要が出そうな規格かもしれません.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7067916409527274455?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7067916409527274455/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7067916409527274455' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7067916409527274455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7067916409527274455'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/07/xml.html' title='XML署名.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-6688634939298554442</id><published>2007-07-16T23:20:00.000+09:00</published><updated>2008-12-12T05:47:17.222+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><category scheme='http://www.blogger.com/atom/ns#' term='設計'/><title type='text'>設計が分からない-1.</title><content type='html'>　たった今、北海道でも揺れました（汗&lt;br /&gt;　新潟には仕事での交流がある方もいらっしゃるので心配.&lt;br /&gt;　無事である事を祈るばかりで.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　相変わらず設計の勉強がまったく進みません orz&lt;br /&gt;　ぜんっぜん分かりませんから.&lt;br /&gt;　まぁ、これから参考資料なり研修なりを基に本格的に勉強するので、まだ出来なくて当たり前なのかも知れませんが、余りにも分からなすぎて怖い.&lt;br /&gt;&lt;br /&gt;　例えば、以下の&lt;br /&gt;&lt;br /&gt;・ボロバシカメラは個人で経営する家電販売店である&lt;br /&gt;・店員はオーナー一人のみであり、人件費はかかっていない&lt;br /&gt;・POS購入費用が無く、ソロバンと手書き（売上管理台帳）で売り上げ計算を行っている&lt;br /&gt;・商品は在庫を最少数のみ確保し、販売して在庫が無くなりそうな場合に仕入れを行っている&lt;br /&gt;・在庫の管理は在庫管理台帳に記載している&lt;br /&gt;・仕入先は商品により複数存在する&lt;br /&gt;・仕入れ内容は仕入れ管理台帳に記載している&lt;br /&gt;・販売価格は商品の標準価格から値引いて販売する事がある&lt;br /&gt;・一日の販売が終了すると、売上管理台帳を閉めて日の売上集計を行う&lt;br /&gt;・毎月末、月間売り上げを集計する&lt;br /&gt;・システム化にあたり、（こっちの都合で）POSでは無くノートPCとバーコードリーダーを使う事にした&lt;br /&gt;&lt;br /&gt;　と言う、かなり強引な『こじつけシナリオ』があったとます.&lt;br /&gt;　通常RFP（提案依頼書）を顧客に書いてもらいますが、架空のお話なのでそんなものありませんｗ&lt;br /&gt;　純粋に、今手作業でやっている事をシステム化したいと言う案件だとしましょう.&lt;br /&gt;　それでは上記内容に沿ってシステム設計を行います.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　…で、どっから取り掛かればいいのさ？ orz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　ええもう、ぶっちゃけこの悲し過ぎる程の初歩段階ですよｗ&lt;br /&gt;　うーん.&lt;br /&gt;　ちょっと設計と言うモノの流れを自分なりに考えてみよう.&lt;br /&gt;&lt;br /&gt;　01. RFPを熟読&lt;br /&gt;　02. 業務フロー作成&lt;br /&gt;　03. ユースケース図作成&lt;br /&gt;　04. 1～3を元に顧客との打ち合わせ&lt;br /&gt;　05. 必要に応じて1～3を繰り返す&lt;br /&gt;　06. ER分析（エンティティを見つけ出す）&lt;br /&gt;　07. ER図（ERD）作成&lt;br /&gt;　08. 大まかなオブジェクト図（クラス図）を作成（クラスを見つけ出す）&lt;br /&gt;　09. 6～8を元に顧客との打ち合わせ&lt;br /&gt;　10. クラス図作成&lt;br /&gt;　11. シーケンス図/コラボレーション図作成&lt;br /&gt;　ここまでが分析か？&lt;br /&gt;　12. ユースケース図/アクティビティ図以外のUMLダイアグラムを駆使&lt;br /&gt;　13. データ設計（一部ERDを基に作成）&lt;br /&gt;　14. 画面設計&lt;br /&gt;　15. 詳細クラス図を基に機能（関数）設計&lt;br /&gt;　ここまでが設計か？&lt;br /&gt;&lt;br /&gt;　と言う感じだろうか？&lt;br /&gt;　…適切なのかどうかすら不明だ orz&lt;br /&gt;　さっさと参考資料でも買い漁らないと駄目ですね.&lt;br /&gt;　プログラムだと実際にやって見れば、合ってるのか間違っているのか分かりますが、分析/設計はこの辺の判断が自分では出来ないので厄介です.&lt;br /&gt;　と言う事で、現在amazonでUML/システム設計の書籍を模索中.&lt;br /&gt;&lt;br /&gt;　とは言え、探してる間にボーっとしてるのもなんなので、ためしに基本中の基本、業務フロー図でも書いてみましょうか.&lt;br /&gt;　Excelで業務フロー作るの面倒だから、アクティビティダイアグラムを代用です.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kri9yIsnLbE/RpuBLb5npKI/AAAAAAAAAHU/RYUwt4B5j70/s1600-h/daizai01.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_kri9yIsnLbE/RpuBLb5npKI/AAAAAAAAAHU/RYUwt4B5j70/s320/daizai01.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5087802237513082018" /&gt;&lt;/a&gt;&lt;div style="clear:both"&gt;&lt;/div&gt;　※画像はJUDE Community&lt;br /&gt;&lt;br /&gt;　…どこからどこまで一つのダイアグラムに書けばいいのか分からない orz&lt;br /&gt;　資料が整うまで勉強しても無駄な気がしてきましたｗ&lt;br /&gt;　と言いますか、正直まともに設計出来る様に成れる気が一切しませんから.&lt;br /&gt;&lt;br /&gt;　諦めてJavaの勉強優先しようかなと葛藤中.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-6688634939298554442?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/6688634939298554442/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=6688634939298554442' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/6688634939298554442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/6688634939298554442'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/07/1.html' title='設計が分からない-1.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kri9yIsnLbE/RpuBLb5npKI/AAAAAAAAAHU/RYUwt4B5j70/s72-c/daizai01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-646307010877351235</id><published>2007-07-07T17:31:00.000+09:00</published><updated>2008-12-12T05:47:17.739+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><title type='text'>UMLモデリングツール.</title><content type='html'>　先日書いた様にこれからUMLの勉強をしなければなりません.&lt;br /&gt;　…したくは無いんですけどw&lt;br /&gt;&lt;br /&gt;　と言う事で勉強用のUMLモデリングツールを探しましたが…使いづらい orz&lt;br /&gt;　そもそもUMLモデリングツールってこんなもんなんですかねぇ？&lt;br /&gt;　皆さんこんなに使い難いものを使って、あれだけのダイアグラムを書いている訳ですね.&lt;br /&gt;　逆に「すごい！」と思わずには居られません.&lt;br /&gt;　まぁ、会社のエンジニアの人が使っている某商用モデリングツールなら、使い易いのかもしれませんが.&lt;br /&gt;&lt;br /&gt;　しかし勉強のために商用の物を使うほど懐具合に余裕がある訳では無いので、非商用のモデリングツールを色々と触ってみました.&lt;br /&gt;&lt;br /&gt;　・&lt;a href="http://jude.change-vision.com/"&gt;JUDE&lt;/a&gt;&lt;br /&gt;　　※注　現在何故か上記サイトはつながりません&lt;br /&gt;　・&lt;a href="www.gentleware.com"&gt;Poseidon&lt;/a&gt;&lt;br /&gt;　・&lt;a href="http://www.nec.co.jp/cced/SDAM/"&gt;SystemDirector Application Modeler&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　それぞれ特徴がありますが、どれも一通り必要なダイアグラムを書けるものです.&lt;br /&gt;　一部書けないものや、機能上一部おかしいものもあります.&lt;br /&gt;&lt;br /&gt;　・&lt;a href="http://argouml.tigris.org/"&gt;ArgoUML&lt;/a&gt;&lt;br /&gt;　・&lt;a href="http://hp.vector.co.jp/authors/VA017111/index.html"&gt;1st Modeller&lt;/a&gt;&lt;br /&gt;　…etc…&lt;br /&gt;&lt;br /&gt;　ArgoUMLはSequenceダイアグラムの挙動がかなり変なので致命的ですが、その他の機能は結構使えます.&lt;br /&gt;　クラス図なんかを書いた際には、ソースの雛型まで生成してくれます.&lt;br /&gt;&lt;br /&gt;　PoseidonはそのArgoUMLを元に作成されたらしいのですが、実際に触ってみるとかなり違います.&lt;br /&gt;　グラフィック回りが大幅に向上しており、またSequenceダイアグラムもまともに作成可能になっています.&lt;br /&gt;　しかしこのツール、マウスとか図の回りに各種メニューのポップアップが出るんですが、これが逆に邪魔で私はあまり好きになれませんでした.&lt;br /&gt;　ちなみにLinuxで入れてみましたが、一部文字化けしますし、License認証はブラウザ経由で行うんですが、これがまた何故かNetscapeを自動検索して見事に失敗しやがります（「Your default browser cannot be started.」）.&lt;br /&gt;　Poseidon本体を起動した後「Edit」→「Settings...」→「Browser」項目でFirefoxなどを指定する事でエラーを解消できますが、エラーを解消出来たとしても開いたページで「This Page No Longer Exists」と出ちゃいます.&lt;br /&gt;　何だかなぁ…ライセンス認証しないと保存も出来ないんですが orz&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kri9yIsnLbE/Ro9mfyASajI/AAAAAAAAAHE/Np75V_e46Cc/s1600-h/Screenshot-13b.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_kri9yIsnLbE/Ro9mfyASajI/AAAAAAAAAHE/Np75V_e46Cc/s320/Screenshot-13b.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5084395200509536818" /&gt;&lt;/a&gt;&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　JUDE（勉強用に試したのはCommunity版）は国産のUMLモデリングツールなので、情報も豊富ですしコミュニティも充実しています.&lt;br /&gt;　現時点ではこれが最有力候補ですかねぇ.&lt;br /&gt;　なんか、&lt;a href="http://www.atmarkit.co.jp/news/200612/20/change.html"&gt;NTTデータでは標準UMLモデリングツールをJUDEにしたらしい&lt;/a&gt;ですし.&lt;br /&gt;　動作も挙動不審な所はほとんどないですし、ちょっといじればLinuxでも動かす事が可能の様です（上にも書いた様に今サイトつながらないので確認出来ませんでしたが）.&lt;br /&gt;&lt;br /&gt;　SystemDirector Application Modeler（以下SDAM）はNECが開発・保守しているEclipseプラグインです.&lt;br /&gt;　他にもEclipseプラグインでUMLを作図するものがありますが（&lt;a href="http://www.eclipsedownload.com/"&gt;EclipseUML&lt;/a&gt;なんか）、今回はSDAMのみ試しました.&lt;br /&gt;　JUDEと比べると使い勝手でちょっと見劣りしてしまう所もありますが（あと、斜線引くと実線と点線の区別がつきにくい気が…）、オブジェクト図も書けるので非常に便利です（SDAMでは「オブジェクト図」と言う名前では無く「インスタンス」と言う名前ですが）.&lt;br /&gt;　Eclipseでコード書きつつUMLを確認したり、逆にコード書いててつまった時にクラスダイアグラムを書いてみる、なんて事も簡単に出来てしまう点が一番の魅力かもしれません.&lt;br /&gt;　これも候補のひとつですね.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kri9yIsnLbE/Ro9nEiASakI/AAAAAAAAAHM/Fw5CRSq0Ji8/s1600-h/Screenshot-12b.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_kri9yIsnLbE/Ro9nEiASakI/AAAAAAAAAHM/Fw5CRSq0Ji8/s320/Screenshot-12b.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5084395831869729346" /&gt;&lt;/a&gt;&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　まぁ、実際に仕事で使う時には（いつになるか分かりませんが orz）別の商用ツールを使いますので、勉強にどれを使うかそんなに真剣に悩む必要もないんでしょうけど.&lt;br /&gt;　取り敢えずJUDEメイン、SDAMがサブと言うかちょっとだけ書く時に使う事になりそうです.&lt;br /&gt;&lt;br /&gt;　それにしてもUMLモデリングツールを選ぶだけで一苦労.&lt;br /&gt;　相変わらずUMLの書き方と言うか考え方が理解不能ですし…あーUMLって奥が深い orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-646307010877351235?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/646307010877351235/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=646307010877351235' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/646307010877351235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/646307010877351235'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/07/uml.html' title='UMLモデリングツール.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kri9yIsnLbE/Ro9mfyASajI/AAAAAAAAAHE/Np75V_e46Cc/s72-c/Screenshot-13b.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-5679001908707880966</id><published>2007-07-04T22:35:00.000+09:00</published><updated>2007-07-04T23:04:57.292+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='設計'/><title type='text'>設計.</title><content type='html'>　今日はメモと言うより愚痴と言うか悩みを.&lt;br /&gt;&lt;br /&gt;　密かに先日まで1週間弱出張に行っていた訳ですが、戻った直後に会社の人から「設計の勉強したら？」といきなり言われました.&lt;br /&gt;　出張帰り直後にドキッとする発言は止めて下さい orz&lt;br /&gt;　出張から戻って速攻でそんな事言われたら「え？お、俺お払い箱？」と思ってしまいますから orz&lt;br /&gt;&lt;br /&gt;　と言う事で会社の人から言われた言葉を改めて噛み締めてみました.&lt;br /&gt;　…！？&lt;br /&gt;　アレですか？&lt;br /&gt;　要するに「いいかげん人様の書いた仕様書なりUMLダイアグラムで飯を食ってる年でも無いでしょ」と言う事ですか？！ orz&lt;br /&gt;&lt;br /&gt;　元々プログラム始めた年齢も適齢期（プログラムのね）を完全に過ぎてからだった訳ですし、別に専門学校へ行っていた訳でも理数系だった訳でも無いので、その辺は勘弁して頂きたい！&lt;br /&gt;　むしろプログラム始めて5年目にしてようやくPG半人前の域に達した私に何を望んでいるんですか？と問い詰めたい気分です.&lt;br /&gt;&lt;br /&gt;　がしかし、lightmaterialの勤めている会社は極々小さい会社なので、我侭を言っていられる状況にはありません.&lt;br /&gt;　Javaの勉強でウキウキ気分[死語]だったのが一気にどん底へ行った気分です.&lt;br /&gt;　ここ2日色々と調べましたが、ハッキリ言って私の様なうすらバカもしくはうっすらハゲには理解不能です orz&lt;br /&gt;&lt;br /&gt;　コードでもありますが、ダイアグラムも同じで「読めるけど書けない」.&lt;br /&gt;　読むと書くのでは大違い.&lt;br /&gt;　事象の分解と定義、オブジェクトへの変換の仕方がまったく理解出来ません.&lt;br /&gt;　2日目にしてこの状況ですから、先が思いやられます.&lt;br /&gt;　オマケに設計関係の研修に勝手にエントリーされてますしｗ&lt;br /&gt;　そんな訳で素敵な理数系脳みそを移植したい今日この頃です.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-5679001908707880966?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/5679001908707880966/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=5679001908707880966' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5679001908707880966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5679001908707880966'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/07/blog-post.html' title='設計.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7449780745367339529</id><published>2007-06-24T14:23:00.000+09:00</published><updated>2008-12-12T05:47:18.235+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>.Net/PHPプログラマから見たJava.</title><content type='html'>　暑いです orz.&lt;br /&gt;&lt;br /&gt;　それは置いておき、先週の火曜日から、帰宅後にビールを飲みつつ1〜2時間/日のスローペースでJavaの勉強を始めました.&lt;br /&gt;　以前もJavaの勉強をしようとした事があるのですが、何故かクライアントアプリケーションから取りかかってしまい、敢え無く挫折 orz&lt;br /&gt;&lt;br /&gt;　苦い経験（？）から、今回はWebアプリケーションから取りかかってみる事に.&lt;br /&gt;&lt;br /&gt;　結果から言えば「最初からWebアプリケーションで始めていれば良かった」と激しく後悔中です orz&lt;br /&gt;　これなら何とか勉強できそう.&lt;br /&gt;　今は&lt;a href="http://struts.apache.org/"&gt;Struts/Struts2&lt;/a&gt;を使って&lt;STRIKE&gt;遊んで&lt;/STRIKE&gt; 勉強してます.&lt;br /&gt;&lt;br /&gt;　勉強する環境にしても、&lt;br /&gt;&lt;br /&gt;　　・WindowsまたはLinuxまたはMacOS&lt;br /&gt;　　・&lt;a href="http://java.sun.com/j2se/1.5.0/ja/index.html"&gt;J2SE&lt;/a&gt;（JDK/J2 SDKとも呼ばれる…名前が変わりすぎw）&lt;br /&gt;　　・&lt;a href="http://www.eclipse.org"&gt;Eclipse&lt;/a&gt;&lt;br /&gt;　　・&lt;a href="http://download.eclipse.org/webtools/downloads/"&gt;WTP&lt;/a&gt;（Web Tools Platform）&lt;br /&gt;　　・&lt;a href="http://tomcat.apache.org/"&gt;Tomcat&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　が整っていればOK.&lt;br /&gt;　lightmaterialの場合Eclipse+WTPは既に入れていたので、J2SEとTomcatを入れるだけでした.&lt;br /&gt;　今までWebアプリケーションはJ2EEを導入してないと開発出来ないものだと思っていましたが、そう言う訳では無く、本当にEnterpriseな環境を構築する際に必要（と言うか便利）なだけの様です.&lt;br /&gt;&lt;br /&gt;　私がJavaを今まで敬遠してきた理由は、「なんか複雑そう」「EJBとかJavaBeansとかDIとか意味不明」等々、専門用語やら色々な要素が関連しあって動く複雑な物、と思っていたからです.&lt;br /&gt;　ASP/ASP.NetにしろPHPにしろ、（PHP用のFrameworkは別として）ほとんど言語環境単体で動く事を考えると、どうしても敬遠しがちになります（あくまで個人的な感想）.&lt;br /&gt;&lt;br /&gt;　が、実際に触ってみると「初歩的な事は」意外とそうでもありません.&lt;br /&gt;　初歩的な事を勉強するのに、EJBもDIも気にする必要はありませんでしたから.&lt;br /&gt;&lt;br /&gt;　今の所Java（Webアプリケーション限定）について把握したのは、&lt;br /&gt;　1. 完全にオブジェクト指向言語（あたりまえ）&lt;br /&gt;　2. メモリの管理がちょっとだけ特殊？&lt;br /&gt;　3. パッケージという概念がある&lt;br /&gt;　4. 現状の標準的構成として、ページを描画するJSPとコードを担当するServletで構成するのが一般的&lt;br /&gt;　5. Frameworkを使わないと死亡&lt;br /&gt;　6. 描画を担当するJSPも初回アクセス時にビルド（？）される&lt;br /&gt;　7. ファイル構成が少し特殊、各種設定がXML&lt;br /&gt;&lt;br /&gt;　と言った所でしょうか（間違えてる可能性大）.&lt;br /&gt;&lt;br /&gt;　[1]は最初から分かっていた事なので、特に戸惑いはありません.&lt;br /&gt;　.Netにしろ、正しくコードを書いていればオブジェクト指向な記述になりますし、PHPにしてもオブジェクト指向な記述の仕方が現状の標準的なコーディングかと思います.&lt;br /&gt;&lt;br /&gt;　[2]のメモリ管理ですが、基本的にはオブジェクトが参照されなくなった段階で、メモリから破棄される様です（正確に言えば、ガベージコレクションの対象になるのかな？）.&lt;br /&gt;　その為、通常はC/C++の様に明示的に破棄する必要はありませんが、参照サイトによってはnullで参照されなくなった事を明示すべきだ、との記述が見受けられました.&lt;br /&gt;　まぁ、この辺はVB/ASP.NetでもNothing指定すべきだ、とする傾向がありますので、これも戸惑いはありません.&lt;br /&gt;&lt;br /&gt;　[3]のパッケージ.&lt;br /&gt;　これはクラスライブラリの様なもの、と私はとらえてます（あってるかは不明）.&lt;br /&gt;　今まで「org.apache.xxxx.....」などと言うファイルを見かけた事がありましたが、何の事やらさっぱり不明でした.&lt;br /&gt;　この「org.apache.xxxx.....」の部分がパッケージ名（？）にあたる様です.&lt;br /&gt;　また、パッケージ名は配布や流用等を行う事が多いので、他のパッケージ名とかぶらないように、開発元のドメインを逆さにした名称を付けるのが一般的との事.&lt;br /&gt;　それで「org.apache」だの「org.eclipse」だのと言うファイルがある訳ですね.&lt;br /&gt;　すごく納得しました.&lt;br /&gt;&lt;br /&gt;　[4]のJSPとServlet.&lt;br /&gt;　これもASP.Netをやっていれば何も戸惑う事はありません.&lt;br /&gt;　ASP.Netで言う所の、「xxx.aspx」ファイルと「xxx.vb」ファイルの関係と考えればあまり大きく間違える事は無いと思います（厳密には違いますが. JSPの場合Servletが無くても動きますので）.&lt;br /&gt;　現状のコーディング方法として、「JSPには極力コードは書くな」「コードはServletに書け」と言う傾向がある様です.&lt;br /&gt;&lt;br /&gt;　[5]のFrameworkについては、PHPも結構同じ事が言えると思いますが、Javaの方がよりFrameworkに依存している様に思います.&lt;br /&gt;　そのため、Frameworkを使わずにプログラムを書こうと思うと、非常に雑多なコーディングになりそうです.&lt;br /&gt;　画面遷移ひとつとっても、ServletからJSPに渡す変数を一々setAttribute/getAttributeしたりDispatcher作ってページ呼び出したり…単に私が簡単な方法に気付いてないだけかもしれませんがw&lt;br /&gt;　これらJavaの代表的なFrameworkとして&lt;a href="http://struts.apache.org/"&gt;Struts/Struts2&lt;/a&gt;、&lt;a href="http://java.sun.com/javaee/javaserverfaces/"&gt;JSF（JavaServer Faces）&lt;/a&gt;があります.&lt;br /&gt;　それ以外にもあるのかもしれませんが、今の所勉強の対象にするつもりなのは、この2つのFrameworkです.&lt;br /&gt;　特にJSFは標準機能としての提供がされる予定らしく（？）、今後のJava開発環境では必須になるのかもしれません（StrutsはApacheプロジェクト）.&lt;br /&gt;　ただ、StrutsとJSFでは重点部分が異なる様で、StrutsはController部分、JSFはView部分（？）に重点を置かれたFrameworkらしく、今ではStruts+JSFで動作させる方向にも行きつつある様です（Struts2から？）ので、両方勉強しておいて損は無いだろう、と思ってます.&lt;br /&gt;&lt;br /&gt;　[6]はよく分かりません.&lt;br /&gt;　よく分かりませんが、初回アクセス時にビルドする事で、その後の処理を高速化する様です.&lt;br /&gt;　この辺は後々触っていれば分かってくるだろうと勝手に妄想中.&lt;br /&gt;&lt;br /&gt;　[7]のファイル構成については、どちらかと言うとTomcatの構成なのかもしれませんが、まだその辺は良く分かっていません.&lt;br /&gt;　少し特殊と言うのは、「WEB-INF」や「META-INF」と言った設定用のディレクトリが最初から定義されていて、そこに設定ファイルやらライブラリやらビルドしたServletやらが設置される様に半分強制されている事です.&lt;br /&gt;　これらのディレクトリには、ブラウザ経由で直接アクセス出来ない様になっています.&lt;br /&gt;　まあ、まとめて放りこめるから便利と言えば便利ですが、WTPで作ったプロジェクトの標準ディレクトリ構成と少々あってないんですよね…これどうにかならないんだろうか orz&lt;br /&gt;　また、基本的に各種設定はXMLファイルに記述する事になります.&lt;br /&gt;　Frameworkの設定もXML.&lt;br /&gt;　あれもこれもXMLです.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　その他JavaBeansなんてのもありますが、この正体が分からない.&lt;br /&gt;　JavaBeansで検索すると、GUIなビルダーとの連携により云々と書かれているものもあれば、単純にProperty/Getter/Setterを持ったクラスファイルだよ、と言った書き方のサイトもありました.&lt;br /&gt;　更にはStrutsのActionForm部分をBeanと書いている所もあり、現在かなり混乱中ですw&lt;br /&gt;&lt;br /&gt;　取り敢えずひとしきり触ったら、Javaについてのメモを順次記述予定.&lt;br /&gt;&lt;br /&gt;※下の画像は単にJSPのみでの動作例です. ServletもStrutsも何も使ってません.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kri9yIsnLbE/Rn4XvQgr7vI/AAAAAAAAAG0/TZ6IkBIQYUo/s1600-h/Screenshot-10b.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_kri9yIsnLbE/Rn4XvQgr7vI/AAAAAAAAAG0/TZ6IkBIQYUo/s320/Screenshot-10b.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5079523530373852914" /&gt;&lt;/a&gt;&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/Rn4X9Agr7wI/AAAAAAAAAG8/LyXouARAX0A/s1600-h/Screenshot11b.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/Rn4X9Agr7wI/AAAAAAAAAG8/LyXouARAX0A/s320/Screenshot11b.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5079523766597054210" /&gt;&lt;/a&gt;&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7449780745367339529?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7449780745367339529/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7449780745367339529' title='3 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7449780745367339529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7449780745367339529'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/06/netphpjava.html' title='.Net/PHPプログラマから見たJava.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kri9yIsnLbE/Rn4XvQgr7vI/AAAAAAAAAG0/TZ6IkBIQYUo/s72-c/Screenshot-10b.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-4747693541310443085</id><published>2007-06-16T15:45:00.000+09:00</published><updated>2008-12-12T05:47:18.588+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>コンデンサ破裂・液漏れ・膨張.</title><content type='html'>　某所でPCの電源を入れると、CPUファンやCDに通電している状態にも係わらず、まったく画面出力されない現象に出くわしました.&lt;br /&gt;　出くわしましたと言うか、今出くわしてます orz&lt;br /&gt;&lt;br /&gt;　つい1ヶ月くらい前まで普通に動いていたんですが、今日電源を入れてみると上記のような状態に.&lt;br /&gt;　「何だろう？」とケースを開け、コネクタ類の接続を確認・抜き差しして、ケースを開けたまま電源ON.&lt;br /&gt;　が、全然動く気配なし.&lt;br /&gt;　何が原因かとマザーボードを眺めるlightmaterial.&lt;br /&gt;　ん？&lt;br /&gt;　コレ何だ？&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kri9yIsnLbE/RnOIbAgr7uI/AAAAAAAAAGs/WnLQawB5EJ4/s1600-h/07-06-16_15-38.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_kri9yIsnLbE/RnOIbAgr7uI/AAAAAAAAAGs/WnLQawB5EJ4/s320/07-06-16_15-38.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5076551202551623394" /&gt;&lt;/a&gt;　こ、これは噂でしか聞いたことが無い「コンデンサ破裂」ってやつじゃ？！ orz&lt;br /&gt;　※後から分かりましたが、「コンデンサの液漏れ」ですね.&lt;br /&gt;&lt;br /&gt;　確かにこのPCは2002年に購入した物なので、そろそろガタが来ててもおかしくないんですが、私の自宅にあるPCではコンデンサ破裂なんて今まで経験した事無いですし…&lt;br /&gt;　正直参りました.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://www.ne.jp/asahi/comp/tarusan/main86.htm"&gt;マザボの修理と理想の電源&lt;/a&gt; - &lt;a href="http://www.ne.jp/asahi/comp/tarusan/index.html"&gt;☆たるさんのパソコンフィールド&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　上のサイトにコンデンサの破裂や液漏れについて詳しく書かれていますが、どうやら中学校以来ハンダゴテを見た事すら無い私には交換なんて無理そうです orz&lt;br /&gt;　ここは素直に諦めましょう.&lt;br /&gt;　どうせ私のじゃないですし、会社の費用で交換購入する事になるんだから.&lt;br /&gt;&lt;br /&gt;　そう言えば、自宅には8年くらい前に購入した初代PC（EPSON DIRECTで買ったやつｗ）がありますが、未だにちゃんと動きます.&lt;br /&gt;　ただ、マザーボードなんて最近ちゃんと見てないから、もしかしたらコンデンサが膨張してるかもしれません.&lt;br /&gt;　今回みたいに使いたい時に使えなくなる前に、予めリタイアさせた方がいいかもしれません.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-4747693541310443085?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/4747693541310443085/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=4747693541310443085' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4747693541310443085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4747693541310443085'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/06/blog-post_16.html' title='コンデンサ破裂・液漏れ・膨張.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kri9yIsnLbE/RnOIbAgr7uI/AAAAAAAAAGs/WnLQawB5EJ4/s72-c/07-06-16_15-38.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-807685440200724123</id><published>2007-06-12T18:59:00.001+09:00</published><updated>2008-12-12T05:47:18.838+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>PHPからのPDF出力でハマる.</title><content type='html'>　また珍しく平日にメモ.&lt;br /&gt;&lt;br /&gt;　PHPからPDF出力すると言えば&lt;br /&gt;&lt;br /&gt;　　・&lt;a href="http://pdflib.jp/"&gt;PDFLib&lt;/a&gt;&lt;br /&gt;　　・&lt;a href="http://www.fpdf.org/"&gt;FPDF&lt;/a&gt;&lt;br /&gt;　　・&lt;a href="http://framework.zend.com/"&gt;Zend Framework&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　あたりが代表格かと思います.&lt;br /&gt;　Zend FrameworkでのPDF出力はまだ試してませんが（正確には0.xの時に上手く動作させる事が出来ませんでした orz）、PDFLibもFPDFも基本的にはPHPのコードからPDFを吐き出す事に変わりありません.&lt;br /&gt;&lt;br /&gt;　そして出力時の問題で有名なのがIEとsessionの問題.&lt;br /&gt;　PHPでsessionを使っている場合、普通にPDF出力するとIEではまったく表示されない状態になります（画面真っ白）.&lt;br /&gt;　その為、IEを考慮する場合に於いて、sessionを使ってるコードからPDFを吐き出す時は&lt;br /&gt;&lt;br /&gt;　　session_cache_limiter('private')&lt;br /&gt;&lt;br /&gt;　をsession_start前に宣言してやる必要があります.&lt;br /&gt;　当たり前ですがここまでは知っています.&lt;br /&gt;&lt;br /&gt;　んが！&lt;br /&gt;　まさかOpera9でも同じ状況になるとは？！ orz&lt;br /&gt;　そんな事まったく知らず「あれ？何で？何で？何で出ないの？」と大ハマり.&lt;br /&gt;　Opera8まではinlineで表示できなかったので、Operaの事はまったく気にしてませんでしたよ.&lt;br /&gt;　まったく、相変わらずOperaは色々と面白い事をやらかしてくれます.&lt;br /&gt;　Opera8→9で、JavaScriptからIFrame内をprintした時の挙動も違いますしｗ&lt;br /&gt;　今更ですが、Opera9をもう少し触ってみる必要がありそうです.&lt;br /&gt;&lt;br /&gt;　そしてもう一個.&lt;br /&gt;　原因は良く分かりませんが、Safariで同じ様にPHP→PDF出力すると、場合によって&lt;br /&gt;&lt;br /&gt;　　ファイルの最初に%PDF- がありません。&lt;br /&gt;&lt;br /&gt;　と言うエラーが出ます（Ver 1.3.2でしか確認してません）.&lt;br /&gt;　出ますと言うか出てしまって、またしてもハマりました orz&lt;br /&gt;　未だに原因が分からないんですが、取り敢えず&lt;br /&gt;&lt;br /&gt;　　header('Content-Length: [バッファサイズ]')&lt;br /&gt;&lt;br /&gt;　を送出しなければこのエラーが起きない事が判明.&lt;br /&gt;　なんだかなぁ.&lt;br /&gt;　対処出来てるのはいいんですが、非常に気持ち悪いです.&lt;br /&gt;　どっかでコード間違えてるんだろうか？&lt;br /&gt;　でもSafari以外で出ないんだよなぁ orz&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kri9yIsnLbE/Rm52dggr7tI/AAAAAAAAAGk/Xq5P1Ws-yaY/s1600-h/Safari.PNG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_kri9yIsnLbE/Rm52dggr7tI/AAAAAAAAAGk/Xq5P1Ws-yaY/s320/Safari.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5075124079408443090" /&gt;&lt;/a&gt;　しかも、今日&lt;a href="http://www.apple.com/jp/safari/"&gt;『Windows版のSafari』が開発中である事が発表&lt;/a&gt;されました.&lt;br /&gt;　iPodでiTunesが普及した様に、抱き合わせ戦法でWindowsにSafariが普及した場合、無視できない存在になるかもしれません.&lt;br /&gt;　正直もうブラウザは増えなくていいですから orz&lt;br /&gt;&lt;br /&gt;※現状Windows版Safariはまともに動きません&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-807685440200724123?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/807685440200724123/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=807685440200724123' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/807685440200724123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/807685440200724123'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/06/phppdf.html' title='PHPからのPDF出力でハマる.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kri9yIsnLbE/Rm52dggr7tI/AAAAAAAAAGk/Xq5P1Ws-yaY/s72-c/Safari.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-8824645144297795247</id><published>2007-06-11T00:36:00.000+09:00</published><updated>2007-06-11T00:44:59.216+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>送信前に宛先は良く確認しよう.</title><content type='html'>　先日痛恨のミスをやらかしました.&lt;br /&gt;　詳しくは書きませんが…まぁ…タイトルのね…そんな感じの痛恨のミス orz&lt;br /&gt;&lt;br /&gt;　恐いわぁ〜.&lt;br /&gt;　最終的に問題なかった訳ですが、メール送信が恐ろしくなりました.&lt;br /&gt;&lt;br /&gt;　と言う事で、現在Thunderbirdには↓コレを突っ込んでいます.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://www.geocities.jp/acacica_web/programming/cofirm_address.html"&gt;Confirm-Address&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　その他にも同類で&lt;br /&gt;&lt;br /&gt;　&lt;a href="https://addons.mozilla.org/ja/thunderbird/addon/2281"&gt;Check and Send&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　と言うExtensionがあるのですが、使い勝手の問題からConfirm-Addressを導入.&lt;br /&gt;　それでも動作的に少々怪しげな部分があるので（失礼）、現在更に同類のExtensionを模索中.&lt;br /&gt;　作り方が分かっていれば自分で作りたい所ですが…全然分かりゃしません orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-8824645144297795247?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/8824645144297795247/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=8824645144297795247' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8824645144297795247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8824645144297795247'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/06/blog-post.html' title='送信前に宛先は良く確認しよう.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7475441961064704484</id><published>2007-06-10T23:10:00.000+09:00</published><updated>2008-12-12T05:47:19.781+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Trac'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Tracのマルチプロジェクト管理用Plugin - TraM.</title><content type='html'>　最近は私生活の方が色々とあってゴタゴタしてますが、負けずにメモ行きます.&lt;br /&gt;&lt;br /&gt;　今回はTracで複数のプロジェクトを管理する際に便利な（多分w）プラグイン「TraM」.&lt;br /&gt;　Trac自体の事を教えてくれた知人が以前から「複数プロジェクト管理するのにTraMってのを入れている」と言う話を聞いていましたが、まだTracを使いきれていないlightmaterialには何の事やら意味不明 orz&lt;br /&gt;　取り敢えず入れてみて把握しよう！と言う事に.&lt;br /&gt;&lt;br /&gt;　・&lt;a href="http://dev.rectang.com/projects/tram"&gt;TraM&lt;/a&gt; [ver 0.1]&lt;br /&gt;　　※プロジェクト自体がVer0.1と若いので注意.&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;1. TraMをダウンロード.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　TraM自体、Subversion経由でチェックアウトする事を前提に配置されています.&lt;br /&gt;　インストールするには、TraMのメインページに書かれているtrunkから全部ファイルをダウンロードするか、Svnクライアントで最新リビジョンをすべてチェックアウトする必要があります.&lt;br /&gt;　まぁ、後者の方が賢いかと思います.&lt;br /&gt;　今回は「/sources/TraM」と言うディレクトリにチェックアウトしました.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;2. TraMをインストール.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　チェックアウトしたTraM用ディレクトリに入り、setup.pyでインストールします.&lt;br /&gt;　インストールパスは、以前作成したテストプロジェクトのディレクトリである事を前提にしています.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# cd /sources/TraM&lt;br /&gt;python setup.py install&lt;/div&gt;&lt;br /&gt;　非常に簡単です.&lt;br /&gt;　多分ここまでは問題無いかと思います.&lt;br /&gt;　もしエラーが出た場合は「&lt;a href="http://lightmaterial.blogspot.com/2007/04/trac_15.html"&gt;Tracインストール手順メモ.&lt;/a&gt;」を参照.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;3. mod_pythonの設定を変更.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　TraMのページでは、mod_pythonの前にtrac.iniの設定を変更するように書かれていますが、先にmod_pythonの設定を変更してしまった方が分かり易いかと思います.&lt;br /&gt;　mod_pythonの設定と書いていますが、実際に編集するのは（trac用）apacheの設定ファイルです.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# vi /usr/local/apache2/conf/extra/httpd-trac.conf&lt;br /&gt;　＜Location /trac＞&lt;br /&gt;　    SetHandler mod_python&lt;br /&gt;　    PythonHandler tram.modpython_frontend&lt;br /&gt;　    #↑この1行を「trac.web.modpython_frontend」から変更&lt;br /&gt;　    PythonOption TracEnvParentDir /usr/local/trac&lt;br /&gt;　    PythonOption TracUriRoot /trac&lt;br /&gt;　    SetEnv PYTHON_EGG_CACHE /usr/local/trac/testprj/.python_eggs&lt;br /&gt;　＜/Location＞&lt;br /&gt;　# 以下はパスワード制限する場合に必要.&lt;br /&gt;　＜LocationMatch "/trac/[^/]+/login"＞&lt;br /&gt;　    AuthType Basic&lt;br /&gt;　    AuthName "Test Project"&lt;br /&gt;　    AuthUserFile /usr/local/trac/testprj/.htpasswd&lt;br /&gt;　    Require valid-user&lt;br /&gt;　＜/LocationMatch＞&lt;/div&gt;&lt;br /&gt;　※編集ファイルが意味不明な場合は「&lt;a href="http://lightmaterial.blogspot.com/2007/04/trac_15.html"&gt;Tracインストール手順メモ.&lt;/a&gt;」を参照.&lt;br /&gt;　尚、PythonOptionでTracEnvDirでは無くTracEnvParentDirを指定している必要があります.&lt;br /&gt;　これは何なのかと言うと、Tracのプロジェクトを複数持つために、Tracプロジェクトのディレクトリそのものでは無く、親のディレクトリを指定してあげる事を意味します.&lt;br /&gt;　この親の下に各Trac用プロジェクトを保存しますよ、と言う指定です.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;4. プロジェクトリスト用プロジェクトを作成.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　何のこっちゃ？w&lt;br /&gt;　通常TracでTracEnvParentDirに設定したディレクトリ（今回の例の場合は「http://localhost/trac/」）をブラウザで表示すると、以下のような「味もそっけも無い」一覧が表示されます.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/RmwOtggr7qI/AAAAAAAAAGM/8OcJLQobmAs/s1600-h/screenshot-7b.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/RmwOtggr7qI/AAAAAAAAAGM/8OcJLQobmAs/s320/screenshot-7b.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5074447055123639970" /&gt;&lt;/a&gt;　確かに視認性はいいのですが、本当にそっけないリストです.&lt;div style="display: none; clear:both"&gt;&lt;/div&gt;&lt;br /&gt;　これをTraMはグラフィカルにしてくれます.&lt;br /&gt;　グラフィカルというか、TracでTracのプロジェクトを表示（管理）するイメージですかね？&lt;br /&gt;&lt;br /&gt;　この管理用のプロジェクトを作成してあげる必要があります.&lt;br /&gt;　尚、作成するプロジェクトのパスはTracEnvParentDirの直下に「all」と言う名前で作成する必要があります.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# trac-admin /usr/local/trac/all initenv&lt;br /&gt;&lt;br /&gt;　# 以下、「＞」の右側はテストで作成した環境.&lt;br /&gt;　# 空白の場合はデフォルト値（そのままEnter）&lt;br /&gt;　Project Name [My Project]＞ TraM&lt;br /&gt;　Database connection string [sqlite:db/trac.db]＞ &lt;br /&gt;　Repository type [svn]＞ &lt;br /&gt;　Path to repository [/path/to/repos]＞ /usr/local/svn/repos&lt;br /&gt;　Templates directory [/usr/share/trac/templates]＞ &lt;/div&gt;&lt;br /&gt;　作成した後は、Apacheから操作出来る様に、所有者を変更してあげます.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# chown -R [apacheユーザー]:[apacheグループ] /usr/local/trac/all&lt;/div&gt;&lt;br /&gt;　これで取り合えずTraMのインストール自体は完了です（後で各Tracプロジェクトの設定も必要です）.&lt;br /&gt;　このプロジェクトリスト用プロジェクトを作成しなかった場合、以下のようなエラーが出るでしょう.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;Internal Server Error&lt;br /&gt;&lt;br /&gt;The server encountered an internal error or misconfiguration and was unable to complete your request.&lt;br /&gt;&lt;br /&gt;Please contact the server administrator, xxx@xxx.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.&lt;br /&gt;&lt;br /&gt;More information about this error may be available in the server error log.&lt;/div&gt;&lt;br /&gt;　ちなみにログには&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;mod_python (pid=[pid id], interpreter='[server address]', phase='PythonHandler', handler='tram.modpython_frontend'): Application error&lt;br /&gt;[以下ダラダラとエラー]&lt;/div&gt;&lt;br /&gt;　と言った内容が記述されていました.&lt;br /&gt;&lt;br /&gt;　ここまで来たら後一歩です.&lt;br /&gt;　最後の仕上げとして、TraM用の各プロジェクト設定を行います.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;5. TraM用プロジェクト設定.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　TraMを有効にするためには、各プロジェクトの設定ファイル（trac.ini）に以下のように記述する必要があります.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# vi /usr/local/trac/all/conf/trac.ini&lt;br /&gt;…[中略]…&lt;br /&gt;[components]&lt;br /&gt;webadmin.* = enable&lt;br /&gt;#↑この行は&lt;a href="http://lightmaterial.blogspot.com/2007/05/trac-web-admin-plugin.html"&gt;以前導入したTrac Web Admin Plugin&lt;/a&gt;用の記述です.&lt;br /&gt;# 導入していない場合は無視してください.&lt;br /&gt;tramplugin.* = enabled&lt;br /&gt;trac.ticket.report.* = disabled&lt;/div&gt;&lt;br /&gt;　前回のWeb Admin Pluginが「enable」で、今回のTraMが「enabled」なのは意味が分かりませんが、「enable」では動きませんので注意が必要です.&lt;br /&gt;　また、trac.ticket.reportを無効にする必要があるようです（詳細は分かりません orz）.&lt;br /&gt;&lt;br /&gt;　上記例では、プロジェクトリスト表示用プロジェクト「/trac/all」の設定ファイルを編集していますが、各プロジェクトの設定にも同様の設定をしておいた方が良いかと思います.&lt;br /&gt;　理由は次項で.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;6. プロジェクトリストを表示してみる.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　作成したプロジェクトリストを表示してみましょう.&lt;br /&gt;　先ほど例に書いた「http://localhost/trac/」にアクセスすると「http://localhost/trac/all」にリダイレクトされ、以下のような画面が表示されます.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kri9yIsnLbE/RmwSowgr7rI/AAAAAAAAAGU/e5ewbbSR6NM/s1600-h/Screenshot-8b.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_kri9yIsnLbE/RmwSowgr7rI/AAAAAAAAAGU/e5ewbbSR6NM/s320/Screenshot-8b.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5074451371565772466" /&gt;&lt;/a&gt;&lt;br /&gt;　インストール確認用のプロジェクトしか突っ込んでい無いので分かり難いかもしれませんが、プロジェクトリストが表示されています.&lt;br /&gt;　プロジェクトリストの各プロジェクト名（赤い字で書かれた「Test Project!」の部分）をクリックすると、各プロジェクトのTracページを表示できます.&lt;br /&gt;　メニューが英語のなのは仕方ありませんが、注目すべきはメニューの右端に「ProjectList」と言うメニューが追加されている事です.&lt;br /&gt;　各プロジェクトの設定ファイルを編集する事で、各プロジェクトからもこのプロジェクトリストをメニューから表示できるようになる訳です.&lt;div style="clear: both"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kri9yIsnLbE/RmwWcwgr7sI/AAAAAAAAAGc/QDVUQyXLru8/s1600-h/Screenshot-9b.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_kri9yIsnLbE/RmwWcwgr7sI/AAAAAAAAAGc/QDVUQyXLru8/s320/Screenshot-9b.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5074455563453853378" /&gt;&lt;/a&gt;&lt;div style="display: none; clear:both"&gt;&lt;/div&gt;&lt;br /&gt;　その他にも、TraMのプロジェクトリスト用プロジェクトからは、各プロジェクトのソース参照等々、複数プロジェクトの管理に有効な機能が提供されます.&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;　ふーん、なるほどね.&lt;br /&gt;　知人の言っている意味が分かりました.&lt;br /&gt;　複数プロジェクトを管理する場合、これは便利そうです.&lt;br /&gt;　…んが、便利そうだけど自宅じゃほとんど使わないかも orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7475441961064704484?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7475441961064704484/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7475441961064704484' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7475441961064704484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7475441961064704484'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/06/tracplugin-tram.html' title='Tracのマルチプロジェクト管理用Plugin - TraM.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kri9yIsnLbE/RmwOtggr7qI/AAAAAAAAAGM/8OcJLQobmAs/s72-c/screenshot-7b.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-3803399137310923214</id><published>2007-06-05T18:53:00.000+09:00</published><updated>2008-12-12T05:47:20.154+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebService'/><title type='text'>Ajax loader icon.</title><content type='html'>　いつも週末だけ管理してるので、平日に投稿と言うのも珍しいですが、ちと忘れそうだったのでメモ.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://www.ajaxload.info/"&gt;Ajaxload - Ajax loading gif generator&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　AjaxなんかでAsynchronousにデータを読み込む時に表示するアイコンを&lt;STRIKE&gt;Fee&lt;/STRIKE&gt;Free且つオンラインで生成してくれるサイト.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kri9yIsnLbE/RmUz1Agr7pI/AAAAAAAAAGE/fOyr179bz6s/s1600-h/ajax-loader.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_kri9yIsnLbE/RmUz1Agr7pI/AAAAAAAAAGE/fOyr179bz6s/s320/ajax-loader.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5072517541065911954" /&gt;&lt;/a&gt;　こんな感じ.&lt;br /&gt;　※左の画像はbloggerでアップロードしてるので動いてませんが、通常はグルグル回ってます.&lt;div style="display: none; clear:both"&gt;&lt;/div&gt;&lt;br /&gt;　この他にも、プログレスバーとか変わったのとか色々生成出来ます.&lt;br /&gt;&lt;br /&gt;　しかしこのサイト、ライセンスについての記述がフッタの一文しか見当たらない訳ですが、これって商用で使ってもOKなんだろうか？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-3803399137310923214?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/3803399137310923214/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=3803399137310923214' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/3803399137310923214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/3803399137310923214'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/06/ajax-loader-icon.html' title='Ajax loader icon.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kri9yIsnLbE/RmUz1Agr7pI/AAAAAAAAAGE/fOyr179bz6s/s72-c/ajax-loader.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7869760105775586971</id><published>2007-06-03T21:53:00.000+09:00</published><updated>2008-12-12T05:47:20.466+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>PDTとSubclipse.</title><content type='html'>　以前も書いた&lt;a href="http://lightmaterial.blogspot.com/2007/03/php-development-tools.html"&gt;PHP Development Tools&lt;/a&gt;.&lt;br /&gt;　実際に使ってみると、結構いい感じです.&lt;br /&gt;　コメントで日本語なんか使うと、色分けや太字処理なんかで問題が出ますが、その辺が気にならなければ快適に使えます.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kri9yIsnLbE/RmK-BK7dqQI/AAAAAAAAAF8/IpKvWR85dwE/s1600-h/Screenshot-6.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_kri9yIsnLbE/RmK-BK7dqQI/AAAAAAAAAF8/IpKvWR85dwE/s320/Screenshot-6.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5071825057695508738" /&gt;&lt;/a&gt;　※使う日本語によって、現象が出る出ないがあります.&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;　ただ、私のやり方が悪いのか、Subclipseが悪いのか、Subversionで管理されたPHPのコードをPDTで編集しようと思うと、思い通りに行きません.&lt;br /&gt;　前に書いた様に、PDTはPHP Projectとして作成したプロジェクト以外では、コードアシスタントもアウトラインも動いてくれませんので、SubclipseでチェックアウトしたプロジェクトをPDT用のプロジェクトにしないといけませんが、この方法が分からない.&lt;br /&gt;　どうやればいいんだろう？？？&lt;br /&gt;&lt;br /&gt;　結局今は力業で.projectファイルをPDT用の物に置き換えてSubclipseとPDTを共存させてますが、まさかこんな力業が正当な使いかたじゃないと思うんですよね.&lt;br /&gt;　どうやったらいいんだろうか？&lt;br /&gt;&lt;br /&gt;　うーん分かりません orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7869760105775586971?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7869760105775586971/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7869760105775586971' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7869760105775586971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7869760105775586971'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/06/pdtsubclipse.html' title='PDTとSubclipse.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kri9yIsnLbE/RmK-BK7dqQI/AAAAAAAAAF8/IpKvWR85dwE/s72-c/Screenshot-6.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-2783248517946729515</id><published>2007-06-03T21:21:00.000+09:00</published><updated>2008-12-12T05:47:20.666+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Fedora7リリース.</title><content type='html'>数日前の話になりますが、&lt;a href="http://fedoraproject.org/"&gt;Fedora7が正式リリース&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Fedora7からは、通常版のインストールイメージがDVD化されています.&lt;br /&gt;つまり、今まではCD5枚分（レスキュー除く）のイメージが必要でしたが、今回からはDVDイメージ1枚分でOK！と言うことです.&lt;br /&gt;…DVD-Rドライブもってない私はどうすれば？ orz&lt;br /&gt;と言う事で、貧乏マックスなlightmaterialはおとなしくLiveCD版をダウンロード.&lt;br /&gt;LiveCD版なら普通にCDイメージですし、（会社の）CD-R/RWドライブを使えば焼けますので.&lt;br /&gt;本当はダメなんですけどねw&lt;br /&gt;&lt;br /&gt;LiveCD版には更にGnome版/KDE版が揃ってます.&lt;br /&gt;この辺は好みの問題ですが、最近Xfceが気に入っている私としては、Xfce版も用意してもらいたかった所です.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/RmKz3q7dqPI/AAAAAAAAAF0/xa4_BjxPSaQ/s1600-h/Screenshot.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/RmKz3q7dqPI/AAAAAAAAAF0/xa4_BjxPSaQ/s320/Screenshot.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5071813899370473714" /&gt;&lt;/a&gt;　LiveCD起動直後はこんな感じです.&lt;br /&gt;　ネットワーク接続通知が出ているのは、単にLANケーブルをルータに差し忘れていたからですw&lt;br /&gt;　印象的には「何も変わってないじゃん」と言うのが第一印象.&lt;br /&gt;　グラフィックはVistaに倣ってか、GDM/KDMともにOpacity的な処理がされていますが、それ以外はパッと見特にFC6と変わっていません.&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;　もちろん内部的にはリポジトリの統合やら、導入環境のバージョンアップ等々あるんですけど.&lt;br /&gt;&lt;br /&gt;　それでも劇的な変化というのはありません.&lt;br /&gt;　LiveCDとしての特徴は、&lt;a href="http://lightmaterial.blogspot.com/2007/05/ubuntu-704-feisty-fawn.html"&gt;以前書いたUbuntuと同様に&lt;/a&gt;、デスクトップにHDDへインストールするためのショートカットが用意されている点、デフォルトでは（当然）英語で起動するので、毎回毎回languageにJapanese選んだ上でキーボード設定を日本語にする必要がある点です.&lt;br /&gt;　正直面倒です orz&lt;br /&gt;　おまけに、lightmaterialのやり方がまずいのか、KDE版では結局日本語に出来ませんでしたw&lt;br /&gt;&lt;br /&gt;　名称が変わった事も含め、もう少し劇的な変化があるのかと期待していただけに、少し拍子抜けした感があります.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-2783248517946729515?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/2783248517946729515/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=2783248517946729515' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2783248517946729515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2783248517946729515'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/06/fedora7.html' title='Fedora7リリース.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kri9yIsnLbE/RmKz3q7dqPI/AAAAAAAAAF0/xa4_BjxPSaQ/s72-c/Screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-245067270995793947</id><published>2007-05-27T21:04:00.000+09:00</published><updated>2007-05-27T21:08:28.625+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='このblogについて'/><title type='text'>今週は無し.</title><content type='html'>　今週は予定があって時間を取れなかったのでメモは無し.&lt;br /&gt;&lt;br /&gt;　同時に、自分のスケジュール管理の甘さに茫然自失 orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-245067270995793947?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/245067270995793947/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=245067270995793947' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/245067270995793947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/245067270995793947'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/05/blog-post_27.html' title='今週は無し.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-6366748865851080589</id><published>2007-05-20T12:57:00.000+09:00</published><updated>2007-05-20T14:58:17.573+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Subversionのリビジョン間差分をExport.</title><content type='html'>　Subversionを会社でテスト導入.&lt;br /&gt;　最終的にVSSからの置き換えが出来るかどうかは置いておき、あらゆる作成物のバージョン管理が出来る、FSFSで運用している場合、リポジトリのバックアップもコピーも簡単に可能と言う利点がありますので、十分役にはたつでしょう.&lt;br /&gt;&lt;br /&gt;　と言う事で実際にテスト運用してみると、リビジョン間の差分のみをExportしたいケースがある事に気づきました.&lt;br /&gt;　何百ページもあるWebサイトのデータ管理なんかがそうです.&lt;br /&gt;&lt;br /&gt;※ここから以下、すべてWindows上での話です&lt;br /&gt;&lt;br /&gt;　結論から言えば、&lt;a href="http://tortoisesvn.net/docs/release/TortoiseSVN_ja/tsvn-dug-diff.html#tsvn-dug-compare-revs"&gt;TortoiseSVNで普通に出来ます&lt;/a&gt;ね.&lt;br /&gt;&lt;br /&gt;　◆リポジトリブラウザ→リポジトリ選択→右クリック→ログを表示→対象リビジョン（2つ）選択→リビジョンを比較→リストのファイルをすべて選択→右クリック→選択をエクスポート&lt;br /&gt;&lt;br /&gt;　がしかし、lightmaterialはこのExport方法にまったく気づかず orz&lt;br /&gt;&lt;br /&gt;　探してもなかなかリビジョン間差分をExportするツールが見つからず（TortoiseSVNで出来るので当たり前かもしれませんが）、やっと探し当てたのが「&lt;a href="http://www.fprog.org/projects/SvnChangeList"&gt;SvnChangeList&lt;/a&gt;」と言うソフト.&lt;br /&gt;　しかし、このソフトでは何故かエクスポートに失敗してしまうので（ファイルが1つも出力されない. lightmaterialの環境が悪いのか？）、仕方ないから自分で作ろうと手っ取り早くVB.Netを起動.&lt;br /&gt;　TortoiseSVNで出来るにも拘らず…拘らず…拘らず… orz&lt;br /&gt;&lt;br /&gt;　まぁ、そのマヌケ過ぎて笑える程悲しい現実は置いておき.&lt;br /&gt;　このメモで本当に書きたかったのはここから.&lt;br /&gt;　作り始めようと思ってすぐ問題が.&lt;br /&gt;　直接Subversionのクライアント機能を実装しようとすると面倒なので、「SvnChangeList」に倣ってSubversion付属のクライアント（svn.exe）を起動する方法で試みた所、日本語が思い切り文字化けします.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;C:\Subversion\bin&gt;svn&lt;br /&gt;?\228?\189?\191?\231?\148?\168?\230?\150?\185?\230?\179?\149?\227?\130?\146?\231&lt;br /&gt;?\159?\165?\227?\130?\138?\227?\129?\159?\227?\129?\132?\227?\129?\168?\227?\129&lt;br /&gt;?\141?\227?\129?\175 'svn help' ?\227?\129?\168?\230?\137?\147?\227?\129?\163?\227&lt;br /&gt;?\129?\166?\227?\129?\143?\227?\129?\160?\227?\129?\149?\227?\129?\132?\227?\128&lt;br /&gt;?\130&lt;/div&gt;&lt;br /&gt;　は？&lt;br /&gt;&lt;br /&gt;　と思いつつネット探索してみると、この現象はかなーり有名な現象の様で、インストーラでインストールしていない場合やTortoiseSVNと同居させていると発生するとの事.&lt;br /&gt;　どうやらiconvのパス指定が正常に取れていないのが原因らしいので、PATH指定してあげる事で解消します.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;set APR_ICONV_PATH=[iconv diretory]&lt;br /&gt;C:\Subversion\bin\svn&lt;br /&gt;使用方法を知りたいときは 'svn help' と打ってください。&lt;/div&gt;&lt;br /&gt;　[iconv directory]はSubversionのディレクトリ下にある「iconv」ディレクトリを指定します.&lt;br /&gt;　これで訳の分からない文字化けからは解消されます.&lt;br /&gt;&lt;br /&gt;　System.Diagnostics.Process（とProcessInfo）でこの辺をどう処理して良いのか思い浮かばなかったので、結局文字化けする場合はbatファイルを出力して、それを起動する方法を選択.&lt;br /&gt;　何度も言うようにTortoiseSVNで出来るにも拘らず…拘らず…拘らず… orz&lt;br /&gt;&lt;br /&gt;　完成させる前に気づきましたし、文字化けの解消方法も分かったので、すべてが無駄だった訳ではありません！！&lt;br /&gt;&lt;br /&gt;　…はい、無駄過ぎます orz&lt;br /&gt;　4時間オール無駄.&lt;br /&gt;　涙でディスプレイが霞んで見えるけど気のせい気のせい.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-6366748865851080589?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/6366748865851080589/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=6366748865851080589' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/6366748865851080589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/6366748865851080589'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/05/subversionexport.html' title='Subversionのリビジョン間差分をExport.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-1273998913211205798</id><published>2007-05-20T01:04:00.000+09:00</published><updated>2007-05-20T01:22:27.343+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>フレッツ網の例の件.</title><content type='html'>　まぁ、各所blog含め散々あらゆる所で話題になった東日本全域にわたるフレッツ網の接続エラー問題.&lt;br /&gt;　もう5日も前の話ですが、週一でしかblog管理してないので平気で過去の話題を引っ張り出しますｗ&lt;br /&gt;&lt;br /&gt;　札幌に住むlightmaterialも例に漏れず影響を受けました.&lt;br /&gt;　その時は仕事中で大変な事に.&lt;br /&gt;　会社のチープなルータは、事業所とのVPN的な設定のせいで、事業所間通信が落ちると社内のネットワークを巻き込んで不安定になってしまうので、余計大変な事になりました.&lt;br /&gt;　しかも、社内で外部に通じている回線がすべてフレッツ網経由だったので、「繋がらない理由がまったく分からない」と言う状況.&lt;br /&gt;　考えてみれば、今の時代、情報収集＝インターネットと言う構図が成り立っているので、そこが落ちてしまうと何の情報も得られません.&lt;br /&gt;　プロバイダの問題か？&lt;br /&gt;　回線（光ファイバ）の問題か？&lt;br /&gt;　NTTの問題か？&lt;br /&gt;　まーったく分からず一時間あれやこれやと大騒ぎ.&lt;br /&gt;　結局同業他社の知人から連絡を貰い、東日本のフレッツ網が落ちていると判明.&lt;br /&gt;　一時間無駄に使ってその結果かい！と何故か爆笑してしまいました.&lt;br /&gt;&lt;br /&gt;　と同時に、こんな事態になった時、TV・ラジオでしか情報収集出来ないと言う事を痛感.&lt;br /&gt;　こんな事はめったに無いでしょうが、別経由の回線増設やTV・ラジオなりの外部情報入手経路を確保しとくのも大事な事だと思う今日この頃.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-1273998913211205798?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/1273998913211205798/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=1273998913211205798' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/1273998913211205798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/1273998913211205798'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/05/blog-post.html' title='フレッツ網の例の件.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-87580172050860238</id><published>2007-05-20T00:57:00.000+09:00</published><updated>2007-05-20T01:04:24.856+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>svchostがCPUを食い散らかす.その後2.</title><content type='html'>　先日書いた&lt;a href="http://lightmaterial.blogspot.com/2007/05/svchostcpu1.html"&gt;WindowsUpdateで固まるのはMSさんのミス？&lt;/a&gt;、と言う件ですが、前回の記事を書いた翌日（と言っても約一週間前 orz）、さっそく試しました.&lt;br /&gt;&lt;br /&gt;　…ほ、本当に固まらない！ｗ&lt;br /&gt;　要するに、WindowsUpdate自体の不具合だったようで.&lt;br /&gt;&lt;br /&gt;　ただなぁ&lt;br /&gt;　この現象、4月の頭から発生してたんですが、実際に対応されたのが5月の半ばなので、4月の時点で固まるケースは無かったのかもしれません.&lt;br /&gt;　私の環境（会社PC）が特殊だったんでしょうか？&lt;br /&gt;&lt;br /&gt;　&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-87580172050860238?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/87580172050860238/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=87580172050860238' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/87580172050860238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/87580172050860238'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/05/svchostcpu2.html' title='svchostがCPUを食い散らかす.その後2.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-6686017049328343530</id><published>2007-05-13T16:07:00.000+09:00</published><updated>2008-12-12T05:47:20.864+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Trac'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Trac Web Admin Pluginを入れてみた.</title><content type='html'>　先日書いた「&lt;a href="http://lightmaterial.blogspot.com/2007/04/trac_15.html"&gt;Tracインストール手順メモ.&lt;/a&gt;」の続きです.&lt;br /&gt;　とは言え、かなり間が開いてしまいましたが orz&lt;br /&gt;&lt;br /&gt;　今回は&lt;br /&gt;　　&lt;br /&gt;　・&lt;a href="http://trac.edgewall.org/wiki/WebAdmin"&gt;Trac Web Admin Plugin&lt;/a&gt; [ver 0.1.2dev_r4240]（Python2.4版）&lt;br /&gt;&lt;br /&gt;　をインストールし、TracのWeb画面上から管理者機能を使える様にしようと思います.&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;1. setuptoolsをインストール.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　オプション機能のsetuptoolsをインストールします.&lt;br /&gt;　上記の「&lt;a href="http://lightmaterial.blogspot.com/2007/04/trac_15.html"&gt;Tracインストール手順メモ.&lt;/a&gt;」を先に見ていれば、ダウンロードからインストール方法まで書いてあります.&lt;br /&gt;　Trac Web Admin Pluginをインストールする前に、このオプション機能をインストールしておかなければいけないようです.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;2. Trac Web Admin Pluginをインストール.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　インストールと言っても、手順は非常に簡単です.&lt;br /&gt;　インストールパスは、前回作成したテストプロジェクトのディレクトリである事を前提にしています.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# cd /sources&lt;br /&gt;mv TracWebAdmin-0.1.2dev_r4240-py2.4.egg.zip /usr/local/trac/testprj/plugins/TracWebAdmin-0.1.2dev_r4240-py2.4.egg&lt;br /&gt;[??@fedora]# chown [apache user]:[apache group] TracWebAdmin-0.1.2dev_r4240-py2.4.egg&lt;/div&gt;&lt;br /&gt;　実行している事は、Trac Web Admin Pluginの本家サイトに書いてある事だけです.&lt;br /&gt;　　1. ダウンロードしたファイルから「.zip」拡張子を削除&lt;br /&gt;　　2. プロジェクトの「plugins」ディレクトリにファイルを配置&lt;br /&gt;　　3. ファイル権限変更（これは書いてませんが）&lt;br /&gt;&lt;br /&gt;　次に、プロジェクト設定ファイルで、Trac Web Admin Pluginを有効にします.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# vi /usr/local/trac/testprj/conf/trac.ini&lt;br /&gt;…[中略]…&lt;br /&gt;[components]&lt;br /&gt;webadmin.* = enable&lt;/div&gt;&lt;br /&gt;　設定ファイル中に[components]セクションが無い場合は、適切な場所に追記します.&lt;br /&gt;　この設定方法は、Tracのマニュアル（TracGuid）に記載してあります.&lt;br /&gt;&lt;br /&gt;　さて、インストールは完了しましたが、これだけでTrac Web Admin Pluginが使える訳ではありません.&lt;br /&gt;　ちゃんとユーザー設定、パーミッション設定をする必要があります.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;3. ユーザー設定.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　前回のインストール手順メモでは、ごく簡単に（と言うか概要のみ）しか触れていませんでしたが、Trac用のユーザー設定を行います.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# vi /usr/local/apache2/conf/extra/httpd-trac.conf&lt;br /&gt;　# Tracの設定項目は省略. 前回分参照.&lt;br /&gt;　＜LocationMatch "/trac/[^/]+/login"＞&lt;br /&gt;　    AuthType Basic&lt;br /&gt;　    AuthName "Test Project"&lt;br /&gt;　    AuthUserFile /usr/local/trac/testprj/.htpasswd&lt;br /&gt;　    Require valid-user&lt;br /&gt;　＜/LocationMatch＞&lt;/div&gt;&lt;br /&gt;　「AuthUserFile」は好みのパスを指定します.&lt;br /&gt;　今回は分かり易い様に、Tracのテストプロジェクト内に「.htpasswd」と言うファイルを作成する事にしました.&lt;br /&gt;　そして、実際に「.htpasswd」（要するに、普通にApacheでパスワード認証する場合と同じファイル）を生成します.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# htpasswd -c -b /usr/local/trac/testprj [user name] [password]&lt;/div&gt;　※当然[user name]と[password]を自分の環境にあわせて書き換えます.&lt;br /&gt;&lt;br /&gt;　これでユーザー設定が完了しました.&lt;br /&gt;　続いて、Tracプロジェクトのパーミッション設定を行います.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;3. パーミッション設定.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　Trac Web Admin Pluginはその名前の通り、Web上からAdministrator的な機能を実行する為のプラグインですので、設定したユーザーがTrac上のAdministrator権限を持っていなければいけません.&lt;br /&gt;　先ほど作成したユーザーに、「TRAC_ADMIN」と言うAdministrator権限を付与します.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# trac-admin /usr/local/trac/testprj permission add [user name] TRAC_ADMIN&lt;/div&gt;&lt;br /&gt;　後は実際に使ってみるだけです.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;4. Trac Web Admin Pluginを使う.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　まず、Tracからログインします.&lt;br /&gt;　Tracのトップ画面標示後、右上にある「ログイン」から認証処理を実行します.&lt;br /&gt;　当然、htpasswdで作成したユーザー名、パスワードを入力します.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kri9yIsnLbE/RkbUm6Bv0CI/AAAAAAAAAFs/IB8lBZNqUuM/s1600-h/Screenshot-4c.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_kri9yIsnLbE/RkbUm6Bv0CI/AAAAAAAAAFs/IB8lBZNqUuM/s320/Screenshot-4c.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5063968595901403170" /&gt;&lt;/a&gt;　そうすると、画面上にユーザー名が表示され（ここまでは標準機能のログイン）、メニューバー（？）に「Admin」ボタンが追加されます.&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;　環境によっては（？）、認証時に以下の様なエラーが発生するかもしれません.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;Traceback (most recent call last):&lt;br /&gt;…[中略]…&lt;br /&gt;The following error occurred while trying to extract file(s) to the Python egg&lt;br /&gt;cache:&lt;br /&gt;&lt;br /&gt;  [Errno 13] Permission denied: '/root/.python-eggs'&lt;br /&gt;&lt;br /&gt;The Python egg cache directory is currently set to:&lt;br /&gt;&lt;br /&gt;  /root/.python-eggs&lt;br /&gt;&lt;br /&gt;Perhaps your account does not have write access to this directory?  You can&lt;br /&gt;change the cache directory by setting the PYTHON_EGG_CACHE environment&lt;br /&gt;variable to point to an accessible directory.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　要するに、キャッシュファイルをrootディレクトリに作成しようとしてエラーが発生しているので、アクセス可能なディレクトリを指定して下さいよ、と言う事でしょう.&lt;br /&gt;　この場合、↑の指示に従って、Apacheの設定ファイルに変更を加えます.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# vi /usr/local/apache2/conf/extra/httpd-trac.conf&lt;br /&gt;　＜Location /trac＞&lt;br /&gt;　    SetHandler mod_python&lt;br /&gt;　    PythonHandler trac.web.modpython_frontend&lt;br /&gt;　    PythonOption TracEnvParentDir /usr/local/trac&lt;br /&gt;　    PythonOption TracUriRoot /trac&lt;br /&gt;　    SetEnv PYTHON_EGG_CACHE /usr/local/trac/testprj/.python_eggs&lt;br /&gt;　    #↑この1行を追記&lt;br /&gt;　＜/Location＞&lt;br /&gt;　# 以下はパスワード制限する場合に必要.&lt;br /&gt;　＜LocationMatch "/trac/[^/]+/login"＞&lt;br /&gt;　    AuthType Basic&lt;br /&gt;　    AuthName "Test Project"&lt;br /&gt;　    AuthUserFile /usr/local/trac/testprj/.htpasswd&lt;br /&gt;　    Require valid-user&lt;br /&gt;　＜/LocationMatch＞&lt;/div&gt;&lt;br /&gt;　設定に誤りが無ければ、これで正常にログインできるかと思います.&lt;br /&gt;&lt;br /&gt;　Trac Web Admin Pluginの各機能は、この「Admin」ボタンから実行可能です.&lt;br /&gt;　この各種機能を使う事で、上述したtrac-adminを使用したパーミッション設定などをWeb画面上から設定可能になります.&lt;br /&gt;　おお、何とも便利！！&lt;br /&gt;&lt;br /&gt;　…ただ、これ公開用で使うのはちょっと恐い気がしないでも無いですね.&lt;br /&gt;　どうなんだろう？&lt;br /&gt;　まぁ、私はローカルでしか使わないので問題ありませんが.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-6686017049328343530?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/6686017049328343530/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=6686017049328343530' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/6686017049328343530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/6686017049328343530'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/05/trac-web-admin-plugin.html' title='Trac Web Admin Pluginを入れてみた.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kri9yIsnLbE/RkbUm6Bv0CI/AAAAAAAAAFs/IB8lBZNqUuM/s72-c/Screenshot-4c.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-3164475316337919287</id><published>2007-05-13T15:26:00.000+09:00</published><updated>2008-12-12T05:47:20.933+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebService'/><title type='text'>新しくなったGoogle Analytics.</title><content type='html'>　このBloggerと言うブログはGoogleが提供している訳ですが、標準ではアクセス解析機能が付いていません.&lt;br /&gt;　まぁ、他のブログの様に&lt;br /&gt;&lt;br /&gt;　　今日は何人のアクセスがあった？&lt;br /&gt;　　誰からのコメントが届いてる！！&lt;br /&gt;　　早速お礼のコメント書きにいかないと！&lt;br /&gt;&lt;br /&gt;　と言った状況に陥らないように、敢えてBloggerを選んだので無くて良いんですが、それでも人間「誰がどんな記事を見てるのか」少しは気になりますw&lt;br /&gt;&lt;br /&gt;　と言う事で、Bloggerにアクセス解析機能を実装する方法として、本家ではGoogle Analyticsを推奨していましたので、ブログ開設当初からひっそりとGoogle Analyticsを実装してたりします.&lt;br /&gt;　まぁ、ブログの保守すら週1日しかしてないので、実際にGoogle Analyticsをチェックするのなんて月1くらいのものですがw&lt;br /&gt;&lt;br /&gt;　そんなGoogle Analyticsがバージョンアップしたとの事&lt;br /&gt;　ニュースを見て早速確認.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/RkazPKBv0BI/AAAAAAAAAFk/pL4deuWwJss/s1600-h/Screenshot3c.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/RkazPKBv0BI/AAAAAAAAAFk/pL4deuWwJss/s320/Screenshot3c.png" alt="" id="BLOGGER_PHOTO_ID_5063931903995793426" border="0" /&gt;&lt;/a&gt;　おお、見やすくなってる！&lt;br /&gt;　…アクセス数が「なんじゃそりゃ」的駄目過ぎな件に関しては無視の方向で orz&lt;br /&gt;　気を取り直して.&lt;br /&gt;　トップ画面のマイレポートには、各種データの中で、好きな機能を表示可能（ただ、各機能をマイレポートに表示するには、各機能の画面から設定を行う必要があるので、ちょっと面倒かも）.&lt;br /&gt;　表示位置もD&amp;Dで変更可能.&lt;br /&gt;　また、以前はレポート部分の表示についてFlashに高く依存していましたが、今回のバージョンアップからAjaxとFlashを併用して表示する様になり、非常に見やすく（軽く）なりました.&lt;br /&gt;　うーん、素晴らしい.&lt;br /&gt;&lt;br /&gt;　と、バージョンアップとは関係無いですが、ほぼ他サイトの情報に依存していて、本当に書いた事が正しいのか未検証な「&lt;a href="http://www.blogger.com/post-edit.g?blogID=6730181980158564519&amp;amp;postID=5371118324867174357"&gt;怪しい「2o7.net」の正体.&lt;/a&gt;」と言う投稿に対して、アクセスが結構ある事に今日気付きました.&lt;br /&gt;　あれかなぁ、もう少しちゃんと調べた方がいいかなぁ…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-3164475316337919287?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/3164475316337919287/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=3164475316337919287' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/3164475316337919287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/3164475316337919287'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/05/google-analytics.html' title='新しくなったGoogle Analytics.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kri9yIsnLbE/RkazPKBv0BI/AAAAAAAAAFk/pL4deuWwJss/s72-c/Screenshot3c.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-5952549760255587175</id><published>2007-05-13T15:20:00.000+09:00</published><updated>2007-05-13T19:00:03.240+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>svchostがCPUを食い散らかす.その後1.</title><content type='html'>　以前書いた&lt;a href="http://lightmaterial.blogspot.com/2007/04/svchostcpu.html"&gt;svchostがCPUを食い散らかす件&lt;/a&gt;ですが、手動でWindowsUpdateを適用して改善したものの、また先日の定期UpdateによりCPUを食い散らかすようになりました.&lt;br /&gt;&lt;br /&gt;　…面倒なので自動更新機能を完全OFFにw&lt;br /&gt;&lt;br /&gt;　それが一番手っ取り早く且つ確実安全な方法だと思います.&lt;br /&gt;　手動でUpdateすれば言い訳ですし.&lt;br /&gt;　根本的に解決するなら…OS再インストール？ orz&lt;br /&gt;&lt;br /&gt;　このWindowsUpdateで固まる問題、正当な回避策ってあるんでしょうかねぇ？&lt;br /&gt;　何が原因で現象が出るPCと出ないPCがあるのか、それを知りたい所です.&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;&amp;nbsp;* 2007-05-13 19:00追記.&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;　この記事書いた後、Yahoo!ニュースをたらたら見てたら、「おそらく」そのものズバリの問題についてが書いてありましたｗ&lt;br /&gt;　・Yahoo!ニュース（しばらくしたら見られなくなると思う）&lt;br /&gt;　　　http://headlines.yahoo.co.jp/hl?a=20070511-00000032-imp-sci&lt;br /&gt;&lt;br /&gt;　・MSサイト&lt;br /&gt;　　　&lt;a href="http://support.microsoft.com/kb/937383/"&gt;Microsoft Update または Windows Update が終了しない&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　明日会社で試してみよう.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-5952549760255587175?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/5952549760255587175/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=5952549760255587175' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5952549760255587175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/5952549760255587175'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/05/svchostcpu1.html' title='svchostがCPUを食い散らかす.その後1.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-2584038602741317803</id><published>2007-05-13T15:07:00.000+09:00</published><updated>2007-05-13T15:20:07.931+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>入れ直したUbuntu 7.04.</title><content type='html'>　先週&lt;a href="http://lightmaterial.blogspot.com/2007/05/gnome-terminal-on-ubuntu-704.html"&gt;gnome-terminalがこける&lt;/a&gt;、と書きましたが、Ubuntuを入れ直した所、普通に使えました.&lt;br /&gt;　どうやら&lt;a href="http://lightmaterial.blogspot.com/2007/05/ubuntu-704-on-hdd.html"&gt;アップデート中に固まった&lt;/a&gt;のが悪かった様です.&lt;br /&gt;&lt;br /&gt;　何だかなぁ…&lt;br /&gt;　まぁ、その後は何事もなかったかの様に、普通に使えているので問題無いですが.&lt;br /&gt;&lt;br /&gt;　その後使っていて気付いたのが、完全にDesktop向けの用途に機能が絞られている、と言う事です.&lt;br /&gt;　まぁ、名前からして&lt;br /&gt;&lt;br /&gt;　　日本語ローカライズ版Desktop CD&lt;br /&gt;&lt;br /&gt;　なんですから、当然といえば当然かw&lt;br /&gt;　どの辺がDesktop向けかと言うと、デフォルトの状態ではアップデート一覧に、サーバー関係のソフトウェアがまったくリストアップされません.&lt;br /&gt;　Apache-Httpdも（見逃していなければ）リストアップされません.&lt;br /&gt;　その辺はサーバー版使いなさい、と.&lt;br /&gt;　でもサーバー版の日本語ローカライズは用意されていない訳です.&lt;br /&gt;　まぁ、英語でも問題無いですし、自分で日本語環境突っ込めばいい話なのかもしれませんが、そんな事をしていたらせっかくの簡易な環境が、一気に他のディストリビューションより面倒になってしまいます.&lt;br /&gt;&lt;br /&gt;　要するにDesktop用途に特化したディストリビューションだと考える方が賢明？&lt;br /&gt;　もう少し使ってみようと思います.&lt;br /&gt;　全体的な使い勝手は素晴らしいと思うので.&lt;br /&gt;&lt;br /&gt;　飽きたらDebian 4.0でも入れてみようか.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-2584038602741317803?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/2584038602741317803/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=2584038602741317803' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2584038602741317803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2584038602741317803'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/05/ubuntu-704.html' title='入れ直したUbuntu 7.04.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-9196738932132970535</id><published>2007-05-05T01:11:00.000+09:00</published><updated>2007-05-05T01:47:18.269+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>gnome-terminalがこける on Ubuntu 7.04.</title><content type='html'>　駄目だこりゃ.&lt;br /&gt;　さんざん褒めておいて何ですが…Terminal起動出来ないと何も出来ませんからぁぁ！ orz&lt;br /&gt;&lt;br /&gt;　意味分かりません.&lt;br /&gt;　何故かgnome-terminal（要するに端末）が起動しません.&lt;br /&gt;　正確に言うと、起動後（画面が表示される前）にこけます.&lt;br /&gt;&lt;br /&gt;　オマケにgnome-terminalが駄目なら&lt;STRIKE&gt;Kterm&lt;/STRIKE&gt; Konsole入れよう！と思ったら、「アプリケーションの追加と削除」でエラーが出ます.&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.&lt;br /&gt;E: _cache-&gt;open() failed, please report.&lt;/div&gt;&lt;br /&gt;　…仕方なし（端末起動出来ないから）.&lt;br /&gt;　仮想端末（Ctrl+Alt+F1〜F6、戻る時はCtrl+Alt+F7）から原因を調べようと、仮想端末起動.&lt;br /&gt;　んが、当然日本語表示出来ず、エラー表示に何が書いてあるか分かりません（文字化け）.&lt;br /&gt;　konするも「インストールされてねーよ！」と怒られつつ、親切にも「apt-getしてね」と書いてあったので、指示に従って&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@ubuntu]# sudo apt-get install kon2&lt;br /&gt;[??@ubuntu]# sudo dpkg --configure -a&lt;/div&gt;　※Ubuntuはデフォルトではrootでログイン出来ません（正しいあり方ですが）.&lt;br /&gt;&lt;br /&gt;　konのインストール時には文字化けのオンパレードで「Y/n」の質問され、たぶんインストールしますか？と言う事だろうと、「Y」と入力し無事インストール完了.&lt;br /&gt;　って、パッケージ管理はAptだったのねw&lt;br /&gt;　そして仮想端末を抜け、おもむろに「アプリケーションの追加と削除」からKonsoleを選択すると普通にインストール完了.&lt;br /&gt;　ふーん.&lt;br /&gt;　kon入ってないと絶望的だった訳で.&lt;br /&gt;　たまたま昔RedHat9使っててkonの存在知ってたから良いような物の…&lt;br /&gt;　私の様な素人にはそんな事分かりませんって.&lt;br /&gt;&lt;br /&gt;　気を取直して、Konsole上からgnome-terminalを起動するも…エラーメッセージも無くこける！&lt;br /&gt;　一応エラーメッセージは出る事は出るけど「Bus error」としか出ません orz&lt;br /&gt;　おかしいなぁ.&lt;br /&gt;　何だろう？？&lt;br /&gt;　Ubuntuのフォーラム見ても、同じような現象に対する質問が見当たりません.&lt;br /&gt;&lt;br /&gt;　…こりゃ入れ直しですね orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-9196738932132970535?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/9196738932132970535/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=9196738932132970535' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/9196738932132970535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/9196738932132970535'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/05/gnome-terminal-on-ubuntu-704.html' title='gnome-terminalがこける on Ubuntu 7.04.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-9043862590652090371</id><published>2007-05-04T23:22:00.000+09:00</published><updated>2008-12-12T05:47:21.141+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Ubuntu 7.04 on HDD.</title><content type='html'>　HDDから起動しました.&lt;br /&gt;　…これはLinux（GUI上）の宿命なのか？？と言うアップデートが固まる現象はさておき、何事もなかったかのように起動してくれました.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kri9yIsnLbE/RjtDQqBv0AI/AAAAAAAAAFc/mDAet_OUMvQ/s1600-h/Screenshot.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_kri9yIsnLbE/RjtDQqBv0AI/AAAAAAAAAFc/mDAet_OUMvQ/s320/Screenshot.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5060712559719469058" /&gt;&lt;/a&gt;　素敵です.&lt;br /&gt;　報道ステーションでの市川さんの微笑みくらい素敵です. ＞ 意味不明&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　Ubuntuのパッケージマネージャが何なのかすら知らずにインストールしてたりしますが（…Apt？…違うかw）、Fedoraから乗り換えたくなるくらいの勢いです.&lt;br /&gt;　まぁ、実際はまだ乗り換えたりしませんけど.&lt;br /&gt;　Fedora7も試してませんし.&lt;br /&gt;&lt;br /&gt;　それにしても、インストール完了までが早かった.&lt;br /&gt;　今までのLinuxのインストールの中で最短かも.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-9043862590652090371?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/9043862590652090371/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=9043862590652090371' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/9043862590652090371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/9043862590652090371'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/05/ubuntu-704-on-hdd.html' title='Ubuntu 7.04 on HDD.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kri9yIsnLbE/RjtDQqBv0AI/AAAAAAAAAFc/mDAet_OUMvQ/s72-c/Screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7839826116148981225</id><published>2007-05-04T22:21:00.000+09:00</published><updated>2008-12-12T05:47:21.718+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Ubuntu 7.04 Feisty Fawn.</title><content type='html'>　ようやく、半月に及ぶ連続仕事地獄から開放され、カレンダー通りの休みを取る事が出来ました.&lt;br /&gt;　休みって素晴らしい！！！&lt;br /&gt;　…と言うどーでもいい話は置いておき.&lt;br /&gt;&lt;br /&gt;　今回の書き込みは前から執拗にインストールしたいと書いていた&lt;a href="http://www.ubuntulinux.jp/"&gt;Ubuntu&lt;/a&gt;（Linux）からの書き込みです.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/Rjs5t6Bvz-I/AAAAAAAAAFM/kxRWNarAE9c/s1600-h/Screenshot-1.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/Rjs5t6Bvz-I/AAAAAAAAAFM/kxRWNarAE9c/s320/Screenshot-1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5060702067114364898" /&gt;&lt;/a&gt;　今まで主にと言うか99%のRedHat系Linuxおよび1%のTurboLiuxで構成されて来たLinux経験ですが、先日Debianを初めて触り、そのシンプルな素晴らしさ、Aptの素晴らしさに驚愕しました.&lt;br /&gt;　そして今日は、Ubuntuの「そこまで親切なのか！」と言う『Easy』な素晴らしさに感動すら覚えました.&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　Ubuntuの日本語ローカライズ版CD-ROMは2種類用意されています.&lt;br /&gt;　今回試したのは通常版（グラフィカル版）.&lt;br /&gt;　CD-ROMからインストーラを起動しようと思ったら、想像に反してライブCD状態で起動（CD-ROMからOSを起動する&lt;a href="http://unit.aist.go.jp/itri/knoppix/"&gt;Knoppix&lt;/a&gt;の様なOS、つまりHDDが無くても、Windowsが入っているPCでもOKですよ、と言うやつです）.&lt;br /&gt;　「あれ？ダウンロードするisoイメージの間違えたかな？」と思っていたら、デスクトップに「インストール」と言うアイコンが.&lt;br /&gt;　あーなる程ね.&lt;br /&gt;　こりゃ便利だ.&lt;br /&gt;　ライブCD状態で最初に起動して、いろいろ触って気に入ったらインストール出来ますよ、と.&lt;br /&gt;　Knoppixも同じ様な事が出来ますが、Knoppixより便利（簡単）かも？？&lt;br /&gt;&lt;br /&gt;　そして、更に初心者（私も含め）にやさしい「半Windowsライク」なGUI.&lt;br /&gt;　起動画面すらどことなくWindowsライク（初心者にとって意味不明な起動プロセスの表示もほとんどありません. 最初の数工程を除き、Windowsの様なプログレスバーが表示されます）.&lt;br /&gt;　起動後のGnomeのテーマもWindowsライク.&lt;br /&gt;&lt;br /&gt;　初心者には取っ付きやすいですねぇ.&lt;br /&gt;　それに、日本語ローカライズ版がちゃんと用意されているだけあり、Debianの様に日本語を使うのにちょっとした手間をかける必要もなく、最初からSCIM-AnthyのLinux最強日本語入力環境が利用できます.&lt;br /&gt;&lt;br /&gt;　うーん.&lt;br /&gt;　なんだろう、このイージーな感覚は.&lt;br /&gt;　確かにFedoraもCDを5枚用意したり、ライブCD版を探してダウンロードする労力が苦にならないなら、ほぼ同程度のEasyなLinuxではありますが、Ubuntuの場合は群を抜いてEasyと言うかイージーと言うかCD1枚でオールオーケー的な素晴らしさがあります.&lt;br /&gt;　と書いている今、実は「&lt;span style="font-weight:bold;"&gt;UbuntuでHDDにUbuntu自身をインストールしながらブログを書いて&lt;/span&gt;」いますw&lt;br /&gt;　これって今までに無かった感覚かも.&lt;br /&gt;　私の中では、OSって（Windowsも含め）インストール中はただ終わるのを待っているだけ、と言うのが当たり前でしたから、インストール中にブログ書いたりなんだり出来る環境が凄く新鮮！&lt;br /&gt;　ってまぁ、私が他にそういったOSを触った事が無いだけかもしれませんが orz&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/Rjs6p6Bvz_I/AAAAAAAAAFU/yRVk152kMoA/s1600-h/Screenshot-2.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/Rjs6p6Bvz_I/AAAAAAAAAFU/yRVk152kMoA/s320/Screenshot-2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5060703097906515954" /&gt;&lt;/a&gt;　あ、インストール終わったようです.&lt;br /&gt;　再起動してHDDから起動でOKかな？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7839826116148981225?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7839826116148981225/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7839826116148981225' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7839826116148981225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7839826116148981225'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/05/ubuntu-704-feisty-fawn.html' title='Ubuntu 7.04 Feisty Fawn.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kri9yIsnLbE/Rjs5t6Bvz-I/AAAAAAAAAFM/kxRWNarAE9c/s72-c/Screenshot-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-2275503649912887009</id><published>2007-04-28T14:34:00.000+09:00</published><updated>2007-04-28T14:40:40.377+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='このblogについて'/><title type='text'>今週も無し.休みも無し.</title><content type='html'>　orz&lt;br /&gt;　o..rz&lt;br /&gt;　o....rz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　今週も仕事の関係上メモはパス.&lt;br /&gt;　と言いますか、客先案件担当者＋経理担当者による偽情報＆偽データに惑わされた結果、仕様変更に追われ、2週連続休み無し.&lt;br /&gt;　ゴールデンウィーク（私にとっては5月3～6日）すら怪しい情勢です orz&lt;br /&gt;&lt;br /&gt;　あぁ～&lt;br /&gt;　.Netなんて触ってないで、Javaの勉強がしたい！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-2275503649912887009?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/2275503649912887009/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=2275503649912887009' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2275503649912887009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2275503649912887009'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/04/blog-post_28.html' title='今週も無し.休みも無し.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-420878111356950384</id><published>2007-04-21T19:09:00.000+09:00</published><updated>2007-04-21T19:26:55.941+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='このblogについて'/><title type='text'>今週は無し.</title><content type='html'>　今週はメモ更新無し.&lt;br /&gt;&lt;br /&gt;　明日（日曜）も仕事だワッショイワッショイ！！　＞　意味不明&lt;br /&gt;&lt;br /&gt;　… orz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　関係無いけど、HP製の新しい業務用PCが届いた.&lt;br /&gt;　今まで別メーカーで揃えていたけど、とある理由によりHPに変更.&lt;br /&gt;　んが、HPのPCにはリカバリCDもOSのCDも付いてない事に、モノが届いてから気づく.&lt;br /&gt;&lt;br /&gt;　HP Backup and Recovery Manager&lt;br /&gt;&lt;br /&gt;　と言うソフトで、別パーティションに保存されたリカバリイメージを別の場所なりCD/DVDなりに保存すると言う方法の様で.&lt;br /&gt;　昔のIBMノートPCの様に、HDDだけに保存されていて別メディアにコピー出来ない（今はどうなのか知りませんが）って訳じゃないのでまだ良いですが、やっぱりOSのCDが付いてないと面倒と言うか不安と言うか…&lt;br /&gt;　個人用にHPの&lt;br /&gt;&lt;br /&gt;　　&lt;a href="http://h50146.www5.hp.com/products/desktops/personal/s3000_series/"&gt;HP Pavilion Desktop PC s3000 シリーズ&lt;/a&gt;&lt;br /&gt;　　&lt;a href="http://h50146.www5.hp.com/products/desktops/personal/v7000_series/"&gt;HP Pavilion Desktop PC v7000 シリーズ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　あたりが欲しかったんですが、これじゃあ再検討が必要です.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-420878111356950384?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/420878111356950384/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=420878111356950384' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/420878111356950384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/420878111356950384'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/04/blog-post.html' title='今週は無し.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-3920356529266475743</id><published>2007-04-15T21:27:00.000+09:00</published><updated>2007-04-15T21:32:31.920+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Windows Update中にエラーで固まる.その後1.</title><content type='html'>　&lt;a href="http://lightmaterial.blogspot.com/2007/02/windows-update.html"&gt;以前書いた投稿&lt;/a&gt;の経過.&lt;br /&gt;&lt;br /&gt;　WindowsUpdateの自動更新をOFFにして凌いでいます.&lt;br /&gt;　自動更新にせず、手動更新にすれば、たとえエラーが発生しても固まる事はありませんので.&lt;br /&gt;　しかし、まだ原因は不明.&lt;br /&gt;　遠隔操作の性質上、遠隔操作ソフトを外して経過を観察する訳にもいかず、応急処置のままズルズルです.&lt;br /&gt;&lt;br /&gt;　最近事業所に行く機会もないですし…どうしたもんかなぁ.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-3920356529266475743?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/3920356529266475743/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=3920356529266475743' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/3920356529266475743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/3920356529266475743'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/04/windows-update1.html' title='Windows Update中にエラーで固まる.その後1.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-83595095902053568</id><published>2007-04-15T21:13:00.000+09:00</published><updated>2007-05-04T23:44:44.694+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>svchostがCPUを食い散らかす.</title><content type='html'>　そう、書こうと思って忘れてました.&lt;br /&gt;　週末しかblog管理してないのが悪い orz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　会社のXPマシンが、何故か先週から調子が悪くなりました.&lt;br /&gt;&lt;br /&gt;　【現象】&lt;br /&gt;　　起動後、約10分ほどでCPU使用率100%の状態になり固まる&lt;br /&gt;&lt;br /&gt;　なんじゃそりゃ orz&lt;br /&gt;&lt;br /&gt;　10分経つと何もできなくなるので、原因を調べるのも一苦労ですw&lt;br /&gt;　最初、Thunderbirdでメールを打っている最中、IMEで漢字変換した瞬間固まったので「あぁ、またIME2007の辞書壊れたか…」と思っていたのですが、どうも違うようで.&lt;br /&gt;　その後再起動しても、何もしてないのに固まると言う恐ろしい状態に.&lt;br /&gt;&lt;br /&gt;　3回ほどハード的にリセットをかけた後によくよく調べてみると、起動しているsvchostプロセスのひとつがCPU使用率をバカ食いしています.&lt;br /&gt;&lt;br /&gt;　…う、ウィルス？？&lt;br /&gt;　と顔面蒼白になりながら（会社のPCですので）、プロセスの起動パスを調べると、正常なパスから起動されたsvchostである事を確認.&lt;br /&gt;　ついでにsvchost自体が正常であるか（置換されてないか）確認した所、ハッシュも同一の正常ファイルである事が分かりました.&lt;br /&gt;&lt;br /&gt;　…じゃあ何なんだよ orz&lt;br /&gt;&lt;br /&gt;　この現象、自宅のPCでも、会社の他のPCでも起きていないので、どうやら特定環境で起こるらしい.&lt;br /&gt;　そう言えば、固まるようになる前にWindowsUpdateかました記憶が……&lt;br /&gt;　インストールされてる何かと、アップデートした内容の相性が悪いんだろうか？？&lt;br /&gt;&lt;br /&gt;　まぁ、あと数日で新しいPCが入るので、そのまま捨ておくと言うのもありですが、仕事が落ち着いたら、何由来のsvchostが固まってるのか調べてみようかと思うメモ.&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;&amp;nbsp;* 2007-04-15 23:40 追記&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;　今現状として、起動直後にsvchostプロセスを強制終了してますw&lt;br /&gt;　ただ、このsvchostを落とすと、ComputerBrowserまで道連れに落としてしまいますので、起動する毎に&lt;br /&gt;&lt;br /&gt;・固まるsvchostのCPU使用率が90%を越えて判断できる様になってから強制終了&lt;br /&gt;・サービスを開いて「ComputerBrowser」を開始&lt;br /&gt;&lt;br /&gt;　と言う、通常では有り得ない手順を踏んでいます orz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;&amp;nbsp;* 2007-05-04 23:40 追記&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;　先日別のWindowsUpdateを適用したら、svchostが固まる現象がパタリ無くなりました.&lt;br /&gt;　…要するに、100% WindowsUpdateが悪いと言う事ですね.&lt;br /&gt;　会社の事業所でエラーが発生してる問題もWindowsUpdateが悪い訳ですし、Linuxのアップデートでも固まったりなんだり（今回のWindowsほど酷くは無い）しますから、OSのアップデートは固まる物だと思うのが、一番の解決策ですね！！&lt;br /&gt;　…んな訳無い orz&lt;br /&gt;　MacOSのアップデートを見習ってほしいモンです.&lt;br /&gt;　アップデートの最後に、HDDの最適化までしてくれたりしますしねぇ.&lt;br /&gt;　とにかく、今のところ面倒な手順が不要になった＋新しいPCで快適な仕事環境です.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-83595095902053568?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/83595095902053568/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=83595095902053568' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/83595095902053568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/83595095902053568'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/04/svchostcpu.html' title='svchostがCPUを食い散らかす.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7765820742914776352</id><published>2007-04-15T17:59:00.000+09:00</published><updated>2008-12-12T05:47:21.920+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Trac'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Tracインストール手順メモ.</title><content type='html'>　と言う事で、無事TracをApache上で動かす事も出来ましたので、Tracのインストール方法（ソースベース）をメモ.&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;1. Install環境の確認.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　OS　…　Fedora Core6（Linux）&lt;br /&gt;　　　　　&lt;STRIKE&gt;Ubuntu 6.10 Desktop 日本語版（Linux）&lt;/STRIKE&gt;&lt;br /&gt;　　　　　Debian GNU/Linux 3.1 r5（Linux）&lt;br /&gt;　　※FCは必要な環境のいくつかが最初からRPMで入っているケースが多いので、&lt;br /&gt;　　　2つのディストリビューションで試してみました.&lt;br /&gt;　　※本当はUbuntuで試したかったんですが、何せCD-Rドライブがいかれている&lt;br /&gt;　　　ので諦めました orz&lt;br /&gt;&lt;br /&gt;　今回の主な環境（Python以外ソースから）&lt;br /&gt;　　・Trac　…　Trac 0.10.3.1日本語版&lt;br /&gt;　　・Webサーバ　…　Apache&lt;br /&gt;　　　　※Apacheに関しての記述を飛ばせばtracdでもOK.&lt;br /&gt;　　・データベース　…　SQLite&lt;br /&gt;　　・バージョン管理　…　Subversion&lt;br /&gt;&lt;br /&gt;　今回は以上の環境でインストールしてみます.&lt;br /&gt;　他の環境では以下のサイトが役に立つでしょう.&lt;br /&gt;&lt;br /&gt;　　【Trac全般】&lt;br /&gt;　　　・&lt;a href="http://discypus.jp/wiki/"&gt;discypus.jp&lt;/a&gt;&lt;br /&gt;　　　　※メニューの「Bug Tracking」から&lt;br /&gt;　　【Windows】&lt;br /&gt;　　　・探し中…&lt;br /&gt;　　【Linux】&lt;br /&gt;　　　・パッケージ（RPM）でインストール[導入が楽なのでオススメ]&lt;br /&gt;　　　　　・&lt;a href="http://d.hatena.ne.jp/kazf/20070401"&gt;kazfの日記&lt;/a&gt;&lt;br /&gt;　　　・&lt;a href="http://d.hatena.ne.jp/solitary_shell/20070318/1174227697"&gt;積み重ねた日々&lt;/a&gt;&lt;br /&gt;　　【その他】&lt;br /&gt;　　　・探し中…&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;2. 必要なファイルのダウンロード.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　Tracを動かす場合、以下の環境が必要になります.&lt;br /&gt;　括弧内はlightmaterialが試したバージョンです.&lt;br /&gt;　※今回はPython以外すべてソースから入れました.&lt;br /&gt;　・&lt;a href="http://www.i-act.co.jp/project/products/products.html"&gt;Trac日本語版&lt;/a&gt; [ver 0.10.3.1-ja-1]&lt;br /&gt;　・&lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; [ver 2.4.4 / 2.3.5(Debian)]&lt;br /&gt;　　　→ Pythonがデフォルトで入っていない環境を再現出来なかったので、インストール方法は割愛.&lt;br /&gt;　・&lt;a href="http://www.sqlite.org/"&gt;SQLite&lt;/a&gt; [ver 3.3.6]&lt;br /&gt;　・&lt;a href="http://www.initd.org/tracker/pysqlite/wiki/pysqlite"&gt;PySQLite&lt;/a&gt; [ver 2.3.3]&lt;br /&gt;　・&lt;a href="http://httpd.apache.org/"&gt;Apache&lt;/a&gt; [ver 2.2.4]&lt;br /&gt;　・&lt;a href="http://www.modpython.org/"&gt;mod_python&lt;/a&gt; [ver 3.3.1]&lt;br /&gt;　・&lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; [ver 1.4.3]&lt;br /&gt;　　　→ Python bindingsが有効化（導入）されている必要がある&lt;br /&gt;　・&lt;a href="http://www.clearsilver.net/"&gt;ClearSilver&lt;/a&gt; [ver 0.10.4]&lt;br /&gt;&lt;br /&gt;　次の環境はオプション.&lt;br /&gt;&lt;br /&gt;　・&lt;a href="http://peak.telecommunity.com/DevCenter/EasyInstall"&gt;setuptools&lt;/a&gt; [ver -.-.-]&lt;br /&gt;　　　→ インストールしておいた方がいいと思います.&lt;br /&gt;　・&lt;a href="http://trac.edgewall.org/wiki/WebAdmin"&gt;Trac Web Admin Plugin&lt;/a&gt; [ver 0.1.2dev_r4240]（Python2.4版）&lt;br /&gt;　　　※↑2007-05-13確認&lt;br /&gt;　　　→ trac-adminでの操作をWeb画面上から操作可能にするPlugin.&lt;br /&gt;　・&lt;a href="http://dev.rectang.com/projects/tram"&gt;TraM&lt;/a&gt; [ver 0.1]&lt;br /&gt;　　　※↑2007-06-10追記&lt;br /&gt;　　　→ 複数プロジェクトの管理をサポートするPlugin.&lt;br /&gt;&lt;br /&gt;　以下未確認オプション.&lt;br /&gt;　これからインストールしてみます.&lt;br /&gt;&lt;br /&gt;　・docutils [ver ?]&lt;br /&gt;&lt;br /&gt;　今回はこれらのファイル（未確認オプション除く）を&lt;br /&gt;　　/sources&lt;br /&gt;　以下に保存したと言う前提で書きます.&lt;br /&gt;　環境に応じ、読みかえる必要があります.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;3. Pythonをインストール.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　まぁ、大抵の環境ではPythonが既に導入されているので、このセクションは不要だと思います.&lt;br /&gt;　と言いますか、Pythonが入っていない環境を再現できませんでしたw&lt;br /&gt;　ちなみに、readmeなんかには「rpm版の場合はpython-develとpython-xmlが必要かもね」的な事が書いてありますが、python-xmlを探す事が出来ませんでした（今の所無くても問題ありませんが、何かの拍子に要求されるかも）ので、今回はメモをパス.&lt;br /&gt;&lt;br /&gt;　Pythonが導入されていれば、以下のコマンドで確認（起動）できます.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# python&lt;br /&gt;Python 2.x.x[インストールバージョン] (#1 [日付])&lt;br /&gt;[GCC [GCCバージョン]] on linux2&lt;br /&gt;Type "help". "copyright". "credits" or "license" for more information.&lt;br /&gt;&gt;&gt;&gt;&lt;/div&gt;&lt;br /&gt;　終了する場合は[Ctrl + D]で終了出来ます.&lt;br /&gt;　ちなみに「python2」でも「python2.4」でも起動出来ます.&lt;br /&gt;　おそらくpython1.x系とpython2.x系を同居させた環境の為かと思います.&lt;br /&gt;　※「python2.4」は単体ファイルですが、「python2」は「python」へのシンボリックリンクです.&lt;br /&gt;&lt;br /&gt;　ここで上手く行かない場合は…Python日本ユーザー会のサイトを確認して下さい.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;4. SQLiteをインストール.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　lightmaterialのFC6環境では、最初からRPMで入っていました.&lt;br /&gt;　何かの依存で入ったのかもしれませんが、最初から入っていたらこのセクションは不要です.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# cd /sources&lt;br /&gt;tar xvzf sqlite-3.3.15.tar.gz&lt;br /&gt;cd sqlite-3.3.15&lt;br /&gt;./configure&lt;br /&gt;make; make install&lt;/div&gt;&lt;br /&gt;　正常にインストールされていれば&lt;br /&gt;&lt;br /&gt;　sqlite3&lt;br /&gt;　または&lt;br /&gt;　/usr/bin/sqlite3&lt;br /&gt;　または&lt;br /&gt;　/usr/local/bin/sqlite3&lt;br /&gt;&lt;br /&gt;　で起動できます.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;5. PySQLiteをインストール.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　PySQLiteはPythonからSQLiteを扱えるようにするアプリケーションらしい.&lt;br /&gt;　PySQLiteをインストールするには、Pythonを使います.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# cd /sources/&lt;br /&gt;tar xvzf pysqlite-2.3.3.tar.gz&lt;br /&gt;cd pysqlite-2.3.3&lt;br /&gt;python ./setup.py install&lt;/div&gt;&lt;br /&gt;　ここで以下の様なエラーが出た場合は、yumかaptitudeで「python-devel」をインストールします.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;unable to open /usr/lib/python2.x/config/Makefile&lt;/div&gt;&lt;br /&gt;　yumは分かるとして、Debianに慣れていないので一応メモ.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# aptitude install python-dev&lt;/div&gt;&lt;br /&gt;　※rpmは「python-devel」ですが、Debianは「python-dev」&lt;br /&gt;&lt;br /&gt;　依存関係を調べてインストールしてくれます（yumも基本的に同じです）.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# yum install python-devel&lt;/div&gt;&lt;br /&gt;　リポジトリの設定によっては、yumで拾ってくれませんので、設定変更するか、自分でpython-develをダウンロードし（&lt;a href="http://linux.maruhn.com/sec/python-devel.html"&gt;この辺から&lt;/a&gt;）、rpmでインストールします.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# rpm -ihv python-devel-2.4.4-1.fc6.i386.rpm&lt;/div&gt;&lt;br /&gt;　たぶんpython-develをインストールした後は、問題なくsetup.pyでインストール出来るでしょう.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;6. Apacheをインストール.&lt;/h3&gt;&lt;br /&gt;[tracdで動かす場合は不要]&lt;br /&gt;&lt;br /&gt;　他のサイトに山ほど情報が載っていますので、次項以降も含め、今回は単にTracをテストで動かす事を目的としたインストール、設定を行います.&lt;br /&gt;　※セキュリティに関わる事も飛ばして書いていますので注意して下さい.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# cd /sources&lt;br /&gt;tar xvzf httpd-2.2.4.tar.gz&lt;br /&gt;cd httpd-2.2.4&lt;br /&gt;./configure --enable-so --with-included-apr --enable-dav&lt;br /&gt;make; make install&lt;/div&gt;&lt;br /&gt;　※WebDAVを有効にしておかないと、最終段階でエラーが出ました.&lt;br /&gt;&lt;br /&gt;　エラーが出なければ、&lt;br /&gt;&lt;br /&gt;　/usr/local/apache2/conf/httpd.conf&lt;br /&gt;&lt;br /&gt;　ファイルを標準的な内容で編集します.&lt;br /&gt;　編集後、下記コマンドで起動確認します.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# /usr/local/apache2/bin/apachectl start&lt;/div&gt;&lt;br /&gt;　ここで以下の様なエラーメッセージが出るかもしれません.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;/usr/local/apache2/bin/httpd: error while Loading shared libraries: libsqlite3.so.0: cannot open shared object file: No such file or directory&lt;/div&gt;&lt;br /&gt;　これはパスが不正でDSOモジュールとしてSQLiteが読み込めてないと言う事ですので、「libsqlite3.so.0（本体 libsqlite3.so.0.8.6）」のシンボリックリンクを「/usr/lib」に置いてあげます.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# ln -s /usr/local/lib/libsqlite3.so.0.8.6 /usr/lib/libsqlite3.so.0&lt;/div&gt;&lt;br /&gt;　Apacheを起動して何もエラーメッセージが出なければ、&lt;br /&gt;&lt;br /&gt;　http://localhost&lt;br /&gt;&lt;br /&gt;　にアクセスする事で、Apacheが起動している事を確認できるでしょう.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;7. mod_pythonをインストール.&lt;/h3&gt;&lt;br /&gt;[tracdで動かす場合は不要？ - 要確認]&lt;br /&gt;&lt;br /&gt;　Apacheが動いたら、次はmod_pythonをインストールします.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# cd /sources&lt;br /&gt;tar xvzf mod_python-3.3.1.tgz&lt;br /&gt;cd mod_python-3.3.1&lt;br /&gt;./configure --with-apxs=/usr/local/apache2/bin/apxs&lt;br /&gt;make; make install&lt;/div&gt;&lt;br /&gt;　Pythonが見付からない様であれば、「--with-python=/[path to python]」（ソースからインストールした場合のデフォルトprefixでは「--with-python=/usr/local/lib/python2.4」、RPMパッケージなら「/usr/lib/python2.4」）を指定すると上手く行くようです.&lt;br /&gt;　インストールが終わったら、Apacheの設定ファイルにmod_pythonに関する記述を追記します.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# vi /usr/local/apache2/conf/httpd.conf&lt;br /&gt;　LoadModule python_module /usr/local/apache2/modules/mod_python.so&lt;/div&gt;&lt;br /&gt;　※上記パスはmake install時にmod_pythonが以下の様に明示してくれます&lt;br /&gt;　　Now don't forget to edit your main config and add&lt;br /&gt;　　　LoadModule python_module /usr/local/apache2/modules/mod_python.so&lt;br /&gt;&lt;br /&gt;　そして、Apacheを再起動し、エラーが出ない事を確認します.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# /usr/local/apache2/bin/apachectl restart&lt;/div&gt;&lt;br /&gt;　記述内容に誤りがある場合や、正常にインストール出来ていなかった場合には、ここでエラーが出ます.&lt;br /&gt;　設定内容を見直しましょう.&lt;br /&gt;&lt;br /&gt;　次にテストファイル（*.py）を動かしてみます.&lt;br /&gt;　ここでは、日本Pythonユーザー会のサンプルに沿って（多少変更あり）設置してみます.&lt;br /&gt;　まず、Apacheの設定ファイルを編集します.&lt;br /&gt;　Apache2.2.x系ではconfigファイルを機能毎に分離する事が推奨されていますので、以下の様にmod_python用の設定ファイルを作成します.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# vi /usr/local/apache2/conf/extra/httpd-python.conf&lt;br /&gt;　＜Directory /[path to DocumentRoot]/pythontest＞&lt;br /&gt;　    AddHandler mod_python .py&lt;br /&gt;　    PythonHandler testfile&lt;br /&gt;　    PythonDebug On&lt;br /&gt;　＜/Directory＞&lt;/div&gt;&lt;br /&gt;　Apacheのhttpd.confにIncludeを追記します.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# vi /usr/local/apache2/conf/httpd.conf&lt;br /&gt;Include conf/extra/httpd-python.conf&lt;/div&gt;&lt;br /&gt;　次に、実際にテストファイルを設置します.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# mkdir /[path to DocumentRoot]/pythontest&lt;br /&gt;vi /[path to DocumentRoot]/pythontest/testfile.py&lt;br /&gt;from mod_python import apache&lt;br /&gt;&lt;br /&gt;def handler(req):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;req.write("Hello World!")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return apache.OK&lt;/div&gt;&lt;br /&gt;　※Pythonはインデントで構文を構築しています.&lt;br /&gt;　　インデント位置は保持する必要があります.&lt;br /&gt;&lt;br /&gt;　ここまで設定出来たら、実際にmod_pythonが動作しているか確認します.&lt;br /&gt;&lt;br /&gt;　http://localhost/pythontest/testfile.py&lt;br /&gt;&lt;br /&gt;　にアクセスすると、&lt;br /&gt;&lt;br /&gt;　Hello World!&lt;br /&gt;&lt;br /&gt;　と表示される事でしょう.&lt;br /&gt;　上手く動作している事が確認できたら、テストファイルは削除し、httpd.confに追記した「Include conf/extra/httpd-python.conf」をコメントアウト（または削除）します.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;8. Subversionをインストール.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　Subversionが何であるかの説明は割愛します（一言で言えばCVSの様なバージョン管理システムです）.&lt;br /&gt;　検索すると、色々と詳しい事が書いてあるサイトを見つける事が出来ますし.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# cd /sources&lt;br /&gt;tar xvzf subversion-1.4.3.tar.gz&lt;br /&gt;cd subversion-1.4.3&lt;br /&gt;./configure&lt;br /&gt;make; make install&lt;/div&gt;&lt;br /&gt;　Debianでzlibが導入されていない場合、configure時に以下の様なエラーが出ます.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;configure: error: subversion requires zlib&lt;/div&gt;&lt;br /&gt;　…&lt;STRIKE&gt;面倒なので&lt;/STRIKE&gt;時間が無いのでzlibはソースじゃなくてaptitudeでインストールしました.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# aptitude install zlib1g-dev&lt;/div&gt;&lt;br /&gt;　これで素のDebianでもconfigureが成功するかと思います.&lt;br /&gt;　以下のコマンドで、正常にインストール出来ているかを確認します.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# svn help&lt;br /&gt;…[使用方法に関してだらだらと]…&lt;/div&gt;&lt;br /&gt;　正常にインストール出来ている様であれば、Apacheが正常に起動するか確認します.&lt;br /&gt;　エラーメッセージが表示される場合は「&lt;a href="http://lightmaterial.blogspot.com/2007/03/apacheconfigurearp-util.html"&gt;Apacheのconfigure時にAPR-Utilでエラーが出る.&lt;/a&gt;」を確認.&lt;br /&gt;&lt;br /&gt;　本来、この後はリポジトリの作成、設定等々ありますが、必要最低限のみ記載します.&lt;br /&gt;&lt;br /&gt;　svnadmin create --fs-type fsfs [path to repository]&lt;br /&gt;　例として今回は&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# svnadmin create --fs-type fsfs /usr/local/svn/repos&lt;/div&gt;&lt;br /&gt;　としてリポジトリを作成してみました.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;9. Python bindingsをインストール.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　SubversionとPythonを連系させる為、SubversionのPython bindingsを導入します.&lt;br /&gt;　これは、別途ファイルを用意する必要は無く（パッケージ版は分かりませんが…）、先にダウンロードしたSubversionのソースファイルの中にあります.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# cd /sources/subversion-1.4.3&lt;br /&gt;make swig-py&lt;br /&gt;make install-swig-py&lt;/div&gt;&lt;br /&gt;　正常にインストールが完了した場合、以下のファイルが生成されています.&lt;br /&gt;&lt;br /&gt;　/usr/local/lib/svn-python&lt;br /&gt;&lt;br /&gt;　また、&lt;br /&gt;&lt;br /&gt;　/usr/lib/python2.4/site-packages/svn-python.pth&lt;br /&gt;&lt;br /&gt;　が存在するか確認し、存在しない場合は&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# echo /usr/local/lib/svn-python &gt; /usr/lib/python2.4/site-packages/svn-python.pth&lt;/div&gt;&lt;br /&gt;　としてパスを通します.&lt;br /&gt;　※↑は「&lt;a href="http://d.hatena.ne.jp/solitary_shell/20070318/1174227697"&gt;積み重ねた日々&lt;/a&gt;」を参照しました.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;10. ClearSilverをインストール.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　テンプレートエンジンらしいですが、ClearSilverについてはよく分かりません.&lt;br /&gt;　…まぁ、他のソフトウェアについても良く分かっていないんですが orz&lt;br /&gt;&lt;br /&gt;　気をとり直して&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# cd /sources&lt;br /&gt;tar xvzf clearsilver-0.10.4.tar.gz&lt;br /&gt;cd clearsilver-0.10.4&lt;br /&gt;./configure&lt;br /&gt;make; make install&lt;/div&gt;&lt;br /&gt;　Apacheのパスが見付からないとエラーが出る場合は、「--with-apache=/[path to Apache2]」と指定すると良いでしょう.&lt;br /&gt;　ただ、エラーメッセージが出なかったからと言って、ClearSilverが正常にインストールできたかどうか確認する方法をlightmaterialは知りません.&lt;br /&gt;　Tracをインストールし、正常に起動（アクセス）できたか否かで判断しています.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;11. Tracをインストール.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　ようやくTracの出番ですw&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# cd /sources&lt;br /&gt;unzip trac-0.10.3.1-ja-1.zip&lt;br /&gt;cd trac-0.10.3.1-ja-1&lt;br /&gt;python ./setup.py install&lt;/div&gt;&lt;br /&gt;　ZIP圧縮ですので、unzipが必要です.&lt;br /&gt;　これで「取り敢えずの」インストール完了.&lt;br /&gt;　と、ここでワンクッション.&lt;br /&gt;　今回、日本語版のTracをインストールした訳ですが、Trac0.10.3.1日本語版（trac-0.10.3.1-ja-1.zip）には少し問題があります.&lt;br /&gt;　trac-adminとtracdの改行コードがCrLfであると言う事です.&lt;br /&gt;　このまま起動しようとしても&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# trac-admin&lt;br /&gt;　: そのようなファイルやディレクトリはありません&lt;br /&gt;　[または日本語コンソール環境外であれば…]&lt;br /&gt;　: No such file or directory&lt;/div&gt;&lt;br /&gt;　と言うエラーが返ってきます.&lt;br /&gt;&lt;br /&gt;　なぜそうなっているのか（敢えてCrLfにしているのか、意図せずCrLfになってしまったのか）は知りませんが、下記の方法でCrLfからLf改行に変更します.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# cd path/to/trac/bin&lt;br /&gt;※デフォルトprefixで入れているなら「/usr/bin」&lt;br /&gt;tr -d "\r" &lt; trac-admin &gt; ta&lt;br /&gt;mv ta trac-admin&lt;br /&gt;tr -d "\r" &lt; tracd &gt; td&lt;br /&gt;mv td tracd&lt;/div&gt;&lt;br /&gt;　※この操作はdiscypusさんに教えていただいたものです.&lt;br /&gt;　　詳しくは↓こちらから&lt;br /&gt;&lt;br /&gt;　　&lt;a href="http://discypus.jp/wiki/?%A5%BD%A5%D5%A5%C8%2FBug%20Tracking%2Ftrac%2F%A5%E1%A5%E2#trac-0_10_3_1_ja_1"&gt;[エラー] trac-0.10.3.1-ja-1 の trac-admin, tracd の改行コードを修正&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　上記操作が終わったら、下記のコマンドで正しくインストールされたかを確認します.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# trac-admin&lt;br /&gt;　trac-admin - The Trac Administration Console 0.10.3.1&lt;br /&gt;　…[以下使用方法に関してだらだらと]…&lt;/div&gt;&lt;br /&gt;　ここまで来たら後一歩です.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;12. Tracの設定.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　Tracを動作させる為の各種設定を行います.&lt;br /&gt;&lt;br /&gt;　まず、Trac用のディレクトリを作成します.&lt;br /&gt;　これは好みのパスで問題無いでしょう（ApacheのDocumentRoot配下除く）.&lt;br /&gt;　今回は「testprj」と言うプロジェクト用のディレクトリも含め、&lt;br /&gt;&lt;br /&gt;　/usr/local/trac/testprj&lt;br /&gt;&lt;br /&gt;　と言うディレクトリを作成してみます（「/var/trac」などでもいいと思います）.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# mkdir -p /usr/local/trac/testprj&lt;/div&gt;&lt;br /&gt;　作成したディレクトリに、Trac用のファイルを作成します.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# trac-admin /usr/local/trac/testprj initenv&lt;br /&gt;&lt;br /&gt;　# 以下、「＞」の右側はテストで作成した環境.&lt;br /&gt;　# 空白の場合はデフォルト値（そのままEnter）&lt;br /&gt;　Project Name [My Project]＞ Test Project&lt;br /&gt;　Database connection string [sqlite:db/trac.db]＞ &lt;br /&gt;　Repository type [svn]＞ &lt;br /&gt;　Path to repository [/path/to/repos]＞ /usr/local/svn/repos&lt;br /&gt;　Templates directory [/usr/share/trac/templates]＞ &lt;/div&gt;&lt;br /&gt;　作成した後は、Apacheから操作出来る様に、所有者を変更してあげます.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# chown -R [apacheユーザー]:[apacheグループ] /usr/local/trac/testprj&lt;/div&gt;&lt;br /&gt;　尚、Tracのドキュメントによると、ここでSELinuxが有効になっている環境では、許可設定を変更してあげる必要があるとの事です（が、何故かlightmaterialの環境ではSELinuxを有効にしているにも関わらず、特にPermissionエラーは出ませんでした）.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# chcon -R -h -t httpd_sys_content_t PATH_TO_REPOSITORY&lt;/div&gt;&lt;br /&gt;　次にApacheのTrac用設定を行います（tracdで動かす場合は不要です）.&lt;br /&gt;　Apache2.2.x系ではconfigファイルを機能毎に分離する事が推奨されていますので、以下の様にTrac用の設定ファイルを作成します.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# vi /usr/local/apache2/conf/extra/httpd-trac.conf&lt;br /&gt;　＜Location /trac＞&lt;br /&gt;　    SetHandler mod_python&lt;br /&gt;　    PythonHandler trac.web.modpython_frontend&lt;br /&gt;　    PythonOption TracEnvParentDir /usr/local/trac&lt;br /&gt;　    PythonOption TracUriRoot /trac&lt;br /&gt;　＜/Location＞&lt;br /&gt;　# 以下はパスワード制限する場合に必要.&lt;br /&gt;　＜LocationMatch "/trac/[^/]+/login"＞&lt;br /&gt;　    AuthType Basic&lt;br /&gt;　    AuthName "TEST"&lt;br /&gt;　    AuthUserFile /usr/local/trac/.htpasswd&lt;br /&gt;　    Require valid-user&lt;br /&gt;　＜/LocationMatch＞&lt;/div&gt;&lt;br /&gt;　Trac用の設定ファイルを作成したら、その設定ファイルをhttpd.conf本体からインクルードする為の記述を追記します.&lt;br /&gt;&lt;br /&gt;　Include extra/httpd-trac.conf&lt;br /&gt;　※適当な場所に記述します.分かり易く、他の設定ファイルをIncludeしている場所の前後に書く方が良いかと思います.&lt;br /&gt;&lt;br /&gt;　そしてApacheを再起動.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# /usr/local/apache2/bin/apachectl restart&lt;/div&gt;&lt;br /&gt;　エラーが出なければ無事Tracの設定は完了です.&lt;br /&gt;&lt;br /&gt;　tracdで動かすなら&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# tracd --port [適切なポート] /usr/local/trac/testprj&lt;/div&gt;&lt;br /&gt;　でtracdを起動します.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;13. オプション機能をインストール.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　必要に応じて、オプション機能をインストールします.&lt;br /&gt;&lt;br /&gt;　・setuptools&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# cd /sources&lt;br /&gt;python ez_setup.py&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　・Trac Web Admin Plugin&lt;br /&gt;　　　2007-05-13別記しました.&lt;br /&gt;　　　→「&lt;a href="http://lightmaterial.blogspot.com/2007/05/trac-web-admin-plugin.html"&gt;Trac Web Admin Pluginを入れてみた.&lt;/a&gt;」&lt;br /&gt;&lt;br /&gt;　・TraM&lt;br /&gt;　　　2007-06-10別記しました.&lt;br /&gt;　　　→「&lt;a href="http://lightmaterial.blogspot.com/2007/06/tracplugin-tram.html"&gt;Tracのマルチプロジェクト管理用Plugin - TraM.&lt;/a&gt;」&lt;br /&gt;&lt;br /&gt;　@todo 他のオプション機能については、これから調査.&lt;br /&gt;&lt;br /&gt;　これでやっと全ての準備が整いました！！！&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;14. Tracを使う.&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;　Apacheなら&lt;br /&gt;　　http://localhost/trac/testprj&lt;br /&gt;　へアクセス.&lt;br /&gt;　tracdなら&lt;br /&gt;　　http://localhost:[適切なポート]/trac/testprj&lt;br /&gt;　へアクセスしてみると…&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kri9yIsnLbE/RiHzs88RtTI/AAAAAAAAAFE/8m_U2QgCTlQ/s1600-h/trac001.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kri9yIsnLbE/RiHzs88RtTI/AAAAAAAAAFE/8m_U2QgCTlQ/s320/trac001.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5053588210485146930" /&gt;&lt;/a&gt;&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;　これまでの道のりで誤りがなければTracの素敵な画面が表示されます！&lt;br /&gt;　Debianの場合、Python上の日本語エンコードの問題で、以下のエラーが発生するかもしれません.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;LookupError: unknown encoding: EUC-JP&lt;/div&gt;&lt;br /&gt;　この場合、コーデックを入れる必要があります.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# aptitude install python2.3-japanese-codecs&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　後は必要に応じてtracのプロジェクト個別設定ファイル&lt;br /&gt;&lt;br /&gt;　/[path to trac project]/conf/trac.ini&lt;br /&gt;　例では&lt;br /&gt;　/usr/local/trac/testprj/conf/trac.ini&lt;br /&gt;&lt;br /&gt;　を編集するだけです.&lt;br /&gt;&lt;br /&gt;　もしここまででエラーが出たら…どこかの設定やインストールが上手く行っていません orz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　Pythonのエラーメッセージが表示されるのであれば、ApacheのTrac用設定に誤りがある可能性が高いかと思います（ただし、Pythonのエラーメッセージ中にPermission〜とエラーが出ていたら、許可設定、権限設定の問題です）.&lt;br /&gt;　単にファイル構成がリストアップされた画面になった場合も（Apacheの設定でIndexesを無効にしていたら出ませんが）、ApacheのTrac用設定（と言うか、Pythoの設定ですが）に誤りがある可能性があります.&lt;br /&gt;&lt;br /&gt;　lightmaterialが引っかかったのは、trac-adminの改行コード問題と、ApacheのTrac用設定くらいでしたので、それ以外のトラブルについては分かりませんが、検索すると色々出てきそうな気はします.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　それにしても、本当に挫けそうなほど導入が煩雑です.&lt;br /&gt;　ここまで書いておいて何ですが、&lt;font style="color: #ff0000; font-weight: bold; font-size: 12pt"&gt;正直パッケージで導入する方が数段賢い&lt;/font&gt;ですw&lt;br /&gt;　少なくとも、私はソースで導入して「なんて馬鹿な事をしてしまったんだぁぁぁぁ〜〜！！！ orz」と思いました、はい.&lt;br /&gt;&lt;br /&gt;　今日はblog書く事自体に疲れました orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7765820742914776352?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7765820742914776352/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7765820742914776352' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7765820742914776352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7765820742914776352'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/04/trac_15.html' title='Tracインストール手順メモ.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kri9yIsnLbE/RiHzs88RtTI/AAAAAAAAAFE/8m_U2QgCTlQ/s72-c/trac001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-2020587878460299486</id><published>2007-04-15T09:18:00.000+09:00</published><updated>2007-04-15T10:49:07.538+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Debianがエラーでインストール出来ない.</title><content type='html'>/**&lt;br /&gt;&amp;nbsp;* 2007-04-15 10:47 追記&lt;br /&gt;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;* どうやら、私が何も知らないでやっていたのが悪かった様で.&lt;br /&gt;&amp;nbsp;* 「APTの設定」で「手動で設定」を選び、&lt;br /&gt;&amp;nbsp;*   deb ftp://ftp.jp.debian.org/debian sarge main contrib non-free&lt;br /&gt;&amp;nbsp;* とsarge（Debian3.1）を明示的に指定、その後推奨されるセキュリティ&lt;br /&gt;&amp;nbsp;* アップデートを「キャンセル」する事でインストールを続行出来ました.&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　OS入れ替えた時の為にTracのインストールメモをまとめようと思い、古いPC（Pen3 550MHzですw）をひっぱり出してDebian GNU/Linuxをインストール中です.&lt;br /&gt;　本当はUbuntuを入れてみたかったんですが、何しろCD-Rドライブが壊れてやがりますので諦めました orz&lt;br /&gt;&lt;br /&gt;　以前も会社でインストールしましたので（すぐ削除しましたが）、特にとまどう事も無く……と行きたかったのですが問題にぶちあたりました.&lt;br /&gt;　ベースシステムの設定・インストール（ネット経由）でエラーが発生します.&lt;br /&gt;　途中でKernelイメージを置き換えると言う様なメッセージが表示され（強制）、置き換える前のイメージを削除するか否かの選択メッセージが.&lt;br /&gt;　ここは残しても削除しても同じで、結局その直後に依存関係エラーで先に進めず.&lt;br /&gt;　うーん…&lt;br /&gt;&lt;br /&gt;　Debian 4.0がリリースされた（2007/04/08）関係でしょうか？？&lt;br /&gt;　手元にあるCDがVer3.1 r5用のネットインストールCDですので、サーバー上のファイルと整合性が取れなくなっているとか？&lt;br /&gt;&lt;br /&gt;　どちらにしても、今日はDebianを触る気満々だったので、かなーりショックです orz&lt;br /&gt;&lt;br /&gt;　取り敢えずTracをApache上で動作させる事も出来ましたので、Tracいじりつつ車の洗車でもするかなぁ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-2020587878460299486?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/2020587878460299486/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=2020587878460299486' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2020587878460299486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/2020587878460299486'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/04/debian.html' title='Debianがエラーでインストール出来ない.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-4327078883374492477</id><published>2007-04-08T21:37:00.000+09:00</published><updated>2008-12-12T05:47:22.135+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Trac'/><title type='text'>Tracを動かしてみた.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kri9yIsnLbE/Rhjldj2KjHI/AAAAAAAAAE4/BjZdjuxHHrk/s1600-h/Screenshot2b.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_kri9yIsnLbE/Rhjldj2KjHI/AAAAAAAAAE4/BjZdjuxHHrk/s320/Screenshot2b.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5051039278097402994" /&gt;&lt;/a&gt;　と言ってもtracd（Tracに付属するhttpサーバ）で動かすと言う姑息な手段ですw&lt;div style="clear:both"&gt;&lt;/div&gt;&lt;br /&gt;　tracdで&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# tracd --port [適切なポート番号] /var/www/html/trac&lt;/div&gt;&lt;br /&gt;　として動かしてみました.&lt;br /&gt;　※今更ながら気付きましたが、正直Trac用のディレクトリ作成パスが不正です orz&lt;br /&gt;　　何故なら、今のパス設定だと設定ファイルが丸見えだからw&lt;br /&gt;&lt;br /&gt;　Apacheでやるとまだ上手く動きませんので、もう少し設定なり環境（パス等含む）を見直す必要がありますが、それでもTracを動かすのも夢物語では無くなりました.&lt;br /&gt;&lt;br /&gt;　軽く各機能を見てみましたが…これは良い！！&lt;br /&gt;　素晴らしいです.&lt;br /&gt;　これだけ充実した環境だと、プロジェクト把握が容易に出来ると思われます.&lt;br /&gt;　そりゃ、これだけ動かす条件が多いのにも関わらず使う人が居る訳ですね.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　因みに、先ほどdiscypusさんのサイトを覗いてみたら、改行コード問題について更に詳細に書いてありました.&lt;br /&gt;　有り難や有り難や.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://discypus.jp/wiki/?%A5%BD%A5%D5%A5%C8%2FBug%20Tracking%2Ftrac%2F%A5%E1%A5%E2#trac-0_10_3_1_ja_1"&gt;[エラー] trac-0.10.3.1-ja-1 の trac-admin, tracd の改行コードを修正&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-4327078883374492477?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/4327078883374492477/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=4327078883374492477' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4327078883374492477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/4327078883374492477'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/04/trac.html' title='Tracを動かしてみた.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kri9yIsnLbE/Rhjldj2KjHI/AAAAAAAAAE4/BjZdjuxHHrk/s72-c/Screenshot2b.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-231527472336434707</id><published>2007-04-08T15:08:00.000+09:00</published><updated>2007-12-25T19:41:14.532+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DirectoryService'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>ActiveDirectoryのポリシーを反映させる.</title><content type='html'>　備忘.&lt;br /&gt;&lt;br /&gt;　先日、仕事でActiveDirectory環境（サーバーはWin2003Server）を触る機会があったのですが、ActiveDirectoryの管理ツールでポリシーを変更しても、クライアントではすぐには情報が反映されません.&lt;br /&gt;　と言う事で&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;C:\&gt; gpupdate&lt;/div&gt;&lt;br /&gt;　このコマンドで強制的に適用してやって解決しました.&lt;br /&gt;&lt;br /&gt;　ただ、このコマンドで情報が更新されるのはポリシー周りだけの様で、ユーザー名（IDでは無く表示名）やOutlookのアドレス帳には効果がありませんでした.&lt;br /&gt;　この辺の情報は30分くらい間あけてログオフ→ログオンすれば適用されましたが、強制的に適用させるコマンドが無いか調べてみる予定.&lt;br /&gt;// 2007-12-25 追記. 「Force」オプション付けて再起動したらすぐに適用されるのかもしれません（未確認）.&lt;br /&gt;&lt;br /&gt;　それにしても、ディレクトリサービスってやっぱり便利.&lt;br /&gt;　今度&lt;a href="http://www.openldap.org/"&gt;OpenLDAP&lt;/a&gt;サーバー（slapd）でも突っ込んで遊んでみようかと妄想中.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-231527472336434707?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/231527472336434707/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=231527472336434707' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/231527472336434707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/231527472336434707'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/04/activedirectory.html' title='ActiveDirectoryのポリシーを反映させる.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-768047237504434233</id><published>2007-04-08T14:06:00.000+09:00</published><updated>2008-12-12T05:47:22.345+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>動かないAdobeReader for Linux（on FC6）.</title><content type='html'>　先ほど仕事の関係上、某PDFマニュアルをダウンロードして確認していました.&lt;br /&gt;　…何が悲しくて、休みの日に仕事用のファイルを確認してるんだか orz&lt;br /&gt;&lt;br /&gt;　と言う話は置いておき、Fedora Core6（と言うかGnomeかな？）にはEvinceと言うPostScript/PDFビューアがあるので、それを使って閲覧していましたが、動作が軽い代わりに膨大なページ数のPDFを閲覧するには向いてない様なので、本家AdobeReaderをダウンロードする事に.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://www.adobe.com/jp/products/acrobat/readstep2.html"&gt;Adobe Reader&lt;/a&gt;&lt;br /&gt;　※OS自動認識ページなので、Windowsで開いたらWindows用のダウンロードページになります&lt;br /&gt;&lt;br /&gt;　ご丁寧にrpm版まで用意されています.&lt;br /&gt;　さっさと仕事の用事を済ませたかったので、迷わずrpm版をダウンロードしてインストール.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# rpm -ihv AdobeReader_jpn-7.0.9-1.i386.rpm&lt;/div&gt;&lt;br /&gt;　ここまでは依存で引っかかる事も無く、何の問題も無し.&lt;br /&gt;　そして早速インストールしたAdobeReaderでPDFを表示…ん？…ひょう…起動しないし orz&lt;br /&gt;　まったくうんともすんとも言いません.&lt;br /&gt;　それどころか、ずーっとCPU使用率100%の状態ですw&lt;br /&gt;　なんじゃそりゃ？と思いつつ、偶然固まったのかとプロセスをkillして再度Reader起動…はい、だめ〜 orz&lt;br /&gt;&lt;br /&gt;　うーん、何だろう？&lt;br /&gt;　GUI上から起動してるので、何らかのエラーが出てても気付かないだけかも、と思い、コンソールから起動してみると&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# /usr/bin/acroread&lt;br /&gt;expr: syntax error&lt;br /&gt;expr: syntax error&lt;br /&gt;expr: syntax error&lt;br /&gt;…[延々と続くエラー]…&lt;/div&gt;&lt;br /&gt;　なんじゃそりゃw&lt;br /&gt;　どっかおかしい様です.&lt;br /&gt;　が、どこでエラー出てるのかすら表示してくれてませんし、acroread（スクリプトファイル）を開いてみても、膨大な記述量なので、自力で原因を突き止めるのは不可能.&lt;br /&gt;&lt;br /&gt;　仕方ないので100%他力本願で調べてみると↓こんなページを発見.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://ubuntuforums.org/archive/index.php/t-221769.html"&gt;http://ubuntuforums.org/archive/index.php/t-221769.html&lt;/a&gt;&lt;br /&gt;　※Ubuntu Linuxのフォーラム&lt;br /&gt;&lt;br /&gt;　そこにこんな記述がありました.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;&lt;br /&gt;[上記フォーラムより抜粋]&lt;br /&gt;Change line 421 in /usr/bin/acroread:&lt;br /&gt;# ↑日本語版7.0.9の場合597行目&lt;br /&gt;old:&lt;br /&gt;&lt;br /&gt;echo $mfile| sed 's/libgtk-x11-\([0-9]*\).0.so.0.\([0-9]\)00.\([0-9]*\)\|\(.*\)/\1\2\3/g'&lt;br /&gt;&lt;br /&gt;new:&lt;br /&gt;&lt;br /&gt;echo $mfile| sed 's/libgtk-x11-\([0-9]*\).0.so.0.\([0-9]\)000.\([0-9]*\)\|\(.*\)/\1\2\3/g'&lt;/div&gt;&lt;br /&gt;　GTK周りのファイル命名規則と正規表現に相違があるらしい.&lt;br /&gt;　書いてある通りファイルを編集し、再度AdobeReaderを起動してみると&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kri9yIsnLbE/RhiAyT2KjFI/AAAAAAAAAEo/ndZdmX622RY/s1600-h/Screenshot5b.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_kri9yIsnLbE/RhiAyT2KjFI/AAAAAAAAAEo/ndZdmX622RY/s320/Screenshot5b.png" alt="" id="BLOGGER_PHOTO_ID_5050928583905283154" border="0" /&gt;&lt;/a&gt;　まるで何事もなかったかのように無事起動！&lt;br /&gt;&lt;br /&gt;　ただ、Ver7.0.9のrpmでインストールしたはずなのに、何故かバージョンが7.0.8と表記されているのは疑問ですがw&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-768047237504434233?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/768047237504434233/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=768047237504434233' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/768047237504434233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/768047237504434233'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/04/adobereader-for-linuxon-fc6.html' title='動かないAdobeReader for Linux（on FC6）.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kri9yIsnLbE/RhiAyT2KjFI/AAAAAAAAAEo/ndZdmX622RY/s72-c/Screenshot5b.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-207671346271119804</id><published>2007-04-08T14:00:00.000+09:00</published><updated>2007-04-08T14:06:21.147+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='このblogについて'/><title type='text'>Bloggerのコメント設定</title><content type='html'>　どうやらBloggerの設定で、コメントの公開方法を変にしていたらしい.&lt;br /&gt;　Bloggerではコメントの設定画面で「コメントの管理を有効にしますか?」と言う項目があるのですが、lightmaterialは何も考えず「はい」を選択していました.&lt;br /&gt;　んが、どうやらここを「はい」にしていると、blog管理者が管理画面で「コメントの許可」をしないとコメントが表示されないらしい orz&lt;br /&gt;&lt;br /&gt;　なんだかなぁ…まぁ、「管理」と言う言葉の意味を深く考えなかった私が悪いと言う事ですね、はい.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-207671346271119804?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/207671346271119804/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=207671346271119804' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/207671346271119804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/207671346271119804'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/04/blogger.html' title='Bloggerのコメント設定'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-966426503539594426</id><published>2007-04-08T13:45:00.000+09:00</published><updated>2007-04-08T13:59:41.464+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Trac'/><title type='text'>動いたtrac-admin.</title><content type='html'>　先日（と言っても、私の場合週末しかblog管理していませんので、先週の話ですが orz）書いた&lt;a href="http://lightmaterial.blogspot.com/2007/04/by-trac-admin.html"&gt;trac-adminが動かない問題&lt;/a&gt;、lightmaterialが参考にさせてもらったdiscypus.jpの管理人さんと思われる方から、そのものズバリの情報をコメントに頂いて、早速試した所サクッと動きました！！&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# /usr/bin/trac-admin&lt;br /&gt;&lt;br /&gt;trac-admin - The Trac Administration Console 0.10.3.1&lt;br /&gt;…[以下コマンドリファレンスがズラズラと]…&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　discypusさんのご指摘では、どうやら本来Lf改行になっているべきコード（trac-admin/tracd）がCrLf（要するにSjis用改行）になっていたらしい.&lt;br /&gt;&lt;br /&gt;　詳しくは↓こちらを参照.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://discypus.jp/wiki/?%A5%BD%A5%D5%A5%C8%2FBug%20Tracking%2Ftrac%2F%A5%E1%A5%E2#trac-0_10_3_1_ja_1"&gt;trac-0.10.3.1-ja-1 の trac-admin, tracd の改行コードを修正&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　と言うか、上の記事の投稿日が「2007-03-15」になってると言う事は、discypusさんのサイトをくまなく読んでいれば、さっさと問題を解決出来たって事ですね orz&lt;br /&gt;&lt;br /&gt;　とにかく、神の一言で最低限の部分が動くようになったので、他の所でも引っかからないか確認しつつ設定してみます.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-966426503539594426?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/966426503539594426/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=966426503539594426' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/966426503539594426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/966426503539594426'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/04/trac-admin.html' title='動いたtrac-admin.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-7645158628642823641</id><published>2007-04-01T16:49:00.000+09:00</published><updated>2007-04-08T22:17:59.677+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Trac'/><title type='text'>そのようなファイルやディレクトリはありません by trac-admin</title><content type='html'>/**&lt;br /&gt; * 2007-04-08 22:18 追記.&lt;br /&gt; * この問題は神の一言で解決しました.&lt;br /&gt; * 詳しくは「&lt;a href="http://lightmaterial.blogspot.com/2007/04/trac-admin.html"&gt;こちら&lt;/a&gt;」&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　はい、全然駄目ぇ〜 orz&lt;br /&gt;&lt;br /&gt;　一通り以下のようにインストールしてみましたが、trac-adminが動いてくれません.&lt;br /&gt;&lt;br /&gt;　　・mod_python　…　ソース&lt;br /&gt;　　・trac　…　日本語版ソース&lt;br /&gt;　　・ClearSilver　…　ソース&lt;br /&gt;　　・PySQLite　…　ソース&lt;br /&gt;　　・Subversion Python binding　…　ソース（と言うかsubversionのソースから）&lt;br /&gt;&lt;br /&gt;　ソースでインストールする時に何か設定が変だったのか、関連ソフトウェアなりライブラリなりが不足しているのか…&lt;br /&gt;&lt;br /&gt;　ためしに以下のようにコマンドを打ってみると…&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# trac-admin /var/www/html/trac initenv&lt;br /&gt;&lt;br /&gt;: そのようなファイルやディレクトリはありません&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　と来たもんだ orz&lt;br /&gt;&lt;br /&gt;　普通、コロンの前に対象のファイル名が記載されて「○○と言うファイルなんてありませんよー」と教えてくれる訳ですが、そのファイル名が空で表示されています.&lt;br /&gt;　と言う事は、trac-adminに記述されている変数なり環境変数に値が入っていないと言う事か？と思い、trac-adminの中身を覗いてみるも、当然の如くPythonで記述されているのでイマイチ意味が分かりません orz&lt;br /&gt;&lt;br /&gt;　import sys&lt;br /&gt;&lt;br /&gt;　このあたりが悪いのかなぁ？&lt;br /&gt;　今からパッケージでインストールするとなると、ソースでインストールしたファイル全部削除すると言う大仕事になっちゃうしなぁ…せめてmake uninstallに対応していれば…と試すも全滅.&lt;br /&gt;　Tracを動かすのはまだまだ先の話になりそうです orz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-7645158628642823641?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/7645158628642823641/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=7645158628642823641' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7645158628642823641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/7645158628642823641'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/04/by-trac-admin.html' title='そのようなファイルやディレクトリはありません by trac-admin'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-8396219124498035664</id><published>2007-04-01T12:32:00.000+09:00</published><updated>2007-04-08T22:14:52.248+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>問答無用で固まるPC（FC6）.</title><content type='html'>　どうやら、昨日誤ってKernelも自動アップデートしてしまったらしい.&lt;br /&gt;　それが原因なのか、はたまた偶然のタイミングなのか、今朝からFC6と言うかPCが何度も固まってます.&lt;br /&gt;&lt;br /&gt;　バチコーンと何の前触れもなく、綺麗に固まります.&lt;br /&gt;　まるで、そこだけ時が止まってしまったかのように…&lt;br /&gt;&lt;br /&gt;　一切の行動も信号も受付やしませんので、先ほどから3回ほど強制リセットをかける始末 orz&lt;br /&gt;&lt;br /&gt;　おかしいと思ってGrubでブートするKernelを見てみたら、見慣れないKernelバージョンがリストアップされていました…ああ、そう言えば昨日のパッケージアップデータ…やけに時間かかってたよなぁ…OpenOfficeのせいかと思ってたらKernelまでバージョンアップしちゃったかなぁ…酒飲んでバージョンアップなんてするもんじゃ無いなぁ… orz&lt;br /&gt;&lt;br /&gt;　まぁ、まだこれが原因とは限りませんが、今のところ最有力候補.&lt;br /&gt;　ただこのPC、もともと怪しいハードで組んであって、そこが原因かも知れない（とは言え、CentOSの時も含めて、固まった事なんて無かった様な気がします…）ので、しばらくはKernelを戻して様子を見る事に.&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * 2007-04-08 22:09 追記.&lt;br /&gt; */&lt;br /&gt;　一応書いておいた方がいいかな…&lt;br /&gt;　デフォルトで起動するKernelを変更するには&lt;br /&gt;&lt;br /&gt;　/boot/grub/menu.lst&lt;br /&gt;　か&lt;br /&gt;　/boot/grub/grub.conf&lt;br /&gt;　を編集します.&lt;br /&gt;　※grub.confがある場合は、大抵menu.lstはgrub.confのシンボリックリンクになっているはずです&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;# grub.conf generated by anaconda&lt;br /&gt;#&lt;br /&gt;# Note that you do not have to rerun grub after making changes to this file&lt;br /&gt;# NOTICE:  You have a /boot partition.  This means that&lt;br /&gt;#          all kernel and initrd paths are relative to /boot/, eg.&lt;br /&gt;#          root (hd0,0)&lt;br /&gt;#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00&lt;br /&gt;#          initrd /initrd-version.img&lt;br /&gt;#boot=/dev/hda&lt;br /&gt;default=0&lt;br /&gt;# ↑ここの数字を以下のリストの順番に沿って、希望の番号に変える&lt;br /&gt;&lt;br /&gt;timeout=5&lt;br /&gt;splashimage=(hd0,0)/grub/splash.xpm.gz&lt;br /&gt;hiddenmenu&lt;br /&gt;&lt;br /&gt;# ↓このファイル例で言えばここが「default=0」&lt;br /&gt;title Fedora Core (2.6.20-1.2933.fc6xen)&lt;br /&gt;        root (hd0,0)&lt;br /&gt;        kernel /xen.gz-2.6.20-1.2933.fc6&lt;br /&gt;        module /vmlinuz-2.6.20-1.2933.fc6xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet&lt;br /&gt;        module /initrd-2.6.20-1.2933.fc6xen.img&lt;br /&gt;&lt;br /&gt;# ↓このファイル例で言えば、ここが「default=1」&lt;br /&gt;title Fedora Core (2.6.19-1.2911.6.5.fc6xen)&lt;br /&gt;        root (hd0,0)&lt;br /&gt;        kernel /xen.gz-2.6.19-1.2911.6.5.fc6&lt;br /&gt;        module /vmlinuz-2.6.19-1.2911.6.5.fc6xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet&lt;br /&gt;        module /initrd-2.6.19-1.2911.6.5.fc6xen.img&lt;/div&gt;&lt;br /&gt;　※あくまでも上記記述内容は例です. 環境によってまったく内容が異なりますが、基本的に上から「default=」0〜と言う順番になります&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6730181980158564519-8396219124498035664?l=lightmaterial.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lightmaterial.blogspot.com/feeds/8396219124498035664/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6730181980158564519&amp;postID=8396219124498035664' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8396219124498035664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6730181980158564519/posts/default/8396219124498035664'/><link rel='alternate' type='text/html' href='http://lightmaterial.blogspot.com/2007/04/pcfc6.html' title='問答無用で固まるPC（FC6）.'/><author><name>lightmaterial</name><uri>http://www.blogger.com/profile/16167866997732234601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6730181980158564519.post-6900303272407198173</id><published>2007-04-01T00:26:00.000+09:00</published><updated>2007-04-01T01:39:21.808+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Trac'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>mod_python.</title><content type='html'>　先ほど書いたように、Tracをインストールする事前準備として、Apacheのモジュールに「mod_python」が必要との事でしたが、lightmaterialはApacheをソースから入れている為か標準ではmod_pythonが入っていませんでした.&lt;br /&gt;　と言う事で、mod_pythonをインストール.&lt;br /&gt;&lt;br /&gt;　mod_pythonは名前の通りPythonをApache上で動作させる為のモジュールです.&lt;br /&gt;　また、詳しくは調べていませんが、最近のバージョンからDSO（Dynamic Shared Objects）のみ対応してるらしいので、Apacheのコンパイル時には「--enable-so」か「--enable-shared」オプションを付ける必要がありそうです（先日書きましたが、「--enable-shared」はconfigureヘルプには出てきませんが、知人の話によると、どうやらApacheではconfigureヘルプには出ないオプションが複数あるようで、「--enable-shared」もその一つらしい）.&lt;br /&gt;　じゃぁ、Pythonって何さ？と言うと、lightmaterialの薄い知識ではインタープリターなプログラム言語と言う程度しか知りません（Python自体を動かすのにApacheもmod_pythonも必要ありません）.&lt;br /&gt;　この機会に、「Pythonって何さ？」と言う事も調べてみようかと思いました（詳しくは後述）.&lt;br /&gt;&lt;br /&gt;　取り敢えず、最終目的のTracをインストールするためには、兎にも角にもこのmod_pythonをインストールしなければいけませんので、まず本家からmod_pythonをダウンロードします.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://www.modpython.org/"&gt;mod_python&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　次にインストールですが、この工程には「日本Pythonユーザー会」のページが役立つでしょう.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://www.python.jp/Zope/"&gt;日本Pythonユーザー会&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　ついでにプログラム言語「Python」についても、少々知識を仕入れました.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 10px;"&gt;[日本Pythonユーザー会から抜粋]&lt;br /&gt;Python の開発は、1990 年ごろから開始されています。開発者の Guido van Rossum は教育用のプログラミング言語「ABC」の開発に参加していましたが、ABC は実用上の目的にはあまり適していませんでした。このため、Guido はより実用的なプログラミング言語の開発を開始し、英国 BBC 放送のコメディ番組「モンティ パイソン」のファンである Guido はこの言語を「Python」と名づけました。&lt;/div&gt;&lt;br /&gt;　ふーん.&lt;br /&gt;　なるほどなるほど.&lt;br /&gt;　このサイトの説明によれば、オブジェクト指向かつ学習が容易で、その開発範囲はゲームからインストーラ（インストーラの一部にPythonが使われているのは知っていました）、はたまたサーバーアプリケーションまで様々な分野に及ぶそうです.&lt;br /&gt;　もっと早く知っていれば（と言うか、調べようとしなかった私が悪い orz）、lightmaterialが使える言語リストに、この「Python」が入っていたかもしれません.&lt;br /&gt;　今はJavaを覚えようと模索中なので、これからいきなり「Python覚えます！」とはいきませんけど.&lt;br /&gt;&lt;br /&gt;　とにかく、そんなPythonをApache上（要するにWebアプリケーションとして）で動作させるのがmod_pythonな訳ですね.&lt;br /&gt;　なんとなくPythonの概要が見えてきました.&lt;br /&gt;&lt;br /&gt;　そこまで確認した所で、今回の目的であるmod_pythonについて、「mod_pythonマニュアル」が親切にも日本語化されて置いてある事を知りましたので、このマニュアルに従ってインストールしてみる事に.&lt;br /&gt;&lt;br /&gt;　&lt;a href="http://www.python.jp/doc/contrib/modpython/"&gt;mod_pythonマニュアル&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;ファイル展開.&lt;/h3&gt;&lt;br /&gt;　本家サイトからダウンロードしたファイルを展開します.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# tar xvzf mod_python-3.3.1.tgz&lt;br /&gt;[??@fedora]# cd mod_python-3.3.1&lt;/div&gt;&lt;br /&gt;　いつもどおり展開して、展開後のディレクトリに入りました.&lt;br /&gt;　今回はマニュアルもあるし、すんなりいきそうです.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;configure.&lt;/h3&gt;&lt;br /&gt;　Apacheをソースから入れている都合上、一応Apache（apxs）パスの指定オプションを付けてconfigureしてみました.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# ./configure --with-apxs=/usr/local/apache2/bin/apxs&lt;/div&gt;&lt;br /&gt;　Apacheをデフォルトのprefixで入れている場合は、指定しなくても行けるかもしれません（？）&lt;br /&gt;　何事も無く終了…あっけない.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;make.&lt;/h3&gt;&lt;br /&gt;　これまたいつも通り、make/make installします.&lt;br /&gt;　普通です.&lt;br /&gt;　すごい普通ですw&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# make; make install&lt;/div&gt;&lt;br /&gt;　エラーも出ず、正常にインストール完了.&lt;br /&gt;　後はApacheのconfファイルに、mod_pythonの設定を追記しないといけません.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 style="border: 1px solid rgb(220, 220, 220); padding: 5px 10px;"&gt;Apacheの設定.&lt;/h3&gt;&lt;br /&gt;　confファイルに次の通り追記します.&lt;br /&gt;&lt;div style="border: 1px solid rgb(220, 220, 220); margin: 0pt 15px; padding: 5px; background: rgb(0, 0, 0) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(255, 255, 255);"&gt;[??@fedora]# vi /usr/local/apache2/conf/httpd.conf&lt;br /&gt;&lt;br /&gt;LoadModule python_module /usr/local/apache2/modules/mod_python.so&lt;/div&gt;&lt;br /&gt;　lightmaterialは、分かり易いようにphp_moduleやdav_svn_moduleの下に追記しておきました.&lt;br /&gt;　ここまでは、いつになくスムーズにインストールが出来たのですが、ここからが良く分かりません orz&lt;br /&gt;&lt;br /&gt;　マニュアルによると、.htaccessなりhttpd.conf（対象ディレクトリの設定＜Directory＞項目）にAddHandlerと「PythonHandler」を追記する必要があるとの事ですが…「PythonHandler」って何？w&lt;br /&gt;　AddHandlerはcgiを使う際に記述するのと同様に、Pythonのソースファイルである「.py」について記述します.&lt;br /&gt;&lt;br /&gt;　AddHandler mod_python .py&lt;br /&gt;&lt;br /&gt;　そして意味の分からない以下の記述を追記.&lt;br /&gt;&lt;br /&gt;　PythonHandler mptest&lt;br /&gt;　Pyth
