SlideShare a Scribd company logo
1 of 24
Download to read offline
Gecko勉強会 その2

Firefox OS 日本語 IME 開発状況
自己紹介


Twitter: @masap



職業: 組み込みプログラマ(主に Wi-Fi)
日本語 IME を直し始める

3
きっかけなど


きっかけとかモチベーションとか


日本語入力に問題があると聞いて






基本Wi-Fiばっかりいじっているので
日本語入力とか気にしたこともなかった

IME開発経験なし

目的


Google日本語入力を使って日本語入力ができるかを
調査

4
Keyboard API


Keyboard API





Firefox OS 1.3から導入。このAPIを使ってIMEを作る。
https://wiki.mozilla.org/WebAPI/KeboardIME

主な Keyboard API
メソッド

用途

setComposition

変換中文字列を下線付きで表示

endComposition

変換中文字列を確定

setSelectionRange

選択範囲を表示

sendKey

英数字等変換せず出力

5
キーボード関連の変更


Firefox OS 1.3はキーボード周りの大きい修正が2
つあった


Keyboard API (前述)



Third Party Keyboard


サードパーティーのキーボードをWebアプリケーションとして
追加できるフレームワーク

6
日本語はおいてけぼり


日本語はこれらの修正に取り残されている



日本語キーボードを有効にするだけで一苦労






ファイルをちょこっと変えて直そうとしてもcheckoutで元に戻
すコードが入っている
「日本語を使わせない!」という強い意図を感じる...

有効にしてみたものの日本語入力が一切できなく
なっている


既存バグについてはBugzillaに報告

7
キーボードが無い世界で


暫定キーボード


必要最低限の機能を持った
キーボードを用意する



このキーボードでGoogle
日本語入力を使った変換が
できるようにする

8
Google CGI API for Japanese Input

9
Google 日本語入力


Google CGI API for Japanese Input





Google日本語入力をWebから使用できる
http://www.google.co.jp/ime/cgiapi.html

JSONPですぐ使える


Firefoxブラウザでプロトタイプを作成して動作したので
Firefox OSで動かしてみる



あれ?エラーが出る



Certified/PrivilegedアプリはJSONPが使えない

10
TCPSocketを使う


JSONPの代替としてTCPSocketを使う



ひらがなを変換できない





TCPSocketのbinaryType: 'string'だとunicodeが化ける
binaryType: 'arraybuffer'にして自前 unicode 変換テーブ
ルで解決

「さてんるいこ」の変換に成功

11
TCPSocketの初期接続が遅い(1/3)


TCP接続の開始に最初だけ5秒掛かる




Wiresharkで見ると名前解決に5秒掛かっている
ローカルのルータのIPアドレス宛にDNS Queryを送信
5秒経っても応答が無いので外部のDNSサーバへDNS
Queryを送信

KEON

RTX3000

5秒

DNS Server

DNS Query
DNS Query

DNS Response


TCPSocketだけでなくブラウザからの検索でも再現

12
TCPSocketの初期接続が遅い(2/3)


なぜローカルのルータにDNS Queryを送信?




ルータからのDHCP ACKに「俺はDNSサーバです」と入ってい
るから

なぜDNS Responseを返せないのにDNSサーバを名乗
るの?


予想:YAMAHA はネットボランチDNSという独自DNSサービ
スを持っているので自分をDNSサーバとする必要があったの
では

13
TCPSocketの初期接続が遅い(3/3)


他はどうしているの?






Android 4.0.4で試したら再現せず。8.8.8.8をデフォルト
で使ってたわ...
Ubuntu 13.04の場合は既知のDNSサーバ全てに一度
にDNS Queryを投げているため問題にならない

対処方法は?




ユーザーランドからはgethostbyname()を呼ぶぐらいし
かできないのでカーネルをどうにかしないといけない
根深そうなので報告しといた。Bug 944377
14
日本語キーボードが壊れている件について

15
日本語キーボードが動かない(1/3)


Bugzillaに「日本語キーボード動かないんだけど」
と報告を上げる (Bug 933252)


その後MLに転載されたりしていろいろ返事が来る









「日本語キーボード動かない?そうだよ!だから disable にして
るんだ!」
(やはり意図的だったか...)
「日本語辞書削除しちゃたからそのせいじゃないかなあ。あ、
君直す?直してくれるんだったらやり方教えるよ!」
(ヤバい!一生担当にされそうなのでスルーしよう!) 辞書の問
題じゃないよ。入力自体ができないんだ。

とかやっているうちに直してくれる人が現れた。
16
日本語キーボードが動かない(2/3)


直ったと言っているので動作確認





おかしい... 治っているように見えない...
翌日試してみると動いた。
何で?
ホームの検索エリア→OK
ブラウザの検索エリア→NG
というオチ。これも報告した

17
日本語キーボードが動かない(3/3)


やっぱり直ってない






今度は
ホームの検索エリア→NG
ブラウザの検索エリア→OK
「あかさ」と入力すると
「ああかあかさ」と表示される
この状態のまま現在に至る

18
変換対象の文字列がわからない


変換対象がハイライトされない


右図のように色が付いて欲しい









以前は sendPendingSymbols という関数があって、「ここか
らここまでは青色」という指定ができた
setComposition にはそれが無いので色を変えて選択箇所を
明示することができない
setCompositionとsetSelectionRangeは同時には使えない

Bug 940986として報告したが返事がない
setCompositionには引数を追加して、ここまでは何色
といった指定を可能にすべき
19
簡単なパッチを送る (1/2)


簡単なパッチを送った (Bug 939776)


「大小」キーは濁点や半濁点にも使う
ので「小 ゛ ゜」にした

20
簡単なパッチを送る (2/2)


ツッコミが来た






「大小 ゛ ゜」にすべきでは?WNNとかはそう
それだけは阻止したいので反論して回避した
「大」は冗長ですし。iPhoneも「小 ゛ ゜」ですし

日本人開発者が居ない




議論は結局「まあ、ネイティブの人が言うんだからそうしましょ
う」ってことで収束した
つまりGaiaとFirefox OS UXチームには日本人が居ないorz

21
使えるようになった


下記手順で有効にする


gaiaディレクトリで下記コマンド実行
$ GAIA_KEYBOARD_LAYOUTS=en,jp-kanji make reset-gaia



日本語キーボードを有効に





Settings → Keyboards
Selecte keyboards
Add more keyboards
Japanese – Kanji にチェック

22
現状


言いたいことはたくさんあるものの


日本語入力が一切できない
という状況は改善できた



協力者募集


Bugzillaに報告したり
パッチを書いたり
手を動かせる協力者求む!

23
以上

24

More Related Content

More from Honma Masashi

Fxos for Embedded Systems (English version)
Fxos for Embedded Systems (English version)Fxos for Embedded Systems (English version)
Fxos for Embedded Systems (English version)Honma Masashi
 
Firefox OS for Embedded System
Firefox OS for Embedded SystemFirefox OS for Embedded System
Firefox OS for Embedded SystemHonma Masashi
 
HTML5 によるロボット制御
HTML5 によるロボット制御HTML5 によるロボット制御
HTML5 によるロボット制御Honma Masashi
 
Photo hack day Japan 2014 プレゼン資料
Photo hack day Japan 2014 プレゼン資料Photo hack day Japan 2014 プレゼン資料
Photo hack day Japan 2014 プレゼン資料Honma Masashi
 
Firefox OS を使って HTML5 でハードウェアを動かしてみよう
Firefox OS を使って HTML5 でハードウェアを動かしてみようFirefox OS を使って HTML5 でハードウェアを動かしてみよう
Firefox OS を使って HTML5 でハードウェアを動かしてみようHonma Masashi
 
Designers hack 011 ウォシュレットのリモコンから UI を極力無くすには
Designers hack 011 ウォシュレットのリモコンから UI を極力無くすにはDesigners hack 011 ウォシュレットのリモコンから UI を極力無くすには
Designers hack 011 ウォシュレットのリモコンから UI を極力無くすにはHonma Masashi
 
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu TouchHonma Masashi
 
さわってみよう Firefox OS in 大阪
さわってみよう Firefox OS in 大阪さわってみよう Firefox OS in 大阪
さわってみよう Firefox OS in 大阪Honma Masashi
 
Firefox OS 2012 年まとめ
Firefox OS 2012 年まとめFirefox OS 2012 年まとめ
Firefox OS 2012 年まとめHonma Masashi
 
さわってみよう Firefox OS in 福岡
さわってみよう Firefox OS in 福岡さわってみよう Firefox OS in 福岡
さわってみよう Firefox OS in 福岡Honma Masashi
 
Firefox OS の Wi-Fi 機能改善
Firefox OS の Wi-Fi 機能改善Firefox OS の Wi-Fi 機能改善
Firefox OS の Wi-Fi 機能改善Honma Masashi
 
デザイナー目線で Firefox OS を変えよう
デザイナー目線で Firefox OS を変えようデザイナー目線で Firefox OS を変えよう
デザイナー目線で Firefox OS を変えようHonma Masashi
 
Firefox OS カスタム ROM の作成
Firefox OS カスタム ROM の作成Firefox OS カスタム ROM の作成
Firefox OS カスタム ROM の作成Honma Masashi
 

More from Honma Masashi (14)

ROS.js の紹介
ROS.js の紹介ROS.js の紹介
ROS.js の紹介
 
Fxos for Embedded Systems (English version)
Fxos for Embedded Systems (English version)Fxos for Embedded Systems (English version)
Fxos for Embedded Systems (English version)
 
Firefox OS for Embedded System
Firefox OS for Embedded SystemFirefox OS for Embedded System
Firefox OS for Embedded System
 
HTML5 によるロボット制御
HTML5 によるロボット制御HTML5 によるロボット制御
HTML5 によるロボット制御
 
Photo hack day Japan 2014 プレゼン資料
Photo hack day Japan 2014 プレゼン資料Photo hack day Japan 2014 プレゼン資料
Photo hack day Japan 2014 プレゼン資料
 
Firefox OS を使って HTML5 でハードウェアを動かしてみよう
Firefox OS を使って HTML5 でハードウェアを動かしてみようFirefox OS を使って HTML5 でハードウェアを動かしてみよう
Firefox OS を使って HTML5 でハードウェアを動かしてみよう
 
Designers hack 011 ウォシュレットのリモコンから UI を極力無くすには
Designers hack 011 ウォシュレットのリモコンから UI を極力無くすにはDesigners hack 011 ウォシュレットのリモコンから UI を極力無くすには
Designers hack 011 ウォシュレットのリモコンから UI を極力無くすには
 
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch
 
さわってみよう Firefox OS in 大阪
さわってみよう Firefox OS in 大阪さわってみよう Firefox OS in 大阪
さわってみよう Firefox OS in 大阪
 
Firefox OS 2012 年まとめ
Firefox OS 2012 年まとめFirefox OS 2012 年まとめ
Firefox OS 2012 年まとめ
 
さわってみよう Firefox OS in 福岡
さわってみよう Firefox OS in 福岡さわってみよう Firefox OS in 福岡
さわってみよう Firefox OS in 福岡
 
Firefox OS の Wi-Fi 機能改善
Firefox OS の Wi-Fi 機能改善Firefox OS の Wi-Fi 機能改善
Firefox OS の Wi-Fi 機能改善
 
デザイナー目線で Firefox OS を変えよう
デザイナー目線で Firefox OS を変えようデザイナー目線で Firefox OS を変えよう
デザイナー目線で Firefox OS を変えよう
 
Firefox OS カスタム ROM の作成
Firefox OS カスタム ROM の作成Firefox OS カスタム ROM の作成
Firefox OS カスタム ROM の作成
 

Recently uploaded

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Recently uploaded (14)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

Firefox OS 日本語 IME 開発状況