Junyaのエントリー一覧 (14)


Firefox 2 RC2 を使ってみる - 対応していない拡張機能も強引に使えるようにする方法
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは、ジュンヤです。 Firefox 2 RC2 をダウンロードして使ってみました。タブやボタンがちょっとかっこよくなっています。 firefox0 posted from フォト蔵 いくつか新機能を紹介してみましょう。 Google検索ツールバーに補完機能がつきました。結構便利です。特に英語のキーワードなどは、スペルミスして検索し、「もしかして○○」と言われることが少なくなります。 firefox1 posted from フォト蔵 ツール > オプション で開くオプションタブに新たにフィードというタブが追加されました。ここで自分がいつも使っているフィードリーダーを選択しておくと、RSSのアイコンやリンクをクリックしたとき、xmlが表示されるかわりに、それぞれのフィードリーダーへの登録画面になります。残念ながら僕が利用している Fresh Reader には対応していませんが、もし...

国際派エンジニアになるための道のり
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは、ジュンヤです。 海外経験のない典型的理系人間が日常会話レベルの英語を話せるようになるまでの道のりがすごい反響です。このブログは持ち回りで書いていて、はてなブックマーク数を競っていたりもするわけで、英語の勉強方法についていつか書こうと思っていた僕としては、先を越されて「やられたあ」と思いました。 上記エントリに書かれている英会話力の勉強方法は、確かに非常に有効で良く纏まっています。何よりも大切なのは、それを成し遂げることですが、偉いのは実際にこれらの方法を継続して実行したことだと思います。 ウノウラボのブログの読者には、いつかはシリコンバレーなど海外で働くんだと夢見ている方も少なからずいるかと思います。4年半サンフランシスコのソフトウェアの会社で国際化のエンジニアをしていた僕からは、基礎となる英会話力がついた後、では実際に外国で働き、外国人と円滑にコミュニケーションしていくための...

開発合宿の Tips
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは、ジュンヤです。 合宿の話でもう少しひっぱりたいと思います。 僕は今回の開発合宿が4回目の参加でした。ウノウで3回、他に百式開発合宿に1回参加しているのですが、その中で学んだ僕なりの開発合宿の Tips を今回は書きたいと思います。 1. 机が良い もう10歳若ければ平気なのかもしれないですが、和室にちゃぶ台、座布団または座椅子でさえも畳の上に長時間座っての合宿はつらいです。腰に来ます。今回お世話になったペンション木馬は、前回の百式開発合宿と実は同じ場所だったのですが、ご好意でずっと食堂のテーブルを使わせていただき、その点では最高の環境でした。 2. デュアルモニタで30%(?)効率アップ デュアルモニタにすると生産性が30%アップする という話があります。前回参加させていただいた百式合宿では合宿慣れされている百式田口さんとサイドフィード赤松さんが液晶ディスプレイを持参していて、...

最強のIDEを追い求める Eclipse + Aptana + TruStudio (+RadRails)
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは、ジュンヤです。 30歳を超えたあたりで急速に脳が老化し始め、物事をすぐ忘れるようになってしまいました。歌手やタレントの名前なんかはなかなか出てきません。若いウノウの他のつわものプログラマーはviやEmacsでコードを書いていたりしますが、僕の場合は、補完機能が優れたIDEでないともうだめです。 というわけで、補完機能が充実した最強の IDE を追い求めてみました。環境は Windows XP です。 Eclipse 最近 Aptana という Web エディタが良いと聞いたので、まずはこれから用意します。Aptana は Eclipse をベースに開発されていて、スタンドアロン版と Eclipse のプラグイン版があるのですが、他にも使いたい IDE があるので、Eclipse をまずインストールした上で、プラグインで拡張していくことにします。 Eclipse はeclipse...

5分でわかる PHP で書かれた Web サービスの国際化(その4)
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

ジュンヤです。 5分でわかる PHP で書かれた Web サービスの国際化(その3)に引き続き、今回が4回目。このシリーズは今回でラストにしたいと思います。 最後は、つい先日βリリースしましたフォト蔵の英語版を例に、メッセージファイルを作成する際や日本語のテキストを英訳する際に気をつけた点をいくつか書きたいと思います。 複数形と単数形の両方が使われる場合は、メッセージファイルに別々に定義する たとえば写真が複数並んでいる箇所の「写真」と写真がひとつしか表示されない部分の「写真」とでは、日本語では同じ「写真」ですが、英語版では、前者は Photos で後者は Photo と表示しなければなりません。メッセージファイルでは以下のように別々に定義しておく必要があります。 # # 日本語メッセージファイル # msgid "Photos" msgstr "写真" msgid "Photo" msg...

5分でわかる PHP で書かれた Web サービスの国際化(その3)
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

ジュンヤです。 5分でわかる PHP で書かれた Web サービスの国際化(その2)に続き、今回はメッセージの切替えの例を紹介したいと思います。これらはフォト蔵とその英語版PhotoZou.comで実際におこなっている例です。(厳密に言うとフォト蔵では、gettext ではなく独自の仕組みを使っていますが、基本的な考え方は全く同じなので、以下同じ事例を gettext に引きなおして説明しています。) まずはメッセージの内容の一部を変数にして自由に入れ変えたいという場合。 エラーメッセージで「○○は△△文字以上です。」と表示したいとき、 msgid "%1$s has exceeded the limited capacity of %2$s characters." msgstr "%1$sが%2$s文字以上です。" msgid "Your Comment" msgstr "コメント" ...

5分でわかる PHP で書かれた Web サービスの国際化(その2)
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

ジュンヤです。 5分でわかる PHP で書かれた Web サービスの国際化 に続いて gettext の話。 以下、英語で「Hello」、日本語で「こんにちは」と表示する簡単なプログラム hello.php です。 <?php $language = 'en'; if (ereg('ja', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $language = 'ja_JP'; } // Set locale and default domain. putenv("LANG=$language"); setlocale(LC_ALL, $language); $domain = 'messages'; bindtextdomain($domain, "/var/www/html/locale"); textdomain($domain); // O...

5分でわかる PHP で書かれた Web サービスの国際化
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

ジュンヤです。 I18Nって何のこと? に続き国際化の話。 Web サービスを日本以外で使ってもらうためには、あたりまえの話ですが、表示されているテキストを翻訳しなければなりません。表示されるテキストをコードに直接書いてしまうと、翻訳するときが大変です。たとえば、簡単な例ですが、 <? echo "こんにちは"; ?> というファイルを英語に翻訳するとします。英語の翻訳者は英語に関してはプロ中のプロ、しかしプログラムのことは何もわからないとすると、 <? echo Hello ?> と修正しましたが、" や ; を削除してしまって、プログラムを壊してしまうかもしれません。 上記は極端な例で、プログラム自体が非常に簡単なので、間違いが起きることは考えにくいですが、何千行、何万行というコードを思い浮かべてもらえれば、そこに直接テキストが埋め込まれていれば翻訳が非常に難し...

オープンソースの醍醐味
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは、ジュンヤです。 以前、オススメ機能には Vogoo がオススメというエントリーで、映画生活のオススメ機能に使っている「協調フィルタリング」を実装できる Vogoo というライブラリを紹介しました。 その Vogoo の新しいバージョンが先月リリースされたのですが、映画生活のためにカスタマイズした部分、オススメの対象をフィルタリングできる機能、が正式バージョンに取り込まれていました。これはたとえば映画作品を勧めるときに、対象を「公開中の作品」といった特定のサブグループに絞ることができます。 これによって、もし今後 Vogoo に新たな強力な機能が盛り込まれたり、重大なバグフィックスがあったとして、ライブラリをバージョンアップする必要になっても、その都度いちいち映画生活用にカスタマイズする必要がありません。 それに、世界のどこかで見知らぬ誰かがこの機能を喜んで使ってくれるかもしれな...

I18Nって何のこと?
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちはジュンヤです。 良く「インターネットは世界中からアクセスできるのだから、ホームページを持つこと、あるいはブログをもつことは全世界に向けて発信することなんだ」というフレーズを聞きますが、実際にはそんなことはありませんよね。内容が日本語で書かれていれば、実質的に発信先は日本国内、あるいは世界全体としても日本語が読める人たちに限定してしまっています。 せっかく物理的な制約はなくどこの国の人たちにも届けることができるのにもったい話です。ウノウのサービスはスタートは日本からとしても、つねに海外に発展させていくことを視野にいれています。 ラボのサービスといえどもその例外ではなく、かなぶんではひらがなを学びたいという海外の方のために英語表示に切り替えられるようになっていますし、アイコンエディタもテキストはなるべく少なく、極力日本語が使われていないので、海外の人にも使えるようになっています。 こ...

オススメ機能には Vogoo がオススメ
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

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

日本のテクノロジー話題を海外向けに英語で紹介する jSpy.us
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちはジュンヤです。 ウノウでは、インターネットの素晴らしい点を、少人数で新しいビジネスを創り、世界にインパクトを与えることができる点だと考えています。そのため、ウノウの各サービスは海外展開を念頭に置いています。 海外展開のためにはウノウの存在を知ってもらう必要がありますが、「広告よりもコンテンツを」ということで、日本のテクノロジー話題を海外向けに英語で紹介する jSpy.us というブログを始めました。バイリンガル(TOEIC 975点!!脱帽)のゆうさんという強力な助っ人とともにこれからどんどんエントリーを増やしていきます。 jSpy.us ではひとつ、読者参加型の面白い試みをおこなっていこうと考えています。皆さんがウェブサイトをみていて「これ、海外に紹介したらきっとうけるだろうなあ」と思ったら、すかさず はてなブックマーク か del.icio.us にブックマークして、jspy...

英語のブログを構築するための Tips
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは、ジュンヤです。 英語で発信するブログを準備中なのですが、そのときにわかったちょっとした Tips を書き留めておきます。 Movable Type の日本語版を使っているのですが、英語のテンプレートを用意するのにしばし悩みました。Movable Type の英語版を別にインストールしてテンプレートをコピーすればいいのか、Six Apart のサイトで用意されているものをダウンロードすればよいのかなど考えたのですが、何のことはない、「投稿者」の使用言語を英語に設定してから新規ブログを作成すればUIが英語のブログを作成できました。 また、英語ブログに良く見られる、「del.icio.us する」「digg する」というリンクの書き方ですが、 Add Links for Del.icio.us, Digg, and More to Blog Posts Digg this post ...

Internet Explorer 6 でかなぶんが落ちてしまう問題について
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちはジュンヤです。 R6025 - pure virtual function call posted from フォト蔵 Google Desktop を使っていて、Internet Explorer 6 でかなぶんをやろうとすると上のような R6025 - pure virtual function call というエラーが表示されて Internet Explorer が落ちてしまいます。 かなぶんの方で回避できないかどうか調査中ですが、とりあえず回避するには Google Desktop を終了してからかなぶんで遊んでください。 ...