タグ

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

  • ウノウラボ Unoh Labs: PHPで暗号化・復号化あれこれ

    shimookaです。 皆さんはPHPでデータの暗号化・復号をする必要に迫られた場合、どのようにしているでしょうか?今回は、PHPで利用可能なモジュールやパッケージとそれらのサンプルを3つほど挙げてみました。 mcrypt拡張モジュールを使った暗号化 libmcryptを利用したPHP拡張モジュールです。DES、3DES、Blowfish、RIJNDAEL(ラインダール:AES暗号とも呼ばれる)、Blowfishなどのブロック暗号をサポートしています。利用可能な暗号モードはCBC、OFB、CFB、ECBです。 PHPで利用するには、libmcryptをインストールし、configureオプションに「--with-mcrypt」を付ける必要があります。また、PHP5以降、libmcrypt 2.5.6以降が必要です。 以下は、SSHやファイル暗号化ソフトウェアなどに広く利用されているBlow

    hiroomi
    hiroomi 2012/06/22
  • ウノウラボ Unoh Labs: Cactiによるサーバ稼働状況の監視と異常通知

    こんにちわ。 7月2日に、エイガでつながるクチコミサイト「映画生活」のリニューアルが無事に終わってほっとしているhideです。近々、映画APIなども公開していきたいと思っていますので、どうぞよろしくお願い致します。 さて、今日は、Cactiを使ったサーバ稼働状況の監視について説明したいと思います。サーバの稼動状況を監視するツールとしてはMRTGが有名ですが、ウノウではCacti を使っています。MRTGと比べて、Webブラウザ上から設定を行うことができる、データはMySQLに保存されるので過去の任意の時点を詳しく見ることができるなどの点で優れています。 Cactiは普通にインストールしただけだとサーバから取得したデータをグラフ表示するだけなのですが、http://cactiusers.org/にて公開されている Cacti Plugin Architecture というパッチを当てるとプ

  • ウノウラボ Unoh Labs: オススメ機能には Vogoo がオススメ

    こんにちは、ジュンヤです。 映画生活では、観た映画に対して満足度と呼ばれる点数をつけていくと、それに応じてあなたの好みであろうという映画を表示してくれる、オススメ機能という機能があります。 あなたの好みの映画を推測するのに、「協調フィルタリング」という方法を使っています。簡単に言えば、あなたが好きな映画を同じく好きだと評価しているほかのユーザーをみつけてきて、その人が好きと判定している別の映画であなたがまだ評価を付けていない映画をあなたにオススメします。人工知能の話題: 協調フィルタリングというページにわかりやすい説明が載っています。 この「協調フィルタリング」を比較的簡単に実装できる Vogoo というPHPのライブラリがあり、映画生活ではこれを一部改造したものを利用しています。(作者に感謝のメールを送ったところ、References の部分に「映画生活」をリストしていただきました) 日

  • ウノウラボ Unoh Labs: mod_proxy_balancer 小技集

    こんにちは sato です。 ベンチャーでは高価なハードウェアバランサなどを購入することはできないですが、 apache2.2 から mod_proxy_balancerという apacheモジュールの ソフトウェアバランサが 追加されたので、フォト蔵でも使用しています。  今のところ proxy サーバがボトルネックになることはないです。 想定構成は以下とし、apacheは 2.x を使用しました。 proxy1 +------web1 +------web2 ... +------webN ・基設定 httpd.conf LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so ProxyPass / ba

  • ウノウラボ Unoh Labs: 変数名について

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

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

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

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

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

    hiroomi
    hiroomi 2010/12/29
    フォト蔵では最近Varnishをコンテンツキャッシュに利用しています。
  • ウノウラボ by Zynga Japan: 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.exe");

  • ウノウラボ Unoh Labs: PHPでwin32serviceを使ってみる

    こんにちは。yuzoです。 今回はPHPwindowsのサービスとして動作させる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-v

  • ウノウラボ Unoh Labs: Illustratorの小技 その3 ブレンド機能をパスにする

    たけぞうです 前回、ブレンド機能の小技をお伝えしましたが 今回はそのブレンド機能をパスにする小技を紹介します ※使用しているのはIllustratorのCS4です これはパスではないため 図の5つ並ぶ真ん中の四角だけを動かしたり色を変えたりする事は出来ません また 「パスのアウトライン化」をしても適応されません ではどうしたらよいか オブジェクトの「透明部分を分割・結合」を選択 詳細設定が出てくると思いますが、そのまま先に進めても構いません すると

    hiroomi
    hiroomi 2010/10/14
  • ウノウラボ Unoh Labs: プロセスの監視を行う デーモン monit

    こんにちは satoです。 monitは プロセスの監視を行うデーモンです。 条件とそれに伴うアクションを指定することができます。 条件とは例えば以下のようなものがあります プロセスが起動していなかったら 特定のプロセスのメモリの使用量が あるサイズを超えたら 特定のプロセスのCPUの使用率が 50%を超えている状態が 10分続いたら 特定のポートに接続できなくなったら など アクションには以下のような物があります 起動、再起動する アラートメールを送信する ユーザスクリプトを実行する など これらを組み合わせて、プロセスの監視を行います。とくにユーザが作成したプログラムの監視などに効果を発揮します。インストールは RedHat系なら yum install monit で入ります。(CentOSや商用のRedHatはrpmforgeをリポジトリとして追加する必要があります) 主な設定ファ

    hiroomi
    hiroomi 2010/09/16
    「条件とそれに伴うアクションを指定することができます。」
  • ウノウラボ Unoh Labs: VMWare ESXi4 で開発サーバを仮想化しよう

    こんにちは、ryosukeです。 現在ウノウでは開発環境にVMware vSphere Hypervisor (ESXi4.1) を使ってプロジェクト単位で仮想サーバを構築しています(たぶん)。 私はインフラチームに関わってないので、実際のところ会社の開発サーバがどうなってるか詳細までは知らないのですが、今回は自宅の開発サーバでVMWare ESXi4を利用して仮想マシン作ってコピーで増やして開発サーバが沢山作れたよ、というところまで順を追っていこうと思います。 物理的に必要なものはサーバとして稼働するマシンと、クライアント(ハイパーバイザを操作するクライアント)として使うwindowsマシンと、DVDブランクメディアが1枚です。 内容は簡単ですが、ステップ数が多いので可能な限り箇条書きにします。 インストール VMWare社のサイトでVMware vSphere Hypervisor

    hiroomi
    hiroomi 2010/09/15
  • ウノウラボ Unoh Labs: アジャイルな開発をチームでやってみた(2010年版)

    こんにちは murahashi です。 アジャイルな開発をチームでやってみている(2010年)のですが、いざやってみると結構ハマリどころがありました。やってみたことを共有しておこうと思います。 かたちから入ろう 朝会 アジャイルな開発と言えば朝会なので、朝会から始めました。 開始時刻をメンバーで決めて、それぞれが昨日やったこと、今日やること、おしらせ、困っていること、を共有しました。 さらに、朝会前に社内wikiにメモ書き程度の項目を書いておきます。これにあらかじめ目を通すことで、一番の課題に時間を集中することができました。 アンチパターン・決めた時刻を守らない 11時から朝会始めようと決めたのに、11時過ぎに汗だくで飛び込んできて「遅れてすみません」「wiki書いてません」「wiki読んでません」というのは、チームの空気を悪くするだけでなく、単純に全員の時間を無駄にしてしまいま

    hiroomi
    hiroomi 2010/08/26
    「ひとりxpとチームxpのあいだの一歩は思ったより大きかったです。」組織xpね。
  • ウノウラボ Unoh Labs: MySQLのチューニングのためのデータの集め方

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

    hiroomi
    hiroomi 2010/08/15
    データの集め方
  • ウノウラボ Unoh Labs: Tips for nginx

    何を今更と思うかもしれませんが、最近、英語圏に住んでいようがいまいが ソフトウェア開発で英語は必須だと改めて実感したbokkoです。 英語技術書を読んでいる 日人の開発者が作ったソフトウェアに付属している仕様書を読んだら英語で書かれていた 日人の開発者宛に英語でバグレポートを書いていることに気付く(フォーラム全体が英語だった!) 私も自分の書いたライブラリのドキュメントを書き始めましたが、 全部英語だったりします。(少し前に海外の方からライセンスに関する質問を「英語」で受けました) そして、今日紹介するnginxも開発元はロシアですが、英語のドキュメントが充実しています。 nginxとは nginxは高速軽量なWebサーバです。 基的なHTTPとしての機能に加えてSSLやFastCGIのサポート、 リバースプロキシ、バーチャルホスト、メールプロキシといった 便利な機能も

  • ウノウラボ 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: symfony/Doctrineのキャッシュ機能

    symfonyプロジェクト全体で共通で利用される設定は、ProjectConfigurationクラス(config/ProjectConfiguration.phpファイル)のconfigureDoctrine()メソッド内で行うとよいでしょう。 以下の例では、クエリーキャッシュと結果キャッシュの両方にmemcachedドライバを設定しています。また、それぞれのデフォルトの存続時間を1時間に設定しています。 class ProjectConfiguration extends sfProjectConfiguration { public function setup() { $this->enablePlugins('sfDoctrinePlugin'); } public function configureDoctrine(Doctrine_Manager $manager) {

    hiroomi
    hiroomi 2010/05/17
  • ウノウラボ Unoh Labs: OAuth プロトコルを知る

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

  • ウノウラボ Unoh Labs: 快適なsshクライアント生活

    はじめまして、HIROKIです。 大規模コンテンツの開発に携わっていると数多くのサーバにsshでログインすることになります。その手間を軽減するために $HOME/.ssh/config を設定してみます。 sshコマンドを簡略化 例えば dev01.labs.unoh.netというサーバにsshでログインするのであれば、 $ ssh -i ~/.ssh/id_rsa.unoh hiroki@dev01.labs.unoh.net という感じのコマンドでログインしているかと思います。 これを $ ssh dev01 でログインできるように設定してみましょう。 Host dev01 User hiroki HostName dev01.labs.unoh.net IdentityFile ~/.ssh/id_rsa.unoh 秘密鍵を複数使いわけている人はIdentityFileを指定すると便

    hiroomi
    hiroomi 2010/03/12
  • ウノウラボ Unoh Labs: Flash Lite初学者の為のまとめ

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

    hiroomi
    hiroomi 2010/01/20