Sunday, January 13 2013

Progress in ibus-cangjie

I recently announced ibus-cangjie, the IBus input method engine for Cangjie and Quick that I have been working on.

It is now almost two weeks later, and there is already some good progress to report on.

I have added wildcard support to the Cangjie engine, and implemented a first pass at the Quick engine.

Thanks to Wan Leung's work in libcangjie, both Cangjie and Quick will now respect the user setting for full-/half-width characters.

I've also made a bunch of changes to the documentation and the build system, which should make it easier than ever to try it out, or to package it for your favorite distribution.

On that note, I have just published a repository for Fedora 18, so if you want to try ibus-cangjie, it's as easy as the following commands (as root) :

# wget http://repos.fedorapeople.org/repos/bochecha/ibus-cangjie/fedora-ibus-cangjie.repo -O /etc/yum.repos.d/fedora-ibus-cangjie.repo
# yum install ibus-cangjie 

Please try it, and let us know what you think!

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.

Monday, December 31 2012

Introducing ibus-cangjie

Hong Kong people write (mostly) Traditional Chinese. On a computer, most of them use the Cangjie and Quick input methods.

In the IBus platform, these were implemented through ibus-table, with dedicated tables.

Unfortunately, this led to a suboptimal user experience for Cangjie and Quick, and as a result Hong Kong people have been turning themselves to other input method frameworks like GCIN or SCIM.

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.

Finally, if you want to talk to us, hop on #linux-hk on Freenode, or join the Hong Kong Linux User Group mailing-list. We don't have dedicated communication media at the moment, so we'll use these for now.

Sunday, December 9 2012

GNOME Calendar preview in Fedora 18

Calendar will be a new core application for GNOME.

It's still very early in its development, but it's starting to look pretty nice and to be usable.

If someone wants to try it out, I made a repository with the latest Git HEAD packaged, just run the following:

# wget http://repos.fedorapeople.org/repos/bochecha/gnome-calendar/fedora-gnome-calendar.repo -O /etc/yum.repos.d/fedora-gnome-calendar.repo
# yum install gnome-calendar

Ultimately, I'll push it to Fedora proper (unless someone beats me to it ;-) ), but for now a side-repository will do.

Wednesday, November 14 2012

[WORKSHOP] Contributing to Free and Open Source Software

Yesterday I sent the following to the Hong Kong Linux User Group mailing list.

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.

If you're interested, send me an email, either on the mailing-list or privately, and let me know the following:

  • 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.

Feel free to repost this message anywhere you feel appropriate, transmit it to your friends, CS students,...

Tuesday, October 2 2012

GNOME 3.6 Release Party in Hong Kong

On Saturday, we will be celebrating the release of GNOME 3.6 in Hong Kong.

The program is as follows:

  • 14:35-15:20 - GNOME, A Free Operating System for everyone (by me)
  • 15:25-16:10 - Enlarge your GNOME (by Mart Van de Ven)
  • 16:15-17:55 - Unconference (by everybody)

Everybody is welcome, so come and join us at 2pm, in classroom Y5-303, on the 5th floor of the Academic 1 building, City University of Hong Kong!

As usual, you can find the full details on the OpenSource.HK page.

Thursday, September 20 2012

Inputting Hong Kong Chinese with GNOME 3.6

As I wrote previously, GNOME 3.6 will integrate tightly with IBus.

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:

01_only_one_input_source.png

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

02_system_settings.png

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

03_region_languages.png

Add a new input source in the aptly named tab:

04_add_input_sources.png

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 鬼佬 ;-) ):

05_add_chinese_input_sources.png

There, your Chinese input method is available:

06_input_sources.png

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

07_input_sources.png

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. ;-)

Wednesday, August 8 2012

Explaining Chinese input methods to non-Chinese

For the past few months, I've been concerned about the plans to integrate input methods directly into GNOME.

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:

http://bochecha.fedorapeople.org/chinese_ims/

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. ;-)

Monday, June 25 2012

GNOME 3.6 and IBus for Hong Kong users

As you may know, GNOME 3.6 (to be released in September) will feature a tight integration with IBus, in order to provide a great out of box experience for input methods users.

Unfortunately, IBus provides a "less than optimal" (to say the least) UX for Hong Kongers.

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.

Tuesday, June 12 2012

你好 Planet Open Source HK!

It appears my first article has just been published on Planet Open Source Hong Kong and I didn't even introduce myself. How rude of me!

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,
  • Grow strong GNOME and Fedora communities in Hong Kong,
  • Teach whatever I might know about using Linux, contributing to Free Software, programming, managing servers,...
  • Hack on various stuff which could make the lives of the local community easier,
  • Have as much fun as possible doing all those! :-D

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!

That's all for me. If you want to know more, just ask. Otherwise, see you at the next FOSS event in Hong Kong!

Gnomes in Hong Kong

GNOME.Asia 2012 ended two days ago, and the event was full of awesome.

Aside from the great talks by international speakers, I could meet lots of new people and had lots of hallway chats about our favourite OS.

But that's not all, I could also get some important stuff done.

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.

My goal is to have that done before the LUG assembly in July..

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.

- page 2 of 6 -