Ruby経由でCassandra

cassandra-cliで操作するのもつらくなってきたので,そろそろRubyから使えるようにします. Rubyインストール native extensionのために,ruby-devとmakeも必要です. aptitude install ruby ruby-dev make rubygems Gemインストール 念のため,Gemがあるか…

nodetool

nodetoolのしかも使いそうなものだけ. というか他にもコマンドがありすぎて,手に負えない. 状態確認 ring ノード間で形成されているringを確認. nodetool ring -h localhost Address Status Load Range Ring 152969239942589118687714590887829286072 19…

複数ノードで動作

これまでは単体でしか動作させてなかった. 複数ノードで動作させるのは簡単なので,設定してしまおう. 設定の仕方 ノードが互いに認識できるようにする. ここでは2つ分(以下Node A,Node B)立ち上げることにする. インストール Cassandraのインストール…

sstable2json/json2sstable

でエクスポート/インポート. エクスポート sstable2jsonコマンドを使います. # rootで実行 # あらかじめデータを全てディスクに書き込む nodetool flush MyKeyspace -h localhost # JSONでエクスポート sstable2json /var/lib/cassandra/data/MyKeyspace/S…

cassandra-cliのコマンドたち

cassandra-cliに用意されているコマンドを試す.結果が明らかなものは一部省略. 状態確認 いま動いてる状態を教えてくれるコマンドたち. # サーバに接続 connect localhost/9160 =>Connected to: "Test Cluster" on localhost/9160 # クラスタ名 show clus…

Keyspaceを新しく作る

Cassandraにはキースペースという概念がある. それは言ってしまえばMySQLにおけるデータベースのようなものだ. インストールした時点でKeyspace1というものが用意されているが,そのままずっと使うのも気持ち悪い. そこで,新たなキースペースを作る. 初…

Cassandraインストールメモ

Hadoop(というかHBase)を動かそうとしたが,結局HDFSがうまく動かない. この際,Cassandraに変更だ! ということで,lennyにインストールするなら楽勝のメモ. apt-line設定 Cassandra用のapt-lineが用意されているので追加すればOK. # 今のところunstable…

lennyでLinux-VServerを使うメモ

よくあるセットアップのまとめ. まずはインストール aptitude install linux-image-2.6-vserver-686 aptitude install util-vserver ゲストOSインストール ここでは,ホスト名を[hostname],IPアドレスを192.168.x.xとします. ネットマスクは適宜調整です…

PAE非対応だと仮想環境構築はしんどい

VIA Nehemiahという昔懐かしいCPUのPCに仮想環境作ろうとしたら,思いのほか苦労したという話. メモリが足りない 最近,Hadoopがずいぶん流行っている. 自分も触ってみようということで,昔のThinkpadで動かしてみたのだが,いかんせんメモりが256MBしかな…

AndroidはInternet-enabled Computer

GoogleのAnnual Reportを眺める機会があった. と言っても,Webで公開されているので誰でも読める.いい時代になった. さて,その中のFounders' Letterを読んでみると,Androidに関する一説にとある単語を見つけた. 「Internet-enabled Computer」 Google…

フィラデルフィア管弦楽団2010年日本公演

フィラデルフィア管弦楽団 アメリカのメジャーオケが来日. しかも指揮者がシャルル・デュトワ,曲目も火の鳥とハルサイということで,行かずにはいられなかった. 曲目 ストラヴィンスキー:バレエ「火の鳥」(全曲) ストラヴィンスキー:バレエ「春の祭典」…

文字列が空行か調べる

文字列が空行か調べる 空行の意味によりいくつかの方法が存在します.ここでは3種類の空行において調べる方法を示します. 空白文字が入っていても空行として扱う場合 string-trim-bothとstring-null?を組み合わせます.string-trim-bothではchar/char-set/p…

空白にマッチさせる

空白にマッチさせる 空白にマッチさせるには空白文字を表す#/\s/を使えばよいでしょう. (#/\s/ "a a") =>#<<regmatch> 0x4a4300> 全角空白文字もマッチさせたい場合 #/\s/だと全角空白文字は入らないため併せて指定する必要があります. ; 文字列の最後尾に全角空白が</regmatch>…

文字列を比較する

文字列を比較する eaual?もしくはstring=?により,文字列の比較を行うことができます.eq?やeqv?は文字列比較の場合, 別の意味になる(同一オブジェクトでかつメモリ位置が同じ場合に#t)ので,ここでは使えません. (equal? obj1 obj2) (string=? string1 st…

文字の出現頻度を調べる

文字の出現頻度を調べる それっぽい手続きはなさそうなので,自力で数えることにする. (use gauche.collection) (define (match-count re str) (define (grp-to-assoc grp) (if (null? grp) '() (cons (cons (caar grp) (length (car grp))) (grp-to-assoc …

特定の文字・文字列の出現回数を調べる

文字の数を調べる 対象が文字の場合,SRFI-13にあるstring-countを使います.マルチバイト文字も使えます. (string-count s char/char-set/pred &optional start end) 使用例. (use srfi-13) (string-count "a\nb\nccc\nd\n" #\newline) =>4 (string-count…

前回マッチした部分の続きからマッチさせる

前回マッチした部分の続きからマッチさせる 正規表現オブジェクトmatchに対して(match 'after)とすると,マッチした部分の続きが文字列として得られます. したがって, (#/regexp-spec/ (match 'after)) とすると,続きからマッチさせることができます. 何…

単語にマッチさせる

単語を含むかどうか調べる 通常であればそのまま書けば終わりです.が,"\b"を使って境界を明示することで,より正確にマッチさせることができます. (#/\bspec\b/ "Scheme spec") =>#<<regmatch> 0x5330a0> (#/\bspec\b/ "Scheme specification") =>#f 正規表現\wにマ</regmatch>…

正規表現が文字列の先頭・末尾にマッチするか調べる

正規表現が文字列の先頭・末尾にマッチするか調べる 正直,正規表現ネタなので言語はあんまり関係ないのですが... 先頭にマッチするか調べる "^"で先頭を表します."\A"はまだサポートされていないようです. マッチした際,明示的に#tを得たい場合にはboole…

文字列を検索する

文字列を検索する いわゆる正規表現によるマッチングです. #/regexp-spec/ とすることで,正規表現を表現することができます.他の言語上で正規表現を使ったことがあれば,違和感ないでしょう. パターンが含まれるかどうか 空白文字もしくはタブを検索する…

文字列の長さを得る

文字列の長さを得る 文字列の長さには2種類あります.文字数と内部エンコーディングの大きさです. この2つは一致することもあれば異なる場合もあるので,用途によって使い分けを. ; 文字数 (string-length string) ; 内部エンコーディングの大きさ (string…

文字列を反復する

文字を反復する 文字列を反復するには,文字の場合と文字列の場合でやり方が異なる. 文字の場合はmake-stringで反復できる. (make-string k &optional char) 使用例. charを指定しないと空白文字が繰り返される. (make-string 5 #\c) =>"ccccc" (make-st…

文字列を複製する

文字列を複製する そのまんま,string-copyで複製できます. (string-copy string &optional start end) 使用例. (string-copy "複製元の文字列") =>"複製元の文字列" (let* ((str "複製元の文字列") (copy-str (string-copy str))) `(,(eq? str str) ,(eq?…

文字コードを推測する

文字コードを推測する gauche.charconv gauche.charconvモジュールを使うと,ces-guess-from-stringで推測できる. (ces-guess-from-string string scheme) 使用例. 書式のschemeを"*JP"とすると,JIS,EUC,ShiftJIS,UTF-8のいずれかであるとして推測して…

文字コードを変換する

文字コードを変換する gauche.charconv gauche.charconvモジュールを使うと,ces-convertで変換できる. (ces-convert string from-code &optional to-code) 使用例. #*"〜"で結果が返されているけど,これはバイト文字列(不完全な文字列)を表している. (u…

適切な文字列リテラルをえらぶ

Scheme再会 とあるレシピブックをそのままScheme(というかGauche)で書いたらどうなるか試してみる.まずは文字列から. 文字列リテラル "〜" 普通の文字列.説明不要. "通常の文字列リテラル." => "通常の文字列リテラル." 改行をそのまま含めることがで…

バイエルン放送交響楽団2009年日本公演

バイエルン放送交響楽団 先日のニューヨーク・フィルハーモニックを聴きにいった際に,この公演の広告を見てしまった. 気がついたらチケットを買っていた.なぜか1階13列のほぼ真ん中. 後悔はしていない. 曲目 ブラームス: 交響曲第2番 ニ長調 Op.73 チャ…

Shibuya.lisp TT #4

先日行われた,Shibuya.lisp TTに初めて行ってきました.楽しかった! 講演内容はよいエントリが既に沢山あるので,次回に向けて行こうか迷っている方のために,細々としたことをメモしておきます. マニアックすぎて理解できない? 「Schemeプログラマのレベ…

ニューヨーク・フィルハーモニック アジアン・ホライズン・ツアー

ニューヨーク・フィルハーモニック アメリカビッグ5の一角,ニューヨーク・フィルハーモニックが来日,ということで行ってきました. それにしても,今日は台風のおかげで風が強かった. どこ行ってもビュービューと風のうなり声がすごい. 曲目 リンドベル…

ウィーン・フィルハーモニー ウィーク イン ジャパン 2009

ウィーン・フィルハーモニー管弦楽団@サントリーホール ついに聴いてきました,ウィーン・フィル.世界最高峰の1つだけあって,とんでもないうまさだった. 「どこが上手いの?」 「いや,全部」 としか言えねー... 技術も楽曲の理解もすばらしい.チケット高…