external storage

2018-08-20

Mac Emacs IME

15:39

EMP(Emacs Mac Port) で .emacs に以下を追加。Ctrl-o でIMEをトグル

(defun mac-win-ime-toggle()
  (interactive)
  (when (fboundp 'mac-input-source)
    (mac-select-input-source
      (concat "com.google.inputmethod.Japanese"
        (if (string-match "\\.base$" (mac-input-source))
           ".Roman" ".base")))))
(global-set-key "\C-o" 'mac-win-ime-toggle)

この記事は,Emacs を IME(ことえりや Google IME など)と共に使う Macユーザに向けた記事です.

https://qiita.com/takaxp/items/a86ee2aacb27c7c3a902

調べてみるとMacでEmacsを使うには、YAMAMOTO Mitsuharu版のMac Port用のemacs-macというものが一番使いやすそう。MacのネイティブなGUI環境に対応していて、Macの辞書機能やことえりなど、色々とMacの機能が使える。

railwaycatという方が、このemacs-macをHomebrewから簡単にインストールできるようにしてくれていて、これを使うのが一番手っ取り早い。

http://keisanbutsuriya.hateblo.jp/entry/2016/04/10/115945

https://github.com/railwaycat/homebrew-emacsmacport/releases

  ;; EMP版Emacsの野良ビルド用独自設定群
  ;; IME toggleを Emacs内で有効にする
  (defun mac-win-ime-toggle ()
    (interactive)
    (when (fboundp 'mac-input-source)
      (mac-select-input-source
       (concat "com.google.inputmethod.Japanese"
               (if (string-match "\\.base$" (mac-input-source))
                   ".Roman" ".base")))))
  (global-set-key (kbd "M-SPC") 'mac-win-ime-toggle)
  (global-set-key (kbd "S-SPC") 'mac-win-ime-toggle)

https://takaxp.github.io/init.html#org5664627

2018-08-13

yaml

12:08

null

YAMLでのnullはnullもしくはチルダ(~)で表現されます。

https://symfony.com/legacy/doc/reference/1_2/ja/02-yaml

2018-08-09

さくらのレンタルサーバ

12:34

【さくらのレンタルサーバ】基本仕様

https://help.sakura.ad.jp/hc/ja/articles/206053142

【独自ドメイン】さくらのレンタルサーバでの利用に関するよくある質問集

https://help.sakura.ad.jp/hc/ja/articles/206231101

cron

ssh ログインして crontab -e

or

さくらのサーバーコントロールパネルの アプリケーションの設定 > CRONの設定

https://qiita.com/yuwaita/items/5173726f0214ea495ee0


SSL

無料SSLはLet's Encrypt

<さくらインターネットの回答>

対象のドメインについて、DNSのAレコードが、さくらのレンタルサーバを向いていないと「SNI SSL」を有効にすることが出来ない仕様となっております

https://www.marineroad.com/staff-blog/19504.html

2018-08-01

2018-07-31

Dell idrac kvm

20:54

iDRAC6 Java7

iDRAC6 Java8 → 証明書の問題

https://nyacom.net/?p=486

2018-07-30

2018-07-27

aws アカウント

13:46

閉鎖後に AWS アカウントにアクセスする

...

AWS アカウントを閉鎖した後は、AWS サービスにアクセスするために使用することはできませんが、アカウントが閉鎖された後 90 日間 (「閉鎖後期間」) は、AWS アカウントの過去の請求書情報を表示したり、AWS サポート にアクセスできます。

閉鎖後期間が過ぎた場合

閉鎖後期間が過ぎると、AWS アカウントは完全に閉鎖され、再開することはできません。削除していなかったコンテンツは削除され、終了していなかった AWS サービスは終了されます。また、AWS アカウントを閉鎖する際に登録されていた E メールアドレスと同じアドレスを使用して新しい AWS アカウントを作成することもできません。

https://docs.aws.amazon.com/ja_jp/awsaccountbilling/latest/aboutv2/close-account.html

2018-07-26

postgres checkpoints チェックポイント

14:41

log_checkpoints = on にして調査

チェックポイントが発生するタイミングは以下の通りです。

  • 前回チェックポイントから checkpoint_timeout に指定した時間が経過した時(デフォルトは5分)
  • 【9.4まで】checkpoint_segmentsの数 × WALファイル(16MB) 分の変更履歴がWALファイルに書かれた時(デフォルトは48MB)
  • 【9.5の場合】max_wal_sizeに指定したサイズ分の変更履歴がWALファイルに書かれた時(デフォルトは1GB)
  • 手動でCHECKPOINTを実行した時
  • データベースクラスタをsmartモードかfastモードで停止した時
  • pg_start_backup関数を実行した時

https://www.ashisuto.co.jp/db_blog/article/20160603_max_wal_size.html

チェックポイントはとにかく、時間で発火させるべき。

https://qiita.com/U_ikki/items/89b1eea657e47120e3ee

↑は↓の翻訳

https://blog.2ndquadrant.com/basics-of-tuning-checkpoints/

その他参考

https://qiita.com/nattof/items/85d5d304de11e3d396eb

https://www.ashisuto.co.jp/db_blog/article/20161004_checkpoint_tuning.html

2018-07-25

2018-07-22

aws AutoScaling

19:30

スポットインスタンスは、変動価格制のインスタンスで、たいていの時間帯は通常のインスタンスよりも圧倒的に低い価格で起動可能な代わりに、需給が逼迫すると値段が高騰し、もしあらかじめユーザーが指しておいた指値を上回ると突然terminateされる上、stopは存在せず、terminateしかできない、という実に個性的で魅力的なインスタンスです。

http://blog.hde.co.jp/entry/2015/02/12/175214

AWSマネジメントコンソールから設定

https://qiita.com/T0000N/items/ed39202999b7b1a5bdf3

参考

https://sys-guard.com/post-11684/

https://qiita.com/u1_9ma/items/88c6e77b92832e8474ef

https://qiita.com/iron-breaker/items/2b55da35429da7b19e49

https://qiita.com/tt2004d/items/1d8aed40b5798a6bbb4c

https://hirofukami.com/2010/03/05/amazon-ec2-auto-scaling/

http://blog.kenjiskywalker.org/blog/2013/08/14/aws-vpc-autoscaling/

terraform AutoScaling

19:30

https://christina04.hatenablog.com/entry/2016/01/21/122437

TerraformでのAutoScale時のハマりどこ

端的にいうとこの2つです。

Terraform経由で実行した際のLaunchConfiguration(イカLC)とAutoScalingGroup(イカASG)の削除の順番が逆

LC内のuser_data更新で一網打尽になる

http://akuwano.hatenablog.jp/entry/20150625/1435230668

つまり、Auto Scalingのように運用に曝されることで状態が変化しうる性質を持つものに関しては、Terraformで管理するのはなかなか難しいということがわかります。そのため、今のプロジェクトにおいてはAuto Scaling Groupの起動構成だけをTerraform管理にし、Auto Scaling Groupの作成・破棄・操作に関しては別途Goでツールを書いて運用しています。

https://blog.stormcat.io/post/entry/selective-terraform-operation/

aws_launch_configuration のみ

https://www.terraform.io/docs/providers/aws/d/launch_configuration.html

2018-07-21

AWS 削除

19:41

AMI イメージの削除

https://www.ipentec.com/document/amazon-ec2-delete-ami

AMI、スナップショットを削除

2018-07-19

varnish バックエンドが50xの場合はキャッシュを返す

19:09

https://github.com/mattiasgeniar/varnish-4.0-configuration-templates/issues/24

sub vcl_backend_response {
    if (beresp.status == 500 || beresp.status == 502 || beresp.status == 503 || beresp.status == 504) {
        return (abandon);
    }

2018-07-18

$_SERVER['SERVER_NAME'] $_SERVER[‘HTTP_HOST’] trailing slash リダイレクト

12:43

apache 2.4 mod_dir

$_SERVER['SERVER_NAME'] を使用

SERVER_NAMEはUseCanonicalName OnでconfのServerNameになる。

wordpress

$_SERVER[‘HTTP_HOST’] を使用

指定した値を使いたい場合は wp-config.php で

$_SERVER['HTTP_HOST']='example.com';

設定する

参考

https://dm2.co.jp/2017/01/sslwordpres.html

参考

http://blog.a-way-out.net/blog/2015/11/06/host-header-injection/

2018-07-03

terraform waf

23:02

AWS WAFを使うためシステムにCloudFrontを導入した時の注意点まとめ

https://dev.classmethod.jp/cloud/aws/setup-amazon-waf-and-cloudfront/

Terraform v0.7.8でAWS WAFに対応しました

https://dev.classmethod.jp/cloud/aws/terraform-supports-aws-waf-in-v-0-7-8/

TerraformでAWS WAFに複数(大量)のBlackListIPを登録する

http://blog.serverworks.co.jp/tech/2018/04/11/post-63605/

2018-06-27

2018-06-26

terraform

12:32

事前準備

AWS マネジメントコンソールで作業

入門

RDS インスタンスの構築があると結構時間がかかります ( 当エントリの構成で約8分程度 ) 。

https://tech.recruit-mp.co.jp/infrastructure/post-10665/

tfファイル

type (Optional) - If set this defines the type of the variable. Valid values are string, list, and map. If this field is omitted, the variable type will be inferred based on default. If no default is provided, the type is assumed to be string.

https://www.terraform.io/docs/configuration/variables.html

typeは省略するとdefaultを基に推測、defaultがない場合はstringとみなす

Terraformではtfファイルで定義されているリソース間の依存関係を検出し、自動的に構築順序を制御してくれます。

http://febc-yamamoto.hatenablog.jp/?page=1517827055

terraform.tfstate

Terraformはリソースの状態を terraform.tfstate というJSONファイルで管理しています。その内容と実際の状態に差分が存在する場合、単純にコードの内容を適用してしまうと、Terraform側の設定、つまり古い設定で上書きしてしまいます。しかし、 refresh というサブコマンドを使えばこのJSONファイルへ実際の設定を反映してくれるので、変更に追従可能です。

$ terraform refresh

https://dev.classmethod.jp/cloud/aws/manages-cloudwatch-alarm-with-terraform/

ベスト・プラクティス

Terraform Module Registry https://registry.terraform.io/ を使いましょう。 以上です。

http://febc-yamamoto.hatenablog.jp/entry/2018/02/01/090046

2018-06-15

wp-cli wp_cli DB書き換え サーバ名変更

19:05

DBサイズが大きいときは wp-cli の search-replace を使ったほうがよい

Search and Replace for WordPress Databases Scriptはメモリ不足になる場合があった

WP-CLIをつかってWordPressのDBをコマンド1回で別のサーバーに引っ越す | Firegoby

WordPress のGUID。ドメイン名やURLを変える際にどうするか

21:59

たとえば最近ならウェブサイトをSSL化したときですね。この時に URL が HTTP から HTTPS に変わるわけですが、だからといって GUID を https:// にかえるべきではありません。

...

これを変えてしまうとたとえば RSS リーダー等でみなさんのブログを購読しているユーザーに既読のはずの記事が大量に復活することになります。

...

GUID を変えないとき

$ wp search-replace 'http://example.dev’ \
'http://example.com’ --skip-columns=guid

WordPress のドメイン名やURLを変える際の GUID 問題のちゃんとした話

https://capitalp.jp/2017/01/25/do-not-change-the-guid/

2018-06-14

groonga pgroonga lock

23:07

FreeBSD

/usr/local/pgsql/data/pgroonga.log
2018-06-13 13:57:08.446030|w|92306: [DB Locked] time out(900000): io(base/86030/pgrn) collisions(900000/90)
2018-06-13 13:57:08.446253|e|92306: grn_io_lock failed
2018-06-13 13:57:08.453398|e|92306: 0xa12ffe74e <grn_io_lock+0x19e> at /usr/local/lib/libgroonga.so.0

セッションが終了してもpostgresのprocessが残る (psに出る、pg_stat_activity に出ない)

(gdb) bt
#0  0x000000080111948a in _nanosleep () from /lib/libc.so.7
#1  0x0000000a123cd4cc in pthread_suspend_all_np () from /lib/libthr.so.3
#2  0x0000000a12e9c9a9 in ?? () from /usr/local/lib/libgroonga.so.0
#3  0x0000000000000000 in ?? ()

復旧方法

cd /usr/local/pgsql/data/86030
$ groonga pgrn
 > clearlock
 0,1528866270.726295,16.03510427474976],true]
 > quit
 0,1528866294.04867,5.650520324707031e-05],true]

↑で復旧しない場合は↓の方法?

...

Here is the right way to recover the IO lock:

Stop PostgreSQL.

Remove pgrn* files in data directory.

Start PostgreSQL.

Run REINDEX INDEX index_name; for all PGroonga indexes.

In many cases, you can recover by only running REINDEX. But some cases (e.g.: lock stays behind pgrn (no following number) file), you need to 1., 2. and 3.

https://github.com/pgroonga/pgroonga/issues/48#issuecomment-314448290

groonga/mroonga

日々の覚書: Mroongaのロックが突き刺さるとどうなるか

http://y-ken.hatenablog.com/entry/how-to-unlock-mroonga-database

2018-06-13

Ansible 2.4 から、いままで include が持っていた機能は以下の4つのアクションに分けられました。

Action Operation Reusable content

import_tasks static task

include_tasks dynamic task

import_playbook static playbook

include_playbook dynamic playbook

include (DEPRECATED) both static and dynamic task or playbook

この変更は、静的(static)な読み込みと動的(dynamic)な読み込み、そして読み込む対象(task ファイルか playbook ファイルか)を明確に区別することを目的に行われたようです。

https://muziyoshiz.hatenablog.com/entry/2018/01/15/231213