[最新記事] [過去ログ]

1/10(Wed)

/** 目指せ! DBSP!! Part2 */ 「DB Magazine」完読ぅ! 結局、知らないことがわんさと出てきました。 ・Net8 - Oracleサーバとクライアントの通信に必要なミドルウェア ・DTS(Data Transfer Service) - SQL Server付属の汎用データ変換ツール ・昨日も書いた、SQL Server2000 for Windows CE Edition → それに伴う、モバイルデータベース市場の動向など ・Oracle XDK(XML Developer's Kit)で出来ること - XMLをDBに入れたり、DBからXMLを作ったり ・ちまたで「Parm OS」なるものが流行っているらしいこと - 互換機たくさん(^^) ・DWH(Data Ware House)とOLAP(On-Line Analytical Processing) →大規模データベースと、検索、分析方法、Webとの連携など ・PL/SQLのJavaラッパ - PL/SQLをJavaから利用する方法 ・Visio2000を使ったデータベースモデリング ・Oracle Master Orgの存在 - http://www.oracle-master.org/ ・MCDBA(Microsoft Certified Professional DataBase Administrator)の存在 などなど。(もちろんこれだけのワケないですが(^^;) ほとんどが、ベンダー固有のものですが、 実際を知らないで、理論だけ勉強してても、対応付けが出来ないため、 全然頭に入らないので、勉強しても効果半減っていうのはあるかも。 だから、去年は勉強してても面白くなかったし、午前しか点を取れなかったってのも、 ある意味うなづけるのかも。 むろん、DWHなんてのは、家庭じゃ実践不可能だから、 理論を叩き込むしかないんだけどね。 ただ、RDBベースのDWHなんてのがあるように、 他の知識が全く役に立たないわけじゃないから、全く無ではないけど。 多分、マイクロソフト周りのことは、お金がかかるからあんまりやらないけど、 LinuxにOracleをインストールして、DBSPとOracle Masterと並行させる作戦は、 かなりアタリのような気がしてきた(^^; 憶測の域を出ない予感ではあるけど。

1/9(Tue)

/** 目指せ! DBSP!! Part2 */ 「DB Magazine」を読んでいると、DBのトレンドが分かって面白いです。 Windows路線が基本的に好きじゃないので、 CE版SQL Serverなんて記事を読むと、結構新鮮だったりします(^^; でも、PC - IISを経由して、HTTPでレプリケーションできたりして、 結構技術的にも面白そうな気がします。 よくitecの参考書を読んでいると、 高度合格には、トレンドを押さえておくことも必要。 と書いてあるので、あながちこの雑誌を買っているのも はずしていないのかも。 まあ、そういうトレンド問題は、午前に出題されることが多いけどね。 (去年のNetworkの、「XML」とか「IPv6」みたいに) /** おバカコーディングに発狂寸前(>_<; */ 今までこんな気分になったこと無かったのに(T_T) 長ったらしくて、分かりにくいってのもあるけど。 そもそも、関数分割の意味って何? ってのが分かってないらしい。 共通処理を関数にまとめて使いまわせば良いのに、 処理の流れを単にぶつ切りにしてるだけなんだもん(T_T) ぜぇんぜん意味無し。 関数呼び出しは、全部キャストしてあるし、 strcpy → strcat → strcat → strcat → ... とかいう、 いわゆるsprintfを使いましょう的コーディングだし、 グローバル変数使いすぎだし、変数の意味分からないし、 コメント無いし、ドキュメント無いし... もう、何もかもダメ。 しかも、会社名と名前は残ってるのに、当事者はいないし。 せめてプログラム設計書でもあれば... っていうか、indentがインデントを直してくれるように、 おバカなコーディングを読みやすくしてくれるツールなんてないものかねぇ。

1/8(Mon)

/** 寒さが一段と厳しくなってきました。 */ 手紙風?(^^; 昨日は、夕方に出かけたら、ちらほら雪が降っていて、 「こりゃあやばいなぁ」 とか思っていたら、案の定帰りは、雪が結構強くなっていました(T_T) 雪の中自転車に乗っていると、意識朦朧でやばいですね(^^; これからますます寒くなるので、風邪には気を付けましょう。 (→ここんとこ、全然縁が無い。バカになった証拠?(^^;;) /** 自転車の鍵が無い! */ いつも入れてある机の引出しの中にないので、 コートのポケットの中とか、ズボンのポケットの中を探すも無し。 付けっぱなしかと思って、自転車置き場に行ってみるも無し。 ・ごみと一緒にまぎれて、行方不明になっちゃった ・どこかに落っことしてきちゃった ・誰かに鍵だけ持っていかれちゃった と、半分ワケのわからない想像を働かせながら探すも、 やっぱり見つからない。 が、ピンときた場所を探してみると... 「あった!」 思わずガッツポーズ(^^; プリンタの給紙トレイの下に隠れてました。 給紙トレイの下とはね(^^; まじで、「やられた!」っつー感じでした(^^;; (写真は今日とったもの。) /** JRunでEJB */ どうやら、とんでもない勘違いをしていたらしい(^^; JRunのサンプルを真似して、雑誌のサンプルを動かそうとしていたのだが、 JRunのサンプルは、Entity Beanだったのに対し、 雑誌のサンプルは、Session Beanだったという(^^;; っていうか、とりあえず簡単そうなSession Bean動かしてみたいじゃん。 しかし、JRunのsamplesディレクトリ中には、Entity Beanのサンプルばっかりあって、 一部Session Beanのサンプルもあるものの、すっげぇ複雑っぽいし。 あと、EJB1.1で登場した、Event Driven Beanなんかのサンプルもあるみたいだけど。 つまりJRun3.0は、EJBの基本は理解していて、 EJB1.1の新機能を試したい人向けだったなぁと。 ということで、やっぱりJRunあきらめました(>_<; 逃げ道があるうちは、あきらめが肝心だよね(^^) なんで一週間も経ってから、こんなことが判明したかというと、 読むべきドキュメントが英語だったから、避けて通ってきたってわけ(^^; やっぱり、英語だろうと、日本語だろうと、 必要なドキュメントには目を通しましょう。 ということで、基本に立ち返って、NTしかサポートしていなかった J2EEのサイトに行ってみることに。 ...すると! Now Available! Linux みたいなことが書いてあるし! 情報量なら、J2EEの方がいっぱいありそうだから、こいつに乗り換え決定。 サポートがRedHat6.0 & RedHat6.1のみで、 6.2ベースのVine Linux2.0で動くのか? っつー心配はあるけど、とりあえずはチャレンジやね!

1/7(Sun)

/** 技術的方向性 */ 今年は、「オブジェクト指向設計者」を目指そうかなと。 そのためには、「UML」と「デザインパターン」の習得は必須。 既に、UMLは某書籍を読みながら勉強中だったりするし(^^; あと、「コンポーネント指向」に関連して、「EJB」が盛んになりつつあるので、 これを早く押さえておかないといけないね。 → 実験してるんですが、うまく行かないんです...(T_T) 一昨年ぐらいから、やらなきゃなぁとは思っていたんだけどね... ついでに、「ディレクトリサービスが面白そうだ」との外部情報から、 OpenLDAPを使った実験を始めてみました。 → チュートリアルがあったおかげで、実験がすっげぇスムーズに進んでます(^^) もちろん、「Oracle」に関しては、Oracle Master Goldを視野に入れつつ、 テクニカルスペシャリスト(データベース)も目指して、 データベース技術を向上させるのは言うまでもなく。 「Java」についても、Sun Certified Developer for the Java2 Platform は取るつもり。 設計者目指すなら、むしろArchitectのような気がしないでもないんだけどね。 まあ、それはあとでも可能だから。 こんなことを言っていたとしても、 また今年も新しい技術が生み出されて、そっちに傾倒している可能性もあるし、 そもそも、計画が自分にとって壮大過ぎて、実現しないかも(^^;; まあ見ててよ。ぐらいの意気込みで行くつもり。

1/6(Sat)

/** メタサーチエンジン */まとめてサーチエンジン」みたいなヤツは、メタサーチエンジンと言うそうで、 うちのみたいに、いくつもウインドウが開くやつとか、 ドロップダウンから選択したサーチエンジンを使って検索するものとか、 サーチエンジンの結果をまとめて、表示するものなど、 いろいろあるみたいです。 っていうか、サーチエンジンの結果って、二次利用しちゃいけないんじゃなかったっけ? それを考えると、一番最後のやつは危ない気が... ここに実在してるんですけどね... しっかし、既にこんなのがあったとはなぁ... まだまだ、情報収集能力に乏しいようです(-_-; /** ブックマーク整理 */ した方がいいですよ。まじで。 気が付くと、よく使っているページが5階層も下にあったり、 全然使わないのに、ルート直下のフォルダに格納してあったり、 全然違うカテゴリに属しているものがあったり。 ベンダー資格で使う、Prometricのサイトも、 /computer/Language/Java/資格試験 の下にあったりしたけど、 /computer/資格試験 の下に移したりしました。 前は、Sun Certified Programmer受けていたから、そこでも良かったんだけど、 Oracle Masterとかもあったりするから、Javaに限らないしね。 とまあ、こんな感じで出てくるので、整理は重要です。 自動でうまくやってくれるといいんだけどね(^^; ある人が決めたポリシー(ルール)にしたがって、情報を整理する... そんな研究もあったりするのかしらん? /** CBT(Computer Based Training) */ 最近、この言葉を良く聞くようになってきました。 コンピュータを利用した、自己学習ソフトのことを指すのですが、 僕がOracle Master Silver取得用に買ってきた本に付いてきた、 「iStudyシリーズ」などは、まさにCBT用ソフトの一例としてあげることが出来ると思います。 こういった、「〜用学習ソフト」というのは良く耳にするのですが、 汎用の学習ソフトってのは、あんまり聞かないんです。 そういうのがあれば、売れるような気がするなぁって、 前々から思ってたりするんですが。 今年度の卒業(予定)生で、そんなのを研究しているやつがいましたが、 あんなショボいのじゃ全然ダメだし(^^; XMLとかを使って、本格的にやってるのは無いのかなぁと思い、 http://www.xml.org/を調べて、既にそういうタグセット(ボキャブラリ)が無いか調べましたが、 どうやら無さそうです。 う〜ん。 絶対どこかでやってると思うんだけどなぁ...

1/4(Thu)

明日から仕事...(T_T) /** JRunでEJB */ まだまだ動かなそう...(T_T) まだ、設定ファイルの記述が足りないらしい? Servletの時も、JRunちっとも動かなくて投げたけど、 今回もそうなるのかも... まあ、ドキュメント(英語)をちゃんと読まないのがいけないんだけど(^^; jBossに乗り換えるか!? /** 目指せ! DBSP!! Part2 */ データベースの過去問買いに行ったのに、全然売ってないし(T_T) 一応、新制度になったから、過去問が無いってこと? 確か、itecのページには、出版するようなことが書いてあったような。 ちなみに、予想問題集は表紙も新しくなって、売ってましたが。 明日の会社帰りに秋葉原でも行って、探してみますか... お目当ての本が無かったので、仕方無く「DB Magazine」とかいう、 すっげぇ濃そうな(^^; 雑誌を買ってきてしまいました。 まだ、パラパラっとしか読んでませんが、 SQLのパフォーマンスチューニングで、役に立つテクニックを一つ見つけたので、 それだけでも、すっげぇ得した気分(^^) 今月号は、せっかく本屋に行ったついでってのもあったんですが、 特集が、「最新EJB完全攻略ガイド」だったってのも、買いの理由。 データベースの最新動向を追う意味でも、これは毎月買いかもねぇ。 それ言い出したら、ネットワーク系の雑誌とか、UNIX系の雑誌とか、 色々買わなくちゃいけないハメになりそうなんですが(^^; /** 目指せ! Oracle Master Silver!! */ 試験前1週間前っつうことで、試験前対策をお送りしたいと思います。 まあ、相変わらず僕の弱点しか補ってないけど(^^;; こうやって、自分の知識を再確認することが、資格取得には重要かも。 (さらに、読んでいる人からツッコミがあれば、もっと役に立つんだけどね〜) ・ユーザが使える容量の制限 ユーザを作成するには、「CREATE USER 〜」というSQLを使います。 この時、「QUOTA サイズ ON 表領域名」とすると、 ユーザが使える領域を制限することが出来ます。 僕の持っているSilver本には、これを指定しないとサイズが0になる。 と書いてありますが、指定しなかった場合でも、テーブルなどを作成できます。 試しに、「select * from user_ts_quotas;」で調べてみると、 使用可能領域が、いくらか設定されていることが確認できます。 そこで、サイズに0を明確に指定すると、以下のような結果になります。 SQL> select * from user_ts_quotas; TABLESPACE_NAME BYTES ------------------------------------------------------------ ---------- MAX_BYTES BLOCKS MAX_BLOCKS ---------- ---------- ---------- USERS 0 0 0 0 と、見事に全部ゼロになり、テーブルを作ろうとしても、 SQL> create table test 2 (id int); create table test * ERROR at line 1: ORA-01536: space quota exceeded for tablespace 'USERS' のように、制限を越えてるよん。と怒られる結果になります。 ちなみに、サイズに「UNLIMITED」を指定すると、 SQL> select * from user_ts_quotas; TABLESPACE_NAME BYTES ------------------------------------------------------------ ---------- MAX_BYTES BLOCKS MAX_BLOCKS ---------- ---------- ---------- USERS 0 -1 0 -1 のようになります。 ・オブジェクト名、列名に使える文字 命名規則のルールは以下の通りです。 1. 文字で開始する 2. 30バイト以下 3. 英数字、記号($_#)、漢字、ひらがな、カタカナが使用可能 4. 予約語は使えない 5. 同一スキーマ内では、一意でなければならない 6. 大文字小文字の区別は無い 1に関してですが、平たく言えば、数字と記号で始まっちゃいかんよ。 つうことです。 SQL> create view %234_view 2 as 3 select * from test; create view %234_view * ERROR at line 1: ORA-00911: invalid character このように怒られるわけですね。 あと、6に関してですが、ODBC経由でテーブルをエクスポートした場合など、 テーブル名が「Table_name」のように、大文字、小文字混じりになったりすると、 「SELECT * FROM table_name」や「SELECT * FROM Table_name」 では、テーブルが無いというエラーは発生します。 これに関しては、 「SELECT * FROM "Table_name"」とやることで、 この問題を回避できます。 厳密に言えば、大文字小文字の区別をしているといったところでしょうか。 ・列に付けられた制約の確認 USER_CONSTRAINTSデータディクショナリで行います。 SQL> desc user_constraints; Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER NOT NULL VARCHAR2(30) CONSTRAINT_NAME NOT NULL VARCHAR2(30) CONSTRAINT_TYPE VARCHAR2(1) TABLE_NAME NOT NULL VARCHAR2(30) SEARCH_CONDITION LONG R_OWNER VARCHAR2(30) R_CONSTRAINT_NAME VARCHAR2(30) DELETE_RULE VARCHAR2(9) STATUS VARCHAR2(8) DEFERRABLE VARCHAR2(14) DEFERRED VARCHAR2(9) VALIDATED VARCHAR2(13) GENERATED VARCHAR2(14) BAD VARCHAR2(3) RELY VARCHAR2(4) LAST_CHANGE DATE SQL> select constraint_name, constraint_type, table_name 2 from user_constraints; CONSTRAINT_NAME C TABLE_NAME ------------------------------ - ------------------------------ SYS_C001233 C TEST SYS_C001234 P TEST 二番目のフィールドで、制約の種類が識別できます。 上の行が、TESTテーブルに「NOT NULL」の制約を、 下の行が、TESTテーブルに「PRIMARY KEY」の制約を表わしています。 (C: NOT NULL or CHECK, P: PRIMARY KEY, U: UNIQUE, R: REFERENCES) 列と制約の関係を見るのは、USER_CONS_COLUMNSじゃないとダメらしい... また、CONSTRAINTで明示的に作った制約ではないので、 「SYS_C〜」というデフォルトの名前が付けられています。 さらに、PRIMARY KEYか、UNIQUEキーワードが付けられた列には、 自動的にインデックスが張られることになっているので、 上記の例では、SYS_C001234というインデックスも作成されていることになります。 今日はこんなところ?

1/3(Wed)

/** 目指せ! JavaScriptの達人!! */ form target = "..."でやろうとすると、 どうしても、Netscapeが同じウインドウを使ってしまい、 各サーチエンジンごとにウインドウを開くことが出来ないので、 方向性を変えました。 (どうやら、タイミングの問題らしい。) もっとシンプルに、各サーチエンジン用にHTMLを用意して、 そいつらのonLoadイベントをひっつかまえて、submitさせると。 これなら、各ウインドウが別々に処理を行うので、 タイミングは関係無く処理を行わせることが可能でした。 詳しくは、ココを見て下さい。

1/2(Tue)

/** はちゃめちゃ料理教室 */ 今年の第一弾は、これ! 「カレーラーメン」 ・材料 インスタントラーメン カレー ・作り方 普通にインスタントラーメンを作って、 その上にカレーを乗せるだけ♪ ・試食 最初は、なんかいけないことをしているような気分でしたが(^^; 食べてみると、結構おいしかったです(^^) 実は、インスタントカレーラーメンのCMやってるぐらいだし。 /** 目指せ! JavaScriptの達人!! */ 多分、今回で終わりだと思う。このコーナー(^^;; 昨日ふと、一回キーワードを入れるだけで、複数のサーチエンジンを使って、 その分だけ結果を表示出来たら、使えるんじゃないの? とか思って、いろいろ実験してました。 複数の問い合わせを、一つのアクションで行うには、 複数のフォーム(target = _blankなやつ)を一つのHTML上に作り、 ボタンクリックイベントなどで、JavaScriptを呼び出して、 各フォームのsubmitをループで呼び出せばOKです。 ところが、IEではうまくいくものの、 Netscapeでは、なぜか、最後の問い合わせの結果だけしか、 新しいウインドウで表示されません。 _blankにもかかわらず、最初のウインドウに次の結果が 上書きされてしまっているような感じになってしまいました。 <script language = "JavaScript"> function button_Clicked() { for(i=1; i<=3; i++) { document.forms[i].submit(); } } </script> 試しに、submitとsubmitの間に、alertを入れてみると、 うまく3つのウインドウが表示されたりします。 そこで考えたのが、微妙に間隔を入れる方法。 <script language = "JavaScript"> var NUM_SEARCH_ENGINE = 3 // フォームの数(サーチエンジンの数になる予定) var status = 1; // どのフォームを処理しているかを表わす変数 var timer_id = new Array(NUM_SEARCH_ENGINE + 1); // TimerIDを格納する配列 function button_Clicked() { // 各フォームのdummy変数に値を代入する document.forms[status].dummy.value = "dummy" + status; // 各フォームをsubmitする document.forms[status].submit(); // 50ms後に、この関数を再帰呼び出しする timer_id[status] = setTimeout("button_Clicked()", 50); // 全てのフォームをsubmitしたら、再帰呼び出し終了 if(status == NUM_SEARCH_ENGINE) { for(i=1; i<=NUM_SEARCH_ENGINE; i++) { clearTimeout(timer_id[i]); } } status++; } </script> これで、IE(5)と、Netscape(4.7)の両方でうまくいきました(^^) あとは、各サーチエンジンの呼び出し方さえ分かればバッチリ!

1/1(Mon)

みなさま、あけましておめでとうございますm(_ _)m。 本年もよろしくお願い致します。 /** LANでマージャン */ 新春早々、3人 + コンピュータでLANマージャンしてました(^^; マシンが3台あったからこそ出来たわざですね(^^;; そして、結果は2勝1敗。 今年は、なかなか順調なスタートを切れそうです(^^) /** JRunでEJB */ どうやら昨日は、JRunのEJBエンジンが起動していなかったことが、 エラーの原因だったらしい。 cd jruninstalldirectory java -Djava.security.policy=jrun.policy -classpath lib/ejipt.jar allaire.ejipt.Ejipt で、起動すると、とりあえずはOKらしい。 あとは、EJBのネーミングサービスに、Homeインタフェースを 登録しなければならないらしいのだが、その方法がイマイチ分からず。 それさえ分かれば、JavaWorldのサンプルが動くかも知れない。 /** Linuxで音楽 */ XMMSとかいう、WinAmpにそっくりなプログラムで、MP3が再生出来ました。 Vine Linux2.0の設定ユーティリティ(?)setupで適当にサウンドカードの設定しただけなのに、 あんまりにも簡単に出来ちゃってびっくり。 ちなみに、MIDIもOKだったりします。 こっちは、SoundBlasterのAWE音源しか使えないけど、 それなりに立派な音が鳴って、やっぱりびっくり。 着実に、デスクトップ環境としてのLinuxが完成しつつある といったところでしょうか。
[最新記事] [過去ログ]