TOPに戻る
鬱るんです
躁鬱病のITエンジニア「はまー」が心と体の模様を記した雑記帳。 大手IT企業で心身ともにぼろぼろになり退職した後、ほそぼそと働いたり事業を立ち上げようとして頓挫したり、作業所に通ったり障害者雇用で働いたりと紆余曲折したが、今は無職な毎日。

カテゴリー:IT関連

今日は朝8時くらいに起きた。しんどかった。起きるのがつらかったが、なんとか動けそうだったので、重たい体を引きずって布団から這い出た。のろのろと会社に行く準備をしたが、自分でも行ける状態なのかどうかわからん、と思ってとりあえず会社に「体調不良により様子を見て出勤します」とメールをしておいた。

それでも9時前には家を出て、バスを使わず駅までえっちらおっちら歩いて、10時過ぎには会社についた。昼過ぎまではしんどい状態で仕事をしていたが、15時を過ぎたくらいから状態はましになっていた。

私の前任者が作りかけていたアプリのテストでどうしてもうまくいかなかったところが、ようやく正常に稼動した。ちょっとドキュメントが不親切なCPANのモジュールの使い方が原因であった。newするときに、たくさんあるメンバ変数(とperlでは言わないか?)のうち、2つはセットで指定しないといけないのだ。初期値を設定しないのであれば、やはり2つセットでなければならない。モジュールのソースを読んでデバッグコーディングを入れて追っかけて、ようやく突き止めた。

このモジュールをnewするときにはそのパラメータ1つしか設定せず、もう1つをあとからsetしていたのでうまく動かなかった。もう1つのパラメータは動的に変わるので、その値が確定した後でオブジェクトを作るようにしたらうまくいった。こんな大事なことが書いてないなんて。まあ、CPANのモジュールなんて誰かが責任持って管理しているわけではないし、使うのは自己責任だからこんなこともあるか。

ようやくうまくいったところで、区切りが良かったので帰ってきた。まだまだエラーハンドリングが甘いところとかユーザインタフェースとか作り込んでいかないといけないところはたくさんあるので、これから一気に進めよう。

帰りもバスを使わず歩いて帰ってきた。帰ってきて歩数計を見たら7689歩。うむ、これくらいは毎日歩けるといいなあ。歩けなくてもWii Fitがあるが、やはり外を歩くのは気持ちがいいのだ。って、こんな季節だから言ってられることだな。

今日も調子が悪い。

ほぼ一日中寝ていた。

明日から先週の続きで、前任者の作ったプログラムのデバッグに入る予定だが、会社に行けるだろうか。あんまり時間が経つと、プログラムの中身がどうなっていたか思い出すのに時間がかかる。

てなことにならないように、要所要所にコメントはきっちり入れておくこと、そもそも読んでわかるプログラムを書くこと、理想は「ソースが設計書であり仕様書」であることが必要。perlの世界では perldoc のような、そのソースがきちんと何者かがわかるような仕組みがある。

でも、ほとんどコメント入ってないんですけど・・・>前任者

動かん。
前任の作ったプログラムが動かないのである。
ユーザに新たに提供するサービスのために、ユーザ認証をPOP3サーバを利用してやろうとしている。
Perlのプログラムの中では、CPAN の Mail::POP3Client モジュールを使って、フォームから受け取ったユーザ名とパスワードで認証しようとしている。
が、どうしても connect() でエラーが返ってくる。
どう見ても使い方に間違いはない。

モジュールの中にデバッグコーディングを入れてみた。
そうしたら、newして作ったオブジェクトに後からsetした値がちゃんと入ってないではないか。
全部ではない。サーバ名などはちゃんと入っている。
なぜこういうことが起こるのだろう。
調べてたら、、、、、

独自に継承したオブジェクトを作って、それでなんかやってるよ~。。。。。(涙)

Catalystのフレームワークの中にそんなもの紛れ込ますなよなあ >前任者

今日はそこまで。

気になってググってみたら、MIBファイルに bsnRogueClientEntry の他に bsnRogueClientPerRogueAPEntry ってエントリがあるじゃない。

ああ、早く会社に行って試したい。独立したネットワーク管理セグメントなので、VPNでも接続できないのだ。早く月曜日にならないかな。

昨日、Perlのスクリプトでなんとかやろうと思っていたRogue Clientを特定する方法は、先輩がまた「WLCがsnmp出してるみたいだからMIBを調べればsnmpwalkで取得できそうだよ」とメールをくれた。
しかし、ネットワーク担当と言いつつ元々本業はサーバ管理&プログラマーだった私は、そのコマンドを使ったことがなかった。うう、未だに似非ネットワーク管理者なのだ。仕事といいつつプログラム書いてばっかりだし。とりあえずググったりmanを見たりして、どういうコマンドでどういうオプションで、とか調べてた。しかしオプションがいっぱいあって、ううう、どれをどう指定していいやらわからん。コミュニティ名ってどこに定義されているの?

しばらくして先輩が「できた?」とやって来た。「実はsnmpwallkって使ったことがなくて、今調べてて…」と話すと、あきれ顔。ちょこっとヒントをもらい、また続きをやる。コミュニティ名はsnmptrapd.conrfにもsnmpd.confにも書かれていなかったので、適当なスイッチにtelnetで入ってshow configで調べた。MIBファイルを調べてsnmptranslateというコマンドでシンボル名をOIDに変換し、

snmpwalk -v 2c -c コミュニティ名 -M /usr/local/etc/snmp/mib -m OID WLCのIPアドレス

でようやくRogueClientのMACアドレス一覧を取得できたのだ。よし、これで完璧!と思った矢先、

「そのRogue ClientがどのAPに接続しているかが、これだけではわからない」

ということに気がついた。全てのRogue Clientを調べたいのなら、別にどこに接続しているかという情報は必要ないのだが、調べたいのはあくまでもユーザに使用を許可していないAPに接続されているクライアントのMACアドレスであり、KnownなRogueAPに接続しているRogueClientは除外したいのだ。

う~ん、まだあと一歩。なんかいい方法ないかのう。