yuralog

ひびのめもだよ!

Postgresでtimestampのformatを"current date+特定時間"にする

PostgreSQLでtimestamp型のクエリを作る際に、CURRENT_TIMESTAMPを利用したいが、timeだけ特定の時間に指定したい場合以下のように書く CURRENT_DATE + TIME '15:00:00' 履歴データを時間指定で無効化したいクエリを手作業で挿入したときのメモ INSERT INTO …

浮動小数点の比較(Go)

f := 0.1 f += 0.2 fmt.Println("f: ", f) // 0.30000000000000004 fmt.Println(f == 0.3) // false 丸め誤差の対策として、2つの浮動小数点は直接比較するのではなく、2つの数の差の絶対値を求めて十分に小さいことを確認する fmt.Println(math.Abs(f - 0…

go-playground/validator(validator.v9) で struct の tag情報を取得する

go-playground/validator を使ったときにバリデーション対象のstruct tag(下のコードだとjson) の名前を取得したいときは RegisterTagNameFunc を使う。 下コードのLine 22の name := strings.SplitN(fld.Tag.Get("json"), ",", 2)[0] のjsonを変更して別の…

使い捨てLinux環境でvimの最新版が使うためにソースからコンパイルしてインストールする

コンパイル&インストール後に /usr/bin/ にコピーしてしまうのが楽ちんだね(無心 git clone https://github.com/vim/vim.git /usr/local/src/ cd /usr/local/src/vim # make distclean make -j8 make install cp src/vim /usr/bin 環境 CentOS Linux release…

./aws/configの名前付きプロファイルの設定をミスった

./aws/config に複数のプロファイルを手書きする必要がある場面があって、↓のような記述ミスで --profile hogeしたときにエラーを発生させてしまった。 エラーの内容 NoRegionError: You must specify a region. 原因 ./aws/config の名前付きプロファイルの…

『Clean Code アジャイルソフトウェア達人の技』を読んだ

アスキードワンゴにより再出版された日本語訳 Clean Code を拝読した。 Clean Code アジャイルソフトウェア達人の技 (アスキードワンゴ)作者: RobertC.Martin,花井志生出版社/メーカー: ドワンゴ発売日: 2017/12/28メディア: Kindle版この商品…

vim の外部コマンド実行で sort や cut を実行する

visual-line-mode [V] に移行してコマンド実行したい部分を行選択 commandline[:]に移行して!sort や !cut -d" " -f3 などを追記する 参考 macosx - How to use cut command inside vim - Ask Ubuntu Vim Commands Cheat Sheet

pyenv を anyenv-update でアップデートして list を更新する

pyenv(anyenvでインストール) で新しいバージョンの python がインストール対象に入っていなかった。 そのため、anyenv-update というプラグインを利用して*env環境をアップデートして、インストール可能なpython のバージョンを更新した。 anyenv でインス…

GitHub のOAuth認証を使うために Client ID と Client Secret を生成する

※ 2018/06/01 実施時のもの Settings > Developer settings を開く OAuth Apps の Register a new OAuth application ボタンをクリックする 必要事項を入力して、Register application ボタンをクリックする アプリケーション画面で Client ID と Client Sec…

手っ取り早く vegetaで負荷テストを行う環境を作る

クロスコンパイルでもできるけどRleaseから取得したほうが早いね wget https://github.com/tsenart/vegeta/releases/download/cli%2Fv12.0.0/vegeta-12.0.0-linux-amd64.tar.gz tar xvzf vegeta-12.0.0-linux-amd64.tar.gz vegeta # 試し打ち echo "GET http…

『Goならわかるシステムプログラミング』を読んだ

最近同著者の『Real World HTTP』が楽しく読めたので『Goならわかるシステムプログラミング』も拝読した。 Goならわかるシステムプログラミング(紙書籍)www.lambdanote.com 読んだ理由 Go言語には興味があったが公式ドキュメントや文法を学ぶための本は途…

修正が多いファイルをリファクタリングの対象にする 

長期に運用されているアプリケーションでは多くの領域が全く変化しない状態になって、開発が進行しているのはごく少数の機能やその周辺のみとなることが多い。 特定のファイルが頻繁に編集されている場合、 そのファイルはリファクタリングの理想的なターゲ…

FTPでログインは成功するがコマンドがタイムアウトする

FTP

事象 EC2上にftpサーバを構築すべく、vsftpdをインストールした。 ログインは成功するが、外部のftpクライアントからコマンドを実行したらタイムアウトする $ ftp 192.168.1.10 Connected to 192.168.1.10 (192.168.1.10). 220 (vsFTPd 2.2.2) Name (192.168…

Audit ってなんだ

Audit イズ 何?のレベルだったのでメモる /var/log/messages にログ出力を見つける auditd[1225]: Audit daemon rotating log files システムコールの監査ログ(audit.log)をローテートしたよの意 Audit ってなんだっけ Linux Audit システムは、システム上の…