Devblog - Greg

Aller au contenu | Aller au menu | Aller à la recherche

lundi, juillet 5 2010

Char - Signed or Unsigned ?

Enigme du jour: le jeu codé marche sur PC, sur iPhone, sur le simulateur Bada, mais plante lamentablement (et sans infos de debug) sur téléphone Bada. Pourquoi ?

Lire la suite...

dimanche, juillet 4 2010

Java : fuites mémoires ??

Java, c'est bien, on ne peut pas avoir de fuites mémoires, puisqu'on a un Garbage Collector (GC)... En êtes-vous sûrs ?

Je pose cette question toute conne parce qu'au boulot, dans l'appli Java, on plante au bout d'un moment par manque de mémoire ^^ Alors ça peut paraitre bizarre dit comme ça, mais j'ai commencé à me documenter un peu sur le pourquoi du comment, et je trouve ça assez intéressant.

Lire la suite...

mercredi, juin 16 2010

Le retour du Taiwanais...

Je viens de me rappeler d'un autre bout de code "mystique" aperçu dans les sources ^^ Cette fois-ci ce n'était pas gênant car c'était dans une partie du code qu'on n'utilise pas, mais bon...

En gros, vous avez une classe tableau (ou liste ou je sais pas ce que c'était, mais bon, en gros des données quoi ^^). Avec une belle fonction pour ajouter des choses dedans (à la suite). Jusque là, rien de spécial me direz-vous... Sauf qu'à la fin de la fonction d'ajout, on trouve ça :

void MyClass::add(...) {
    ... // Add to array
    size++;

    // Seems to slow down and bug when there's to much data
   if (size > 230)
        size = 230;
}

On n'a jamais compris pourquoi la limite est à 230, mais bon ^^

Code au rabais ?

Un taiwanais, ça coute pas cher. Mais est-ce que c'est bon ?

Je ne vais pas faire de généralités, mais j'ai trouvé un truc pas mal dans le code tout à l'heure (copié/collé d'un truc "pro" fait à Taiwan...). En fait c'était un bout de code pour convertir un double en 2 ints (un pour la partie entière, un pour la partie décimale). Donc en gros, on obtient le code suivant :

int p, d;
double val = XXX;
p = (int)val;
val = val - p;
while(val < 1) val *= 10;
d = val;

Bizarrement de temps en temps ça bloque le programme... (on notera que la récupération de la partie décimale est aussi super bien pensée... genre 1.01 renvoie 1, tout comme 1.1 et 1.0001 (entre autres...) ^^)