タグ

ブックマーク / clouder.jp (35)

  • Crypt::CBCのバージョンを2.15以下から2.17以上に上げるときは気を付けろ! (Clouder::Blogger)

    若干釣り気味のタイトルですが、Crypt::CBCの2.15がインストールされたサーバで my $cipher = Crypt::CBC->new({ key => 'foo', cipher => 'Blowfish' }); warn $cipher->encrypt_hex( 'bar' ); とすると「53616c7465645f5fcf0eb6374be3c083823b5e4bd39192b0」などと暗号化されます。 で、これをdecrypt_hexすると、 my $cipher = Crypt::CBC->new({ key => 'foo', cipher => 'Blowfish' }); warn $cipher->decrypt_hex( '53616c7465645f5fcf0eb6374be3c083823b5e4bd39192b0' ); ちゃんと「bar」と復

  • Module::Installの話の続き

    「Module::Installを使ったプロジェクトのincディレクトリについて」の続きです。 ブクマコメントを見ると、「入れてない」or「入れないで欲しい」って意見がほとんどでした。miyagawaさんは入れてないということですし、charsbarさんがコメントしてるPlaggerとCatalystのリポジトリを見ると、たしかにincディレクトリがありませんでした。 あとCatalystのリポジトリでは、incがないだけでなくMANIFESTもリポジトリに入れてないようです。たぶんリリースするときに make manifest && make dist してパッケージングしてるんだと思います。 ということで、今後subversionでプロジェクトを管理するときには、 リポジトリにincは入れない。 リリースするときには make manifest && make dist でパッケージン

    nipotan
    nipotan 2007/10/15
  • Gearman::Client::Asyncはtimeoutできます

    前のエントリで、Gearman::Clientはtimeoutできないけど、Gearman::Client::Asyncはtimeoutできる。でもすぐに処理が戻ってこない!って書きました。 で、この処理すぐに戻ってこないという問題をもうちょっと調べたら、すぐではないけど処理が戻ってくることが確認できました。設定した秒数が短かすぎて勘違いしていたみたい>< ということで、結論としてはtimeoutさせたかったらGearman::Clientじゃなく、Gearman::Client::Asyncを使おうということですね。

    nipotan
    nipotan 2007/08/28
    そういうオチか
  • Gearman::Clientはまだtimeoutをサポートしてなかった

    最近Gearmanをいじってるんですが、Gearman::Clientでtimeoutを設定してやってもtimeoutしてくれない。 なぜだー!とソースを見たら #TODO: timeout isn't supported by this client API yet. と一番上に書いてあった…。サポートしてないのかよ。PODに書いてくれ! で、tokuhiromさんのBackPaperのGearman::Client::Asyncの例を元に、文末のようなコードでやってみた。 そしたらtimeoutは効いてくれるみたい。ちゃんと起動して5秒後にはon_failがコールされた。 お、これでいけるかな?と思ったら、on_failしたあとすぐに処理が戻ってこないで10秒経って(worker.plのsleepの時間だけ待って)から「done」が表示された。 timeoutしたあとに、すぐ処理が戻る

  • [再]colinuxのイメージを拡張する方法

    colinuxのパーティションが99%になってしまいました。 以前「colinuxのイメージを拡張とswapを使う方法」というエントリを書いたのを思い出し見てみたのですが、自分で書いておきながらすごくめんどくさそうだったので、他に方法ないのか調べてみました。 そしたら公式のwikiにイメージ拡張の方法がまとめてあったので、ここに書いてある方法でイメージ拡張したログを残しておきます。 ちなみに、このwikiのページには数種類の方法が書いてあるのですが、この中でも今回は「The most reliable way to enlarge the root partition」という方法をやってみました。 まずはcolinuxが起動してたらshutdown # shutdown now -h 次に新しいイメージをWindowsのコマンドプロンプトで作成する # fsutil file create

  • sshの公開鍵をリモートホストに簡単に持っていく方法

    ※下に追記あり diggをみてて、「公開鍵をリモートホストに登録する簡単な方法」を発見しました。 今まで公開鍵を登録するときにはローカルで .ssh/id_rsa.pub をコピーして、それをリモートの .ssh/authorized_keys にペーストしてたんですが、下記のように ssh-copy-id ってコマンドを使うとさくっとできるみたい。これは知らなかったよ。 これがあればforを使ってワンライナーで一気に複数サーバに登録できる! VentureCake » Blog Archive » 10 Linux Shell Tricks You Don't Already Know. Really, we swear. 6. Add Your Public Key to Remote Machines the Easy Way In order to perform key base

    nipotan
    nipotan 2007/08/13
  • Twitterの更新をSnarl(OSXのGrowlみたいなの)で表示する方法

    Twitterで更新がけっこうおおくてメッセやIRCとかで見るのがめんどうなので、shebangさんのOSXのGrowlみたいなのをWindowsでできないのかなぁと調べたら、Snarlというアプリを発見。これ、Growlインスパイヤみたい。しかもRubyのインターフェイスがあるので、こりゃいいやということで、Rubyでプログラムを書いて更新情報を出せるようにしました。 このプログラムを使うには事前にgemruby-snarlをインストールしておく必要があります。 コードは以下。使い方はSnarlを立ち上げておいて、以下のプログラムをDOSのコマンドラインで、引数にtwitterのidとpassを渡して実行するだけです。Rubyのコードこんなに書いたの初めて…。これでいいのかどうかわからんけど一応動いてます。でもSnarlのバグなのか日語がちょっと微妙…。ちゃんとUTF8で指定してやっ

  • YAPC::Asia 2007のぐっときたトコロ

    ちょっと時間が経ってしまいましたが、先日2日に渡ってYAPC::Asia 2007が催されました。 自分も会場に2日間とも参加させて頂いたので感想を書こうと思います。 全部のトークについて書くのは大変なので、自分がぐっときたワードについて書きます。 CLI = Command Line Interface Yappoさんが話していた内容です。確かにSledgeにはそういったインターフェイスがない。実際仕事などではそれ用のクラスを作って、それをスクリプトから叩いてるんです。しかもそれがコピペだったりしてDRYじゃない!これを見たとき(|| ゚Д゚)ガーン!!となりました。そうだ、これはDRYじゃなくしなければと。 ということで、他のフレームワークの実装をいろいろ見てみてちょっと考えてみようと思います。でも、実はSledge2.0ってCLIと親和性が高くなっているんじゃないかと思うので、ちょ

  • Clouder::Blogger: 最近Flex SDKで遊んでます

    ちょっと前からFlex SDKで使って、ActionScript3を書いて遊んでます。そうこうしていたらApolloなんか出てきて、おぉなんてナイスタイミングと思いApolloairを作ったりもしています。 そこで、Flex SDKをちょっとだけ使った雑感とおすすめリンクを。 Flex SDKの良いところ: インストールが簡単 → SDKをダウンロードしてきて解凍するだけ コマンドラインで扱える → コンパイラにasファイルを指定してコンパイルすると、swfが出来る ネットワーク関係や動画関係のやりたいことは一通りできる → もちろんflvのストリーミングとか簡単にできるし、XMLのパースもできるし、他にもいろんなことできます。 文法が簡単 →オブジェクト指向がわかってればすんなり入れそう Flex SDKの悪いところ: ばりばりデザイン的なのは苦手そう(自分ができないだけかも) 大規模

  • QR Codeを作るならImager::QRCodeを使おう!

    今まで GD::Barcode::QRcode の独壇場だった QR Codeを Perl で作るためのライブラリですが、ここで一つ対抗馬として、Imager::QRCodeを作って、CPAN に上げてみました。 G::B::QRcode と比べて良いところは以下。 出来上がったものはそのままImagerのオブジェクトになっているため、出来た画像に対していろいろできます。 白黒の部分の色を Imager::Color で指定できるようになっていますので、白地に緑とか青とか赤とかの QR code ができちゃったりします。 GDなどのインストールはいりません。libqrencodeという小さなライブラリを入れるだけでさくっと動きます。 ただ、ぶっちゃけちゃうと GD::Barcode::QRcode よりも速度が若干遅いです。 以下ベンチマークになります(ベンチマークプログラムは最後に載せて

  • HDD Regeneratorを使って壊れたHDDが直った!

    あけましておめでとうございます。 今年も焦らずゆっくり書きたいときに書けることを書いていこうと思います。 さて、正月休みは実家に行っていたのですが、家に帰ってきたところclouder.jpのHDDが逝ってしまっていました。起動してブートプロセスの途中のfsckのチェックで10%ぐらいいくと止ってしまう。 もうデータはある程度犠牲にしてこれはKNOPPIXとかでブートしてfsckかなぁとか思ってたのですが、最近malaがフレパ日記で使ってるというのを聞いたり、以前GIGAZINEなどでも紹介されていたHDD Regeneratorを試してみました。 ブートのためのフロッピーやディスクを作る方法はマニュアルを見てください。以下はスキャンしているプロセスをキャプチャしたものです。 まずHDD Regeneratorで作ったブートディスクでブートするとこの画面がでてきた。壊れたHDDを選ぶ。今回は

  • Clouder::Blogger: riyaのように顔認識をするためのライブラリ

    ご存知の方も多いと思いますが、riyaというサービスではアップロードした写真の中に顔があるとそれを認識して視覚化したり、物があるとそれを認識してその物に似た商品(場合によってはそのもの)をみつけてくれるという機能があります。一見すごい技術に見えるのですが、実はあるライブラリを使えばこれを簡単に実現することができます。 事の発端は単純に自分が顔認識をやってみたいと思ったからで、そのためのライブラリやソフトウェアがないのかなぁとネットをさまよっていたらこのライブラリに行き着いたというわけです。 そのライブラリは「opencv」といいます。 このopencvは、Intelが開発を行っているものでSourceforgeにてプロジェクトが進められています。このopencvというのは、別に顔認識に特化したライブラリではなく、「OpenCV (Open Source Computer Vision) i

  • DBIでmysqlのmy.cnfを読み込ませる方法

    1つのサーバでmysqlを2台動かしてmy.cnfを分けたときに、DBIから接続する際にそのmy.cnfをdata sourceとして読み込ませる方法を初めて知った。。。(see also DBD::mysql) my $dbh = DBI->connect('dbi:mysql:foo;mysql_read_default_file=/path/to/my.cnf', 'root', '') or die $!; こうやるとできるみたい。もちろんmy.cnfの[client]セクションに接続したいmysqldの起動してあるポートとかを指定する必要があります。まぁ最近はサーバのコストも低くなってきているので、1台で複数のmysqlを動かすなんて機会がないっちゃないんですけどね…。 これは個人サーバでやりたかっただけです。

  • Imagerを使おう - 第3回「文字を書く」

    ちょっと間があいてしまいましたが、第3回を公開します。今回は画像に文字を書く方法をご紹介したいと思います。(決っして熱が冷めたわけではないで、いやほんとにほんとにw) Imagerには、文字を書くためのモジュールとAPIが用意されていて使い方も簡単。それでいて、いろいろな細かい設定ができたりします。 とりあえずサンプルコードと生成された画像を見てみましょう。 ※ちなみに文字を書く(フォントを扱う)にはImagerの他にfreetype1.x(freetype2.xでもok)をインストールしておく必要があります。詳しくはImager::Fontを参照のこと。 #!/usr/local/bin/perl use strict; use Imager; my $string = "Let's use Imager."; my $font = Imager::Font->new( file =>

  • mod_loadaverage_actionリリース

    ※追記があります。最新バージョンは1.1です。 先日作った mod_loadaverage_redirect にもう少し機能を追加して mod_loadaverage_action という名前でリリースします。名前が変ったのでディレクティブ名もLoadAverageRedirect***からLoadAverageAction***に変わっているので注意してください。 Source: mod_loadaverage_action-1.0.tar.gz Repository http://svn.clouder.jp/repos/public/mod_loadaverage_action/tags/REL-1.0/ 追加された機能は、今までは一つのリダイレクト先しか指定できなかった(LoadAverageActionURL)のですが今回からは LoadAverageActionRule という

  • mod_loadaverage_redirect

    milanoさんから始まった空前のload averageブーム!かどうかわからないけど、各所で話題になっているので自分もApacheモジュールを練習がてら作ってみました。ちなみにこのモジュールはmilanoさんがやりたそうな複雑なものにはまだ対応していません。。。 http://svn.clouder.jp/repos/public/mod_loadaverage_redirect/trunk/ LoadAverageRedirectThresholdで指定した数よりもそのマシンのload averageが高くなったら、LoadAverageRedirectURLで指定したURLにリダイレクトをするというものです。インストールは、make && make install でオッケイ。あとは、httpd.confに LoadModule loadaverage_redirect_modul

  • Imagerを使おう - 第2回「画像を加工する」

    さて、前回の予告したように、今回はImagerを使って読み込んだ画像をいろいろな方法で加工する方法をご紹介しようと思います。画像の加工といっても色々な方法があると思いますが、まずは拡大縮小、回転、切り抜き、反転、他の画像を貼り付けあたりから説明していきます。 なお、今回でてくる$imgというのは前回紹介した画像を読み込んだImagerのインスタンスだと思ってください。 今回サンプルとして加工に使う画像は下記になります。 拡大縮小 まずはオーソドックスな拡大縮小です。コードは以下。 $new_img = $img->scale(scalefactor => 0.5); # 縦横を元画像の半分にする(scale01.jpg) $new_img = $img->scale(scalefactor => 1.5); # 縦横を元画像の2倍にする(scale02.jpg) $new_img = $i

  • Imagerを使おう - 第1回「画像の読み書き」

    仕事で激しくImagerを使っていて、ImageMagickなどにも劣らない機能を持っているなあと感じている今日この頃なのですが、せっかく使っていて覚えたテクニックを自分の中で終らせるのはもったいないし、日語でのドキュメントもあまりないみたいなのでまとめてみようと思いました。ということで、これから数回に渡ってImagerでできることを紹介していきたいと思います。(まぁ、podを読めという話なんですけど、Imagerはドキュメントも多いし、よく使う機能だけまとめておいてもいいかなと思い今回こういうのを始めてみました) まず第1回目は、とりあえず画像を読み書きの方法から。 Imagerで画像を読み込むには、read()というメソッドを使用します。 my $img = Imager->new->read(file => 'foo.jpg', type => 'jpg'); このようにfile

  • 携帯電話の番号ポータビリティの手数料まとめ

    かねてよりニュースになっていた携帯電話の番号ポータビリティの転入出時の手数料が3社で出揃ったのでまとめてみた。 キャリア転入費転出費その他

  • Imager-0.53でGIFアニメーションのループをさせるためのパッチ

    最近マイブームの Perl でイメージを扱うモジュール Imager ですが、最新バージョンの 0.53 では GIF アニメーションの生成がうまくできないようです。原因は giflib の問題らしいのですが、giflib の最新バージョン(現時点では4.1.4)ではその問題が直っているっぽいのですが、まだ Imager のバージョンアップがされないようなので patch を作ってみました。 このパッチを適用する場合には、giflibのバージョン4.1.4以降を入れておく必要がありますので注意して下さい。 diff -u Imager-0.53/gif.c Imager-0.53.new/gif.c --- Imager-0.53/gif.c 2006-06-30 12:54:56.000000000 +0900 +++ Imager-0.53.new/gif.c 2006-08-20 0