8/20(Fri)
/** Project Java ReGet */ 今日は、あらかじめ決めておいたサーバレスポンスコードに対する動作で、 404 Not Foundなどの場合は、エラー処理をすることにしました。 C言語とかの場合、よくあるのが、-1やヌルポインタとかを返すことで、 エラーとみなすということがあると思うのですが、 ここはJavaらしく、例外を発生させることにしました。 これで、結構Javaらしくなったかも(^^; 今日になって、WWWサーバからデータを取得する機能と、 データをファイルに保存する機能を分割すれば良いことに気づき、 これで、クラス設計とかも、うまくいく気がしてます(^^) 速く作りたいんだけど、なかなか技術が追いつかないなぁ... /** Network Specialist! */ 最近、午後Tの問題(H8〜9年度)をひたすら解いていると、 ホスト-端末形態から、クライアントサーバへ置き換えという設定が多いです。 やっぱり、時代もそういう方向だったということでしょうか。 昔、M商事にバイトに行っていた時に、 端末エミュレータとか、3270エミュレータって何なの? って思ってましたが、恐らく、 ホスト専用クライアントが端末で、 その端末をPC上で実現するのが、端末エミュレータだったのだと思います。 また、インターネット/イントラネット関係で、 社内LANを、外部のインターネットから守るために、 ファイアウォールを設定してどうこう...という話が良く出て来るので、 ちょっとうちのルータも、設定しなきゃいけないのかなぁ。 とか思ってたりします。でも、見ても良く分からないけど(^^;8/19(Thu)
/** あ゛*/ 柏陵負けてもうた... くっそー。柏の駅はフィーバー状態になってたのに... 注目の9番ライトメガネ君こと小林は、 逆転された直後の八回裏、ノーアウトランナー一塁で、 良い当たりを飛ばしたものの、ピッチャーライナーゲッツーでした(>_<; やっぱり、エース清水は疲れてたってのもあるだろうけど、 多分、八回ってのもあって、勝ち急いだんだろうねぇ。 その辺は高校生だけに、しょうがないのかも知れない。 けど、智弁和歌山の選手は、キャプテンを始めオッサンくさいので(^^; さすがの試合運びだったと言わざるを得ないしょう。 # あ〜あ。また和・智弁の校歌を聞いちまったよ... /** 卒研Now! */ 今日は、画像の明るさの取得を実装していたのですが、 プログラムの変数名を付けるのに、 明るさ(Brightness)って、英語でなんていうんだっけ? と悩みつつ、英語力のなさも感じました。 このままじゃやばいよなぁ... プログラムは至って簡単で、 RGBの各値を足して3で割ったものを、全ピクセルで平均するというもの。 真っ黒(Brightness = 0) 〜 真っ白(Brightness = 255) という範囲を取ります。8/18(Wed)
/** 今年こそは千葉! */ 千葉県172校の代表の柏陵高校が、ついにベスト8入り! 明日の対戦は、智弁和歌山とらしいので、 監督は、「もうダメでしょう。」とか言ってましたが、 まだまだいけると信じて疑わないところです。 今年は、柏の一文字が入ってるので、妙に親近感が沸いて来ます。 今までの、成東とか、成田とか、習志野とか、市船とか、銚子商とか、拓大紅陵とか、 なんでこう毎年違うかなぁ。とか思ってたりするし、 なんか家から遠かったりするし(^^; こないだ、智弁和歌山の試合を見ていたのですが、 勝った後の校歌を聞いていて、なんか聞いたことあるなぁ。とか思ってました(^^; やはり、それだけの強豪校なんだということになるのだと思いますが。 昔は、一回戦敗退の常習だったのに(^^;; 注目の選手は、背番号9のメガネ君(^^;です。 彼はきっと、何かをやってくれることでしょう。8/17(Tue)
今日は、めずらしく長いです(^^; /** ザマアミロ巨人(^-^)v */ もう、 「なんで、こんな大事な試合負けるんだよ! 中日のバカヤロー!!」 って、書こうと思ってたら、TV放送終わってラジオにした途端、 なんだか良い展開に(^^) 結局、中日が逆転サヨナラ勝ちで、アンチ巨人としては、 もうこれ以上無い展開でした(^-^)v /** Project Java ReGet */ 現在は、サーバの応答によって、クライアントの動作を決定するために、 サーバレスポンスコードについて調べているところです。 (404 Not Foundだったら、取得中止とか。) 一応、Web Client Programming with Perlを読めば、 HTTPについて、ある程度のことは書いてあるのですが、 この本には、一部間違いが発見されたので、 英語の勉強を兼ねて、RFC2616を訳すことにしました。 まあ、全部訳す必要は全く無いし、 (RFC2616 => 176Page: 422KB ←これは全部訳すのは無理でしょ(^^;) 受験と違って、辞書を参照出来るので、 いくら難解な英語と言っても、なんとかなるとは思ってます。 いつになったら完成するのやら... /** Network Specialist! */ ようやく、問題集一冊完了! これから過去問モードに入ろうと思ってます。 itec(アイテック)社の問題集などを中心に勉強しているのですが、 なかなか解説も豊富で、分かりやすいと思います。 ただ、その分かりやすい解説を読んでいても、 イマイチすっきり理解出来ない内容があるなど、 難解かつ高度な内容だったりするんですけど(^^; あと、ちょっと最近まずいのが、 始めた当初は、一日4時間超勉強していたのが、 最近は、3時間前後と減っているところですね(^^; 明日からは修正しないと... /** 卒研Now! */ 今日は、データベース(RDBMS)のMySQLのインストールをやってました。 ちなみに、PostgreSQLというのは入れてあるのですが、 これでは、postgresというユーザーを作成しなければならないために、 ルートユーザーの権限が必要になるのですが、 卒研の発表は、研究室内で行うために、 出来れば、管理者の手をわずらわせずにやりたいと思ったので、 一般ユーザー領域にインストールしての、動作確認を行いました。 結果は、全然問題無いようです。 rcスクリプトなどで、起動時に自動起動させずに、 手動で起動しなければいけないぐらいで、 後は、特に問題は無さそうです。 (元々、研究室のLinuxサーバは上げっぱなしなので、 手動起動しなきゃいけないんですけどね。) 無さそうというのは、まだmysqlのコマンドラインフロントエンドから試しただけで、 実際利用する、Perlスクリプトからは接続していないのですが、 恐らく、これも問題はないでしょう。 後は、DBの設計とかしないとね!8/16(Mon)
/** 休養日 */ 今日は、冷房完備の勉強部屋である、公民館の休館日なので、 Network Specialistの勉強はなしにして、 一日まったりとくつろいでました(^^; しばらく、新しい曲を練習していなかったのですが、 最近、結婚行進曲をウケ狙いで練習し始めたり、 比較的簡単なエーデルワイスとか、渋いモルダウとかを、 少しずつやってたりします。 だんだんレパートリーを増やしていって、 やっぱ最終的には、energy flowをやりたいですねぇ。8/15(Sun)
/** 卒研Now! */ 今週はゼミが無いため、ほんとに何もしてません(^^; しかし、イメージ(画像)の特徴を抽出するという処理は、 大体実装し終わっている(perlで)ので、 後は、ユーザーインタフェースと、データベースの処理ということになりそうです。 WindowsでDataBaseとかやろうとすると、 Oracleだとか、Sybaseだとか、Informixだとか、(ついでにMicrosoftも?) なんかお金がかかってしょうがなさそうですが、 Linuxなら、PostgreSQLだとか、MySQLだとか、GNU SQL Serverとか、 色々フリーのものがあって、なかなか良いです。 しかも、この辺を調べてみると、ObjectDBなんてものも、 ちゃぁんとフリーのものがあったりするから驚きですね。 さすがはLinux(UNIX)、必要な人が作ってオープンソースで公開という文化は、 その他大勢のユーザーにはありがたいものです。8/14(Sat)
/** 今日はお休み */ です(^^;8/13(Fri)
/** Project Java ReGet */ コンストラクタ(メソッド)のオーバーロードについての考察。 というか、常識かも知れない(^^; 今回のプロジェクトは、トップダウン方式で作っているので、 まずは動くもの、そして追加機能という感じなんですが、 とりあえずファイルを取ってくるという意味で、 public JavaGet(URL url) というコンストラクタを定義してみました。 ここには、User-Agentの参照を含む、各種処理が記述されています。 その後、User-Agent文字列を指定したくなったため、 public JavaGet(URL url, String ua_string) というコンストラクタも定義して、 その中で、 this(url); this.ua_string = ua_string; のように、最初に定義したコンストラクタを呼びつつ、 メンバua_stringに、指定したua_stringを代入しました。 しかし、これではua_stringの代入前に、 ua_stringを参照しているコンストラクタの処理が行われてしまうので、 ua_stringの正しい参照は行われなくなってしまいます。 昨日はこの辺でかなり悩んでいました。 ところが、発想の転換というのか、以下のようにすれば出来ることが判明しました。 それは、引数の少ないコンストラクタから、 引数の多い方のコンストラクタを呼ぶという方法で、 public JavaGet(URL url)の定義では、 this(url, DEFAULT_UA_STRING); のようにすることで、解決となりました。 後から気づいたのですが、Java2のソースなどを読んでみても、 やっぱりそういう風になっていたので、 これがひょっとしたら、オブジェクト指向のオーバーロードの常識なのかも知れませんね。8/12(Thu)
/** Spirit of Love */ Sing Like Talkingというグループの曲なんですが、 めちゃめちゃ良いので、一度聴いてみることをおすすめします。 これから先、こんな曲には出会えないかも知れないし... とは言っても、SLTの曲はコレしか知らなかったりするんですが(^^; この曲を聴いていて感じるのは、ヴォーカル佐藤竹善さんの声の良さです。 なんかこう、自在に声をあやつっているという感じで、 宇田多ヒカルのFirst Loveなんかもそうですが、 こういう曲でこそ、ヴォーカルの真価は試されると思いますね。 /** Network Specialist! */ 復習の意味も込めて... ◎CSMA/CD(Carrier Sense Multiple Access with Collision Detection) ・バス型LANで使われる。 ・IEEE802.3委員会で標準化。 ・物理層、データリンク層が対象 ・伝送路が空いていれば送信し、その直後から衝突監視を始め、 検出されれば、ジャム信号を送信する。 ・衝突ウインドウ時間(スロットタイムともいう) = 端から端までの伝送時間 * 2 ・衝突ウインドウ時間 * 伝送速度 = 最小パケット長 (例 51.2μsec * 10Mbps = 512bit = 64byte) ・最小パケット長よりも小さいパケットを送信すると、衝突検出が満足に出来ない。 ・利用率がある程度高くなると、遅延時間が無限大に発散するため、 限界利用率というものが存在する。 ・パケット長が長い程、限界利用率が大きくなる。 CSMA/CDだけでこんなになるとは。 しかも、いまいち理屈とか分かってないし... 続編として、フレームリレー、SNMP、ISDN、IPアドレスとかやるかも。8/11(Wed)
/** Project Java ReGet */ ようやく、初歩の初歩が完成しました。 卒研と違って、納期ってものがないから、 いまいち緊張感が無かったりする... 今回のはまってたところは、 HTTP1.1準拠のHTTPサーバってのは、明示的に切断を指定しない限り、 接続を維持(Keep-Alive)するってのに引っかかってました。 まず一回目の接続で、そのコンテンツが存在するか、 全体のコンテンツのサイズ、サーバの対応/非対応などの情報を集め、 二回目以降の接続で、データの取得を行うわけなんですが、 Connection: close というヘッダを指定しないと、サーバとの接続が切れずに、 二回目の接続で、Already Connected. となってしまっていたわけです。 それにしても、やっとReGet的実装を始められそうです(^^; # Network Specialistの試験にも、こういうセッション層的話題が多いと嬉しいのになぁ。 /** Network Specialist! */ かなり挫折気味です(T_T; つーか、やたらと東京、名古屋、大阪を結ぶ高速ディジタル回線網だとか、 静岡の端末から東京のホストへ、ISDN回線網を介して接続がどうのとか、 日本全国的話題が多すぎて、LANしか知らない私にとってはイミフメイの連続。 おまけに解説には、「この問題は、実務経験を問われる。」とか書いてあるし(>_<; 実務経験の無い人は、ひたすら問題を解いて覚えるしかないらしいし... さすがは合格率5%とかいう難関試験だけあって、内容濃いね。 午前の問題にしても、HDLCの詳細、SNMPの詳細、CSMA/CDの詳細... などなど、一種の時には、軽く知っておけば良かったものでも、 かなり深く突っ込まれる感じです。 CSMA/CD = IEEE802.3なんて問題も出てるし(爆)。 そんな細かい数字覚えられないって。