タグ

ブックマーク / labs.unoh.net (14)

  • ウノウラボ Unoh Labs: 国産MySQLストレージエンジン「Spider」の作者、斯波健徳氏に聞く

    こんにちは。中村です。 MySQLにはMyISAM、InnoDBCSVなどのいくつかストレージエンジンがありますが、皆さんはSpiderというストレージエンジンを聞いたことはありますでしょうか。Spider Storage Engineは斯波健徳さんにより作成されたDatabase Shardingを可能にするストレージエンジンでMySQL 5.1で利用可能です。 先日、某集まりで斯波さんとお会いしたときにSpiderを作っているということを教えてもらったので、早速詳しい内容を教えてもらうことにしました。 ※Spiderについての説明資料はMySQLカンファレンス 2009にて斯波さんが発表されたときのスライドがあります。スライドの直リンク(zip) Spider Storage Engine について posted by (C)フォト蔵 Spider Storage Engineとは?

  • ウノウラボ Unoh Labs: Flash Lite初学者の為のまとめ

    おはようございます。内田です。 最近はmixiアプリモバイルやモバゲー上のゲームのようなソーシャルゲームが流行ってるようですね。 私もソーシャルゲーム&Flash Lite案件を手がけることになったので、その時に参考にしたサイトを紹介します。 開発の前に覚えること 最初にFlash Liteの仕様とケータイ開発の障壁ともいえるキャリア間の差異を知る必要があります。 Flash Lite ことはじめ。 我らがryosuke氏のエントリー 仕様とキャリア毎の情報が分かりやすくまとまってます。 [Flash Lite 1.1]制作前に知っておきたいことをQ&A形式でまとめてみた 上記エントリーと重複する部分も多いですが、Q&Aの形で調べやすい。 「一般的なガイドラインが知りたい!」を厳守すれば3キャリアで動作するswfがつくれそうです。 コンテンツの作成 Flash Liteコンテンツのつく

  • ウノウラボ Unoh Labs: Q4Mを触ってみる

    yukiです。そろそろクリスマスですね。みんな浮かれていればいいと思います!最近急に目が悪くなって、ツリーの赤色電球と居酒屋の赤提灯の色が判別出来なくなってきました。嘘です。 今回は、みんな大好きメッセージキュー、Q4Mを触ってみた感想を今更ながらレポートします。 公式ページはこちらhttp://q4m.31tools.com/ Q4Mはサイボウズラボの奥 一穂氏が開発されており、MySQLの5.1以上でストレージエンジンとして利用できるメッセージキューで、MySQLプラグインとしてGPLライセンスで配布されております。 特長 MySQLのストレージエンジンとして利用できるので、テーブル作成時にストレージエンジンを指定するだけで利用できます。 CREATE TABLE hoge ( ... ) ENGINE = QUEUE キューの作成(enqueue)は通常のレコード操作と同様にINSE

  • ウノウラボ Unoh Labs: Apache で特定のコンテンツへのアクセスに対して帯域制限しよう

    こんばんは、最近自転車のライトを交換した naoya です。 今日は、Apache で特定のコンテンツへのアクセスに対して帯域制限する方法を紹介したいと思います。まず、特定のコンテンツの帯域を制限しようと思った背景から説明したいと思います。フォト蔵では、写真と動画をサポートしています。そのため、動画へのアクセスが増えると他の写真などへのコンテンツに対するレスポンスが悪くなってしまうことがあります。動画は、FLV 形式ですが比較的ファイルサイズが大きいものが多いため、FLV のみ帯域制限を行ってみることにしました。 まず、Apache で帯域制限できるモジュールについて調査しました。調査には、Software Design 2007年9月号をおもに参考にさせていただきました。 Software Design (ソフトウエア デザイン) 2007年 09月号 [雑誌] posted with

  • ウノウラボ Unoh Labs: symfonyでモバイルサイトを作るときにやったこと

    こんにちは。中村です。 symfonyを使ってモバイルサイトを作るときにやったことを思い出しながら少し紹介しようと思います。symfonyといってもバージョンは1.0系です。最新のsymfonyでは勝手が違うかもしれませんのでご了承ください。 docomoの場合はURLにセッションIDを埋め込む iモードブラウザ2.0ではないdocomo端末はCookieに対応していないため、セッションを利用する場合にはセッションIDをURLに埋め込む必要があります。これについては解決方法がいろいろありそうですが、私の場合、sfMySQLSessionStorageを利用しようとしたところ親クラスのsfSessionStorageがsession.use_cookiesの値でCookieを使うかどうかを決定していたため、initializeメソッドを継承して分岐を入れることにしました。iniの設定をUse

  • ウノウラボ Unoh Labs: MySQL最適化のミニtips

    yukiです。 今回はWebサイトを製作する上で欠かせないデータベース(DB)のお話です。Linux、Apache,MySQL,PHPを組み合わせたLAMPという言葉が登場して久しいですが、Webサービスを構築する上で欠かせないのがDBの存在ですね。 運用後Webサイトが順調に拡大し規模も大きくなってきた頃、パフォーマンスに悩むことも出てくるものです。 ハードウェアや構成に問題がある場合、ロジックに問題がある場合など様々ですが、DBを見直してみるのも手かもしれません。 銀行の預金残高などのようにミッションクリティカルである場合や、ともかくパフォーマンス性を求められるなど様々あり、一概に言えるものでもありませんが、 Webサービスにおいては有名な8秒ルールも、最近では6秒、3秒、1秒と求められるパフォーマンスはどんどん短くなって来ています。 パフォーマンスだけでなく、メンテナンスコ

  • ウノウラボ Unoh Labs: やってみようBDD on Sinatra

    おはようございます。 うちだです。 みなさんテストコード書いてますか? 私はテストと言われると、どうもやる気がおこりません。 そこでBDD! 今回はBDD初心者の私が、やってみた過程を綴ります。ツッコミ大歓迎 BDDとは? Behavior Driven Development 振舞駆動開発 テスト駆動開発ではテストのためにコードを書く 振舞駆動開発では振舞(仕様)のためにコードを書く 結果的にやる事はほぼ一緒 言い方でモチベーションがかなり変わる スペック!スペック! 各言語のBDDフレームワーク Ruby RSpec .NET NSpec Java JBehave PHP PHPSpec 10ステップでやってみるBDD 1. インストール $ sudo gem install rspec 2. スペックを書く # spec/hello_spec.rb require 'hell

  • ウノウラボ Unoh Labs: PubSubHubbubとは

    yamaokaです。 Twitterのみならず、FriendFeedやFacebookなど よりリアルタイムに近い更新がwebで求められるようになってきています。 従来、更新情報の配信はRSSなどのフィードやAPIを通して行われてきました。 しかしその場合、配信している側のサーバーに 定期的にリクエストを投げないと更新があったかどうかわかりません。 サーバーへのアクセスが多くなった場合、結構な負荷になります。 さらにお行儀の悪いクライアントが存在すると、頻繁なアクセスを繰り返し、 あたかもDoS攻撃のような状況が起こることもありえます。 そこで考えられたオープンなHTTPベースのプロトコルがPubSubHubbubです。 Google ReaderとFriendFeedが対応している他、 日国内ではlivedoor Blogとliverdoor Readerがそれぞれ対応しています。 で

  • ウノウラボ Unoh Labs: Sinatra気に入った

    先日、まちつく!が正式リリースになりました。よろしければ是非携帯でアクセスして遊んでみてください。 おはようございます。内田です。 今までRailsを使うほどでも無いアプリはオレオレフレームワークで作ってたのですが、最近巷で流行ってるsinatraのコードを読んでみたら必要十分な機能があり、センスも良く、とても気にいった。 今回は公式ドキュメントの流れで、使いそうな機能をまとめてみました 一番簡単な例 sudo gem install sinatra # app.rb require 'rubygems' require 'sinatra' get '/' do 'Hello, world' end ruby app.rb curl http://localhost:4567/ Routes HTTPメソッドにURLとブロックを渡します get '/' do end post '/'

  • ウノウラボ Unoh Labs: ゼロからはじめる携帯サイト構築。

    こんにちは、日を妙に楽しみにしていたわりには見ようともしなかった ryosuke です。曇りで残念でした。曇りでも日と分かるぐらい暗くなったら嬉しかったのですが、東京ではそんな事は全然ありませんでしたね。 さてさて、そんな私ですが入社後半年が経過したところで、入社当初より携わって来た携帯サイト構築に関して得た知識(失敗談)をまとめてみようと思います。 初ラボブログ記事でも触れた様にそもそも格的な携帯サイト構築は経験に乏しく、バッドノウハウの塊の様な面倒な思いこみが先行しがちだったわけですが(実際バッドノウハウの塊ですが)、端末の機能や表現力が豊かになるのと同時に開発環境的なツールやライブラリの充実、ノウハウの蓄積と情報公開により随分すんなり入って行けた様に思います。 結局はキャリア感の差異を知り吸収する事がすべて いきなりですが、PCサイトと携帯サイトの違いで最も厄介な所はこれにつき

  • ウノウラボ Unoh Labs: iモードブラウザ 2.0まとめ

    こんばんは、五十川です。 ご存知の通り、5月以降に発売開始されたNTTドコモの携帯電話の殆どには、新しいiモードブラウザ 2.0が搭載されています。iモードブラウザの大幅な仕様の拡張はi-XHTMLの登場以来ということになりますが、iモードの登場から10年経って登場した新しいブラウザは、i-XHTMLのときよりも遥かに大きな、過去最大の変化を遂げています。 iモードブラウザ 2.0の詳細は、ドコモ公式のiモードブラウザ 2.0にまとめられています。以下では主要な変更点を確認していこうと思います。 キャッシュ容量拡大 1画面あたり読み込めるデータの最大量が、従来の100Kバイトから500Kバイトに、大幅に拡大されました。ご存知の通りiモードの場合この値は、画像などの外部リソースもすべてひっくるめた値ですが、iモードブラウザ 2.0では、新たにCSSファイルやJavaScriptファイルも外部

  • ウノウラボ Unoh Labs: MySQL5からのインデックス結合で1テーブル複数インデックスを使う

    komagataです。 Webアプリケーションのパフォーマンスの大半はデータベース、特にインデックスの使われ方にかかっている気がします。 仕事でもMySQLをよく使いますが、MySQLでは1テーブルに付き1インデックスしか使われません。PostgreSQLなどと比べてそのことが気になってMySQLでのパフォーマンスチューニングに全く自信が持てませんでした。 オライリーの実践ハイパフォーマンスMySQLには下記のように書かれています。 実際、UNIONを除き、MySQLでは、1つのクエリを実行するとき、1つのテーブルに付き1つのインデックスしか使用できない。この事実は、繰り返し述べるに値するほど重要である。「MySQLでは、1つのクエリを実行するとき、1つのテーブルにつき1つのインデックスしか使用できないのである。」 また、その制約を考えたクエリの書き方として下記の様に書いてあります。 my

  • ウノウラボ Unoh Labs: Tips for HyperEstraier

    先月、VX Revolution VX-Rを購入して、その使い心地の良さに素直に感動しているbokkoです。 HyperEstraier HyperEstraierは平林幹雄さんが開発されている全文検索エンジンです。全文検索エンジンとして使えるのはもちろん、全文検索のためのライブラリとして使うこともできます。ウノウではHyperEstraier(以下HE)をフォト蔵の写真検索に利用しています。 今回はHEの活用や運用に関するTipsについて紹介します。 インデックスの作成 HEのインデックスを作成する方法はいくつかありますが、単にデータが空のインデックスを作るのであれば以下で十分です。 $ estcmd create idx 実際には想定されるインデックスのサイズなどに応じてオプションを追加するといったことが必要になるでしょう。ファイルやディレクトリ(内のファイル)をインデックスに追加する

  • ウノウラボ Unoh Labs: PHPで書かれたwebサービスを高速化する

    尾藤正人です。 アクセス数の多いコンシューマ向けの web サービスは、処理速度がかなり重要になってきます。 応答速度が遅いと使用しているユーザにとってストレスになりますし、 処理に時間がかかればサーバに対する負荷も高くなります(厳密に言うと違う)。 そこでウノウではいろいろな工夫をして処理速度の高速化を行っています。 一口に高速化といってもいろいろな要素がありますが、大きく分けて3つの段階があります。 ・ハードウェアによる高速化 ・ソフトウェアによる高速化 ・プログラムの工夫による高速化 しかし、これら3つは独立ではなく、互いに影響しあっているので完全に分けて考えることはできません。 それぞれがどのような部分に影響を与えているのか、ちゃんと理解してチューニングすることが大事です。 ただし、高速化するときに忘れていけないのが、高可用性です。 いくら高速に動作しても安定して動作し

    rin1024
    rin1024 2009/01/16
    PHPだけでなくmod_deflate使ったほうがいいよ!とか細かい事もかいてる。
  • 1