4/30(Sun)
/** とりあえず休日2日目 */ 今日は、半日Java-CORBAの勉強。 ごくシンプルなチャットプログラムなんてものを書いてみたが、 ちっとも日本語が通らない(T_T) 何がいけないんだかねぇ... それから、UDP&ブロードキャストのお勉強。 こっちは、まああっさりと行きました。 なんだか今日は、通信Dayだったねぇ。 こんな時こそ、パソコンが複数台あって便利だね。 別に、1台でC/S両方やらせることも出来るわけだけど、 いまいち通信してんのか、してないのか分からないし(^^; 2台でやると、実感できてなかなか良いです。 よくよく考えてみれば、CORBAなんか使わなくっても、 LAN内チャットぐらいだったら、このUDPを使えば、 結構簡単に出来るような気がするねぇ。 ブロードキャストって、そういう使い方しないのかも知れないけど(^^; /** それにしても。 */ ようやく雑記帳以外を更新できたねぇ。 社会人になっただけで、こんなにも時間が無くなるとはね。 というか、学生の時の休みの多さが異常だったのかも。 週休5日。気分によっては週休6日とかだったし(^^;;; まあそれでも、うちの会社は年間休日130日だから、 それだけちゃんと休めれば、良い方なのかもね。 /** メール消化 */ 技術系メルマガのメールが溜まっていたので、 適当に読み流しておきました(^^; 「初めてのホームページ講座」で、HTML&JavaScript&スタイルシート のすごさってのを、あらためて知ったような感じです。 <a href = "javascript:void(0);">って書くと、リンクが無効になるそうな(^^; そんなことして、一体何が楽しいのかねぇ。 このメルマガで紹介されているサンプルを、いくつか試してはみたけれど、 どれもIE、Netscape非互換っぽいです(-_-; 相変わらず、IEではblinkが使えないもよう。 こんな状況じゃあ、いまいち使う気しないねぇ... /** UDPプログラミング on Java */ 俺ってば、なんでもJavaだね(^^; ふと、ブロードキャストパケットって、どうやって送るの??? っていう疑問から、プログラミングしてみることになりました。 しかし、TCPのソケットが頭にこびりついていたせいで、かなり混乱!? JavaでUDPを扱うのは、java.net.DatagramSocketというクラスなのですが、 このクラスのポート番号指定を、宛て先と勘違いしちゃってました(^^; これは、ローカルポートを指定するもので、 待ちうけ側のソケットに指定するものだということが分かりました。 (送信側は、指定しないでおくと、自動的に割り振られるので安全です。) じゃあ、どこで宛て先を指定するかというと、 パケット自身に宛て先が付いているんですねぇ。 って、よくよく考えてみれば、ネットワークスペシャリストでやったし、 コネクションレス通信だったら、そんなの当たり前って気もします。 で、そのパケットに該当するクラスが、java.net.DatagramPacketです。 DatagramPacket(byte[] buf, int length, InetAddress address, int port) というコンストラクタを使うことで、送信用のパケットを作成できます。 で、本題なんですが、ブロードキャストをどうやって送るかというのは、 このDatagramPacketの3番目の引数の、InetAddressに、 「192.168.0.255」のように、ブロードキャスト用のIPアドレスを指定すると、 無事、同一セグメントに同報パケットが送られることになります。 ちなみにセグメントってのは、ルータで区切られた範囲のことを言います。 つまり、ルータはブロードキャストを通過させません。 なので、限られた範囲(セグメント内)の通信で収めることが出来るので、 ルータを使ってセグメントを分けることによって、 バックボーンの通信負荷を減らせるというメリットがあります。 ネットワーク...今度は取るぞぉ...?4/29(Sat)
/** とりあえず休日 */ ・遅刻する夢を見てみた(-_-; ・昨日の日報を書いてみた。 ・雑記帳の↓のネタを書いてみた。 ・鍵盤を弾いてみた。 ・ミートソーススパゲティを食べてみた。 ・床屋に行ってみた。 ・JavaWorld6月号を買ってみた。 ・MATRIXを借りに行ってみるものの、全部レンタル中だった(T_T) ・Java-CORBAの勉強をしてみた。 なんか、初日的には、そこそこ充実してたかも。 /** C++とJavaの違い */ なにをいまさら的話題ですが(^^; なにげにJavaがすごいのは、例外処理だということに最近気づいた。 C++の場合、throwしたとしても、catchしなければならないことは無い。 例えば、以下のコードを実行してみれば分かる。 どちらも同じようなコードだが、そこには決定的な違いが存在する。 -- test.cpp -- // コンパイルエラーにならず、異常終了するコード using namespace std; class Exception {}; void func() { throw Exception(); } int main() { func(); return 0; } -- -- test.java -- // コンパイルエラーになるコード class test { public static void func() throws Exception { throw new Exception(); } public static void main(String args[]) { func(); } } -- 言いたいことは、C++の場合、func関数中で例外が投げられているにもかかわらず、 main中の呼び出し元では、catchハンドラを記述していない。 しかし、これでもコンパイルが通ってしまうのは、まずいということである。 (ちなみに実行したら、SIGABRTとかいうシグナルを受け取って異常終了した。) Javaの場合、throwsというキーワードがあるので、 ある関数(メソッド)が、例外を投げることが分かっていれば、 それをcatchしなかった時に、コンパイラがエラーにする。 この違いは、かなり大きい。 僕が近い将来なるであろう、業務プログラマの世界では、 エラー処理が最も重要であり、例外処理はそれを実現するために手段である。 (ポリモーフィズムなんか忘れちゃっても良いぐらい、全然重要だそうな。) C++でも、気をつけていれば良いのだが、Javaでは、コンパイルが通らないのだから、 プログラマの負担は大きく違ってくるように思う。 正しくは、以下のように書いて下さい。 -- test.cpp -- #include <iostream> using namespace std; class Exception {}; void func() { throw Exception(); } int main() { try { func(); } catch (Exception ex) { cout << "Exception Occurred!!" << endl; } return 0; } -- これで、「Exception Occurred!!」が表示され、 少なくとも、異常終了することは無くなる。4/28(Fri)
/** 9連休突入〜♪ */ 何しよっかなぁ。 とか考えているうちに、終わっちゃったりして(^^; とりあえず、生活リズムを崩さない程度に、だらしない生活をしてみようと思う。 って、やばいなぁ。雑記帳が日報風になっちゃってるし(T_T) /** 3分間スピーチ */ とりあえず、「DTMによる作曲方法」というテーマで話すも、 内容多すぎで、無理あり過ぎ... 時間的には無理矢理収まったものの、早口とか注意されてるし(-_-; 40人を前にすると、アガっちゃって頭の中が真っ白になるね。 でもとりあえず、「なんかよー分からんけど、パソコンで作曲してる人」 という印象は与えることが出来たらしいので、良かったのかもね。 /** Yeah! 中華街 */ 最近、会社に行く目的が、中華街に行くことになってるし。 9連休で、しばらくおあずけなのが残念かも(^^; 今日も結構アタリ♪ 肉団子とたまねぎとピーマンを、甘辛ソースであえたやつがメインで、 おいしいごはんと、わかめスープ、杏仁豆腐、ひじき&ザーサイ&ジャスミン茶付き。 今日の杏仁は、ちょっと市販ぽかったなぁ(>_<; 昨日と比べると、昨日が上だったかも。杏仁の分だけ。 今日のご飯は、やわらかくておいしかったのですが、 固めなご飯が出てきていたのは、チャーハンと関係があるような気がします。 つまり、チャーハン、ランチ用両用ってことなんじゃないかと。 あくまでも、推測でしかないけど。 中華街通になれば、その内判明するかもね。4/27(Thu)
9連休まで、あと1日。明日を乗り越えれば... /** バナナ・オレ */ うちの近所にあるテニスコートの出入り口の横に、 パック入りジュースの自動販売機が置いてあるのですが、 中学の頃、塾の帰りに、よくそこで「バナナ・オレ」を飲んでました。 つい最近、バスの停留所を降り、家に向かおうとした時に、 そういえば、あの自販機ってまだあるのかなぁ。と、ふと思って行って見ると、 7年の時を越えてちゃんと健在でした。 う〜ん。なかなか感慨深げ。 こんなところで、小さな感動を味わっていたのでした(^^) /** Yeah! 中華街 */ 今日は超アタリ♪ わずか600円で、ゴージャスランチ!! ピーマンと鶏肉の炒め物(袋茸とか入ってて、見た目面白い)、ご飯、 春巻き2本(サクサクパリパリ♪)、かき玉子入りコーンスープ、杏仁豆腐。 さらに、ザーサイ&プーアル茶付き。 まじで、コンビニ弁当なんてバカみたいに思えてくる... /** C++成果 */ 一応いままで習ったことを活かして、 素数を求めるクラスなるものを作ってみました。 ソースファイル (959Byte; Shift_JIS) 微妙に標準C++準拠じゃないのは、うちのコンパイラがVC++4.0Stdだから...4/26(Wed)
9連休まで、あと2日。もう少しだ... /** さすが常磐線。 */ 日暮里駅にもうすぐ着く頃のアナウンス。 「もうすぐ日暮里、日暮里です。今日も一日頑張ってください! お疲れ様でした。」 これって、ヘンじゃない!? 一日頑張らなきゃいけないのに、お疲れ様って言われると、一日が終わっちゃうみたいだし(^^; もちろん、(ご乗車)お疲れ様ってことなんだろうけどね。 もしかしたら、自分と同じ新入社員なのかも(^^; 言葉遣いって、難しいね。 /** JPython */ JPythonとはなんぞや?? と思っていたが、先月号(になってしまった)のJavaWorldに、 「PythonのJavaによる実装」という説明が載ってました。 つまり、JVMがあるところならどこでも、JavaApplicationが動くように、 (実際は、ヴァージョンの違いや、拡張ライブラリの導入状況にもよるけど。) JVMがあるところならどこでも、Pythonが動いてしまうということです。 Javaに乗っかってしまうという、その発想がすごすぎですね。 /** Yeah! 中華街 */ 今日は、研修期間中初めて、中華街へ行ってみました。 中学生っぽい、制服を着た軍団をあちこちでみかけ、 自分にも、あんな時があったなぁなんて思いつつ、悲しくなったりして...(T_T) それはさておき、時間は結構あったので、安いランチを探してブラブラしていたのですが、 大通りっぽい中には、1000円のランチが多く、とても手が出ない感じ。 そこで、一本入って、裏通りっぽいところに行ってみると、 ビンゴ!! 620円のランチ「白菜とカニの炒め物(だったと思う(^^;)」を発見♪ ちなみに店の名前は、「獅門酒楼」。 (こんなものを持ってかえること自体、かなりアヤシイ人になってるかも(^^;) 出てきたものは、メイン料理、ご飯(固め)、スープ、ザーサイ、杏仁豆腐。 620円の割には、結構イケてたような気がします。 味は、なかなかのもの。ご飯が固くさえなければね... 杏仁豆腐は、どこで食べても美味しいものです(^^) で、あんまり待たずに5分ぐらいで料理が来たので、 さらに中華街をブラつくことに。 すると、すっげぇ立派な構えのお店を発見。 一応、ランチの値札が出ていたので見てみると...... なんと! 3500円とか書いてあるじゃぁないですか!!!!! 社長にでもならない限り、こんなランチは食えません...... さらに見つけたのが、中華街かどうか微妙な位置にあった店で、 その店の名物が、「九州ラーメン」という...(^^; しかし、チャーハン200円には意外とひかれるものがあったりして(^^;; ちなみに、明日も中華街へ遠征予定。 っつーか、会社から歩いて3分ぐらいなんだけどね。4/25(Tue)
9連休まで、あと3日。長い... /** 時間が無いのね(T_T) */ 帰ってきたら21時。日報書いて22時。明日の講義の資料を読んで23時。 テレホーダイに入って、だらだらWeb見てたら24時。 もう寝なきゃ...(T_T)4/24(Mon)
/** 休み少なすぎ... */ 毎日が休みだった、あの頃が懐かしい... 9連休まで、あと4日。長い... 2連休明けの体には、講義中爆睡も当然のこと... 9連休明けの体は、一体どうなってんだろうね... フニャフニャのヘロヘロって説が有力かも(^^;; 初任給でも出れば、やる気が違ってくるのにねぇ。 今週の金曜日に3分間スピーチがあると思ったら、 来週の火曜日に、6分間プレゼンがあるし...(-_-; 明日2時間で、Powerpointのシート作成をやるらしいが、 たったの2時間で終わるはずもなく、家に持って帰ることうけあい。 C++の課題もそうだけど、なまじ家で出来ちゃうところが怖いね。 かと言って、会社に残ってると、「いつ帰れるの?」状態になるし(-_-; でもなぜか、3分間スピーチに関しては、 最近なんだか楽しみになってきた模様。 人前で話すのは大の苦手なはずなのに、 かなり不思議な現象に陥ってます。 もしかしたら、壊れちゃったのかも(^^;;;; あかん。馬鹿話はこれぐらいにしておこう。 なんせ、時間が無いし...4/23(Sun)
/** VC++ */ コマンドラインで使う方法。 ・環境変数PATHに、cl.exeがあるパスを設定する。 ・環境変数LIBに、libがあるパスを設定する。 ・環境変数INCLUDEに、includeがあるパスを設定する。 以上。 VC++6.0だと、ほにゃらら.dllがありませんとか言われるので、 そこにもPATHを通すと動きます。 統合開発環境もいいけど、簡単なプログラミングしかしてないから、 コマンドラインだけで十分だね。 /** C++課題中... */ 誰かが、stlにはハッシュ無いとか言ってたけど、 mapってのが、そうなんじゃないの?? 誰か知ってる人教えてください...4/22(Sat)
/** 続・ブリントセッパ */ OSI基本参照モデルの、7階層の覚え方でした。 B: 物理層 L: データリンク層 N: ネットワーク層 T: トランスポート層 SE: セッション層 P: プレゼンテーション層 A: アプリケーション層 以上をつなげて、BLNTSEPA(ブリントセッパ)。 アプセトネデブと同様、なんの意味もないけれど、 インパクトで覚えようって感じ。 /** C++課題中... */ とりあえず今日は、 ・newで確保したメモリは、ちゃんとdeleteで開放しよう。 ・デストラクタは、virtual宣言しよう。 ・メソッド外でも使うオブジェクトは、静的に割り当てる(Stack)と、 メソッド外で使えなくなるので、動的に割り当てよう(Heap)。 ということを、教訓として得ました。 色々勉強することあるなぁ...4/21(Fri)
/** ブリントセッパ */ これが、一発で分かった人は、すごすぎです。100点です。 アプセトネデブの逆っていうヒントで分かった人は、う〜ん。50点かねぇ(^^; それでも分からない人は、0点です。まだまだ未熟ですな(^^;;; 答えは明日。 /** 3分間スピーチ */ 今日、昨日までに作った原稿を元に、 Powerpointで資料を作っていたら、速攻ダメだしされました(-_-; 当初は、DTMの原理っぽいことを話そうかと思ってたけど、 どうやら、もう少しユーザー寄りの、具体的で分かりやすいことを話すことになりそうです。 楽しみでもあり、不安いっぱいでもある... /** Powerpoint!! */ 今日は、ゴールデンウィーク明けの、プレゼンに向けて、 Powerpointの使い方を教わりました。 というか、出来るPowerpoint2000とかいう本を借りて、 適当に読み流しただけ(^^;; とりあえず、文字とか絵がスライドして出てくるやつとか、 回転して出てくるやつとかをマスターしました(^^)/ アニメーションの種類がいっぱいあって、結構遊べるかも(^^; しかし驚いたのが、教室40人中、使ったことのある人が半数以上いたってこと。 Office製品の中でも、Wordはダメダメだけど、ExcelとかPowerpointってのは、 意外と実用性高いのかもねぇ。