読者です 読者をやめる 読者になる 読者になる

遥かへのスピードランナー

シリコンバレーでAndroidアプリの開発してます。コンピュータービジョン・3D・アルゴリズム界隈にもたまに出現します。

Preview for Glassが公式Glasswareになりました

今年3月から公開していたGoogle Glass用Glassware「Preview for Glass」が、約半年のレビュープロセスを経てようやく公式Glasswareになりました。10/2時点で公式Glasswareは全世界合計で94個しかなく、そのうちの1つということになります。公式ページ: http:…

スマホから送信したNotificationでAndroid Wear上のActivityを開く方法

最近Android Wearをいじっているのでその話題。スマホからWearに対して送信したNotificationで、Android Wear上のActivityを開く方法について書きます。 Google カメラアプリの挙動 先日、Googleのカメラアプリがアップデートされて、Wearからシャッターを切…

AKAZE特徴量の紹介と他特徴量との比較

1月6日追記:作者のPablo氏とメールのやり取りをする中で、当初掲載していたスピードのベンチマークはコンパイラの最適化オプションが指定されていなかったことに気づきましたので、最適化オプションを指定して再度計測し、結果を差し替えました。2012年のCo…

Coursera Machine Learning Study Group at Silicon Valley

最近、courseraというオンライン大学が流行っていますが、ベイエリアでももちろん流行っていて、courseraで学んだことをオフラインでディスカッションしようぜ、みたいなmeetupもちらほら開催されてたりします。で、僕も先週から始まったAndrew先生のMachine…

ライブラリに依存するプロジェクトのテストプロジェクトをantで実行できない件+AOSPにパッチを送ってみた件

Android SDK r14以降で、テストプロジェクトおよび、テスト対象の本体プロジェクトの両方がライブラリプロジェクトのクラスを呼び出している場合、antでのテスト実行で実行が失敗します。このままではJenkinsでテストを自動実行するときなどに困ってしまうの…

Windows VistaでKinect SDKを動かす方法

先日ついにMicrosoft公式のKinectSDKが発表されましたね!さっそく試してみたかったのですが、KinectSDKはWindows7のみサポート、そして僕の持っているのはWindowsVistaのみ・・・。 ということで何とかWindowsVistaで動かせないものかと頑張ってみました。…

AndroidとOpenCVで試す特定物体認識

6月2日に開催されたDevLOVEさんと弊社の共同開催勉強会で、「Android×ComputerVision」というお題で発表してきました。 要はOpenCVをAndroidアプリに組み込んで特定物体認識を試そう、というもの。資料は以下です。 20110602_MTI×DevLOVE発表資料「Android×C…

MacとNexus OneでAndroid Oepn Accessoryを試してみる

先日サンフランシスコで行われたGoogle I/OのKeynoteでは様々な発表がありましたが、その中で、僕が特に面白いと思ったのが「Android Open Accessory」です。 簡単に言うと、Androidデバイスに接続するUSB周辺機器を、誰でも簡単に作ることができる仕組みで…

CV最先端ガイド勉強会でSVMについて発表してきました

本日開催された第9回「コンピュータビジョン最先端ガイド」勉強会@関東でSVMの章を発表してきました。 SVMはPRML読書会でも発表しているので、資料は半分くらい流用です。悪しからず。コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカー…

Androidアプリで使える便利なUIライブラリ

Androidアプリと言えばUI命!、ということでギークな方々が作られている便利なUIライブラリを見つけられる限り、スクリーンショット付きでまとめてみます。 皆様いずれもソースと一部サンプルアプリを公開されているのですぐにでも試してみることができます…

Android MockとRoboGuiceでTDD

Androidアプリ開発(に限った話ではないですが)でTDDしたいと思ったときに、テスト対象クラスのフィールドをモックで差し替えたい、と思うことがしばしばあります。依存するクラスの振る舞いを固定化することで、テスト対象オブジェクトの振る舞いだけに着…

AndroidでContentProviderのモックを使ったテストを行う

ContentProviderからデータを取得しているアプリのテストコードを書くときに、テストデータとして端末内のデータを使わずにモックのデータを使いたいということは多いと思います。 今回は端末内の画像を一覧表示するアプリケーションを例にして、このような…

RobotiumでAndroidアプリのシナリオテストを自動化する

Androidアプリのテスト自動化について色々調査していたら、Robotiumというテストツールを見つけました。このツール、便利なんですが、国内ではまだあまり知られてないみたいなので紹介してみます。 Robotiumとは RobotiumとはAndroidアプリケーションのブラ…

数値キーでCursorJoinerを使う

android.databaseパッケージにCursorJoinerというクラスがあります。これは何かというと2つの異なるCursorのデータをJoinっぽく扱うことができるクラスで、たとえばContent Provider同士のデータをJoinさせてあげるときに使うことができます。使い方は、リ…

AndroidアプリでSMS受信を偽装する方法

今日のGoogle Developer Day 2010のセッションで、IMoNiの作者@t_eggさんが、「IMoNiはSMSのContentProviderにデータを突っ込むことで、iモード.netメールの受信通知をSMSとして(実際に受信している訳ではなく、仮想的に)受信させている」ということを説明…

Live Wallpaperで動画ファイルをそのまま表示する(とりあえずできたよ編)

Android OS 2.1からLive Wallpaper(ライブ壁紙)の機能が追加されていますが、いざLive Wallpaperを自分で作る、となると結構面倒です。実装方法の詳細は、「Android 2.1の新機能「Live Wallpaper」で作る、美しく燃える“待ち受け”」に詳しいですが、Wallpa…

Androidの開発効率化Tips

2010/09/06追記:id:gaeさんよりXMLのファイル名はキャメルケースにできない、という指摘を頂きました。XMLのファイル名は未検証のまま書いてしまっていたのでそれに関する記述を削除させて頂きました。 Androidの開発にもだいぶ慣れてきて、スムーズに開発…

iPhone・iPad用に手書き文字認識ライブラリZinniaをビルドする

iPhone・iPad向けに手書き文字認識ライブラリ-Zinniaをビルドしてみて、結構苦労したので、そのときのメモです。Zinniaと書いてますが、Fat binary全般についての僕の理解も込みで説明してます。以下iPhoneと書いてますが、iPad用でも同様の内容があてはまり…

IS01専用Androidアプリ「LEDモールス」を公開しました

ものすごく久しぶりのブログになってしまいましたが生きてます。 最近は社内でスマートフォン関連の開発をやってまして、どっぷりとAndroidに浸かっています。 機種依存やら何やらに悩まされたり、Android開発の奥深さに毎度唸らされる毎日です。で、今日は…

Blenderでドミノ崩し

前回に引き続き、今度はblenderでモデルを組み立ててみます。blender上ではpythonのマクロが使えるので、手作業が大変でも、自動化で簡単に複雑なモデルを組み立てることができます。 ってなわけでblender上でドミノを配列させるスクリプトを組んでみました…

フォード・ファルカーソンのアルゴリムで最大流-最小切断問題を解く

PRMLの8.3節では、マルコフ確率場を応用した事例として画像のノイズ除去がでてきますが、PRMLで紹介されている「グラフカットアルゴリズム」を試すには最大流問題を解く必要があるのでアルゴリズムの勉強もかねて実装してみました。最大フロー問題または最大…

Blender+SIO2で3D物理エンジン

すっごい間が空いてしまい、いまさらなんですが、年末年始のプチ成果まとめ第2段です。前回のBox2Dに引き続き、今度は3Dの物理エンジンをいじってみます。Box2Dの場合、貧弱ではありますが線画機能(DebugDraw)が内蔵されていますが、3Dの場合はレンダリング…

Box2DFlashAS3でブロック崩しゲームを作る

世の中は年が開けて抱負やら振り返りやらでとてもフレッシュな香りがただよっていますが、僕は空気も読まずにとりあえず年末年始の休暇にやってたことをまとめようと思います。まずはBox2DFlashAS3という物理エンジンのライブラリを使ってブロック崩しゲーム…

heap sortを使った上位ランキング取得プログラム

MG

Managing Gigabytes 4.6章で解説されているソートのプログラムを実装してみた。検索エンジンなどでN個のデータの中から上位r個を取得したい場合、まずN個のデータからなるmax-heapを構成して、ルート(最大値)から順にr個をヒープから取り除くというアプロ…

第9回PRML読書会

土曜日はサイボウズ・ラボで行われた第9回PRML読書会に参加しました。 自分は発表者トップバッターでSVMの基本的なところを説明しました。参加者の方からもいろいろ指摘をいただきました。 なぜマージンを最大化するとよいのか?の説明で『まず2値に分類さ…

Rでガウス過程による分類を実装

PRMLの6.4.5〜6.4.6の範囲にあるガウス過程による分類をRで実装してみました。ソースコード全文はgithubにアップしています。 http://github.com/thorikawa/prml/blob/master/gaussian_process_classify.Rここでは例として、(1,0),(2,0),(3,0)で1、(0,1),(0,…

ニューラルネットワークで画像認識

ニューラルネットワークの簡単な関数近似プログラムを先日書いたので、今は画像認識プログラムを書いてますが、ものすごく簡単なバージョンが出来上がったので晒しておきます。 C++で画像解析部分を作って、Rで訓練データの学習、テストデータの判定をしてい…

Rでニューラルネットワーク(2変数の関数近似)

で、1変数の関数近似がうまくいったので、調子にのって2変数の関数近似にもチャレンジしてみました。 2変数のsinc関数を、ニューラルネットワークの誤差伝播法を使って近似する(しようとする)ものです。 library(animation) #number of training data N <-…

Rでニューラルネットワーク(1変数の関数近似)

機械学習・パターン認識方面の勉強初めてから4ヶ月ほど立ちました。最近はnaoya_tさん主催のPRML読書会に参加させて頂いています。来週末8/29の第6回読書会ではニューラルネットワークの章の発表を担当することになったので、Rを使ってサンプルプログラムを…

DMC(Dynamic Markov Coding)のによるデータ圧縮プログラムを書いてみた

MG

最近Managing Gigabytes勉強会に参加しているのでせっかくなので、この本に載っているアルゴリズムを使ってプログラムを組んでみました。今回実装したのは、「2.5 SYMBOLWISE MODELS」の後半で説明されている「Dynamic Markov Coding(DMC)」です。書籍の他に…

FirefoxのHTTPプロトコルハンドラを置換してローカルプロキシっぽい動作をさせる

先日の僕のFirefoxアドオン(XPCOM)でHTTPプロクシを実装するの記事の発展系として、piroさんがローカルプロキシっぽいことをローカルプロキシを立てずにやろうとして挫折したことのまとめというすばらしくためになる記事を書かれています。この記事の中でpir…

FirefoxでProxy

inspired by http://moz-addon.g.hatena.ne.jp/ZIGOROu/20090518/1242640418とりあえず、プロクシ設定して(色々不安定ながら)動くところまで。。 http://coderepos.org/share/browser/platform/firefox/Mogwai/trunk/src/components/MobileGateway.js?rev=…

Twitterを始めてみた

IT

今更にも程があるのですが、Twitter始めてみました。http://twitter.com/thorikawaIPA未踏の情報がTwitterで発信され始めて、あーこれからはTwitterで情報発信していく時代なんだなーと実感して始めた次第。140字の中で表現する醍醐味をこれから味わっていく…

タブごとに端末選択可能なFireMobileSimulatorベータ版公開と人柱募集

「タブごとの選択機能」をβ版にて提供しておりましたが、2011.5.6にリリースした本家FireMobileSimulatorのバージョン1.2.0から、この機能がマージされております。お手数ですが、本家サイトより最新版のFireMobileSimulatorをダウンロードして下さい。 - IR…

Plaggerで物件探し

夏頃に引っ越ししようと思って、いろんな不動産サイトを探しているのですが、フィードに対応してなかったり、通知機能がしょぼかったりするので、Plaggerで無理矢理対応させてしまおうかと。 とりあえず、目白商事という不動産サイトの検索結果をRSSフィード…

プロダクティブ・プログラマを実践して作業効率アップ

オライリーの新書「プロダクティブ・プログラマ」が良かった。プロダクティブ・プログラマ -プログラマのための生産性向上術posted with amazlet at 09.04.29Neal Ford オライリージャパン 売り上げランキング: 455Amazon.co.jp で詳細を見る詳しい内容はこ…

mixiアプリカンファレンス 2009に行ってきました

定員に対して10倍の応募があったというmixiアプリカンファレンス 2009に当選したので行って参りました!mixi笠原社長・Googleの辻野社長の講演を始めとした錚々たる顔ぶれで、プレスも多く詰めかけており、mixiアプリにかける周囲の期待の大きさを実感できた…

最近の関心事

最近、学問にはまっています。はまっています、というのはちょっと語弊があるかもしれないんですが、自分のエンジニアとしての付加価値は何だろう?と考えたときに、マネージャ的な仕事やアーキテクト的な仕事よりも学問的なものに重心を置いていることの方…

はてなブックマークFirefox拡張を入れてみた

【はてなブックマーク Firefox 拡張のベータテストを開始します】http://hatena.g.hatena.ne.jp/hatenabookmark/20090402/firefox_betaFirefoxローカルデータと同期する機能はよいですね。ローカルのブックマークと連携したりとかするといろいろ未来が広がり…

FireMobileSimulatorのIRCチャンネル作りました

FireMobileSimulatorの開発者を広げていくにはどうすればいいのか?という疑問をぶつけたところ、id:ZIGOROuさんからIRCチャンネルを作ってはどうかという案を頂いたので早速作ってみました。#fms-devel@freenodeになります。 FireMobileSimulatorの開発に興…

WEB+DBプレスの「[速習]レコメンドエンジン」のサンプルプログラムを訂正してみる

プリファードインフラストラクチャーのid:tkngさんと岡野原さんがWEB+DBプレスvol.49に「[速習]レコメンドエンジン」という記事を書かれています。WEB+DB PRESS Vol.49posted with amazlet at 09.03.08技術評論社 売り上げランキング: 359Amazon.co.jp で詳…

Firefoxアドオンでちょっとコアにタブを扱う

Firefoxのアドオンで、ちょっとコアにタブを扱う処理のメモ。 http-on-modify-requestなどのトピック発生時に、HTTPリクエスト発生元のタブを取得するサンプルコード getTabFromHttpChannelでtry-catchしている部分は、リクエスト元がDOMWindowじゃない場合…

QueryInterfaceとgetInterfaceの違い

「Firefoxアドオンでちょっとコアにタブを扱う」を書いてみて、インターフェースを取得するのに、QueryInterface(Ci.nsIXXXXX)としている箇所と、QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIXXXXX)としている箇所の違いが自分でもよく理…

Ubiquityの日本語変換パッチが本家に取り込まれました

Slashcolonさんのトラックバックで知りましたが、以前提出したUbiquityのパッチが、本家のバージョンに取り込まれていたとのこと。さっきtrac見たら4週間前に取り込まれたみたいですねー、全然気づきませんでした。。僕も忘れかけてたんですが、どうやらUbiq…

OpenID Tech Night Vol.4に参加してきました

id:ZIGOROuさんに誘われてOpenID Tech Night Vol.4に参加してきました。 tkudoさんの「ID技術 最新動向2009」のセッションは後半ちょっとしか聞けませんでしたが、ZIGOROuさんの「OpenID 認証 2.0 入門」のセッションはフルで聞けました。OpenIDといえば、mi…

Webデベロッパの祭典+ちょっとアキバ気分で。@秋葉原UDXに行ってきました。

久々にセミナー参加。 3セッションしか参加していないのですが、以下メモと所感。 どうするデベロッパ!?2009年プログラミング大展望/子飼弾氏 弾さんを弾さんと認識して話を聞くのはこれが初めて。(以前YAPCで話を聞いてたけど、そのときは弾さんと認識…

CPAN Authorになりました

DBIx::Class::ForceUTF8というモジュールを作ってCPANにアップロードしました。 DBIx::Class::ForceUTF8 allows you to get columns data that have Unicode flag without specifying a column name. Best used with DBIx::Class::Schema::Loader. DBIx::Cla…

想像力が鍛えられる一冊 - 本格小説/水村美苗

本格小説〈上〉 (新潮文庫)posted with amazlet at 08.12.29水村 美苗 新潮社 売り上げランキング: 12527おすすめ度の平均: ゆったりと舞台を整えて・・・ この小説さえあれば、ほかの小説はいらない 「文学」をめぐる物語の不幸 価値ある作品 日本文学に向…

FireMobileSimulatorの今後の開発

FireMobileSimulatorを紹介してくれているサイトをこつこつブックマークしていたのですが、先日、ついに紹介サイト数が100を超えました。 http://b.hatena.ne.jp/thorikawa/firemobilesimulator/どうもありがとうございます。開発者冥利につきます。 で、…

FireMobileSimulator 1.0.0をリリースします

FireMobileSimulator1.0.0をリリースします。 ダウンロードは公式サイトから 前回のリリースからだいぶ間が空いてしまいましたが、今回はメジャーバージョンアップということでかなり気合いの入った大幅な修正を加えています。 大きな目玉は、最新の携帯端末…