Windows 7のPC故障

Windows 7 のサポートが切れが近づいていますが、正直言って派遣先の大学ではうまく切替ができていません。遅れた理由は、勘定系のシステムの対応の遅れとか、予算確保ができていないなど、幾つか重なったためで、これから順番に解決していく予定です。

そのような時期に、導入して2年くらいのノートパソコンの調子が悪いということで、預かりました。OSはWindows 7 で、起動に10分くらいかかるのだそうです。

パソコンの起動画面からハードウェアチェックのプログラムを起動し、チェックしたところ、HDDでエラーが発生。経験的に、調子が悪いパソコンでも、このチェックでエラーが出ることはなく、OSの入替で済むのですが、これは本当に壊れていると判断しました。

パソコンを持ち運ぶことが多い方だったので、HDDが回転している間に何かやってしまったのでしょう。その方には、別の人向けに設定していたSSD搭載のパソコンを渡したので、次からはこういった故障は無いと思います。

ただし、Windows 7のパソコンの起動が遅い、という話はよく聞き、その都度いろいろやってみているのですが、なかなか改善しません。この古いOSは、早めに使うのを止めた方がいいと思うのですが、まあ、いろいろな理由で、なかなか入替が進みません。

メール送信スクリプト

新たに設定したCentOSもそうですが、メールのデーモンはインストールしていません。しかし、メールを介した通知は必要なので、スクリプトを使って送信しています。昔のUNIXには必ず設定したのですが、今は危なくて設定できません。

今の派遣先では、Microsoftのメールサービスを使っているので、そのSMTPサーバーに送信していますがちょっとクセがあるのが難点。スクリプトでやるとして、何を使うかは、以前、チェック済み。偶然、CentOS 7で追加インストール無しで使えたのがpythonだったので、今でもそれを利用しています。

CentOS 8では、pythonのバージョンが上がって、スクリプトの変更が必要なシステムもありますが、メール送信用のスクリプトはそのまま動作したので、新しいサーバーでも流用しました。

使っているのは、こんなのです。

#!/usr/bin/python3
#
# SendMail to  Office356 (smtp.office365.com) mail script
#

import smtplib
from email.mime.text import MIMEText
from email.utils import formatdate

from_address = 'Outlook認証用のアカウント兼メールアドレス'
password = 'SMTP認証用のパスワード'
to_address = [
'送信先のメールアドレス'
]
subject = 'SenMail to Office365 (TEST)'
filename = "メールで送信するファイル(logwatchの結果を送信)"

with open(filename) as f:
    strs = f.read()
f.close()

msg = MIMEText(strs)
msg['Subject'] = subject
msg['From'] = from_address
msg['To'] = ",".join(to_address)
msg['Date'] = formatdate()

smtpobj = smtplib.SMTP('smtp.office365.com', 587)
smtpobj.ehlo()
smtpobj.starttls()
smtpobj.ehlo()
smtpobj.login(from_address, password)
smtpobj.sendmail(from_address, to_address, msg.as_string())
smtpobj.close()

ネットでいろいろ検索して作ったのですが、どのページを参考にしたかは、メモを残していなかったので解らなくなりました。

派遣会社への登録

昨日、マン・パワー社へ、派遣社員として登録してきました。

派遣会社への登録は初めてではないのですが、ここのスキルチェックは初体験でした。数字を見比べて正しいか判定したり、数字や文字を打つ、といったスキルをチェックするものと、WordとExcelのスキルを見るものでした。

結果は、平均よりも良い、と言ってもらいましたが、まあ、50才台だし、若い人のようにはできないな、というのが感想でした。やっぱり、以前に比べると、画面の文字をチェックする能力が落ちているように感じます。それと、キーボードの打ち間違いも多く、訓練を積んだ若い人にはかないません。

それと、得意なはずのExcelでは、最後のVBAの問題に間違えたので、全問正解できなかったのが残念。セルを選択するだけの簡単なコードだと思ったのですが、Offset()というメソッドを一度も使ったことがなかったので、間違えました。これは、ひっかけ問題かなと思いましたが、経験不足を認めないといけないな。

最後に、コーディネーターの方と仕事の話でしたのですが、山形市内の某大手IT会社の仕事ができないかと、いう内容でした。本当に困っているのでしょうね。違う派遣会社からも打診がありました。でも、ここは、私のスキルは向いてないんですよね。といった話をさせてもらいました。やはり、この年でこのスキルでは、仕事を得るのは難しいかな。

PowerShellで一括処理を

派遣先の大学では、これまでオンプレミスで運営していたEメールを、去年の8月からOffice265のメールに移行しました。それで、新規作成時にPowerShellを使って、
一部の設定が必要となっています。

以前、バッチ処理のスクリプトを作っていたのですが、3月に教職員の入替があるので、一括処理のバッチの検討を始めました。

PowerShellは、去年から使い始めたばかりで、知らないことだらけですが、いろいろとできますね。配列が使えて、ループも可能なので、複数のアカウントを一括処理が可能です。さらに、CSVファイルからリストを取り込むことの可能でした。

ということで、EmailのリストをCSVとして読み込んで、ループで処理する、なんてスクリプトが簡単に組めます。なお、Emailのリストは、ヘッダが無いことを想定して、CSVファイルの取り込みで-Header オプションを使ってみました。それと、数値を文字列にするには、[string]count としないとエラーになります。これくらいで使えるのは便利かも。

#
# list.txtに格納されたEmailアドレスを読み込む
#
$array_emails = Import-Csv list.txt -Header "Email_Address"

#
# foreachによりループ処理
#
$count = 0
foreach( $view in $array_emails) {

  $Email = $view.Email_Address
  .... (ここに、設定のコマンド)
  Write-Host "$Email を設定"
  $count = $count +1
}


$message = [string]$count + "件、設定しました。"
Write-Host $message

VirtualBoxに入れたCentOS7の不具合

先週から、VirtualBoxに入れてあるCentOS7が使えなくて困っています。

正確に言えば、操作はできるのですが、かなり限定されます。なにせ、ターミナルを開いてしまうと、そのターミナルしか使えない、という不具合。いつもは、ターミナルが3つとWebブラウザが1つと、窓をたくさん開いて作業しているのですが、1つしかないと不便でしょうがいない。

原因も解っていて、今月kernelをアップデートしたことで、この不具合が発生しました。VirtualBoxをバージョンアップしたりしたのですが、だめで、今は使えない状態です。これ、後で調べたらバージョンアップの既知のエラーにもあったので、カーネルのバージョンアップまでこのままかな、とあきらめてます。

CentOSは本番環境と同じなので、こっちを使いたいのですが、無理ならUbuntuで
デバックかな。

業務改善の難しさ?

派遣先の大学は、学生の数は2000人を超えるものの、職員の数は100名に満たない中小企業みたいなものです。その割りには、総務や経理のスタッフが多いように思えていたのですが、事務処理は設立した25年前と同じやり方だそうで、それが人数が減らない原因の一つだそうです。

ちょっとした立話で、職場でいっしょに働いている情報システム担当の職員に、役員から何とかしてほしいと相談があったと聞きました。今年は、経理にロボット(RPA)の導入が決まり、次は総務の仕事を、ということだそうで、そんなことやっている時間なんかないのに、と愚痴ってました。

大学の広い敷地を管理するのは協力会社の方ですが、何かあったら職員が行かない訳にはいきません。いっしょに仕事している情報システム担当の職員も、施設管理と兼任なので、一日の半分は学内のどこかに呼ばれてます。席に座っているのが珍しいくらい。

今あるツールを使っての改善は可能だと思うのですが、大きなきっかけが無いと動けないのも事実。その点、ロボット(RPA)の導入はいい機会なのでは、と感じました。しかし、これがどの仕事にも使える訳ではなく、別の仕組みをうまく組み合わせないと、利用者の負担が増えるだけのような気がします。

協力したい気持ちはあるのですが、立場上難しいかな。まあ、今年は今日で終わりだし、来年の話ということで。

WordPressのワーニングメッセージ

派遣先で管理しているlinuxサーバーに、WordPressのワーニングが出るようになりました。PHPのワーニングで、発生源がWordPressのシステムファイルということで放置してきたのですが気なったので検索してみました。

メッセージは、次のようなものです。


PHP Warning:  preg_match(): Compilation failed: unrecognized character after (?< at offset 10 in
...../wp-includes/class-wp-block-parser.php on line 382

そして、次のブログを参考にさせてもらいました。

wordpress4.9.2にアップグレードしたらWarning: preg_match(): Compilation failed: unrecognized character afterというエラーメッセージが出た件

この記事によると、原因は、PHPのバージョンみたいです。

使っているサーバーが古いということもありますが、PHPはOSのデフォルトを使用しています。どうやらそれが原因のようです。

最近のPHP7を使えばワーニングは出ないそうです。新しくすれば、消えるのでしょうが、すぐには新しくできないので、このまま放置するしかありません。

Ubuntuの最新ならPHPも新しいのですが、古いCentOSでは、細工しないと新しいPHPは入らないのでちょっとやりたくない。今、OSを新しくする、ということであれば、やってもいいけど、今も稼動しているサーバーではそれは避けたいし。

これは後任の方にお願いするしかないですね。

AccessのVBAは難しい

1. Accessは使ってない

私自身、Excelはかなり使える、と思っていますが、Accessはいまいちです。SQLをある程度使えるので、クエリーをSQLで考えられる分、幅は広いとは思いますが、フォームやレポートを使っている訳ではありません。

Excelは、経理に近い仕事や、その仕事でサーバーのDBのメンテをやったことで鍛えれらましたが、Accessは経験がありませんでした。

2. VBAも抵抗感が

ExcelでVBAを初めて使ったのは、2000年問題で騒がれていた時期だったと思います。それ以来、いろいろと使ってきました。あれは、単純な操作をボタン1つでできるようにする機能として、重宝させてもらいました。

Accessでも、同じようにVBAが使えます。というか、Webページのようなフォームを作ろうとしたら、VBAなしでは組めません。よく後輩には、ボタン1つで済むようなインターフェースを、なんて言ってたので、
Accessのフォームでもそう言った覚えがあります。同じものを自分で作ろうとして、大変だ、と思ったのは後輩に秘密にしてました。

標準の機能でできそうでできない、フォームのあのインターフェースはなんとかしほしい。今でも、どう作ると短時間で済むのかわからない。

3.今回はなんとか

今回、AccessのVBAを使って、フォームを作成しました。指定のIDのデータを一式表示するボタンと、そのフラグをFalseからTrueにするボタンの2つ、といういたってシンプルなものです。

このボタン、VBA以外は関連付けできそうにありませんでした。ということで、コードを書き始めたのですが、問題が、

xxxx = rs!金額(税込み).value 

が書けない。
つまり、Recordsetでデータベースから取得してデータの要素の1つ「金額(税込み)」は、指定できませんでした。指定すると、全角の「)」が、半角の「)」に自動変換されます。同様に、全角の数字が付いているものもダメでした。

VBAの良さは、漢字でいろいろ書ける点ですが、この辺は難しい。いろいろと調べたところ、配列に入れることで解決できました。

4.結論

やっぱり、Accessは難しい。

派遣会社からの連絡

派遣会社からの連絡

ずっと前に登録して、すっかり忘れていた派遣会社から、最近、仕事の案内の連絡が入りました。エンジニアとして、派遣を受けてみませんか、という内容です。私にそんな話が回ってくるとは、世の中、よっぽど人手不足なのかも。

この派遣会社に登録した際、スキルに、C言語を書いてしまったのが、ちょっと悔やまれます。今回は、これを見て、連絡してきた、とのことでした。

C言語の仕事

たぶん、C言語は今でも組めると思いますが、今どきC言語と言ったら、Objective-C、C#。それは使えません。そんな話をしていたら、組み込みのプログラム開発の仕事だそうです。そういえば、そっちの分野もあったんですね。時々、ハローワークの求人でも見かけます。

この組み込み系は、難しい割りに給料が安い、という仕事の典型です。若い人は、敬遠するでしょうね。昔いっしょに働いたエンジニアは、C言語で作ったプログラムをアセンブリにして解析し、デジタルカウンターで測定して最適化していました。1チップマイコンのインターフェースは独特のスキルが必要です。

給料が安いといえば

最近知ったのですが、スキルさえあれば、今、東京では月60万円(フリーランスなのでボーナスなし)で働けるそうです。そんな時代に、月20万円でプログラマーをやる若い人はいないでしょう。

ちなみに、山形市内のプログラマーの求人票には、15万円から25万円というのもありました。
月15万円でプログラマーとして働く人がほんとうにいたら、こんな先輩ですが、ぜひ転職を勧めたい。

迷惑メール

派遣先の大学のメール環境がOffice365に移ったのが8月なので、もうすぐ3ケ月が経とうとしています。しかし、まだまだメールについての問い合わせが来ます。大学からのメールは、学生生活に欠かせない機能なので、使えない、という訳にはいかないからでしょう。

Office365のメールには、迷惑メールを除外する機能があり、大学のように組織で登録すると、管理者が迷惑メールをチェックできます。そして、除外しなくても良いメールを除外から開放したり、メールの発信者を安全な発信者として登録できます。

ここのところずっと迷惑メールを監視しているのでが、実にたくさんの迷惑メールが届いています。特にフィッシングメールの数には驚かされます。しかも、この内容が本物と間違いそうになるくらいのクオリティ。発信元がロリポップでなければ、私でもひっかかりそうと思えるくらい。

こんなのを見ると、一年を経たずにフィッシングメールでいっぱいになりそうでプロバイダーのメールアドレスは怖くて使えません。メールアドレスは、こういった比較的安全なとこのがいいかな、なんて考えてます。