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

<channel>
	<title>メール人語 &#187; システム開発</title>
	<atom:link href="http://blog.itoy.jp/category/develop/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.itoy.jp</link>
	<description>自称ITエンジニアのライフログ。Web系システムの開発/運用のかたわら、iPhone、QRコード、B級食品、何でも手を出します。</description>
	<lastBuildDate>Sat, 31 Dec 2011 15:28:30 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.itoy.jp/category/develop/feed" />
		<item>
		<title>モテるシステム障害対応って？</title>
		<link>http://blog.itoy.jp/develop/restoration.html</link>
		<comments>http://blog.itoy.jp/develop/restoration.html#comments</comments>
		<pubDate>Tue, 17 Aug 2010 03:59:03 +0000</pubDate>
		<dc:creator>ドンQ</dc:creator>
				<category><![CDATA[システム開発]]></category>
		<category><![CDATA[システム障害]]></category>

		<guid isPermaLink="false">http://blog.itoy.jp/?p=2151</guid>
		<description><![CDATA[ちょっと最近、残念なシステム障害の対応現場を見る機会があったので、「障害対応はこうあるべき？」っていう個人的メモを。 障害発生！さぁどうする？ 障害が発生するとＳＥさんってすぐに端末にかじりついて、ログ解析やプロセスの再 [...]]]></description>
			<content:encoded><![CDATA[<p>ちょっと最近、残念なシステム障害の対応現場を見る機会があったので、「障害対応はこうあるべき？」っていう個人的メモを。</p>
<h3>障害発生！さぁどうする？</h3>
<p>障害が発生するとＳＥさんってすぐに端末にかじりついて、ログ解析やプロセスの再起動などの作業に夢中になったりしません？（もちろん自分も経験あり）<br />
障害の内容を把握する、システムの早い復旧を行うのはSEの大切な仕事なんで否定はしないですけどね。</p>
<p>実は、大多数の人にとって障害の原因なんて、ＳＥ本人が考えるほど意外なほどどうでもいいことです。（障害復旧後に作成する報告書なんて誰も見てなかったりして）</p>
<h3>まずはアナウンス</h3>
<p>大切なのは、障害のアウトラインが分かった段階で、外に向かって情報提供してあげることかもしれません。</p>
<ul>
<li>被害の範囲（FAX受注は問題ないが、Web受注は使えませんとか）</li>
<li>被害の重大度（午前中に入力した伝票が全て消えましたとか。そりゃ大変だ）</li>
<li>復旧までの見込時間（あと30分でWeb閲覧はできるけど、メール復旧までは1時間かかるとか）</li>
</ul>
<p>その時「JVMのGCか…」とか意味不明な専門用語使っちゃダメですよ(^^;</p>
<p>少なくとも何も情報がないと、システムを使ってるオペレータはシステムを使っていいんだか悪いんだか分からない。<br />
もっと大きなシステムになると、</p>
<ul>
<li>「システム使えねぇ！」って問合せを受けるサポート窓口</li>
<li>顧客に対して、早くお詫び連絡をしたい営業</li>
</ul>
<p>など、外に向かって告知をしなくてはいけない人達がとにかく情報を欲しているはず。</p>
<p>もしかするとそんな皆さんは少し怒ってるかもしれないけど、堂々と情報提供してみましょう。</p>
<h3>障害対応に燃えろ！</h3>
<p>普段は縁の下の力持ちとして、深夜や大型連休に人目につかず頑張っているＳＥさんですが、障害対応はそんなＳＥの一番の見せ場！（いや、そんな格好いいもんじゃないな…）<br />
そんな時に、実際対応は誰かに任せて、全体的な状況を把握して的確に情報提供をしてあげられると「デキるＳＥ」としておいしいとこ取り出来るチャンスですぞ。</p>
<p>これ普通の人にとっては「当たり前だ！」って思われるかもしれないんですが、草さえも食べない超草食系揃いのシステム屋さん達にとって、こういう外向きアクションは苦手なんですって…<br />
わかってあげてくださいね(^^;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itoy.jp/develop/restoration.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.itoy.jp/develop/restoration.html" />
	</item>
		<item>
		<title>Windows + PHP5.2 + PostgreSQLでハマった人へ</title>
		<link>http://blog.itoy.jp/develop/windows-php5-2-postgresql.html</link>
		<comments>http://blog.itoy.jp/develop/windows-php5-2-postgresql.html#comments</comments>
		<pubDate>Tue, 28 Jul 2009 16:46:44 +0000</pubDate>
		<dc:creator>ドンQ</dc:creator>
				<category><![CDATA[システム開発]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://localhost/?p=610</guid>
		<description><![CDATA[Fatal error: Call to undefined function: pg_connect&#8230;のエラー WindowsでWebサーバーを公開しておられるあるお客さんが、CMSを導入するとのことでPH [...]]]></description>
			<content:encoded><![CDATA[<h3>Fatal error: Call to undefined function: pg_connect&#8230;のエラー</h3>
<p>WindowsでWebサーバーを公開しておられるあるお客さんが、CMSを導入するとのことでPHPとPostgreSQLの設定を行うことになって、ものすごくハマってしまったので、同じことで困るかもしれない人のために情報を残しておきます。<br />
問題が起こった環境は以下のような感じ<br />
・Windows Server 2003<br />
・PostgreSQL 8.4.0<br />
・PHP5.2.10<br />
インストールは普通にうまくいって、PHPも単体では動いていることを確認。<br />
でも、どうやってもPHPからPostgreSQLに接続ができない。<br />
pg_connectメソッドで、以下のようなエラーが<br />
<strong>Fatal error: Call to undefined function pg_connect() in&#8230;</strong><br />
しかも、phpinfoの情報にもPostgreSQLのpgsqlブロックが表示されてないみたい？<br />
ちゃんと、php.iniファイルの、「extension=php_pgsql.dll」も確認したし、もちろんhttpdの再起動もしたし&#8230;<br />
それでもやっぱりエラーは消えないし&#8230;</p>
<h3>お客さん、そのDLL壊れてますよ！</h3>
<p>いろいろと調べてみると、どうやらPostgreSQLライブラリ「php_pgsql.dll」が怪しい感じ。<br />
どうやら、Windows版のPHP5.2.6以降のバイナリに含まれる php_pgsql.dll は壊れている？<br />
念のためチェックしてみると、php_pgsql.dll のファイルサイズは97kb。<br />
どうやらビンゴのようで(-_-;)</p>
<h3>php_pgsql.dllを入れ替える</h3>
<p>とりあえずは、古いバージョンのWindows版PHPに含まれるphp_pgsql.dll と交換する必要があるらいしいので、<a href="http://www.php.net/releases/" target="_blank">http://www.php.net/releases/</a>から、PHP5.2.5のWindows binaryをダウンロード。<br />
解凍して、extディレクトリの中のphp_pgsql.dll を見てみると、ファイルサイズは165KB。<br />
5.2.10の97KBと全然違いますやん。<br />
で、PHP5.2.10のextディレクトリにあるphp_pgsql.dll を5.2.5のものに置き換えてみると&#8230;<br />
すんなりつながりました。<br />
え～、PHPのWindows binaryのバグ！？<br />
PHP5.2.5～5.2.10まで、ずーっとバグったまま？<br />
とりあえず、Windows + PHP + PostgreSQLの環境では、有名な話らしいんで、すぐに情報が見つかって助かりました。<br />
【追記】<br />
コメントにて、もっとスマートな解決方法を教えて頂きましたので、以下リンクしておきます。<br />
<a href="http://andante0727.blog81.fc2.com/blog-entry-151.html" target="_blank">PHP、Windows+PHP5.2.6以降でPostgreSQLに接続できない </a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itoy.jp/develop/windows-php5-2-postgresql.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.itoy.jp/develop/windows-php5-2-postgresql.html" />
	</item>
		<item>
		<title>Movable Type3から4へアップグレード</title>
		<link>http://blog.itoy.jp/blog/movable-type-update.html</link>
		<comments>http://blog.itoy.jp/blog/movable-type-update.html#comments</comments>
		<pubDate>Mon, 13 Jul 2009 15:21:19 +0000</pubDate>
		<dc:creator>ドンQ</dc:creator>
				<category><![CDATA[システム開発]]></category>
		<category><![CDATA[ブログ]]></category>
		<category><![CDATA[MovableType]]></category>
		<category><![CDATA[バージョンアップ]]></category>

		<guid isPermaLink="false">http://localhost/?p=607</guid>
		<description><![CDATA[サーバー移転ついでにMTのバージョンアップ Six Apartから、ブログエンジンMovable Type 5が発表されたところですが、このブログはやっと3から4にバージョンアップしたという話です。 そもそもの発端は、も [...]]]></description>
			<content:encoded><![CDATA[<h3>サーバー移転ついでにMTのバージョンアップ</h3>
<p>Six Apartから、ブログエンジンMovable Type 5が発表されたところですが、このブログはやっと3から4にバージョンアップしたという話です。<br />
そもそもの発端は、もう4年間ほどMovable Typeでこのブログを運営していたサーバーが、近頃やたらに遅いんでちょっとレスポンスの向上のために、サーバー引越をしようとしたのが目的。<br />
で、どうせサーバー引越するなら、バージョンもあまりに古い3から4に上げてしまおうと思ったわけです。<br />
とりあえずサーバーが新旧の2台あるんで、まずは新サーバーをじっくり準備することに。<br />
作業端末のhostsファイルに、「blog.itoy.jp」として新サーバーのIPアドレスを登録。<br />
なんとなく動作確認ができれから、DNSサーバーの設定を変更して、新サーバーのIPを登録する作戦です。</p>
<h3>バージョンアップの手順</h3>
<p>Movable Typeの場合（まぁほどんどのCMSはそうですが）、とにかくデータベースと画像ファイル群があればなんとかなる！</p>
<p><span id="more-607"></span><br />
とはいえ、<br />
<strong>１）バックアップ</strong>（旧サーバー作業）<br />
まずは、設定ファイルから静的なファイルから何から何まで全てFTPにてローカル端末にダウンロード。<br />
もしデータベースにBerkeleyDBやSQLiteを使っているなら、このタイミングでデータベースのファイルもいっしょにバックアップをとってしまいましょう。<br />
※ちなみに私はSQLite使ってました。<br />
<strong>２）SQLiteからMySQLに移行</strong>（旧サーバー作業）<br />
もしかしたら、パフォーマンスが変わるのか？と<br />
今回、データベースをSQLiteからMySQLに変更することを決断。<br />
そんな時には、<br />
<a href="http://code.google.com/p/ogawa/wiki/MT_Database_Converter" target="_blank">MT Database Converter</a><br />
がすごく重宝。<br />
管理画面からパラメータを与えるだけで、あとは移行ツールが一気に変換してくれます。<br />
<strong>３）MySQLデータベースのバックアップ</strong>（旧サーバー作業）<br />
変換ツールが作ってくれたMySQLのデータベースを、mysqldumpコマンドにてデータベースを抜き取ります。<br />
<strong>４）MySQLデータベースのインポート</strong>（新サーバー）<br />
上（３）でエクスポートしたファイルを、新サーバーでまるごと取り込み。<br />
<strong>５）Movable Type4のインストール</strong>（新サーバー）<br />
MT4のモジュールを全て新サーバーにアップし、旧サーバーから持ってきた<br />
・mt-config.cgi<br />
・画像等のアップロードしたファイル<br />
を新サーバーに配置<br />
※私の場合は、mt-config.cgiのアップロード前にSQLiteからMySQLに設定変更しました<br />
<strong>６）アップグレードの開始</strong>（新サーバー）<br />
新サーバーのmt.cgiをブラウザから呼び出して、あとはお任せでアップグレード<br />
<strong>７）テンプレートの修正</strong>（新サーバー）<br />
ヘッダー、最近のコメント、プロフィールなどブロック化していたテンプレートの絶対パスが変わってしまったので手動でテンプレートを修正<br />
<strong>８）再構築</strong>（新サーバー）<br />
・「全てのファイル」の再構築を実施<br />
・スタイルシート等の自動で再構築されないテンプレートを手動で構築<br />
みたいな感じでした。<br />
思ったより簡単。<br />
あとは、<a href="http://qry.jp/" target="_blank">QRコードのQRy</a>も引越しさせたいなぁ&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itoy.jp/blog/movable-type-update.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.itoy.jp/blog/movable-type-update.html" />
	</item>
		<item>
		<title>お客さんのサーバーをぶっ壊して泣きました</title>
		<link>http://blog.itoy.jp/develop/server-crash.html</link>
		<comments>http://blog.itoy.jp/develop/server-crash.html#comments</comments>
		<pubDate>Fri, 13 Jun 2008 17:02:14 +0000</pubDate>
		<dc:creator>ドンQ</dc:creator>
				<category><![CDATA[システム開発]]></category>
		<category><![CDATA[システム障害]]></category>
		<category><![CDATA[日記]]></category>

		<guid isPermaLink="false">http://localhost/?p=528</guid>
		<description><![CDATA[昨日はあるクライアントさんのシステムの本番日でした。 もう10年くらい使っているWindows NT Server 4.0 ＆Windows98クライアントのシステムで、ハードウェアのメーカー保守がいよいよ切れてしまうの [...]]]></description>
			<content:encoded><![CDATA[<p>昨日はあるクライアントさんのシステムの本番日でした。<br />
もう10年くらい使っているWindows NT Server 4.0 ＆Windows98クライアントのシステムで、ハードウェアのメーカー保守がいよいよ切れてしまうので、Windows 2003 ServerとWindows Vistaのシステムの入れ替えて欲しいと去年に依頼があったものです。<br />
そりゃあ、設計ドキュメントも無いOracle7（データベース）とPro*Cobolで出来ているシステムを移行するというのは、想像を絶するエライ苦労でした。<br />
<font color="#FF0000">◎</font><strong>大事故</strong><br />
で、ようやくこぎつけたシステム切替の日。<br />
まずはデータの移行作業。<br />
データベースのバックアップを待っている間に、新サーバーを置く場所を確保しようと、サーバーの横のキャスター付きキャビネットをゴロゴロと移動させようとすると…<br />
「ヒュゥゥン…」<br />
＼(◎o◎)／<br />
サーバー外付けの増設ディスクが止まってる！データベースのメインディスクやのに！<br />
サーバーのコンソールを見るとデータベースのバックアップも異常終了してる！！<br />
サーバー裏側を確認するとケーブルが一本抜けきっているのでした。<br />
よく見るとキャビネットの引き出しがケーブルをはさんでいたようで、そのキャビネットを動かした瞬間にまた何故かもともとネジ止めされていなかったケーブルが抜けたようでした<br />
「これって、完全にトラップですやんか(ーー;)　　しかし、これはヤバイですぞ……」<br />
いろいろと復旧にチャンレジしたものの、結果的に財務、顧客、売上、在庫の全てのデータベースが壊れてしまっている事を知るのでした。</p>
<p><span id="more-528"></span><br />
「このシステムって、最後にバックアップをしたのいつなんやろ…？」<br />
　財務…2008年6月12日（ただしバックアップは見たことない独自形式）<br />
　顧客…2006年10月21日（一年半も前や…）<br />
　売上…2008年6月12日（ただし一部のマスタや履歴データのバックアップは無し）<br />
　在庫…2008年6月12日（ただし一部のマスタや履歴データのバックアップは無し）<br />
財務は復旧不可能かもしれへんし、顧客は1年半前にさかのぼってしまう～、売上と在庫は中途半端なデータになってしまいまそうや…<br />
<font color="#FF0000">◎</font><strong>平謝り</strong><br />
とりあえずは、まずは出社してきたばかりのクライアントの取締役にお詫びと報告に。<br />
「私の不注意によるデータベース消失によって、大損害を与えてしまうかもしれません。<br />
最悪の場合は6ヶ月分の経理伝票を入力し直し、顧客データは1年半分の情報を再入力する必要があります。本当に申し訳ありません」<br />
はっきり言って私は謝罪しながら、損害賠償さえ覚悟してました。<br />
そこでその取締役の言葉。<br />
「ドンQさんが信用できる人間なんはよう分かりました。<br />
これまでいろいろなＳＥがミスしては、よう分からんカタカナ言葉を使って責任逃れをしてたけど、自分の責任やと正面から謝ってきてくれたんはうれしかったです。<br />
実はドンQさんが誤魔化しの説明をするようなら、徹底的に責任を追求したろうと思ってました。<br />
誰にもで失敗はあるもんや。<br />
とりあえず可能な限りの復旧をしてくれたら、それ以上は何も追求する気はないです。」<br />
私は、久々に泣きそうになりました。<br />
クライアントさんは高額な商品の仕入れをやって在庫を大量に抱える商売なんで、財務データが無くなってキャッシュフローが分からなくなるのは致命的なはず。<br />
5月末時点で全店の実棚卸しをした在庫データが無くなってしまうことは、中間決算ができなくなることを意味するはず。<br />
<font color="#FF0000">◎</font><strong>結末</strong><br />
結果的には、メーカーのフィールドサービス（早い話が修理屋さん）が来て、ディスクアレイボードを強制的にオンラインにして、リビルドする事によって何とか増設ディスクは復旧し、データベースも不整合から回復して一件のデータも消失せずに済んだのでした(^-^)<br />
その修理屋さんが帰るのを見届けてから、取締役とがっちり両手で握手。<br />
とりあえずは予定よりも4時間遅れたものの、夜8時半頃に無事に新サーバーの稼動に至ったのでした。<br />
そして、帰り間際の取締役の一言。<br />
「ドンQさん、これからもどうか末永くよろしくお願いしますわ。」<br />
その数分後、私は泣きながら駅まで歩いていたのでしたσ(^◇^;)<br />
そーいえば、朝ごはん食べたきり何も食べてへんかったなぁ。そりゃ手も心も震えるわけですわ(^^;)<br />
最後に。<br />
すんません。ものすごい自慢話で(ーー;)<br />
あと電源関係の部分に限らずサーバー周りのものを動かす時には可能であれば電源OFFです。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itoy.jp/develop/server-crash.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.itoy.jp/develop/server-crash.html" />
	</item>
		<item>
		<title>システムエンジニアのためのサンタさん</title>
		<link>http://blog.itoy.jp/develop/se-santa.html</link>
		<comments>http://blog.itoy.jp/develop/se-santa.html#comments</comments>
		<pubDate>Mon, 24 Dec 2007 04:12:41 +0000</pubDate>
		<dc:creator>ドンQ</dc:creator>
				<category><![CDATA[システム開発]]></category>
		<category><![CDATA[開発]]></category>

		<guid isPermaLink="false">http://localhost/?p=475</guid>
		<description><![CDATA[◎SEの味方 この時期、子供達のもとにはサンタさんやってきますが、世の可愛そうなSEのもとにサンタさんが来てくれるとしたら、どんなことをしてくれるでしょうか。 クリスマスの朝、SEが目を覚ましてみると、 ・データベース設 [...]]]></description>
			<content:encoded><![CDATA[<p><font color="#FF0000">◎</font><strong>SEの味方</strong><br />
この時期、子供達のもとにはサンタさんやってきますが、世の可愛そうなSEのもとにサンタさんが来てくれるとしたら、どんなことをしてくれるでしょうか。<br />
クリスマスの朝、SEが目を覚ましてみると、<br />
・データベース設計、アプリケーション設計の仕様書が完成している！<br />
・外注プログラマの単金が半額になっている！<br />
・外注プログラマに口頭仕様が伝わりまくる！<br />
・Windows2000 ServerのMicrosoftサポート期間が延長されている！<br />
・ミドルウェアのメーカーが一瞬で障害を解決してくれる！<br />
・5年経過したサーバーの部品をメーカーが提供し続けてくれる！<br />
・RAID再構築中にぶっ壊れたハードディスクが直っている！<br />
・データベースコネクションをクローズしていないにもかかわらず、勝手にクローズしてくれている！<br />
・エンドユーザーがシステム確認事項への回答をすぐに返してくれる！<br />
・エンドユーザーが「それじゃリリース時期を遅らせましょう」と言う！<br />
・エンドユーザーが「これは開発範囲外なので追加注文します」と言う！<br />
・エンドユーザーが「平日の日中にシステムメンテナンスしてもいいよ」と言う！<br />
・納品もしていないのに印鑑の押された検収書が郵送されてくる！<br />
サンタさんの代わりにこんなことをしてくれるスーパーSEはどこかにいないもんですかねー</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itoy.jp/develop/se-santa.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.itoy.jp/develop/se-santa.html" />
	</item>
		<item>
		<title>SQL文を読みやすく整形『SQL in Form』</title>
		<link>http://blog.itoy.jp/web-service/sql-in-form.html</link>
		<comments>http://blog.itoy.jp/web-service/sql-in-form.html#comments</comments>
		<pubDate>Fri, 18 May 2007 14:11:04 +0000</pubDate>
		<dc:creator>ドンQ</dc:creator>
				<category><![CDATA[Webサービス]]></category>
		<category><![CDATA[システム開発]]></category>
		<category><![CDATA[開発]]></category>

		<guid isPermaLink="false">http://localhost/?p=421</guid>
		<description><![CDATA[◎SQLでございます ほとんどの方はプログラムなるものに、興味がないと思いますんで、以下全部読み飛ばしてくださいまし。 今回は私のメモとしてエントリー。 世の中のプログラマーは、RDBMS（リレーショナルデータベース）か [...]]]></description>
			<content:encoded><![CDATA[<p><font color="#FF0000">◎</font><strong>SQLでございます</strong><br />
ほとんどの方はプログラムなるものに、興味がないと思いますんで、以下全部読み飛ばしてくださいまし。<br />
今回は私のメモとしてエントリー。<br />
世の中のプログラマーは、RDBMS（リレーショナルデータベース）からデータを取り出す時に、SQLなるデータベース共通言語を使ってデータの取り出しを行います。<br />
ただこのSQLなんですが、基本的に一文で一気に命令しなくてはなりません。<br />
つまり日本語でいうと「。」は一回しか使えないということです。<br />
簡単な条件ならいいのですが、複雑な抽出条件の場合は、接続詞を駆使して長～い文章を作るわけです。<br />
<font color="#FF0000">◎</font><strong>SQLを読みやすく</strong><br />
そんな時に困るのが、<br />
「このカッコはいったいどこにかかってるんやろ？」 とか<br />
「この別名はどこで定義してるもんやねん？」とか<br />
いろいろと混乱してくるんですよねー。</p>
<p><span id="more-421"></span><br />
で、そんなプログラマーの方をピンポイントで救済するサービスがこちら<br />
<a href="http://www.sqlinform.com/" target="_blank">SQLinForm</a><br />
お～なんて地味な。<br />
しかしながら、なんてシブいツボを押さえたサービスなんでしょー。<br />
たとえば、こんなSQL文<br />
<em>SELECT  M.StaffCode,M.StaffName,M.BranchCode,COUNT(S.OrderNumber)  SalesCount,SUM(S.Sales) SalesTotal,TO_CHAR(S.SalesDate,&#8217;YYYY/MM/DD&#8217;) RecentDate,LS.LastYearFROM Staff M ,Sales S ,(SELECT SUM(Sales) LastYear FROM Sales WHERE SalesDate < 2007/10/01) LS WHERE   M.StaffCode = S.StaffCode (+) AND   M.StaffCode = LS.StaffCode<br />
</em><br />
これが、このサービスを使うとこんなに読みやすく↓<br />
<em>SELECT  M.StaffCode,<br />
　　　　　　M.StaffName,<br />
　　　　　　M.BranchCode,<br />
　　　　　　COUNT(S.OrderNumber) SalesCount,<br />
　　　　　　SUM(S.Sales) SalesTotal,<br />
　　　　　　TO_CHAR(S.SalesDate,&#8217;YYYY/MM/DD&#8217;) RecentDate,<br />
　　　　　　LS.LastYearFROM Staff M ,<br />
　　　　　　Sales S ,(SELECT SUM(Sales) LastYear FROM Sales WHERE SalesDate < 2007/10/01)<br />
LS<br />
WHERE   M.StaffCode = S.StaffCode (+)<br />
　　　AND M.StaffCode = LS.StaffCode<br />
</em><br />
素晴らしいっ！！（ただし、副問合せの解釈はやや弱いか？）<br />
以上、本日はマニアックなネタでしたm(_ _)m<br />
【ネタ元】<br />
<a href="http://www.popxpop.com/archives/2007/05/sqlsql_in_form.html" target="_blank"><br />
SQL文をきれいにフォーマットしてくれる『SQL in Form』</a>（popxpop）</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itoy.jp/web-service/sql-in-form.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.itoy.jp/web-service/sql-in-form.html" />
	</item>
		<item>
		<title>プロジェクトを管理できない技術者</title>
		<link>http://blog.itoy.jp/develop/project-management.html</link>
		<comments>http://blog.itoy.jp/develop/project-management.html#comments</comments>
		<pubDate>Mon, 24 Jul 2006 16:09:55 +0000</pubDate>
		<dc:creator>ドンQ</dc:creator>
				<category><![CDATA[システム開発]]></category>
		<category><![CDATA[プロジェクト管理]]></category>

		<guid isPermaLink="false">http://localhost/?p=328</guid>
		<description><![CDATA[え～ちょっとシステム屋さんらしく、システム開発に関することを。 ◎システム開発のプロジェクト管理 最近、身近なところで、立て続けに2件の大失敗システム開発プロジェクトを見ました。 システム開発プロジェクトっていうのは、  [...]]]></description>
			<content:encoded><![CDATA[<p>え～ちょっとシステム屋さんらしく、システム開発に関することを。<br />
<font color="#FF0000">◎</font><strong>システム開発のプロジェクト管理</strong><br />
最近、身近なところで、立て続けに2件の大失敗システム開発プロジェクトを見ました。<br />
システム開発プロジェクトっていうのは、<br />
1）お客さんと、どういう事に困ってますかー、と「要件」をまとめる<br />
2）お客さんの要望をシステムに落としていく「設計」を行う<br />
3）納期に間に合うように限られた人数でプログラムを「開発」する<br />
4）お客さんのところの業務運用時にトラブルが起きないように「テスト」する<br />
というのが、おおまかな流れかと思います<br />
※「お客さん」っていうのは、システム開発を依頼するクライアントの事です。<br />
たいていのシステム屋は、もともと人よりもコンピューターとかかわってる方が得意な（かなりの偏見ですが）人たちが集まる傾向があるんで、人とあまり接する必要の無い3)、4）が得意です。<br />
ただ年をとってくると、いつまでも3）4）ばかりやってる事を会社は許してくれず、1）2）もしっかりやりなさい！ などといって突然、客先との折衝をまかされるんですが、ここに大きなリスクがあるようです。<br />
<font color="#FF0000">◎</font><strong>お客と戦う！</strong><br />
実は、実際のシステム開発作業3）が始まっても、お客さんの要望は果てしないため、1）2）っていうのは、終わりまで続く傾向にあります。<br />
「そういえば、こういう画面が無いと困るんだけど」<br />
「この帳票が無いと仕事にならないんだよー」<br />
「そんな風になるとは思ってなかった。こうして欲しい」<br />
ここで、プロジェクトで決められた納期や予算と、お客さんからあふれれ出てくる要望とのギャップを埋めるべく、対人折衝能力が必要になります。<br />
しかし、これまで1日の大半をコンピューターの前に座って過ごしてきたエンジニアには、そんなヒューマンスキルを鍛える暇が無かったため、知らない間にお客さんの要望を「えぇ。えぇ。」と聞いているうちに、けっきょく巨大なシステムを作らなければいけない事になります。<br />
いわゆるシステムのスコープの決定ミスです。<br />
そして、それは1,000万円規模の小さなプロジェクトなら、徹夜して頑張れば何とかなる事も多いんですが、もっと規模の大きいプロジェクトでは致命傷となります。<br />
<font color="#FF0000">◎</font><strong>きっとこれからも…</strong><br />
私が最近見た２つの失敗プロジェクトはまさに上記の例でした。<br />
プロジェクトの管理者は決して能力が無いわけではなく、立派な「技術者」でした。<br />
ただ人とのコミュニケーションがやや苦手というだけでした。<br />
ちょっと小さなシステム開発会社では、これからこんな事態が多発しそうな気がします。<br />
というのも、これまで技術的な事はよう分からんけど、先頭をきってお客さんと折衝を続けてきた団塊の世代の方たちが、ドタドタと退職していきます。<br />
そして、今まで影に隠れて「技術屋」をやっていた人たちが、突然「君もそろそろプロジェクトのマネージメントをやりたまえ」なんて言われて最前線に立たされて、結果的に数ヶ月後にプロジェクトが炎上するなんて事が多発するんじゃないでしょうか。<br />
システムを発注する側の方もよーく気をつけてくださいねー。<br />
システム会社から出てくる管理者のスキルをよーく見極めて要望を出さないと、結果的にエライ目にあいますよー(^^;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itoy.jp/develop/project-management.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.itoy.jp/develop/project-management.html" />
	</item>
		<item>
		<title>縦長サイトを一発キャプチャしたい！</title>
		<link>http://blog.itoy.jp/develop/webscan.html</link>
		<comments>http://blog.itoy.jp/develop/webscan.html#comments</comments>
		<pubDate>Sun, 19 Feb 2006 03:01:35 +0000</pubDate>
		<dc:creator>ドンQ</dc:creator>
				<category><![CDATA[システム開発]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[画像]]></category>

		<guid isPermaLink="false">http://localhost/?p=288</guid>
		<description><![CDATA[◎画面キャプチャしまくる人 Webシステムの開発では、お客さんと打ち合わせを行う時には、よくプロトタイプを作って画面を見せて話をする事があります。 やっぱり、業務フローがどうのこうのとかいうよりは、実際に目に見える画面を [...]]]></description>
			<content:encoded><![CDATA[<p><font color="#FF0000">◎</font><strong>画面キャプチャしまくる人</strong><br />
Webシステムの開発では、お客さんと打ち合わせを行う時には、よくプロトタイプを作って画面を見せて話をする事があります。<br />
やっぱり、業務フローがどうのこうのとかいうよりは、実際に目に見える画面をベースに話を進める方がイメージがしやすいようで話がよく進みます。<br />
ということで、まずお客さんとの打ち合わせ資料を作成するにあたっては、とくにかくHTMLフォームをたくさん作って、片っ端から画面キャプチャをとって資料に貼り付けていく必要があります。<br />
<font color="#FF0000">◎</font><strong>縦長サイトをキャプチャしたい！</strong><br />
そんな時に威力を発揮するソフトウェアをご紹介！<br />
（かなり有名ばソフトなようですが）<br />
<a href="http://px.a8.net/svt/ejp?a8mat=109YHT+D8W8C2+12PM+62ENM" target="_blank">WebScan</a><br />
<img border="0" width="1" height="1" src="http://www10.a8.net/0.gif?a8mat=109YHT+D8W8C2+12PM+62ENM" alt=""><br />
これは、ブラウザをスクロールしなければ画面全体が見えないような縦長のサイトを、隠れている下の部分も一発でキャプチャしてしまうソフトです。<br />
特に携帯サイトなどの、ものすごく縦に長い画面をキャプチャする時には、ずいぶんと助けられています。<br />
このツールを知るまでは、ブラウザのスクロールバーを動かして数回に分けて画面キャプチャをとって、ペイントブラシ上で結合させるというような、かなり地道な作業をやっておりました(^^;<br />
あとは、ブラウザに表示されているサイトを自動でA4サイズに収まるように自動縮小して印刷してくれるようなソフトもあれば最高なんですけど、どなたかご存知ないですかねー？</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itoy.jp/develop/webscan.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.itoy.jp/develop/webscan.html" />
	</item>
	</channel>
</rss>

