2010年1月アーカイブ

2010年1月29日
| コメント(0) | トラックバック(0) UTF-8のBOMとPerl::Tidyの関係について

手元にあるPerlでは、UTF-8のBOM(Byte Order Mark)を付けていてもスクリプトがちゃんと実行される。
なので、最近は(文字コードの自動認識を手助けする意味でも)BOMをつけて保存していた。

ところが。

Perl::Tidyの系列(Acme::PerlTidyとか)でBOM付きのスクリプトを整形しようとすると、残念ながらエラーが返ってきて整形できないのだ。

…気づくのが遅かったか。

devel.nqou.netでは、jqueryFileTreeを使って作ったDirectory Listから、Faceboxを使ってソース表示や画像表示をしていた。
jqueryのコールバックを使って実現していたのだが、今思えばややこしいことをしていた。

今回、ColorBoxで実現するに際しては、iframeで表示することにした。
試行錯誤はしたが、結果的にとてもシンプルになった。
start_colorbox.js

しばらくはこれで行こう。

jQueryのプラグインで、LightBoxのようなエフェクトが使えるプラグインである「ColorBox」を導入してみた。

A light-weight, customizable lightbox plugin for jQuery 1.3 and 1.4

prettyPhotoでは、sourcereader.cgiを使ったソース表示が無理っぽかった(iframeはhrefにwidthやheightのサイズを入れるような)ので、とりあえず、別のものを探そうかと。
探せばいくらでも見つかるので、できるだけ新しいものを探した。
それがたまたま「ColorBox」だったわけだが。

データベース関係のモジュールというと、今までDBIしか使ったことがなかったのです。
CDBIとかDBICとか話には聞いているけれど、イマイチよく分からないので、手を出していなかったのです。
まあ、DBIを使い始めた頃に作った、オレオレモジュールで間に合うくらいしかデータベースを使っていないので、別に不便でもなかったので。

しかし、JPerl Advent Calendar 2009で、DBIx::SkinnyData::Modelの紹介があってO/Rマッパーも試してみたいと思ってきました。

で、まずは身近なところから入門しようかということで、DBIx::Simpleです。

普段は「binmode STDOUT => ':encoding(cp932)';」とやっているので、Wide characterとは無縁なわけです。
が、データベースとのやりとりを整理する上で気になったので、printとsayを標準出力とファイルで実験してみました。

使用したのはStrawberry Perlの5.10.1.0のmsi版。

結果を先に書くと、Perl6::Sayのsayコマンドは、STDOUTに出力するときは、内部形式から変換してくれるらしい事がわかりました。

はじめのうちは、USBメモリに入れてPerl自体を持ち歩こうと思っていたのだが、ネットブックごと持ち歩くことになりつつあるので、Portable版はやめることにした。

ウロウロしていたら、MENTAがバージョンアップしているのを発見した。
しかも、オフィシャルサイトのアドレスも変わっていた。

とりあえず、適用。

StrawberryPerlでminicpanを使う時に設定でハマったのでメモ。

なんとか上手くいく方法はないものかと。

定石では、標準出力は『binmode STDOUT, ':encoding(shiftjis)';』でutf8からshiftjisに変換できるはずですが、なぜか上手く行かず…。

普段から「binmode STDOUT => ":encoding(cp932)";」をよく使うので、なんとかならないかやってみました。
やってみればちゃんと出来るものです。

2010年1月 3日

成田空港に到着。
この後、伊丹空港行きまで少し時間があるので、ラウンジで休憩中。
すぐ休憩終わりだけど。

Google検索

Last.fm

このアーカイブについて

このページには、2010年1月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2009年12月です。

次のアーカイブは2010年2月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログのライセンスは クリエイティブ・コモンズライセンス.
Powered by Movable Type