タグ

しんぷるに関するxaicronのブックマーク (29)

  • にひりずむ::しんぷる - マルチなバイトをシングルに

    音楽CDのファイル名に全角英数字とか全角記号が含まれているのが、無性に腹が立ったので、変換スクリプトをでっちあげてみた。 ぶっちゃけJcode.pmに全てお任せなだけなんですが。 #! C:\Perl\bin\perl use strict; use warnings; use Jcode; # 変換ワードの定義 my $m = '0-9A-Za-z’() #$%&'; my $s = '0-9A-Za-z\'() #$%&'; # 引数確認 unless ($ARGV[0]) { (my $basename = $0) =~ s#.*[\\/]##; print "Usage : $basename directory\n"; exit 0; } # 対象のディレクトリのファイル名及びディレクトリ名を変更する opendir my $fh, $ARGV[0] or die "not op

  • にひりずむ::しんぷる:uft8+Encodeで日本語は解決する

    前回の記事で、Jcodeを使用したけど、よく考えたら、utf8+Encodeで普通に出来た。 正直、utf8フラグやEncodeの使い方がいまいちわかっていなかったので、この機会に少しまとめておく。 何はともあれ、 use utf8; これでutf8フラグが立つ。 Perlスクリプトを内部的にutf8で扱うようになるってことで、これを立てることによって、length関数とかでマルチバイト文字も文字単位で扱うようになる。 例えば以下のように use utf8; my $str = 'あいうえお'; print length $str; >5 ちゃんと5文字として扱われる。 もちろんスクリプトはutf8で書く必要がある。 ここでちょっと嵌るのだが、 use utf8; my $str = 'あいうえお'; print $str; のようにマルチバイト文字をprintすると「Wide chara

  • にひりずむ::しんぷる - RSSフィードがないWebページの更新をチェックする

    普段はRSSフィードのあるブログorサイトはFireFoxのSageアドオンを使用して閲覧しているのだけど、RSSを配信していないWebサイトはチマチマとブックマークからチェックしていた。 RSSは特性上、ブログやニュースサイト等、形式の決まっているところでは使いやすいが、通常のWebページではなかなかそうも行かない。 で、そういうサイトをいちいちブックマークをクリックして更新チェックするのもあほらしいので、Perlで似非RSSリーダーを作成してみた。 WWWCを使えば良いじゃないかとかそういうヤボな事は言わないように。 どうやって更新されているか見分けるか。 単純にHTMLをファイルに保存しておいて、比較すればいいと思う。 なので、HTTPレスポンスを受け取って、ファイルに書き出せばいい。 HTTPレスポンスを受け取るにはLWP::Simpleを使えばいい。 use LWP::Simpl

  • にひりずむ::しんぷる:oncick onkeypress なんて書きたくないっす

    前回作ったfool_RSShtmlで、外部リンクをiframeに表示させる部分があるのだけど、まぁ普通にJavascriptでoncilck使ってやったのだが、なんというか <a href="javascript: void(0);" onclick="sumfunc(URL);" onkeypress="sumfunc(URL);">ほげほげ<a> みたいになってものすごくダサかった。 これだと、移動先のURLがブラウザ上でコピーできない。 あと「onclick+onkeypress」はダサい。 sumfuncは引数にURLを渡すと指定したiframeに表示するっていう関数なので、一つのリンク内に長ったらしいURLが二つも!! どうにか <a href="URL">ほげほげ<a> みたいに出来ないかなーと色々調べた結果、なんとか実装できたので晒してみる。 iframeに表示するだけなん

  • にひりずむ::しんぷる - Google App Engineを試してみた。

    一部でひそかなブームになっているGoogle App Engineを試してみました。 Google App Engineは噛み砕いていえば、容量500GB500MBまで無料で使えるレンタルサーバーのようなもので、PythonでWebアプリケーションを作成することが出来ます。というかそれが主目的です。Googleのサーバーを無料で扱えるというものすごいサービスなわけです。 で、Google App Engine用のSDKというものが各プラットフォームで配布されています。これを使うことにより、Google App Engineとほぼ同じ動作をする仮想サーバーが立てられ、ローカルでいとも簡単にWebアプリの動作チェックが可能になります。素晴らしい! SDKは無料で配布されていて、特にGoogle App Engineに登録しなくても利用可能です。さっそく使い方を簡単にですが紹介します。 まずはG

  • にひりずむ::しんぷる - 変数名について

    最近、「Perlベストプラクティス」を読んでます。 結構面白いしためになるなぁという感じです。 が、第三章の変数や関数への命名規則を普通に読んでてもいまいちピンと来ない。 理由は明白で、自分が英語を知らないから。 「Perlベストプラクティス」は翻訳であるからして、当然その内容は(来は)英語圏の人に向けて書いてあるわけで、変数名はもちろん英語で書いてある。 言っていることはよくわかるし全くその通りだとは思うのだが、如何せん自分に不足があるため、完全に理解しているとは言い難い状況。 なので当に英語できるようにならんとダメだ、と自己催眠しつつ取り敢えずのところは棚にあげておくとして。 つまり、「ちゃんとわかるように変数付けようよ。」ってことを英語で言ってるんだから、僕らは日語でやればいいじゃない。 英語ができないなら日語で書けばいいじゃない。 要するに明日からはあなたは変数名にわけの

  • にひりずむ::しんぷる:Perlだけでwget

    LWP::UserAgentのgetメソッドの引数にコールバック関数を渡せるのを知らなかったのでメモ。 404 Blog Not Found:perl - LWP::UserAgentで進捗表示しつつダウンロード ついでにHTMLエンティティURIエンコード化されたURLに対応させて、ActivePerlでも動くようにしました。 [コードの説明を書くスペース] #!C:/Perl/bin/perl # # $Id: lwp-callback-example.pl,v 0.2 2008-11-22 16:19:24+09 xaicron Exp xaicron $ # # lwp-clallback-example for ActivePerl # use strict; use warnings; use Encode qw/encode/; use Encode::Guess qw/eu

  • にひりずむ::しんぷる - multi byte ASCII string to single byte ASCII string

    以前作った全角英数字を半角英数字に変換するのをモジュール化してみました。 使い方は簡単。以下のようにやります。 use M2S; my $single_byte = m2s($multi_byte); use M2Sをするとm2s関数をインポートします。 全角英数字の含まれる文字を引数に渡すと半角英数字に変換されます。 ただし、この場合、引数に与える文字がutf8フラグのたった文字でないとだめです。 2番目の引数に文字コードを指定することもできます my $single_byte = m2s($multi_byte, 'sjis'); OOから使うこともできます。 my $m2s = M2S->new; $single_byte = $m2s->replace($multi_byte); これは上記のm2s関数と全く同じ動きをします。 文字コードを指定することもできます。 # 全てsjis

  • にひりずむ::しんぷる - ActivePerl - PPMを手っ取り早く使いこなす

    WindowsPerlを使っている人は大抵の場合、ActivePerlを使っていることでしょう。 ActivePerlにはPPMという高機能なPerlパッケージマネージャーが付属しています。 しかし、使い方がいまいち判り辛かったり、ほしいモジュールが全然なかったりして「価値あるの?」って感じでしたが、今ではPPMレポジトリが活性化してきたのか、適切な設定を行うことで大抵のCPANモジュールが手に入るようになりました。 Windowsには他に、CPANのモジュールを簡単に入れられるようにgccベースのStrawberryPerl(ActivePerlはVC+nmake)というのも存在しますが、実行環境を整えるのがめんどくさいのと、makeに成功するのか実際にやってみるまで分からないので、構築とかが趣味じゃない人はActivePerlを素直に使いましょう。 PPMにはバイナリ化されたモジュー