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

Hadoop install

Hadoopを試してみたいので、手元にインストールしてみる。 環境はCentOS release 4.7。 jdk6のインストール http://java.sun.com/javase/downloads/widget/jdk6.jspからjdk-6u20-linux-i586.rpm.binをダウンロードしておく sudo su cd /usr/local/src chmod …

Q4Mを試す

sql

ようやくインストールが終わったので、試してみる まずはチュートリアルに沿ってやってみる。 http://q4m.31tools.com/tutorial.php テーブル作成 CREATE TABLE my_queue (v1 int not null, v2 varchar(255)) ENGINE=queue; desc my_queue; +-------+-------…

Install VIM7.2 with checkinstall

checkinstallの使い方を勉強になんか良い題材ないかなー、と探していたところvimのversionが古かったので、トライ。 概要 checkinstallについてさくっと書いてある http://itpro.nikkeibp.co.jp/article/COLUMN/20070821/280029/サイト http://www.asic-linu…

How to use perldoc

全然使いこなせてないので、せめて基本的な使い方だけでもアタマに叩き込む モジュールドキュメントを読む perldoc Encode 組み込み関数について調べる perldoc -f sprintf ソースを読む perldoc -m Encode 全体目次を読む perldoc perl FAQを探す perldoc -…

MySQL + Q4Mインストール

sql

Q4Mを使ってみようと思い立ったが、まずはMySQLをソースからインストールする必要がありそう。 そもそも、ソースインストールやRPM化をしたことがないので、ハードル高そう(爆) http://d.hatena.ne.jp/dekaduki/20100209/1265718676 に書いてあることをそ…

Perlベストプラクティス - その1

Perlベストプラクティス作者: Damian Conway,クイープ出版社/メーカー: オライリー・ジャパン発売日: 2006/08/24メディア: 大型本購入: 10人 クリック: 140回この商品を含むブログ (151件) を見るを読んで初めて知ったこと、役に立つと思ったことをまとめて…

List::Util, List::MoreUtils

Perl Best PracticeにList::Utilモジュールを使ったほうがいいよん、と書かれていたので試してみる。 ベンチマーク 効率よく実装されているとのことなので、ベンチマークしてみる。 とりあえず最大値。 use Benchmark qw(:all); use List::Util qw(max reduc…

インストールしておきたいアプリ

mac

mi テキストエディタ http://mimikaki.net/ quicksilver コマンドランチャ http://www.macupdate.com/info.php/id/14831/quicksilver iterm ターミナル http://sourceforge.jp/projects/iterm-jp/ growl Notification http://growl.info/

Chain Of Responsibilityパターン

同じインタフェースを持つHandlerオブジェクトを鎖(Chain)のように繋いでおき、各Handlerオブジェクトは要求された命令を処理できなければ次のオブジェクトに処理を回すパターン。Handlerに渡される命令にはCommandパターンが使われることがある。 メリット …

Framework Speed Comparison

ベンチマーク http://blog.creonfx.com/javascript/mootools-vs-jquery-vs-prototype-vs-yui-vs-dojo-comparison-revised に掲載されているベンチマークテスト内容をサマる。 テスト対象 tests the selectors which are essential part of any Javascript fr…

jQuery覚え書き

ちょっとずつjQueryを使い始めている。 本当にHelloWorld的なことレベルだが覚え書き リファレンス http://semooh.jp/jquery/ はじめてのjQuery ドキュメントのロードが完了したら、アラートボックスに「Hello World!」を表示。 $(document).ready(function(…

Bridgeパターン

実装のクラス階層と機能のクラス階層を分離し、委譲を使って両者を橋渡し(Bridge)する。 機能と実装がごっちゃになってきたら、Bridgeパターンを使うタイミング。 プラットフォームやフォーマットの違いを実装側に隠蔽し、機能側では抽象メソッドを用意す…

グラフライブラリ

Open Flash Chart http://teethgrinder.co.uk/open-flash-chart-2/ Flashベース グラフの種類は豊富そう LGPL JSON使える FusionCharts Free http://www.fusioncharts.com/free/ Flashベース グラフの種類豊富そう Free Ajax使える(からたぶんJSONいける) …

覚えておきたいモジュール

List::Utils リストに対するユーティリティ DateTime 日付や時間を扱うためのOOPなモジュール http://perl-users.jp/modules/datetime.html http://blog.livedoor.jp/dankogai/archives/50708234.html Statistics::Descriptive 統計に関するユーティリティ …

データダンプ&ロード

sql

テストのためにデータをコピーして、別テーブルにロードしたいなんてことがよくあります。 そんな時に使う方法。 テーブル丸ごとコピーしたい 素直にmysqldumpを使います。 スキーマ含め、丸ごとダンプ mysqldump -h[host] -u[user] [database] [table1] [ta…

データ再集計のTips

バッチを10日分まとめて実行したい時などに使うと便利なbashスクリプト 方法1: dateコマンドを使う #!/bin/bash for i in {10..1} do log_date=`date +'%Y%m%d' --date $i' days ago'` echo $log_date done 方法2: seqコマンドを使う for d in `seq -w 1 10`…

重いプロセスを調べる

CPU使用率降順 ps auxw | sort -k3 -nr メモリ使用率降順 ps auxw | sort -k4 -nr

全角⇔半角変換

Encode::JP::H2Zが使える。 ただ、EUCで渡すのが前提。 http://www.rwds.net/kuroita/program/Perl_unicode.html

screen/bash/vim設定

いろんなもの参考にしてつくったscreen, bash, vim等の設定をまとめてみる。 共有アカウントを使う環境でも使えるように、デフォルトではなく個別ファイルにしている。 こいつを常に最新状態にupdateしてコピーすれば楽だなぁ。 ■ssh接続 ssh -t user@host s…

Commandパターン

命令(Command)をメソッド呼び出しではなくて、オブジェクトとして実装するパターン。通常は命令したい内容に応じてメソッド引数を変えるが、Commandパターンはオブジェクトを渡す。 メリット 命令そのものに情報を持たせることができる 複数の命令を呼び出…

Decoratorパターン

オブジェクトを包み込み、機能を装飾していくパターン。 メリット 複数クラスを自由に組み合わせできる 実行時に動的に機能を追加できる つまり、継承よりも柔軟性がある 実装例 元になるクラス: Text package Text; sub new { my $class = shift; my $text …

svn tips

コミットファイルを実行可能にする svn propset svn:executable ON [path]

Algorithm::Diff

Algorithm::Diff - Compute `intelligent' differences between two files / lists 'インテリジェント'に2つのファイル/リストの違いを算出する 試してみる。 use Algorithm::Diff qw(sdiff); use Data::Dumper; my @diffs = sdiff( [qw( <html> <body>test</body> </html> )], [qw( <html> <body>T</body></html>…

MacでPerl+CPAN使う!

mac

Mac iBook G4(OSX Tiger)でやってみる。なぜ今さらこのマシンかというと、家にあって使ってないからwww 1. Xcodeのインストール これがないとmakeができないので、以下を参考にしてCDから。 もはやサイトからDLできないっぽく、CD探すのにけっこう手間取った…

Factory Methodパターン

状況によって生成されるオブジェクトを変更したいケースで使う。 メリット オブジェクトの生成に必要な手続きを利用側から隠蔽できる サブクラスを返すことで利用側は型制約から解放される 実装例 Factory PenとKnifeをつくる package Factory; use Product:…

Singletonパターン

唯一のオブジェクトを生成をしたいケースで使う。 クラス package Singleton; use strict; my $instance; sub instance { my $class = shift; return $instance ||= bless {}, $class; } 1; 呼び出し use Singleton; my $instance1 = Singleton->instance();…

Template Methodパターン

スーパークラスで処理の枠組みを決め、実装の詳細をサブクラスに任せるパターン。呼び出し手順や共通処理をスーパークラスに実装する。ニュアンスとしては「だいたい同じだけど、細かいところでいくつか違う」ものを実装するのに使える。 例: 支払処理 packa…

デザインパターン

コードを読めば分かるが、適切に使いこなすことはできていない。 いい機会なので地道に実装をしてみる。 デザインパターンとは 借り物ではなく自分の言葉で書くと「プログラミングにおけるベストプラクティス」である。定石と言い換えることもできる。あくま…

Best Practice of Subroutine Design

大げさなタイトルだけれども、最近の思うところを。 引数に関して ウィッシュリストを返すルーチンwishを作ったとする。 package Foo; sub wish { my ($person, @wish_list) = @_; return "$person wants " . join(',', @wish_list) . ".\n"; } 1; これに対…

Advanced Testing!

Test::Moreのis(), ok()だけで終わらせていたらもったいない! ってことでいろいろ使ってみる。 Test::Moreをもう一歩踏み込んで使う is_deeply 構造レベルまでチェックしたい時に使う。 my $ref_hash; $ref_hash->{key} = 'val'; is_deeply($ref_hash, {key…