タグ

ブックマーク / dankogai.livedoor.blog (26)

  • perl - 勝手に添削 - utf8環境でperl::Jcodeのtrが使えないとき : 404 Blog Not Found

    2011年06月10日20:30 カテゴリ perl - 勝手に添削 - utf8環境でperl::Jcodeのtrが使えないとき CPANモジュールガイド 冨田尚樹 前世紀まではそれで正しかったのですが… utf8環境でperl::Jcodeのtrが使えないとき - satoru.netの自由帳 要はtrの中の文字のエンコードをeucにしないとだめらしい。なーんだ単純 21世紀ではEncodeを使っていただいたく。 Perl 5.8.1以降であれば、標準のPerlだけで出来ます。 こんな感じに。 use strict; use warnings; use utf8; binmode STDOUT, ':utf8'; my $str = 'あいうえおぁぃぅぇぉ'; print $str, "\n"; $str =~ tr/ぁ-んヴ/ァ-ンヴ/; print $str, "\n"; ポイント

    perl - 勝手に添削 - utf8環境でperl::Jcodeのtrが使えないとき : 404 Blog Not Found
  • perl - 短縮URLを一行で展開する : 404 Blog Not Found

    2011年01月03日06:00 カテゴリLightweight Languages perl - 短縮URLを一行で展開する Perlですから。 Schwarze SQ: 短縮URLを展開するRubyスクリプトを作ってみた なにやら短縮URLを使い、不正なサイトにアクセスさせウィルスに感染させる行為が流行っているらしい(まぁ想定の範囲内だが)。そこで、短縮URLを展開できるrubyスクリプトをちょちょっと作ってみた。perl -MLWP::UserAgent -lE \ 'say LWP::UserAgent->new->head(shift)->request->uri' \ http://j.mp/dankogai id:amachangが昔こさえてくれたこの短縮URLもhttp://blog.livedoor.jp/dankogai/と展開されるはずです。 もう少しverboseに

    perl - 短縮URLを一行で展開する : 404 Blog Not Found
  • Ajax - URIのJPEGからEXIFを抜いて、Google Mapsで表示する : 404 Blog Not Found

    2009年08月01日16:00 カテゴリLightweight Languages Ajax - URIのJPEGからEXIFを抜いて、Google Mapsで表示する それでは、ピンポイントでお答えしましょう。 ディスカヴァー社長室blogディスカヴァー社長室blog: ここはどこ?〜干場 ディズニーシーより混んでいる。 (追記:IEでの不具合を修正) ずばり、ここです。 Demo なつかしいなあ。と入籍する前の婚前旅行で行きましたよ。Caffe Florianにはたちよりました?しっかり勘定に"Musica"って入ってました? ということを簡単に実現するための仕組みです。 やってることは単純で、JPEGからEXIFをぶっこぬいて、そこにある緯度経度に Google Map をセンタリングしているだけ。強いて面倒な点をあげると、EXIFの緯度経度は度分秒で表現されているのに対し、Go

    Ajax - URIのJPEGからEXIFを抜いて、Google Mapsで表示する : 404 Blog Not Found
    goto553
    goto553 2010/09/25
  • perl - 勝手に添削 - Webサイト死活管理 : 404 Blog Not Found

    2010年09月01日03:00 カテゴリLightweight Languages perl - 勝手に添削 - Webサイト死活管理 やはり必要以上にゆるいと感じたので。 PerlスクリプトでWebサイト死活管理 - ゆーすけべー日記 リダイレクトはエラー扱いに 以下、問題と感じたところ。 $ua->is_success は300番台でも成立する LWP に限らず User Agent のほとんどはデフォルトではリダイレクト先まで見に行ってしまう このままだと以下のような場合もOKになってしまう。 % lwp-request -S -mHEAD http://www.dan.co.jp/~dankogai/hijitsuzai HEAD http://www.dan.co.jp/~dankogai/hijitsuzai --> 302 Found HEAD http://blog.li

    perl - 勝手に添削 - Webサイト死活管理 : 404 Blog Not Found
  • perl - O'ReillyのiPhoneアプリ本からepubをぶっこぬく : 404 Blog Not Found

    2010年07月16日01:15 カテゴリ書評/画評/品評Lightweight Languages perl - O'ReillyのiPhoneアプリからepubをぶっこぬく W00t! たった600円でオライリーiPadKindleで読む。すてき。 - このブログは証明できない。 ところが、紙のと比べてそれほど安くないんですね。iPhone版の600円はやはり魅力です。大丈夫。実はこのアプリからiPadで読めるepubを取り出すことができるんです。特殊なハックというわけではなく、オライリーのサイトでもやり方が書かれています。 Ebook Bundles - Getting The Most はてなブックマーク - samurai20000のbookmarkこれすごすぎる。ただ、やり方が面倒なので自動化したいとこ。 やりましょう。 できました。 #!/usr/bin/env p

    perl - O'ReillyのiPhoneアプリ本からepubをぶっこぬく : 404 Blog Not Found
  • perl - use CGI; use Encode; # 非英語Webプログラミング3原則 : 404 Blog Not Found

    2009年06月23日15:30 カテゴリLightweight Languages perl - use CGI; use Encode; # 非英語Webプログラミング3原則 これは、実はPerlに限らず未だに事実だったりするのですが.... Perl でフォームデータから UTF-8語文字をとりだす方法 (プログラミングの小石・大石) UTF-8 のフォームによっておくられたデータのなかから日語文字をとりだすことは,日Perl CGI プログラマならたいてい必要になることである. ところが,その方法は意外に確立されていないようにみえる. しかし、元発言の方法は先祖帰りすぎるので。 Perlプログラマー以外にも、Webプログラマーであれば有用なentryです。 PerlでWebプログラミングする場合の三原則 QueryはCGIモジュールで処理する 文字コードはEncode

    perl - use CGI; use Encode; # 非英語Webプログラミング3原則 : 404 Blog Not Found
  • perl - When \p{} gets evaluated : 404 Blog Not Found

    2006年03月07日02:15 カテゴリ perl - When \p{} gets evaluated 理由が判明したのでentry。追記にしようと思いましたが注意喚起のため。 404 Blog Not Found:perl - how 2 cope w/ \p{IsBogus} これに関してはちょっとバグっぽげなのですがその理由とは、「\p{}は当に利用されるまで評価されない」というものです。 わかりやすくするために、以下に例を示します。 'ok' =~ /no\p{IsBogus}/; # すでに's'でmatchが失敗するので no error 'nok' =~ /no\p{IsBogus}/; # noまではmatchに成功。\p{}でexception その\p{}を展開しているのが、lib/utf8_heavy.plなのですが、 Heavyというだけあって結構大きなscr

    perl - When \p{} gets evaluated : 404 Blog Not Found
  • perl - id:sfujiwaraのFilter.pmをSub::Pipeに : 404 Blog Not Found

    2009年05月22日15:30 カテゴリLightweight Languages perl - id:sfujiwaraのFilter.pmをSub::Pipeに 素敵! 演算子 | を overload して TT のフィルタみたいな記法を実装する - 酒日記 はてな支店 <?= $value | replace('x','y') | uri ?> こんな風に書けたら素敵ですよね。ということでこんなのを書いてみた。 でも、そのままではちょっと使いづらいので、その辺を直してSub::PipeとしてCodeReposにうpしておきました。 /lang/perl/Sub-Pipe/trunk - CodeRepos::Share - Trac 問題点は、以下の通り。 さすがにFilterというモジュール名はまずい。ソースフィルター系とかぶる。 直にcoderefをblessするのはちょっと

    perl - id:sfujiwaraのFilter.pmをSub::Pipeに : 404 Blog Not Found
  • 404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン

    2007年10月30日20:00 カテゴリLightweight Languages perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン 久々の勝手に添削。今回はこちら。 40行で作るPerl用テンプレートエンジン 正規表現がらみなので、Perl以外でも有用。 添削箇所は、こちら。 40行で作るPerl用テンプレートエンジン sub convert { return unless defined(my $str = shift); $str =~ s{&amp;}{&amp;}gso; $str =~ s{<}{&lt;}gso; $str =~ s{>}{&gt;}gso; $str =~ s{\"}{&quot;}gso; $str; } これの最初のsubstitutionが&amp;ではなくて&ではないかというのはさておき、こういった場合、何度も正規表現をかけ

    404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン
  • 404 Blog Not Found:perl tips - Encodeを速く使う方法

    2007年04月23日01:30 カテゴリLightweight LanguagesTips perl tips - Encodeを速く使う方法 はっきり言ってこれはフェアではない。 みかログ: ErlangとPerlの速度比較 Perl側は,Encodeが遅い. Encode::from_toがinplaceでコンバートしてしまうために,直前に文字列コピーがあるのも影響しているのかも なぜなら、Encode::from_to()は速度ではなく、安全性に最適化しているから。 そもそもはじめからUTF-8、それもutf8フラグがたっている文字列にfrom_toを使うのはばかげている。 for(my $i = 0; $i < 0xffff; $i++) { my $str2 = $str; Encode::from_to($str2, "UTF-8", "Shift_JIS"); } は単に

    404 Blog Not Found:perl tips - Encodeを速く使う方法
  • perl - 勝手に添削 - Storable : 404 Blog Not Found

    2006年05月11日13:45 カテゴリLightweight Languages perl - 勝手に添削 - Storable というわけで、ひさかたぶりの勝手に添削のコーナーです。今回は、Storableに関して。 [を] Perl の Storable モジュールのメモ store [ $first->{uhyo}, $first->{hogera} ], "a.dat"; codingそのものに問題はありませんが、damianにも載っていないbest practiceをここで一つ紹介しましょう。 Always use nstore and nfreeze instead of store and freeze. 常にnstoreとnfreezeを使う事。storeとfreezeではなく。 理由は、その方がずっとつぶしが利くからです。頭にnをつけるだけで、platform依存が

    perl - 勝手に添削 - Storable : 404 Blog Not Found
  • perl - Encode 中級 : 404 Blog Not Found

    2008年05月08日04:00 カテゴリLightweight Languages perl - Encode 中級 以前書いた 404 Blog Not Found:perl - Encode 入門 は大好評でしたが、 ウェブで利用される文字コード、UnicodeがASCIIを上回る--グーグルが明らかに:マーケティング - CNET Japan UnicodeがASCIIを追い越し、World Wide Web上で最も多く利用されている文字コード体系になったとGoogleのシニアインターナショナルソフトウェアアーキテクトMark Davis氏がブログで述べている。 という時代に完全対応するには、入門以上の知識がちょっと必要になります。 例えば、blogをホストしてくれているlivedoor blogの文字コードはEUC-JP。「時代はUnicode」だと言っても、こうした事情もまだ

    perl - Encode 中級 : 404 Blog Not Found
  • 404 Blog Not Found:perl - Encode 入門

    2008年04月09日01:00 カテゴリLightweight Languages perl - Encode 入門 すでにOSCONでもYAPCでも、あちこちそちこちでこの基方針に関しては話したのですが、ここ 404 Blog Not Found でも改めて。 Perl で utf8 化けしたときにどうしたらいいか - TokuLog 改め だまってコードを書けよハゲ 入り口で decode して、内部ではすべて flagged utf8 で扱い、出口で encode する。これがすべてです!とにかくこの基方針をまもっていれば幸せになれます。ここでは、EUC-JPでエンコードされたファイル中の「小飼弾」「こがいだん」「コガイダン」「Kogai Dan」を正規表現で書き換えて標準出力にEUC-JPで出力するプログラムを例にとって説明します。 decode() then encode(

    404 Blog Not Found:perl - Encode 入門
  • #perl - utf8::decode()ではなくEncode::decode_utf8()を使うべき理由 : 404 Blog Not Found

    2009年09月13日13:00 カテゴリLightweight Languages #perl - utf8::decode()ではなくEncode::decode_utf8()を使うべき理由 駄目です。 [を] Perl の utf8 まわりのおまじない 最近良く使うおまじない、というかイディオム。 utf8::decode($text) unless utf8::is_utf8($text); こういう場合は、Encode::decode_utf8()でないと。 以下をごらんください。 #!/usr/bin/perl use strict; use warnings; use Encode; use Devel::Peek; for my $bytes ( "\x2F", "\xC0\xAF", "\xE0\x80\xAF", "\xF0\x80\x80\xAF" ) { my $u

    #perl - utf8::decode()ではなくEncode::decode_utf8()を使うべき理由 : 404 Blog Not Found
  • perl - JPEG判定をPure Perlで : 404 Blog Not Found

    2009年08月18日13:45 カテゴリLightweight Languages perl - JPEG判定をPure Perlで やってみてもいいと思ったので。 JPEG かどうかを判断する C のコード - TokuLog 改めB日記 こんな感じで。 #!/usr/bin/perl use strict; use warnings; use LWP::Simple; my $url = 'http://ec2.images-amazon.com/images/P/4757215339.01.MZZZZZZZ.jpg'; my $content = get($url) or die "Couldn't get $url"; print "$url : ", isjpeg(\$content); if (0){ # test my $fn = shift; my $content; p

    perl - JPEG判定をPure Perlで : 404 Blog Not Found
  • perl - EncodeでXSSを防ぐ : 404 Blog Not Found

    2009年03月03日19:00 カテゴリLightweight Languages perl - EncodeでXSSを防ぐ 良記事。 第7回■文字エンコーディングが生み出すぜい弱性を知る:ITpro だけど、問題点のみ具体例があって、対策にないのが片手落ちに感じられたので、その点を補足。 結論だけ言ってしまえば、Perlなら以下の原則を守るだけです。 404 Blog Not Found:perl - Encode 入門 すでにOSCONでもYAPCでも、あちこちそちこちでこの基方針に関しては話したのですが、ここ 404 Blog Not Found でも改めて。 Perl で utf8 化けしたときにどうしたらいいか - TokuLog 改め だまってコードを書けよハゲ入り口で decode して、内部ではすべて flagged utf8 で扱い、出口で encode する。これが

    perl - EncodeでXSSを防ぐ : 404 Blog Not Found
  • 404 Blog Not Found:CPAN - HTTP::Response::Encoding Released!

    2007年04月17日22:30 カテゴリLightweight Languages CPAN - HTTP::Response::Encoding Released! HTTP-Response-Encoding を Release したのでお知らせします。 on CPAN (coming soon) http://www.dan.co.jp/~dankogai/cpan/HTTP-Response-Encoding-0.03.tar.gz どういうものかというと、こういうものです。 use LWP::UserAgent; use HTTP::Response::Encoding; my $ua = LWP::UserAgent->new(); my $res = $ua->get("http://www.example.com/"); warn $res->encoding; prin

    404 Blog Not Found:CPAN - HTTP::Response::Encoding Released!
  • 404 Blog Not Found:perl - File::Find::Identical

    2007年03月27日00:15 カテゴリLightweight LanguagesTips perl - File::Find::Identical それってPerlで。 ファイル名が違っても中身が同じファイルを探してくれる『NoClone』 | P O P * P O P そこで便利そうなのがこのNoCloneです。重複したファイルを探してくれるツールです。そしてこれが便利なのは、きちんと中身をみて判断してくれる点。すでにその名もずばりのFile::Find::Duplicatesというのも存在しているのですが、速度的にも問題があるし、APIも気にわないので、File::Find::Identicalというものをこさえてみました。 例えば、重複ファイルをハードリンクに全て置き換えるには、これでOKです。 dupe2link #!/usr/local/bin/perl use stri

    404 Blog Not Found:perl - File::Find::Identical
  • 404 Blog Not Found:perl - パッチなしでパッチする

    2007年04月09日16:15 カテゴリLightweight LanguagesTips perl - パッチなしでパッチする Perlに限らず、動的に名前空間を書き換えることができる言語ならコンセプトはパクれるはずのtips. 状況 人様が書いたモジュールにバグ発見! バグ直した パッチも送った でも作者が$VERSION++してくれない さあどうする? オレバージョンのモジュールをつなぎでつかう? でも標準でないものをイントールするのはいやん サブクラス作ってメソッドをオーバーライドする? でも問題のモジュールが継承をサポートしているとは限らないし そもそも問題のモジュールOOじゃなかったりもするし 代替モジュールを書いてCPANにうp? -- i.e. JSON::* でも元々のモジュールがあまりによく使われているし うpは簡単でもサポート大変そうだし.... 実例 See Al

    404 Blog Not Found:perl - パッチなしでパッチする
  • perl - use utf8; #って何だ? : 404 Blog Not Found

    2009年06月15日07:00 カテゴリLightweight Languages perl - use utf8; #って何だ? id:otsuneに建設予定フラグがたてられていたので。 冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 - subtech Perl の utf8 関係が未だ全く理解できない。わからないことがわからないので整理 use utf8はいつフラグをたてるか use utf8 しててもフラグたたないことがある…… これは、以下の実例を見ていただくのが一番よいだろう。 #!/usr/bin/perl use strict; use warnings; use utf8 (); sub check_flag{ my $str = shift; print qq("$str" ), utf8::is_utf8($str) ? 'is' : 'IS NOT',

    perl - use utf8; #って何だ? : 404 Blog Not Found