2020-04-06

 現在作成中のFileMaintenaceで備忘録。

 PowerShellは変数の型指定は必須ではない。が、判読性の観点で極力型指定をしていた。functionのParam()で[Boolean]指定時の留意点。


 FileMaintenanceではfunctionの呼び出しで呼び出し毎に引数を全て指定していない。スクリプト全体で指定しているもの(定数と考えて良い)は、上位のスコープから落ちてくるのでParamで特段指定をする必要がないため。
 しかしながらfunctionの判読性の観点では何が入力になっているのかが判る方が良い。そのため、スクリプト全体用に定義しているものは以下例で言うところの$GlobalSwitch,$GlobalValueの様に引数として必須ではないが、定数として使用しているのが判りやすい様に記述してみた。


 ここで、[int]は良いのだが、[Boolean]に落とし穴がある。[Boolean]は$NULLを許容しないので、値を定義していないとエラーになってしまう。$TRUE,$FALSE,数値のみを受け入れる。
 特定の状況のみで必要なフラグなどでは未定義状態の場合があるため、これは問題である。仕方がないので、[Boolean]だけは型指定をしない実装としておく、


Param(
[String]$Name ,

[int]$GlobalValue = $GlobalValue
[Boolean]$GlobalSwitch = $GlobalSwitch
)

2020-04-05


 CiTRiX XenAPPの構築で発生した事象の備忘録。
 正当に取得したライセンスファイルを追加したところ、以下の警告が出力されてライセンス追加が出来ない。
 試行したところ、ChromeブラウザでダウンロードしたものはNGだが、IEブラウザで取得したものはOK。

「選択されたファイルのバイトオーダーマークが正しくないため、CiTRiXライセンスファイルとして無効です」

2020-03-29

 プログラム歴を振り返ると、太古の時代に触れたPC-8001に搭載されていてたN-BASICとZ80のアセンブラが原体験である。その後長年に渡ってプログラミングと縁は殆ど無かったのである。
 大学時代にFORTRANの授業はあったが、体系的に勉強した訳ではない。

 その経歴を踏まえると、現代に生きる筆者がオブジェクト指向を理解せずにPowerShellでプログラミングしても誰が責めようか。

 そして、何となくオブジェクト指向の存在に気付き、GitHubで公開中のFileMaintenanceの致命的な基本設計ミスが遂に修正された。今まで対象ファイル(フォルダ)の処理ループ内では対象をパス文字列として扱っていたのであるが、これをオブジェクトとして各種パス情報はオブジェクトのプロパティとして取り出す事にした。
 今にして見返せば、お手本では正しくオブジェクト指向で設計実装されていたのだが、理解不測の筆者は何故かパスのStringだけを取り出して処理する実装をしていたという馬鹿さ加減に先日までの自分を殴ってやりたい気分である。

 OOPの深淵にちょっとだけ近づいた!

2020-03-16

備忘録。

arcserve UDPはWindows VSSと連携して一貫性のあるバックアップを取得する。
Windows VSSとOracle VSS Writerとは連携して動作するのだが、VSS動作時に以下の様なエラーが出力される。

この原因はOracle Databaseの起動ユーザが
SYSTEM\CurrentControlSet\Services\VSS\Diag
に対して権限を保有していないため。

上記キーに対して、Oracle起動ユーザへアクセス権フルコントロールを付与する

ボリューム シャドウ コピー サービス エラー: ルーチン RegOpenKeyExW(-2147483646,SYSTEM\CurrentControlSet\Services\VSS\Diag,...) の呼び出し中に予期しないエラーが発生しました。hr = 0x80070005, アクセスが拒否されました。

2020-02-26

 先日より、みずほマイレージクラブの改悪通知が皆さまのお手元に届いているかと思う。他行宛振込無料特典数の削減、コンビニATM手数料無料回数制限など困った特典の山盛りであり、筆者も驚いた。

 それでは上級国民向けの「みずほプレミアム」ではどうであろうか。
 みずほ銀行に利益をもたらす上級国民向けなので、それなりの対応を期待していたのだが、裏切られた。

 これでは通常のみずほマイレージクラブと一緒であろう。ますます「みずほプレミアム」の存在価値が減少した。せめてブリリアントは従来と同一で良かったのでは。
 この手のサービスは利用頻度が高いので安直にサービス削減で経費減としているのだろうが、ケチすぎる。
 

ポイント01
みずほ銀行ATM時間外手数料が24時間無料となります。
ポイント02
イオン銀行ATMご利用手数料・時間外手数料が無料となります。
ポイント03
コンビニATM(イーネット・ローソン・セブン銀行)ご利用手数料・時間外手数料も無料となります。

※本サービスについては、2020年3月1日より以下の通り変更予定です。
<変更前>
(2020年2月29日まで)
回数:無制限
対象コンビニATM:イーネット、ローソン、セブン銀行
<変更後>
(2020年3月1日予定)
回数:月4回
対象コンビニATM:イーネットのみ

2020-02-13

 プログラミングはN-BASICとZ80アセンブラしか経験が無いのですが、数十年ぶりにPowerShellを習得。ログメンテナンススクリプトを作成してみた。
 いろいろあって、当初は職場向けを想定していたのだが、全社的にこの手のものをメンテナンスする体制が無い、品質保証を考慮してApache License 2.0でGit Hubへ公開とした。

2020-02-05

 ある会社(特に名を秘す)でGit系のサービスを社内で使える様になったと情報が。

 しかしながら、SIerのある会社で悲惨な事になりそうな気がしてきた。
 
 筆者の専門はinfrastructureであるが、社内の「詳細設計書」はexcel方眼紙にパラメータの羅列が記載されているものが大半である。

 近年のinfrasctructureはCloud化が進みInfrastructure as a codeになっている。「詳細設計書」は構造化されたcodeを美しくexcelへcopy & pasteしているに過ぎない。
 筆者は詳細設計書作成を「写経」と呼んでいる。excelの「詳細設計書」と同内容が環境に設定してあるので、更新が怪しい「詳細設計書」を見るよりも実機、または実機から取り出したパラメータを確認するので十分。
 それらをexcelにcopy&pasteするのは「心を込めて写す」以上の役割は無い。加えてexcelで「1ページに美しく印刷できること」を重視するものだから、レイアウト微調整と印刷とを繰り返して貴重な時間を浪費してしまう。


 Git系を活用するのであれば、 infrastructure as a codeのcodeをgitへ保管、更新があればgitへpushしてcommentを入力すれば良い。これで詳細設計書は不要になる筈なのだが、この様に生産性を向上させるための仕組みの変更は難しいだろう。
  多分にGitとexcelの二重管理になって、生産性が低下すると思われる。

 纏めると、筆者の主張 は2点。

 excel詳細設計書は止める。代わりにgitによる版管理の維持に注力する。

 生まれた時間は要件定義、方式設計、基本設計に活用する。特に基盤では要件定義と方式設計の軽視が見られるので、これらに注力して後工程の生産性向上を狙うべきである。

自己紹介

自分の写真
東京都, Japan
憂鬱な凍死家です。こちらではmixiとは異なり固めの話題中心です。

Total Page View

Categories

Powered by Blogger.

Popular Posts

Blog Archive