Sunday, November 02nd, 2008 | Author: eagle

First of all, I am giving some figures which the Chinese government wants the world to know:

1. China has the most internet users (253 million) (hey, there are 1.3 billion people in China)
2. China has the most broadband users (214 million)
3. China has the most cc-TLD domain names (.cn) (12.18 million)
4. China’s internet penetration rate continues to grow (19% now)
8. Not only Beijing and Shanghai, but China has Tier II & Tier III cities (93 cities have more than 1 million population)

They are convincing, aren’t they? These facts make the Chinese IT market really attractive to everyone. But before entering the market, there are something more you need to understand, and probably you won’t.

1. Chinese loves QQ and forums
77.2% of the Chinese people uses instant messengers(40% in the States), and QQ is leading the market with 77% market share. QQ has 342 million active user accounts, 42 million peak concurrent users, 26.1 million paying internet subscribers and 13.4 million paying mobile subscribers.

63% of the Chinese uses emails and 69% uses search engines(92% and 89% in the States)

People love forums and forum like websites. The idea of wiki and twitter are too new. The internet is a toy for Chinese people instead of a tool. The big IT companies makes entertainment contents and online games, which in my opinion, should be changed!

2. The Great Firewall and CERNET

The great firewall is a censorship and surveillance project. Not only some political contents are banned, but websites like sourceforge, wikipedia, flickr, github, feedburner and etc. are all banned from time to time. Flickr and wikipedia(non political content) are free to visit now, sourceforge was removed from the blacklist during the Olympics(was blocked again the day before yesterday), but github is recently blocked. The firewall’s behavier is very hard to predict. It blocked several of my friend’s blog on livespace(just technical blogs), and as I mentioned before, it blocks sites without any reason. YouTube, part of google.com can be in the blacklist at any time! Don’t ask me why, who knows!

Every public site needs to get an approval. You need to provide your personal info to the government in order to run the web(and even if you just want to buy a virtual space for wordpress). And if you want to run a forum, a 24 hour emergency phone call number is needed, thus they can ask you to delete any post at anytime…

OK, we would like to have a Chinese KDE forum since Chinese regards forums and instant messengers as the most important things. Why wouldn’t we run it outside China?

There are only two backbones in China, one in Shanghai and one in Beijing. The infrastructure quality inside China is good. I can get 250KB/s downstream rate in Shanghai, but the speed can be terrible if I want to connect to the servers outside China(1KB/s-10KB/s). The high school and university students use CERNET.  The speed within CERNET is around 1M/s-10M/s but the speed is unacceptable to outside China(<1KB/s?). Some university have only the local network connection in default, and you need to pay for the connection outside China. It is not special, and this is the case in Peking University, the best one in China. You can find any free movies, free musics and software copies within CERNET. Copyright? ah…

Things can be changed, and it is changing. We have many students using and developing free software. The situation in China is not hopeless. Many people use proxies to avoid censorship. That is why we’d like to have a forum and website of KDE for the Chinese people, and the server must be within China.

The government is not fighting with the free software communities. They just have no idea what free software is. We are making efforts here to spread the idea and motivate the people. And we need support. :)

Reference: http://www.seomoz.org/blog/china-ten-things-you-should-know-about-an-online-superpower

Category: Uncategorized  | 19 Comments
Thursday, October 23rd, 2008 | Author: eagle

I went to Beijing last weekend for the three-days GNOME Asia event. I was there not only for promoting KDE, but also to promote open source concept in mainland China.
Open source communities in mainland China are not as active as the European communities, neither GNOME nor KDE has a very good growing environment there. I’d rather regard it as an open source in general event in mainland China instead of a GNOME Asia summit.

Around 300 attenders went to the talks and BoFs, about 90% of them were local Chinese. There were employees from SUN, Novel, Nokia, Motorola, Redhat, and some Chinese local companies. There were students and opensource community members, and most of them were using open source operating systems. Although there are half of the talks and BoFs were introducing pure open source concept, histories and current situations, it is rather understandable that Asia people, especially mainland Chinese need this kind of education. As I introduced the scripting concept in Plasma and Amarok, there were also speakers focused on development and improvement of the current projects. About 30% of the speeches related to GNOME applications. ( the schedule is here: http://www.gnome.asia/en/schedule/ )

When talking about GNOME, many KDE guys may regard it slow and ugly, but I still enjoyed sharing ideas and different perspectives with the GNOME developers. KDE and GNOME are not really competing with each other. We learn from each other, and we fight for freedom together, especially now in China.

Freeflying and I talked about we would probably hold KDE Asia or KDE Asia Pacific some time appropriate in the future. We would learn from the failure and successful experience from GNOME Asia community and we should introduce the beauty of KDE to the Asia users definitely.

I found the “western developers” or the “far east users” actually didn’t communicate well, I will write more English blogs for the KDE guys to introduce the situation in Asia as I wrote many Chinese blogs to promote KDE. I’d like to share my point of view from the perspective of a local Chinese KDE developer.

Here are some photos token by the volunteers during the two-days-event, and token by me for the last day Beijing trip.

Booth area with people

From GNOME Asia 2008, Beijing

Firefox and Sun in the booth area

From GNOME Asia 2008, Beijing

Talks in a small conference room

From GNOME Asia 2008, Beijing

The conference rooms were awesome. And from the European standard, you cannot imagine how cheap they cost.

From GNOME Asia 2008, Beijing

Stormy Peters in her talk

From GNOME Asia 2008, Beijing

Kate was promoting Maemo ( hey guys, n810s ;) )

From GNOME Asia 2008, Beijing

I was promoting KDE, HAHA.

From GNOME Asia 2008, Beijing

One day trip in Beijing

From GNOME Asia 2008, Beijing
Category: Uncategorized  | 3 Comments
Monday, July 14th, 2008 | Author: eagle

Hey, I have a lot things to demo since we were moving very fast In the past two weeks!

I’ve added a lot of QtScript API functions, including GUI, Playlist, Collection, Music Engine and Scriptable Service.

Here are some small pieces from the whole cake:

one of the engine signals:

function TrackChanged()
{
print( “Dude! Do something! The track changed!” );
}
Engine.trackChanged.connect( TrackChanged );

Track Meta Info:
var TrackInfo = Amarok.Engine.TrackInfo;
StatusBar.shortMessage( “You are listening to album: ” + TrackInfo.Album );

Collection and Playlist Access:
var totalTrack = Amarok.Collection.totalTracks;
Amarok.Playlist.clearPlaylist;

I’ve almost finished the DBus interface by supporting MPRIS standard ( http://wiki.xmms2.xmms.se/wiki/MPRIS ). Now the script manager could handle script errors, write them to log files and correctly start/stop scripts. A simple demo script and a scriptable service QtScript called “Cool Stream” was released with Amarok Alpha 1.

Everyone loves eye candy, the API implementation and bug fixing are mostly behind the scene. So I decided to make some candy for non-latin character users :).
I grabbed the charset detector code from Mozilla, merged them into Amarok. Now, the wolf recognizes non-UTF8 tags:

The summer of code project seems always stuck on some building system stuff. The charset detector didn’t compatible with cmake 2.4.8, and the Qt bindings generator was needed to be ported from qmake to cmake. ( thanks “compiling king” Ian for helping me :D )

The SoC project will be ended in one month. And we still have some work to do. Ladies and Gentlemen, let’s wait for the finalized script API, and the brand new script manager!

Category: Uncategorized  | Comments off
Sunday, June 29th, 2008 | Author: eagle

AH! Some big progresses and decisions have been made this week. So let’s take a quick glance at the new Amarok Scripting interface. Here we go!

var Engine;
Engine = Amarok.Engine;
Engine.Stop( true );
Engine.Play();
Engine.Seek ( 60*1000 );

You can run the QtScript code using the script manager. Is the code simple enough for you? Using the code above, you can control the music engine of Amarok. For the current track info, just use AttriVal = Amarok.Engine.TrackInfo.someAttr.

No need to import libs for using any APIs. Besides, you will also be able to use the entire Qt APIs in the near future!

Now, let’s add two menu objects under the “Tool” menu:

function Menu1Clicked()
{
print (”hey, I am menu1!”);
}

function Menu2Clicked()
{
print (”hey, I am menu2!”);
}

Amarok.Window.addSeparator();
Amarok.Window.addMenu( “testMenu1″ ); //you are creating a new object here!
Amarok.Window.addMenu( “testMenu2″ );

Amarok.Window.Menu.testMenu1.triggered.connect(Menu1Clicked); //then we can play with the new toy :)
Amarok.Window.Menu.testMenu2.triggered.connect(Menu2Clicked);

Finally, you can control the OSD and the statusbar widget (in the right bottom corner of the main window)  using the code below:

var OSD = Amarok.OSD;
OSD.setText( “Hey there!” );
OSD.show();

var StatusBar = Amarok.Window.Statusbar;
StatusBar.shortMessage( “Hey there!” );

Still a young wolf ah? A lot more APIs need to be implemented, like the playlist, collection, services, some GUI control, and networking APIs…

I am really happy as I am growing with Amarok. Let’s pray for an another productive week, and wait for more magics pop up! :D

Tuesday, June 24th, 2008 | Author: eagle

I’ve been at home for three weeks, was with my family and had a three-weeks-leisure-break.

Finally, I am sitting here to talk about my summer of code project. I am sorry about the first three weeks break, I really do. But I did try to get familiar with the development environment and tried to hack some code. I am going back to campus in Hong Kong in two days, I can thus concentrate on my SoC project.

For a long time, I was trying to understand what is going on there. Trying to think what the other developers think. For the first month I joined the community, I was amazed that amarok folks are so in love with what they are doing, and have so much passion on it. Different from my past projects, amarok is a rather large project, different developers had different views on the future way.

For the first time, I am feeling myself being pulled to the bleeding edge. I compiled QT for four times in two different platforms (How many times for kdelibs and kdeRunTime? :)). I realized it is sure a though learning process. Playing with the fresh new hot stuffs, I am pretty happy with this.

In the first week, I was busy with my exams, and cleaned up the existing dbus interface.

For the second and third week, I had a slight trip with my girl friend, set up a new Leopard development environment, tested the MPRIS support, and made my first commitment to KDE svn server.

I did some paper work, studied a little with scripts, and I am now quite clear with my goals for the coming busy July.

I made my mind to immigrate everything to qtscript from dbus. I would keep the MPRIS stuffs (PlayerDBusHandler, RootDBusHandler, TracklistDBusHandler) for dbus interface. And the other functions will be scriptable through qtscript. (both ruby and python need additional runtime dependencies, but not qtscript. The simpler the better :))

Compare to the current functions, I will add more signals since the signal machanism are rather easy to be acheived using slots and signals. For example, signals like trackEnd ,trackChange, SeekingTime, configurationChange and etc. would be added.

The second change I will make is the scriptable GUI. You will be able to add buttons, menus, lists using scripts.

Before my visiting to Belgium, I will make a easier use script manager which include upgrade checking, simple dependency checking (to check amarok version and optional packages for amarok which will be also needed by scripts).

I am so looking forward to the coming working days and nights. Hopfully, I can work out a brand new scripting interface in one and half months and thus I can start a new script project during my visit to Europe.

Happy hacking :)