jQueryでdata-*属性を使ってみる

javascriptやjQueryで何らかのデータをhtmlに埋め込んで取りたいけどいいhtml要素がないときdata属性が良さそうです
(古いブラウザならhidden要素でしょうか)

<p class="sentence" data-author="yamada taro">
なんとかかんとか
</p>

$(.sentence).data(“author”)

でyamada taroが取れます

対応しているブラウザはcaniuse.comで調べると良さそうです
IEは8からですね
http://caniuse.com/#search=data-*

linuxでディレクトリだけコピーする

ファイルはいらず、ディレクトリ構造だけコピーしたいとき

$ find (コピーしたいディレクトリ) -type d
これでディレクトリだけ検索します

$ find (コピーしたいディレクトリ) -type d | xargs -I DIR mkdir (コピー先のディレクトリ)/DIR

xargs -I のあとのDIRはなんでもよくて、find の結果が mkdirのあとのDIRに入ります

これで楽にコピーができました

vagrantのSyncedFolderにrsyncでのエラー

vagrantのSyncedFolderにrsyncでエラーが発生しました

There was an error when attempting to rsync a synced folder.
Please inspect the error message below for more info.

Host path: /home/user/ws/vagrant/precise32/
Guest path: /vagrant
Command: rsync –verbose –archive –delete -z –copy-links –no-owner –no-group –rsync-path sudo rsync -e ssh -p 2222 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ‘/home/user/.vagrant.d/insecure_private_key’ –> exclude .vagrant/ –exclude .git/ /home/user/ws/vagrant/precise32/ vagrant@127.0.0.1:/vagrant
Error: Warning: Permanently added ‘[127.0.0.1]:2222’ (ECDSA) to the list of known hosts.
Received disconnect from 127.0.0.1: 2: Too many authentication failures for vagrant
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.0]

解決策はこれでした

$ vim ~/.ssh/config
Host 127.0.0.1
IdentitiesOnly yes

を追記
これでうまくいきました

vagrantでSyncedFolderへの反映を直す

vagrantでは最初からvagrant upしたディレクトリとゲストOSの/vagrantディレクトリが同期しています
アクセス権限がいけてなかったので変えてました

$ vim Vagrantfile

[code lang=ruby]
config.vm.synced_folder ".", "/vagrant",
owner: "vagrant",
group: "www-data",
mount_options: [dmode=775','fmode=775']
[/code]

これでうまくいってたのですがある日、
ホストOS側でがりがりプログラムを更新して、ゲストOS側で動かす、
としてたら動かないことがありました

ゲストOS側で見てみると
$ ls -al

drwxrwxr-x 1 vagrant www-data 4096 Nov 21 07:28 ./
drwxrwxr-x 1 vagrant www-data 4096 Nov 21 07:00 ../
-rwxrwxr-x 1 vagrant www-data 1765 Nov 21 07:00 app_initial.php*
?????????? ? ? ? ? ? cache
drwxrwxr-x 1 vagrant www-data 4096 Nov 21 07:00 class/

ホストOS側で、cacheフォルダを作成したらのに反映されてない?

vagrantを再起動してみる
$ vagrant reload
と、直りました

同期の種類がいくつかあるのでrsyncを設定してみると

$ vim Vagrantfile

[code lang=ruby]
config.vm.synced_folder ".", "/vagrant",
type: "rsync",
owner: "vagrant",
group: "www-data",
mount_options: ['dmode=775','fmode=775'],
rsync__exclude: [".git/"]
[/code]

$ vagrant reload

更新するときは
$ vagrant rsync
で反映されるし、自動がよければ
$ vagrant rsync-auto
で反映されます