タグ

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

  • ウノウラボ Unoh Labs: Apache MPM の基礎をしっかりと理解しよう!

    naoya です。最近、とうとう花粉症の季節に入ったので、生まれて初めて空気清浄機を購入しました。 さて、今日は Apache HTTP サーバの MPM (Multi Processing Module) について解説したいと思います。普段、ウェブサーバを構築するとき、Apache HTTP サーバを使うことが多いと思いますが、Apache HTTP サーバを使う上で MPM について理解しておくことは大事です。 この MPM ですが、Apache HTTP サーバではリクエストを処理する部分のことをさします。MPM は、Apache HTTP サーバ 2.0 系から採用されています。Apache HTTP サーバの MPM には、次の種類があります。 prefork worker perchild winnt それぞれの MPM について解説します。まずは、一番代表的な prefork

  • ウノウラボ by Zynga Japan: I love spacer

    携帯向けXHTMLを書いているとバッドノウハウばかりが身について行くのですが、その中で私が愛してやまないspacerのことについて熱く語ってみようと思います。 私が個人的に見つけたバッドノウハウばかりですので、これら以外にもっとスマートな方法がありましたら是非ご教示ください。 一般的な使い方 <br /><br />での改行するなんてとんでもない、でも3キャリ対応しようと思ったらline-heightも使えないし。。。そんなことでお悩みの方が良く使っているのがこのspacer。

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

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

    deeeki
    deeeki 2011/03/25
  • ウノウラボ by Zynga Japan: 家庭用ゲームのプログラマーがSNSゲームのプログラマーに転職するために必要なもの

    こんぬつは&はじめまして。 12月に入社したサカモトです。 私は元々SONYとかNintendo機向けの家庭用のゲーム開発を生業にしてきましたが、ついこの前からSNSアプリの開発をしています。 私と同じように、家庭用ゲーム機のプログラマーからSNSゲームプログラマーに転身したいと考えている方のお役に立てればと思い、私の経験を元に '転職するために必要なもの' のお話をさせていただきたいと思います。 採用されるために必要なもの ご自身で事業を始める場合には必要の無い事ですが、どこぞの会社さんに所属したいとなるとまず雇って頂くほかありません。そこで、採用されるために必要とされるスキルや経験を挙げてみたいと思います。 身近なところで弊社ZyngaJapanのエンジニアの採用ページを見てみると「必須スキル・経験」として以下のような事が書いてあります。 3年以上のプログラミング業務経験 また

  • ウノウラボ Unoh Labs: git-svn駆け込み寺

    こんにちは。murahashiです。 gitやgit-svnを使うにあたり、試したことや引っかかったことについて、yukiのエントリ ウノウラボ Unoh Labs: subversionリポジトリでもgitが使えるgit-svn のつづきを書いてみました。 Q. ブランチ名を長くしてしまったので手打ちするのが大変です A. bashでgitコマンドを補完します gitのコマンド補完は git-completion.bash が便利です。 fedoraにyumでgitを入れた場合には下記場所にあります。 /usr/share/doc/git-VERSION/cntrib/completion/ 自分の見える場所にgit-completion.bashがなければ、インストール済みのgitと同じversionのgitのソースをダウンロードします。 cntrib/completion/

  • ウノウラボ Unoh Labs: subversionリポジトリでもgitが使えるgit-svn

    yukiです。 空前のGitブームもだいぶ落ち着き、最近はGit記事をあまり見かけなくなりましたが、今日は空気を読まずにGit、それもgit-svnについて利用例を挙げつつご紹介しようと思います。 さらっと紹介されている記事は多いのですが、実際にこう使っている、などの例があまりなかったので、今回利用例を含めてご紹介していけたらと思っているので、もっと便利な使い方があるよ!という方の突っ込みをお待ちしております。 まずgit-svnについてご紹介すると、その名の通りgitとsubversionをつなぐ役割を果たすもので、subversionのリポジトリからgitでcloneして利用出来るというものです。 インストールはyum一発で簡単に入ります。 # yum install git-svn よくある例としては、業務で使うリポジトリはSubversionのまま使い続けているけど、個人

  • ウノウラボ by Zynga Japan: flashlite1.1で文字圧縮してみた

    明けましておめでとうございます&はじめまして。12月に入社した加藤です。 FlashLite 2.0をやるつもりで入ってみたらバリバリ1.1だったので、出す機会を逸していたネタをここで出したいと思います。 FlashLite 1.1の制限にはいろいろありますが、開発する上で一番困るのは100KB制限です。 100KBと言うと、このページの右カラムに並んでいる著者一覧の写真が一つだいたい8KBくらいですので、だいたい12枚分になります。その中にグラフィックとスクリプト両方をつめ込まねばなりません。 普通のFLASHならパブリッシュ設定の「ムービーの圧縮」にチェックを入れれば圧縮が有効になるのですが、残念ながらFlashLite 1.1ではその機能はグレーアウトされて使えません。 そういうわけでFlashLite 1.1のエンジニアは日々シェイプの最適化から変数名の文字数まで、地道な作業

    deeeki
    deeeki 2011/01/13
  • ウノウラボ by Zynga Japan: 30分でわかる PHP Extensionの作り方を学べる記事をかいたよー \(^o^)/

    こんにちは。12月に入社した@chobi_eです。 私が所属しているチームではお菓子系男子が30%を超えているという素敵チームで 毎週チーム内の漢の子がお菓子を焼いてくるという状況でハッピハッピハッピーです。 今日は私が学んできたPHP Extension作成についてのノウハウの一部を 公開しようと思います。 PHPExtension作成についての資料はklabさんやyoyaさん rskyさんの記事が参考になりますが私のようにPHPは書けてもCが書けない人には具体的にhello world以降何をすればいいのかがサッパリよく分かりません。 そこで先人達が作ってくれた偉大なライブラリをPHPで扱えるようにする為にC/MigemoのPHPバインディングを作ってみましょう C/Migemoをインストールしてみる 読者の方の中にはC/Migemoをご存知でない方もいらっしゃるかと思いますので簡単に

    deeeki
    deeeki 2011/01/11
  • ウノウラボ by Zynga Japan: 入社後なるべく早くキャッチアップするために心がけたこと

    でいられる、成長するためには理想的な環境です。 ※参考「情熱プログラマー」第一章の4 とは言え、そういう状況で安穏としているわけにもいかないので、少しでも早く周囲にキャッチアップできるよう努めました。 それらについて、これから述べます。 ■周りの人の助力を仰ぐ 入社直後にアサインされたプロジェクトが佳境を迎えていたことに加え、個人的な経験やスキルは以下のような状況でした。 symfony→使ったこと無し TDD(テスト駆動開発)→未経験 memcached→使ったこと無し Git→使ったこと無し 結構テンパっていたのですが、良き先輩であるチームメンバーに積極的に教えを乞いました。 質問する際は、ノートに図を書いたりして持って行くと、こちらの「聞きたいこと、理解できていないこと」が伝わりやすくなります。 ※無闇矢鱈と質問しに行ってお仕事の邪魔をしたことがあります、ゴメンナサイ...

  • ウノウラボ by Zynga Japan: Photoshopのスクリプトを気軽に複数ファイルに適用する

    みなさんこんにちは。11月に入社したデザイナーの935です。 デザインの仕事をしていると「バッチ処理ではできない複雑な作業を複数のファイルに一度に適応したい」という気持ちになることがありませんか?そんなとき私はjsflなんかと比べると若干マイナーな感のあるphotoshopのスクリプトを愛用しています。 でも、photoshopのスクリプトってメニューからだと「一度に開いたファイル一つ」にしか適応できないですよね?そうすると、せっかくスクリプト書いたのに「それってなんか片手おちじゃない?どうせなら一度にやってよ」という気持ちになるわけです。 そこで今回はドロップレットを使って複数のファイルにスクリプトを適用する方法をご紹介したいと思います。 まあ、特定のフォルダのファイルリストを取得してforで回すようなスクリプト書いてもいいんですが、今回はドロップレットを使って気軽にやってみましょう。

  • ウノウラボ Unoh Labs: FarmVilleの開発 - FacebookのNo.1ゲームを5週間で作りあげスケールさせた手法

    こんにちは、五十川です。 2010年12月1日に、ウノウがジンガジャパンとなってから初めてのタイトルとなるファームビレッジがリリースされました。ファームビレッジはFacebookで永らくNo.1の座にあるFarmVilleの日語版ですが、先月そのFarmVille開発のリーダーで、現在はZyngaの共有テクノロジーをリードしているAmitt Mahajanが来日していました。 今回ご紹介するのは、そのAmittが2010年3月のGame Developers Conference(GDC)で行った、Rapidly Developing FarmVille - How we built and scaled a #1 Facebook game in 5 weeksと題したプレゼンテーションです。今回Amittの許可を得てそのときのスライドの日語版を作成しましたので、それに解説を加えてご

    deeeki
    deeeki 2010/12/07
    《クライアント/サーバ両方のスキル、ゲームデザイナーがすべてを支配しない、データ主導のゲームデザイン》
  • ウノウラボ Unoh Labs: 専用サーバを構築するときにまず行う4つの設定

    こんばんは、最近寒い夜が続いていて自転車通勤がつらくなってきた naoya です。 ウノウでは、フォト蔵や社内システムなどは、すべて専用サーバを構築して運用をしています。 今日は、専用サーバを構築するときに、僕がウノウで学んだ専用サーバでまず行う4つの設定を紹介します。 なお、今回の設定はすべて Fedora Core 5 をもとにしています。 (1) sudo を使えるようにする sudo コマンドを使えるようにします。sudo コマンドは、別のユーザとしてコマンドを実行できるコマンドです。 sudo コマンドを使えるようにするには、/etc/sudoers に sudo を許可するグループを追加します。次の例は、unoh グループを追加する例です。 %unoh ALL = (ALL) ALL, !/bin/su, /bin/su postgres, /bin/su * postgres

  • ウノウラボ Unoh Labs: 線画のゴミ除去方法

    初めまして。ウノウでデザイナーをしているyamamotoです。 最近は色々と便利なが出ているので、当たり前の技術になっていますが 知っているとチョビット便利なフォトショップ上でのゴミの取り方をご紹介します。 画像データはフォトショップ上にて直接描いてしまったサンプルですが 実際は紙に描いたものをスキャニングしたものだと仮定して下さい。 スキャニングし線を抽出するとどうしてもゴミがついてきてしまいます。 そこで便利なゴミの取り方のご紹介です。 1:線画部分だけを抽出した状態 レイヤー部分をダブルクリックしレイヤースタイルを表示します ※フォトショップ上レイヤータブからもレイヤースタイルを選択できます。 この時、境界線を選択し、塗りつぶしのタイプをカラーにし カラーをわかりやすい色にします。ここでは赤を選択しています。 描画モードを通常にし位置を外側にします。 ※大抵はカラー以外はデフォル

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

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

    deeeki
    deeeki 2010/08/14
  • ウノウラボ Unoh Labs: Vim: ちょこっと設定、ちょこっとプラグイン。

    ども。6月入社のjhoshinaです。 まだ入社したてのつもりだったのに、ラボブログ執筆がまわってきてあたふたしています。 何を書こうか迷ったのですが、環境も新しくなったことですし、設定しなおしたVimの設定・プラグインなどをちょこっと見ていこうかと思います。phpとsymfony関係を中心に見ていきます。 雑多な設定 特に変わったところもないのですが一応。 ~/.vimrc set nocompatible set showmatch showmode showcmd set laststatus=2 set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P syntax on filetype on filetype indent on filetype plugin on ~

    deeeki
    deeeki 2010/07/30
  • ウノウラボ Unoh Labs: PECL::oauthでxAuth

    yamaokaです。 TwitterのBasic認証によるユーザー認証が6月に廃止されるようですね。 認証はOAuthで行ってください、とのことなのですが OAuthの認証画面を表示するためにブラウザを起動するのがふさわしくないケースや、 そもそも貧弱なブラウザでうまく利用できないケースもあります。 そうした場合の解決方法として、xAuthという仕組みがTwitterに実装されています。 詳しくは次に紹介するweb上の記事を参照してください。 s-take Blog.: Twitterによる簡易版OAuth: "xAuth" OAuthでデスクトップアプリがブラウザを経由させたくないときのxAuth - Codin' In The Free World the.hackerConundrum: Sneak peek at Twitter's browserless OAuth creden

  • ウノウラボ Unoh Labs: 携帯向けXHTML

    おはようございます。 最近携帯向けのページを作成することが多いので、携帯向けのXHTMLと格闘しておりますkayです。 その際に個人的に感じたこと等をまとめてみましたので、少しでもご参考になればと思います。 なお、ここでご紹介しますものはあくまでも個人的な趣味に基づいており、一定時期より古い機種は配慮しておりませんのでご了承ください。 3キャリア対応の携帯サイトを作成する場合、docomoに合わせてCSSをインラインで書く必要があります。 これはPCサイトを作成したことのある人にとってはきっととても気持ち悪いことなんですが、我慢してstyle=""を使っています。 また携帯ですので、実際に出来ることはとても限られており、機種やキャリアによっても異なりますので個人的にはベーシックなものを中心に使用してデザインすることをおすすめします。 その際、一番制限が厳しいのは相変わらずdocomo

  • ウノウラボ Unoh Labs: すぐに使いこなせるオススメvim plugin

    こんにちは。vimをビムと発音する派のryosukeです。 ウノウでエディタといえば、以前はvimemacs、それもvim優勢(ユーザー数的に)だったのですが、最近は色んなエディタやIDEを使ってる人が増えています。 私は以前はemacsを使っていたのですが、今ではemacsでヤンクの仕方を忘れてしまうぐらいにvimユーザーになってしまいました。とはいえ、vimを使いこなしてるとは到底言えず、 最速のキーリピートに頼る毎日です。 そんな私ですが、いくつか愛用しているプラグインがあるので、今回紹介させていただこうと思います。どのプラグインも基的に ~/.vim/plugin にコピーするだけで使えます。 yanktmp ファイルを経由することで異なるプロセスのvim間でレジスタ(クリップボード)を共有する(かのようにコピペする)ことができます。screenでいくつも vim を開いたりす

    deeeki
    deeeki 2010/05/15
  • ウノウラボ Unoh Labs: PHP版 Parallel::Prefork で奥一穂さんと親に感謝しよう

    こんちにわ、去年末に入社した「ちわ」です、こんにちわ。 Perl には CPAN というものがあり、そこには様々なライブラリが登録されています。国内の方々も多くライブラリを登録されていますがその中で牧大輔さんの Queue::Q4M、奥一穂さんの Parallel::Prefork を PHP に移植したので今回は奥一穂さんの Parallel::Prefork のPHP版を紹介したいと思います。 弊社が提供しているサービスの「まちつく!mixi版」、「まちつく!モバゲー版」の地図を生成、Amazon S3 への転送をキューを使って処理していまして、そのキュー処理に Q4M を導入することになりました。キュー処理の主な流れは下記のようになります。 主な処理の流れ Web やバッチで生成キューをエンキュー 生成デーモンがデキューし地図を生成 正常に地図を生成できたら転送キューにエンキュ

  • ウノウラボ 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-