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

◇ 参議院選挙ですね ・・・・・・ 第727
☆モバイルオフィスの作り方 ★
Vol.0727

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

□ クラウドをどこまで信用できるのか?
□ 楽しいサボのプログラミング講座ーその14

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ クラウドをどこまで信用できるのか?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
前回・・・と言ってももう3週間ほど前ですが、OneDriveやDropBoxといったクラ
ウド上のファイルサーバーをどう利用すべきかという話題をお話ししました。
今回もその続きです。

◇ キャッシュでのファイル参照
前回も話題にしましたが、OneDriveもDropBoxもキャッシュでファイル操作が
できます。
これを初めて見たときは感動ものだったのですが、ほとんど自身のPCのディス
ク容量を消費することなく、巨大な自社のサーバーの内容が全て見えているの
です。

見えているだけではなくて、例えばExcelファイルならダブルクリックすると
それをオープンすることが出来、そのファイルを編集して書き換えてもよいし
上書きしてもよいのです。

そして別のフォルダーにコピーすることも出来ます。
その間、全てWindowsのファイルエクスプローラでいつも通り操作できます。

この技術はすごい!・・・と思った次第です。

自身のPCで書き換えたりコピーしたファイルはすぐにOneDriveやDropBox上に
同期され、さらに数日以内に自身のPCからは実態ファイルはなくなります。
つまり容量は消費しないのです。

◇ OneDriveとDropBoxの違い
さて、OneDriveでは経験があるもののDropBoxではまだこの機能を本当に使っ
たことはありません。
OneDriveではこの機能を使った場合にサーバーの全ファイルがそこに(自身のP
Cに)いるように見えているのに実際のディスクの消費量がほとんど無いことは
知っています。

ではDropBoxはどうでしょうか?実験こそしていませんがたぶんOneDriveと同
じで領域をほとんど消費しないのではないでしょうか?
なぜなら私のスマホのDropBoxアプリがうまく稼働しているからです。

当たり前の話ですが私のAndroidスマホはスマホを購入してから追加でメモリ
カードを購入していません。
ごくささやかなフラッシュメモリで稼働しています。

でも・・・・!
会社のサーバーの全フォルダーが見えていて、1.4Tある領域を操作できる・
・・ように上手に私をだましています。

◇ ちょっと実験
たまたま、今の時期にある顧客の図面ファイル(約4万点)をZipにまとめて保管
するようにシステムを改変中です。

その過程で数Gバイトの待避ファイルがサーバー上に存在し、スマホでそのフ
ォルダーを見たらちゃんとあります。
そもそもこのフォルダーだけで10Gほどの容量があり、本当ならスマホには保
管出来ないのですが、まるでそこにフォルダーとファイルがあるように見えます。

本当に操作できるのかな・・・・と思ってその巨大なZipからjpgを1個とExcel
ファイルを一個解凍してみました。

これは私のサテライトオフィスにあるサーバー上で行ったのです。

1. 巨大なZipにある1万個ほどのファイルから2個のファイルを解凍する
2. たぶん解凍した瞬間にDropBoxに同期したと思われる
3. この記事を書きながらスマホのDropBoxアプルを眺める

この間、数秒なのですが信じがたいことに今までなかった2個のファイル(jpg
とExcel)がスマホ上に見えています。

次いでそれぞれのファイルをクリック(スマホなのでタップ)するとちゃんと画
像もExcelもオープンできます。

ここまで来るともう私の好奇心は制御を失います。
久しぶりのメルマガ執筆を横にのけてExcelの編集を始めました。

◇ スマホのドロップボックスアプリのExcelを編集する
jpgは図面が見えたことで満足し、ExcelをAndroid用のExcelでオープンして編
集してみます。
小さな画面のExcelのセルの中身を太い指でコピーしたり書き込んだりして操
作し、上書き保存してみました。

次いでメルマガを書いているPC(私の仕事用のダイナブック)でサーバーのフォ
ルダーを見るとExcelのタイムスタンプが変わっているように見えます。

こちらはデスクトップのExcelですからダブルクリックしてみたところ・・・・
スマホで編集したExcelファイルの変更内容はちゃんとデスクトップで確認で
きます。

時間を計ろうと思いましたが、スマホで登録してダイナブックでExcelをオー
プンするまでに計測できるような時間はありませんでした。

◇ ここで起こった出来事
さて、これはDropBoxで起こったことですが、基本的にOneDriveでも同じで
す。
原理的には以下のようなことが起こったはずです。

1. AndroidスマホでExcelをタップ
・ 実態ファイルはないはずなので急いでAndroidのDropBoxアプリはそのExc
elファイルをダウンロードしてExcelアプリに渡す。
・ Excelアプリがこのファイルをオープン
・ マナベが編集+登録
・ DropBoxアプリは登録されたExcelファイルをクラウド上のDropBoxと同期
2. クラウド上のDropBoxはサテライトオフィスのサーバーと同期
・ ここで変更があったことを検出したクラウド上のDropBoxは同期対象のサ
テライトオフィスのサーバーと会社のサーバーと同期する
・ マナベがダイナブックからサーバーを見てExcelをオープンし、編集内容
が届いていることを確認して腰を抜かす!

このようなフローのハズです。

◇ じゃ、次に何をする??
非力なAndroidでこれだけの仕事が出来るなら強力なダイナブックならもっと
いい仕事をするだろう・・・・
と考える次第です。

今まではサーバーに同期をとらせてそれをダイナブックからドライブ接続して
操作していましたが、このサーバーの同期はバックアップのために残しなが
ら、ダイナブックに直接クラウド上のDropBoxを接続しようとしています。

サーバーが同期しているのだからこのステップは不要なのですが、それをやる
のは???

単にやってみたいからです。それなりに感動したDropBoxのキャッシュの同期
ですが、それでもやってみないと本当にいいところや悪いところは分かりませ
ん。

まずはドロップボックスのWin用プログラムをインストールしましょう。

なかなか楽しい冒険が始まります。
もちろん良いことばかりではなくて問題も起こるでしょう。
DropBoxと私の仕事用のダイナブックをディスク容量を使わずに付き合うという
のはとても興味深い実験です。
と言うことで次回以後にこの冒険のお話しをします。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ 楽しいサボのプログラミング講座ーその13
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
前回は構文のお話しをしましたね。
コントロールや構文についてはまた後の機会でもう少し詳しくご説明しますが今
回は変数、特に配列変数のお話しをしましょう。

◇ 変数
    変数とはデータ(文字列や数値)をプログラム中に格納する箱で、プログラム
    の中核と言えるほど重要な要素です。
    
    変数の宣言の方法は説明しましたが、JavaScriptでは特別の予約後以外はア
    ルファベットならたいていOKです。
    
    例)
    var UserName = "";
    
    これである1個の文字列を入力出来るUserNameと言う名前の変数が出来まし
    た。
    最初の宣言で空白を代入しているのはこれが文字型変数であることを明示的
    にしておきたいからです。
    
    別に・・・
    var UserName = "真鍋 隆彦";
    
    と書いて、変数の宣言とともに値を代入してもよいですが、私は普通は変数
    の宣言と値の代入は別にします。
    例えば以下のようにします。
    
    var UserName = "";
    UserName = "真鍋 隆彦";
    
 ◇ 変数のスコープ
  さて、ここで作った変数がどこで参照できるかという範囲をスコープと言い
  ます。 
  変数のスコープには大きく分けて二種類あり、グローバル変数とローカル変
  数と言います。
 
  グローバル変数とはプログラムの中のどこからでも中身を参照したり書き込
  んだりすることが出来る変数であり、ローカル変数とはその変数を宣言した
  関数の中でだけ使える変数のことです。
 
  このことは重要で、一般的にはローカル変数を使います。
 
  例)
  function test(){
        var UserName = "";
        UserName = "真鍋 隆彦";
 
  }
 
  このように関数(test)の中で作ったUserNameはこの関数の外では使えません。
  別の関数で同じようにUserNameを作ってもそれは別の変数であって、中身は
  共有しません。
 
 
  それって不便じゃ??と思うかも知れませんが、変数の管理としてはこの狭
  い範囲だけで中身を廃棄しなくても使えたりしてこちらの方が一般的です。
 
  じゃ、グローバル変数にしたい場合は???と言うと方法は二つあります。
 
  方法1)
  ・ 関数外で宣言する
        var UserName = "";
      function test(){
            UserName = "真鍋 隆彦";
 
      }
      
このように関数の外で宣言するとこの変数はグローバル変数になり、プログラ
ムの中のどこからでも呼び出したり書き込めます。

方法2)
・ varをつけずに宣言する
      function test(){
            UserName = "";
            UserName = "真鍋 隆彦";
 
      }

このように関数内であってもvarをつけずに変数を宣言するとグローバル変数
になります。
一見便利そうですが、他の関数でよく似た名前をグローバル変数として使って
しまうと、思わぬところで中身を上書きしてトラブルの元になりますから、で
きるだけローカル変数を使用しましょう。

◇ 配列変数
さて、ひとりだけの氏名を記憶させるならこの変数でよいのですが、大勢の名
簿を管理したい場合にはどうすればよいでしょうか?

例えばUserName1,UserName2,UserName3,・・・・UserName100
といった風に名簿の数だけ変数を用意しますか??
でも名簿は何人なるか分かりませんね。


こういった場合には配列変数を使います。詳しいことは次回以後に説明します
が、配列変数は1個の変数に添え字をつけてほぼ無限に変遷を用意できます。

  function test(){
        UserName = [];
        UserName.push("真鍋 隆彦");
        UserName.push("真鍋 チャッピー");
        UserName.push("真鍋 テン");
  }
 
  こうするとUserName[0]は"真鍋 隆彦"となり、UserName[1]には"真鍋 チャ
  ッピー"が格納され、UserName[2]には"真鍋 テン"が格納されます。
 
  ここで重要なことは添え字は数値であり、Loopなどで必要に応じて格納した
  り参照したり出来ることです。

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