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

◇ 春ですね・・・・・・・                  第691
 ☆モバイルオフィスの作り方 ★
                                Vol.0691

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

□   今年ほど春が待ち遠しいことはありません・・・
□   今一番したいこと

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ 今年ほど春が待ち遠しいことはありません・・・
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
先週はExcelの話題でしたが今回はVSCodeの話題を少々・・・

◇ 大好きな早春賦の季節です
 ”春はなのみの風の寒さや”で始まる名曲で、毎年この季節になると思い出さ
 れます。
 今日も休日なので近所のアジュール舞子という海岸公園に散歩にでかけました
 が、どこからともなく沈丁花の香りがしてきてしみじみと春だなと思う次第で
 す。
  https://ja.wikipedia.org/wiki/%E3%82%B8%E3%83%B3%E3%83%81%E3%83%A7%E3%82%A6%E3%82%B2
  
 思えば昨年の年末からたくさんのプログラムを作らないといけなかったので、
 年末も年始もなく、幸いにと言ったら叱られますがコロナ禍でどこにも出かけ
 られなかったので気づいたら春でした。
  
 でもそんな超忙しい状態もやっと出口がほの明かりとして見え、何やら春には
 よいことがありそうで心がウキウキしています。

◇ 少し時間が出来たらやりたいことがてんこ盛り
 私の仕事は多岐にわたりますが、ここしばらくはひたすらシステム作りの日々
 でした。
 
 そもそも無茶な受注の仕方をした私が悪いのですが、複数のシステムを一気に
 起ち上げようとしたのです。
 中でも懸念しながら比較的うまくいったのは遠くフィリピンのマニラで入力し
 てもらう業務管理システムで、日本語でさえうまく文章が書けないのに英語で
 マニュアルが書けるか???と言う心配がありました。
 
 でも世の中はとっても進んでいて、Googole翻訳で日本語の説明を英語にして
 お送りしたところ、さほどの混乱もなくお使いいただけています。
 
 お問合せも当然英語でやってくるのですが、書くこととは別でメールを読む方
 は割と分かるので、内容を検討してGoogole先生にサポートのメールも作って
 いただきお送りしています。
 
 
 その結果分かったことはフィリピンには四季はなく、雨期と乾期があるだけだ
 そうです。そしてその季節の変わり目にはファイアートリーというとっても美
 しい赤い花の咲く季節があるそうです。
 
 https://www.google.co.jp/search?q=Fire+tree&dcr=0&biw=1600&bih=799&sxsrf=ALeKk01oEhGYK7Mm9654oOMebYmNtyQvIA:1615110535632&tbm=isch&source=iu&ictx=1&fir=3tWsSdWmMMuW8M%252CEQfpQBL3_TEWgM%252C_&vet=1&usg=AI4_-kSZBICDsSycqufDuRXkAfw7DOO4wQ&sa=X&ved=2ahUKEwjz8v7N853vAhUsL6YKHe8DDQsQ_h16BAgkEAE#imgrc=3tWsSdWmMMuW8M
 
 写真を見ましたが、南国らしい情熱的な赤の花でとても美しいです。
 フィリピンのお姉さんたちはサクラの季節の日本に行きたいとおっしゃいます
 が、私はぼーっとしたサクラよりこの”火の木”の方が好きですね・・・
 
 でも春を待つこの國の冬も悪くないか・・・と、おこたでミカンを剥きながら
 思うこともあります。

 なにせ、マニラでは”今の季節は北風が吹いて涼しい”のだそうですから。
 これって1月の話題なんですよ。
 
 さて本題に戻って、私の仕事の中でもっともエクサイティングなものはやはり
 新しい技術の開発でしょう。
 
 例えば現在実際の仕事で部品として使っているExcelのような表形式の入力部
 品とかやはり現在は実用化しているデータベースを高速化したいであるとかそ
 んな基礎技術がとっても楽しいです。
 
 そしてそんな基礎技術を実際のマーケットで実力を問うためにお客様のシステ
 ム作りをしているのかもしれません。
 やりたいことはいっぱいあるのです。
 
◇ VSCode
 VSCoedeというのはMicrosoftさんが作って無償で配っているテキストエディ
 ターで、私の使っている秀丸エディターと同じ性質のものです。
 
 https://ja.wikipedia.org/wiki/Visual_Studio_Code

 ただ、Microsoftさんは大昔からプログラミング言語を作るのが結構うまく
 て、私も長い間VisualBasicで仕事をしましたが、VSCodeはほぼすべてのプロ
 グラミング言語用で、現在もっとも人気のあるテキストエディターの一つで
 す。
 
 私は近い将来、仕事のベースをWindowsからLinuxに移動しようかと思ったこと
 があり、行った先でも困らないようなエディターを検討している際にGitHubの
 Atomを検討していたのですが、若者たちから”Atomはもう古い、これからはVS
 Codeの時代だ”と言われてちょっと試しました。
 (Windowsがいやなわけではなく、新しいRasberry Piで仕事が出来ないものか
 と考えたのです。)
 
 もちろんその性能や使い心地に全く問題は無く、世界中のプログラマーが支持
 するだけのことはあるな・・・と言うのが感想です。
 
 
 この手のエディターでは文法の間違いを指定してくれたり、文字を書くと利用
 できる関数やプロパティーを表示してくれるので生産性はとても上がります。
 
 とはいえ、私はこの数年の経験でJavaScriptとPHPと言う自身が使う2大言語
 は秀丸エディターだけで特に問題はありません。

 でもとても魅力的なニュースが・・・・
 
◇ PowerShellを強化
 PowerShellとはWindowsの標準搭載スクリプト言語で、Win10荷は無償でついて
 くるだけではなくこの頃ではLinuxやマックでも稼働するそうです。
 私は昔からスクリプト言語が大好きなのでかなり以前にPowerShellで通信上で
 自動運転するサーバー機能を持ったSprrdServeを作ってみました。
 
 https://ja.wikipedia.org/wiki/PowerShell
 https://www.dospara.co.jp/5info/cts_str_pcuse_powershell
 
 SpeedServeが作れると言うことはプログラミング言語として完全であることが
 分かるので練習がてらに作ったのです。
 
 そしてその部品が現在プリントを支えるプリントサーバーとして機能していま
 す。
 私どもが作る全部のシステムで毎日プリントが出来るのは実はPowerShellのお
 かげなのです。
 
 でもこの言語はちょっと苦手で・・・・
 
 
 例えばAと言う変数とBと言う変数の中身が同じならこういう処理を・・・・と
 いうのはプログラムの1丁目1番地なのですが・・・・
 
 BASIC
     If A = B then
 JavaScript
     if(A == B){
  PHP
     if($A == $B){
    
  それぞれちょっと違いますが比較演算子を間違えることはありません。
  ところがPowerShellでは・・・
 
  If($A -eq $B){
 
  と書くのです。"="に相当する"-eq"は覚えていますが、”以下”や”以上”
  や”未満”などを表す比較演算子は毎度、マニュアルで調べます。
  本当にプログラミングを学んだ40年前に逆戻りです。トホホホ・・・
 
◇ VSCodeに救われるかもしれない
 PowerShellは無償のスクリプト言語とはいいながら参考文献が他のプログラミ
 ング言語に比べても多くて高レベルです。
 
 Microsoftさんの本気度がうかがわれますが、今のところPowerShellで無いと
 出来ない処理も多く、避けては通れません。
 もしかしたらVSCodeにこの部分は救われるかもしれません。
 (最近のニュースでVSCodeがPowerShellを強力にアシストするとのこと)
 
 きっと比較演算子ぐらいは候補を挙げてくれるのではないかと期待していま
 す。
 
 PowerShellは最近さらに進化してExcelのVBAで出来ることはすべて出来るよう
 です。VBAは私の故郷ですから難しいところではありますが、もしかしたらVBA
 をやめてすべてPowerShellで操作する日が来るかもしれないのです。
 
 何よりPowerShellはとても柔軟で高速、そして安定しているのです。


VSCodeでプログラミングすることも練習と慣れが必要です。
春になって少し時間が出来るのが本当に待ち遠しいです。 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ 今一番したいこと
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
さて、大量の仕事の先が少し見えてきてイマイチばんしたいことは何か??と
考え始めました。

◇ したいことリスト
 いつも時間に追われてしたいことの半分も出来ないことにイイカゲンうんざり
 し、白昼夢のようにやってみたいことを考え始めました。
 
 ・ SSSpreeadの改造
  自分たちが作るHTMLにExcelのような入力インターフェースを実現する部品
  で、とても使いやすくて高速なのですが、スクロールエンジンを改造した
  い。
 ・ TxFindZの改造
  現在サーバー上(サクラサーバーさん)で稼働する自社製のデータ検索エンジ
  ンなのですが、検索の内容をもっと汎用的にしたいし、高速化したい。
 ・ ExcelPの改造
  システムの印刷をいってに引き受けているプリントエンジンなのですが、も
  う少しモダンな作りに変えたい。
  
 どれも現実に日々稼働しているものであり、それが出来たからと言って飛躍的
 に何かがよくなるというわけでもないのですが、冬の間中お金を稼ぐためのプ
 ログラムに没頭していたのでこれらのあまり売上には直接貢献しそうにない技
 術開発をしたいだけかもしれません。
 
 でも、これらのプログラムたちは自前で作ったので使いやすいのですが、時間
 がたっても誰かがバージョンアップしてくれるわけでもなく、自分たちでやる
 しかないのです。
 
 どれを一番実現したいかというと・・・やはりデータベースエンジンの速度で
 すかね・・・
 
◇ TxFindZ
 TxFindZは遠くのサーバー上でデータを検索してくれる検索エンジンで、とて
 もシンプルな構造と安直な実装が売りです。
 
 何分、なんのインストールもセットアップもせずにサクラサーバーさんのレン
 タルサーバーにある機能だけで実装しているのでほぼUNIXの標準機能とPHPの
 プログラムだけで出来ています。
 
 ある一定の条件を与えると、メモリ(変数)に対して答えのデータを返してくれ
 ると言うだけの代物で、もちろんかなり高度な暗号化や登録の他に検索したLo
 gも持っているので、私たちにとってはとても使いやすい検索エンジンなので
 す。
 
 問題はそこそこ大きなデータであり(数十万レコード程度)、期間を絞れない場
 合に速度が遅いという点ですね。
 
 原因は主キー(期間)以外にインデックスを持っていないからなのですが、ごく
 簡単なインデックスをつけてやりたいと思う次第です。
 
 
 RDBMSのような高度な機能は元々必要としておらず、単純にそこそこ高速で検
 索できればよいのですが、例えば過去20年ほどの間にこの文字が含まれる品
 名のレコードをあるだけ探す・・・などといった場合にも高速処理をさせたい
 のです。
 
 どんなdbを使っても文字列の”含む”検索は時間がかかるのですが、現在はク
 ライアント側にキャッシュを持たせることでそこそこの速度にしています。
 
 でももっとデータベース的な方法で処理させたいと思う次第です。
 
◇ SSSPread
 これはHTMLで作るソフト上にExcelのような入力インターフェースを実現する
 ための部品で、純粋にインターフェースなのですがとても重要です。
 
 これも作りは極めてシンプルなのですが、なんとかExcelとよく似た操作感を
 出そうとがんばっています。
 Excelの真似をするなどとても大それたことなのですが、Excelに比べるとその
 時々の用途は限定できますから実際には遙かに簡単です。
 
 それでもほとんどのお客様はExcelの達人ですからその目をごまかすのはなか
 なか大変です。

 ダブルクリックや[F2]キーで編集が始まったり、編集中に[Esc]キーを押され
 ると編集前の状態に戻すとか、日々の入力ではそれらしく振る舞っています。
 
 
 問題はスクロールで、例えば1000行ほどのデータを本当にロードするとHTMLで
 はとてもレスポンスが悪くなります。
 そこでスクロールしている・・・・ように見えるがフォームの見えている行数
 だけしかデータをロードしていない=とても軽くて速いように見せる工夫が必
 要です。

 でもベテランお目を欺くのはなかなか大変で、Excelのスクロールと違うこと
 をめざとく見つけるお客様は多いのです。
 
 疑似スクロールをさせないといけなくて、見せているのはせいぜい100行程度
 なのだが下にスクロールし続けるとメモリから新しい行をロードし、上に隠れ
 たレコードを削除するというスクロールエンジンを半年ほど前に実験しまし
 た。
 
 それはそれでうまくいっているのですが、万が一この部品がバグると大惨事
 で、いきなり緊急対応になるので怖くてリリースできていません。

◇ ExcelP
 これはPowerShellのFTPアクセスとExcelVBAの連携でサーバーに届いた印刷依
 頼をダウンロードして、指定のExcelファイル(書式)にデータを渡して印刷
 し、自動でExcelを終了する・・・を1日中繰り返す機能です。
 (だからプリントサーバーと呼びます)
 
 現在のところ、これ以外にHTMLのシステムから伝票や請求書を印刷する方法を
 思いつかず、極めて重要な機能です。
 
 でもサクラサーバーにPowerShellがごく短時間でリクエストの有無を確認しに
 行きます。これをポーリング法と言いますが、なんとか直接にリクエストの到
 着を知らせる方法がないものかとあれこれと検討しています。
 もし成功しても印刷速度が最大で数秒速くなるだけなのでそれほど是非やりた
 いわけでもないのですが、やり方が古色蒼然としているので少し進化させたい
 と思う次第です。
 
 
 印刷は極めて重要で、毎日の伝票や送り状、荷札や書類、締日の請求書などシ
 ステムには欠かせません。
 世間のソフト会社はどうしているのだろう・・・と思いながらこれも機会があ
 れば進化させたいと思っている機能です。
 
 
どれも今すぐでないといけないわけではないのですが、戦いが一段落したら銃や
装備の手入れは欠かせません。
そんな余裕が春とともに来ればいいのに・・・・と思う次第です。
━━━━━━━━━━━━━━━━━━━━━━ 
[モバイルオフィスの作り方]はサボのマナベが日々気づいたこ
とや思ったことをお天気の良い日の縁側に座ってポツリポツリと
お話しするようなマガジンです。
ご意見などもあることと思います。
もしご意見等がありましたらお寄せいただければ随時話題にして
いきたいと思います。
 
 
新規登録・解除はこちら
      ↓
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