Tutoriel: Gestion de projet informatique avec Subversion et Trac

Icon for post #70

Le concept de “gestionnaire de versions” m’a toujours attiré, mais en dépit de ma bonne volonté, je n’ai jamais été capable de mettre en place (et surtout de configurer) mon propre serveur svn couplé avec l’outil Trac. Depuis quelques temps, je cherchais donc une plateforme d’hébergement de projets gratuite, afin de me familiariser avec ces outils. Hé bien j’ai finalement découvert Assembla hier soir, service qui vous propose d’héberger pour vous tous les outils nécessaires à la gestion d’un projet informatique : Subversion, Trac, Wiki, Teams, Chat… Bref c’est exactement ce qu’il me fallait. Et en plus c’est gratuit :P

Assembla provides tools and services for accelerating software development

Inscription et création d’un projet

Pour l’inscription, c’est par ici. Une fois enregistré, vous pouvez créer un “espace de développement” (space en anglais) sur cette page. Entrez le nom de votre projet, un identifiant pour les différentes URLs qui seront générées par la suite, et surtout prenez soin de cocher la case “Software developers (trac) - Subversion with TRAC ticketing” dans “Setup this space for”. Autant rester indépendant de la plateforme utilisée, aussi bonne soit-elle :)

Utiliser Subversion

Si vous ne savez pas ce qu’est Subversion, cet article ne vous était pas destiné. Cependant, maintenant que vous êtes là, je ne vais pas m’en plaindre, hein :P Subversion est donc un gestionnaire de versions qui fonctionne sur le mode suivant : vous créez sur un serveur distant un dépôt contenant tous les fichiers de votre projet. Ensuite, vous et vos co-développeurs pouvez ajouter, modifier ou supprimer des fichiers sur le dépôt en créant de nouvelles révisions. Tout étant centralisé, la gestion est grandement simplifiée, et les risques de corruption des fichiers sont minimisés (le serveur arrive entre autres à détecter et gérer les conflits de versions). Read more »

[Project Euler] Problème 12

Icon for post #62

Oui, je suis de nouveau un “projecteuler-addict“… aurai-je le maximum des points à mon BAC pour autant, cela reste à prouver, mais au moins j’aurai tout fait pour :P En cette fin d’après-midi, c’est au problème n°12 que je me suis attaqué… voici l’énoncé :

The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be:

1, 3, 6, 10, 15, 21, 28, 36, 45, 55, …

Let us list the factors of the first seven triangle numbers:

     1: 1
     3: 1,3
     6: 1,2,3,6
    10: 1,2,5,10
    15: 1,3,5,15
    21: 1,3,7,21
    28: 1,2,4,7,14,28

We can see that 28 is the first triangle number to have over five divisors.

What is the value of the first triangle number to have over five hundred divisors?

En fait, j’ai écris plusieurs versions du solveur (en PHP), juste pour manipuler la récurrence et les variables statiques. ;) Voici la première version du programme. Notez la fonction triangle_number, totalement inutile mais assez amusante à coder (utilisation d’une variable de cache statique à cause des erreurs d’imbrication dues à la récurrence sur de grands nombres) :
Read more »

[Project Euler] Problème 21, vive le BruteForcing :p

Icon for post #54

…parce que c’est quand même particulièrement bon de voir son ordinateur bosser à plein temps pour une fois! Pour rappel, Project Euler (en anglais) est un site qui propose des dizaines de problèmes mathématiques à résoudre grâce à une logique implacable, des algorithmes de programmation très poussés… ou tout simplement avec la très connue méthode dite de Brute Force ! (en gros on tente de créer un algorithme pas trop lent et on laisse l’ordi exécuter des calculs monstrueux en priant pour que ça ne prenne pas trop de temps et que l’ordi ne plante pas à 99% de la recherche) ^^

Je suis tombé tout à l’heure sur le Problème 21 dont voici l’énoncé :

Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n).
If d(a) = b and d(b) = a, where a ≠ b, then a and b are an amicable pair and each of a and b are called amicable numbers.

For example, the proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110; therefore d(220) = 284. The proper divisors of 284 are 1, 2, 4, 71 and 142; so d(284) = 220.

Evaluate the sum of all the amicable numbers under 10000.

Peut-être est-il possible de trouver la solution de tête (tous mes voeux de no-lifitude à ceux qui en sont capables), mais pourquoi faire simple quand on peut faire compliqué, hein ? Voici donc mon petit programme en PHP :
Read more »

Sortie de la très attendue nouvelle version de WampServer

Icon for post #33

Enfin !

La nouvelle version du très populaire WampServer (anciennement WAMP 5) est maintenant disponible sur le site officiel, qui a pris un coup de jeune pour l’occasion. :P

WampServer est un logiciel qui permet d’installer en quelques secondes un environnement de développement web complet, composé d’un serveur web (Apache), du moteur du langage de programmation web par excellence (PHP), d’un SGBDR (MySQL) et d’un outil de gestion de ce système (PhpMyAdmin).

Cette nouvelle version apporte son lot de nouveautés : nouveau logo, nouvelle page d’accueil, nouvelles icones… On retiendra surtout la possibilité d’installer plusieurs versions d’Apache, PHP et MySQL, ce qui permet de développer dans les conditions contraintes exactes d’un serveur de production. ;)

Par ailleurs, le système d’add-ons semble avoir été amélioré, même si aucun véritable add-on n’est encore disponible… J’attends notamment des optimiseurs, caches d’opcodes et autres joyeusetés ayant pour but de diminuer la vitesse de chargement des pages :)

Voici les numéros de version exacts des logiciels installés par WampServer 2.0 :

  • Apache
    version 2.2.6
  • PHP
    version 5.2.5
  • MySQL
    version 5.0.45
  • PhpMyAdmin
    version 2.10.1

Et enfin quelques liens autour de ce projet :

Programmer “Orienté Objet” avec JavaScript et JSON

Note personnelle: ce titre vient de faire fuir la moitié des (rares) visiteurs de ce blog :P

Si vous développez un peu en JavaScript, sans doute savez-vous que c’est un langage fortement Orienté Objet. Vous avez d’ailleurs certainement déjà utilisé des objets comme window ou document, lors d’appels à window.location=’xyz’; ou document.getElementById() notamment.

Savez-vous qu’il est possible de créer ses propres objets (objets utilisateurs) très simplement, grâce la notation JSON ? Cette syntaxe particulière permet en effet de définir et de manipuler aisément des Objets ;)

Dans cet article, je vais vous présenter rapidement les principes de la notation JSON, puis je vous donnerai quelques exemples d’utilisations concrets de ce format de données surpuissant
(oui, je sais, j’en rajoute un peu, mais je suis vraiment fan de cette syntaxe - explication plus bas- :) )

1. Utilisation de JSON pour créer et gérer des objets

JSON est donc un moyen de représenter des données en JavaScript. Il dispose d’une syntaxe extrêmement simple et claire, qui se base sur des paires de clés / valeurs, selon les règles suivantes :

  • Un objet est entouré par une paire d’accolades { et }
  • Les noms des clés sont entourés par des guillemets (simples ou doubles)
  • Les valeurs des clés sont entourés par des guillemets, sauf si la valeur est numérique
  • Chaque couple clé / valeur est séparé par une virgule

Il est important de noter que les valeurs peuvent être des chaînes de caractères, des nombres, mais aussi des fonctions ! Il est aussi possible de définir un tableau d’objets en entourant les objets par des crochets [ et ] ;)

Read more »