Oct 312013

Alright, a quick summary on XMPP before Halloween 😉

ejabberd is up and running with 3 nodes in the cluster, and having data replicated to all 3 nodes thus service will be up and running as long as there is at least one node alive. With SleekXMPP created 5M which is much faster then ejabberdctl, created 10,000 pubsub nodes so that I can do announcement to user groups, but seems I need to recreate them as they are currently all belong to admin account, which does not fit into real world. pubsub is working as well, but I need to find another solution with better performance – it’s current about 1 subscribe/second, and seems most time was spent on authentication, so I need a feature of “subscribe for others” to speed up the test deployment, though this is not necessary in real production. I haven’t test publishing information yet. Continue reading »

Oct 142013

Time to play with HA ejabberd setup now.

It was said number of daily active user will be less than 1M, and IM is just a feature of the mobile product, and believe that people will spend less then 2 hours on it everyday, also people will use the App mainly during traffic hours. So it’s 2M hours span to 7~9am and 6~8pm, 4 hours. I would like to assume it is evenly distributed, this makes the concurrent online user … 500K, Not a big number, and since it is just a non-key feature, so activities will be limited.

So I think I’d go with a full replicated ejabberd cluster, “full” means I’m going to replicate everything – password, roster, offline message. I will check the stats of the production environment to see how the resource utilization is going, and tune the allocation whenever necessary. Continue reading »

Aug 212009

I didn’t post anything here in the past couple of days as I was busy on pys60 stuffs, pretty fun and made progress.

Here are some issues I solved or partially solved (say, work around), some of them may look stupid to experience S60 or Python developers but thinking of I’m new to both …

  1. Access point selection, old version used to ask for selecting access point once it’s trying to establish connection to server. Some articles saying by import btsocket module as socket will solve the problem, but actually it does not work. The right solution is using the new feature from pys60 1.9.x (I believe this is the right version), that is, socket itself not support set_default_access_point, which is similar to btsocket’s method in same name, but taking name of the access point (the string) as the parameter which is actually more convenience than btsocket
  2. It seems loading time is really long (well, depends on how many modules to be loaded), so put something like a appuifw.note(“something”) at the very beginning, just after one import appuifw (remember don’t import all other modules) is much more user friendly
  3. combo in Form is way too hard to use, you have to have access to the combo value through form object, which is not convenience at all
  4. e32dbm … support string ONLY, and better encode/decode everything with utf-8, otherwise it will be all sort of problems to sync up the encoding.

There are some other minor findings such as different between list (it’s an array!!!) and a map. However, I’m still having problem in dealing with UI, at this moment I want to have a tab with two text boxes, one for showing the conservation (in and out messages), and the other one used to input message. I haven’t got any ideas how to make it, so far. It seems Canvas is the direction, but output text with line wrapping is way to hard to do to me.

I will post things here once I get any progress, but I would like to guess that won’t be significant in near future.