件名の通りですが、
ExtJSのCSSはデフォルトで青とグレー、Vistaってのが付いてきます。
で、このグレーを使ってて以下の時に不具合がありました。
ツールバーの要素に’-'って指定すると縦棒でスプリットしてくれるんですが
これがでない。
問題はグレーのcssにバグあり。下記を治せばOK。
間違い
.x-toolbar .xtb-sep {
background-image: url(../ext/resources/images/default/grid/grid-split.gif);
}
正解
.x-toolbar .xtb-sep {
background-image: url(../images/default/grid/grid-split.gif);
}
Ext 3.1: メモリ問題の大幅な改善(IE)と新しいUI部品
結構いろいろ更新されてますね。
IE6への対応は助かります。
新しいUI部品もちらほら。ダウンロードしてexampleをのぞいてみよう。
ちなみに、exampleはapahceなどのHTTPサーバを経由してじゃないと動きません。
Perlですが、リファレンスになってるハッシュのマージする方法。
my $hash1 = { aaa=> 10, bbb=> 100, ccc=>1000, }; my $hash2 = { bbb=> 20, }; my $merge= { %{ $hash1 }, %{ $hash2 }, eee=>'add', }; use Data::Dumper; print Dumper $merge;
とすると、以下の感じでマージされる。ちゃんと後ろにくっつけた、hash2が同じキーbbbを上書きしてる。
$VAR1 = { 'bbb' => 20, 'aaa' => 10, 'ccc' => 1000, 'eee' => 'add' };
ちなみに、ふつうのハッシュをマージ・結合するには
my %hash1 = ( aaa=> 10, bbb=> 100, ccc=> 1000, ); my %hash2 = ( bbb=> 20, ); my %merge= (%hash1, %hash2, eee=> 'add'); use Data::Dumper; print Dumper \%merge;
で同じ結果に。
やっぱり一度、リファレンスから戻さないと結合できないみたい。
結局はリストの結合と同じね。
Perl の CGI.pmはよくお世話になりますが、UTF8を扱おうとすると、utf8フラグがたったり、なかったりと問題があるようで、めんどくさいのでCGI.pmでパラメータ受け取るときにすべてのパラメータを一度に処理してます。
1件ごとでなくて、飛んできたパラメータ全部をdecodeしてみる。
use CGI; for my $p ($CGI->param) { my @v = map {Encode:: decode_utf8 ($_)} $CGI->param($p); $CGI->param($p,@v); }
たつをのChangeLog殿から、dankogai殿の指摘をみて、自分のコードも少々修正してみました。
たつをのChangeLog Perl の utf8 まわりのおまじない
use utf8; use CGI; ... my $text = $q->param('text') || ""; utf8::decode($text) unless utf8::is_utf8($text); ...
Encode:: decode_utf8を使いましょうとのご指摘はこちら。
http://blog.livedoor.jp/dankogai/archives/51290188.html
Validationの観点だけではなく、簡潔性の観点からも、Encode::decode_utf8()はおすすめです。すでに UTF-8 flag がついた文字列はそのままコピーするだけなので、条件分岐も不要です。
なるほどー
ExcelのTips
金額や大きめの数字を入れた際に、1億2千万といった具合に、漢字を入れてほしい場合
次の表示形式をExcelで設定すればOK。
[>=100000000]####”億”###0″万”####;[>=1000]####”万”####;G/標準
ちなみに、書式の設定方法は
- 該当セル選択後、右クリックから「セルの書式設定」を選択
- 表示形式タブを選択
- 分類の「ユーザ定義」を選択
- 右側の「種類」に上記設定を入れましょう。
- Excelで表示形式を億万表示にする
無償PDFプリンタの話
クセロPDFの無償ダウンロードが終わりどうしようかと思ってたところ見つけたのが、以下。
http://www.bullzip.com/products/pdf/info.php#download
インストールして、あとは印刷する際のプリンタとしてbullzipを選択すればOK
簡単!
なんですが、起動された画面が文字化け。どうもVistaだと発生するとか。
以下の手順で治ります。
- 「メモ帳」を起動
- 次のファイルを開く
- c:\Program Files\Bullzip\PDF Printer\Labels.txt」
- 開くときの文字コードをUnicodeにする。
- 下記を先頭行に追加し、保存。
WindowsLanguage=JPN
CultureID=1041
CultureName=ja-JP
CultureNativeName=日本語 (日本)
MissingTranslations=0 - エクスプローラ等で、c:\Program Files\Bullzip\PDF Printerに移動
- 「gui.exe」を右クリック
- タブ「互換性」の「互換モードでこのプログラムを実行する」のチェックボックスにチェックする。その右は「Windows XP(Service Pack 2)」を選択して「適用」ボタン押下
で治るはず。
Wordで書類を書いて、PDFにするときですが、罫線に点線を使うとどうもきれいにPDFにならない。単なる直線ならきれいなのに。この辺はフリーなのでしょうがないかな。
CGIやPHPでとれる環境変数、REQUEST_URIとSCRIPT_NAMEですが、普通に使う分には中身が同じなので気にしてなかったのですが、mod_rewriteを使ったら、あら!違うじゃないですか。とハマッたのでメモ
以下のように、とあるCGIにアクセスした場合は
http://localhost/info.cgi
REQUEST_URI /info.cgi
SCRIPT_NAME /info.cgi
おなじ
じゃ、例えば
http://example.jp/blog/200908/01.html
といったURLを
http://example.jp/blog/article.cgi?id=20090801
と書き換えたとすると、REQUEST_URIとSCRIPT_NAMEはそれぞれ以下のようになる。
▼ブラウザから送られてきた要求のURI
$ENV{REQUEST_URI} = /blog/200908/01.html
▼CGIスクリプト名
$ENV{SCRIPT_NAME} = /blog/article.cgi
ポイントは、
REQUEST_URIはそのまま、【ブラウザから送られてきた要求のURI】
SCRIPT_NAMEは【実行されているスクリプトのパス】ですね。
はまりポイントである。
で、これが目的。Catalystをインストールしてみる。
- cpan Catalyst::Runtime
- cpan Catalyst::Devel
- cpan Catalyst::View::TT
で、いくつか問題がありました。
- Perlのバージョンが5・10系だと、Catalyst::Develのインストールで起こられた。なので、Perlをバージョンダウン
- cpan install Catalyst::Develで下記エラー
Failed during this command:
JDB/Win32-Process-0.14.tar.gz : make NO
BZAJAC/Proc-Background-1.10.tar.gz : make_test NO
FLORA/Catalyst-Devel-1.19.tar.gz : make_test NO 2 dependencies missing (Win32::Process,Proc::Background)で、自動でインストールできなかったWin32::Processを個別にcpanから入れようとしても、同じくエラー。
当然か!
で完了なわけですが、Catalyst::Develが入らない。なので、ここはppmでインストールしてみる。面白いことに、ActivePerlだけかと思いきやStrawberry Perlでも利用できる。ppmで先にWin32-Processをインストール
PPM> install Win32-Process
Install package ‘Win32-Process?’ (y/N): y
Installing package ‘Win32-Process’…
Bytes transferred: 12323
Files found in blib\arch: installing files in blib\lib into architecture depende
nt library tree
Installing C:\strawberry\perl\site\lib\auto\Win32\Process\Process.bs
Installing C:\strawberry\perl\site\lib\auto\Win32\Process\Process.dll
Installing C:\strawberry\perl\site\lib\auto\Win32\Process\Process.exp
Installing C:\strawberry\perl\site\lib\auto\Win32\Process\Process.lib
Installing \site\lib\Win32\Process.html
Installing C:\strawberry\perl\site\lib\Win32\Process.pm
PPM>
もういっかいcpanからcatalyst::Develをインストール。
OK。成功!!!
cpanコマンドの設定メモ。よく忘れるんだこれが。
- 設定一覧
- o conf
- CPANミラーのURL設定
- o conf urllist [http://......,http://.....]
- CPANミラーのURL追加
- o conf urllist push 追加するURL
- これでurllistの後ろに追加される
- o conf urllist unshift 追加するURL
- これでurllistの先頭に追加される
- o conf urllist push 追加するURL
- CPANミラーのURL削除
- o conf urllist pop 削除するURL
- Proxyの設定
- o conf http_proxy http://プロキシ名:ポート
- o con ftp_proxy http://プロキシ名:ポート
- Proxyに認証がいる場合
- o conf proxy_user ユーザ名
- o conf proxy_pass パスワード
- 設定の確定・保存
- o conf commit
- これを忘れると保存されない。
Perlを好く使うんですが、Vimとかemacsとか使いこなせないんで、Windowsで開発してます。(笑)
で、PerlはActivePerlを使ってたんですが、Strawberry Perlって環境もあるときき試してみることに。最近買った、モダンPerl入門 (CodeZine BOOKS)
って本で知りました。(遅いかっ!)
インストール手順
- ダウンロード
http://strawberryperl.com/から5.10系か5.8系を選んでダウンロード - exeなのでそのままインストーラを実行
- 試した5.10は特に選択肢もないままインストール完了
- インストール先
- c:\strawberry\
- Perl.exeなど:c:\strawberry\perl
- DLLやgccなど:C:\strawberry\c
- 環境変数PATH
- c:\strawberry\perl\binとC:\strawberry\c\bin
- perlとDLLへのパスとなる。
- 追記!!!効果のほどはわかりませんがいかもPATHに追加しておく
- C:\strawberry\c\mingw32\bin
- 結果PATHは
- C:\strawberry\c\mingw32\bin;c:\strawberry\perl\bin;C:\strawberry\c\bin
- となった
感想
まず、gccやDLLを内包しているという点は結構大きい。
開発をwindowsで行っても実際に本番サーバはLinux系のことが多いので、各種ライブラリはやはりCPANから持ってくる。まれに、というか結構ActivePerlのPPMには存在しないものもあり、結構面倒なのでこれはすごくイイ
インストール先がc:\perlでないのもOK。インストール先の選択肢が無く一瞬あせったが、 ちゃんとかぶらないようになってた。ウレシイ
ちなみに、ActivePerlと共存させるため、シンボリックリンクでc:\perlを作ってみました。