タグ

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

  • ウノウラボ Unoh Labs: 2009年版Python開発環境を整えよう

    なでしこの作者じゃない方のsakatokuです。 以前書いた「Python開発環境を整えよう」という記事からだいぶ時間が経ってしまったので、内容を更新したいなぁと思っていたのですが、ようやくその機会が来ました。 virtualenvで開発環境をつくる 開発環境をつくるにあたって次のような問題が生じると思います。 root権限がないためにインストールしたいライブラリが使えない 新しいライブラリをインストールしたり、既存のライブラリをアップグレードすることで、既に動いているアプリケーションを壊したくない 複数のバージョンのPythonを使って開発、テストを行いたい 自作したPythonパッケージのインストールのテストを行いたい 以前の記事ではvirtual-pythonという解決策を紹介しましたが、現在ではvirtualenvというツールが広く使われるようになってきています。 virtuale

  • ウノウラボ by Zynga Japan: PHPで利用出来るテストと開発に便利なツール

    こんにちは。yukiです。 今日はテストや普段の開発に便利なツールのご紹介をしたいと思います。PHP限定のツールですので、ご了承下さい。 ZyngaJapanでは、昨日リニューアルオープンした「ファームビレッジ」でも、Jenkins(旧Hudson)によるCIを行って開発しており、TDDやJenkinsでのCIを利用する文化がだんだんと浸透してきています。Jenkinsのプラグインとして利用できるものも多くありますが、当然ながらコマンドラインからも利用出来ますので、コミット前に自分のコードをチェックすることもできます。 phpcpd コードの中でコピー&ペーストで記述されている部分を検出してくれます。 どの程度の重複から検出するかを柔軟に設定できるので、まず大きな部分から修正するなど判断ができ便利です。 $ phpcpd /path/to/project phpcpd @package_v

  • ウノウラボ by Zynga Japan: Varnish上でESIの機能を利用する

    Keita です。 サンフランシスコで開かれたSymfony Liveで、Fabien Potencier氏によるHTTP Cacheという発表がありその中でESI(Edge Side Includes)の紹介がありました。 下の画像はちょっとみずらいですが、たとえばこのラボブログのレイアウトだと大枠の部分は常によりユーザに使いフロントの所(つまりCDNやキャッシュサーバ)側でキャッシュされていてAの部分とBの部分それぞれのコンテンツを別々にインクルードする形でキャッシュ制御することができます。 Symfony2のサイトsymfony-reloaded.orgでも、マニュアルがありますので、詳細はそちらを参考にしていただくとして、その中に、Varnishでもその機能が利用できることが紹介されていますので試してみたいと思います。 Varnishのインストールについては省略してとりあえず設定部

  • ウノウラボ by Zynga Japan: サーバ情報を収集する Ruby スクリプトを書くには

    こんにちは。kyagi です。今回はサーバ情報を収集する Ruby スクリプトを書く方法をお知らせいたします。具体的には Facter モジュール(※1)の紹介と使い方になります。 Ruby にはサーバのホスト名、IP アドレス、OS、ハードウェアなど様々な情報を収集するために Facter というモジュールが提供されています。RPM では「facter」というパッケージ名で提供されています。ターミナルから実施できるインターフェイスとして同名の「facter」というコマンド(※2) が用意されており、以下のように実施するだけでそのサーバの色々な情報を一度に取得することができます。 $ facter (... snip ...) architecture => x86_64 domain => local.hoge.bar.net (... snip ...) ipaddress_eth0

  • ウノウラボ Unoh Labs: cacti の設定をコマンドラインから行う方法

    こんにちは。kyagi です。今回はサーバの監視/グラフ化ツール「cacti」の設定をコマンドラインから行う方法をお知らせいたします。 cacti とはサーバの監視/グラフ化ツールです。CPU使用率やロードアベレージ、その他様々な情報をカラフルなグラフで見ることができます。 設定は主にブラウザ上から行うのですが1台のサーバの設定でもSNMPの各項目を選択したり、グラフのデータ元であるデータクエリを設定したりなかなかの作業量になります。設定内容は全て把握していても 1 台につき、マウスでクリックする回数が多いので数十台の追加となると時間もかかりますし、指もかなり疲れます(また、ヒューマンエラーも入り込む余地が生まれます)。 実は cacti にもこういった設定をコマンドラインから行える php スクリプトが用意されています。標準ではこれらのスクリプトは /var/lib/cacti/cli/

  • ウノウラボ Unoh Labs: TextMateの設定メモ

    はじめまして、 1月から入社した市丸です。 入退社にあたり開発環境を1から作り直すこととなり、久しぶりにTextMateの設定をやり直しました。 その際、役立ったリンクとPHP開発で使う際のオススメ設定など、私的なメモかもしれませんが、ご紹介いたします。 マルチバイト対応のVer.2が出るといってはや2〜3年。このまま消えてしまうのか... もう一度TextMateの特徴をまとめたいと思います。 TextMateの特徴(2010/03現在) 日語はUTF-8のみ 半角カナが判別しにくい NFS経由でプロジェクトを作ると重い。(50個ぐらいなら快適) 次期バージョンアップがこない $55 基的にマルチバイト関係があやしいです。 以下にオススメの設定方法を記載します。 1. 日フォント入れる。 http://d.hatena.ne.jp/hetima/20061102/11624

  • ウノウラボ Unoh Labs: Varnishの使用例とか

    一部の人に鳥の人として認識されているyamaokaです。 フォト蔵では最近Varnishをコンテンツキャッシュに利用しています。 具体的には、写真のサムネイルなどの静的なコンテンツをキャッシュするために使っていたりします。 Varnishはコンテンツキャッシュ機能を備えたHTTPアクセラレータです。 同じような目的に使われるプロダクトとしてSquidがありますが、 それよりも高速に効率よく動作することを売りにしています。 サーバーへのインストールについてはCentOSなどRed Hat系のLinuxであれば EPELからrpmを入手するか、 ソースを展開するとredhatディレクトリにspecファイルが用意されているので そちらを利用すれば最新版のrpmが作成可能です。 以下、rpmを使ってインストールしたものとして話を進めます。 起動設定は/etc/sysconfig/varnishです

    uechoco
    uechoco 2011/02/21
    HTTPアクセラレータ、コンテンツキャッシュ
  • ウノウラボ Unoh Labs: オープンソーシャルモバイルのAPIアクセスで注意しているポイント

    こんにちは。中村です。 ウノウで運用しているまちつく!はモバイル向けソーシャルアプリとしてmixi版、モバゲー版をそれぞれ展開しています。 開発するにあたって通常のウェブサイトとはいくつか違うポイントに注意しています。プロフィールや友達などの情報を取得するためにプロバイダが提供するAPIを利用することになりますし、通信も「携帯電話 <= プロバイダサーバ => SAPサーバ」という経路になるため、様々な箇所でプロバイダを意識した開発を行う必要があります。 今回は特にAPIを利用する際に注意しているポイントをいくつかピックアップしたいと思います。 APIアクセスをできるだけ減らす オープンソーシャルモバイルに限らず基的なことですが、APIへのアクセスを可能な限り減らすことでSAP・プロバイダ双方の負荷軽減になり、かつリクエスト毎のレスポンス向上に繋がります。まちつく!ではプロバイダからキャ

  • ウノウラボ Unoh Labs: Flash Liteコンテンツを動的に合成してみる

    おはようございます。うちだです。 日、mixiアプリモバイルにて「バンドやろうよ!」をリリース致しました。是非遊んでみてください。 今回は「バンドやろうよ!」でも使った、Flash Liteコンテンツの合成を軽めに紹介します。 Ming Flash Liteの合成にはMingを使います。 Mingを用いるとswfの合成や変数書き換えが非常に簡単にできます。 但し、一部機能にバグがあるので要注意ですが、合成や変数書き換えだけに利用するのであれば今のところ問題は見つかっていません。 さっそく合成 「バンドやろうよ!」では自キャラクターのギターを持ち替えすることでき、その部分に利用しています。 合成するパーツ毎にswfを用意します 1.swf 2.swf 3.swf guitar.swf ming_useswfversion(4); $swf = new SWFMovie(); $swf-

  • ウノウラボ Unoh Labs: iPhone SDKでウェブAPIコール

    今さらですが最近iPhone SDKプログラミングを始めたBrandonです。 勉強目的に簡単なアプリ作ろうと思って、今個人的にとても気に入っているウェブサービス(Posterous)のiPhoneアプリを作っています。 アプリでWeb APIリクエスト・レスポンスの処理をする必要があったので、 ド素人ですが下記のような感じで初期実装してみました。 暇がある時に遊び心で触っている程度だけなので、やり方が間違っているところもたくさんあるかも知れないが、何かご指摘があれば遠慮なく突っ込んで頂けるとありがたいです。 導入したライブラリ 最初に問題になったのは、Posterous APIはBasic Authentication使っていますが、調べてみたところObjective Cにはbase64エンコードのライブラリがないことが判明しました。 そこで、Objective Resourceという良

  • ウノウラボ Unoh Labs: Hello,Lithium!

    こんにちは。4月に入社したyuzoです。 今回は元CakePHPのDevelopperが新たに立ち上げた新しいフレームワーク「Lithium」を試してみました。 準備する この記事を書いている現在のバージョンは0.9.5です。以下からダウンロードできます。 http://rad-dev.org/lithium/versions ひとまず、draftsのブログチュートリアルを動かすまで、を目標とします。 http://rad-dev.org/lithium/wiki/drafts/blog-tutorial Lithiumの動作環境は ・HTTP Server (Apache + mod_rewrite recommended) ・PHP 5.3.0 or higher ・CouchDb, MongoDb, MySQL 5 or SQLite 3 for applicatio

  • ウノウラボ Unoh Labs: DBの選択について

    皆様、はじめまして。 7月入社のトクヤマと申します。 以後、お見知りおき頂ければ幸いです。 私は以前、別の会社の仕事でPostgreSQL,MySQL,Oracle,SQLSeverを同時に運用していたことがありました。 また現在はMySQLとPostgreSQLを運用しています。 今回はそれぞれのDBを、どのようなWEBサイトやオープン系の開発を行う時に選ぶべきなのかという事をお話したいと思います。 なおOracleSQLServerは現在はWEBサイトやオープン系の開発では使われなくなっていますのでPostgreSQLMySQLに絞りたいと思います。 「定説」として以前はPostreSQLは多機能で遅い、MySQLは機能は少ないが検索が速いと言われていました。 しかし、それぞれバージョンアップを繰り返すうちに現在は、どちらもお互いの特徴をカバーしてきています。 それではどの

  • ウノウラボ Unoh Labs: 今からはじめるCassandra入門

    こんにちわ、7月に入社したばかりの@emorinsです。 題名の通りですが分散データベース『Apache Cassandra』を紹介したいと思います。 少し前はHadoop(とHBase)と比較されることの多かったCassandraですが、最近はHadoopの人気に押されつつあるようにも感じます。 しかし、CassandraとHadoopは特徴が異なり、よく言われるのがCassandraはリアルタイム処理に向き、一貫性のかわりに可用性を重視し、またHadoopとは違って単一障害点もありません。 今日はそんなHadoopとは違った魅力のある分散データベース『Apache Cassandra』をはじめてみましょう。 目次 Cassandraとは アーキテクチャ Cassandraの特徴 コンシステンシレベル データモデル MemtableとSSTable セットアップ storage-conf

  • ウノウラボ Unoh Labs: MySQLのチューニングのためのデータの集め方

    いつの間にか会社で古株になったyamaokaです。 webアプリケーションのバックエンドにMySQLを使っている場合、 クエリ(SQL)のチューニングをする必要がありますよね。 皆さんはチューニングの計画をどのように立てていますか。 もちろん、既に明らかに重いことが想定されているページがあれば、 その処理で使われているクエリを中心にEXPLAINなどを使って解析していけばいいと思います。 でもそうではなく、全体的にクエリの見直しやチューニングを行いたい場合は 実際に実行されているクエリを確認していくという作業が必要です。 そこで使うことができる3つの方法について書きたいと思います。 遅いクエリを記録する MySQLにはスロークエリログといって、 実行に時間がかかったクエリを記録する機能が最初から付いています。 /etc/my.cnfに次のように設定を書けば実行時間が1秒を超えたクエリが出力

  • ウノウラボ Unoh Labs: Nagios のログの日付を変換しながら読むには

    こんにちは。kyagi です。 ウノウではサービスの稼働状況を監視するために Nagios を使用しています。ログファイル「/var/log/nagios/nagios.log」には監視活動の履歴が出力されるのですが、最初のカラムの日付フォーマットがエポック秒になっているため、障害発生時の時間を知るためには変換処理を行わなければなりません。この目的を達成する簡単なスクリプト nagioslogview.rb を書いたので、以下に公開しておきます。同様に小さなストレスを抱えている方の解決策になれば幸いです。 http://github.com/kyagi/nagioslogview/blob/master/nagioslogview.rb 使い方は以下になります。-f オプションで tail -f と同じように成長するファイルを追いかけて読むことができます。テスト時などにご活用いただければと

  • ウノウラボ Unoh Labs: MemcacheとMySQLのデータ不整合をPropelPDOで解決してみる

    こんにちは市丸です。 Zynga Japanでは単純なPrimaryKeyをキャッシュする際、symfonyのPeerをオーバーライドし自動的にキャッシュ&クリアしています。 UserPeer.php class UserPeer extends BaseUserPeer { public static function retrieveByPK($pk, PropelPDO $con = null) { if (!$data = /* Cacheからとるよ */) { $data = parent::retrieveByPK($pk, $con); /* "User_$pk"みたいなキーでCacheするよ */ } return $data; } public static function doInsert($values, PropelPDO $con = null) { /* Ca

  • ウノウラボ Unoh Labs: 位置情報を取得してみる

    こんにちは。ryosuke です。 先週からモバゲータウン内において、弊社の携帯まち育成ブラウザゲーム「まちつく!モバゲー版」の提供を開始しています。よろしければ遊んでみてください。 まちつく!は、まち育成シミュレーションゲームですが、育成だけではなく携帯電話の位置情報を利用したおみやげやスタンプといった機能があります。最近は海外でもGPS機能を搭載したスマートフォンが普及してきたためか、世界的に位置情報を利用したサービスが活発化し始めているようです。 NHKのTV番組ブラタモリと連携しているiPhoneアプリの「ブラアプリ」や、位置情報でつながる街情報SNS「foursquare」 が話題になったりしていていますね。位置情報自体は今更感があるのですが、個人的興味でにわかに位置情報がホットです。 携帯電話 位置情報の活用と言えば一番に思い浮かぶのが携帯電話ですね。基地局を利用した位置情報と

  • ウノウラボ Unoh Labs: ベンチャー流サーバ構築のススメ(ソフトウェア編)

    尾藤正人です ラボブログではウノウのエンジニアで1日1人1エントリ(早く書くのはあり)で書いてます。おかげさまでウノウも順調にエンジニアの数が増えて、僕の順番に回ってくるのが少しずつ遅くなってきました。でもまだまだウノウではエンジニアを大募集中です!!我こそはと思う方はぜひご連絡ください。 前回のベンチャー流サーバ構築のススメ(ネットワーク編)ではネットワーク周りについて書きました。前回のエントリで言ったように、今回はソフトウェア周りのことについて書きたいと思います。 ソフトウェア周りで重要なのは、同じ構成にする、これにつきます。web サーバにだけ apache をインストールしたりとか、DB サーバにだけ MySQL をインストールしたりだとかいうことはしません。全てのサーバに同じパッケージ、同じプログラムをインストールします。それによる管理コストの軽減ははかりしれないものがあります。

  • ウノウラボ Unoh Labs: ベンチャー流サーバ構築のススメ(ネットワーク編)

    尾藤正人です。 前回のエントリ ベンチャー流サーバ構築のススメ(ハードウェア編) では多くのコメント、トラックバック、ブックマークをしていただきました。ありがとうございます。僕自身多くのことで勉強になりましたし、新たな発見もありました。 技術は公開、共有して発展するものだと思っていますので、自分の無知をさらけ出すのを恐れずにいろいろ公開して、自分自身も成長していければと思っています。 今回はサーバ構築するときのトピックとして、どのようにネットワークを構築したかを書いてみます。 サーバ構築に限ったことではありませんが、重要なのは質を下げずにコストを下げることです。ネットワーク部分でお金がかかるのは回線ぐらいですから、ネットワーク周りで重要なのは人的コストを下げること、つまり管理コストを下げることです。 ・回線は2回線以上用意する 2回線以上用意するのは高可用性を確保するためです。通常は全ての

  • ウノウラボ Unoh Labs: ベンチャー流サーバ構築のススメ(ハードウェア編)

    尾藤正人です。 ウノウでは最近新オフィスに引越ししたのですが、新オフィスにサーバルームを設置してフォト蔵のサーバをホスティング業者から自社サーバに移行しました。 自社サーバに移行のは下記のような理由からです。 フォト蔵のようなストレージ系のサービスの場合、十分な帯域を確保する必要があるが、広帯域を確保するにはコストがかかる フォト蔵のようなストレージ系サービスの場合、大容量のHDDが必要になるが、大容量のHDDを搭載したマシンはハイエンドマシンになり、増設コストがかかる マシンの増設に時間がかかりフレキシブルに対応できない というわけで自社サーバに移行したわけですが、自社サーバに移行するにあたって様々なノウハウがたまってきました。 サーバ構築にはいろいろトピックスがありますが、今回はハードウェア的な部分について書きたいと思います。 ・マシンは全て同じ構成にする 数多くのサーバを運用するに