Morefnu.org
Dyslexics have more fnu!
Dyslexics have more fnu!
Fil des billets - Fil des commentaires
30 août 2010
Aussi moche soit-il, PHP s'est imposé chez bon nombre d'hébergeurs, et souvent, "il faut faire avec".
L'astuce du jour : comment définir une classe héritant dynamiquement d'une autre classe ?
Forcément, le code suivant ne fonctionne pas :
<?php
$classToInherit = "parentClass";
class parentClass {
public function hello() {
echo "Hello, world !";
}
}
class childClass extends $classToInherit {
public function hello() {
parent::hello();
echo "Hello, too!";
}
}
$o = new childClass();
$o->hello();
?>
Ce serait trop simple...
Qu'à cela ne tienne, il existe une fonction qui va nous permettre de ruser, la fonction class_alias. Et voilà le travail :
<?php
$classToInherit = "parentClass";
class parentClass {
public function hello() {
echo "Hello, world !";
}
}
class_alias($classToInherit,"myCustomClass");
class childClass extends myCustomClass {
public function hello() {
parent::hello();
echo "Hello, too!";
}
}
$o = new childClass();
$o->hello();
?>
(J'entends déjà les "dans les vrais langages, on peut faire ça proprement", et je suis entièrement d'accord :)
28 octobre 2009
J'ai mis à jour mes 2 portables hier vers la dernière version en date de la Karmic Koala.
Tout s'est (plus ou moins) bien passé, je me suis juste retrouvé avec une base (locale) postgresql 8.4.
En effet, lors de l'installation de postgresql 8.4, les bases de la 8.3 ne sont pas migrées automatiquement, et un nouveau cluster est créé
J'ai pu migrer mes données en 8.4 avec les étapes suivantes :
sudo pg_ctlcluster 8.4 main stop
sudo pg_dropcluster 8.4 main
sudo pg_upgradecluster 8.3 main
Il est ensuite possible de supprimer l'ancien cluster en 8.3 (on peut synthétiser pg_ctlcluster stop et pg_dropcluster en 1 ligne) :
sudo pg_dropcluster --stop 8.3 main
Et hop, un postgresql-8.4 tout propre \o/
9 mars 2009
Bon, il n'y a pas à dire, c'est beau le libre.
Juste après déballage de mon nouveau Samsung NC10 :
Reboot ... et tout marche! Il ne reste plus qu'à installer apache/pgsql/dotclear, et les plugins du lab dotclear, et ça fait un environnement de développement dotclear nomade parfait :)
Enfin presque. Il me reste juste à voir pourquoi la luminosité n'est pas sauvegardée quand on est sur batterie...
3 septembre 2008
Test ACID2 ... ok
Test ACID3 ... 74/100
Tests Javascript : (tests réalisés avec SunSpider)
| TEST | COMPARISON | Firefox 3.0.1 | Chrome |
|---|---|---|---|
| ** TOTAL **: | 2.62x as fast | 7513.4ms +/- 9.3% | 2864.0ms +/- 7.6% |
| 3d: | 2.48x as fast | 651.6ms +/- 26.6% | 262.8ms +/- 103.0% |
| cube: | 3.08x as fast | 255.4ms +/- 40.2% | 83.0ms +/- 126.7% |
| morph: | 2.84x as fast | 179.2ms +/- 24.6% | 63.2ms +/- 10.4% |
| raytrace: | 1.86x as fast | 217.0ms +/- 22.6% | 116.6ms +/- 140.8% |
| access: | 6.02x as fast | 879.6ms +/- 18.6% | 146.2ms +/- 23.6% |
| binary-trees: | 18.0x as fast | 165.4ms +/- 25.3% | 9.2ms +/- 24.2% |
| fannkuch: | 7.79x as fast | 383.4ms +/- 20.5% | 49.2ms +/- 29.1% |
| nbody: | 3.83x as fast | 216.0ms +/- 19.6% | 56.4ms +/- 28.4% |
| nsieve: | 3.66x as fast | 114.8ms +/- 31.5% | 31.4ms +/- 41.3% |
| bitops: | 5.54x as fast | 524.0ms +/- 13.9% | 94.6ms +/- 20.0% |
| 3bit-bits-in-byte: | 19.1x as fast | 145.4ms +/- 21.8% | 7.6ms +/- 37.7% |
| bits-in-byte: | 8.45x as fast | 143.6ms +/- 20.0% | 17.0ms +/- 41.0% |
| bitwise-and: | 4.70x as fast | 90.2ms +/- 33.7% | 19.2ms +/- 18.0% |
| nsieve-bits: | 2.85x as fast | 144.8ms +/- 14.8% | 50.8ms +/- 29.3% |
| controlflow: | 25.8x as fast | 124.0ms +/- 17.1% | 4.8ms +/- 33.8% |
| recursive: | 25.8x as fast | 124.0ms +/- 17.1% | 4.8ms +/- 33.8% |
| crypto: | 4.62x as fast | 467.4ms +/- 19.8% | 101.2ms +/- 22.4% |
| aes: | 3.87x as fast | 150.8ms +/- 35.1% | 39.0ms +/- 38.3% |
| md5: | 4.49x as fast | 167.2ms +/- 35.5% | 37.2ms +/- 28.3% |
| sha1: | 5.98x as fast | 149.4ms +/- 33.2% | 25.0ms +/- 25.6% |
| date: | 3.99x as fast | 2367.2ms +/- 15.9% | 592.8ms +/- 27.5% |
| format-tofte: | 6.70x as fast | 2109.2ms +/- 14.3% | 314.8ms +/- 30.3% |
| format-xparb: | ?? | 258.0ms +/- 30.8% | 278.0ms +/- 40.5% |
| math: | 3.44x as fast | 652.2ms +/- 20.0% | 189.6ms +/- 23.7% |
| cordic: | 2.56x as fast | 266.8ms +/- 25.9% | 104.2ms +/- 33.7% |
| partial-sums: | 3.22x as fast | 200.0ms +/- 37.8% | 62.2ms +/- 31.6% |
| spectral-norm: | 7.99x as fast | 185.4ms +/- 26.5% | 23.2ms +/- 41.2% |
| regexp: | *1.85x as slow* | 283.6ms +/- 22.2% | 525.0ms +/- 19.1% |
| dna: | *1.85x as slow* | 283.6ms +/- 22.2% | 525.0ms +/- 19.1% |
| string: | 1.65x as fast | 1563.8ms +/- 14.2% | 947.0ms +/- 22.1% |
| base64: | 1.72x as fast | 172.0ms +/- 34.9% | 100.2ms +/- 39.1% |
| fasta: | 5.17x as fast | 406.0ms +/- 28.8% | 78.6ms +/- 46.5% |
| tagcloud: | - | 269.6ms +/- 10.3% | 238.2ms +/- 31.3% |
| unpack-code: | 1.45x as fast | 500.6ms +/- 13.2% | 344.4ms +/- 22.6% |
| validate-input: | - | 215.6ms +/- 15.5% | 185.6ms +/- 44.0% |
Y'a pas à dire, c'est prometteur...reste à voir ce que donnera ce même test face à TraceMonkey :)
17 mars 2008
Histoire de changer de sujet, un premier article technique sur la configuration d'apache2 et de fail2ban pour se prémunir de quelques attaques et autres scans de votre serveur web.