In the land of emulation

Emulation is a tough topic to begin with. At least it has been to me when I first wanted to understand the ins and outs of it, until I could manage to make a good emulator for the Gameboy. It’s actually not so difficult to find information on the Internet but it becomes more challenging to get thorough articles about what I like to call “the whole picture”. In my opinion, this thread on stackoverflow had an answer that let you grasp quickly most of the issues you’ll have to overcome when writing an emulator. It does not dive much into the actual making of the program but it shows that the subject is not an easy one. Continue reading

Provide your Symfony bundle with a configuration using extensions

Part of the work when programming applications is to make the code generic and reusable when the functionality you are working on is common to multiple use cases. A good way of doing this is by providing some configuration options that the users of your code can fill in order to customize their experience of your feature. Even for you, if you are the only user, you’ll appreciate having just to change a configuration key to update the behavior of your application, instead of diving into the code that you wrote (long) before.

Continue reading

Emulating an LCD display with canvas

I have been working recently on a personal project to create a Gameboy emulator in JavaScript, in order to improve my knowledge of low-level computing principles (and for fun obviously !). One of my first tasks in this project was to reproduce in a canvas the display system as it is working on the original device : a 160*144 LCD screen with a 4 level gray scale.

Continue reading

Profile your PHP app performance with xDebug

Performance if one main key to getting and keeping website traffic over time, as it will impact SEO and visitors behavior with great strength. It’s actually quite easy to get distracted from the website you’re visiting when you have to wait a few seconds after any interaction you may do, so don’t underestimate the importance of speed in your code to keep your audience. Continue reading

What is a good developer ?

Being a developer is nowadays a way of life that seems to be easy when it comes to find a job. Most firms need informatics to be part of the business, like having their own website and internal softwares. They need developers to make them, so they have to hire or ask for another company’s services. In this sense, there is a lot of work and many job opportunities to be taken. On the other hand, learning the basics is kind of everybody’s capabilities. No special hardware is required except for the computer and Internet access. Still, it’s not that easy to get the job you want, or the salary you expect. Companies want developers so they can deliver the projects, but as in any other field, they also need them to be good in order to be efficient in satisfying the client (or themselves).

Continue reading

Using code reviews to improve code quality

Code quality is at the heart of informatics development, as it tells if you’re going to handle your next task with ease or not. Indeed, maintaining a code base is mostly about quality and flexibility. The cleaner you code, the easier it will be to make changes afterwards.

Quality measurement comes in various flavors, with different meanings associated to them. Coding standards, decoupling, commenting and testing are some of these and are easy to measure with standard tools. Even if there is probably no way to achieve perfect quality in a real-world case, we can always improve the way we work and find new ways to get better.

Continue reading

JavaScript n’est pas un sous-langage

Un langage d’intégrateur

J’ai souvent remarqué que pour beaucoup de développeurs PHP, le JavaScript, au même titre que HTML ou CSS, a tendance à être considéré comme un sous-langage, “un truc d’intégrateur” qui ne mérite pas qu’on s’y attarde. Il y a donc très peu de programmeurs qui ont des compétences qui tiennent la route sur ce langage (quoi que leur CV en dise). Continue reading

Par pitié, suivez les PSR

Au fil des projets auxquels j’ai participé depuis plusieurs années, je me suis rendu compte que chaque développeur prend régulièrement un style de code qui lui est propre s’il n’est pas cadré strictement. Étant donné que les langages permettent dans la grande majorité des cas d’écrire le code sans forme précise dès lors que l’on en suit la syntaxe, chacun choisi la mise en forme qui lui parait la plus juste aux yeux, mais ce n’est pas forcément la même que son voisin, loin de là.

Les PSR (PHP Standards Recommendation) sont un ensemble de règles établies afin d’harmoniser au mieux le code PHP produit par les différents développeurs, afin de garantir l’homogénéité et la lisibilité du code. Elles sont maintenant suivies par de nombreux développeurs, notamment dans les dépôt publics tels Github, puisque la cohérence du code est fondamentale pour faciliter la contribution des projets open source. On rencontre néanmoins encore en SSII ou chez des clients des projets qui ne suivent pas ces recommandations, que ce soit par méconnaissance ou par désintérêt des standards. Je vais donc essayer de vous convaincre de l’utilité de ces règles pour la qualité du code. Continue reading

Projet Ogre 3D

J’ai récemment commencé un projet de jeu avec Ogre 3D, ce que je n’avais pu faire avant par manque de temps principalement, mais aussi d’idées. Partant dans l’idée d’un jeu de Tower Defense (j’ai beaucoup aimé le jeu Gemcraft dans le domaine), je me suis cantonné à développer une base simple et jouable du jeu pour la faire évoluer par la suite en ajoutant plus de fonctionnalités. L’idée dans cette démarche est de pouvoir avancer par jalons de taille réduite pour éviter au maximum de me retrouver entre deux fonctionnalités dans une période de manque de temps (ou de baisse de motivation…). Continue reading

Cours en français sur Ogre 3D

Si je me m’oriente de plus en plus vers le développement web, je suis aussi un grand amateur du développement d’application C++, avec Qt par exemple. Parmi les bibliothèques que j’affectionne on retrouve Ogre 3D, moteur graphique gratuit et open source de plutôt bonne facture. Malheureusement, il souffre d’une communauté et de ressources francophones très limitées, il est donc délicat pour les moins expérimentés de découvrir ce moteur, contrairement à un Irrlicht qui bénéficie d’une plus forte visibilité, au moins en France. Continue reading