test

CREATE FUNCTION dbo.F_MULTIPARSE(@PHRASE VARCHAR(ma
x),
@PARSEC VARCHAR(25
6))
RETURNS @T TABLE (POS INT,
MOT VARCHAR(128),
CHR CHAR(1))
AS
/**************************************************
****************************
* Fonction table de découpage à césure multiple
*
***************************************************
****************************
* Fred. Brouard - http://sqlpro.developpez.com - ww
w.sqlspot.com - 2009-04-17 *
***************************************************
***************************/
BEGIN
-- effets de bord
IF @PHRASE IS NULL RETURN;
IF COALESCE(@PARSEC, '') = ''
BEGIN
INSERT INTO @T VALUES (1, @PHRASE, NULL);
RETURN;
END;
-- variables locales
DECLARE @C CHAR(1), -- lettre analysée
@MOT VARCHAR(128), -- mot découpé
@I INT, -- boucle sur phrase
@J INT, -- boucle sur caractère
de césure
@JMIN INT, -- premier caractère de
césure dans phrase
@IC INT,
@M INT;
SELECT @I = 1, @M = 1, @MOT = '';
-- boucle sur phrase
WHILE @I <= LEN(@PHRASE)
BEGIN
-- on lit le premier caractère de la phrase
SET @C = SUBSTRING(@PHRASE, @I, 1);
-- on regarde si c'est un caractère de césure
SET @IC = CHARINDEX(@C, @PARSEC);
-- si c'est un caractère de césure...
IF @IC > 0
BEGIN
-- si le mot n'est pas vide
IF @MOT <> ''
BEGIN
-- on insère le mot
INSERT INTO @T VALUES (@M, LTRIM(@MOT), @C
);
-- on incrémente le compteur de mot et on
réinitialise le mot
SELECT @M = @M + 1, @MOT = '';
END;
END;
ELSE
SET @MOT = @MOT + @C;
SET @I = @I + 1;
END;
-- insertion du dernier mot
IF @MOT <> ''
INSERT INTO @T VALUES (@M, @MOT, NULL);
RETURN
END
GO

C++ Builder 2006 devient réalité

Il y a 10 mois, le 15 décembre 2004, Borland, par une lettre ouverte, mettait fin à des rumeurs persistantes de l’abandon du produit C++ Builder, et promettait que le produit était toujours en développement.

Maintenant, c’est chose faite : C++ Builder 2006 est officiellement annoncé et fera partie du Borland Developer Studio (original comme nom), qui permettra le développement en C, C++, C#, Delphi Win32 et Delphi .NET. Il est aussi confirmé que C++ Builder 2006 continue à utiliser la VCL.

C’est une nouvelle confirmation que le développement Win32 a encore de l’avenir face à .NET.

Il est à noter qu’il n’y a pas encore de version d’évaluation disponible en téléchargement.

Qt 4 pour Windows sera GPL

Vous connaissez peut-être Qt ? Si ce n’est pas le cas, Qt (édité par TrollTech) est un excellent framework conçu à l’origine en C++ pour faire des applications GUI portables sur une multitude de systèmes d’exploitation (Windows, Unix, Linux, Mac OS, etc…). En particulier, son architecture objet est de très grande qualité.

Largement adopté sous Linux pour des applications libres, avec notamment l’interface KDE, Qt n’était pourtant pas choisi pour faire une application libre portable car Qt exigeait une licence pour fonctionner sous Windows, même si l’application était libre.

Mais voilà maintenant l’excellente nouvelle : TrollTech annonce que la prochaine version 4 sera disponible en version GPL pour Windows. Ce qui veut dire que toute application GPL écrite en Qt sera portable sous Linux et Windows (entre autres).

Attention : toute appli non GPL (commerciale, et même freeware sans sources) exigera toujours une licence pour Qt, quelque soit l’OS.

Le site officiel de Qt
L’annonce officielle

Conception d’un moteur 3D en C++ : 4ème partie

Laurent Gomila, alias Loulou24 sur les forums, met en ligne cette nouvelle partie de son grand article sur la conception d’un moteur 3D.

Le but de cette série d’articles est de réaliser un moteur 3d en C++ qui soit indépendant des APIs (il est conçu pour OpenGL et DirectX mais s’adapte très facilement) tout en utilisant toute la puissance du C++ pour faire du code propre et efficace.

En effet, un intérêt particulier de ces articles est le gros travail en profondeur fait sur le framework. Les parties 1 et 4 notamment présentent des techniques pour résoudre des problèmes courants de programmation (allocation mémoire, plug-in, etc…) de manière simple et élégante en utilisant les templates. Même si vous n’êtes pas intéressé directement par la création de votre propre moteur 3D, la lecture de ces parties-là donnent réellement envie de réfléchir aux solutions qui sont proposées, et de les adopter dans vos propres projets !

Beaucoup de développeurs C++ considèrent les templates comme une abberration et évitent autant que possible leur utilisation, mais ici leur puissance est montrée de manière incontestable, et vous ne les regarderez plus jamais du même oeil :)

Si vous êtes intéressés un tant soit peu par la programmation propre en C++, un conseil : plongez-vous dans la lecture de cette oeuvre.

Borland n’abandonne pas C++ Builder

Après avoir longtemps laissé planer le doute sur l’avenir de ce produit, Borland confirme officiellement par une lettre ouverte que C++ Builder va continuer à être développé (toujours en version VCL), et qu’il sera intégré aux prochaines versions de Delphi.

Tiens un défaut : les url avec une virgule ne fonctionnent pas correctement à l’intérieur du blog ! Bon cliquez sur le titre si vous voulez voir la lettre ouverte de Borland. :)

Linux vs *BSD

Beaucoup de personnes s’imaginent que dans le monde des PCs, il n’y a que deux systèmes d’exploitations rivaux : Windows d’une part, et Linux d’autre part.

Il ne faut pas cependant oublier que le choix d’un Unix libre et gratuit ne se limite pas aux différentes distributions GNU/Linux : il y a aussi les trois distributions dérivées de BSD : FreeBSD, NetBSD et OpenBSD, qui tentent de se faire une place au soleil.

Les fanas des BSD font souvent valoir que seul les systèmes BSDs sont de vrais Unix, que le code qui date de plus de 20 ans est pérénisé, que les BSD sont plus fiables, plus sécurisés… et plus performants. En gros, certains tentent de nous faire avaler que GNU/Linux n’est qu’une pâle copie d’un vrai Unix, et donc de dévaloriser cette petite merveille technologique qu’est le noyau Linux.

Il est temps de rendre justice, de remplacer les arguments foireux par des chiffres et des beaux graphes. Voici un excellent comparatif datant de fin 2003, qui compare les performances systèmes (système de fichiers, mémoire et couche réseau) des différents noyaux :

  • Linux 2.4 (version pérénisée)
  • Linux 2.6 (version stable, même si elle est encore trop jeune pour certains)
  • FreeBSD 5.1 (considéré comme le plus facile et le plus performant des BSD)
  • NetBSD 1.6.1 (considéré comme étant le plus portable – attention, une version 2.0 est sortie dernièrement, ça peut avoir changé la donne depuis)
  • OpenBSD 3.4 (considéré comme étant la version la plus sécurisée des Unix libres)

Après le blabla, le lien : http://bulk.fefe.de/scalability/
(anglophobes et non-techniciens s’abstenir)

Si vous n’avez pas le courage de lire cet article jusqu’au bout (bien que vous manquiez quelque chose), on y apprend que Linux 2.6 est le grand vainqueur : il montre dans la majorité des tests des temps de réponses constant « O(1) » quelque soit le nombre de demandes. FreeBSD 5.x et NetBSD sont derrières, avec néanmoins d’excellents résultats, tandis qu’OpenBSD est bon dernier : comme quoi, conserver les vieilles versions pour des raisons de sécurité se paye cher au niveau des performances.

Longue vie à Linux donc, mais aussi aux BSDs, car il est bien d’avoir le choix, et cette concurrence ne peut qu’être saine, du moment que l’utilisateur s’y retrouve.

PS: Non, les performances de Windows ne sont pas testées. Dommage, diront peut-être certains à la recherche d’un beau troll ;)