ローカルサーバーとリスト

3週間ぶりに精神科医に通って、進路を相談して、統合失調症と睡眠不足の処方を派遣社員になる以前に戻してもらうことになった。独り言によってコミュニケーション障害があったとしても、私生活では影響がないと考えてのことだった。派遣社員のときは予定が立たないことへのストレスが溜まっており、不利で脆弱な立場に追いやられることが多かった。年収も手取りでは300万円を下まわっており、生活はかなり節約していたつもりだった。耳鳴りはするけれど、とくに相手が決まっているわけではなさそうだった。運動不足ということも考えにくい。派遣会社では耳鳴りが独り言に知らず知らずのうちに反映されていて迷惑ということだったけれど、個人的には未だに覚えがない。またどう改善いいかもわからない。派遣会社も社員を不当に拘束して、一方的な要求をすることもあった。それらの症状は発達障害に当てはまるが、自分なりにできる努力をしていくほかない。

お薬手帳の履歴によると、長い待期期間から派遣先に入場するときの条件付けとして、統合失調症の処方をされていたが、退職を機にもとに戻そうと考えた。以前のお薬手帳を持って行ったけれど、いくらか説得力の足しになったかもしれない。認識の間違いと、悪意を結び付けられると正常な判断ができないと思われることがある。勘違いを恐れるあまりふさぎ込んでしまうこともある。人が近づいてくるとギョッとすることがあるけれど、その人が嫌いということもない。以前の職場では襟が曲がっていると指摘されるとその日の調子がずっと思わしくなかった。

続きを読む ローカルサーバーとリスト

乗車証と図形の描画

今日の気温は30℃を上回ってやや蒸し暑かった。とはいえ35℃には達していなかった。台風10号が近づいているのでフェーン現象で気温が少し暑くなっている、台風が通り過ぎるまでは残暑はしばらく続きそうだ。今日は急な雨もなく、蒸し暑い点を除けば比較的過ごしやすかった。喉もそれほど乾かなかった。扇風機で風通しを良くして、水分補給を定期的に採って熱中症対策を継続していく必要がある。

障がい者等級3級の手帳と引き換えに、都営線が無料で使える磁気カードを取得した。東京都内の都営線の路線は、東西に都営新宿線が、南北に都営三田線が通っている。とくに都営新宿線は第二新卒のときに江戸川区一之江駅に降りた時に、そこに居心地の良さを感じてか賃貸を借りて住むようになった。実家のある浦安からは橋を2つ渡ったところにある。千葉県と東京都の境目にある下町で、都内にあってもどこか田舎のような雰囲気があった。アトピー性皮膚炎もそのあたりに引っ越してから比較的治りが良くなっていった。webデザイナーとして中央区の事務所で残業をするようになると、終電の時間帯で帰る日もあったので、同じ中央区に引っ越すことになった。そのまま派遣社員としてSEをするようになり、そうして予定が立たないその日暮らしの生活が6年余り続いていた。中央区ではあるが公園が近くにあったことで憩いの場になっていた。現在では、中央区と江戸川区のちょうど中間の江東区に住んでいる。

続きを読む 乗車証と図形の描画

進路とプログラミング

時折雨が降るものの、それほど涼しくは感じなかった。長袖だったこともあり少し暑かった。台風が九州に接近しているので、天気がやや不安定になっている。晴れ間が見えているのに雨が降ったりしていた。事務書類では去年分の源泉徴収票が保管してあることが見つかった。離職票はまだもらっておらず、コロナウイルスに伴う退職勧告を受けている段階になっている。3級の障がい者手帳をもとに定期を無料で引き渡してもらう準備をしている。発達障害と統合失調症のため、それを和らげる薬を服用している。独り言があるというアドバイスから定期的にカウンセリングを受けるようになった。障がい者手帳もそのカウンセリングが前提になっている。なるべく正常な状態に戻れるように努力していきたい。

JAVAのプログラムではJavaFXを用いた図形の描画やボタンの配置を行った。ボタンを押したときにイベントが起こるプログラムは、JavaScriptでは簡易化されており、actionScript3.0のそれに近かった。また、図形の配置ではボーダーペインとグリッドペインというウィンドウ内の領域の定義があり、それぞれの区画には一つの要素が描画されるようだ。参考書のサンプルプログラムではテキストエリアとキャンバスの要素が同時に重なってCenter区画に設置されていたので、テキストエリアが表示されていなかった。キャンバス要素をRight区画にすると、テキストエリアと重複されずに表示されるようになった。また、ボタンを押して、チェックボックスを選択したときの動作で、コンソール画面に文字列として結果を渡すプログラムを追加した。これもJavaScriptやJQueryなどのフレームワークではなかったタイプのプログラムになった。とはいえ、JAVAのプログラムはパソコンのローカル環境でしか動かないので、実際には別の言語やシチュエーションに置き換えて当てはめる必要がありそうだ。ウィンドウ上に配置されたボタンを押してからデータの受け渡しだけでなく、そこからイベントとして図形の描画もできるようだった。参考書のプログラムを実行すると、黒い四角形が描画されるだけだったので、それに対応する描画の部分を特定しないと意味合いが分かりにくかった。結果的にはテキストエリアと図形の描画を同時に行えるようにプログラムを修正することができた。

続きを読む 進路とプログラミング

ファイルの読み書きと実生活

朝起きると、タオルケットだけでなく毛布がいるくらい気温が涼しくなっていた。日中にかけて気温が上がっていき30℃をやや上回ると、少し汗ばんできた。エアコンに頼らずとも過ごしやすい気候に変わってきた。ベランダの太陽電池と温度計センサーの組み合わせによる運用も引っ越してきたのが去年の8月からおよそ1年が経つ。定期的にベランダの温度と湿度を計っていてそれを継続することができた。ベランダの植物にも水をやっている。ベランダはあまり広くないので、今ある植物の鉢と種類はそのままに、なるべく手間が掛からないような組み合わせにしていきたい。多肉植物とオリーブの木が比較的水やりが少なくて済んでいるが、それでも毎日水をやる習慣が馴染んでいる。育てやすい品種を選んでいたつもりだったが、ベランダの気候に応じて育つペースが変わってきて、どれが合っているかは植えてみないと分からない性質もあった。

JAVAのプログラムではファイルとフォルダの操作を行った。テキストファイルを新たに作ってその中に文字列のデータを入れたり、テキストファイルにある文字列を読み取って行番号を追加したりした。参考書ではファイルパスがCドライブから始まる絶対パスに指定してあったが、プロジェクトファイルを起点にした相対パスにもできるようだ。どちらかというと記述が柔軟な後者のほうが使いやすかった。ファイルの場所はプロジェクトファイルと同じにしてあるが、場所は特に指定はないようだ。また、セーブデータのようにオブジェクトのデータをあるファイルに保存して、それを読み込むことで保存したオブジェクトを再現するというプログラムも試して見た。FileOutputStreamでデータを保存して、ObjectInputStreamでデータを読み取って再現する。保存されたデータのファイルをメモ帳で開いても、法則性は読み取れなかった。とはいえデータの受け渡しの仕組みを学ぶことができた。データのやり取りがエディタ内だけでなく、実際のファイルで再現されると、プログラムが具体的になってくる。テキストファイルへの書き込みはPHPのプログラムでwebサーバーにアップロードされたサーバーのフォルダの中でファイルの読み書きを行ったことがあった。JAVAの場合はそれが、パソコンのローカル環境の中のフォルダになっている。ともかくパソコンのソフトウェアのプログラムの仕組みを知ることで、今あるリソースでできることを見つけていこうと思う。またテキストファイルの中の行を一列ずつ読み込むプログラムなどもなにかに応用できればと考えている。

続きを読む ファイルの読み書きと実生活

クラスの共通要素をまとめる

リビングのLEDシーリングライトにぼんやりした影が付いている。キッチンの同じ形のLEDライトと色合いが変わっている。奇妙に思ってLEDシーリングライトの蓋を取ってみると、LEDライトの基盤とプラスチックの透明なパーツが重なった部分が黒く変色している。キッチンの照明は、リビングに比べるとこまめに付けたり消したりしていたので、同じ部品でも変色していなかった。リビングの照明は付けたままにしておくことが多かったので、変質しやすくなっていた。棚にはメーカーの保証書があったけれど、すでに入居して1年が経っていたので、保証期間は少し過ぎている。据え付けの照明だったのでレシートなどは残っていなかった。とはいえ黒く変色したままにするのも不気味だったので、型番を控えてメーカーに問い合わせたところ、LEDライトのパーツが黒く変色する問題があることは知っているようだった。とはいえリモコンでの操作はそのまま使えるため、見た目を気にしなければ通常通り使えるとのことだった。保証期間は過ぎているが、変色しない同型のモデルと交換という形での対応になった。LEDでも基盤の発熱量が高いと変色することがあるようだ。そういった事例はLEDではなく電熱線によるヒーターの試行錯誤のときに基盤が変色することは何度か体験済みだった。ともかくメーカーに解決の手段があって良かったと考えている。

続きを読む クラスの共通要素をまとめる

配列の要素と自炊

ベランダの気温が30度を下回って、28度くらいになってきたので、体感的な蒸し暑さは変わらないが、エアコンをOFFにして窓を開けて網戸をすることにした。扇風機の近くの机にいるときはそこまで暑くないけれど、食卓のテーブルは熱気がこもってすこし蒸し暑く汗が噴き出てくる。食べるときに体温が上がっている分もあるかもしれない。部屋が窓からキッチンにかけて長くなっているので、風がやや通りにくくなっている。体感的な温度はそれほど変わりないが、季節は夏から秋に変わっている。暑さも残暑としての暑さになっている。

自炊しているメニューでは、1食あたりの原材料費が安い業務用スーパーの焼きそばを使っていたけれど、腹持ちを考えて米にして試して見た。米の値段は業務用スーパーでは2㎏880円が比較的安かった。1合200gとすると10回分の炊飯ができる。1食あたりは80円になる。焼きそばにくらべるとやや高いが、自炊して食べてみると満腹感がある。米の値段は業務用スーパーでも一般のスーパーマーケットでもお惣菜と比べるとそれほど値段が変わらなかった。より単価を節約する方法としては2㎏でなく5㎏を2500円くらいでまとめて買う方法があるけれど、5㎏の米を保存する米櫃がないので、一人暮らしでは2㎏の米袋を買うことが適していた。2㎏であれば、手提げ袋に入れて持ち運ぶことができた。焼きそばだけでなく、小麦粉も原材料費を抑えることができる。キャベツと合わせてお好み焼きを作ることもアイデアになりそうだ。また米1合と肉とミックス野菜を入れて作ったチャーハンは一食分がすこし多かったので、2食分に分けて片方を冷蔵保存して、電子レンジで温めなおすことも行った。とはいえ、1食分が米1合になるので、それを物差しにして栄養バランスと食べ応えのある食事を目指していきたいと考えている。焼きそばの場合は原材料費が安いものを選べばそれで需要が足りたけれど、米の場合は備蓄スペースを視野に入れて選ぶ必要があったけれど、業務用スーパーでも一般のスーパーでも原材料費はそれほど変わらなかったこともあり、どちらでも揃えられる。

続きを読む 配列の要素と自炊

仮想環境とレトロゲームと自炊

仮想環境のVirtualBoxにwindowsXPをインストールすることにした。セキュリティの関係上インターネットには接続できず、オフラインの環境になる。学生のときにプレイしていたレトロゲームで思いついたものとしてCivilization2をインストールする。Windows10の互換性モードでは動かなかったソフトウェアが、仮想環境で動くことができた。動作は少し重かったが、マウスカーソルは、現在のウィンドウと連続して使えるためスムーズではある。ポイントとしては、Civilization2のゲームを起動したときに、会議のビデオが映って、遺産の7不思議のアニメーションが動くこと、また外交のCGが表示されていることで、ゲームの再現性が確保されている。最新版はCivilization6でsteamというオンラインアカウントで動いている。FreeCivというCivilization2をベースにしたフリーソフトもあって、ブラウザ上だけでなくインストールしてデスクトップで実行することができるが、ゲームとしてのまとまりを考慮すると、civilization2がシンプルで繰り返しプレイしても、その都度マップが更新されて、ユニットの行動パターンが変わって新しい発見がある。

Civilization4はVirtualBoxにグラフィック用のDirectXがインストールできないので、steamのオンラインアカウントを使用する形になっている。windowsOSのバージョンが10になり、windowsXPだけでなく、windows7もサポートが終了してインターネットに接続できない環境になることが予想される。以前にはレガシーブラウザの表示確認のために、windows7とデフォルトのInternet Explorer7の仮想環境のイメージがあったが、アカウントの有効期限が90日になっていた。Internet Archiveという過去のログを収納しているライブラリから、windowsXP SP3日本語版のCDイメージがシリアル番号とセットになって保管されているため、その環境でのソフトウェアの再現には持続性があった。windowsXPに対応したOfficeXPのシリアル番号は有効でなかったので、日本語版だけでなく英語版も探してみようと思う。スマートフォンはmiHoyoのゲームの容量がやや大きいが、ファイル容量はまだ10GBほど空きがあり、カメラや動画を取ってGoogle Photoにアップロードすることはできそうだ。ゲーム機は持っていないためにパソコンまたはスマートフォンでできることを見つけられたらと思う。Civilization6でも現状のノートパソコンでも動作したけれど、グラフィックが2Dで一覧しやすいレガシーバージョンにも色あせない魅力がある。パソコンのゲームはスマートフォンよりわかりやすく、続けやすいための取り掛かれる要素が見つけやすい。

続きを読む 仮想環境とレトロゲームと自炊

プログラムのライブラリとバージョン

JAVAのプログラムのクラス設定や変数など、プログラムを収納する入れ物を用意したため、次にはパッケージのインポートやウィンドウの表示など、実際にパソコンで動いているプログラムに近づけるために、実践編の参考書を購入した。サンプルプログラムは、入門編とファイル名の構成が同じだったので、ワークスペースを別に用意することにした。ショートカットにワークスペースを登録しておくと、Eclipseのエディタが開かなかったので、ワークスペースを複数用意して、メニューにあったワークスペースの切り替えで変更することにした。コンソールのフォントがカタカナの部分が文字化けしていたので、フォントを日本語のカタカナを含むフォントに替える。フォントの文字の太さは標準にするとデフォルトのフォントと太さが揃って違和感がなかった。

ウィンドウを立ち上げて図形などを表示するためのJavaFXは、FlashのactionScript3.0のステージ構成と似ていた。というよりはFlashがJAVAのプログラムを模倣していたと予想される。参考書の設定では、JavaFXライブラリをgluonhq.comというwebサイトからダウンロードすることになっている。JavaFXはJAVAのバージョンが11でなく8のときは、システムに組み込まれていたが、バージョンが11になるとJavaFXのライブラリとバイナリのファイルを外部ファイルとして読み込む必要がある。ライブラリの読み込みでは、FlashのactionScript3.0やマイコンのarduinoで文字列の置き換えや、時計の機能をインポートして現在時刻を取得するといったことを行っていた。ホームページ制作のときにタブ切り替えなどで使っていたJavaScriptにはライブラリの設定はなかった。クラス設定の前にインポートの宣言を追加することで実現される。ライブラリではjavafx-sdk-11.0.2というファイル名は、2020年3月の時点と同じだった。ユーザーライブラリーにJavaFXのライブラリのパスを追加すると、瓶のようなアイコンのリストが並んだ。

続きを読む プログラムのライブラリとバージョン

プログラムの論理構造

JAVAのプログラムに、インスタンスを新たに生成する。インスタンスはデータ上に実体化しているモノ・事を指している。日本語に訳すると実体という意味になるようだ。WebデザイナーだったころにはJAVAではなく、JavaScriptのプロトタイプチェーンや、FlashのActionScriptでクラスやコンストラクタの決まり事のようなことを動きとは別に覚える機会があった。JAVAのクラスをそのまま使っている事例はかえって少ないかもしれないが、コンストラクタに単語を登録して、データとして有機的なまとまりにすることの意味合いを考えていこうと思う。変数がデータの文字列や、数値を入れる箱のようなイメージで、配列は箱がいくつか連なっているイメージ、多次元配列は配列の箱の中に、入れ子になって配列が入っているイメージになる。参照は住所のようなインスタンスのデータを読み取って値を表示することになる。継承は元のクラスが持っているデータに、独自のメソッドを追加するときにextendとして派生するクラスのことになる、例えば犬は歩くというメソッドを持っており、鳥は歩く代わりに飛ぶというメソッドを持っているとする。犬や鳥には共通で名前と体力がパラメータとして備わっており、それは継承されるもとのクラスの変数に代入して設定されている。プログラムを書くにあたって値を定義するインスタンス、それに変数の値を格納するフィールド、JavaScriptでいう関数にあたるメソッド、それらをひとまとめにしたクラスがプログラムの単位になる。こういった関係はJavaScriptやPHPなどの他のプログラムにも見られた。JavaScriptの場合はwebサイトの表示に、PHPの場合はSQLなどと連携してデータの操作と保持がプログラムの構造より先に、役割として与えられていた。JAVAではクラスを用意して、インスタンスを定義して、その構造を読み解いていく。

続きを読む プログラムの論理構造

エディタの設定とメソッド

Eclipseの動作はAll in Oneパッケージでなく、インストーラーでもなく、Eclipse IDE for Enterprise Java Developersのパッケージファイルをダウンロードして解凍すると、フォルダの中にEclipseが入っていた。それをダブルクリックすると、同じインターフェースで動作が軽くなっていた。また日本語化にも対応している、All in Oneパッケージと同じwebサイトの下にある日本語化ファイルをダウンロードしてEclipseを解凍したフォルダを指定するとインターフェースが日本語化された。JAVAプロジェクトの新規作成では、画面を一つ挟むけれど、プログラムの基本的な動作は個々のファイルやタブが開きやすくなった分だけ検証しやすくなった。変数を指定して値を変えて、JAVAプログラムを実行するとすぐに反映される。パソコンにOfficeなどのソフトをインストールする段階で、JAVAのIDEをインストールすることがある。

そのJAVAのプログラムを編集するエディタはなるべくひとまとまりになっていた方が分かりやすいと思っていたが、パッケージやインストーラーの関係性が分からず、検証しにくい環境になろうとしていた。エディタ内のフォントでは日本語のカタカナの部分が文字化けするようで、デフォルトのConsolasというフォントを日本語のカタカナを含んだ、他のフォントに替える必要がある。メモ帳で使っているMSゴシックでもよかったが、Yu Gothic UIにすることにした。テキストは多言語化に対応したUTF-8にしている。設定画面もそこまで重くならずに繰り返し参照できている。差し当たっては言語をJAVAに限定するというよりは、プログラムの文法のようなものを身に着けようと考えている。ここの単語のTipsも英語のままではあるが、グレーアウトから文字として表示されるようになった。例えば文字列を格納するStringの意味合いも適切に索引や用例が参照されるようになっている。英単語のようなニュアンスでプログラムを読んでいきたい。インターネットの回線が込み合う時間帯もあり、1GBを超えるファイルをダウンロードしてもファイルが欠けていることがしばしばある。例えばベンチマークソフトはファイルサイズが3GB以上あったが、WiFiを使ってダウンロードすると1時間以上かかった。以前にダウンロードした同じファイルをハードディスクにあらかじめ保存しておくと、後で解凍して使ってベンチマークを起動できるので便利だった。ファイルの容量ではEclipseのパッケージファイルも391MBある。パッケージを保存しているミラーサーバーの回線の状況にもよるが、ダウンロードだけでもそれなりに時間はかかるようだ。

続きを読む エディタの設定とメソッド