【VSCode】The Python Tools server crashed 5 times in the last 3 minutes. The server will not be restartedの対策

Pythonvscodeで書いていて、補完が利かなくなったので困った。
仮想環境を使い始めたタイミングだったのでそれを疑ったが、解決せず。
検索してもよくわからなかった。

解決策
設定の Python: Language Server を Jediにしたら動き始めた。

【Unity】アセットのダウンロードに失敗する場合の対処法(The requested URL returned error: 401 Unauthorized)

tldr

forum.unity.com

自分用のメモとして書いていきます。

発生した問題
Unity2020.3.11で無料のアセットを購入(?)して、Open in UnityでUnityのパッケージマネージャーにとんだ。
そこからダウンロードボタンを押したが、「後でもう一回試してくれ!」の一点張り。どうしたものか。

解決方法
UnityHubから、Unity2018.4.35f1をインストールし、プロジェクトをUnity2018バージョンで開きなおす。
まだ何も作っていない状態だったので問題はなかったが、製作が進んでいる場合はゲームが壊れそうで怖い。
Unity2018ではAsset StoreがUnity内で開けるはず。そこからMy Assets → Download → importで無事読み込み成功!
最新バージョンのUnityでプロジェクトを開きなおして無事解決した。
それ以降は最新バージョンのパッケージマネージャーからで問題なくダウンロードできるようになった。

感想
Unity触り始めてまだ2日目だが、さっそく罠にはまってしまった。こんなの知らなきゃどうしようもない。
今後の苦難が思いやられる。(でもUnity最高に楽しい!)

moviepyで出力した動画に音声がつかない場合の対処法。python3

自分用のメモです。
video.write_videofile(path)
で出力した動画を再生してみると、音声が入っておらず、はまりました。


①moviepy/video/io/ffmpeg_writer.pyを開く。
場所がわからなかったら、
import moviepy
print(moviepy.__file_)
でmoviepyの位置を調べる。

②86行目の
'-i', '-', '-an',

'-i', '-',
に変える
③保存して終了
④再度実行

これでうまくいきました。
参考になれば幸いです

ThinkTraderが強制終了するときの対抗策(windows10)

自分用のメモとして書いていきます。

①ThinkTraderを立ち上げて、強制終了するところまで操作を進める。
windows管理ツールの「イベントビュアー」を立ち上げる。
Windowsログ→Applicationのタブを開く。
④直前のThinkTraderのエラーを選択。
⑤「障害が発生しているアプリケーションのパス」を見て、実行ファイルがあるフォルダまで移動。
⑥そのフォルダにあるファイルをすべて削除。
⑦デスクトップにあるThinkTraderのショートカットをダブルクリックして、インストールを選択。
⑧インストールするまで待ち、起動すると正常に動作するようになるはず。
⑨新しく作成されたショートカット(ThinkTrader - 1)があれば削除してOK

ただ再インストールするだけでは治らなかったので、ちょっと困りました。
設定ファイル?を削除するのがポイント見たいです。

【VSCode】Vimプラグインを使って快適な開発環境を作る

tl;dr

拡張機能→「vim」を検索→インストール→ Control+Shift+p→Open Settings(JSON)→setting.jsonに好みの設定を記述

環境

出来るようになること

vscode統合開発環境として使いつつ、vimキーバインドをそのまま使用することが出来るようになります。 vimソースコードを書きたいけど、vscodeの便利さを手放したくないという人(今の自分)は使ってみてください!

Vimプラグインをインストール

vscode拡張機能をインストールすることで、自分好みにカスタマイズしていくことが可能です。 今回インストールするvimプラグインもその一つとなっています。
では、vimプラグインのインストールをしていきましょう。
f:id:bD4yv:20201018185426p:plain
たったこれだけです。いちおう文章でも説明しておきます。
1. 左サイドバーの拡張機能のタブを開く
2. 検索窓に「vim」を入れて検索
3. 一番上に出てくる拡張機能をクリック
4. インストールをクリック
何かしらのファイルを開いてみてください。h j k l等のvimの操作ができれば成功です。
次に、vimrcに相当する設定ファイルを見ていきましょう。

設定をカスタマイズする

VSCodeプラグインでも、vimrcのような設定ファイルからキーバインドのカスタマイズ等が可能です。 設定ファイルの開き方を見ていきましょう。
1. Control+Shift+pでコマンドパレットを起動
2. 「Open Settings JSON」と入力
3. 「Open Settings(JSON)」を実行
これで設定ファイルが開けました。自分のvimrcを再現する方法は各自で調べてみてください。
参考までに、僕の大好きな jj でノーマルモードに戻る設定を貼っておきます。

{
    "vim.insertModeKeyBindings": [
        {
            "before": [
                "j","j"
            ],
            "after": [
                "<Esc>"
            ]
        },
    ],
}

本編はこれで終わりですが、最後にvimvscodeを組合せた開発環境の良さについて語ってみます。

VSCode × Vimの可能性

僕は、vimの存在を知る以前はvscodeオンリーでソースコードを書いていました。 WindowsでもUbuntuでも安定して動作し、シンプルで使いやすいGUIが気に入っていました。 拡張機能でより良い環境を求めて気軽に改造していけるのもいいところだと思います。
vimでのコーディングが面白そうだなと感じ始めたときは、vimには無限の可能性を感じたもののUnixコマンドでのファイル管理等には煩わしさを感じていました。 右クリック→名前の変更 でファイル名を変更ができないのは少し面倒くさいと感じました。 vscode内でvimの操作を再現出来るとは知らず、vimの魅力をとるかvscodeの使いやすさをとるかでかなり悩んでいたのを記憶しています。
そんな僕にとって、お互いのいいとこ取りが出来る用なvimプラグインは素晴らしいものに感じられました。 僕がvscodeに頼らざるを得ないほど未熟だというだけかもしれませんが、今のところは現環境に大満足です。
vscodeの利便性(Dockerとの連携とかすごくいい!)を感じつつ、vimならではの良さを享受できていると思います。 とは言いつつも、まだまだvim修行が足りないと感じているので、悟りを開くまでには先が長そうです。
これからも、色々なところで「いいとこどり」を見つけていきたいと考えています。

最後までお読み頂き、ありがとうございました。

【Slack・Python】プログラムからメッセージを送信する方法

tl;dr

WebHookでメッセージを送信するコマンドをPythonで実行する。

環境

WebHookの導入

これでWebHookの導入は完了です!お疲れ様でした。
次はターミナルからメッセージの送信が出来るか確認してみましょう!

ターミナルから送信してみる

ターミナルを開きます。
XXX = 先程コピーしたURL
MMM = メッセージ(ex.おはよう!)
としたときに、以下のコマンドを実行します。

curl -X POST XXX '{"text":"MMM"}'  

導入時に指定したチャンネルに、メッセージが送信されれば成功です!
次はこのコマンドをPythonから実行してみましょう!

Pythonのプログラムに落とし込む

いよいよPythonでの実装です。今回はPythonを使用しますが、どの言語でも可能な処理だと思います(未確認)。
Pythonではsubprocess.callを使用することで、プログラム内でunixコマンドを実行することができます。簡単な例を示します。

import subprocess
subprocess.call('ls')
#>lsコマンドの実行結果が出力される

この子を利用して先程ターミナルで実行したコマンドを実行していきます。
ここでポイント。
Python内で文字列を表現するときに使うのが " と ' ですが " "の中で " を使うことはできません。 今回は " と ' と \" を組合せてコマンドを表現することにしました。少しややこしいです。
ではコードをどうぞ。

import subprocess
def send_slack_message(message):
    url = "XXX" #WebHookのURL
    cmd = "curl -X POST "+url+" -d '{\"text\":\""+message+"\"}'"
    subprocess.call(cmd,shell=True)
message = 'お腹空いた' #任意の文字列
send_slack_message(message)

slackにご飯が食べたいという趣旨のメッセージが届いたら成功です! これで本編は終わりですが、最後に僕がどのように利用しているかを書いておきます。

僕の使いみち

最近趣味で機械学習を学んでいます。学習時間が長いときには数日間に及ぶので、進捗状況を管理したいというニーズがありました。 そこでスマホからでも確認できるよう、slackにメッセージを送信することにしました。コマンドラインからの実行だけでは使い勝手が 悪いかったので、ソースコードから直接メッセージの送信が出来るようにしたという流れです。
実際に使っていますがすごく便利です。学校の休み時間等にニヤニヤしながらLog lossを確認したりしています。
slackにメッセージを自動で送信するというのは、機械学習に限らず色々なところで役に立つと思うので、ぜひ利用してみてください。 自分のプログラムからメッセージが送られてくるというのは、人間的な距離が縮まったかのように感じられることと思います。

最後までお読みいただき、ありがとうございました。