blog-source/output/author/wxcafe3.html

821 lines
39 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Wxcafé - Wxcafe</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="wxcafé">
<link rel="icon" type="image/png" href="//wxcafe.net/theme/img/favicon.ico">
<!-- Le styles -->
<link rel="stylesheet" href="//wxcafe.net/theme/css/bootstrap.css" type="text/css" />
<script type="text/javascript">
/* <![CDATA[ */
(function() {
var s = document.createElement('script');
var t = document.getElementsByTagName('script')[0];
s.type = 'text/javascript';
s.async = true;
s.src = '//api.flattr.com/js/0.6/load.js?'+
'mode=auto&uid=wxcafe&button=compact&popout=0';
t.parentNode.insertBefore(s, t);
})();
/* ]]> */
</script> <!-- flattr button loader -->
<style type="text/css">
body {
padding-top: 60px;
padding-bottom: 40px;
}
.sidebar-nav {
padding: 9px 0;
}
.tag-1 {
font-size: 13pt;
}
.tag-2 {
font-size: 10pt;
}
.tag-2 {
font-size: 8pt;
}
.tag-4 {
font-size: 6pt;
}
</style>
<link href="//wxcafe.net/theme/css/bootstrap-responsive.css" rel="stylesheet">
<link href="//wxcafe.net/theme/css/font-awesome.css" rel="stylesheet">
<link href="//wxcafe.net/theme/css/pygments.css" rel="stylesheet">
<!-- Le fav and touch icons -->
<link rel="shortcut icon" href="//wxcafe.net/theme/images/favicon.ico">
<link href="//wxcafe.net/feeds/feed.rss.xml" type="application/atom+xml" rel="alternate" title="Wxcafé RSS Feed" />
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container-fluid">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="//wxcafe.net/index.html">Wxcafé </a>
<div class="nav-collapse">
<ul class="nav">
<li><a href="//wxcafe.net/archives.html"><i class="icon-th-list"></i> Archives</a></li>
<li><a href="//wxcafe.net/pages/about/">A propos</a></li>
<li class="divider-vertical"></li>
<ul class="nav pull-right">
</ul>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
</div>
<div class="container-fluid">
<div class="row">
<div class="span9" id="content">
<div class="article">
<h1><a href="//wxcafe.net/posts/%D/le-quenya-episode-o/">Le Quenya - Épisode ø</a></h1>
<div class="well small"><footer class="post-info">
<span class="label">Date</span>
<span class="published" title="2012-09-18T19:07:00+02:00">
<i class="icon-calendar"></i> Tue 18 September 2012
</span>
<br />
<span class="label">By</span>
<a href="//wxcafe.net/author/wxcafe.html"><i class="icon-user"></i>Wxcafe</a>
<br />
<span class="label">Category</span>
<a href="//wxcafe.net/category/language/"><i class="icon-folder-open"></i>Language</a>
<br />
</footer><!-- /.post-info --></div>
<div class="summary"><p>Le Quenya est, pour ceux qui ne connaissent pas (comme moi jusquà il y
a peu...), le nom que donnait Tolkien au dialecte principal parlé par
les Elfes dans les différentes œuvres de l'auteur, dont Le Seigneur des
Anneaux, le Hobbit, ou encore le Silmarillion. Il faut se rendre compte
avant de commencer cet article que l'une des œuvres les plus
impressionnantes de Tolkien, si ce n'est la plus grande, est
l'impressionnant travail linguistique passé sur les différentes langues
présentes dans son œuvre littéraire : L'elfique, qui est donc le quenya,
la langue des nains, qui est appelé le khazalide, etc. </p>
<p>En effet, a contrario des "langues" développées dans d'autres œuvres littéraires
telles Eragon ou Harry Potter, où l'auteur-e se contente de lier un mot
de français (ou d'anglais) a un mot de sa "langue", les langues de
l'oeuvre de Tolkien sont des langues complètes. Elles possèdent des
racines logiques, des systèmes de grammaire et de conjugaison propres,
une logique inhérente dans la prononciation ou l'orthographe, et ainsi
de suite. </p>
<p>Un véritable rêve de linguiste donc, puisque ces langues sont
pratiquement entièrement documentées par Tolkien lui même (voir
l'appendice E du SdA, particulièrement instructif a ce sujet.)</p>
<p>J'ai donc décidé d'apprendre le Quenya récemment, et je vais donc poster
ici des résumés des cours que je suis ( disponibles <a href="http://folk.uib.no/hnohf/qcourse.htm">ici</a> , une
traduction en français est disponible <a href="http://www.ambar-eldaron.com/telechargements/integraleshelge.pdf">la</a> en pdf ), et des infos ici
toutes les deux semaines.</p>
<p>Si ce sujet vous intéresse, le compte twitter @Quenya101 poste
régulièrement des informations sur le sujet, et pour plus d'infos sur le
sujet, vous pouvez en trouver <a href="olk.uib.no/hnohf/quenya.htm">par ici</a>.</p>
<p>Et en tant que première leçon, vous pouvez apprendre que ce mot que vous
avez prononcé comme le Kenya tout le long de cet article se prononce en
fait [Kwenïa], ou bien Qwenya!</p></div>
</div>
<hr />
<div class="article">
<h1><a href="//wxcafe.net/posts/%D/update-a-propos-du-blog/">Update a propos du blog</a></h1>
<div class="well small"><footer class="post-info">
<span class="label">Date</span>
<span class="published" title="2012-09-18T16:57:00+02:00">
<i class="icon-calendar"></i> Tue 18 September 2012
</span>
<br />
<span class="label">By</span>
<a href="//wxcafe.net/author/wxcafe.html"><i class="icon-user"></i>Wxcafe</a>
<br />
<span class="label">Category</span>
<a href="//wxcafe.net/category/notes/"><i class="icon-folder-open"></i>Notes</a>
<br />
</footer><!-- /.post-info --></div>
<div class="summary"><p>Bonsoir! Un petit post pour faire un peu le point sur ce blog.<br />
Comme vous avez pu le remarquer, j'ai un peu de mal a tenir les délais
que je m'étais fixés pour ce blog (un post tous les 8 jours), et après y
avoir un tantinet réfléchi, ceci est du a deux points principaux :</p>
<ul>
<li>
<p>Tout d'abord, le manque d'inspiration, tout simplement. C'est assez
compliqué de trouver des sujets intéressants liés a l'informatique, et
qui méritent un article. Je vous invite d'ailleurs a me suggérer des
sujets via les commentaires ou twitter (<a href="https://twitter.com/wxcafe">@Wxcafe</a>)</p>
</li>
<li>
<p>Ensuite, le délai de 8 jours est trop court pour me permettre de faire
les recherches nécessaires, tout en manageant mes cours et mon temps
libre.</p>
</li>
</ul>
<p>A cause de cela, j'ai pris la décision de changer le rythme de parution
des articles a un *minimum* d'un post tous les 10 jours. Bien entendu,
si j'ai de l'inspiration en trop, plus de posts sont envisageables.</p>
<p>Voila. A part ca, je tiens a vous remercier de me lire (c'est assez
étonnant de voir ca...), et je précise que je vais ajouter une page
About Me, qui bien entendu rassemblera des informations sur moi, ma vie,
mon oeuvre :P</p>
<p>Ceci dit, je vais bosser un peu sur le prochain article.</p>
<p>A plus tard!</p></div>
</div>
<hr />
<div class="article">
<h1><a href="//wxcafe.net/posts/%D/introduction-a-bash-en-tant-que-language-de-programmation/">Introduction a bash en tant que language de programmation.</a></h1>
<div class="well small"><footer class="post-info">
<span class="label">Date</span>
<span class="published" title="2012-09-08T18:15:00+02:00">
<i class="icon-calendar"></i> Sat 08 September 2012
</span>
<br />
<span class="label">By</span>
<a href="//wxcafe.net/author/wxcafe.html"><i class="icon-user"></i>Wxcafe</a>
<br />
<span class="label">Category</span>
<a href="//wxcafe.net/category/programmation/"><i class="icon-folder-open"></i>Programmation</a>
<br />
</footer><!-- /.post-info --></div>
<div class="summary"><p>Linterpréteur de commandes bash (Bourne Again SHell)
est possiblement le shell le plus connu, notamment grâce a son
intégration en tant que shell par défaut dans les distributions Linux
les plus répandues (Debian - Ubuntu, Fedora, OpenSUSE, Mandriva -
Mageia, etc...).</p>
<p>Cependant, il n'est souvent connu qu'en tant quinterpréteur de
commande. Alors qu'en réalité, le bash est un langage de programmation
(presque) complet! Ainsi, il intègre les structures de contrôle
habituelles ( pour mémoire, les structures de contrôle comprennent les
conditions (les ifs), les boucles (les while), et les choix (les case),
entre autres.), et est donc ce que l'on pourrait appeler un langage de
script, interprété, de la même façon que python, a la difference près
qu'il contient un prompt (un système d'entrée de commande interactif)
bien plus complet et développé que python. </p>
<p>Cependant, les programmes en bash ne sont executables que dans un
environnement de type UNIX, et donc pas sous Windows (cygwin
(cygwin.com) propose ceci dit un système permettant d'utiliser bash sous
windows. Il faut malgré tout convenir que cet environnement est bien
plus compliqué a manipuler, et globalement ne permet pas d'acceder a des
portages de qualité satisfaisante.)</p>
<p>Ainsi, il est possible de créer des fichiers .sh, contenant des
instructions bash mises a la suite (de la même façon qu'un script BATCH
Windows .bat), et faisant appel autant aux commandes internes de bash,
aussi bien que les commandes externes mises en place par les programmes
installés sur le système, exactement comme dans une invite de commande.
Ainsi, pour appeller firefox, la commande 'firefox' lancera le petit
panda roux directement dans la boite magique, tandis qu'un if
[condition] suivi d'un then (quelque chose) lancera le fameux quelque
chose suscité si la condition est vérifiée. Un peu comme en C, quoi. </p>
<p>De cette façon, et avec quelques informations et connaissances, il est
facile de comprendre le fonctionnement de la programmation en bash.
Quelques exemples commentés:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash </span>
<span class="c"># La ligne du dessus est très importante, c&#39;est elle qui dit a bash quel doit être </span>
<span class="c"># l&#39;interpreteur des commandes écrites dans ce script. Ici, on dit a bash d&#39;interpréter </span>
<span class="c"># lui même les commandes comprises dans ce script. On aurait tout de fois pu lui faire </span>
<span class="c"># executer du python, par exemple, en mettant #!/usr/bin/python a la place.</span>
<span class="nb">echo</span> <span class="s2">&quot;this is a test of bash as a simple script manager&quot;</span> <span class="c"># echo est une commande d&#39;affichage de message.</span>
<span class="nb">echo</span> <span class="s2">&quot;what&#39;s your name, user?&quot;</span>
<span class="nb">read </span>your_name <span class="c"># la commande read permet de demander a l&#39;utilisateur de donner une </span>
<span class="c"># information, stockée dans la variable en paramètre. </span>
<span class="nb">echo</span> <span class="nv">$your_name</span> <span class="s2">&quot;is your name&quot;</span> <span class="c"># echo permet aussi d&#39;afficher la valeur de variables. </span>
<span class="c"># Ici, on renvoie la variable remplie précédemment, suivie d&#39;un message. </span>
<span class="nb">exit</span> <span class="c"># cet appel a exit n&#39;est pas obligatoire, mais donne un aspect plus </span>
<span class="c"># propre au code. Il ne quittera pas la session de terminal, cependant.</span>
</pre></div>
</td></tr></table>
<p>Voila. Ce script bash ne sert pas a grand chose, mais il a le mérite
d'être clair quand aux capacités et a la simplicité du bash en tant que
language de programmation. Alors en effet, nous n'avons ici absolument
pas utilisé les capacités de bash en lui même, et n'avons fait que le
renvoyer a des programmes externes (sauf read, il est vrai). Voyons
maintenant la syntaxe de bash quand il s'agit d'utiliser les structures
de contrôle:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash </span>
<span class="nb">echo</span> <span class="s2">&quot;welcome to this second bash program. would you please kindly enter the name of the machine you&#39;re running this on?&quot;</span>
<span class="nb">read </span>host_name
<span class="k">if</span> <span class="o">[</span> <span class="nv">$host_name</span> <span class="o">==</span> <span class="nv">$HOSTNAME</span> <span class="o">]</span> <span class="c">## voici la syntaxe du if. Attention a bien penser a mettre les espaces avant la première variable, et après la seconde. La variable $HOSTNAME ici utilisée est une variable présente par défaut sur le système. </span>
<span class="k">then </span><span class="nb">echo</span> <span class="s2">&quot;you told the truth!&quot;</span>
<span class="k">fi</span> <span class="c">## le fi est la commande fermant le if, tout comme le EndIf en basic. C&#39;est un peu vieillot, mais important en bash. </span>
<span class="k">if</span> <span class="o">[</span> <span class="nv">$host_name</span> !<span class="o">=</span> <span class="nv">$HOSTNAME</span> <span class="o">]</span> <span class="c">## l&#39;opérateur != est l&#39;inverse de ==, il vérifie donc si les deux variables ne sont pas les mêmes. </span>
<span class="k">then </span><span class="nb">echo</span> <span class="s2">&quot;you lied!&quot;</span>
<span class="k">fi </span>
<span class="nb">exit</span>
</pre></div>
</td></tr></table>
<p>Voila un petit programme permettant d'apprendre la syntaxe du if en
bash. comme vous pouvez le voir, le language est plutôt lite, et la
structure if n'est pas très difficile a prendre en main.</p>
<p>Passons maintenant au while:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5
6
7</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash</span>
<span class="nb">echo</span> <span class="s2">&quot;what is your name?&quot;</span>
<span class="nb">read </span>name
<span class="k">while</span> <span class="o">[</span> 1 &lt; 10 <span class="o">]</span> <span class="c">## le while se présente sous la forme while (truc); do (machin); done. Les [] sont en fait des programmes differents, inclus dans bash.</span>
<span class="k">do </span><span class="nb">echo</span> <span class="s2">&quot;i love&quot;</span> <span class="nv">$name</span>
<span class="k">done</span>
<span class="nb">exit</span>
</pre></div>
</td></tr></table>
<p>Ce petit programme permet d'observer les bases de while (qui est la
boucle de base en bash).</p>
<p>Le troisième opérateur de bash est case. Voyons:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash</span>
<span class="nb">echo</span> <span class="s2">&quot;please enter a number between one and five&quot;</span>
<span class="nb">read </span>number
<span class="k">case</span> <span class="nv">$number</span> in
1<span class="o">)</span>
<span class="nb">echo</span> <span class="s2">&quot;the choosen number was one&quot;</span>
;;
2<span class="o">)</span>
<span class="nb">echo</span> <span class="s2">&quot;the choosen number was two&quot;</span>
;;
3<span class="o">)</span>
<span class="nb">echo</span> <span class="s2">&quot;the choosen number was three&quot;</span>
;;
4<span class="o">)</span>
<span class="nb">echo</span> <span class="s2">&quot;the choosen number was four&quot;</span>
;;
5<span class="o">)</span>
<span class="nb">echo</span> <span class="s2">&quot;the choosen number was five&quot;</span>
;;
*<span class="o">)</span>
<span class="nb">echo</span> <span class="s2">&quot;this number is not correct&quot;</span>
;;
<span class="k">esac</span>
<span class="nb">exit</span>
</pre></div>
</td></tr></table>
<p>case est un opérateur plus complexe a utiliser a bon escient, et sert a
faire des ifs multiples sans avoir a taper des dizaines de lignes de
code.<br />
(pour ceux qui auraient du mal avec cet opérateur, il faut comprendre
que le code vérifie chacune des conditions : le 1) est validé si la
valeur de \$number est 1, le 2) est validé si cette valeur est 2, etc..
le *) désigne toutes les valeurs, et est donc validé si aucune autre
valeur n'a précédemment acceptée.</p>
<p>Quelques notions manquent ici:<br />
- les nombres aléatoires sont générés par un appel a la variable
\$RANDOM, qui renvoie un nombre aléatoire entre 0 et 32767 (un entier a
16 bits donc). il est possible de faire des invocations a des nombres
aléatoires plus grands, mais les méthodes permettant de faire cela sont
plus complexes, et je ne les aborderai donc pas ici.<br />
- comme vous avez pu le constater, les variables sont désignées en tant
que telles par l'utilisation d'un symbole \$ au début de leur nom.
Ainsi, echo number renverra "number", tandis que echo \$number renverra
le résultat de la variable \$number.<br />
être utilisées dans un programme bash.<br />
- comme vous avez pu le constater, les commandes doivent tenir en
théorie en une ligne. Cependant, le caractère \ permet de retourner a
la ligne en faisant considérer a bash qu'il s'agit de la même ligne.</p>
<p>Globalement, il faut admettre que bash n'a pas vocation a être un
langage de programmation extrêmement développé. Sans framework
graphique, avec peu de manières d'utiliser de grandes variables, ou
encore une gestion de la mémoire risible, bash n'a rien d'un langage de
développement professionnel.<br />
Cependant, le simple fait qu'il soit considéré comme un langage de
programmation a part entière font de lui un langage de script d'une
puissance incontestable, et sa simplicité et sa grande popularité font
de lui un langage de choix pour apprendre la programmation simplement et
sans trop se prendre la tête.</p>
<p>J'espère que cet article aura été utile a certain-e-s, et je vous
souhaite bonne chance dans votre découverte de la programmation (n'allez
pas voir ceux qui font de l'orienté objet, c'est des méchants :3)</p></div>
</div>
<hr />
<div class="article">
<h1><a href="//wxcafe.net/posts/%D/les-differentes-couches-dun-systeme-dexploitation/">Les différentes couches d'un système d'exploitation</a></h1>
<div class="well small"><footer class="post-info">
<span class="label">Date</span>
<span class="published" title="2012-09-06T23:29:00+02:00">
<i class="icon-calendar"></i> Thu 06 September 2012
</span>
<br />
<span class="label">By</span>
<a href="//wxcafe.net/author/wxcafe.html"><i class="icon-user"></i>Wxcafe</a>
<br />
<span class="label">Category</span>
<a href="//wxcafe.net/category/teaching/"><i class="icon-folder-open"></i>Teaching</a>
<br />
</footer><!-- /.post-info --></div>
<div class="summary"><p>Étant utilisateur plus ou moins fidèle de GNU/Linux depuis quelques
années (plus ou moins, parce que j'ai toujours un Windows en dual boot,
principalement pour les jeux (possiblement plus pour longtemps, avec
l'arrivée de Steam pour Linux... ) ), je commence a connaître plus ou
moins bien mon système. Or il y a plusieurs choses a savoir sur les
systèmes d'exploitation, et celle dont je vais parler aujourd'hui, c'est
le système de couches.</p>
<p>Un système d'exploitation (de type UNIX, \&lt;troll>enfin un vrai système quoi.
\&lt;/troll>) incorpore plusieurs systèmes de couches.</p>
<p>Ainsi, Linux (le noyau) a commencé en étant un kernel monolithique,
c'est a dire que tous les composants sont intégrés au kernel. Ce qui
signifie que rien ne peut être ajouté au noyau sans recompiler celui ci.
Or, quand on sait que le noyau comprend entre autres les drivers du
matériel et des systèmes de fichier, cela peut poser des problèmes quand
a la taille du kernel et a la licence libre de ce dernier. </p>
<p>Depuis un certain temps, le kernel linux est devenu un kernel modulaire, ce qui
signifie que des modules peuvent être chargé a tout moment en cours
dexécution, ce qui permet l'utilisation de nouveaux systèmes de
fichiers a chaud, ou l'insertion de matériel et l'installation de
drivers sans interrompre lexécution du système (Windows utilise un
système de fausse installation de drivers pour le matériel externe, et
un système de pré-installation des drivers pour les périphériques dits
"plug and play")</p>
<p>Après le noyau intervient le système. Or, au tous premiers instants du
boot, les systèmes GNU/Linux utilisent un système permettant de limiter
l'utilisation de ressources systèmes si elles ne sont pas nécessaires,
et incorpore ainsi un système dit de "runlevels"</p>
<p>Ainsi, au runlevel 0, le système s'éteint après avoir booté. Ainsi, ce
runlevel permet de tester le bon démarrage du système sans avoir a
effectuer de manipulation pour le ré-éteindre</p>
<p>Le runlevel 1 est appelé mode single user, et c'est un nom plutôt adapté
étant donné que ce runlevel donne accès a un système en étant
automatiquement loggé en tant que root, avec tous les autres
utilisateurs désactivés, de même que tous les systèmes de réseaux</p>
<p>Le runlevel 2 est appelé mode multi user, et vous mets en face d'un
système classique. en ligne de commande, mais avec tous les systèmes de
réseau désactivés.</p>
<p>Le runlevel 3 est le même que le 2, mais avec les systèmes de réseaux
activés.</p>
<p>Le runlevel 4 n'est pas officiellement défini, et est censé être
activable en fonction des besoins de l'utilisateur. Sur la plupart des
distributions grand public, ce runlevel est lié au...</p>
<p>Runlevel 5! Multi-user, networking, with working GUI! c'est le système
tel que vous le connaissez, avec l'interface graphique et le système de
login graphique.</p>
<p>Le runlevel 6, enfin, est le bien nommé "reboot", qui reboot la machine
quand il devient le runlevel courant.</p>
<p>(Il est a noter que Debian, et donc toutes les distribs qui en sont
dérivées, ne font pas de distinction entre les differents runlevels du 2
au 5. Ainsi, Ubuntu fonctionne par défaut au runlevel 2, avec un login
et une interface graphique, et un mode réseau fonctionnel, bref avec des
fonctionnalités qui ne sont normalement disponibles que sous le runlevel 5.)</p>
<p>Il est possible de changer de runlevel grâce a la commande runlevel
(oui, c'est évident...)</p>
<p>Les systèmes Linux utilisent aussi un système dit de SandBox , qui en
informatique est un système permettant d'isoler les processus les uns
des autres. Ainsi, la pile réseau, qui est le système auquel les
différents processus envoient les différents paquets qui doivent sortir
de la machine , et qui redistribue ces paquets, est isolée du reste du
système, en cela qu'aucun des autres processus ne peuvent modifier cette
pile hors du runlevel 1 ou 2.</p>
<p>De la même façon, le navigateur chrom/ium fait fonctionner tous les
onglets, ainsi que toutes les extensions, dans des processus différents.
Certaines distributions linux implémentent un système de cette sorte
pour toutes les applications, ou seulement pour certaines. ainsi Chakra
Linux a un système d'installation d'applications dans des disques
virtuels, ce qui permet une sécurité totale du processus.</p>
<p>Voila, j'espère vous en avoir appris un peu sur le fonctionnement des
différentes couches de linux, et j'espère que cet article vous poussera
a tester un peu votre système et a vous amuser avec les différents
runlevels</p></div>
</div>
<hr />
<div class="article">
<h1><a href="//wxcafe.net/posts/%D/la-programmation-expliquee-simplement/">La programmation expliquée simplement</a></h1>
<div class="well small"><footer class="post-info">
<span class="label">Date</span>
<span class="published" title="2012-08-27T00:22:00+02:00">
<i class="icon-calendar"></i> Mon 27 August 2012
</span>
<br />
<span class="label">By</span>
<a href="//wxcafe.net/author/wxcafe.html"><i class="icon-user"></i>Wxcafe</a>
<br />
<span class="label">Category</span>
<a href="//wxcafe.net/category/teaching/"><i class="icon-folder-open"></i>Teaching</a>
<br />
</footer><!-- /.post-info --></div>
<div class="summary"><p>Salut!<br />
Tout d'abord, je tiens a m'excuser de ne pas avoir eu le temps d'écrire
récement, mais j'ai eu la chance d'avoir un PC a monter, donc j'ai passé
pas mal de temps assez occupé. </p>
<p>Enfin, après un certain temps a farfouiller au millieu des connecteurs
SATA et a apprendre que, oui, l'alimentation sert aussi pour les disques
durs, je suis de retour pour un court article.<br />
Du coup, je m'étais dit que j'allais reprendre sur le thème de
l'informatique expliquée au grand public, en tentant d'aller un peu plus
loin que la dernière fois sur le thème de la programmation<br />
Ce qu'il faut comprendre, c'est la facon dont fonctionne un ordinateur.
Si a peu près tout le monde sait que "les ordinateurs, ils ne
comprennent que les 1 et les 0!", peu de gens savent comment cela
fonctionne en détail. </p>
<p>Si vous êtes sur ce blog, il y a pas mal de chance que vous ayez déjà
des notions de base en informatique. Ainsi, vous savez surement que les
ordinateurs fonctionnent avec des programmes, qui sont composés de
code.<br />
Ainsi, il faut comprendre que le code (source) est "compilé" en un
fichier "binaire". Un fichier binaire est un fichier comprenant les
instructions telles quexécutées par le processeur, et donc absolument
illisible pour un humain. </p>
<p>La compilation est le processus qui transforme le code source en
binaire executable. Les binaires ont, sous Windows, l'extension .exe,
tandis que sous les systèmes UNIX-like, ils n'ont pas d'extension
particulière.<br />
Ceci étant dit, il faut comprendre que certains langages sont plus
proches que d'autres du langage processeur, les langages les plus
proches sont dits de "bas niveau". Les langages les plus éloignés sont
donc dits de haut niveau. </p>
<p>Par exemple, l'assembleur est l'un des languages de plus bas niveau,
tandis que python par exemple est un langage de plus haut niveau. Les
langages de haut niveau sont souvent bien plus simples a comprendre et a
apprendre que les langages de bas niveau </p>
<p>Ainsi, en C, un langage de niveau relativement bas, pour afficher
"hello world" sur l'écran, le code nécessaire est :</p>
<div class="highlight"><pre><span class="cp">#include </span>
<span class="kt">void</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
<span class="n">printf</span><span class="p">(</span><span class="s">&quot;hello world&quot;</span><span class="p">);</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
<p>le même programme en python s'écrit :</p>
<div class="highlight"><pre><span class="n">print</span> <span class="s">&quot;hello world&quot;</span>
</pre></div>
<p>et n'a pas besoin d'être compilé , puisqu'il peut être intepreté
directement. </p>
<p>Python utilise en effet un système similaire a Java en ayant un
interpréteur dit "runtime" ou "temps réel", qui interprète le programme
sans le compiler. Java utilise un système légèrement différent, puisque
le code a besoin d'être compilé, mais est interpreté par un interpréteur
et non par le processeur. </p>
<p>Cette méthode permet le fameux "code once, run everywhere", ce qui
signifie que le même code est exécutable sur quasiment tous les systèmes
d'exploitation (en fait, tous ceux sur lesquels linterpréteur est
disponible.)</p>
<p>Voila, je vous laisse sur le fonctionnement de Java et de Python, et je
vais me coucher.<br />
A bientôt!</p></div>
</div>
<hr />
<div class="article">
<h1><a href="//wxcafe.net/posts/%D/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere/">GNU/Linux pour les non technophiles, ou l'OS libre pour votre grand-mère</a></h1>
<div class="well small"><footer class="post-info">
<span class="label">Date</span>
<span class="published" title="2012-08-22T20:33:00+02:00">
<i class="icon-calendar"></i> Wed 22 August 2012
</span>
<br />
<span class="label">By</span>
<a href="//wxcafe.net/author/wxcafe.html"><i class="icon-user"></i>Wxcafe</a>
<br />
<span class="label">Category</span>
<a href="//wxcafe.net/category/teaching/"><i class="icon-folder-open"></i>Teaching</a>
<br />
</footer><!-- /.post-info --></div>
<div class="summary"><p>GNU/Linux est un vaste et extraordinaire territoire technologique, mais
je ne vais pas m'attarder ici sur les aspects profondément techniques de
ce territoire pour faire plutôt une sorte d'introduction a ce qu'est
vraiment GNU/Linux, pour les gens n'ayant aucune ou très peu de
connaissances en informatique.</p>
<p>GNU/Linux, que jabrégerai ici en Linux pour plus de simplicité, est un
Système d'Exploitation. Un système d'exploitation est, pour simplifier,
un ensemble d'outils informatiques qui vous permettent d'utiliser votre
ordinateur, ainsi, Windows est un système d'exploitation. L'abréviation
de système d'exploitation (Operating System en anglais) est OS. Les 4
principaux OS existants aujourd'hui sont Windows, Mac OS, GNU/Linux, et
Solaris. Les trois derniers sont issus d'un autre système, plus ancien,
nommé UNIX.</p>
<p>De ce fait, on pourrait penser que Linux remplace complètement Windows
une fois installé, et comprend une interface graphique, et toutes sortes
d'utilitaires permettant a l'utilisateur d'utiliser le système (sous
Windows, pensez a l'explorateur de fichiers, ou a Internet Explorer.
Pour l'interface graphique, pensez a... Pensez que votre système affiche
autre chose que des lignes de commande.) Or non, une fois installé,
Linux en lui même ne vous afficherait aucune interface graphique, et
s'il est effectivement livré avec des utilitaires, ils ne sont que des
programmes en ligne de commande. Autant les utilisateurs avancés sauront
s'en servir, et pourront argumenter que c'est plus efficace ou plus
rapide, autant les utilisateurs basiques préfèrent une interface
graphique. Alors comment en obtenir une?</p>
<p>Ici, il convient de faire une précision importante. Si il n'existe
qu'une seule version de Windows, ou de Mac OS, il existe en fait
plusieurs centaines de "versions" différentes de Linux. Appelées
distributions, ces dernière sont développées par des groupes
complètement séparés, et se basent sur le fait que Linux soit
entièrement placé sous licence libre (ce qui leur permet de l'utiliser a
leur guise, a condition que leur travail soit lui aussi placé sous
licence libre). De ce fait, de nombreuses distributions existent et se
développent en parallèle. On peut ainsi citer <a href="http://debian.org">Debian</a>, qui est l'une
des distributions les plus importantes, ou encore <a href="http://ubuntu.com">Ubuntu</a>, qui est
l'une des plus connues et des plus simples a utiliser.</p>
<p>Ainsi, ces distributions intègrent une interface graphique. Cependant,
grâce a la liberté dont bénéficient les développeurs sous Linux, il
existe de nombreuses interfaces graphiques différentes : <a href="unity.ubuntu.com">Unity</a>, la
nouvelle interface d'Ubuntu; <a href="gnome.org">GNOME</a> , une interface qui vise a la
simplicité; ou encore <a href="http://kde.org/">KDE</a>, une interface utilisateur ressemblant a
Windows 7.</p>
<p>Ainsi, le choix astronomique de distributions Linux a bien un sens :
chacune d'entre elle intègre des outils différents. Par exemple, Debian
intègre GNOME 2, qui est l'ancienne version de GNOME, ce qui la rend
particulièrement stable. Ubuntu intègre Unity, ce qui en fait une
distribution particulièrement intuitive. Linux Mint intègre Cinnamon,
qui est une version dérivée de GNOME 3, ce qui permet encore une autre
expérience. Et Arch Linux n'intègre pas d'interface graphique du tout,
ce qui permet a l'utilisateur de choisir entre les multiples interfaces
existantes.</p>
<p>Ce qu'il est important de retenir de cela, c'est que Linux est un OS
complètement libre, ce qui signifie que n'importe qui peut modifier et
utiliser tout le code de Linux gratuitement et comme il l'entend. Ainsi,
Linux est un OS qui est véritablement créé par des passionnés, pour tous
et toutes. Surtout, il convient de retenir que Linux n'est pas compliqué
a utiliser, ni a installer. Windows et Mac OS ne le sont pas non plus.
Cependant, Linux donne la possibilité a l'utilisateur de le rendre
affreusement complexe, mais aussi de le rendre adapté a ses besoins,
quels que soient ceux ci. Et c'est la que réside l'incroyable puissance
de ce Système d'Exploitation. Il est extraordinairement adaptable.</p>
<p>N'hésitez donc pas a le présenter a vos proches, même s'ils ne sont pas
technophiles. Ils pourraient adorer, et peut être même le devenir :)</p>
<p>A bientôt!</p></div>
</div>
<hr />
<div class="article">
<h1><a href="//wxcafe.net/posts/%D/debuts-presentation-etc/">Débuts, présentation, etc...</a></h1>
<div class="well small"><footer class="post-info">
<span class="label">Date</span>
<span class="published" title="2012-08-18T20:27:00+02:00">
<i class="icon-calendar"></i> Sat 18 August 2012
</span>
<br />
<span class="label">By</span>
<a href="//wxcafe.net/author/wxcafe.html"><i class="icon-user"></i>Wxcafe</a>
<br />
<span class="label">Category</span>
<a href="//wxcafe.net/category/notes/"><i class="icon-folder-open"></i>Notes</a>
<br />
</footer><!-- /.post-info --></div>
<div class="summary"><p>Bonjour!</p>
<p>Je m'appelle Wxcafé, et ça fait pas mal de temps que je sévis sur
Twitter, mais aussi sur IRC (Je traîne pas mal sur
irc.freenode.net/##nolife et #debian-fr)</p>
<p>J'ai 17 ans, je suis donc étudiant (bac général), je vis a Paris, et je
fais partie de ce genre de personne qui sont capables d'investir tout
leur temps et leur énergie a sintéresser a un sujet en particulier, et
qui ne peuvent pas vivre sans leurs passions, avec une petite différence
cependant, qui est que je mintéresse a plusieurs choses :
l'informatique, qui est un champ tellement large qu'on peut passer une
vie a apprendre des choses dessus, et plus particulièrement à
l'informatique avancée (Noyaux dérivés d'UNIX et de Linux, outils libres
{bien que n'étant pas un barbu intégriste [ceci est un troll assumé. Les
trolls seront a partir de maintenant indiqués avec le tag [tr]] du
libre, je préfère utiliser de l'open-source si c'est possible},
programmation en C, python et java, etc...) , mais aussi a
lélectronique. </p>
<p>Dans un tout autre registre, je mintéresse aussi
beaucoup aux différents aspects du féminisme et des égalités sexuelles
(anti-homophobie/transphobie/biphobie/etc , anti-sexisme, et cætera) ,
et a la culture dite "geek" en général.</p>
<p>Je tenterai de poster ici le plus souvent possible, mais j'ai de gros
problèmes en terme de régularité de post, donc ne vous inquiétez pas si
vous ne voyez rien pendant deux semaines.</p>
<p>Merci beaucoup de votre attention, et a bientôt!</p></div>
</div>
<hr />
<div class="pagination">
<ul>
<li class="prev"><a href="//wxcafe.net/author/wxcafe2.html">&larr; Previous</a></li>
<li class="">
<a href="//wxcafe.net/author/wxcafe.html">1</a>
</li>
<li class="">
<a href="//wxcafe.net/author/wxcafe2.html">2</a>
</li>
<li class="active">
<a href="//wxcafe.net/author/wxcafe3.html">3</a>
</li>
<li class="next disabled"><a href="#">&rarr; Next</a></li>
</ul>
</div>
</div><!--/span-->
<div class="span3 well sidebar-nav" id="sidebar">
<ul class="nav nav-list">
<!-- Categories links -->
<li class="nav-header"><h4><i class="icon-folder-close icon-large"></i> Categories</h4></li>
<li>
<a href="//wxcafe.net/category/hacking/">
<i class="icon-folder-open icon-large"></i>Hacking
</a>
</li>
<li>
<a href="//wxcafe.net/category/language/">
<i class="icon-folder-open icon-large"></i>Language
</a>
</li>
<li>
<a href="//wxcafe.net/category/notes/">
<i class="icon-folder-open icon-large"></i>Notes
</a>
</li>
<li>
<a href="//wxcafe.net/category/oses/">
<i class="icon-folder-open icon-large"></i>OSes
</a>
</li>
<li>
<a href="//wxcafe.net/category/programmation/">
<i class="icon-folder-open icon-large"></i>Programmation
</a>
</li>
<li>
<a href="//wxcafe.net/category/ranting/">
<i class="icon-folder-open icon-large"></i>Ranting
</a>
</li>
<li>
<a href="//wxcafe.net/category/teaching/">
<i class="icon-folder-open icon-large"></i>Teaching
</a>
</li>
<li>
<a href="//wxcafe.net/category/tutorial/">
<i class="icon-folder-open icon-large"></i>Tutorial
</a>
</li>
<li>
<a href="//wxcafe.net/category/tutoriel/">
<i class="icon-folder-open icon-large"></i>Tutoriel
</a>
</li>
<hr>
<!-- Social links -->
<li class="nav-header"><h4><i class="icon-exchange"></i> social</h4></li>
<a class="FlattrButton" style="display:none;"
title="//wxcafe.net"
style="padding-top: 10px;"
rel="flattr;
url://wxcafe.net;
title://wxcafe.net;
button:compact;
popout:0;
uid:wxcafe;
category:blog;"
href="//wxcafe.net">flattr</a>
<li><a href="https://twitter.com/wxcafe"><i class="icon-twitter icon-large"></i> Twitter</a></li>
<li><a href="https://github.com/wxcafe"><i class="icon-github icon-large"></i> Github</a></li>
<li><a href="mailto://wxcafe@wxcafe.net"><i class="icon-envelope icon-large"></i> Email</a></li>
<li><a href="https://data.wxcafe.net/wxcafe.asc"><i class="icon-key icon-large"></i> Gpg</a></li>
<li><a href="finger://wxcafe@wxcafe.net"><i class="icon-terminal icon-large"></i> Finger</a></li>
<li><a href="http://leloop.org/where.html"><i class="icon-map-marker icon-large"></i> IRL</a></li>
<hr>
<!-- Links -->
<li class="nav-header"><h4><i class="icon-external-link"></i> Links</h4></li>
<li><a href="https://github.com/wxcafe/blog-source"><i class="icon-code icon-large "></i> Source!</a></li>
<li><a href="http://paste.wxcafe.net"><i class="icon-paste icon-large "></i> Zerobin</a></li>
<li><a href="http://git.wxcafe.net"><i class="icon-github-sign icon-large "></i> Public Git</a></li>
<hr>
<!--- RSS feed -->
<li class="nav-header"><h4><i class="icon-rss"></i> feeds</h4></li>
<li><a href="//wxcafe.net/feeds/feed.rss.xml" rel="alternate"><i class="icon-bookmark-empty icon-large"></i> RSS</a></li>
<li><a href="//wxcafe.net/feeds/feed.atom.xml" rel="alternate"><i class="icon-bookmark-empty icon-large"></i> Atom</a></li>
</ul> </div><!--/.well -->
</div><!--/row-->
<hr>
<footer>
<address id="about">
Proudly powered by <a href="http://pelican.notmyidea.org/">Pelican</a>,
which takes great advantage of <a href="http://python.org">Python</a>.<br />
Powered by <a href="https://github.com/getpelican/pelican-themes/tree/master/bootstrap2">bootstrap2</a> theme, thanks!
</address>
</footer>
</div><!--/.fluid-container-->
</body>
</html>