11/30(Thu)
/** 元気な体調不良→? */ こんなの会社の人に読まれてたら、マジやばいって(^^; まあ実際、ちょっと頭痛かったんだけどね。 ムリして仕事しても、いい仕事出来ないよね。きっと。 こんな時思い出す曲が、槙原敬之の「ズル休み」。 あれはいい曲だった。 曲中の主人公は、金曜日に会社をサボって、 空いたコーヒーショップでお腹いっぱい食べるわけですが(^^; 僕はと言えば、近所のコンビニでイカ飯おにぎりを買って食べてるわけで、 ま、しょせん田舎かぁ〜なんて思ったりして。 ついでに、銀行行ってみたり、郵便物送ったり。 公団の管理事務所に寄る機会があったから、 ケーブルテレビなんでやんないの〜? ってケチ付けに言ったら、3/250(世帯)ぐらいしか需要が無いそうです。 なんて高齢化してる公団なんだ...(;_; 引っ越せってことなのかねぇ。 /** さすがはJava! */ 今月号のJava Worldに、Linux版Java2 SDK1.3が付いてたので、 早速インストールしてみました。 で、こないだ作った「EventListViewer」がちょうど1.3の機能を使ってるってことで、 とりあえず「Write At Once, Run Anywhere」が実践されているかどうか、 実験してみることにしました。 案外、soundみたいなややこしい機能になるほど、ダメっぽいだろうし(^^; 結果は、AWTExceptionがゾロゾロ出るものの、 SMFファイルの処理は全然OKでした。 もう、さすがはJavaって感じですね。 音を鳴らすアプリとかになってくると、難しいのかも知れないなぁ。 /** ド級マイナー言語「Python」...3年後には流行る予定(^^; */ PythonでCGIってとこまできました。 後出の言語らしく、「HTMLやCGIについては、十分理解しているものとする」 のような文言が書かれていました。 まあ、Python言語自体、普通の人がテを出す言語じゃないけど、 Pythonの前に、色々勉強しなくちゃならないのは大変だねぇ。 「初めてのPython」は、C言語とPerl(特にPerl)を知ってると、意外にすんなり読めるけど、 Lispの話も結構出てくるので、これも知ってるとさらに理解できるのかもねぇ。 僕は、Lispは関数の言語だっていう知識しかないけど。 (そして、カッコがやたら多いってやつね(^^;) 「初めてのPerl」の前提は、せいぜいC言語ぐらいだったけどねぇ。 /** 目指せ! Oracle Master Silver!! */ Silverに必要な科目のうち、「SQL」に関しては楽勝っぽい。 NVLやDECODEなど、Oracleに特有っぽい関数を除けば、 別に普通のSQLだし、6〜7割は既に理解してるでしょ。きっと。 ま、30分で20問の試験ってのもあるし。 早ければ、今年中にエントリー&受験の可能性も。 とりあえず環境を整えるべく、Oracleのユーザを作ってました。(scott/tigerでもいいんだけどね...) Oracleでは、ユーザを作るってのまでSQLになってるので、 CREATE USER username IDENTIFIED BY password って感じでユーザ作りました。ここまでメチャ簡単。 で、早速SQL*Plusを使おうと思って、 「sqlplus taka/taka」 とログインしようと思ったら、 「CREATE SESSION権限がありません。」 のようなエラーが出てログインできず。 とりあえず本を見つつ、CREATE SESSION権限を与えると、何とかログインは出来ました。 「GRANT CREATE SESSION TO taka」 ただ、それしか権限が無くても、何にも出来ないので、 本を見つつ、CREATE TABLEとか、CREATE SEQUENCEなどの権限を適当に与えていきました。 そうして、ワケが分からなくなってきたところで(^^; 次のページを見てみたら、「ロール」なる概念が載ってました。 これは簡単に言えば、権限を一まとめにしたようなもので、 「GRANT CONNECT TO taka」 とやるだけで、CREATE SESSIONとか、CREATE TABLE、CREATE VIEWなどの権限を いっぺんに付加できる便利機能なのでした。 とりあえずロールで権限を付与しようと、いままでの権限を取り消すべく、 「REVOKE ALL FROM taka」とか「REVOKE ANY FROM taka」とやるも、 そんなSQLねぇよ! と怒られる(-_-; 仕方なく、「DROP USER taka」で消し飛ばしてしまいました(^^; まあ、そんなこんなで無事ユーザを作成出来ました(^^)v まだまだレベル低いです... ようやくOracle Master Aluminumぐらい?(^^;11/29(Wed)
/** 捨てつつあるC言語 */ C言語捨てる人って多いんだってね。 僕もそんな中の一人になりつつあるけど、 やっぱりCってある意味基本だから、使えないとダメだよね。 ところで、「popen」なる関数を覚えたので、使ってみました。 perlで言うところの、open("command |")ってとこでしょうか。 つまり、コマンドの出力をファイルとして扱える機能のことです。 しっかし... いくらC言語のような低級言語を使っていなかったとはいえ、 fgetsの使い方もきれいさっぱり忘れている現状には、 なかなかツライものがありますなぁ(^^;11/28(Tue)
/** あんまりアテにはならないけど... */ 「新システム」なるアテにならない構想をエサに、残留を打診された。(←ある意味すごいよね(^^;) どうやら、直接的に抜けたいと言ったわけではないのに、 こっちの考えは筒抜けだったらしい(^^; 向こうの言い分では、新システムに携わる人員に必要なスキルは、 業務の理解が一番、新技術二番といったところで、 今の連中に、新技術をすり込むのが速いか、技術を知ってる人間に業務を覚えさせるのが速いか。 といったところ。 僕の証券業務の理解度は、今やっているものも含めて、 担当したものについては、それなりに理解しているが、 いかんせん、証券業務の常識的な知識が欠けているために、 ショボイものになっている。 ただ、回りの連中、特に「VBオジサン」に至っては、 Excel VBAを覚えることが、将来につながるなどと考えており(マジで(^^;)、 とても技術力が高いとは言えない。っていうか、ftpが使えないほど低い。 しかし、Web回りはこれからでも、技術力が高い人間がいないわけでもない。 さて、なんで「アテにならない」かというと、 こんなお寒い状況の中、そんなに使える人間が集まるか? っていうのと、今汎用系がらみの保守をやっているのに、 なんで突然、「新技術」を使った、「新システム」なんて案件を、うちの会社が取ってこれるの? っつーきわめて素朴な疑問が生まれるよね。 まあ、まだ脱出の材料がそろってない内から、あんまりテの内は明かしたくないので、 とりあえずは、生返事二つで帰ってきたってとこなんですが。 (っていうかこれ、PMとかに読まれてないよね(^^; →そんなヒマ無いっつーの!) 作戦に変更は無し。 移行具合を見つつ、脱出計画を完成させるのみ。 /** ド級マイナー言語「Python」...3年後には流行る予定(^^; */ 言語の基礎的な部分は終了してしまいました。 後は、基礎編の穴埋め的話題が続くもよう。 ・string#capitalizeメソッド wordの最初の文字を大文字にする。 string.capitalize("tomato") → Tomato こんなメソッド需要があったのかしらん(^^; ・string#capwords 文字列内の各単語の先頭文字を大文字にする。 string.capwords("now is the time") → Now Is The Time 上と同様(^^;; ・string#findと、string#index どちらも、文字列の中から特定部分文字列(一文字でも良い)を探すメソッドだが、 前者は、手続き指向っぽく、検索に失敗した場合-1を返す。 後者は、新しい言語っぽく、検索に失敗した場合ValueError例外を投げる。 いくらなんでも親切過ぎ?(^^; ・split / join Perlでも便利だったこれらのメソッドは、ちゃんと用意されてるところがエライね!11/27(Mon)
/** おいおい(-_-; */ うちの親。インターネットショッピングに手を出してました。 しかも、欲しかったのが「キティーちゃんの帽子」(^^; まったく。年をわきまえて欲しいね。年を。 恐いのが、「住所も電話番号も全部打ちこんで、しかも注文に失敗した。」 とか言ってきたので、まさに顔面蒼白状態。 「ヘンなDMや、ヘンな電話が増える」と脅しつつ、最低限、住所や電話番号の入力は、 左下の鍵マークが閉じてる状態のサイトで行うよう指導。 今回はたまたま、Yahoo!のセキュアなサイトの出来事だったようで、 なんとかセーフ。 勢いだけで何でもやられると困るねぇ(T_T) /** トラブル(>_<; */ いつもは温厚なお客さんも、この時ばかりはマジでした(^^; 発生源は、僕もからんでたシステム。 それなのに、トラブル対策会議には出させてもらえず、蚊帳の外〜 ってなわけで、午前中はかなり腐ってました。 原因はすぐ分かったらしいのですが、 それからも、臨時テストなどで、回りは大忙し。 午後3時を回った辺りで、ようやくごく簡単なテストが僕のところに回ってくると、 PMの言い放った一言がコレ。 「システムに携わった人間として、トラブルフォロー出来て良かったねぇ。」 もう、内心冷め冷め。 定時が過ぎ、帰っていいかどうか聞くと、 一応残っておいて欲しい的ニュアンス(T_T) しぶしぶ、ぶらぶらしてました。 その後、緊急リリースのための、リリース依頼票を書くなど、 こまい仕事をこなすも、全般的にごくヒマ。 結局ほとんどやることも無く、午後9時にはあがりました。 ああ〜ムダやなぁ〜(>_<;11/26(Sun)
/** 槙原敬之復活だってねぇ。 */ 誰もが予想した通り、長渕みたいに戻ってきたね。 /** どうもおかしいと思ったら。 */ millto.netのメール。 なんか、Mail Sending Errorが出ると思ったら、 SMTPサーバでも認証しているみたい。 普通SMTPサーバって言ったら、SPAMメールの踏み台にされないように、 自ドメイン以外のメールは転送しないって設定になってるのが普通ですが、 認証までしてるとはね。 で、この認証を通す方法はただ一つ。 メール受信すること。 で、このメール受信後5分以内にメールを送れば、 無事にメールが送れるっつー仕組みらしいんだけど、 メール受信時に、サーバに何らかのログが残るっていう仕掛けになってるのかねぇ? /** やばっ! */ いままで避けてきた、Javaのロゴ使用許諾(英語)なんですが、 どうやら内容を理解すると、郵送でSunに送らなくちゃいけないみたいです。 米国本社に(^^;; 海外に郵便送る方法なんて知らないし(>_<; 例の、赤・青・白ふちの封筒に入れればいいのかねぇ(^^; しかも思ったけど、「personal business card」って、 名刺じゃなくて、個人的なカードって言ってるのかも。 そんなもの持ってないし、名刺にも入れてもらえないとなれば、 ロゴに関しては保留かも。 なんにしても、日本語訳が欲しいところ(T_T) /** サーバサイドを押さえなきゃ! */ 最近ようやく、JSP(基礎中の基礎だけ)を押さえたわけなんですが、 やっぱりJavaは、サーバサイドの技術が全盛なので、 JMFとかSwingにはまっている場合じゃなくて、 Servlet(半端に習得済み)、JSP(微妙に)、EJB(全然...)とかを押さえなきゃ。と。 もちろん、来年(?)のJava搭載i-mode発売によって、 組み込み分野(J2ME)での、Javaの有用性も注目されるだろうけど。 で、早速J2EEをダウンロードしようと思ったんだけど、 どうやら、NTでしか動かないらしいんだよね。 NTをデュアルブートするだけの勇気も無いので、あえなく断念。 J2EEを試せる日は、結構遠そうな気配。 と思ったけど、以前散々ケチ付けてたJRunが使えそうな気配。 ユーザ登録だけはしてあったので、早速Linux版をダウンロード。 JRunは、Windows98でも動くみたいなんだけどね。 まあ、Oracleもあった方がうれしいかも知れないし(^^; とりあえずダウンロードだけ。 Oracleとか、Linuxとか、インストール疲れしてるし(^^; /** ド級マイナー言語「Python」...3年後には流行る予定(^^; */ 今日は、例外について。 JavaやC++で言う、「try〜catch文」は、Pythonでは「try〜except文」になるらしい。 そして、while文やfor文にもあるように、else節が存在し、 これは、try節を無事に通過した時に実行されるブロックらしい。 Javaのfinallyは、例外が起きても通過するから、それとはちょっとイメージ違うね。 と思ったら、finally節もちゃんとあるらしい。Javaと同じ意味の。 ただ、try〜except〜finally〜elseって書けるわけじゃなくて、 try〜finallyしか許されて無いらしい。 なんかヘンな仕様っぽい? とりあえず例外について、気づいたことが一つ。 Javaの場合、ゼロ除算例外(java.lang.ArithmeticException: / by zero)は、整数に限るけど、 Pythonの場合は、不動小数点数でも容赦なく出るってこと。 Javaと違って、NaN(Not a Number = 0/0)やInf(Infinity = 無限大)の概念が無いからなんだろうね。 まあ、大したことじゃないと思うけど(^^; それから面白いのが、例外がクラスでなくてもよく、文字列なんかでも良いこと。 つまり、 HogeError = "ほげほげ〜(>_<;" raise HogeError みたいな使い方でも、全然OKってこと。 カスタマイズ例外を作るために、 いちいち継承してクラスを作らなきゃいけないJavaと違って、 お手軽度がかなり高いよね。11/25(Sat)
/** だんだん安くなるよ〜♪ */ 久々の秋葉原。 目標は、メモリ128MB(PC100) 2コと、RedHat Linux。(↓の「Oracle8i trial!」を参照) とりあえず、秋葉原まで行くのも面倒くさいしなぁ。とか思って、 柏のショボい店に行ってみました。 ちなみに、メモリの事前kakaku.com調査では、5980円が最安値。 RedHat Linux6.2Jのパッケージ価格は、3980円。 で、柏の店の結果。 16000円...(^^; 1万円も高いじゃ〜ん! あまりにもバカバカしいので、秋葉原に行くことにしました。 とりあえず行ったのは、「ツクモDOS/V館」 僕の行きつけの店(^^; メモリの値段表を見るも、種類がありすぎてよく分からない状態(x_x; とりあえず128MBの欄にしぼってみても、1万をやっと切るぐらいの値段... 論外と判断して、「DOS/Vパラダイス」に行くことに。 途中に、ややデッカイ店を発見したので、ふらふら入ることに。 5Fまで行って、やっと見つけたメモリの価格は、 6980円。 やっと、秋葉原価格になってきました(^^; 次に行ったのは、「DOS/Vパラダイス」 僕の準行きつけの店(^^; メモリの値段表を見ると、わざわざ矢印マークまでしてあって 分かりやすいのはいいんだけど、6650円と微妙安。 まだまだ事前調査価格には程遠い状態。 次に、向かいの「クレバリー」1号店(かな?)へ。 事前調査2位の店だったので、やや期待感を持ちつつ店頭の価格表を見ると...? 6480円! だんだん安くなるけど、こんなもんかな〜と、ややあきらめモード。 が、ふと後ろを振り返ると、「T-ZONE DIYショップ」なる店が。 まあ、大手だから安くないだろうなぁ〜。と、あまり期待せずに入ると、 いきなりの「5980円」の文字が!! もちろん、即買いでした(^^) まあ、あと200円ぐらい安い店は存在してそうだけど、探すの面倒だし(^^; つーわけで、メモリ買いましょ〜! CPUもすごい安いらしいんだなぁこれが。 またマシン作っちゃいそうな勢い(^^;; 「ぷらっとほーむ」で、組み立てキットみたいのが激安だったし。 /** Oracle8i trial! */ Oracle8i for Linuxをインストールしてみました。 結局Vine Linux2.0に落ち着きつつ。 ちなみに、Oracleのサポートするディストリビューションは、 RedHat系、TurboLinux系など。 try1) Vine Linux2.0へのインストールを試みるも、データベース作成のプロセスで、 ハードディスクがガリガリやっちゃったまま進まなくなる。 メモリ不足によるスラッシングか、ディストリビューションが悪いと判断。 try2) Slackware7.0へのインストールを試みる。 が、Slackware自体のインストールに失敗する。 ネットワークカードをインストール時に認識させようとすると帰って来ないのね... try3) swap領域が256MB以上無いとダメなことに気づき、 早速swap領域に300MBをきって、Vine Linux2.0で再挑戦。 しかし、またもやVine Linux2.0のインストールにしくじる。 ネットワークカードがなぜか認識せず。 このNIC、色々問題をはらんでいるみたいね(-_-; try4) ディストリビューションが悪い可能性を信じて、Vine Linux2.1を入手。 感じ良くインストールが終了。 しかし、中身が今までと全然違うことに愕然。 しかも、Oracleのインストーラは起動せず。 try5) メモリ不足、ディストリビューションの問題を一気に解決すべく、 256MBのメモリと、RedHat Linux6.2Jを入手。メモリは一気に384MBに。 とりあえずメモリ増設して、Vine Linux2.1で再挑戦。 やっぱりインストーラが起動せず。 try6) 「RedHat Linux6 スターターキット」なる、内容が激ショボの本より入手した、 RedHat Linux6.2Jのインストールを試みる。 が、このCD-ROM自体不良品で、読み込みがVery Slow。 まさに安物買いの銭失いって感じ(1200円)。 try7) よくよく考えてみれば、Vine Linux2.0はRedHat Linux6.1ベースなわけだから、 いけるはずと思いつつ、Vine Linux2.0で再挑戦。 問題のデータベース作成プロセスは、大きなメモリ領域のおかげでパス! ようやくインストールうまくいきました。 (SQL*Plusを使えるようになるまでは、もう少し大変だったんですが...) result) Oracleのインストールには、128MBのメモリでは足りない。(最低128MB、推奨256MBだし) ハードディスクは2GBぐらいは必要。(ドキュメントにも書いてある) RedHat系のディストリビューションが安全。(TurboLinuxでは、不具合が出るらしい) なんでこんなにリソースが必要かと言えば、 インストーラがJavaみたいなんだよね。 しかも、DB作成プロセスでは、JVMを2つ立ち上げるとかで、 すごいメモリを食うらしい。 まさか、128MBのメモリが不足になる時なんて来るとは思ってなかったよ。ほんとに。 まあその結果、Office系アプリケーションの起動が速くなったりと、 メモリがボトルネックになってた部分もあったことに気づかされたってのは良かったけど。 さすがに384MBなら、足りないこともないだろうねぇ。 まあなんにしても、とりあえずのOracle Master Silverを取る準備は整ったでしょう。 ちなみに、120日間トライアルだから、4ヶ月おきにインストールすれば使えるかも? とか、すっげぇセコい考えを持ち中(^^; なんせ、インストールのノウハウは、既に得たわけだし。11/24(Fri)
/** Vine Linux2.1! */ 今日発売の、Linux Japanから入手しました。 インストーラがパワーアップしてました。 このインストーラは、日本語&GUIベースなので、かなり印象良いです。 分かりやすいしね。 2.0の時は、LILOが勝手にインストールされるので、 そのたびに、「fdisk /mbr」してましたが、 今回は、LILOをインストールするか、ブートディスクにするか選べるので、 MBRを上書きされる心配がなくなりました。 うちのマザーボードは、MBRが書き換えられると、 「ウイルスが混入した!!!!!」 と騒ぎ立てるので、うんざりしていたところでしたが、 今回はそんなこともなく、FDブート→HDブートの移行はスムーズでした。 /** おおっ!?...ああっ(>_<; */ 起動時に、USBなんちゃら〜っていうメッセージが出ていたので、 思わず、USBキーボード&USBマウスが使えちゃったりするの? とか思っていたんですが、なんか二つメッセージあって、 一つはOK、もう一つはNGでした。 実際に起動し、ログイン画面までたどり着いたので、 適当にマウスをいじっていると、動いちゃいました(^^; すごいねぇ。LinuxでUSBマウス動いたよ〜ん。 が、喜びも束の間、キーボードは全く効かないのでした(T_T) 緊急対応策として、PS/2キーボードを臨時でつなぎ、 正常にログインしたところで、USB関係の初期化処理をねこそぎ削除。 無事USBキーボード(互換PS/2)は使えるようになったものの、 やっぱりUSBマウスも使えなくなっていました(T_T) この使い勝手の差は、めちゃめちゃ大きいのに... /** なんじゃこりゃ!? */ ↑のUSBの件で、カーネルのコンフィギュレーションにも、 なんかあるんじゃないの〜? とか思いつつ、いつものように、「cd /usr/src/linux」 とやると、「そんなディレクトリねぇ!」 とのエラーメッセージ。 そんなはずは... とか思いつつ、/usr/srcでlsすると、 「redhat」 とか出てきてるし(T_T) なんかディレクトリ構成が変わってるんですが... とりあえず、このまま使わなくなる可能性大ですな。11/23(Thu)
/** なぁ〜んも。 */ しない一日でした。 はあぁ。ムダムダだねぇ(>_<; って思ってから、あまににも虚しいので、 前々からやろうと思ってた、JSPのテストしてみました。 i=1 ... i=10まで出すテスト。 なんだかやっぱり虚しいねぇ...(>_<; /** レイヤード髪の毛 */ 込み合う電車の中、ふと前の人の頭を見てみると、なんかヘン。 っていうか、どうみても髪の毛の上に髪の毛が乗っている感じが... あんまりジロジロ見ないようにしようと思ったけど、なんか気になってみちゃうね(^^; あ〜らら。ていう感じ。 (自分もそうならないっていう保証は無いけど...(>_<;)11/21(Tue)
/** 久々に読んでみたら。 */ 久々に、「戦わないプログラマ」を読みました。 MTCIの不慮事故以来、すっかり読むの忘れてました(^^; そういえば、ZDNNもあんまり読んでないなぁ。 読んでいくと、こんな記述を発見しました。 > そういえば、RFC2324「Hyper Text Coffee Pot Control Protocol」なんてももあったっけ? :-) 実物はコレ。 4. The "message/coffeepot" media type とかってマジメに書かれてもねぇ(^^; 10Pageしかないから、英語の勉強にはもってこいの題材かも。 なんか面白そうだし。