タグ

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

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

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

  • ウノウラボ 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の許可を得てそのときのスライドの日語版を作成しましたので、それに解説を加えてご

  • ウノウラボ Unoh Labs: ジンガジャパンの壁

    こんにちはhohtaです。オフィスが新しくなってからはや1ヶ月、移動したばかりの時はひろびろーとした感じでしたが採用活動が順調らしく、人口密度が上がってきました。 さて、提題の件ですが今回は技術的な話からちょっと離れて弊社にある壁を紹介したいと思います。一口に壁と言っても言語の壁、文化の壁、人生の壁、ぬりかべなど概念的なものから建物の壁面といった物理的なものまで様々ですが、この記事で扱うのは物理的な壁、新オフィスに作られているクライミング(ボルダリング)用の壁を紹介します。 どんな壁? こんな壁です。全長7m、高さ2.2mで手前が垂壁(90度)、奥が110度と角度がついています。建物の構造上高さが少し物足りないですが、そこは課題をトラバース(横移動)メインにしてカバーです。ちなみに、マットは埋込式ではなくボルダリング用のクラッシュパッドを登るときに敷いて使っています。埋込式と違ってスペース

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

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

  • ウノウラボ Unoh Labs: zshはじめました。

    今までずっとbashを使ってきて、やっとこzshに乗り換えることに踏み切ったHIROKIです。 昔に同僚がOSデフォルトでついてくるシェルではもの足らず、zshを導入した後にシステムに大きな変更を加えてzshが正常に動作しなくなりました。ユーザーではもちろんログインできず、rootのシェルもzshにしていたために、rootでもログインできず、どうにもこうにもならない状態となっているのを目撃してからはOSデフォルト以外のシェルを使うのをやめていました。 扱うのはLinuxが中心だったので、いままでbashが中心。 FreeBSDを扱うときは、もちろんcshでした。 そして、ウノウではみんなzshであり、魔法のようなコマンドさばきを見ていて、とうとうzshに踏み切りました。 そんなこんながありまして、zshを改めて設定してみました。 皆さんも、導入を検討してみてはいかがでしょうか。 まず、

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

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

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

  • ウノウラボ Unoh Labs: Google App Engine for Scala

    おはようございます。うちだです。 最近Scalaが世界中の一部の人達の間で盛り上がってるようですね。 私も以前のエントリーに書いたように、次にくる言語はScalaだと信じています。 5分くらいで知るScala 最近のプライベートな時間はGAE漬けでScalaの波に乗れていなかったのですが、 ふとGAEでScalaを使えばいいのではないかと気付き、試してみました。 Eclipseをダウンロード どれをDLすればいいのか迷いながらClassicを選択 GAEのプラグインをインストール http://code.google.com/intl/en/appengine/docs/java/gettingstarted/installing.html SDKも一緒に入れましょう Scalaのプラグインをインストール http://download.scala-ide.org/update-cur

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

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

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

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

  • ウノウラボ 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: RDBで階層構造を扱うには?

    yukiです。ダイエットを始めて3kg減ったと思ったら、風邪を引いて見事に1kg増量。 運動しないと駄目ですね。あと残り20kg、道のりは遠いです。 さて今回は、「RDBで階層構造を扱うには?」です。 あるサイトを構築中に階層構造をもったカテゴリ構造にすることになり、どのようにDBで扱うか悩みました。 DBMySQLを採用していたので、この時点でぱっと頭に浮かんだ選択肢は以下のようなものでした。 XML-DBを利用する 親カテゴリレコードのプライマリIDを子カテゴリレコードに持たせる 親を含めた『絶対パス』を名称として扱い、取り出した後にパース ファイルシステムに同様のディレクトリ構造を作り、毎回パースする (1)のXMLDBはオープンソースのeXistやXindice、Yggdrasillなど様々な選択肢がありましたが、カテゴリのみの利用な割にメンテナンスコストが高すぎるので見送りま

  • ウノウラボ Unoh Labs: Django風PHPフレームワークPlufを試してみました

    最近マジクエストというアトラクションにはまっています。 Keitaです。 PHPには、CakePHPやsymfony、EthnaやrhacoとかCodeIgniterやPiece Frameworkなどなどいろいろフレームワークがありますが、探してみるとこういったよく耳にするフレームワークのほかにもいろいろなフレームワークがあります。 Do You PHP はてなの記事で知ったのですが、The Big List of PHP Frameworksといった記事も出ているようです。 最近では、RubyのSinatraライクなフレームワークもちょこちょこ出てきているようで、yamaokaが社内の勉強会にて発表してくれていました。 さて、そのThe Big List of PHP Frameworksの僕自身そのリストの膨大さに愕然としてまったくその内容やソースを追いかけていませんでしたの

  • ウノウラボ Unoh Labs: PHPとMecabでキーワード自動リンクを実装する

    こんにちは、山下です。 今年もどうぞよろしくお願い致します。 Webサービスを開発していると、特定のキーワードを自動でURLリンクにする処理が必要になることがあると思います。今回は、このキーワード自動リンク機能を形態素解析ツールMecabを使ってPHPで実装する方法を紹介したいと思います。 説明に入る前に少し補足しておくと、Trieの実装であるDouble-Array処理だけ利用したいのであれば、MecabからDouble-Array処理の部分を切り出したDartsというライブラリがあります。しかし、なぜMecabを使うかというと、PerlだとDartsのバインディングが公開されているのですが、現時点でPHP版はありません。また、最近のLinuxディストリビューションでは、Mecabのパッケージが最初から用意されているため、より簡単に利用できると思ったからです。 それでは、順を追って説明

  • ウノウラボ Unoh Labs: mecabのユーザ辞書を追加した時にはまったメモ

    こんにちは satoです。mecabのユーザ辞書を追加したのですが,いろいろはまったので誰かがはまった時のためにメモっておきます。 1)品詞IDの取り方 2)ユーザ辞書の追加方法 3)禁止語句とか独自の要素を付けたい csvファイルの最後に追加すればOK 4)context_id.cpp(88) [it != left_.end()] cannot find LEFT-... ってエラーが出る left-id right-id の文字コードが csvファイルの文字コードと違うのが原因 nkf --utf8とかで文字コードをそろえる 5)CHECK_CLOSE_FALSE(sysdic->isCompatible(*d)) sys.dic と ユーザ辞書の文字コードが違うと出るエラー utf8とUTF8は違うと判定されるのでutf-8と書く 6)追加した辞書に品詞IDが付かない or 65

  • ウノウラボ Unoh Labs: OAuth プロトコルを知る

    こんにちは、naoya です。 昨日の社内勉強会で、OAuth について行いましたので、そのときの資料を公開します。 OAuth プロトコルの解説のあとに、Twitter の OAuth 経由でステータスを更新するクライアントを作ってみたので、そのソースコードをおいておきます。サンプルでは、現在時刻をステータスとして更新しています。ダウンロードは、こちらからどうぞ。ちなみに、OAuth の仕様書では、Authorization ヘッダに埋め込む方法が書いてありますが、Twitter では対応していませんでした。実際に動作を見てみたい人は、サンプルコードを設置してみてください。 サンプルコードに含まれているファイルは、次の通りです。 oauth_twitter.php: まずこのファイルを開きます、Request Token リンクをクリックすると認証トークンを取得開始します oauth_t

  • ウノウラボ Unoh Labs: Gearsはウェブの未来を変えたか

    このうちオフラインサポートで主に利用するのは初期からあるLocalServerとDatabaseだと思いますが(もちろんDatabaseはオフラインサポートだけに用途が限定されるわけではありませんが)、以降に追加された機能は、いずれもオフラインサポートに直接関わるものではありません。 また、Gears Wikiには今後予定されている/検討中のAPIがリストされており、Canvas、Notification、Audio、Camera、Database2などが挙げられていますが、その名称からも知れる通り、多くはやはりオフラインサポートとは無縁のものです。 これらのAPI群は一見それぞれバラバラな機能の寄せ集めのようですが、共通しているのは、オフラインサポートはもちろん、WorkerPoolによるバックグラウンド処理にしても、もっとわかりやすい例では、Desktop APIのopenFilesに

  • ウノウラボ Unoh Labs: [第一回ゲストブロガー:riaf] rhaco知ってますか!?

    ウノウでは特に最近、積極的にエンジニアを採用しています。 採用ページをご覧になり興味のある方、ぜひご応募ください!! Find Job!でも募集開始してます! Keitaです。 今回は少々趣向を変えて、外部のエンジニアの方にブログ記事を書いていただきました。 ウノウでは今後も、チャンスがあれば外部のゲストブロガーを迎えて記事を寄稿していただこうと思います。 (ウノウに遊びに来たついでに強引に書いてもらったという説もありますが・・・) みなさんはじめまして、riaf です! ウノウラボブログ、おそらく初めての部外者(笑)の登場です。 今回は、ここいちさんに声をかけて貰い、こうしてブログを書かせてもらえることになりました。よろしくお願いします。 最近は、名前だけは知っているという方がそれなりに増えてきたように思いますが、rhacoについてもう一度簡単に説明します。 rhacoとは、

  • ウノウラボ Unoh Labs: 文字コードと携帯絵文字

    ウノウでは特に最近、積極的にエンジニアを採用しています。 ご興味のある方はFind Job !から、ぜひご応募ください!! 今年は早くも花粉が舞っているようですね。花粉症にはなりたくないなぁと毎年おびえるyukiです。 さて今回は、社内の勉強回で発表した「文字コードと携帯絵文字」のスライドを公開したいと思います。文字コードとは何か、とか、文字集合とは何か、というところから、各キャリアの対応状況や、最近Googleの提唱している「emoji4unicode」について、基礎の部分をさらっと触れている感じです。もしよろしければご覧下さい。 文字コードと携帯絵文字

  • ウノウラボ Unoh Labs: Mercurialでバージョン管理

    stoplightで最大化したターミナル上でzshとscreenとEmacsを立ち上げ、 明朝体フォントでプログラミングするbokkoです。 今回はバージョン管理システムの1つであるMercurialについて紹介します。 ウノウではSubversionとTracを組み合わせて開発を行っていますが、 僕個人では今年の春ぐらいからEmacsやzsh、screenなどの各種設定ファイルをMercurialでバージョン管理しています。 Mercurialとは? Mercurialは分散型のバージョン管理システムです。 これに対して、CVSやSubversion(以下SVN)は集中型のバージョン管理システムにあたります。 分散型と聞くと難しそうなイメージがわくかもしれませんが、 CVSやSVNに比べてると、より手軽にバージョン管理を行うことができるというのが、 Mercurialに対する僕の印象です