【PHP8】while – each を foreach に置きかえる

既存システムのPHP8対応の依頼を受けることが増えてきました。

PHP8ではeachが使用できなくなりましたので

のような構文はforeachに置きかえます

Linuxでunzipしたら文字化けするときの対応

Windowsで作成されたzipファイルをLinuxでunzipすると
日本語のファイル名が文字化けすることがあります。

対策1:エンコード
unzipの-Oオプションを使ってエンコードを指定すれば解決する場合があります。

対策2:unar
しかし、対策1でも解決しないケースや、元のエンコードが不明な場合は
unzipの代わりに、エンコードを自動判別してくれるunarを使いましょう。

unarがインストールされていなければ

(CentOS系)

【canvas】canvasで普通の矢印を描く(実線、破線)

canvasで普通の矢印を描きます。
ポイントは
・デザインに凝ってない単純な矢印。
・三角関数を使って任意の向きに。
・線の部分を破線にできる。

まずcanvasエリアを用意

矢印描画関数を作る

関数を呼ぶ

実行結果

【Linux】CentOS6からAlmaLinux9へパスワードなしssh接続

古いサーバーから新しいサーバーへパスなし接続がどうしても必要だったのでメモ。
もちろんセキュリティ的にオススメはしません。

接続元サーバーでECDSAでssh-keygen

生成された公開鍵(id_ecdsa.pub)の内容を
接続先サーバーの authorized_keysにコピー

接続元サーバーのECDSA対応

接続先サーバーのssh設定

接続先サーバーのssh再起動で完了

古いAndroidを卓上カレンダーにする

Android5.1の古いスマホが余っていたので
卓上カレンダー代わりにできないかと考え、やってみました。

個人的に卓上カレンダーとして使うためのポイントは以下の4つでした。

・横向きの見やすいカレンダーが表示できるアプリ
・Googleカレンダーと連携
・スリープさせない
・古いOSなのでカレンダー以外には通信させない

まず考えたのはGoogleカレンダーをそのまま利用することですが、
Googleカレンダーのアプリはカレンダーとしては見やすいものではなく
月表示を横向きにもできませんでしたので
こちらのアプリを利用することにしました。

Jorte
https://www.jorte.com/?lang=ja

Jorteはカレンダーがとても見やすくて
まさに卓上カレンダーのような見た目にできます。
それにGoogleカレンダーの予定の連携も簡単でした。

ただ、Googleカレンダーの予定を連携するためには
スマホにGoogleアカウントを登録する必要があります。
そうすると標準でメールの受信まで自動的に行われてしまいます。

古いOSということもありますので
カレンダー以外は通信しないようにしたいですよね。
Googleアカウント設定でカレンダー以外の同期をしないように設定しましょう。

「設定」→「アカウント」→「Google」を開いて
Googleカレンダー以外の同期をオフにします。

あとはスリープさせないことですが、
新しいAndroidにはスリープさせない設定があるみたいですが、
古いAndroidの場合、「開発者モード」にする必要があります。

これは「設定」→「デバイス情報(端末情報)」を開いて
「ビルド番号」を7回タップすると開発者モードになります。

そうすると「設定」→「開発者モード」が追加され、
「スリープモードにしない」という設定があるのでチェックします。

完成した卓上カレンダー専用スマホです。

スマホなので小さいですね。
でも土日祝日が見やすいし、Googleカレンダーの自分と家族の予定をすべて表示できるので
理想的なデジタル卓上カレンダーになりました。