Ubuntuでのrenameコマンド
ファイル名を一括変換する rename
コマンド。
Ubuntuでは他のLinuxディストリビューションとは挙動が異なるらしく、ハマったのでメモ。
(変換前)2-00000.png, 2-00001.png, ... (変換後)2_00000.png, 2_00001.png, ...
結論:UbuntuではPerl正規表現を使う
Ubuntuでのrename
はPerl正規表現に従って記入する。
今回の場合、以下のようにすれば変換できる。
rename 's/2-/2_/g' 2-*.png
末尾の /g
を忘れずに。
さいごに
man rename
にも「Perl正規表現を使え」と書いてました。
まずはman
読めって話ですね…。
おしまい。
参考リンク
proxy環境下のsnap設定
社内LANからsnapでインストールしようとしたらハマった話。
apt
や wget
は通っているのに、なぜ?
$ sudo snap install hello-world error: unable to contact snap store
結論: /etc/environment にてproxy設定する
snapは /etc/environment から設定を読み込む。
今回の環境では /etc/profile にproxyを設定していたのだけど、見てくれないみたい。
$ sudo snap install hello-world Download snap "core" (6673) from channel "stable"
さいごに
システム全体に反映させたくない場合、個別に設定する方法もあるようです。 askubuntu.com
おしまい。
参考リンク
lambdalisue.hatenablog.com everything-you-do-is-practice.blogspot.com
ざっくりネオコグニトロン
先日、LINE AI Talk #01 におじゃましました。
名指しされました。
ですねw。よろしければ後日Blogなどでまとめていただけると嬉しいですby主催 #LINEAITALK https://t.co/8Bc1zAutTh
— いさご@LINE DevRel (@shin135) 2019年3月26日
まとめられるほど分かってないので ネオコグニトロンについて、ちょっとメモ。
ネオコグニトロンって何さ
ニューラルネットワークの一種。
パーセプトロンによるCNNと似てる、というより元祖なんだとか。
ネットワークは「S細胞」「C細胞」という2種類の細胞から構成されている。
CNNで言うところの畳み込み層にあたるのが「S細胞」、プーリング層にあたるのが「C細胞」。
CNNでの畳み込み&プーリングと同じように、S細胞とC細胞による層(Us, Uc)は交互につなげられていく。
役割も同じ感じ。
CNNと同じなの?
目立つところでは、学習の手順が異なる。
「Back propagation」ではなく、「add-if-silence法」と呼ばれる方法で学習する。
add-if-silence法とは、「次の層の細胞が反応しなければ(if-silence)、新しく細胞を作る(add)」というやり方。
学習前にネットワークの定義をしないのが、CNNとの大きな違い。
ざっくり比較すれば、
- Back propagation:「上書き保存」
- add-if-sillence:「名前をつけて保存」
説明が雑じゃない?
こちらをご覧ください。 lp-tech.net
さいごに
マサカリはほどほどにお願いします。
おしまい。
Pythonでの文字に対する計算
C言語なんかでよくある
char c = 'A' + 1;
こんな感じの「文字の足し算・引き算」をPythonでやろうとしたところ、
見つけるのに時間がかかったのでメモ。
結論:ord(), chr()を使う
ord()
で文字から数字。 chr()
で数字から文字。
取れる引数は1文字なので、文字列の場合はfor文を使って対処。
# python 3.6.5 string = "test" increment_str = [chr( int( ord( i ) + 1 ) ) for i in string] print(''.join(increment_str)) # 'uftu'
さいごに
Python2だとちょっとめんどくさいらしい。
おしまい。
参考リンク
XML-RPCでの返り値の無い関数について(Python)
Python3.6にて、XML-RPC(xmlrpc)を用いたスクリプトを書いていたときに遭遇したエラー。
xmlrpc.client.Fault: <Fault 1: "<class 'TypeError'>:cannot marshal None unless allow_none is enabled">
とりあえずググる。stackoverflowにて同様の問題を発見。
(自分のスクリプトでの)原因としては、RPCを行う関数にreturn
が記述されていないため。
返り値の無い関数の時には、返り値がnone
になっているが、返り値としてnone
が許可されていないため、とのこと。
return
を書いて返り値を渡すようにするか、サーバのインスタンスを生成するときにnone
を許可するようにすれば良いみたいです。
こちらを参照しました。
stackoverflow.com
Lenovo E470のスピーカーから音が出ない?
本体のスピーカーから音が出ない?
普段、HDMIケーブルを使ってテレビと接続しています。
音もテレビか、もしくはUSB-DAC(Xonar U7)に接続したヘッドホンから。
HDMIケーブルを抜いて本体から音を出そうとしたら、音がでない。
こういう時は、ドライバをアンインストールして再起動。
すると起動時に適切なドライバを再インストールしてくれて、無事復旧というわけです。
これでだいたい直るんですよね。
…直りませんでした。何だか嫌な予感がします。
本当にデバイスドライバの問題?スピーカー側の問題だったら…やだなぁ。
Windows10用のドライバが原因でした
試しに、デュアルブートにしてあるUbuntuStudio17.10にて、音が出るかを確認。
こちらでは問題なく音が出たため、これでドライバが原因であることが確認できました。
Windows10を起動してググってみたら、サポートページからドライバをダウンロードするのが確実とのこと。
サポートページからドライバをダウンロード、インストールして再起動。
無事にスピーカーから音が出るようになりました。初歩的な手段で復旧して良かったです。
そういや、カニさんのドライバじゃないんですね。
Windows側が用意してくれるドライバとは相性が悪いんでしょうか?
終わりに
サポートページのドライバをダウンロードして、そのドライバを用いて再インストールすればいいみたいです。 再度発生したら、また追記するかもしれません。