タグ

ブックマーク / labs.cybozu.co.jp (11)

  • Kazuho@Cybozu Labs: Perl で埋め込み SQL を使って楽をする話

    « Japanize for IE バージョンアップのおしらせ | メイン | Filter::SQL を使って掲示板を書いてみました » 2008年04月16日 Perl で埋め込み SQL を使って楽をする話 DSL (ドメイン固有言語) は、プログラム開発の生産性を向上させる有力な手段です。そして、よく使われる DSL の代表例が正規表現と SQL だと思うのですが、前者に比して後者を嫌いな人が多いようです。なぜだろうと思ってつぶやいたところ、「SQL はリテラルじゃないから!」という答えが tokuhirom さんから返ってきました。そういえば例えば Pro*C のように C で Embedded SQL というのは良く聞く話なのに、Perl では同様の例がないような感じだったので、作ってみました。Perl で埋め込み SQL を実現するソースフィルター Filter::SQL

    sh19910711
    sh19910711 2022/05/29
    2008 / "Filter::SQL を使えば、以下のように、SQL と perl が混在するプログラムを簡単に書くことが / セミコロンまでの間が SQL 文として解釈 / イテレート: foreach my $row (SELECT * FROM t;) / 条件分岐: if (SELECT ROW COUNT(*) FROM t; == 5)"
  • Kazuho@Cybozu Labs: MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話

    « フレンド・タイムライン処理の原理と実践 | メイン | MySQL の ORDER BY を高速化 » 2008年06月12日 MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話 フレンド・タイムライン処理の原理と実践 の続きです。 先のエントリでは、プルモデルの速度が当初予測していたよりも遅かった (というより SQL レイヤでのオーバーヘッドが大きそうだった) ので、MySQL Internals メーリングリストで質問したりしながら、C++ で直接 InnoDB にアクセスするようなコードを書いてみました。 タイムライン構築速度 タイムライン/秒 SQL そしたら、10倍以上高速に! ベンチマークを perl ベースのものから mysqlslap に変えたのですが、プッシュモデルの 2/3 の速度が出ています。これなら、データサイズが約 1/10 にな

  • Kazuho@Cybozu Labs: フレンド・タイムライン処理の原理と実践

    « MySQL のクエリ最適化における、もうひとつの検証方法 | メイン | MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話 » 2008年06月09日 フレンド・タイムライン処理の原理と実践 MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話に続きます。 Twitter が注目されるようになって久しい今日この頃ですが、友人の投稿を時系列に並べて表示する、というのは、Twitter に限らず Mixi の「マイミクシィ最新日記」やはてなブックマークの「お気に入り」等、ソーシャルなウェブサービスにおいては一般的な手法です。ですが、この処理 (以下「フレンド・タイムライン」と呼ぶ) は、一見簡単そうに見えて、実装には様々な困難が伴います。記事では、「フレンド・タイムライン」を実現する、プッシュ型とプル型の二種類の手法について、その原

  • ウィキペディアが昔懐かしいテキスト・アドベンチャーに

    ケヴァン・デービスさんが公開した Wikipedia: The Text Adventureは、ウィキペディアの情報を元に世界中を回れる1980年代風テキスト・アドベンチャーゲームです。 タイトルからWikipediaに […] ケヴァン・デービスさんが公開した Wikipedia: The Text Adventureは、ウィキペディアの情報を元に世界中を回れる1980年代風テキスト・アドベンチャーゲームです。 タイトルからWikipediaにある地名で検索すると、その場所がゲームの開始地点となります。”Tokyo”だとこんな感じ 英語版ウィキペディアのTokyoにある写真が、8bit風の荒い画像に変換されて場面表示されていますね。”Tokyo”の場合は、5枚の写真を組み合わせた画像なので、なんだかわからないことになっていますが。 ゲームプレイは、Zork などのテキストアドベンチャーで

    ウィキペディアが昔懐かしいテキスト・アドベンチャーに
  • reddit が仕掛けた「例のボタン」

    英語圏の巨大掲示板 reddit がエイプリルフールに始めたお遊びが、2週間経った今でもユーザーを巻き込み続けて、今では70万人を越える参加者となっています。 /r/thebutton というサブレディット(reddit […] 英語圏の巨大掲示板 reddit がエイプリルフールに始めたお遊びが、2週間経った今でもユーザーを巻き込み続けて、今では70万人を越える参加者となっています。 /r/thebutton というサブレディット(reddit でのカテゴリー・板)に設置されたボタン、ページを開くと60.00秒からカウントダウンが始まります。 redditユーザー一人につき1回しか押せないというこのボタン、世界の誰かがクリックすると60秒にリセットされてしまいます。ゲームのルールは、「自分が押した時点での残り時間が、自分の得点となる」、これだけです。 /r/thebutton 内のディス

    reddit が仕掛けた「例のボタン」
  • 秋元@サイボウズラボ・プログラマー・ブログ: reCAPTCHA - キャプチャを利用した人力高性能OCR

    reCAPTCHA という新サービスはすごい。その構想力には感動させられた。 念のためにCAPTCHA(キャプチャ)について説明しておくと、スパムプログラム(bot)と人間のユーザを見分けるための簡単な(しかし機械にとっ […] reCAPTCHA という新サービスはすごい。その構想力には感動させられた。 念のためにCAPTCHA(キャプチャ)について説明しておくと、スパムプログラム(bot)と人間のユーザを見分けるための簡単な(しかし機械にとっては難しい)クイズのことだ。ある程度ウェブを使っている人なら、ネットサービスの登録時やコメントの書き込み時などに、読みにくく加工されたアルファベットを読まされたりした経験があるだろうと思う。 それらのサイトでは、あなたが人間にしかできないクイズを解いたのを見て、ユーザ登録やコメントの投稿を受け付けたりする仕組みになっているわけだ。文字を読む以外のC

  • 最短距離ではなく「最も美しい」や「最も楽しい」道順を表示する研究

    スペイン、バルセロナのヤフー研究所が発表した研究は、地図上で道順を示す時に、「一番早い」ルートではなく、「一番美しい」ルートや「一番幸せな」ルートなどを表示するという技術です。 出発地点と目的地を入力すると道順を表示して […] スペイン、バルセロナのヤフー研究所が発表した研究は、地図上で道順を示す時に、「一番早い」ルートではなく、「一番美しい」ルートや「一番幸せな」ルートなどを表示するという技術です。 出発地点と目的地を入力すると道順を表示してくれる、というのはオンラインの地図サービスでは普通の機能となってきています。車、電車、歩いていくなどの手段に合わせた道順表示も選べますが、ほとんどの場合、表示されるのは「最も早いルート」でしょう。 渋滞情報と組み合わせた「今一番早くつけそうなルート」や、坂道情報と合わせて「自転車で楽なルート」などというのも出来ていますが、今回の研究では、ロンドンや

    最短距離ではなく「最も美しい」や「最も楽しい」道順を表示する研究
  • メッセージキュー事始め in Ruby (nakatani @ cybozu labs)

    ruby でメッセージキューを扱いたく、stomp クライアントライブラリを試してみました。 って、奥さんのエントリとシンクロしているようですが、気のせいではありません(笑)。 1. メッセージキューを起動 ruby の stomp はクライアントだけなので、キュー(サーバ側) は ActiveMQ を使うか、Perl の POE::Component::MessageQueue で立てる必要があります。 今回は奥さんとのメッセージのやりとりが目標なので、奥さんのプログラム( POE::Component::MessageQueue 使用)をそのまま使わせてもらいました。 /usr/bin/mq.pl --data-dir /tmp/mq プチTIPS: POE::Component::MessageQueue でキューを立てて、subscribe したり、subscribe されていない

  • Codespell – Java言語がそのまま呪文となる教育用3Dゲーム

    カリフォルニア大学サン・ディエゴ校の計算機科学者達が開発した Codespell は、一人称視点の3Dゲームなのですが、その一番の特徴は、プレイすることでJavaプログラミングを身につけられるという点です。 Codesp […] カリフォルニア大学サン・ディエゴ校の計算機科学者達が開発した Codespell は、一人称視点の3Dゲームなのですが、その一番の特徴は、プレイすることでJavaプログラミングを身につけられるという点です。 Codespellでは、プレイヤーは小動物ノーム(gnome)たちが住む土地にやってきた魔法使いです。ノーム達は過去に魔法を使って生活していたのですが、今は魔法をうまく使えなくなっています。魔法の呪文はJava言語プログラムで、物体を浮遊させるとか火を起こすといった7つの手持ちの呪文を使って、ノーム達を助け、火を消したり川を渡ったりといったクエストを解き、バッ

    Codespell – Java言語がそのまま呪文となる教育用3Dゲーム
  • グーグル検索で特定の数式”-4^(1/4)”を与えるとアダルトサイトが表示されるバグが発見される

    英語の質問サイトQuoraにて、「グーグルで”-4^(1/4)”で検索するとなぜかポルノサイトが出てくるんだけど?」という質問が話題になっています。実際に手元で検索してみても、アダルトサイトばかり […] 英語の質問サイトQuoraにて、「グーグルで”-4^(1/4)”で検索するとなぜかポルノサイトが出てくるんだけど?」という質問が話題になっています。実際に手元で検索してみても、アダルトサイトばかりが検索結果に表示されます。 「セーフサーチ: 強」の時はさすがに何も出ないようなので、何がなんでもアダルトな結果を見たくない人にまで見せてしまうという事故にはならずに済んだ模様。 この質問を見て試してみた人たちの「俺も俺も」の証言が集まってきた結果、この数式に限らず、桁数の数字が3つ並んでマイナス記号を含む一定のキーワードで、この結果が引き起こされることが絞り込まれてきました。 この質問は先月に

    グーグル検索で特定の数式”-4^(1/4)”を与えるとアダルトサイトが表示されるバグが発見される
  • GitHubで家を管理

    ソースコード管理サービス/コミュニティのGithub上で、プログラムではなく自宅の修繕やリノベーションを管理している人がいました。 Issue tracker for my house 私の家の課題管理 My house […] ソースコード管理サービス/コミュニティのGithub上で、プログラムではなく自宅の修繕やリノベーションを管理している人がいました。 Issue tracker for my house 私の家の課題管理 My house has no source code, so I only use the issue tracker. 私の家にはソースコードはないので、課題管理だけを使うことにします。 README.me 一年ぐらい前から、「ドアにインターフォンをつける」「クリスマスツリーが無い」「玄関のドアがちょっと閉まりにくい」などといったちょっとした家の中の問題を、家

    GitHubで家を管理
  • 1