Archive pour la catégorie ‘COO / POO’

Report score on Game Center leaderboard

A quick one…

many of you – nay, many of us – shared this problem while developing a game on iOS : you’ve set up properly the Game Center Leaderboard for your application, you log in on your device’s GameCenter Sandbox, you try to report scores, the debugger chills, no problem at all, but no score shows up, the leaderboard remains empty as a geek’s fridge (except for some mustard, although nobody knows exactly why).

You’ve been told many things :

  • you need to cast your score as an int_64t, whatever that may be (that’s actually correct);
  • you need more than one account on your sandbox to have the scores displayed (that’s absolutely not mandatory);
  • you suck (well…some of you do).

I found the answer, but i won’t take credit for that, because it was completely unexpected. Lire la suite de cette entrée »

Pourquoi Qt est cool ?

J’ai découvert Qt en tant que développeur il y a un peu plus d’un an et je voudrais partager avec vous les meilleurs moments lorsqu’on le découvre, un peu comme si je voulais vous donner envie d’essayer vous aussi…
Lire la suite de cette entrée »

En finir avec le répertoire Word et attaquer la conception

Comme je vous l’avais promis, nous allons maintenant en finir avec le répertoire word/ et attaquer laconception (bon, ok, on va aussi parler des relations, mais pour le coup ça ira très vite). Il nous reste à parler des fichiers suivants : styles.xml, webSettings.xml et theme/theme1.xml, alors allons-y.

Lire la suite de cette entrée »

La gestion d’un RIB ou d’un IBAN en PHP

On va se sortir un peu la tête du dossier Word et docx le temps d’un petit article pour discuter d’un grand classique, la gestion d’un RIB, d’un IBAN, bref d’un compte en banque, en PHP. On va tout de suite dire de quoi il ne s’agit pas : il ne s’agit pas d’un bête CRUD dans lequel on enregistre les différents champs et on n’en fait rien, pas besoin d’un article pour ça. Non, ce qu’on va faire, c’est enregistrer les informations RIB ou IBAN, en validant ces infos dans la foulée (grâce à la célèbre clé RIB) et en nous conformant aux spécifications liées à ce format très standard et très normalisé (donc très courant) d’information. Au final, on aura un petit package facile à emporter avec nous sur d’autres projets.

Lire la suite de cette entrée »

Générer un document Word docx en PHP, comprendre le répertoire word

Bon, promis, c’est le dernier article purement verbeux du dossier avant d’attaquer le code à proprement parler et, tout autant promis, je ne vous ferai pas attendre des plombes avant le prochain numéro. On va aujourd’hui se consacrer au contenu du répertoire word/ qu’on trouve dans un fichier .docx, on va voir ce qui sert à quoi et, notamment, ce qu’on devra par la suite recomposer from scratch (ou non).

Lire la suite de cette entrée »

Générer un document word en PHP, pour de vrai

Nous voici arrivés au bout du chemin, au commencement…d’un nouveau chemin (et un long !). Nous avons vu comment faire une génération de documents Word à partir de modèles, nous avons vu comment insérer des images, nous pouvons de même créer des tableaux, souligner, mettre des entêtes, des pied-de-pages, etc. Il est maintenant grand temps d’avancer et de créer, pour de vrai, from scratch, des documents Word modernes, au format docx (donc notamment compatibles avec Apple Pages et OpenOffice Write).

Lire la suite de cette entrée »

Insérer une image dans un fichier Word généré

Nous y voilà ! Jusqu’à maintenant, on s’est bien amusé, mais on n’a pas encore fait grand chose… Du simple rechercher/remplacer, en fait; on a profité du fait que, avec l’ouverture des fichiers Word au format XML, le contenu des fichiers Word est devenu complètement lisible. Bon, ok, ce n’est pas tout à fait vrai, il a fallu jongler un peu avec les tableaux…

Mais là, vous allez voir ce que vous allez voir, nous allons maintenant insérer des images dans les fichiers Word, et j’aime autant vous dire d’emblée deux choses :

  1. ce n’est pas, a priori, une affaire simple;
  2. il est très facile de ne pas optimiser la chose…

Lire la suite de cette entrée »

Générer un document Word depuis un modèle

Le cadre est donné, nous allons maintenant voir comment il est possible de générer dynamiquement un document Word, en PHP, depuis un fichier modèle. Pour cet article, nous prendrons comme exemple un facture qu’il faut générer dynamiquement. Nous sommes tous d’accord pour dire que, dans l’absolu, une facture est le pire exemple possible…
En effet, qui souhaite envoyer à l’un de ses clients une facture en Word, format largement éditable et modifiable ?

Ceci étant, je peux d’un simple revers de la main anéantir cet argument en disant, par exemple, que je souhaite pouvoir ajouter un petit message personnalisé à chacun de mes clients.

Plus sérieusement, une facture est un document quasi-universellement reconnu, quel que soit le métier qu’on exerce, et cela constitue donc bien, selon moi, un exemple parfaitement pédagogique. Lire la suite de cette entrée »

Générer un document Word dynamiquement, en PHP

Le sujet est explicite, simple, connu et sérieux. Vous développez un outil de gestion pour un de vos clients, et ce dernier souhaite que votre application puisse générer des documents; en développeur moderne que vous êtes, vous êtes naturellement parti du principe que les modifications doivent s’opérer directement dans l’application, et que vous pouvez donc exporter tranquillement en PDF à l’aide d’une des nombreuses librairies disponibles pour ce faire (FPDF, HTML2PDF, HTML2PS, etc.).

Or, il s’avère que votre client veut pouvoir modifier ces documents en-dehors de l’application (le bougre); dans certains cas, vous pourrez le ramener facilement à la raison (pour la facturation : « Comment, mais vous ne vous rendez pas compte !! Une facture est une pièce comptable, et vous ne pourrez plus garantir l’intégrité de votre comptabilité s’il est possible de modifier une facture en dehors de l’application… »).

Dans d’autres cas, en revanche, votre partie est perdue d’avance, et le client veut pouvoir rajouter des mots doux à l’intention des destinataires, sans pour autant que cela figure dans l’application. Du coup, vous bataillez pour une sortie txt, rtf…rien n’y fait; votre client veut du MS Word, et puis c’est tout.

Bienvenue dans le monde désenchanté de la génération dynamique de fichiers word en PHP (ben oui, en .NET, ce serait évidemment trop facile).

Lire la suite de cette entrée »

Le CRUD, ou la brique élémentaire du codeur

Un bon architecte logiciel est, entre autres choses, un bon concepteur / développeur. Et à ce titre, il se doit, comme tout bon développeur, d’être une feignasse rigoureuse; en effet, un développeur doit toujours avoir en tête de requérir, pour ses réalisations, le plus faible niveau d’énergie possible. Cela se traduit généralement par le fameux adage selon lequel il est inutile de réinventer la roue.

Omettons quelques instants le fait que cet adage est peut-être responsable de notre incapacité historique à inventer mieux que la roue, et concentrons-nous un peu sur l’intérêt, pour un développeur, d’être aussi paresseux que rigoureux.

Lire la suite de cette entrée »