Angular.jsとBootstrapを競合させずに使う
普通にやったらアウトっぽい。
知らずにBootstrapに後からAngular.js突っ込んでてうまく動かなかったので、以下の手順でなんとかした。
- jquery.js, bootstrap.jsを外す。
bower install angular-ui-bootstrap-bower --save
- angular-ui-bootstrapってのもあるが、こっちは依存がやたら多く、ソースからコンパイル用っぽい。
angular.module()
の第2引数でui.bootstrap
への依存を指定。- Bootstrapのオリジナルの動作指定は使えないので、ここの下の方を参考に、HTMLを書き換える。
つーか最初からちゃんとやってればよかった。
Vimで、式用コマンドラインモードの履歴をコピーする方法
Vimでは、ノーマルモードでのp
, P
によるレジスタ貼り付け以外に、挿入モードでのCTRL-R
からの貼り付けがある。
貼り付けられるレジスタにはいくつか特殊なものがあるが、特に=
の挙動は変わっていて、これを入力すると、式用のコマンドラインモードになる。
このモードで入力した文字列は式として評価され、その戻り値が貼り付けられる。
簡単だが式が長くなるような計算などで便利でよく使うのだが、今回、入力した式の方を後から再利用したくなった。
コマンドラインモードの履歴を扱うには、コマンドラインウィンドウを開けばいい。
通常のコマンドラインモード用なら、q:
でおっけー。:q
を打ち間違えることで出てきたりするので、多分みんな知ってる。
検索用ならq/
, q?
.
だが、式用のキーバインドが見つからない。q=
にはなにも割り当てられていないようだし。
ということで:h q:
から調べてみたところ、
1. コマンドラインモードで、オプション 'cedit' で指定されたキーを使う。 'compatible' がオフのときの既定値は CTRL-F である。
これで開けるということだった。今回の場合、i_CTRL-R_=
で式用コマンドラインモードを開いた上で、CTRL-F
を入力することで行けた。
便利。とはいえq=
も欲しかった。
HTML(など)で使うURIの相対的な表記方法についてまとめる
いい加減「ネットワークパス参照」とか覚えたいので。
とはいっても、基本的にはRFC 3986を読めば書いてあるのだが。
Uniform Resource Identifier (URI): 一般的構文
//
で始まるやつ。- 「ネットワークパス参照」
- 昔はあまり見なかったが、httpsや、外部でホスティングされているJavaScriptの使用が流行ったせいで最近ではけっこう見る。
- この名前だと誰も覚えられないと思う。「スキーム相対」とかそんな感じにしてはどうか。関係ないがスキームとスキーマがどっちがどっちかも覚えられない。
/
で始まるやつ。- それ以外。
それにしても問題は、人に伝えるときだ。どの表記方法も、正しい名前ではまず通用しないと思われる。
かといって十分に知れ渡った慣用名があるという感じでもない。実例を出しつつ伝えるのがベターか。
Cartonで詰んだっぽい?
- Cartonの仕様上、site_perlになにか入ってるとcpanfile.snapshotが壊れる可能性がある。
- Carton自体を入れるのにいくつかのモジュールがsite_perlに入る。
- それらのモジュールのいずれかがcpanfile.snapshotでrequirementsに入っていると、
carton check
がfail.
で、今回問題になったのがCPAN::Meta::Requirementsなんだけど、これcpanmやcarton経由で入るっぽいのでなんか詰んだっぽい。どうすりゃいいんだ。
carton check
使わない? それしかない気はするが……。
追記: いろいろ試してたらなんかまともに動いたりしてさらに謎。なんなんだ。
ansible_ssh_userはansible_connection=localのときは意味がない
まあ、よく考えるとわかることだけど、ansible_ssh_user
以外にユーザを指定する方法がなかったのでつい引っかかってしまった。
普通ならばansible_connection=local
で実行する場合は、ターミナルでコマンドを叩くので、叩いたユーザの権限で実行されるのは自然なので引っかかることはないだろう。
今回なぜ引っかかってしまったのか。
- Windows上のVagrantでAnsibleでprovision.
- 通常はVagrantのprovisionはansible provisionerがあるのでそれを使えばいいが、Windows上では動かない(らしい)ので、AnsibleをゲストOSに押し込んでVagrant環境構築する - Qiitaを参考に、shell provisionerで実行していた。
- shell provisionerはデフォルトではroot権限でシェルスクリプトを実行する。
- VagrantもAnsibleもログ出力が微妙で、誰で実行しているのかなどは出力してくれない。
- Ansibleは、inventoryの設定に問題があってもエラーにしない。
あたりが原因か。
今後同じようなはまり方をしないためにどうすればいいか。
- よく使われているソフトウェアといえど、特に一般的でない使い方をする場合は、一般的でない問題に引っかかる可能性が高いことを覚悟する。
- もっとログやエラーを出させる。とはいえ今回の場合はログもエラーも役には立たなかったが。
- もっと速い開発環境を! 再実行に時間がかかるのも、問題発見に時間がかかった原因。
難しいね。
追記。inventoryに限らないっぽい。
ちょっと気になったので、playbookやtaskごとでもuserやremote_userを書いて試してみたが、どうもまったく効かないようだ。
ansible_connection=local
自体基本的に使わないようにした方がいいかも。
Firefoxで、POODLE対策としてsecurity.ssl3.*をいじってるとちゃんとTLSに対応したサイトにもつながらなかったりする件
security.ssl3.*
という名前だけど、じっさいにはTLSの設定にも影響しているっぽい。
security.tls.version.min
を1
にすれなどすればPOODLEはとりあえず大丈夫と思われるのでそっちで対応する。というかFirefox 34あたりでそれがデフォルトになってるはず。
詳細はこの辺かな。 The POODLE Attack and the End of SSL 3.0 | Mozilla Security Blog