syntasticでvimがやばい

初期化して色々空っぽなので良い感じのvim設定がないかと探してたら良さげなプラグインを見つけた。

■ syntastic
https://github.com/scrooloose/syntastic

Syntaxチェックを行なってくれるもので、複数の言語に対応してる。
ただSyntaxチェックのためにチェックツール、jsならJSLintとか入れなきゃだめっぽい。

上記ページの下のほうに色々インストール方法が書いてるけども、
vundleを入れてたら.vimrcに下記の3行追加するだけでOKっぽい。

" Syntax
Bundle 'tpope/vim-pathogen'
Bundle 'scrooloose/syntastic'
call pathogen#infect()

追加後はBundleInstall!!

PHPで確認したところ、保存時に良い感じにエラー検出してくれてる。
なぜこれを知らなかったのかと自分を問い詰めたい。

コマンド

■ 保存時ではなく、手動でSyntaxチェックしたいとき

:SyntasticCheck

■ Syntaxチェック結果を一覧表示したいとき

:Errors

他にも色々あるみたいだけど、現状これで幸せを感じている。

GNU screenのセッション保存場所が何か違った

screen -lsをやっても何一つ出ない。
なんでscreenすぐ逝ってしまうん?と泣いてたけども、
よくよく見ると保存場所が違ってた。

$ screen -ls
No Sockets found in /var/folders/kd/8qx1dby10s53stv1q2q1wqg40000gn/T/.screen.

いつからこうなのかはわからんけども。

実際の保存場所はこっち

$ ls /private/tmp/uscreens/S-akihiro_ob
41014.ttys000.macbook-air 41656.ttys000.macbook-air vyrLShr

なので.zshrcとか.profileに明示的に記載することにした。

■ 追記内容
export SCREENDIR=/private/tmp/uscreens/S-akihiro_ob
※ 不安があるならexportまでしなくていいかも

■ 結果
$ screen -ls
There is a screen on:
        41656.ttys000.macbook-air       (Attached)
1 Socket in /private/tmp/uscreens/S-akihiro_ob.

うん、良かった!ちゃんといる!
原因は謎だけど、これで解決したので良しとしよう。

apacheダイジェスト認証設定

さくらVPSに個人用git環境とレポジトリを作成。
ついでにgitwebの導入をしたけども、公開するのも恥ずかしい。
てか公開するなら最初からgithubを使います。

gitwebとかっこいい名前はついてても、所詮はCGI
ということでapacheの認証だけ行うことにした。
環境はDebian 6です。

今回は、basic認証ではなくdigest認証。
basic認証は平文でパスワードを送ってるから危ないとか何とからしいので。

設定ファイル編集

まずは、gitwebの設定ファイルを確認

$ dpkg -l | grep gitweb
ii  gitweb  1:1.7.2.5-3  fast, scalable, distributed revision control system (web interface)
$ ls -la /etc/apache2/conf.d/gitweb

次に中身の編集

<Directory /usr/share/gitweb>
  Options FollowSymLinks +ExecCGI
  AddHandler cgi-script .cgi
  # ここから追記分
  AllowOverride None ← 書かなくていいと思う
  AuthType Digest   ← ダイジェスト認証使う
  AuthName "gitweb"  ← 認証名 名前は自由
  AuthUserFile /etc/apache2/.htdigest ← 認証ユーザが記載されたファイル あとで作る
  Require valid-user ← AuthUserFileで指定した人のみにアクセス制限
</Directory>

ユーザの追加

AuthUserFileの作成とユーザの追加をする

$ cd /etc/apache2
$ sudo htdigest -c .htdigest "gitweb" akihiro_ob
Adding password for akihiro_ob in realm gitweb.
New password:
Re-type new password:
$ ls /etc/apache2/.htdigest 
/etc/apache2/.htdigest

これで勝手に作成と追加されました!

ちなみに-cオプションは最初のみ。
追加する際は不要です。

$ sudo htdigest .htdigest "gitweb" testuser
Adding user testuser in realm gitweb
New password: 
Re-type new password: 
$ cat .htdigest| grep -n testuser
2:testuser:gitweb:05bae855755924538c87393873116b01

消すときはファイルから一行削除するだけ。

モジュール設定

設定というか、使う使わないの話。
何もしてなければbasic認証が動いているので無効にする。
その後、ダイジェスト認証モジュールを有効にする。
最後にapacheの再起動。

$ sudo a2dismod auth_basic
$ sudo a2enmod auth_digest
$ sudo /etc/init.d/apache2 restart

あとは、gitwebにアクセスするのみ!

参考

Apache2でDIGEST認証を使う
http://uturo1.nevernothing.jp/apache2digest/

jsで拡大鏡作ってみた

jsで作る拡大鏡、色々ライブラリがあってすごく便利。
そんな中、車輪の再開発をしてみた。

ブラウザ互換?IE対応? ガン無視だ!
そう思って開発すると案外簡単に出来ちゃってしまった。

■ jsdo.it
http://jsdo.it/akihiro_ob/x6GP
ただアカウント作っただけのjsdo.itを利用してみた。
本当はgithubが良かったのだけど、git環境つくり忘れてました。

使い方としては。
imgタグのid情報を渡すと、表示してる画像を拡大します。
表示にサムネイル、拡大に元画像とかって指定も可能。

デフォでは拡大鏡の幅(width): 320px, 縦(height):240, 倍率(scale):1倍
オブジェクトで好きな値を渡せば任意の大きさの拡大鏡になったり。

とりあえず作ってみただけなのでエラーハンドリングやらバグ潰しは甘い。
そんな感じの備忘録でした。

シェルでの正規表現比較

シェルで正規表現を使って引数の値とかチェックしたい。
一度やって忘れてたので記録しておく。

bashの場合

bashさんは正規表現比較方法があるので楽ちん

if [[ "$INPUT" =~ ^[0-9]+$ ]]; then
    echo 'number!!';
fi

bashさんかわいいよbashさん

shの場合

基本的にbashは入ってるのでbashでいいと思うんだけど、
お作法的にshで書くことになってるとも思う
もう古い考えな気がしないでもないけど

shはbashのようにできない臭いのでexprでやってたっぽい

if [ `expr "$INPUT" : "^[0-9]*$"` -gt 0 ]; then
    echo 'number!!'
fi

exprでマッチしている数を出して0と比較してる。
ただ、どうやらあんまり複雑なことはできないらしく
{min, max}を使うことはできないみたい。
複雑なものに対しては違う方法を探したほうがいいかも。

コマンドラインでのVirtualBox操作

すぐ忘れるので備忘録を

VM一覧取得
$ VBoxManage list vms

VM起動
$ VBoxManage startvm {VM名} --type headless

■ 起動してるVM一覧
$ VBoxManage list runningvms

■ 停止
ゲストOSでshutdownするのが推奨っぽい

■ 参考
禿散らかしてごめんなさい
http://d.hatena.ne.jp/machua/20100502/1272780972

しゃべるvimを試してみた

しゃべるvimがリリースされたと聞いて早速試してみた。

■ 元記事
「このVim…しゃべるぞ!」Shaberu.vimをリリースしました
http://blog.supermomonga.com/articles/vim/shaberu-vim.html

最近、Macをまっさらな状態にしたのでVundleを入れるところからに始める。

Vundleのインストール

本当にvimを使うにあたり本当に素晴らしいvundleさん
さくっとgitでcloneしましょう。

$ mkdir -p ~/.vim/bundle/vundle
$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

github gmarik/vundle
https://github.com/gmarik/vundle

shaberu.vimのインストールと設定

元記事を元に.vimrcに設定を加えてinstallします

■ .vimrc
Bundle 'supermomonga/shaberu.vim'

vim上で下記コマンドでインストール
:BundleInstall

こちらも非常に楽ちん。

そして、さらに.vimrcにvim起動時と終了時にしゃべる機能を記載

■ .vimrc
autocmd VimEnter * ShaberuSay 'ビムにようこそ'
autocmd VimLeave * ShaberuSay 'さようなら'

そして起動させると...喋らない!!
喋らないじゃないですかー!
ってMacの環境設定からKyokoさんをインストールし忘れてました。

Kyokoさんのインストール

元記事にあるように下記からKyokoさんをインストール
システム環境設定 -> スピーチ -> システムの声 -> カスタマイズ

エラーが出てた

それでも動かないので、いろいろ見てみると
どうやらMacではなくunixに見られているようだ。。
なので下記を無理やり設定変更

■ ~/.vim/bundle/shaberu.vim/autoload/shaberu.vim

  5 " Return speech synthesis command string
  6 function! shaberu#command()
  7   if exists('g:shaberu_user_define_say_command')
  8     return g:shaberu_user_define_say_command
  9   else
 10     if has('mac')
 11       " TODO: sayは標準コマンドだけど日本語ボイスが標準かどうか微妙
 12       return 'say '
 13     elseif has('unix')
 14       " TODO: unixに標準ライブラリあるのかな…
 15       return 'say '
 16     elseif has('win32') || has('win64')
 17       " TODO: WindowsにはSAPIというMS標準ライブラリがあるらしいがよくわかってない
 18     endif
 19   endif
 20   return 0
 21 endfunction
※ 15行目を追加
macの方に行くようにPC側を設定したほうがいいんだろうな。。

vimprocの追加

今度はvimproc#system_bgがないというので追加した

■ .vimrc
Bundle 'Shougo/vimproc'

github Shougo/vimproc
https://github.com/Shougo/vimproc

下記のブログを参考にビルドる
http://urakey.blogspot.jp/2012/05/vimproc.html

$ cd ~/.vim/bundle/vimproc
$ make -f make_mac.mak

vimの起動

ここでvimを起動すると…喋った!!vimがしゃべった!