[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 »

Tutoriel: lister les opcodes générés par vos scripts PHP

Icon for post #45

PHP est un langage interprété : les fichiers qui contiennent le code que vous tapez sont parsés par le moteur du langage (le fameux “Zend Engine”), et les instructions qu’ils contiennent sont compilées en des instructions de plus bas niveau, instructions qui seront à leur tour exécutées pour produire le résultat attendu (ou des bugs :P ). Ce processus (code initial => compilation en opcodes => exécution) a lieu à chaque fois que le script est appelé, à moins que vous n’utilisiez un cache d’opcodes qui accélérera l’exécution de vos scripts en faisant sauter des étapes au moteur de PHP…
Maintenant, si vous êtes un maniaque de l’optimisation, ou bien si comme moi vous vous intéressez à tout donc à ce qui se passe “sous le capot de PHP”, vous vous demandez sans doute comment accéder à ces instructions de bas niveau ;)
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 :

Blueprint : présentation d’un Framework CSS

Icon for post #3

Peut-être vous demandez-vous ce qu’est exactement un Framework ?

D’après Wikipédia :

En informatique, un framework est un espace de travail modulaire.
C’est un ensemble de bibliothèques, d’outils et de conventions permettant le développement rapide d’applications.
Il fournit suffisamment de briques logicielles et impose suffisamment de rigueur pour pouvoir produire une application aboutie et facile à maintenir. Ces composants sont organisés pour être utilisés en interaction les uns avec les autres

Les Frameworks sont de plus en plus utilisés dans le domaine de la programmation. Il en existe des dizaines, dans de nombreux langages, comme par exemple :

Mais saviez-vous qu’il existe également des Frameworks CSS, spécifiquement conçus pour simplifier et accélérer la création de designs pour vos sites web ?

Il n’y en a que quelques-uns pour l’instant, l’idée étant relativement récente. Je vais donc vous présenter le plus avancé d’entre eux, dont la dernière version est sortie il y a quelques semaines : Blueprint.

Read more »