タイムスタンプの格納と検索について
筋トレ応援団の筋トレ履歴データをPostgreSQLに格納するのですが、将来的には
グローバルで使われることを考慮してどのように
格納すればいいのか割と真面目に考えたつもり。
DBはタイムゾーン付きのtimestampを使用する
CREATE TABLEでtimestamp with time zoneタイプで定義した。
あとは、insert文でcurrent_timestampを使うだけ。日本時間で保存されることになる。
今月の筋トレ回数を求める検索
クライアントのタイムゾーンで検索してあげればいい。将来的にはAsia/Tokyoを可変にすればいいのではないか。
PostgreSQLにタイムゾーンの変換を委譲しちゃう感じ。
var moment = require('moment-timezone');
var today = new moment().tz('Asia/Tokyo');
var firstDay = new moment({year : today.year(), month: today.month(), day: 1}).tz('Asia/Tokyo').format();
var lastDay = new moment({year : today.year(), month: today.month()+ 1, day: 0}).tz('Asia/Tokyo').format();
postgresql リモートアクセス
MP3ファイルが1秒ぴったりにならない
sox input.mp3 output.mp3 trim 0 1 soxi output.mp3
どうやっても1.04秒のファイルしかできない。おかしいと思っていたら。。
http://www.manbou2ndclass.net/2016/02/mp3.html
どうやら、そういうものらしい。
wavで出力すると
sox input.mp3 output.wav trim 0 1 soxi output.wav
1秒ぴったりできた!
スマートスピーカーアプリのBGMをなんとかしたい
アプリのBGMをなんとかしたい。
クラウドワークスに発注したけれど、結構お金がかかりそうな予感。五千円以上。
クオリティ高いものはできるかもだけど。
ロイヤリティフリーというキーワードで探していけば良さそうだ。
drums.kirakira-soundeffect.com
Promise,async,awaitどうやって使うのが良いか
awaitはasync functionの中で使うもの
また、async functionの中でawaitを使うと、処理終了までブロックされる。
ただし、async functionを呼び出し元のメインの処理は待つことはない。
以下のソースの中のasyncCall();の後ろにconsole.log("hoge")を書くとすぐ実行されることがわかると思います。
awaitの返却値はresolveした結果
awaitでpromiseでresolveした結果を受け取れるので、次の処理で利用できる
async functionはPromiseを返す
暗黙的にasync function はpromiseを返す。
結局どう書けばいいの?
非同期の処理(callback処理)はPromiseでラップしまくる。
async functionの中でawaitを使いながら同期処理的に書いていく。
SoxでMP3を結合したい
qiita.com
github.com
Sox error while loading shared libraries: libsox.so.2: cannot open shared object file: No such fileが出たら
http://www.voidcn.com/article/p-omxljvov-gr.html