タグ

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

  • ウノウラボ by Zynga Japan: iPhone向けのサイトを作るときのちょっとした気配り

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

  • ウノウラボ 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をご存知でない方もいらっしゃるかと思いますので簡単に

  • ウノウラボ Unoh Labs: 携帯のエラーメールの種類

    harukiです。 メールを送信するサイトの場合、メールアドレスのクリーニングは定期的に行うべきです。 そのためにはエラーメールを解析しなければなりません。 そこで、エラーメールの種類をまとめてみました。 SMTPエラー 存在しないメールアドレスや、正しい形式でないメールアドレスの場合は、 DoCoMo,au,SoftBankの3キャリアともSMTPエラーになります。 例として、以下の条件でメールを送信したとします。 From: sender@example.com Return-Path: bounce@example.com To: アドレス@docomo.ne.jp MTAにより異なりますので、ここではPostfixを例にします。 Postfixではmultipart/reportのメールがbounce@example.comに届きます (※ 必要な情報のみに省略しています

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

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

  • ウノウラボ Unoh Labs: JavaライブラリでOAuth認証

    みなさん、こんにちは。 7月にウノウに入社しました細川です。 私は、これまでいろいろなオープンソースの恩恵にあずかってきましたが、こちらから貢献をしたことは、ほとんどありませんでした。この記事がお役に立てれば幸いです。 ウノウ入社前にはJavaを主に使っていましたので、今回は、JavaのOAuthライブラリを使う方法について書いてみたいと思います。 OAuthとはOAuthは、セキュアな認証手段として多く使われてきています。 twitterもweb APIの認証手段として採用しています。 OAuthを使った認証を行うことで、ユーザーはアカウントやパスワードを知られることなく、第三者サービスにAPIの使用を許可することができます。また、その認証は第三者サービスに関係なく取り消すことができます。 OAuth Community http://oauth.net/ OAuthコミュニティが各種プ

  • ウノウラボ 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: zshはじめました。

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

    Rewish
    Rewish 2010/05/31
  • ウノウラボ Unoh Labs: IPアドレス帯をチェックする

    こんにちは。新入社員の ryosuke です。 ウノウに入社してから携帯サイトに関わっているのですが、これまで格的に携帯サイトを構築した事が個人的に無く、ノウハウが足りず周囲に助けて貰ったりしながら楽しくやってます。という訳で携帯のノウハウをご紹介という訳にはいきませんが、その周辺知識に絡んで今回はIPアドレス周りの処理について書かせてもらおうと思います。 携帯専用サイトでは携帯端末以外からのアクセスを制御(アク禁)したい場合があると思います(なんといっても携帯専用ですから)。 USER_AGENT等は簡単に変更できてしまうので、携帯キャリアのゲートウェイ経由で接続しているかどうかをチェックする事になります。ゲートウェイのIPアドレス帯は各キャリアのWEBサイトで公開されているのですが、69.208.0.0/24のようなIPアドレスの範囲を表現できるCIDR表記で公開されており、クライア

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

    Rewish
    Rewish 2010/05/22
    写真付き
  • ウノウラボ 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) {

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

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

    Rewish
    Rewish 2010/03/18
    感謝!
  • ウノウラボ 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: Flash Lite初学者の為のまとめ

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

  • ウノウラボ Unoh Labs: Amazon Web Services入門: PHPとEC2/S3/SQS/SimpleDBで作るビデオ共有サイト

    新年あけましておめでとうございます、五十川です。 PHPデベロッパー向けのAmazon Web Services(AWS)のリソースはhttp://aws.amazon.com/php/にまとめられていますが、そのArticles & Tutorialsカテゴリーにある、Introduction to AWS for PHP Developersという記事は、AWSの主要サービスの概要と、PHPによるその操作を学ぶチュートリアルで、ここで取り上げられているサービスに初めて取り組むPHPデベロッパーには格好の入門となっており、ここではこのチュートリアルを紹介したいと思います。 また、このチュートリアルはAmazon純正のライブラリを利用していますが、AWS用のライブラリには様々なものがあり、この記事の最後ではそのひとつ、Tarzanを紹介しようと思います。 なお、以下のチュートリアルのスクリ

    Rewish
    Rewish 2010/01/04
  • ウノウラボ Unoh Labs: PHPテンプレートエンジンTwigをいじってみました

    今年のX'masは一人で高いシャンパンを買って飲もうとおもってるKietaです。 しばらく、情報収集をさぼっている間に、symfonyの開発元であるSensio Labsから、PHPのテンプレートエンジンTwigが出ていたので、1時間ほど試してみました。 つかってみたよーとか、ここきついとかありましたら、コメントなどで教えていただけるとうれしいです。 インストール 家サイトのINSTALLATIONを参考に僕はtar.gzのファイルを手動どインストールして試してみました。 インストールはpearコマンドなどでもできるようです。 というか、www.twig-project.orgのフッタを見てみるとPEAR Serverも自作してること発見してびっくりました。 テンプレート側 テンプレート側のコードは下記のように記述します。 lt;html> <title>title</title> </

    Rewish
    Rewish 2009/12/28
  • ウノウラボ Unoh Labs: Q4Mを触ってみる

    yukiです。そろそろクリスマスですね。みんな浮かれていればいいと思います!最近急に目が悪くなって、ツリーの赤色電球と居酒屋の赤提灯の色が判別出来なくなってきました。嘘です。 今回は、みんな大好きメッセージキュー、Q4Mを触ってみた感想を今更ながらレポートします。 公式ページはこちらhttp://q4m.31tools.com/ Q4Mはサイボウズラボの奥 一穂氏が開発されており、MySQLの5.1以上でストレージエンジンとして利用できるメッセージキューで、MySQLプラグインとしてGPLライセンスで配布されております。 特長 MySQLのストレージエンジンとして利用できるので、テーブル作成時にストレージエンジンを指定するだけで利用できます。 CREATE TABLE hoge ( ... ) ENGINE = QUEUE キューの作成(enqueue)は通常のレコード操作と同様にINSE

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

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

  • ウノウラボ Unoh Labs: Tokyo Tyrantを使ってみて

    yamaokaです。 通常のデータベースとしてではなく、Key-Valueストアの選択肢として Tokyo Tyrantを少しずつ使ってみています。 実際に運用するにあたって、いくつか行ったことを書いておきます。 ちなみに、現在の構成は1台のみでの運用です。 マルチマスター構成やレプリケーションなどは行っていません。 PHPのクライアント Tokyo Tyrantを利用するのはPHPのアプリケーションからです。 最初はmemcachedプロトコルを利用して PECL::memcacheを使っていましたが、 データの大量更新を連続で行うとデータの取得が正常に行えなくなる現象が発生したため、 Net_TokyoTyrantを一部改変したものをライブラリとして利用しています。 パフォーマンスではPECL::memcacheに負けますが、クリティカルな処理をしていないこともあり、 今のところ問題に

  • ウノウラボ Unoh Labs: サーバのネットワーク速度の調査/測定方法

    こんにちは。kyagi です。先日データセンタ内のサーバ群のうち、なぜか特定の1台だけネットワークの速度が極端に遅いという問題がありました。今回はサーバマシンのネットワーク速度の測定方法と原因についてお話しします。同様のトラブルが発生している方のお役に立てば幸いです。問題解決までの手順としては以下になります。 1. 現在の状態を調べる 2. ハード/ソフト含めて考えられる原因をいくつか挙げる 3. 原因について改善されるまでひとつひとつ検証していく まず現在の NIC の HW 情報とドライバを lspci で調査します。ここでは Broadcom の NetXtreme BCM5722 という NIC を使用していることがわかります。 # lspci -vvv | grep Ether 01:00.0 Ethernet controller: Broadcom Corporation