フェムトセカンド #七味とーがラジオ / @melonsode

The Destination is unknown. The Journey is the Reward.
Author: 野澤真一 / NOZAWA Shinichi , version 2.0220330 / Podcast: 七味とーがラジオ / twitter: @melonsode

Octave,R,Perl, その他プログラミングtips: 2008年アーカイブ

This is MAMP, not LAMP!

| | トラックバック(1)

カテゴリ:

ちょっと感動したのでご報告。

* * *
ブログ作成ツールMovableTypeに関わるバイトをはじめてそろそろ10ヶ月。
その頃は少しPerlが使えるぐらいだったけど、
MovableTypeの開発に携わるうちに、それに関連する領域のことも
わかるようになってきた。

現在のWeb上で展開されているブログやブックマークやSNSなどのサービスは、
ほぼすべてLAMPというフレームワークによって動いている。
バイトは始めた当初は「LAMPね、へーそう」てな感じだったんだけど、
LAMPを構成するひとつひとつを理解するようになって、
それでLAMPというのは、フリーなのになんて広汎で強力な
プラットホームなんだ!と驚きを新たにしている。

LAMPというのは
・Linux
・Apache
・MySQL
・PHP
の頭文字を取ったものだ。

Linuxは言わずとしれたフリーのOS。
Apacheはサーバーのソフトのこと。
サーバーというのは「サーバー」という種類のコンピュータが
あるのではなくて、
あるコンピュータ上で「サーバー」として振る舞うソフトが
動いているもののことを指す。
その「サーバー」として振る舞わせるソフトがApache。
それから、データベースの閲覧・追加・変更を行うのがMySQL。
最後に、とてもMySQLと相性がよく、かつ
Webページを動的に生成するのに長けているプログラム言語がPHP。

MySQLはSQLiteとかPostgreSQLなどでも代替可能だし、
PHPもPerlやRUbyやPythonでも代替可能。

おおざっぱに言えば、
MySQLで強力なデータベース制御を行い、
その為のWeb経由のインタフェースを提供するものとしてPHPがあり、
LinuxとApacheでそれを支えている感じ。

* * *

で、何に感激したかというと、
ほとんど何もせずにそのLAMP環境をMac上で実現できてしまう。
だから、LAMPならぬMAMP(Mac, Apache, MySQL, PHP)なのである。

参考ページ:Max OS X LeopardでAMP環境を構築しよう - Apache, MySQL, PHP, Perlで作る開発環境

futomiさんのわかりやすい解説に感謝!

ApacheもPHPもMac OS X Leopardにははじめからインストールされているので、
何もする必要はない。
MySQLはインストールする必要があるけれど、
ダウンロードしてダブルクリック、する程度で済んでしまう。

Apacheの起動がほんの数クリックでできたのは感動だった。
システム環境設定>共有>ウェブ共有
をONにするだけ。

で「http://localhost/」とすると、有名な
「あなたの予想に反してこのページが見えているでしょうか?」
というApacheがデフォルトで返すHTMLが見えた。

PHPはコンフィグファイルを一行修正するだけで動く。
あ、Apacheの再起動を忘れずに。
あっさりと、「<?php phpinfo() ?>」とだけ書いたPHPファイルが動いたので、
やはり感動した。

独自でサーバー上のシステムの開発をしない人には
ぴんと来ないし、やろうとしてもちょっと難しい部分はあると思うけど、
(昔の自分がそうだった)
ちょっとサーバーのことを知っているひとなら
とても簡単にこれを導入して使えると思う。

解説記事を書いてくださったfutomiさんに再度感謝!

install R in CentOS 5.2

| | トラックバック(1)

カテゴリ:

こんどはCentOS 5.2に統計ソフトRをインストールしたときの話。

yumはすでに入っているとする。

http://cran.md.tsukuba.ac.jp/bin/linux/redhat/

まずはRをとってくる。

# wget http://cran.md.tsukuba.ac.jp/bin/linux/redhat/el5/x86_64/R-2.8.0-1.rh5.x86_64.rpm

そして、とりあえずrpmしてみる。

# rpm -ivh R-2.8.0-1.rh5.x86_64.rpm

そうすると依存性の問題がいろいろ表示されるはず。
自分の場合は以下のように。

error: Failed dependencies:
cups is needed by R-2.8.0-1.rh5.x86_64
libXmu.so.6()(64bit) is needed by R-2.8.0-1.rh5.x86_64
libgfortran.so.1()(64bit) is needed by R-2.8.0-1.rh5.x86_64
libtk8.4.so()(64bit) is needed by R-2.8.0-1.rh5.x86_64

上記4つをひとつづつ解決していく。

# yum install cups

で、cupsとやらはOK。
次はlibXmu.so.6というやつ。

# yum install libXmu.x86_64

とやればOKだった。
次、libgfortran.so.1

# yum install libgfortran.x86_64

で、できました。
次、libtk8.4.so。

# yum install tk-8.4.13-5.el5_1.1.x86_64.rpm

で、できた。

これでできるかな?と思って、先ほどwgetしてきたRのrpmファイルをyumしてみた。

# yum install R-2.8.0-1.rh5.x86_64.rpm

そうしたらGPGキーに関するエラーで。

warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 99b62126 Public key for R-2.8.0-1.rh5.x86_64.rpm is not installed

GPGキーのことはよくわからないので、rpmをする。

# rpm -ivh R-2.8.0-1.rh5.x86_64.rpm

こうしたらインストールできたみたい。

「R」と打ったら見事Rが起動した。



install yum in CentOS 5.2

|

カテゴリ:

CentOS 5.2では、インストールしただけではyumが使えないのかもしれない。
yumをインストールする手順を書きます。

環境は以下。
OS: CentOS release 5.2
CPU: x86_64

まず、yumをインストールするためのrpmパッケージを探す。
www.centos.org - centos.org content
この中からJAPANの配信元を探す。
Japan A.T. WORKS, Inc.
Japan Internet Initiative Japan Inc.
Japan JAIST
Japan KDDI R&D Laboratories Inc.
が、ある。
で、「5.2」で「updates」で「x86_64」で「RPMS」とリンクを辿る。
わからなければここ。
http://ftp2.riken.jp/Linux/centos/5.2/updates/x86_64/RPMS/

そのなかから、「yum-3.2.8-9.el5.centos.2.1.noarch.rpm」のリンクを探す。

そのアドレスを入力してwgetして、rpmでインストールする。

# wget http://ftp2.riken.jp/Linux/centos/5.2/updates/x86_64/RPMS/yum-3.2.8-9.el5.centos.2.1.noarch.rpm
# rpm -ivh yum-3.2.8-9.el5.centos.2.1.noarch.rpm

ところが、たぶんそれだとうまくいかない。
wgetでファイルの取得はできるだろうけど、rpmは依存性の問題がいろいろ出てくる。

具体的には、次のようになった。

# rpm -ivh yum-3.2.8-9.el5.centos.2.1.noarch.rpm
warning: yum-3.2.8-9.el5.centos.2.1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
error: Failed dependencies:
python-elementtree is needed by yum-3.2.8-9.el5.centos.2.1.noarch
python-iniparse is needed by yum-3.2.8-9.el5.centos.2.1.noarch
python-sqlite is needed by yum-3.2.8-9.el5.centos.2.1.noarch
urlgrabber >= 3.1.0 is needed by yum-3.2.8-9.el5.centos.2.1.noarch
yum-fastestmirror is needed by yum-3.2.8-9.el5.centos.2.1.noarch

というわけで、yumをrpmする前にこれらの依存性を解決しなければならない。
詳しく書くのはめんどくさいので、実行して成功したコマンドだけ。
ひとつひとつgoogleで検索しながらやった。

wget http://ftp2.riken.jp/Linux/centos/5/os/x86_64/CentOS/python-elementtree-1.2.6-5.x86_64.rpm rpm -ivh python-elementtree-1.2.6-5.x86_64.rpm

wget http://ftp2.riken.jp/Linux/centos/5/os/x86_64/CentOS/python-iniparse-0.2.3-4.el5.noarch.rpm
rpm -ivh python-iniparse-0.2.3-4.el5.noarch.rpm

wget http://ftp2.riken.jp/Linux/centos/5/os/x86_64/CentOS/python-sqlite-1.1.7-1.2.1.x86_64.rpm
rpm -ivh python-sqlite-1.1.7-1.2.1.x86_64.rpm

wget http://ftp2.riken.jp/Linux/centos/5/os/x86_64/CentOS/python-urlgrabber-3.1.0-2.noarch.rpm
wget http://ftp2.riken.jp/Linux/centos/5/os/x86_64/CentOS/m2crypto-0.16-6.el5.2.x86_64.rpm
rpm -ivh m2crypto-0.16-6.el5.2.x86_64.rpm
rpm -ivh python-urlgrabber-3.1.0-2.noarch.rpm

wget http://ftp2.riken.jp/Linux/centos/5/os/x86_64/CentOS/yum-metadata-parser-1.1.2-2.el5.x86_64.rpm
rpm -ivh yum-metadata-parser-1.1.2-2.el5.x86_64.rpm

ここまでやればyumをインストールできる。

# rpm -ivh yum-3.2.8-9.el5.centos.2.1.noarch.rpm

yumが入ったら、早速yumでyum-fastestmirrorをインストールしてみる。

# yum install yum-fastestmirror

すでにインストールされてるよ!とかでるかもしれないけど、
とりあえずyumが動くことを確認できる。


# yum update

とやって、yumを更新すると、ずらずらずらっといろいろ更新される。




install Octave in CentOS 5.2

|

カテゴリ:

レンタルサーバ(root権付き)にsshで接続して、Octaveをインストールした。
わりと苦労したのでここに記す。

サーバーの環境は以下。
My Environment:
- OS: CentOS release 5.2
- CPU: x86_64


1. Extend "yum" before install octave


If you extend your "yum", you can intstall octave without manual compile. What you should do is to add Fedora EPEL repository and RPMforge repository to your system.

yumでoctaveをインストールするために、
Fedora EPELリポジトリとRPMforgeリポジトリを追加します。
両方必要かどうかはわからないけど、RPMforgeだけでは無理だった。

:::Fedora EPEL reposiroty
# wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-2.noarch.rpm
# rpm -ivh epel-release-5-2.noarch.rpm
:::RPMforge repository
# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

Reference:
- Linux/CentOS yumの設定 - PukiWiki Plus!
- CentOS 5 インストール個人的ノート


2. Resolve dependencies before install octave

Next, install compilers which are necessary for install octave.
Please "yum" these.

Octaveをインストールするのに必要なコンパイラ群をインストールします。
yum install gcc
yum install gcc-c++
yum install gcc-gfortran

And other necesary packages.
ほかに必要なパッケージもyumします。
yum install readline
yum install gnuplot
yum install blas
yum install lapack

Reference:
- GNU Octave 2.9のコンパイルとインストール(Linux)


3. Resolve direct dependencies for octave

Third, resolve direct dependencies for octave.
今度はoctaveと直接依存性のあるファイルをyumでインストールします。

yum install fftw3.x86_64
yum install glpk.x86_64
yum install qhull.x86_64
yum install suitesparse.x86_64


4. Install Octave

Finally, install Octave by yum.
最後に、yumでOctaveをインストールします。

yum install octave.x86_64


The dependency problem of lacking hdf5 will be solved automatically.
(hdf5 version 1.6.7 will be installed though current latest version is 1.8.1)


PostScript

Octaveをインストールする前にhdf5もyumでインストールしたのだが、
そうすると

Error: Missing Dependency: libhdf5.so.0()(64bit) is needed by package octave


というエラーがでた。
そこでこのhdf5をアンインストールして(yum remove hdf5)、
yum install octave.x86_64としてみたら、
hdf5の依存性は自動的に解決してくれた。
どうもhdf5のバージョンによってoctaveがうまくインストールできるときと
できないときがあるようだった。

First, I installed hdf5 before install octave.
But when I install octave, an error below was appeared.
"Error: Missing Dependency: libhdf5.so.0()(64bit) is needed by package octave"
So I delete hdf5(yum remove hdf5) and tried again to do "yum install octave".
Then I succeeded to install octave.
I wonder there is suitable version of hdf5 for octave.
It's not the latest version.

Octave: file open, read and close

|

カテゴリ:

オクターブの使い方であやふやなままにしているのが、
ファイルをオープンしてその中のデータを
ベクトル、あるいは行列として格納しなおすあたり。

このページを読んだら勉強になった。
Octaveでfileを利用する話

やはりOctaveは文字列の処理があまり得意ではないので、
文字列と数値が混在するファイルだと、
読み込みのスクリプトは煩雑になる。

Perlなどのテキスト処理が容易な言語で、
読み込みたいデータをいったん前処理してから
Octaveに渡すのがいいと思う。

Octave本家のヘルプ:
GNU Octave: 16.2 Cスタイルの入出力関数


* * *
過去の日記より

2007/10/21 日曜日 メモ octave
2007/10/21 日曜日 メモ octaveに関するもの

How to install "Octave" in Mac OS X Leopard

| | トラックバック(2)

カテゴリ:

もう一度MacBook AirでOctaveを使えるようになるまでを解説します。
以前、PowerBookを使っていたときにOctaveをインストールをしたときよりも
格段にインストールは簡単になっています。
が、ちょっとしたことでつまづいたので、躓いた人のために。

僕の環境は以下。
Mac OS X 10.5.4 Leopard (MacBook Air)
Octave: Version 3.0.2
Gnuplot: Version 4.2 patchlevel 3

一応、Octaveについて解説。
Octaveとは理系や心理学系で超代表的な数値解析ソフトウェアである
Matlabと(それなりに)互換性のある、フリーの数値解析ソフトです。

フリーです。フリー。
Matlabが持つような多様で強力なtoolboxはありませんが、
基本的な行列演算はしっかりできます。
またやはりフリーソフトのグラフ描画ソフト gnuplot と連携することで、
gnuplotができる範囲での2次元、3次元グラフが簡単に出力できます。

フリーだしそこそこ強力な数値計算能力があるので、
とりあえず使ってみることをおすすめします。
しかし、これまではとりあえず使ってみるにはインストールが
煩雑すぎました。

しかし、つい最近にとても簡単にインストールできるバージョンが
リリースされました。
ので、とりあえず試してみることを、強くお奨めします。

:::インストール方法。

1.以下のページから「octave-3.0.2-i386.dmg 」をDLしてください。(26.6M)
(intel Macじゃない人はoctave-3.0.2-ppc.dmg の方をDLするんだと思います)
http://sourceforge.net/project/showfiles.php?group_id=2888&package_id=237839
or http://sourceforge.net/projects/octave

2.このdmgファイルをマウントしてください。

3.「Octave.app」というファイルをアプリケーションフォルダにドラッグアンドドロップしてください。これで、Octaveのインストールは完了!

4.Gnuplotがインストールされていない場合:octave-3.0.2-i386.dmgにgnuplotが含まれています。octave-3.0.2-i386.dmgの中のextrasフォルダを開きます。そのなかに「gnuplot-4.2.3-i386.dmg」というファイルがあります。これをマウントします。

5.「Gnuplot.app」というファイルをアプリケーションフォルダにドラッグアンドドロップしてください。これで、Gnuplotのインストールは完了!

6.AquaTermがインストールされていない場合:下記のページからAquaTermをDLしてください。
http://sourceforge.net/project/showfiles.php?group_id=39915
or http://sourceforge.net/projects/aquaterm/

7.dmgをマウントし、AquaTerm.pkgをダブルクリックしてインストール!

以上でOctave, Gnuplot AquaTermのインストールが完了です。
試しにOctaveを使ってみましょう。


:::Octaveの起動とグラフ描画と終了

1.アプリケーションフォルダのOctave.appをダブルクリックします。

2.そうするとターミナルが起動し、次いでその中でOctaveが起動します。

3.「x=1:30」と打ってエンターします。

4.「plot( x, sin(x/pi) )」 と打ってエンターします。

5.そうするとAquaTermが起動してサインカーブが描画されることでしょう!

6.終了するために「exit」と打ってエンターします。

octaveTerminal.png

sinCurve.png

見事、グラフが表示されたでしょうか?
そうあることを祈ります。

ターミナルで「octave」と打つだけでOctaveを起動させることができるように
することもできます。
それについては以下のページを参考にしてください。

gnuplot can't show graphs - フェムトセカンド

「.bash_profile」に

alias gnuplot="/Applications/Gnuplot.app/Contents/Resources/bin/gnuplot"
alias octave="/Applications/Octave.app/Contents/Resources/bin/octave"

の二行が加えられればOKです。



プロフィール

月別アーカイブ

全アーカイブ

フェムトセカンド1.0


メールを送る(故障中)