超不阿羅王(超ファラオ)

U隊長が友達を家に呼んで肉饅をつくるという肉まんパーティーの日なので、僕も朝から色々と手伝いという業務が発生だ。(というか生地を捏ねるのはいつも僕がやる)。

ついでにお酒もきれていたので、銘醸下里に初出撃。どっちかというと、ワインにウェイトをおいてる店だが、超不阿羅王という変な名前の焼酎があったので(若干値段が張るが)買ってみた。

超不阿羅王 超不阿羅王と肉饅の具

後ろのボールは肉饅の具。ラベルは黒地に金。超夜呂死苦みたいなノリでつけたのか、男前豆腐的ナ世代の商品企画なのかなぁ。

でも、豆腐も旨いように、焼酎もナカナカおいしい。フルーティーな感じで、魔王とか、ひとり歩き、すらりが好みだったらきっと気に入る感じ。

DBD::CSVとDBD::AnyData

創薬系で使っているソフトで古いタイプはCSVで出力するものが結構多いので、CSVをDBIで扱うためのモジュールDBD::CSVDBD::AnyData を触ってみた。DBD::CSVはCSVをSQL::Statementで扱えるようにするモジュールで、DBD::AnyDataはもう少し広くXMLとか/etc/passwdとかのほかのフォーマットも扱えるらしい。

サンプルとして以下のカンマ区切りのファイルを用意する。ちなみにヨコゼキ義侠の慶が入荷したらしい。あー飲んでみたい。

Name,Category,Loc,Vol 群馬泉,純米,群馬,1800 義侠,純米,愛知,720 飛露喜,純米,福島,720 國香,吟醸,静岡,1800 喜久酔,純米,静岡,720

ポイントは両方とも$dbhでテーブル名とカラム名を与えること。区切り文字とか改行文字も指定する。カラム名を明示的に指定しないといわゆるヘッダーがカラム名となる(DBD::CSV,DBD::AnyDataともに)

そこまでやれば、普通にSQLを実行だ。

#!/usr/bin/perl

use strict;
use warnings;
use DBI;

my $dbh = DBI->connect("DBI:CSV:csv_eol=\n;csv_sep_char=,");
$dbh->{'csv_tables'}->{'out'} = {
                                'file' => 'sample_j.csv',
                               };
my $sth = $dbh->prepare(q/SELECT * FROM out where Category = '純米'/);

$sth->execute();

while(my $t = $sth->fetchrow_arrayref){
print join(":",@$t),"\n";
}

$sth->finish;
$dbh->disconnect;

上の例はアレイのリファレンスだが、ハッシュのリファレンスも可能。その場合はヘッダ名でアクセスできる。

#!/usr/bin/perl

use strict;
use warnings;
use DBI;

my $dbh = DBI->connect('dbi:AnyData:');

$dbh->func('test','CSV','sample_j.csv','ad_catalog');

my $sth = $dbh->prepare(q/select * from test where Category = '純米'/);

$sth->execute()
 or die "execute: " . $dbh->errorstr();

while(my $t = $sth->fetchrow_hashref){
 print $t->{Name},":",$t->{Loc},"\n";
}

$sth->finish;
$dbh->disconnect;

DBD::AnyData(Version: 0.08)では実行すると以下のエラーが出てちょっと気持ち悪い。


Service description 'file:' can't be loaded: 404 File `' does not exist

DBD::CSVとDBD::AnyDataどっち使うかは$dbhをどう指定するかの部分だけの好みなんだろうけど、CSV扱うという部分に関してはDBD::CSVのほうがわかりやすくて好き。もう少し複雑な書式のデータはDBD::AnyDataのほうがいいのかもしれないが、DBD::AnyDataの/etc/passwdのサンプルぐらいしか試してないので、本当のところはわからん。

DBD::CSVもClass::DBIで扱えるらしい(ナイス!)

all about blosxom

メタモ疲れか知らないが、久々の激風邪中デス。昨日は辛すぎで休んだんだが、今日は泣く泣く出社。ハナミズで頭がボーっとするのと、耳鳴りがするので、なにもやる気が起きない。こういうときはbloglinesでまったりと、そして定時退社攻撃ダ(蝶のように舞い蜂のように、、、)。

hail2u.net - Weblog

blosxomユーザーのためのメーリング・リストであるall about blosxomの親サイトとして、blosxomについての雑多な情報を纏め上げるつもりのWiki、all bout blosxomを立ち上げてみたりしました。

というサイトができていたので、userlistに登録してみたヨ。

URLからblosxom.cgiをどうやったか隠せますか?

長年の悩みをついに解決(表題)

僕はmod_rewriteを使わずに直接httpd.confを編集して「この余計な文字列」を置き換えようとしていたノダ。要は、毎度毎度.htaccess読むのはパフォーマンスが落ちるんじゃねーの?みたいな些細なことをうっかり気にしたわけ(細かいことにこだわってしまった)。

で、ScriptAliasを指定してみたり、ディレクティブにIndexとして指定してみたり、デフォルトのインデックスに追加してみたりといろいろやったが、どうも.cgi以降の/がうまく解釈されない。(Computer/blosxom/index.html みたいのがきちんと表示されない。)

今考えると、それはそうかもというかそうなのかナァとは思うんだけどなぜだか出来ない理由はわからず終い。というわけで、結局mod_rewriteに頼ることになったんだが、以下のエラーがerorr.logに。

[error] mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary.

調べてみると、無限ループらしい。よくよく調べてみると、.htaccessでもhttpd.confでもエイリアスを切ってたのでそのせいっぽい。httpd.confのほうは、チャレンジした残骸。気をつけよう。

あと、気をつけるのはAllowOverrideを"All"にすること。参考にしたのは下のサイト。

O/Rマッピング最高!

CatalystWEB+DB PRESS特別総集編見てClass::DBIに(やっと?)目覚めたワタクシですが、自分でコードを書いてみてその素晴らしさに感激。

なにがすごいかって、スンゲーシンプルになるのが気持ちいい。コレとかやっとわかってきた。わかるとキモチイイし、コード書くのが更に面白くなるネ。

ClassDBIのWIKIなどみてガシガシ書いておりますヨ。

Cisco ArtistSearch

シスコ用のアーティスト検索フォームを作ってみました。

Cisco ArtistSearch

cisco_form

自前で作成するにはsrcファイルと、画像ファイルを用意してseachpluginフォルダに入れればいいらしい。デバッグとかはそうしてやったんだけど、配布を考えた場合にはjavascriptでワンクリックで配布できるので便利。あと、シスコの画像に関してはfavicon.icoをpngとして保存しなおしただけ。

参考にしたのは以下のリンク。srcファイルはgoogleのやつを適当に修正したのでバグがあるかもしれない。

GIMP2.2でscript-fu.exeの読み込みでエラー

ちょっと気持ち悪いので調べたところGTK絡みっぽい。 ココみて対処。

映像いじくるのに、いくつかソフトを使用しているが、GIMPもフォトショップ形式(psd)で吐けるので、今後画像いじりはGIMPでいいかなあと思ったり。After Effectsが、ちょこまかバージョンアップする割には、結構なアップグレードフィー取るしな。とはいえ、6.0->6.5のバージョンアップでファイナルエフェクツのエフェクトが結構入ると知ったので、勢いでアップグレードしてしまったけど。

素材をゲットするのにHC1もいいナァなんて思っている。

実際ITmediaの記事よりも、近所の家電の実写映像見て、違いに衝撃を受けた。今のところ編集系が弱いって話だけど、年末狙ってル。

gimpでスクリーンショット

スクリーンショットを撮るのに、すくりんをつかっていたのだが、gimpが使えると知ってからはもっぱらこれがメインだ。

gimp

PowerPointファイルにFlashを埋め込む

PowerPointファイルにFlashを埋め込む

一般解説書には見かけないようですが、プレゼンテーション用のPowerPointスライドの1コマ内で、ActiveXコントロールを機能させFlashアニメーションを動かす方法があります。

  • コントロールツールボックスのコントロール選択
  • Shockwave flash object
  • プロパティーのプロパティーページ
  • ムービーURLの設定と”ムービーの埋め込み”チェック

ながれは大体こんな感じ。CueMol埋め込むときと一緒ですな。

一方、OOo ImpressでもFlashを埋め込みできるという情報があったので早速家に帰って試してみた。まぁ、会社ではpowerpoint2k、家ではOOo(2.0b)なんで、どちらでも埋め込みできて、且つ互換性があるとありがたい。特にImpressはpdfで出力できるので配布資料を作るときには手放せなくなってます。

  • 挿入 オブジェクト プラグイン
  • swfとURLの入力

で、こっちのほうが直感的にわかりやすい操作。ついでにAACなんかも埋め込んでみたが、うまく再生されてます。しかし、スライドショーにすると再生されず。うーん、コレだと使えないナァ。互換性以前の問題だったり。それともなんか設定間違えてんのかなぁ?

結局、しょうがないのでImpressで作った資料と、swfばらばらに持っておいて、PowerPointで最後に整える方向で行くかな。

ITmedia エンタープライズ:「Impress」で問うPowerPointを使う理由 (5/5)

自宅では、プレゼンを作成したりと発表を練習するなどして、最後の仕上げは会社のPC上でPowerPointで仕上げる。このような使い方の一例が考えられる。

って、そのまんまだった。最後の仕上げ(調整)が発生するということが、互換性がもうひとつということだからなぁ。

phpPgAdmin

(Catalystで遊んでみたいから)自宅のポスグレもちゃんと動かそうってことで、phpPgAdminの設定をした。php-pgsqlがインストールされてなかったのでyumで。

yum install php-pgsql

で、/var/lib/pgsql/data/pg_hba.confを書き換えてから/etc/init.d/postgresqlのpostmasterに-i オプションをくっつけてサービス再起動。

#local all all trust host all all 127.0.0.1 255.255.255.255 trust host all all 192.168.1.0 255.255.255.255 trust

ん?動かん。psql -h 127.0.0.1 -lでデータベースが表示されん。 というわけで、調べたところ/var/lib/pgsql/data/postgresql.conf を書き換えるらしい。

# # Connection Parameters # #tcpip_socket = false tcpip_socket = true #ssl = false

/etc/init.d/postgresqは書き換えなくていいらしい(そりゃそうだ)。6.xとか7.xの初期のポスグレばっか使っているから知らなかったということにしておこう。

さて、これでpsqlでアクセスできることは確認できたが、今度は何故かphpPgAdminからのログインを拒否される。

実際、コレで1時間ほどはまった後、httpd実行ユーザー作ってなかったわということに気づいて、

createuser apache

これで解決。