2007年2月アーカイブ

前回の、VimのAlign.vimを日本語でも使えるようにの続き。
修正点2点。

UTF8環境で、半角カタカナが混在しても上手く並べられるように。
EUC-JP対応。

.vim/auto/Align.vim

入門 Common Lisp

| コメント(0)


入門 Common Lisp

Lisp本は、Mew作者の本に続いて2冊目だにゃ。


"リスト遊び―Emacsで学ぶLispの世界" (山本 和彦)

λの表記は馴れなかった・・・。
High Order Perlを読んでから、$code_ref = sub { hoge }; とか freeze($code_ref)とかやってる。
めちゃ便利。


蛇とピアス

途中で登場する、社会学者 田宮さん。このひとモデルは宮台さんじゃないのかな。名前が似てるし、「強度」とか言ってるし・・・

"WEB+DB PRESS Vol.37" (技術評論社)

Catalyst, DBIx::Class, POE・・・どれも自分で手を出し、すこしするとWEB+DBに載る感覚が(笑)。
自分でしこしこPODを見ながら進めていったから覚えたんだ、という思いと、
WEB+DB見てから試したほうがはやかったんじゃ、という思いと、交錯してます。

WxPerlでプログレスバーを作るのに、進行中の処理とバー描画の処理と分けるとすると、3つぐらい方法が考えられるかな・・・

1、use threads;
2、Wx::SimpleApp->Yield;
3、use POE;

use Encode; や use encoding; してると、どうもうまくスレッドが動かないので2か3。
両方動くやつ作ってみたけど、結局Yieldにしました。

my $workbook = Spreadsheet::WriteExcel->new($filename);
die;

のようにすると、上手く例外を投げてくれなかったんだけど 2.18 で直ったみたい。
Smart::Commentsをがりがり使っちゃいましたよ。
英語でバグレポしてい。

ちょっとしたGUIフロントエンドを拵えるのに便利なWxWidgets。
Perl/Tkなどに比べて利用者の目に優しいところがよいです。

ダイアログなどを構成するのに、テキストやチェックボックスをメソッドを呼びだして一つ一つ作っていく方法と、XRCというビルダーで構成したXMLを読ませて、構成済みのダイアログを読みだす方法と、二つあります。

今までXRC経由で読みだすと、インスタンスはスカラーリファレンスになるので・・・

sub new {
    my ($class, $parent) = @_;
    my $self = $xrc->LoadDialog($parent, "config_dialog") || die;
    $self->{msg} = 'ahi-';

とかすると、"Not a HASH Reference"と怒られます。
それもそのはず、Dumper $selfすると・・・

$VAR1 = bless( do{\(my $o = 96575776)}, 'Wx::Dialog' );

スカラーリファレンスですね。

そこで、Class::Accessor::Fastなどを使ってみるのですが、これもハッシュリファレンスを前提にしていて、同じエラーがでます。

Perl Best Practicesで思いだして、InsideOutオブジェクトなら行けると、Class::InsideOutをずーっと使ってました。

しかし、見つけてしまいました、XRCからHash Referenceインスタンスを生成する方法を。

use base qw(Wx::Panel);
sub new {
    my ($class, $parent) = @_;
    my $self  = $class->SUPER::new;
    #undocumented function
    $xrc->LoadOnDialog($self, $parent, 'config_dialog') || die; 
    $self->{orz} = '_| ̄|○';

・・・
LoadOnDialog, LoadOnPanel, LoadOnFrameがある模様・・・ソース

どなたかYAPC::Asia 2007 Tokyoに行く方いましたら、一緒に行きませう。
しかし豪華ゲストでつね。お世話になってるモジュール、感覚順。
DBIx::Class関係の方は出ないのかな・・・

# 2007-02-16
miyagawaさんより御指摘頂きました。Jonathan RockwayさんがDBIx::Classのメンテナさんだったようです。
MLの散見からMatt S Troutさんをイメージしてました。

おまけ:Featured Speakerを全部みてい

がらくたCGI

| コメント(0)
  • Host2Ip (CGI::Applicationで作りました。動機:社内バーチャルドメイン移行作業用)


"東京膜" (渡辺 ペコ)

★★★★☆

楽天の出品をDB駆動でスッキリやりたい。200品以上あるのだ。ヽ(`Д´)

具体的には、こんなかんじ。

Flow-1
ミソは「入力支援」の部分。
FireFoxにGreaseMonkeyを入れ、楽天の登録フォームアクセス時にCatalystに問い合わせてJSONデータを取得し、Selectフォームを生成、適当な場所にcreateElementし、onClickハンドラにFillinForm的なJSを呼出し自動入力。
各フォームにDBの内容がそのまま、ものによっては加工済みのデータが入る。(BR置き換えなど)

出品作業する人は、Accessのデータ管理と楽天の出品をする。
楽天の出品は各フォームにアクセスしたら、上で用意したSelectフォームから型番(プライマリーキー)を選ぶだけで自動的にフォームが埋まる。
現状はプラス、商品の区分を選んでもらっています。

楽天出品回りの煩雑さをなるべく軽減しようかと。
Alt+Tabとコピペの嵐から解放され、基データの操作に注力できますように・・・

と思ったら、たった今、オークションアシスタントってのをみっけた。
なんだかスゴそうだ・・・

検索キー:自動入力 自動出品 自動登録 楽天 出品 WebService::Rakuten WebService-Rakuten Microsoft Access Excel CSV mdb

買っちゃいました。ショップはShop-Uさん。

ノートPCを見せながら、ちょいプレゼンするのに使ってみようかと。
今までキーを打ちこむときには「ちょっとすみません」といって専有して打っていました。

 R Rbk-2000Bt Rbk2000Bt Open Close

Macbook Proで使ってみましたが、やっぱりFnキーが上手く動きませんね。
コマンドキーやオプションキーは印字通りです。

VimのプラグインにAlign.vimというのがあります。
きたないコードのお掃除に日夜大活躍してくれてます。

ただ難点は、日本語がまじるとうまく整形してくれないんです。

こんなかんじ
ピクチャ 1

なんとかならんもんかと、ちょこっと改造してみました。
どうやらうまくいったよう。
ピクチャ 3-2

改造済み.vim/autoload/Align.vimを置いときます。
Align.vim
なお、元にしたバージョンは2006-09-20でつ。