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

HTMLにPerlスクリプトを埋め込む

ePerl(Embedded Perl)は、JSP(JavaServer Pages)やeruby(Embedded Ruby)と同様に、HTMLにPerlスクリプトを埋め込み、それをWEBサーバー側で解釈した結果をWEBブラウザに提供する仕組み(SSI:Server Side Includes)である。残念ながらePerlは、1998/8…

コンピュータプログラムに関する乱暴な解釈

未来のプログラマに捧げる コンピュータのソフトウェア、つまり電気信号の論理解釈は、コンピュータの登場以来全く変わっていない涸れた技術であり、非常にシンプルなままである。「なぜ変わらないのか」を個人的に解釈すれば、すべての事象や物体は、或る条…

Perl - XSでDLLを呼び出す(その9)

今回は複数の戻り値を返すサブルーチンを実装する。 複数の戻り値を持つサブルーチンの書き方 実装に入る前に、戻り値が複数存在するサブルーチンの書式を概ね把握して置こう。その書式は以下のようになる。 void <サブルーチン名>(<引き数名列>) INPUT: <引…

dev_img-1.3のヘッダ破損

以下のZaurus開発環境に含まれる実数演算関数のプロトタイプが定義されているtgmath.hは破損している。 フォルダイメージのdev_img-1.3.tar.gz cramfsイメージのdev_img-1.3 cramfsイメージのdev_img-1.5(現時点では参照不可) squashfsイメージのdev_img-1…

Perl - XSでDLLを呼び出す(その8)

今回は複数の実数を足した結果を返すサブルーチンを実装する。 新しいモジュールを準備する 練習がてら、「その3」を参考に新しいExample3モジュールを準備する。 2つの実数を足した結果を返す 引き数で指定された2つの実数を足して、その結果を返すサブルー…

stunnelでSMTP/POP3 over SSLを実現する

2007/04/14に紹介したstunnelをZaurus用にパッケージ化したので掲載する。 ダウンロード ソースはここからダウンロードし、dev-img-1.3でセルフコンパイルした。download:stunnel_4.20-1_arm.ipk ビルド/実行環境 ビルド時や実行時にOpenSSLが必要であるた…

stunnelで簡単暗号通信

stunnelなるOpenSSLを利用したTCP通信プロクシが存在することを知った。メーラ自体が対応していなくとも、SMTP/POP3 over SSLのメールサーバに接続することができるようだ。本家サイト:http://www.stunnel.org/google:stunnelで検索すると、有益な情報が得…

Xoopsのインストールにおける注意点

Xoopsのインストール時に、指定しているパラメータが全て正しいにも関わらず、データベースの試行に失敗することがある。 私が遭遇したこの現象の原因は、MySQL 4.1以降で変更されたパスワードハッシュアルゴリズムにあった。 Xoopsのソースを解析した結果、…

Perl - XSでDLLを呼び出す(その7)

今回はここまで分かったことのまとめを行う。 固有マクロ XSサブルーチン内で使用するための以下のマクロが存在する。 STマクロXSサブルーチンに渡された引き数をスタックから取り出す。 SvIVマクロSV(Scalar Value)を整数に変換する。 SvNVマクロSVを実数…

PDKを購入した

訳があってPDK (Perl Dev Kit) 7.0 Deployment Toolsを購入した。キャンペーン期間中とは言えUS$115(約14000円)もしたのだが、残念なことに以下のエラーが発生しインストールに失敗してしまった。 【最初から発生するエラー】 An error occurred during th…

Perl - CPAN - DBD::CSVパッケージ

ここに掲載するものは、塚本さんにパッケージ化して頂いているZaurus用Perl 5.6.1に追加でインストールするPerlライブラリのDBD::CSVである。ソースはここからダウンロードし、dev-img-1.3でセルフコンパイルした。download:lib-perl-dbd-csv_0.22-1_arm.ip…

Perl - CPAN - SQL::Statementパッケージ

ここに掲載するものは、塚本さんにパッケージ化して頂いているZaurus用Perl 5.6.1に追加でインストールするPerlライブラリのSQL::Statementである。ソースはここからダウンロードし、dev-img-1.3でセルフコンパイルした。download:lib-perl-sql-statement_1…

Perl - CPAN - Text::CSV_XSパッケージ

ここに掲載するものは、塚本さんにパッケージ化して頂いているZaurus用Perl 5.6.1に追加でインストールするPerlライブラリのText::CSV_XSである。ソースはここからダウンロードし、dev-img-1.3でセルフコンパイルした。download:lib-perl-text-csv+xs_0.23-…

BATファイルで簡易電卓を作る

Perlでは以下の大変短いコードで「$a = 10」、「$b = sqrt($a)」のように使う簡易的な関数電卓を作ることができる。 while (<>) { $r = eval; print (($@) ? $@ : "$r\n"); } 実はBATファイルでもある程度短いコードで「a = 10」、「b = a + 20」のように変…

Perl - CPAN - DBD::Pgパッケージ

ここに掲載するものは、塚本さんにパッケージ化して頂いているZaurus用Perl 5.6.1に追加でインストールするPerlライブラリのDBD::Pgである。ソースはここからダウンロードし、dev-img-1.3でセルフコンパイルした。download:lib-perl-dbd-pg_1.32-1_arm.ipk…

Perl - CPAN - DBIパッケージ

ここに掲載するものは、塚本さんにパッケージ化して頂いているZaurus用Perl 5.6.1に追加でインストールするPerlライブラリのDBIである。ソースはここからダウンロードし、dev-img-1.3でセルフコンパイルした。download:lib-perl-dbi_1.38-2_arm.ipk現時点の…

Perl - CPAN - Test::Simpleパッケージ

ここに掲載するものは、塚本さんにパッケージ化して頂いているZaurus用Perl 5.6.1に追加でインストールするPerlライブラリのTest::Simpleである。ソースはここからダウンロードし、dev-img-1.3でセルフコンパイルした。download:lib-perl-test-simple_0.62-…

Perl - CPAN - Test::Harnessパッケージ

ここに掲載するものは、塚本さんにパッケージ化して頂いているZaurus用Perl 5.6.1に追加でインストールするPerlライブラリのTest::Harnessである。ソースはここからダウンロードし、dev-img-1.3でセルフコンパイルした。download:lib-perl-test-harness_2.5…

PostgreSQLをインストールする

ダウンロード データベースを勉強するために環境を持ち歩くことはできないかと考え、Zaurus(SL-C3000)用のPostgreSQLをGoogle検索したところ、以下のURLにSL-Cシリーズ用のPostgreSQL 7.4.16を発見した。FocV Projectさんに感謝する。http://www.focv.com/…

Perl - XSでDLLを呼び出す(その6)

今回は渡された文字列を返すサブルーチンを実装する。 渡された文字列を返す 引き数で指定された文字列をそのまま返すサブルーチンをExample2.xsに追加で実装する。 char * echo_pv(s) INPUT: char *s; CODE: RETVAL = s; OUTPUT: RETVAL以下の点がecho_ivや…

Perl - XSでDLLを呼び出す(その5)

今回は渡された実数を返すサブルーチンを実装する。 渡された実数を返す 引き数で指定された実数をそのまま返すサブルーチンをExample2.xsに追加で実装する。 NV echo_nv(n) INPUT: NV n; CODE: RETVAL = n; OUTPUT: RETVAL以下の点がecho_ivサブルーチンと…

Perl - XSでDLLを呼び出す(その4)

今回はXSの仕組みに迫って見ようと思う。 XSファイルの行方を探る Windowsにおいて、XSファイルは最終的にDLLファイルに変換される。これを実現しているのは、XSUBPPと言うXSファイルをCファイルに変換するプリプロセッサと、Microsoft Visual C++と言うコン…

dump/restoreでPC交換

VMware上にCentOS 3.7を使用したサーバ環境を構築してテストを行ったが、上手く行ったので実機にサーバを移動することになった。 ところが、VMwareでゲストOSをLinuxにすると、仮想HDDがデフォルトでSCSIとなることに気が付かなかったために、SCSI HDDからID…

Perl - XSでDLLを呼び出す(その3)

今回は簡単なサブルーチンを実装して見る。 新しいモジュールを準備する 以下のコマンドで新しいモジュールを準備する。 > cd /d c:\xs > h2xs -n Example2 > cd Example2出来上がったExample2.xsは以下の内容である。なお、行頭に ">" の付いた行は各エリア…

Perl - XSでDLLを呼び出す(その2)

前回の続きとして、作成したExample1モジュールを使って見る。 インストールする前に使用する 以下のスクリプトを "c:\xs\Example1\TestEx1.pl" として保存する。 use ExtUtils::testlib; # @INCにblib\archとblib\libを追加する use Example1; print TEST_C…

切れてるチーズ&チーズ

「切れてるチーズ&チーズ」と聞いて、「切れてるチーズ」の姉妹品だろうと思わない人は何人いるだろうか? 私もまんまとメーカの思惑にはまった口である。 前者のメーカは雪印乳業、後者は森永乳業で正式名称は「クラフト切れてるチーズ」である。雪印は自…

ヨーカドーのおじさんのグッドジョブ

イトーヨーカドーへ自転車で買い物に行ったが、買わなければならない物があまりにも多く重いため、一人では自転車まで戻り難い状態になってしまった。 そのとき、地下のカート整備のおじさんが「これ運びましょうか」と気さくに言って、一番重い18Kgの水を自…

- Perl - XSでDLLを呼び出す(その1)

PerlにC/C++で作成したプログラムを組み込むためには、XSインターフェースを実装したモジュールを作成する。XSインターフェースの概念を説明すると長くなるし、私自身が完璧に理解している訳ではないので、こうすれば良いと言う方法を主に説明することにする…

PerlでMPlayerを制御する

mprndはランダム音楽プレーヤである。 はじめに 私のZaurus(SL-C3000)には、MusicPlayerと言う結構立派な音楽プレーヤが付いている。また、MPlayerのフロントエンドであるZPlayerやKino2などの素晴らしいものも存在する。 しかし、それらはプレイリストを…

Perl - CPAN - MP4::Infoパッケージ

ここに掲載するものは、塚本さんにパッケージ化して頂いているZaurus用Perl 5.6.1に追加でインストールするPerlライブラリのMP4::Infoである。ソースはここからダウンロードし、dev-img-1.3でセルフコンパイルした。 セルフコンパイルとは言っても、実際には…