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

◇ ふと気づけば秋空 ・・・・・・ 第728
☆モバイルオフィスの作り方 ★
Vol.0728

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

□ ついにOneDriveを試す
□ 楽しいサボのプログラミング講座ーその15

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ ついにOneDriveを試す
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ついに、ついにOneDriveを確かめることにしました。
理由はDropBoxで”ハードドライブの容量を自動で節約”にがっかりしたからで
す。

◇ DropBoxでドライブを節約
この機能はOneDriveにもあるのですが、一見全てのデータが自身のPCにあるよ
うに見えるのですが、実際にはファイルはサーバーにしかない・・・と言う機
能で、DropBoxやOneDriveと付き合う上で大切な機能だと思ったので試したの
です。

・ ディスク上のサイズ         7.85 GB
・ データのサイズ            1.18 TB
・ ファイル数                 2,737,611

データの総数は1.2TBに対して実際のハードディスクの使用量は8Gほどで、
0.7%で十分な節約量です。

ところで問題なことはメモリの使用量で、私のダイナブック(メモリ6G)ではこ
のアプリが稼働しているだけで90%以上になります。
メモリをとっても使うのですよ、CPUもなかなか忙しそうです。

ダイナブックは使い物になりませんでした。


◇ OneDriveアプリを試す
これが実に大変な作戦で、まず自社サーバー上のドライブの中身を新しく作っ
たOneDriveの同期フォルダーにコピーしないといけません。
これが半端なく大変で・・・・・

約1週間から10日かかるのです。しかもその後で正しくコピーできたかどうか
の確認が必要鵜です。

さて、今回はDropBoxとは違い、会社のサーバー←→OneDriveだけで、サテリ
とオフィスのサーバーは同期しません。

その代わり私のPCが表示だけの同期をしています。
以前、DropBoxでがっかりした”ドライブを節約”モードです。

実はこの機能はかなり昔、OneDriveと付き合い始めた頃から知っていました。
DropBoxにもに多様な機能を期待したのです。

今回は・・・・まだ途中なのですが・・・

ディスク上のサイズは0で総サイズはDropBoxと同様です。

そして何より重要なことですが、メモリの消費量が84.7Mであり、DropBoxと一
桁違います。

もちろん、このことは今現在会社のサーバーのアップロードが忙しくて、私の
PCはほぼ待っている状況なので、静かだと言うこともあるのですが、最大でダ
ウンロードしているときでも300Mほどで、DropBoxの通常時の1G程度とは比べ
ものになりません。

この点はOneDriveアプル64の勝ちだと思います。

◇ 重要なことはOneDriveアプル”64”
以前、OneDriveアプリを利用したときは32bit版で、これはヘタレでした。
ファイル名が気に入らないといっては中断し、何度も失敗しました。

私が今回テストする気になったのも64bit版が大量で大容量の同期に向いてい
るという噂を聞いたからです。

https://www.microsoft.com/ja-jp/microsoft-365/onedrive/download

問題は本当にこの場所からダウンロードしたら64bit版なのか確信が持てない
ことです。
マイクロソフトはこのあたりが曖昧で、起動してみないと分かりません。

起動したアプリを見て・・・
(ビルド 22.171.0814.00003(64ビット)と書いてあれば64bit版のようです。


◇ でもこのアプリは強力!
でもこの64bit版のOneDriveアプリは強力です。
何度も言いましたように私どものサーバーは容量はともかく、ファイル数がす
ごいのです。
だいぶ整理しましたがそれも300万近くのファイルがぎっしりといます。

この手のアプリにとって、小さいファイルが多数というのは苦手だと思います
が、DropBoxと同様にものともせずにひたすら同期しています。

同期の速度はどうなのでしょうか?DropBoxと比較して実態ファイルのある同
期はそれほど遜色なく思えます。

とはいえ、現在はDropBoxの同期とOneDriveの同期を同時に行っていて、なお
かつDropBoxの領域をOneDriveにコピー中というすさまじい状況です。

PCオタクのN君が作ったサーバーはさすがに強力で、20G以上のメモリと4Tほど
のデータ領域は今までの倍のデータを難なく格納し、二つのクラウドサーバー
との同期を黙々とこなしています。

◇ 最終的には・・・
最終的にはファイルのコピーが一旦落ちついたところでOneDriveを主力にすべ
く仕掛けをします。

[現在]
・ DropBox領域←→DropBoxサーバー←→サテライトオフィスのサーバー
・ マナベのPCはサテライトオフィスのサーバーをファイルサーバーとして
仕事(現在のメインサーバー)
・ OneDrive領域
・ DropBox領域からファイルをコピー
・ OneDriveサーバーと同期
・ マナベのサテライトオフィスのPCと見えるだけの同期
[将来]
・ DropBox領域を深夜にOneDrive領域にコピー
・ マナベは自身の見えるだけの同期のみを使って仕事を継続
何が起こるのかを体験する
・ やがて深夜にOneDrive領域をDropBox領域にコピーする
この時点でメインサーバーはOneDriveになり、DropBoxはバックアップに徹
する

このように両者の特性や頑丈さを半年ほど比較して、その後はどちらか片方に
収斂するつもりです。

◇ 判定の基準
現在は会社のサーバーと私のオフィスのサーバーはDropBoxを介して実態ファ
イルレベルで同期し、3者が同じファイルをほぼリアルタイムで持つことで安
全性は抜群です。
問題点は・・・

・ HTMLのシステムなどは問題ないが昔のオンプレミスサーバーにデータを置
くタイプのシステムではとても遅い。
これはプログラム領域もDopBox傘下にあり、たくさんの作業ファイル(一時
ファイル)を生成するのだが、都度リアルタイムでDropBoxと同期するためだ
と思われる。
・ サーバーにフォルダーを作るのでさえ遅い
サーバー(DropBox傘下)にフォルダーを作るのでさえ数秒かかる。
これも上記と同様の理由。

さて、これらが見えているだけのOneDriveで解決するわけはないのですがそれ
でも試してみようと考えています。

元々作業フォルダーを同期と関係の無いローカルにおけばこの速度の問題は解
決するはずだし、そもそも”見えているだけのOneDrive”ではデータベース
テーブルの検索も出来ないはずなのです。


私は二度とオンプレミスサーバー(社内サーバー)に戻る気はありません。
DropBoxかOneDriveのクラウドサーバーをメインサーバーとし、社内サーバーは
同期のために一台だけ実態ファイルを持てばいい・・・(バックアップのために)
と考えています。
私どもはソフトウェアーが専門でサーバーを自社で保守することも人手不足で出
来ません。それならわずかな月額料金を払って専門家に委託したいのです。

そして委託したときに何が起こるのかを実験しているのです。
OneDriveで”見えているだけ”のサーバーで起こる騒動はしばらく話題にします。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ 楽しいサボのプログラミング講座ーその15
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
前回は配列変数の簡単な説明をしました。
変数は例えばUser1とかUser2とか言った変数を好きなだけ作ることが出来るので
すが、同じことを配列変数で行うことにはとても大きな意味があります。

◇ 普通の変数と配列変数
これはプログラムをすることの本質にも関わることですが、配列変数は超々重
要です。

例1)
var User1 = "真鍋 隆彦";
var User2 = "真鍋 チャッピー";
var User3 = "真鍋 テン";

といった一般変数を利用すると、あまりあり得ない想定でUserが3人とかそれ
に近い数しか以内場合にはなんとかなります。
でも数十人とか数百人とかそれ以上になると変数をその数だけ用意しないとい
けないし、何より何人になるか分からないUserをプログラムを書き換えて増や
していかないといけません。そこで配列変数を使います。

例2)
var User = [];  この時点で人数の制限はありません
User.push("真鍋 隆彦");
User.push("真鍋 チャッピー"");
User.push("真鍋 テン");

これは前回も説明したように同じメンバーを一般変数と配列変数に格納しただ
けで、その時点で差はありません。

しかし決定的に違うのは配列変数だと今後何人に増えても同じ手法で変数を増
やせることと、その後の呼出しを数値で行えることです。

例えばUser[2]と言えば"真鍋 テン"が返ってきます。
当然数値ですからLoopで全員を呼び出すのも容易です。

そもそも格納時にこのように3行のプログラムを書くこともありません。
変数に格納するデータは何らかの外部から読み込んだデータですから、それを
行数(人数)のある限り配列に取り込むことが一般的です。

その際に何人になるか分からないデータのために一般の変数を用意することは
無理ですし、Loopの引数を利用してIF文でどの変数に格納するか決めるなど全
くのナンセンスです。配列を利用すれば数行のプログラムであっても数万や数
十万、またはそれ以上のUserを格納することが出来ます。

◇ 変数を数値で指定できるメリット
例えばExcelを想像してください。
”B3”というセルをすぐに見つけられますね。ExcelのB列に100人ほどの名簿
が書かれているとして、他のメンバーと打ち合わせする場合には”B77の人
が・・・”といった指定はごく自然です。

でもプログラム(VBA等)で指定する場合は・・・・

・ CuUser = Range("B77")
・ CuUser = Cells(77, 2)

これはどちらも同じ意味で、上は直接B77を指定していますが下は・・・・
Cells(行番号, 列番号)という指定方法です。

で・・・これが上から順番に加工したりチェックする場合にはFor文を使いま
すね。

For I = 1 to 100
    CuUser = Cells(I, 2)
    ・・・・
Next

これで一行目から100行目までのUserの中身を操作できます。
配列変数はこれとよく似ていて、あるデータを数値で指定できることはプログ
ラムに極めて好都合なのです。
ExcelのVBAはとても良く出来ていて、仮に”B77”であっても文字列を合成し
て作ることが出来ますが、一般的にプログラムの変数はそうはいかないので
す。

◇ ついでに2次元配列
さて、Excelのワークシートは2次元です。
では配列は???

配列変数も普通に多次元になります。
例えば・・・

var CuUser = "真鍋 テン,黒ネコ,オス,15歳"
var CuUserS = CuUser.split(",");

とすると、CuUserS[0]="真鍋 テン"、CuUserS[1]="黒ネコ"とか言った配列が
出来ます。
あるカンマ区切りやタブ区切りの文字列をsplit関数で区切ると自動的に配列
に格納されるのです。
これを当初の書き方に変えると・・・・

var CuUserS = [];
CuUserS.push("真鍋 テン");
CuUserS.push("黒ネコ");
CuUserS.push("オス");
CuUserS.push("15歳");

と言う書き方になります。
次いで・・・・

User.push(CuUserS);

と書くと・・・・
User[3]には配列変数が格納されました。
そしてこれを取り出すときは・・・・

var CuName = User[3][0]; //"真鍋 テン"
var CuAge = User[3][3]; //"15歳"

といった感じになります。Excelの行に相当するのが最初の引数で次の引数は
列に相当します。

なお、配列を作る歳にはほぼ99%はsplit関数でデータを区切ることで生成し
て格納します。←超重要


配列変数はとても便利ですしプログラムとは配列を操作すること・・・と言って
も過言ではありません。
次回はもう一つの配列であるキー・バリュー型配列(連想配列)のご紹介をします。

━━━━━━━━━━━━━━━━━━━━━━ 
[モバイルオフィスの作り方]はサボのマナベが日々気づいたこ
とや思ったことをお天気の良い日の縁側に座ってポツリポツリと
お話しするようなマガジンです。
ご意見などもあることと思います。
もしご意見等がありましたらお寄せいただければ随時話題にして
いきたいと思います。
 
 
新規登録・解除はこちら
      ↓
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