はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
目的 Perlモジュールの開発環境を整えるいち手法をまとめる。 最近だとModule::Setupが使われている?ぽいのですが、このエントリではModule::Starter::PBPを使ったやり方について書く。 (もう野良.pmファイルをhogeるのは嫌なのじゃよ〜><) 対象環境 LinuxもしくはMacOSX Leopardが対象。 Windows環境でのやり方はわかりません>< 必要なモジュールのインストール 何はともあれ、セットアップに必要なCPANモジュールをインストールする。 $ sudo cpan -i PPI $ sudo cpan -i Module::Build $ sudo cpan -i Test::Pod $ sudo cpan -i Test::Pod::Coverage $ sudo cpan -i Test::Perl::Critic $ sudo cpa
【注意】2009年10月16日現在の情報です。 【追記】 初出時にあった configure.ac, Makefile の問題は修正されたため、記事内容も修正しました。 mod_psgi を試してみたのでメモしておきます。 Ubuntu 9.04 x86_64 Apache/2.2.11 (Ubuntu) Perl v5.10.0 built for x86_64-linux-gnu-thread-multi $ git clone git://github.com/spiritloose/mod_psgi.git $ cd mod_psgi $ autoconfconfigure が出来たので実行して make && make install. $ ./configure $ make # make installhttpd.conf に設定して LoadModule psgi_modu
Apacheを使う大きな魅力のうちの1つが、さまざまなモジュールによって提供されている豊富な機能でしょう。本連載でも、Apacheに標準で付属しているモジュールを紹介してきました。 しかし、Apacheで利用することのできるモジュールは標準で付属できるものだけでなくサードパーティ製のものも利用することができます。標準モジュールだけでは実現しない機能がある……とお悩みの方は是非サードパーティ製のモジュールを試してみましょう。 今回は、知っておくと便利なサードパーティ製のモジュールを一部紹介したいと思います。 mod_securityでセキュリティ向上を どれだけ気を配っていても、Webアプリケーションの脆弱性は出てしまうもの。となると、前段のApacheで怪しいアクセスをはじいてしまえばある程度は安全に利用することができそうですね。そういった発想から生まれたモジュールが、mod_securi
ウェブアプリケーションにおいて、認証がかかっている画像や大きなファイルを配信する場合には、Perlbal 等でサポートされている X-Reproxy-URL ヘッダが有効なことが知られていて、その理由としては、 (メモリを大食いする) アプリケーションサーバのプロセスを転送終了まで占有しない HTTP ベースの分散ファイルシステムとリバースプロキシが直接交信するので、ネットワーク負荷が低い といった点が挙げられます。「でも、Apache は X-Reproxy-URL ヘッダをサポートしてないんだよねー」という話が、先日の YAPC::Asia 2009 においても話題になっていました[要出典]。回避策としては、ワンタイムURLのような手法もあるのですが、セキュリティな懸念もあります。 なんとかしたいなと思っていたのですが、気が向いたので、Apache に X-Reproxy-URL ヘッ
http://github.com/spiritloose/mod_psgi PSGI を実装したApache2モジュール。 % make && make installでインストールできて、 LoadModule psgi_module modules/mod_psgi.so <Location /psgi> SetHandler psgi PSGIApp /path/to/app.psgi </Location> で動く。 がーっと書いたのでまだまだの部分が多いとはおもうけど、一通り実装できたと思う。 Plack::Test::Suite を使ったテストも書いた。 http://github.com/spiritloose/mod_psgi/blob/master/t/suite.t mod_perlのようにApacheの機能を提供する必要はなく、アプリケーションへはenvを渡せば い
apacheでperlを扱うなら、CGI/FCGI/mod_perlといった選択肢があるのですが、mod_perliteという軽量なapacheモジュールも存在します。 sodabrew's mod_perlite at master - GitHub A lightweight Apache module for Perl scripts http://github.com/sodabrew/mod_perlite/ mod_perlは結構複雑ですが、mod_perliteは仕組みも簡素で分かりやすく速度パフォーマンスもそこそこあるという代物になっています。 mod_perliteについてはhidekさんの紹介記事を見ていただくと分かるかと思います。実はこのmod_perlite、絶賛の声はあれどPOSTメソッドが動かないという重大なバグを持ったまま今日に至ります。 先日からWindow
0.772 (09.26.2008) - John Siracusa <siracusa@gmail.com> * Altered Rose::DB::Object::Cached to override insert() and update methods. (Suggested by Kevin McGrath) * The update() method now marks updated objects as being in the database (see is_in_db() in Rose::DB::Object::Util) (Suggested by Kevin McGrath) * The insert_or_update() and insert_or_update_on_duplicate_key() helper methods now call save(
ApacheのFilterモジュールを作った話しをしたらid:c9katayamaに情報公開しろと言われたままでしたので公開します。 C言語の勉強しようかな、Apache2.xのモジュールを作ってみようかな、gdb使ってデバッグしてみようかなと考えてた人にお勧めです。 JavaでのServletの開発経験のある人であれば、Filterの処理の動きやリクエストコンテキストの考え方は分かり易いはずなので、エントリを読み終わる頃にはApacheのモジュールをgdbでデバッグしながら作る事が出来るはずです。 mod_orzを作成 今回はmod_orzというApacheモジュールを作成します。 Apacheモジュールを作成する際には、apxsというモジュール開発用のコマンドを使用しテンプレートを作ります。 # apxs -g -n orz Creating [DIR] orz Creating [F
Apache で OpenID 認証を行う mod_auth_openid を試してみた。 インストールする OS は CentOS-4 (多分 5の方が楽)。 まず C++ で書かれた OpenID ライブラリ libopkele をインストール……するのだけど、その前に pkg-config で libpcre を扱えるように、libpcre.pc を用意 (これは CentOS-5 だと libpcre のパッケージに入ってる)。 /usr/lib/pkgconfig/libpcre.pc # Package Information for pkg-config prefix=/usr exec_prefix=/usr libdir=/usr/lib includedir=/usr/include/pcre Name: libpcre Description: PCRE - Perl
突然、Apacheのモジュールを作りたくなった。別に必要に迫られたわけではない。単なる趣味である。 そもそもApacheが単独で使われることは殆ど無い。Apache単独では、Perlで書かれたCGIスクリプトを実行することすらできない。Apacheは、モジュールをインストールすることによって多機能になるのである。有名なモジュールとしてはmod_dir、mod_ssl、mod_cgi、mod_userdir、mod_perl…などが挙げられる。 先ほど挙げたモジュールは最初から提供されているものだが、これが全てではない。Apacheのモジュールは自分で作ることも出来る。例えばmod_uploaderは、よくあるアップローダをApacheのモジュールにしたものである。Perlやphpを使ったアップローダがあるにも関わらずApacheモジュール版が作られたのは、Apacheのモジュールに次のよう
久しぶりに Perl モジュールを作成してみた ので、せっかくなので CPAN にアップロードしてみました、の手順をメモ。 もともと、2002年に CPAN へのアップロードサイト PAUSE 用のアカウントは 作ってあったけど、実際に自作モジュールを CPAN で公開してもらったことはなかったので、 実は今回が初挑戦でした。 もし↓に間違っている点がありましたら、ご指摘いただけると幸いです。>識者の方 配布用のモジュールを作成する まず第一歩は、 perlnewmod - 新しいモジュールを配布するには を熟読すること。 モジュール .pm ファイルと、 そのアーカイブ .tar.gz ファイル を作成するのが最初です。 中身は以下のようなファイル構成になりました。 lib/XML/TreePP.pm # Perlモジュール本体 Makefile.PL # ほぼh2xsで生成したそのまま
名前¶ perlnewmod - 新しいモジュールを配布するには 説明¶ このドキュメントは、Perl モジュールを書き、配布する準備をして、CPAN を 通じて取得可能にするためのアドバイスです。 Perl が実際にこんなに強力な理由の1つとして、Perl ハッカーたちが、自分 の直面した問題への解決策を共有しようとしていることが挙げられるでしょう。 だから、みんなが同じ問題に悩む必要はないわけです。 これが実現されているのは、多くの場合あるソリューションを抽象化して、 Perl モジュールにしているということです。もしこれがなんのことかわから なければ、このドキュメントの残りはあまり役には立たないでしょうし、今ま でにたくさんの便利なコードを見逃していることでしょう。perlmod, perlmodlib, perlmodinstall をよく読んで、ここに戻って来てくださ い。 もし
HTTP::Engineの今とこれから 昨年末にHE con #1 が開催されてから久しいですが、あの前後で話題になっていた 「HTTP::Engineは依存が大杉メモリ食いまくり」な件に関しては、Shikaという回答を出し、その後Mouse版の0.1.1をリリースしました、 そして最近Stevanから「Any::Mooseはどうか? lang:en」と言った話も有り、現在Any::Mooseに依存した0.1.4を出すべく0.1.4_xをCPANにあげています。 クラスビルダーにMooseを使うか捨てるか論争は、0.1.4にて妥協出来る所に落ち着いたんじゃないかなと思います。 Any::MooseやMouseが細かい所で挙動が変わるかどうかは今のところわかりませんが、少なくともHTTP::Engineで採用した事により安定する方向になるんじゃないでしょうか? もちろんより高い互換性の為の変
ウェブサービスでは、アクセスが集中して、サイトが落ちる、というのは、よくある話です。純粋に人気が出てアクセス集中するなら、サーバ管理側の責任と言われても、しかたないと思います。しかし、botやF5アタックによる突発的な集中アクセスで、落ちてしまう、というのは、運営側としても、あまり納得がいくものではありません。 そのような突発的なアクセスに対応するために、大量のアクセスをしてくるクライアントを検出し、優先度を落すか、アクセス禁止にする方法などがあります。 というわけで、Apacheモジュールでそれを検出するためのmod_dosdetectorを開発しました。(ちなみにコア部分の開発期間は、Apacheモジュールって、どう書くんだっけ、という状態から、3日でした。) mod_dosdetectorは、Apacheモジュールとして動作し、クライアントのIPアドレスごとにアクセス頻度を測定し、設
携帯向けサイトは殆ど作ったことがないのだが、それでもキャリアごとの対応は大変だった(自分自身がそこに当たった訳ではないが)。 携帯がどんどん高機能化すれば、この傾向はさらに強まるだろう(機種によって対応化範囲も異なるので)。そうなればあまり手軽に携帯向けサイトが作れなくなってしまう。克服するための仕組みがこれだ。 今回紹介するオープンソース・ソフトウェアはmod_chxj、携帯向けコンテンツを生成するApacheモジュールだ。 mod_chxjはApache2.0用モジュールで、各種携帯電話向けのコンテンツを自動生成してくれる。CHTMLはもちろん、通常のHTMLを変換したり、絵文字を各キャリア向けに対応させる、画像を変換すると言った操作を自動で行ってくれる。 さらにリファラーやCookieの非対応端末のために、シミュレートしてくれる機能もある。他にもQRコード出力機能もあり、既存のサイト
国内の主要携帯(3キャリア)向けコンテンツ変換ミドルウェアをApache2.x用のモジュールとして作成します。CHTMLや通常のHTMLで作成したコンテンツを出力時にUserAgentを見てそれぞれの端末用に変換します(画像はJPG、GIF、PNGからJPG、GIF、PNG、BMPへ)。QRコード生成機能付。 使い方などについては プロジェクトWiki を参照ください。 ダウンロード 最新リリース 0.12.x-source 0.12.42 (日付: 2013-02-12) 0.12.x-centos-5 0.12.41 (日付: 2011-07-05) 0.12.x-debian-squeeze 0.12.41 (日付: 2011-07-05) 0.12.x-source 0.12.41 (日付: 2011-07-05) 0.13.x-centos-5.5 0.13.4 (日付: 201
問題 @a = (1,2,3); @b = (1,2,3); のような配列があったとして、これらの中身が同じ(@a = @b) であることを確認したいと思います。 細かい条件として、値は正の数字のみ(負はない、)で並び順は気にしない、かつ同じ番号はないという事にします。 かんたんに考えると、次の二つの条件を満たせればいいはずです。 二つの要素の数が同じであること 先頭から比較して、末尾までの各項目の内容が等しいこと 素直にコーディングすると... sub is_same($$){ my($a,$b) = @_; # (1)二つの要素の数が同じであること return 0 if @$a != @$b; # (2)先頭から比較して、末尾までの内容が等しいこと for (0..$#$a){ return 0 if $a->[$_] != $b->[$_]; } return 1; } というサブ
納品するextlibに依存関係を全部つっこんじゃうというのはどうか MENTAやNanoAでもextlibにつっこむ云々の話はあったが、とりあえずインストール先のサーバーにアクセス権があるという前提のもと、アプリケーションの依存関係を全部extlibに自動的につっこむスクリプトを書いてみた。 use strict; use CPAN; use Module::CoreList; use Module::ScanDeps; use File::Find::Rule; use File::Spec; use File::Temp qw(tempdir); if (scalar @ARGV != 2) { print <<EOM; Usage: deps2extlib.pl target [extlib] target - the directory or script that you wa
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く