カテゴリー「プログラミング」の16件の記事

2007年2月 5日 (月)

EclipseでJSFの開発

Eclipse3.2でJSFの開発環境を構築してみました。

JavaSE5.0、Eclipse、WTP(Web Tools Platform)、JFSTools、Tomcat5.5のインストールまでは問題なし。
手始めにJSPとかServletを使ったプログラムを作り、EclipseからTomcatを起動し動作確認。これも問題なし。
次にJSFのプログラムを作ろうと思ったのですが、JSFのライブラリは別にダウンロードしてこないといけないらしいです。ということで、SunのサイトからJSF1.1のライブラリを探してダウンロード。
で、EclipseからTomcatを起動しようとしたら、例外が出てコンテキストが登録されないのです。

ネットで情報を探したら、タグライブラリも別途ダウンロードしないといけないらしいのです。なので、これはJakartaのサイトから探してダウンロード。
そして、ようやくEclipseからTomcatが起動でき、動作確認完了。

JSFは新しい技術で、Sunはすごくチカラを入れているけど、実際にはまだあまり使われていないようです。参考書も古いのしかないです。
次はSun Java Studio Creatorでやってみようと思うのですが、こちらも参考書は古いのばかり。ネットにどれだけ情報があるか分かりませんが、ぼちぼちやってみようと思います。

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

2007年1月30日 (火)

JavaEE5に関する参考書は?

久々にプログラミングの話です。

ウチの部署ではWebアプリケーションも開発しているのですが、未だに一切のフレームワークを使っていません。世間では少なくともStrutsくらいは使っていると思いますが、それすら無くて、全てコーディングしています。おかげで無分別にクラスファイルはできるし、バグはいっぱい出るし、進捗は遅れるしで、大変です。

なんで、フレームワークを使わないか。それは、何を使えばいいのか、どう使えばいいのか、誰も知らないからです。しかも開発に入ると勉強している時間がなくて、それなら作っちゃえ、となります。

それで、結局、大赤字になって、会社の利益を食いつぶしている状態になって、ようやくなんとかしようという雰囲気になってきました。そろそろ世間並みのシステム構成にしようということになったのです。とはいっても、実際に考えるのは僕一人です。他は忙しくてそれどころではないのです。本当はこっちの方が大切なんですが。

で、いろいろ調べています。JavaSE5に関しては参考書がぼつぼつ出ていますね。でもJavaEE5に関しては、ほとんど見つかりません。EJB3.0の本はありました。あとJSF関係の本があればなあ、と思うのですが、あるのはJavaStudioCreatorの本です。できればEclipseで開発したいので、そういうのないかなあ、と探しています。

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

2006年9月 1日 (金)

マッサにマルコにデジにJava

マッサはただの「つなぎ」でしかないと思われていたのに、優勝したことで残留の可能性が大きくなりましたね。ファラーリへの移籍が決まったときには、なぜマッサなのか疑問に思う人が多かったようですが、予想以上の活躍です。

マッサが優勝したおかげで、マルコの優勝の方はあまり目立たなくなった感じがします。今週のオートスポーツ誌には全く記事が載っていませんでした。

ソニーのα100、ペンタックスのK100Dが出た後、パナソニックのLumixL1が出て、今度はニコンのD80とキヤノンのEOS Kiss Digital Xが出ます。その後もフォトキナがあるし、ライカのMデジタルあたりが話題になるのでしょうか。カメラ雑誌は当分ネタに困らずにすみますね。

初心者にJavaを勉強させています。JavaWorldの記事を読んでもらったりした後、いきなり課題プログラムに挑戦してもらっています。しかもInterfaceを使います。普通、こんなに早い段階でInterfaceは教えないのでしょうが、実際のところInterfaceが使いこなせないとマトモなプログラムは作れないので、早めに勉強してもらっています。

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

2006年6月 9日 (金)

きょうは。。。

6月9日で「ロックの日」だそうですが、おそらく日本だけでしょう!

歯医者さんに行ってきました。歯が「しみる」ので診てもらいました。特に虫歯が見当たらないので、掃除をしてもらって、知覚過敏の薬を塗ってもらいました。これでしばらく様子見です。

プログラムを作っていて無限ループ地獄に陥ってしまいました。複雑な処理をやらせようとして、ループが何重にもなってしまったせいで、抜けどころが分からなくなってしまったようです。今日の午後はこの対策で終わってしまいました。

ドイツは初戦、勝てるかなあ。

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

2006年6月 8日 (木)

久々のphp

会社の同僚からphpのエラーのことで質問されました。以前、少しかじったことがあるのでソースを見てみたのですが、最新バージョンではオブジェクト指向が取り入れられているのですね。びっくりしました。僕が知っているのはバージョン3の頃。最新はバージョン5です。それだけ進化したわけですが、相変わらず変数の型を宣言せずに使えるようです。ちょっと安心しました。とは言え、少しは勉強しなきゃいけませんね。

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

2006年3月14日 (火)

5個までしか起動させない仕組み

 仕事でVisualC++を使っていますが、あるプログラムを同時に5個までしか起動できないようにして欲しいという要求があり、Mutexというのを使ってみました。初めて使ったので、使い方が正しいかビミョーですが、一応、思ったとおりの動きはします。ここに書いたコードはMutexを獲得するところまでですが、プログラムを終了するときにClose処理をやってやるのが礼儀正しいやり方らしいです。ま、やらなくても自動でCloseされるようですが。

HANDLE m_hMutex = NULL;

// 最大5個までOKの場合
for (int i=0; i < 5; i++) {

    char name[256];
    sprintf(name, "SAMPLE-%d", i);
    // ターミナルサービス使用時、Global\を付けていると、
    // セッションに関係なくチェックができる
    // sprintf(name, "Global\\SAMPLE-%d", i);

    // Mutex生成
    m_hMutex = CreateMutex(NULL, FALSE, name);
    if (m_hMutex == NULL) {
        // 獲得失敗
        continue;
    }

    if (::GetLastError() == ERROR_ALREADY_EXISTS) {
        // 既に使用中
        CloseHandle(m_hMutex);
        m_hMutex = NULL;
        continue;
    }

    // 獲得
    break;
}
// 獲得できた?
if (m_hMutex == NULL) {
    AfxMessageBox("制限数に達しています");
}

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

2006年2月25日 (土)

Modula-2で改行コードの出力

 JavaにしてもC#にしても結局のろことC言語が元なだけに、ある程度カンで使えます。たとえば改行コードの出力。文字列の最後に改行コードを入れたければ、"\r\n"(UNIXなら"\n")ってしてやるだけでよいのですが、Modula-2ではそうはいかないようです。
 試しに"\r\n"を入れてみたらコンパイルは通りました。じゃあOKなのかと思ったら、"\r\n"がそのまま出力されます。仕方ないのでアスキーコードを指定して改行文字列を作り、目的の文字列にくっつけました。すごく面倒です。ひょっとしたら簡単な方法があるのかもしれませんが、今のところ、非常に面倒な方法でやっています。
 もっとも、普通に改行するだけならWriteLnという関数を実行するだけでよいのですが、ネットワークでやりたかったので、この関数が使えないのでした。

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

2006年2月24日 (金)

WinSockはSocketではないの?

 WinSockは正確にはSocketインターフェースに則っていないという話を聞いたことがありますが、確かに勝手が違います。socket関数の戻り値ですが、エラーになっても負の値にはならないというのにはびっくりしました。別に定義された定数でエラーかどうかを判定しなければいけないらしいです。どうして素直に負の値を返さないのかは不明ですが、エラーになったら-1を返すというUNIX的なお作法が気に入らなかったのでしょうか。
 他にもWSAで始まる関数がいっぱいあります。少なくともWSAStartupとWSACleanupは必須なので使わざるをえません。WinSockのバージョンによっても使える機能は違うようですし、便利と言えば便利ですが、もうSocketではない感じがします。

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

2006年2月21日 (火)

Modula-2でキャスト

 Modula-2のサイト(http://www.modula2.org/ )を調べてみると、CASTという関数がありました。文字通りキャストをしてくれるようです。同じような物を自作していたわけですが、当然、そんなものは既に存在するというわけですね。しかも、CASTの方は第一引数に型名を指定することで汎用的にできているようです。当然、こちらに書き換えました。
 あと、ポインタ変数にアドレスを指定する方法ですが、これも関数があり、ADRというのを使うようです。これは本にも載っていました。C言語なら単に&付けるだけですが、わざわざ関数が用意されているところがModula-2なんですね。おかげで、簡単なプログラムなのにコーディング量が多いです。Rubyの作者のような人なら嫌がるでしょうね、きっと。

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

2006年2月20日 (月)

Modula-2のポインタ変数が。。。

 Modula-2の参考書も手に入ったし、さてプログラムの続きをと思ったら、いきなり壁にぶちあたりました。キャストです。C言語ならなんてことのないキャストですが、型チェックが異常にきびしいModula-2では簡単にはいかないのです。
 例えば、文字へのポインタ(C言語ならchar*)変数の値を別の型へのポインタ(例えばin_addr*)の変数に入れることができないのです。さんざん悩んで、ADDRESS型はどんなポインタでも受け付けるという記述を見つけ、ADDRESS型を引数に持ち、目的のポインタ型(先の例ならin_addr*)を返すプロシージャを作りました。もっと他にいい方法があるのでしょうが、残念ながら発掘した2冊の本には載っていないようです。
 ネットで探してみると、Modula-2に関するサイト(http://www.modula2.org/ )があったので、今度はそこでいろいろ調べてみようと思っています。

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

2006年2月19日 (日)

Modula-2本、発掘しました

 Modula-2の本を発掘しました。自業自得ですが、探すのが大変。全部の書籍にICタグが付いて、どこに埋もれているかすぐに探せるようになるといいなあ、なんてね。
 Paul M. Chirlian著、武市哲也監訳の『Modula-2入門』(アスキー出版)とJ.W.L.オーグルヴィー著、中村和郎監訳の『MODULA-2プログラミング』(マグロウヒル)。購入したのは1990年ごろだと思いますが、どちらも初版は1986年。消費税導入前に印刷されたのか、裏側に価格の書かれたシールが貼られています。こんな本を引っ張り出してこなければならないのは、Modula-2関連書籍が全て絶版状態だからです。捨てないで良かったと思います。(だから本が捨てられなくなり、いざ探そうと思うと大変な思いをするのですが。。。)
 久々に読んでみると、16ビットを前提に書かれていることに時代の流れを感じます。こんな古い本でも、とりあえず役に立ちそうです。何しろ、基本的な文法も忘れていますし、ポインタ変数の使い方が分からないとWinAPIは使えないですから。

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

2006年2月17日 (金)

久々にModula-2を再開

 大学の先生にModula-2始めましたと言った手前、少しはやっておかなくてはと思い、始めました。もう、久々すぎて、サンプル見ないと何もコーディングできません。IF文すら心もとない感じ。代入文は「=」ではなく「:=」を使いますが、ついつい「:」を忘れてしまいます。必要なシンボルはIMPORTしてやらないといけないし、相変わらず面倒。C言語みたいに、宣言がなければ適当に解釈してくれるなんてラクチンなことは許されないのです。
 で、いきなりWinSockを使ったプログラムを作ろうとしたのですが、ちゃんと動かない。しかたなしに専門書を見たら、初期化関数を呼ばないといけないことに気がつきました。そういや、そうだったかも。UNIXだと初期化関数なんか無いから、すっかり忘れていました。先は長そうです。

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

2006年2月12日 (日)

Perlが修了しました

 eラーニング(http://www.netlearning.co.jp/ )の「Perlプログラミング」が終了しました。「.NETテクノロジーにおけるC#」に続き2つ目です。
 Perlを受講していたのは、本当はRubyに興味があるけどRubyは項目になかったからです。あとPerlぐらい常識として知っておいてもいいかな、というのもあります。内容の後半はCGIに特化していました。これはこれで実用性があるのですが、もっとPerl自身の奥深いところも知りたかったかな。
 ところで、先に受講したC#、使わないうちにすっかり忘れてしまいました(ダメじゃん!)。ま、少しやれば思い出すでしょうが(ホントか?)、最近になるまでC#の環境すらなかったですから、なんで受講したのって感じです。。。ちゃんと復習しないと意味ないですよね。

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

2006年2月 9日 (木)

バックグランドでプログラム実行

 VisualC++でプログラムを作っているのですが、バックグランドで別のプログラムを動かそうと思い、調べてみるとCreateProcessという関数を使えばよさそうな感じ。でも、普通に動かすと、一瞬、DOS画面が表示されてしまいます。さらに、プログラムの終了コードの取得方法が分からず、ネットで調べまくり、ようやく解決しました。UNIX環境だと慣れているので何でもないのですが、Windowsとなると簡単なことでも悩んでしまいます。しかも今更な感じのVCだし。

続きを読む "バックグランドでプログラム実行"

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

2006年2月 3日 (金)

VC仲間が増えました

 最近、新たにVisualC++ユーザが一人増えました。その彼は、今までCとJavaは経験があるのですが、C++は経験無しという状態です。で、最初に質問してきたのは、メンバー関数を定義するときに使う「::」です。確かにJavaにはありませんね。C++の場合、時と場合によって「::」と「.」と「->」とを使い分けなければなりません。
 あと、newを使わずにいきなりオブジェクトが生成できるのにびっくりしたそうです。要は構造体変数みたいなものだと教えてあげると納得してくれました。これじゃあCを拡張しただけじゃないかと文句を言われましたが、だからC++なんだと言うと、しぶしぶ納得してくれました。
 いまさらVisualC++というのも気の毒ですが、いい経験にはなるかと。とは言え、同じやるならC#の方がいいでしょうね。

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

2006年1月15日 (日)

Windowsでデータベースアクセス

 いちおうシステム・エンジニアなんで、時にはWindowsのプログラムも作ります。で、今回はデータベースにアクセスするプログラムを作ることになっているのですが、わりと情報が少なくて参りました。
 なんか、ウイザードとか使うとできるらしいのですが、UNIX上がりのプログラマーにはウイザードというやつに抵抗があります。自分でガシガシとコーディングしたいのですが、参考になる情報が少ないです。書籍も少ないし。みんなウイザードでがんばっているということなのでしょうか。ま、最低限のやり方だけは分かったので、あとは何とかなるでしょう!

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