Gmailのサーバーを使ってメールを送る為にSMTP Relayで設定したが送れない時

具体的に言うと、/var/log/maillog に以下のような警告とエラーが出てる時

warning: SASL authentication failure: No worthy mechs found
SASL authentication failed; cannot authenticate to server smtp.gmail.com[108.177.125.109]: no mechanism available

他の設定は問題ないのにこれが出て送れない場合、

yum install cyrus-sasl-plain

で送れるようになることが多いはず

HerokuでClearDBを使ってMySQLを使っている時、MySQLのデータを見たりする

最近「ちょっとしたものはHerokuが一番楽でお金もかからなくて良くないか?」と思い、Herokuを使っています。
本当に楽なのがいいですね。
で、PHPの時はPostgreSQLが普通らしいのですが、今までMySQLだったのでMySQLを使ってみた。
その後、「はて、バックアップやら直接見る時はどうするんだろう」と思ったのです。

結論から言うと、MySQLのクライアントから普通にコマンドラインで接続できるようで。

 mysql -h {host} {db} -u {user} -p

設定情報はいつもの通り、 heroku configでみれます。
なんか直接繋げられちゃうのは少し気持ち悪いですね。
PostgreSQLにしようかなぁ…

PyCharm(IntelliJ)でMarkdownの時だけ保存時の自動空白削除を無効にする

地味なのだけど、README.mdとか書いていてMarkdownを保存した時に勝手に空白が削除され、改行が反映されない……
というのが面倒だった。

解決策

  1. PluginでEditorConfigが有効にされている状態で、プロジェクトルートに .editorconfig というファイルを作成
  2. その中に以下の設定を追加
[*.{md,markdown}]
trim_trailing_whitespace = false

これで無事にそのまま保存されるように
これは良くある話だと思うので、デフォルトでやって欲しい感じしますね。。。

AWS DynamoDBのTTLは意外とアバウトみたい

TTL = Time To Live
pingとかのTTLと同じで、いきている時間。
これを設定したところにUTCで数値を入れると、その時刻になった時に自動的に消える。
なので一時的なデータに最適…なのだが、正確にTTLの設定時刻に消えるものではないみたいだ……
試してみたところ、その時刻になっても即座には消えず、割と時間差がある。
とは言え、流石に1時間単位とかで遅れることはなさそうだが、10分くらいは遅れても普通ぽい。
厳密な時間管理はしない一時的なものにした方が良さそうですね。

MacでAWS CLIのインストールに失敗する時

sixというやつの問題らしい

sudo pip install awscli --ignore-installed six

としておけばOK

M5Stackが届いたよ

一番ベーシックなCoreを書いました。
公式サイトから購入。
PayPalで支払います。
発送は早かった。
しかし届くまで少し時間はかかります。 追跡は日本郵便から可能。

電源を入れ、ファームを焼き、M5Cloudを使ってハローワールド!
次にサンプルが色々あるので、デジタル時計を今は実行させています。
Getting Startedのドキュメントが日本語になっていたり、今まさに勢いがあるのを感じますね。

github.com

今後はちょっとしたものを作れればいいなぁと考えています。

AWS Lambda(Python)でpipで入れたものを使う

今時の開発で外部のモジュール使わないことはまず無いわけで…
結論からいって、プロジェクトのルートにインストールしてzipで固めてアップロードすればOK。
例えばBeautifulSoup 4を入れる場合は

pip install -t . bs4

-tオプションでそのディレクトリに入れる。
その後、そのディレクトリの中身をzipで固める。
そうすれば問題なく実行が可能。