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

  • GraphViz によるグラフ描画が超便利すぎる件について

    UML::Class::Simple で Catalyst のクラス継承図を描いてみた の時にインストールした GrapgViz ですが、DOT 言語を覚えるとグラフ描画が必要な要件に対する解決策として大変有効かつ便利な事に気がつきました。 いろいろと自分が触るのに、いちいちアレコレするのが面倒になってきたので、簡易 CGI も記述しました。これが超便利。自分的に。ソースも晒しておくので、どうぞご自由にお持ち帰り下さい。 ちょっとした使い捨てプログラムのシーケンスを人に説明したり、アンケート等のページ遷移を説明したりするのに、ちょちょっと描画したりする時に威力を発揮します。ドキュメントを書くのが猛烈に面倒くさい僕みたいなタイプの人は、DOT言語を覚えておいて損はないかと思います。 改めて Graphviz - Graph Visualization Software についての説明 Gra

    harupiyo
    harupiyo 2009/07/07
  • Yahoo! のキーフレーズ抽出 API の使い道を軽く考えてみた

    先日ですが Yahoo!デベロッパーネットワーク - テキスト解析 - キーフレーズ抽出 なる API が公開されました。 この API を駆使すれば個人でも Google AdSense のようなコンテンツマッチ広告すらできちゃいそうなシロモノです。この手の技術に興味がある僕からすれば、コンテンツマッチ技術の根幹の技術を、よくもまぁ無料の API で公開したものだなぁ〜 Yahoo! って太っ腹だなぁ〜と唯々感心するばかりです。 さて、どうせなので、コンテンツマッチの技術についてもう少ししゃべってみます。 基的に”とあるページ”にコンテンツマッチの”何か”を表示するロジックはこんな感じ。 ”とあるページ"(解析対象)”の html を取得 html 全体から文抽出 特徴語抽出(キーフレーズ抽出) 特徴語をベースに”表示する何か”を類似度順にソート(例えばコサイン距離とか) ”とあるペ

    harupiyo
    harupiyo 2009/06/07
  • UML::Class::Simple で Catalyst のクラス継承図を描いてみた

    UML::Class::Simple ってモジュールがあります。このモジュールを使うと既存のプログラムを解析してクラス図を作成することができます。業務で仕様書を書く必要がでた場合、もしくは Catalyst のようなフレームワークをより深く知りたくなったときなどに大いに役立つモジュールです。 http://search.cpan.org/~agent/UML-Class-Simple/lib/UML/Class/Simple.pm UML::Class::Simple is a Perl CPAN module that generates UML class diagrams (PNG format, GIF format, XMI format, or dot source) automatically from Perl 5 source or Perl 5 runtime. Per

    harupiyo
    harupiyo 2009/05/29
  • Linux チューニング - Ext3 のパフォーマンスを最大化させる

    じつは自宅サーバのロードアベレージが上がり続けています。分析の結果、ボトルネックは I/O 処理でした。CPU は Athlon64 X2 4400+ ですが、まだまだ当分この CPU で間に合いそうです。HDD は当時は 7200 回転で最速だった HITACHI Deskstar T7K250 SATA2 250GB を RAID1 構成にしたのですが、今思えば速度優先で RAID0 にしておけば良かったと少しだけ後悔。 I/O がボトルネックに成っている理由ですが、Drk7jp が公開しているサービスの全てがキャッシュファイルを利用した高速化手法を取っているのですが、単純にそれらファイルの write 処理が追いついていません。常に何らかのプロセスで I/O 待ち状態が発生しているような状況です。抜的な解決方法としては disk を高速なものに交換する以外ありません。 というわけで

    harupiyo
    harupiyo 2008/09/24
  • パソコンの電源が入らなくなったときの対処方法

    今日は大学のプチ同窓会がある日です。実に12年ぶりに合う人もいます。昨晩は会社の同僚4名とビアガーデンに言って飲んでます。余りお酒が飲めないので今日は烏龍茶メインで行こうと考えながらパソコンの電源を入れようとしたらうんともすんとも反応しません・・・。 どうせ子供がコンセントとか抜いたんだろうとか思いましたが、どうやらケーブル類は全て正常のようです。ちょうと子供と奥さんは夕飯をべに実家へ帰っていたのでまだラッキーだったかも?とパソコンをバラしてしばしの間、トラブル解析に没頭してみました。 まずはパソコンの起動原理から知っておく必要があります。かれこれ12年ほど自作してきたのである程度パソコンは詳しいと思っているのですが、ハードウェア系のトラブルはそんなに詳しくはありません。いろいろ調べて参考になったサイトはこ2つです。 * トラブル対策 * 電源が入らない!画面が出ない!BIOSが起動しな

    harupiyo
    harupiyo 2007/09/05
  • Perl で作る画像類似検索システムの考察

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

    harupiyo
    harupiyo 2007/08/22
  • 改造版メイリオフォント MeiryoKe がはげしく良い件について

    Windows Vista を使い始めてはや半年がすぎたころなのですが、当初めちゃめちゃ違和感のあったメイリオフォントにも慣れ始めました。で、なんとなくサイトをメイリオフォント対応にしようかなぁ〜と思い立ってしまい、css を適当に組んでみた。いろいろと情報を集めてみたら mac 環境も考慮すると、こんな css が良いらしい。 body { font-family:'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','メイリオ',Meiryo,'MS Pゴシック',sans-serif; } で、サイトを表示してみました。 ・・・・・・・ むっっはぁぁぁぁぁっ!! 忘れてました。メイリオは他のフォントに比べて横長なんです。なんだかヘンなんです。フォント幅が違うので CSS も乱れて表示はめちゃめちゃです。 ちなみに今まで通り MS Pゴシックで表示すると

    改造版メイリオフォント MeiryoKe がはげしく良い件について
    harupiyo
    harupiyo 2007/08/22
  • ワードサラダ技術について

    後半部分が重要で、未来の挙動が現在の値だけで決定され、過去の挙動と無関係である ということです。 さて、実例です。たとえば次の文章を考えてみます。 「通信販売大手セシールは9日、生命保険の販売に格参入する方針を明らかにした。」 まず形態素解析するとこんな感じになります。 通信 名詞,サ変接続,*,*,*,*,通信,ツウシン,ツーシン 販売 名詞,サ変接続,*,*,*,*,販売,ハンバイ,ハンバイ 大手 名詞,一般,*,*,*,*,大手,オオテ,オーテ セシール 名詞,固有名詞,組織,*,*,*,セシール,セシール,セシール は 助詞,係助詞,*,*,*,*,は,ハ,ワ 9 名詞,数,*,*,*,*,9,キュウ,キュー 日 名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ 、 記号,読点,*,*,*,*,、,、,、 生命 名詞,一般,*,*,*,*,生命,セイメイ,セイメイ 保険 名詞,一般

    harupiyo
    harupiyo 2007/08/22
  • /dev/shm に参照系DBを持っていくと I/O 負荷が激減した件(当たり前だけど)

    前エントリーから一部の内容を分離して追加記事にしてみました。以下実施したメモリ増設の効果について。 ここ数ヶ月、自宅サーバの負荷がだんだんと上昇してきていて、そろそろ1台で高速にさばききる限界に近づいてきた感があったり。ここ数週間のロードアベレージはこんな感じ。グラフは× 100 の値になってます。CPU のコアが2個なんで、200 までは OK ということでまだ処理しきれているわけではあります。ちなみに mrtg グラフは瞬間値を示しているわけではなく平均値なので瞬間的にはもっと負荷が高いときとかあります。 でも月次処理が走るともっさり感満点。 ※緑:1分平均 / 青:15分平均 実は CPU の処理速度が追いついていないと言うより I/O 周りがボトルネックになっています。 ※緑:読取ブロック数 / 青:書込ブロック数 ということで、メモリを2GBプラスして、合計 4GB にして参照系

    harupiyo
    harupiyo 2007/05/30
  • Image::Magick を使って大量画像のサムネイル画像を一括自動生成

    仕事で素材集 CD-ROM 内の画像ファイル全2万点を全てリサイズして欲しいという依頼が来た。自社のコンテンツに使うためのリサイズ作業です。初めは OPTPiX webDesigner のバッチ処理で何も考えず 50 x 40 px にリサイズ。縦横比が違う画像が一杯なので何とも無惨な画像が数時間後にできあがった・・・orz 仕方がないので、PhotoShop のバッチ機能でトリミング〜リサイズ処理をやってみた。どうやら素材集の jpeg の圧縮パラメータが違うようでリサイズ後の保存時にダイアログが開いて圧縮パラメータをどうするかいちいち聞いてくる。OK ボタンを押すだけなのだが、全然バッチになってない・・・orz 仕方がないのでリターンキーを押下状態にしてセロハンテープを貼り付けて帰宅時に放置。今日の朝に完成しているはずだったけど、しっかりと PC がフリーズしてました・・・orz し

    harupiyo
    harupiyo 2007/04/14
  • Catalyst + Lighttpd + FastCGI + DBIC + Schema::Loader に関する備忘録 :: Drk7jp

    ここ数ヶ月 Catalyst を触っていなかったらメキメキと記憶から知識が抜けてました・・・orz 恐ろしいことに DBIC もメキメキと忘れてました・・・orz 僕はどちらかというと OR Mapper を使うよりも SQL 直書きしたほうが理解が早い部類の人間なので DBIC つかって distinct とかするコードを書くのが面倒くさくて仕方がない。なので業の Sledge ベースのアプリは Model 部分に自前の DBI ラッパー使ってコネクションとかも管理してます。 ※ココ時代と逆行してるんでしょうね・・・ とはいえ忘れたままは悔しいので、最近ちょっとしたアプリを作るために Catalyst を使って書いていろいろメモったのを備忘録として残して自分用に公開。ってか DBIC のことなら DBIx::Class::Manual::Cookbook - Miscellaneous

    harupiyo
    harupiyo 2007/04/06
  • 楽天アフィリエイト - 楽々おまかせリンクα版を公開

    楽々おまかせリンクって何? ご自分のホームページ上に簡単な JavaScript リンクを貼り付けるだけで、自分のページの内容と関連する楽天内の商品を検索して、自分のアフィリエイトとして商品表示することができるサービスです。最近流行のマッチング広告の技術を応用して、 楽天アフィリエイトを完全に自動化してくれます。 サービスは、楽天アフィリエイトをご利用の方なら誰でも簡単・無料にお使い頂くことができます。もちろんご自分のアフィリエイト ID をお使い頂けますので、収入はご自分のものになります。(※システム利用料としてランダムでどれか1つのリンクが当サイトのアフィリエイト ID に変換されます) 楽天アフィリエイト格的にはじめるのすら面倒くさいという面倒くさがりの方にお奨めのサービスです。一度アフィリエイトを設置すれば後は全自動でメンテしてくれます。 現在はサーバ等の設備費を補うために、

    harupiyo
    harupiyo 2007/02/13
  • 楽天 Web Service を使ってジャンル一覧を生成してみた

    待ちに待った楽天 API が公開されました。Amazon Web Service に似てわかりやすい 楽天 Web Service って名前です。 こりゃぁアサマシイことをしなければならないので触ってみました。取りあえずちょっと触ってみた感触では、レスポンスが帰ってこない場合が多いのが悪い印象。Amazon の初期の時もそうでしたが安定性がまだイマイチかな。 あと、ジャンル一覧を生成してみたのですが、ジャンル ID がシンボリックリンクのようにネストして尾根地物が出てくるので、スクリプト側で度の ID を解析したかを覚えてやらないと無限ループになる。genrePath っていうパラメータがあって 楽天ジャンル一覧を生成するスクリプト ってことで、ジャンル一覧を生成するスクリプトはこんな感じになりました。実行すると、すごい数のジャンル ID が生成される。3時間ほど結果が帰ってこないのでご注

    harupiyo
    harupiyo 2007/01/18
  • JIS X 0213:2004(JIS2004) で本当に文字化けする文字

    とします。Perl で文字コードを操作する方法は、Encode.pm と旧Jcode.pm (0.8系)がメジャーどころなので、その2つについて調査しました。Encode.pm に関しては、Encode::JP と Encode::JIS2K を対象としました。 まず結論から。Encode::JIS2K を使う限り、文字化けする SJIS コードは以下の35文字です。 JIS2004 で追加された10文字:879F 889E 9873 989E EAA5 EFF8 EFF9 EFFA EFFB EFFC カ行に半濁音(゜)を付けた文字など一部の文字: 82f5 82f6 82f7 82f8 82f9 8397 8398 8399 839a 839b 839c 839d 839e 83f6 8663 8667 8668 8669 866a 866b 866c 866d 866e 8685 8

    harupiyo
    harupiyo 2006/12/20
  • Vista で導入される JIS X 0213:2004(JIS2004) のまとめ(お勉強編)

    「日語文字セットがVista最大の問題として急浮上:ITpro」 が初めのネタになったのですが、なかなか時間もとれず、この記事を書き始めてはや3週間も経ってしまいました・・・orz Windows Vistaは、新しい文字セットに関するJIS規格「JIS X 0213:2004」に準拠した日フォントを標準で搭載する。これにより、既存の漢字のうち122文字の字形が変更になり、約900文字の漢字、約200文字の非漢字(英語の発音記号や記号、アイヌ文字など)が新たに表示可能になる。 〜中略〜 さらに、追加される新しい文字の一部をUnicodeで表現すると、通常の2バイトではなく4バイトで表現されるものがある。 をみて、SJIS → UTF-8 → SJIS とかやると文字化けするものとかでるじゃん!大丈夫だっけ?大丈夫じゃなかったら、どんな対策をとったらいいんだっけ?ってのを考察しています

    harupiyo
    harupiyo 2006/12/17
  • VMware の仮想ディスクを物理ディスク構成に変更する方法

    前エントリ「VMware で仮想ディスクのサイズを変更したくなったとき」の最後の項目で、仮想ディスクのパフォーマンスを向上させるために物理ディスク構成の仮想ディスクへ移行する方法を書きましたが、もう少し詳しく書こうと思います。 HDBENCH でパフォーマンスを計測するために、Windows Vista を guest OS とした場合をやったので順に説明をしたいと思います。ちなみにパフォーマンスの結論から先に言うと、Core 2 DUO が VT 対応の CPU だからかもしれませんが、物理ディスク構成の場合、DISK 性能はフルにでていると思われます。ストレス 0 です。 前エントリと同様の手順ですが、VMware の仮想マシン設定から物理ディスクを追加する。PhysicalDrive0 は今使っている Windows が入っている HDD なので、それ以降の PhysicalDriv

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

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

    harupiyo
    harupiyo 2006/12/01
  • Excel 2007 がスゴイらしい・・・ってか買う!

    業務上、65535 レコード以上のファイルを扱うことが多いのですが、Excel では 65535 以上のレコードを扱うことはできません。それ以上に痛いのは、カラム数が 255 までという制限。おかげで複数ファイルに分けたり、シートを分けたりとかなり面倒だし、使い勝手も非常に悪い。 このカラム数の制限は access も一緒で、256 カラム以上は NG なんですよね。レコード数が多いだけなら Excel → access で事足りるのですが。※もっとも使い勝手は Excel の方が遙かに上ですが。 で、先日お会いした有識者の方に Excel 2007 ってスゲーんですよって教えて貰いました。マジ今すぐ欲しいっす! Office Excel 2007 では、膨大な量のデータをワークシートで扱えるようになっており、ワークシート 1 つあたりの最大の行数と列数が、約 100 万行と約 16,00

    harupiyo
    harupiyo 2006/11/24
  • Lighttpd 1.5 系がスゴイらしい

    はてブで lighty のブログがあることを知ってブログを見てみました。lighty の中の人が書いてます。 ナント、lighty 1.5 系が pre release されているではありませんか! なんでも、1.5 系は いままでより 80% のスループット向上が見込めると書かれています。激速の lighty が更に高速になるってわけですよ。Σ(゚Д゚; Using Async IO allows lighttpd it overlap file-operations. We send a IO-request for the file and get notified when it is ready. Instead of waiting for the file (as in the normal sendfile()) and blocking the server, we ca

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

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

    harupiyo
    harupiyo 2006/11/08