Now, we're getting closer to a first 1.0 release, not
much is missing, so if you think you can help, then we'll gladly accept the
patches.

Finally, I'll be organizing a usability testing lab at the next Open
Source Workshop in Hong Kong, so if you can't install ibus-cangjie on
your own machine, just come and you'll try it on mine. This should allow us to
get valuable feedback to make it rock.

This is a problem for GNOME (starting with version 3.6), because GNOME
integrates IBus out of the box. What this means is that Hong Kong people can
not have an excellent user experience on GNOME out of the box, because they
need to choose between a rock and a hard place:

using a poor implementation of Cangjie and Quick, provided by
ibus-table

spending time
fiddling with their system and installing non-default components to end up
with a better inputting experience, but not properly integrated with the rest
of the OS

I love GNOME, and I want Hong Kong people to love it too. And for that,
GNOME (through IBus), needs a first class user experience for Cangjie and
Quick.

That's what we set out to achieve with Wan Leung Wong a couple of months
ago, and the result is ibus-cangjie, a
dedicated IBus engine for Cangjie and Quick.

Wan Leung has been writing libcangjie, a
low-level library to handle the complex mappings between English letters and
Chinese characters, as defined by the Cangjie and Quick input methods.

At the same time, I've been wrapping that in a Python cangjie module, which
is then reused in ibus-cangjie.

We're not yet to a point where we can get it included in Linux distributions
and used by all, but I think we recently reached that sweet moment where we can
be confident enough to announce it publicly. Consider this our call for testing
and wider contribution. (or our Christmas / New Year gift, if you celebrate
these )

Given the target audience of this announcement, here are a couple of
technical highlights first:

libcangjie is a native library written in C++, as the goal was
to be as portable as possible. We absolutely want other platforms to reuse
libcangjie and help us improve it, be it on other OSes than Linux
or with engines for other input method frameworks

both cangjie and ibus-cangjie are full Python 3
modules. I tried to keep compatibility with Python 2 for some time, but it
became too hard to do so I dropped it. I'll accept patches to restore it, as
long as it's not at the expense of the Python 3 code.

I wrote above that we started ibus-cangjie to make GNOME a
great desktop for Hong Kong people, and our current focus is on GNOME
integration, but that's only because we use GNOME ourselves. If you use another
desktop and want to help us get ibus-cangjie in tip-top shape for
it, we will gladly welcome your patches!

But that's all boring behind-the-scenes details, what about the user-facing
features?

At the moment, here's what ibus-cangjie can do:

input Traditional Chinese (by default, but we have an option to also input
Simplified Chinese) with Cangjie, both in its versions 3
and 5;

provide a user experience which is more in line with what users expect of
the Cangjie input method which, we believe, is better than what
ibus-table could offer.

That's not bad, but it's obviously not enough. Here's what's known to be
missing, and on what we'll be hard at work:

input with Quick is still completely missing (this will be my number one
priority from now on, any help is of course welcome) ;

wildcard support for Cangjie is missing (it needs to go in
libcangjie, and is a pre-requisite for implementing Quick) ;

we need an icon for the settings application;

we need a way to let the user input full- and half-width punctuation and
numbers;

we need to make a kickass ordering of candidates, so that the most
frequently used are always on the first page (right now, stuff is ordered
alphabetically by the input sequence, which is just terrible) ;

we want to provide adaptive ordering of candidates, based on some fancy
frecency algorithm (in option, the default will be the static
ordering) ;

we want to allow suggestions for "next possible characters" based on the
whole sentence;

That's our plan, and we're hoping you will help us move things forward so
that GNOME (or your favourite desktop using IBus) finally becomes a compelling
operating system for Hong Kong people.

Cangjie should be in a testable state at the moment, so your general
testing, as well as specific feedback on the user experience will be warmly
welcome.

If you can help us with the code, get to the GitHub pages and hack away.
Alternatively, if you're in Hong Kong, I'll be organizing a
workshop/hackfest on ibus-cangjie in the next few weeks.

Reposting here (slightly edited), in case somebody not subscribed there
would be interested.

Hi all,

I've been thinking about doing this for some time now, and it seems to me
that I now have the perfect excuse to do it.

Would anybody be interested in a "contributing to FOSS"
workshop?

It would take about 2 hours (or more if attendees are interested), and we'd
cover topics like how to use Git, how to build and install from sources, how to
properly submit patches and interact with upstream, etc...

We wouldn't pretend to work on some dummy discartable projects like at
school, instead we'd work with an existing project/community that I believe is
interesting for Hong Kong people as it relates to Cangjie and Quick input
methods. (also, it is a very young project with probably many simple bugs and
missing features which could be implemented quickly even by novice developers,
and I'm the upstream, so we wouldn't be blocked during the workshop because
we're waiting for upstream to answer )

I'll try to keep it as low-entry as possible, so here are the pre-requisites
if you're interested:

you have some minimal programming experience in any
programming language (I will not teach you programming from the start)

you're not afraid of learning new stuff, trying stuff you don't know yet,
breaking things and fixing them up again

you're motivated

you speak and understand English "well enough" to not be completely
lost

That last point is unfortunate, but the reasons are very simple: I'm
learning, but my Cantonese is still very poor. As such, I just won't be able to
give the workshop to people who only speak Cantonese. My fault, not
yours.

If there is enough demand though, we'll see if we can try figuring something
out with someone who speaks both languages well.

Depending on everybody's availability, it would happen on an evening or
week-end, we'll see.

I'd like to keep it in small groups of under 10 people so
it's easier to manage and so attendees can actually learn something, but I
don't mind repeating it if enough people want to join.

when you'd prefer it to happen (evening, week-end, specific day of the
week, after 9pm,...)

what is your experience as a contributor to Free and Open Source projects
(what languages you know, what projects you've contributed to,...). Please note
that "None" is a perfectly valid answer.

Given the scope of the workshop, priority will be given to motivated
people with less experience, in order to grow a larger community of
FOSS contributors in Hong Kong (existing hard-core contributors don't need me
or anyone else to learn new stuff and go on contributing )

If you can host the event, let me know too. The venue needs to be quiet and
have an Internet connection.

This is because GNOME takes responsibility for its users, and wants to
provide to all of them a great, out of the box experience. Even those whose
language requires
complex inputting methods.

Many people have been involved in this integration (both on the GNOME and
IBus sides), and the result is impressive when compared to what we had before.
It's all incredibly straightforward to set up (my user testing indicates that
non-geeky Windows users have no trouble doing it themselves), but I can't
resist to show it off anyway. Plus, such a great feature deserves a lot of
promotion.

Below is how Hong Kong people will be able to start inputting Traditional
Chinese in GNOME 3.6. The screenshots were taken on GNOME 3.5.92, but very few
should change before the final release.

We're starting with only one input source: the French keyboard layout I use
on my laptop. Nothing to see here, the input status icon only
appears if you have configured more than one input source:

As one would expect, input methods can be set up in the GNOME System
Settings:

Yes, options related to your language are found in the Region &
Language panel:

Add a new input source in the aptly named tab:

Search for chinese, and pick your input method. That's
where it becomes interesting for Hong Kong people. Most of you will want to use
quick3 or maybe cangjie3, but we still
included quick5 and cangjie5 for those
looking towards the future, and even stroke5 for the disabled
and the elderly (or the 鬼佬 ):

There, your Chinese input method is available:

Observe how the input status menu now allows you to choose
your input method (or use the CTRL+space keyboard shortcut)
:

It really can't get any simpler.

What's really exciting, is the way input methods are presented in the same
place as the simple keyboard layouts. I think this mere fact is a strong
statement from GNOME: from now on, users of input methods (among which are Hong
Kong people) are first class citizens in GNOME.

This is a huge first step in the right direction, but of course there are
many things that will need to be improved before we get a great user
experience. We have plans for making all of this much better for 3.8, and I'm
very interested in feedback from Hong Kong users.

And what better time to give your feedback than the GNOME 3.6
Release Party we are organizing in Hong Kong? More details about that
will come soon, stay tuned.

Not that I disagree with the goal (I am convinced that once this is done, it
will provide a much better user experience than what we have now), but there
are a few things that could make the life of Hong Kong GNOME users more
difficult (e.g the whitelist of supported input methods, the choice of IBus as
only Input Methods Framework,...).

Reading the flamewdiscussions on DDL, I had the
impression that two groups were talking past each other: the developers (mostly
non-Chinese) and the users of Chinese Input Methods (mostly non-developers).
Each group had different perspective and knowledge, and seemed to be talking
about different things:

You don't use Chinese input methods, so you don't know what we
need!

You focus on a limited part of the User Experience, when we want to
provide a consistent, integrated, complete UX!

One thing is clear though: GNOME developers (and in fact FOSS developers,
but I'm mostly interested in GNOME these days) are mostly not Chinese, can't
read or write Chinese, and as such have a very limited idea of the complexity
of Chinese input methods. That's something we should change (by growing
stronger community of contributors in Chinese-speaking regions), but in the
meantime, Chinese users will depend on non-Chinese developers to provide their
inputting experience.

So, after being tired of hearing from locals who won't do anything else than
complain, I decided to do something about it and start bridging that gap.

I spent the past two months (I started during GNOME.Asia in Hong Kong) studying Chinese input
methods, what they are, how they work, and how people use them in Hong Kong.
And as a result, I wrote a documentation about it,
which I hope can be useful to developers outside of China.

Keep in mind that I'm exactly one of those who don't use Chinese input
methods: I'm
a French dude who moved to Hong Kong a year and a half ago and who can't
read or write Chinese. In fact, I even discovered about the very existence of
Chinese input methods a year ago, observing my girlfriend type on her
netbook!

So of course I might have made mistakes, or missed crucial details. However,
having just recently learned all this, it was probably easier to write it down
in a way others like me could understand it: I didn't assume any previous
knowledge.

Early feedback from GNOME developers is overwhelmingly positive:

fcrozat: bochecha: congrats for
http://bochecha.fedorapeople.org/chinese_ims/
fcrozat: this is really good stuff
fcrozat: I wish we had that instead of the flames on ddl

aday: wow, this is fantastic indeed

However, some parts are still incomplete, and I'd love for people who know
more than me to proof-read it and fix any mistake I might have made. Here's the
link again, in case you missed it above:

Read it, and send me an email with your feedback (my email address is at the
bottom of the document).

One thing I would like to add to the document is information about the
situation in Taiwan and Mainland China, similar to what I wrote for Hong Kong.
So if you know about that, shoot me an email!

As a final note, GNOME developers expressed they would love to have the same
kind of documentation from other local communities and their specific needs
for, and usage of, input methods. So if you know about Indian, Thai or other
language specific input methods, just write about it! And we could even group
together the parts which make sense, as I'm sure some of the stuff I wrote is
generic enough to apply to other written languages (e.g sound-based vs
stroke-based).

Hopefully, this will lead to an awesome user experience when it comes to
inputting complex languages on Free operating systems. At least I did my part
for Hong Kong people.

During GNOME.Asia, we sat down with
Wan Leung (HKLUG member, passionate about input methods) and Anish (an IBus
core developer) and identified what is in our opinion the one show-stopper
bug.

I'm hopeful we'll get this fixed before GNOME 3.6 is released, which should
make it a great Free Software OS for Hong Kong people too.

Of course, there are other bugs and deficiencies in IBus (as in every
software really) which will remain after this one is fixed and which make for a
user experience poorer than it should be (for example, the Candgie IM doesn't
support wildcards, neither Candgie nor Quick adapt to the most frequently used
words by the user, etc...). But those are all details which will
improve the user experience, whereas the one I linked above
really just makes IBus useless in Hong Kong.

I'm very excited for GNOME 3.6, for and specifically because
it will be the first GNOME release we will be able to recommend to everyone
here, not just tinkerers and geeks, but really anyone, no matter what language
they write.

So for those who don't know me yet, I'm Mathieu [pronounced something
like "馬吊"], better known in geek circles as bochecha. I'm
French, originally from that
place, and I moved to Hong Kong about a year and a half ago.

In Hong Kong, I work for Network
Box, a local security company where we do some really awesome Linux-related
stuff. [Ask me about it if you'd like to know more!] [We're looking for a C++ developer :-P]

When I'm not working, I'm pretty much still a geek, so in my spare time I'm
a Fedora contributor and GNOME enthusiast. Back in France, I was a board
member of the Borsalinux-Fr NPO (the
legal entity behind the French Fedora community), and I've done all sorts of
advocacy work and events organization.

I want to be more involved in the Hong Kong Linux/FOSS community. The main
things I'd like to work on are the following:

Educate the population on the importance of Free Software, Open Standards
and Net Neutrality, and why it's much more about strengthening democracy than
it is about a bunch of geeks hacking in their garage,

Help public institutions and local companies use Free Software and Open
Standards and contribute back, to save money in the long term and develop local
know-how,

Hack on various stuff which could make the lives of the local community
easier,

Have as much fun as possible doing all those!

If you're interested in any of the above, let's get in touch. You can reach
me by email (bochecha at fedoraproject dot org) or on IRC (I'm bochecha on
Freenode and GimpNet). You can also leave a comment here of course.

Oh, one last thing. I'm learning Cantonese, but only oral language at the
moment, so I'm not going to start writing in Chinese right away. Sorry about
that.

English being the second language of Hong Kong, I hope you won't mind [I
won't bore you with articles written in French :-P]. And in case someone
thinks I'm writing exceptional stuff [a man can dream ^_^] and wants
to translate it to Chinese, have a look at the legal disclaimer on the right of
the blog and feel free to do it!

First, I started hacking on the new Hong Kong Linux User Group web
site, as Wan Leung hasn't had the time to finish it yet. Hopefully, I'll
send him a pull request soon, and then we'll be able to deploy it to replace
our ageing wiki.

Perhaps more importantly, Wan Leung took some time to explain to me the
biggest problems with IBus for Hong Kong people.

This is a fairly new topic to me, and if I'm to promote GNOME in Hong Kong,
it's something I need to understand. To be honest I discovered input methods
even existed less than a year ago: the few languages I'm capable to type don't
need them, so I learnt what they were when I moved to Hong Kong. Thanks to Wan
Leung, I now have a much better understanding of what the problems are.

After he was done getting me up to speed, I sat down with him and Anish, an
IBus developer who came to the conference. We focused on only one issue, the
biggest, which renders IBus completely useless to Hong Kong people, and we came
up with a possible solution. A potentially very simple one.

This means that if all goes well, by the time GNOME 3.6 is released
with input methods integration, the required change will have been made to
IBus, enabling Hong Kong people to type with the Quick or Candgie input methods
(used by around 90% of the population here). The rest (performance, suggestions
adaptability, wildcards support,...) is just bugs and improvements that can be
fixed in due time.

All in all, this was a great event. Haggen, Sammy and the local volunteers
team did a great job of organizing it (no, I'm not self-congratulating, I
joined so late I wouldn't consider myself part of it ).

From what I've been told, this was also the first big international free
software event in Hong Kong. I'm thrilled it was such a success, as it will be
a great base for our future work here.