2012年2月29日水曜日

パッケージの依存関係を調べる。



参考



apt-cache depends rails #railsが依存しているパッケージ一覧
apt-cache showpkg rails #railsに依存しているパッケージ一覧





2012年2月16日木曜日

cronのログ



cron自体が実行されたかどうかのログ



/etc/syslog.confに下記を設定
cron.* /var/log/cron




cronに登録したコマンドのログ



コマンド >> log.log 2>> err-log.log



>>は1>>の省略系
1とか2はプロセスが持つファイルディスクリプタ(ファイル記述子)の番号。
0(標準入力),1(標準出力),2(標準エラー出力)は固定番号。





gitのconfig3種類



参考


pro Git

gitは



  • /etc/gitconfig

  • ~/.gitconfig

  • git管理下のプロジェクト/.git/config


の順に設定を読む込む。
優先順位は後から読み込んだほう。

config --global は~/.gitconfigに書き込んでいる





サブシェル



参考


UNIXの部屋


サブシェル



  • シェルから起動した別プロセスのシェル


起動


  • ()でくくる



利用例

(cd ~/ ; make)
別プロセスでcdとmakeが行われているので、このコマンド実行後のディレクトリは
cdする前のディレクトリのまま


export


親シェルを継承したサブシェル(別プロセス)に変数をコピー(孫以下にも適用)
コピーなので、他シェルに影響しない。





プロトタイプ



最初に&があると、特別扱いされて、無名サブルーチンの sub を省略して「間接オブジェクト」スロットにブロックだけを置くことができる(この場合、ブロックの後ろにはコンマは置かない)。
func(@ary, sub { $_*2 } ) が func { $_*2 } @ary になる。



sub hoge ($&) {}
hoge 'foo', sub {}; #ok

sub hoge2 (&$) {}
hoge2 {} 'foo'; #ok


sub aaa (&) {}
aaa sub{} #ok
sub mymap (&@) {}
mymap {} qw( a b c d ); #ok
mymap sub{}, qw( a b c d ); #ok
mymap sub{} qw( a b c d ); #NG subが付くと、コンマが必要



Plack::Builderの例



package Plack::Builder;
sub builder (&) {

}


app.psgiの中で、



builder {
...
$app;
}


で実行できる。





暗号系、Cipherとか



Plain Text(平文)=> Encrypt(暗号化)=> Cipher Text(暗号文)

Salt(塩) 暗号化する前の対象文字列に、いくつか文字列を追加しておくこと。




コードのインデント揃える



指定範囲のインデントをそろえる。
C-x h ・・・ mark-whole-buffer
C-M-¥ ・・・ indent-region





2012年2月8日水曜日

Dropboxをubuntuに入れる



wget https://www.dropbox.com/download?dl=packages/dropbox.py
で取得したスクリプトを実行。
dropbox.py start -i
表示されたパスにブラウザでアクセスして、ログインパスワード入力。
これでDropboxディレクトリが出来ている。

lsof -i:17500
とすると、UDPが動いている。これを切るのは、

wget http://dl.dropbox.com/u/340607/pyDropboxValues.py
wget http://dl.dropbox.com/u/340607/dropbox_set_lansync.py

なんだけど、
An error occured: Unhandled DB schema version 2
と怒られる。

んー、なんだろ。とりあえず、dropboxデーモン切っておこう、、、





2012年2月6日月曜日

Amon2 make testが通るまで



追記


だいぶ情報が古いです。
今(2014.02.16)はcpanm --install-deps . でとくにエラーもならず入った。
あとJSLintではなくJSHintに変わってる。


チュートリアル


チュートリアル


いろいろインストール


cpanm Amon2 Amon2::DBI
cpanm Plack::Middleware::ReverseProcy
cpanm DBD::SQLite
cpanm HTML::FillInForm::Lite
cpanm Test::WWW::Mechanize::PSGI


バグ


とりあえずハマるのは、SQL-Interp-1.20がテストでコケルこと。古いバージョンにする。



cpanm http://search.cpan.org/CPAN/authors/id/M/MA/MARKSTOS/SQL-Interp-1.10.tar.gz



セットアップ


skinnyというオプションはないみたい?



amon2-setup.pl --skinny Hello




ここまでで、plackup app.psgiが動いた。しかしmake testが全然通らない。
ぉ、パスの部分を見るとperl5.10と書いてある。これはシステムperl。
今はperlbrewで5.14になってるはずなんだけど。
makefileにも5.10と書いてある。
とりあえずmake cleanして、もう一度perl Makefile.PL && make && make test
今度はOK.makefileにも5.14と書いてある。はて、何だったんだろ。


JSLint


JSLintが入ってないので、skipされているtestがある。
でもJSLintの入れ方がわかんね!
散々時間を食ったけど最終的にまたしてもtokuhiromさんのブログで解決。



sudo aptitude install libnspr4
wget http://www.javascriptlint.com/download/jsl-0.3.0-src.tar.gz
tar xzvf jsl-0.3.0-src.tar.gz
cd jsl-0.3.0/src/
make -f Makefile.ref
cp -a Linux_All_DBG.OBJ/jsl /usr/local/bin/



やっとmake testが通った、、、





is_deeplyの代わり



これはすごい。超見やすかった。
is_deeplyだと失敗したときに、どこが違うのかわからないけど、テキストに落としてから差分をとればいい、とのこと。

http://d.hatena.ne.jp/tokuhirom/20080308/1204999977

use YAML;
use Test::More;
use Text::Diff;

$got_dump = YAML::Dump($got);
$expected_dump = YAML::Dump($expected);

ok $got_dump eq $expected_dump, Text::Diff::diff(\$got_dump, \$expected_dump);





apacheからnginxに切り替える際に、リトライを書き換えるのが大変なとき



フロントをapacheからnginxに切り替える際に、リライトの設定をするのが面倒なら、
not foundだったものはすべてバックエンドに流すのもアリ。