EastMeetsWest Yuki Sonoda
Yoji ShidaraAkira Matsuda
Shintaro Kakutani
EastMeetsWest Yuki Sonoda
Yoji ShidaraAkira Matsuda
Shintaro Kakutani
From Japanese mobile-web world, to Latin-1 developers.
設樂 洋爾 (Yoji Shidara)[email protected]
RubyConf 2009 2009-11-19
My name isYoji SHIDARA.
Enishi Tech Inc.Small Company.Only 2 staffs.
Small Office.(CEO’s flat)
縁
技relationship, link, bound, fate, chance...
“Enishi” implies:
“Tech” is for technology.
We’re from Japan!
Sapporo
Tokyo San Fransisco!9.5hrs1.4hrs
@kakutani@a_matsuda@yugui
@darashi (me)
Sapporo is a beautiful provincial city of Japan.
Delicious foods are waiting for you!
My works:
jpmobile
jpmobile:A Rails Plugin forJapanese Mobile
Phones.
jpmobile absorbs
Chaotic Specifications of Japanese Mobile
Phones.
Today,
I’m going to take you to the chaotic
world.
By the way,
We have kinds of characters.
サンフランシスコ で
緊張 しています!
We have kinds of characters.
I’m so nervous
at San Fransisco!
鯏鮗鯡鯵鮭鯊鮎鯖鰰鮑鮫鱧鰯鰆鮠鰻鯱鮃鰍鱸鱶鯑鯣鮒鰹鯛鰤鰈鮹鯔鱚鱈鮪鯨鯲鱒鯉鯰鰐
We have lots of characters.
Not only characters,
But alsoencodings!
Shift_JIS WindowsISO-2022-JP E-MailEUC-JP traditional UNIXUTF-8 modern systems
Major Encodings:
UTF-8 is not the only option.
We’re still using these encodingsas the situation
demands.
Ruby 1.9 works nice with this
situation.
For example,
"札幌".encode("ISO-2022-JP")#=> "\e$B;%KZ\e(B"
require ‘kconv’Kconv::kconv("札幌", Kconv::JIS, # to Kconv::UTF8 # from)#=> "\e$B;%KZ\e(B"
1.8
1.9Ruby cares about the encoding of “札幌”
We must care about the encoding of “札幌”
Now we’re happy!
... in most cases.
Do you know
Emoji
Emoticon
E + Moji絵 + 文字
Picture + Character
Emoji makes the situation worse.
We have three major mobile phone carriers in Japan.
They define their own emoticon
charset.
(Japanese usually paint the sun red)
!"#$%&'()*+,-./01
&'(23
45 -.67&'(23
45 -.67
8 9 : ; < = ! > ? 8 @ < A B ! C < = AD EFGH : @ < ! ! < > D @ @ A : ! I < !
D 9 : ; < B ! > ? D @ < A C ! C < B AA JFGH : @ < : ! < > A @ @ > K ! I < :
A L : ; < C ! > ? A @ < A I ! C < C A> EFGM : @ ; K ! < > > @ @ > 8 ! I ; K
> L : @ > ? ! < D I @ @ D = ! I > ? A< JFGM : @ ; 8 ! < > < @ @ > D ! I ; 8
< NOPFGH : @ > = ! < D Q @ @ D B ! I > = A; RSTH : @ ; D ! < > ; @ @ > A ! I ; D
; UOPFGH : @ > B ! < D ! @ @ D C ! I > B A@ RSTM : @ ; A ! < > @ @ @ > > ! I ; A
@ NOPFGM : @ > C ! < D : @ @ D I ! I > C A? VRWGH : @ ; > ! < > ? @ @ > < ! I ; >
? UOPFGM : @ > I ! < A K @ @ D Q ! I > I A= VRWGM : @ ; < ! < > = @ @ > ; ! I ; <
= XWGH : @ > Q ! < A 8 @ @ D ! ! I > Q >K RYH : @ ; ; ! < > B @ @ > @ ! I ; ;
8K XWGM : @ > ! ! < A D @ @ D : ! I > ! >8 RYM : @ ; @ ! < > C @ @ > ? ! I ; @
88.Z[\]^_`Z_Za7
: @ > : ! < A A @ @ A K ! I > : >D JbcM : @ ; ? ! < > I @ @ > = ! I ; ?
8D d.Zefg : ; = B ! > I 8 @ < @ B ! C = B >A EbcM : @ ; = ! < > Q @ @ > B ! I ; =
8A gh^i : ; ! B ! < 8 8 @ ; ; I ! C ! B >> jk : ; ; K ! > ? ? @ < > 8 ! C ; K
8> l7 : @ = ; ! < @ = @ @ @ ; ! I = ; >< mna^7 : ; = A ! > C B @ < @ A ! C = A
8< oH : ; < ! ! > ? ; @ < A : ! C < ! >; pq : @ C 8 ! < = > @ ? A A ! I C 8
8; rstu : ; < : ! > ? @ @ < > K ! C < : >@ oMvwxPy : ; ; 8 ! > ? = @ < > D ! C ; 8
8@ zWGH : @ < K ! < A > @ @ A 8 ! I < K >? {7 : ; ! C ! < 8 D @ ; ; Q ! C ! C
8? zWGM : @ < 8 ! < A < @ @ A D ! I < 8 >=/|_}hZv4~y
: @ @ I ! < ; K @ @ < Q ! I @ I
8= XSTH : @ < D ! < A ; @ @ A A ! I < D <K Xw : ; Q A ! > : B @ ; < < ! C Q A
DK XSTM : @ < A ! < A @ @ @ A > ! I < A <8 �^6 : @ C D ! < = < @ ? A > ! I C D
D8 RWGH : @ < > ! < A ? @ @ A < ! I < > <D���^�vi��7efgy
: ; = C ! > I D @ < @ C ! C = C
DD RWGH : @ < < ! < A = @ @ A ; ! I < < <A Wx� : ; ! I ! < 8 A @ ; ; ! ! C ! I
DA XYH : @ < ; ! < A B @ @ A @ ! I < ; <>6�^l�^�v��y
: @ ; B ! < > ! @ @ > C ! I ; B
D> XYD : @ < @ ! < A C @ @ A ? ! I < @ << ��� : @ ; C ! < > : @ @ > I ! I ; C
D< �pq : @ = @ ! < @ B @ @ @ @ ! I = @ <; '�H : @ @ Q ! < ; 8 @ @ < ! ! I @ Q
D; /fg : @ < ? ! < A I @ @ A = ! I < ? <@ �pqH : @ = ? ! < @ C @ @ @ ? ! I = ?
D@ �.�g : @ < = ! < A Q @ @ A B ! I < = <? ����%�����������$������ �pqM : ; < > ! > @ I @ < A < ! C < >
D? �H : @ < B ! < A ! @ @ A C ! I < B <=[�|h^��g�H
: @ @ ! ! < ; D @ @ < : ! I @ !
D= JbcH : @ < C ! < A : @ @ A I ! I < C ;K ���� : ; ; D ! > ? B @ < > A ! C ; D
AK EbcH : @ < I ! < > K @ @ A Q ! I < I ;8 ��H : @ ; I ! < < K @ @ > Q ! I ; I
A8 Y�� ¡ : @ < Q ! < > 8 @ @ A ! ! I < Q ;D ��M : @ ; Q ! < < 8 @ @ > ! ! I ; Q
¢QQ£&'(¤¥¦§�¨©ª£¥«¬
®¯°§�±�$
!²¬³´µ¤ª£¥«¬®
v¶·y!]^7´µ¤ª£¥¸^l�¹º»¼¥¦§�¨©ª£¥¸^l
v¶·y!]^7´µ¤ª£¥¸^l�¹º»¼¥¦§�¨©ª£¥¸^l
¯°§�±�$¢QQ£&'(¤¥¦§�¨©ª£¥«¬
®
!²¬³´µ¤ª£¥«¬®
½¾�]^_`Z&'(¹º¿ÀÁÂÃÄÅÁÆuǼ&'(ÈÉÊËÇuÌÍ 8Î88
DoCoMo au SoftBank
!"#$%&'()*+,-./01
&'(23
45 -.67&'(23
45 -.67
8 9 : ; < = ! > ? 8 @ < A B ! C < = AD EFGH : @ < ! ! < > D @ @ A : ! I < !
D 9 : ; < B ! > ? D @ < A C ! C < B AA JFGH : @ < : ! < > A @ @ > K ! I < :
A L : ; < C ! > ? A @ < A I ! C < C A> EFGM : @ ; K ! < > > @ @ > 8 ! I ; K
> L : @ > ? ! < D I @ @ D = ! I > ? A< JFGM : @ ; 8 ! < > < @ @ > D ! I ; 8
< NOPFGH : @ > = ! < D Q @ @ D B ! I > = A; RSTH : @ ; D ! < > ; @ @ > A ! I ; D
; UOPFGH : @ > B ! < D ! @ @ D C ! I > B A@ RSTM : @ ; A ! < > @ @ @ > > ! I ; A
@ NOPFGM : @ > C ! < D : @ @ D I ! I > C A? VRWGH : @ ; > ! < > ? @ @ > < ! I ; >
? UOPFGM : @ > I ! < A K @ @ D Q ! I > I A= VRWGM : @ ; < ! < > = @ @ > ; ! I ; <
= XWGH : @ > Q ! < A 8 @ @ D ! ! I > Q >K RYH : @ ; ; ! < > B @ @ > @ ! I ; ;
8K XWGM : @ > ! ! < A D @ @ D : ! I > ! >8 RYM : @ ; @ ! < > C @ @ > ? ! I ; @
88.Z[\]^_`Z_Za7
: @ > : ! < A A @ @ A K ! I > : >D JbcM : @ ; ? ! < > I @ @ > = ! I ; ?
8D d.Zefg : ; = B ! > I 8 @ < @ B ! C = B >A EbcM : @ ; = ! < > Q @ @ > B ! I ; =
8A gh^i : ; ! B ! < 8 8 @ ; ; I ! C ! B >> jk : ; ; K ! > ? ? @ < > 8 ! C ; K
8> l7 : @ = ; ! < @ = @ @ @ ; ! I = ; >< mna^7 : ; = A ! > C B @ < @ A ! C = A
8< oH : ; < ! ! > ? ; @ < A : ! C < ! >; pq : @ C 8 ! < = > @ ? A A ! I C 8
8; rstu : ; < : ! > ? @ @ < > K ! C < : >@ oMvwxPy : ; ; 8 ! > ? = @ < > D ! C ; 8
8@ zWGH : @ < K ! < A > @ @ A 8 ! I < K >? {7 : ; ! C ! < 8 D @ ; ; Q ! C ! C
8? zWGM : @ < 8 ! < A < @ @ A D ! I < 8 >=/|_}hZv4~y
: @ @ I ! < ; K @ @ < Q ! I @ I
8= XSTH : @ < D ! < A ; @ @ A A ! I < D <K Xw : ; Q A ! > : B @ ; < < ! C Q A
DK XSTM : @ < A ! < A @ @ @ A > ! I < A <8 �^6 : @ C D ! < = < @ ? A > ! I C D
D8 RWGH : @ < > ! < A ? @ @ A < ! I < > <D���^�vi��7efgy
: ; = C ! > I D @ < @ C ! C = C
DD RWGH : @ < < ! < A = @ @ A ; ! I < < <A Wx� : ; ! I ! < 8 A @ ; ; ! ! C ! I
DA XYH : @ < ; ! < A B @ @ A @ ! I < ; <>6�^l�^�v��y
: @ ; B ! < > ! @ @ > C ! I ; B
D> XYD : @ < @ ! < A C @ @ A ? ! I < @ << ��� : @ ; C ! < > : @ @ > I ! I ; C
D< �pq : @ = @ ! < @ B @ @ @ @ ! I = @ <; '�H : @ @ Q ! < ; 8 @ @ < ! ! I @ Q
D; /fg : @ < ? ! < A I @ @ A = ! I < ? <@ �pqH : @ = ? ! < @ C @ @ @ ? ! I = ?
D@ �.�g : @ < = ! < A Q @ @ A B ! I < = <? ����%�����������$������ �pqM : ; < > ! > @ I @ < A < ! C < >
D? �H : @ < B ! < A ! @ @ A C ! I < B <=[�|h^��g�H
: @ @ ! ! < ; D @ @ < : ! I @ !
D= JbcH : @ < C ! < A : @ @ A I ! I < C ;K ���� : ; ; D ! > ? B @ < > A ! C ; D
AK EbcH : @ < I ! < > K @ @ A Q ! I < I ;8 ��H : @ ; I ! < < K @ @ > Q ! I ; I
A8 Y�� ¡ : @ < Q ! < > 8 @ @ A ! ! I < Q ;D ��M : @ ; Q ! < < 8 @ @ > ! ! I ; Q
¢QQ£&'(¤¥¦§�¨©ª£¥«¬
®¯°§�±�$
!²¬³´µ¤ª£¥«¬®
v¶·y!]^7´µ¤ª£¥¸^l�¹º»¼¥¦§�¨©ª£¥¸^l
v¶·y!]^7´µ¤ª£¥¸^l�¹º»¼¥¦§�¨©ª£¥¸^l
¯°§�±�$¢QQ£&'(¤¥¦§�¨©ª£¥«¬
®
!²¬³´µ¤ª£¥«¬®
½¾�]^_`Z&'(¹º¿ÀÁÂÃÄÅÁÆuǼ&'(ÈÉÊËÇuÌÍ 8Î88
DoCoMo au SoftBank
U+E04A$Gj
U+E488F6607541EB60
F89FU+E63E
w/escapeSJIS
JISSJIS’
Unicode
RegularEncodings
xEmoticon Encodings
That’s not all.
Five sad stories:
(1)
Sometimes the corresponding emoticon is not available on the other carriers.
“Snow crystal”
auDoCoMo
SoftBank
N/A
N/A
(2)
Nuances may be lost during the
translation.
http://www.j-cast.com/kaisha/2009/07/31046442.html
「ホントにつまらないことなんですけど、ケータイが原因で彼女と喧嘩しちゃって…」と話すのは、首都圏に住む会社員のAさん(20代)。
“Really nonsense, but I had a quarrel with my girlfriend because of a problem with mobile phones.”- Mr. A (20-year-old office worker, Tokyo)
「彼女とケンカ」の原因「絵文字が変換されない!」
(3)
Machine-readable tables are not
published.
!"#$%&'()*+,-./01
&'(23
45 -.67&'(23
45 -.67
8 9 : ; < = ! > ? 8 @ < A B ! C < = AD EFGH : @ < ! ! < > D @ @ A : ! I < !
D 9 : ; < B ! > ? D @ < A C ! C < B AA JFGH : @ < : ! < > A @ @ > K ! I < :
A L : ; < C ! > ? A @ < A I ! C < C A> EFGM : @ ; K ! < > > @ @ > 8 ! I ; K
> L : @ > ? ! < D I @ @ D = ! I > ? A< JFGM : @ ; 8 ! < > < @ @ > D ! I ; 8
< NOPFGH : @ > = ! < D Q @ @ D B ! I > = A; RSTH : @ ; D ! < > ; @ @ > A ! I ; D
; UOPFGH : @ > B ! < D ! @ @ D C ! I > B A@ RSTM : @ ; A ! < > @ @ @ > > ! I ; A
@ NOPFGM : @ > C ! < D : @ @ D I ! I > C A? VRWGH : @ ; > ! < > ? @ @ > < ! I ; >
? UOPFGM : @ > I ! < A K @ @ D Q ! I > I A= VRWGM : @ ; < ! < > = @ @ > ; ! I ; <
= XWGH : @ > Q ! < A 8 @ @ D ! ! I > Q >K RYH : @ ; ; ! < > B @ @ > @ ! I ; ;
8K XWGM : @ > ! ! < A D @ @ D : ! I > ! >8 RYM : @ ; @ ! < > C @ @ > ? ! I ; @
88.Z[\]^_`Z_Za7
: @ > : ! < A A @ @ A K ! I > : >D JbcM : @ ; ? ! < > I @ @ > = ! I ; ?
8D d.Zefg : ; = B ! > I 8 @ < @ B ! C = B >A EbcM : @ ; = ! < > Q @ @ > B ! I ; =
8A gh^i : ; ! B ! < 8 8 @ ; ; I ! C ! B >> jk : ; ; K ! > ? ? @ < > 8 ! C ; K
8> l7 : @ = ; ! < @ = @ @ @ ; ! I = ; >< mna^7 : ; = A ! > C B @ < @ A ! C = A
8< oH : ; < ! ! > ? ; @ < A : ! C < ! >; pq : @ C 8 ! < = > @ ? A A ! I C 8
8; rstu : ; < : ! > ? @ @ < > K ! C < : >@ oMvwxPy : ; ; 8 ! > ? = @ < > D ! C ; 8
8@ zWGH : @ < K ! < A > @ @ A 8 ! I < K >? {7 : ; ! C ! < 8 D @ ; ; Q ! C ! C
8? zWGM : @ < 8 ! < A < @ @ A D ! I < 8 >=/|_}hZv4~y
: @ @ I ! < ; K @ @ < Q ! I @ I
8= XSTH : @ < D ! < A ; @ @ A A ! I < D <K Xw : ; Q A ! > : B @ ; < < ! C Q A
DK XSTM : @ < A ! < A @ @ @ A > ! I < A <8 �^6 : @ C D ! < = < @ ? A > ! I C D
D8 RWGH : @ < > ! < A ? @ @ A < ! I < > <D���^�vi��7efgy
: ; = C ! > I D @ < @ C ! C = C
DD RWGH : @ < < ! < A = @ @ A ; ! I < < <A Wx� : ; ! I ! < 8 A @ ; ; ! ! C ! I
DA XYH : @ < ; ! < A B @ @ A @ ! I < ; <>6�^l�^�v��y
: @ ; B ! < > ! @ @ > C ! I ; B
D> XYD : @ < @ ! < A C @ @ A ? ! I < @ << ��� : @ ; C ! < > : @ @ > I ! I ; C
D< �pq : @ = @ ! < @ B @ @ @ @ ! I = @ <; '�H : @ @ Q ! < ; 8 @ @ < ! ! I @ Q
D; /fg : @ < ? ! < A I @ @ A = ! I < ? <@ �pqH : @ = ? ! < @ C @ @ @ ? ! I = ?
D@ �.�g : @ < = ! < A Q @ @ A B ! I < = <? ����%�����������$������ �pqM : ; < > ! > @ I @ < A < ! C < >
D? �H : @ < B ! < A ! @ @ A C ! I < B <=[�|h^��g�H
: @ @ ! ! < ; D @ @ < : ! I @ !
D= JbcH : @ < C ! < A : @ @ A I ! I < C ;K ���� : ; ; D ! > ? B @ < > A ! C ; D
AK EbcH : @ < I ! < > K @ @ A Q ! I < I ;8 ��H : @ ; I ! < < K @ @ > Q ! I ; I
A8 Y�� ¡ : @ < Q ! < > 8 @ @ A ! ! I < Q ;D ��M : @ ; Q ! < < 8 @ @ > ! ! I ; Q
¢QQ£&'(¤¥¦§�¨©ª£¥«¬
®¯°§�±�$
!²¬³´µ¤ª£¥«¬®
v¶·y!]^7´µ¤ª£¥¸^l�¹º»¼¥¦§�¨©ª£¥¸^l
v¶·y!]^7´µ¤ª£¥¸^l�¹º»¼¥¦§�¨©ª£¥¸^l
¯°§�±�$¢QQ£&'(¤¥¦§�¨©ª£¥«¬
®
!²¬³´µ¤ª£¥«¬®
½¾�]^_`Z&'(¹º¿ÀÁÂÃÄÅÁÆuǼ&'(ÈÉÊËÇuÌÍ 8Î88
http://creation.mb.softbank.jp/web/web_pic_01.html
http://www.au.kddi.com/ezfactory/tec/spec/pdf/typeD.pdf
http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/basic/
(4)
The official tables are not complete.(e.g. emoticons of
prior company name are hidden)
(5)
Assignments of Unicode private area
are partially overlapping
between two carriers.
Solution:
jpmobile
!"#$%&'()*+,-./01
&'(23
45 -.67&'(23
45 -.67
8 9 : ; < = ! > ? 8 @ < A B ! C < = AD EFGH : @ < ! ! < > D @ @ A : ! I < !
D 9 : ; < B ! > ? D @ < A C ! C < B AA JFGH : @ < : ! < > A @ @ > K ! I < :
A L : ; < C ! > ? A @ < A I ! C < C A> EFGM : @ ; K ! < > > @ @ > 8 ! I ; K
> L : @ > ? ! < D I @ @ D = ! I > ? A< JFGM : @ ; 8 ! < > < @ @ > D ! I ; 8
< NOPFGH : @ > = ! < D Q @ @ D B ! I > = A; RSTH : @ ; D ! < > ; @ @ > A ! I ; D
; UOPFGH : @ > B ! < D ! @ @ D C ! I > B A@ RSTM : @ ; A ! < > @ @ @ > > ! I ; A
@ NOPFGM : @ > C ! < D : @ @ D I ! I > C A? VRWGH : @ ; > ! < > ? @ @ > < ! I ; >
? UOPFGM : @ > I ! < A K @ @ D Q ! I > I A= VRWGM : @ ; < ! < > = @ @ > ; ! I ; <
= XWGH : @ > Q ! < A 8 @ @ D ! ! I > Q >K RYH : @ ; ; ! < > B @ @ > @ ! I ; ;
8K XWGM : @ > ! ! < A D @ @ D : ! I > ! >8 RYM : @ ; @ ! < > C @ @ > ? ! I ; @
88.Z[\]^_`Z_Za7
: @ > : ! < A A @ @ A K ! I > : >D JbcM : @ ; ? ! < > I @ @ > = ! I ; ?
8D d.Zefg : ; = B ! > I 8 @ < @ B ! C = B >A EbcM : @ ; = ! < > Q @ @ > B ! I ; =
8A gh^i : ; ! B ! < 8 8 @ ; ; I ! C ! B >> jk : ; ; K ! > ? ? @ < > 8 ! C ; K
8> l7 : @ = ; ! < @ = @ @ @ ; ! I = ; >< mna^7 : ; = A ! > C B @ < @ A ! C = A
8< oH : ; < ! ! > ? ; @ < A : ! C < ! >; pq : @ C 8 ! < = > @ ? A A ! I C 8
8; rstu : ; < : ! > ? @ @ < > K ! C < : >@ oMvwxPy : ; ; 8 ! > ? = @ < > D ! C ; 8
8@ zWGH : @ < K ! < A > @ @ A 8 ! I < K >? {7 : ; ! C ! < 8 D @ ; ; Q ! C ! C
8? zWGM : @ < 8 ! < A < @ @ A D ! I < 8 >=/|_}hZv4~y
: @ @ I ! < ; K @ @ < Q ! I @ I
8= XSTH : @ < D ! < A ; @ @ A A ! I < D <K Xw : ; Q A ! > : B @ ; < < ! C Q A
DK XSTM : @ < A ! < A @ @ @ A > ! I < A <8 �^6 : @ C D ! < = < @ ? A > ! I C D
D8 RWGH : @ < > ! < A ? @ @ A < ! I < > <D���^�vi��7efgy
: ; = C ! > I D @ < @ C ! C = C
DD RWGH : @ < < ! < A = @ @ A ; ! I < < <A Wx� : ; ! I ! < 8 A @ ; ; ! ! C ! I
DA XYH : @ < ; ! < A B @ @ A @ ! I < ; <>6�^l�^�v��y
: @ ; B ! < > ! @ @ > C ! I ; B
D> XYD : @ < @ ! < A C @ @ A ? ! I < @ << ��� : @ ; C ! < > : @ @ > I ! I ; C
D< �pq : @ = @ ! < @ B @ @ @ @ ! I = @ <; '�H : @ @ Q ! < ; 8 @ @ < ! ! I @ Q
D; /fg : @ < ? ! < A I @ @ A = ! I < ? <@ �pqH : @ = ? ! < @ C @ @ @ ? ! I = ?
D@ �.�g : @ < = ! < A Q @ @ A B ! I < = <? ����%�����������$������ �pqM : ; < > ! > @ I @ < A < ! C < >
D? �H : @ < B ! < A ! @ @ A C ! I < B <=[�|h^��g�H
: @ @ ! ! < ; D @ @ < : ! I @ !
D= JbcH : @ < C ! < A : @ @ A I ! I < C ;K ���� : ; ; D ! > ? B @ < > A ! C ; D
AK EbcH : @ < I ! < > K @ @ A Q ! I < I ;8 ��H : @ ; I ! < < K @ @ > Q ! I ; I
A8 Y�� ¡ : @ < Q ! < > 8 @ @ A ! ! I < Q ;D ��M : @ ; Q ! < < 8 @ @ > ! ! I ; Q
¢QQ£&'(¤¥¦§�¨©ª£¥«¬
®¯°§�±�$
!²¬³´µ¤ª£¥«¬®
v¶·y!]^7´µ¤ª£¥¸^l�¹º»¼¥¦§�¨©ª£¥¸^l
v¶·y!]^7´µ¤ª£¥¸^l�¹º»¼¥¦§�¨©ª£¥¸^l
¯°§�±�$¢QQ£&'(¤¥¦§�¨©ª£¥«¬
®
!²¬³´µ¤ª£¥«¬®
½¾�]^_`Z&'(¹º¿ÀÁÂÃÄÅÁÆuǼ&'(ÈÉÊËÇuÌÍ 8Î88
!"#$%&'()*+,-./01
&'(23
45 -.67&'(23
45 -.67
8 9 : ; < = ! > ? 8 @ < A B ! C < = AD EFGH : @ < ! ! < > D @ @ A : ! I < !
D 9 : ; < B ! > ? D @ < A C ! C < B AA JFGH : @ < : ! < > A @ @ > K ! I < :
A L : ; < C ! > ? A @ < A I ! C < C A> EFGM : @ ; K ! < > > @ @ > 8 ! I ; K
> L : @ > ? ! < D I @ @ D = ! I > ? A< JFGM : @ ; 8 ! < > < @ @ > D ! I ; 8
< NOPFGH : @ > = ! < D Q @ @ D B ! I > = A; RSTH : @ ; D ! < > ; @ @ > A ! I ; D
; UOPFGH : @ > B ! < D ! @ @ D C ! I > B A@ RSTM : @ ; A ! < > @ @ @ > > ! I ; A
@ NOPFGM : @ > C ! < D : @ @ D I ! I > C A? VRWGH : @ ; > ! < > ? @ @ > < ! I ; >
? UOPFGM : @ > I ! < A K @ @ D Q ! I > I A= VRWGM : @ ; < ! < > = @ @ > ; ! I ; <
= XWGH : @ > Q ! < A 8 @ @ D ! ! I > Q >K RYH : @ ; ; ! < > B @ @ > @ ! I ; ;
8K XWGM : @ > ! ! < A D @ @ D : ! I > ! >8 RYM : @ ; @ ! < > C @ @ > ? ! I ; @
88.Z[\]^_`Z_Za7
: @ > : ! < A A @ @ A K ! I > : >D JbcM : @ ; ? ! < > I @ @ > = ! I ; ?
8D d.Zefg : ; = B ! > I 8 @ < @ B ! C = B >A EbcM : @ ; = ! < > Q @ @ > B ! I ; =
8A gh^i : ; ! B ! < 8 8 @ ; ; I ! C ! B >> jk : ; ; K ! > ? ? @ < > 8 ! C ; K
8> l7 : @ = ; ! < @ = @ @ @ ; ! I = ; >< mna^7 : ; = A ! > C B @ < @ A ! C = A
8< oH : ; < ! ! > ? ; @ < A : ! C < ! >; pq : @ C 8 ! < = > @ ? A A ! I C 8
8; rstu : ; < : ! > ? @ @ < > K ! C < : >@ oMvwxPy : ; ; 8 ! > ? = @ < > D ! C ; 8
8@ zWGH : @ < K ! < A > @ @ A 8 ! I < K >? {7 : ; ! C ! < 8 D @ ; ; Q ! C ! C
8? zWGM : @ < 8 ! < A < @ @ A D ! I < 8 >=/|_}hZv4~y
: @ @ I ! < ; K @ @ < Q ! I @ I
8= XSTH : @ < D ! < A ; @ @ A A ! I < D <K Xw : ; Q A ! > : B @ ; < < ! C Q A
DK XSTM : @ < A ! < A @ @ @ A > ! I < A <8 �^6 : @ C D ! < = < @ ? A > ! I C D
D8 RWGH : @ < > ! < A ? @ @ A < ! I < > <D���^�vi��7efgy
: ; = C ! > I D @ < @ C ! C = C
DD RWGH : @ < < ! < A = @ @ A ; ! I < < <A Wx� : ; ! I ! < 8 A @ ; ; ! ! C ! I
DA XYH : @ < ; ! < A B @ @ A @ ! I < ; <>6�^l�^�v��y
: @ ; B ! < > ! @ @ > C ! I ; B
D> XYD : @ < @ ! < A C @ @ A ? ! I < @ << ��� : @ ; C ! < > : @ @ > I ! I ; C
D< �pq : @ = @ ! < @ B @ @ @ @ ! I = @ <; '�H : @ @ Q ! < ; 8 @ @ < ! ! I @ Q
D; /fg : @ < ? ! < A I @ @ A = ! I < ? <@ �pqH : @ = ? ! < @ C @ @ @ ? ! I = ?
D@ �.�g : @ < = ! < A Q @ @ A B ! I < = <? ����%�����������$������ �pqM : ; < > ! > @ I @ < A < ! C < >
D? �H : @ < B ! < A ! @ @ A C ! I < B <=[�|h^��g�H
: @ @ ! ! < ; D @ @ < : ! I @ !
D= JbcH : @ < C ! < A : @ @ A I ! I < C ;K ���� : ; ; D ! > ? B @ < > A ! C ; D
AK EbcH : @ < I ! < > K @ @ A Q ! I < I ;8 ��H : @ ; I ! < < K @ @ > Q ! I ; I
A8 Y�� ¡ : @ < Q ! < > 8 @ @ A ! ! I < Q ;D ��M : @ ; Q ! < < 8 @ @ > ! ! I ; Q
¢QQ£&'(¤¥¦§�¨©ª£¥«¬
®¯°§�±�$
!²¬³´µ¤ª£¥«¬®
v¶·y!]^7´µ¤ª£¥¸^l�¹º»¼¥¦§�¨©ª£¥¸^l
v¶·y!]^7´µ¤ª£¥¸^l�¹º»¼¥¦§�¨©ª£¥¸^l
¯°§�±�$¢QQ£&'(¤¥¦§�¨©ª£¥«¬
®
!²¬³´µ¤ª£¥«¬®
½¾�]^_`Z&'(¹º¿ÀÁÂÃÄÅÁÆuǼ&'(ÈÉÊËÇuÌÍ 8Î88
RailsApp
jpmobile
Automatically translate the emoticons.
jpmobile supports GPS, session management,
subscriber identification, template switching, ...
Conclusion:
If you are asked to build a website for Japanese mobile
phones,
Say “No.”
Or use jpmobile.
Future works:
Reimplement jpmobile on
Ruby 1.9 m17n framework!
Thank you!
Questions:
After the last speech.Thank you.
Visit Sapporo!
Sapporo!
Tokyo San Fransisco11.15hrs1.4hrs
We’ll haveRegional RubyKaigi in Sapporo on 5th Dec 2009 :-)