Nov 30, 2005
データベースへの接続
PerlのDBIモジュールや、PHPからのデータベースへのアクセスはホームページを全体的に再構築できる可能性に満ちている。
MysqlやPostgresqlへの接続をすぐ実験できるのは、自作サーバの強みだと思う。必要なモジュールをCPANからインストールするのも簡単だし。
静的HTMLは、ほかのプロトコルで転送しなくてはならないが、全体的にweb上で操作できる方向に行くと思う。
いちばん簡単なデータ保存は一つのファイル(カンマ区切りファイル=CSVや適当な区切り子を使ったテキストファイル)への蓄積だろう。しかし、データが多くなってきて複雑になってきた場合、MysqlやPostgresqlのほうが全体的なデータを、データベースで直接管理できるのが違う。それに大きくなった一つのファイルへのアクセスよりも間違いなく高速であるし、負荷が少ない。検索なども簡便になりそうだ。
すると、ホームページ領域の楽しさ、豊富さを追求するうえでは、この方向でいろいろやってみるのがやはり楽しそうだ。そのなかで独自のアイデアが出てきたらさらにおもしろい。
ただ、こういう試みは実際に新しいデータを追加しつつ遊ばないと楽しくない。
Nov 28, 2005
Nov 27, 2005
fortuneとblogpetのテスト
fortuneプラグインと、blogpetを試験的に右サイドに入れてみた。
fortuneはLinuxのシステムに組み込まれている引用のエントリを取り出すが、これは独自に新しい辞書を作ることは可能である。
長尾高弘さんが、ご自分のサイトで詩の引用をアクセスするごとに表示するのをやっているが、それと同じような感じのpluginである。UNIXのfortune cookieの説明は長尾さんが日本語で詳しく書いている。
longtail
blogpetはflashが使われている。このシステムは、伝言などいろいろ機能があるが、枠の下に広告が出るので(月315円を払うとプラチナ会員になり、広告を出ないようにできるらしいが)、数日でやめるかもしれない。
ただ灰皿町以外のblogを使う方は、おもしろくて参考になるかもしれないので、試しに入れてみた。また、「これはおもしろい、315円払っても……広告が出て無料のほうがいいけど、やりたい」ということになれば検討しますが、なんとなく灰皿町では広告は出てほしくない感じ……。
Nov 25, 2005
MysqlでSQLテーブルの作成
Mysqlをインストールしてあれば、データベースにたとえば歳時記(俳句)のデータベースを作成することができる。
データベースはほとんど使ったことがない(web関連以外)。なぜかというと処理したいデータが住所録ぐらいしかない(^^)。
でもこれは普通に考えればとても便利だ。エクセルやOpenOfficeOrgのデータをたやすく入れることができるだろう。しかもそれはwebのPerlのCGIやPHPのページから使える!
というわけでパラシュート型勉強法(泥縄式ともいう^^)で、たとえばpoembookというデータベースを作り、その中に俳句のテーブルを作る。
以下のファイルを適当な名前で保存して、phpmyadminのpoembookというデータベースの中でSQLコマンドを参照ファイルから実行する。
CREATE TABLE haiku (
id int(11) NOT NULL auto_increment,
p_name text NOT NULL,
p_id int(11),
p_tit text NOT NULL,
p_auth text NOT NULL,
p_hon text NOT NULL,
g_date datetime,
PRIMARY KEY (id)
);
Nov 24, 2005
歳時記スクリプト
『俳句歳時記』を書けるようにするために、CGIを書いているが、やっとperl-mysqlの連係というところまでいった。
たぶんPHPのほうが書きやすいが、なんとかPerlで書いてみようか、というところ。
データベースを使うのは検索時にたぶんやりやすいなど、いろんな意味でいいと思ったので。しかし、DBIというperlモジュールを使うのは初めて。
でもこれ完成するかな?(^^)
blogのようにカレンダーの数字から、その日に書かれたものを表示するようにしたい、などいろいろと複雑化してしまう。カレンダーからの表示は項目数の設定が、前に作ったデータベースと互換性があるようにしたいと思っているので無理かもしれない。
互換性を持たせておけば、データベースの全データから検索することができるようになるはずだ。
でもこれはちょっと1年ぐらいかかりそう。
とりあえずはperlとデータベースの連係を理解する楽しみというところかもしれない。
やはりもう少しphpで作った詩集生成スクリプトを洗練させるべきかな。
Nov 21, 2005
CGIを書く
いざ書くとなると、過去に書いたのの切り張りふうになってくる。
いろいろと一気に作るのも大変なので、モジュールの実験などしつつ、ひとつひとつ書いていこうと思う。
CGIはソースを公表しつつ、という具合にはなかなかいかない。手の内がそのまま見えるからだ。
書き込みページ
表示ページ
と中心は「データ入出力」だ。
Nov 18, 2005
灰皿町 俳句歳時記
「灰皿町 俳句歳時記」のCGIをテスト的に作ろうと思っている。
なぜなら、分類ということでも、データベースということでも、日常の季節の流れということでももっともやりやすいからだ。
せっかくなので、写真もアップロードOKというのもいいかもしれない。植物ならばpecoさんの植物園の検索に飛ばせられる。
これをとりあえずはパスワードをかけて限定された書き手によって評釈する。
ただし、初め体裁をあまり考えないので、表示は汚なくなるかもしれない。
「詩作品」もやり方によってはおもしろいが、これは海外のサイトを参考にしていずれやってみたい。
自宅サーバでPerlモジュールのインストール
下のやり方でちょっとテストでDate::Calcを使ったスクリプトを動かしたら、どうもDate::Calcが入っていない。
そこでCPANモジュールからインストールである。
rootになって、
#perl -MAPAN -e shell
と起動する。
最初にこのコマンドを実行すると、
Are you ready for manual configuration? [yes]
と質問されるので、yesと入力してエンターキーを押す。
その後の質問では、エンターキーを押し続け、ミラーサイトの選択で、地域の数字を入力する。
国名の数字を入力する。
ミラーサイトの選択で、適当に選んで選択。
cpan>
というプロンプトが出るまでエンターキーを押し続ける。
cpan>
が表示されたら、
cpan>install DBD::CSV
など必要なモジュールをインストールできる(この場合はDBD::CSV)。
終わったら、
cpan>quit
で抜ける。
自宅サーバでは必要になったモジュールを自由にインストールできるところがうれしい。
Nov 17, 2005
詩のデータベース
去年だったか、PHPとMySQLを使って、詩集を構築するスクリプトを書いた。
これは、検索や統合などをやるときにも(まだ利用していないが)、単純なデータベースを作れる。
要は、それをweb上にアップロードした日付、作品を書いた日付、書き手、タイトル、詩の本文、註、作品表示順ぐらいの項目にweb上から書き込めればそれでOKなのだが、じつはこのデータベースはリアルタイムで書かれる作品集にいちばん向いている。
たとえば30編ぐらいでまとめた詩集は、入力して、しばらく推敲するという半静的なテキストだ。
ほんとうは流動的な日常に沿ったテキストを新しく作っていくところに醍醐味がある。
しかし、過去のテキストの整理、校訂の仕事のインターフェースに特化させてしまえば、著作権の問題をクリアしながらであれば、過去のテキストの電子化にインターネットほど向いているものはないように思う。
ただ淡々と入力するのはおもしろくない仕事だろうと思う。テキストを引用しつつ、批評を書いていく形式がいいかもしれない。
国歌大観はすでにCD-ROMで売られているが、webで公開されているのだろうか。
Nov 16, 2005
Perlモジュールの確認
モジュールがインストールされているかどうかは、
shimirin@debian:~$ perl -MCGI -e 'print "HTML::Embperl version $CGI::VERSION\n";'
HTML::Embperl version 3.04
とやれば確認できる。
いろいろ確認してみたが、ほとんどがインストールされていた。
HTML::Embperlもインストールされていた。
Nov 15, 2005
CGI
このblosxomなどのblogプログラムは、ほとんどCGIの集大成に近い。
汎用性があり、拡張性があり、インターフェースはしっかりしている。
pluginなどの開発も、アイデアがあればだれでも参加できる。
ローカルなデータ処理、そのサイトに特徴的なデータ処理には、応用問題として、CGIの知識は役に立つ。そこにとりあえずはCGIの楽しみがあるのだが、blosxomに寄与するためにも、いろんなものを作ってみないとCGIが体感できない感じ。
CSSやJavascript、Perlのいろいろなモジュール、XML、RSSと仕込むものが多い。
Nov 14, 2005
Nov 13, 2005
Perlモジュールの日本語マニュアルページ
perlモジュールの中に内部マニュアルとしてpodという仕組みがあるのは知っていたが、実際に、モジュールのある場所に行き、
#pod2html
とやると、htmlファイルが表示される。リダイレクトして保存すれば、マニュアルのHTML版ができるが、英語である。
これを日本語に訳しつつあるプロジェクトがあるようだ。
CGI - 簡単なCGI(Common Gateway Interface)クラス
HTML::Template - CGI スクリプトから HTML テンプレートを使うための Perl モジュール
『CGIプログラミング 第2版』におもに紹介されているモジュールにEmbperlがあるが、これはまだ訳されていない。
Embperlはまだ入手していないが、いちおう入手しようと思っている。
Nov 12, 2005
CGI.pmのドキュメント
インターネットに英文だったがあったので、97枚プリントしたら邦文もその後に見つけた。
英文でわかりにくくても、またプリントするのも面倒だしなんとか解読しつつ利用してみよう。
実用的なCGIの本に、いろいろと例が出てきて、基本的ドキュメントと現場のプロの文書と並行して参照するのがいいのは、こういう類の本の特徴だと思う。
CGIというのはめったに作ることはないし、時間はかかるが、HTMLにかかわる静的ファイルに役立てるところから、やはり始めるべきなんでしょうね。
Nov 11, 2005
またPerlのCGIを作ってみたくなってくる
『CGIプログラミング 第2版』を読みつつ、とりあえず、静的HTMLをCGI.pmなどのモジュールを使って、エレガントに作成できなかな、と思いはじめた。
それにこのblosxomなどのcssファイルを参考にしてデザインもちょっといいものにしてみるという感じで。
ほんとうは普通のゲストブックなどの掲示板もモジュールを使えば、rssを吐けるはずだ。
さらに自作のCGIの改造も単純化と汎用化。
そうとういろいろなことを仕込む必要があるけれど、出来合いのCGIを改造するのでもエレガントにできるように思う。
使い回しという点でいえば、たとえば掲示板のページめくりヘッダ、フッタなどは、別モジュールにして、オブジェクト指向!にするべきだし。
Nov 10, 2005
MarkdownによるMarkup支援
blosxomのpluginでおもしろいのはないかな、と思って見ていて、実用性のあるものなど導入したいと思っているのだが、普通のテキスト入力なら、とりあえずはやはり、brタグの自動追加だろうか。
Markdownでは、改行の前に3つ以上空白を入れるとbrタグを追加してくれる。
行頭に#を入れた文章はまずないと思うので、副作用はないだろうけど、意外にアンダースコアで囲まれた文字列や、アステリスクで囲まれた文字列はあるかもしれない。導入すると、その修正(アンダースコアやアステリスクのバックスラッシュ=円マークによるescape)は手作業になる。
Markdown Syntax Documentation
しかし、ほとんどbrタグしか使わない人も多いだろう。
その場合、Markdownは必要かどうか、はっきりわからない。
通常CtrlプラスcとCtrlプラスvでコピーアンドペーストをおこなっているだろうし。
もうすこし使ってみよう。
ほかにLinuxに普通に入っているfortune cookieを表示されるものをちょっとローカルで入れてみたが、一回のアクセスで余分にそれを読むだろうか、という疑問が湧いてサーバには入れていない。
blosxom :: the zen of blogging :: plugins/display/fortune.htm
Nov 09, 2005
『CGIプロブラミング 第2版』
オライリー・ジャパンの『CGIプロブラミング 第2版』は自宅サーバにCGIやblogを導入する際に、必要な知識が網羅されている本だ。
とはいうものの、ぼくはパラパラめくるだけだったのだが、なんとなく知っているところが出てきたので、ちゃんと読んでみるかなと思いだした。
oreilly.com -- Online Catalog: CGI Programming with Perl, Second Edition
の、
Index of /cgi2
からこの本のサンプルコードの圧縮ファイルを入手できる。
入手したら、
shimirin@debian:~$ tar xvzf cgi2_examples.tar.gz
で解凍すれば、チャプターごとのサンプルコードができる。サンプルコードを試したり改変したりしたテストをするときには、ローカルのcgi-binディレクトリなどに入れて、ブラウザで実行してみる。
Markdownの副作用
Markdownを入れたら、行頭に#があるとh1タグに展開されるため、rootでの実行を示す#を行頭に入れたのがh1になってしまった。(^^)
でも大きいほうが見やすいのかな。
#や_があるファイルがやはり、まずいのでescapeしたら、いっぱい今日編集のファイルが今日付になってしまった。
これを避けて、古いタイムスタンプのままにすることはできないのかな?
Debian GNU/Linuxのkernelのupdate
Debian GNU/Linux sargeのkernelのupdateをやってみた。
とても簡単。
まず自分のkernelのバージョンを確認する。
shimirin@debian:~$ uname -r
2.6.8-1-386
これ以上の数字があればupdateできるわけだ。
rootになって調べる。
shimirin@debian:~$ su
Password:********
debian:/home/shimirin# apt-cache search kernel-image
……
kernel-image-2.6.8-2-386 - Linux kernel image for version 2.6.8 on 386.
……
2.8.6-2-386があるからこれを取得。
debian:/home/shimirin# apt-get install kernel-image-2.6.8-2-386
ぼくの場合、たぶんivtvのモジュールをインストールするとき、2.6.8-2のヘッダーを使った関係(未確認)で、
I suggest you move /lib/modules/2.6.8-2-386 out of way.
Perhaps to /lib/modules/2.6.8-2-386.old.
というメッセージが出たので、一度中止して、mvコマンドでディレクトリの名前を替えて、やり直したらうまくいった。インストール後の作業として、『Debian GNU/Linux Expert』(技術評論社)には、
カーネルの起動パラメータの追加(手動で設定する必要がある)
と書いてあるが、再起動したらそのままでOKだった。
Logicool Pro 4000をLinuxで動くようにする
Logicool Pro 4000というウェブカメラでwebcamを復活した。
ライブ映像実験である。
ぼくのLinuxの環境は、Debian GNU/Linux sarge 2.6.8-2-386である。
デバイスドライバの入手から始める。
まず、/linux/pwc/filesから最新のソースコードを入手する。
原則的にはCompilation and installation of the PWC moduleに書いてあるとおりにインストールすればいい。
しかし、ぼくは最初上のなかの、すでにあるpwc.koをpwc.ko.oldに変えてコピーして、pwc.koを上書きする方法をとったが、その場合、うまくいかなかった。
そこで、示唆のように/lib/modules/2.6.8-2-386/extraというディレクトリを作り、そこにできたpwc.koを収めたらうまくいった。
/lib/modules/2.6.8-2-386/kernel/drivers/usb/mediaには最近Nucleus blogに書いていたように、ov511などが収められている(下にlsで出てくるファイル名をコピーした)が、これからインストールしようとするpwc.koという同じ名前のファイルがある。これはそのままにして、
/lib/modules/2.6.8-2-386/extra
に、新しいpwc.koを入れた。
shimirin@debian:/lib/modules/2.6.8-2-386/kernel/drivers/usb/media$ ls
dsbr100.ko konicawc.ko pwc.ko sn9c102.ko ultracam.ko vicam.ko
ibmcam.ko ov511.ko se401.ko stv680.ko usbvideo.ko w9968cf.ko
これで、
#lsmod | grep pwc
(たぶん古いのが動いている)
#depmod -a
#rmmod pwc
#modprobe pwc
として、usbポートにLogicool Pro4000の端子を挿し込んで、
$xawtv
とすると部屋の様子が映し出された。
これで、「.webcamrc」というファイルを作って設定する。
前にはxawtvをインストールすると、webcamも一緒に入ったが、別々になったようである。webcamもインストールする必要がある。
それで、もしwebcamのみを使うのなら、xawtvをインストールする必要もないらしい。
だが映像のローカルでの映像の確認はxawtvがやりやすい。
「.webcamrc」の設定で、つまずいたのは、input = webcamではなく、
input = usb
とするところと、
norm = ntsc
はシャープを付けてコメントアウトするところだ。それがなぜかはわからない。
あと、前には「.netrc」を利用してftpログインしていたが、ftpの設定も全部「.webcamrc」に書く。
詳細は次の書き込みで。
usbフラッシュメモリを使う
このあいだCPUなどを買ったときに、PC-Successという店で3万円以上買った人はくじを引けた。usbフラッシュの128Mのメモリに、当たると何か書いてあるらしい。メモリはそのままもらえた。
usbメモリというのを手にしたのは初めてである。
昨日ファイルをusbメモリを使って移動することがあって、初めて使った。
usbフラッシュメモリの認識は次のようにする。
1 差し込む。
2 rootになって、/mnt/ディレクトリに、「usbfm」などとディレクトリを作る。
#mkdir usbfm
2 usbフラッシュメモリの点滅が落ち着いたら、
#mount -t vfat /dev/sda1 /mnt/usbfm/
などとする。「sda1」の部分は、dmesgで確かめてから。
これで、パソコン内部から、ファイルをコピーできる。
#cp *.jpg /mnt/usbfm/
など。
かならずアンマウントする。
#umount /mnt/usbfm/
このとき時間が多少かかる場合があるが、メモリを抜いてはいけない。
しばらくしてプロンプトが出たら、メモリを抜ける。
下の写真は、もらったusbフラッシュメモリ。
Solaris10でのshutdownコマンド
昨日、久しぶりにSolaris10でマシンを起動した。
もともとサーバとしてつけっぱなしにするのが普通であるSolarisだが、shutdownコマンドがLinuxとちょっと違って、戸惑う。
rootで、
#shutdown -i 0 -y
である。これでユーザにshutdownへの時間をアナウンスしながら、1分後に停止する。「Press any key to reboot」と出たら電源を切れる。
Linuxでは、
#shutdown -h now
rebootするなら、
#shutdown -r now
である。
デジタルカメラから、webアルバムまで。
デジタルカメラから、webアルバムまでを普通作りたくなる。
その場合、前提としてwebサーバ(apache)が動いていることがあるが、さらに、
デジタルカメラの認識
画像のハードディスクへの取り込み
web領域へのコピー
プライベート写真ならばBASIC認証の設定
画像を適当な大きさに全部縮小(mogrifyを使用)
web領域で、igalを実行して、サムネイルを作り見やすくする
という手順が必要だ。
このうち上の4つはできているとして、下の2つは、次のようにする。
$mogrify -resize 640x480! *.jpg
これが同一ディレクトリの、jpgファイルのサイズを一括変換するコマンドだ。ImageMagickをインストールしてある必要がある。
サイズの縮小は、ピクセル数を指定して行うが、実際の写真をThe Gimpなどで縮小してみて、比率を確かめたほうがいい。
同じカメラならば、一度比率を確かめれば640x480などの数字は決まってくる。
igalの実行は、
$igal --title "album(05_8_21)" --as
などとする。
--as をつけると画像の重さがサムネイル写真の下に表示される。
デジタルカメラから映像を取り込む
ウチで使っているデジカメはSanyoのXactiである。
mp4ファイルとなる動画も撮れて、楽しい。
デジカメから、自分のユーザディレクトリに、取り込んで個人用のアルバムを作ったり、igalでweb用のアルバムを作ったりするとき、いろいろなアプリケーションソフトがDebian GNU/LinuxのPackageにあるが、ぼくは結局コマンドラインだけ使うようになってきた。
カメラをマシンが認識しさえすれば、かえってコマンドラインだけのほうが手間がない。
dmesgで調べればわかるが、たとえば、USB接続したデジカメは、
/dev/sda
と認識されている。スカジーの記憶デバイスとして認識されるわけだ。
その1番目、
/dev/sda1
がデジカメの記憶装置である。
まず、デジカメの映像を一挙に移すディレクトリを作る。たとえば、
images/05/aug/05_8_22
というディレクトリを作る。
rootになる。
デジカメをマウントする。
mount /dev/sda1 /mnt/camera
(あらかじめroot権限で/mnt/cameraディレクトリを作っておく)
マウントしたディレクトリに移動する。
cd /mnt/camera/
通常、この下にディレクトリがあり、ウチのでは、
/mnt/camera/dcim/100sanyo/
とかいうディレクトリにjpgファイルとmp4ファイルが格納されている。
そこで、
cp *.jpg /home/shimirin/images/05/aug/05_8_22/
cp *.mp4 /home/shimirin/images/05/aug/05_8_22/
として、
cd /home/shimirin/images/05/aug/05_8_22/
と移動して、
全部rootの所有者、グループになっているので、
chown shimirin *.*
chgrp shimirin *.*
と実行し、なぜか、アクセスモードが755になっているので、
chmod 644 *.*
とする。
ここで、すでにマウントしたカメラの内部にはいないので、アンマウントする。
umount /mnt/camera
ユーザに戻る。
exit
これでめでたく、取り込みが終わる。
あとは加工するだけ。
Linuxでのcanna辞書
うろこ新聞のLinux Desktop Tips(略してLDT)でも最初は、ユーザ辞書(cannaの)について覚え書を書いたが、今日ちょっとユーザ辞書を作ったので、書いておく。
Debian GNU/Linux sargeの場合でcannaを使う場合には、「.canna」というファイルは次のようになっている。
shimirin@debian:~ cat .canna
; ---- language-env DON'T MODIFY THIS LINE!
; デフォルトの設定
(load "/etc/canna/default.canna")
; Backspaceキーでカーソル直前の文字が消えるようにする
(global-set-key "\Delete" 'delete-previous)
; ---- language-env end DON'T MODIFY THIS LINE!
default.cannaでは辞書関係は下のようになっている。
;;; 利用する辞書
;
; ただ単に書き並べているのは単語登録を行わない辞書でシステム辞書などが
; これに当たります。
;
; 部首辞書に関しては :bushu を先行させて記述します。
;
; 単語登録をしたい辞書に関しては :user を先行させて記述します。単語登
; 録をする辞書はテキスト形式辞書でなければなりません。単語登録させたい
; 辞書は mkdic user の様なコマンドを打つことで簡単に作成することがで
; きます。
;
; :katanana を先行させて記述した辞書は、カタカナ語の自動登録辞書に
; なります。字種変換でカタカナに変換して確定すると、自動的にサ変
; 名詞として登録されます。
;
(use-dictionary
"iroha"
"fuzokugo"
"hojomwd"
"hojoswd"
:bushu "bushu"
:user "user"
; :katakana "katakana"
)
それで、
shimirin@debian:~$mkdic user
とやると、
shimirin@debian:~$lsdic
で、
user
と表示され、「user」という辞書ができていることがわかる。
これに、
shimirin@debian:~$ echo 'りんぞう #JN 清水鱗造' | addwords user
とやると辞書に追加される。「user」辞書を作ったら、一度ログアウトして再ログインする。
一挙にやってしまうなら、次のようなシェルスクリプトを書いて、そのファイルを、
shimirin@debian:~$chmod 700 rin_jisho.sh
のように実行権限を与えて、
shimirin@debian:~$./rin_jisho.sh
のように実行すると、辞書に言葉が追加される。
#!/bin/sh
echo 'しみずりんぞう #JN 清水鱗造' | addwords user
echo 'りんぞう #JN 鱗造' | addwords user
以下はソースコードから抜き出された品詞コードの引用の孫引用。
品詞コード 品詞名 例 #T35 一般名詞 山, 本 #T30 サ変名詞 努力, 検査 #KK 固有名詞 #JN 人名 #CN 地名 #NN 数詞 何 #KJ 単漢字 #RT 連体詞 #PRE 接頭語 お、各 #CNPRE 接頭地名 #NNPRE 接頭数詞 #SUC 接尾語 #JSSUC 接尾助数詞 #JNSUC 接尾人名 #CNSUC1 接尾地名 #N2T30 サ行(する)&名詞化接尾語 #JCN 人名&地名 #K5 カ行五段活用動詞 描く #G5 ガ行五段活用動詞 注ぐ #S5 サ行五段活用動詞 倒す #T5 タ行五段活用動詞 絶つ #N5 ナ行五段活用動詞 死ぬ #B5 バ行五段活用動詞 転ぶ #M5 マ行五段活用動詞 住む #R5 ラ行五段活用動詞 威張る #W5 ワ行五段活用動詞 言う #KS 上/下一段活用動詞 降りる #KX カ行変格活用動詞 来る #ZX ザ行変格活用動詞 感ずる #SX サ行変格活用動詞 関する #K5r カ行五段活用動詞(連用形が名詞) 動く #C5r カ行(行く) #L5 ラ行(下さい) #kxo 来(こ) #kxi 来(き) #kxuru 来(く) #sxi 為(し) #sxuru 為(す) #sxe 為(せ) #G5r ガ行五段活用動詞(連用形が名詞) 行く #S5r サ行五段活用動詞(連用形が名詞) 急ぐ #T5r タ行五段活用動詞(連用形が名詞) 写す #N5r ナ行五段活用動詞(連用形が名詞) 勝つ #B5r バ行五段活用動詞(連用形が名詞) 遊ぶ #M5r マ行五段活用動詞(連用形が名詞) 歩む #R5r ラ行五段活用動詞(連用形が名詞) 見張る #W5r ワ行五段活用動詞(連用形が名詞) 扱う #KSr 上/下一段活用動詞(語幹が名詞) 生きる #KY 形容詞 美しい, 早い #KYT 形容詞 古い #T00 形容動詞(サ変名詞としても使う) 心配だ #T05 形容動詞(詳細の品詞を必要としない場合) 幸運だ #F00 形容動詞(たる) #F04 副詞 #F06 副詞 #F12 副詞 #F14 副詞(詳細の品詞を必要としない場合) 飽くまで #CJ 接続詞/感嘆詞 及び #D2T35 接尾動詞 #D2KY 形容詞化接尾動詞 #N2T17 形容動詞化接尾語 #JS 助数詞、接頭助数詞
そのまま記号を張り付けたら、たぶん、その原因でRSSの出力に問題があったので、記号類を全角ものに変換しました。
ホームページのバックアップ
ときどき思い立ってバックアップしようとする。
いちばん単純なのはユーザごとに、
$tar -cvzf archive.tar.gz public_html
とし、
これをクライアントLinuxマシンに転送して、
$tar xvzf archive.tar.gz
とすることだ。
日付つきのファイルを作るには、
tar cvf /home/shimirin/backup/backup-date +%Y%m%d
.tar ./public_html
gzip /home/shimirin/backup/backup-date +%Y%m%d
.tar
としてシェルスクリプトにする。これをcronで毎日ぐらい実行させればいいのだが、問題は2つある。
ひとつは、ユーザによってはかなり大きいサイズのディレクトリなので、(なんとなく)気が引ける。
ひとつはCGIが作るファイルが、オーナー、グループとも独自のものになって、これは問題が生じることがないかな、ということだ。
画像をアップロードする。
pluginを入れたので、blogのトップページの右下に「新規投稿」のリンクができました。
いままではファイル名をmar8_1などと決めなければなりませんでしたが、今度は書き込む時刻をもとにファイル名が自動的に作られています。
また書き込むときに現れるページに書き込むフォームが3つ、増えました。
If you want to upload the jpeg file:
の下にあるフォームは、その右の「参照」ボタンを押して、自分のハードディスク内にある画像ファイルを選ぶことによって入力されます。
Rename file_name:
の下に数字が入りますが、「新規投稿」を押すと生成されるファイル名です。
ファイル名を変更する必要はあまりないので、ここはそのままで普通はいいです。
Add comment(Comment is NOT appear on this page):
の下のフォームも通常は書き込む必要はありません。HTMLのコメントタグに囲まれる文字列の入力です。
上の3つが増えましたが、残りのフォームは前と同じです。
もう一度説明すると……。
画面右下の「新規投稿」を押すと、
上のようにフォームが増えました。
ひとつは「参照」の左にあるフォームです。これは画像アップロードするときに押して、自分のHDDからファイルを選びます。幅に気を付けてください。
Rename file_name(英語いいかげん^^)でファイルの名を変えることができます。
Add comment のフォームでは、コメントタグに入る文字列を入れることができます。通常は使うことはないでしょう。
アップロードされた画像は自動的にimg srcタグが追加されます。
2つアップロードしたい場合、1つアップロードしてsaveし、改めてEditを押して新たにアップロードしてください。
Nov 08, 2005
Perlのモジュール
このごろ、nucleusやこのblosxom blog(ブロッサム・ブログ)についていろいろとやったので、前にも紹介したかもしれないが『Blog Hacks』という本や、『CGIプログラミング』という本を地下鉄読書でめくっている。
なんとなく、webにかかわるPerlのモジュールってよく理解すればおもしろそうで便利そう。
まずは自作の掲示板スクリプトなどに導入したりすることだろう。
Perlのモジュールって自宅サーバならば、自由自在にインストールできる。
Markdownというpluginをここに入れてみた。
テストであるが、「edit」を押してみると、HTMLタグにどう変換されるがわかると思う。
たとえばアステリスク3つは水平線に変換される。
また、改行の前に半角空白3つ入れるとbrタグに変換される。そして、これは水平線から4行目であるが、ここから1行あけるとするとPタグが挿入される。リンクは下の書式である(editで開かないとソースは見られません)。下のリンクはこのpluginを使う書式。でも、とりあえず、このぼくのblogでテストして実用にいい、ということであれば各blogにpluginを追加します。
テスト行 <<<<
Nov 07, 2005
php.iniの設定
Debian GNU/Linuxでは、phpはPackageに入っているので、インストールは簡単。webで日本語を使うときに、php.iniの設定が必要である。
output_buffering = Off
magic_quotes_gpc = Off
default_charset = EUC-JP
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
;mbstring.http_output = (コメントアウトしないと駄目だった)
mbstring.encoding_translation = On
;mbstring.detect_order = auto(コメントアウトしてもいい。ウチの場合はコメントアウト)
mbstring.substitute_character = none
2台Linuxマシンがあるので、片方で設定しながら、適当なphpテストファイルを作って実行しながら、文字化けを確認する。
今回のnucleusの文字化けトラブルと、rss出力の設定で、php.iniの設定を見直した。
上の設定はすべてphpのページはeucで書かれることを前提とする。
phpMyAdminもphp-Mysqlでblogを入れるのなら、必要だろう。というのも、コメントスパムやトラックバックスパムは必ず来る。pluginを入れる前に気づくとすでにたくさん来ている場合が多いと思う。そのときに、防御のpluginを入れることになるが、いっぱい来たら、nucleusの管理者権限で消去するのは、できるけれどもちょっと面倒なのだ。
またスパムのipとかいろいろ調べたい場合は調べられる。
phpMyAdminを使えば、該当するデータベースの項目でスパムをチェックマークをつけて一挙に削除できる。
backupをするときにも使えるが、ぼくはコマンドライン1行でやってしまうので、phpMyAdminは使っていない。
文章をどうしても直したいときにも使える。
Nov 04, 2005
Nov 01, 2005
nucleusの異本を避ける
結局、ローカルのApacheにnucleusのデータを展開して、サーバのバックアップができているかな、と思ってアクセスすると、そのアクセスした情報が新たにログとして残る(アクセスの環境変数の一部がデータベースに格納される)。このログはローカルの固有の情報だ。
それぞれのApacheで展開されるデータが、その時点を境に違ったものになっていくというわけである。
よくテキストデータなども、コピーするとそこから異本ができていって、数種の異本ができてしまうようなこともあるが、それと同じように二つのパソコンに異本ができる。
これを避けるためには、とりあえず、ちゃんとバックアップされることを検証したら、それ以後は「見ない」ということだろう。自分で見なければ、データベースはそのままなので、翌日バックアップされたnucleusのデータを追加しても問題は起きない。
たまに検証したら、テーブルのデータをphpmyadminなどを使って空にしてから、バックアップされたデータを展開すればよさそうだ。
もし、時系列で多少データを保存しておくならばローカルにrsyncで取得したファイル名を替えて、日付などつけて格納しておけばいい。でもそこまでやることないかな、と思う。