Publication

Chaque semaine, le lundi, retrouvez une petite actualité ou une petite astuce sur la programmation, Nuked-Klan et l'informatique en général.

dimanche 22 juillet 2012

Une documentation plus détaillé pour PlayOnLinux

Cet article est surtout pour les utilisateurs de linux. Parfois vous cherchez à faire fonctionner vos applications Windows sur votre Linux. Vous savez que c'est possible et facilement réalisable avec PlayOnLinux.

La seule chose c'est pour créer les scripts PlayOnLinux pour partager vos configuration. Quelque fois c'est une opération un peu obscure parce que toutes les fonctions de base ne sont pas forcément documenté sur le site officiel.

Et bien je vous propose de découvrir un petit script que j'ai conçu qui permet de générer une documentation à partir des commentaires laissé par les développeurs officiels de PlayOnLinux. Tout ce qu'il vous faut, c'est avoir Doxygen d'installé.

J'ai testé sur Ubuntu avec PlayOnLinux installé via le gestionnaire de package d'Ubuntu. Mais vous pouvez faire fonctionner ce script avec n'importe quelle version de Linux en changeant le répertoire d'installation de PlayOnLinux dans le fichier maker.sh.

En exécutant le fichier maker.sh (via bash), la documentation sera généré en HTML dans le dossier html et en PDF dans le dossier latex.

Télécharger le programme.

lundi 19 mars 2012

Destiny Quest - Power of Destiny

Bonjour,

Je vous présente un petit (enfin petit) RPG que j'ai conçu avec RPG Maker quand j'étais au lycée. Enfin j'ai bidouillé pas mal de choses dans le code et protégé contre la triche.

On était un petit groupe de trois personnes. Moi fort en programmation, un ami fort en game design et le dernier fort en infographie. Le tout ça fait un jeu.

Le jeu comporte 137 maps et est principalement divisé en trois niveaux. Chaque niveau respecte un plan design différent.

Niveau 1 : L'aventurier continue son aventure en avançant sans avoir la possibilité de revenir en arrière (style donjon).

Niveau 2 : L'aventure se fait en en allant chercher des quêtes auprès des PNJs (style Skyrim).

Niveau 3 : L'aventurier doit se rendre dans des sous-mondes et compléter toutes les aventures (style jeu de plateau).

Dans chaque niveau il y a un lieu secret contenant d'énormes bonus très utile (je sais où se trouvent les deux premiers par contre le game designer ne m'a jamais dit où se trouvait la dernière).

Le jeu est assez long et difficile. Personnellement je n'ai jamais terminé le jeu de ma vie. Le game designer qui a réalisé le jeu le fini en trois heures.

Vous voulez relever le défi ?

Téléchargement

Avec la vérification contre le piratage et la triche, le premier démarrage peut être un peu long (j'étais au lycée quand même).

lundi 12 mars 2012

SCM pour les nuls

Software Configuration Management, un terme anglais bien compliqué pour dire l'application qui va permettre d'assister le travail en équipe sur un même code source. Il en existe plusieurs dont les principaux sont :
  • SVN (subversion)
    Très rependu avec sa simplicité d'utilisation. Une branche c'est un dossier et la notion de merge n'est pas réellement développé. Un commit se fait aussi toujours en ligne.
  • Mercurial
    Moins rependu mais commence à s'implanter dans des grands projets (Firefox est sur un Mercurial par exemple), Mercurial permet des actions plus complexes, a un outil de merge et de résolution des conflits bien plus évolué que SVN.
  • GIT
    Pour moi Git est le plus complet, notamment développé par Linus Torvards le fondateur du kernel Linux pour le développement de Linux. Git a toutefois été publié en open source. Le petit défaut de Git c'est que c'est une application à l'origine pour linux et que du coup l'utilisation sur Windows est assez compliqué.
Nous avons nos SCM, alors maintenant comment va-t-on les gérer ?

lundi 5 mars 2012

L'alternative à MegaVideo et VideoBB

Megavidéo ferme. VideoBB efface entièrement sa base de donnée. Tous les sites de streaming ont peur... La fin du streaming est-elle définitivement arrivé ?

Et bien non, pas forcément. Il existe une alternative contre ces sites de steaming qui sont sans arrêt censurés. Vous pouvez tout simplement héberger vos vidéos vous même, sur votre propre site ! Et là ça sera bien plus compliqué pour vous empêcher de les diffuser.

Il existe des players vidéo flash gratuit que vous pouvez utiliser librement sur votre site afin de ne plus dépendre d'un autre site. En plus ces player vidéo sont souvent entièrement personnalisable et vous pouvez les mettre aux couleurs de votre site.

Les deux principaux player flash gratuit :
 Pour le reste il suffit de suivre les tutoriels (lien1, lien2).

lundi 27 février 2012

Updater / Intaller PHP GoogleCode

Voilà un petit script bien pratique et testé avec le Google Code de Nuked-Klan. Ce petit script PHP (enfin il y a 7 fichiers) va récupérer une version tagé de Google Code et vous l'install dans un dossier défini.

A l'origine ce script avait été fait pour permettre une installation et une mise à jour plus simple de Nuked-Klan, mais peut fonctionner avec n'importe quel projet hébergé par Google Code (et peut-être d'autres hébergeurs mais je ne les ai pas tous testés). Le script en ligne est configuré avec Nuked-Klan et va télécharger la dernière version de Nuked-Klan sur le dépot officiel.

Petit bémol par contre sur l'exemple utilisé : la team Nuked-Klan ne travaillant pas de façon très professionnelle, les versions ne sont pas correctement tagés et les banches sont mal défini sur le Mercurial (enfin je veux dire qu'il n'y a pas une seule branche). Du coup la gestion du mercurial étant mal réalisé, il est impossible de savoir quel commit correspond à la dernière RC. Le script va donc chercher le tag "tip" qui correspond à la toute dernière version du dépôt (donc la dernière version en cours de développement).

Mais si vous faites un projet web et que vous utilisez bien des branches de développement et des tags intelligents, vous pouvez alors créer un tag "curent" qui sera par exemple la dernière version stable publié et utiliser ce tag pour le téléchargement et la mise à jour via mon script. Le simple fait de changer le tag sur votre mercurial changera la version installé par ce script et vous n'aurez plus besoin de déployer de nouveau votre script.

lundi 20 février 2012

Votre code source publique ?

Voilà mon premier petit projet assez sympa que je souhaite vous présenter. C'est un fork du projet Sourceer qui permet d'afficher du code source d'un site PHP. J'y ai apporté quelques modifications et maintenant ce petit script est capable d'afficher du code python, C, C++ et shell en plus du code PHP !

Autre grande nouveauté par rapport au système d'origine, le Bourne Shell est reconnu (vous savez cette ligne commencent par #! dans les scripts). C'est notamment très efficace pour les fichiers configure des projets C.

Bien évidemment c'est un petit projet que je présente en premier et que je vais moi même utiliser pour présenter mon script et mes autres projets par la suite.

Lien pour le code source.

lundi 13 février 2012

Les auteurs de Nuked-Klan RC6

Voilà quelques graphiques sur la réalisation de la RC6. Alors effectivement il manque pas mal de devs. Je crois que l'outil que j'ai utilisé pour faire ces graphs ne prend que les quatre plus gros contributeurs.

Graphique représentant le nombre de commits (nombre d'envoi de mise à jour) au cours du temps.
Graphique représentant le nombre de lignes de code modifié.
  
Ces graphiques ont été réalisés grâce à hg activity directement depuis le dépot de source de nuked-klan. C'est un très bon outil pour faire des statistiques d'activité.

lundi 6 février 2012

La qualité NK

Sur l'affaire NK, en fait c'était moi l'idiot monumental. Comment j'ai pu vouloir attendre un code sans reproche de qualité professionnel d'une team composé exclusivement de développeurs amateurs (je ne suis même pas sûr qu'ils connaissaient les étapes de fonctionnement de zend engine)... En fait décrocher la lune aurait été plus facile...

Je viens tout juste de comprendre que le fait qu'ils aient réalisés deux releases candidates de la même version non compatibles entre elles c'est pas par choix ou par fainéantise, mais parce qu'ils n'ont pas les compétences en programmation pour trouver les 30 lignes à modifier afin que leur dernière version reste compatible avec les versions précédentes. Ce qui fait que cette compatibilité est "impossible" puisque qu'en réalité ils ne sont pas maitre de leur code.

Bref forcément j'avais des attentes trop élevés en considérant les développeurs de NK comme des développeurs professionnels. Mais effectivement comme les développeurs de NK me l'ont fait remarqué, la communauté de NK est habitué à du code non professionnel qu'il faut modifier dès qu'on veut ajouter un patch. Vouloir augmenter la qualité du service de NK et la qualité du code pouvait du coup être une erreur.