タグ

ブックマーク / download-takeshi.hatenablog.com (9)

  • Javaで暗号化したデータをPerlで復号化しようとしたら大変だった件 - download_takeshi’s diary

    JavaでRijndael(AES)で暗号化されたデータをPerlで復号化しようと思います。 「暗号方式と秘密鍵だけ聞いておけば簡単にデコードできるっしょ、余裕っしょ」とタカをくくっていたら、思いっきり天罰がくだりました。久しぶりにハマったのであります。 ちゃんと確認しておくべきだった情報 まずは暗号方式と秘密鍵だけでなく、以下の情報をしっかりと確認しておく必要アリでした。 暗号アルゴリズム 秘密鍵 秘密鍵の長さ ブロック暗号化モード IV(Initialization Vector:初期化ベクトル) padding方式 暗号のことちゃんと勉強した事がないので、なんだかよくわからんけど、必要らしい。 せめて事前にここらへんを読んで勉強しておけばよかった。 ぱせらんメモ http://d.hatena.ne.jp/pasela/20100612/crypto DESに代わる次世代暗号「AES

    Javaで暗号化したデータをPerlで復号化しようとしたら大変だった件 - download_takeshi’s diary
  • 1枚のスクリプトに全てをまとめてくれるApp::FatPacker - download_takeshi’s diary

    App::FatPackerとは、依存モジュールを全て1つのファイルに押し込んでパックしてくれるライブラリです。CPANにあります。 pack your dependencies onto your script file http://search.cpan.org/~mstrout/App-FatPacker-0.009001/ 依存モジュールを解決して1枚のスクリプトにまとめてくれるようです。 perl使いの間で大人気の「cpanm」でもこれが使われています。 どっかでcpanmの紹介として「1枚岩のスクリプト」みたいな表現を目にしましたが、要するにこれのことを指していたようです。 ちなみに作者はlocal::libの人。 「ファット」って響きが心に刺さりますが、id:miyagawaさんも使ってることだし、きっと良質モジュールなんだろうなーと思って触ってみました。 使ってみて まず

    1枚のスクリプトに全てをまとめてくれるApp::FatPacker - download_takeshi’s diary
  • bayonやCLUTOが爆速な理由 - download_takeshi’s diary

    クラスタリングツールbayonを使っていて、常々「どうしてこんなに高速に処理できんのかなぁ」と疑問に感じていました。repeated bisectionという手法自体がk-means法などと比べると効率がいいのですが、それにしても、それだけでは説明がつかないほど爆速なわけです。 うまく例えられませんが、自前でk-meansのスクリプトを書いて比べてみると、自転車と新幹線くらいちがうという印象です。はじめてCLUTOを触った時、数万件程規模のクラスタリング処理が当に「あっ」という間に終わってしまい、びっくりした記憶があります。 きっと実装面でなにか特殊なことがあるんだろうなと思い、mixiエンジニアブログでbayonの記事を改めて読み漁っていたら、以下の部分が目に止まりました。 このクラスタの評価は、クラスタの各要素とクラスタの中心とのcosine類似度の和としています。この和が大きいほど

    bayonやCLUTOが爆速な理由 - download_takeshi’s diary
  • HTTP::Request::FromLog 書いた - download_takeshi’s diary

    名前のまんまですが、ApacheのアクセスログからHTTP::Requestオブジェクトを作るモジュールをCPANにうpしておきました。 http://search.cpan.org/~miki/HTTP-Request-FromLog-0.00001/ 利用用途ですが、開発環境と商用環境が分かれているような場合に、商用環境のサーバに流れてくるトラヒックを開発環境のマシンにも流してやりたい!というようなケースを想定しています。 単純な発想ですが、商用環境のaccess_logからHTTP::Requestオブジェクトを再生して開発環境のマシンに投げてやれば、一応それっぽいことはできるかなと。 ちなみに内部のエンジン(ログをparseする部分)はデフォルトだとParse::AccessLogEntryというCPANモジュール使ってますが、ここは自由に差し替え可能です。 なので「うちのログフォ

    HTTP::Request::FromLog 書いた - download_takeshi’s diary
  • make testではまった件 - download_takeshi’s diary

    CPAN風にperl moduleを書いてる人はtestコードをガンガン書いてmake testしながら、日々うっとりしてると思うんですが、 今日はちょっとそこでハマったので、忘れないようにメモメモ。 testコードの中で、簡易なHTTP Serverを起動したいとします。 サーバのコードはserver.plで、POE::Component::Server::HTTPあたりでちょろっと書いたものだとしましょう。 こいつは一応デーモンなので、テストコードからは&をつけてバックグランドジョブとして起動します。 で、そのデーモンに対してHTTPリクエストをなげて結果をテストするとします。 テストコードはこんな感じ。(dummy_server.tとします) use strict; use LWP::Simple; use Test::More tests=>1; BEGIN{ system("t/

    make testではまった件 - download_takeshi’s diary
  • HTTP::Request::AsCGIの使い方 - download_takeshi’s diary

    今まで知らなかったんだが、HTTP::Request::AsCGIというのを使うとテストとかにスゴく便利らしい。 というわけで、早速いくつかのブログを見ながら触ってみた。 use strict; use HTTP::Request; use HTTP::Request::AsCGI; use CGI; use Data::Dumper; # HTTP::Requestオブジェクトを作っておく my $url = "http://localhost/test?key1=value1&key2=value2; my $req = HTTP::Request->new("GET", $url); # AsCGIでcgi環境を作る my $c = HTTP::Request::AsCGI->new($req)->setup; my $q = new CGI; # クエリーパラメータを出力してみる

    HTTP::Request::AsCGIの使い方 - download_takeshi’s diary
  • HTML::Feature - 重要部分を抽出するモジュール - - ダウンロードたけし(寅年)の日記

    以前からCPANで公開していたモジュールがあるんですが、日語での解説ドキュメントがなかったのと、最近大幅にブラッシュアップしたので、せっかくなので紹介記事を書きます。 HTML::Feature - Extract Feature Sentences From HTML Documents 「えいちてぃえむえる::ふぃーちゃー」と読みます。 ブログやニュース記事など様々なHTML文書から「重要部分」を推測して抽出してくれる perl モジュールです。 「重要部分」とはいわゆる「文」のことですね。文抽出とか焦点抽出とか色々な言い方があるかと思いますが、まぁ要するに特徴的な部分を推測して抽出するわけです。 どういうものか。 例えばブログ記事からヘッダーやフッター、その他のナビゲーションブロックを除いた「記事らしき部分」だけを切り取りたい、とします。 ぱっと思いつくのは「特定のコメントタグ

    HTML::Feature - 重要部分を抽出するモジュール - - ダウンロードたけし(寅年)の日記
  • ダウンロードたけし(寅年)の日記 - POEでログをtailするComet

    今更ながら、perl(POE)でCometっぽいものを書いてみようと思い挑戦してみました。 「Cometと言えばチャット」というくらい、サンプルや例題のほとんどがチャット関連のネタばかりなので、あえてそういう類いのものではなく、もっと地味なネタでせめてみようと思います。 ズバリ、ログ監視です。 「アクセスログをちょっと確認するだけなのに、いちいちコンソールから入ってtail -fするのが面倒」というズボラなひとに向けです。 まず要点を整理しておきますと、 ブラウザからログ監視をする ログ監視のON/OFFはブラウザから操作可能 Cometの方式はLong-Pollモデルを採用 サーバ側の実装は POE::Component::Server::HTTP と Wheel::FollowTail がメイン クライアント側はjavascript(Mini Ajax)を使って実装 です。 色々なbl

    ダウンロードたけし(寅年)の日記 - POEでログをtailするComet
  • mysqlにperlインタプリタを組み込んでみる - ダウンロードたけし(寅年)の日記

    以前「mysqlに独自関数を組み込む(UDF)」というエントリを書いてみましたが、今回はそれの延長で、mysqlのUDFとしてperlインタプリタを組み込んでみようと言う実験です。 mysqlperlを組み込んで何がうれしいかっていうと、簡単なperlスクリプトで自由にmysqlの関数を作れるようになります。 例えば URLリストから実際にLWPで内容を取得してきて何かの処理をした結果を表示したり perlの正規表現で任意のフィルタリング関数を書いてみたり 何かの更新処理のあとに裏でバッチ処理を走らせるためのトリガースクリプトを関数として組み込んでみたり みたいなことがmysqlの中だけでできるようになります。 車輪の再開発 実は先に述べておきますと、今回のこのアイデアですが、なんと今から5年ほど前にかの有名なBrian Aker氏がLinuxJournalにてEmbedding Per

    mysqlにperlインタプリタを組み込んでみる - ダウンロードたけし(寅年)の日記
  • 1