Ajouter une image à partir d’une URL distante

J’ai toujours détesté le processus de devoir télécharger une image pour ensuite l’uploader sur mon blog. Deux étapes, c’est toujours beaucoup trop comparativement à une seul. Enfin, j’ai découvert qu’il est possible de télécharger directement les images distantes en insérant l’url lorsque Wordpress nous demande l’endroit du fichier “local”.

exemple-upload Close

Programmer en objet PHP

Suite à mon article La programmation orientée objet, je vais vous introduire à la POO (programmation orientée objet) version PHP, ce qui me permettra par la suite de vous en apprendre plus sur la programmation à grande échelle.

Commençons donc par les bases. L’objet en PHP est semblable à celui dans les autres langages: il contient des attributs (variables) ainsi qu’un ensemble de méthodes nous permettant de le manipuler.

Afin de rendre ce texte aussi utile qu’agréable, voici donc un petit objet, qui est en fait une page html:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Page {
	private $title = '';
	private $content = '';
 
	public function __construct($title = 'Titre par défaut', $content = 'Je suis du contenu')
	{
		$this->title = $title;
		$this->content = $content;
	}
 
	public function setTitle($title)
	{
		$this->title = $title;
	}
 
	public function setContent($content)
	{
		$this->content = $content;
	}
 
	public function render()
	{
		echo '<html>';
		echo '<head>';
		echo '<title' . $this->title . '</title>';
		echo '</head>';
		echo '<body>';
		echo $this->content;
		echo '</body>';
		echo '</html>';
	}
}

(oui, cette méthode render() est plutôt malpropre, mais pour les bien de la cause, on va souffrir un peu!)
Ainsi, avec cet objet, il m’est possible d’afficher une page HTML dont je peux modifier dynamiquement le contenu ainsi que le titre. Par exemple

1
2
3
4
$page = new Page();
$page->setTitle('Accueil');
$page->setContent('Ceci est un contenu vraiment intéressant!');
$page->render();

Me permet en 4 lignes d’afficher une page HTML complète (bien sûr il manque quelques tags pour la rendre valide w3c!)

Bon, maintenant voyons ce qui se passe vraiment. Premièrement, on a écrit la définition de notre objet, notre page doit avoir un titre et un contenu. Ce sont nos deux variables privées ($title et $content) car par défaut, un objet veut garder ses attributs (variables) à lui seul. Il en est le seul propriétaire et veut donc être le seul qui peut avoir le plaisir de les modifier. Bien sûr, il est possible de permettre aux autres de modifier ces variables en les rendant publiques, mais pourquoi gâcher le plaisir de notre objet???

Par la suite, on déclare deux méthodes qui permettent de modifier les variables par leur intermédiaire: setTitle($title) et setContent($content). La méthode __construct (débutant en PHP5) est l’équivalent du constructeur en C++. Lorsqu’on fait new Page(), il appelle le constructeur en lui donnant aucun attribut, il se contentera donc d’utiliser ceux par défaut. Finalement, la méthode render() permet l’affichage dans le navigateur du contenu précédemment affecté par les deux méthodes setTitle et setContent.

Pour ceux qui ne comprennent absolument rien de ce qui vient d’être dit, passons en mode ralenti :)

1
$page = new Page();

Ceci déclare un nouvel objet Page. Pour que PHP puisse utiliser un objet, il faut que celui-ci existe. Donc, en faisant new Page(), on dit à PHP “SVP mon Dieu, crée une Page sans attributs”. PHP, notre Dieu, fait. $page = permet d’attribuer ce nouvel objet à une variable pour le manipuler par la suite.

1
$page->setTitle('Accueil');

Ici, on dit à notre objet, par l’intermédiaire de la flèche qui signifie que l’on descend dans la branche d’héritage, que l’on veut qu’il exécute sa méthode setTitle avec comme paramètre le texte Accueil. Cela aura pour effet de modifier la variable interne $title de notre objet pour ‘Accueil’.

1
$page->setContent('Ceci est un contenu vraiment intéressant!');

Comme précédemment, on demande à notre objet d’exécuter sa méthode setContent pour modifier sa variable $content cette fois-ci. On lui attribut le texte ‘Ceci est un contenu vraiment intéressant!’.

1
$page->render();

Finalement, on demande à notre magnifique objet d’exécuter sa méthode render(), sans argument, qui retourne ses deux attributs formatés pour afficher une page HTML.

On voit donc que la POO en PHP est très similaire à celle en C++ ou autre langage OO. C’est compréhensible … on emploi les mêmes termes pour désigner les mêmes choses, non?

En conclusion, avec ce bref introduction à l’OO, je serais en mesure de vous montrer des scripts qui pourront vous permettre de gagner soit du temps, ou encore d’avoir bien du plaisir à voir la puissance que vous avez entre les mains. Enfin, il suffit seulement de savoir ce que l’on veut faire et comment on va s’y prendre pour y arriver.

Pas de son sur Debian Etch

Modif: Si vous êtes aventurier, vous pouvez installer Debian Lenny (la version suivante de Debian) à partir des repositories actuels et ne pas avoir à vous soucier de ce problème qui devrait être généralement réglé par les drivers intégrés au nouveau noyau (2.6 dans le cas de Lenny alors que Etch utilise encore 2.4).

Bon, j’ai récemment eu quelques problèmes à installer mes drivers audio sur Debian Etch (4.0_r3). J’ai finalement trouvé la solution après quelques temps de recherche. La voici :) (Merci a farrell2k du forum debian.net)

Source: http://forums.debian.net/viewtopic.php?t=26835

1. download the latest alsa drivers from the alsa project site

2. su and become root, then do a uname -r to find your kernel version.

3. then apt-get the appropriate linux-headers. Mine was linux-headers-2.16.18-4-486.

4. cd to the extracted alsa source and run ./configure –with-kernel=/usr/src/linux-headers-2.16.18-4-486 (or whatever yours is).

5. run make…wait, then make install and wait.

6. run alsaconf and pick your card.

7. reboot and adjust volume with whatever mixer.

iPod nano redémarre en boucle infinie

Bon, c’est bien intéressant ce qui vient d’arriver. J’avais placé mon iPod nano pour qu’il recharge, mais après un certain temps, il semble y avoir eu un problème puisque mon Mac Book Pro s’est réveillé (je rechargeais avec l’ordinateur éteint). Je viens voir ce qui se passe. Rien à l’écran. Je regarde par la suite mon iPod… L’écran passait de la pomme à rien puis à la pomme et à rien, etc. Comme toute bonne personne je me suis dit : “Qu’est-ce ça!”. Bon, je passe le reste des détails, voici un petit vidéo de à quoi ça ressemblait:

En gros, pour régler le problème, il faut passer en mode disque. Tenez bien le bouton du centre et pesez sur le bouton play de la roulette en même temps. Après 5 secondes environ, votre iPod devrait passer en mode disque. À ce moment, vous le ré-attachez à votre ordinateur et vous faites une restoration de celui-ci.

Un peu de lecture

L’été qui commence, j’ai enfin du temps libre pour passer du temps sur le sujet qui me passionne: l’informatique. Prochaine session, je me retrouve en génie logiciel, suite à mon changement d’orientation. La session teminée, je me suis dit pourquoi ne pas se mettre dans le bain? Je suis passé faire un tour à la bibliothèque de mon quartier pour y trouver deux livres qui me semblent de niveau et d’intérêt. Voici donc mes deux premières lectures:

Halte aux hackers linux par Brian Hatch, George Kurtz et James Lee


L’objectif du livre est de conscientiser le lecteur aux différentes manières par lesquels un “hacker” serait en mesure d’accéder à un système, profiter de ses droits pour faire du grabuge ou simplement démolir le système dans son ensemble, ou encore d’insérer quelques lignes de codes dans une applications afin d’en recevoir les informations par email (troyen). C’est un livre qui nécessite des connaissances avancés de Linux, toutefois, la majorité des concepts sera compris des débutants ayant connaissances des bases. Pour le moment, j’en ai lu 3 chapitres dans lesquels on nous introduits premièrement à la sécurité Linux, que ce soit en termes de permissions fichiers, quotas, ports, mémoire virtuelles, cpu, etc. Deuxième chapitre, une bonne introduction sur comment prévenir les attaques et quoi faire après une attaque (restauration). Le troisième chapitre s’attaque au comment un hacker fait pour découvrir le plus d’information à propos d’une machine, tel un voleur qui tourne autour d’une maison qu’il veut cambrioler. Dans le prochain chapitre, le livre abordera le social engineering, qui est selon mon opinion, un sujet très important du hacking puisqu’il n’est pas rare que le hacker découvre plusieurs informations à l’aide de ressources ‘humaines’.

Systèmes d’exploitation, 2e édition par Andrew Tanenbaum


Cette brique me semble digne d’un ingénieur ou d’une personne qui souhaîte en apprendre sur les systèmes d’exploitation. On y passe de la gestions des processus (threads) à la gestion de la mémoire en passant aux systèmes multiprocesseurs. Le livre aborde même vers la fin la création de son propre système d’exploitation. De plus, il passe une partie importante sur deux système important de notre époque soit Unix et Linux et Windows (2000).

Je n’ai pas encore attaqué cette brique mais j’ai bien hâte d’en découvrir plus sur le sujet. Je voudrais vous promettre d’écrire deux messages supplémentaires pour vous en faire les résumés et appréciations après leur lecture respective mais je ne suis pas certain que je leur passerait de travers d’un seul coup.