タグ

2009年5月1日のブックマーク (35件)

  • 外部URLを偽装するテスト用ライブラリ「FakeWeb」

    ご無沙汰しています。KBMJのプログラマのx5rです。 最近、私が携わるプロジェクトでは、外部APIを利用したい、一部の機能を外出しにしてサービス間で連携したいという要望が徐々に増えつつあります。 ただし、その外部システム(サービス、API)と連携する機能を実装はするものの、その機能をテストする場合、テストケース毎に毎回外部連携する訳にはいかないので、どうすればいいのかわかりませんでした。 仮に、毎回そのシステムにリクエストを投げてテストするとしても、その外部システムも並行している開発する場合、そのシステムが出来上がるまで待っていなければなりません。 みなさんこういった外部連携のテストをどうやって行っているのか調べていたところ、FakeWebというWebリクエストを偽装するgemライブラリがあることを知りました。 そこで、今回はこのFakeWebというgemライブラリについて紹介

  • epollのソースを読む - Hello, world! - s21g

    masuidrive さんからeventmachineの挙動が不振だという相談を受けたので、 昔取った杵柄で色々調べてみています。 結局の所、EPOLL_CTL_ADD したあとに、epoll_waitがEPOLLIN になるまでにかかる時間が、稀に1000ミリ秒程度かかる事があるというのが 問題のようでした。 なぜかKQUEUEでも同様の問題が発生するようなのですが、 とりあえずは比較的親しみ深いepollの方を調べてみる事に。 epollの実装は、linuxカーネルの中にあります。 なので、linuxカーネルのソースをインストールします。

  • 2009-04-17

    プロジェクトとかのためにサーバーの作り方を書こうと思ったんですが、割と一般的な知識で難しい内容でもないので、公開でやります。 正直細かいことは知りませんが、逆に細かいことを考えなくてもサーバーくらい作れるよという感じで書いていきます。 Perlでサーバーを書くのは難しくありません。 ソケットを作り、ポートに結びつけ(bind)、接続を待ち(listen)、接続を受け付け(accept)、来たら適当に処理するだけです。 このときlistenまでは一回だけやればよく、acceptをwhileでループして、何度も接続をうけることができます。 実際のechoサーバー(=入力された内容を反射するだけのサーバー)は以下のようになります。(たったこれだけです) use Socket; #ソケット作成 socket(SERVER, PF_INET, SOCK_STREAM, getprotobyname

    2009-04-17
  • mixi Engineers’ Blog » Linux Programming、epollの話

    お久しぶりです、初めての日の夏に圧倒されているトールマエサカです。 今日はLinuxにおけるネットワークプログラミング関連のネタです。分散データベースサーバの開発過程で最近よくLinuxのepollというイベントハンドリング機能を使っています。これがまた優秀な機能なので紹介します。 このContextでいうイベントハンドラーはサーバがクライエントのリクエストを処理するためのメカニズムです。イベントの感知と通知は大雑把にいうと以下の三つの処理で構成されています: 一つもしくは複数のディスクリプタを監視 ディスクリプタの準備が整うまでハチ公のごとくひたすら待ち続ける 準備が整ったディスクリプタの通知 アプリケーションでの実装は一昔までselect(2)、もしくはpoll(2)というシステムコールで行われていました。二つとも役目は同じですがselect(2)の場合、kernelをいじらない限り

    mixi Engineers’ Blog » Linux Programming、epollの話
  • バイナリシリアライズ形式「MessagePack」 - Blog by Sadayuki Furuhashi

    Googleが公開したバイナリエンコード手法であるProtocol Buffersは、クライアントとサーバーの両方でシリアライズ形式を取り決めておき(IDL)、双方がそれに従ってデータをやりとりするようにします。 この方法では高速なデータのやりとりができる反面、IDLを書かなければならない、仕様を変えるたびにIDLを書き直さなければならない(あらかじめしっかりとIDLを設計しておかないとプログラミングを始められない)という面倒さがあります。 ※追記:Protocol BuffersのデシリアライザはIDLに記述されていないデータが来ても無視するので(Updating A Message Type - Protocol Buffers Language Guide)、仕様を拡張していっても問題ないようです。 一方JSONやYAMLなどのシリアライズ形式では、何も考えずにシリアライズしたデータ

    バイナリシリアライズ形式「MessagePack」 - Blog by Sadayuki Furuhashi
  • VIVER

    VIVERとは? VIVERは、1台のコンピュータをCDやDVD、USBメモリなどから起動し、続いて他のコンピュータを次々にネットワークブートすることで、瞬時にディスクレスネットワークを構築するシステムです。 VIVERを使うと、非常に簡単な手順で、今あるLinuxシステムをUSBメモリやネットワークブートからブートできるようにすることができます。 特定のLinuxディストリビューションには依存していないので、CentOSでもopenSUSEでもDebianでもMandrivaでも、ほとんどのディストリビューションをディスクレスブートさせられます。 ネットワークブートにはNFSを使いません。分散多重化共有ブロックデバイスV-FIELDを使います。 もっと詳しく デモムービーを見る

  • 分散データベース データベース論Ⅰ 第12回 URL http://homepage3.nifty.com/suetsuguf/ 作成者 末次文雄 C (復習) 障害の種類 ・バックアップファイル からのリストア(復元) ・リカバ��

  • JavaScriptを呼び出しまくるFlash(AS3)の内側 (「HTMLの暴走」解説 ActionScript編) - KAZUMiX memo

    HTMLの暴走(meltdown3)」における、Flash(ActionScript 3.0)側の解説です。 Flash側は次の様な流れになっています。 iframeや埋め込みFlashなど、動かせなかったり綺麗に動かそうとすると面倒な要素をJavaScriptから取得 上記要素がある場合、JavaScriptにその要素を非表示にするように指示すると同時にその位置にノイズのアニメーションを設置し、フェードアウトのアニメーションを開始させる 初音ミクなど、事前に用意した画像からランダムに画像を選択 選択された画像のピクセル数を計算(完全に透過の部分は除外) アニメーション対象のHTML要素数をJavaScriptから取得 画像化に必要なピクセル数とアニメーション対象要素数を比較し、画像化に必要な要素数に達していた場合は画像化演出に分岐 画像化演出の場合 画像化に不要な余り要素をまず画面外に

    JavaScriptを呼び出しまくるFlash(AS3)の内側 (「HTMLの暴走」解説 ActionScript編) - KAZUMiX memo
  • ウェブリブログ:サービスは終了しました。

    「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧

    ウェブリブログ:サービスは終了しました。
  • ミライネット|フレッツ光対応のプロバイダ「Mirai NET」 :: Home

    インターネットサービスプロバイダー Mirai NET 公式ウェブサイト。光インターネット接続、ウイルスチェック、迷惑メール対策なども充実。幅広いサービスをご提供しています。

  • http://www.atdot.net/~ko1/w3ml/w3ml.cgi/ruby-mvm-ja/

  • Comet/Ajaxの上を行く技術 - Blog by Sadayuki Furuhashi

    上を行くかどうかは知りませんが :-p Ajaxはクライアントの都合でサーバーに通信を仕掛けるpull型の通信ができ、Cometはサーバーが好きなタイミングでクライアントへデータを送りつけるpush型の通信ができるわけですが、新たに双方向の通信ができる技術を開発しました。 具体的には、JavaScriptとサーバーの間で双方向のRPCができます。すなわち、サーバーからクライアント側のJavaScriptのメソッドが呼べるし、逆にクライアント側からサーバー側のメソッドを呼ぶこともできます。 サーバー側で call("addMessage", "Hello!") とやると、JavaScript側の function addMessage(msg) { ... } という関数が呼ばれたりします。 この技術を使って、試しにチャットシステムを作ってみました > デモ (ソースコード)*1 リアルタイ

    Comet/Ajaxの上を行く技術 - Blog by Sadayuki Furuhashi
  • KLab勉強会 - KLablabWiki

    KLabでは、主にエンジニア向けの勉強会を不定期に開催しています。ここはそのまとめのページです。 次回の開催はDSAS開発者の部屋でアナウンスしますので、そちらもあわせてチェックしていただければと思います。 KLab勉強会#4 - 2008-03-28 KLab勉強会#4の資料を公開します KLab勉強会#4 ストリーミング配信のお知らせ KLab勉強会#4 開催のお知らせ 『DSASのやりくり - MATRIXの秘密と効率的なシステム管理の関係』 講師 ひろせまさあき (KLab株式会社) 概要 システム管理をする上で、特にサーバ台数が増え始めると大きな問題になってくることがらについて、DSASではどのように解決し、運用の効率化を果たしているか、その事例を紹介したいと思います。 『オープンソースなシステム管理フレームワーク Func』 講師 宮下 剛輔(株式会社paperboy&

  • KLab勉強会#2 のご案内 : DSAS開発者の部屋

    前回の勉強会、「DSASのあれこれ」に続いて、第2回 KLab勉強会を開催したいと思います。 前回の「DSASのあれこれ」はDSAS全体を俯瞰するような内容だったのですが、今回はピントをしぼって、DSASのとある構成要素について深く濃くしゃべりたいと思います。 そして今回はもう1セッションあります。 VIVERの開発者である古橋さんを招いて、VIVERについていろいろとしゃべっていただきます。 VIVERについて詳しくはVIVERのサイトを見ていただきたいのですが、とてもエキサイティングなシステムなので、ぼくたちも楽しみにしています。 開催要項 日時 2007/6/22 (金) 19:00-20:00 (18:30受付開始) 場所 KLab株式会社 第3会議室 東京都港区六木6-10-1 六木ヒルズ森タワー20F 参加費 無料 人数 30名程度 (定員になり次第、参加登録を締め切らせて

    KLab勉強会#2 のご案内 : DSAS開発者の部屋
  • ユメのチカラ: ソースコードの読み方

    ソフトウェア工学の標準的なカリキュラムにソースコードの読み方というのがあるのかないのか知らないが、プログラマとして最も重要な資質の一つにコードの読解力というのがある。 ついでに言えば、大学や専門学校であまり教えられているとはいえないけど、実践では常に必要とされているものとして、テストの方法論、デバッグの方法論、性能向上の方法論、メモリなど各種資源の削減方法論などなどがある。国際化、移植性なども重要な単元であるがソフトウェア工学の中で教授されていると言う話はあまり聞かない。コードのハック一般についてどこかで議論されているのだろうか。経団連あたりで議論しているのだろうか? 閑話休題。 ソースコードの読み方ということで、最近では「コード・リーディング」というそのものずばりの教科書も出ているので状況は好転しつつある。コードの読み方はオープンソースの時代になり、間違いなく広く情報を共有できるようにな

  • 2005-10-05

    http://sourceforge.jp/tracker/index.php?func=detail&aid=5871&group_id=689&atid=4934 http://sourceforge.jp/tracker/index.php?func=detail&aid=6011&group_id=689&atid=4934 マジックコンポーネントとして、servletContextという名前で、javax.servlet.ServletContextを定義しておけば良いですか? Diconエレメントのクラス階層は次の通りです。DefaultElement以外は、org.seasar.kijimuna.core.internal.dicon.modelパッケージにあります。 org.seasar.kijimuna.core.internal.parser.DefaultElemen

    2005-10-05
  • ミドルウエアの具体例を教えてください。

    初級シスアドで、OSとアプリケーションソフトの中間に位置するものとしてミドルウエアがあり ・データベース管理システム(DBMS) ・通信管理システム(LAN制御を含む) ・ソフトウエア開発支援ツール ・EUCツール ・運用管理ツール 説明されています。なんとなく具体例が推測できるものもありますし、ぜんぜんイメージできないものもあります。 そこで、推測が間違っていないか確認したいのと、イメージできないものの場合具体例をあげていただければ助かります。 (1) データベース管理システム(DBMS) 多分、OracleSQL-SeaverやMySQLのようなものだと思うのですが。 この推測はあってますか? (2) 通信管理システム(LAN制御を含む) プラットホームや使用アプリが違う場合のデータのやり取りを行うようなもの・・・というイメージがあります。使用アプリの場合はODBCドライバみたいなも

    ミドルウエアの具体例を教えてください。
  • TPC-Error 404

    OOps Something is a miss .... We are sorry, but the page that you were looking for could not be found. If you typed the page name directly into the address bar, please check the spelling and try again. Or use the navigation bar at the top to find what you are looking for. If you like assistance, please contact us. If you want to access a Reference URL (a.k.a. 'Short-ID'), please note, that the ref

  • 分散ファイルシステム/ブロックデバイスをまとめる - Blog by Sadayuki Furuhashi

    昨日KLab勉強会#2の資料を公開しましたが、その中で動的な分散ファイルシステムを設計していると書きました。分散ファイルシステムというのは既にいろいろ存在しているわけですが、情報が分散していてサッパリ分からないので、このあたりでまとめてみたいと思います。 間違っていたり古かったりするに違いないので、正確な情報は家の情報を参照してください。 ファイルシステムレイヤー NFS GFS(Global File System) OCFS GlusterFS Lustre 下位レイヤー Filesystem Block Device Block Device Filesystem Block Device 読み込み ○ ○ ○ ○ ○ 書き込み ○ ○ ○ ○ ○ アクセスの冗長化 × ○ ○ ○(負荷分散と排他) × データの冗長化 下位レイヤーに依存 下位レイヤーに依存 下位レイヤーに依存 ○

    分散ファイルシステム/ブロックデバイスをまとめる - Blog by Sadayuki Furuhashi
  • なんでも作っちゃう、かも。

    Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。

  • 仙石浩明の日記: initramfs (initrd) の init を busybox だけで書いてみた

    ブートパラメータとして「initrd=」を与えると、 ブートローダがイメージをメモリ上に読み込んでカーネルに渡す。 するとカーネルはそのイメージがファイルシステムなのか、 cpio アーカイブなのか調べる。 もしファイルの magic number が cpio であれば、 ramfs としてマウントする。 そして /init が実行可能ならば、 initramfs として扱い、 /init を起動する。 以上の条件が一つでも成立しない場合、 すなわち cpio アーカイブでない場合や、 /init が実行できない (/init が存在しない) 場合は、 initrd 扱いになるので注意が必要である。 すなわち RAM ディスクとしてマウントしようとするので、 カーネルに RAM ディスクドライバが組み込まれていなかったり、 「root=/dev/ram0」カーネルパラメータを指定していな

  • VIVER日記 - スケールアウトする分散ファイルシステム

    DSAS開発者の部屋で、いかにして多重化+負荷分散されたシステムを構築しているかという仕組みが公開されました。必見(+必聴)です。 「DSASのあれこれ」の資料を公開します VIVER的に重要なのは、dsas.conf。ネットワークブートすると、すべてのマシンの構成がまったく同じになってしまう。VIVERではRUNES(Role-based Unified Network Extension System)というplaggableなアプリケーションを開発することで解決しています。 RUNESの問題は、いちいちプラグインが無いと使えない点。要するに使いにくい。拡張性と使いやすさの両立は難しい…。これは根的に解決する計画があるので、向こう1年以内には解決します。(どうにも開発者リソースが少なくてスパンの長い話になってしまいがち) 資料の中にもありますが、やはり難しいのは、永続的なストレージの

    VIVER日記 - スケールアウトする分散ファイルシステム
  • nyaxtのPC作業ログ

    git clone git://github.com/RobertCNelson/linux-dev.git; cd linux-dev ./build_kernel.sh vi system.sh # MMC=/dev/sdd ←microSDのブロックデバイス。環境によって適宜かえる dd if=/dev/sdd of=bkup bs=1M # 一応バックアップ ./tools/install_kernel.shあっさり FPGAミキサーのコンパネをどうしようか悩んだ末、このボードを見つけたので試してみることに。またLinuxかよと思ったけど、起動10秒らしいので耐えられるかなっていうのと、おそらく以前書いたソフトウェアのGUI部分がそのまま流用できるんじゃないかなというもくろみ。Raspberry Piを使おうと思ったのだけど、映像出力がコンポーネントかHDMIなので、LCDつなげよ

    nyaxtのPC作業ログ
  • クラブ・ラボ

    このサイトは、 KLab株式会社が公開しているオープンソースソフトウェアや実験サービスについて紹介するはずだけど ただいま引越中です。

  • DSAS開発者の部屋

    12/27 から年末年始をはさんだ5日間で、技術系インターン「KLabサーバーサイドキャンプ」を開催しました。 今春3月に第2回も企画しているので、 その宣伝も兼ねて開催報告をします。 (尚、エントリー最終締切日が1/24(月)に迫っているので興味を持って頂けた方はお早めにご応募ください) キャンプの目的 このキャンプは、主にこれから就職活動を始める学生を対象にサーバーサイド開発を体験してもらい、今後の進路を考える上で参考にしてもらうことを目的としています。 そのため、Pythonでのある程度のプログラミング経験は前提としつつ、SQLやSSHなどを触ったことがない方でも参加できるように講義や課題を準備していました。 キャンプの内容 題材として、実際に遊べるリズムゲーム音ゲー)を用意しています。 このゲームにはユーザー登録機能と、複数人で同一曲を同時にプレイする機能があります。この2つの機

    DSAS開発者の部屋
  • [MySQLウォッチ]第44回 MySQL 5.1レプリケーションの注意点

    MySQL5.1には,大きく改良されたレプリケーション機能が搭載された。これまでのステートメント(SQL文)ベースのレプリケーションに加えて,マスタの更新結果をスレーブが反映する行ベースのレプリケーションが搭載されたのだ。レプリケーションの機能追加によって,より正確なレプリケーション処理が可能になった。 しかし,よいことばかりではない。行ベースのレプリケーションは,注意すべき点が存在する。これまでのステートメントベースのレプリケーションと同様の設計や運用では,パフォーマンスを得られない恐れがある。今回は,MySQL5.1レプリケーションの注意点を解説する。 MySQL 5.1のレプリケーション MySQl 5.1のレプリケーションには,同期方法として3つのモードが実装されている。ステートメントベースは,マスタで実行されたSQLステートメントをスレーブでも実行する方式だ。MySQL 5.0ま

    [MySQLウォッチ]第44回 MySQL 5.1レプリケーションの注意点
  • Webページを速く見せるための5つのちょっとした工夫(1/3) - @IT

    株式会社ライブドア マークアップエンジニア 浜 俊太朗 2009/4/30 ページ表示高速化をサーバの設定だけに任せていませんか? HTMLCSSJavaScriptの書き方でも速くできます(編集部) 連載第1回の「Webサイトを“速く”表示させる7つの計測ポイント」では、YSlowを使って速度に関する問題を調査しました。 今回は、CSSJavaScriptHTMLの工夫で速度を改善する下記5つの方法を紹介します。中にはYSlowの指摘に含まれないものもありますが、併せてチェックしていきましょう。 CSSはソースコードの上部に記述する JavaScriptはソースコードの下部に記述する CSSJavaScriptを書く順番 JavaScriptを圧縮して読み込みを速くする 読み込みが遅いブログパーツには要注意 【1】CSSはソースコードの上部に記述する 連載第1回では、「CSS

  • 「自作SecurityManagerについて」(2) Java Solution - @IT

    IT 会議室 Indexリンク Windows Server Insider Insider.NET System Insider XML & SOA Linux Square Master of IP Network Java Solution Security & Trust Database Expert RFID+IC リッチクライアント & 帳票 Server & Storage Coding Edge @ITクラブ Cafe VB業務アプリケーション開発研究 @IT SpecialPR

  • Zennin's Blog Google App Engine for Javaの情報

    Google App Engine for Javaの情報を得るために、簡単なプログラムを作りました。 http://zenninhelloworld.appspot.com/gaejsystem(ソース) JVMについては、 java.vm.version=1.6.0_13 java.vm.name=Java HotSpot(TM) Client VM java.vm.specification.vendor=Sun Microsystems Inc. ということで、特にいじっていないようです。Client VM何ですね? 環境変数が全く表示されないのは、セキュリティのためなのか、そういう環境なのか。 SecurityManagerが独自なのは、あちこちで書かれています。 com.google.apphosting.utils.security.SecurityManagerInstal

  • これが新時代のJavaScriptなのか…サーバサイトJavaScriptフレームワーク·Ejscript MOONGIFT

    JavaScriptはAjaxを境にして一気に進化の階段を上っている。JavaScriptフレームワークをはじめとして、様々なJavaScript周囲の実装が出始めている。そんな中にあって、JavaScriptの立ち位置はまだクライアントサイドが中心になっている。 サーバサイドJavaScriptのみならずアプリケーションフレームワークも提供 そろそろ一歩脱しよう。そう、サーバサイドJavaScriptを目指すのだ。 今回紹介するオープンソース・ソフトウェアはEjscript、サーバサイド&フレームワークのJavaScriptエンジンだ。 サーバサイドJavaScriptを実現する技術やソフトウェアは幾つか存在する。その中にあって、特にEjscriptに注目したいのはWebフレームワークも実装されている点だ。それもScaffoldやMVCのサポート、Webサーバ機能などがある。Ruby o

    これが新時代のJavaScriptなのか…サーバサイトJavaScriptフレームワーク·Ejscript MOONGIFT
  • 基盤系プログラマ - kuenishi's blog

    いわゆる基盤系のエンジニアリング技術について、私の場合は、今の会社に入社して2年間で徹底的に叩き込まれました*1。C言語なんかは独習の範囲内であって、コンピュータに関する基礎的な知識が不足していると痛感しています。一方、Computer Scienceに関する基的なトピックはシンプルなものが多いので、数学の素養と、大学で詰め込まれた技術があれば何とかなる感じがしています。 飽くまでも、ですが、OSとかRDBMSとか、全ては手段です。ビル建設でいえば生コンのようなもの。砂利とか。肝心なのは、自分が欲しいビルの理想をきちんと描き、実現までの手段・手順を整理する。理想としているビルができているかを確かめる。難しいのは、「そんなビルが技術的な観点から当に建設できるのか?」を確かめながら進むこと。 あるいは、それらの技術を全て、日語にしてきちんと表現すること、設計を周囲に伝えて合意をとること、

    基盤系プログラマ - kuenishi's blog
  • Javadoc の書き方 - イトウ アスカ blog

    みなさん、Javadoc 書いてますか? Javadoc は「API ドキュメント」と言われることが多いように、主にライブラリ的なプログラムで書いてこそのものだと思っている方もいるかもしれません。しかしながら、仕様書を Word や Excel(笑)で別途作ると、プログラムと仕様書の同期がとれてないというはめに陥り易くなりますので、Javadoc はどんなときも活用したいというのが私の考え方です。 まず、overview.html を書け Javadoc コメントをいくらか書くような人でも、overview.html を書く人は意外と少ないのではないでしょうか。リファクタリングが何度となく行われるアジャイル開発の現場では、クラスの構成がよくかわりますので、いちいち詳しいコメントを書いていられないということはあるかもしれませんが、overview.html はそれほど何度も手をつけるようなも

    Javadoc の書き方 - イトウ アスカ blog
  • Web API/Mashup開発者に必須!オフラインでも外部アクセスをテストできる·FakeWeb MOONGIFT

    今はネットワークを使ったWeb APIを提供するサービスが増え、それを利用したMashupも増えてきている。様々なデータを容易にとれ、Webシステムを開発できるのは魅力だが、開発中にもネットワークが必須というのが大きな足かせになる。 Mashupのテストがしやすくなる便利なライブラリ また、アクセス自体に料金がかかる場合、開発中の利用を躊躇してしまう。そのような経験がある方はFakeWebを使うべきだ。 今回紹介するオープンソース・ソフトウェアはFakeWeb、Webアクセスを偽装する便利なライブラリだ。 この手のものは一時期考えなくもなかったが、自分でサーバを立てる方法がいいかと思っていた。だがFakeWebの場合は違う。指定したURLへのHTTP(恐らくHTTPSも)接続を横取りし、予め指定した結果を返すライブラリだ。 複数アクセスによって返却値を変えられる 予め返却されるデータと、接

    Web API/Mashup開発者に必須!オフラインでも外部アクセスをテストできる·FakeWeb MOONGIFT
  • wxJavaScriptを使ったデスクトップアプリケーションの作成

    JavaScriptを用いて、ローカルで使うちょっとしたツールが書けたら便利だろうなあと思ったことはありませんか? 稿ではJavaScript向けのwxWidget実装である「wxJavaScript」というライブラリおよびJavaScript実行環境を用いて、JavaScriptで作るちょっとしたデスクトップアプリの実装法について可能な限り多くの実装例を交えながら解説したいと思います。 はじめに JavaScriptを用いて、ローカルで使うちょっとしたツールが書けたら便利だろうなぁと思ったことはありませんか? JavaScriptはオブジェクト指向、正規表現、匿名関数などをサポートする強力なスクリプト言語です。 しかし、その利用範囲はほぼウェブ開発に限定されています。 最近でこそ兄弟言語とも言えるActionScriptがAIRテクノロジの登場によってデスクトップ分野に進出しましたが、

    wxJavaScriptを使ったデスクトップアプリケーションの作成
  • DO++: AND検索の最尤推定

    検索技術においてAND検索、つまり二つの単語を指定して、それが両方出現している文書数の推定を高速に行うのは難しい問題です。 問題を正しく書くと単語w_xが出ている文書番号(x1,x2,x3,..,xn)とw_yが出ている文書番号(y1,y2,y3,...,ym)が与えられたら | {(i,j)|x_i = y_j} | の数を求める問題です。 これは前もって全通り求めて保存しておくにも単語種類数の二乗のオーダー分必要なのでできません。 これは機械学習でも特徴関数が0/1の値しかとらないとき、二つの要素の特徴ベクトルの内積を求める問題と同じで、またデータベースでもJOINの順番を決めるときにでてくる問題です。 普通は全体の文書からサンプルをとって、その中で数えてみて、それを元のサイズにスケールさせることをします。例えば全体文書1億件の中から文書1000件だけとってきて、その中でw_xとw_y

    DO++: AND検索の最尤推定