日々精進

新しく学んだことを書き留めていきます

IT

multiprocessing.Poolで並列処理をすると、子プロセスで例外が発生した場合エラーメッセージがでない

IT

multiprocessing.Poolでも、apply_asyncを使って子プロセスを起動している場合は子プロセスで発生した例外を親プロセスに伝えられる。詳細は以下参照。 conta.hatenablog.com 自分はmapを使っていたので同様のことができず困った。しかも、子プロセスで例外…

yieldと通常のreturnは併用できない

IT

同じ関数の中で、ifで分岐してこの場合はgeneratorとして使う、この場合は普通に値を返す、ということはできないらしい。 ja.stackoverflow.com しょうがないのでgeneratorがほしい場合とそうでない場合で共通の部分を関数に抽出して残りの部分をそれぞれ別…

concurrent.futuresで並列処理をすると、親プロセス終了時に「Error in atexit._run_exitfuncs OSError: handle is closed」エラー

IT

原因は以下。 子プロセスを管理しているオブジェクトはfull gcが実行されるまで生きている 親プロセスが終了すると子プロセスを管理しているオブジェクトは子プロセスに停止命令を送る その時には子プロセスはすでに終了しているので「handle is closed」が…

aws cliでS3からファイルをダウンロードする時、沢山あるファイルをzipにまとめるとダウンロードが30倍速くなった

IT

約15000ファイルの画像データセットを、普通にダウンロードした場合とzipに固めたものをダウンロードした場合でどの程度速度差があるのか計測してみた。 EC2インスタンスはg4dn.2xlarge。 普通にダウンロードした場合:300秒 zipに固めてからダウンロードし…

boto3でS3からファイルをダウンロード・アップロードするのを高速化する

IT

boto3のS3.Client.download_fileメソッドを使って大量のファイルをダウンロードすると、aws cliでダウンロードするよりかなり遅い。 boto3.amazonaws.com 理由はdownload_fileは同期処理なのに対してaws cliはマルチスレッド(ちゃんと調べてないのでマルチ…

shell scriptで環境変数が未定義かどうかを判定する

IT

-z "${VAR}" とするのがメジャーだが、これでチェックするとset -euxo pipefailを設定して未定義変数を使用している場合、エラーになるようにしているとエラーで止まってしまう。 代わりに ${VAR:-"unset"} == "unset" とするとエラーにならない。 参考: ww…

Cmderが重すぎるのでConEmuに乗り換えしました

IT

タイトル通りだが、Cmderが重すぎてイライラするのでConEmuに乗り換えたら非常に快適になりました。 有料でいいから軽くて使い勝手のいいターミナルエミュレータがほしい。。

OpenSSH 8.8で、Ctrl+Cを押すと接続が切れる

IT

git for windows 2.35に付属しているOpenSSH 8.8を使ってsshでサーバにログインしたところ、Ctrl+Cを押すとssh接続が切断されてしまう。期待する動作は、サーバで実行中のプロセスにSIGINTを送ること。 git for windows 2.28.0に付属しているOpenSSH 8.3だと…

Jetbrains製IDEでuntrusted server certificateをacceptするか何度も聞かれる問題

IT

設定で自動的にAcceptするようにできる。セキュリティ的にはよろしくないと思うけど・・やり方は以下参照。 android - Untrusted Server Certificate in Intellij - Stack Overflow

Cmderでタブ毎にhistoryを分ける

IT

cmderフォルダ\config\clink_settings の history.shared = True をFalseにすると分けられる。 参考: github.com

エクセルで同じBookを2つ並べて作業する

IT

違うシートを参照しながら作業したい場合などに使える。 以下のサイトの方法で同じBookを複数ウィンドウで開ける。今までファイルをコピーして開いたりしてたけど、こっちの方が楽だしどちらのウィンドウで編集したも同じファイルが更新されるのでいいな。。…

docker imageをビルドすると「mesg: ttyname failed: Inappropriate ioctl for device」というメッセージが出る

IT

害は無いんだけど、赤字で表示されるし何か気になるので抑止したい。。 以下の行をDockerfileに追加すると出なくなった。 RUN sed -i -e 's/mesg n || true/tty -s \&\& mesg n/' /root/.profile 参考: www.educative.io

sshでログインしようとすると「Unable to negotiate with xxx port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss」エラー

IT

原因は最近のopensshが古い形式の秘密鍵をサポートしなくなったこと。openssh 8.3ではエラーが出なかったが8.8だとエラーになった。 以下の設定を接続設定に追加すると直った。 HostKeyAlgorithms ssh-dss,ssh-rsa PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa …

Log4jの任意のコードが実行出来る脆弱性の影響範囲

IT

今日知ったLog4jの脆弱性について調べたことを書きます。 脆弱性を修正したPR github.com 影響範囲 log4j2の影響を受けるバージョンは以下の記事によると、2.0 <= Apache log4j2 <= 2.14.1 www.cyberkendra.com log4jバージョン1も影響を受けるというコメン…

iPhoneのUDIDを調べる方法

IT

ググるとiTunesを使う方法などが出てくるが、それは古いっぽい。 以下で紹介されている、Finderで調べる方法をやってみると確認できました。 apptopi.jp

sshでアクセスすると公開鍵認証してほしいのにパスワードを聞かれる

IT

ssh hostname -vvvTを実行すると以下のログが出る。 debug1: Trying private key: /c/Users/username/.ssh/mykey.pem debug3: sign_and_send_pubkey: RSA SHA256:nQr29X+3juJvSWOedeEVmgKCZgaO169LKCvAZCKkFKM debug3: sign_and_send_pubkey: signing using …

Chromeが重くなった時の対処法

IT

普段はアドレスバーに「chrome://restart」と打って再起動すると軽くなるが、これやってもだめな時があった。 そんなときはタスクトレイの中のChromeアイコンを右クリック→終了を選択してからChromeを起動すると軽くなった。 Chrome重いとかなりストレスフル…

縦横が混在したPDFを一括で印刷する

IT

縦向きと横向きのページが混在しているPDFをChromeで表示して印刷すると、 すべて縦向き、またはすべて横向きで印刷するので一部のページが見きれる・・ なのでまず縦向きのページを印刷して、その後横向きのページを印刷するとか面倒なことをしていた。 Acr…

DockerのENTRYPOINTとCMDの違い

IT

今まで曖昧だったので調べた。以下がが分かりやすかったです。 pocketstudio.net

シェルスクリプトの定番設定

IT

以下のようなやつ。 #!/bin/bash set -euxo pipefail これの意味を以下で知りました。なるほど。。というか設定された状態をデフォルトにして欲しいレベルだなぁ。 please-sleep.cou929.nu moneyforward.com

Ubuntuで容量を沢山食っているフォルダを探すにはncduが便利

IT

ncduを使うとサブフォルダも含めた容量を計算して見せてくれるので非常に便利だった。 Dockerの容量を削減したい時などに重宝しそう。 askubuntu.com WindowsではFolderSizesを愛用してます。前はDriveAnalyzerを使っていたけど、重かったので乗り換え。有料…

DockerのUbuntuコンテナで起動時にsshdを起動する

IT

Dockerコンテナではsystemctlが使えないらしく、困った。 docker-compose.yamlに以下を記載して対応した。 command: bash -c "/etc/init.d/ssh start && /bin/bash" 今回の使い方ではcommandを上書きし、かつsshでもログインしたい場合が無かったので大丈夫…

Dockerfile内で. /opt/conda/etc/profile.d/conda.shを毎回実行しなくて良いようにする

IT

Dockerfileの中でconda環境をactivateした上でコマンドを実行したい場合、 RUN . /opt/conda/etc/profile.d/conda.sh && conda activate myenv RUN python test.py のようにしてもだめで、RUN実行毎に. /opt/conda/etc/profile.d/conda.sh && conda activate…

tty:trueを設定していてもdockerコンテナがすぐ終了してしまう

IT

docker-compose.ymlでcommandのところを以下のようにしていたらだめだった。 command: /etc/init.d/sshd restart && bash 以下のように複数コマンド実行する場合はbashスクリプトとして実行すれば大丈夫。 command: bash -c "/etc/init.d/sshd restart && ba…

コマンドプロンプトのコマンドは^を末尾に付けると改行できる

IT

超長いコマンドを書いていたのでこのTipsのお陰でかなり見やすくなって助かりました。 こんな感じで改行できる。 python -m mo^ --framework=tf^ --data_type=FP16^ --model_name=ssdlite_mobilenet_v3^ --input_shape=[1,320,320,3]^ --input=image_tensor^…

windowsでアプリから例外コード:0xc000001dのエラーが発生した

IT

イベントビューアで例外コード:0xc000001dのエラーログが出ていた場合。 この例外コードは不正な命令をCPUで実行しようとした場合に出る。例えば、 AVX非対応CPUでAVX命令を実行した場合 32bitOSで64bit用アプリを実行した場合 に発生する。 今回は_pywrap_t…

「のどか」をインストールするとキーボードが効かなくなる

IT

キーバインディングソフトの「のどか」をインストールしてPCを再起動すると、キーボードを打っても何も入力出来ない状態になった。 appletllc.com ログイン画面でPINを入力できず、ログイン出来ないので結構焦る。 原因は、のどかのインストール前にデバイス…

-Xmx -Xmsオプションで指定したJVMのヒープサイズとCloudWatchのMemoryUtilizationが合わない

IT

ECS ClusterでJavaサーバを動かしているが、-Xmx -Xmsに3GBを指定し、コンテナのメモリが4GBなのにCloudWatchのMemoryUtilizationは10%程度だった。 75%ぐらいになるはずなのに・・と思っていたが、原因はCloudWatchのMemoryUtilizationの分子は使用中のメモ…

見えて安心ネットでiPhoneのMACアドレスが見付からない

IT

Wifiルータの機能で見えて安心ネットというものがあり、MACアドレスで端末を識別し、通信できる時間帯を制限出来る。 Wifiルータが認識しているMACアドレスの中にiPhoneのMACアドレスが見付からないという現象が起きた。 原因はiPhoneがプライバシー保護のた…

ECSタスク起動時のエラーログを確認する方法

IT

ECSタスクが起動しなくなった、という場合。普通のサーバだったらまずログを見に行くがECSタスクだとサーバが起動しないとすぐ タスクが停止されるということもありログが取りにくい。 そんな場合は停止したタスクの詳細の停止理由のところを見るといい。詳…