Tweet
こんにちは。中村です。 ウノウで運用しているまちつく!はモバイル向けソーシャルアプリとしてmixi版、モバゲー版をそれぞれ展開しています。 開発するにあたって通常のウェブサイトとはいくつか違うポイントに注意しています。プロフィールや友達などの情報を取得するためにプロバイダが提供するAPIを利用することになりますし、通信も「携帯電話 <= プロバイダサーバ => SAPサーバ」という経路になるため、様々な箇所でプロバイダを意識した開発を行う必要があります。 今回は特にAPIを利用する際に注意しているポイントをいくつかピックアップしたいと思います。 APIアクセスをできるだけ減らす オープンソーシャルモバイルに限らず基本的なことですが、APIへのアクセスを可能な限り減らすことでSAP・プロバイダ双方の負荷軽減になり、かつリクエスト毎のレスポンス向上に繋がります。まちつく!ではプロバ...
Tweet
こんにちは。中村です。 アリエル・ネットワークに友人がいるきっかけで、ありえるえりあ勉強会にウノウが参加することになりました。個人的にですが、アリエルさんといえばFirefoxの拡張を作成しているときにFirefox拡張機能(extension)の作り方という記事でとてもお世話になりました。 今回のテーマはテストということで、ウノウからはテスト番長山本がスピーカーとして参加します。 発表予定内容は次のようになっています(告知文より抜粋のため敬称略)。 山本番長【絶版プレミア本に学ぶウェブアプリのテスト方法】 テストの書籍や資料を探すとウェブアプリを対象にしたものは少ないのが現状です。絶版のため高値になっている良書「インターネットアプリケーションのためのソフトウェアテスト」の内容を辿りながら、ウェブアプリのテスト法全般について日本の状況を交えながらお話したいと思いま...
Tweet
こんにちは。中村です。 symfonyを使ってモバイルサイトを作るときにやったことを思い出しながら少し紹介しようと思います。symfonyといってもバージョンは1.0系です。最新のsymfonyでは勝手が違うかもしれませんのでご了承ください。 docomoの場合はURLにセッションIDを埋め込む iモードブラウザ2.0ではないdocomo端末はCookieに対応していないため、セッションを利用する場合にはセッションIDをURLに埋め込む必要があります。これについては解決方法がいろいろありそうですが、私の場合、sfMySQLSessionStorageを利用しようとしたところ親クラスのsfSessionStorageがsession.use_cookiesの値でCookieを使うかどうかを決定していたため、initializeメソッドを継承して分岐を入れることにしました。iniの設定をUse...
Tweet
こんにちは。中村です。 MySQLにはMyISAM、InnoDB、CSVなどのいくつかストレージエンジンがありますが、皆さんはSpiderというストレージエンジンを聞いたことはありますでしょうか。Spider Storage Engineは斯波健徳さんにより作成されたDatabase Shardingを可能にするストレージエンジンでMySQL 5.1で利用可能です。 先日、某集まりで斯波さんとお会いしたときにSpiderを作っているということを教えてもらったので、早速詳しい内容を教えてもらうことにしました。※Spiderについての説明資料はMySQLカンファレンス 2009にて斯波さんが発表されたときのスライドがあります。スライドの直リンク(zip) Spider Storage Engine について posted by (C)フォト蔵 Spider Storage Engineとは? ...
Tweet
こんにちは。中村です。 本日、まちつく!が正式リリースになりました。よろしければ是非携帯でアクセスして遊んでみてください。以前公開しました位置情報ライブラリも利用されています。 さて、PHPでImageMagickを使って画像生成を行うときに、どうもテキストを描画すると無視できないコストがかかることに最近気が付きました。具体的には次のようにImagickDraw::drawImageメソッドによる描画コストです。 <?php $draw = new ImagickDraw(); $draw->setFontSize(20); $draw->setFillColor('#FFFFFF'); $draw->annotation(20, 28, 'Hello World'); for ($i = 0; $i < 1000; $i++) { $img = ne...
Tweet
ウノウでは特に最近、積極的にエンジニアを採用しています。 ご興味のある方は求人ページから、ぜひご応募ください!! こんにちは。中村です。 JavaFXを使って非常に簡単なMIDI楽器を作ってみました。JavaFXならでは、というよりはJavaアプレットのコードを書かずにブラウザでJavaを動かすことができるという動機で、またつまらぬものを作ってしまった感じです。マウスで鍵盤をクリックすると音が鳴ります(インストールされているJavaのバージョンによっては動作しない場合があります)。 javafx( { archive: "http://labs.unoh.net/2009/03/04/Piano.jar", width: 300, height: 182, ...
Tweet
ウノウでは特に最近、積極的にエンジニアを採用しています。 採用ページをご覧になり興味のある方、ぜひご応募ください!! こんにちは。中村です。 少し前になりますが、社内勉強会にてJavaの例外処理について取り上げてみました。ウノウではPHPなどのLLを使うことが多いのですが、Javaの例外処理はよくできていると思っていたので、LL言語中心の人にも参考になるかもしれないと思ったためです。社内勉強会ということで、PHPと比較して違っている点が中心になっています。 例外とは? PHPを含め例外処理がある言語はたくさんありますが、例外を簡単に表現するとエラー検査のための方法として提供されている機構で、throwされcatchされる特徴があります。本来の動作プログラムとエラー処理を明確に分けることができて、コードが理解しやすくなったりメンテナンス性が上がったりします。 例外処理を書かないとコンパイルエ...
Tweet
こんにちは。中村です。 この度は、執筆書籍のご紹介(宣伝)です。Do You PHP?の中の人である株式会社セランの下岡さんと共著でPHPの入門書籍を執筆させていただきました。 入門書籍ではありますが、HTMLにPHPを埋め込んだWebページとしてのサンプルはあまり網羅せずに、できるだけプログラミング言語としての動作や、その周辺知識に触れるようにしています。そのため、第7章に入るまではHTMLはなく、コマンドプロンプトで実行する環境で説明をしています。 また、後半になるに従ってPHPによるWebサイト構築に説明がシフトしてゆくようになっています。 はじめてのPHPプログラミング 基本編―5.3対応 (TECHNICAL MASTER 54)posted with amazlet at 08.10.29下岡 秀幸 中村 悟 秀和システム 売り上げランキング: 83690Amazon.co.j...
Tweet
こんにちは。中村です。 先日、社内勉強会でPL/SQLがどういうものかを浅く紹介しましたので、そのときのスライドを公開します。 ウノウの入る前のことですが、受託開発をやっていたときの経験では、Oracleの現場が8割、SQL Serverの現場が1割、その他の現場が1割という印象でしたが、ウノウも含めてWebサービスではMySQLやPostgreSQLなどのOSSを使うことの方が圧倒的に多いようです。 そういう訳で、Webサービスの構築ではOracleで動作するPL/SQLを触る機会がめっきり少ないかもしれませんが、どういうものかを知っておくのは良いかもしれません。私自身もかなり忘れてしまっていたので、復習もかねて取り上げてみました。 plsql - Upload a Document to Scribd 参考情報...
Tweet
中村です。 PHPで携帯の位置情報を簡単に取り扱うことができるライブラリ「Geomobilejp_Converter」を作りました。もう半年近く前に作ったものですが、コードを少し整えたので公開することにしました。 GPSに対応した携帯では、各キャリアで指定されている特定のHTMLを記述することで、携帯サイトに位置情報(緯度経度や測地系)を送信することができます。この位置情報を利用すると、「位置情報付きで掲示板に書き込む」などの機能を実装することができます。 キャリアによっては位置情報のなかに土地名を含むものもありますが、通常は緯度経度だけでは土地名がわかりません。そこでGeomobilejp_Converterでは、docomoの提供するオープンiエリアのiエリアデータファイルを利用して土地名を関連付ける機能を実装しています。iエリアデータを利用することで、各キャリアで共通したiエリアコー...
Tweet
中村です。 プログラムコードは1行80文字以内で、というルールを多くのプログラマが知っていると思います。以前はプリンタなどの、ハード的な都合があったみたいですね。現在では81文字になってもそれほど困ることはなさそうですが、今でも、ある程度このルールが守られていることが多いのではないでしょうか。 そんな中、メソッド名などの都合上、どうしても長くなってしまうことがあります。そんなとき、みなさんはどこで改行をしていますか? 例えば、次のようなJavaプログラムがあったとします。 package net.unoh.labs.longlong; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; i...
Tweet
こんにちは。中村です。 Javaコードをコンパイルしたクラスファイルからバグを見つけ出すFindBugsというツールを使ってみました。 FindBugsは単体で動作しますが、IDEのプラグインとしても提供されています。今回はEclipseのプラグインを試してみました。 プラグインの導入 SourceForgeのダウンロードページからedu.umd.cs.findbugs.plugin.eclipse_1.3.3.20080401.zipを取得して 解凍、Eclipseディレクトリのpluginsに置くだけといういつも通りな感じです。 使い方 プロジェクトのプロパティから通知する問題を選択したりと色々設定が出来ますが、単純に使うにはJavaプロジェクトのところで右クリック -> Find Bugs -> Find Bugsをクリックすると プロジェクトを調べて問題箇所にマーカーを...
Tweet
こんにちは。中村です。 JavaからMicrosoft Officeのファイルを読み書きするのには、100%Javaで実装されているApache POIを利用することができます。 昔はPowerPointファイルを読み書きするAPI群であるHSLFはなかったので、POIで検索するとEXCELファイルを読み書きするHSSFが中心に紹介されているようです。 今回はHSLFを使ってPowerPointファイルの中にある文字列を出力する簡単なサンプルを書いてみました。 package net.unoh.ppt2text; import java.io.FileNotFoundException; import java.io.IOException; import org.apache.poi.hslf.HSLFSlideShow; import org.apache.poi.hslf.model...
Tweet
こんにちは。中村です。 私は大阪出身で小さい頃には雪だるまが作れるくらいに雪が降っていましたが、最近はあまり降らないので淋しく感じます。 ということで、Javaで雪の降るアニメーションを作ってみました。Flashで作る方が今時な気もしましたが、気にせずにJavaのSwingです。 ウインドウ上でマウスを左右に動かすと、それに合わせて雪がなびくようになっています。 snow posted by (C)フォト蔵 せっかくですので、ソースコードを含んだJARファイルを公開します。Java5以上で動作すると思います。 snow.zip やっていることはJFrameにひとつだけCanvasを配置して、ある一定間隔ごとに雪の配置を動かしたあとに再描画しています。 再描画するタイミングで、雪を落下させるのと、マウスの前回との位置を比較して左右への移動をさせています。 Swingを使ってアプリケーショ...
Tweet
こんにちは。中村です。先日、無料ゲームポータル「プラッシュ」に新しく追加されたゲーム、ブラックジャックのBGMを作曲担当しました。 Flashで再生している音源は低容量にするためにかなり圧縮されているため、mp3形式をこちらで公開させて頂きます。 タイトル (01_BlackJack_Title.mp3) ルーム (02_BlackJack_Room.mp3) ゲーム (03_BlackJack_Game.mp3) もし、気に入ってくださる方がいらっしゃったら幸いです。 ちなみに、作曲はリズムトラック以外は電子ピアノで生(と言ってもライン入力ですが)で弾いてMTRに録音しました。演奏は上手ではありませんが、本職はエンジニアということで大目に見て貰えたらと思います。...
Tweet
こんにちは。NAKAMURAです。最近ではFlashでMMLやDTMの話題など、音楽好きには嬉しい情報が飛び交っています。 ここは音楽ネタで便乗してみたいところですので、JavaでMP3を再生する方法を紹介してみたいと思います。 Java Media Framework APIを利用する方法もありますが、今回はLGPLライセンスで公開されている JLayerを利用してMP3を再生してみます。 再生してみる 早速、JLayerを使ってMP3を再生するサンプルクラスを作ってみました。ダウンロードページよりjarを取得してクラスパスに追加しています。 package net.unoh.mp3; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundExcepti...
Tweet
初めまして。今月、ウノウに入社しましたNAKAMURAです。今後ともよろしくお願いします。 最近のWebサイトでは、DHTMLの操作やAjaxなど、JavaScriptが欠かせない存在となってきていますが、そんなJavaScriptでサーバーサイドも構築できるHelmaについて取り上げてみたいと思います。 Helmaとは? Helma本家サイト(http://dev.helma.org/) HelmaはJetty上で動くJavaで実装されたフレームワークです。サイト構築にはJavaScriptを利用します。Apacheで例えるならmod_javascriptといったところでしょうか(Apacheモジュールとして動くJavaの実装にはmod_gcjというものもあります)。JavaScriptの実装には、Java6に組み込まれているRhinoが利用されています。 サーバーサイドでJavaS...