Home > Perl Archive

[ << < 2  3  4  5  6  7  8  9  10  11  12 >> ]

Perl Archive

Template::Plugin::TruncateByWord

UTF-8 な文章の概要(「あいうえおかきくけこ」を「あいうえお。。。」)とか表示するのに Template-Toolkit でやってしまいたいなぁ、と思った

本当は Template-Toolkit でフラグ付 UTF-8 を上手に扱うワザを身につければいいのだろう、とは思うのだが、今使いたい。今欲しい

ちょっと探したけど思うようなものがなかったのでパラリと書いた
もうちょっと探して似たようなものがなければ、pod 書いて公開するか

euc-jp や utf-8 のバイト列 -> フラグ付 UTF8 -> 指定「文字数」でちょんぎる -> 元の文字コードに戻す
というようなことをやっている

package Template::Plugin::TruncateByWord;

use strict;
use warnings;

our $VERSION = '0.1';

use Template::Plugin::Filter;
use base 'Template::Plugin::Filter';

use Encode;
use Encode::Guess qw/euc-jp shiftjis 7bit-jis/;

our $FILTER_NAME = 'truncate_by_word';

sub init {
    my $self = shift;
    $self->{_DYNAMIC} = 1;
    $self->install_filter($self->{_ARGS}->[0]||$FILTER_NAME);
    return $self;
}

sub filter {
    my($self, $string, $args, $conf) = @_;

    return '' unless $string;

    # decode
    my $org_enc;
    unless ( utf8::is_utf8($string) ) {
        my $enc = Encode::Guess::guess_encoding($string);
        $org_enc = ref $enc ? $enc->name : 'euc-jp';
        $string = Encode::decode($org_enc, $string);
    }

    my $org_length = CORE::length($string);
    my $length = $args->[0] || $org_length;
    return if $length =~ /\D/;
    $string = CORE::substr($string, 0, $length);

    my $suffix = $args->[1]||'';
    # revive encode
    $string = Encode::encode($org_enc, $string) if $org_enc;
    return $org_length > $length ? $string.$suffix : $string ;
}

1;

使うものじゃなくて作るもの

via New Generation Chronicle:開拓者から改革者へ ネタで未来を切り開く男 大沢和宏 (2/6) - ITmedia エンタープライズ

 メリットは、自分で作ってるので手足のように使える、Catalystとかの嫌な部分が体感できた。そんな感じです。やっぱりフレームワークは使うものじゃなくて作るものだと思うので、そろそろSoozyの次の別のフレームワークを作ろうとしています。

非常に納得。手前味噌ながら、一年以上日記では触れていないCGI::Minimal::App、自分で作ったものだけに、日常使いに最適! 自分で作ってるから、自分が好きなように直し放題! 公開していないので本当にいじり放題! そして、公開前に飽きてきた!

つっても次のフレームワークを作るかというとそこまでの気持ちはなくて「如何に日常書くコード量を減らしてギター弾く考えることに時間を使うか」ということをやるためには、まだまだ C::M::App には進化してもらわなければならない

FindBin::libs が激しく便利そう

おいぬま日報(不定期)経由。忘れないようにメモ

stfuawsc

と、2 件書いて、つくづく stfuawsc だなぁ。。。と orz
ワシ、超がんがれ

「輝け!全日本最強 CPAN Author 決定選手権 2007」完全版

http://d.hatena.ne.jp/charsbar/20080522/1211428790
The CPANTS mulitplayer online game の日本人版を見ていたところ、後輩と自分を発見。後輩、善戦。ワシ、もっとがんがれ。超がんがれ

そんな所に名前載るだけで充分すごいです!! - 加藤泰文 (2008年05月29日 21時46分26秒)
あざーす! でも、もっと色々やりたいという思いとか、やりたいと思うだけではいけないという思いとか、いろいろあったりします - oneroad (2008年05月29日 22時15分02秒)

Perl-users.jp - 日本のPerlユーザのためのハブサイト

http://perl-users.jp/

YAPC::Asia 2008 で Michael Schwern は「SEO に有効な独自ドメインを取って、もっと Perl 初心者が集まりやすい nice な Perl の情報を集めたサイトを作れ!」といったので Perl-users.jp ドメインを取って、ここに Perl-users.jp を開始します。

以前より Shibuya.pm 界隈では、初心者や複雑な Perl の話題をキャッチアップ出来ない Perl 利用者をどうすくい上げるか、という議論を盛んに行っておりました。
Schwern の言う通り Perl で検索してもなかなかいい情報にたどり着けなかったりと、それは酷い現状をどうにかしたいという思いは YAPC::Asia 2008 のスピーカー陣に共通するものであると思っています。

で、あっという間にドメイン取得してサイト開設した、と。こういう行動力は心底すごいと思う。外にアピールする人ばかりがすごいというわけではないが、こういう行動力は何かと比べてどうこうじゃなくて、本当にすごいと思う

  • 小さな集団の中で俺ってすごいとか言ってるだけで自分が井の中の蛙だと薄々気づいてるくせに気づきたくないふりをしているっぽい人にはたくさんあってきたが、こういう人には、まだ数人にしか出会えていない
  • 単に自分が出会いにいかないってだけで、向こうから会いにきてくれないってことはわかっているので、わしも「小さな集団云々」と大して変わらんのぉ
  • 最近ひとの役にたつ行動をあまりしていないので、少なくとも、いっしょに仕事をしている仲間達にとって役にたつ行動をとろうかと思った

DBIx::MoCo を使ってみるかもしれない

via Introduction to DBIx::MoCo

今は DBIx::Simple + SQL::Abstract + 俺々ラッパーで満足しているが、プレゼン資料を見て、pod 読んで、なんか良さげな感じだったので

twitter2growl.pl をちょっと改造して導入

どうも twhirl の調子が悪い ので、かわりを探していたのだが、どう考えても 投稿 <<<< 閲覧 なので、投稿は最悪 WEB でもいいやってことで、Growl に垂れ流す方法を探していたところ、

via #!shebang.jp : Twitter が更新されすぎてるので Growl で見る事に。。
とかいうのがあったので、頂いてきたところ、

Cannot decode string with wide characters

とか言われるので

--- twitter2growl.pl.org        2008-05-16 22:47:40.000000000 +0900
+++ twitter2growl.pl.new        2008-05-16 22:47:01.000000000 +0900
@@ -8,7 +8,7 @@
 use JSON::Any;
 use File::HomeDir qw(home);
 use POSIX;
-use Encode ();
+use Encode;
 use Path::Class qw(dir file);
 use IO::Prompt;
 use YAML;
@@ -61,7 +61,7 @@
             POSIX::strftime($config->{date_format}, 
                             localtime(str2time($st->{created_at})));
         $notify .= sprintf "(%s) %s - %s\n", 
-            $dt, $st->{user}->{screen_name}, $st->{text};
+            $dt, encode('utf8',$st->{user}->{screen_name}), encode('utf8',$st->{text});
     }
     if ($notify) {
         Mac::Growl::PostNotification(

としたら動いてるっぽい

あとは cron で

*/5 * * * * twitter2growl.pl

とかするだけ

それにしても、Mac::Growl とか IO::Prompt とか File::HomeDir とか、普段あまり使わないもののサンプルとしていいスクリプトだなぁ、と思った
あと、Path::Class は便利そうなので、さわってみる

追記:
複数アカウントで運用する時は、スクリプトを別名コピーして、ファイル名に関する箇所 [config.yml (1 カ所) と .lastupdate (2 カ所)] を書き換えてしまうのが一番ラクチン

使うよ! use charnames を使うよ! 

via use charnames; を使うんだルーク! - TokuLog 改め Moose かわゆす日記
知らなかったよ。。。だって、僕の emacs の上では、全角スペースには色がつくんだ。。。

[oneroad@kawabata 21:26:29 oneroad]$ corelist charnames

charnames was first released with perl 5.006

おぉ! たいていの環境で使えるね!
ありがとう! ありがとう! ありがとう!

HTML::Split は激しく有用な予感がする

HTML::Split : おまえのログ

これは絶対使うと思うのでメモ

[ << < 2  3  4  5  6  7  8  9  10  11  12 >> ]

Home > Perl Archive

Feeds

Return to page top