vim-deviconsについて
いろんな人がパッチを当ててマウントをとってるけどNerd Font 適用済みをそのまま使用すればいいと思う。
私はwindowsでは以下を
フォントを変えると引っ越しをしたような気になって気分が良いだけど、
開発効率としては70点くらい出てれば特に問題ないと思う。
パッチを当てることもできるのはわかるし、やりたい人はやったほうがいいと思う。
ただ、自分が調べてるときにそう言った記事がなくて、みんな一生懸命fontforgeしてたので書いとく。
いろんな人のいろんな意見があるんでそれぞれなんですけど、たまに思うんですよね。
Vscode使っててマウスで全部コピペしてる人少ないんじゃないかなって。
結果キーボードである程度できるプラグインを入れているんじゃないかと。
でも、発言は自由なので「俺はマウスの操作がものすごい早い」とかいうと思うんです。
僕も最善手を探したいな、と思っています。
結論、最新の最善手なんてないんで好きなのでいいんでしょうけどね。
ただ、結局VscodeはWindowsの操作基準なので+VImするとコマンド被ります。
そのあたりが気になってしまいます。
画像アップロードに対する考察2
というわけで、前回の記事に従いエラーがでました。
ずいぶん前に記事を書いたと思ったら書いてなかったので、もう流れてしまいましたが。 結果タイムアウトエラーです。
この場合単純に思いつくのは以下です。
- タイムアウトを伸ばす。
- リトライ
安全なシステムにはリトライのが正しいと思います。 鉄道業界で働いた記憶もありますが内部のプロトコルを作ってると 最初からやってくれたほうがいいです。
だけど今回俺は作ってない、知るかこの野郎。 というわけでタイムアウトの時間をconfigで長くして終わりです。 github.com
結果、どうにかなりました。
私もオープンソースに貢献したいなと最近思いますが(金) 自分の場合少し大きめのプロジェクトを自前で立ち上げる必要がある気がします。 正直、表層だけだと既存の機能で事足りてしまうのです。
自動ツイートによる、画像アップロードに関する考察
といった感じでツイートされない日々が続いた。
本プロジェクトは以下で管理されているが、簡単に言うと留守中にどんな感じか見たいのである。 github.com
本来別アカウントでも作ればいいのだが、そのままである。 ついでに言うとわざわざTwitterなのは自分がそれ以外あんま見ないからだ。
初動捜査
で、cron動作時にログを出力しているが、これには特に問題が表示されていない。 画像がないということもない。 並列処理をしてるので、動作順番も確認したがやはり問題ない。 となったら、まずはツイートしている当該モジュールの中に行って見に行くしかない。
最終的にHTTPはGETやらPOSTやらの話になる。 その辺は弱いので調査に時間がかかる。面倒だと思いながらいざ突入。 と思ったらまずは自分のモジュールでした。
模倣犯
中見て、今なら「作る必要なんかないのでは?」となりそうな内容だった とりあえずログを出力する方向でFA
media, _:= ta.api.UploadMedia(str)
media, err := ta.api.UploadMedia(str) if err != nil{ fmt.Println(err) }
あとがき
動くからいいや、と軽いチェックでコピペばっかしてるとエラー出力を見落とす。
まぁ、今回のも頻度が低いなら対策もしないんですけどね。
ついでにgoを書いてると小機能をたくさん作るということをしたくなってくる。 職場ではC#なのですが、たまにgoっぽいなと思ったりする。
そしてC#の本は相変わらず一冊も持っていない。
敗戦。
本を書きました。
と行っても書いたのはけっこう前です。 お金が欲しいのです。
と言うこともあるのですが。
システムを作る仕事をして、そんなすごい組織なんてそんななくて 技術書に書かれていることと、現実の乖離にみんな悩んでるんじゃないかな? と思ったので、その中のケースの一つとして書きました。
もしかしたらストレス解消かもしれません。 文章自体はけっこう前に書いたので、もしかしたらヤバいことが書いてるかもしれませんが一旦放置です。
後、何章まで公開とか見つけてみようかと思ったのですが、 見つからなかったのでやめました。
もっとメジャーになったら、また本を書くときに誰かが教えてくれることでしょう。
radikoを録音する
当方ラジオが好きである。したがって録音をしようというハラである。
調査
ともあれ調査するとSOKUJIスクリプトを発見する。
なので、まずはパクる。
ストリーミングだから、ダウンロードはできない。 ラズパイは転がってるので、それを引っ張ってこよう。 ない人はスイッチサイエンス辺りで買ってくる。
なお、ヨドバシにも割高だけどある。
問題点
本記事にそって進めると、gdriveが2020/9現在使えないという問題にぶち当たる。 原因はGoogle API キーの確認申請がされてないことにある。 記事を探したり、公式のドキュメントを見てみるが設定が見つからない。
自動で上げなくてもいいかと思っていたが、 google driveにアップロードできると大きなメリットがある。
iPhoneでバックグラウンド再生できる。
という素晴らしい付加価値が付く。 これは是が非でも。
代替
というわけで、skickaというのを使用する。
認証までは以下を参照すれば可能。
簡単に言うと.skicka.configに以下を設定すれば良い。
- clientid
- clientsecret
スクリプトの書き換え
最後のtmpファイルを削除する箇所を以下のように切り替える。
if [ $? = 0 ]; then item="${outdir}/${PREFIX}_${date}.mp3" /home/pi/go/bin/skicka upload "$item" rec/ rm -f "/tmp/${channel}_${date}" fi
skickaに対してフルパスを指定しているのは、cronで実行しているときは.bashrcを読まないからだそうです。 これだけで何日も crontabと睨めっこしました。
ちなみに↑の件については以下のようにする事で標準出力やらエラーやらを全部出した
5 * * * * command >> /var/log/ntpdate.log 2>&1
2>&1ね。
crontabの動作をsystemdにて行う。
crontabで設定をすればいいじゃない、ということでやっていなかったのだが 必要に駆られて実施しました。
結果的に以降のメリットは
- crontab -r の心配がない
デメリットは
- 1行でさくっと書けない
だと思う。systemdをもっと深く知ると色々できそうな設定があったが crontabの置き換えという意味だとそんなもん。
前提条件
以下の環境をVagrantで作成して検証している。
- Ubuntu 18.04.5 LTS (Bionic Beaver)
作成手順
まずは対象のディレクトリに移動する
$ cd /etc/systemd/system
以下の2ファイルを作成する。
- hello.service
- hello.timer
この時、実行権限からsudoが必要である
$ sudo vi hello.service
hello.serviceの中身
[Unit] Description=hello service [Service] Type=oneshot ExecStart=/home/vagrant/hello.sh
名称 | 内容 |
---|---|
Description | 本serviceファイルの説明 |
Type | cronのかわりの場合はoneshotとして使用でよい。 |
ExecStart | 実行するコマンドを指定。この場合はユーザ直下のhello.shを叩く事になる |
hello.timerの中身
[Unit] Description=hello timer [Timer] OnCalendar=*:0/2 [Install] WantedBy=timers.target
名称 | 内容 |
---|---|
Description | 本timerファイルの説明 |
OnCalendar | 実行するスケジュールを指定している。この場合2分毎を指定している |
WantedBy | Cronの代わりに使うときはこう、くらいの情報しかなかった。 |
実行シェルの作成
/home/vagrant/hello.shを作成してこのserviceファイルからこのシェルを叩く
#!/bin/bash mkdir /home/vagrant/hoge
タイマーの有効化
自動起動を有効化して、再起動する。
$ sudo systemctl enable hello.timer
$ sudo reboot
有効化すると以下のようにhello.timerが起動して次の実行日時が登録されている。