日々精進

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

2017-06-01から1ヶ月間の記事一覧

rootユーザのパスワードがわからないコンテナにrootユーザでログインする

IT

以下のようにrootユーザ指定でコンテナにログインすればいい。 docker exec -itu root centos 参考: qiita.com

docker composeファイルで定義している環境変数がsshでログインした時に設定されてない

IT

以下のようにdocker composeファイル内で printenv | grep -v "HOME" >> /etc/environment を実行すればよい。 command: > bash -c '/usr/sbin/sshd && /bin/bash' /usr/sbin/sshd && printenv | grep -v "HOME" >> /etc/environment && /bin/bash' 参考: s…

spring bootアプリを起動すると「Main class name has not been configured and it could not be resolved」エラー

IT

同じソースコードで、他の人は起動出来るのに自分だけ起動出来なくなった。。 原因はよくわからないが、IntelliJ上で以下を繰り返していると直った。 Invalidate cache/Restartを実行する IntelliJを再起動する gradleのキャッシュを削除する これが直った後…

gradleのキャッシュを削除する方法

IT

パッケージを再ダウンロードした場合などは、以下のようにフォルダを削除する。 rm -rf $HOME/.gradle/caches/ windowsでも同様の場所にキャッシュがある。 参考: stackoverflow.com

dockerコンテナのTimezoneを設定する

IT

例えばJSTにしたい場合、かつdocker composeを使っている場合はdocker composeファイルのenvironmentを以下のようにする。 environment: ~ - TZ=Asia/Tokyo 参考: yoru9zine.hatenablog.com

dockerを実行すると「Got permission denied while trying to connect to the Docker daemon socket at ~」エラー

IT

原因はユーザにdockerの実行権限がついてないこと。 インストールしただけだとrootユーザでないと実行できないけどそれだと不便なので以下を実行すると直る。(ec2-userでログインしている場合。) sudo usermod -aG docker ec2-user sudo /bin/systemctl re…

Pythonのlambdaのtype hint

IT

すべての箇所でtype hintを書きたい人なので、lambdaを代入した変数にもtype hintが欲しい、、となりやり方を探した。 以下のようにLambdaType 型として扱えば良い。 x: types.LambdaType = lambda x: print(x) 参考: stackoverflow.com

pythonスクリプトを実行すると「{AttributeError} object has no attribute @dataclass」エラー

IT

原因はPyCharmのSSH Interpreterが不調でサーバに最新のソースコードが送信されていなかったため。 手動でUploadしたら直った。SSH Interpreter調子悪い。。

pytestでraiseされた例外をテストする

IT

例外が発生するケースのテストをしたい場合は以下のように with pytest.raises を使う。 def test_recursion_depth(): with pytest.raises(RuntimeError) as excinfo: def f(): f() f() assert "maximum recursion" in str(excinfo.value) as excinfoを使う…

exceptの中で例外をraiseする場合はfrom exを付ける

IT

ライブラリがraiseした例外をexceptしてraiseし直す場合、以下のようにraise ~ from exのようにすると ライブラリがraiseした例外のスタックトレースやエラーメッセージも引き継ぐことができる。 try: self._execute() except SQLAlchemyError as ex: raise …

pytestでテストコードからコマンドライン引数を設定する

IT

コマンドライン引数としてある値を渡したときのテストをしたい場合。 以下のようにpatch.objectを使ってsys.argvを置き換えればよい。 def test_parse_args(): testargs = ["prog", "-f", "/home/fenton/project/setup.py"] with patch.object(sys, 'argv', …

patch.objectを使ってメソッドをmockに置き換える

IT

あるクラスのメソッドをMockに置き換えたい場合、以下のようにすることが多いが、複数置き換えたい場合にネストが深くなってしまう。 with patch.object(AClass, 'method', new=method2): #テストコード 以下のようにannotationにするとネストが深くならない…

UTF8ではBOMは非推奨

IT

UTF8ではエンコーディングの最小単位が1バイトなので、エンディアンを気にしなくて良い。 UTF16,UTF32は最小単位が2バイト以上なので、そのバイト列が昇順なのか降順なのかが大事。 Unicode公式ではUTF8ではBOMは付けないことをおすすめされている。 でも、…

pythonでオブジェクトが数値型かどうかを調べる

IT

数値型にはint, floatなど複数あるけどまとめて判定したい。 isinstance(x, numbers.Number) でできた。 参考: stackoverflow.com

コマンドプロンプト起動時にスクリプトを自動実行する

IT

.bashrcのような感じで最初に実行したいスクリプトがある場合。 以下を参考にレジストリを修正するとできた。 taktos.hatenablog.com これでコマンドプロンプトをbashのように便利に使えそう。

バッチファイルでスクリプト実行結果をコマンドとして実行する方法

IT

表題の件はなぜかFor文を使わないとできないらしい。まじかよ。。 以下はCmder環境でhistoryをfzfで絞り込んで実行するコード。gawkとfzfを使って色々便利にできそう。 FOR /F "usebackq delims=`" %%t IN (`gawk "/.+/ { print $0 }" "C:\Program Files\cmd…

PyCharmのPylintプラグインを実行すると「Pylint Plugin No Python interpreter configured for the project.」エラー

AI

残念ながらこの不具合は対応されていない。。 github.com しょうが無いので以下を参考に外部ツールとしてpylintを使う方法を試してみるか。。 stackoverflow.com

PyCharmを閉じると真っ黒なウィンドウが残る

AI

これはPyCharmのバグで2020.1バージョンで直るらしいのでそれまで待ちましょう。 参考: https://youtrack.jetbrains.com/issue/IDEA-205849?_ga=2.263696844.1358834143.1579589620-1975443277.1563440688

Vue.js3.0のClass API proposalが棄却された

IT

いつもClassを使ってVueComponentを定義している身としてはショック。。 公式がサポートしない方針になったというだけだけど、今後主流が変わるかも知れないので要watchですね。。 github.com

AESのECBモードは使ってはいけない

IT

使ってはいけない理由は以下参照。 note.com 日本政府が出している推奨暗号リストにECBは入っていない。 https://www.cryptrec.go.jp/list/cryptrec_ciphers_list_2013.pdf 以下文書でもECBは推奨しないと記載されている。 https://www.ipa.go.jp/files/0000…

pythonの__str__は人が読みやすい文字列にする

IT

pythonのclassのstrはどんな目的で使うべきかがよくわからなかったので調べた。 以下のサイトによると、strは人が読みやすい文字列を返す。reprはpythonがオブジェクトに変換できる文字列を返す。 gammasoft.jp

PyCharmでSSH Interpreterを使っている時に、リモートサーバにconda installなどでインストールしたパッケージをPyCharmに取り込む方法

AI

PyCharmのSSH Interpreterは大変便利だけど、サーバ側でconda installした後、PyCharmにそれが伝わらず IDE上でinstallしたpackageがそんなパッケージないとエラーになったり補完が効かなかったりする。 そういうときはInvalidate Cache / Restart...を実行…

Windows10のスタートメニューを素早く表示する方法

IT

なぜWindowns10のスタートメニューはあんなにも重いのか。あれは出荷してはいけないレベルだと思うが。。 できる対策は以下。 設定でアニメーションを切る。手順は以下。 121ware.com HDDをSSDに換装する スタートメニューに限らず全体的に動きがキビキビに…

.NETアプリで「Unable to cast object of type 'System.Security.Cryptography.RSACng' to type 'System.Security.Cryptography.RSACryptoServiceProvider' Google.Apis.Auth.PlatformServices」エラー

IT

原因は.NET Framework向けに書かれたコードを.NET Core環境で実行しているため。今回は結局他の理由もあり.NET Frameworkを使う方針にした。 参考: stackoverflow.com

.NETアプリをビルドすると「Your project does not reference ".NETFramework,Version=v4.7.2" framework. Add a reference to ".NETFramework,Version=v4.7.2" in the "TargetFrameworks" property of your project file and then re-run NuGet restore」エラー

IT

原因は、プロジェクト参照をしていたが参照されている方のFWが.NET Frameworkで、参照している方が.NET Coreだったため。 フレームワークの種類とバージョンは参照する方とされる方で一致させないといけないらしい。別で動かせないのか。。名前空間とか共有…

VisualStudioで外部ライブラリに黄色い△の注意マークが出て、実行時にエラーになる

IT

原因は不明だが、ライブラリをNugetでインストールし直したら直った。 なんだったんだ。。 以下のサイトでは.NET Frameworkのバージョンが揃ってないのが原因と書いてあるけどそこは問題無かった。 参考: stackoverflow.com

ASP.NETでカレントディレクトリのパスを取得する

IT

サーバのストレージに置いたファイルを読み込みたい場合など、サーバのカレントディレクトリのパスが知りたい場合がある。 そういう時は以下でOK。 HttpRuntime.AppDomainAppPath 参考: stackoverflow.com

IIS Expressのログの場所

IT

ログのパスはapplicationhost.configで設定されている。 自分の環境では以下のパスに出ていた。 C:\Users\user\AppData\Roaming\Microsoft\IISExpressLogs 参考: stackoverflow.com

HttpClientはUsingで囲ってはいけないらしい

IT

久々のC#。HttpClientはUsingで囲ってはいけないらしいという話。 各インスタンス毎にソケットを確保するので沢山インスタンスを作るとソケットが枯渇することがあるそうな。なるほど。。 参考: qiita.com

switch文のfall throughが許されるケース

IT

stack overflowで、以下のようにコードを含まないcaseについてはfall throughを許すと言っている人がいた。 switch (value) { case 0: result = ZERO_DIGIT; break; case 1: case 3: case 5: case 7: case 9: result = ODD_DIGIT; break; case 2: case 4: ca…