05 fév. 2013

XNA, c'est fini

small_xna_logo.png

Promit Roy, via son blog, nous délivre une information importante : XNA, en tant que technologie, va être arrêtée. Ce qui n'est pas vraiment une surprise, étant donné que XNA n'a pas évolué depuis près de deux ans - et ce, malgré la sortie de Windows Phone 8 et de Windows 8.

Lire la suite...

04 fév. 2013

Programmation concurrente : introduction

threads

Sur ce blog, on a déjà parlé des fonctions lambda, des classes d'énumérateurs, des variadic templates et de pas mal d'autres choses concernant la dernière norme C++11. Il nous reste pourtant encore pas mal de sujets importants à aborder - entre les expressions constantes, les rvalue reference, la notion de sémantique de mouvement... les sujets ne manquent pas. Et parmi ces sujets d'importance, il nous en reste un qui, de part son large domaine d'application, va nécessiter plusieurs billets : il s'agit de la programmation concurrente.

Avant d'expliquer les threads et leur gestion dans le langage et dans la librairie standard C++11, j'ai souhaiter faire un petit détour afin d'expliquer ce qu'est réellement un thread et comment ceux-ci sont implémentés dans les systèmes d'exploitation modernes. Cet article revient donc sur l'historique des threads et explique certains des concepts sous-jacents.

Lire la suite...

24 janv. 2013

Démarrer avec Android : les bases et le NDK

Logo Android

Une fois n'est pas coutume, je vais vous présenter ici non pas un article de fond, mais une sorte de tutoriel un peu plus détaillé que la moyenne. Le sujet du jour, c'est le développement d'une application Android. Pas n'importe quelle application cependant, puisqu'il s'agit de se préparer à l'arrivée ce cette console dont tout le monde parle - la dénommée OUYA.

Bien évidemment, étant donné la nature de l’exercice et la complexité du sujet, je ne peux pas me permettre d'aller au fond des choses. Si le sujet vous plait (et je le verrais d'après vos commentaires, n'est-ce pas ?) alors j'essaierais d'aborder encore la programmation Android dans un billet ultérieur. Je ne vous promet rien - à vous de me convaincre ?

Avant de commencer, un dernier mot : il est évident que pour comprendre ce tutoriel, vous avez besoin de connaître (un peu) Java, XML et C++. La connaissance de l'IDE eclipse est un plus intéressant, et il est tout de même préférable de connaître un peu Android du point de vue utilisateur.

Lire la suite...

12 janv. 2013

Open source drivers for SoC GPUs

More and more ARM SoCs are targetted by OSS developpers in order to free their GPU from proprietary blobs. While the current free drivers are not fully functionnal, their development pace is quit fast and most of them should already be labeled "worth a look".

Let's dive in this world for a short while...

Lire la suite...

11 janv. 2013

J'ai envie de dire "lol"

Mais je ne le ferais pas. Principalement parce que ça ne fait pas sérieux.

Bon. Je ne sais pas si c'est un résultat lié à l'excellence des mes articles (j'ai entendu quelqu'un tousser là, non ?), mais le blog est victime d'une recrudescence de spam comme jamais avant. Et ça me fait rire, parce qu'environ 0.01% arrive à passer entre les mailles des différents système d'antispam installés.

Lire la suite...

05 janv. 2013

Micro-optimisations : booléens contre ensemble de drapeaux

Il y a quelque temps, un utilisateur de mon blog (alpha_one_x86) a proposé quelques sujets qui avait pour lui un intérêt. Certains sujets traitant de micro-optimisations - et étant moi même intéressé par ce type d'optimisation - j'ai décide de consacrer un premier billet à quelques petites explications touchant non pas au comment, mais au pourquoi.

Si vous avez des questions liées à ce type de sujet (ou si vous souhaitez que je discute d'autres micro-optimisations), n'ayez pas peur de me le faire savoir en postant un commentaire ici ou là (voir en me contactant).

Je vais quand même insister sur un point précis : je parle ici de micro-optimisation, c'est à dire d'optimisations dont l'impact sur les performances est très souvent négligeable. Il arrive de temps en temps qu'une telle optimisation offre un réel avantage, mais ces cas sont rares. Avant de mettre en pratique un des cas présenté ci-dessous, il convient de mesurer l'impact sur votre code et de peser le pour et le contre, notamment en terme de rapport gain/maintenance et gain/temps de développement.

Ne venez pas dire que je ne vous ai pas prévenu :)

Lire la suite...

03 janv. 2013

O-DROID U2 : la bête de course

Logo O-DROID

J'en ai parlé très rapidement dans le billet précédent : j'ai reçu un exemplaire de l'O-DROID U2, une machine taillée pour rivaliser avec les PC d'entrée de gamme - le tout dans un cube de 5cm de coté.

Lire la suite...

02 janv. 2013

Le monde n'est pas mort (mais 2012 si, par contre)

Une année s'achève et (reconnaissons-le, c'est très lié à la nature intrinsèque de notre manière de décompter le temps) une nouvelle commence. Il est d'usage que je vous livre maintenant quelques statistiques sur la fréquentation de ce blog - parce que, sachez-le, vous n'êtes pas le seul à lire ces pages :)

Lire la suite...

20 sept. 2012

OUYA : le projet est toujours sur les rails

Logo OUYA

Ca peut paraître une évidence tant la presse spécialisée en parle, mais au vu des autres projets KickStarter qui s'évanouissent dans la nature, il est agréable d'en avoir la confirmation : le projet OUYA avance, et il avance bien. Les versions "développeur" des consoles[1] sont censées être envoyées d'ici la fin novembre.

Petit tour d'horizon de la bête.

Note

[1] rappel : toute version est une version développeur, puisque la console peut être "rootée" sans perdre la garantie

Lire la suite...

04 sept. 2012

Modification du générateur de parseurs Coco/R

Cet article est une mise à jour d'un ancien article qui avait disparu de ce blog pour de mystérieuses raisons. Avant sa disparition, il est resté en lignes environ un mois, donc il est probable que peu d'entre vous ait eu le temps de le lire. Vous pouvez maintenant en profiter.

Coco/R, développé par Hanspeter Mössenböck, Markus Löberbauer et Albrecht Wöß de l'Université de Linz est un générateur de compilateurs LL(1). Il permet, avec un seul fichier, de créer un couple scanner/parser intégrable en C++, C#, Java et bien d'autres langages encore. L'intérêt du compilateur généré est qu'il est complètement orienté objet : il ne s'agit pas d'un code procédural qu'il faut tenter d'encapsuler au mieux, comme celui qui pourrait être généré par flex+bison. Le code source généré souffre de quelques problèmes - mais au regard du service rendu, on laissera ceux-ci de coté pour l'instant.

Cet article traite d'une modification que j'ai du effectuer dans le code du générateur lui-même, afin de traiter un cas qui n'était pas prévu par les développeurs. Je me suis basé sur la version C++ datée de Novembre 2010 (la dernière version du code source est disponible sur la page web de Coco/R).

Lire la suite...

- page 2 de 22 -