タグ

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

  • ウノウラボ Unoh Labs: Pythonのテンプレートエンジン

    こんにちは、chihiroです。今回はPythonのテンプレートエンジンを紹介したいと思います。 Pythonを使い始めた頃、PHPのSmartyや、JavaのVelocity/FreeMarkerに相当するテンプレートエンジンとして、Pythonにはどんなものがあるのか、どれを使えばよいのかよく分からなかった経験があるので、これからPythonを始める方の参考になれば幸いです。 テンプレートエンジンを使う目的の一つに、Webサイト構築・運営の容易化ということがあると思いますが、今回はテンプレートエンジンの性格をざっと紹介したいと思いますので、HTMLの出力ではなく、次のような単純なテキストの出力を例にとって話を進めていきます。 * Hello unoh!! ** Unoh services - photozou - eiga seikatu - video pop - sugu.cc C

  • ウノウラボ Unoh Labs: Tips for nginx

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

    ouest
    ouest 2011/04/05
  • ウノウラボ Unoh Labs: リビドーに赴くままlibmemcachedをPHPから使ってみる

    Keita です。 浴衣姿の女性は人類の宝だと思います。 さて、phpのpeclのmemcache'd'ってご存知でしょうか。 長い歴史をもつpecl memcache(名前近過ぎだ)はその拡張の中でmemcachedプロトコルの実装をしていますが、pecl memcachedはlibmemcahcedにその実装を依存を任せています。 利用するときの違いとしては memcache: インストール時に他のライブラリに依存しない 長いこと使われてるライブラリなので安定性はある memcached memcacheよりも利用できる機能が多い 今後もプロトコルの拡張があったときにlibmemcachedに追従するだけなので対応が早いことが予測される という点が挙げられます。(まだまだ一杯ありますが・・) memcacheよりも利用できる機能が多いというのはかなり大きく、具体的に言うと、set時に

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

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

  • ウノウラボ Unoh Labs: オープンソーシャルモバイルのAPIアクセスで注意しているポイント

    こんにちは。中村です。 ウノウで運用しているまちつく!はモバイル向けソーシャルアプリとしてmixi版、モバゲー版をそれぞれ展開しています。 開発するにあたって通常のウェブサイトとはいくつか違うポイントに注意しています。プロフィールや友達などの情報を取得するためにプロバイダが提供するAPIを利用することになりますし、通信も「携帯電話 <= プロバイダサーバ => SAPサーバ」という経路になるため、様々な箇所でプロバイダを意識した開発を行う必要があります。 今回は特にAPIを利用する際に注意しているポイントをいくつかピックアップしたいと思います。 APIアクセスをできるだけ減らす オープンソーシャルモバイルに限らず基的なことですが、APIへのアクセスを可能な限り減らすことでSAP・プロバイダ双方の負荷軽減になり、かつリクエスト毎のレスポンス向上に繋がります。まちつく!ではプロバイダからキャ

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

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

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

  • ウノウラボ Unoh Labs: Flash Lite ことはじめ。

    こんにちは。 コーヒー飲むならマンデリンな ryosuke です。ただ実際の所深いこだわりはありません。 早速ですがFlash Lite は携帯向けという事もあって少なからず制限があります。今回はその辺りを中心に特徴をざくっとまとめてみようと思います。 実装バージョンの普及状況 例によってキャリア毎に制限が異なったりするので Flash Lite の仕様と同時に各キャリアの実装状況を把握する必要があります。 モバイル用のFlashとして登場したFlash Liteですが、現在3キャリアあわせると 1.0/1.1/2.0/3.0/3.1 があります。 1.0はdocomoとSoftbankの端末のいくつかに存在する程度で余り数はありません。auは1.1の実装から提供されています。 普及率やスペック、上位互換性から1.1でパブリッシュされたswfのコンテンツが作りやすく、最も多くのユーザーにリ

  • ウノウラボ Unoh Labs: 分かったつもりになるAndroid開発方法

    こんばんは。うちだです。 皆さんAndroid携帯は購入しましたか? 社内ではiPhone勢が多く、Android携帯所持は私だけという悲しい現実を目の当たりにしています。 そこで以前、社内勉強会にて、Androidの素晴らしさを皆に知ってもらおうと発表した内容が今回のエントリーです。 今回のエントリーでは開発者視点で分かったつもりになる為に、広く浅く書いてます。 気で分かるには公式ドキュメントや書籍及び参考リンクをご参照ください。 参考: Android | Official Website 特徴 環境 Linuxカーネル BSD UNIXのlibc アプリケーションはDalvikと呼ばれるVM上で動作 主にJavaで開発 Google提供のSDKあり Eclipseプラグインあり アーキテクチャ 参考: わかった気になる気になるandroid メリット マルチタスク inten

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

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

  • ウノウラボ Unoh Labs: WEBアプリのテストに便利なFirefoxのアドオン

    こんにちは! のりPと同い年ですが、クラブ通いは●年前に卒業しました やまもと@テスト番長です。 早いもので、もうお盆の帰省シーズンですね。 今年の夏は世間の騒がしい日々が続いておりますが、みなさんお変わりございませんでしょうか。 さて、Firefoxといえば豊富なアドオンですが、今回はテスター目線で WEBアプリケーションのテストに便利なFirefoxアドオンを並べてみたいと思います。 Firesizer ブラウザの画面サイズを整えることが出来ます。 InFormEnter 準備しておいた値を入力フォームにセットしてくれます。 MeasureIt 画面上のピクセルサイズを測ることが出来ます。 Regular Expressions Tester 正規表現での検索がその場で出来ます。 FireShot キャプチャにメモを書き込んだり出来ます。 Web Developer F

  • ウノウラボ 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: 文字コードと携帯絵文字

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

  • ウノウラボ Unoh Labs: シェルの仕組み(後編)

    ウノウでは特に最近、積極的にエンジニアを採用しています。 採用ページをご覧になり興味のある方、ぜひご応募ください!! Find Job!でも募集開始してます! 尾藤正人(a.k.a BTO)です 前回の勉強会でシェルの仕組み(前編)というのをやりましたが、今回はその後編をやりました。 前編と合わせて見ていただくと、シェル内部で使われている仕組みが一通り分かるようになるかと思います。 資料及び動画を公開しますので、もしよろしければご覧ください。 Shell 2

  • ウノウラボ Unoh Labs: ImageMagickでGIFアニメをリサイズ

    ウノウでは特に最近、積極的にエンジニアを採用しています。 採用ページをご覧になり興味のある方、ぜひご応募ください!! こんにちは、いそがわです。 PHPでアニメーションGIFを操作しようとすると、GDはアニメーションGIFをサポートしていないのでImageMagickを利用することになるかと思いますが、いかんせんImageMagickはメソッドの数がベラボーで分かりづらく、Imagickに至ってはまだまだドキュメントがスッカスカで、間違ってたりもするためなのか、意外とアニメーションGIFのリサイズ処理に混乱が見受けられるようなので、ご存知のかたには今更な話題ですが、あらためて。 ImageMagickでアニメーションGIFを“お手軽に”リサイズする基的な手順は以下のような感じです。 シーケンスのイメージの“結合”(coalesce) 各イメージを順次リサイズ 最適化(必要なら) このう

  • ウノウラボ Unoh Labs: MySQL オペミスでデータが破損してしまった場合の復旧方法

    こんにちは satoです。 オペミスで update に where句を付け忘れたり、プログラムのバグでデータが破損してしまったりした場合でも、バイナリログには更新SQLがすべて書き込まれるので、バックアップデータからオペミスが起こるまでの全てのSQLを流し込めれば、元の状態に戻すことは可能です。 •バイナリログを取っている •オンラインバックアップをとっている(mysqldumpMySQLを止めた状態でのcpによるバックアップとバイナリログ) •バックアップ時点でのバイナリログの書き込み位置を保存している 以上のような状態でデータが壊れた時の復旧手順をまとめてみました。シナリオとして •ある1カラム email をupdateしようとしたら、間違ってwhere 句を付け忘れ 全レコードをupdateしてしまった •気がついたのが半日後 というオペミスが発生したとします 1) データベー

  • ウノウラボ Unoh Labs: 携帯とCookieドメイン

    こんばんわ五十川です。 しばらく前になりますが、ソーシャルスクラップブックclippのモバイル版をリリースしました。cippモバイルではドコモ以外は、セッション管理にCookie(のみ)を利用することにしたのですが、そのときCookieドメインではまりました、というお話。 PC向けclippのドメイン名は、トップページなどのユーザ共通ページは「clipp.in」、ユーザ個別のページは「{username}.clipp.in」(例えばclipp-info.clipp.in)となっています。ケータイサイトをマルチなサブドメインにする例はあまり多くないと思いますが、clippモバイルでは、ルーティング直すのめんどくさいという怠け者な理由で、PC版のドメイン名がそのまま使えればいいなと思って取り掛かりました。しかし、その目論見はあっさりと破綻することになるのでした。 以下の内容は手元の数多くない端

  • ウノウラボ Unoh Labs: いまさらコマンドラインの便利さを主張してみる

    尾藤正人(a.k.a BTO)です 僕の偏見かもしれませんが、Webプログラマの方の多くはコマンドラインをうまく活用できてないように感じます。 コマンドラインを使いこなすには最初にある程度の勉強が必要で、その敷居の高さのせいであまり便利さが感じられないのかも。 そこで、今更ながらコマンドラインの便利さを高らかに主張してみます。 ワイルドカード ワイルドカードという特殊文字を使うと特定パターンのファイル名を簡単にしてできます。 これは知ってる人も多いので、詳細は割愛。 ワイルドカードでうまくいかない場合は後述するfindコマンドを使います。 zshのワイルドカード zshのワイルドカードを使うと、ちょっとしたfindコマンドのようなファイル名のマッチができます。 簡単に紹介すると次のようなことができます。 echo **/foo # 再帰的に 'foo' にマッチ echo *(/)

    ouest
    ouest 2008/05/21
  • ウノウラボ Unoh Labs: デザイナの立場からの「デザイン依頼のコツ」

    こんにちは。yamazakiです。 このブログをご覧になっているのはエンジニアの方が多いと思いますので、デザイナの方とのやりとりをされている方も結構いらっしゃるはず。 社内で「どういうふうに依頼されるのがデザイナとしてはいいもの出てきやすい?」というお話を振られたので今回はそれについて書いてみようと思います。 ※もちろんあくまでこれは私個人が思うところであり、全てのデザイナにあてはまるわけではないと思います。 ので、できればこれをご覧になったデザイナーの皆様も、「こういうふうに依頼してくれると力が発揮できる」というポイントなど書いていただけたら非常に嬉しいです。 また逆に、デザイナにはこういう点気をつけて欲しい、といった、エンジニア視点でのデザイナへのリクエストなどもいただけると嬉しいです。 ---- ビジョン、ゴールを共有するこれは複数の人間が関わるプロジェクトなら当たり前といえば

  • ウノウラボ Unoh Labs: FFmpegで変換した3GPP動画をNTTドコモiモーションのストリーミング再生に対応させる (for Linux)

    isogawaです。 さまざまな形式の動画を携帯電話向けに変換して配信するサービスでは、変換処理をFFmpegで行っている例が多いと思われます。しかしFFmpegが出力する3GPPファイルは、NTTドコモiモーションの、ストリーミング(プログレッシブダウンロード)方式での再生はできません。QuickTime Proや携帯動画変換君で作成した動画はストリーミング再生も可能ですが、変換処理をLinux上で行っている場合には、これらを利用するわけにもいきません(できないことはないですが)。ではどうしたらいいでしょう?という小ネタ。 なにが問題なのか +--ftyp +--free +--mdat +--moov +--mvhd +--trak | +--tkhd | +--mdia +--trak | +--tkhd | +--mdia +--udta 3GPPのファイルフォーマットについては、