2011年12月5日月曜日

Google Developer Day 2011に参加してきました

私Repy提供の連続バーコードリーダーや日本語フルキーボード For Tabletをダウンロードして使ってくださっているみなさんのおかげで今年も行くことができました。ありがとうございます。これからも便利なアプリを開発していくつもりなので、よろしくお願いします。

今年のGoogle Developer Dayの特徴はやっぱり缶バッヂ企画でしょう。最初に同じ種類の缶バッヂ10個を配布され、開発者との交流で別の種類の缶バッヂと交換して、いろいろな種類の缶バッヂを集めるというものでした。つまり、GDDはセッションがだけではなく、開発者の交流の場でもあるということです。自分も数人の開発者と交流しました。

かといって、メインはやっぱりセッションです。今年はAndroidメインで参加しましたが、あんまり変わったネタはなくすでにリリースされている内容が大半でした。
今回学んだことは、パーミションとプライバシーに関しては特に注意が必要ということです。
例えば、日本語フルキーボード For Tabletではインターネットアクセスとインプットメソッドの2つのパーミションが付いています。この2つのパーミションがあれば、インプットメソッドでユーザーさんが入力した内容を取得し、インターネットアクセスで悪意のあるサーバーに投げ、ユーザーIDやパスワードを不正に収集することができます。つまり僕がやろうと思えば、ユーザーさんのIDやパスワードを入手することもできます。
しかし、この2つのパーミッションのどちらかでも削ると日本語フルキーボード For Tabletは成り立ちません。こういう時にはプライバシーポリシーを公開することで、ユーザーの不安を少し和らげることができます。
今回、GDDに行ってきたあとインターネットアクセスのあるアプリにポリシーを策定しました。それぞれのアプリによって異なるのでマーケットの各アプリの説明をご覧ください。

よく見るとマーケット内には危険な可能性のあるアプリが多いことがわかる。そのうち本当に危険なアプリはどのくらいだろうか。また、セキュリティソフトは反応するだろうか。Android用セキュリティソフトではOSの設計上、上記のようなスパイウェアを認識できないと考えているので、僕は使っていない。

2011年11月4日金曜日

日本語フルキーボード For Tabletの今後

日本語フルキーボード For Tabletのバージョンアップ頻度を下げようと思う。

理由は2つ。
1つめは、必要と思われる機能をほぼ網羅したため。1.5.0.1のバージョンで、OpenWnnの学習機能とアルファベット変換機能を実装し、最低限必要と感じていた機能はすべて実装が完了した。
2つ目は、そもそも収益が低く開発費をねん出することができないため。個人開発なのでコストはかからないが、計算すると時給5円ぐらいにしかなっていない。最低でも時給100円ぐらいの収益はほしいところだ。

OpenWnnのエンジンは貧弱なので、使い勝手のいいようにGoogle IMEとYahoo! テキスト解析を追加した。それなのに、現在の要望に上がっているもののほとんどがOpenWnnに関する部分でやる気ゼロ。
Android IMEのオープンソースが誕生するか、OpenWnnのバイナリ辞書が大幅に進化すれば、使い勝手がよくなるのだが。

2011年10月25日火曜日

日本語フルキーボード For Tabletに学習機能を追加

日本語フルキーボード For TabletのOpenWnnエンジン使用時に学習をするオプションを追加しました。バージョン1.4.5.0以降での対応となります。

OpenWnnの仕様で文節区切りの学習がされないので、使い勝手はさほどよくない。基本的にOpenWnnは予測変換がメインのエンジンなので仕組み上どうしようもない。
次回の目標は予測変換の実装である。

2011年9月16日金曜日

日本語フルキーボード For Tablet バージョン1.2.2.0 と要望について

日本語フルキーボード For Tabletをバージョンアップしました。
公式サイトオープンしました。
要望管理が煩雑になったため、要望窓口を一本化します。

1.2.00~1.2.2.0までの変更点をお知らせします。

  1.2.00
広告枠の掲載
拡大縮小キーの状態保存
全角半角状態の保存と状態可視化
  1.2.1.0
バイブレーションを実装 [要望]
文節移動の設定を実装
バージョン番号の付け方変更
  1.2.2.0
CTRL,ALT,SHIFTの状態可視化 [要望]
マッシュキーの動作を少し変更 [要望]

2011年9月9日金曜日

日本語フルキーボード For Tablet 1.1.00アップデート

日本語フルキーボード For Tabletをバージョンアップして、候補をタップで選択できるようにしました。要望にあがっていた機能です。
今回は日本語フルキーボード For Tabletの内部構造を少し紹介します。

内部では大きく分けて、次の4つに分かれています。
1.キーボード部
日本語フルキーボード For Tabletのキーボード部分の実装は、ハードキーボードと全く同じに作っています。
Aのキーを押すと、インプットメソッドサービス部に、Aのキーコードを飛ばします。
2.インプットメソッドサービス部
AndroidのIMEには必ず実装しなければならない部分です。そのため、この中はあまり実装はしていません。
やっていることは入力されたキーコードを読み取って、文字なら変換部に文字データを、文字じゃないならアプリにキーコードを飛ばしているだけです。
3.変換部
変換部は、入力された文字を日本語変換エンジン部に投げます。
また、候補ビューを作成し、変換状態の管理を行う部分です。
4.日本語変換エンジン部
ローマ字・ひらがな
ひらがな・文節
文節・漢字
の変換を行うところです。
この3つのメソッドさえあれば、他のエンジンにも載せかえられます。

できるだけ依存コードを減らし、別のエンジンやキーボードをのせられるように設計しています。

2011年9月7日水曜日

日本語フルキーボード For Tablet 1.0.00 リリース!

日本語フルキーボード For Tabletバージョン1.0.00をリリースしました。
このバージョンでは要望があった機能を色々搭載しています。過去の要望とそれに対する対応もあわせて紹介します。

投稿日:2011年8月16日
内容:変換結果等がもう少し選択しやすく
対応:未定
実装するとしたらバージョン2.0.00ぐらいでの対応となります。ここまで大幅な変更はしばらくお待ちください。

投稿日:2011年8月20日
内容:Del/Home/End/PgUp/PgDn/Ctrlなども詰め込んで欲しい。
投稿日:2011年8月24日
内容:[ctrl]と[esc]が有れば
対応:0.9.13?1.0.00
CTRLキーは0.9.13で対応しました。これによりAndroid 3.0以降では、CTRL+Cでコピー、CTRL+Xで切り取り、CTRL+Vで貼り付けができます。
ESC/DEL/HOME/END/PAGEUP/PAGEDOWNキーは1.0.00で対応しました。これによりAndroid 3.0以降では、HOMEで行頭移動、ENDで行末移動、PAGEUPでページアップ、PAGEDOWNでページダウンできます。

投稿日:2011年8月20日
内容:Shiftを押しながら矢印で範囲選択したい。
対応:0.9.12
Android 3.0以降では、これとCTRLキーを使えば、範囲選択してコピーが簡単にできます。

投稿日:2011年08月27日
内容:マッシュルームキーの仕様変更
対応:1.0.00
僕はあまり誤入力することは無いのですが、要望があったので長押しでの動作にしました。Simejiも、当初は短かったのですが要望で長くした経緯があります。

投稿日:2011年08月27日
内容:メインのキーサイズ拡張等
対応:1.0.00
僕も使っていて小さいと感じることが多かったので採用しました。
メインのキーのピッチを4.6%大きくしました。これ以上の拡大はBSキーや全半キーを移動させないと不可能なので採用しません。

投稿日:2011年09月01日
内容:キーボードのバイブレーション
対応:近日?
実装するのは簡単なのでやろうと思いますが、アクセス権が変更されるので少々お待ちください。

投稿日:2011年09月01日
内容:音声入力アイコン
対応:不採用
マッシュルームで音声入力ができるものがありますので、そちらをお使いください。

投稿日:2011年09月05日
内容:携帯にスライド式のキーボードがある場合、画面に出ているキーボードを消す
対応:1.0.00
消してしまうと全角半角を変更出来なくなるので、縮小拡大ができるようにしました。

2011年9月1日木曜日

Google Developer Day 2011 Japanに参加決定

日本語フルキーボード For Tabletのダウンロード数が想像以上の伸びで、作者としては驚きです。そもそも自分が使用するために作ったものなので、そこまでダウンロード数が伸びるとは思っていませんでした。要望もバグ報告も、たくさんいただいております。
最近更新していない理由は、以下の理由で開発環境のPCが使えない状態にあるためです。

Google Developer Day 2011 Japanの参加登録を行ったところ、連続バーコードリーダーのおかげでTop Favorites枠にみごと当選した。去年に続き2年連続のTF枠での参加だ。
現在は、TF枠に落ちた人と応募しなかった人と参加登録が遅れた人がSH枠を取り合う、DevQuizが行われている。去年はパックマンを作る時間がなくSH枠は諦めたが、今年は時間があるので「既に Top Favorites 枠で当選しています。 クイズの成果にかかわらず、Google Developer Day Japan 2011 に参加することができます。」と表示されているが挑戦している。
今年の難問はスライドパズルだ。これは、数学的にもあまり解明されていないのでコンピューターの処理能力をガンガン使って、正解を探す必要がある。そのため、メインPCがAtom 330である自分にはとても厳しい。Intel Core-i7 2600Kだと1日ほどで終わりそうなプログラムを作り、Atom 330に10日かけて計算させている。
PCが無いと生きていけない自分にはこの10日はとても辛い。最近買ったacerのICONIA TAB A500があるのでメールやブラウジングやYoutubeなどは問題はないが、プログラミングが出来ないのはやっぱり辛い。

あと3日ほどの辛抱だ。

2011年8月13日土曜日

日本語フルキーボード For タブレットをリリース

昨日、「日本語フルキーボード For タブレット」をAndroid Marketにアップロードし、即日公開しました。

これを作成した理由は、ICONIA TAB A500を購入したが、タブレットに合ったIMEが無かったからである。

勿論、ICONIA TAB A500には、Simeji for ICONIA TABがプリインストールされている。
ただ、Simejiには欠点があった。ランドスケープ時に左右キーが表示されない。日本語入力時には、ほとんどの記号と数字が画面を切り替えないと入力できない。つまり、タブレットの画面の大きさを有効利用できない。不便だった。

Androidなので、気に入らないなら入れ換えてしまえばいい。
そこで、有料アプリ売り上げNo1を独走しているATOKを試してみた。左右キーも存在し、数字も記号も多くが表示されている。タブレット用に調整しているのだろう。さすが有料アプリである分作り込みが深い。キーの高さを調整できるオプションもあり、とても使いやすい。
だが、上下キーが実装されていなかったので、複数行の長文を打つときには不便である。

それなら、自分でIMEを作ろう。
でも、そう簡単には作れないので、オープンソースのOpenWnnを改造することにした。しかし、ソースをダウンロードし中を見てみたところ、どうしようもないくらいこんがらがっていた。1ヶ月かかっても読めそうにない。
改造は諦め、サービス部分とUI部分を1から自作し、日本語変換エンジンのみを借りることにした。それでも色々苦労した。OpenWnnが予測変換重視のエンジンであるため、複雑な仕組みになっていたからだ。(もっとわかりやすい仕組みにしてくれとOpenWnnに言いたい。)

日本語変換エンジンをサービスやUIから完全分離した設計にしたので、OpenWnn以外のエンジンにも載せ換えやすいコードになった。今後は、他のエンジンと切り替えられるようにしようと思っている。

この長文は、すべて自作 「日本語フルキーボード For タブレット」で入力した。
自分で作っておいて言うのもなんだが、長文が入力しやすい。

2011年7月26日火曜日

Picasa アップローダー リリース

最近、登山や鉄道だとプライベートでも忙しいことをしていますが、このたびPicasa アップローダーをリリースしました。Android Marketでダウンロードできます。
このアプリを作ることになったのは、日本通信(b-mobile)の制限事項のためである。この制限で、Picasa Web AlbumsへHTTP通信をしていたアプリが使えなくなり、代替アプリを探したが存在していないことがわかり、自分で開発することとなった。

このアプリの特徴は、Picasa Web Albumsへの通信を全てHTTPSで行っており、盗聴などの心配が無い。また、Googleアカウント認証もOAuthを利用しており、パスワードの漏出が無い。
twiccaのメディアアップロードプラグインとしての実装も行っており、twiccaで画像付きツイートを行うときにインテントで連携できる。

開発していて感じることは、Androidのよいところはインテントという仕組みで他アプリと簡単に連携できるところだ。

2011年7月23日土曜日

日本通信(b-mobile)のイオン専用プラン

日本通信、ブランド名b-mobileのイオン専用プランを契約した。
イオン専用プランには、コースが3種類あって、それぞれ最大速度が違う。
100kbpsで980円のプランA
300kbpsで2980円のプランB
Mbps越で4980円のプランC
しかし、これらのプランには2つの弱点がある。

1つ目は、HTTP通信が必ず圧縮通信される点。画像だけでなく、プレーンテキストも圧縮される。従って、HTTP通信でやりとりするAPIは一部が使用不能になるので注意が必要。HTTPS通信の場合は、使われないので問題なし。
2つ目は、ダウンストリームは強制的に切断される。SkypeやVoIPなどは使うことができない。ドコモなど他社も同等の設定を行っているが、日本通信はもっと厳しく設定しているそうだ。

この2点を注意すれば、格安モバイル通信が楽しめることは間違いない。

2011年6月26日日曜日

Google App Engineの料金体系の変更

Googleは今年中にGoogle App EngineをPreviewから正式サービスに昇格させる。またそれに伴い、大幅な料金体系の変更を行うと明言している。

一番の変更点は、CPU時間(CPU使用量)からインスタンス起動時間への変更である。
何が変わるかというと、インスタンスが起動していても使用されなければ料金は増えなかったが、インスタンスが起動していれば課金されるようになる。
つまり、1分に1回程度定期的にアクセスがあるサイトだと、従来はアクセスされたときのみ課金対象だったが、常時課金対象となる。無料で使用するユーザーには今後厳しくなるかもしれない。

Paid Appsのルール変更も行われる。アクセスが少ないときは無料で多くなったときだけ超過料金を支払っていたユーザーは要注意である。Paid AppsをONにしているだけで月9ドル料金が発生するようになる。かわりにSLAが付くようになるが、個人利用者の大半が9ドル払うのならVPSに移行するというだろう。

"課金体系を変更する前に、新しい課金体系ではコストがいくらになるかどうかを確認できるような機能を提供する予定です。"とGoogleさんが言うのでそのあと考えてみようと思う。

2011年5月17日火曜日

連続バーコードリーダーを連続で更新

連続バーコードリーダーをまた更新した。
いままでIS01しか触っていなかったので、このアプリはIS01基準で開発していた。最近同僚のLYNX 3Dにインストールしてもらい見てみたところ、様々な問題が存在することがわかった。

まず、ボタンがかなり小さい。ということで、ボタンを拡大することにした。
横持ちの場合広告がボタンの横に出てくるが、その広告分ボタン幅が狭くなるため押しにくくなってしまっていたようだ。そこで、広告位置を変更した。
広告をボタンの下に出すと一覧を表示するスペースがほとんどなくなるため使いにくい。右に表示したいが広告を90度回転させることになるので断念。最終的にはボタンを右側に広告を下に出すように変更した。

画面回転をさせると連続撮影しなくなるバグを発見した。もともとIS01は特殊なハードで、画面の回転がデフォルトではOFFになっている。そのためいままでバグがあったのに発見が遅れる事態となった

今回わかったことはAndroidは様々なハードがあるため、実装の種類が多い。したがって一部の機器でデバックしただけだと問題が発生することがある。
したがって、できるかぎり(SharpとSonyなど)2社以上のハードでテストを行いたい。

2011年5月10日火曜日

連続バーコードリーダー更新

前々から公開していた「連続バーコードリーダー」を更新。
単機能アプリなのでバグがほとんどなくアップデートいていなかったが、今回機能拡張を行いアップデートを実施した。

新規機能
テキストエディタと連携できるようにした

2011年5月9日月曜日

心機一転するために過去の記事を全削除

せっかく5年以上続けた(といっても3年目以降は月1更新)ブログだったが、ワンクリックで過去の記事を全削除して再スタートした。

前回の反省を生かしたブログにするため、2つのルールを定めた。

年月が経つにつれカオスなブログになっていってしまったので、今回はきっちりジャンルごとにブログを分ける。
IT関連の記事はRepy Blogに、
エンターテイメントの記事はただのエンタメ批評に投稿する。

就職をしてから更新が一気に減ったので、今回は月1ずつの更新を目指す。

以上

2011年1月23日日曜日

「2ch to RSS」2ちゃんねるのスレッドをRSSに変換

新たなサイト2ch to RSSを正式オープンしました。ついに競合があまりいないニッチな市場に進出。
実際には1年前に運用開始していたが、サーバーリソースが高くなってきたためフルスクラッチを行い、正式オープンとした。

今回の制作にあたって、プラットフォームはいろいろ悩んだ。PHPなどが利用可能なレンタルサーバーにするか、自動でスケーリングされるPaaSにするか、いろいろできるVPSやIaaSにするか。
レンタルサーバーだと重い処理を行わせると追い出されユーザーが路頭に迷うことになってしまう。VPSやIaaSだと料金が割高なうえサーバー管理が必要なため断念。そこでPaaSに決定した。PaaSといえば、AzureとGoogle App Engineの2つ選択肢があり、.NET開発者としてはAzureを選択したかったがインスタンスの起動時間に課金されるため今回は断念した。

[サービス内容説明]
2chスレッドのアドレスを2ch to RSSに入力すると、RSSが生成されるためそれをリーダーに登録するだけ、以上。
2ch互換掲示板はほぼすべてに対応しています。Atomも生成できます。