Streamlitを初めて使ってみました。簡単にUIを記述できて面白いですね。
ドキュメントを呼んで色々試していたのですが、一際気になったのがキャッシュでした。
cache_data
やcache_resource
デコレータを使うことで、対象のメソッドの出力(st.write
等も含む)が、引数ごとにキャッシュされるのです。
ここでふと疑問に思ったのが「これって本当にサーバサイドのキャッシュなの?」という点でした。
Streamlitを初めて使ってみました。簡単にUIを記述できて面白いですね。
ドキュメントを呼んで色々試していたのですが、一際気になったのがキャッシュでした。
cache_data
やcache_resource
デコレータを使うことで、対象のメソッドの出力(st.write
等も含む)が、引数ごとにキャッシュされるのです。
ここでふと疑問に思ったのが「これって本当にサーバサイドのキャッシュなの?」という点でした。
scp
コマンドで特定のディレクトリ配下の全ファイルをコピーするために、ローカルのGit Bashでは下記コマンドを使っていた。
scp -r ./path/. user@host:/path
パスの末尾にドット(.)を指定することで、隠しファイル(ドット始まりのファイル)を含めた全ファイルをコピーしてくれる。
(./path/*
では隠しファイルは転送対象としてくれない。)
このコマンドをGitHub Acionsで実行しようとしていたのだが、下記エラーが発生した。
scp: error: unexpected filename: .
どうやらドット指定の方式には脆弱性があるようで、バージョンによってはエラーとして返されるようだ。詳細は下記を参考に。
こちらの方が提案しているような正規表現を試す(未検証)か、rsync
コマンドに切り替えるのが無難だと思われる。
rsync
だと隠しファイル周りの煩わしさはなく、./path/
と指定すれば対応できる。
というわけで、rsync
コマンドへ移行することにした。
rsync
で同様の処理scpを使っていたので、当たり前だがssh接続。私がGitHub Actionsのワークフローで使ったコマンドは下記の形式。
rsync -avz -e "ssh -o StrictHostKeyChecking=no -i private_key" ./path/ $USER@$HOST:/path
元々さくらレンタルサーバ(VPSではない)を契約していたが、特段重い処理を走らせているわけでもなく、かつデータベースにも余裕があり有効活用の道を模索していた。 そんな折、とある外部APIから定期的にデータを取得してビジュアライズしたい欲求に駆られた。
であるならば、せっかくだし使ったことの無いフレームワークやライブラリも触っておきたい。ということで、フロントエンドにはNext.js+Reactを採用。 どちらも初めてで公式ドキュメントとにらめっこ状態だったが、ある程度の理解まで到達でき今非常に気分がいい!
今回構成を考える上で検討した他のライブラリ等も含め、いろいろとメモしておこう。
続きを読む昔bootstrapに触れた経験のよしみでreact-bootstrap
をNext.jsのプロジェクトで使っています。
ところが範囲指定可能なスライダーはbootstrapには存在せず、もちろんreact-bootstrap
にも存在しません。
そこで、このコンポーネントについては、
react-componentグループ配下にあるrc-slider
を使って対応することにしました。
公式Tiwtchのチャット欄等では表示できているし、7tvやBTTVのグローバルエモートはオーバレイでも表示されている。\ しかし、自分が追加したエモートはただの文字としてオーバレイに表示されてしまう。
そんな場合、下記コマンドをチャット欄で打つことで更新できた。
おそらくブラウザソースのリロードも必要。
!emotes update