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

昨日はちょっと遅くなってしまい、23時前に就寝。眠剤を飲んで妻にマッサージをしてもらうと、す〜っと眠れてしまう。と言うわけで寝つきはよく、朝5時頃目が覚めてからは断続的な眠りに変わった。飯田橋の合同面接会に行くため、朝早く起きようと6時半に目覚ましをセットしていたが、それが鳴るのを待たずに6時に起きた。

7時半に家を出て、飯田橋での障害者合同面接会に行く。去年まで勤務していた会社が障害者枠で事務職を募集していたので、その応募に行った。面接の相手は、去年毎月のように面接していた人事部の人であった。これは話しが早い。番号を呼ばれて前に座って、「どうもご無沙汰しています」と言うと、かなり驚いたようで「おお、これはこれは」とかなんとか言われた。

他の障害者の人たちが、自分の障害やスキルに関して一生懸命説明しているのと全く違い、私の場合は退職してからの「その後どうなったか」という話をメインにした。私のスキルやらキャリア、それに障害に関してもそれまでの経緯は彼は承知済みなのだ。私が「細く長くいきたいんです」と話すと、私もその方がいいと思います、と言ってくれた。言ってくれたが採ってくれるとは限らない。

最後に「当然あなたを知っている人がいっぱいいますが、その点に関しては大丈夫ですか。やりにくくないですか?」と聞かれた。まあ、去年までSEとして働いていた人間が、同じ職場で事務職で、というのは抵抗がある人もいるかもしれない。しかし、私が病気であることもずっと休職していたこともみんな知っている。全く知らない人ばかりの職場に入っていくより、むしろ気が楽である。まあ、私がよくても周りの人はどうだかわからないが。そう答えると、それが気になったけれども、大丈夫ということならいいでしょう、と言われた。

面接会場をあとにし、いったん自宅へ戻った。妻と一緒に今度は横浜へ出かけ、ヨドバシへ。姪がクリスマスプレゼントにほしがっているニンテンドーDSがあったら確保しておこうかと思ったのだ。あげるのはうちでなく義姉だが、義姉も仕事が忙しい。未だに品薄のこの商品を私が見つけ次第確保しておくことになっていた。希望の色はピンクか水色とのこと。

すると、先日は5色のうち白だけしかなかったのだが、今日はピンク以外全部あった。おお、あるやんけ、と思ってピンクはないから水色を買ってラッピングしてもらった。その間ほんの数分のことだったが、その間にブラックが品切れになってしまっていた。むむむ、やはり入手困難な状況は変わってないらしい。今日はタイミングがよかったのか。

その後、なんだかとても疲れを感じたのでMore'sにあるマッサージ屋に行って、妻はその間お茶してユニクロに行っていた。たいしたことはしていないが、やはり電車に乗って遠出したのと、面接で疲れていたのだろう。マッサージをしてもらったら疲れは取れてだいぶ楽になったが、今度は眠たくなってきたので家に帰ってきた。本当はホームセンターに行ってコートなどをかけられるハンガー架けというのかなんというのか、砂漠のサボテンのような、いやちょっと違うか、まあいいや、そういうのを探しに行く予定だったのだが、まだコートの季節には早いし、今度でいいや。

帰ってきてからまたプログラミング。今更だが、ファイルの保存機能をつけた。ファイルを読み込んだり保存するというのは当初自分が必要としていた機能ではなかったが、汎用性を持たせるために追加した。これだけでいろいろな使い方ができるに違いない。

それから何か物足りないと思ったら、ツールバーがなかった。とりあえず作ってみようとしたが…、

アイコンがない。

そう、ツールバーの上にはもちろんその機能を表す絵が描かれてある。とりあえず「ファイルを開く」と「ファイルを保存」のアイコンは適当に拾ってきてその2つのボタンだけは作った。しかし、あと追加するとしたら、このアプリ独自の機能を実行するボタンだ。と言うことは、絵を描かないといけないのか、プログラムのアイコンだけでなくて。ちょっと調べたが、アイコン作成にも職人技が必要なようだ。ウィンドウズ標準のペイントどころではとても作れそうにない。Microsoftのサイトに「Windows XP 用アイコン作成法」というページがあるのだが、そこにも

Windows XP のアイコンのスタイルでは、楽しみながら、カラフルで、力強い表現ができるようになりました。新しい 32 ビット バージョンのアイコンでは、滑らかなエッジも可能です。アイコンは、ドロー系 アプリケーションで描画され、Adobe Photoshop での操作を経て、美しいイメージになります。

この記事はグラフィック デザイナーを対象としています。イメージを作成する際には、優れたグラフィック デザイナー (特に、ドロー系または 3D アプリケーションの使用経験がある方) と作業することをお勧めします。

と書かれている。「Adobe Photoshopでの操作を経て」って、なんでMicrosoftでなくて特定の他社ソフト指定なんだよぅ。別に自分はグラフィックデザイナーではないが、とりあえず値段を調べたら、「Adobe Photoshop Elements 4.0 日本語版 Windows版」という一番安いやつでも13,980円もするじゃないか。本格的なものは10万円くらいする。う〜ん、ドロー系のツールは持ってない。フリーウェアでいいのがないか、とりあえず探してみよう。

昨日は22時半過ぎに就寝。日課になっている妻のマッサージを受けて、寝つきはとてもよくなった。朝5時半くらいに目が覚めてから、浅い眠りに変わってなんども目が覚めた。7時に起床。

そして今日もプログラミング三昧。外部プログラムを画面から登録したり変更したり削除したり、よくあるように一覧の並び順を変える「上へ」「下へ」ボタンなども作り、内部の実装はほぼ完了した。外部プログラムのコマンドラインオプションを実行時に指定できるかどうかの指定もできるようにしたりと、最初の構想から仕様は膨らんでいった。エラーハンドリングはほとんどやっていないが、これで自分が作りたいもののほとんどの機能は実装した。あ、検索機能はまだ画面しか作ってないが、検索機能はこのアプリにはいらんな、そもそも。どうしようかな。

とりあえずこれからこのアプリをどうしようか。実は自分が「こういうものがあったら便利だろう」と思って作ったもので、基本的な部分ができた段階から、自分でそれを使いながら作っていた。ビルドでエラーが出たと思ったらEXEが起動中で上書きできなかったということもある。外部プログラムをユーザが登録できるようにして、汎用性と拡張性を持たせてみた。

自分で使うだけなら、これでいいし、さらに機能を拡張していってもいい。だが、せっかくだからフリーウェアとして公開して誰かに使ってもらいたい、という気持ちもある。しかし、そうしようとすると、今ではほとんど入れてないエラーハンドリングをみっちり入れていって、テストケースを洗い出して徹底的にテストをしないといけない。

実はプログラムの作成で一番手間と時間がかかるのがこの部分なのだ。公開するとなると、いい加減な実装はできない。さらにヘルプも作成しないといけない。あ、アイコンも作らないといけない。デザインのセンスのかけらもないが、何とか作るしかない。まあ、今は暇な身なので、徹底的にやってみてもいいだろう。どうするかゆっくり考えよう。

今日は通院日。17時前に家を出て、病院に着いて診察券を出し、待ち時間に夕飯を食べる。すき家のねぎ玉豚丼はうまい。病院に戻って待つことしばし。今日の待ち時間は2時間くらいか。診察では、最近は調子がいいことを話して、普段よりも短く終わった。仕事はゆっくり探しましょう、と言ってくれた。

明日は飯田橋で障害者の合同面接会に行く。去年まで勤務していた会社が事務職を障害者枠で募集しているので面接にいくのだが、だめもとで行ってみるのだ。ゆっくり探そう。

昨日は23時前に就寝。もっと早く寝ないといかんのだが、プログラミングが止まらなくて、ついつい遅くなってしまう。昨日の日記に書いた、外部プログラムを起動してその標準入力と標準出力をリダイレクトするのは、日記を書いた後もトライしていたら、コーディングのケアレスミスがあったのと、書き込む方をスレッドにせずに読み込む方だけ別スレッドにしたらうまくいった。うまくいって喜んだところで寝たのだった。夜はぐっすり眠れて、朝は6時40分くらいに起床。

ああ、そして今日もプログラミングをしているうちに夜遅くなってしまった。今日はちょっといろいろ作り込んだぞ。メインのプログラムをちょっと一休みして、中から呼び出す外部プログラムを一本作ったり、昨日はハードコーディングしていた外部プログラム情報をINIファイルから読み書きできるようにしたり、そのためにINIファイルの仕様をまた修正したら文字化けしたりしてうんうん唸ったり(これはINIファイルへ書き込む部分を書き直したときにエンコーディングの指定を忘れたのが原因だが、これに気がつくまでしばらくかかった。Shift_JISで読み込んだファイルをUTF-8で書き込んでしまったのだが、秀丸で開くと自動的に文字コードを判別してちゃんと表示してくれるので気がつかなかった。そのINIファイルをSJISだと思ってアプリで読み込むとおかしなことになるのだ。以上、注釈終わり)、それらの外部プログラムを画面から登録したり修正したり削除したりする機能を作ったり、いや、画面を作っただけで中のロジックはまだまだで、まあそんな一日だった。

その他にやったこと…。あ、横浜へ行った。履歴書を買いに行ったのだ。履歴書くらいちょっと歩いたところの商店街に行けば文房具屋で売っているが、ニンテンドーDSがまだ品薄で入手困難なのか、もう普通に買えるのかちょっくら偵察にいった。姪がクリスマスプレゼントにニンテンドーDSがほしいらしく、サンタさんである義姉が「手にはいるかしら〜」と言っていたので、ヨドバシに行って偵察してみたのだが、5色あるうちの1色だけ在庫があるだけであとは品切れ。やはり品薄状態は変わらないようだ。これからクリスマスに向けてますます入手困難になるかもしれない。横浜に行ったときはチェックして、売っていればとりあえず代わりに買ってキープしておいてあげることにした。本体だけあってもしかたがないから、うちからはソフトをプレゼントしよう。

そして夕方、明後日の面接に向けて履歴書を書いた。いつまで履歴書は手書きなのだろうか。ハローワークのお姉様(と一応書いておこう)は「絶対手書き」と仰るのでそれに従っている。履歴書の書き方の手引きには「書き損じたら修正ペンや修正テープを使わず、一から書き直しましょう」などと書いているのだが、見事に間違えたら履歴書の在庫がなくなった。ああ、それで履歴書を買いに行ったんだった。

どっぷりとプログラム作成にはまっている。いい気候だからもう少し外に出なくては。明日は通院、明後日は飯田橋まで面接。まあ、外出する用事があるから外には出るだろう。当たり前と思うかもしれないが、それが突然当たり前にならなくなるのがこの病気の恐ろしいところである。

昨日は寝るのが0時近くなってしまった。いかんいかん。妻の実家から帰ってくるのも遅かったが、その後もなんかだらだらしていた。何をしていたっけなあ。でも寝つきはよくて、朝は6時に目が覚めた。でもまだ早いからいいや、と思ってもう一度寝て、7時に起床。

PCを起動すると、スローダウンの現象は起きない。いったいなんだったんだろう。まあいいや、再現待ちだな。「再現待ち」SEだった頃によく使った言葉で懐かしい。とにかくさくさく動くように戻ったので、プログラミングの続きをすることにする。

ちょいとここでヘルプを作ってみることにした。と言ってもヘルプファイルの内容はまだダミーで、とりあえずヘルプ画面を表示させるようにだけ。ヘルプはHTMLファイルにして、既定のブラウザでそのファイルを開けばいいや、と思った。

しかし、「既定のブラウザにURLを指定して開く」のをVBの中から実行する方法がわからない。わからないから検索したが、WebBrowserクラスの説明とかばかり出てくる。ここで「WebBrowserクラス」というのがあるので、せっかくだから自前のフォームにブラウザのオブジェクトをを貼り付けて、左にツリービューを配置したオリジナルのヘルプ画面を作ってみようとした。

それで、なんだかんだオンラインヘルプで調べつつ、なかなかうまくいかないが、試行錯誤の末、ようやくヘルプファイルがWebBrowserオブジェクトに表示された。しかし、ツリービューの方を作るのも大変である。

さらにHELP関連について検索していたら、なんとまあ、Helpというグローバルオブジェクトで簡単にできることが後になってわかった。

Help.ShowHelp(Me, "help/index.html")

という一行で、最初にやろうとしていた「既定のブラウザでHTMLファイルを開く」のが簡単にできてしまった。それならこれでいいや。ヘルプ自体はHTMLでがりがり作ればいい。とりあえずヘルプの中身は後回し。今度は検索機能を追加しようと決め、とりあえず画面を作る。

しかし、検索のダイアログを作っただけで、内部の実装は後回しにした。今作っているアプリではあまり重要ではないのだ。それよりも、最初からの構想にある、ユーザが自分でプラグインというか、外部プログラムを登録して拡張できるような機能の基本的な部分を実装しようとした。

これがなかなか難しい。子プロセスを起動するだけだったらShell()関数で十分なのだが、ちょっとややこしいことをしようとしている。実行しているプログラムの内部で生成された文字列を、起動する子プロセスの標準入力として読み込ませ、その標準出力を取得しようとしているのだ。要はCで言うところのpopen()のような、まあ要するに外部プログラムをパイプとして使いたいのだ。

VBでそういうことができるのか、いろいろ調べてみた。昔はVBでは標準入出力を使うこともできず、コンソールアプリもろくに作れなかったらしいが、今はVBも進歩していて、他のプロセスをオープンしてその標準出力や標準入力をリダイレクトしてストリームとして扱うこともできるし、マルチスレッドで動かすこともできる。

しかし、これがうまくいかない。子プロセスを実行し、スレッドを2つ立ち上げて片方で標準入力にストリームでリダイレクト、もう片方で標準出力からストリームにリダイレクトし、WaitForExit()でプロセスの終了を待つ。しかし、うまくいかない。出力がうまく拾えないのだ。Sleepを入れたり非同期モードにしてみようとしたりしたが、やはりうまくいかない。ReadとWrite、片方ずつならできるのだ。そもそも片方だけならスレッドなんかいらないし。もう少し調べてわからなかったら、悔しいけどテンポラリファイルを使うことにしようかな。実際、その方が確実だろう。

15時ごろ皮膚科に行って薬だけもらった。皮膚科はいつも混んでいるが、薬だけだと割と早い。院外処方なので処方箋を持って薬局に行き、薬を待っていたら、おばあさんと薬剤師の人がえんえんと平行線な話をしている。そばで聞いていたのだが、こっちが疲れてしまった。自分の薬ができているみたいなのに、そのおばあさんと薬剤師がずっと話をしているので待たされてしまった。

なんでも、おばあさんはたくさん病院に行っているのだが、病院ごとにお薬手帳を作っているらしいのだ。話を途中から聞いたからどういう経緯でその話になったのかわからないが、薬剤師の人が、他にどんな薬を飲んでいるか薬局がわからないと困るし、それではあまり意味がないから、と何度も説明しても「いやだから」とおばあさんは譲らない。

どうもそのおばあさんにとってお薬手帳とは「どの病院で自分がどの薬をもらったかすぐにわかる手帳」らしい。それなら一緒にくれる薬の説明書でもファイリングしておけばいいのに。多分この人は一生お薬手帳を病院の数だけ持っていくんだろうなあ。それにしても人の話を聞かない人だ。話を聞いているだけで疲れてしまった。

夜、昨日に妻が録画していたドラマ「僕の歩く道」を観た。自閉症の青年が動物園の飼育係で働くという設定のドラマだが、難しい役どころをつよぽんが見事にこなしている。司会とかさせたらいつもぐだぐだなのに、演技はとてもうまい。それにしてもこのドラマはいい。この話では自閉症だが、身体障害でも知的障害でも精神障害でも、障害者が働くということは、その職場の人たちにその人の障害がどういう特徴を持っているのか、どう接したらいいのか、ということを理解しなければならない。そういうことを改めて痛感させられるドラマである。

最近は割と調子がいい。これをキープできたらいいのだが。そろそろ今週の土曜日に受ける面接の履歴書を書かなくては。

昨日は22時半に就寝。ちょっと寝つきは悪かったのだが、多分1時間以内で眠れたとは思う。夜中には何度か目が覚めた。雨音が激しく聞こえたのを覚えている。朝は6時に目が覚めたが、まだいいやと思って寝た。結局7時半に起きたが、少ししんどい。雨のせいだろうか。

朝からPCをいじっているうちにいきなりPCがフリーズ。いや、フリーズではない。マウスは動くし、デスクトップアイコンを選択したりもできる。待っていたらしばらくしてアプリが起動。なぜか突然にPCがスローダウンしてしまった。何かやったっけ?朝起きてからしばらく普通に使っていたが、特に何にもやった記憶はない。

よくわからないが、昨日体験版のアプリをインストールしたり削除したりしていたので、その前の時点にシステムの復元をしてみた。しかし、現象変わらず。わからんからとりあえず復元を取り消した。

その後、ウイルスやスパイウェアを検索したり何度もリブートしたが、何も変わらず。そもそもスローダウンしている状態でのスキャンだからえらく時間がかかった。しかし、いきなり元に戻っていつも通り快適に動くようになった。なんだったんだ?いったい。

そしてプログラミングの続きをする。自分がほしかった機能はだいたい実装して細かいところを作り込んでいるのだが、まだまだエラーハンドリングなども荒い。人に提供できるものができるようだったらフリーウェアとして公開してみようかとも思っているが、それにはもっと細かいエラーハンドリングとテストが必要だ。あと、アイコンやヘルプも作らないといけない。それからもっと拡張性を持たせたい。まだまだやることはたくさんある。別にやらないといけないことでもないのだが。

ところで、今まではアプリの終了時にINIファイルに設定を保存するようにしていた。それを、オプションメニューで「終了時に設定を保存する」というのを追加して、デフォルトでは保存するのだが、「保存しない」をチェックするとINIファイルに設定を保存しないようにしてみた。そして起動し、適当に設定をいじってから「設定を保存しない」ようにして終了。INIファイルを開いてみると、よしよし元のままだ。そしてもう一度アプリを起動する。オプションを見てみると「終了時に設定を保存する」にチェックが入っている。ありゃ?と思ったが、そらそうだ。「終了時に設定を保存しない」という設定が保存されないからデフォルトのままなのだ。これはどうすればいいのやら?仕様がかたまればコーディングは簡単だが、仕様をどうしよう。

昼過ぎに妻と買い物に出かけ、妻の実家へ行ってお義姉さんとお話する。晩ご飯に誘われて、一緒に妻の実家で食べることになった。いったん家へ帰って買い物したものを置いてから、また妻の実家へ。一緒にキムチうどんを食べて、私が作った運動会のDVDを観たりした。姪の好きな曲をメニューシーンに挿入したりしてちょいと工夫を凝らしてみたのだが、それを気に入ってくれたようだ。恥ずかしがってきゃーきゃー言いながら、でも喜んで観ていた。

21時頃においとまして家に帰ってくると、またPCがスローダウンしている。なんでなんだ。なんなんだ。明日またいろいろいじくってだめならサポートに電話してみよう。朝はさくさく動いていたのに急にスローダウンした、というのはハード的にどこかがおかしいのかもしれない。