タグ

perlに関するsyohexのブックマーク (298)

  • 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 6 の何がすごいんだと思ったあなた。ここがすごいんです。 - ヤルキデナイズドだった

    たとえばこんな。 Rakudo Star ではどれも実装済み。今すぐ使えます。 強化された正規表現 Perl 6 の公式なパーサ自体も Perl 6 の正規表現で書かれています。 ……は置いといて。10行ちょっとで CSV をパースする正規表現が書ける。クォートされた値にも複数行にまたがる値にも対応。 # CSV クラスは以下のものを修正して使っています # http://github.com/masak/csv/blob/master/lib/Text/CSV.pm # 正規表現をまとめた grammar (クラスの一種) grammar CSV { regex TOP { ^ <line> ** \n <empty_line>? $ } regex line { <value> ** ',' } regex value { | <pure_text> | \s* \" <quoted_

  • モジュール作成からCPANに上げるまでの手順 - $shibayu36->blog;

    この前WebService::Bitlyというモジュールを作ってCPANに登録したので、忘れないうちにそれを行なうまでの手順をメモしておきます。これからCPANモジュールを作る人の参考になればと思います。 0.いろいろなドキュメントを読んでおく 間違ったモジュールをCPANに上げると迷惑がかかるようなので、最低限下のドキュメントは読んでおいたらいいと思います。 PAUSE: The CPAN back stage entrance perlnewmod - 新しいモジュールを配布するには - perldoc.jp 1.モジュール名を決めて、ひな形を作る まずモジュールの名前を決めます。CPANモジュールは、「このようなモジュールはこの名前空間」のような慣習があるようなので、それを考えながら決めます。 名前が決まったら、モジュールのひな形を作ります。僕はModule::Starter::PB

    モジュール作成からCPANに上げるまでの手順 - $shibayu36->blog;
  • Imlib2でImageMagickより3倍高速かつ美しいサムネイル画像の生成 - 昼メシ物語

    この記事の概要 Imlib2を使って画像のサムネイルを生成してみたところ、ImageMagickより3倍速かった。 また一般的には、Imlib2の方が画質が悪いとされているが、パラメータを調整することで、十分に美しいサムネイル画像を得ることができた。 はじめに Imlib2は画像処理ライブラリ。mixiの発表資料大規模画像配信とPerl によれば、mixiは高速に高品質なサムネイルを生成するために、ImageMagickでなくImlib2を選んでいる。 上記資料の中では、以下のように説明されている。 速度 Epeg > Imlib2 > Imager >>> ImageMagick 画質 ImageMagick > Imlib2 >>> EpegImlibの画質は多少ImageMagickに劣るが、速度は十分に速い、とのこと。 一方で、404 Not Foundという記事では、ImageM

  • Perl5 によるメール送信 - 実践的な Email::Sender の利用方法 - tokuhirom's blog

    Perl5 では、E-mail の送信をするためのモジュールが多数 CPAN にアップロードされているが、現在もっともまじめにメンテされていて質がよいのは Email::Sender らしい。 Email::Sender は登場当初はドキュメントもなさすぎるしつかいものにならなかったが、現在ではだいぶマシになっている。Moose 依存が気にならないケースでは、実用としてつかっても問題ないとおもう。 iso-2022-jp の日語のメールを送るには、以下のようにすればよい。 use 5.12.1; use utf8; use Email::Sender::Simple qw(sendmail); use Email::Simple; use Email::Simple::Creator; use Data::Recursive::Encode; use Encode; # e-mail o

  • Kazuho@Cybozu Labs: Parallel::Scoreboard でワーカープロセスをモニタリングする方法

    cho45 さんの Plack::Middleware::ServerStatus (Starman や Starlet で Apache の mod_status 相当の情報を得られるようにする - 冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 - subtech) に続き、昨日 kazeburo さんが「StarmanやStarletでmod_statusっぽい情報を得る簡易版Plack::Middleware::ServerStatus - blog.nomadscafe.jp」というエントリを書かれていらっしゃいましたが、ウェブアプリケーションサーバに限らず、複数のワーカープロセスが動作するシステムにおいて、それらの状況をモニタリングするためのスコアボードがほしい、というケースはよくあることだと思います。 また、プロセス名を使う方法は、他の監視ツールとの相性が悪い、プロ

    syohex
    syohex 2010/07/03
  • Pure Perl Sinatraish WAF in One File - tokuhirom's blog

    Some perl web application tutorial says "First, install WAF from CPAN..., and drink a espresso". heh, It's very painful. Then, I tried to pack the Sinatra-ish WAF in one file. I use yusukebe's Hitagi.pm for this hack. Hitagi.pm doesn't depend to any XS modules without DBI, LWP, Digest::SHA1, these three modules are most popular, and pre-installed on normal rental servers, It's not big issue. First

    syohex
    syohex 2010/07/03
  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
  • Opera News

    Gaming, Opera GX Pimp your smartphone with GX Mods, now available in Opera GX on Android and iOS February 8th, 2024 Transform the look and feel of your smartphone and tablet and browse like a badass by installing dozens of Mods... New green energy-powered AI data cluster with NVIDIA DGX supercomputing coming to Iceland February 7th, 2024 We’re excited to announce plans to deploy a new AI cluster i

  • HTML form management on Xslate - Islands in the byte stream (legacy)

    <追記> @typesterさんの指摘を受けて再考中。確かに、気軽にrawを書くようになると、結局「うっかりraw」をする可能性が生じて安全性が下がります。テンプレートではrawを使うべきではない、ということを前提にドキュメントと記事を書き直しました。 参考: @fujiwara: うっかりraw付ける付けないのミスというより、化ける!→rawつけると化けない!→じゃあとりあえずrawつけとけばイイよね! みたいな流れがありがち。@tokuhirom:ていうか、T::MT の思想では、基的に model とか controller 側で raw 属性つける、なんだよね。Xslate上でフォーム処理をしようとしたらいろいろハマったのでCookbook書きました。 The Xslate cookbook http://search.cpan.org/dist/HTML-Shakan=HTML

    HTML form management on Xslate - Islands in the byte stream (legacy)
  • 119行でPlack対応のWeb Application Framework を書いてみる - tokuhirom's blog

    拡張性等を考慮しなければ、以下のように簡単にかくことができる。 View を XSlate きめうち。ルータは given-when で、設定ファイルは .pl という構成。だいたいのウェブアプリケーションは、これぐらいの機能の WAF で十分。ルーター部分は Router::Simple とかにさしかえた方がよいかもだけど。 5年前に Python で似たような記事をみたのだが、今はみんなのがんばりによって Perl でもおなじことができるようになった。 use strict; use warnings; use 5.10.1; package MyWAF; use parent qw/Class::Data::Inheritable/; use Path::Class; use Text::Xslate qw/mark_raw/; use Encode; use Time::Piece

  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
  • にひりずむ::しんぷる - Class::C3のお勉強

    Class::C3を学んだ モダパーこと「モダンPerl入門」を執筆したことで知られる牧さんの2007年YAPCのセッションがものすごくわかりやすいのでまずはそれを見ると吉。 (Ab)?using Class::C3 - YAPC::Asia 2007 Tokyo Sessions 以下の例で考えてみる。 AをBとCが継承し、DがBとCを継承しているというダイヤモンド型多重継 全てに「add」というメソッドがある 全ての「add」内ではスーパークラスの「add」を呼ぶ 普通に書くとこうなる #!C:/Perl/bin/perl use strict; use warnings; package Klass::A; sub add { my $self = shift; my $str = shift; return "$str -> Klass::A"; } package Klass::

    syohex
    syohex 2010/06/22
  • Twitter のストリーミングAPIでつぶやきを時間帯別にカウントする

    Twitter のストリーミングAPIでつぶやきを時間帯別にカウントする 2010-06-09-1 [Programming][WebAPI] ツイッターの streaming API で流れてくるつぶやきをカウントするプログラムです。 目的が達成できればよいというだけの ad hoc なプログラム。 コード (twistat.pl): #!/usr/bin/perl use strict; use warnings; use Encode; use Time::Local; use POSIX qw(strftime); $ENV{'TZ'} = "JST-9"; my $idx = 0; my @month = ('Jan','Feb','Mar','Apr','May','Jun', 'Jul','Aug','Sep','Oct','Nov','Dec'); my %m2i = ma

    Twitter のストリーミングAPIでつぶやきを時間帯別にカウントする
  • OAuth::LiteでOAuth対応のHTTP::Requestを作る方法 (Perlでtwitter bot書いてる人向け) - 酒日記 はてな支店

    最近人気エントリーに便乗したネタが多くてすみません。 実用! PerlでコマンドラインからTwitter投稿(OAuth対応) では、Net::Twitter を使って OAuth で投稿する方法が紹介されていますね。 ところで、単純な twitter bot 作るのに Net::Twitter 使います?「投稿なんて LWP で1発リクエスト投げればいいだけだから使わない」という人も多いと思いますが、Basic 認証が廃止されたらどうしましょう。 そのようなかた向けに、OAuth::Lite で OAuth 対応な HTTP::Request を作る方法をご紹介します。 consumer key, consumer secret, access token, access token secret は既に何らかの方法で取得できているものとすると、こんな感じです。 use OAuth::L

    OAuth::LiteでOAuth対応のHTTP::Requestを作る方法 (Perlでtwitter bot書いてる人向け) - 酒日記 はてな支店
  • Plack+CatalystでWebアプリ(とCLI)を作ってみる - As a Futurist...

    1 年間インフラ修行ばっかりやってて、カタムースとかプラック企業の流れに乗り切れなかったので 一念発起して最近趣味で Plack と Catalyst で Web アプリを書こうとしています。 ただ、アプリのロジックに入る前に、そもそもモジュールの構造をどうしようかと 試行錯誤するだけで数週。。。一旦ここまでのまとめをしておきたいと思いました。 Perl 界隈の方々は当にエロくてすばらしいなと改めて感じました。 自分のプログラムセンスの無さをひしひしと感じてますが、 今回のアプリの開発を通じて何か CPAN に上げて、僕もエロくなれたらいいなぁ とか密かに思ってたりしてます。 それは MyApp::Web から始まった とりあえずモダン Perl 入門にあるように、以下の様なコマンドで Catalyst 用のモジュールを 一段名前を掘って作りました。 catalyst MyApp::We

    Plack+CatalystでWebアプリ(とCLI)を作ってみる - As a Futurist...
  • perl-mongers.org - このウェブサイトは販売用です! - perl mongers リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

  • Template-Toolkit のよくない点について - tokuhirom's blog

    TT はすばらしいテンプレートエンジンだが、いくつかの点ですぐれていない点がある。その中でもっとも気にくわない2つは以下のもの。 Speedtoo many plugins on cpanとくに速度の遅さは致命的で、キャッシュや、一部の XS 化などによる高速化がはかられてはいるものの、「ボトルネック」になりうるほど遅い。 プラグイン機構は便利だが、一方で、CPAN モジュールへのラッパーモジュールが大量に生成されている。 この2つの欠点は、Text-Xslate の TTerse syntax で解消されているので、こういった点が気にくわない人は、ためしてみるといいのではないかとおもう。 【追記】 なぜ、TT でプラグインが異常に発達するのかというと、関数を export するのがめんどくさいから。で、その欠点は Xslate では Text::Xslate->new(module =>

  • 練習で書いてみたText-Creolize-0.001 - Tociyuki::Diary

    Wiki フォーマットを共通化しようという試みの WikiCreole 1.0 と拡張案の一部の実装を Perl で練習で書いてみました。 ⇒ http://github.com/tociyuki/libtext-creolize-perl (2010-09-11以降のコミットはこちらで公開) ⇒ https://tociyuki.sakura.ne.jp/archive/Text-Creolize/Text-Creolize-0.012.tar.gz (目次作成機能追加版) ⇒ https://tociyuki.sakura.ne.jp/archive/Text-Creolize/Text-Creolize-0.011.tar.gz (プレースホルダとプラグインのバグ修正) ⇒ https://tociyuki.sakura.ne.jp/archive/Text-Creolize/Tex

    練習で書いてみたText-Creolize-0.001 - Tociyuki::Diary
    syohex
    syohex 2010/06/07
  • shirokaned - messagepack rpc + kyotocabinet + AnyEvent + Perl による適当な KVS の実装 - tokuhirom's blog

    http://github.com/tokuhirom/shirokaned HTTP でデータを取得できる そして、その httpd を外部にみせても大丈夫インメモリデータベースLRU supportそれなりにはやい 同時1000接続程度で5000QPS程度でればいいかなーmater-master レプリケーションができる想定しているデータサイズは 4KB 程度で、レコード数は100万程度の LRU で OKキャッシュ用途なので、slave と master で一貫性は必要ないし、データの更新も一切ないvalue がなければ、再生成できるかんじってかんじの KVS があったらいいなあとおもった。 のでためしにかいてみた。 要素技術としては AnyEvent::MPRPC(AnyEvent を用いた messagepack rpcperl 実装)daemontools(ロガーをつけた