Friday, April 15 2016

I moved

Some time ago I moved my blog to my new web site.

As a result I won't publish anything here any more.

Tuesday, December 23 2014

GNOME Builder copr now for Rawhide only

GNOME Builder is under heavy development. This usually implies that such an application might require very new versions of its dependencies.

Upstream recently bumped their dependencies, and now require things that are only in Rawhide.

I have no intention to provide development builds of Gtk3 (among other things) in a Fedora 21 copr, as that might imply either breaking half of the distro, or having to rebuild it.

As a result, the GNOME Builder copr will from now on be Rawhide-only.

I have dropped the Fedora 21 repos, they won't be updated any more.

If you were using it on Fedora 21, please delete it:

# rm -f /etc/yum.repos.d/_copr_bochecha-gnome-builder.repo

If you still want to try GNOME Builder on Fedora 21, you'll now have to go the jhbuild route.

Friday, June 6 2014

Bodhi 2 FAD

I just came back from the Bodhi 2 FAD in Denver.

I flew from Paris on Saturday 31st morning. Luke, Kevin, Ricky and I started hacking on Sunday morning, the other participants arriving during the day.

The first two days, I started with many small things, as a warm up: packaging in Fedora some of the Bodhi 2 dependencies, escaping raw HTML in forms, adding license headers to all files, fixing some small issues in the update management,...

On Tuesday I implemented the whole release management. This area is particularly lacking in Bodhi 1, but Bodhi 2 should be a big improvement:

  • releng can't create a new release in Bodhi 1 when branching it (i.e when creating it in Git, Koji, PkgDB,...) because we don't use Bodhi right away (we start using it only at Alpha freeze). With Bodhi 2, a release can be created but kept disabled, which fixes this annoyance
  • when a Fedora release reaches end-of-life, we delete it from the Bodhi 1 database, which makes us lose all metrics, and breaks all the URLs to the updates pushed for these old releases. With Bodhi 2, we can now « archive » an old release, so that it doesn't appear in the web UI any more, we can't push updates for it any more, but URLs of old updates will still work.
  • the Release Engineers regularly need to resort to a TurboGears 1 shell to enter some Python code in order to create / modify a release in Bodhi 1. Bodhi 2 now exposes a web API to manage releases, and a command-line tool which uses this API.

Before dinner, I then quickly implemented the file-based creation of updates as needed by « fedpkg update ».

On Wednesday, I started implementing the management of buildroot overrides, tagging the build appropriately in Koji, ... That's not all done though, so I'll try to finish it in the next few days. :-)

We also had some discussions about the mashing process. We haven't decided whether we'd use the koji-mash plugin I wrote, or the more generic « run any command as root » plugin, but now that we have a working staging instance of Koji we should be able to test them and take the decision.

Overall, it was a great event. We made lots of progress, and had tons of fun.

Finally, I'd like to thank Ralph for organizing the event, Kevin for picking me up at the airport on Saturday, Tim for bringing me to the airport on Thursday (at 7am!), and Red Hat for funding my trip.

It was my first FAD, and I loved it. Looking forward to the next one. :-)

Thursday, May 8 2014

gom in Fedora

I've been experimenting with gom, the GObject data mapper recently.

With a lot of help from Bastien Nocera, I eventually managed to get started using it as an experiment for one of my projects.

I have to say I'm quite impressed. Sure, writing GObject code is super verbose, but then managing objects and properties is so much nicer than managing strings full of SQL queries. And I hear the verbosity might be greatly reduced in the near future! :-D

Long story short, I've started building gom packages from Git snapshots in a Copr.

I'll eventually push it to Fedora proper, but I'd rather wait for an actual release. Maybe in time for GNOME 3.14?

In the meantime, if you want to try it out, go grab the packages from the Copr. Gom is under quick development, and now is a great time to test it and ensure it has the features your application needs. For example, I needed boolean properties and columns with a UNIQUE constraint, and both are now possible in master. :-)

Now to play some more with it...

Friday, April 25 2014

New releases from the Cangjians

It's been a few months since our last releases, and we have made a few bug fixes and improvements since then.

These are once more minor releases, preserving the API/ABI and without disruptive user-visible changes, so they should be really safe to update to even in stable distros.

Fedora packages are on their way, and other distributions will pick them up at their own rythm.

So without further ado, here are the changelogs for the new releases.

libcangjie 1.2

Bug Fixes

  • Handle failures in the libcangjie_cli tool correctly, instead of crashing a segmentation fault. (Sam)
  • Fixed a couple of typos in the libcangjie_cli tool which prevented it from working properly for some filter values. (Mathieu)
  • Use /bin/sh for the script, to improve cross-platform compatibility. (Sam)
  • Fixed a bunch of issues in our Cangjie code data. (Mathieu, Koala, Wan Leung, Antony)

Docs Improvements

  • Added installation instructions for Arch Linux (Antony) and NixOS. (Sam)
  • Removed an obsolete (and confusing) notice about release tarballs. (Mathieu)
  • Added missing hiragana filter to the libcangjie_cli help. (Mathieu)

pycangjie 1.2

Bug Fixes

  • Use /bin/sh for the script, to improve cross-platform compatibility. (Sam)

Docs Improvements

  • Added installation instructions for Arch Linux (Antony) and NixOS. (Sam)
  • Removed an obsolete (and confusing) notice about release tarballs. (Mathieu)

Testing improvements

  • Get Travis CI to build against the 1.x branch of libcangjie, as libcangjie master has now broken tha API in a way that pycangjie 1.x doesn't build against it any more. (Mathieu)
  • Improve testing coverage. (Mathieu)

IBus Cangjie 2.2

Bug Fixes

  • Fixed using the numpad to commit candidates. (Mathieu)

Docs Improvements

  • Added installation instructions for Arch Linux. (Antony)
  • Removed an obsolete (and confusing) notice about release tarballs. (Mathieu)

Testing improvements

  • Get Travis CI to build against the 1.x branch of libcangjie and pycangjie, as their master branch has now broken the API in a way that ibus-cangjie 1.x doesn't build against it any more. (Mathieu)
  • Use the in-memory GSettings backend for the tests, so avoid any undesired side-effects from the running environment. (Mathieu)

Sunday, February 2 2014

New releases from the Cangjians

We made our first round of major releases on Christmas day, and since then, a few issues were found, and some were fixed.

So on this second day of the new year of the horse, here comes a new round.

Today, we release libcangjie 1.1, pycangjie 1.1 and IBus Cangjie 2.1

All of these are pretty minor releases, which fix bugs and improve the internals without introducing any user-visible change. We recommend everybody to upgrade as soon as possible. (Fedora packages are coming)

I'll finish with the changelog for each release.

Happy Chinese New Year to everyone!

libcangjie 1.1

  • Fix typo in data/README.table.rst (Linquize)
  • Add docs to the tarball (Mathieu)
  • Add a link to the release tarballs in the README (Mathieu)
  • Correct typo of README file (Anthony)
  • Improve the benchmark tool (Mathieu)
  • Add a missing copyright header to the benchmark tool (Mathieu)
  • Various code improvements (Mathieu, with help from clang's scan-build)
  • Code refactoring of the filter handling (Dridi)
  • Add install instructions for a few distributions (Mathieu)
  • Document libcangjie_cli (Mathieu)

pycangjie 1.1

  • Add docs to the tarball (Mathieu)
  • Add a link to the release tarballs in the README (Mathieu)
  • Add install instructions for a few distributions (Mathieu)
  • Improve « make clean » (Anthony)
  • Fix the URL to the documentation in the README (Linquize)

IBus Cangjie 2.1

  • Add a link to the release tarballs in the README (Mathieu)
  • Actually run the unit tests on « make check » (Anthony)
  • Improve « make clean » (Anthony)
  • Add install instructions for a few distributions (Mathieu)
  • Improve the optionality of pycanberra (Mathieu)
  • Fix the pt_BR translation (Mathieu)
  • Reset sys.path to limit side effects on the unit tests (Mathieu)
  • Ensure validity of the preferences UI file (Mathieu)
  • Fix the UI file (Mathieu)

Wednesday, December 25 2013

The Cangjians wish you a merry Christmas

About a year and a half ago now, we set out to fix what seemed to us like the one critical issue which was preventing broad adoption of Free Software in Hong Kong: the lack of a good Cangjie/Quick input method for IBus.

And today, at the foot of the Christmas tree, we have 3 presents: today we are releasing libcangjie 1.0, pycangjie 1.0, and IBus Cangjie 2.0.

This is a release we are very proud of, it is the achievement of a year and a half of hard work, of studying all about Chinese input methods, and the lessons we learned with our previous attempts.

Speaking of previous attempts, even though we don't use Wan Leung Wong's libcangjie any more (we rewrote it completely), the hindsight we got from Wan Leung's original efforts was invaluable, and we wouldn't be where we are right now without it.

Without further ado, here are the links to the release:

Fedora packages are already on their way, and we'll get them very soon at least in Ubuntu and Arch Linux.

The major highlight from this release is that finally, we support all the characters which are important in Hong Kong out of the box.

But we're not done yet. For the next release, we are already working on a few things. Among others, suggestion of whole expressions and automatic translation from Traditional to Simplified Chinese are on our TODO list.

Merry Christmas to all, and don't hesitate to join us, send us code or bug reports, or just let us know how this release works for you.

Thursday, November 7 2013

Recruiting Fedora packagers

At work we produce our own distribution which is basically a downstream of RHEL / Fedora, adapted to the specific needs of our products.

We're looking to hire someone to do the following:

  • Build RPM packages

    Most of the time, we usually just rebuild packages from RHEL / Fedora packages with some occasional downstream changes.

    There are some packages that are not in their repositories though, and whenever it makes sense you'll be expected to maintain them in Fedora as well, to give back to the community.

    Of course, the changes we make downstream will often need to be pushed upstream as well, so you'd have to do that too. ;-)

  • Maintain our build infrastructure

    It's pretty much a replica of the Fedora build infrastructure: spec files are maintained in Git, source tarballs are in our lookaside cache, packages are built in Koji, updates are managed with Bodhi, repositories are made with mash, etc...

    You might have to contribute to those projects if we need to change them (hint: we need Bodhi 2!), and if the changes are interesting to upstream of course, so some minimal Python knowledge would definitely be appreciated.

  • Release engineering

    You'll be seeing the other side of Bodhi, pushing the updates to the testing and stable repositories to enable QA to do its job.

    You'll also need to work on the tools we use to compose new releases of our OS, improve our release/branching processes, etc...

Basically, in Fedora terms, we need someone to be part of the provenpackager, buildsys-build and releng teams for our OS.

One last thing, you'd need to be willing to come and live in Hong Kong. :-)

If you're interested, send me an email at "bochecha at fedoraproject dot org". Be sure to specify your FAS login, as we'll check that as well as your resume. ;-)

Tuesday, October 8 2013

Meet the Cangjians

Cangjiception - CC-By-SA - Jacqueline Wong and Mathieu Bridon

I have been hacking on Chinese input methods for Hong Kong people for more than a year now, and recently the project gained some momentum.

In order to increase participation, and make it less of a "one man show", I created some time ago the Cangjians team on Github, and moved upstream development of the various Cangjie-related stuff there.

We're only two core contributors at the moment, Koala and I, but I'm hopeful that we can grow this team to the point where we leave the absurd situation we are in now, i.e where the biggest contributor can't even read Chinese. ;-)

And in fact, we made great progress last Wednesday at The Loop, and Sam just keeps sending us tons of pull requests to fix lots of small things here and there, like making lincangjie2 build on Windows, fixing build warnings, etc... In other words, he's paying a lot of attention to the details, which eventually makes a big difference for the library.

We have a simple website, which we're still working on, but hopefully it's good enough already to showcase what we do, publish the documentation, etc...

If you are interested in all things related to Cangjie, come and talk to us. We'll be thrilled to receive your feedback and/or your help.

Thursday, October 3 2013

A great iteration at The Loop

I realize I should blog more often about The Loop, the Free Software hackfest we are running every two weeks at the Dim Sum Labs here in Hong Kong, so here's an attempt at doing just that. We'll see how long it lasts. :-)

I'm back from tonight's event, and it went great!

We weren't too many people tonight (that means there's room for you!), but what we didn't have in quantity, we definitely made up for in quality.

While Koala was busy working on a new website for the Ubuntu Hong Kong community, Sam multiplied the pull requests to make libcangjie2 build on Windows.

Jeremy, who just arrived in Hong Kong 2 months ago, started hacking on Firefox / ASM.js. However, while that was building, we worked together on fixing an issue in pycangjie so that it can now build on Ubuntu 12.04.

As for myself, I started having a look into Travis CI, and did some preliminary work to use it for libcangjie2. And as Travis runs on Ubuntu 12.04, we can now also add pycangjie thanks to Jeremy. :-D

All in all, it was a very productive evening, we did lots of good stuff, all while having fun.

So don't hesitate and join us!

If you look at the calendar, you'll see that next event will happen on September 16. No registration required, the event is free for all. Just come, and have fun with us making Free Software.

Friday, September 13 2013

IBus Cangjie in Ubuntu 12.04

It's been a while since I last blogued about IBus Cangjie, but we've only been quiet, not inactive.

Something great happened just today: Haggen just finished uploading IBus Cangjie to his PPA. Thanks to his work, it is now trivial to install IBus Cangjie in Ubuntu 12.04. One step closer to world domination. ;-)

On my side, I've just finished revamping the website a bit. It should now look nicer, and be easier to navigate. Let me know what you think!

Saturday, July 27 2013

Testing GNOME Music on Rawhide

GNOME is working on a new music application, which should be available for 3.10 in September: GNOME Music.

It's not really ready for prime-time yet, so I haven't submitted a review request for Fedora, but if you want to give it a try, I've pushed it to a side-repo.

If you're running Rawhide, give it a try:

# curl > /etc/yum.repos.d/fedora-gnome-music.repo
# yum install gnome-music

Note: It relies on a yet unreleased version of grilo, so that will come in as a dependency and replace the version provided by Fedora.

I'll try to keep it relatively up-to-date with upstream development, until there's a release to send into Fedora.


Saturday, May 25 2013

IBus Cangjie in distributions

I recently released IBus Cangjie 1.0, and since then, I got it pushed to the Fedora repositories.

That means the following distributions now provide packages for easy installation of IBus Cangjie:

In addition, Anthony Wong has started the work to get his Ubuntu packages into Debian as well.

If you want to help us by getting IBus Cangjie into your distribution, let us know, and we'll do our best to help. :-)

Friday, May 3 2013

IBus Cangjie 1.0 is out

Following on the hard work we have been doing for the past few months, I released IBus Cangjie 1.0 yesterday evening.

I had been meaning to do that for a while, but kept thinking about a few details to change here and there, and constantly postponed it. Well, you know what they say: "Release early, release often". So after our discussion on Wednesday during the Free Software Hackfest at Dim Sum Labs I figured I'd just call what we have now 1.0 and go from there. We can always improve it in subsequent releases. ;-)

All in all, it is a basic implementation of Cangjie and Quick, but I'd like to highlight some of its features here:

  • Both Cangjie and Quick are supported in versions 3 and 5
  • By default you'll only get Traditional Chinese, but Simplified Chinese input can be enabled in the preferences dialog
  • Candidates are presented in the unoptimized but familiar Big 5 ordering, to ease the migration for Microsoft Windows users

I'm very happy about what we achieved. Many people have given me very positive feedback. It seems our strong focus on a great user experience with sensible defaults is paying off.

If you don't want to build the sources, you can get packages for your favourite distribution:

  • As usual, Arch Linux's AUR has the stuff a few hours after it's been released
  • Ubuntu 13.04 has packages too (not the release yet, it's a very recent development snapshot
  • It's still not available in Fedora (but you can help speeding up the review!), but I just pushed the release on my personal repo

Of course, if you can package it all for another distribution, then let us know!

Of course, this is not the end. We have a long road ahead of us to make it the best way to input Chinese with Cangjie and Quick. You're welcome to climb on the bandwagon. :-)

Tuesday, April 23 2013

Kicking off a new, recurring Free Software hackfest in Hong Kong

This is a repost from the article I just published on the Dim Sum Labs blog. Go and check out the web site for more info on all the cool stuff that happens there.

Hackers know it: hacking is a lot of fun.

But what to hack on exactly? Well, we are a group of people passionate about Free Software, and, starting May 1st, we will meet regularly to hack together on various projects.

These recurring hackfests will take place every other Wednesday at the Dim Sum Labs, from 8pm to 10pm.

So come and have fun with us!

It doesn’t matter whether you’re a hard-core programmer or a “complete noob”. We’ll help you learn what you need as you go.

If you’re still wondering, here are some examples of people who might want to join us:

  • you are “just a user” of Free Software, and there’s this silly bug in your favourite application which has been bothering you for a while? Come and figure out how to fix it with us!
  • you are a programmer who enjoys hacking on Free Software projects in their spare time? Come hack with us, instead of doing it alone!
  • you have this brilliant idea which will change the world? Come show it to us, and we’ll hack on it together!
  • you are the main developer of a small project which is dear to you, and you could use some manpower to make it move forward? Come have a sprint with us!
  • you want to learn programming by actually doing it for Free Software? Come, and we’ll help you get started.
  • or any other reason, you will be welcome anyway!

And it doesn’t have to be about code! Writing documentation, designing or translating Free Software, this is all hacking too!

We only have one rule: we will only hack on Free Software projects during these meetings.

If you want to have more details, use the form below to leave a comment.

Otherwise, feel free to just come. No registration needed, just show up with your own computer, say hi and we'll start hacking together.

Remember: Wednesday May 01, from 8pm to 10pm, at the Dim Sum Labs.

Friday, April 19 2013

Showcase your FOSS contributions with Ohloh

I was talking with a friend the other day (or should I say night?) about FOSS and the various ways in which it is rewarding for someone to contribute.

One of the arguments was about how contributing to FOSS helps you build for yourself an awesome, public resume. Indeed, any potential employer can just go ahead and verify the quality and quantity of those contributions you say you have made.

That's great for employers (they can avoid the mythomaniacs, and find great candidates), but also for you, as it's a fantastic way to put your skills and experience forward!

At that point of the conversation, I mentioned Ohloh. The fact my friend had never heard about it makes me realize that other people in Hong Kong might not know about it either, and as such are missing on the opportunities it can provide.

A disclaimer first: As far as I know, Ohloh itself is not Free Software. I understand it might be a problem for some people, if that is your case do not use their service.

So how does Ohloh work?

The service revolves mostly around 2 concepts: projects and people.

If you're the maintainer of a project, you can declare it in Ohloh, as I did for IBus Cangjie. Ohloh will then fetch the whole code history (from Github in this case), and present you with some cool statistics about your project (number of contributors, activity, programming languages used, etc...). Don't forget to mark yourself as managing this project!

Now, if you have contributed to a Free Software project in the past, try searching for your name in Ohloh. For example, if you search for "benau", you will get a page listing people going by that name as well as unclaimed contributions. As you can see in this example, the awesome Benau hasn't claimed his contributions to libcangjie and IBus Cangjie. (probably because he doesn't have a profile)

If you are in such a case, and are interested in the value that Ohloh could provide you as a FOSS contributor, you could then open an account there, and claim those contributions as being yours. If you do, make sure to go back to searching your name from time to time, Ohloh sometimes doesn't seem to pick up your contributions automatically.

Other Ohloh users might declare they are using the projects you contribute to, making your contributions more visible. They might even give you kudos, to congratulate/thank you for your contributions.

Eventually, Ohloh will build for you a profile listing your contributions, the programming languages you have used, etc. Take a look at mine for an example of what it looks like.

You could add a button like this one to your website as well:

Ohloh profile for Mathieu Bridon

Then, the next time you are applying for a job, don't forget to add a link to your Ohloh profile on your resume. Who knows, it could be a great boost to your development career! :-)

Sunday, April 7 2013

IBus Cangjie is in Ubuntu!

Just a quick to let everybody know that thanks to Anthony Wong's work, IBus Cangjie is now available in the official Ubuntu 13.04 repositories.

That makes it easier to install than ever.

Thank you Anthony!

Sunday, March 10 2013

IBus Cangjie in your own language

Cheng-Chia Tseng recently opened a ticket in the IBus Cangjie bug tracker, submitting a Taiwan Chinese translation.

This is itself is pretty awesome, but we didn't stop there: Cheng-Chia helped me set up a Transifex project for IBus Cangjie.

That means it should now be very easy for translators all around the world to translate IBus Cangjie into their own language.

I copy-pasted his zh_TW translation into a zh_HK one, because Taiwan and Hong Kong translations are usually very similar. So even if this is not perfect, it is still much better than nothing. Also, a zh_CN translation is being worked on.

This is fantastic. From the very beginning, IBus Cangjie was made to enable people to benefit from Free Software on their computer. But until now, they had to be able to read English.

Thanks to Cheng-Chia's efforts, this is what Hong Kong and Taiwan people will see:


Cheng-Chia, you rock! :-)

Friday, March 8 2013

IBus Cangjie now has a website

A couple of minutes ago, I finished setting up a simple website for IBus Cangjie.

Check it out:

Nothing fancy, it's just a bunch of static pages generated with Sphinx, but the result is not too horrible. Help to make it better is obviously welcome. :-)

One thing missing is the features section. I'll upload a page with nice screenshots very soon.

If you package IBus Cangjie for your distribution, do let us know, and we'll add instructions for it on the appropriate page.

The website is hosted on Open Shift, which is pretty awesome to use, and Sammy was kind enough to give us the sub-domain.

Also, if you use Fedora, I have just uploaded new packages of the latest development snapshot of IBus Cangjie to my side repository. Be sure to update and give us feedback!

Sunday, January 27 2013

ibus-cangjie getting closer to a first release

Two more weeks have passed since my last status update on ibus-cangjie, and we've been busy working.

Let's review the major things which happened since the last time.

First, Benau joined us and quickly fixed a bug in Quick. He's now having a look at improving the order of the candidates, which will dramatically improve the input experience, especially for Quick users. Benau, you rock!

Cangjie and Quick have a behaviour which differs from other input methods, for example they have no preedit text, and the text cursor can move while the user is typing. The latter exposed a bug in GNOME Shell (other environments do not seem to be impacted), which is being fixed for GNOME 3.8. So not only are we trying to provide a great input method engine, we're also helping others to make their projects better. :-)

Speaking about GNOME, I've been collaborating closely with Rui Matos and Allan Day to smooth out some rough edges in both GNOME and ibus-cangjie (ok, they helped me ;-) ). The result is that we now have a much better preferences dialog which integrates natively in GNOME Control Center.

I can't stress this enough: we will try hard to work beautifully in other desktop environments too, we are not tied to GNOME. However, GNOME people care deeply about providing an amazing user experience and they have been extremely helpful. And as I'm myself a GNOME user, I worked on what was useful to me.

But please, come and help us integrate just as well in your favourite desktop environment and respect their guidelines. For example, I got in touch with the Ubuntu/Unity people, and wrote what I learned in a ticket. If you love Unity, feel free to send me patch to fix this ticket. :-)

Now, that was a lot of boring talk. Well, here are some screenshots. First, our new slick preferences dialog, as seen on GNOME:

Cangjie Preferences

Next, the GNOME input menu, with our Cangjie and Quick engines. Notice how the half/full width character option is exposed there:

Input Menu

Finally, I worked on lowering the required minimum versions of our dependencies. This should make it easier for more distributions to provide packages for ibus-cangjie, so that more user can benefit. I'm maintaining a page showing the current status for availability in distros. As mentioned on that page, I'm already maintaining packages for Fedora >= 17 in a side-repository, and Antony Ho is providing pkgbuilds for Arch Linux in AUR. If you are a packager for another distribution, please get in touch and we'll help you package ibus-cangjie (and its dependencies).

Long story short, ibus-cangjie should run on all the following distributions:

  • Debian Experimental (soon on Sid, once it picks up the cython package from Experimental)
  • Fedora >= 16
  • openSUSE Factory
  • Ubuntu >= 13.04

There are good reasons why we can't support older releases of these distributions: they provide old versions of cython, which won't build pycangjie. I'd love to support Ubuntu 12.04 for example, as it is their current LTS. If you can help with cython, please get in touch.

We're really getting close to our first release now, so we more than ever need your help with testing, or fixing the last few remaining blocker bugs.

Before closing, I'd like to remind you that I'll be leading a usability testing lab at the next Open Source Workshop in Hong Kong. Come and join us, your feedback on the user experience will be invaluable to making ibus-cangjie a great implementation of Cangjie and Quick. I hope to see you there!

- page 1 of 6