International Components for Unicode

ICU Developer's Workshop Program


 
Pre-requisite:
  • Understanding of C/C++ programming languages.
  • Your own laptop with one of the listed reference development environment installed. Please see the list at the bottom of this URL http://icu-project.org/userguide/ICUDesign.html.
  • Successfully built the ICU 1.6 release with all the tests (intltest and cintltst) running on your laptop.
  • Fully understand at least two of the ICU samples in $Work/icu/source/samples directory, e.g. udate and ucal.
  • Downloaded, compiled and ran the workshop exercise modules from http://icu-project.org/docs/workshop_2000/material/ws12092000.
  • Read the top-level sections of the ICU user's guide at http://icu-project.org/userguide/. (Reading the full user's guide is recommended.)
Your evaluation of our workshop (Use Netscape Navigator if it looks truncated in your browser)
 
Day 1: Monday, September 11
Registration
9:00am - 9:15am
Welcome and Introduction
9:15am - 9:30am
Helena Shih Chapman
ICU/Java Design and Architecture
9:30 am - 11:00 am
Mark Davis
Topics:
  • Basic Unicode introduction followed by quick summary of ICU features.
  • What are the basic architectures common to ICU and Java i18n support?
  • How are the system resources localized?
  • What is ICU's threading model?
  • How does one extend the implementation to include his/her own i18n support?
  • What is ICU's error-handling model?
  • Relation between C and C++ APIs.
Build/Installation Issues and Beyond
11:15 am - 12:30 pm
Yves Arrouye and Steven Loomis
Topics:
  • What are the options to configure an ICU build?
  • What resource files are necessary to integrate ICU into one's product?
  • What problems one may run into while porting ICU to a new platform?
  • How to migrate a product to use ICU?
  • How does one add new support to ICU, converter, locale etc?
  • How does one use the data-packaging tool to prepare the application data?
12:30pm - 1:30pm Lunch Break
ICU Low-level Utilities and Resource Management
UData Interface Exercise Module
ResourceBundle Exercise Module
1:30pm - 2:45pm
Vladimir Weinstein
Topics:
  • What is the locale model in ICU?
  • What is the string related interface in ICU and how does one use it?
  • A quick summary of other low-level utility interface that provide overall support to ICU components.
  • Quick summary of ResourceBundle support; what kind of data can be stored and retrieved natively.
  • What's the system locale format? What's the future direction of this support.
  • What else can one use ResourceBundle for?
Character set conversion interface
3:00pm-4:45pm
Markus_Scherer
Converter Exercise Module
SCSU Exercise Module
Topics:
  • Quick status summary of the current converter support.
  • When does one use one API vs. the other? What are the tradeoffs?
  • How does the converter handle the error condition?
  • What is a converter callback function and how does one customize it?
  • What is the Unicode compression scheme?

 


Day 2: Tuesday, September 12
Registration
9:00am - 9:15am
Welcome and Introduction
9:15am - 9:30am
Helena Shih Chapman
Date/Time/Number Formatting Support
DateFormat Exercise Module
MessageFormat Exercise Module
9:30am - 10:30am
Alan Liu
Topics:
  • What is the date/time support in ICU?
  • What is the time zone support in ICU?
  • What kind of formatting and parsing support is available in ICU, i.e. NumberFormat, DateFormat and MessageFormat?
Transformation Support
Exercise Module
10:45am - 12:00pm
Alan Liu
Topics:
  • What is the Unicode normalization?
  • What kind of case mapping support is available in ICU?
  • What is Transliteration and how does one use a Transliterator on a document?
  • How do I add my own Transliterator?
12:00pm - 1:00pm Lunch Break
Sorting and Searching
Exercise Module
1:00pm - 2:30pm
Helena Shih Chapman
Topics:
  • What is language-sensitive collation and why should one care?
  • How does one add his/her own collation support?
  • When does one use the CollationKey and why?
  • How is the versioning of collation results handled?
  • How can one implement the searching interface based on what's available now?
Text Analysis Support
2:45pm - 3:45pm
Eric Mader
Topics:
  • How does one use BreakIterator to find the possible word/sentence/line breaks in a document?
  • Why should one care about the rule-based interface and how does one use it?
Develop a Sample Application with ICU
4:00pm-5:00pm
Steven Loomis
Topics:
  • An in-depth look at LocaleExplorer.