2011-01-01から1年間の記事一覧

vimのエクスプローラにブックマークのようなものを登録する

vim

.vimrcにて command コマンド :Explore 任意のディレクトリ例)プロジェクトのroot,action,template,modelディレクトリを登録 $ vim ~/.vimrccommand Root :Explore /var/www/project/current command Action :Explore /var/www/project/current/app/action …

error_log()をメールする

PHP

error_log('message', 1, 'xxx@example.com'); 「PHP error_log message」という件名で送信されてくる

pam_filterの論理指定

/etc/pam_ldap.conf # AND pam_filter &(host=aaa)(host=bbb) # OR pam_filter |(host=aaa)(host=bbb) # 3つのOR pam_filter |(host=aaa)(|(host=bbb)(host=ccc)) # ANDとORの複合 pam_filter &(host=aaa)(|(host=bbb) (host=ccc)) 編集後に再起動などは要ら…

sshでパスなしログイン

相手先の~/.ssh/authorized_keysに自分の公開鍵(id_rsa.pub)を挿入。 .sshの権限が700、authorized_keysの権限が600や644ならOKです。 権限が664だった時に、なぜかパスを聞かれてハマッた [root@to:/home/admin/.ssh]# ll /home/admin/.ssh/authorized_ke…

emacsの基本操作

とりあえず基本移動 C-p ↑ 先頭 C-a ← C-b ←■→ C-f → C-e 行末 ↓ C-nemacsを抜けるには、C-x, C-cC-h t でチュートリアル

mb_convert_kanaで変換できない

こんなふうにやっていた mb_convert_kana($text, "AKV");このようにすればできました。 mb_convert_kana($text, "AKV", 'utf8');

file_put_contentsで代替ログ

PHP

ブラウザ出力するのも面倒なのでファイルに書き出してみました。 file_put_contents("/tmp/log.txt", $var);/tmpに置いたのは権限の都合上※あとで気づいたが、error_log()というのがあった。デフォルトだとerror_logに引数のテキストを出力してくれる

modelのfind()にnullを入れてもエラーにはならない

modelのfind()にnullやfalseが入ってしまった場合、どうなるかのテストtest/unit/model/HogeTest.php find($param); echo $a ? 'exist' : 'none'; echo "\n"; } test(1); test(''); test(null); test(false); test('hoge'); 実行結果は以下、nullやfalseを入…

PHPの先月、翌月の操作

過去6ヶ月の年月リストを取得する関数を作ったのだが、本日(10/31)バグりました。

symfony generate:moduleで生成されるスケルトンを変更する

defaultではsymfonyフレームワーク内にあるskeletonディレクトリを基に作成されるが、projectのdataディレクトリにskeleton/moduleを置くとそちらを参照するようになります。 sfGenerateModuleTask.class.phpより if (is_readable(sfConfig::get('sf_data_di…

mkdirでディレクトリを一括で作成

[hoge@ ...]$ mkdir -p project/{repos,symfony/{cache,log,uploads}} [hoge@ ...]$ tree . `-- project |-- repos `-- symfony |-- cache |-- log `-- uploads「-p」をつければディレクトリの存在に関わらずerrorなしに作成してくれます

logrotate重複して条件マッチ

logrotateにまつわるトラブルなぜか空で奇数しか残っていないなど、ログがおかしな事になっていた。というのがはじまり -rw-r--r-- 1 admin admin 53868502 10月 3 20:03 access_log -rw-r--r-- 1 admin admin 20 10月 3 04:32 access_log.1.gz -rw-r--r-- 1…

htpasswdのパスワード方式

htpasswdのパスワード方式って何だっけ? という事で調べてみました [hoge@... ]$ htpasswd Usage: htpasswd [-cmdpsD] passwordfile username htpasswd -b[cmdpsD] passwordfile username password htpasswd -n[mdps] username htpasswd -nb[mdps] username…

配列の値をそれぞれtrim

foreachとかせずにやりたかったのでこちらで array_map('trim', $array);例)explodeしつつtrimの比較、検証 // string(4) "hoge" // …

DQLでカッコつきwhereを書く

こういう感じの条件が書きたかったので色々試してみました。 WHERE (a = ? AND b = ?) AND (c = ? OR d = ?)$q = Doctrine_Core::getTable('Hoge')->createQuery() ->where('(a = ?', 1) ->addWhere('b = ?)', 1) ->addWhere('(c = ?', 1) ->orWhere('d = ?)…

vimでtwigのハイライト

vim

~/.vimrc set syntax=htmldjangoこれでできました

vimで文字削除するキーバインド

vim

cf カーソルからキーが最初に登場する箇所まで削除。挿入モードへ de or dw カーソルから単語単位で削除 d0 カーソルから行頭まで削除 D カーソルから行末まで削除 dd 一行丸ごと削除 x カーソル下を削除 X カーソル下の1つ前を削除

svn merge

trunkの内容をbranchにコピーした時のメモブランチの作業コピー内にて、以下の操作 $ svn merge -r 9867:9868 http://svn.xxx/trunk ※ブランチr9867、トランクr9868例)branches/aに最新のtrunkを取り込んだbranches/bを作成する // branches/bを作りtrunkと…

httpd -Sの出力結果をリダイレクト

シンタックスチェックとVirtualHostの一覧表示をしてくれる便利なコマンド。 これを別ファイルにリダイレクトして確認したかったけど失敗しました。 httpd -S > hoge.txtとやっても空っぽ httpd -S 2> hoge.txtこちらならOK。エラー出力でした。というわけで…

schema.ymlに合わせてDBも更新する

直接SQLを打たなくとも、symfony doctrine:migrate でできました。schema.ymlを更新したあと $ symfony doctrine:generate-migrations-difflib/migration/doctrine/1313561518_version1.php のような差分クラスファイルができる ※modelクラスを生成した後だ…

コマンドモードでカーソル下の単語を表示

vim

:<C-r><C-w>キーマッピングとかするときはではなくてこちら</c-w></c-r>

likeの一文字ワイルドカード

勘違いしていたのでめも。 mysqlでの一文字一致は「?」ではなく、「_」でした。 mysql> select * from rr where name like 'db2%'; +----+------+-------+------+---------------+-----+-------+ | id | zone | name | type | data | aux | ttl | +----+----…

vim-refが動かない

vim-refをインストールしてコマンドを起動しようとしたら以下エラー ref: alc: Vim(let):E117: 未知の関数です: shellescape function ref#ref..ref#open..<SNR>27_open..8..ref#system, 行 55どうもvimのバージョンが古いせいらしい rpm -qa | grep vim vim-comm</snr>…

factories.ymlの値を取得する

.../apps/frontend/config/factories.yml all: routing: class: sfPatternRouting param: generate_shortest_url: true extra_parameters_as_query_string: true suffix: .html request: class: sfWebRequest param: relative_url_root: "/hoge"$app = 'fron…

例外が起きる事をテスト

// test/unit/hogeTest.php true)); ←$t->fail()は通らないからテスト数に加算しない try { <<例外が起きる処理>>; $t->fail('通っちゃダメ'); } catch (sfException $e) { ←catchしたい例外クラスを指定 $t->pass('catch exception'); echo $e->getMessage(…

変数とシンボリックリンクでのパス展開(pwdコマンド)

変数に入れた場合 .bashrc hoge=/var/www/project/hoge$ cd $hoge $ pwd /var/www/project/hoge $ cd .. /var/www/projectシンボリックリンクの場合 $ cd /home/user $ ln -s /var/www/project/hoge hoge -> /var/www/project/hoge$ cd ~/hoge $ pwd /home/u…

一定サイズ以上のファイルを検索

例)カレント以下から、100k以上の1.jpgファイルを検索 $ find . -size +100k | grep 1.jpg ./117/1.jpg ./102/1.jpg ./120/1.jpg ./122/1.jpg ./77/1.jpg ./118/1.jpg ./49/1.jpg ./116/1.jpg

factories.ymlの値を取得

factories.yml all: routing: class: sfPatternRouting param: generate_shortest_url: true extra_parameters_as_query_string: true suffix: .html request: class: sfWebRequest param: relative_url_root: "/mobile"特定applicationの設定は以下で取得で…

sfFormでバリデータをなしにする

フォームクラスでこんな風にしても怒られるので... $this->validatorSchema['name'] = null; →「A field must be an instance of sfValidatorBase.」unset($this->validatorSchema['name']); →「Unexpected extra form field named "name".」sfValidatorPass…

timestamp型で自動更新

mysql> create table hoge (id integer auto_increment, flag integer, updated_at timestamp, created_at datetime, primary key(id)); Query OK, 0 rows affected (0.02 sec) mysql> desc hoge; +------------+-----------+------+-----+-----------------…