変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

未分類

[VScode]勝手に別のファイルをデバッグしたがる

簡単なソースならソースコードをエディタで開いだ状態で「実行」⇒「デバッグの開始」でデバッグしてくれるが、マレに違うソースをデバッグしだすことがある。

.vscodeフォルダが無いので見えないトコで記憶しているらしくVScodeを再起動してもそのまんま。

※setting.jsonに

デバッガのlaunch.jsonに「実行」⇒「構成の追加」で「その他のNode.js…」⇒「現在のファイルの実行」デバッグするファイルを個別に登録し”name”を書き換えるのも面倒すぎ

{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "name": "現在のファイルの実行", 👈複数作ったら、書き換えないと訳が分からなくなる
            "request": "launch",
            "program": "・・・\\index.js"
        }
    ]
}

configurationsにハイライト部分を追記して、デバッガのプルダウンに”表示中のファイルを起動”が出る様にした。時々ブラウザで確認したい時もあるけどね。

{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "表示中のJSファイルを起動",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "program": "${workspaceFolder}\\${relativeFile}"
        }
    ]
}

開発環境のプロジェクト設定にはC言語のようなコンパイラ(EXE作る君)向けだと、デバッグの設定が1つしかないか、デバッグを切替える為にサブ・プロジェクトに分ける必要があったりする。

スクリプト系は、ブラウザ上のjavascript、サーバーサイドのphp、保守コマンドの.shとか色々混ざる時もあるので、デバッガの設定を切り替えられる様にできるのはとても助かる。



「小ネタ」簡単に計算する?

動画を見てたら、45×45を簡単に計算する方法ってのがあって

上一桁が同じで下一桁の合計が10になる場合は

(上桁の数字+1)× 上桁 + 下桁同士の掛け算

  45       (1+4)5           55              55
×45     ×      45        ×45       ×     45
                                                 2025

と計算するらしい。

AB x AC
この式を各桁の数字で分解すると
=(A10+B)(A10+C) となり分解すると = BC + A10C + AB10 + AA100・・・式A

先の上桁に+1して同じ桁同士の掛け算は
= (A+1)A100 + BC = AA100 + A100 + BC = BC + A100 + AA*100・・・・・・・・式B

式Aと式Bの値が一致する等号式は
BC + A10C + AB10 + AA100 = BC + A100 + AA100

両辺で同じ計算消し込むと

BC + A10C + AB10 + AA100 = BC + A100 + AA100

A10C + AB10 = A100

10C + B10 = 100

これから C+ B = 10 の場合に成立する。

よって、上桁が同じで、下桁の合計が10になる場合に成立する。動画で下桁の合計が10の条件を聞き忘れたらしい。

条件が成立する45x45では正解するけど

条件を満たさない44x44では下桁同士の掛け算は16で見るからに成立しない

(小話)

同じ桁同士を掛け算してテストで

0点を貰った子供が

「悔しく悔しく悔しく・・・」

でも~「・・・・・・・・」の場合は、

ちょっと1加えて同じ桁同士を掛け算するだけで

いいんだよ!

っていたのを教師が

この子は天才(天災の意味も込めて)

お話と広めた結果なんかな?



[WordPress]6.8の現状

まだまだ未テスト状態のプラグインだらけ

それでも動くなら問題ないけど

残念な結果になったプラグインは・・・

  1. Lite Syntax Highlighting
    • 【有効化】したら
      • 「重大な何たらがエラー発生」してページが真っ白
        • 削除済(合掌
  2. My WP Customize
    • 更新が来たので【更新】すると終わらない
    • 諦めて【削除】すると終わらない
    • pluginsフォルダからmy-wpフォルダを削除(合掌

記事の読み書きに支障はないけど

クイック編集の「保存」すると終わらない

データベースプラグイン画面のテーブル一覧がなかなか表示しない(遅

以前は/etc/hostsに自分のサーバー名を書いて無かったせいで自分へのセルフループが失敗してたが、今回は設定済。

WordPress関連のファイルを一式別の仮想ディスクにコピーって稼働させたら、設定の保存で書込み失敗するプラグインがでた。ファイルの所有者がrootだったせいでapacheに変更。



[podman]コンテナからごそっとファイルを取り出す場合

1ファイルなら

# podman cp {コンテナ名}:コピー元フルパスのファイル名 コピー先ファイル名

で済む。2個でも済むけど、多い時はフォルダごと

# podman cp {コンテナ名}:コピー元フルパスのディレクトリィ名/ コピー元ディレクトリィ名

して後はtarコマンドでまとめれば普通はOK。

但し、コマンドを実行したユーザに所有者が変わってしまい後々面倒なことになるので、

できればコンテナの中でtarファイルにした方がいい。

# パラメータチェック
if [ $# -eq 3 ]; then
  CONTER_NAME=$1
  TARGET_DIR=$2
  TARGET_TAR_PATH_NAME=$3
  TARGET_TAR_NAME=$(echo $TARGET_TAR_PATH_NAME | rev | cut -d'/' -f1 | rev) ※ファイル名のみ取得
  TMP_DIR="/tmp" ※都合悪い場合は書換え
  CMD1="podman exec -it ${CONTER_NAME} /bin/bash -c 'cd ${TARGET_DIR}; ls -l; tar zcvf ${TMP_DIR}/${TARGET_TAR_NAME} . ; ls -l ${TMP_DIR}/${TARGET_TAR_NAME}'"
    # cd ${TARGET_DIR}
    # ls -l ※無くてもOK
    # tar zcvf ${TMP_DIR}/${TARGET_TAR_NAME} . 
    # ls -l ${TMP_DIR}/${TARGET_TAR_NAME} ※無くてもOK
  CMD2="podman cp ${CONTER_NAME}:${TMP_DIR}/${TARGET_TAR_NAME} $TARGET_TAR_PATH_NAME"
  CMD3="podman exec -it ${CONTER_NAME} /bin/bash -c 'ls -l ${TMP_DIR}/${TARGET_TAR_NAME} ; rm -f ${TMP_DIR}/${TARGET_TAR_NAME} ; ls -l ${TMP_DIR}/${TARGET_TAR_NAME};'"
    # ls -l ${TMP_DIR}/${TARGET_TAR_NAME} ※無くてもOK
    # rm -f ${TMP_DIR}/${TARGET_TAR_NAME}
    # ls -l ${TMP_DIR}/${TARGET_TAR_NAME} ※無くてもOK
  CMD4="ls -l $TARGET_TAR_PATH_NAME"
  
  echo CMD1:$CMD1
  echo CMD2:$CMD2
  echo CMD3:$CMD3
  echo CMD4:$CMD4
  
  /bin/bash -c "$CMD1" > log.txt
  wait $!  ※いい感じで待ってくれる
  /bin/bash -c "$CMD2" >> log.txt
  wait $!  ※いい感じで待ってくれる
  /bin/bash -c "$CMD3" >> log.txt
  wait $!  ※いい感じで待ってくれる
  /bin/bash -c "$CMD4" >> log.txt
  wait $!  ※いい感じで待ってくれる
else
  echo usage: $0  {PODMAN_CONTER_NAME}  {FULL_PATH_IN_CONTER}  {OUTPUT_TAR_FILE_NAME}
  exit 1
fi

念のためTARGET_TAR_NAMEは、../conf.tar.gz とか保存先ディレクトリィを指定できる様にしてある。

余談

TARGET_TAR_NAMEが空っぽになるコード

TARGET_TAR_NAME=   $(echo $TARGET_TAR_PATH_NAME | rev | cut -d'/' -f1 | rev)

$(・・・)の前に空白があると、TARGET_TAR_NAMEが空文字列になってしまう。

TARGET_TAR_NAME=$(echo $TARGET_TAR_PATH_NAME | rev | cut -d'/' -f1 | rev)

昔のUNIX(SystemV)の頃のawkも(…)や{…}の前後のスペーシングに敏感だったが今はそんな事ないんでウッカリしてた。



[VSCode]デバッグコンソール

リモートホストに繋いでindex.jsを「デバッガの開始」すると

デバックコンソールに案内文(url付)を表示すると、ポートに①が付くので開くと、

urlのドメインがlocalhostなら困るだろうと自動的にポートフォワードするらしい。

デバックコンソールでCTRL+クリックでブラウザで開くとブラウザのURLが

デバックコンソールに表示しているポート番号からポートフォワードのポートに変わってる。

ちなみに、「ターミナル」を開くとcockpit入れてると、https://localhost:9090とか出るので、ポート9090をlocalhostの9090と同じ番号。10000未満だと違う番号にすると別のサービスに被るから変えてないのだろう。でも、VSCodeでデバッグする時だけポート番号が違うとメンドクサイので

「20090:20090」の様に2つ番号を入れれば好きな番号に振ってくれるので助かる。

でもこれだけでは繋がらない。リモート側で「20090:20090」という番号らしくないポート番号を開こうとして挫折してるっぽので、一旦「20090:20090」を削除して、今度は「20090」で作成。

あれ?たった今、https://localhost:9090が出なくなった?

でも、WindowsのコマンドラインからSSHすると

ここだけ表示する?

と思ったら、デバッグコンソールでも出るようになった。(怪しい

ps.2050/4/15

なぜlocalhost側のポート番号+1してしまうか不思議だったけど

自分でフォワードポートしたまま、listenしようとして失敗してたらしい。

よく見ると転送されたアドレスのlocalhost:9090あたりで右クリックしてローカルアドレスポートの変更を選択すると

こんな風に直接手入力で変更できる。

機能多すぎて説明を読む気もしないから

ショートカットもほぼ使ってない状況なせいかな?




top