_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

◇ もう梅雨? ・・・・・・ 第723
☆モバイルオフィスの作り方 ★
Vol.0723

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

□ DoropBoxで大惨事
□ 楽しいサボのプログラミング講座ーその10

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ DoropBoxで大惨事
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DropBoxで同期時にエラーが頻発する原因はそもそもサーバーのファイル数が多
すぎると思われました。
DropBoxさんのサポートに問い合わせた際にもそのようなアドバイスがあり、さ
らに”選択型同期もご検討ください”と言われたのです。


◇ 選択型同期??
選択型同期の設定を見ると、”このPCと同期するフォルダを選択してくださ
い。選択されていないフォルダはdropbox.comでのみ使用できます”と書かれ
ていました。

この”選択されていないフォルダはdropbox.comでのみ使用できます”という
言葉をなめていたのです。

私は会社のサーバーでこの機能を実験することにしました。

◇ 会社のサーバーで選択型同期を試す
私のイメージでは山ほどあるフォルダーの内、選択したフォルダーだけ同期し
て、それ以外のフォルダーはそのままだと思っていたのです。

そこで試しに2個のフォルダーだけ(どうでもいいいフォルダー)を選択してみ
ました。

ここまでのお話しでこれから起こった大惨事はご想像できると思います。

会社のサーバー(メインのファイルサーバーです)はこの2個のどうでもよいフ
ォルダーを除いて全て無くなりました。

とはいえ、データが消失したわけではなく、ドロップボックスには全部そろっ
ているし、選択型同期をしていないサテライトオフィスのサーバーには会社の
サーバーのデータもやってきています。

何が問題かというと、会社のサーバーを元に戻すには全フォルダーを選択して
約2週間ほどかけて同期し直さないといけないという点です。

◇ ため息とともに復旧
もちろんこの時点で会社のサーバーの内容はすでにDropBoxサーバーに同期さ
れ、さらに私のサテライトオフィスのサーバーにも同期されていますから、再
度選択フォルダーを指定し直すことでサーバーは復旧します。

でも根本的な大元のサーバーのデータがいったんなくなったショックは甚大で
した。
ため息とともに数週間かけて復旧しました。

”説明をよく読まずに実験した私が悪いのだ・・・”と何度もため息をつきま
した。

◇ もう一つの問題
さてドロップボックスにはもう一つ、大きな問題があります。
例えば会社とサテライトオフィスで同時にファイルを変更した場合には両方の
ファイルが保管されます。

”#PrintOrder (HomeNas2 の競合コピー 2022-03-30).txt”といった感じで
す。

日々、迅速に更新されていたらたぶんどちらかを残してもう一つを削除すれば
よいのでしょう。
でも復旧には数週間かかり、その間も会社でもサテライトオフィスでも作業は
続きます。

そして大量の復旧をしているために今日、作業したファイルが同期されるのは
2週間ほど後です。
つまり2週間とかもう少し長い間の作業分はこの競合というファイルが保存さ
れてしまいます。

1個づつ見ていけばどちらを残すべきか判断できるのですが、それが数百個と
かそれ以上になるととてもやっかいです。

これはドロップボックスの本来は”親切"なのでしょう。

ファイルやデータの競合というのは本来とても難しい処理で、単純にタイムス
タンプの新しい方で上書きすればよいというものでもありません。

ですからユーザーに判断してもらうという考え方は理解できます。理解は出来
ますがやはりとてもやっかいです。

◇ OneDrive64を試そう
私どものケースはドロップボックスやマイクロソフトが想定しているより遙か
に過酷な条件だと思います。

でも・・・だからこそ、今度はOneDrive64を試そうと考えています。
例えばDropBoxはサテライトオフィスのサーバーだけ同期し、復旧出来た会社
のサーバーはOneDrive64で同期してみるといった試し方です。

私どもにとってサーバーを同期することで2箇所以上に分散管理して保管する
のは安全性を担保する上でとても重要なことなのです。
私は私どものような小さな企業がオンプレミスサーバーを社内においてファイ
ルやデータを保管する時代ではもう無いと考えています。

維持管理のコストが見合わないからです。

では代案は??と言うとクラウドサーバーなのでしょうが、クラウドサーバー
に保管すれば安全・・・とも思っていませんし、社内のLAN上のサーバーのフ
ァイルに比べて操作の条件は違います。
(Excelのファイルなどならよいのですがデータベースなどは社内ネットワーク
上にないとまずい)

そのことは私のたくさんのお客様の会社のサーバーも同様で、どこにどんな形
でファイルを保管するのが安全か?を絶えず検討しています。

私どものサーバーでもし可能であればどんなサーバーもそれほど過酷な条件で
はないのできっと大丈夫!と言う実験をしているのです。


◇ 最後に・・・
ファイルサーバーの同期とデータベースは数千や数万個レベルで問題は起こし
ません。

でも安心して使うためには数十万とかそれ以上のファイル数やレコード数で試
してみるしかありません。

この実験は本当にやっかいで、実際にそれだけのファイル数やレコード数を保
管してみて初めて問題が分かります。

あれこれと癖はありますが、DropBoxは数百万個のファイルの保管や同期に一
応、及第点をつけることが出来そうです。

でももう一つのOneDrive64(32bitはだめだった)はこれからの調査になりま
す。


クラウドサーバーが信用できたら本当に運用コストは下がり、安全性も向上しま
す。これからもこの手の調査を続けて皆さんにもお知らせするつもりです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ 楽しいサボのプログラミング講座ーその10
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
プログラムをシンプルに作るための根源的な話題にはいります。

◇ シンプルなプログラムのよいところ
私は若い頃からプログラムはシンプルであるべきだとずっと考えてきました。
そして経験的にシンプルに出来たプログラムはバグが起こりにくく、拡張性も
高いことを知っています。

でもそのほかにもシンプルなプログラムには様々なメリットがあります。

・ 制作時間が短い
私の最速記録はあるお客様のある部門のシステム一式を約10日で稼働させた
ことでしょうかね・・・
シンプルなプログラムを複数集めてメニューでつないで1個のシステムにし
ます。

メニューは単にプログラムのランチャーなのですが、これを上手に配置する
と各機能が有機的につながっているように見えて、システムになります。

・ バグが少なくてすむ
例えば究極の話で1行で稼働するプログラムにバグを仕込むのはむしろ大変
です。
シンプルで小さなプログラムはバグも少なくて済み、動作も高速です。

・ 初心者でも容易にメンテナンスできる
シンプルなプログラムは書かれている行数も少ないので比較的経験の浅いプ
ログラマでも容易に全体像を把握出来、メンテナンスに参加できます。

これらのことはベテランも含めて皆さんよくわかっているメリットですが、で
は一体どうすればシンプルなプログラムになるかを考えましょう。


◇ 単機能のプログラムを作る
基本的に単機能のプログラムを作ります。
例えば”納品伝票”と言うプログラムは売上登録をする機能だけを実装します。
請求書や取引先元帳、入金伝票の機能などは一切作りません。

販売管理に必須な請求書や元帳などは別途独立したプログラムとして作るので
す。

”納品伝票はひたすら売上を登録するだけのプログラム”であればかなりシン
プルなプログラムになります。

そこで重要になるのがメニューです。
メニューはこれら単機能のプログラムを列挙して起動するボタンだけが並んだ
プログラムで、登録するプログラムはその都度テキストで指定します。

メニューが起動するとお客様から見たらシステムに見えますが、実体は単機能
のプログラムの集合体です。

データベースを共有している以外はお互いに目的も構造も別のものです。

◇ 例外を排除する
実際にお客様と仕様の打合せを進めると、山のような例外が出てきます。
例えば入金伝票(回収伝票)で入金消込(今回の入金で消しこむ売上)が分割入金
だったり過入金であったりすることはよくあります。

それを特殊な機能として実現するのではなく、単に足りない入金分は入金の事
実だけ計上して消込はおこなわないとか過入金の場合にも余った金額は預り金
として計上し、いずれ次の入金の際に使うとかいった本体の機能とは別の会計
処理だけ(記録するだけ)の機能を追加しておけば大抵の処理は片付きます。


お客様の例外的な処理が本当に例外なのか?一般的な処理の変形に過ぎないの
かをよく検討し、何度も確認してなるだけ平凡な仕組みに納めることですね。

◇ これしかない!と言うプログラムを避ける
中にはどうしても必要なこともありますが、あれこれと資料をネット中に探し
回り、”これならなんとかいける”と思ったとしたらそれは間違いです。

”これならいける”なんていうプログラミングは必ず破綻します。
最低でも3種類の方法を思いつき、その中でもっともシンプルで容易な方法を
最小しましょう。

私が”これしかない”と分かっていてあえてプログラミングをしたのは今から
数年前のことですが、入力システムの中でメモがあり、そのうちの一部の文字
を選択して文字色を変える・・・と言うものがありました。

テキストボックスに入力した一部の文字列の色を変えるというものです。

こはインターネットで技術を検索しても”出来ない”と言う意見がほとんどだ
ったのですが、ExcelやWord、そしてファイルメーカーなどではごく普通にあ
る機能です。

これは極めて特殊な例なのですが、ちょっと興味もあったので調べ尽くしたと
ころ、Twittweがある記号に続く文字は反転表示するという記事があり、その
実現方法も書かれていました。

システムの本質からいったらどうでもよいことなのですが、そのときはどうし
ても実現したくてその技術を読み、実験した結果、うまくいきました。
(しかもこの方法で分かった事実でSpreadという大物を作りました)

今度は印刷する際のExcelへの指定方法ですが、これもなんとかなって、メモ
でとある文字を赤く指定すると印刷でも赤い文字で出てくるようになりました。


このときは極めて特殊な状況だったので実装しましたが、それ以外はこの10年
ほどは基本的な動作しかプログラミングしていません。

その間に作ったシステムは20を遙かに超えますが、特に困ったことはありませ
ん。


さて、今回のお話しは戦場に持って行くべき武器はシンプルでよくわかっている
ものだけにすべきだと言うお話しでした。
次回は何を持って行くべきかというお話しをします。
━━━━━━━━━━━━━━━━━━━━━━ 
[モバイルオフィスの作り方]はサボのマナベが日々気づいたこ
とや思ったことをお天気の良い日の縁側に座ってポツリポツリと
お話しするようなマガジンです。
ご意見などもあることと思います。
もしご意見等がありましたらお寄せいただければ随時話題にして
いきたいと思います。
 
 
新規登録・解除はこちら
      ↓
http://sabot.jp/MailMagazine/Merumaga.html
==========================================
★発行責任者:
 (有)ファクトリー・サボ
  真鍋隆彦
 兵庫県神戸市垂水区東舞子町9-9
           マリタイム舞子501号
 Tel:078-787-3602 Fax:078-787-3619
 Mail:manabe@sabot.co.jp
 http://www.sabot.co.jp/
 ☆ソフトウェアーギャラリーに遊びに来てください
  https://secure3552.sakura.ne.jp/sabot.jp/Mitumori/
==========================================
 
◎このメルマガに返信すると発行者さんにメッセージを届けられます
※発行者さんに届く内容は、メッセージ、メールアドレスです
 
◎モバイルオフィスの作り方
  の配信停止はこちら
⇒ https://www.mag2.com/m/0000109792.html?l=ywj17bb991