タグ

ブックマーク / www.drk7.jp (14)

  • 空間全周囲を再生する 360° VR パノラマという技術について勉強した

    このは学術的なアルゴリズムなどは載っていませんが、満足のいく実用的な情報が詰まってました。紙媒体は既に入手困難な状態が続いており Amazon では 10,000 円からという超プレミア価格となってます。Kindle 版なら定価の 3,110 円で手に入ります。 VR パノラマ技術についてお勉強してみた VR パノラマ技術は 20 年前からある さて、そもそも VR パノラマという技術。すでに 1995 年には QuickTime VR というプロダクトが存在し流行っていた技術だそうです。すでに 20 年以上前から存在する技術ってわけです。VR パノラマを作成する場合は、ある一点から全方位の写真を複数枚撮影し、専用のソフトウェアで全ての方位をつなぎ目なく1枚の画像に合成(ステッチ)します。今でこそデジタルカメラで撮影したデジタルデータを直接処理できるわけですが、昔はネガフィルムで撮影した

  • Slowloris HTTP DoS 攻撃について

    ちょっと前に Apacheに新たな脆弱性発見 - スラッシュドット・ジャパン で紹介されていた脆弱性なんですけど・・・会社のお達しで各サービス毎に状況報告ってイベントがあったので、ちょいと脆弱性試験してました。そのまとめです。 Apacheに、DoS攻撃に繋がる脆弱性が新たに見つかったそうだ(家/.記事より) この脆弱性は、これを利用したHTTP DoSツール「Slowloris」がリリースされたことから明らかになったとのこと。この攻撃ツールはApacheに不完全なリクエストヘッダーを送り続けるもので、Apacheが最後のヘッダが送られてくるのを待つ間、偽のヘッダを送ることで接続をオープンにし続け、Apacheのプロセスを一杯にさせるものだという。 脆弱性はApache 1.x、 2.x、 dhttpd、 GoAhead WebServer、そしてSquidにて確認されているが、IIS6

  • 【続】やはり Perl はメモリ喰いな言語。データ型の内部構造

    以前、「やはり Perl はメモリ喰いな言語。データ型の内部構造」という記事を書いたことがあるのですが、自分で書いておきながらしばらく立つと完全忘却してました。時代は変わって、今仕事で運用しているサーバは、64bit 版のOSです。 最近になって、DB のテーブルのデータを加工・集計しながら CSV にダンプするってプログラムが、データ数が非常に多いときに、1.5 GByte ほどメモリをいつぶしているってことに気がつきました。理由は至って簡単なのですが、結構ハマリどころなので備忘録として記事にしておくことにしました。 みなさん、仕事とかでは特にそうだと思うのですが、DBI の処理って何らかのラッパーを書いて使っていると思います。僕は適当に書くとよくやってしまいがちなのですが、イメージ的には、こんな処理の流れのコードを書いていました。 (・・・えっ?そんなへぼコード書いてない??・・・す

    amayan
    amayan 2009/01/28
  • Perl スクリプトで遅い場所を特定する方法 - Devel::Profiler / Devel::NYTProf

    仕事で書いてる Sledge アプリがあるのですが、先日負荷テストを行った結果びっくりすることに現行アプリの10倍遅いことが判明してしまいました・・・orz Sledge フレームワーク自身が重くないことは今までの経験でわかってるのですが、どうにもソースを見直しているだけでは原因が特定できない・・・そんな活躍するのがプロファイラです。プロファイラの御陰で遅いヶ所を特定することができ、無事に想定するパフォーマンスを得ることができました。この内容に関してはまた別エントリにて。 さて、プロファイラを使うとプログラム実行時の各種情報を収集し、性能解析を行うことが可能です。プロファイラについてもう少し詳しくしるには 性能解析 - Wikipedia あたりを読むと良いでしょう。 プロファイラ(英: Profiler)は性能解析ツールであり、プログラム実行時の各種情報を収集する。特に、関数呼び出しの

    amayan
    amayan 2008/11/21
  • ithread を使って処理の高速化の例

    Perl5.8 では、ithread というスレッドモデルが採用されました。XML や SOAP といった通信処理を書くと、応答を待っている時間が非常にもったいない。例えば、サイトをクロールするときとかは通信時間がバカにならないので、並列化は特に有効です。 ちょっとした実験をしてみたのですが、概ね良好な結果が得られたので、随所にスレッド処理を施そうと思います。 例えば、Amazon Web Service の並列取得なんかを実験してみると、 #!/usr/bin/perl -w use strict; use LWP::Simple; use XML::Simple; use threads; use Thread::Queue; my @sites = ( 'http://xml.amazon.co.jp/onca/xml3?&dev-t=DAB7UJEE24RXR&t=drk7jp-2

  • Catalyst の Catalyst::Helper::Model::CDBI でいつもハマる・・・orz

    何か、Catalyst をいろんな環境にインストールするたびに、Helper スクリプトを実行して、create model CDBI するといつも同じエラーで躓くので備忘録として記事にしておこうと思いました。 その1)Class::DBI::mysql をインストールし忘れる perl myapp_create.pl model CDBI CDBI dbi:mysql:WebService testid testpw exists "/home/apache/tmp/MyAPP/script/../lib/MyAPP/Model" exists "/home/apache/tmp/MyAPP/script/../t" created "/home/apache/tmp/MyAPP/script/../lib/MyAPP/Model/CDBI.pm" Couldn't require lo

  • Perl で作る画像類似検索システムの考察

    今日はとてもショッキングな出来事がありました。あまりにショックがでかいので何かに没頭しなければ気が紛れそうにありません。と言うわけで全く専門分野でもないし当面使う予定もないのですが、1年ほど前にちょっと気になっていた画像の類似検索についていろいろ調べてみました。 どうやら ImgSeek ってソフトが結構有名らしいです。最新バージョンは 0.86 で Linux Only です。1つ前のバージョン 0.85 は Windows binary があります。 過去にいくつか画像類似検索ソフトを試したような記憶がありますが忘れてしまいました(vector でも結構類似検索ソフトありますね)。まずは windows binary 版をダウンロードしてきて実行してみました。 それなりに使えそうな予感がします。Linux 向けの imgSeek-0.8.6.tar.bz2 をダウンロードしてインストー

  • Win32::OLE で Excel を操る perl スクリプト

    えーつい最近、Spreadsheet::WriteExcel について聞かれました。ちょっとしたサンプルプログラムを教えたついでに Win32::OLE のサンプルも教えたのでどうせならブログのネタにと記事にしてまとめておきます。よく考えたら、以前 Spreadsheet::WriteExcel が 2.10 から便利になっている件について を書いたときに まずは、Win32::OLE まわりで参考になるサイトまとめです。Win32::OLEモジュールだけでも目を通しておくと良いと思います。 Win32::OLEモジュール(日語チョウ訳) Ver. 0.14 Win32::OLE - OLE Automation extensions - search.cpan.org Win32 の Perl を使用している Excel を自動化する方法 Perl講座 PerlからOLEを使用する 読

  • VMware が頻繁にディスクアクセスして OS 全体が固まる件

    こんな現象が発生するようになったのも XP + VMware 5 → Vista + VMware 6ベータ にしてからなのですが、物理メモリもたっぷりのっていて空きメモリもある状態にもかかわらず、VM を起ち上げていると頻繁にディスクアクセスが発生してマシンが数分間フリーズしたかのごとく固まる現象が続いています。 以前物理メモリが 2GB だった時は、まぁ〜しょうがないか〜と思っていたのですが今は 3GB のっていて(ホントは4GBだけど OS が 32bit なのでうまく認識しない・・・)コレは流石にキツイ。ってことで原因を調べてみました。 まずはリソースモニタを起ち上げて VM を使ってディスクアクセスが発生するのを待つ。すぐに発生した。 どうやら VMware の .vmem ってのが頻繁にディスクアクセス(read)を行っている模様。もう少し様子を見てみる。 こんどは頻繁にディス

  • 再帰処理のクイックソート vs 非再帰処理のクイックソート

    なるエラーでプログラムが続行できなくなる不具合に悩みました。そこで、今まで記述したことのない非再帰処理のクイックソートに書き直すことになりました。 僕の業は VBA でないので、これ以上詳しい Excel VBA のソートのお話しは以下のサイトをご覧下さい。 さて、以下の説明は VBA に実装する前に作成した Perl 版クイックソートに説明を切り替えます。 まずは単純に再帰処理のクイックソートを実装してみる sub qsort_normal() { my $array = shift; my $left = shift; my $right = shift; my ($i, $j, $pivot, $tmp); if ($left < $right) { $i = $left; $j = $right; $pivot = $array->[($left+$right)/2]; whil

  • CPAN の ダウンロード先(URL リスト)を変更する方法

    「Sun Fire V20z を Webサーバ用に購入」や「Apache bench 対決 : Xeon vs Opteron」の記事で書いたように、業で使っている web サーバは Sun Fire V20z というサーバなんですが、Dell の Xeon サーバとかに比べてベンチマークで比較する数値以上に実務アプリ(Web + DB サーバアプリケーション)の動作がすこぶる機敏です。 ってな訳で、再びサーバ増設で Sun Fire V20z を購入してインストール作業をしているのですが、CPAN のインストールで苦戦中。どうも CPAN サーバによって MD5 - checksums で転けてしまうんです。具体的には、

  • 【備忘録】CPAN Author の登録手順とモジュールの登録手順 :: Drk7jp

    えーっと、一応 CPAN サイトを読みまくったのですが、英語が苦手なためか、ずーっと CPAN Author の登録手順やら CPAN へのモジュール登録手順がわかりませんでした・・・orz 幸いなことに、社内のモヒカン族な方に PAUSE ってキーワードを教えて頂きました。ググッたらすぐに情報でてきました。この前の Shibuya.pm でライトトークされてた、kawasaki さんのサイトに [Perl] 作成したモジュールをCPANで公開する手順 とそのまんまのタイトルで手順でてました。PAUSE ってキーワードがわからないと、このページにすらたどり着けなかったです・・・orz ってことで、以下登録までの備忘録。 1. PAUSE(Perl Authors Upload Server)のアカウントを取得します http://pause.perl.org/pause/query?ACT

  • VMware で仮想ディスクのサイズを変更したくなったとき :: Drk7jp

    VMware 仮想ディスクマネーシャ(VMware Disk Manager)を使用する事で、コマンドラインから、仮想ディスクファイルの作成、管理、変更が可能です。 1) コマンドシンタックス vmware-vdiskmanager.exe -x <拡張後のサイズ> 仮想ディスクファイル.vmdk これで仮想ディスク容量の変更はOKです。これで、仮想環境上からみれる物理ディスクの容量は増えます。 仮想ディスク容量を増やした後どうする? 上記のコマンドで仮想ディスクを増やしただけでは OS 上から使用可能な容量は増えません。パーティション情報も変更してやる必要があります。商用の Partition Magic とか持っていなくても、GParted Live CD を使えば、パーティション情報を変更することができます。ISOイメージをダウンロードして、VMware の仮想 CD-ROM の「I

  • 古いファイルを一括削除する perl script

    サーバの Disk 容量が足りなくなってきたので、Amazon Search とかの Web Service として提供しているアプリケーションのコンテンツ・キャッシュファイルを、ある一定期間更新がされていないファイルを一括削除することにしました。 簡単な削除スクリプトを書いてみました。キャッシュをファイルベースで管理している場合に、ひょっとして他の方にも役立つかも?と思ってソースを公開しておこうかなぁーと思って。 #!/usr/local/bin/perl use strict; use File::Find; use 5.6.0; use constant CACHE_DIR => '/temp-path'; ## 削除したいディレクトリのpath use constant EXPIRE => 50; ## 削除対象とする経過日数 find(\&filter, CACHE_DIR);

    amayan
    amayan 2006/10/06
  • 1