Author Archive for tomzx

Page 4 of 11

Pas de son sur Debian Etch

Modification: 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).

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.

Vaisseaux

Comme tout bon élève qui se respecte, je n’écoutais pas toujours durant mes cours au secondaire. Cela a eu pour effet de me porter à dessiner dans les notes de cours… Je ne suis pas très bon dans le dessin réalistique (personnes, objets de dimension raisonnable), mais j’ai toujours apprécié mes propres dessins de véhicules, spécialement les vaisseaux que je dessinais. Je vous fait donc part d’une partie de ces dessins, espérant en découvrir d’autre au fil du temps pour les partager avec vous :)

ship-8.png
ship-11.png
ship-13.png
ship-21.png
ship-17.png
ship-12.png
ship-22.png
ship-6.png
ship-3.png
ship-19.png
ship-20.png
ship-2.png
ship-14.png
ship-18.png
ship-23.png
ship-7.png
ship-15.png
ship-9.png
ship-10.png
ship-5.png
ship-16.png
ship-4.png
ship-1.png

La programmation orientée objet

Qu’y a-t’il de plus beau que la programmation orientée objet? Rien.

La programmation orientée objet (ou POO) est un chef d’oeuvre en soi. Pourquoi? Parce que sa simplicité et sa rigueur en font l’une des meilleures façons de concevoir un logiciel, que se soit à l’aide de PHP, de C++ ou de tout autre langage orientée objet.

Mais qu’est-ce qu’ont les programmes orientés objets de si orgasmiques? Et bien, un ensemble de choses. Je ne ferais qu’en citer quelques-uns :
La possibilité d’écrire des classes réutilisables dans d’autres projets.
La possible de partager du code avec d’autres tout en ayant la capacité de retravailler sur son code sans affecter celui des autres.
La possibilité d’avoir des variables internes qui ne peuvent être travaillées par des processus externes.
La liste continue…

Bon, commençons donc avec les rudiments de la POO, en langage C++.

Qu’est-ce qu’un objet? Et bien, il s’agit d’une classe, ou d’un ensemble d’information à propos d’un concept. Par exemple, la classe voiture pourrait être définie comme suit :

1
2
3
4
5
6
7
8
9
10
11
12
class Voiture
{
	public:
		Voiture(int position_x = 0, position_y = 0);
		void avancer(int distance);
		void reculer(int distance);
		pair<int , int> obtenirPosition() const; 
 
	private:
		int position_x_;
		int position_y_;
}

Qu’est-ce que c’est que ce beau tas de code? Et bien, il s’agit de la déclaration de la classe voiture! Eh oui, vous avez découvert votre première classe! Bon, il s’agit ici d’une classe bien banale qui permettra à votre objet Voiture de se déplacer vers l’avant et vers l’arrière. Elle gardera les positions en x et en y (bien que puisque la voiture se déplace actuellement seulement selon l’axe des x, la position y nous est inutile).

Maintenant, attaquons-nous au code qui fera en sorte qu’il y ait de l’action. Premièrement, il faut un constructeur, c’est-à-dire que tout objet Voiture doit être construit avant de pouvoir fonctionner.

1
2
3
4
Voiture::Voiture(int position_x, int position_y)
: position_x_(position_x), position_y_(position_y)
{
}

Ici, on utilise le même nom que la classe pour déclarer ce constructeur. Vous noterez l’utilisation de : avant position_x_ et position_y_. Il s’agit d’une liste d’initialisation, c’est-à-dire que ces valeurs seront initialisées avec les valeurs dans les parenthèses. Pourquoi donc faire cela?

En C++, la création d’objet ce fait de cette façon : premièrement, on crée les attributs (les variables private), puis on appelle le constructeur qui se charge alors de construire l’objet. S’il arrivait qu’un objet A était inclus dans un autre objet B, cela aurait pour effet d’initialiser l’objet A avec des paramètres par défaut. Or, faire cela implique créer un objet avec des paramètres qu’on va changer quelques instants après, ce qui est une perte d’efficacité et une preuve de manque d’intelligence (vous ne voudriez pas paraître stupide non?).

Bon, avec ce constructeur, votre objet peut être créé. Mais rien de plus. Faisons à présent les deux fonctions de déplacement :

1
2
3
4
5
6
7
8
void avancer(int distance)
{
	position_x_ += distance;
}
void reculer(int distance)
{
	position_x_ -= distance;
}

Code très simple. Ajoute ou enlève à la valeur de position_x_, un de nos attributs internes.

Finalement, il nous faut une fonction qui sera en mesure de nous donner notre position en x et en y!

1
2
3
4
pair <int , int> obtenirPosition() const
{
	return make_pair(position_x_, position_y_);
}

Avec ça, vous pouvez déjà faire une Voiture, la faire avancer et reculer et même obtenir sa position! Wow, vous avez presque le début d’un jeu de course entre les mains! À vous de repousser les limites maintenant.

Categories