タグ

ブックマーク / kazzz.hatenablog.com (16)

  • JmDNSによるBonjourのサービス解決 - Kazzz's diary

    android.net.nsdパッケージが現状バグで使えなさげだが、Bonjourを扱うには元々実績のあるJavaのライブラリィが提供されており、有り難いことにandroidからでも使えるのだ。 JmDNS JmDNSはmDNS(Multicast DNS)とDNS-SD(DNS based Service Discovery)をサポートし、Bonjourとの完全な互換を歌うオープンソースのライブラリィであり、Apache License, Version 2.0ライセンス下で使用することができる。 Javaを使ったサービス探索〜解決のためのコード static JmDNS jmdns; jmdns = JmDNS.create(); jmdns.addServiceListener("_ipp._tcp.local.", new ServiceListener(){ @Override

    JmDNSによるBonjourのサービス解決 - Kazzz's diary
    yuiseki
    yuiseki 2017/05/31
  • 画面にフィットしないアプリケーション - Kazzz's diary

    既にSIMフリー版を購入している人からは報告が上がっていたのだが、GALAXY Tabにおいては一部のアプリケーションにおいて画面の縦横がフィットせずに表示されてしまう現象が発生している。 かくいう拙作のカレンダービューを配置したテストアプリケーションも、Nexus one上ではエミュレータ同様に表示されていたのがGALAXY Tabでは以下のように真ん中にぽつんと表示されてしまう。(機能自体は問題は無い) 有名所ではSpeedTestなどもこのように表示されてしまう。 この現象既にid:hyoromoさんが解析済みであり、結論から言うとandroid menifestのuses-sdk要素のminsdk属性を明示的に4に設定することで回避することができる。 GalaxyTab固有の問題と解決方法 - hyoromoの日記 manifest.xml <?xml version="1.0"

    画面にフィットしないアプリケーション - Kazzz's diary
    yuiseki
    yuiseki 2015/07/07
  • AIDLによるサービスとの通信でBundleにParcelableをセットするとBadParcelableException - Kazzz's diary

    以前にも書いたが、以下の様なAIDLを定義してActivityとServiceで通信を行っている。 IWebScrapingService.aidl interface IWebScrapingService { boolean scrape(in String url, inout Bundle bundle); } ActivityはServiceをバインドした後、スタブのメソッドを介してServiceのスクレイピングを実施する。 urlパラメタにはスクレイピング対象のURLを与えるが、bundleにどのような内容をセットするか(セットして貰うか)は実装クラスとそれを利用するActivityに任されており、例えば今書いているWebScrapingServiceでは、Bundleにそれぞれ 認証時のクレデンシャル 取得したいHTML要素のid値 取得したいHTML属性の名前 HTTP_S

    AIDLによるサービスとの通信でBundleにParcelableをセットするとBadParcelableException - Kazzz's diary
    yuiseki
    yuiseki 2015/07/02
  • KVO (Key-Value Observing) - Kazzz's diary

    Mac OS Xのプログラミングに詳しい方はとっくにご存じだと思うが、この「プロパティの変更通知機能」はCocoaフレームワークとして既に実装されているのだ。 それが Key-Value Observing 略して KVOである。 Key-Value Observing Programming Guide: Introduction to Key-Value Observing Programming Guide KVOは最初からCocoa Foundationフレームワークに組込まれており、使うのは簡単だ。 KVOを扱うための条件 NSKeyValueObservingカテゴリに準拠したクラス、オブジェクト NSKeyValueObserverRegistrationカテゴリに準拠したクラス、オブジェクト KVC(Key-Value Coding)に準拠したクラス、オブジェクトとそのコー

    KVO (Key-Value Observing) - Kazzz's diary
    yuiseki
    yuiseki 2013/11/15
  • 設定等の標準画面を開くURLはiOS5.1では使えない。 - Kazzz's diary

    アプリケーションからシステム標準の設定画面、例えばネットワーク設定画面等を呼び出したいことがままある。 Androidの場合、こんな時は"ACTION_WIFI_SETTINGS"インテント一発でシステム画面を呼び出すことができる。 iOSの場合はこんな芸当はできないだろうと思っていたのだが、先日調べてみた所iOS5までは以下の方法で出来るということが判った。 iOS5で全般(General)設定画面を呼び出す [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General"]]; これをiOS5.0シミュレータ上※で実行すると実際に全般設定の画面が表示される。 実行結果 おー、iOSもAndroid並とは行かないがIntentぽいことが出来るんじゃないか。これは素晴らしい。 ところが

    設定等の標準画面を開くURLはiOS5.1では使えない。 - Kazzz's diary
    yuiseki
    yuiseki 2012/08/14
  • Felicaのデータを読む (その1) - Kazzz's diary

    nfcを使って書くコードの取り敢えずのゴールを「Felicaカードのデータを読み出して人間が読める形式にする」という所に置こうと思う。※これは私が普段からPASMOを使用しており、一番身近でよく利用しているデバイスだからである。ほぼ毎日使用しているので、使用履歴も豊富だ。 Nexus Sのnfc機能は基的にはnfcリーダでありFelicaフォーマットで書きこまれた非接触型のICカードデバイスからデータを読みだすことができるはずである。 カードを翳されたことを検知する 常駐しているサービス"NfcService"がFelicaカードが翳されたことを検知して、インテント"android.nfc.action.TAG_DISCOVERED"をブロードキャストで投じるので、それに呼応するActivityを作成しておけばシステムが勝手に起動してくれる。(このAndroidプラットホームを利用した機

    Felicaのデータを読む (その1) - Kazzz's diary
    yuiseki
    yuiseki 2012/03/08
  • androidと文字認識(OCR) - Kazzz's diary

    iPhoneでも有名なので知っている方は多いと思うが、CamCardというアプリを使ったことはあるだろうか。 CamCard Lite(名刺認識王 日中国韓国語 - IntSig Information Co.,Ltd このアプリは名刺をAndroidのカメラで撮影しその後OCR処理で文字を認識し、それを文字データに変換して保存管理できるものだが、何が凄いってこのアプリのOCRの認識精度が素晴らしく、かなりの小さな、例えば名前の下の方に書く会社の住所等まで殆ど正確に認識する。※1 まだ使ったことがないのであればLite版に機能の制限は無いので是非一度使ってみることをお勧めする※2 CamCardのOCR機能にすっかり感心したが、ところでAndroidで使えるOCRそれも日語を認識できるライブラリィは無いのだろうか。 Tesseract-android-tools - Hosting

    androidと文字認識(OCR) - Kazzz's diary
  • AndroidとORM - Kazzz's diary

    androidORM(Object-relational mapping(mapper))を使うこと考えた場合、どのような選択があるのだろう。 ContentProvider 正確にはORMではないが、FileやSQLiteデータベースをオブジェクトとしてアプリケーションから操作できるという意味では、ORMと呼んでも良いと思う。 当然だが、標準の実装であり他のライブラリィを必要としないため、事足りる用途であればこれを使えば良いだろう。 gwtorm (http://android.git.kernel.org/?p=tools/gwtorm.git;a=summary) AOSP(Android Open Source Project)中にあるORM。JDBCとProtocolBufferを使用しており、期待できそうなのだが、ドキュメントが殆ど無く、どんなものなのかよく分からない。 sq

    AndroidとORM - Kazzz's diary
  • 私が「Ice Cream Sandwich」を嫌いな理由 - Kazzz's diary

    GALAXY Nexusが来て2日間使い倒した。ハードウェア自体は良いなぁと思う点が多々あったものの、ソフトウェアに関しては自分がそれを生業にしている点で評価がどうしても厳しくなってしまうようで、今の所嫌いな所ばかりが目立つ状況だ。 私は元々AndroidそれもGingerbread(2.3)までのスマートフォンを主なターゲットとした装飾を控えめにした機能優先なインタフェースとデザインは好きだ。がしかしAndroidとしてタブレットに始めて対応することとなったハニカムは機能的なデザインが影を潜め、完成度もお世辞には高いとは思えないそのデザインとGUIは結局好きになれずじまいだったのである。 そこでAndroid4.0だ。"Ice Cream Sandwich" (以降はICSと略する)はスマートフォンとタブレットのユーザインタフェースを統合するものでありそのデザインは基的にはハニカムが踏

    私が「Ice Cream Sandwich」を嫌いな理由 - Kazzz's diary
    yuiseki
    yuiseki 2011/12/06
  • nfc-felica 公開しました - Kazzz's diary

    nfc-felica/android 2.3 nfc access felica command 今までのNfc関連エントリの成果として公開を開始しました。 nfc-felicaとは Android 2.3からサポートされたNFC API(一部隠されたAPI)を使ってFeliCaカードにアクセスするためのクラス群を提供します。 FeliCa SDK等の専用のライブラリィを必要とせずにFeliCaカードにアクセスし通信を行うことができます。 サンプルアプリケーション(NFCTagFeliCaReader)の動かし方 プロジェクトはそのままNFCTagFeliCaReaderという名前のアプリケーションになっています。 アプリケーションをインストール後、SDKのNfcDemo同様にFeliCaカードをNfc機能を搭載したAndroidスマートフォンに翳すことで、インテント"android.nf

    nfc-felica 公開しました - Kazzz's diary
    yuiseki
    yuiseki 2011/05/20
  • バリデーションエラー時、ビューに注目させる - Kazzz's diary

    バリデーション処理を実施した際に、エラーが発生したビューが一目で判るようにしたい。 JFC/Swingや.NET WindowsFormsでは背景色を変えたり、そのビューに関連付けられた文字列の色を変えたりという処理を書いてきたが、Androidの場合、ビューに対してアニメーション効果を付加することが可能なため、それを使うと印象的な演出を追加できる。 下記のコード片は拙作のフレームワークのバリデーションエラー時に呼ばれるメソッドだ。 setErrorメソッド static final AlphaAnimation animation = new AlphaAnimation(1, 0.1f); CharSequence errorMessage; public void setError(final CharSequence message, final View... views) {

    バリデーションエラー時、ビューに注目させる - Kazzz's diary
    yuiseki
    yuiseki 2011/04/30
  • PseudoFileSemaphore (アプリケーションのインスタンス数を制御するには-その3) - Kazzz's diary

    菊池さん、AWAWAさん、囚人さんらのアドバイスから以下の要件が導き出された。 ロックファイルを作るが、後始末として削除できなくても「そんなの関係ねぇ」 Java NIOのFileChannelのロックメカニズムを利用する この場合はセマフォを使うべき ということでFileChannelを利用して「システムセマフォもどき」を作ってみた。 import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.channels.FileChannel; import java.nio.channels.FileLock; public class PseudoFileSemaphore { private String name; private File file;

    PseudoFileSemaphore (アプリケーションのインスタンス数を制御するには-その3) - Kazzz's diary
    yuiseki
    yuiseki 2010/07/02
  • MongrelとIIS7を統合する(Application Request Routing ModuleでIIS7をリバースプロキシ化する) - Kazzz's diary

    残念だがIIS+FastCGI+RubyForIISの不安定さに絶望したので(私の環境だけだろうと信じたい)とっとと構成を変えることにした。WebサーバはIISのまま(当はApacheの方が実例も多いし良いのだろうが、私の関わった顧客のサーバはIISばかりなのだ)静的なコンテンツをサービングし、Railsアプリケーションの実行にはFastCGI-Rubyではなく、その道では著名なMongrelを使うことにした。 Mongrel - Mongrel is a fast HTTP library and server for Ruby Mongrelをアプリケーションサーバに仕立ててWebサーバと連携させる場合、MongrelへのリバースプロキシとしてWebサーバを設定する必要がある。Apacheではそのためのmod_proxyがあるので、これと組み合わせるのが常道らしいが、IISも標題のモ

    MongrelとIIS7を統合する(Application Request Routing ModuleでIIS7をリバースプロキシ化する) - Kazzz's diary
    yuiseki
    yuiseki 2009/05/21
  • IISサイト/マルチアプリケーションとRailsのURL(その2) - Kazzz's diary

    Railsで生成されるアプリケーションのURLは問答無用でサイトのルートからマップされるので、想定しているURLでアプリケーションにアクセスできない、ということを先週のエントリで書いた。 期待されるURL http://localhost/addressbook/people/new 実際にRailsのlink_to等で生成されるパス http://localhost/people/new 今回は偶々IISでサイト上に複数のRailsアプリケーションを配置するのがきっかけではあるが、同じホスト上にアプリケーションを分割して配置したい、という要望はIIS以外のWebサーバ(Mongrel, lighttpd , Apache, etc)を使っていたとしても同様だろう。 この問題に対して、RubyRailsの素人の私がその時の思いつきでやってみたのて以下の方法だった。 config/rout

    IISサイト/マルチアプリケーションとRailsのURL(その2) - Kazzz's diary
    yuiseki
    yuiseki 2009/05/04
  • IISサイト/マルチアプリケーション環境とRailsのURL (stylesheet編) - Kazzz's diary

    前回のエントリで完璧かと思われた、IIS7-FastCGI サイト/まね値アプリケーション環境におけるRailsアプリケーションのホスティングだが、まだ抜け穴があった。 いそいそとscaffoldを作り直して、できたアプリケーションのテストをしていた所、IISのログ(IIS形式)に以下のように出力された。 1, -, 1/28/2009, 14:35:46, W3SVC2, HOSTNAME, ::1, 46, 540, 244, 304, 0, GET, /addressbook/people/, -, 1, -, 1/28/2009, 14:35:46, W3SVC2, HOSTNAME, ::1, 0, 552, 5805, 404, 2, GET, /stylesheets/scaffold.css, 1233019499, がーん。ビュー中のスタイルシートが読めていない。 Rai

    IISサイト/マルチアプリケーション環境とRailsのURL (stylesheet編) - Kazzz's diary
    yuiseki
    yuiseki 2009/05/04
  • Rails 2.2で既存のテーブルを使う - Kazzz's diary

    既存のテーブルをRailsで使う場合の鬼門は ・テーブル名称が'Rails-Aware'ではない(複数形を使っているとは限らない) ・プライマリキーの名称(列名)が'Rails-Aware'ではない(idという名前ではなく、コード設計上で一意とされている名称が使われる) 来はRailsに合わせるべきなんだろうが、Railsのためだけにスキーマを修正してくれ、なんて、気むずかしいDBAに言おうものなら半××ものだろう。 従って、レガシ(あえてこう呼ぶ)なテーブルはRails側で流儀を合わせる必要がある。以下、その手順 これもいろいろな所で散々既出なので、詳しくは解説しない。備忘録としてメモ。(既にRailsコマンドでプロジェクトが生成されており、データベースにも接続可能になっていることとする) 1. 既存のスキーマを元にモデルを生成する どうせモデル名とテーブル名は合わないので、好きな名称

    Rails 2.2で既存のテーブルを使う - Kazzz's diary
    yuiseki
    yuiseki 2009/04/02
  • 1