XML-RPCを知る,環境はUbuntu

概要

下図はより抜粋

クライアントがXML形式のテキストで記述された型付の引数をサーバ側アプリケーションに渡し、サーバが返り値を同じくXML形式のテキストで返すという動作をする。

perlのサンプルプログラム

Frontier::Clientのインストール(参考ページ1).

#ダウンロードとコンパイル
$ wget http://www.cpan.org/modules/by-module/Frontier/Frontier-RPC-0.07b4.tar.gz
$ gunzip -c Frontier-RPC-0.07b1.tar.gz | tar xvf -
$ cd Frontier-RPC-0.07b1
$ perl Makefile.PL
$ make
$ make test
$ sudo make install

perlプログラムの作成(参考ページ2).

$ vim test. pl

以下を記述.

use Frontier::Client;
$server = Frontier::Client->new(url => 'http://betty.userland.com/RPC2');
$name = $server->call('examples.getStateName', 41);
print "$name\n";

実行

$ perl test.pl

表示

$ South Dakota

リモートのサーバに接続し、州名を得 て、それを表示します (この例の州番号 41 は South Dakota)。

ということで

大まかなイメージはつかめた.根っこの部分は「クライアントがxml形式のテキストでデータを要求すると,サーバがxml形式のテキストで要求されたデータを返してくれる」ってこと.

その仕組みをプログラム等で呼びやすくしたものがAPIってところか...いや,それだと先程のサンプルプログラムはAPIを使用したということになるのか...?

あれ?XML-RPCAPIの違いが曖昧になってきたぞ...ぐぐると「XML-RPC API」なる言葉が.つまり,先程のプログラムはXML-RPCを利用するためのAPIを使用したものだったということだろう.

さて,休憩はこれくらいにして明日のゼミ資料をまとめよう.

論文がスラスラ読めない,数学を一から勉強するべきか

ゼミ

 今日は,上記論文をレジュメにまとめた(まだ途中…)ので,教授・研究生とdiscussionした.私の読み込みが浅く,わかり辛い説明となってしまった.以下,反省点とdisって学んだこと.なお,3.2節のアルゴリズムは実装上の問題として省略した.

反省点

  • 本来私が握るべき主導権を教授に握らせてしまう(教授に頼ってばかり).
  • 数式を理解する力がまだまだ足りない.
  • 「あれ」を頻出してしまう(これは本当に良くない).

学んだこと

  • 速度(ブックマーク数),加速度(ブックマーク数の差分)の認識が甘かった.速度,加速度と聞いて以下の式が浮かばないのは重症だな.一定期間ごとの集計であるため,分母は無視できる.


 v = \frac{dx}{dt} = \frac{x(t+\Delta t) - x(t)}{\Delta t} \\ a = \frac{dv}{dt} = \frac{v(t+\Delta t) - v(t)}{\Delta t}

  •  v_iの数式がすっきり理解できた.


 v_i = | \{ (u_k, t_k, L_k) | (u_k, t_k, L_k) \in B^T_p t_1 + (i - 1)\tau \le t_k < t_1 + i\tau \}|

    • { ~ } -> 集合 (「{}:中括弧」で括る)
    • { [集合] | [条件1] [条件2] ...} -> { [条件にmatchする集合] }
    • |{ [集合] }| -> 集合のサイズ(集合を「|:縦棒.パイプ」で括る)

 つまり,「ページpが時刻T経過後までに単位時間τで区切られたi番目の区間でブックマークされた数」を示している.数式むずい.いや日本語がむずい.

Ubuntu9.10にLAMP環境

apache2とphpのインストール(参考サイト1)

#apache2インストール
$ sudo apt-get install apache2
#phpインストール
$ sudo apt-get install php5 php5-cli

phpinfo()の表示

  • /var/www/phpinfo.php という名前でファイル作成し,以下を記述.
<?php phpinfo(); ?>
$ sudo /etc/init.d/apache2 restart

mysqlのインストール

#mysqlインストール
$ sudo apt-get install mysql-sever
  • rootのパスワードの設定を求められるので入力

phpmyadminのインストール

ブラウザ上でMySQLをいじれる便利な奴(参考サイト3).

#phpmyadminインストール
$ sudo apt-get install phpmyadmin
  • 【重要】"apache2"と"libhttpd"を選択するところは"apache2"を選択(Spaceキーで*印を付ける)し,Enter
  • MySOLのパスワードを聞かれるので先程設定したパスワードを入力
  • 再度apache2をrestart
  • http://localhost/phpmyadmin/ にアクセスしてログイン画面が出ればOK

細かいところ

上記URLを参考に設定します.今日はとりあえずここまで.

論文

読んでいる途中

ブックマークの時系列情報を利用したソーシャルブックマークにおける注目度予測

  • あるページに対して
    • ある時区間におけるBM数=ブックマーク増加の速度
    • 隣接する時区間同士のBM数の差分=ブックマーク増加の加速度
  • BM増加の加速度が大きな極大値をとる直前にページをBMしていた利用者を,そのページの重要性を発見した利用者とみなして注目
  • BMはある時点においてのみ大きく伸びるのではなく,大小の伸びが複数回あるのが一般的
  • 評価実験では本手法が「はてなブックマークの注目エントリー一覧」より優れていることを主張
  • 数式部分についてはさらっと流した(勉強不足)
  • 今後の課題:利用者の興味・関心を捕らえるための手法の提案
    • 一般に一人の利用者には興味深い分野と浅い分野があり,それに応じて情報収集のふるまいも異なると考えられる
    • 個々の利用者がBMに付与したタグを用いてこの違いを捕らえることができそう

Ubuntu9.10でPDFとLatex

参考サイト

  1. http://bach.istc.kobe-u.ac.jp/lect/tamlab/ubuntu/latex.html
  2. http://www.ubuntulinux.jp/products/JA-Localized
  3. http://uls.fam.cx/freebsd/archives/002200.html

インストール

「システム」→「システム管理」→「日本語環境セットアップ」が上手く動かなかったので,「システム」→「システム管理」→「Synapticパッケージ・マネージャー」から以下をインストール.

  • xpdf-japanese
  • adobereader-jpn, adobereader-jpn-ipamonafont
  • latex-env-ja, latex-extra-ja

※パッケージがない場合は参考サイト2を参照して,Japanese Teamのパッケージレポジトリを追加する.端末上から以下のコマンドを入力.

wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
sudo wget https://www.ubuntulinux.jp/sources.list.d/karmic.list -O /etc/apt/sources.list.d/ubuntu-ja.list
sudo apt-get update 

これで上記をインストール可能となる.
こちらも端末上からインストールする.

sudo apt-get install texlive-latex-extra
sudo apt-get install latexmk dvipng
sudo apt-get install xpdf gs-cjk-resource
sudo apt-get install vfdata-morisawa5 dvi2ps-fontdesc-morisawa5
sudo apt-get install cmap-adobe-japan1 cmap-adobe-japan2 cmap-adobe-cns1 cmap-adobe-gb1
sudo jisftconfig add

latexmkの設定

参考サイト1の「latexmkの設定」を参照する.

使う

参考サイト1の「とりあえず使ってみる」を参照する.

  • texファイルの文字コードEUC-JP
  • Vimでは"e ++enc=euc-jp"と打ち込むことで文字コードEUC-JPにすることができる
  • PDF上では日本語が問題なく表示できるが,印刷となるとアルファベットしか表示されない問題については,参考サイト3を参照

以下のパッケージをインストールするだけで問題解決.

sudo apt-get install poppler-data

3度ぐらいハマりましたがなんとかインストールできました.

コマンドまとめ<2010.09.05 追記>

sudo apt-get install xpdf-japanese adobereader-jpn adobereader-jpn-ipamonafont latex-env-ja latex-extra-ja
sudo apt-get install texlive-latex-extra latexmk dvipng xpdf gs-cjk-resource vfdata-morisawa5 dvi2ps-fontdesc-morisawa5 cmap-adobe-japan1 cmap-adobe-japan2 cmap-adobe-cns1 cmap-adobe-gb1 poppler-data
sudo jisftconfig add

Windows Vista上のVirtualBox 3.1.6にUbuntu9.10を

上記からファイルを落とし,VirtualBoxをインストール.

VirutalBoxを起動し,新規からUbuntu用の設定をする(メモリの割り当て量など).

Ubuntuの起動.インストールを選択すると初回起動ウィザードが立ち上がる.
どこかで「CD/DVDドライブのマウント」にチェックし,先ほどダウンロードしたUbuntuのイメージファイルをマウント.
参考(Webサイト制作用のテスト環境作り(VirtualBox〜Ubuntuのインストールまで) - 考えてる途中)

以下略.
後は少し待ってインストール終了.

Guest Additions

これを入れるとホストOS(Vista)とゲストOS(Ubuntu)間でマウスの行き来がしやすくなったり,画面のりサイズを勝手にやってくれたり,何かと便利なので入れるべき(ファイル共有もできるみたい).

  1. デバイス→Guest Additionのインストールを選択.
  2. マウントされた場所に移動して
% cd /media/cdrom0
% sudo ./VBoxLinuxAdditions-x86.run

後は再起動すれば適応される.

実は前から入れていたんですが…

急にxmlファイルがないよーって怒られるようになって,対策がわからずにアンインストールする羽目になったわけです.
今回はGuest Additionsのインストールが上手いこといかずに苦戦しました.参考サイトがバージョンが新しくなって2番目の処理はいらないような書き方をしていたので混乱.
とまぁ,雑すぎるメモとなり大変恐縮であります.

さてこれからVimの設定,Webサービス開発環境を整えようかと.

メールが届いた

livedoorは仕事が早い*1.先ほどのデータの乗ったURLが届きました.

<基本情報>

  • レコードの中身

"ユーザID(num)","URL","作成時刻","タグ1 タグ2 タグ3…"

  • データサイズ
$ wc ldclip_dataset_200912.csv 
2467496   8472416 263373911 ldclip_dataset_200912.csv

クリップ数,単語数,バイト数,ファイル名

  • ユーザについて

ユーザIDではなくなく,ユニークID(数値)が割り振られている(規模:4万ユーザ)<2010.5.15訂正>(規模:45031ユーザ)

*1:さすがに自動返信ではないだろ