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

catalyst入門メモ

catalystインストール Catalystの最低限のモジュールとよく使うモジュールをまとめてインストール。 sudo perl -MCPAN -e 'install Task::Catalyst' Helloを作成 catalyst.plでHelloを作成。 $ catalyst.pl Hello $ cd Hello「lib/」には、アプリケーション…

テスト

hatena touchテスト

synergyインストールメモ

synergyは、一つのマウスとキーボードで複数のマシンを操作できるようにしてくれる。 自分は、MacBookAirとwindowsXPのノートPCとLinuxのデスクトップを持っている。 これらすべてをMacBookAirのキーボードとタッチパッドで操作する。 ここでsynergyでは、 M…

HadoopによるAnalog2

まず最初に、下記のコードの様に、パッケージの宣言とインポートを行なう。Analogは、Sampleパッケージに所属する。(適切なパッケーイ名の付け方ってあるのかな) package Sample; import java.io.IOException; import java.util.ArrayList; import java.util…

HadoopによるAnalog

http://d.hatena.ne.jp/naoya/20080511/1210506301 こちらのMapReduce::LiteのサンプルプログラムであるAnalogを、 javaで書いてHadoopで実行させてみた。 下記がjavaのソース。力業感たっぷり。 package Sample; import java.io.IOException; import java.u…

MapReduce::LiteによるWordCount

http://codezine.jp/article/detail/2485 こちらのサイトで紹介されているHadoopのサンプルプログラム WordCount(WordCount.java)と同じ事を行なうものを、 MapReduce::Liteで書いてみた。 WordCountはスペース区切りで並べられた単語を数えるプログラムであ…

GFSについての箇条書きメモ

Google File System Google独自の分散ファイルシステム 多数のマシンを組み合わせて巨大なストレージを作る 複数のマシンが動作する事で効率的なデータ転送 膨大なデータの通り道 扱われるファイルが巨大 新しいデータをどんどん書き加えるか、読み出し続け…

Hadoopインストールメモ

Javaのインストール http://java.sun.com/javase/downloads/index.jspで、 「Java SE Development Kit (JDK) 6 Update 10」をダウンロードリンクを辿る。 「j2sdk-1_4_2_18-linux-i586-rpm.bin」をダウンロード。 以下のようにコマンドを打ってインストール…

gitの使い方メモ2

プログラム群をgitの管理下に置く Railsでプログラムを作成。 $ rails myproject create create app/controllers create app/helpers create app/models create app/views/layouts create config/environments create config/initializers create db create …

gitの使い方メモ

gitの管理対象のファイルを作る。 myprojectディレクトリを作る。 $ mkdir myproject $ cd myproject「uhouho」という文字列が記述されたファイル「test.txt」を作る。 $ echo uhouho > test.txt gitの初期設定 氏名とメールアドレスを設定する。 $ git conf…

RewriteRuleについて

MOBA_HOME/conf/rewrite.conf MobaSiFでは、以下のようなURLでアクセスすることをサポートしている。 http://www.uhouho.net/_bbs 上記のURLでアクセスした場合、MobaSiFの設定により下記のURLに書き換わる。 http://www.uhouho.net/?f=bbs このURLの書き換…

CSS::Tiny::Styleについて

CSS::Tiny::Styleについて、下記の問題にぶち当たった。 capnモジュールでインストールする際、Test::Perl::Criticの検査に引っかかる 属性名や擬似クラス名にハイフンやアンダースコアが入ると、きちんとパースされない これらについて少し調べた。 Test::P…

DoCoMoCSSモジュールのインストールメモ

DoCoMoCSSモジュールは「cpan DoCoMoCSS」の一発でインストールできなかった。 このモジュールをインストールする前に下記のモジュールをインストールする必要があった。 HTML::Element CSS::Tiny::Style HTML::Elementはcpanコマンドで簡単に入るが、CSS::T…

MapReduce::Lite Part.2

前回 うお、リンク貼ると自動的にトラックバックを送信するようになってたのか。恐れ多い事してもうた。 mapreduce mapreduceメソッドの中では、do_map,do_reduceが順に呼び出されている。 do_map( $spec ); do_reduce( $spec ); これらのメソッドを順に見て…

MapReduce::Lite

id:naoyaさんが書いたMapReduce::Liteのコードを読んでみた。 http://d.hatena.ne.jp/naoya/20080511/1210506301 このエントリーにあるapacheのアクセスログを解析するサンプルコードを辿っていく。 MapReduce::Lite mainパッケージから辿っていく。まずはシ…

シンボルテーブル

perlでは名前空間を「パッケージ」と呼ぶ。パッケージが基本ブロックとなり、この上にモジュールやクラスという上位概念が構築される。すべてのコードは特定のパッケージに属している。パッケージに属していないように見えるものも実は「mainパッケージ」に…

Strategyパターン

増補改訂版Java言語で学ぶデザインパターン入門作者: 結城浩出版社/メーカー: ソフトバンククリエイティブ発売日: 2004/06/19メディア: 大型本購入: 51人 クリック: 762回この商品を含むブログ (397件) を見るStrategyパターンのjavaサンプルコードをMooseで…

Template Method

増補改訂版Java言語で学ぶデザインパターン入門作者: 結城浩出版社/メーカー: ソフトバンククリエイティブ発売日: 2004/06/19メディア: 大型本購入: 51人 クリック: 762回この商品を含むブログ (397件) を見るperlのMooseとデザインパターンの勉強として、こ…

ソフトバンクの絵文字変換

utf8_to_sjisは、内部でSoftBankEncode::unicodeToEscaped()を呼び出している。 SoftBankEncode::unicodeToEscaped()は、utf-8の絵文字コードをwebコードに変換する関数である。この部分を見ていった。 unicodeToEscaped() ソフトバンクの絵文字コード(utf-8…

絵文字変換

MobaSiFの絵文字処理関係を見てみる。今回はフォームで絵文字が入力されて送信されるケースを考える。 各キャリアで絵文字を送信すると、絵文字は下記のような文字コードになる。 docomo Shift-JIS (d-sjis) au Shift-JIS (a-sjis) SoftBank UTF-8 (v-utf8) …

バイナリテンプレート読み込み

バイナリテンプレートを読み込むプログラムを書いてみた。 できるのはプレーンテキストの読み込みと変数の置き換えのみ。 perlから読み出せるようにもなっていないし、 ハッシュでテンプレートの変数を渡すようにもなっていない。 #include <stdio.h> #include <stdlib.h> #incl</stdlib.h></stdio.h>…

整理し直し

概要 MapReduceは、複数のマシンを使って分散的にデータ処理を行う仕組みである。MapReduceには、大きく分けて2つのフェーズがあり、それぞれ「Map」「Reduce」と呼ばれる。MapReduceは、この2つの処理を複数のマシンに同時に行わせる形で、分散処理を行な…

MapReduce

いきなりMapReduceの概念的なことを言われても理解できない(できなかった)ので、具体例から入っていく。 MapReduceの使用例として、検索のインデックス作成がある。 インデックス作成の流れ。 レポジトリにあるwebページを取ってくる docIDというIDをキーと…

バイナリ化

パースされたものは次にバイナリ化するのだが、その前にも少し操作がある。 オフセットの計算 パースされたものは各々下記のようにオフセット計算される。 # $raPartsにパースされた結果の配列の参照が格納されている my $ofs = 0; for my $raPart (@{$raPar…

簡易BBS

MobaSiFを使って、書き込みと閲覧をできるBBSのできそこないを作ってみた。公開されているサンプルコードを参考にした。作成手順をメモ。 BBSのためのデータベースとテーブルを作成 create database hato_bbs; use hato_bbs create table bbs (id int(11) au…

コンパイル、パース部分3

if文のところをもう少し詳しく見るために、下記のテンプレートをパースさせてみる。 $ if (message1 && message2) { $ uhouho1 $} elsif (message1 || message2) { $ uhouho2 $} else { $ uhouho3 $ } $ パース結果がこんな感じ。 $VAR1 = { 'cond' => 'mess…

Hadoop

YLUG(Yokohama Linux Users Group)さんの勉強会の動画を見て、Hadoopが気になった。http://www.ylug.jp/modules/pukiwiki/index.php?reading 動画を見たものの初めて聞く単語が満載で、ほとんど理解できず。ただHadoopがGoogleで用いられているシステムのク…

コンパイル、パース部分

MTemplate.xsのバイナリテンプレート読み込み部分を読んでいく前に、コンパイラの方を調べてみる。 MobaSiFでは、HTMLテンプレートをコンパイルしてバイナリ形式にする。このバイナリ形式のテンプレートを、プロセス間でmmapを用いてメモリを共有しながら参…

template_insert()

perlからは「template_insert()」が呼び出される。MTemplate.xsでは、 SV* template_insert(char* file, SV* rHash, SV* rHash2, SV* rHash3);と定義されている。第一引数はテンプレートファイルのパス。第二〜第四引数がテンプレートの引数。この関数では、…

MTemplateのこと

「$MOBA_HOME/src/xs/MTemplate」にあるMTemplate.xsを読んでみた。ソースの頭は、XSとmmapと標準ヘッダファイルのインクルード。 #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include <sys/mman.h> #include <stdlib.h> 次に定数を定義。 #def</stdlib.h></sys/mman.h>…