GNOME Asia Summit 2013 in Seoul

GNOME Asia Summit 2013 was held in Seoul on May 23rd and 24th.
Many passionate GNOME folks came to Seoul from China, Canada, Taiwan, Japan, Hong Kong, Indonesia, USA, France, UK, Germany, India, and more.

The local team and the GNOME Asia Summit committee have been very busy preparing for the conference for the last 6 months. Fortunately, the Korean government agency(NIPA) offered the use of the venue and supported expenses by using other sponsors. I’d like to thank them for all their help.

GNOME Asia Summit was great. There were great talks and trainings about various areas. Karen and Allan both gave keynote speeches: Karen talked about security risks in medical devices that run proprietary software. I was sorry to hear that she has been fighting against the company and the FDA for people who have an implanted device including her, so I hope that this problem would be solved in the future. Allan introduced GNOME 3.8 to us which helped me to understand the new features of GNOME 3.8.

There were introductions to Linux distributions based on GNOME: one is EzGO and the other is BankOn.

Ericsun introduced EzGo which is based on GNOME3 and was developed in Taiwan. This is for a lightweight and fast desktop environment for low cost hardware. Currently, universities, user groups, and the Taiwanese government contribute to this project.

BankOn is also a local Linux distribution used in Indonesia. Mohammad introduced BankOn and Manokwari, the HTML5 based desktop shell running on BankOn. Actually, I was surprised that there are local Linux distributions in Asia. Korean companies also developed local Linux distributions almost 10 years ago, but they abandoned the distribution business because they didn’t find any business model to follow. I think that a more localized Linux distribution is required to spread Linux in Korea.

In addition, it was great to meet other Asians who have tried to spread F/OSS and GNOME. As you know,  F/OSS participation is not strong in this part of the world and there are not many of Linux users in Asia, so through gatherings such as the GNOME Asia Summit, we will be able to share our issues and work together in order to improve our situation.

Screenshot from 2013-05-28 18:34:48

In particular, I was glad to see many students who attended Sunjin‘s training session in order to learn GObject/Glib. Everyone received the certificate of training signed by our executive director, Karen. I hope that GNOME Korea will continue to train more students in order to get them involved in F/OSS and GNOME.
Screenshot from 2013-05-25 02:00:09 Screenshot from 2013-05-25 02:20:11
I had the opportunity to give a talk about GNOME development on Tizen Mobile: I talked why Tizen is important for GNOME mobile and how we can develop GNOME applications with Tizen SDK. I tried to show that it is easy to run GNOME on Tizen Mobile by creating Gtk+ packages for Tizen 2.0 and demonstrated how to run Gtk+ on Tizen mobile, although it is not optimized for mobile phones. You can download all packages here.

There was a city tour as usual on the next day of the conference. The local team and tour attendees went to Seoul Tower and Namsangol Hanok Village. They learned Taekwondo and had lunch together. You may find more photos on Google+ and Flickr.

Photo by Sammy Fung

I’d like to give thanks to Intel Open Source Technology Center for sponsoring my attendance. In addition, my colleagues helped me to create the Gtk+ RPM packages and gave me good advice for my talk.

Finally, without the local team, speakers, and attendees, the GNOME Asia Summit could not happen in Seoul, Korea, so I’d like to thank them all.

Hi~ Planet GNOME

Hello! Nice to meet you. I’m so glad to introduce myself here.
My name is Joone. I work for Intel and have been contributing to WebKitGtk+ since 2010.

Actually, I’m a lazy blogger, but I will try to write about WebKitGtk+ and Tizen. Also, I’m involved in the GNOME Korea community so you will find GNOME Korea news in my new posts.

Thank you!

Accelerated Compositing with Clutter!

I have been working on a new hardware acceleration backend for WebKitGtk+ with Clutter. This is an experimental feature, but after I added Clutter, Cogl, Clutter-gtk to WebKit jhbuild module file, you can try to test it more easily wth WebKit upstream.

Building WebKitGtk+ with Clutter

First thing you have to do is to set WEBKIT_EXTRA_MODULES environment variable as follows:

export WEBKIT_EXTRA_MODULES=webkitgtk-clutter-dependencies,libsecret

If you are using Ubuntu12.04, you should also add libsecret.

Before running build-webkkt script, you need to update all dependent libraries of WebKitGtk+ by running update-webkitgtk-libs script.

$ Tools/Scripts/update-webkitgtk-libs

Then, run build-webkit script as follows:

./Tools/Scripts/build-webkit --gtk --with-acceleration-backend=clutter --no-webgl

You can run the WebKitGtk+ launcher with enabling accelerated compositing as follows:

$ ./Tools/Scripts/run-launcher --gtk --enable-accelerated-compositing

Currently, basic features of CSS 3D transforms, and animations are working, but there are many missing features. Actually, the Clutter backend is already working well in WebKit-Clutter port. I worked on this port before, so the WebKit-Clutter development team(Kov, Changseok) and I are porting accelerated composting code of WebKit-Clutter to WebKitGtk+.

Anyway, the Clutter backend is very important because GTK+4.0 is planing to use Clutter or Cogl as a GDK backend. I expect that the Clutter backend may be able to work better with GTK+4.0

Building Wayland with Jhbuild

“Wayland is a computer display server protocol and a library for Linux implementing that protocol” This could be used to implement a window & compositing manager for Linux desktop. Weston is the reference implementation of a Wayland compositor.

There is a good instruction to build Wayland, but building Wayland is not easy because it may cause problems on your Linux system if you install Wayland and its dependencies on you system folder (/usr).

Therefore, I recommend that you will install Wayland on a separated environment using Jhbuild. Fortunately, a Jhbuild module file for building Wayland was included in Jhbuild, so we can build Wayland by just running a Jhbuild command.

First thing we need to do is build and install jhbuild from Jhbuild git respository.
Then, follows the below steps. You may need to install several dependencies such as libpciaccess-dev, libxcb-dri2.0-dev, libxcb-xfixes0-dev, libmtdev-dev, and libpam0g-dev.

$ cd ~/git/jhbuild/examples/
$ jhbuild --file wayland.jhbuildrc build
$ jhbuild --file wayland.jhbuildrc shell
$ sudo su -
$ export LD_LIBRARY_PATH=/home/joone/wayland/lib64
$ ./weston

I tried to run Western under X, but it didn’t. Instead, I could run Western outside X. I’m not sure if I set up Wayland environment correctly, but I could run sample applications for Wayland. There is a build script for Wayland so you can also try this.


WebKitGtk+ Hackfest 2012

I attended WebKitGtk+ hackfest 2012. This is my third attendance of the hackfest so I was really glad to see our WebKitGtk+ contributors again. Actually, we have met at WebKit contributors meeting, Desktop Summit, and WebKitGtk+ hackfest since 2010. This is another pleasure of working on open source projects.

Anyway, more people attended this hackfest compared to the last hackfest, which shows WebKit and WebKitGtk+ are becoming more important. As you may not know, a lot of embedded devices are using WebKitGtk+ such as DTV, mobile phones, and ebook readers.

I continued to work on the Clutter backend of Accelerated compositing in WebKitGtk+.  In the last hackfest, I completed the implementation, but the patches were not fully upstreamed, so I tried to fix build problems and apply more code to upstream. WebKitGtk+ has 3 backends of Accelerated Composting: the OpenGL backend is enabled by default, the Cairo backend can be used when OpenGL is not supported, the Clutter backend is an experimental backend. The WebKitGtk+ team is planning to embrace Cogl/Clutter when Gtk+ moves to use Clutter/Cogl as a GDK backend in the future, so I believe that the Clutter backend would be important to support Gtk+4.0(?) in WebKitGtk+.

I applied the below patches during the hackfest. It was a very productive time.

Finally, I’d like to thank Intel OTC for giving me the oppertunity to attend the hackfest. In addition, l’d like to thank the GNOME foundation, Igalia, and Collabora for sponsoring the hackfest.

GNOME Tech Talks in Korea

I have been organizing GNOME tech talks every month since January 2012, which introduce GNOME technology to the GNOME Korea community members.

You can find the blog article about each event as follows:

However, since all articles are written in Korean, I will introduce an overview of each talk because I believe every talk would be helpful to all GNOME folks.

1st GNOME Tech Talks

How to make a plug-in using GTypeModule – Jaegyun Lee
Jaegyun introduced how to make a plug-in using GTypeModule with a sample code. He showed that it is easy to add a plug-in system into GNOME applications using the GTypeModule. You can find the material from his presentation and the example code with the links below:

Introduction to GObject Introspection – Youngho Cha

Youngho introduced what GObject Introspection is, how to use it with sample codes, and what the difference is between the python binding and GI when using python.
Interestingly, he implemented a program which allows us to save a web page as a PNG with Python and JavaScript using GObject Introspection. You can find the material and the examples with the links below:

Introduction to WebKitGtk+ by Joone Hur
I talked about the WebKitGtk+ project and how to use it, with some examples. You can find the material and examples with the links below.

2nd GNOME Tech Talks

GObject Object Oriented Programming – Sunjin Yang
Since his talk, he has posted a series of GObject object-oriented programming to his blog, which are very detailed articles to help people understand how GObject works. He added a new article with examples to continue the series after a long time, which introduced how to use the GObject property binding.


Introduction to Linux Multimedia – Youngho Cha
He has used Linux for playing movies since the early days of Linux, so he has fixed some bugs in GStreamer and open source multimedia players. In terms of those experiences, he was able to explain the Linux multimedia stack, and multimedia framework and applications chronologically. You can find the complete history of Linux multimedia with the link below.

3rd GNOME Tech Talks

Introduction to the libhangul project – Hwanjin Choi

 In his talk, he introduced his Hangul-related projects such as the libhangul, the ibus-hangul, and the nabi project. Without his contribution, we could not have entered Hangul on the Linux desktop.
He explained how to use libhangul with a demo program which showed how libhangul compose each letter (Jamo) into one syllable.  Also, he talked about the issue where a compositing Hangul syllable enters two times when the user moves the input focus using the mouse. He said that applications should notify IME to cancel the current composition when they already confirmed the current composition of syllable.

GladeTristan Van Berkom

Glade is a tool for designing Gtk+ applications UI like Mac OSX interface builder. One of the core maintainers, Tristan, gave a talk about Glade. He introduced the history of Glade, a way of how to add custom widgets to Glade, and etc. He showed the audience how GNOME applications use Glade to make their UI.

Introduction to Cogl – Changseok Oh

Finally, Changseok introduced Cogl, which are 3D graphics APIs based on OpenGL. It allows users to use OpenGL and utilities in a consistent way across the different platforms. He also talked about the major features of Cogl using a sample code.

4th GNOME Tech Talks

WebKit2Gtk+ – Joone Hur
I talked about WebKitGtk+ again, but this time my talk covered WebKit2. I introduced how a multi-process model is implemented in WebKit2Gtk+ by reading the code, and how it works by explaining a patch for enabling IME in WebKit2Gtk+. I believe that it was helpful for at least some of the audience members because it could help them to understand how to add a new message between Web Process and UI Process.

Tracker – Simon Hong
He introduced Tracker, which is a desktop search engine like Mac OSX Spotlight or Google Desktop Search. It allows us to search for local files and social data such as Twitter, RSS, and Facebook by indexing the user’s local disk.
For more details, please take a look at the slides, which can be found at the address below:

It was a wonderful experience to hear GNOME tech talks every month. Every talk must have been very interesting to the audience, as we spent more than 30 minutes on a Q&A after each talk. From this month onwards, Simon Hong will be taking over my role, so he will organize the GNOME tech talks or hackfest every month. However, I will also continue to introduce what we talked about to the wider GNOME community.

Thanks to the speakers and attendees.