揮発性のメモ2

知識をメモ書きしておく

Linuxで、バッテリー情報を見る

とりあえず、/sys/class/power_supply/BATA/uevent を見ると良いらしい。
BATA の部分は環境によって異なるらしい。

superuser.com

# cat /sys/class/power_supply/BATA/uevent
POWER_SUPPLY_NAME=BATA
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_CYCLE_COUNT=0
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=7400000
POWER_SUPPLY_VOLTAGE_NOW=7486000
POWER_SUPPLY_POWER_NOW=9050000
POWER_SUPPLY_ENERGY_FULL_DESIGN=57720000
POWER_SUPPLY_ENERGY_FULL=44280000
POWER_SUPPLY_ENERGY_NOW=37200000
POWER_SUPPLY_CAPACITY=84
POWER_SUPPLY_CAPACITY_LEVEL=Normal
POWER_SUPPLY_MODEL_NAME=CF-VZSU42
POWER_SUPPLY_MANUFACTURER=Panasonic
POWER_SUPPLY_SERIAL_NUMBER=00000

これによると、このレッツノートCF-R4J のバッテリーは

バッテリーの本来のフル充電は 57.72Wh (仕様上 7.4V 7.8Ah なので合ってる)
実際のフル充電時の容量は 44.28Wh
現在の充電残量は 37.20Wh で、84%
電源は今、9.05W 消耗されている (よってこのペースならあと4時間以上いける)

15年も前のパソコンなのにまだバッテリーがこんだけ生きてるとか、パナソニックはすげーな

Linuxで、ファイル名を一括変更する

hoge-XXXX.txt を piyo-XXXX.txt に一括変換したい。
forでとかxargsでとか、そんなんいちいちやってらんねーよ


renameコマンドを使う
rename 変更前文字列 変更後文字列 対象ファイル

rename hoge piyo *.txt

linuxjm.osdn.jp


対象ファイルのファイル名に変更前文字列が含まれてなくても無視されるので大丈夫

systemdで、自作ユニットファイルをなんかうまく登録する

systemdで自作ユニットファイルをなんかうまく登録する方法

/etc/systemd/system/ に 自分で直接 hoge.service を置くのはおそらく行儀が悪い。

有効化するときは systemctl enable hoge.service を実行すればいいが、
無効化するときに systemctl disable hoge.service を実行すると、シンボリックリンクだった時には削除される。
(実体だったら削除されず残るが、それはそれで嫌)


たぶんギリギリ行儀の良いやり方は、systemctl enable でユニットファイルの場所を直接指定する方法

$ sudo systemctl enable /opt/hoge/hoge.service

Created symlink /etc/systemd/system/multi-user.target.wants/hoge.service → /opt/hoge/hoge.service.
Created symlink /etc/systemd/system/hoge.service → /opt/hoge/hoge.service.


manpages.debian.org
結局素人ブログを漁るよりマニュアルを読むのが一番

perlで、真偽値の戻り値

perlで、あらかじめ判定しておいた真偽値を変数に入れておいて
あとでそれをif文とかで参照するのってどうやるのが一般的なんだろう

my %hoge;
$hoge{a} = 1;
my $boola = exists $hoge{a};  # 真
my $boolb = exists $hoge{b};  # 偽

print("'$boola'\n");  # '1'
print("'$boolb'\n");  # ''

if($boola){  # ←なんかIDEが警告 Ambiguous condition を出してくる
    print "HELLO\n";
}
if(!!$boola){  # ←警告は出ないけど、綺麗な手法では無いと思う
    print "WORLD\n";
}

真偽値が返る関数の戻り値って「1または0」じゃなくて「1また空文字列」になってるけど、そういうもんなのか? それとも環境依存?
戻り値の真偽値をif文で判定するときに警告が出ない政治的に正しい方法はなんだ?

perlで、n文字ずつ分割する

3文字ずつ分割し、余った分もちゃんと取得する

my $line = "abcdefg";

my @list = $line =~ /.{1,3}/g;
for my $s (@list){
    print "$s\n";
}
abc
def
g

できた

my @list = $line =~ /.{3}/g;

とすると、3文字未満が捨てられちゃうので注意する

PhpStormで、スペルチェックをさせない 2

f:id:iww:20210627130229p:plain
こういうやつをやめさせる。


f:id:iww:20210627130243p:plain
Settings ⇒ Editor ⇒ Inspections ⇒ Proofreading のチェックを外す
以前は Settings ⇒ Editor ⇒ Inspections ⇒ Spelling だったけど、ちょっと前に名前が変わった

Windowsのperl

berrewberry

Windows用の perlbrew らしい。
GitHub - stevieb9/berrybrew: Perlbrew for Windows!

perlbrew

好きなバージョンのperlをソースダウンロードしてコンパイルしてインストールしてくれるツールらしい。
gccとかは別なので、あらかじめ自分でインストールしておくものらしい。
perlbrew - ユーザー環境にPerlをインストールする - Perlゼミ