Execl2007以降の吹出し背景色と白文字コピー対策

MS Excel 2007以降、以下の問題が生じました。

  1. デフォルトの吹き出しの背景色が微妙に水色で、文字色が白となる。
  2. それを嫌って背景色を白/に文字色黒にする。
  3. 吹き出し内でCtrl+C/+Vでコピペすると白文字がコピーされ、何も見えない。
  4. 右クリックメニューから、書式なしコピーを選ぶと解決するのですが、マウス操作が二段階要し、無駄な時間を食い続けてしまう。

仕事で、背景色「微妙に水色」、文字色「白」なんてありえません。世界中の人が困っているとおもうのでいつか直ると待っていますが、2021でもそのままです。なんで!???

発想を変えて、テーマの色を変えると、うまくいくようです。

ページレイアウトから、テーマ -> 配色 -> 色のカスタマイズを選びます。

以下ダイアログの上から5番目までを以下のように変えます。名前をつけて、別themeとして保存します。

あとは、テーマを切替えれば、背景白/文字黒で吹き出し内でCtrl+C/+VでコピペしてもOKです。

しかし、新規ファイル作成時は、デフォルトテーマになってしまうようです。ユーザアカウント毎に、デフォルトテーマを指定できるとよいのです。そもそも仕事ではテーマなぞ概念は不要ですが、、、

MS Office2021からPDF化後、電子印荒くなる

ようやくMS Office 2021を導入しました。しかしOffice 2003より、PDF化後、電子印が荒くなってしまいました。PDF化に使用したのは「Microsoft Print to PDF」、電子印はpng。

容量削減のため自動的に圧縮されていると推察されます。図等であればよいのですが、電子印だと気になりますし、先方にも失礼にならないか心配です。

Office 2021の設定を以下のように変えてみましたがダメでした。

またしばらまく2003が必要そうです。重要な画像は圧縮しないように、2003の頃のように指定できるとよいですね。

ExeclもWordも同じでした。

MAC Book Pro 2015 earlyで適当なSSDに換装する

MAC Book Pro 2015 early 当方所有のモデルは、SSD 128GB。iPhoneシュミレータを一つ追加すると、数GB単位で容量を消費し、直ぐに容量不足です。仕方ないのでSSDを換装します。MAC Book のSSDは、M2タイプのPCIeです。

まずこちらの記事を拝見させていただきました。記事によると、選定されたSAMUSUNGのSSDは、なかなか高価です。SSDのファーム更新も必要らしく面倒です。

SSDのピン配がMAC専用のようで、変換基板が必要です。変換基板はMAC用として複数種販売されていて、モノによってはSSD機種を限定されています。それらのSSDはどれも高価です。

そんなにSSDの条件が厳しいのか? M2のPCIeならなんでもよいのか? 試してみます。

購入したSSDは、以下のものです。Amzonで、5,500円。WDなら怪しくないでしょう。

Western Digital SSD 500GB WD Blue SN570 ( 3,500MB/ ) M.2-2280 NVMe WDS500G3B0C-EC

ピン配アダプタは、こちらです。付属しているドライバかMAC用の☆型かなと期待してましたが、ただの+ドライバーでした。無駄な付属品です。

結果は、上記の組合せで、動作しました。換装状態は以下のとおりです。

いちおうなんとかというユーティリティでチェックしました。

OSの認識状態は、

まあ問題ないってことですね。以下、実施してみた留意事項です。

  1. MAC内でSSDは、+でなく、トルクスで止められいるのでそのドライバの準備も必要です。弊方は買うのが面倒なので、電ドリでネジ山を削り取りました。
  2. 新しいSSDは事前に、MACのディスクユーティリティで、フォーマットが必要。
  3. オリジナルのSSDは、ピン配がWindows PCともことなるため、何にもつかえないです。

Raspberry Pi シェル内でOS経過時刻を判定する

Raspberry Pi Zero WHに4Gモジュールを接続する3にて、OS起動時から規定経過時間以内に、PPP接続できなかった場合、OSリブートするように仕込みました。その仕込み先は、シェルスクリプトですが、規定経過をどのように判定したかを解説します。

通常、シェル内で現在時や取得できますが、OS起動からの経過時刻を取得するコマンドが見つかりませんでした。..しかし、 pythonでは組みたくない。言われてみるとWindowsにもないような... .困りました...そうだ 新しいコマンドを作ってしまえばいい。

OS起動からの経過時刻は、カーネルシステムコール:times() です。コマンドのソースコードは以下の通りです。ラズパイでは単位はmsecになるようです。

#include <stdio.h>
#include <sys/times.h>
#include <memory.h>

struct	tms	tmwk;

int main(int ac, char **av)
{
	printf("%lu\n", times( 0 ) );
}

デバック不要なので、コマンドラインで一回だけビルトします。

cc -o passtime passtime.c 

このpasstimeコマンドを、シェルから ` …` で呼出し、シェル変数に取り込みます。

START_10MSEC=`passtime`

while [ 1 ];do
   NOW_10MSEC=`passtime`
   PASS_10MSEC=$(( $NOW_10MSEC - $START_10MSEC ))

   # pass 5 min
   if [ $PASS_10MSEC -gt 30000 ];then
	shutdown -r now 
   fi

   # under flow timer
   if [ $PASS_10MSEC -lt 0 ];then
	shutdown -r now >> $ASAHI_LOG
   fi

一応、アンダーフロー時も処置しておきます。

Raspberry Pi Zero WHに4Gモジュールを接続する3

前回記事

前回ラズパイと4GモジュールのPPP接続まで説明しました。今回は、実用面での課題を述べます。

① USBラインの瞬断

USBケーブルするタイプの4Gモジュールの場合、コネクタのぐらつきで瞬断する場合があります(もしくは想定されます)。IoT機器内に設置する場合、ケーブルの取り回しでストレスがかかることも。マイクロusbならなおさらです。

いろいろと試したところ、一度接続異常が発生すると、ラズバイがハングする場合があるようです。USB接続がぐらつかないよう物理的に対策をしておくことをおススメします。例としましては、

  • USBケーブルをケース等に固定する。
  • 取回しスペースが狭い場合、L字のUSBケーブルを使用する。
  • 可能な場合、ラズパイのserialポートで、4Gモジュールと接続する。

② USBラインのノイズ

USBはノイズに弱いので、規定以上発生すると、PPPが断線します。ノイズの出やすいIoT機器の場合、どこに設置されるか想定できない機器の場合、配慮が必要です。実際に弊方でも本番装置に搭載後、予期無くPPP断線しました。以下そのsyslogの内容です。

Mar  2 10:33:20 raspi kernel: [ 1435.722327] usb usb1-port1: disabled by hub (EMI?), re-enabling...
Mar  2 10:33:20 raspi kernel: [ 1435.722387] usb 1-1: USB disconnect, device number 2

EMI?(電磁障害かも)とラズパイは言いたいようです。この事象が発生すると、OSその他動作は継続するものの、OS再起動しないかぎりPPP接続が復帰しません。対策としては、PPPの接続状況を常時監視し、切断したらOS再起動さるシェルスクリプトを作成し、rcから起動し常駐化せました。以下そのスクリプト例です。

#!//bin/sh 
PPP_ON=0

while [ 1 ]
do
    # Check PPP gen device
    ifconfig ppp0 > /dev/null
    RET_PPP=$? 

    if [ $RET_PPP -eq 0 ];then
        PPP_ON=1
    else
        # Turn PPP on to off
        if [ $PPP_ON -eq 1 ];then
           echo "Catch to turn PPP on to off."
               :
           ( いろいろ後始末 )
               :
           shutdown -r now
        fi
    fi

    sleep 30
done

ifconfigコマンドで、PPP切断を判別してみました。リブート中は応答できなくても許容されるシステムに場合に限ります。

なお、本当のノイズか白黒つけるには、放射電雑試験を行うべきてすが、大きな電機メーカさんでも絡んでないと難しいです。

③ 起動時のチェック

動作環境によって、必ずしも起動時に、PPP接続できるとは限りません。可能なかぎり以下チェックをいれます。カッコ内は、チェックのためのコマンド例です。

  • 4Gモジュールを認識しているか? ( lsusb | grep Qualcomm )
  • WAN接続できているか? ( ifconfig wwan0 > /dev/null )
  • PPP接続できているか? ( ifconfig ppp0 > /dev/null )
  • ルーティングが正常か? ( route | grep ppp0 )
  • ドメインにパケットが届くか? ( ping 対象ドメイン -c 3 )

起動後、すぐにPPP接続はできないので、数秒置きに数分繰り返し、PPP接続できない場合はOSリブートするしかないですね。上位の管理機器があれば、そちらに知らせて処置するが妥当でありましょう。