ウノウラボ Unoh Labs

I love spacer

携帯向けXHTMLを書いているとバッドノウハウばかりが身について行くのですが、その中で私が愛してやまないspacerのことについて熱く語ってみようと思います。 私が個人的に見つけたバッドノウハウばかりですので、これら以外にもっとスマートな方法がありましたら是非ご教示ください。 一般的な使い方 <br /><br />での改行するなんてとんでもない、でも3キャリ対応しようと思ったらline-heightも使えないし。。。そんなことでお悩みの方が良く使っているのがこのspacer。原理は簡単、1ドットの画像をimgタグのwidthとheightで大きさを好きに変えてお好みの行間を作るのがメインのお仕事です。 気をつけること <div><img src="spacer画像のパス" width="X" height="Y" /></div&gt...

わんわん

きゃんきゅーんわんわおんわーんばうきゃんきゃんきゃうんわおんわおんわんきゃんきゃんきゃうんきゃんきゃん! わうわーん。 わんわーんわんわうわん。 わんわおんわんわおんわん! きゃうんわーんわうきゅーんわおんわーんばうわおんわんわおんわん。 わーんわーんきゃんわうわんわんわおん! わんきゃんきゃんわうわーんわんきゃんわおんわんわおんわん! わん。 きゃうんきゃんきゅーん。 わーんわんきゃんわうわーんばうわんわんわうきゅーんきゃんわんわーんわおんわん。 きゃうんわおんわおんわおん! きゃんわおんわおんわんばうわおんわんばうきゃんわおんきゃうんわおん! わんわおんばうきゃん! わうきゃうんきゃんわおんきゃんきゃんわおん! わんきゃんわーんわーんわんきゃうんわんきゃんきゃんきゃんきゃんきゅーんきゅーんわおんわんわおんわーんわーんわんわんわんばうわおんわんきゃんわーん! きゃんわおんきゃんばうきゃん...

PHPで利用出来るテストと開発に便利なツール

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

Puppet DashboardからExternal Nodesを利用する方法

入社3ヶ月目のsaekiです。 今回はPuppetのGUIツール「Puppet Dashboard」でExternal Nodes機能を使用する方法を紹介しようかと思います。 Puppet Dashboardのインストール方法は公式ドキュメントを参考にしてください。 Puppetは0.25.5、Puppet Dashboardは1.0.4を使用しています。 ■できること - マニフェストではなくdashboard上でnode設定ができます。 - node(またはgroup)毎にclassを設定やParameterの設定ができます。 ■使用方法 - classを登録する dashboardにclassを登録します。 1. マニフェストのclassを作成します(例はhosts) class hosts { file { "/etc/hosts": ...

symfonyエキスパートになるために必須の1冊

突然ですが、symfonyのエキスパートになりませんか?HIROKIです。 PHPのフルスタックフレームワークであるsymfonyについて共著した書籍が発売されました。私はテスト駆動開発(TDD)とsymfonyによる自動テストについて執筆しました。 具体的にはLimeを利用したユニットテストをはじめ、sfBrowserを利用して、ブラウザアクセスをエミュレーションした自動テストを書くことによって、実際に人間がブラウザを通してアクセスしている内容まで自動テストにします。これを、テストファーストのアプローチで開発する内容になっています。 TDDや自動テストを書くというのは、プログラマーとして、プロとしてのスキルです。これを機会に、ばっちりテストコード書けるぜ!という人が増えることを願っております。 本書は symfonyプロジェクトに存在するドキュメントやリファレンスを読む前に必要な前提知識...

Varnish上でESIの機能を利用する

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

サーバ情報を収集する Ruby スクリプトを書くには

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

家庭用ゲームのプログラマーがSNSゲームのプログラマーに転職するために必要なもの

こんぬつは&はじめまして。 12月に入社したサカモトです。 私は元々SONYとかNintendo機向けの家庭用のゲーム開発を生業にしてきましたが、ついこの前からSNSアプリの開発をしています。 私と同じように、家庭用ゲーム機のプログラマーからSNSゲームのプログラマーに転身したいと考えている方のお役に立てればと思い、私の経験を元に '転職するために必要なもの' のお話をさせていただきたいと思います。...

都市伝説の検証!Flash CS5のswfはCS4よりファイル容量が大きい!?

flashエンジニアのnaoです。 ディスカバリーチャンネルの番組に「怪しい伝説」(Mythbusters)ってのがありますよね。そう、"ワイヤーが切れて自由落下するエレベーター、地面に衝突する寸前に中でジャンプしたら助かるんじゃね?"とか、あほう 希少な検証をやるあの番組です。 ちょっと考えればわかりそうな事を真面目に検証する彼らを生暖かく見守る私ですが、この度自分自身、都市伝説に遭遇いたしました。 その都市伝説というのが、標題の「Flash CS5のswfはCS4よりファイル容量が大きい!?」なワケであります。 私の所属するプロジェクトでは、前任のflashエンジニアがFlash Profesional CS4で開発を行い、私を含めた後任のチームはCS5で開発を行っております。 この時に、前任からの引き継ぎ注意事項として 『swfファイルはCS4で書きだしたほうが軽くなる』 という物が...

iPhone向けのサイトを作るときのちょっとした気配り

yamaokaです。 だいぶiPhoneやAndroidといったスマートフォン向けのwebページを作ることが増えてきたのではないでしょうか。ちょっとした気配りで使いやすくなるケースもあるかなと思うので、いくつか使えそうな工夫について書いてみたいと思います。 ただし、今回はiPhone向けです。 タップされた場所をハイライトする iPhoneのSafariでは「-webkit-tap-highlight-color」という拡張された属性があり、タップされた箇所に色を付けることができます。CSS3ではRGBaによる色指定ができるので、半透明の色を指定すればタップされた箇所をわかりやすく示すことができます。例えば、-webkit-tap-highlight-color:rgba(255,0,0,0.40);と指定すると薄い赤色を付けることができます。「outline:none;」と併せてリンク文...

WebエンジニアにやさしいYamahaルータRTX-*** 設定方法(導入編)

こんにちは。入社6ヶ月目のyusukeです。 Webエンジニアの方がルータを触る機会は、少ないと思います。 ということで、Yamahaルータを例にルータの設定方法を紹介します。 1. Yamahaルータへのログインについて Yamahaルータへのログインは、通常以下の2つの方法いずれかでログインします。 - シリアルコンソールケーブルを使用したログイン シリアルコンソールケーブルを直接Yamahaルータに接続します。 シリアルコンソールケーブルはクロスケーブルとDSUB9 or 25 と RJ45 変換コネクタでも自作できます。(ルータの購入時に付属している場合もあります。) - telnetまたはsshを使用したログイン これは、ご存知のようにtelnetコマンドやsshコマンドを使用したログインです。 いずれもログインした後の設定方法は同じです。 ログイン時パスワードを入れてログイン...

30分でわかる PHP Extensionの作り方を学べる記事をかいたよー \(^o^)/

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

flashlite1.1で文字圧縮してみた

FlashLite 1.1で文字圧縮を使ってみる。

入社後なるべく早くキャッチアップするために心がけたこと

あけましておめでとうございます。 chunoです。 弊社には(身内自慢になるかもしれませんが)手練のエンジニアが老若男女問わず揃っており、ギークでもスーパープログラマでもない私にとっては 「一番の下手くそ」 でいられる、成長するためには理想的な環境です。 ※参考「情熱プログラマー」第一章の4 とは言え、そういう状況で安穏としているわけにもいかないので、少しでも早く周囲にキャッチアップできるよう努めました。 それらについて、これから述べます。...

Valgrindを使って楽々PHP拡張モジュール開発のデバッグ

明けましておめでとうございます。@emorinsです。 みなさんモジュール開発ではどのようにデバッギングしていますか?モジュールになると普段使い慣れたデバッグツールが使えず、手動の動作確認だけで済まされている方もいらっしゃるのではないでしょうか。 今回はC/C++開発ではメジャーなメモリデバッガ『Valgrind』をPHP拡張モジュールの開発で活用することで、普段使い慣れたツールでのデバッグの例をご紹介します。 1.PHP拡張モジュールの作成 まず開発用にPHPをデバッグモードでビルド。 #cd ./php-5.x.x #./configure --enable-debug #make #make install PHP拡張モジュールを作成 #cd ./ext #./ext_skel --extname=zynga_func #cd zynga_func 16行目から18行目をコメントアウ...

アジャイル開発におけるテストについて(その1)

初めまして、11月に入社したQA担当のものです。 短期間の開発はどうしても少ない工数でテストを実行したい...と、だんだん重要になってくる。その中でアジャイルテスティングが最も有効で、尚且つ効率で不具合を発見できる方法と思います。 アジャイルテストは反復 (イテレーション) と呼ばれる短い期間単位を採用することで、リスクを最小化しようとしている。アジャイルテストは4象限の分類で説明されている。 概要は以下のとおり。 第1象限はチームを支援する技術面のテスト → テスト駆動開発などアジャイル開発の中心 第2象限はチームを支援するビジネス面のテスト → 顧客の視点からのハイレベルの機能テストなど 第3象限は製品を批評するビジネス面のテスト → ユーザー受入テスト、探索的テストなど 第4象限は技術面のテストを使った製品の批評 → パフォーマンステ...

Photoshopのスクリプトを気軽に複数ファイルに適用する

Photoshopのスクリプトをドロップレットを用いて複数ファイルに適用する方法

Adobe Illustrator CS5自動化1

12月に入社したものです。得意なアプリケーションはIllustratorそこで、現在使っているJavaScriptを共有させていただきます(`・ω・´)基本OSはWindowsですがMacでも起動します。 注意点:ソースコードで使用する"\"マークは"/"に変更しないと起動しません。 それでは、現在使っている自動化スクリプトです↓   【他のアプリケーションを起動する】 ■プログラム説明 起動したいアプリケーションのパスをファイルオブジェクトとして作成します。 ■ソースコード fileObj = new File("実行へのアプリケーションパス"); fileObj.execute(); ▼使用例(Photoshop) fileObj = new File("C:/Program Files/Adobe/Adobe Photoshop CS5/Photoshop.e...

レディの嗜みについて ~ PHP と Membase と MessagePack と私

こんにちは mayutan です。 ラボブログを書かないとクビだと脅されたのでクリスマスに泣きながら書いておりますが 皆様いかがお過ごしでしょう。 ↑(すみませんネタですが、本気にされる方がいらっしゃいそうとの指摘を受けましたので訂正) 今回のレディの嗜みですが、 レディたるもの、キーバリューストアくらい扱えないとなりません!!!!!!111 という事で membase についてご紹介しようと思います。 最近猫も杓子もソーシャルソーシャルわっしょいわっしょい!といった感じで、 これまでのシステムとはまた違った独特の工夫を皆様されていると思うのですが、 memcached を使っている方はかなり多いのではないでしょうか。 ここにプラットフォームから取得した情報や、あまり更新されない情報などを保存して、 DB やプラットフォームへのアクセスを極力減らす、という使い方がメジャーだと思います。 そ...

EclipseでPHP開発

Eclipse for PHP Developersと各種プラグインのインストール

<?php を閉じてみる

<?php を閉じると何が起きるのかを検証しました。

Symfony2のFormsを使ってみる

こんにちは。目下Symfony2を勉強中のtakaです。 Symfony1.4ではsfFormを使った事があるのですが、いくらか苦戦したというか、sfWidgetFormが面倒というか、これは使えば楽なのか?何なのか?良く判らなかったので、今回Symfony2でどのように実装していくのかFormsを試してみました。 まず、Symfony2についてですが、12/01時点ではSymfony2 PR4が公式サイトにて公開されていました。今回はこれを使ってやってみます。環境は適当にCentOS5.5にPHP5.3などなどを入れてcheck.phpが動く事を確認しました。ダウンロードして展開するとsandboxとありHelloアプリケーションが既に用意されています。 Controller名はhello/signupとします。 src/Application/HelloBundle/Resource...

フィードバックサイクルを素早く回すために

この記事は、Symfony アドベントカレンダー 2010に参加しています。 Symfonyアドベントカレンダー 2010 | 日本Symfonyユーザー会 前の記事: Symfony2 + MongoDB ODM を使ってみる - 今日も適当ダイアリー こんにちは。murahashi sanemat kenichi です。開発で重要なのはフィードバックのサイクルを素早く回すことですよね。 こうなってくれるとうれしい。 落ちるテストを保存するとred 通る実装を保存するとgreen フィードバックサイクル 簡単に達成するために必要なのは次の4つです。 テストコードのグルーピング、ファイル更新検知、ファイル対応関係、screenのstatus line Symfonyの場合の話を順にみていきます。 一発でグループ分けされたテストコードが走る仕組み Symfonyは簡単 $ php sym...

puppetのCustom factを使って、puppetをもっと柔軟に使う

こんにちは、satoshiです。 Puppetという、システム管理を自動で行うためのツールがあるのですが、 今回は、これを使ってEC2インスタンスにEBSボリュームをAttachするスクリプトを作成してみました。 前提環境 CentOS5.4 Puppet-0.25.4-1 Facter-1.5.7-1 Puppet, Facter? Puppetとは、システム管理を自動で行うためのツールです。 Facterは、システム情報(OS, FQDN, IPアドレス)などを収集するRubyライブラリです。 Facterによって取得できる項目のことを fact と呼びます。 下記が詳しいです。 オープンソースなシステム自動管理ツール Puppet Custom factを使用するための事前準備 下記のサイトを参考に事前設定します。 Docs: Plugins in Modules puppet ma...

変数名について

皆様、こんにちは。 トクヤマです。 今回はTipsでも何かをお伝えするものでもなく、逆に皆様のご意見を承りたいと思っています。 変数名というのはプログラマーやエンジニアで個性が強くでる部分ではないかと思います。 所属する会社やグループで決められた命名規則に沿って変数名を決めている方も多いと思いますが 内心はもっとこんな命名をしたい!なんて思っている方も多いのではないでしょうか。 例えば私は業務や私用を含めPHPを主に使用していますが私用的な変数名の付け方は格納する値の型+格納する値の意味(英名で)にしていて、 それをキャメルケースで命名しています。 ゲーム開発でユーザーの体力を格納する変数名は $intUserHitPoint というようにです。 しかしこれで困るのが格納する値の意味が意味合いが変、もしくは冗長的になってまうときです。 例えばユーザーが敵に攻撃を受けて減った分の体力の総計値...

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

Symfony2勉強会に参加してみた

こんにちは、小俣です。Symfony1.4にはだいぶ慣れてきた今日この頃、近々登場するらしいSymfony2が速いとかすごいとか噂されているので、乗り遅れないよう情報を仕入れておかねば!ということで、先日ちょうど弊社オフィスを会場に開催されたSymfony2勉強会に参加してみました。そのとき仕入れた情報をご紹介しようと思います。 はじめに:Symfony2は1.x系と内部構造が異なるので戸惑う Symfony1.xに慣れている方にとっては、初めのうちはディレクトリ構造が違いすぎて何処に何があるのか混乱しがちです。私も何度も迷子になりました。少しずつ慣れていくしかありませんが。。。下記にSymfony2の特徴をいくつか紹介してみます。 Symfony2はすべてBundleで構成されている Symfony2では、新しい概念がいくつか導入されていて、まずはBundle(直訳:束)の理解が必要です...

ジンガジャパンの壁

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

ASIHTTPRequestを入れてみた

ご無沙汰しています。Brandonです。 今回は私がジンガジャパンでやってる実務とまったく関係がないObjective Cのライブラリ「ASIHTTPRequest」を紹介したいと思います。 前の記事の続きをやってたら、たまたま「ASIHTTPRequest」に出くわして、これはなかなかよさそうなのでみんなさんにご紹介しようと思いました。 (もし既に知っていたらどうもすみません。前の記事からまったくiPhone関係の物を触ってなかったこともあって、情報が遅いのは承知しています。) AppleのiOS SDKに入っているNSMutableURLRequestでHTTPリクエストを送るやりかただと、以下のようなコードになります。 (下記は前の記事の一部の内容になります) /** * リクエスト(requestObj)に認証情報をつける関数 */ - (void) addAuthToWeb...

PHPでwin32serviceを使ってみる

こんにちは。yuzoです。 今回はPHPをwindowsのサービスとして動作させるwin32serviceを試してみました。 準備した環境 Windows 7 Professional(32bit) PHP 5.3.3 win32service 0.1.0-dev インストール PHPは「VC9 x86 Non Thread Safe」を利用しました。 http://windows.php.net/download/ どこに配置してもいいと思うのですが、 便宜上 C:\PHP\5.3.3 にインストールしたことにします。 もちろんPATHもとおします。 win32serviceについては、別途こちらからダウンロードが必要です。 http://downloads.php.net/pierre/ 今回は「php_win32service-svn20091206-5.3-nts-vc9-...

このページのトップへ