It has been a long time since my last post, but I have had an exam period of 6 weeks. I will be free monday 😀
Regarding the Ribbon Sharp library, we are trying to distinguih ourself from other vendors. In addition, we would like to find a new name for the project. So if you have a nice idea, post it as a comment!!
Regarding the development, it is now possible to place the title of a group at the left, right, or top in addition to the original bottom position. Personally, I think that the left position is great because it helps make the overall bar thinner (and we tend to have wide screens nowadays). You can see the result below:
As you can see, the expansion button take a lot of space in such a layout. I think we should put it at the opposite side of the group whenever the title is placed at the left or right. I have also tried to understand how key bindings work with Gtk#. As far as I have understood, I had to give a name for the signals that can be activated through a key. Consequently, I did so for most functionalities of the library. But I have not tested that part yet.
The great news is that Paweł ‘X4lldux’ Drygas got the library to work under Windows, and fixed a few bugs. I should get its patch soon.
Of course you may wonder why I have been so long, or why I have not produced more code in such a long period! The answer is that I have also produced 5000 lines of C# for my own, new, object database. I find that project much more challenging and fun to hack. It should be out for the summer. In addition, I will develop for the Android challenge during February.
Finally, I recently quit my asp.net hoster due to bad service. I’m now at linode, and had to use Mono to host the web site. Consequently, I did a few benchmark to test performance and stability. The objective of the benchmark is to test the memory leaks, and responsiveness. Consequently, the page is a webhandler (.ashx), that writes back “Hello Word” followed by the Http Host specified by the request object. Here are the results:
In an InnoBox Virtual Machine running on my Intel E6400, using ab -c 100 -n 50000 (100 concurrent connections, 50000 requests) :
- fastcgi-mono-server2 /socket=unix /multiplex=True, using nginx
RSS=290MB, 175 req/s, 33 failed requests
- fastcgi-mono-server2 /socket=tcp /multiplex=True, using nginx
RSS=274MB, 161 req/s, 296 failed requests
RSS=25.5MB, 373 req/s, 0 failed requests
Cleary fastcgi has memory leaks, and performance troubles. Of course, fastcgi is still young.
And now on my Intel Pentium 4 2.7 Ghz:
372 req/s, 0 failed, 2.242 MiB transfered
465 req/s, 0 failed, 1.714 MiB transfered
- nginx+mod_wsgi (python)
3610 req/s, 0 failed, 1.7 MiB transfered
Conclusion? We should try to throw the asp.net stack out of the window first, and modify the code of mod_wsgi to host mono instead of python, calling a simple method similar to wsgi. If the performance is on par with python, we could then bind that to the asp.net, and check performance. mod_wsgi is released under the MIT license, so no trouble there. For now, I use nginx which proxifies requests to asmx, ashx, and aspx files to an xsp2 server.
Wow, I do not blog often, but when do, it is worth a thousand pages.
EDIT: The problem with nginx+mod_wsgi is that it is not multi threaded, but multi process. It is likely due to the fact that nginx is event-based.