Month: March 2020

hubotをslackと連携させて動かす

hubotをslackと連携させて動かす 準備 nodejsの環境構築は以下を参照ください nodenv環境の構築(Mac) Slack tokenの取得は以下から https://api.slack.com/apps インストール 「yo」「generator-hubot」という必要なモジュールをインストール 色々出力されるが、「Everything looks all right!」と最終的に表示されればOK インストールしたモジュールを使えるようにシェルの再起動をしておく ※何も表示されない Bot作成 yoを使ってBotを作成する 「May we anonymously report usage statistics to improve the tool over time?」はとりあえず「No」と回答 「Owner」「Bot name」「Description」は適当に、とりあえずデフォルトで回答 「Bot adapter」は「Slack」を指定 これでhubotを使えるようになったので動かしてみる 「bin/hubot」で実行し、「Enter」キーを押すと「【Bot name】>」とプロンプトに入るので 「【Bot name】 ping」と打ってみて「PONG」と返って来れば成功 プロンプトを抜けるには「exit」 Slack連携 作られたhubotをslackと連携する 「HUBOT_SLACK_TOKEN=【slackのtoken】 ./bin/hubot –adapter slack」で実行すれば連携できる slack側で、botに「ping」と話しかけて「PONG」と返って来れば成功 (任意)いちいちトークンを指定して実行するのが面倒なのでスクリプト化しておく 次からはこのスクリプトを実行するだけでOK Botの開発 ping PONGだけしててもしょうがないので(他にもtimeなどデフォルトの機能はあるが) 何か簡単なスクリプトを書いてみる ※開発の仕方は公式のGithubを読むのが一番良さそう https://github.com/hubotio/hubot/blob/master/docs/scripting.md …

hubotをslackと連携させて動かす Read More »

nodenv環境の構築(Mac)

nodejsでpyenvのような環境が構築できないかとググったところ、nodenvというものを発見 nodenvの環境をMacに構築する nodenvをインストール ※nodeenvとは別物なので注意 nodenvをインストールしたら、インストール可能なnodejsのバージョンを確認 どれが良いか分からないが、「12.12.0」をインストール global環境(デフォルト)として12.12.0を設定 (個別に設定する場合はlocalに設定する) 特に何も表示されなければ設定されている パスを通す 自分はzshellを使っているので、「.zshrc」に記載をしている 「.zshrc」に記載した設定の反映のためにシェルを再起動 ※特に何も表示されなければOK nodejsが使えることを確認 以上。 今度、anyenvに対応させたいな。

【備忘】sympyのtips(グラフを合成する)

sympyのtips備忘録 グラフを合成するやり方はあまりググっても出てこなかったのでメモ 参考:微分と積分ってなに? (概念理解とsympy) 参考:sympyを使って微分積分した結果をグラフにplotする グラフを合成するには、「extend」を使う 以下は例 元の線だけのグラフに 各三角を合成すると(上段)、下段のようになる

微分と積分ってなに? (概念理解とsympy)

微分と積分ってなに? 文系の自分は、高校の途中でアメリカをフラフラしていたこともあり、 微積分は知識ゼロだったため、社会人になってから改めて始めから勉強 細かい公式などは、ググるか、python先生に計算をお任せできるけど、 文系人間には概念の理解が難しかったのでメモ 概念 「微分」は「傾き」、「積分」は「面積」を出すこと 例えば、 「距離」を「時間(一定の変化率)」で微分すると「速さ」が出る 「速さ」を「時間(一定の変化率)」で積分すると「距離」が出る 微分 例えば、距離を表しているグラフ「x **2」を「微分」する ※ 以下グラフ「function」青線 ※「 **2」は二乗の意味 接線を引いてみると、時間が大きくなるほど、傾きが大きくなることがわかる ※ 以下グラフ「function」水色線 つまり、微分すると右(「Differential calculus」)のようなグラフとなり、 どんどん傾き(スピード)を大きくなっていることがわかる ※ 以下グラフ「Differential calculus」 参考まで、グラフ表示のpythonコードは以下 ※実行方法など詳細は、sympyを使って微分積分した結果をグラフにplotする を参照ください 積分 次は積分 例えば、速さを表しているグラフ「2*x」を「積分」する ※ 以下グラフ「function」青線 xが大きくなるにつれて、「y=0」との面積は大きくなることがわかる ※ x=10までの面積(濃い青エリア) ※ x=20までの面積(濃い青エリア+水色エリア) ※ x=30までの面積(濃い青エリア+水色エリア+薄い水色エリア) つまり、積分すると右(「integral」)のようなグラフとなり、 どんどん面積(距離)を大きくなっていることがわかる ※ 以下グラフ「integral」 参考まで、グラフ表示のpythonコードは以下 ※実行方法など詳細は、sympyを使って微分積分した結果をグラフにplotする を参照ください まとめ 上の例のように、単純なグラフなら微分積分を使わずに傾きや面積が出せるかもしれないが 以下のようなぐにゃぐにゃ曲がったグラフだと、計算が大変なので微分積分を使うことになる 基本的な概念はここまで

sympyを使って微分積分した結果をグラフにplotする

sympyを使って微分積分した結果をグラフにplotする 自分が引っかかったところは、numpyとmatplotlibを直接?使わないというところ sympyで計算して、sympyで描写する 準備 python3.5.0 on Mac環境で進める まず、必要モジュールをインストール sympyだけだと、実行時に「ValueError: The TextBackend supports only one graph per Plot.」というエラーが出る インストールされたモジュールは以下 このまま実行すると、以下のようなエラーが出てしまう 「matplotlibrc」ファイルの中身を修正することで対応する 参考:Pythonでmatplotlibをimportするとエラーが出る場合の対処策(Mac) 「python -c “import matplotlib;print(matplotlib.matplotlib_fname())”」で表示されたファイルの中身を修正する 「backend: macosx」部分を「backend: Tkagg」に書き換える   実行 「x **3 + 200」を微分するコードは以下 「diff」関数で微分ができる 「f_org」が微分前で、「f_diff」が微分後 微分後の線は赤に指定する ※「**3」は3乗という意味 いざ実行 「x**2 / 3」を積分するコードは以下 「integrate」関数で積分ができる 「f_org」が積分前で、「f_inte」が積分後 積分後の線は赤に指定する いざ実行 以上。 参考: 【Python入門】Sympy・matplotlibで微分積分を計算してみよう [SymPy] Plotting Module