トップ 最新 追記

どんぞこ日誌

2003|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|07|08|12|
2007|01|04|08|12|
2008|01|02|03|04|06|07|08|10|11|12|
2009|01|02|04|05|06|07|08|09|11|12|
2010|01|03|04|07|08|10|11|12|
2011|01|02|03|04|05|06|07|08|10|12|
2012|01|02|03|05|06|07|08|09|10|
2013|01|02|07|08|09|
2014|08|09|
2015|08|
2016|06|07|12|
2017|01|03|08|
2018|03|
2022|03|
2023|03|
2024|02|07|10|

同人関連(どんぞこ楽屋) | 旧い雑文   


■2004-10-03

* [雑感] 新しいディスプレイB!

 Mitsubishiの19型液晶ディスプレイを買いました。広くて見やすいです。一段落。

* [今月のAcme] Acme::BadExampleB!

 ばたばたして結局9月分ですが。Acme::BadExample。悪いお手本。文法的には妥当なのに、コードとしては滅茶苦茶というモジュールです。動きません。動かせたら作者が100ドルくれるそうです。で、これのドキュメントにも登場するPPIというモジュールは、PurePerlなPerlパーサ(Parse::Perl::Isolated)で非常に興味深いものです。そのうち訳してみたいなあ。そのPPIは正しく解析できるけれども、現実には動かない……だからBadExampleということだそうで。このモジュールはコードの面白さが肝なので、別ページにて紹介です。

* [Perl] EncodeとMIME-HeaderB!

 Re: 全角半角変換という記事(この紹介からEncode+mod_perlとphpの比較経由)で、"utf8 -> MIME-Header への Encode では、行末の折り返しが一般化できないため、現時点では=?UTF-8?= 決め打ちになっています"とあります。どうやらJEncodeに加えたISO-2022-JPエンコード用クラスの処理は何か間違っているらしいのですが、何が問題なのかわかりません。う〜ん、どうしよう…… (ちなみにJcodeのChangesによると、日本語変換に関して現在のJcodeはEncodeよりも高速)。

 その問題はひとまず置いておいて、JEncodeの機能追加。渡された文字列のUTF8フラグをチェックするようにしました。CPANモジュールの中にはPerl5.8以降で使用するとutf8エンコーディングされた文字にUTF8フラグを勝手に立ててしまうものがあるので、その対応です。use utf8したコード内部でも正しく動作するはずです。ただしその場合は$JEncode::UTF8を真にします。$j->utf8で返される値にUTF8フラグを立て整合性をとります。また、print "$j"とやったときにもeuc-jpではなくUTF8フラグ付きのutf8エンコーディングされた文字列が出力されます。

[追記]
  ああ、そうか。Encode::MIME::Headerの実装は、utf8を1キャラクタずつ取り出してbytes::lengthでバイト数を計算し、75バイトを超えると折り返すようになっているのですが、これだとiso-2022-jpのバイト数を計算できないですね。iso-2022-jpを1バイト毎に取り出せば正しく折り返せますが、折り返しの部分でESCが切られちゃうとメーラによってはうまくdecodeできません。かといって単純にlengthを計算する前にiso-2022-jpに変換すると、非asciiが1文字ごとにESCで挟まれてしまい、エンコードされた文字列がとんでもなく長くなっちゃうし。
  Danさんの書かれているとおり、正しく綺麗に処理させるのは結構面倒なので、現状JEncodeの実装である「mime-encodeする直前にiso-2022-jpに変換」のままにしておきます。"ア1イ2ウ3エ4オ5カ6キ7ク8ケ9コ0"みたいなエスケープシーケンスに挟まれまくりのサブジェクトでない限りは、utf8で計算されたバイト数を超えることもないでしょう。

[追記] JEncode v.1.33で解決しました。(2004-11-04)

[]

■2004-10-06

* [雑感] ちょっといい車内アナウンスB!

 最近、心身共に調子がよろしくなく、イライラする毎日が続いております。そんななか、昨日乗った電車内にて。

「本日傘を扉に挟む事故が4件起きています」
「……傘をドアに向けて突撃しないでください」

 突撃? よもやJRの車内アナウンスでそんな言葉が聞けるなんて。

「……扉の付近にいる他のお客様に刺さったらそれこそ大変です」

ああ、なんて味のあるアナウンスなのでしょう。そういうわけで少しだけ幸せな気分に。

本日のツッコミ(全2件) [ツッコミを入れる]

_  [何かと世知辛い昨今、忙しい合間にもさりげないウィットとユーモア感覚を忘れずにいたいですね。]

_ まかまか [いやあ、本当ですね。上のアナウンスはウィットに富んでいるんだか直球なんだかよくわかりませんが、とりあえずツボにはまり..]

[]

■2004-10-09

* [雑感] 勤務風景B!

 先日勤め先でバイトを募集しようということになりました。それで募集広告用の社内風景写真を撮ったのですが、その中から今日は皆様に何枚かをご紹介します(プライバシー保護のためモザイクかけてます)。

  管理者近影:皆様ご存じの当サイト管理人です。
  朝のミーティング:壇に立って報告をしています。
  同僚との楽しい語らいの一時:見ての通りです。

 結局そのとき撮った写真は広告業者に拒否されたことを今日知りました。みんなで苦労して撮ったのに。 ……風邪気味で熱っぽいです。

* [今月のAcme] Acme::Japarl(自作)B!

  今日は台風のため半ドンになりました。思いがけず時間が出来たので今月のAcme。でもCPANモジュールではなく自作のやつです。例えば次のコードをみてみましょう。

print join('',reverse(split(//,$str)));

慣れていないとわかりにくいですね。そこでAcme::Japarlです。これを使うとこうなります。

出力 結合('',逆転(分割('',$変数)));

ほら、なんてわかりやすいんでしょう。

 use Acme::Japarl 'euc-jp' => 'shiftjis';
 my $ほげ = "これはテストです";
 my @配列 = 0..8;
 my @ふー;
 
 出力 結合('',逆転(分割('',$ほげ))),改行;
 # print 'すでトステはれこ'
 
 反復 { $_++ } @配列;             
 # <=> for(@array){ code }
 
 @ふー = 倶列附 { $_ % 2 } @配列;
 # <=> grep { condition } @array
 出力 @ふー,改行;
 
 @ふー = 地図 { $_, $_ * 2 } @ふー;
 # <=> map { code } @array
 
 my $条件 = 1;
 もし     {$条件 == 1} ならば { 出力 "ok\n" }
 あるいは {$条件 == 2} ならば { 出力 "elsif1\n" }
 しからずんば                 { 出力 "else\n"   };
 
 出力 木魚();
 
 sub 木魚 {
        帰還 'ぽくぽく';
 }

* [メモ] 恫喝B!

 虚偽の歴史を押し付ける。自分の気に入らないことについては言論の自由を認めたくない人達のお話。

[]

■2004-10-14

* [雑感] こうさぎの書き込みB!

 ついにこうさぎがFSWikiに書き込みました。これ。今までもPOSTはされていたのですが、なぜかファイルに保存されなかったのです。まあとにかく良かったよかった。

* [雑感] 定食屋さんにてB!

 近所に安くておいしい定食屋さんがあるのですが、夏場はゴキブリの幼虫が闊歩しています。最近は涼しくなったから大丈夫かなと思って久しぶりに行ってみました。向いの壁に大きいのが! それでもそれ一匹だけだから気にせず食事をして、口を拭おうと横に置いてあったティッシュボックスに手をかけたら……

 ワラワラと。

* [雑感] 言論テロルB!

 前回の言論の自由を認めたくない人達のお話ですが、とうとう休載に追い込まれたそうで(ここ経由)。やっぱり議員の圧力は大きいのかなあ…… あとここのサイトの荒らされぷっりが圧巻。言論テロルを支える人達の品性の下劣さには唖然とするばかり。

[]

■2004-10-20

* [雑感] まだ風邪気味B!

 相変わらず熱っぽいです。喉と鼻にきていないだけましかなあ。週末に友人の結婚式があるのに余興が決まらず。再来月も結婚式ですよ。喜ばしいことですがさすがにきつい〜

* [Perl] 正規表現によるウィルスチェックB!

 CPANのFile::Scan。PurePerlなウィルススキャンモジュール。ウィルスのシグネチャを書き出す方法が付属していて面白そうだったのでメモ。正規表現でシグネチャを調べていくとのこと。

* [雑感] まだ燃えてるみたいB!

 燃えるその2「“誰と”議論すべきか、“いつ、どこで”議論すべきかという設問が、いまは大事」というのは全くもって同感。 で、ここは相変わらず荒らされているみたい。そこの19日付のコメント欄に先にあげたリンクが引用されていて「腐れ左翼どもの自作自演祭が始まったな」などとありますが、なんといいますか、やっぱり品性下劣だなあ……

* [雑感] 台風が近いので早く帰ってきましたB!

 googleの日本語版スペルチェック機能で「女子大生」に対して「もしかして: 女子高生」になるのが少し前に話題になってましたが、「婦女子」で「もしかして: 腐女子」は……あんまりと言えばあんまりな気が。

[]

■2004-10-24

* [雑感] 記念撮影の多い結婚式B!

 昨日は友人の結婚式と披露宴。なんだかやたらと記念撮影タイムがあって不思議な感じ。

* [Perl] reverseの挙動B!

 前回のAcme::Japarlでreverseを例に使っていましたが、よく考えたら reverse $str($strは文字列)だけで、文字列はひっくり返るんですよね。わざわざsplitする必要なんてなかったわけです。まだまだ精進が足りません。
  いうまでもなく、use utf8されている状態(あるいは正しくencodingsを使用している場合)では、マルチバイト文字も適切にひっくり返してくれます。

[]

■2004-10-31

* [記憶] 一足お先にいってらっしゃいB!

 郷里で老いた猫が往生しました。私が小2の時に拾ってきたのですが、後にも先にも私自身が猫を拾ったのはその一匹だけです。私事にかまけず会いにいけばよかった。いのちはどこぞからやって来てどこぞへ去るものだから、またいつか何処かで会いましょう。それではいってらっしゃい ミャー太

* [状況] 連絡B!

 連絡をくださった皆様、ありがとうございます。少しずつではありますが、復旧に向かっています。でも復旧の兆しの見られない地区も多々あるのがつらいです。一日も早くよくなることを祈らずにはいられません。

[]