fieldset {
margin: 0;
padding: 10px;
border: 1px solid gray;
background-color: #69C;
color: white;
}
んー、まだまだ、CSS は勉強中なので知らない事が多いのだが、、fieldset の background-color は、指定しない方が吉なのか?、、それとも、回避する方法があるのだろうか、、??ちなみに、Firefox と Opera では、ちゃんと同じように background-color は適用されている、、、。
2007年7月24日
IE で fieldset の background-color が...
今日は、CSS をごにょごにょしていたら、、IE だけ fieldset の background-color の色が他のブラウザと違う表示のされ方をする事を発見。。。
2007年7月6日
初めてのパッチを書いた
今さら、CGI::Application かよってのは置いておいて、、
CGI::Application::Plugin::Config::YAML を使うときに、いきなり、config_read を使うと、"No config file specified!" とか言われて怒られるのだが、、config_read に、ファイル名渡してるんだから、それ使ってよ。って事で、パッチ書いてみました、、
※初めてのパッチ作成
参考:diffとpatchについて
作者様に送るかどうか、、、どうしよう、、とりあえず、送ってみようかな、、id:nekokak さんが作ったものなので、日本語でお願いできるし、、orz
CGI::Application::Plugin::Config::YAML を使うときに、いきなり、config_read を使うと、"No config file specified!" とか言われて怒られるのだが、、config_read に、ファイル名渡してるんだから、それ使ってよ。って事で、パッチ書いてみました、、
※初めてのパッチ作成
参考:diffとpatchについて
*** YAML.pm.org Fri Oct 28 16:49:42 2005如何でしょう??
--- YAML.pm Fri Jul 6 19:09:51 2007
***************
*** 78,93 ****
sub config_read {
my ($self, $file) = @_;
! my $conf = $self->config();
$conf->read($file);
return;
}
sub config {
! my $self = shift;
my $create = !$self->{__CONFIG_YAML}->{__CONFIG_OBJ} || $self->{__CONFIG_YAML}->{__FILE_CHANGED};
if ( $create ) {
! my $file_name = $self->config_file or die "No config file specified!";
my $conf;
eval{
--- 78,93 ----
sub config_read {
my ($self, $file) = @_;
! my $conf = $self->config($file);
$conf->read($file);
return;
}
sub config {
! my ($self, $file) = @_;
my $create = !$self->{__CONFIG_YAML}->{__CONFIG_OBJ} || $self->{__CONFIG_YAML}->{__FILE_CHANGED};
if ( $create ) {
! my $file_name = $self->config_file($file) or die "No config file specified!";
my $conf;
eval{
作者様に送るかどうか、、、どうしよう、、とりあえず、送ってみようかな、、id:nekokak さんが作ったものなので、日本語でお願いできるし、、orz
YAML と YAML::Syck の違い
いろいろと、YAML 周りを試行錯誤していて、YAML と YAML::Syck の違いを見つけたので、ご報告。。。上記のコードは、先日、苦労して見つけた、? と : の記法を用いて、ハッシュのキーに、ハッシュを持たせるための方法ですが、実はこの記法は、YAML では対応しているが、、YAML::Syck では、対応していないという事が発覚した!!上記のコードの実行結果は以下のようになった
ちなみに、Dump も試してみたところ、、、
追記:ハッシュになってるかと思いきや、、ただの文字列だった事に気づきました、、、このエントリーを見て、ハマッてしまった方、、大変、申し訳ありませんでした。。。m(__)m
my $my_yaml = <<'__YAML__';
---
param1 : [ NOT_BLANK, ASCII, [ LENGTH, 2, 5 ] ]
? date: [ year, month, day ]
: [ DATE ]
__YAML__
use YAML;
use YAML::Syck;
use Data::Dumper;
my $data1 = YAML::Load($my_yaml);
my $data2 = YAML::Syck::Load($my_yaml);
print "--data1--\n", Dumper($data1);
print "--data2--\n", Dumper($data2);
--data1--Ingy++ !!
$VAR1 = {
'date: [ year, month, day ]' => [
'DATE'
],
'param1' => [
'NOT_BLANK',
'ASCII',
[
'LENGTH',
'2',
'5'
]
]
};
--data2--
$VAR1 = {
'HASH(0x8150b44)' => [
'DATE'
],
'param1' => [
'NOT_BLANK',
'ASCII',
[
'LENGTH',
'2',
'5'
]
]
};
ちなみに、Dump も試してみたところ、、、
use YAML;実行結果、、、
use YAML::Syck;
my $data = {
param1 => ['NOT_BLANK', 'ASCII', ['LENGTH', 2, 5]],
{ date => ['year', 'month', 'day'] } => ['DATE'],
};
print "--YAML::Dump--\n", YAML::Dump($data);
print "--YAML::Syck::Dump--\n", YAML::Syck::Dump($data);
--YAML::Dump--って、どちらも、、ちゃんと Dump できないようでした、、、何か方法は無いのかなぁ、、(T_T)
---
HASH(0x815ebe4):
- DATE
param1:
- NOT_BLANK
- ASCII
-
- LENGTH
- 2
- 5
--YAML::Syck::Dump--
---
HASH(0x815ebe4):
- DATE
param1:
- NOT_BLANK
- ASCII
-
- LENGTH
- 2
- 5
追記:ハッシュになってるかと思いきや、、ただの文字列だった事に気づきました、、、このエントリーを見て、ハマッてしまった方、、大変、申し訳ありませんでした。。。m(__)m
2007年7月4日
YAML 1.0
FormValidator::Simple::ProfileManager::YAML に読み込ませるため、profile.yml を書いていて、Validator で、DATE チェックをさせる時、On Coding なら以下のように書くのだが、、YAML で書く場合に、どう書いたらいいのか分からず、、ずっと試行錯誤を繰り返し、、2、3時間ハマって、やっと出来たので、忘れないように残しておく。
On Coding の場合っんで、これをハッシュと同じように持たせるには、以下のようにしたら上手くいった
参考:YAML Ain't Markup Language (YAML™) 1.0
っで、最悪な事に、このエントリーを書いていて、それって、自分が作りたい DataObject を、Perl で書いてから、それを、YAML::Dumper で、吐き出せばいいんじゃねっとか思った。。。orz -> 自爆メソッド
ちゃんと YAML を習得しなくてわ、、、
追記:上手くいってませんでした、、、申し訳ないです、、、ただの文字列として判定されていました、、。申し訳ないです。。。m(___)m
On Coding の場合
use FormValidator::Simple;っと書けばいいのだが、これを YAML で、しかも、ハッシュの状態のまま持たせるには、どうしたらいいのか!?ちなみに、普通はリストで以下のように書く
my $result = FormValidator::Simple->check( $query => [
param1 => ['NOT_BLANK', 'ASCII', ['LENGTH', 2, 5]],
{ date => ['year', 'month', 'day'] } => ['DATE'],
]);
---
- param1
- [ NOT_BLANK, ASCII, [ LENGTH, 2, 5 ] ]
- date: [ year, month, day ]
- [ DATE ]
---ちなみに、この特殊な書き方をすると、Alias が付けられなかった、、(ただの文字列扱いにされた)
param1 : [ NOT_BLANK, ASCII, [ LENGTH, 2, 5 ] ]
? date: [ year, month, day ]
: [ DATE ]
参考:YAML Ain't Markup Language (YAML™) 1.0
っで、最悪な事に、このエントリーを書いていて、それって、自分が作りたい DataObject を、Perl で書いてから、それを、YAML::Dumper で、吐き出せばいいんじゃねっとか思った。。。orz -> 自爆メソッド
ちゃんと YAML を習得しなくてわ、、、
追記:上手くいってませんでした、、、申し訳ないです、、、ただの文字列として判定されていました、、。申し訳ないです。。。m(___)m
CGI::Application::Plugin::FormValidator::Simple::ProfileManager::YAML
を作ってみたw ってか、パッケージ名、長すぎっ(--;)
CPAN Author になりたいけど、これが、最初のモジュールってのも、なんか自分的に嫌だなぁ、、、。
■追記
タイトルが長すぎて、途中で切れてるっ
CPAN Author になりたいけど、これが、最初のモジュールってのも、なんか自分的に嫌だなぁ、、、。
package CGI::Application::Plugin::FormValidator::Simple::ProfileManager::YAML;使い方としては、以下のような感じです
use strict;
use vars qw($VERSION @EXPORT);
use warnings;
use FormValidator::Simple::ProfileManager::YAML;
require Exporter;
@EXPORT = qw(
set_profiler
get_validate_profile
);
sub import { goto &Exporter::import }
$VERSION = '0.03';
sub set_profiler {
my $self = shift;
my ($path_to_profile) = @_;
if (!$self->{validate_profiler}) {
$self->{validate_profiler}
= FormValidator::Simple::ProfileManager::YAML->new(
$path_to_profile
);
}
return $self->{validate_profiler};
}
sub get_validate_profile {
my $self = shift;
return
$self->{validate_profiler}
? $self->{validate_profiler}->get_profile(@_)
: {};
}
1;
__END__
んー、いろいろ抜けてますが、とりあえずこれでいかがでしょうか?
package MyApp;
use strict;
use warnings;
use base 'CGI::Application';
use CGI::Application::Plugin::FormValidator::Simple::ProfileManager::YAML;
sub cgiapp_init {
my $self = shift;
$self->set_profiler($path_to_profile);
}
sub mode1 {
my $self = shift;
my $profile = $self->get_validate_profile('group1');
$self->form(@$profile);
# ~云々~
}
■追記
タイトルが長すぎて、途中で切れてるっ
2007年6月20日
CGI::Application はじめました
いろいろあって、CGI::Application を一度は触っておこうという事になったので、その備忘録とかいろいろ、たぶん、綴っていく予定、、。
とりあえず、sample的なものを作りはじめた。
ディレクトリ構成は今のところ、こんな感じ
上記のように作成すると、URL とかが、
http://www.exsample.com/index.cgi/welcome/start
とかアクセスできる
とりあえず、sample的なものを作りはじめた。
ディレクトリ構成は今のところ、こんな感じ
/index.cgiindex.cgi
/MyApp -- /Dispatch.pm
/Welcome.pm
#!/usr/bin/env perlMyApp::Dispatch
use strict;
use MyApp::Dispatch;
MyApp::Dispatch->dispatch();
exit;
package MyApp::Dispatch;MyApp::Welcome
use strict;
use base 'CGI::Application::Dispatch';
sub dispatch_args {
return {
prefix => 'MyApp',
table => [
'' => { app => 'Welcome', rm => 'start' },
':app/:rm' => { },
],
};
}
1;
package MyApp::Welcome;"setup" Method が無いと動かない模様、、。まぁ、そのうち使うだろうから定義だけはしておくべし。。。
use base 'CGI::Application';
use strict;
use CGI::Application::Plugin::AutoRunmode;
sub cgiapp_init {
my $self = shift;
$self->header_props(-type => 'text/html; charset=SJIS');
}
sub setup {
}
sub start : StartRunmode {
my $self = shift;
my $q = $self->query();
my $output .= $q->start_html(-title => 'Welcome CGI::Application!!');
$output .= '<h1>Welcome CGI::Application!!</h1>';
$output .= $q->end_html();
return $output;
}
上記のように作成すると、URL とかが、
http://www.exsample.com/index.cgi/welcome/start
とかアクセスできる
2007年6月15日
CGI - Perl から、Excel の出力
また、いつか使う時が来ると思うので、備忘録的に残しておこう、、サンプルコード。
どこかで、調べてコピッただけ、だけど、、、orz
Spreadsheet::WriteExcel::Big を使う事で、大量データのエクセルを作成できる、Big じゃないものだと、途中で落ちる、、??とか、あったような、、
あと、utf16 じゃないと文字化けする??
とか、こんな感じで Excel 作れたよって話し。。。
最新のモジュールとか見直してみた方がいいかも、、、。
どこかで、調べてコピッただけ、だけど、、、orz
use Jcode;注意点としては、、
use Spreadsheet::WriteExcel::Big;
use Unicode::String qw(utf8 utf16);
print 'Content-type: application/vnd.ms-excel', "\n",
'Content-Disposition: attachment; filename="結果.xls"', "\n\n";
my $workbook = Spreadsheet::WriteExcel::Big->new("-");
my $worksheet = $workbook->add_worksheet;
my $format = $workbook->addformat(font => "MS PGothic");
my ($row_num, $col_num) = (0,0);
for my $row (@rows) {
for my $col (@$row) {
$worksheet->write_unicode(
$row_num, $col_num++,
utf8(Jcode->new($col)->utf8)->utf16, $format,
);
}
$row_num++;
}
$workbook->close;
Spreadsheet::WriteExcel::Big を使う事で、大量データのエクセルを作成できる、Big じゃないものだと、途中で落ちる、、??とか、あったような、、
あと、utf16 じゃないと文字化けする??
とか、こんな感じで Excel 作れたよって話し。。。
最新のモジュールとか見直してみた方がいいかも、、、。
登録:
投稿 (Atom)