閑話:猫のご飯
猫のご飯を変えてみた。
ニュートロ ナチュラルチョイス
成分表示を見るに、生白身魚が一番多く含まれているタイプの総合栄養食。
後述するサイトで多数のキャットフードを獣医の方が分析しており、その中でも上位なのでよほど大丈夫だろう。
軽く調べたが他サイトでも特に悪い評判は見なかった。
今までロイヤルカナンだったのだが、知人から「おすすめの猫の餌ってある?」と聞かれたのを切っ掛けに調べなおしてみたところ、 そこまで優れているというわけでもなさそうだったので変えてみた次第。
比較
試しにニュートロとロイヤルカナンを並べて置いてみたところ、ニュートロに食いついた。 動画は録画ボタンが押せておらず撮れなかった。
参考にさせて頂いた記事
メカニカルキーボードを使い始めた
購入したもの
- METIS RK61 Black
英字配列の61サイズなので最小限のキーだけで、 Insert
あたりは Fn あたりと組み合わせて入力するタイプですね。
あと青軸なのでめちゃくちゃカチカチいいます(クリッキーってやつ?)。
タイプ感は軽やかなので青軸でも今のところ疲れません。
ざっくり良いところと気になるところを書きます。
良いところ
- タイプ感が軽い
- Bluetooth 3台ペアリング可能
- Type-Cで有線接続も可能
- キー操作で接続先を切り替えられる
- 値段が安い
HHKB買うか迷っていたので尚更
気になるところ
- 操作が説明書と違うところがある
- ペアリングは説明書ではまずFn + P を長押しでペアリングモードに入ると書いてあるのに、そうならない。
結局Fn + Q, W, E 長押しでペアリングモードになった。 - 有線・無線モード切替は説明書ではFn + Tab と書いてあるが、裏のスイッチの切り替えをしないといけない模様(OFF が無線)。
- ペアリングは説明書ではまずFn + P を長押しでペアリングモードに入ると書いてあるのに、そうならない。
- 電池残量が判らない
急にAltだけ効かなくなり、いろいろ調べた末直らなかったのであきらめて充電して寝たら翌朝には直っていた。バッテリーが問題?
トータルでの満足度は高いです。
Hangouts Chatの雨通知botを爆速で作る
:warning:この記事は2019/12/06 にQiita に投稿したものです
@murs313 さんのSlackの雨通知botを爆速で作る【メッ●●】を読み、 早速同じ物を作ろうと思いましたが、弊社はSlackが使えませんでした。
というわけでHangouts Chat版雨通知botを作ってみました。 GASだと真似しすぎで作っててつまらないのでPythonとcronで実装してみました。
※ なおHangouts ChatはG Suiteでのみ使用でき、個人のGoogleアカウントでは現在使用できません。
つくったもの
テストで送信してみたものがこちら。 実際は時間を合わせて17:00に送信されるように設定しています。 Hangouts ChatはMarkdownっぽい記法が使えるのが良いですね。 (画像では強調表示がうまいこといってませんが……)
つかったもの
- CentOS 8
cronで定期実行します。 - Python 3.6.8
- Hangouts Chat の incoming webhook
- livedoorお天気API
Hangouts ChatへのPOST
Hangouts Chat は incoming webhook が使用できます。 @iitenkida7 さんの [超簡単]Hangouts Chat の incoming webhooks を使ってAPIから簡単にメッセージを投稿するを参考にさせて頂きました。
Pythonのソースコード
import requests weather_url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=130010' # Tokyo resp = requests.get(weather_url) data = resp.json() # 一部ぼかしていますがコピペでおk webhook_url = "https://chat.googleapis.com/v1/spaces/HOGEHOGE/messages?key={YOUR_KEY}&token={YOUR_TOKEN}" tomorrow_weather = data['forecasts'][1] telop = tomorrow_weather['telop'] max_temp = tomorrow_weather['temperature']['max'] min_temp = tomorrow_weather['temperature']['min'] image = tomorrow_weather['image']['url'] text = '' text += '明日の天気は' text += '*' + telop + '*' text += 'です。\n' # なぜかmaxとminが時々取得できない if max_temp is not None: text += '最高気温' text += max_temp.get('celsius') text += '℃' if min_temp is not None: text += '/最低気温' text += min_temp.get('celsius') text += '℃\n' text += image content = {"text": text} response = requests.post(webhook_url, json=content)
cronの設定
cronの設定はこちらが参考になると思います。
cronの設定を行うにはcrontab -e
を叩きましょう。
$ crontab -e
するとVimで設定ファイルが開くので、実行する時間と実行するコマンドを入力しましょう。 今回はホームディレクトリ直下に置いたという設定です。
0 17 * * * python3 ~/weather.py
ファイルを保存してVimを閉じた時にcrontab: installing new crontab
と表示されれば設定完了です。
動作確認する場合は、再度crontab -e
を開き、
*/1 * * * * python3 ~/weather.py
のように記述すれば1分おきにコマンドが実行されるようになります。
感想
参考にさせていただいたリンクがわかりやすかったので特に詰まることなく設定できました。
Unubo を使ってみた
:warning:この記事は2019/09/30 にQiita に投稿したものです
先日paiza開発日誌で紹介されていたUnuboを使って簡単なサービスをデプロイしてみました。
このUnubo、まだ日本では全然広まっていないようですが、完全無料で「1 GB RAM, 1 CPU, and 500 MB storage」のサーバーを無料で複数利用できてめっちゃ便利です。 今後有料版のプランもリリースされていくようです(公式Twitterより)。
とりあえず今回はサンプルのflaskアプリケーションをデプロイしてみましょう。
構成
Unubo Apps Python Python 3.7 Flask 0.12
手順
Unubo App の作成
RegionはとりあえずAsiaで。
Data storeのドキュメントに
Please not that databases can only be accessed from apps within the same region.
という記述があったので、DBも使うつもりの方はRegionを合わせましょう。
デプロイ設定
Repository
RepositoryのCONNECTからGitHubのデプロイ用リポジトリを選択しましょう。
Deployment settings(Commands)
アプリの起動用のコマンドを記述しましょう。 後述しますが、Unuboのサンプルコード通りとするなら
python app.py
gunicornを使用するなら
gunicorn app:app
としておきましょう。
Secrets
ここに環境変数をセットできます。 また、コード中で呼び出す際は os.environ.get を使用すればおkです。
SECRET = os.environ.get('SECRET') # 'SECRET_VALUE' SECRETS = json.loads(os.environ.get('SECRETS')) # ディクショナリで取得できる
Domains と Monitor は使用していませんm(._.)m
コード
公式のドキュメントが、flaskのサンプルコードを公開してくれています。
import os from flask import Flask, render_template app = Flask(__name__) # Bind to PORT if defined, otherwise default to 5000. port = int(os.environ.get('PORT', 5000)) @app.route('/') def hello(): # return 'Welcome to Python on Unubo Cloud' return render_template('index.html') if __name__ == '__main__': app.run(host='0.0.0.0', port=port)
Flask==0.12
コードをGitHubにpushして、Deployボタンを押下すれば{app名}.unubo.appにデプロイされます。
試しに作ったもの
IPAカウントダウン IPA試験までの時間をカウントダウンをしています。 デザイン手抜きです(UIKit使い方よくわかってない)。 また実装したAPIをGoogleAppsScriptから叩いて、IPAカウントダウンbotが7時台、12時台、19時台にカウントダウンツイートをするようにしています。
感想
デプロイでそんなにつまることもなかったしUIもすっきりしていて使いやすいです。 これを無料で使えるのは素晴らしい。 公式Twitterがエゴサしっかりしていて、めっちゃリプライくれるのも好感もてます。