PL-2303 sous Vista

Pour faire fonctionner le convertisseur USB/Série PL-2303 sous Vista, utilisez les pilotes BAFO Technologies disponibles sur leur site de support. Version actuelle : Vista 32/64 v1.6

December 17, 2008 · Florent Clairambault

Improving .NET Network Performance with Kernel Events

I recently rebuilt our TCP/UDP network server library to handle high-load scenarios. The initial thread-per-client approach worked but hit memory limits at around 3,000 simultaneous connections. The solution? Kernel events. Using IOCP (Windows), epoll (Linux), and kqueue (FreeBSD), we let the kernel notify our program when new data arrives instead of polling. With a 128-byte pre-allocated buffer and some BeginReceive calls, the changes were minimal. The results exceeded expectations: from a 10,000 connection target, we achieved 60,000 simultaneous connections with near-zero CPU usage and instant response times. This proves Mono/.NET’s capability for high-performance network servers. ...

November 2, 2008 · Florent Clairambault

The B.A.T.M.A.N. Project

I recently discovered an interesting mesh networking project called [B.A.T.M.A.N.][1] (Better Approach To Mobile Ad-hoc Networking). It builds upon and improves the [OLSR][2] protocol specifications for routing in mobile ad-hoc networks. You can learn more about this project on the [B.A.T.M.A.N. website][3].

October 11, 2008 · Florent Clairambault

MapPoint WebService authentification with Mono

When migrating a MapPoint WebService application from Windows to Mono/Linux, I encountered “401 Unauthorized” errors. Network analysis revealed slight differences in HTTP headers. Here’s the solution using specific credential handling: var cred = new System.Net.NetworkCredential("---user---", "---password---"); _credCache = new CredentialCache(); _credCache.Add( new Uri( "http://findv3.staging.mappoint.net" ), "Digest", cred ); _finder = new FindServiceSoap(); _finder.Credentials = _credCache; _finder.PreAuthenticate = true;

May 19, 2008 · Florent Clairambault

Odd things about MySQL

Today, I optimized a MySQL query to find spatial points by proximity. Initially, my query took an average of 250 ms. After some research, I came across a document from MySQL. By following their recommendation to use a preliminary approximation via a bounding box, I was able to reduce the query time to a range of 5 to 35 ms. However, as I continued reading, I discovered that MySQL also offers a spatial extension based on R-Tree. I thought I had found the perfect solution. But no, R-Trees are only available with the MyISAM engine, and creating spatial indexes is not allowed in InnoDB. The same goes for FULLTEXT indexes, which are also not available in InnoDB. ...

November 30, 2007 · Florent Clairambault

I took the time to add some [OpenLayers][1] support to a web application I’m working on, mainly because I wanted to have [OpenStreetMap][2] maps. It can’t replace VirtualEarth or Google Maps because the maps lack a lot of data but unlike GMaps and VirtualEarth it’s free for commercial applications. [OpenLayers][1] is a powerful tool. But it’s a little bit ugly (GeoRSS rendering is lame, maps tiles arewere loading in a strange way) and I don’t really like the documentation (if you compare to the Google Maps API pages, it sucks). ...

Florent Clairambault