SlideShare a Scribd company logo
1 of 11
Kunihiko MIYOSHI
    http://colspan.net/
http://hangulime.com/
 Twitter ID : @colspan




                          1
JS_IM Features
 Light-weight multilanguage input method framework
    Japanese IME       (53kb)
    Korean IME         (46kb)
 Built in purely JavaScript
   Firefox
   IE (5.5 - 8)
   Chrome / Safari (Webkit)
 Easy implementable
   For any textboxes
   Bookmarklet

                                                      2
Statistics – Hangul IME
 First release on February 2006
 18000 sessions per a month
    From U.S., Canada, South Korea, Australia …




                                                   3
Public Responce
 Tweet
    감동의 한글입력기. . http://hangulime.com/
     http://twitter.com/DongwooKim/status/3380912930
 Links
    http://cafe.naver.com/appleiphone.cafe?iframe_url=/Ar
     ticleRead.nhn%3Farticleid=367588
    http://bumjin.egloos.com/4281726
    http://sambulsik.tistory.com/46
    http://warpgate.tistory.com/25


                                                             4
Working even on…
 WebOS (Webkit)
 Sigmarion 3 (Mobile IE 5)
 iPad / Kindle




                              5
Architecture
 JS_IM Method
    Language inherent process
    Transform string
     from keycode                   JS_IM Method
 JS_IM Core (15kb)
    Hook element
    Caret control                    JS_IM Core
    Event handling
    String Buffer
    User Interface              Cross Browser Library
    Relay keycode to method
 Cross Browser Library (15kb)
    common.js
    caret.js                       Web Browser
    keycode.js

                                                         6
Working Sequence - Core library
 1.   Hook HTML element (input or textarea) of web page
 2.   Detect key input event and get keycode
 3.   Relay keycode to language method library
 4.   Update buffer string by transformed result
 5.   Insert buffer string to HTML element if user
      accepted
               key event                     keycode
                             JS_IM core
HTML element                                             JS_IM method
                             buffer string
           buffer string                     transformed string
           accepted string                                         7
Working Sequence - Hangul IME
1. Transform keycode to Hangul character using
   johab.js
2. Update buffer string
3. Output Hangul to JS_IM core by 1 character at a time

                                            JS_IM_hangul
                        keycode
        JS_IM core
                                            transform to Hangul

        buffer string                           johab.js
                        new buffer string
                        accepted string
                                                                  8
Working Sequence – Japanese IME
1.   Transform alphabet to hiragana string using roma.js
2.   Update buffer string
3.   Throw hiragana string to web API by user direction
4.   Get transformed candidate strings from API
5.   Display candidates as list
6.   Output string to JS_IM core if user accepted
                   keycode          JS_IM_vje          hiragana string
JS_IM core
                               transform to hiragana                Yahoo! API
buffer string                                                        (external)
                                      roma.js
           new buffer string
           accepted string                             transformed candidates     9
Similar Services
 Framework
    http://debugger.ru/projects/virtualkeyboard
 Japanese
    http://ajaxime.chasen.org/
    http://jime.sourceforge.jp/javascriptime/
     (branch project of mine )
 Korean
    http://www.hantype.com/




                                                   10
About author @colspan
 Name : Kunihiko MIYOSHI (三好 邦彦)
 Nationality : Japanese (TOPIK 4th grade)
 Birthdate : 1983/11/12
 Occupation : Engineer of CANON Inc.
 Web site : http://colspan.net/
 Twitter ID : @colspan




                                             11

More Related Content

Similar to JS_IM Introduction

Tuning Web Performance
Tuning Web PerformanceTuning Web Performance
Tuning Web PerformanceEric ShangKuan
 
Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Hamed Hatami
 
Web Applications of the future: Combining JEE6 & JavaFX
Web Applications of the future: Combining JEE6 & JavaFXWeb Applications of the future: Combining JEE6 & JavaFX
Web Applications of the future: Combining JEE6 & JavaFXPaul Bakker
 
Java performance tuning
Java performance tuningJava performance tuning
Java performance tuningJerry Kurian
 
Ijaprr vol1-2-13-60-64tejinder
Ijaprr vol1-2-13-60-64tejinderIjaprr vol1-2-13-60-64tejinder
Ijaprr vol1-2-13-60-64tejinderijaprr_editor
 
Devoxx 2009 Conference session Jbpm4 In Action
Devoxx 2009 Conference session Jbpm4 In ActionDevoxx 2009 Conference session Jbpm4 In Action
Devoxx 2009 Conference session Jbpm4 In ActionJoram Barrez
 
Sybsc cs sem 3 core java
Sybsc cs sem 3 core javaSybsc cs sem 3 core java
Sybsc cs sem 3 core javaWE-IT TUTORIALS
 
Practical byteman sample 20131128
Practical byteman sample 20131128Practical byteman sample 20131128
Practical byteman sample 20131128Jooho Lee
 
Con-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With JavassistCon-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With JavassistAnton Arhipov
 
Character stream classes introd .51
Character stream classes introd  .51Character stream classes introd  .51
Character stream classes introd .51myrajendra
 
Lecture 1 introduction to language processors
Lecture 1  introduction to language processorsLecture 1  introduction to language processors
Lecture 1 introduction to language processorsRebaz Najeeb
 
Java 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Java 7 - New Features - by Mihail Stoynov and Svetlin NakovJava 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Java 7 - New Features - by Mihail Stoynov and Svetlin NakovSvetlin Nakov
 
Nice performance using Sf2 cache wrapping Sf1 application
Nice performance using Sf2 cache wrapping Sf1 applicationNice performance using Sf2 cache wrapping Sf1 application
Nice performance using Sf2 cache wrapping Sf1 applicationMarc Weistroff
 
Javanotes ww8
Javanotes ww8Javanotes ww8
Javanotes ww8kumar467
 

Similar to JS_IM Introduction (20)

Tuning Web Performance
Tuning Web PerformanceTuning Web Performance
Tuning Web Performance
 
Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)
 
Web Applications of the future: Combining JEE6 & JavaFX
Web Applications of the future: Combining JEE6 & JavaFXWeb Applications of the future: Combining JEE6 & JavaFX
Web Applications of the future: Combining JEE6 & JavaFX
 
Java performance tuning
Java performance tuningJava performance tuning
Java performance tuning
 
JavaOne 2010: OSGI Migrat
JavaOne 2010: OSGI MigratJavaOne 2010: OSGI Migrat
JavaOne 2010: OSGI Migrat
 
What is Java? Presentation On Introduction To Core Java By PSK Technologies
What is Java? Presentation On Introduction To Core Java By PSK TechnologiesWhat is Java? Presentation On Introduction To Core Java By PSK Technologies
What is Java? Presentation On Introduction To Core Java By PSK Technologies
 
Ijaprr vol1-2-13-60-64tejinder
Ijaprr vol1-2-13-60-64tejinderIjaprr vol1-2-13-60-64tejinder
Ijaprr vol1-2-13-60-64tejinder
 
Devoxx 2009 Conference session Jbpm4 In Action
Devoxx 2009 Conference session Jbpm4 In ActionDevoxx 2009 Conference session Jbpm4 In Action
Devoxx 2009 Conference session Jbpm4 In Action
 
Sybsc cs sem 3 core java
Sybsc cs sem 3 core javaSybsc cs sem 3 core java
Sybsc cs sem 3 core java
 
Practical byteman sample 20131128
Practical byteman sample 20131128Practical byteman sample 20131128
Practical byteman sample 20131128
 
Con-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With JavassistCon-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With Javassist
 
Tu1 1 5l
Tu1 1 5lTu1 1 5l
Tu1 1 5l
 
Character stream classes introd .51
Character stream classes introd  .51Character stream classes introd  .51
Character stream classes introd .51
 
Lecture 1 introduction to language processors
Lecture 1  introduction to language processorsLecture 1  introduction to language processors
Lecture 1 introduction to language processors
 
Java 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Java 7 - New Features - by Mihail Stoynov and Svetlin NakovJava 7 - New Features - by Mihail Stoynov and Svetlin Nakov
Java 7 - New Features - by Mihail Stoynov and Svetlin Nakov
 
Java unit 1
Java unit 1Java unit 1
Java unit 1
 
Nice performance using Sf2 cache wrapping Sf1 application
Nice performance using Sf2 cache wrapping Sf1 applicationNice performance using Sf2 cache wrapping Sf1 application
Nice performance using Sf2 cache wrapping Sf1 application
 
Spatial approximate string search Doc
Spatial approximate string search DocSpatial approximate string search Doc
Spatial approximate string search Doc
 
Javanotes ww8
Javanotes ww8Javanotes ww8
Javanotes ww8
 
Java notes
Java notesJava notes
Java notes
 

More from Kunihiko Miyoshi

日本生態学会第65回全国大会 自由集会01 地理情報へのDeep Learning活用の可能性と、学習データセットに求められる要件
日本生態学会第65回全国大会 自由集会01 地理情報へのDeep Learning活用の可能性と、学習データセットに求められる要件日本生態学会第65回全国大会 自由集会01 地理情報へのDeep Learning活用の可能性と、学習データセットに求められる要件
日本生態学会第65回全国大会 自由集会01 地理情報へのDeep Learning活用の可能性と、学習データセットに求められる要件Kunihiko Miyoshi
 
データパイプラインツールLuigiを使ってCS立体図をワンストップ演算する FOSS4G 2017 Tokyo
データパイプラインツールLuigiを使ってCS立体図をワンストップ演算する FOSS4G 2017 TokyoデータパイプラインツールLuigiを使ってCS立体図をワンストップ演算する FOSS4G 2017 Tokyo
データパイプラインツールLuigiを使ってCS立体図をワンストップ演算する FOSS4G 2017 TokyoKunihiko Miyoshi
 
db analytics showcase sapporo 2017 発表資料
db analytics showcase  sapporo 2017 発表資料db analytics showcase  sapporo 2017 発表資料
db analytics showcase sapporo 2017 発表資料Kunihiko Miyoshi
 
地理統計データ 閲覧アプリケーション『Seseki』を活用した 地域課題分析の促進
地理統計データ閲覧アプリケーション『Seseki』を活用した地域課題分析の促進地理統計データ閲覧アプリケーション『Seseki』を活用した地域課題分析の促進
地理統計データ 閲覧アプリケーション『Seseki』を活用した 地域課題分析の促進Kunihiko Miyoshi
 
データビジュアライゼーション 毎月もくもく会 vol.9
データビジュアライゼーション 毎月もくもく会 vol.9 データビジュアライゼーション 毎月もくもく会 vol.9
データビジュアライゼーション 毎月もくもく会 vol.9 Kunihiko Miyoshi
 
北海道統計データ閲覧ツールSesekiの開発と今後の展開 @ FOSS4G 2016 Hokkaido
北海道統計データ閲覧ツールSesekiの開発と今後の展開 @ FOSS4G 2016 Hokkaido北海道統計データ閲覧ツールSesekiの開発と今後の展開 @ FOSS4G 2016 Hokkaido
北海道統計データ閲覧ツールSesekiの開発と今後の展開 @ FOSS4G 2016 HokkaidoKunihiko Miyoshi
 
アーバンデータチャレンジ2016 キックオフ Sesekiの紹介と活動報告
アーバンデータチャレンジ2016 キックオフ Sesekiの紹介と活動報告アーバンデータチャレンジ2016 キックオフ Sesekiの紹介と活動報告
アーバンデータチャレンジ2016 キックオフ Sesekiの紹介と活動報告Kunihiko Miyoshi
 
アーバンデータチャレンジ2015 ファイナルステージ 北海道統計データ閲覧ツール Seseki
アーバンデータチャレンジ2015 ファイナルステージ 北海道統計データ閲覧ツール Sesekiアーバンデータチャレンジ2015 ファイナルステージ 北海道統計データ閲覧ツール Seseki
アーバンデータチャレンジ2015 ファイナルステージ 北海道統計データ閲覧ツール SesekiKunihiko Miyoshi
 

More from Kunihiko Miyoshi (8)

日本生態学会第65回全国大会 自由集会01 地理情報へのDeep Learning活用の可能性と、学習データセットに求められる要件
日本生態学会第65回全国大会 自由集会01 地理情報へのDeep Learning活用の可能性と、学習データセットに求められる要件日本生態学会第65回全国大会 自由集会01 地理情報へのDeep Learning活用の可能性と、学習データセットに求められる要件
日本生態学会第65回全国大会 自由集会01 地理情報へのDeep Learning活用の可能性と、学習データセットに求められる要件
 
データパイプラインツールLuigiを使ってCS立体図をワンストップ演算する FOSS4G 2017 Tokyo
データパイプラインツールLuigiを使ってCS立体図をワンストップ演算する FOSS4G 2017 TokyoデータパイプラインツールLuigiを使ってCS立体図をワンストップ演算する FOSS4G 2017 Tokyo
データパイプラインツールLuigiを使ってCS立体図をワンストップ演算する FOSS4G 2017 Tokyo
 
db analytics showcase sapporo 2017 発表資料
db analytics showcase  sapporo 2017 発表資料db analytics showcase  sapporo 2017 発表資料
db analytics showcase sapporo 2017 発表資料
 
地理統計データ 閲覧アプリケーション『Seseki』を活用した 地域課題分析の促進
地理統計データ閲覧アプリケーション『Seseki』を活用した地域課題分析の促進地理統計データ閲覧アプリケーション『Seseki』を活用した地域課題分析の促進
地理統計データ 閲覧アプリケーション『Seseki』を活用した 地域課題分析の促進
 
データビジュアライゼーション 毎月もくもく会 vol.9
データビジュアライゼーション 毎月もくもく会 vol.9 データビジュアライゼーション 毎月もくもく会 vol.9
データビジュアライゼーション 毎月もくもく会 vol.9
 
北海道統計データ閲覧ツールSesekiの開発と今後の展開 @ FOSS4G 2016 Hokkaido
北海道統計データ閲覧ツールSesekiの開発と今後の展開 @ FOSS4G 2016 Hokkaido北海道統計データ閲覧ツールSesekiの開発と今後の展開 @ FOSS4G 2016 Hokkaido
北海道統計データ閲覧ツールSesekiの開発と今後の展開 @ FOSS4G 2016 Hokkaido
 
アーバンデータチャレンジ2016 キックオフ Sesekiの紹介と活動報告
アーバンデータチャレンジ2016 キックオフ Sesekiの紹介と活動報告アーバンデータチャレンジ2016 キックオフ Sesekiの紹介と活動報告
アーバンデータチャレンジ2016 キックオフ Sesekiの紹介と活動報告
 
アーバンデータチャレンジ2015 ファイナルステージ 北海道統計データ閲覧ツール Seseki
アーバンデータチャレンジ2015 ファイナルステージ 北海道統計データ閲覧ツール Sesekiアーバンデータチャレンジ2015 ファイナルステージ 北海道統計データ閲覧ツール Seseki
アーバンデータチャレンジ2015 ファイナルステージ 北海道統計データ閲覧ツール Seseki
 

Recently uploaded

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 

Recently uploaded (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 

JS_IM Introduction

  • 1. Kunihiko MIYOSHI http://colspan.net/ http://hangulime.com/ Twitter ID : @colspan 1
  • 2. JS_IM Features  Light-weight multilanguage input method framework  Japanese IME (53kb)  Korean IME (46kb)  Built in purely JavaScript  Firefox  IE (5.5 - 8)  Chrome / Safari (Webkit)  Easy implementable  For any textboxes  Bookmarklet 2
  • 3. Statistics – Hangul IME  First release on February 2006  18000 sessions per a month  From U.S., Canada, South Korea, Australia … 3
  • 4. Public Responce  Tweet  감동의 한글입력기. . http://hangulime.com/ http://twitter.com/DongwooKim/status/3380912930  Links  http://cafe.naver.com/appleiphone.cafe?iframe_url=/Ar ticleRead.nhn%3Farticleid=367588  http://bumjin.egloos.com/4281726  http://sambulsik.tistory.com/46  http://warpgate.tistory.com/25 4
  • 5. Working even on…  WebOS (Webkit)  Sigmarion 3 (Mobile IE 5)  iPad / Kindle 5
  • 6. Architecture  JS_IM Method  Language inherent process  Transform string from keycode JS_IM Method  JS_IM Core (15kb)  Hook element  Caret control JS_IM Core  Event handling  String Buffer  User Interface Cross Browser Library  Relay keycode to method  Cross Browser Library (15kb)  common.js  caret.js Web Browser  keycode.js 6
  • 7. Working Sequence - Core library 1. Hook HTML element (input or textarea) of web page 2. Detect key input event and get keycode 3. Relay keycode to language method library 4. Update buffer string by transformed result 5. Insert buffer string to HTML element if user accepted key event keycode JS_IM core HTML element JS_IM method buffer string buffer string transformed string accepted string 7
  • 8. Working Sequence - Hangul IME 1. Transform keycode to Hangul character using johab.js 2. Update buffer string 3. Output Hangul to JS_IM core by 1 character at a time JS_IM_hangul keycode JS_IM core transform to Hangul buffer string johab.js new buffer string accepted string 8
  • 9. Working Sequence – Japanese IME 1. Transform alphabet to hiragana string using roma.js 2. Update buffer string 3. Throw hiragana string to web API by user direction 4. Get transformed candidate strings from API 5. Display candidates as list 6. Output string to JS_IM core if user accepted keycode JS_IM_vje hiragana string JS_IM core transform to hiragana Yahoo! API buffer string (external) roma.js new buffer string accepted string transformed candidates 9
  • 10. Similar Services  Framework  http://debugger.ru/projects/virtualkeyboard  Japanese  http://ajaxime.chasen.org/  http://jime.sourceforge.jp/javascriptime/ (branch project of mine )  Korean  http://www.hantype.com/ 10
  • 11. About author @colspan  Name : Kunihiko MIYOSHI (三好 邦彦)  Nationality : Japanese (TOPIK 4th grade)  Birthdate : 1983/11/12  Occupation : Engineer of CANON Inc.  Web site : http://colspan.net/  Twitter ID : @colspan 11