- 投稿日:2020-03-15T20:36:52+09:00
code-insidersコマンドをCUIから設定する方法
code-insidersコマンドをCUIから設定する方法
Macの環境移行をスクリプトで行いたかったのでcode-insidersコマンドを使えるようにターミナルから設定したかったが、ドキュメントの方法ではうまくいかなかったのでメモ
結果的に、パスに新たに追記することなくコマンドを有効にできたので、副次的な利点も得られる。
codeコマンドに応用することも可能結論
vscodeとvscode insidersのコマンド
VisualStudio CodeとVisualStudio Code Insidersはシェルから操作することができる。コマンドはそれぞれ
code
とcode-insiders
である。GUIから設定する方法
codeコマンドもcode-insidersコマンドもGUIのコマンドパレットからは正常に設定できる。
方法は公式ドキュメント1参照CUIから設定する方法
普通のvscodeの場合 (公式)
CUIから設定するには、ドキュメント1の通り以下のコマンドを実行する。
echo 'export PATH="$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"' >> ~/.bash_profile source ~/.bash_profilevscode insidersの場合 (失敗)
vscode insidersのcode-insidersコマンドをCUIから使えるようにする方法はドキュメントに載っていない(たぶん)。
codeコマンドと同じ方法でやってみる。echo 'export PATH="$PATH:/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/bin"' >> ~/.bash_profile source ~/.bash_profileしかし、以下のように確認してみると使えないことがわかる。
code-insiders --version
bash: code-insiders: Command not found
shellを再読み込みしても変わらず...
考察
どうやら、GUIで設定した場合の内部的な処理はCUIと異なる。
CUIで設定した場合、コマンドの実行ファイルが存在しているディレクトリを直接PATHに追加している。
一方、GUIで設定した場合は/usr/local/binに実行ファイルへのシンボリックリンクを貼っている。/usr/local/binはデフォルトで$PATHに記述されているので、パスの追加を行う必要はない。code-insidersコマンドをCUIから設定できないときの解決方法
以下のコマンドで設定できる。
ln -s "/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/bin/code" "/usr/local/bin/code-insiders"普通のvscodeの場合
ちなみにcodeコマンドも同じ方法で設定することができる。
ln -s "/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code" "/usr/local/bin/code"メリット
PATHに追加せず設定できるため、ドキュメントに載っている方法と比較してこちらのほうはシェルを再読み込みする必要がないというメリットがある。
- 投稿日:2020-03-15T02:19:29+09:00
Macで.bash_profile永遠に読み込めない話
前提として今回やろうとしたことは、
「Macでpython3をデフォルトで使用したい」
ということ。
しかし途中で躓いた本件について共有していきたい。「Macでpython3をデフォルトで使用したい」
が為に、シェルにログインする度に読み込むファイルに以下の内容を書き込んだ。
「俺がpythonって言ったらpython3だと思ってね?」過去にもその対象ファイルとして.bash_profileに設定を追加してうまくいった経験が多々あった。
しかし今回はここで相当つまづいた。
正直わかんなくて3ヶ月放置した。笑結論として分かったことは、
「そもそも俺のMacさんのシェルbash使ってない。。。」って話。
じゃあ何使ってたの?っていうとzshっていうシェルだった。
要は使ってるシェルがbashだと思って.bash_profileに色々書き込んでたけど、
使ってんのzshだから意味ねーよと。zshの場合代わりにzprofileってのがあって、
そこに同じようなこと書き込んだら無事成功。もしMacで(もちろんMacじゃなくてもbashで)こんなことで困ってたら参考にしてください。
それ本当にbashですか?って。
以下に自分がシェルを理解せず使ってたかわかりました。
勉強します。以上。
- 投稿日:2020-03-15T00:39:55+09:00
[Python]LineBotを作成する
はじめに
HerokuとPythonを使った、おうむ返しするLINE BOTの作成方法についてまとめました。
環境
macOS Mojava
事前準備
Line Developerアカウント登録
Herokuアカウント登録
HomebrewインストールLine Developer側の設定
チャンネルの作成
・チャンネルの種類は「Messaging API」を選択。
・チャンネル名、チャネル説明等を入力し作成します。チャネルシークレット、チャネルアクセストークンを確認します。
・lineBot作成にあたり必要になります。
・[チャンネル基本設定]-[チャネルシークレット]
・[Message API設定]-[チャネルアクセストークン]LINEBOT作成
以下のファイルを作成します。
[フォルダ]
├ main.py (実行するプログラム)
├ Procfile (プログラムの実行方法)
├ requirements.txt (インストールするライブラリ)
├ runtime.txt (Pythonのバージョン)main.pyはline-bot-sdk-pythonを元に作成します。
main.pyfrom flask import Flask, request, abort import os from linebot import ( LineBotApi, WebhookHandler ) from linebot.exceptions import ( InvalidSignatureError ) from linebot.models import ( MessageEvent, TextMessage, TextSendMessage, ) app = Flask(__name__) #環境変数取得 LINE_CHANNEL_ACCESS_TOKEN = os.environ["LINE_CHANNEL_ACCESS_TOKEN"] LINE_CHANNEL_SECRET = os.environ["LINE_CHANNEL_SECRET"] line_bot_api = LineBotApi(LINE_CHANNEL_ACCESS_TOKEN) handler = WebhookHandler(LINE_CHANNEL_SECRET) @app.route("/callback", methods=['POST']) def callback(): # get X-Line-Signature header value signature = request.headers['X-Line-Signature'] # get request body as text body = request.get_data(as_text=True) app.logger.info("Request body: " + body) # handle webhook body try: handler.handle(body, signature) except InvalidSignatureError: abort(400) return 'OK' @handler.add(MessageEvent, message=TextMessage) def handle_message(event): line_bot_api.reply_message( event.reply_token, TextSendMessage(text=event.message.text)) if __name__ == "__main__": # app.run() port = int(os.getenv("PORT")) app.run(host="0.0.0.0", port=port)Procfile# Procfile web: python main.pyrequirements.txtFlask==0.12.2 line-bot-sdk==1.5.0runtime.txtpython-3.6.6Herokuにデプロイする
Herokuにアプリを作成し、作成したファイルをデプロイします。
また、LINEのチャネルシークレット、チャネルアクセストークンを環境変数として設定します。Herokuのインストールします。
brew tap heroku/brew && brew install herokuHerokuにログインします。
heroku login作成したファイルがあるフォルダに移動し、アプリを新規作成します。
heroku create アプリ名作成したファイルをHerokuにデプロイします。
git add . git commit -m 'First commit' git push heroku masterLine Developerで作成したチャンネルのチャネルシークレット、チャネルアクセストークンをHerokuの環境変数として設定します。
heroku config:add LINE_CHANNEL_ACCESS_TOKEN=チャネルアクセストークン --app googlecalendar-webhook heroku config:add LINE_CHANNEL_SECRET=チャネルシークレット --app googlecalendar-webhookWebHouckを設定する
LineからのメッセージをHerokuで受信できるようにWebHockを設定します。
Line DeveloperのチャンネルでWebHockと応答メッセージの設定を行います。メッセージを受け取った時に、WebHockを使用するように
[LINE公式アカウント機能]-[応答メッセージ]-[編集]から応答設定を変更します。
実行
メッセージを送信して同じメッセージが返されたら成功です。
メッセージが返ってこない場合heroku logs --tailで、Herokuのログでエラー等が出ているか確認すればいいです。
PUSHメッセージ送信
Herokuから直接Lineにメッセージを送ることができます。
PUSHメッセージはユーザIDを指定することで送信できます。line_bot_api.push_message( ユーザID, TextSendMessage(text=メッセージ))参考
- 投稿日:2020-03-15T00:34:41+09:00
MacにVirtualBoxとvagrantを入れてubuntuを新規インストールする
仮想環境の構築を何度も確認するのが面倒なので、最速で環境構築できるように要点だけを絞って書いていく。
VirtualBox のインストール
Mac版のVirtualBox を VirtualBox 公式ページからダウンロードしてくる。
選ぶのが面倒ならここから直接インストールイメージをダウンロード。
イメージをマウントしてインストーラーからインストール。Vagrant のインストール
Vagrantの安定版をここからインストールイメージをダウンロード。
イメージをマウントしてインストーラーからインストール。ubuntuのインストール
コンソールを立ち上げて以下を順番に打ち込んでいく。
qiita.rb$ mkdir -p ~/vagrant/ubuntu64_18 //インストール用のフォルダを作成する $ cd ~/vagrant/ubuntu64_18 //作成したフォルダに移動する $ vagrant box add ubuntu/bionic64 --box-version 20181129.0.0 //vagrantをインストールする $ vagrant init ubuntu/bionic64 //仮想マシンの設定ファイルを作成する $ vagrant up //起動できるか確認及びvagrant仮想環境を起動最終的に「Machine booted and ready!」が表示されていれば、vagrantの仮想環境の起動確認完了です。
ubuntuの日本語化
Vagrant仮想環境が起動した状態から以下を入力していきます。
qiita.rb$ vagrant ssh //ubuntuにssh接続する $ sudo locale-gen ja_JP.UTF-8 //日本語環境を作成する $ echo export LANG=ja_JP.UTF-8 >> ~/.profile //起動時に日本語環境で起動する $ source ~/.profile //設定内容を適用する $ sudo timedatectl set-timezone Asia/Tokyo //日本標準時に設定する $ exit //ubuntuを終了する $ vagrant halt //vagrant、仮想環境を終了する終わりに
開始方法と終了方法を忘れてはいけない。
vagrantを立ち上げてubuntuにssh接続する。qiita.rb$ vagrant up $ vagrant sshubuntuのssh接続を切って、vagrantを終了する。
qiita.rb$ exit $ vagrant haltこれがわかればなんとかなる。
- 投稿日:2020-03-15T00:20:37+09:00
Mac 特定のウインドウのキャプチャを撮影する方法
- 投稿日:2020-03-15T00:18:22+09:00
Unity2019 + mac + VisualStudioCodeで、補完が効かなくなった時の対処メモ
環境
- mac OS 10.15.1
- Unity2019 2.12f1 (.Net4)
- Visual Studio Code 1.43.0
Visual Studio Codeを使っていて、補完が効かなくなり、
下記エラーに遭遇、以前に設定した解決したけど、忘れてしまったので自分用に再度メモ。OmniSharp.MSBuild.ProjectLoader The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpackshttps://aka.ms/msbuild/developerpacks
エラーを参考にこのリンクをたどっていってもmac用のそれらしいファイルが見当たらず、
windows用はあった、またVisualStudioならできるような情報もあったが、VSCodeのみで
完結したかったので参考になったので下記記事!https://qiita.com/kyasbal_1994/items/ecf19a3feb60a12a61f9
m(_ _)mありがたや手順メモ
1. まず下記extensionがVSCodeに入っている前提
2. ターミナルで、monoを入れておく。
$ brew install mono※状況のおおじて、最新版を入れておくといいかも→
brew upgrade mono
3. VSCodeのユーザー設定ファイルのsetting.jsonに下記monoの設定を記入
コマンドパレット(Cmd+Shift+P)で、「setting json」などで検索
setting.json{ 〜省略〜 "omnisharp.useGlobalMono": "always", "omnisharp.monoPath": "/usr/local/Cellar/mono/6.8.0.105" }※
/usr/local/Cellar/mono/6.8.0.105
は、monoインストール時のパスを入力するあとは、VSCode再起動で改善した!