2022年6月16日木曜日

Django: shellでsettings.pyの設定値を取得する



$ python manage.py shell

>>> from django.conf import settings

>>> settings.BASE_DIR

>>> '/var/www/html/myproject/'


2022年6月15日水曜日

Django: urls.pyで単純にリダイレクトする方法

例:

/abc/任意文字列 ⇒ /xyz/任意文字列


from django.views.generic.base import RedirectView

urlpatterns = [

    url(r'^abc/(?P<path>.*)$', RedirectView.as_view(url='/xyz/%(path)s', query_string=True)),

]

2022年5月29日日曜日

Windows11「USBデバイスが認識できません」という通知が繰り返し表示される

Windows11を起動したところ、「USBデバイスが認識できません」という通知が延々と繰り返されるようになり、うるさくて困ってしまいました。

デバイスマネージャーを見ると、

不明なUSBデバイス(デバイス記述子要求の失敗)

というエラーが出ています。

原因:PCがスリープ中に、電源コード(USB-Cタイプ)を抜いて、再度挿していたため。

解決方法:PC起動中に電源コードを抜き差しする。

無事解決できました。

※Googleで検索すると、デバイスをアンインストールして再度インストールしなさいという解決方法がほとんどでしたが、それでは解決できなくて上記方法で簡単にできました。

2022年4月27日水曜日

ImageMagickでExifデータの確認

ImageMagickで画像ファイルのメタデータ(Exifデータ)を確認するには

以前バージョンのコマンド
$ identify -verbose (ファイル名)

新しいImageMagickでは以下のコマンド
$ magick identify -verbose (ファイル名)

※Exifデータを編集するには,exiftoolというExifの操作に特化したツールが便利です。

参考 Ubuntuで写真のメタデータを扱う方法
https://gihyo.jp/admin/serial/01/ubuntu-recipe/0553

2022年2月22日火曜日

Headless Chromeでページロード完了後にPDF出力する

Headless ChromeでPDF出力したところ、ページロード完了前にPDF出力してしまうので、画像など真っ白になってしまう場合が多発した。

以下のオプションを追加すれば大丈夫でした。

--run-all-compositor-stages-before-draw 

例:
chrome --headless --disable-gpu --no-sandbox --run-all-compositor-stages-before-draw --print-to-pdf=C:\\tmp\\tmp.pdf --virtual-time-budget=10000 http://localhost:8080/banana/key 

--virtual-time-budget=10000
これは最大待ち時間のことのようである。

参考 Make Chrome Headless to Wait for Ajax Before Printing to PDF - Stack Overflow
https://stackoverflow.com/questions/49614437/make-chrome-headless-to-wait-for-ajax-before-printing-to-pdf

2021年9月2日木曜日

Grep 一致した部分だけ抽出する

sample.logファイル内から、/数字8桁/だけ抜き出したい。

以下のコマンドでは一致する行がすべて表示されてしまう。

$ grep -E "\/[0-9]{8}\/" sample.log

↓出力結果

・・・remote.php/webdav/110015/index.php/apps/files/・・・

・・・remote.php/webdav/201013/index.php/apps/files/・・・

・・・remote.php/webdav/301021/index.php/apps/files/・・・

・・・remote.php/webdav/601001/index.php/apps/files/・・・

・・・remote.php/webdav/701005/ index.php/apps/files/・・・


 -oオプションを使う

$ grep -Eo "\/[0-9]{8}\/" sample.log

↓出力結果

/110015/

/201013/

/301021/

/601001/

/701005/ 



2021年8月3日火曜日

JavaScript/jQuery 文字列置換 replaceの前方参照でハマったところ

以下のような文字列から先頭のアルファベット(文字数任意)だけ削除したいとします。

var STR1 = "ABCDEFG123456"; //⇒123456にしたい

var STR2 = "OPQRS78901"; //⇒78901にしたい


ダメだった式
STR1.replace(/[A-Z]+(.+?)/g, $1);
STR2.replace(/[A-Z]+(.+?)/g, $1);

OKだった式
STR1.replace(/[A-Z]+(.+?)/g, "$1");
STR2.replace(/[A-Z]+(.+?)/g, "$1");

$1をクオーテーションマーク " で囲まないといけなかった。