Nao the robot

I’ve got a highschool friend whose father started a robot company. And this isn’t any robot company, they built the finest consumer product robot. And she’s now representing the company and leading the communication around the robot in Shanghaï. She and her 9 people team, spent 5 full-time working months to do this quite amazing show : Edit : I just remembered my friend Alice already has a blog where she speaks about this great robot. My excuse for not remembering it is that she doesn’t update it very often.

June 30, 2010 · Florent Clairambault

I’m starting to like Skype

I’ve “always” used IM clients. I started with ICQ, switched to AIM, then MSN, then Jabber, then Gtalk and more recently Skype. I have all of them open, mostly because I like to be able to talk to everyone without forcing them to switch to something to talk to me but the main client I use, is currently Skype. Skype is the only one client that isn’t open in any way (application and every protocols). Well I must say, they’ve released their SDK (SkypeKit) very recently (the 22/06/10). People can now build softwares around Skype. But this is not what I want to talk about. ...

June 26, 2010 · Florent Clairambault

Recycling .net objects to improve performances

C# .Net allocation and freeing system is quite efficient but when you need to create a huge number of objects, it’s just not fast enough. So what you can do is try to recycle each object to avoid to recreate them. You will then just need to set their property. In my tests, this class reduced the allocation time from 12 to 15 times: public sealed class Heap<T> where T:class, new() { private readonly Stack<T> _stack = new Stack<T>(); private int _count; public T Allocate() { if ( _count == ) { return new T(); } else { --_count; return _stack.Pop(); } } public void Free( T obj ) { ++_count; _stack.Push( obj ); } } You might think that this process is really painful as you have to manually free every single objects you use. But in fact you just have to recycle most of the objects. If you forget some, that’s not really important (they will just get garbage collected).

June 15, 2010 · Florent Clairambault

A little TC65 development document

WARNING: All the Cinterion related content from this blog will be removed to go to the javacint wiki soon. Please get used to going there. During the last months I spent some time writing a document on the TC65 development. It is primary aimed at TC65 project managers and developers. This document can be considered as a draft and I’m waiting for any of your comments to fix / improve / complete it. It’s currently 40 pages long. ...

June 13, 2010 · Florent Clairambault

Google PowerMeter and sample C# .Net API usage

Update 2011-06-25 A lot of people still contact me about this project. I received this mail today, just in case you’re getting interested by the project, you should know that it will die pretty soon: Dear PowerMeter User, We first launched Google PowerMeter as a Google.org project to raise awareness about the importance of giving people access to their energy information. Since our launch, there’s been more attention brought to this issue, and we’re excited that PowerMeter has helped demonstrate the importance of access to energy data. However, our efforts have not scaled as quickly as we would have liked, so we have decided to retire PowerMeter. ...

May 29, 2010 · Florent Clairambault

Solving BSOD using crash dump files (.dmp)

Blue Screen Of Death are the most annoying things that can happen on Windows. Most of the people just think “my stupid windows just crashed” and sometimes they even get reinstalling it (what a waste of time). But in fact the windows kernel itself never crashes, the drivers do. And from a general point of view, I think it’s better to understand the problems before solving them. It sometimes takes a little bit more time but it makes you save a lot of time in the long run (and everything in life is about time). ...

May 14, 2010 · Florent Clairambault

Six Sigma

There’s a definition on wikipedia. It’s much wider than my tiny vision of this business management strategy. But basically this strategy says: Fix the source of every problem and not each problem. In a factory, it means you have to change the production process to reduce the probability of making defective pieces instead of fixing pieces faster. That means you have to spend time on fixing the problem. So this strategy also means: Spend time to save time. ...

March 10, 2010 · Florent Clairambault

Linux prioritization : do more with less

I find the concept of prioritization very interesting. It just enables you to do more with less. Doesn’t that sound great ? Let’s say you want to be able to respond to user requests as fast as possible but update your data in a low priority manner : You can set the process CPU priority from -20 (high priority) to 19 (low priority) by using the command : nice -n <priority> <command> You can set the process IO priority in 4 classes (0: none, 1: realtime, 2: best-effort, 3: idle) with some priorities within these classes (0-7, lower being higher prio). But you have to enable the CFQ (Complete Fair Queueing) scheduler first by typing something like that : ...

March 7, 2010 · Florent Clairambault

Stupid C++ vs C# performance comparison

I found out that there is real test than the little one I did here. The core of the post is this spreadsheet : I recently did a basic comparison test between C++ (g++) and C# .Net (mono). My point is to show that the .Net framework has performances close to the C++ ones. It allows automatic hardware-specific optimization. The only real drawback you have in the .Net framework is the garbage collector. It prevents the C# .Net it from being a realtime language/framework. But does it really matter for you ? ...

February 26, 2010 · Florent Clairambault

D language

This is just a very short post about this language I recently discovered : the D language. As described on its little website : “D is a systems programming language. Its focus is on combining the power and high performance of C and C++ with the programmer productivity of modern languages like Ruby and Python. Special attention is given to the needs of quality assurance, documentation, management, portability and reliability.”. It has most of the features of the java and the C# (best language ever), but it is fully compiled (no JVM or JIT stuff). ...

February 25, 2010 · Florent Clairambault