職務内容の違いによって当然価値観も違うよね。と思った話し
自分の経験則上、バックオフィスシステムの開発やメンテなんかを依頼してくるような会社は、エクセル方眼紙に図面入りの設計書書いて上げると喜ぶし、テスト報告書の納品は絶対だけど、テストコードは必要ない。といった会社が多い。
まあ、そういった仕事を生業にしていると、それを相手にするノウハウは自然とついてきて、うん十年続けてるとそれなりに技術者としてのプライドが出てくる。
それ相手にしているエンジニアとrailsでテスト駆動開発してるようなエンジニアは「開発効率」の価値感が全然違うので、SNS等でそういった両者が開発効率について議論してもあんまり生産的な議論にならないな〜 とかふと思った。
前提が全然違うっぽいので。。。
自分的にはそういう仕事はまだまだなくならないと思うし、それはそれで立派なエンジニアの仕事だと思うのでプライド持っててもいいと思うのだが。
まあ、構成管理ソフトくらいは使えよな。とは思う。
禁酒中
3月7日より禁酒中 禁酒2週間経過
理由:肝臓の値が高いため
変化したこと
- 湿疹持ちだが、多少改善したように感じる
- 酒なしでも寝つけるようになった
- 熟睡できてる感がある 飲酒時はトイレに行ったり、朝、睡眠不足を感じることがあった
- 今回はあまり甘いものが欲しくならない
- 食欲は変わらず。 がセーブできる
- 多少、ポジティブ思考に ストレスになるようなことがあっても、飲酒で気を紛らわすのではなく、向き合えるようになった気がする
- エレベーター、エスカレーターを控えて階段の昇降までしてるが、体重は減らない
- 飲酒欲求は禁酒当日とさほど変わらず 飲みたい時は飲みたい
- お金が減らない
デメリット
- お酒の味が味わえない
リカバリーで競合が発生したためステートメントをキャンセルしています
レプリケーション環境下のスレープサーバへの参照問い合わせ、主に重いクエリ発行時に発生する
原因は以下のクエリで確認できる
database => select * from pg_stat_database_conflicts ; datid | datname | confl_tablespace | confl_lock | confl_snapshot | confl_bufferpin | confl_deadlock -------+-----------+------------------+------------+----------------+-----------------+---------------- 16386 | database | 0 | 0 | 1 | 0 | 0
この場合は参照中のテーブルに対してマスタ側で変更があったことを表す
こういった場合、スレーブ側はmax_standby_streaming_delayの値まで、レプリケーション同期を待つのだがmax_standby_streaming_delayの値内で処理が終わらない場合、confl_snapshotとなる
max_standby_streaming_delayはdefaultで30秒となっており、30秒以上かかるクエリ且つマスタ側で対象テーブルにデータ更新が行われると発生する
単純に値を増やす、または-1(無制限)とすれば解決するのだが、その分、長時間かかるクエリ時のwal同期が遅れるので注意する
可能であればシーケンシャルスキャンする専用のスレープを用意し、同期遅延前提でのデータベースとして取り扱うことを考える
ポートを使用しているプロセスを調べる
lsofを使う
$ lsof -i:22 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME httpd 503 apache 4u IPv6 147871264 0t0 TCP *:http (LISTEN) httpd 2552 apache 4u IPv6 147871264 0t0 TCP *:http (LISTEN) ...
プロセスIDを指定するとプロセスが使用しているファイルが参照できる
$ lsof -p 503 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME httpd 503 apache cwd DIR 202,1 4096 2 / httpd 503 apache rtd DIR 202,1 4096 2 / httpd 503 apache txt REG 202,1 528608 410347 /usr/sbin/httpd httpd 503 apache DEL REG 0,5 184309674 /dev/zero httpd 503 apache mem REG 202,1 275920 691626 /usr/lib64/php/5.6/modules/redis.so ...
multipart/form-data時の生POSTデータを見る
php://input は、 enctype="multipart/form-data" に対しては使用できません。とのこと。
どうやら、Content-type: multipart/form-data の時のみ機能しないみたい。
とのことなので、.htaccessでmultipart/form-dataのヘッダーをunsetすればよい
SetEnvIf content-type (multipart/form-data)(.*) MULTIPART_FORMDATA=true RequestHeader unset content-type env=MULTIPART_FORMDATA
<?php var_dump(file_get_contents("php://input"));
date infinity
無期限を表すdate infinityが便利
INSERT INTO events(date) VALUES('infinity'); INSERT INTO events(date) VALUES('-infinity');
select * from event where date > now(); date ---------- infinity (1 行)
select * from event where date < now(); date ---------- -infinity (1 行)