Postgresでtimestampのformatを"current date+特定時間"にする
PostgreSQLでtimestamp型のクエリを作る際に、CURRENT_TIMESTAMPを利用したいが、timeだけ特定の時間に指定したい場合以下のように書く
CURRENT_DATE + TIME '15:00:00'
履歴データを時間指定で無効化したいクエリを手作業で挿入したときのメモ
INSERT INTO person ( vid , name , age , enabled , start ) SELECT vid , name , age , FALSE , CURRENT_DATE + TIME '15:00:00' FROM person WHERE vid = 10 ;
浮動小数点の比較(Go)
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を変更して別のタグのフィールド名に変更する。
Field()で取得する。
バージョン
gopkg.in/go-playground/validator.v9 v9.27.0
サンプルコード
使い捨て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 7.4.1708 (Core)
参考URL
https://gist.github.com/yevrah/21cdccc1dc65efd2a4712781815159fb#gistcomment-2695800
./aws/configの名前付きプロファイルの設定をミスった
./aws/config に複数のプロファイルを手書きする必要がある場面があって、↓のような記述ミスで --profile hogeしたときにエラーを発生させてしまった。
エラーの内容
NoRegionError: You must specify a region.
原因
./aws/config の名前付きプロファイルの設定に「profile」プレフィックスを付けるのを失念していた
- NG
[default] region = ap-northeast-1 output = json [hoge] region = ap-northeast-1 output = json
- OK
[default] region = ap-northeast-1 output = json [profile hoge] region = ap-northeast-1 output = json
参考
『Clean Code アジャイルソフトウェア達人の技』を読んだ
アスキードワンゴにより再出版された日本語訳 Clean Code を拝読した。
Clean Code アジャイルソフトウェア達人の技 (アスキードワンゴ)
- 作者: RobertC.Martin,花井志生
- 出版社/メーカー: ドワンゴ
- 発売日: 2017/12/28
- メディア: Kindle版
- この商品を含むブログを見る
アーキテクチャの設計やドメインモデリングではなく、コードの細部についての本。
印象に残ったのは6章 オブジェクトとデータ構造#データ/オブジェクトの非対称性
の以下の文章。
手続き型(データ構造を使用するコード)は、新たな関数を既存のデータ構造に影響を与えずに追加することができます。オブジェクト指向の場合、既存の関数を変えることなく、新たな関数を追加することが可能です。 逆もまた成立します。 手続き型だと、新たなデータ構造を追加するには、既存のすべての関数を変えなければならないので、難しくなります。オブジェクト指向の場合、すべてのクラスを変えなければならないので、新たな関数を追加することは難しくなります。 複雑なシステムでは、新たな関数を追加することよりも、新たなデータ型を追加することのほうが多いでしょう。この場合には、オブジェクト指向がうまく適用するでしょう。逆にデータ型を追加するよりも、関数を追加することのほうが多い場合もあるでしょう。その場合には手続き型とデータ構造のほうがよく適合します。 熟練したプログラマなら、オブジェクト指向が常に優れているという考えが神話であることを理解しています。単純なデータ構造とそれらを操作する手続きのほうが必要とされる場合もあります。
手続き型で書いたほうが良さそうと感じるときのもやもやが言語化されて良き。
第11章 システム
についてはサンプルコードが少ないせいか理解が充分でないので他書籍とかで補強しないと。
builderscon2018の以下の発表で本書で扱っていたような内容を話されていたのでタイムリー感があった。 builderscon.io
vim の外部コマンド実行で sort や cut を実行する
- visual-line-mode [V] に移行してコマンド実行したい部分を行選択
- commandline[:]に移行して
!sort
や!cut -d" " -f3
などを追記する