タグ

ブックマーク / blog.64p.org (87)

  • Module::Install の功罪 - tokuhirom's blog

    M::I が最近微妙だよねという話を懇親会をしていたら、なんか中途半端につたわった感じがあったのでちゃんとまとめておきますね。箇条書きだけど。 利点DSL でかけるのでみためがかっこいい。プラグインとかあって便利 最近は author_tests と、XSUtils ぐらいしかつかてないけど 欠点auto_install がやばいし、つかってると charsbar さんに DIS られますinclude_deps は依存モジュールがアップデートしたときにしぬ!use_test_base がぶっこわれてる → include_deps をつかいこなすのが無理ゲーな実例 use_test_base は test_requires 'Test::Base'; で代替しましょうプラグインがインストールされてない時のエラーメッセージが凶悪dotcloud でつかうには git add -f inc/

    kits
    kits 2011/10/18
  • YAPC::Asia 雑感 - tokuhirom's blog

    LT は「5分間ならだれでもはなせるよね」っていう来敷居のひくい場所ですプレゼンは「なにをつたえたいのか」を明確にすることが一番大事です。たごもさんや kazeburo さんもかいていたけども「なぜそうしたのか」が明確なプレゼンはおもしろいです中規模な方がすぐやくだつ人がおおい(DeNA の規模の事例はほとんどのサイトにはあてはまらない) 大規模だとそういうのもあるのか、へー。 みたいなのはあるし話としてはおもしろいんだけど。「伝えたいことがある」ならプレゼンした方がいいLT の自己紹介は所属と名前をいうぐらいで十分ですLT とかやるときは、友達とか同僚とかに一度みせてからああいう大舞台で発表すれば失敗がすくないです初心者のひとは、これでもかというぐらい練習してからやったほうがいいです。 スライドなしでもいいたいことを全部いいきれる、ぐらいまでどんなトラブルがあるかわからないしand m

  • Re: Perlで、ある要素が配列(リスト)の中に存在するかを調べる方法 - tokuhirom's blog

    http://dqn.sakusakutto.jp/2011/08/perl_10.html もし大学野球の女子マネージャーがPHPのin_arrayをPerlで実装したら。 use 5.12.0; my @list = qw(apple mango orange); my $item = 'orange'; say $item ~~ \@list ? "yes" : "no"; # 実行結果:'yes' スマートマッチ演算子で簡単に配列のなかに要素がふくまれるかどうかを判定することができます(速度がどうかはともかくとして)。

  • TinyURLをつくってみよう 〜 軽量フレームワークAmon2入門 (4) 〜 - tokuhirom's blog

    インストール今回は Amon2 の最新版が必要なので、すでにインストールしている場合でもあらためてインストールしてください。 環境は OSX, linux を想定していますが、Windowsでもそれほどかわらないかと思います。Windows でやっていてわからなかったら mattn さんにきいてください。 さて、Amon2 のインストールは非常に容易です。Amon2はCPANにリリースされていますから、通常のCPANモジュールと同様にcpanmコマンドでインストールできます。 % curl -L http://cpanmin.us | perl - Amon2 Amon2::DBIで、インストールが完了します。テストに失敗する場合には、コメント欄などできいてください。 TinyURLを作るぐだぐだとかたっていても何もつたわらないと思うので、チュートリアルに入りましょう。 とりあえず、簡単で

    kits
    kits 2011/07/15
    「軽量フレームワークAmon2入門」の2が全角なところが気になる。
  • tokuhirom blog

    Amon2の利点 〜 軽量フレームワークAmon2入門 (1) 〜 というわけで、私が中心となり開発を進めているウェブアプリケーションフレームワークであるところのAmon2に関する連載企画です。続くかどうかはわかりませんけど! 対象読者はウェブアプリケーションの開発の基礎知識はあり、Perlプログラミングを一通り理解していることを前提としています。 Amon2とはAmon2は、ウェブアプリケーションフレームワークです。ウェブアプリケーションフレームワークというのは、ウェブアプリケーションを書くために楽をするためのライブラリと、それに関するツール一式のこととここでは定義しましょう。 そう、Amon2を使えば非常に楽に、高速に、ウェブアプリケーションを開発できてしまうのです。 なぜAmon2なのかしかしウェブアプリケーションフレームワークとひとくちにいっても、Perlだけでも、数え切れないほど

    tokuhirom blog
    kits
    kits 2011/07/14
    「XS非依存」試しにAmon2をインストールしたところ、XSモジュールらしい Digest::SHA1 もインストールされたのが気になった。
  • Perl5 works on browser! - tokuhirom's blog

    I hacked jslinux, so I injected Perl5 binary to jslinux!! You can run Perl5 on browser!!!!!!!!!!!!!!!!!!!!!11111 Modify root.bin with CocProxyThis is a note for hacking jslinux. Very easy. https://gist.github.com/978211 use microperl;Perl5 provides micro version of perl. I used it. You should modify the Makefile.micro file for static linking, change the following line. -LIBS = -lm +LIBS = -lm -sta

  • Perlでもっとも簡単にタイトルタグの中身をしる方法 - tokuhirom's blog

    http://en.yummy.stripper.jp/?eid=1418076 % perl -MLWP::UserAgent -E 'say LWP::UserAgent->new()->get("http://dic.nicovideo.jp/a/%E3%81%AA%E3%80%81%E3%81%AA%E3%82%93%E3%81%A0%E3%81%A3%E3%81%A6%E3%83%BC!")->header("title")'LWP は title タグを解析してくれるので、こうすればよい。

    kits
    kits 2011/03/02
    lwp-request -ed http: //example.com | egrep ^Title: で。
  • Web::Query - jQuery風にスクレイピング - tokuhirom's blog

    http://frepan.org/~TOKUHIROM/Web-Query-0.01/README.pod Web::Query というスクレイピングフレームワークをかきました。一言でいうと「うごく pQuery」です。pQuery は jQuery とおなじ動きにするためかどうかしりませんが、わりと自前で実装していて、結果まともにうごいていません。うごくようになるのをまってようかなとおもっていたら2年経過していたので、自分でつくってみました(パッチをおくってもいいのだけど、別個の実装をつくったほうがはやい気がしたので)。HTML::TreeBuilder::XPath + HTML::Selector::XPath + LWP::UserAgent という構成です。 使用例は以下のとおり。 use Web::Query; wq('http://google.com/search?q=f

    kits
    kits 2011/02/21
  • git で perl のドキュメントを翻訳したデータをおく場所つくってみた - tokuhirom's blog

    https://github.com/perldoc-jp/module-pod-jp ここにつくってみた。 「Japanized Perl Resources Project は CVS だから面倒だ」「sourceforge.jp のアカウントつくるのめんどくさい」などといったことを言う人がおおいので、github におきばをつくってみた。 ここにいれれば自動的に perldoc.jp に表示されるようになります(現状、10分に一度同期してます)。 コミット権限は https://github.com/perldoc-jp ここにのっている人達にいえば貰えるし、pull-req してきてもいいです。github なので、ウェブでの編集も可能ですから、web 上で勝手に typo をなおしたりすることも可能。 まあとりあえずの試験運用ってかんじですが。

    kits
    kits 2011/02/12
  • perldoc.jp のもろもろの改修が一段落した - tokuhirom's blog

    白方さん翻訳分における Pod::L10N スタイルの目次の日語訳形式への対応ディストリビューションページの整形翻訳データをおくための git repository を追加Scss の採用iphone でみてもそれなりにみえるように調整google 検索への対応s や qw などが表示できるように(reported by @akiym)モジュール一覧に最新のバージョンがいくつかを表示するようにモジュール一覧で同じモジュールがいくつもある場合にはまとめるように(by ktat++)といったあたりまでやった。

    kits
    kits 2011/02/12
    目次のスペース入りIDがおかしいです。(id="a%20b" とあった場合はそのままの値となるが href="#a%20b" の場合はURLエスケープされて実質的な値は "a b" になる。Firefoxで辿れない) (→修正済)
  • 継承ベースのテンプレートエンジンってほんとにいけてるの? - tokuhirom's blog

    HTML をレンダリングするのに継承ベースのテンプレートエンジンがいけてる風な風潮があるけれど、どうも継承ベースってのはとっつきづらい気がしてる。INCLUDE していく方がデザイナーちゃんにはわかりいいんじゃないかとおもってる。 そもそもテンプレートの継承って、そんなに多段に継承するものなのかな?自分は一段ぐらいしか継承しないんだけど。そして、継承が一段とかなら、base.html みたいなのをつくっておいて、DOM エンジン + テンプレートエンジンの組み合わせをもちいて、以下のようなかんじでレンダリングした方が管理が楽なんじゃないかなーとおもった。だいたい継承ベースのテンプレートエンジンは DOM で選択できる個所を指定してるしね。 HTML::Zoom->from_html('base.html') ->select('title')->replace_content('ジョンのホ

  • あたらしい perldoc.jp できたよー - tokuhirom's blog

    http://perldoc.jp/ perldoc.jp は、もともと miyagawa さんがつくったサイトだったわけですが、これを JPA が去年ぐらいにドメインだけひきとっていたのを、僕の方でウェブアプリケーションとして実装しました。 元のものよりもだいぶみやすいんではないかとおもいます。 http://perldoc.jp/perlsyn とかもうごくので、べんりべんり。

    kits
    kits 2011/02/04
  • なんで Perl をつかいつづけるのか - tokuhirom's blog

    互換性を大事にしているからバージョンアップしてもそのままうごくっていうのはすごくいいですね。バージョンアップするための作業に自分の時間をとられたくないですね。 そういった意味では Python はのりかえの選択肢になりますね。 正規表現リテラルがあるから正規表現リテラルがない言語はいかんせんワンライナーとかでつかえないので、ワンライナー用の言語をもう一個おぼえておく必要がありますね。正規表現つかえるとやっぱり便利ですね。 やりたいことをやれるモジュールがたいがいあるからさっき node.js で SMTPTLS でメールをおくるスクリプトをつくろうとおもったら、SMTP TLS できるライブラリがみあたりませんでした。 ちょっとしたスクリプトをかこうとしたときに、すぐにライブラリがみつかるというのはやはり Perl は便利ですね。Perl だったら Email::Send::SMTP::T

    kits
    kits 2011/02/01
  • perldoc.jp の perl 本体のドキュメントをみやすく表示するサイトできたよー - tokuhirom's blog

    http://pjp.64p.org/ https://github.com/tokuhirom/PJP/ perldoc.jp はいかんせん、みるのがめんどくさいという難点があったので、もうちょいみやすく表示できるサイトをつくってみた。 公式ドキュメントのみに特化しています。perldoc.perl.org をめざしてそういうかんじにしてあります。 だれかデザインをまともにしてくれるとうれしいですね。

    kits
    kits 2011/01/27
  • FrePAN のスコアリングをチューニングした話 - tokuhirom's blog

    現時点で、search.cpan.org よりも、検索精度よくなったとおもいます。つまりこれは「俺がのぞむ検索結果」にちかい結果をだしてくれてる気がするという程度の意味ですが。 基の検索エンジンに groonga をつかうという方針はかわってないんですが、prefix match した場合に score をつよめにつけたりとかしてます。 あと、これはおおきいとおもうんですが、FrePAN には I use this っていう機能があって、自分がつかってるモジュールを登録できるようになってるんですが、今回、つかってる人がおおいモジュールは検索スコアがあがるようになりました。これは前からかなりやりたかった機能だったので、やっと実現したというかんじ。なお、コメントはべつに日語でかいてもぜんぜんおーけーです。 個人的に CPAN Ratings があんまりすきじゃないんですよね。「いや、あんた

    kits
    kits 2011/01/11
  • HTMLにふくまれるrelative URLをabsolute URLにかきかえる簡単な方法 - tokuhirom's blog

    http://blog.livedoor.jp/dankogai/archives/51568463.html HTML::ResolveLink をつかうと簡単ですね。 #!/usr/bin/perl use strict; use warnings; use utf8; use HTML::ResolveLink; use LWP::UserAgent; my $url = 'http://japan.cnet.com/news/business/story/0,3800104746,20416479-0,00.htm'; my $ua = LWP::UserAgent->new(); my $res = $ua->get($url); die $res->status_line unless $res->is_success; my $html = $res->content; if

    kits
    kits 2010/12/29
    覚書: HTML::ResolveLink は use base qw(HTML::Parser) している。
  • Perl で拡張可能なモジュールをかくときに s/^\+// ? $_ : __PACKAGE__ . '::Plugin::$_' とした方がいい理由 - tokuhirom's blog

    Data::Validator のコードの中にこんなのがあった。 sub with { my($self, @roles) = @_; foreach my $role(@roles) { next if ref $role; $role = Mouse::Util::load_first_existing_class( __PACKAGE__ . '::Role::' . $role, $role, ); } Mouse::Util::apply_all_roles($self, @roles); return $self; } この場合、やはり s/^\+// ? $_ : __PACKAGE__ . '::Plugin::$_' のイディオムをつかった方が問題がすくないようにおもう。たとえば、Data::Validator::Role::JSON っていう拡張があったとしよう(実際に

    kits
    kits 2010/12/10
    '::Plugin::$_' は "::Plugin::$_" でなくて大丈夫だろうか。
  • SASS とか HAML とか、ましてや DBIC と学習コストのはなし - TokuLog 改メ tokuhirom’s blog

    結局、がんばってそれの作法をおぼえても、それのブームがさった後にまったく役にたたない知識なので、そういうのを覚えるぐらいなら、ベーシックな技術の修得に時間をさくべきではないか、とおもった。

  • Encode::encode で変換できない文字を 〓 にする - tokuhirom's blog

    use utf8; use Encode; my $geta = Encode::encode($encoding, '〓'); Encode::encode($encoding, $str, sub { $geta }); とすればよい。 なお、Amon2 においては、encode_html() というメソッドがあるので、ここを上書きすることにより、表示不可能な文字列を入力するべき個所において〓を出力することができる。 【20110218 追記】 コードを修正した

    kits
    kits 2010/11/28
    sub { "\x{3103}" } でもよさそう(ソースの文字コードに依存しないので)。
  • apply BLOCK LIST じゃない方法 - tokuhirom's blog

    List::MoreUtils::apply のドキュメントによれば my @a = apply { $_ * 2 } @b; は for (my @a = @b) { $_ *= 2 } とおなじ。 だそうで。 いわれてみればそのとおりで、apply とか微妙なのつかうぐらいなら for でいいな、とおもいました。

    kits
    kits 2010/11/24
    (List::MoreUtilsのドキュメントによるのなら)最初の例は apply { $_ *= 2 } @b では。/ mapに似ているけど元のリスト要素を変化させないのがapply。