Gitのカラー表示メモ
Gitをmsysgitとかubuntuからとか使っているんですが
なぜかubuntuでgit log --statとかした時に文字化け?してしまう。
こんな感じ。
^[[32m+++++++++++++++++++^[[m^[[31m--^[[m
多分color設定が読めてないなと。
$HOME/.gitconfigに下記の一行追加でcolor表示される様になった。
[core]
pager = less -r
[参考URL]
http://d.hatena.ne.jp/sugyan/20100507/1273209155
http://d.hatena.ne.jp/yuroyoro/20101008/1286531851
Erlang勉強会に向けて予習的な
Erlang 分散システム勉強会に参加するので予習
とりあえずproject euler 10を書いてみた。
-module(project_euler). -export([is_prime/1, is_prime/2]). -export([add/2]). -export([loop/2, loop/3]). %% check the prime number method. %% arg: <integer> N is_prime(N) -> M = 3, if N < 2 -> false; N == 2 -> true; N == 3 -> true; N rem 2 =:= 0 -> false; true -> is_prime(N, M) end. is_prime(N, M) -> if N rem M =:= 0 -> false; M * M =< N -> is_prime(N, M+2); true -> true end. add(N, M) -> N + M. loop(N, M) -> loop(N, M, 0). loop(N, M, Sum) when N > M -> Sum; loop(N, M, Sum) -> case is_prime(N) of true -> loop(N+1, M, add(N, Sum)); false -> loop(N+1, M, add(0, Sum)) end.
$ erlc project_euler.erl $ ls project_euler.erl project_euler.beam $ erl -eval 'io:format("~s", [project_euler:loop(1,2000000)])' -noshell -s init stop {"init terminating in do_boot",{badarg,[{io,format,[<0.23.0>,"~s",[142913828922]]},{erl_eval,do_apply,5},{init,start_it,1},{init,start_em,1}]}} Crash dump was written to: erl_crash.dump init terminating in do_boot ()
あれー。結果は取り出せたのにエラーが。。。
しかもおっそいし!
c++のが全然早いじゃん。。。
書き方が悪いんだろうけどよくわかんないなー。
erlシェルからも実行してみる
$ erl Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false] Eshell V5.7.4 (abort with ^G) 1> project_euler:loop(1,2000000). 142913828922
エラーは出ないけどおっそい!!!
絶対書き方だよなぁ。。。
あと-noshellで実行したときにエラー出る原因がわからん。
- [追記]
io:formatに結果渡す時にintegerからlistに変換しないといけなかったみたい。
$ erl -eval 'X=project_euler:loop(1,2000000),io:format("~s~n", [integer_to_list(X)])' -noshell -s init stop 142913828922
PHPからthriftでcassandraに接続してみた - その1
以下メモ
- Thriftのインスコ
$ tar zxvf thrift-0.2.0-incubating.tar.gz
$ cd thrift-0.2.0
$ ./configure
$ make
$ sudo make install
$ ll /usr/local/include/thrift/
- PHPからthrift_protocolを利用する
$ cd lib/php/src/ext/thrift_protocol
$ phpize
$ ./configure --enable-thrift_protocol
$ make
$ sudo make install
$ ll $PHP_EXT/no-debug-non-zts-20060613/
$ sudo vi /usr/local/lib/php.iniextension=thrift_protocol.so
[thrift]
$ sudo mkdir -p /usr/share/php/Thrift
$ cd lib/php/src
$ sudo cp -R ./* /usr/share/php/Thrift/
$ tar zxvf apache-cassandra-0.6.3-bin.tar.gz
$ cd apache-cassandra-0.6.3
$ cd interface
$ thrift --gen php:server cassandra.thrift
$ sudo mkdir /usr/share/php/Thrift/packages
$ sudo cp -R cassandra /usr/share/php/Thrift/packages/
$ ll /usr/share/php/Thrift/
・
・
・
- PHPからライブラリの読み込みのテスト
※まだCassandraは立ち上げてないのでconnectはしない
$ vi cassandra_example.php
$GLOBALS['THRIFT_ROOT'] = '/usr/share/php/Thrift';
require_once $GLOBALS['THRIFT_ROOT'].'/packages/cassandra/Cassandra.php';
require_once $GLOBALS['THRIFT_ROOT'].'/packages/cassandra/cassandra_types.php';
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TSocket.php';
require_once $GLOBALS['THRIFT_ROOT'].'/protocol/TBinaryProtocol.php';
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TFramedTransport.php';
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TBufferedTransport.php';try {
$socket = new TSocket('127.0.0.1', 9160);
var_dump($socket);
$transport = new TBufferedTransport($socket, 1024, 1024);
$protocol = new TBinaryProtocolAccelerated($transport);
$keyspace = 'Keyspace1';//Cassandraクライアントの作成
$client = new CassandraClient($protocol);
var_dump($client);} catch (Exception $e) {
var_dump($e);
}
今回はここまで
Gitのメモ
central <-> clone
で運用しているとき。
central側でbranchを削除してしまった場合
clone側にcentralのbranch情報が残ってしまう。
[central]
central$ git branch
* master
test
test2
central$ git branch -d test2
central$ git branch
* master
test
[clone]
clone$ git branch -a
* master
test
remotes/origin/master
remotes/origin/test
remotes/origin/test2
clone側に情報が残ってしまったので下記のコマンドで削除して確認する。
clone$ git branch -d -r origin/test2
clone$ git branch -a
* master
test
remotes/origin/master
remotes/origin/test
remote/origin/test2が表示されない事を確認して終了。
nodetoolでcassandraが落ちた
Cassandraの試験をやっているのですが
クラスター全体で3000万件程データを貯めこんでました。
クラスターと言ってますが2台構成です。
で、
$ nodetool -h localhost -p 9160 tpstatsって打ったらノード全部(2台)とも落ちました。
・・・
はい。
片方のノードはそのままで起動出来たのですが
もう片方が上がらない。。。
多分メモリだろうなーって事で起動時のオプションと設定ファイルを修正。
[ cassandra.in.sh ]
デフォルトは256Mの1G
-Xms512M -Xmx2G
[ storage-conf.xml ]
で起動できました。
ただこれでもnodetool使うにはメモリが足りない様で
エラー出まくってます。
引き続き調査。
突っ込み大歓迎です。
[追記]
なんかどうにもならなかったので全ノードをKILL -9 XXXして各ノードを一旦停止。その後
/var/lib/cassandra/data/Keyspace1/***
を削除。で、再起動してリストアしました。
こんなんでいいの?
PHP5.3でcactiを使う
PHP5.2から5.3にアップデートしたらcactiの画面でwarning出まくり。
原因は主にereg系の関数使っているから。
warningを抑制してもいいかもだけど、それは何か違うなーって思ったのでコードを修正した。
具体的には
ereg("***", $***)をpreg_match("/***/", $***)に変更
eregi("***", $***)をpreg_match("/***/i",$***)に変更
ereg_replace("***", "", $***)をpreg_replace("/***/", "", $***)に変更
eregi_replace("***", $***)をpreg_replace("/***/i", "", $***)に変更
split()をexplode()に変更
で。
とりあえず下記のファイルの修正でグラフ見れるようにはなった。
cacti/site/scripts/query_host_cpu.php
cacti/site/scripts/ss_host_disk.php
cacti/site/scripts/ss_sql.php
cacti/site/include/global.php
cacti/site/include/global_form.php
cacti/site/host_templates.php
cacti/site/lib/html_validate.php
cacti/site/lib/utility.php
cacti/site/lib/template.php
cacti/site/lib/graph_variables.php
cacti/site/lib/html_utility.php
cacti/site/lib/snmp.php
cacti/site/lib/data_query.php
cacti/site/lib/html_form_template.php
cacti/site/lib/rrd.php
cacti/site/lib/html.php
cacti/site/lib/variables.php
cacti/site/lib/functions.php
cacti/site/utilities.php
cacti/site/graphs_new.php
cacti/site/graphs.php
cacti/site/graph_view.php
cacti/site/data_templates.php
cacti/site/cdef.php
cacti/site/graph_image.php
The mod_python project is now officially dead.
@atsさんが言及されていましたがmod_pythonはcloseとなる様です。
http://coreblog.org/ats/mod_python-has-no-future
自宅のサーバでapache+mod_pythonでDjango動かしているので
apacheのバージョンアップの際には移行しないとですね。
多分mod_wsgiにします。