タグ

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

  • Kazuho@Cybozu Labs: setlock を使って cron をぶんまわす方法

    « データベースをコピーするモジュール DBIx::Replicate | メイン | Tritonn (MySQL+Senna) の join を高速化 » 2008年01月30日 setlock を使って cron をぶんまわす方法 事前計算や DB 再構築を手軽に実行するのに cron は便利ですが、タスクのまわし過ぎによるサービスのパフォーマンス低下や実行順序の制御を別途行う必要があります。自分は、そのためのツールとして、daemontools の setlock コマンドがお気に入りです。setlock は、flock を用いて、タスクの待機や実行中止を制御することのできる、とても小回りのきくプログラムです。 1-59/* * * * * /usr/local/bin/setlock -nx /tmp/precompute.lock /usr/local/bin/setlock

    kazeburo
    kazeburo 2014/07/24
  • 韓国に世界初の「見えないタワー」が建設されることに

    世界初の消えるタワーの建設に許可が出たというニュースが来ています。 こちらが建設後のイメージ。 「見えない」とはどういうことか、いわゆる「光学迷彩」のようです。以下の図のモデルで描かれているように、ビルの片方から見える車 […] 世界初の消えるタワーの建設に許可が出たというニュースが来ています。 こちらが建設後のイメージ。 「見えない」とはどういうことか、いわゆる「光学迷彩」のようです。以下の図のモデルで描かれているように、ビルの片方から見える車などの景色をカメラで撮影し、その映像をビルの反対側の壁で映すことで、ビルの奥にある景色がそのまま見えるということですね。 ビルの奥の空や雲を壁面のLEDで映写することで、ビルが透明で見えなくなるということ。渋谷駅前にあるような巨大ビジョンがビル全体に貼り付いているような感じだとすると、なかなか大掛かりな仕掛けですね。 カメラはビルの異なる6面の3箇

    韓国に世界初の「見えないタワー」が建設されることに
    kazeburo
    kazeburo 2013/09/13
  • [子育てエンジニア advent calendar] 親が決める、子供とネットのプライバシー

    このブログは子育てエンジニア advent calendar 2012に参加しています。が、あんまりエンジニア要素なかったごめん。 「赤ちゃんが産まれました!」と子供のプライバシー ツイッターで「無事生まれました」等で検 […] このブログは子育てエンジニア advent calendar 2012に参加しています。が、あんまりエンジニア要素なかったごめん。 「赤ちゃんが産まれました!」と子供のプライバシー ツイッターで「無事生まれました」等で検索すれば、昨日今日生まれたばかりの赤ちゃんの写真や、その親のアカウントがわかります。もう少し後には、つけられた名前もつぶやかれるでしょう。 自分の子供が産まれる、というのは、それまでの人生でも一、二を争うビッグイベントですね。毎日のようにツイッターなどソーシャルメディアで日常をつぶやいているなら、これこそがつぶやくべき日常の代表格、かもしれません。

    [子育てエンジニア advent calendar] 親が決める、子供とネットのプライバシー
    kazeburo
    kazeburo 2012/12/05
  • Kazuho@Cybozu Labs: SSD (フラッシュメモリ) のベンチマークと選定基準

    ベンチマークに使用したのは、一般的な HDD、高速性で有名な Intel の SSD、ネットブック (DELL Inspiron Mini 9) の内蔵 SSD (STEC 製, 32GB)、および SanDisk の SDHC カード (SanDisk Extreme III) です注。 この表を見て2つの SSD を比較すると、読み込みパフォーマンスの差がそれほど大きくないことに気づきます。また、SD カードの読み込み速度も、HDD を大きく上回っています。つまり、ランダムリードについては、メーカーや SSD 間の差は、あまり大きくない、ということになります。 一方で、書き込みパフォーマンスについては、非常に大きな差があります。X25-M と STEC の SSD の差は、実に 50 倍にのぼります (SSD の書き込みバッファをオフにした場合の値はこちらの表を参照のこと)。また、SD

    kazeburo
    kazeburo 2009/02/06
  • Kazuho@Cybozu Labs: Text::MicroTemplate - テンプレートエンジンのセキュリティと利便性

    « MySQL の order by 〜 limit を高速化する方法 | メイン | MySQL Conference & Expo 2009 で Q4M の話をします » 2008年12月16日 Text::MicroTemplate - テンプレートエンジンのセキュリティと利便性 先月開催された Shibuya.pm #10 でプレゼンテーションがあった MENTA や NanoA では、Mojo 由来のテンプレートエンジンを拡張して使用してきたのですが、Perl モジュールとして独立させるべきだよね、ということになり、このたび Text::MicroTemplate として CPAN にアップロードしました。 そのことを告知するとともに、作業の過程で興味深く感じた、テンプレートエンジンのセキュリティと利便性に関する話題をブログに書いておこうと思います。 テンプレートエンジンのエスケ

  • Kazuho@Cybozu Labs: なぜサイボウズ・ラボで働くのか

    « ウェブサービスの SSD 化について話してきました | メイン | MySQL の order by 〜 limit を高速化する方法 » 2008年12月08日 なぜサイボウズ・ラボで働くのか 12月6日に大阪で開催されたサイボウズの採用説明会で、話をさせていただきました。大学生の方々向けということで、あまり技術面に振ったプレゼンをするのもどうかと悩んだ末、自分が、なぜサイボウズ・ラボで働いているのか、ということを、大学生の頃から振り返ってみることにしました。 ふだん、しなれていない類いの話なので、うまく伝わったか、正直不安です。ただ、自分自身にとっては、何が好きなのか、何がやりたいのか、ということを改めて見つめ直すいい機会になりました。また、来場者の方々といろいろ話をできたことも、自分にとっていい刺激になったと感じています。 ですので、ご来場いただいた方々には、サイボウズに興味をも

    kazeburo
    kazeburo 2008/12/09
  • Kazuho at Work: Benchmarking SSD for MySQL

    Today I bought Intel X25-M, to test its performance and consider if we could replace a HDD used in our slave database of Pathtraq with a solid state disk. Connecting the drive to a test server, I have just run a synthetic benchmark to check its performance for 16KB random access with O_DIRECT flag set, which is pretty similar to the access pattern we see in our daily InnoDB use.

  • Kazuho at Work: Q4M prebuilt binaries for MySQL 5.1.28-rc

    kazeburo
    kazeburo 2008/10/23
  • Kazuho at Work: Q4M adoption by Mixi, and the release of version 0.8

    Q4M adoption by Mixi, and the release of version 0.8 Last week, Mixi - Japan's largest social network service provider, launched an experimental microblogging service called Echo, and according to their delevopers' blog entry, they are using Q4M to level their write loads. Thank you to the developers of Mixi Echo for using Q4M, I hope Echo will go well and soon become a first-class service. Meanwh

  • Kazuho at Work: Swifty Archives

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

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

    kazeburo
    kazeburo 2008/06/09
    わっふるわっふる
  • Kazuho@Cybozu Labs: メッセージキュー事始め with Q4M

    « YAPC::Asia 2008 で Pathtraq について話してきました | メイン | MySQL のクエリ最適化における、もうひとつの検証方法 » 2008年05月27日 メッセージキュー事始め with Q4M 今日、奥が開発し Pathtraq でも使っているメッセージキュー Q4M について説明する機会があったので、自分の頭を整理しながらスライドに起こしてみました。メッセージキューとはそもそも何か、という所から始まって、Q4M の内部構造と使用方法、さらには、ウェブサービス等でキューを使うべきいくつかのシナリオについても書いてありますので、よろしければご覧ください。

    kazeburo
    kazeburo 2008/05/27
  • Google App Engineを使ってみた

    Google App Engine(書きにくい。GAEとか略すのかなと予想)のページで、使える状態になっていたのでボタンを押して利用開始。 アプリは3つまで作らせてくれるということなので、まず Application名 […] Google App Engine(書きにくい。GAEとか略すのかなと予想)のページで、使える状態になっていたのでボタンを押して利用開始。 アプリは3つまで作らせてくれるということなので、まず Application名 “akky” を確保。 これで、http://akky.appspot.com/ が使えるようになる。(Google Appsのように、独自ドメインへのマップもできる予定) まずはローカルでちゃんと動くPythonアプリを作る、ということで、さきほどインストールしたSDK上で作業。 C:> cd “Program FilesGooglegoogle_

    Google App Engineを使ってみた
  • Kazuho@Cybozu Labs: Q4M Version 0.4 で高速なクローラを書いてみた

    « Parallel::Prefork - Perl でマルチプロセスなサーバを書く方法 | メイン | Japanize for IE バージョンアップのおしらせ » 2008年04月07日 Q4M Version 0.4 で高速なクローラを書いてみた 日、MySQL 5.1 のプラガブルストレージエンジンとして動作するメッセージキューQ4M のバージョン 0.4 をリリースしました。バージョンでは、条件付購読 (conditional subscription) という、特定の条件を満たす行だけをメッセージキューから読み込む機能に対応したのですが、これを使って、クローラを書いてみました。 使い方は以下のとおりです。 # url テーブルを作成 % mysql -p test mysql> CREATE TABLE url ( id int(10) unsigned NOT NULL

  • Kazuho@Cybozu Labs: Parallel::Prefork - Perl でマルチプロセスなサーバを書く方法

    « Q4M (Queue for MySQL) 0.3 リリース | メイン | Q4M Version 0.4 で高速なクローラを書いてみた » 2008年04月04日 Parallel::Prefork - Perl でマルチプロセスなサーバを書く方法 Perl でマルチプロセス処理を行う場合は Parallel::ForkManager を使うというのが定番かと思います。しかし、このモジュールはシグナル処理を前提とした作りになっていない注1ため、シグナルを受信するまで動き続けるようなサーバを書きづらい、という問題がありました。 そこで、Parallel::ForkManager の API は、ほぼそのままに、シグナル処理が可能なプロセス管理モジュールを作ることにしました。それが Parallel::Prefork です。Parallel::Prefork を使うことで、Gracef

  • Kazuho@Cybozu Labs: 高速なCometサーバを書いてみた件

    « Pathtraq 最新ランキング ガジェットを公開しました | メイン | Q4M (Queue for MySQL) 0.3 リリース » 2008年03月10日 高速なCometサーバを書いてみた件 もう昨年の2月になりますが、Comet について調査を行いました。その際の成果をまとめたスライドは既に公開していた (Comet の正しい使い方) のですが、同時に実際に作ってみた実装についても、オープンソース化することとなりました。コードは CodeRepos に置いておきますので、どうぞご覧ください。 (Revision 7754: /lang/perl/fastr) 使い方は example ディレクトリ以下を見ていただくとして、ベンチマークの結果とチューニング手法について、記録と記憶に残っている範囲からまとめておきたいと思います。 パフォーマンスについて まず、パフォーマンスに

  • Internet Explorer7がWindows Updateで提供開始/日本版については誤配信だった | 秋元@サイボウズラボ・プログラマー・ブログ

    [追記 16:37] Internet Watchの記事で、日語版についてはマイクロソフトの配布ミスだということが確認されたということだ。 日語版のWindowsではInternet Explorer7の配布と自動更新を行う予定はなかったのが、何らかの間違いで出てしまっていたと。もう撤回されているのだが、すでにまたは自動でインストールしてしまった人に対するフォローは今日中にマイクロソフトのトップページで案内されるということ。 ということで、日語版Windowsを使っている人で、この誤配信の期間に自動または手動の更新をしていない人は、当面(元の予定だと2008年以降)は変化はないことになる。以下の文は、英語版他の利用者にのみ影響する話となった。 マイクロソフトのIEBlogで発表されたが、ちょっと改良されたInternet Explorer7の新バージョンが出て、それにあわせて今回つ

    Internet Explorer7がWindows Updateで提供開始/日本版については誤配信だった | 秋元@サイボウズラボ・プログラマー・ブログ
    kazeburo
    kazeburo 2007/10/05
  • Amazon Dynamo – スケーラブルなハッシュテーブルWebサービス | 秋元@サイボウズラボ・プログラマー・ブログ

    via O’Reilly Radar Amazonが来週ACMで話すというDynamoというサービスが面白そうだ。 Amazonのウェブサービスは、たとえばS3は「ファイルを置いて、取り出せる」だけだし、EC2はサーバ一台分だけ見ればただのVPSホスティングサービスだ。だけど、必要に応じて支払いを増やすと、好きなだけスケールさせられるし、不要になれば減らすのも簡単なことから、ネットサービスの運営者が固定費について悩まなくて済むようになるという点で便利だし、そんなサービスを提供するにはたいへんな技術力が必要だということはわかる。 Dynamoも同じで、「キーと値のセットを保存して、取り出せる」、とこれだけ。数が少なければスクリプト内の連想配列とシリアライズでも済みそうな機能だけれど、これを複数サーバに分散させて、たいへんな数のキーを突っ込んでも問題なく動作することを保証したサービス、となるら

  • Kazuho@Cybozu Labs: DBI::Printf - A Yet Another Prepared Statement

    « ウェブサービスのためのMutex - KeyedMutex | メイン | Perl で並列処理 (using マルチプロセス) » 2007年09月28日 DBI::Printf - A Yet Another Prepared Statement JavaC++ のような関数のオーバーロードができる言語では、プリペアードステートメントのプレースホルダが型をもつ必要はありません。しかし、Perl のように数値型と文字列型の区別がない言語で最善を期そうとすると、変数をバインドするタイミングで型を意識してコードを書かなければならず面倒です。 (参考: MySQL の高速化プチBK) だったら、printf のように、プリペアードステートメントのプレースホルダで型を指定できればいいのに、と、もともとは Twitter でつぶやいたネタなのですが、SQLステートメントをキーとしてキャッ

  • 秋元@サイボウズラボ・プログラマー・ブログ: Seam Carving - 自然な画像リサイズを動的に行なうソフトウェア

    via Digg Siggraph2007で発表されたというSeam Carving技術。そのSeam Carving for content-aware image resizingという動画で解説されているのは、画像 […] via Digg Siggraph2007で発表されたというSeam Carving技術。そのSeam Carving for content-aware image resizingという動画で解説されているのは、画像内のひとまとまりの図形・物などの形を維持したままで、不要な部分を削って縮めることができるという技術。(論文 pdf) 説明がわかりにくくて申し訳ない。見てもらったほうがぜったい早い。 オリジナルのQuickTime動画はこちら これを使うと、写真の中の鍵となる写真や人物を常に保存しつつも、見ているPCや携帯端末の画面サイズに合わせてイメージを縮める

    秋元@サイボウズラボ・プログラマー・ブログ: Seam Carving - 自然な画像リサイズを動的に行なうソフトウェア