Adieu tout le monde

September 9th, 2008

Je tenais à faire ce court billet pour vous faire mes adieux.

En effet nous allons tous mourrir cette nuit alors que le LHC (Large Hadron Collider) s’apprête à être mis en activité. (Pour ceux qui comprenne pas ce que ça fait, c’est un accélérateur de particules. Pour ceux qui ne comprenne toujours pas à quoi ça sert, chercher sur wiki ou pleurer)

Un trou noir va se créer et devenir hors de contrôle, nous allons tous mourrir, ne croyez pas les scientifiques qui font croirent que tout va bien se passer, ils disaient la même chose pour la bombe nucléaire.

Cette nuit, au alentour de 3hr AM GMT-5, la première tentative sera diffusé en direct sur Internet.

Bref, ils veulent rire de nous pour qu’on voit ce qui va nous tuer.

 

Sur ce, je suis heureux de vous avoir connus, et prions pour que les micro trous noirs ainsi créé ne grandissent pas trop rapidement.

 

PS: Oui je sais très bien que ce sont simplements des fausses croyances, s’il vous plait soyez assez brillant pour déceler le sarcasme.

Astuce pour rendre Ubuntu plus rapide !

September 3rd, 2008

Plusieurs d’entre vous utiliser Ubuntu. C’est un excellent système d’exploitation, mais parfois, il faut le reconnaitre, il est un peu lent. Une simple astuce vous permet de rendre le système beaucoup plus rapide.
Executer la commande suivante:

sudo echo "id:6:initdefault:">/etc/inittab

Redémarrer et voila, vous avez maintenant un système beaucoup plus réactif :)

J’adopte Google Chrome !

September 3rd, 2008

Après deux jours d’utilisation (eh oui, depuis 8hr hier matin j’attendais sa venu :) ), on peut dire que j’ai déjà une bonne idée de ce que le navigateur a dans le ventre. Il y a évidement plusieurs bugs bien agaçant, mais on doit lui pardonner, c’est une beta (quoi que chez google beta est souvent synonime de produit finit :p ). Pour décrire Chrome en une phrase, on pourrait dire que c’est très proche d’Opera, mais avec une interface encore plus sobre, plus simple.
Il est très rapide, très très réactif si on le compare a ses concurrents, encore une fois c’est un peu comme Opera. Les pages se chargent rapidement et le précédent/suivant est instantané, aucune latence comme il y en a sur firefox. On dirait vraiment Opera en plus dépouillé, et a terme il va être plus compatible avec les sites actuels.

 

Un autre truc intéressant est d’avoir un processus différent par onglet. Pour le moment c’est un plus, mais éventuellement ça risque de brider la performance, surtout au niveau des plugins. De plus on peut détacher un onglet, fonctionnalité manquante (ou que je n’ai pas trouvé) sur firefox. Une option manquante est le défilement automatique avec un clic sur la roulette, j’ai hâte de la voir arriver celle là !

Chose qui m’a interpellée, Flash fonctionnait alors que je n’avais rien installé ! Après quelques recherche (merci aux outils de debug) j’ai vu que chrome utilisait les plugins de Firefox. Ouf, c’est pas un activeX :) . Les téléchargements se font automatiquement, comme sous Safari, ce qui est plutôt agaçant. C’est peut être désactivable, j’ai pas encore chercher dans les options ;) . Edit: Impossible d’empêcher le téléchargement automatique, par contre on peut le forcer a nous demander à quel endroit l’enregistrer, ce qui permet d’annuler malgré tout…

Quand on ouvre Chrome ou bien un nouvel onglet, on a un des aperçus des pages les plus visités, comme speed dial sous Opera. Je vous le dis, c’est vraiment un clone de Opera, mais avec la sobriété de Google :) .

Aperçu Opera:

Aperçu Chrome:

Une chose que je regrette c’est qu’il ne soit pas (encore) disponible sous *BSD, puisque je passe la plus grande partie de mon temps en dehors de windows :( .

Enfin, c’est tout pour le moment, on verra dans quelques jours si je suis toujours de cet avis. Je vous laisse sur un screenshot de Chrome qui vient de crasher alors que je lisais le le blog d’un ami qui explique qu’il a, lui aussi, adopté Chrome, que d’ironie :) .

 

Je suis désolé pour la qualité de l’image, vu l’excitation du premier crash, j’ai pris le premier outil qui m’a tombé sous la main pour enregistrer l’image, à savoir Microsoft Paint et par la suite redimensionner pour couper mes deux autres écrans.

Google sort son navigateur web !

September 2nd, 2008

Encore un ! Comme si les webmasters en avaient pas déjà assez de rendre leurs sites compatibles avec Firefox, Opéra, Seamonker, Konqueror, Internet Explorer, Safari et j’en passe… Baptisé Google Chrome, ce navigateur open-source devrait faire son apparition d’un jour à l’autre (aujourd’hui plus précisément :P * ). D’après le blog officiel (lien plus bas), il réutilise plusieurs composants de Webkit (Safari) et de Mozilla Firefox, par conséquent coté compatibilité ça devrait pas trop être différent de ce que l’on connait déjà.

* Le lien ne fonctionne plus, google le redirige maintenant vers son moteur de recherche. Espérons que ce soit temporaire :) :

http://gears.google.com/chrome/?hl=en

Source: http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html

Php: Stack Overflow

September 1st, 2008

En php, comme dans la plupart des langages, lorsque nous effectuons des fonctions récursives (s’appelant elle même) on arrive vite à un dépassement de la pile. Dans un langage tel que le C ce n’est pas très important, on peut très facilement éviter/prévoire cela. Dans une application en PHP aussi c’est facile d’éviter les fonctions récursives s’appelant elle même des dizaines de milliers de fois.

Cependant, dans le cas d’un hébergement vous ne pouvez évidement pas vérifier tous les scripts de votre serveur. Le problème est que certains membres pourraient s’en servir pour causer un déni de service. En effet lorsque PHP est utilisé comme module apache, en effectuant un dépassement de la pile, il se produit une faute de segmentation et cela tue le processus entier. Si c’est un serveur multithreader alors tout le serveur meurt, si c’est en prefork alors le fils meurt et éventuellement le serveur au complet pourrait mourrir dans le cas d’une attaque répété. Même si vous n’êtes pas hébergeur, avec un script tel que phpmyadmin ou peu importe il est facile d’envoyer des milliers de variables POST qui sont lue récursivement par PHP (magic_quotes, etc) !

Je n’entrerai pas dans les explications de bas niveaux, je vais plutôt vous expliquer comment produire un crash de PHP :)  et éventuellement comment le corriger.

En C vous pouvez essayer un code du genre:

#include <stdio.h>

void a(int i){
printf(”Stack: %d\n”,i);
i++;
a(i);
}

int main( int argc, char **argv ) {
a(0);
}

Lorsque la pile va être pleine, vous allez avoir une faute de segmentation. Le nombre d’appels récursif dépend de votre système (surtout de la grosseur du programme en mémoire), dans mon cas ça tourne aux alentours de 392200 à 392940. Vous pouvez évidement utiliser un autre type qu’un entier, mais vous allez arriver au même résultat.

En php pour produire une faute de segmentation il suffit de faire ceci:

function a($i) {

echo “$i\n”;

$i++;

a($i);

}

a(0);

Pour php 5.2.6 sous linux 2.6.25 le dépassement de la pile se produit entre 23354 et 39291 appels.

Comment s’en protéger ?

Read the rest of this entry »