Monday, November 3, 2008

Obama versus McCain

One point I don’t understand is why all the attention is focused on one guy (Obama or McCain).


A hundred year ago it was possible for the President to understand and study all the consequences of a law or decision he must make. Not anymore. The real persons that have the power are the “shadow men” - personal advisers, personal “friends”, high officials preparing reports, etc.

And as far as I could find the differences at this level between both camps is not very great - on some points one camp is better than the other and vice-versa.

Anyway.

What disturb me is that if McCain apply his economic plan it will be catastrophic for the budget. This time I am not sure that outside countries will continue to support the US economics by buying junk paper (aka reserve notes).

On the Obama side I really don’t like that he will be elected on lies. Nearly NONE of his promises can be implemented - the US don’t have the money anymore. Obama acknowledged it himself.

The argument that it is better to elect him as he will at least TRY to do as much of his promises as he can seems hollow for me. Making promises that you know can’t fulfill define in my dictionary a lier. And I don’t want a lier for president.

The only measure that must, can and that both promised to do it is to ameliorate the education system. If they don’t the USA will not survive in its present state in the next 20 years. Irrespective of which one is elected the result will be identical: total cleavage between have and have-not.

Granted. The best reason to elect Obama is the aura he has! The biggest asset of the USA is its capability to strife on enthusiasm and optimism - European are more inclined on pessimism (and if I am not mistaken Asian on pragmatism). Obama would give a welcome boost in USA image - but not much more IMO.

Monday, October 20, 2008

Managing TODOs

My todo lists where becoming unmanageable.
So I began to search for one that was:

  • Simple (no need to install an apache server)
  • Has "popup" reminders or at least sound for important ones
  • Always on when I launch the computer
  • Importing & exporting in file (for backups :D )
  • and has extended functionalities in case I need them :)
As I always have a FireFox on I searched for a plugin that would do the trick and found: ReminderFox add-on (http://reminderfox.mozdev.org )

Wow... how could I have lived without this.

The list of features is impressive. It can even do:
  • automatic synchronisation across multiple computers,
  • sync with PDA & SmartPhones or even online tools!
  • send emails to remind us to do something.
  • synchronise your datas via ftp to a remote location!
Now I just need to install it before I forget to do it...

Saturday, October 18, 2008

Linux: lequel choisir?


On vient de me demander: quel Linux choisir? quels faux pas à éviter?

Ma réponse devient tellement longue que je me suis dit autant la partager :)


Quel Linux choisir?

Tous d'abord Linux est en fait le nom du noyau (développé par Linus Torval) - la partie qui fait tourner tout le système. Ce qu'on installe en réalité c'est une distribution Linux. Cette dernière comprend bien-sûr le noyau Linux mais surtout tout le reste: une interface, des logicielles, des drivers, etc etc.

La difficulté c'est qu'il en a beaucoup:
http://en.wikipedia.org/wiki/Comparison_of_Linux_distributions

Certains sont même payants.

En gros il y a 4 catégories:

1 - Les plus robustes comme RedHat, SuSE, etc mais elles sont complexes à utiliser et maintenir pour le profane elles sont plutôt pour les entreprises. A oublier pour la plupart des utilisateurs normaux.

2 - Debian qui est LA référence absolue.

En fait beaucoup de distributions sont des dérivés ou de simples variations de Debian. Le problème est que comme c'est réellement le plus avancé le code n'est pas toujours stable (si on ne prends pas la version stable). Par contre si on prend la stable elle a le risque d'avoir des mois de "retard".

Bref. Bon choix si on a besoin de logiciels à jour mais techniquement plus difficile. Ce n'est probablement pas le bon choix pour un... non-informaticien/non-geek.


3 - Les distributions "complètes". Là il en a des tonnes et souvent c'est difficile de savoir laquelle est bien. Néanmoins je peux mentionner:

3a - Mandriva qui est maintenu par des français : http://www.mandriva.com/
Mais la boite est toujours en difficulté financier et cherche à faire de l'argent. Bref c'est pour les coqs gaulois.

3b - Ubuntu c'est la plus simple à utiliser. http://www.ubuntu.com/
Et celle qui à l'air de prendre de plus en plus d'importance. C'est un bon choix. L'installation est d'après ce que j'ai entendu pas aussi trivial que Ubuntu le prétends. Comme TOUT les distributions Linux si un problème apparait à l'installation cela devient très vite techniquement difficile.

Un autre avantage c'est un dérivé de Debian donc on peux installer "facilement" une version à jour de n'importe quel logiciel (ou même le noyau). Toutes les distributions peuvent installer de nouveaux logiciels mais le faire depuis Debian est le plus optimal à mon avis.

Ubuntu est un bon choix.


4 - Les "mini" Linux

Ils sont en fait des distributions dont on a enlevé le superflu. Pour ne laisser que les logiciels les plus utiles. P.ex dans les distributions "complétées" tu peux avoir une centaine d'éditeur de textes, des dizaines de messagerie, etc. Ces "mini" Linux font le travail de ne laisser que quelques versions vraiment à jour et utilisables. C'est une solution.

D'autant plus qu'elle sont souvent simple et prennent peu de place. Certains peuvent même être tellement réduit que tu peux l'installer sur une clef USB et pour l'utiliser tu mets simplement la clef et... voilà pas besoin d'autres installation! Évidemment c'est plus lent de travailler depuis la clef mais tu peux changer d'ordinateur sans problème.

Le plus courant est d'utiliser un CD qu'on appelle "CD Live" qu'on a simplement à mettre dans le lecteur et sans installation on tourne sous Linux !

Bref. Pas besoin d'installation si on le souhaite.

Cela dit il faut quand même créer une partition sur un disque dur pour pouvoir stocker son travail soit utiliser un DVD/CD reinscriptible.

Sinon dans ces mini Linux mon choix se porte sur:

4a - Knoppix ou Gnoppix les deux ont la particularité d'être petit.


http://en.wikipedia.org/wiki/Knoppix
http://en.wikipedia.org/wiki/Gnoppix

La différence principale étant l'interface de travail (l'équivalent de Windows):


C'est vraiment personnel lequel est le meilleure... ils ont les deux le désavantage d'être gros (avec un petit ordinateur d'il y a 10 ans c'est un problème).
Je préfère les petites interfaces comme Fluxbox, twm, IceW ou mon préféré Xfce. Elles ne comportent pas toutes les fonctionnalités des deux grosses dont je n'ai pas besoin .

Notez que Ubuntu offre une version pour Gnome (Ubuntu), KDE (Kubuntu) ou Xfce (Xubuntu).


En cherchant les liens je suis tombé sur:

4b - Musix C'est une distribution spécialisée pour les ....musiciens et graphistes 3d!


On dirait qu'il rassemble tout ce qui faut pour la musique et ordonne le tout de façon logique (pour des musiciens). Le seule problème est la documentation qui est surtout en espagnol.. mais il y une communauté anglaise.


Voilà. A vous de choisir.

En fait il y deux choix: 1,2 ou 3 = installation ou 4 = utiliser un "cd live" pour se faire d'abord une idée de Linux.


A noter deux projets qui tente de faire ressembler l'interface aussi proche que possible de Windows XP pour permettre aux futur-ex-Windows de passer à Linux:



Quels faux pas à éviter?

Coté pratique maintenant. Les tout premiers pas.

Il y a deux cas:

1 - Installer Linux sur une nouvelle machine.

C'est le plus simple il suffit de lancer l'installation et de suivre les étapes.
Ce n'est pas tellement un problème... quand tout vas bien. Si un problème arrive pendant l'installation c'est souvent insurmontable pour un néophyte. Je défie un néophyte de régler un problème avec X windows quand le clavier est mystérieusement transformé en un clavier US.

Mais il y une étape à ne pas manquer: c'est le choix du formatage. Pour la plupart je recommande d'utiliser un formatage qui soit compatible avec le système Windows. Cela permet d'accéder via un réseau local au répertoire depuis une machine Windows.

2 - Installer Linux et Windows sur la même machine.

Là c'est plus délicat. Je n'ai qu'un conseille: lire la documentation!
Heureusement des bénévoles ont traduit en français les deux documents qu'il faut lire à mon avis.


Le site (mal organisé) http://traduc.org/ contient une mine de documentation sur tous les sujets (MIDI, USB, etc etc).

Le lien suivant comprend la liste des guides traduit:
http://www.traduc.org/docs/HOWTO/nouvel_index.php?global.1

Le dernier permet de savoir si on a un problème pendant l'installation.

Cela dit ce ne sont que des traductions. Le site d'origine en anglais comprend beaucoup plus d'informations :


Voilà j'espère que cela vous à permis de vous faire une meilleure idée des premiers pas à effectuer.

Saturday, October 4, 2008

An Open Source Legal Breakthrough

Good day for the OpenSource movement : 'An appeals court has erased most of the doubt around Open Source licensing, permanently, in a decision that was extremely favorable toward projects like GNU, Creative Commons, Wikipedia, and Linux.'

Here is the Slashdot story and the original court content can be found at JMRI Defense: Court Papers (http://jmri.sourceforge.net/k/docket/index.shtml).

This is only in the US but as they are the most litigious for frivolous reason this should protect most of the open source community :D

What is frightening is that Katzer patented and started sending invoices to Jacobsen for work that Jacobsen did! And it took a whole court procedure to defend Jacobsen...

It should be obvious in this case that Katzer should be condemned for extortion!

However the most pertinent comment in my opinion is the following:

"This was an appeals court decision. The appeals court doesn't decide all those things. The legal issue was whether the license was enforceable under copyright law, or whether it was a "mere covenant," meaning that Jacobsen would get nothing because he was not making money off the software. The lower court had ruled that it was a mere covenant. On appeal, the Federal Circuit vacated that ruling, which means it now goes back to the trial court to apply the "correct" law as announced by the Fed. Cir.

Two takeaway lessons, one for Big Business, and one for developers. For Big Business, you can't infringe on the copyrights of open source developers with impunity. For developers, even if you are doing open source software, REGISTER YOUR COPYRIGHT. If you register your copyright up front, you can get statutory damages and attorney fees if some idiot from Big Business decides to try this kind of stunt. Those damages are almost always more than the "actual" damages you'll get for software that you give away for free (as in beer). If you wait until after somebody infringes before you file your copyright, it's too late. And registering is cheap and easy [copyright.gov]. In many cases, you don't even need to get an attorney involved (although if you need a patent or trademark or help with a copyright, I know this really great IP attorney who also posts on Slashdot and is clued in on open source. [jw.com]

And despite the stuff above that may look like 'advice" to the untrained eye, this post absolutely, positively is NOT legal advice."

Fortunately for OGE we have a dual license and we intent to get payments for the commercial license :)

More depressing is this following comment implying that this "Breakthrough" is very limited in scope.


Thursday, September 4, 2008

Dystopia Studios

Wow big day.

I created my company: www.dystopiastudios.com

What can I say?
It seems a bit surealistic that I did it after the ages I dream of it.

I think I deserve my last calm evening for the next few years :D

Btw I trademarked the name "dystopia studios" :D

Now I must think about a nice logo.

Thursday, August 21, 2008

Zfone makes your VoIP phone secure

Interesting project.

I heard about it via an article in "The Economist" that Skype is already so encrypted that spy agencies have difficulties with it (only the NSA has the means to crack it). And that Zfone would be even more difficult to crack.

http://zfoneproject.com/prod_zfone.html

Zfone is a new secure VoIP phone software product which lets you make secure encrypted phone calls over the Internet.
...
Windows XP, Vista, Mac OS X, or Linux. Zfone runs on Windows XP and Vista, both 32-bit and 64-bit versions. Zfone will encrypt audio and video for Apple iChat calls on Mac OS X. Zfone has been tested with these VoIP clients: X-Lite, Gizmo, XMeeting, Google Talk VoIP client, Yahoo Messenger's VoIP client (for audio), and SJphone. It does not work with Skype.


I wonder if we could support it at some point in OGE via the sdk:
http://zfoneproject.com/prod_sdk.html

It had a dual license (GPL & commercial) but it seems we could discuss with them as we are an open-source project and it would anyway be a plugin: http://zfoneproject.com/lic_policy.html

Friday, June 27, 2008

Jamendo - Free music

Jamendo for those who don't know this site has this simple motto:


On Jamendo artists allow anyone to download and share their music. It's free, legal and unlimited.

Try it there are some great musics.
I really wonder how an artist is now able to make money from its profession...

Saturday, June 14, 2008

Game: Stars Wars - The Force Unleashed

This video of the making of "Game: Stars Wars - The Force Unleashed" shows that the major challenge of this game was to integrate three middleware engine: Havoc + Euphoria + DMM (Digital Molecular Matter)

Plus d'infos sur ce film

Check the second video on this french article:
http://www.allocine.fr/article/fichearticle_gen_carticle=18423291.html

The first one is the new movie based between episode 3 and 4.
The fourth being the first of the old StarWars.
I have a mixed feelings about the quality of the movie.
Shouldn't they redo it using the game engine? The image quality would be far superior!

Oge needs some work to do to catch Stars Wars :)

Tuesday, April 29, 2008

Why reinvent the wheel again and again?

Reading this post "Get that job at Google" on Stevey blog's made me wonder why we always reinvent the wheel in the software industry.

At one point he says the interviewers usually ask to implement a well known basic algorithm (tree, sorting, ...). Why?

Do they expect that rooting learning existing algorithms makes a good programmer?


Said differently: Do you really ask a Chief how to build pans, knifes or an oven? Wouldn't it be better to test if he is able to select appropriate ingredients or use bad ingredients to make tasty dishes?

As most of us I studied how sorting, hashtable, trees and other statistics methods where implemented. And I quickly realised that only very few mathematical genius would be able to ameliorate them hence I forgot how to code them as soon as possible to leave place for useful stuff.

Such as which of the available implementations (Boost::graph, Poco, std,...) is the best in a cross-platform implementation, which one is thread-safe, which one is fastest, etc.

Anyway very informative post.
I wonder how much time he uses to write those rants :)

PS: If I made interviews one of my question would be to use so-called "advanced" statistical methods to prove a relationship among data then change the chosen method parameters to disprove it!

Cpu usage going to 100% when pc idle


Since months each time I let my pc idle it would go in idle mode. Nothing special here.

However some process was doing something in the background when my pc should have been idle. This didn't bothered me because each time I used my pc again this process would stop. Hence I thought it was a "normal" Windows process doing some small maintenance.

Recently I began to have doubts.

To pinpoint the problem I used the excellent free must-have tool ProcessExplorer. (At least grab it before Macro$ begins to charge for it ;)

After lauching ProcessExplorer I waited until my pc got idle and this mysterious process began (= gone taking a cup of coffee). When I cam back it was running so I looked at ProcessExplorer and saw that it was a SVCHOST.exe running at 80-100% cpu!! Ouch!

That's much badder than I thought but strangely the pc didn't seem to heat so much - hence the fan didn't turn like mad and the reason it didn't realise the problem sooner.

ProcessExplorer told me numerous services are associated with this SVCHOST and my suspicion quickly turned to the "System Restore Service".

Some browsing helped me found this trick which indicate that some infinite loop was happening:

http://cboard.cprogramming.com/showthread.php?t=81209

  • Open a dos shell window. By clicking “Start/Run”, type in “cmd.exe” and hit enter.
  • Stop the Windows Management service: "net stop winmgmt"
  • Delete the Repository folder: "rd /s /q c:\windows\system32\wbem\Repository\"
  • Restart the Windows Management service: "net start winmgmt"
  • Recompile all the "Managed Object Format" files (*.mof,*.mfl):
  • a - "cd /d c:\windows\system32\wbem\"
  • b - "for %i in (*.mof,*.mfl) do Mofcomp.exe %i"
  • Verify the folder "c:\windows\system32\wbem\Repository\" has been recreated. If not, restore your system and try again or look for another solution. :-)

This trick worked for me.
I should have done this a long time ago.


I didn't need to try this other trick: "Problem with High CPU Usage with SVCHost.EXE : cpu, usage, high".

If none work for you you will probably need to use ProcessExplorer and stop one-by-one the programs linked to the SVCHOST.exe to find the culprit and decide either to leave it stopped or correct it by reinstalling it.

Also don't forget to update you anti-virus, spyware etc as it could be a corrupt service.

Good luck

Tuesday, April 8, 2008

Open source 3D printer !

Rahh... this is such a cool project I can't resist making some publicity for it.

RepRap is short for Replicating Rapid-prototyper. It is the practical self-copying 3D printer shown on the right - a self-replicating machine.

I hope I find time to build it with my children :D

Friday, March 28, 2008

A Legal Issues Primer for Open Source and Free Software Projects

For those of us who are not lawyer here are two nice primer useful for open source projects:

In the last don't forget the point 7 about "Contributor License Agreement".

Saturday, March 1, 2008

My first mesh... and a comment from my son

Half a day to create my first mesh it should be a wagon... and I have no idea if this is a good performance or not :D

So that I can remember how I did it, here is a short description of the steps needed to create this image with Ogre, Blender and visualise the result in OGEd:

  1. Launch Blender and try to use it.
  2. Search online Blender tutorial to understand the most basic commands: Blender User Interface Tutorial, Modelling A Cube, Selecting Meshes and Using Textures.
  3. Struggling like hell to select faces, rescaling, subdividing to create more faces, destroy some faces to create doors and windows, ...
  4. Repeating step 3 several times.
  5. Reread 'Using Textures' to understand how to apply textures.
  6. Save and repeat steps 3-5 until you get this wagon. Forget about making a complex multiple windows wagons.
  7. Using the steps on "Blender to Ogre" to determine how to export the mesh:
    1. Copy the Pyhton script from ogrenew/tools/BlenderExport to the blender folder
    2. Read the documentation in BlenderExport/ogrehelp/ogremeshesexporter.html
    3. Realise that Blender must have a version newer than 2.44 (mine is 2.43)
    4. Download Blender, reinstall it, reload the mesh.
    5. Realise that I didn't compile OgreXmlConverter (/ogrenew/tools/XMLConverter)
    6. Install OgreXmlConverter and set up the mesh exporter correctly.
    7. I said correctly.
    8. .... no mesh appear in the exporter.... lose time to understand that you need to select the object and click Update if you want the mesh to be exported.
  8. (Repeat from step 5 because there was no textures on some faces...)
  9. At last the export works and here are:
    1. MyMesh.mesh.xml and
    2. MyMesh.material
  10. Now you must convert it to a .mesh so that Ogre can understand it. So you search the doc to find that you need XMLConverter again.
  11. In a console you type "OgreXmlConverter MyMesh.mesh.xml" and you get MyMesh.xml
  12. You load the mesh, material and texture in a mesh viewer (OGEd for example).
  13. .... and you see that the mesh is turned 90 degree on its x axis.... Bags!
  14. You find that the ogre addons MeshMagick can rotate a mesh.
  15. You try to compile it and stumbles on a compile error...
    1. You check the code and see that this can't compile.
    2. So you make a quick fix (who needs to convert mesh skeleton anyway... humpf... I will need to compile this correctly at one time).
    3. You type a bug report about this skeleton bug.
  16. You rotate it... in the wrong direction... redo it.
  17. Reload all in OGEd and... yes it shows correctly.
That was easy - I will watch a movie now.

Comment from my son (3.5 years old) "Dady doesn't even know how to make wheels!". I will disinherit him...

Tuesday, February 12, 2008

OGEd - Open Game Editor (aka Ogre/OGE Editor) open sourced!

OGEd is now open-source :)

OGEd stands for Open Game Editor but at this stage it is more an Ogre Resource Editor and will evolve into an OGE Editor before becoming a true versatile Open Game Editor :D

You can get it on the OGE sourceforge as code or binary.

Of course there are still lots to do and any help would be great.
If you are interested you can look on the oge wiki for more information like todo list, planned features, how to compile, etc.
http://www.opengameengine.org/wiki

Originally I took inspiration from the Ogre project name "Material Editor" and 5 files that allowed Ogre script edition were really interesting.
So I proposed to the Ogre owner -Sinbad- that we exchange some code so that both could benefit - I thought it was a win-win proposal. I was wrong.

His answer disappointed me. As I want to be able to distribute OGEd under our OGE unlimited license -which I can't if I must keep Ogre license and copyright- I was obliged to remove ANY code that could be interpreted as being originally from the Material Editor :(

This attitude is bit to near to the "SCO versus Linux" for my taste. This is not how I idealise the open source movement. For me if someone is willing to exchange worthwhile code I am more than happy to give mine. Saving time is the most important thing in live! I am not immortal! In my opinion copyrights and licenses are primarily a way to protect my work from people patenting it and then trying to stop me using my code or even making me pay for the work I did! I use them to protect me against crooks and felons.


This lead me to read some legal texts about using existing code without infringing copyright & license. And I found this legal review from the ReactOS project: http://www.reactos.org/en/dev_legalreview.html (ReactOS is a nice project btw I hope it will reach the stage where VC runs on it).

This point is fairly obvious but IMO hard to achieve as C++ programmers are increasingly using the same coding style:

Developers are encouraged to NOT attempt to copy the coding style of non-free code. While coding style may not covered by copyright, a similar or identical coding style to a piece of non-free code casts suspicion on the new code.


This experience made me realise that the "Tainted Developers" theory is nearly unavoidable and I was not able to explain my position to Sinbad. So to avoid again a "SCO versus linux" issue I will avoid reading ANY copyrighted code from now on.

"Tainted Developers". There is a legal theory that is occasionally cited in the context of producing a work-alike implementation of a published copyrighted work. There is concern that, if the creators of the new work have seen the original work, they will be unable to create a similar work without infringing the copyright of the original. It is the position of the Project that this theory is invalid for a number of reasons. As a general rule, there is no reason that a developer who has seen non-free code cannot write logically similar code for ReactOS.

What a lose of time and effort - I hate to reinvent the wheel.

Wednesday, January 9, 2008

Shadows added


New screenshot of my engine where shadows were added.

Shadows techniques are cpu-expensive I will need to find how to limit them and make them lod dependent.

Any way it is progressing well.