タグ

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

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

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

  • ウノウラボ by Zynga Japan: <?php を閉じてみる

    こんにちは、7月からphpを始めた細川です。 phpの作法で<?phpではじめたファイルを?>で閉じない、というものがあります。これまで、あまり考えずに従ってきたのですが、よく考えてみると「タグを閉じない」というのは直感的には不作法です。 検索して調べてみると、以下のような記事が見つかりました。 http://zendframework.com より引用 PHP コードのみからなるファイルでは、終了タグ ("?>") は決して含めてはいけません。これは必須なものではなく、 終了タグを省略することで、ファイルの最後にある空白文字が出力に影響することを防ぎます。 「決して」含めてはいけない。ということで、わりと大事のようです。 そこで、実際にタグを閉じると何がおこりうるのか調べてみることにしました。 まず、以下のようなphpファイルtest.phpを用意しました。

    hiromark
    hiromark 2010/12/29
  • ウノウラボ Unoh Labs: Tips for nginx

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

  • ウノウラボ Unoh Labs: エンジニアが買い物をするために

    OSIの参照モデル、って知ってますか? ハジメマシテ、低レベルエンジニアのnsatohです。 そうそう、あの「Layerほげがフガだから、」とかスーツ来たIT系がよく言うキーワードのアレです。 でも、インターネット的な、ゲームとかアプリケーションとかを提供するには、たしかにOSI参照モデルを知っていると前提しての会話が楽なので、知らなかった人は是非、知っておいてください。いわゆるバズワードです。 で、OSI参照モデルにはLayer1からLayer7が定義されていますが、まことしやかに「あれって10階層じゃね?」と、言われること幾久しくです。 Layer0の土建層、Layer8の金銭層、Layer9の政治層とかとか、バグフィックスがハゲシクメンドくちゃいけれど、あきらめましょう的なものがあります。あとはLayer10に宗教層、いわゆるエンジェリック・レイヤーを入れる向きもありますが、とも

    hiromark
    hiromark 2010/08/01
    なるほどね。
  • ウノウラボ 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を指定すると便

  • ウノウラボ Unoh Labs: 国産MySQLストレージエンジン「Spider」の作者、斯波健徳氏に聞く

    こんにちは。中村です。 MySQLにはMyISAM、InnoDBCSVなどのいくつかストレージエンジンがありますが、皆さんはSpiderというストレージエンジンを聞いたことはありますでしょうか。Spider Storage Engineは斯波健徳さんにより作成されたDatabase Shardingを可能にするストレージエンジンでMySQL 5.1で利用可能です。 先日、某集まりで斯波さんとお会いしたときにSpiderを作っているということを教えてもらったので、早速詳しい内容を教えてもらうことにしました。 ※Spiderについての説明資料はMySQLカンファレンス 2009にて斯波さんが発表されたときのスライドがあります。スライドの直リンク(zip) Spider Storage Engine について posted by (C)フォト蔵 Spider Storage Engineとは?

  • ウノウラボ Unoh Labs: diff with C++

    ミートソーススパゲティを作るときは、ミートソースから作るのが信条のbokkoです。それはさておき、今日はdiffのお話です。 diff diffは指定した2つのファイルの差分を求めるコマンド、もしくはその差分そのものを指します。普段から何気なく使用しているコマンドですが、その中で使われているアルゴリズムは結構難しいです。 差分を計算するということ 差分を計算するというのは以下の3つを求めることに帰結します。 ・Levenshtein Distance(Edit Distance) ・LCS(Longest Common Subsequence) ・SES(Shortest Edit Script) 上から順に1つずつ説明していきます。 Levenshtein Distance Levenshtein Distanceは2つのシーケンスの違いを数値化したもので編集距離とも言います。これは後述

    hiromark
    hiromark 2008/11/14
    考え方のプロセスがいろいろ応用できそうだ。
  • ウノウラボ Unoh Labs: daemonsで簡単デーモン

    komagataです。 mongrelを入れるときに一緒に入るdaemonsというライブラリが気になったので調べてみました。 daemonsは大まかに、サーバープログラムをstart/stop/restartなどのおなじみのやり方で操作できるようにするラッパーの機能とプログラム中で使って自分のプロセスをデーモンにする機能があるそうです。 引数を出力し続けるプログラムをデーモンにしてみたいと思います。 puts_arg.rb: #!/usr/bin/env ruby loop do puts ARGV.inspect sleep(1) end 実行結果。 $ ruby puts_arg.rb a b c ["a", "b", "c"] ["a", "b", "c"] ["a", "b", "c"] (略) これにdaemonsを使ってラッパーを用意します。 puts_arg_control.

    hiromark
    hiromark 2007/10/25
    へえ!!!!
  • ウノウラボ Unoh Labs: 「サーバサイドCSS」という選択

    miyakeです。突然ですが、CSSって書くの面倒ですよね。何らかのプログラミング言語を知っている人間から見ると、CSSというのは言語としてはかなり貧弱です。 もちろんCSSはプログラミング言語では無いので、それを貧弱だと言われてもCSSもいい迷惑かも知れません。でも、 div#content { ~ } div#content div.entry { ~ } div#content div.entry p { ~ } div#content div.entry ul { ~ } こういう大したことをしていないのに、コードがどんどん長くなっていくのを見ると、もう少し何とかならないものかと思ってしまいます。 コピペするにしても、 コピー元にカーソルを移動 範囲選択してコピー コピー先にカーソルを移動 ペースト という操作が必要になります。数が増えてくるとコピペのミスも発生しかねませんし、id

    hiromark
    hiromark 2007/09/11
    便利かも。
  • ウノウラボ Unoh Labs: JavaScriptライブラリといえば jQuery(入門編)

    こんにちわ。山下です。 最近、私の周りではJavaScriptライブラリといえば、jQuery の名前がまず最初に挙がってくるようになってきました。今回は、jQueryって何が便利なの?っていう人向けに、ポイントを掻い摘んで説明します。 1.名前空間を汚さない 他のJavaScriptライブラリとかだとStringとかArrayを直接拡張してたりしますが、jQueryはグローバルな名前空間を汚しません。eachとかmapのような便利な関数もすべてjQueryオブジェクトの属性として定義されています。 jQuery.each, jQuery.extend, jQuery.grep, jQuery.map, jQuery.merge, jQuery.trim, etc. また、標準では $ にショートカットが割り当てられるのですが、jQuery.noConflict()と書くことで proto

    hiromark
    hiromark 2007/08/29
    入門します、これから。
  • ウノウラボ Unoh Labs: 5分でできるウェブサーバのセキュリティ向上施策

    こんにちは、naoya です。 先日、ウノウが公開しているサービスの中にいくつかの脆弱性が見つかったため、社内で「脆弱性発見大会」を開催しました。この大会は、二人一チームに分かれてウノウが公開している各サービスの脆弱性を見つけることを目的とした大会です。結果は、いくつか各サービスに脆弱性が見つかり、すぐに修正することができました。 僕のチームは、ウノウのホームページやラボブログなど細かいサービスを担当しました。その中で、いくつかのウェブサーバにセキュリティ上あまい設定がありました。 今日は、ウェブサーバのセキュリティ向上のための設定方法についてエントリします。なお、ウェブサーバはApache 2.2系を前提としています。 サーバ情報の表示しない ウェブサーバ(Apache)で、404などのエラーページを表示したとき、ヘッダやページの下にApacheやOSのバージョンが表示されます。こういっ

    hiromark
    hiromark 2007/08/27
    メモメモ
  • ウノウラボ Unoh Labs: Flashの新しい可能生 Asynchronous Flash + XMLSocket

    尾藤正人(a.k.a BTO)です 昨日ラボプロジェクトとして実験的に開発している新規プロジェクト「プラッシュ」をβ公開しました。 簡単に説明するとプラッシュはFlashとXMLSocketを使う事でブラウザだけでネットワーク対戦ができるゲームポータルサイトです。 今回はプラッシュで使われているFlashとXMLSocketを使ったアプローチについて考察してみたいと思います。 はじめに 正直に告白すると僕はFlashを一行も書いた事がありません。(汗) なので、Flashの部分に関してはFlash側の開発者であるyossyに聞いたり、Webで調べた情報がほとんどです。 不正確な情報が含まれてる可能性がありますが、その辺を考慮していただければと思います。 FlashのXMLSocketで何ができるのか FlashのXMLSocketを使うと直接ソケット通信を行う事ができます。 AjaxやCo

    hiromark
    hiromark 2007/08/22
    昔、ちょっとだけこれ使って遊んだなー。もう忘却の彼方だけど、復習してみっか。
  • ウノウラボ Unoh Labs: Web APIとしてのWebDAV

    komagataです。 社内の勉強会でWebDAVについて発表したので資料を公開します。 (この資料は少し言い過ぎなので2割増しで聞いといて下さい) [<< Prev Next >>] WebDAV.pdf(741KB)

    hiromark
    hiromark 2007/04/24
    すごいおもしろい視点。
  • ウノウラボ Unoh Labs: コマンドラインで作業する上で知っておくといいテクニック

    ちょうど入社から半年で有給発生しつつも日が退職日になりましたjokagiです.もう花見の季節ですね!! ちょうどラボブログの当番のようで,退職記念にjokagiが普段の開発で使っているテクニックとは呼ぶにはおこがましい小手先の技をつらつら書いてみたいと思います. これを覚えればjokagi程度には仕事をこなせるかも!? コマンドの使い方を覚えよう 基的なコマンドの使い方やコンソールなどの使い方は書籍やいろんなサイトで覚えてください. ここでは一応一通りなんとなくでもコマンドを扱える人がさらに覚えるといいかもしれないことだけを記述します. -03-20T23:59+0900"> また,これからの解説はシェルはbash,その他のコマンドの多くはGNU Toolsと呼ばれることのあるGNU findやcoreutilsなどを用いた環境でのオプション例や実行例になります. echo いわゆる指

    hiromark
    hiromark 2007/03/30
    備忘録に。
  • ウノウラボ Unoh Labs: 専用サーバを構築するときにまず行う4つの設定

    こんばんは、最近寒い夜が続いていて自転車通勤がつらくなってきた naoya です。 ウノウでは、フォト蔵や社内システムなどは、すべて専用サーバを構築して運用をしています。 今日は、専用サーバを構築するときに、僕がウノウで学んだ専用サーバでまず行う4つの設定を紹介します。 なお、今回の設定はすべて Fedora Core 5 をもとにしています。 (1) sudo を使えるようにする sudo コマンドを使えるようにします。sudo コマンドは、別のユーザとしてコマンドを実行できるコマンドです。 sudo コマンドを使えるようにするには、/etc/sudoers に sudo を許可するグループを追加します。次の例は、unoh グループを追加する例です。 %unoh ALL = (ALL) ALL, !/bin/su, /bin/su postgres, /bin/su * postgres

    hiromark
    hiromark 2007/03/15
    専用サーバのセキュアな設定にむけて。
  • ウノウラボ Unoh Labs: テストという名前のワインを入手する方法

    こんにちは!やまもと@テスト番長です。 最近次第に春めいて参りました。 そろそろ巷は卒業シーズンかと思われます。 この春ウノウを卒業するQAスタッフはおりませんが、 時期的に贈り物やらアルコールやらが活躍する時ですね。 今回はテストという名前のワインを手に入れる方法をご紹介します。 そういう名前のワインが世界のどこかにあるのかというと、恐らくありません。 完成品の名前にはさすがに付けられない単語のようですね。。。 無ければ、作ってしまいましょう。 QAエンジニアへの贈り物にどうぞ。 1) ワインとサインペンを用意する。 「EST! EST!! EST!!!」というワインと、サインペンを一用意します。 エスト・エスト・エストは自分のような庶民が普段手をつけても心が痛まないような、 お値打ちで良い白ワインです。機会があれば是非一度お試しを。 テストという名前のワインを入手する方法

    hiromark
    hiromark 2007/03/14
    なんだこれwww
  • ウノウラボ Unoh Labs: 日本語とPHP

    yamaokaです。 PHPで日語を扱う場合、mbstringモジュールを利用する場合が多いと思います。 日語に特有の機能(カタカナの全角/半角変換など)も備わっていて、とても便利です。 しかし、日以外ではmbstringモジュールはあまり利用されていないようです。 代わりに利用されているのがiconvモジュールで、 最近話題のフレームワーク、symfonyでも 国際化の機能を実現するために内部で利用されています。 iconvモジュールはPHP 5でPHP体に組み込まれました。 別途用意して組み込む必要があるmbstringモジュールと違って、最初から使用できるので便利ですね。 PHPのマニュアルのiconv関数のページを見ると、 いくつかの関数が定義されているのがわかります。 それぞれ、mbstring関数との 対応表を作ってみました。 iconv関数mbstring関数

    hiromark
    hiromark 2007/03/06
    PHP の日本語まわりのこと。
  • ウノウラボ Unoh Labs: キャバ嬢メソッド 〜 キャバクラ嬢に学ぶWebサービス運営のコツ

    こんにちは、hideです。 皆さんは、キャバクラって行ったことありますか? キャバクラとWebサービス、この一見、まったく関連が無いように見える2つのサービスですが、実は多くの点で共通点があります。これから新しくWebサービスを作ろうとしている人、現在Webサービスを運用している人は、彼女らの接客態度やサービス精神からいろいろと学ぶことができます。 では、順を追って紹介していきましょう。 1. 見た目が大切 第一印象で悪いイメージを持たれて損をしないように、思いっきりお洒落してユーザを迎えましょう。キャバクラでは香水の香りで嗅覚を刺激するなど、五感を活用した接客というのが行われています。しかし、Webサービスの場合、嗅覚/味覚/聴覚/触覚はないので、使えるのは視覚のみになります。より見た目が重要になってきます。 2. おもてなしの精神 とても基的な事なのですが、数あるお店(Webサイ

    hiromark
    hiromark 2007/02/22
    おおおおお。すばらしいたとえ。
  • ウノウラボ Unoh Labs: テスターを雇わない経営者の誤った理屈 best5

    こんにちは! やまもと@テスト番長です。 みなさんはJoel on Softwareという(とWEBサイト)をご存知でしょうか。 以前ウノウラボでもnaoyaさんがThe Joel testのエントリを書いています。 サイトの記事をひとしきり読んだあとで、は買って積んであったのですが 先日ふと手に取りぱらぱらページをめくっていたところ、 テストについて書いた面白い章があったのでご紹介します。 ■ 第22章 テスタを雇わない(間違った)理由、ベスト5 1.バグは怠惰なプログラマから出てくる →人は誰でもうっかりミスを犯します。他人の目から見たチェックをすべきです。 2.私のソフトウェアはWeb上にある。バグはすぐに直せる →リリース後の修正はずっと高くつくものです。 3.ユーザがソフトウェアをテストしてくれる →会社の品質に対する印象を悪くします。 4.テスタとして優れた資質のある

    hiromark
    hiromark 2007/02/18
    なるほど。
  • ウノウラボ Unoh Labs: 自己学習で分類精度を向上させるベイジアンフィルタ

    20070201勉強会_ベイジアンフィルタ posted by (C)フォト蔵 ベイジアンフィルタを自己学習を行う事で文書を高精度にフィルタリングすることができるシステムです。 SpamassassinやPOPFileのようなspamメール振り分けソフトに使用されているのでご存知の方も多いと思います。 ベイジアンフィルタというとspamメールの処理で広く使われているイメージがありますが、 これをwebの世界でも応用してみれば面白いものができるんじゃないかと思っていろいろ開発してたのですが、 結局実現には至りませんでした。 このままではもったいないので、これまで勉強してわかってきたことを勉強会で発表しました。 勉強会の様子の動画と資料を公開します。 bayes.pdf 僕自身専門家ではないので、いろいろ間違ってる部分もあるかと思います。 その時はご指摘いただければ幸いです。

    hiromark
    hiromark 2007/02/06
    学生んとき以来だなあ。色々使えそうなので可能性を考えてみる。