. てやんでい!職人気質 ブースターテクノロジー Webシステム開発 . .

08年08月

PostgreSQLでリバースエンジニアリング

PostgreSQLでもリバースエンジニアリングしたい状況になり、ツールを探してみました。
Eclipseのプラグインの『Clay』がよさそうでした。
Clayを使うにあたり、『GEF』プラグインも必要。
以下、メモ程度に。

■Eclipseをダウンロード
http://www.eclipse.org/downloads/

■GEFをダウンロード
http://www.eclipse.org/gef/

■Clayをダウンロード
http://www.azzurri.jp/ja/clay/index.html

■PostgreSQL JDBCドライバをダウンロード
http://jdbc.postgresql.org/

■参考URL
http://www.db.is.kyushu-u.ac.jp/rinkou/postgresinstall/postgresclay.html

--
2008年08月29日


Googleの検索結果に出なくなった

この数ヶ月くらい、このHPがGoogleの検索結果にほとんど引っかからなくなった。
現在(2008/08/21)は回復。
あまりGoogleに依存しないビジネスなので、大損害というわけではないのですが、対策はしなければならない。

何かペナルティになるような状態になっていたのだろうか。
以下、行った対策。

■エラーの修正
Googleウェブマスターツールでエラーと判定されている箇所(NotFound、titleタグの重複、descriptionタグの重複)の対応

■リンク数の軽減
1ページあたりの外部リンク数を100以下に削減

■サイトマップの再作成
MovableType用sitemaps.orgサイトマップ生成テンプレートを使い、サイトマップを再提出

これらの方法を全てやって、やっと検索結果に表示されるようになった。

--
2008年08月21日


PHPで月末を算出

月末の日を算出する場面は多々あるが、いつも文法を忘れてしまうのでメモ。

例)2008年2月の月末を出すには、
対象月を3月にして(1ヶ月加算)して、day 部分に『0』を指定。

$year = "2008";
$month = "2";
echo date("Y/m/d H:i:s", mktime(23, 59, 59, $month + 1, 0, $year));
⇒ 2008/02/29 23:59:59

もっといい方法あるかな。

--
2008年08月19日


AdvancedDataGridで階層表示
AdvancedDataGrid で階層表示するには、HierarchicalData 形式でデータを渡さないといけないと思っていた。
select結果を整形するの面倒だなと思っていたが、そんなことはまるで不要。
Helpにきちんと書いてあった。

以下、引用
--
AdvancedDataGrid コントロールにグループ化データを設定するには、まずフラットなデータから GroupingCollection クラスのインスタンスを作成し、その GroupingCollection インスタンスを AdvancedDataGrid コントロールのデータプロバイダに渡します。フラットなデータから GroupingCollection のインスタンスを作成する際は、そのデータの中で、階層構造を作成するために使用するフィールドを指定します。
--

DBからはそのままselect結果を返せばOKで、グループ化するフィールドを指定。
<mx:dataProvider>
	<mx:GroupingCollection id="gc" source="{expenses}">
		<mx:grouping> 
			<mx:Grouping> 
				<mx:GroupingField name="Region"/> 
			</mx:Grouping> 
		</mx:grouping>
	</mx:GroupingCollection>
</mx:dataProvider>
でいけた。
ただし、表示用データを更新した際は、GroupingCollection をリフレッシュしないといけない。 検索結果をセットした後、

gc.refresh();

できれいに反映された。

--
2008年08月18日


Flexで特定の文字を入力させない

mx:TextInput には便利なプロパティがあって、
入力を許可する文字・許可しない文字を指定できる。

restrict="0-9"
⇒ 半角数字のみ許可

入力を許可しない場合は、
restrict="^○"
⇒ ○は入力できない。対象文字の前に『^』をつける。

--
2008年08月16日


bindParam でエラー

PHPからPDOを使って、SQLを実行する処理で、
bindParamの部分でエラーが発生した。
DBはPostgreSQL。

■エラー内容
SQLSTATE[42P18]: Indeterminate datatype: 7 ERROR: could not determine data type of parameter $2

なんで?
型がおかしいらしいが、もちろんそんなことはない。

で色々調べていると、
似た事象の人を発見。
⇒ Prepared statements killing script

まさしくこれで、対策をやってみた。

$stmt = $db->prepare($sql, array(PDO::ATTR_EMULATE_PREPARES => true));

動いた。

--
2008年08月15日


MovableTypeでサイトマップ作成

検索エンジン用のサイトマップを作成するのは面度。
とても手動では無理。

で、少し探したらMovableType用のサイトマップ作成テンプレートが公開されていた。
⇒ MT用sitemaps.orgサイトマップ生成テンプレート

再構築の度に最新になるし、これなら最初に作っておくだけでメンテの手間要らず。

--
2008年08月09日


WindowsUpdateができない

なぜかWindowsUpdateができない。
途中でエラーになる。
WindowsUpdate に必要なサービスは無効にしてないし、なぜ?

軽く調べると、同様の問題で悩んでいる人を多々発見。
どうやら Windows Update Agent 3.0 をインストールすればいいらしい。
早速実行 ⇒ 解決!
めでたし、めでたし。

--
2008年08月09日


as3関連のライブラリ

Google Code で『as3』とかで検索すると、結構ヒットする。
・as3corelib
・Tweener
とかはお世話になっている。

他には、as3xls というのがあった。
Excelを読み込んで、DataGridに格納できるらしい。
これは便利そう!
セルが結合されてたりしても大丈夫なのかな。
試してみよう。

--
2008年08月08日


共用サーバはリスク高い

共用サーバは安くていいけど、リスクも高い。
それを承知で使わなくてはならない。もちろん良質なものもあるが。
以下実際に直面したこと。

■パフォーマンスの低下
MovableTypeでログインするのに数分かかるくらい、パフォーマンスが低下した。

■バッチエラー
少し負荷のかかるバッチ処理は全部エラーになった。

■PHPの設定が変わっていた
知らぬ間にregister_globals とかパラメータが変わっていた。

■PHPがバージョンアップされていた
知らぬ間にPHP4 ⇒ PHP5 に変わっていた。
PHP4用に作ったプログラムは当然動作せず。

やはり最低限VPSは必要か。

--
2008年08月01日