テクめも

プログラミング関連のちょっとしたTipsなどを書いています。

Pythonのコーディングチェックにflake8を使う

flake8とは flake8は以下の3つのライブラリのラッパーです。 Pyflakes pycodestyle (pep8) *1 Ned Batchelder’s McCabe script インストール $ pip install flake8 使い方 $ flake8 main.py ファイルだけでなくフォルダを指定することもできます。 $ flake8 …

Visual Studio Keyboard shortcuts for macOS

https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf

ファイルの文字コードをCLIで変換

CLI

文字コードを変換できるnkfコマンドを紹介ます。 インストール # mac $ brew install nkf # ubuntu $ sudo apt install nkf # centos $ sudo yum install nkf 使い方 文字コードを確認 $ nkf -g sample.txt UTF-8 fileコマンドでも確認することができます。 …

.gitignoreを自動生成する

Git

giboを使うと.gitignoreを自動生成することができます。 インストール brew install gibo 使い方 gibo dumpで言語ごとや環境ごとの.gitignoreを生成できます。 $ gibo dump python > .gitignore 複数同時に指定もできます。 $ gibo dump python macos > .git…

zplugのローカルプラグインを反映させるためにはキャッシュを削除する

zplugのローカルプラグインを書いているとき、変更しても反映されずつまりました。。 解決策 zplugでは、一度ロードしたプラグインは$HOME/.zplug/cache*1にキャッシュとして保存され、次回ロードするときはキャッシュからロードされます。そのため、プラグ…

anyenv v1 のインストール/アップグレード

CLI

anyenv は pyenvやrbenvなどをまとめて管理できるツールです。 インストール $ git clone https://github.com/anyenv/anyenv ~/.anyenv $ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.your_profile $ echo 'eval "$(anyenv init -)"' >> ~/.your_pr…

Google Search Consoleにはてなブログのサイトマップを登録する

Google Search Consoleにアクセスして、左のメニューの「サイトマップ」からsitemap.xmlを入力するだけです。 参考 【はてなブログ】サイトマップの作り方と登録方法!サーチコンソール後に! - tkd放浪記

KerasでLSTMが使えないときの対処法

KerasでLSTMを使おうとしたとき以下のようなエラーが発生しました。 TypeError: while_loop() got an unexpected keyword argument 'maximum_iterations' 調べてみると、バージョンがよくなかったみたいで、kerasのバージョンを変更するとうまく動きました。…

RedisにSSLで接続する

AWSのElasticCacheでRedisを使っていて、暗号化をONしたらPythonから接続できなかったときのメモです。 import redis redis_conn = redis.from_url('redis://<Redisのホスト名>:6379') redis_conn.ping() とすると、 Error while reading from socket: (104, 'Connection rese</redisのホスト名>…

SSHポートフォワーディングを使ってサーバ上のJupyterにローカルからアクセスする

サーバにあるJupyterを使いたいとき、ポートを開けたり、ファイアウォールの設定をしたりしないといけない場合がありますが、SSHポートフォワーディングを使うと手軽にアクセスすることができます。 ローカル端末からSSH ssh -L 8888:127.0.0.1:8888 <サーバ…

AWSのElasticCacheでRedisを使う

Redisクラスターの作成 コンソールかCLIで作成します。 # CLIの場合 $ aws elasticache create-cache-cluster \ --cache-cluster-id my-cluster \ --engine redis その他のオプションについては、こちらを参照ください。 作成したRedisのエンドポイントの情…

Noneを含むリストをNumPyに変換するときに注意すること

PythonでリストをNumPyに変換するとき、Noneが含まれる場合は型について少し注意が必要です。 型を指定しない 変換するときに、dtypeを指定しない場合はobjectになってしまいます。 >>> np.array([1, 2, None]) array([1, 2, None], dtype=object) intを指定…

macにnmapをインストールする

普通にインストールするとエラーが発生しました。 $ brew install nmap ... Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /usr/local Could not symlink share/man/de/man1/nmap.1 /usr/local/…

Elastic Beanstalkで生成されるS3バケットを削除する方法

AWSのElastic Beanstalkでは、ソースコードの保管にS3を使っていますが、このS3のバケットを削除しようとしてもエラーが発生して削除できません。 S3の設定で、アクセス権限のバケットポリシーにあるEffectをDenyからAllowに変更すると削除することができま…

Google Cloud SDKのCLIを使う

インストール # macの場合のみ $ brew cask install google-cloud-sdk ... ==> Linking Binary 'bq' to '/usr/local/bin/bq'. ==> Linking Binary 'docker-credential-gcloud' to '/usr/local/bin/docker-credenti ==> Linking Binary 'gcloud' to '/usr/loc…

macOSでリモートサーバのディレクトリをマウントする

リモートサーバのディレクトリをマウントできるsshfsについて紹介します。 インストール $ brew install sshfs sshfs: OsxfuseRequirement unsatisfied! You can install with Homebrew Cask: brew cask install osxfuse You can download from: https://osx…

Cucumberではじめるエンドツーエンドのテスト

Cucumberのインストール方法とテスト実行までのメモです。 インストール Gemfile に以下を追記して、インストールします。 gem 'rspec-rails' gem 'cucumber-rails', require: false gem 'database_cleaner' $ bundle install 次に、Cucumberのファイルを生…

1発でmatplotlibを日本語対応させる

matplotlibでグラフタイトルに日本語を使うと文字化けしています。 そこで、日本語対応させる方法がいくつかありますが、以下の方法が最も手軽です。 pipでjapanize-matplotlibをインストールして、 $ pip install japanize-matplotlib importするだけです。…

CLIでスピードテストを行う

CLI

リモートホストの速度測定するには、Python製のspeedtest-cliが便利です。 インストール $ pip install speedtest-cli OR $ wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py $ chmod +x speedtest-cli 実…

flake8で1行単位で警告を無視する

flake8で構文チェックしていると、一時的な書いているコードや特殊なライブラリなどで、1行単位で警告を無視したいとときがあるかと思います。 通常、 example = lambda: 'example' と書くと、以下のような警告が発生します。 E731 do not assign a lambda e…

macのターミナルでコピペ

macOSの場合、ターミナルでコピペができます。 クリックボートにコピー $ echo 'hoge' | pbcopy クリックボートからペースト $ pbpaste hoge pbpasteはCtl+Vを使えば良いのであんまり出番はありませんが、pbcopyはそれなりに使います。 個人的に一番よく使う…

PyTorchでGlobal Max PoolingとGlobal Average Poolingを使う方法

はじめに Global Max PoolingやGlobal Average Poolingを使いたいとき、KerasではGlobalAveragePooling1Dなどを用いると簡単に使うことができますが、PyTorchではそのままの関数はありません。 そこで、PyTorchでは、Global Max PoolingやGlobal Average Poo…

パスワードなしでsudoする

username ALL=(ALL) NOPASSWD:ALL を /etc/sudoers.d/ 配下のファイルに書き込めば良い。 echo "$(logname) ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$(logname) とすると楽。

Netlifyで独自ドメインのリダイレクトを行う方法

Netlifyで独自ドメインの設定した後に、Netlifyが用意するサブドメインから独自ドメインへリダイレクトをしたいケースがあるかと思います。 例えば リダイレクト元: https://hogehoge.netlify.com リダイレクト先: https://hogehoge.com のようなリダイレク…

ターミナルの移動ショートカット

CLI

先頭へ移動 Ctrl + a 末尾へ移動 Ctrl + e 単語の先頭へ移動(削除される) Ctrl + w 先頭へ移動(削除される) Ctrl + u

MacのPython仮想環境でmatplotlibを使うときのエラーを解決するワンライナー

事象 python -m venv .vencとかで作った仮想環境でMatplotlibを使おうとするとエラーが発生する RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a fra…

PythonでOpenCVのビルド情報を取得する

python -c 'import cv2; print(cv2.getBuildInformation())' opencv-pythonでインストールできるOpenCVの場合 General configuration for OpenCV 3.4.4 ===================================== Version control: 3.4.4 Platform: Timestamp: 2018-11-27T15:2…

matplotlibの_tkinterのエラーを解決する

matplotlib で描画をしようとしたときに以下のようなエラーが発生しました。 Traceback (most recent call last): ... File "/home/username/.pyenv/versions/3.6.2/lib/python3.6/tkinter/__init__.py", line 36, in <module> import _tkinter # If this fails your</module>…

TensorflowのImportErrorを解決する

GPU環境でTensorflowを実行したとき ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory というエラーが発生した場合、CUDAのライブラリのパスが通っていないことに原因があります。 export LD_LIBRARY_PATH=/usr/l…

macOSでPythonをインストールしようとしたときのエラーを解決する

pyenvでpythonをインストールしようとすると以下のようなエラーが発生しました。 (原因かはわかりませんが、macOSのバージョンを10.13に上げてから発生しました。) $ pyenv install 3.6.4 python-build: use openssl from homebrew python-build: use read…