2008年11月 9日 (日)

Tomcat6のインストール方法

5年ぶりぐらいにJava環境のプログラムをする必要性がでてきたので自宅環境にTomcat6をインストールしました。

インストール環境は以下のとおり。

  • OS:WindowsXP SP3
  • Tomcat:Tomcat 6.0.18
  • JRE1.6.0_07

Tomcatのインストール自体で悩むことなんてないと思っていましたが、インストール後にTomcatのサービスを起動してもサービス自体が起動しませんでした。

ログを見ると

[2008-11-08 01:11:51] [info] Procrun (2.0.4.0) started
[2008-11-08 01:11:51] [info] Running Service...
[2008-11-08 01:11:51] [info] Starting service...
[2008-11-08 01:11:51] [174  javajni.c] [error] 指定されたモジュールが見つかりません。
[2008-11-08 01:11:51] [994  prunsrv.c] [error] Failed creating java C:\Program Files\Java\jre1.6.0_07\bin\client\jvm.dll
[2008-11-08 01:11:51] [1269 prunsrv.c] [error] ServiceStart returned 1
[2008-11-08 01:11:51] [info] Run service finished.
[2008-11-08 01:11:51] [info] Procrun finished.

原因はmsvcr71.dllがWindowsのsystem32フォルダ下に存在しないからというもの。

dllのコピーによりTomcatのsサービスは起動したが、localhost:8080に接続しても画面が表示されない現象が発生しました。

ログを見ると

2008/11/08 23:43:02 org.apache.tomcat.util.digester.Digester fatalError
致命的: Parse Fatal Error at line 1 column 37: A pseudo attribute name is expected.
org.xml.sax.SAXParseException: A pseudo attribute name is expected.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanPseudoAttribute(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanXMLDeclOrTextDecl(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanXMLDeclOrTextDecl(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$XMLDeclDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1663)
at org.apache.catalina.users.MemoryUserDatabase.open(MemoryUserDatabase.java:402)
at org.apache.catalina.users.MemoryUserDatabaseFactory.getObjectInstance(MemoryUserDatabaseFactory.java:103)
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140)
at javax.naming.spi.NamingManager.getObjectInstance(Unknown Source)
at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at org.apache.catalina.realm.UserDatabaseRealm.start(UserDatabaseRealm.java:253)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1037)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2008/11/08 23:43:02 org.apache.naming.NamingContext lookup
警告: 参照の解決中に予測しない例外が発生しました
org.xml.sax.SAXParseException: A pseudo attribute name is expected.
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1663)
at org.apache.catalina.users.MemoryUserDatabase.open(MemoryUserDatabase.java:402)
at org.apache.catalina.users.MemoryUserDatabaseFactory.getObjectInstance(MemoryUserDatabaseFactory.java:103)
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140)
at javax.naming.spi.NamingManager.getObjectInstance(Unknown Source)
at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at org.apache.catalina.realm.UserDatabaseRealm.start(UserDatabaseRealm.java:253)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1037)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2008/11/08 23:43:02 org.apache.catalina.realm.UserDatabaseRealm start
致命的: キー UserDatabase でユーザデータベースを検索中の例外です
javax.naming.NamingException: A pseudo attribute name is expected.
at org.apache.naming.NamingContext.lookup(NamingContext.java:805)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at org.apache.catalina.realm.UserDatabaseRealm.start(UserDatabaseRealm.java:253)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1037)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2008/11/08 23:43:02 org.apache.catalina.startup.Catalina start
致命的: Catalina.start:
LifecycleException:  キー UserDatabase でユーザデータベースコンポーネントが見つかりません
at org.apache.catalina.realm.UserDatabaseRealm.start(UserDatabaseRealm.java:261)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1037)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2008/11/08 23:43:02 org.apache.catalina.startup.Catalina start

原因はtomcatインストールフォルダ下のconfフォルダ内の設定ファイル(*.xml)ファイルの円コーディングがutf-8になっていなかったからだ。

以下のように修正すると正常に起動できるようになりました。happy01

<?xml version='1.0' encoding='utf-8'?>

インストーラが悪いのかなぁ。

久しぶりにJavaをしましたが環境構築もスムーズにできなくなっています。。。

| | コメント (3)

2008年8月26日 (火)

DNSラウンドロビンでのシステム構築

久しぶりの投稿です。

最近、Linux系の環境がメインになっているのでApache系の内容になります。

一昔の負荷分散の手法としてDNSラウンドロビンがありましたが、この安価な負荷分散手法が高価なLB(ロードバランサ)に匹敵するかもしれません。

以下はDNSラウンドロビン+Apacheの組み合わせでシステムを構成する場合の説明です。
http://neta.ywcafe.net/000631.html

結論から言うと、静的サイトのみを扱うならばLBがなくても大丈夫
(ブラウザ側で対応できる)
http://japan.cnet.com/blog/neta/2006/08/10/dns_ecfc/
#携帯サイトはムリです。

動的サイトの場合でもApache + mod_proxy_balancer で負荷分散も、セッション維持も、お亡くなりになったサーバの切り離しもOKみたいです。

勿論、高価なLBに匹敵するとは思えませんが、無償でもここまで出来るというのは驚きでした。

数百万~1千万と無償。。。。検討の余地ありです。

Windows環境ではNLBですね。

でも無償でここまでできるのはApache恐るべし。(^_^;)

| | コメント (0)

2007年10月 2日 (火)

透過PNGをIE6で利用する方法

画像の透過処理を行いたい場合、透過GIFや透過PNGを利用しますよね。

透過GIFとPNGでは圧倒的に透過PNGの方が綺麗に表示されます。

この透過PNGですが、IE6では正常に透過されません。

FirefoxやIE7では大丈夫です。

IE6で透過PNGを表示するにはIEのフィルタ(AlphaImageLoader)を利用するみたいです。

こんなものがあること自体知らなかった私です。。。

このフィルタを動作環境に応じて設定してくれるJavaScriptが公開されていました。(以下)

http://www.designwalker.com/2006/12/transparent-png2.html

http://blog.l-xs.com/yungsang/2006/12/png_alpha_filter_ie7.html

このJavaScriptを利用する事でIE6でも透過PNGを利用できるようになりますが、AlphaImageLoaderの仕様(調べていないのでここでは書きません)の為、使い方には制限があります。

私が使ってみた感想ですが、透過PNGを設定したDIV領域の子要素にposition:abusoluteを設定すると透過PNGが間延びしました。

また子要素にaタグを使ってもリンクできないという問題がありました。

ということで、複雑なレイアウト構成の中で透過PNGを利用したい場合は、画像自体を透過部と非透過部で分割した画像を作成するなどの工夫が必要だと思います。

それにしてもデザイン系の方々の知識は凄いですね~ (^_^)

まだまだ知らない事だらけですわ。

| | コメント (0)

2007年1月 3日 (水)

IE7が起動時にフリーズする!

IE7をインストールしてみたのですが、インストール後に起動してもフリーズしてしまいます。

再起動しても現象は同じでした。

色々と調べてみたのですが、IE自体がフリーズしているのではないようでした。

(メニュー等は動作さいていたので)

調査の結果、IE6時代にインストールされたプラグインが正常動作していないものがあった為です。

対応方法として、まず全てのプラグインを無効にします。

(画面右上の”ツール”⇒”アドオンの管理”⇒”アドオンを有効または無効にする”を選択し、一度全てのアドオンを無効にします。)

この状態でIEを強制終了し、再起動します。

正常に起動できれば、アドオンがフリーズの原因という事になります。

次に再度メニューを選択し、無効にしたアドオンを有効にします。

ここで全てのアドオンを有効にしてしまうと同じ結果になるので、順に有効にして動作チェックを行います。

(これが結構大変です。(~_~;) )

私の場合、地道な作業の結果Yahooツールバーが原因だとわかりました。

以前よりYahooツールバーのバージョンアップを促すメッセージが表示されていたのですが、無視していた事が原因ですかね。

以上の設定により、IE7が快適に動作するようになりました。

でもこれぐらいのチェックはインストール時に行って欲しいと思うのは私だけでしょうか?

| | コメント (1)

2006年10月15日 (日)

WEBサーバのマルチドメイン(バーチャルドメイン)対応方法

以前より単一WEBサーバで複数のドメインを利用する方法について調べようと思っていましたので、少し調べてみました。

余り詳しく調べきれていませんが、忘れないようにメモです。(^.^)

(メモなので間違った内容を書いているかもしれませんので注意してください)

ここでマルチドメイン対応とは、一つのWEBサーバに対し、複数のドメイン(マルチドメイン、バーチャルドメイン)でアクセスする方法です。

つまり、a.co.jp と b.co.jpでアクセスした時に単一のWEBサーバ(IPアドレスも同じ)にアクセスし、異なるサイトを表示する方法です。

製品として以下のものがヒットしました。

【WEBサーバ分散システム】
http://www.ncad.co.jp/load_balance_system.html

⇒インターネット側のWEBサーバにソフトを配置するイメージ

IISでマルチドメイン対応する方法は以下のサイトを参照

【IISによるマルチドメイン(バーチャルドメイン)設定方法】

http://support.microsoft.com/?scid=kb;ja;324287

上記サイトに設定方法アリ(ホストヘッダーを用いた対応方法)

※注1)ホストヘッダの設定は”規定のWEBサイト”には設定しないようにする。

※注2)SSL対応サイトには適応できない可能性あり。

⇒SSLが利用できるのは既定のサイトのみ

(参考)IISにおけるWEBサイトの新規作成方法

http://support.microsoft.com/default.aspx?scid=kb;ja;323972

*********************************************************
※XP ProではWEBサイトは一つしか作成できません。

 よって上記方法はServerOSのみ対応が可能
*********************************************************
※Apachを用いるとクライアントOSでも可能である。

以下の書籍にも設定方法が掲載されているみたい。
http://home.impress.co.jp/books/ietech/IIS.Contents.html

【Apachでの設定方法】
http://www.atmarkit.co.jp/flinux/rensai/apache08/apache08a.html

【注意点】
・SSLは一つのサイトしか利用できない。
・IPアドレスの逆引き設定をする必要がある場合、メールサーバ構築時等は一つのドメインしか登録できない。

| | コメント (0) | トラックバック (4)

2006年4月 1日 (土)

php+MySqlの文字化け対応

PHPとMySQLを利用した環境構築を行っていましたが、案の定SQLアクセスにて文字化けが発生しました。

多数のサイトにて対応策が公開されていますが、私が陥ったおバカな失敗を再度しないようにメモしておきます。

ちなみに環境は以下の通り。

PHP:5.04

MySQL:4.1.13

OS:Windows XP Pro

環境構築はXAMPP1.4.15を利用しました。

文字化けしないように事前準備として以下の設定を行いました。

1.PHP.iniを以下のように設定(Apach\bin下のファイルを編集すること)

[mbstring]
mbstring.language = Japanese

mbstring.internal_encoding = EUC-JP

mbstring.encoding_translation = Off

2.MySql(my.conf)の設定

[client]
default-character-set=utf8

[mysqld]
default-character-set=utf8
character-set-server = utf8
collation-server = utf8_general_ci

[mysqldump]
default-character-set=utf8

[mysql]
default-character-set=utf8

以上のように設定しました。

PhpMyAdminで確認したところ、PhpMyAdminで投入したデータが化けていました。

ここで結構悩みました。

実は、私はMySQLを利用するのが初めてでDB作成時に何も気にせずにDBを作成してました。(照合順序はLatin系・・・)

そりゃ化けるよね。

で、新たにDBをJapanese系で作成しなおしました。

するとPhpMyAdminでは正常に日本語が表示されました。

でも自分で作成したPHPプログラムからは、まだ化けている状態でした。

色々とサイトを調べた結果、DB接続後に以下のSQLを発行すれば良いとのこと。

"SET NAMES SJIS"

上記を発行した後にSelectした結果、正常に日本語表示できました。

あー疲れた・・・これが正直な感想。

ちなみにSQL発行毎に"SET NAMES SJIS"を発行するのは面倒なので、DBアクセス用のクラスを作成し、DB接続後に上記を発行するようにすれば良いと思います。

それにしても文字化け対応だけで、4~5日悩みました。

今までSQLServerに慣れていた為、非常に辛いです。

やっぱりPHP環境は辞めようかな・・・といいながらVisual Studio 2005 Expressをダウンロードしています。

| | コメント (2) | トラックバック (0)

2006年3月14日 (火)

PHPEclipseによるPHP開発環境の構築

PHP で開発するにあたり、まず開発環境の構築を行いました。

開発する手法も多々あるみたいですが、 PHPEcripse を選択しました。

それじゃ早速、環境構築開始。

PHP については殆ど無知な私を助けてくれたのは このサイト です。

上記サイトを参照することで、環境構築はできるハズです。

 

ちなみに私の環境は以下の通りです。

OS:Windows XP Professional SP2

 

全体的な環境構築の流れは以下の通り。

(詳しい内容は上記サイトを参照して下さい)

1. J2SE Runtime Environment のインストール

2. Eclipse 3.1.2 のインストール

3. Eclipse 3.1.1Language パック(日本語化)のインストール

4. PHPEclipse1.1.7 のインストール

5. XAMPP のインストール

6.デバッグ環境の構築

7. Win Help のインストール

 

インストール時に初めて知ったのですが、 PHP のバージョンって4.x と 5.x があるんですね。何が違うか少し調べたら 5.x 系はオブジェクト指向だって。

私は元々 Java や .net でオブジェクト指向開発していましたので、何の躊躇もせずに 5.x 系を利用する事にしました。

よって私がインストール時に利用したモジュールは以下となります。

モジュール種別

ファイル名

J2SE Runtime Environment

jre-1_5_0_06-windows-i586-p-iftw.exe

Eclipse 3.1.2

eclipse-SDK-3.1.2-win32.zip

Eclipse 3.1.1Language パック

NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip

NLpack1-eclipse-SDK-3.1.1a-win32.zip

PHPEclipse1.1.7

net.sourceforge.phpeclipse_1.1.7.bin.dist.zip

XAMPP

xampp-win32-1.5.1-installer.exe

DBG

dbg-2.11.32-win32-php5.zip

先に書きますが、上記環境だと PHPEclipse にてデバッグはできません。

(私はできませんでした・・・。知っている人がいれば教えてください)

問題を含めて以下に記述しますね。

1. J2SE Runtime Environment のインストール

2. Eclipse 3.1.2 のインストール

3. Eclipse 3.1.1Language パック(日本語化)のインストール

バージョンですが、 2006 年 3 月 12 日現在、 Eclipse3.1.1 のモジュールしかありませんでした。気にせずインストールしたところ、 Eclipse のバージョン情報が 3.1.1 になってます。

まあ日本語化はできていますので、大丈夫じゃないかな。

4. PHPEclipse1.1.7 のインストール

5. XAMPP のインストール

これをインストールすることにより、 Apach 、 MySql 、 PHP 等がインストールされます。

こんなインストーラがあるなんて・・・何て簡単なんだ!と感動してしまいました。

この時点で localhost にアクセスしてみると、正常に XAMPP のトップ画面が表示されています。ちなみに起動時はディフォルトで PHP5.1.1 が起動します。

PHP4 に切り替えたい場合は、 php switch を起動する事により変更ができます。

Phpswitch_1

Php.ini の中身を以下のように設定しました。

[ mbstring ]

mbstring.language = Japanese

mbstring.internal_encoding = EUC-JP

mbstring.script_encoding = SJIS

 

ここまで問題なく進みました。

 


6.デバッグ環境の構築

ここで完全にはまりました。

DBG サ イト よりモジュールをダウンロードするのですが、最新バージョンは 2.20.1 であり、このバージョンは PHP5.1.2 までサポートされています。

しかし、このサイトからダウンロードできるバージョンは 2.11.32 ( 2006 年 3 月 13 日現在)です。

このバージョンでは PHP5 の 5.0.0, 5.0.1, 5.0.2 , 5.0.3 のみがサポートされています。

そうなんです、私がインストールした XAMPP1.5.1 では PHP は 5.1.1 がインストールされているので、 dbg モジュールが対応不可なのです。

試しに 2.11.32 のバージョンをインストールしてみました。

インストールは DBG モジュールを解凍した時に作成される“ i686 ”フォルダの“ php_dbg.dll-5.0.3 ”ファイルを php_dbg.dll にリネームして、 php.ini に定義されている extension_dir (私の環境では、 C:\Program Files\ xampp\php\ext )にコピー。

これで apach を再起動してみると以下のエラー(指定されたモジュールが見つかりません。)が表示されます。

Apach_php5_err1

やはり、 DBG モジュールが対応していないので、 PHP5 環境のデバッグを諦めました。

次に PHP4 系でデバッグを試みる事にしました。

DBG サイトより PHP4 用のモジュールをダウンロードしました。

でもこのバージョン( 2.11.32 )では PHP4 への対応バージョンも 4.3.x ~ 4.3.10 までしかサポートされていない・・・

ちなみに XAMPP1.5.1 の PHP のバージョンは 4.4.1 です。

駄目元でインストールしてみました・・・。駄目でした。

ここまで調査に一日費やしましたが、今回は DBG を利用したデバッグ環境構築は諦めました。

 

補足ですが、 PHPEclipse1.1.7 もデバッグに問題があるみたいです。

リリースノート を確認したところ、このバージョンは 1.1.6 より多少デバッグ支援が良くなっているが、より良いサポートを受けたい場合は、 1.1.8 の正式リリースを待つか、 Eclipse3.0.x+PHPEclipse1.1.4 の組み合わせで使用すべきだって・・・

 

ここまで長い道のりでしたが、 DBG の利用を諦め、以下のバージョンでインストールしました。( DBG の次バージョンは PHP5.0.4 をサポートするだろうという安直な考えです)

モジュール種別

ファイル名

J2SE Runtime Environment

jre-1_5_0_06-windows-i586-p-iftw.exe

Eclipse 3.1.1

eclipse-SDK-3.1.2-win32.zip

Eclipse 3.1.1Language パック

NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip

NLpack1-eclipse-SDK-3.1.1a-win32.zip

PHPEclipse1.1.7

net.sourceforge.phpeclipse_1.1.7.bin.dist.zip

XAMPP 1.4.15

xampp-win32-1.4.15-installer.exe

DBG

インストールせず

 

最後に、どうしても DBG を利用して開発環境を構築したいという方は以下のバージョンでインストールすれば対応可能だと思います。(検証はしていません)

モジュール種別

ファイル名

J2SE Runtime Environment

jre-1_5_0_06-windows-i586-p-iftw.exe

Eclipse 3.0.2

eclipse-SDK-3.0.2-win32.zip

Eclipse 3.0.x Language パック

3.0.x 用でも大丈夫みたいです。

PHPEclipse1.1.4

PHPeclipse-1.1.4-features.zip

XAMPP

xampp-win32-1.4.12-installer.exe

DBG

dbg-2.11.32-win32-php5.zip

 

正直、疲れました。環境構築に 2 日以上かかるなんて・・・(結局完全ではないし)

これが 35 歳という年齢によるものかなと思い、ちょっとへこみました。 (-_-;)

まだ echo 文しか書いてないよ。

無料簡単携帯サイト作成ASP 3キャリア対応 ←私が作ったASPです。決して怪しくないので使ってみて下さい。m(__)m

| | コメント (0)

2006年3月 8日 (水)

食わず嫌いのPHP

私の過去の開発経験ですが、約5年ぐらい前からJavaを3年ぐらい行ってました。

その後、2年間(会社を退職するまで)はASP.NETをしてました。

基本的に私はサーバサイドが得意で、やっぱWEBシステムはオブジェクト指向言語だよね・・・って感じで仕事してました。

Javaや.netを選択していた理由は、お客様が大手ばかりだったからです。

勿論、PHPやPerlが大手で使えないという訳ではないのですが、100人月以上のプロジェクトでオールPerlなんて現実的ではないと考えていました。

そういう理由もあって、PHPという言語には全く興味を示さない状態でした。

というかPHPを利用するメリットすら調査しない状態でしたので、ある意味頭が固くなっていたのでしょうね。

ところが最近(会社を辞めてから)、WEBを見ていると以前と異なり、サンプルコードがPHPで紹介されている事が多い事に気が付きました。

あれっ?.netのサンプルが少ない事はわかるけど、Javaも少なくなっているのでは?

もしかしたらPHPって結構使いやすい言語なのかな・・・

そういう訳で、本日PHPの書籍を買ってきました。

これ以上、言語を覚えるのは無理と思ってましたが、やはりプータローの危機意識は凄いと自分でも感心してしまいました。

というのも私は実業務レベルで、C#、VC++、C、Java、VB、Win16,32API等と多数の言語で開発してきたので、もう新たに言語を勉強するのは嫌と感じてたのです。

しかし今後フリーとして活動していく事も視野に入れている為、今までのような.netでのシステム構築はお金がかかるので中小企業様に提案するのにBestな言語ではないと感じたので勉強しようと思いました。

そういう訳で、今後、PHPも勉強してみます。

勉強する上で良いサイトがあれば教えていただければ幸いです。

| | コメント (0) | トラックバック (0)

2006年3月 6日 (月)

Ajaxってどうよ!

私は前職でWebシステムを主に行っていました。最近では.netが中心でしたが、数年前までJavaも行っていました。

私の担当業務はSEではなくPMです。(ブログのタイトルにはSEと書いているけど・・・)

担当案件は同時にいくつか持っていて、やはり毎日忙しかったです。

また私が担当していたお客様は、恐らく皆さんが良く知っている一部上場の大企業様ばかりでした。

そういう訳で、ほとんどのプロジェクトは業務システムであり、Webシステムにおいてもクライアントサイドのユーザビリティを優先していませんでした。(ユーザビリティ以上に重要な要件があったからです)

こんな案件を担当していたので、サーバサイドの知識はかなりつきましたね。

で、ユーザビリティを優先するようなプロジェクトの場合、サードパーティ(BizBrowser等)やWindowsアプリを提案していました。

JavaScriptを用いたユーザビリティ向上提案なんて全く行いませんでした。

なぜかって?そりゃそうでしょ、JavaScriptでユーザビリティを向上しようと思ったら、工数は増加するし、お客様が当然のようにJavaScriptで実装しましょうという雰囲気になるからね。

こういう表現するとJavaScriptの知識がないだけでは・・・と思われるかもしれませんが、JavaScriptを導入する最大のデメリットとしてクロスブラウザ対策があります。

サーバサイドの技術ではある程度、フレームワークで対応できますが、クライアントサイドはそのような技術はあまり出ておりませんし、大企業で使えるだけの実績がないのが現状です。

そういう訳で私はクライアントサイドには関わらないようにしていました。(Web案件ではね)

ところが、最近流行りのAjax・・・

こりゃすごい!これが私の第一印象。

でもね内容を見てみると、JavaScript・・・・

確かに凄いよ、JavaScriptでここまでできるなんて私は全く思わなかったからね。

でもね、GoogleMapsのような事をJavaScript(Ajax)で簡単にできるとクライアントが感じてしまったらどうなるでしょう?

そりゃもう大変ですよね、開発者の方は・・・

どうせAjaxが流行るなら、JavaScriptをラップするフレームワークがもう少し進化してからにして欲しかったです。

と愚痴がありますが、そんな事はクライアントにとってはお構いなしだと思います。

よって私も勉強する事にしました。

JavaScriptだけは絶対に勉強しなくても良いと思っていたのに・・・

こんな呟きが出てしまいますが、ここにAjaX勉強宣言をしたいと思います。

今後少しずつ勉強した結果をアップしたいと思いますので、ご意見をお聞かせくださいね。

| | コメント (0) | トラックバック (0)