2017ししおどし「虚仮威し」ではありません、「鹿威し」です。解析・処理する程度のものを組むかという、二択問題によく悩む。これまでの経験上、後者の方が敷居が低く取りかかるのに容易であるというメリットがある。何らかの壁にぶち当たると、ブラックボックスのない前者の環境で試行錯誤を進めた方が、心理的にもまさしく“急がば回れ”の典型のような結果となり、トータルで楽になる。一通り組み上げてしまって、それで問題なく全体的に動くものが出来上がっていたので、そのまま運用していたものだった。ゼロ状態からのスタートとなるプロジェクトでは、まずはどんな形であれ、全体としてちゃんと動くものへと到達できるかどうかが不明な状態なので、「まずは全体としてちゃんと動くもの」まで辿り着くことが何よりも重要である。ターゲットを絞った方が確実にプロジェクトを成功まで推進することができる。化したりして、使い勝手が向上したので、さらに前から欲しいと考えていた機能を追加したりした。時は気にならなかった処理速度が気になったので、ネットワークからのデータの読み込みをマルチスレッド化するところまで行き着いた。このネットワーク読み込み処理のマルチスレッド化で、ある問題が表面化したのだった。スレッドセーフではないようなのだ。自体がスレッドセーフではないという話に含めていいのかどうかはわからない。一貫性がなくなり、問題が発生することとなった。自前で操作したいとなると、逆に厄介だ。ネットワークライブラリーは非推奨であるという理由で、依存したくないので見送った。プログラムを自前で組むという方針にすることにした。自前で処理する必要がなくなるではないかと思う。レベルで処理する方策を採ってきた。同様に使えるので、意外と敷居は高くなかった。クライアントを自前で組むことを避ける主な理由はこれだった。して逃げることもできるので、無理に立ち向かう必要はない。逃げるという消極的な方策はあまり気持の良いものでもないように感じた。立ち向かうことにした。クライアントプログラムを自前で組んでみたのだが、なぜかセオリー通りに動作しない。サイズ計算が合わないのである。思って色々試してみるも打破できない。扱うようにしても改善せず。サイズよりも小さくなるのである。よる影響は完全に断てている。手は尽したのに、これではお手上げだ。してみたら、どうなるか試してみた。サイズを多くしても、全く読み込まれるデータが変わっていないのである。データが同じ場所でブツ切れている。データの読取に起因することだということが判明した。一発で読み取ろうとしていたが、その処理でブツ切れになってしまっていたのだ。バイトずつ読み取ったら、完全に問題はクリアされた。関係は一番感覚的に不慣れさが残っていたジャンルである。相当)か程度で、一文字か文字列かという区別はなく、もちろん、バッファどうのということを気にすることもなく、とてもシンプルで苦労がなかった。多段階になっているのか、不便な感じがする程度で深く検証することを避けていた。そのため、このようにデータの読み込みが半端な状況に陥いるなどというアイデアは最後になるまで想定できなかったのである。いう記述をすることの由来がわかった。大体が言語処理系側が宜くやってくれるので、記述上は配列に一気に読み込んでも、このようなブツ切れになってしまう羽目にはならなかったわけだが。なんて話が出てくるのだろう。行う必要があるという認識で今まで凌いできた。吐くエラーメッセージが表示されるので、自分でエラーに備える処理を明示的にコーディングする必要はなかった。いうのはそういった意味でユーザーとプログラマーが完全に同一レベルの視点で体験を共有しているので、ある意味貴重な環境なのかもしれない。クラスを用いるという経験があまりなかった。プログラムを作成していて、想定外のエラーが発生した時、そのエラーがどの段階で出たエラーなのかということがわかった方が、自分自身で利用するだけでなくもしアプリを公開するという前提では、その方が良いと考えた。発生させるようなコードにすることにした。使うことに落ち着いた。表示にエラーメッセージも表示させたいと考えた。側でもどこでキャッチすればいいのかがわかりにくい。させることにしたのである。対応をしなくてはならない。した方がいい、と単純に考えていた。呼出元に回した方がいいとわかった。コードの層のクラスにおいて行う。通じてメッセージとして表示すればいい。このようにしておくと、他のユーザーが使ってエラーが発生した時、エラーメッセージを表示してその情報を元にサポートする手掛かりを易くできる。インストールし直した。インストール後の各設定のカスタマイズや、基本ツールのインストールなどは、一度それぞれの方法を確立した後だったので、今回はそれらを通してメモにまとめておくことができた。ドライブに退避させておかなければならない、などの要点を整理するいい機会だった。インストール後、暗号化されたドライブ用のユーザーアカウントが表示されるようになったので、気持悪かったので、非暗号化でフォーマットして仕切り直した次第である。フォーマット自体が暗号化されたものに置き換った。いうことは結局、最初から暗号化しておいた方が、時間的に遠回りしなくてスマートだったことになる(意味不明のユーザーアカウントはどうにか消す方法がある)。アクセス元制限を付けた。オプション設定を追記したわけだ。側のネットワークアドレス(192.168.0.0/24)と異なるものとなった。カンマ(「,」)区切りでネットワークアドレスを列挙する必要がある。して列挙したものを与えると、正常に動作しない(すべてのネットワークからアクセスできなくなった。使って復旧作業をする羽目になった)。設定としては列挙で設定することはできず、一種類の設定しか与えることができないのである。ルーターモードで運用するのをやめて、ブリッジモードに戻すことである。エントリーは一種類で済む。ビットというネットマスクを使う奇策である。意味するネットワークアドレスである。サーバーであることを設定し直す。ログイン可能であることを確認できた。ON(適用)するだけで良かったかもしれない)。TUN(ルーター)へ変更することにした。変えることが基本となる。tunクライアント側はこれだけで他にやることはない。サーバー側ではルーターモード体制に伴ういくつかの副作用的な状況を解決するための設定が必要となる。専用のサブネットの設定が必要になる。