<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>philippewang.info</title>
    <link>http://philippewang.info/</link>
    <description>
    </description>
    <language>fr</language>
    <generator>BASHGXD Another Super HTML Generator XD</generator>

<item>
<guid>http://philippewang.info/blog/2009-01-29-13.00.htm</guid>
<title>Firewire missing
</title>
<link>http://philippewang.info/blog/index.htm</link>
<pubDate> Thu, 29 Jan 2009 13:20:42 +0100 
</pubDate>
<description><![CDATA[
<!-- extra top links-->
<!-- body-content -->
<div>
What the Hell happened with Apple's Firewire? 

No firewire, thus no firewire target disk mode...

While Firewire 800 portable external disks become more and more
available (WD Studio, LaCie Rugged, Seagate FreeAgent, ...), and this
for Apple machines (they are pre-formatted in HFS), Apple removes
firewire from unibody MacBooks.

This does not encourage migration from Mac to Mac, only and maybe from
PC to Mac... (Some even say this encourage “coming back to PC” but
this one is silly speaking.)

Moreover, my 500GB LaCie Rugged can easily achieve better than 60MB/s
sustained transfer rate using Firewire 800, and it's only a 2.5” hdd
inside. Even a 3.5” hdd can't achieve this transfer rate over some
dumb USB2.

Removing Firewire is bad, and we should say it.
</div>
<div>
2009-01-29 </div>
]]></description>
</item>
<item>
<guid>http://philippewang.info/blog/2009-01-29-12.01.htm</guid>
<title>(re) Apple et sa DDR3
</title>
<link>http://philippewang.info/blog/index.htm</link>
<pubDate> Thu, 29 Jan 2009 12:54:21 +0100 
</pubDate>
<description><![CDATA[
<!-- extra top links-->
<!-- body-content -->
<div>
<p>En cherchant un peu, on trouve des informations sur la limitation de
la quantité de DDR3 sur ses derniers MacBook Pro unibody...  Alors
d'abord, le modèle 15” est limité à 4GB sur les données fournies par
Apple, mais des utilisateurs rapportent qu'il n'y a pas de problème
avec 6GB (4+2GB). Cependant, avec 8GB (4+4GB) la machine deviendrait
instable et aurait tendance à complètement planter.
</p>

<p>Et pourtant, la version 17” ne présente pas cette limitation bizarre,
Apple proposant officiellement 8GB.</p>

<p>Bientôt un Core i7 (quad?) dans un MacBook Pro ?</p>
</div>
<div>
2009-01-29 </div>
]]></description>
</item>
<item>
<guid>http://philippewang.info/blog/2009-01-29-12.00.htm</guid>
<title>Transferts de fichiers
</title>
<link>http://philippewang.info/blog/index.htm</link>
<pubDate> Thu, 29 Jan 2009 12:31:01 +0100 
</pubDate>
<description><![CDATA[
<!-- extra top links-->
<!-- body-content -->
<div>
<h3>Vous connaissez SCP (copie via SSH) ? Vous connaissez RSYNC (rsync via rsync ou bien rsync via ssh) ? Vous connaissez Unison (un rsync plus avancé) ?</h3>

<h4>Bon, alors si c'est non, voici un résumé</h4>
<ul>
  <li>SCP : copie sécurisée, pas forcément très performante mais c'est simple comme CP</li>
  <li>RSYNC : copie avec possibilité de ne pas transférer ce qui existe déjà sur la machine réceptrice</li>
  <li>UNISON : comme rsync mais possibilité de synchronisation dans les 2 sens</li>
</ul>

<h4>Introduisons TAR+SSH</h4>
<span>tar c source1 source2 source3 | ssh destination tar xv</span>
<h4>et TAR+GZIP+SSH</h4> 
<span>tar cz source1 source2 source3 | ssh destination tar xzv</span>

<h4>Et voici TAR+<a href="#netcat_note">NC</a></h4>
<span>nc -l 9000 | tar xv</span> # à exécuter sur la destination<br />
<span>tar c source1 source2 source3 | nc destination 9000</span> # à exécuter sur la machine source<br />
9000 peut être remplacé par presque n'importe quelle valeur &gt; 1024 (pour peu qu'elle ne soit pas trop grande et qu'elle ne tombe pas pile sur un port déjà utilisé)

<p>
<strong>tar+nc</strong> peut théoriquement aussi être utilisé dans l'autre sens (dans la pratique c'est moins évident) :<br />
<span>tar c source1 source2 source3 | nc -l 9000</span> # sur la source<br />
<span>nc source 9000 | tar xv</span> # sur la destination
</p>

<strong>tar+gzip+nc</strong> est assez facile, il suffit d'ajouter z aux options de tar

<h5>Bzip2 dans l'affaire ?</h5>
Il vaut mieux éviter tar+bzip2 car bzip2 est optimisé pour le taux de compression, pas pour la rapidité (par rapport à gzip). Pour un transfert sur réseau, bzip2 ferait <u>inutilement</u> chauffer les CPU.

<br />
<em>À l'heure où la santé de notre planète est en danger, on peut bien
essayer d'éviter de consommer de l'énergie pour rien du tout...</em>

<hr />
<h4>Alors, quel intérêt de connaître tout ça ?</h4>
Euh... pas grand intérêt. Il faut bien être un peu geek au moins de temps en temps quand on est informaticien :-P

Plus sérieusement...

<ul>
  <li>SCP : peu performant, pas de gestion des droits (ni chown ni chmod)</li>
  <li>RSYNC : plus performant que SCP et souvent c'est l'idéal</li>
  <li>UNISON : je n'ai toujours pas testé en fait...</li>
  <li>TAR(+GZIP)+SSH : gestion des droits (et de tout ce qui est géré par TAR), efficacité, peu verbeux (voire pas du tout si on ne met pas l'option <span>v</span>), mais quand c'est dans un réseau local, la couche SSL de SSH est généralement consommatrice pour rien...</li>
  <li>TAR(+GZIP)+NC : comme TAR(+GZIP)+SSH mais sans SSL (SSL peut réduire le débit par un facteur de 2 à 5 facilement)</li>
</ul>

<hr />
<h4>À propos de FTP</h4>
<ul>
  <li>FTP demande d'installer un serveur (et les mots de passes transitent en clair). FTP est très mauvais pour transférer beaucoup de fichiers (c'est bien pour transférer un ou deux gros fichiers, pas pour transférer un HOME DIRECTORY par exemple). La gestion des droits (chmod et chown) est ignorée.</li>
  <li>FTPS permet d'utiliser SSL.</li>
  <li>SFTP (sorte de FTP via SSH) est du SCP avec une interface à la FTP.</li>
</ul>

<hr />
<h4>Les vrais inconvénients de TAR(+GZIP)+NC ?</h4>

<ul>
  <li>Il faut utiliser 2 terminaux au lieu d'un seul</li>
  <li>On gagne en taux de transfert par rapport aux solutions avec chiffrement SSL, mais NC est super mal codé ! Pardon pour les auteurs de NC, mais les performances sont vraiment mauvaises sans raison apparente... Oui je le recoderai quand je trouverai la motivation...</li>
</ul>

DD (commande pour “convertir et copier un fichier”) est aussi mauvais en performances sans raison apparente...

<hr />
<em id='netcat_note'>NC est connu oralement sous le nom de NET CAT, puisqu'il s'agit en effet d'une version réticulaire de la commande CAT.</em>
</div>
<div>
2009-01-29 </div>
]]></description>
</item>
<item>
<guid>http://philippewang.info/blog/2008-12-02-18.00.htm</guid>
<title>Apple a ouvert le bal de la DDR3 dans les ordinateurs portables...
</title>
<link>http://philippewang.info/blog/index.htm</link>
<pubDate> Tue, 02 Dec 2008 18:06:53 +0100 
</pubDate>
<description><![CDATA[
<!-- extra top links-->
<!-- body-content -->
<div>
<p>... ou alors une autre marque l'a fait avant, mais alors cela n'a pas
beaucoup marqué les nouvelles.</p>

<p>Personnellement, cela me fait plutôt plaisir qu'on arrête enfin
d'utiliser systématiquement la DDR2 667MHz dans les ordinateurs
portables, second goulot d'étranglement après le disque dur, premier
goulot d'étranglement si le disque dur n'est pas sollicité. Passer de
667 à 1066 MHz, c'est gagner près de 60% de bande passante. Bon, cela
n'est pas sans mauvais effet, le temps de latence en nombre de cycles
a probablement augmenté par la même occasion. Mais globablement cela
signifie quand même que le débit de données entre le CPU et la RAM 
a été significativement augmenté. 
</p>
<p>
Cela est important dans la mesure où le nombre de coeurs dans le CPU
est désormais bien augmenté alors qu'on n'augmente que très lentement
les capacités d'échanges de données entre le bloc CPU multicoeur et le
bloc RAM multicannal.
</p>
<p>
Mais alors le coup de ne plus proposer que des écrans brillants, ça
c'est vraiment nul. Je n'ignore ni n'enterre les avantages des écrans
brillants, mais on a passé des années à essayer d'avoir des écrans
cessant de refleter l'environnement face auquel il se trouve, et là il
faut que tous ces fabriquants d'ordinateurs portables proposent des
écrans brillants probablement juste parce qu'ils tapent plus à l'oeil
commercialement.
</p>
<p>
J'espère qu'ils vont reproposer des écrans mats prochainement, ainsi
qu'une intégration du port Firewire 800 dans le MacBook 13”.  Ah
aussi, les deux ports USB du MacBook Pro se trouvent désormais
côte-à-côte, et ça ce n'est vraiment pas très pratique.
Espérons également que côté MacBook Air, Apple propose une connectique
un peu meilleure que l'actuelle qui est un peu minable...
</p>
<p>
Rappelons au passage que l'USB 2 a déjà 8 ans. Le débit offert par
cette connectique est quand même bien dépassé ! Vivement qu'on passe
à l'USB 3. Et dire que le Firewire 800 a déjà 6 ans...
</p>
<p>
Peut-on espérer avoir des ports Ethernet à connecteurs RJ45
compatibles avec le Firewire 800 ? (oui là je rêve)
</p>
<p>
Ah, dernière chose : j'espère qu'on pourra bientôt avoir plus de 4GB
de RAM dans le portable. Un maximum de 8GB à l'heure actuelle serait
le bienvenu, surtout que ce ne sont pas les limitations techniques qui
jouent, mais le côté commercial...  Et pourquoi donc 8GB ? Tout
simplement parce que l'utilisation du disque dur comme extension de
mémoire physique n'est vraiment pas efficace. Ah, pour quoi faire ? La
virtualisation est maintenant bien opérationnelle. Il est possible de
faire fonctionner plusieurs systèmes d'exploitation sur une seule et
même machine physique en parallèle, grâce à des machines virtuelles.
Et ces machines virtuelles consomment potentiellemet beaucoup de RAM.
</p>
</div>
<div>
2008-12-02 </div>
]]></description>
</item>
<item>
<guid>http://philippewang.info/blog/2008-08-08-01.00.htm</guid>
<title>Une petite histoire de tunnels avec SSH
</title>
<link>http://philippewang.info/blog/index.htm</link>
<pubDate> Fri, 08 Aug 2008 01:22:51 +0200 
</pubDate>
<description><![CDATA[
<!-- extra top links-->
<!-- body-content -->
<div>
<p><strong>Scénario (faisant intervenir SSH, donc ceux qui ne veulent pas de SSH dans leur vie ne risquent pas d'y trouver un quelconque intérêt) :</strong></p>

<p>On veut pouvoir accéder au réseau R1 qui est un réseau local non accessible directement (typiquement derrière un "routeur NAT" - i.e. ce qu'on appelle communément "routeur" dans le commerce et qu'on a à la maison alors qu'en fait c'est pas trop un routeur).</p>

<p>Les machines du réseau R1 ont accès vers l'extérieur mais l'extérieur n'a pas accès direct aux machines (même situation typique que précédemment).</p>

<p>On peut en général configurer le routeur pour qu'il envoie ce qui arrive sur le port 22 à une machine spécifique du réseau. Mais si la machine qu'on veut contacter est changeante (i.e. pas toujours la même), ou toute autre situation qui fait qu'on ne peut pas mettre cette configuration en place, alors ça devient un peu plus tordu.</p>

<p>On veut pouvoir - sans toucher au routeur ni à quelconque configuration réseau - accéder au réseau local (donc à au moins une machine). </p>

<p><strong>Solution :</strong></p>

<p>Soit M1 une machine toujours accessible de l'extérieur (par exemple un serveur loué ou un serveur à la maison) (on prend le luxe d'ajouter cette machine aux éléments du scénario).</p>

<p>On prend n'importe quelle machine (nommons l'heureuse élue "MR1") du réseau R1 ayant un client et un serveur SSH, on ouvre une connexion à double sens avec la machine M1 :</p>

<pre>   ssh -R 1111:0.0.0.0:22 M1</pre>

<p>pour la rendre plus robuste avec des moyens peu chers, il suffit d'exécuter dans un "screen" (cf. "man screen" pour ceux qui ne connaissent pas) :</p>

<pre>   while true ; do ssh -R 1111:0.0.0.0:22 M1 ; done</pre>

<p>Désormais, depuis M1, on peut se connecter en SSH à MR1.</p>

<p>On peut maintenant jouer avec des tunnels !</p>

Pour se connecter en SSH à MR1 en passant par M1 :<br/>
<br/>
1ere option (super tordue) :<br/>
<pre>  ssh -o "ProxyCommand=ssh M1 ssh localhost -p 1111 nc localhost 22" dummyhost</pre>
=> cela connecte directement sur MR1
<br/>
<br/>
2nde option :<br/>
sur la machine client, exécuter :
<pre>  ssh -L 2222:localhost:1111 cat</pre>
puis exécuter
<pre>  ssh localhost -p 2222</pre>

Pour accéder au pages web intranet du réseau R1 (comme si on était sur la machine MR1) :<br/>

<pre>ssh -L 8080:localhost:8080 ssh -D 8080 localhost -p 1111</pre>

puis demander au navigateur de passer par le proxy en SOCKS5 sur localhost avec le port 8080.

<div>
remarques : 

<ul>
  <li>localhost pourra être remplacé par d'autres appellations de "l'hôte courant" (0.0.0.0, 127.0.0.1, lepetitnomdevotremachine, ...) pour éviter les problèmes de signatures de serveurs</li>
  <li>pour utiliser les doubles ssh, il faut avoir des jeux de clefs ssh opérationnels (soit sans mot de passe, soit avec mot de passe + agent ssh)</li>
</ul>

</div>

</div>
<div>
2008-08-08 </div>
]]></description>
</item>
<item>
<guid>http://philippewang.info/blog/2008-06-30-00.01.htm</guid>
<title>Plus de 18000 emails reçus ces 3 dernières années [...]
</title>
<link>http://philippewang.info/blog/index.htm</link>
<pubDate> Mon, 30 Jun 2008 00:38:50 +0200 
</pubDate>
<description><![CDATA[
<!-- extra top links-->
<!-- body-content -->
<div>
<p>Plus de 18000 emails reçus ces 3 dernières années dans ma boîte
principale.  (Il y a beaucoup plus dans ma boîte secondaire mais je
n'en lis alors qu'une partie).  Cela fait plus de 6000 mails par
an. Ce qui fait en moyenne plus de 15 mails par jour.  Mais en fait,
cette moyenne a peu de sens ! En ne comptant que les mails de 2008,
j'en ai environ 6000 déjà, ce qui fait environ 30 mails par jour en
2008.  Tout ça pour dire que ça se peut que j'oublie de répondre à
certains mails... :-o</p>
<p>
En fait j'étais surtout curieux de savoir combien de mails je reçois par jour ces derniers mois...</p>
</div>
<div>
2008-06-30 </div>
]]></description>
</item>
<item>
<guid>http://philippewang.info/blog/2008-06-30-00.00.htm</guid>
<title>SSH dans tous les sens
</title>
<link>http://philippewang.info/blog/index.htm</link>
<pubDate> Mon, 30 Jun 2008 00:15:43 +0200 
</pubDate>
<description><![CDATA[
<!-- extra top links-->
<!-- body-content -->
<div>
<p>Imaginez que vous avez une machine Alice dans un sous-réseau Robert de
machines.  Alice a accès à internet. Mais pour accéder à une machine
du sous-réseau Robert de l'extérieur, ce n'est pas possible, sauf en
passant en SSH par une passerelle.
</p>
<p>
Si tout va bien pour vous, alors pas besoin de lire la suite...
</p>
<p>
Quand ça ne va pas, en général ça veut dire que la passerelle est
faible et qu'elle est plus ou moins surchargée. Dans ce cas, l'accès
aux machines du sous-réseau de Robert est lent.
</p>
<p>
Pour parrer à ça, il existe une solution qui consiste à créer une
autre passerelle. Cela engendre bien sûr des potentiels trous de
sécurité ! Certains paranoïaques pourraient même penser à un cheval de
troie.
</p>

<p>
En tout cas, il suffit d'utiliser l'option -R de la commande ssh.
</p>

<div> La commande
<pre>
ssh -R truc:1234:machin:22 chose "echo ok ; cat"
</pre>
permet, sur la machine machin (la cible finale), de créer un serveur ssh virtuel sur le port 1234 de truc qui redirige toutes les connexions vers le serveur ssh réel qui se situe sur machin. Les contraintes sont que chose doit être contactable directement à partir de machin et que truc soit directement contactable à partir de chose. Les hôtes chose et truc peuvent être la même machine.
</div>
<div>
La commande
<pre>
ssh -R 0.0.0.0:1234:0.0.0.0:22 chezmoi
ou
ssh -R chezmoi:1234:machin:22 chezmoi
</pre>
exécutée sur l'hôte machin du sous-réseau Robert signifie "je veux
que de chezmoi, je puisse contacter machin sans passer par une troisième
machine, en particulier sans passer par la passerelle du sous-réseau Robert".
</div>
<p>
Finalement je ne sais pas si je suis très clair là... Si vous avez des
suggestions d'amélioration, je suis preneur :-)
</p>
</div>
<div>
2008-06-30 </div>
]]></description>
</item>
<item>
<guid>http://philippewang.info/blog/2008-05-10-20.00.htm</guid>
<title>Parfums de glaces...
</title>
<link>http://philippewang.info/blog/index.htm</link>
<pubDate> Sat, 10 May 2008 20:05:54 +0200 
</pubDate>
<description><![CDATA[
<!-- extra top links-->
<!-- body-content -->
<div>
<p>
  Les glaces  Amorino et Berthillon sont tellement  meilleures que les
  glaces habituelles du commerce  que je trouve ces dernières vraiment
  fades.
</p>
<p>
  Ma composition actuelle est la précédente (mangue 60%, chocolat noir
  40%) enrichie de framboise, ce qui donne (mangue 40%, framboise 40%,
  chocolat noir 20%).  Encore mieux  si on ajoute une touche de citron
  à la fin.
</p>
<p>
  Le chocolat noir est  un parfum indétournable pour les irréductibles
  du chocolat, comme  moi.  Mais le chocolat donne  soif...  Alors les
  parfums de  sorbets suivants permettent  de réduire un peu  la "soif
  d'après glaces". La mangue, ce  parfum à la mode, est assez variable
  d'une marque à l'autre, il faut  qu'elle ait du goût et ce n'est pas
  toujours  le  cas  avec   les  grandes  marques  industrielles.   La
  framboise est un parfum classique qui apporte fraîcheur et qui a une
  couleur  naturellement intense  et  magnifique.  Le  mariage de  ces
  parfums forment pour  moi la glace idéale sous  ce soleil d'été venu
  nous rendre visite avant l'heure...
</p>

</div>
<div>
2008-05-10 </div>
]]></description>
</item>
<item>
<guid>http://philippewang.info/blog/2008-04-14-01.00.htm</guid>
<title>Drivers Canon Advanced Printing Technology (CAPT) pour Mac OS X Leopard
</title>
<link>http://philippewang.info/blog/index.htm</link>
<pubDate> Mon, 14 Apr 2008 01:38:37 +0200 
</pubDate>
<description><![CDATA[
<!-- extra top links-->
<!-- body-content -->
<div>
<p>La version 1.70 du pilote Canon CAPT est disponible depuis le mois dernier.

Il apporte la compatibilité avec Mac OS X Leopard.

Les imprimantes concernées sont les LBP5200 et LBP5000.
<br/>
<a href="http://software.canon-europe.com/software/0028785.asp">http://software.canon-europe.com/software/0028785.asp</a>
</p>

<p>
Pendant que j'y suis, je viens de découvrir que Canon a commencé
à diffuser un pilote CAPT pour Linux !
<br/>
<a href="http://software.canon-europe.com/software/0028622.asp">http://software.canon-europe.com/software/0028622.asp</a>
</p>

<p>
Note : liste des pilotes inclus avec Mac OS X Leopard :
<br/>
<a href="http://docs.info.apple.com/article.html?artnum=306684">http://docs.info.apple.com/article.html?artnum=306684</a>
</p>
</div>
<div>
2008-04-14 </div>
]]></description>
</item>
<item>
<guid>http://philippewang.info/blog/2008-04-10-23.00.htm</guid>
<title>Javascript et compagnie...
</title>
<link>http://philippewang.info/blog/index.htm</link>
<pubDate> Thu, 10 Apr 2008 23:07:29 +0200 
</pubDate>
<description><![CDATA[
<!-- extra top links-->
<!-- body-content -->
<div>
<p>Javascript,  c'est un langage  que je  n'aime pas  trop dans  son état
actuel. Les navigateurs ne sont pas foutus d'avoir les mêmes comportements
pour un programme donné, et même pour les fonctions de base.</p>

<p>Par exemple, dans  Safari 3, la méthode sort de  la classe Array ne
se comporte  pas du tout de  la même façon  que la méthode sort  de la
classe  Array chez  Firefox 2  (à  part le  fait que  la méthode  trie
correctement). Chez  Firefox 2,  si on trie  un tableau déjà  trié, on
n'obtient  pas  obligatoirement le  même  tableau.   En  effet, si  un
tableau  comporte  deux  entrées  identiques d'après  la  fonction  de
comparaison,  alors   le  fait  de   retrier  un  tableau   le  change
(obligatoirement d'après  ce que j'ai pu  constater). C'est-à-dire que
si  A[i]  et  A[i+1]  ont  la  même  valeur  d'après  la  fonction  de
comparaison, alors lors du trie,  on peut être sûr qu'ils vont changer
de place.  C'est exactement le comportement contraire avec Safari 3.
</p>

<p>Une autre  chose de  bizare est  que la méthode  sort de  la classe
Array  de Safari  3  préfère  les fonctions  anonymes  plutôt que  les
fonctions  nommées, d'après ce  que j'ai  pu constater...  (La version
avec une fonction nommée fonctionnait bien avec Firefox 2, mais pas du
tout avec Safari  3. L'utilisation d'une fonction anonyme  a résolu le
problème...)
</p>

<p>J'imagine qu'Apple (ou bien les  développeurs de KHTML) se sont dit
que ça  ne servait  à rien de  perdre du  temps à bouger  des éléments
quand rien ne le demande explicitement... En tout cas c'est sûr que ça
joue sur  les performances... -- Je  n'ai aucune idée  de quand datent
les choix d'implantation. Je n'ai pas lu les spécifications ECMA.</p>
</div>
<div>
2008-04-10 </div>
]]></description>
</item>
<item>
<guid>http://philippewang.info/blog/2008-04-10-16.00.htm</guid>
<title>Quelques pensées concernant la programmation...
</title>
<link>http://philippewang.info/blog/index.htm</link>
<pubDate> Thu, 10 Apr 2008 16:01:47 +0200 
</pubDate>
<description><![CDATA[
<!-- extra top links-->
<!-- body-content -->
<div>
<p>L'apprentissage de  la programmation  est quelque chose  de difficile.
D'une part,  les apprentis  font face à  des restrictions  de syntaxes
auxquelles  ils ne  sont  pas habitués,  l'habitude  étant de  pouvoir
écrire  ou parler avec  des fautes  de grammaires  tout en  se faisant
comprendre.   Les ordinateurs  ne  sont pas  capables  de deviner  nos
pensées.  C'est un  fait absolu. Par exemple, un  ordinateur tout neuf
et  isolé  d'internet  et  dépourvu d'encyclopédie  est  incapable  de
répondre à une  question du genre "Combien JFK  avait-il de soeurs ?".
Un être  humain qui ne connaît pas  la réponse ne peut  pas la deviner
avec  une  probabilité totale  de  donner  la  bonne réponse.   Si  on
considère (au hasard) que les Américains avaient pour la plupart entre
0 et 7 soeurs  avec une moyenne de 3 (ces chiffres  sont faux, sauf si
le hasard a  fait qu'ils sont justes...), alors on  peut répondre 3 en
espérant que JFK était dans la moyenne.
Mais dans le fond, quand on ne sait pas, on ne sait pas. C'est pareil
pour les ordinateurs, avec toute l'intelligence artificielle possible
même, l'inconnu n'est pas connu. (Je rappelle cette évidence car il 
existe de nombreuses personnes pensant - consciemment ou non - le
contraire...)
</p>

<p>Alors si on commence à s'intéresser aux comportements des étudiants
qui débutent en programmation, on peut repérer/recenser les erreurs et
les  trier.  On  s'apperçoit  rapidement qu'années  après années,  les
erreurs - sans s'être passé le mot - sont pour la plupart toujours les
mêmes. Oui,  les erreurs sont récurrentes. Le  travail des enseignants
est en grande partie l'autorépétition.  Et il vaut mieux l'accepter le
plus tôt possible, sinon on risque de le vivre assez mal.
</p>

<p>Ce que je me demande, c'est  s'il faudrait mettre en place (dans un
but  pédagogique afin  d'aider  la diffusion  du  savoir) un  meilleur
système d'apprentissage de la programmation, et si oui, quel serait ce
système ?
</p>

<p>
Je pense que  les livres sont de très  bons supports d'apprentissages,
mais  ils deviennent  peut-être de  moins en  moins adéquats  pour les
débutants  en   programmation.   Les  langages   sont  nombreux,  très
nombreux. Mais il y a peu  de révolutions. On a beaucoup de paradigmes
de programmation et les  nouveaux langages n'apportent pas vraiment de
nouveautés, ils sont des combinaisons d'idées existantes.  Bien sûr on
peut chercher la bonne combinaison, on peut clamer l'avoir trouvée, on
peut ajouter  des touches  personnelles vraiment nouvelles,  etc. Mais
dans  le  fond,  on  apporte  peu  de  nouveautés  conceptuelles.   Et
aujourd'hui, le paradigme de base  pour pouvoir faire des calculs dans
les langages de programmation répendus est le paradigme impératif.
</p>

<p>Un langage impératif, c'est un langage où on demande à l'ordinateur
d'exécuter une instruction, puis une seconde et ainsi de suite jusqu'à
la   fin.   Il   est   maintenant  souvent   enveloppé  d'une   couche
supplémentaire  car la  mode est  à la  programmation à  objets  où on
introduit une structure de données  dans le langage.  Un objet est une
valeur qui  est une instance d'une  classe. Une classe  consiste en un
ensemble de descriptions de propriétés qui peuvent être des données ou
des actions (méthodes).  Les classes  sont reliées entre elles par les
histoires de familles, puisqu'on parle d'héritage. Si une classe A est
fille d'une classe B, alors toutes les propriétés de B sont transmises
à A. Après c'est à A d'en faire ce qu'elle en a envie.
</p>

<p>Mais ces  classes et objets ne  permettent pas (en tout  cas pas de
manière  réaliste) de  faire des  calculs.  Ils  ne permettent  que de
représenter des valeurs.  Si on  prend un langage qui permet d'hériter
de plusieurs  parents, alors on  peut dire qu'une vachevoiture  est la
fille  d'une vache  et d'une  voiture  et qu'elle  possède toutes  les
propriétés de la vache et de la voiture. Si on appelle cela un calcul,
alors  ok  on   peut  faire  des  calculs  avec   des  objets  et  des
classes. Mais dans  la vraie vie, on ne calcule  pas (par exemple dans
un  jeu vidéo)  l'effet de  la gravité  par rapport  au  personnage en
jouant avec des  héritages. Non on fait des  vrais calculs numériques.
Et  ces calculs  numériques,  on les  fait  en général  dans un  style
impératif.
</p>

<p>Et quand  on dit dans un cours  de programmation qu'à la  fin de la
formation  (Bac+5) il  faut  être capable  d'apprendre  un langage  de
programmation  en un  week-end,  c'est carrément  vrai,  mais pour  un
langage de programmation qui se limite à répéter les connaissances des
paradigmes déjà connus. On peut bien apprendre PHP en quelques heures,
c'est un langage très pauvre qui  n'apporte rien de bien d'un point de
vue de concepteur  de langage. Ce n'est qu'un  super langage de script
dont la sémantique est nauséabonde dès qu'on le regarde d'un peu près.
Néanmoins d'un point de vue de développeur, autant sa bibliothèque est
très mal  foutue car  il n'y a  aucune convention de  nommage globale,
autant elle  est très grande,  très complète et très  bien documentée.
En tout cas, nul besoin  de quelques heures pour apprendre ce langage,
le plus dur étant d'avoir vraiment envie de l'apprendre...
</p>

<p>C'est beaucoup plus difficile d'apprendre un langage multiparadigme
(i.e.  qui possède  de  nombreux paradigmes  de programmation).   Déjà
c'est  un  langage  qui n'a  pas  eu  le  succès qu'il  aurait  mérité
scientifiquement, forcément, puisque les langages multiparadigmes sont
des cauchemars  pour les  entreprises.  Et oui,  il faut  bien pouvoir
apprendre un langage en un week-end,  et ça se corse si le langage est
riche. Il vaut mieux qu'il soit  pauvre, comme PHP ou même Java.  Quoi
que depuis la version 5 de Java, l'introduction des classes génériques
donne une  zone bien sombre  à ce langage  ! Il faut alors  faire très
attention à ne pas jouer avec le feu (héritages et surcharges avec des
classes génériques).
</p>

<p>
Tout ça pour en venir  aux méthodes pédagogiques d'apprentissage de la
programmation. Alors,  d'abord, la question la plus  difficile qui est
la suivante. Doit-on apprendre la programmation à la manière dont on a
appris à marcher ?  C'est-à-dire  en trébuchant souvent, en se cognant
par terre,  etc.  Cette manière d'apprendre  la programmation rappelle
le "quitte ou double". En effet, ceux qui réussissent à s'en sortir en
ressortent assez bons. Ceux qui ne passent pas l'étape sont mis sur la
touche et c'est  tant pis pour eux même  s'ils avaient potentiellement
les capacités.   Et c'est là la  question : que  fait-on des apprentis
moyens  ?  Les  (vraiment) mauvais  sont à  réorienter. Les  bons s'en
sortent de toutes  façons. Mais les moyens ?  Comme en  général il y a
une majorité de moyens, il faut bien que l'attention porte sur eux.
</p>

<p>
Je pense qu'un très bon compromis pour l'apprentissage des langages de
programmation  (et non  pas de  la programmation  car il  s'agit d'une
autre  problématique)   est  un   support  encore  inexistant   (à  ma
connaissance)  qui serait  assez lourd  à  mettre en  oeuvre mais  qui
pourrait très bien fonctionner, un peu à la manière de Wikipédia.

L'idée  serait   de  reprendre  la  structure   classique  des  livres
d'apprentissage  de  la  programmation  (je  veux  en  effet  utiliser
l'existant  concernant   l'apprentissage  de  la   programmation  pour
l'apprentissage  d'un langage  de programmation  et au  final  on aura
peut-être fait d'une pierre deux coups).  On reproduit la structure du
livre  dans un  système d'édition  à la  Wiki pour  que tout  le monde
puisse  participer  (le  coût  pour  la  réalisation  du  support  est
acceptable s'il est suffisamment réparti).
</p>

<p>
Tout   l'apprentissage  de   la  programmation   impérative   de  base
(bannissons  temporairement   toute  allusion  à   l'arithmétique  des
pointeurs notamment) est  assez classique. La programmation impérative
est au coeurs de nombreux langages (C, C++, VB, Java, C#, Pascal, Ada,
...).
</p>

<p>
Le support  idéal pour  l'apprentissage d'un langage  de programmation
est un support adaptatif. Les  livres sont trop séquentiels, même s'il
est possible de choisir de sauter des pages, il n'est jamais facile de
savoir quels  paragraphes lire  lors de la  première lecture  et quels
paragraphes lire  lors des lectures approfondies. Je  pars du principe
qu'il n'est pas  le meilleur moyen pédagogique que  de suivre un livre
de A à Z sans jamais se  dévier du chemin imposé par la succession des
pages. Si l'auteur (ou les  auteurs) choisit les passages à comprendre
en  première lecture  et  peut  cacher les  autres  pour des  lectures
ultérieures, alors le lecteur peut  choisir selon son niveau le niveau
de  détails  du  livre.  Il  s'agit  là  de  graines d'idées  pour  la
réalisation  d'un  livre dynamique  (informatisé  puisqu'il n'est  pas
possible de concevoir un livre avec une telle dynamique avec seulement
du papier).
</p>

<p>
Un livre dynamique qui présente une multitude de langages, c'est le bon
livre pour avoir un panorama pratique des langages de programmation.
En fait, le site 
<a  href="http://www.99-bottles-of-beer.net/">99  bottles of  beer</a>
fait déjà ce  travail mais le restreint à un  seul et unique programme
qui  consiste à  imprimer  les  paroles d'une  chanson  de bière.   Et
Wikipédia propose  déjà dans ses  articles concernant les  langages de
programmation des exemples simples de petits programmes qui pourraient
remplir une  bonne partie  du contenu des  deux premiers  chapitres du
livre dynamique que j'essaie de construire conceptuellement ici.
</p>

<p>
Les  deux   difficultés  principales  sont  d'une   part  le  support,
c'est-à-dire de quoi pouvoir réaliser le livre dynamique, une idée est
d'utiliser les  pages web dynamiques car  elles sont le  moyen le plus
moderne et  portable pour ce genre  de documents, et  d'autre part les
liens entre les différents langages puisque celui qui connaît l'un des
langages contenu dans le livre pourra s'appuyer sur ses connaissances
déjà acquises afin d'apprendre plus rapidement le langage qu'il doit
apprendre.
</p>

<p>
C'est une idée  qui me trotte dans la tête depuis  déjà environ 3 ans.
Je n'ai  jamais eu l'occasion de  concrétiser (ni même  de commencer à
concrétiser d'ailleurs) cette idée.

J'espère que des gens  vont le faire à ma place car  je ne sais pas si
j'aurai le temps un jour pour  cela. En même temps, le web évolue.  La
recherche  s'intéresse   beaucoup  à   ce  moyen  de   propagation  de
l'information  (et  de  la   désinformation,  ne  l'oublions  pas  non
plus). Peut-être que  les successeurs de Hop et  Ocsigen seront à même
de permettre la  réalisation facile (et surtout rapide)  du système de
rêve  pour  ceux  qui  veulent  apprendre  rapidement  un  langage  de
programmation.  Soulignons que le  niveau de  détails n'aurait  pas de
limite  dans  un tel  système  puisqu'il  suffirait  de paramétrer  le
contenu afin  que le  lecteur choisisse très  facilement le  niveau de
détail qui lui convient.
</p>

</div>
<div>
2008-04-10 </div>
]]></description>
</item>
<item>
<guid>http://philippewang.info/blog/2008-04-06-01.00.htm</guid>
<title>Les chiffres associés aux caractéristiques d'un appareil photo numérique (et comparaison brève avec l'argentique)
</title>
<link>http://philippewang.info/blog/index.htm</link>
<pubDate> Sun, 06 Apr 2008 01:48:24 +0200 
</pubDate>
<description><![CDATA[
<!-- extra top links-->
<!-- body-content -->
<div>
Quand on est  novice dans le domaine des  appareils photos numériques,
il  est difficile  de  comprendre et  de  se repérer  avec toutes  les
données  techniques  associées  aux  appareils.  Le  but  ici  est  de
démystifier ces chiffres en leur donnant du sens, leurs sens.

<ul>
  <li>
    <strong>Capteur et résolution</strong>

<p>    Le  capteur  est  le   composant  qui  reçoit  l'image  (donc  les
    photons).  Il est  caractérisé par  sa  nature (CMOS  ou CCD),  sa
    taille et sa résolution.
</p>

<p>    Les capteurs  CMOS sont  réputés pour consommer  moins (d'énergie)
    que les capteurs CCD mais aussi pour faire moins de bruit.
</p>

<p>    La résolution du capteur est  le nombre de points distincts que le
    capteur est capable  de restituer. Plus les points  sont petits et
    plus ils sont  sujets au bruit. Mais plus il en  a et plus l'image
    contient de l'information. Pour  une qualité donnée, il vaut mieux
    davantage  de  pixels  que  moins  de pixels  car  il  vaut  mieux
    davantage d'informations que moins d'informations.
</p>

<p>    La  taille  du capteur  joue  beaucoup  sur  le bruit.   Pour  une
    résolution  donnée,  la  réduction  de sa  taille  augmentent  les
    risques de bruit. Dans les téléphones portables, les capteurs sont
    incroyablement petits (il faut bien  la place pour mettre tous ses
    composants), ce qui fait qu'ils sont bloqués actuellement à 5 Mpix
    actuellement  (au  delà  on  est  sujet à  la  diffraction  de  la
    lumière). Pour une résolution  donnée, les capteurs plus gros sont
    moins sujets au bruit.
</p>
  </li>
  <li>
    <strong>Objectif</strong>

<p>    Les objectifs sont des  composants essentiels des appareils photos
    et sont souvent négligés par les novices.
</p>

<em>ouverture</em>

<p>    Ce  qu'on attend  idéalement de  la part  d'un objectif  est qu'il
    sache ouvrir  grand (f/1,2 à f/2)  (en général ils  savent très bien
    ouvrir petit  (f/5 à  f/22), donc on  se fait  peu de soucis  sur ce
    point là) et qu'il puisse zoomer en partant d'un grand angle.
</p>

<p> Ouvrir grand pourquoi ? D'une part pour avoir davantage de lumière
    entrant dans  le capteur,  et c'est la  raison peu  noble. D'autre
    part pour pouvoir  avoir une zone de netteté  réduite, et c'est la
    raison  noble. Mais  pourquoi  diable vouloir  avoir  une zone  de
    netteté réduite? Parce que  lorsqu'on veut faire un portrait d'une
    personne, on veut souvent que  la personne soit mise en valeur par
    rapport au reste  du monde (i.e. ce qui est sur  la photo mais qui
    n'est pas la personne). Donc on veut que la personne soit nette et
    que le reste (l'arrière plan  ou l'avant plan) soit flou. Ainsi le
    sujet est mis  en valeur et l'oeil ne se perd  pas sur des détails
    inutiles.

  Quand on regarde un feuilleton  à très très petit budget, parfois le
  matériel  vidéo utilisé  est très  mauvais et  on se  perd  dans les
  images. Dans le feuilletons à  gros budgets, parfois le matériel est
  trop bon, en ce sens qu'ils en abusent un peu...
</p>

<p>    Cependant, si vous voulez avoir une photo de vous avec un monument
    en arrière-plan (par exemple la tour Eiffel), il vaut mieux ne pas
    ouvrir trop grand  si vous voulez avoir une tour  nette et non pas
    floue. Mais alors  il faut fermer l'obturateur et  pour pouvoir le
    fermer il faut qu'il y ait  suffisamment de lumière.  Si on a trop
    peu de  lumière, il  faut utiliser un  flash (souvent  c'est assez
    laid car la répartition de la lumière est trop artificielle sur le
    résultat qui  est la  photo elle-même), ou  avoir un  trépied pour
    pouvoir  se  permettre  d'allonger  le  temps  d'exposition  (donc
    réduire la vitesse d'obturation).
</p>

<p>    Pour les  reflex, les  objectifs ouvrant grand  sont en  général à
    focale fixe  (i.e. on ne peut  pas zommer) et assez  chers, et les
    objectifs  pouvant  zommer sont  en  général  à ouverture  minimal
    variable (i.e.   plus on zoome et plus  l'ouverture est rétrécie).
    Il  existe les  objectifs  "professionnels" (car  très chers)  qui
    permettent d'avoir un  zoom avec une ouverture fixe  (qui ne varie
    donc pas selon l'amplitude du zoom).
</p>

<em>angle</em>

<p>    Grand angle/petit angle ? Avoir  un grand angle permet de capturer
    plus de  choses sur une seule image,  c'est particulièrement utile
    pour les grands monuments et  les paysages. C'est aussi très utile
    en espace confiné (en appartements  par exemple) où on ne peut pas
    prendre beaucoup de recul.  Les appareils compacts mettent de plus
    en plus en avant les grands angles (le 28mm équivalents 24x36).
</p>

<p>    Le  28mm  équivalent  24x36   est  le  standard  pour  les  grands
    angles. C'est à  dire que l'objectif correspond à  un 28mm pour le
    format  de  capteur  24x36   qui  est  le  format  des  pellicules
    argentiques  classiques. Les  compacts ont  des  capteurs beaucoup
    plus petits. Par exemple, un  5,8mm avec un capteur 1/2,8 équivaut
    à un 35mm en 24x36.
</p>

<p>    Rares sont les capteurs numériques aussi grands que les pellicules
    24x36 des argentiques.
</p>

  </li>
  <li>
    <strong>Vitesse ou temps d'obturation</strong>

<p>    Le temps d'obturation  d'une photo est plus ou  moins long. Sur un
    appareil  photo  jetable,  le   temps  d'obturation  est  fixe  et
    l'ouverture  est  très  petite,  ce  qui leur  permet  d'avoir  un
    objectif de piètre qualité.
</p>

<p>    Avoir une  vitesse d'obturation très grande (à  partir de 1/1000s)
    est utile lorsqu'on veut prendre en photo un sujet qui bouge vite.
    Pour  pouvoir   prendre  des   photos  avec  une   grande  vitesse
    d'obturation, il faut d'une part  avoir beaucoup de lumière sur le
    sujet et  d'autre part avoir  la mécanique permettant  de capturer
    l'image avec  en si peu  de temps. Lorsqu'on footballeur  est dans
    les airs et  qu'il frappe la balle, l'instant  est très court. Les
    photographes  sportifs   professionnels  ont  des   objectifs  qui
    agrandissent beaucoup  (forcément, il faut couvrir  le terrain) et
    qui ouvre  grand, mais  aussi un boîtier  qui permet de  faire une
    pause très courte (sinon le  footballeur serait tout flou dans son
    mouvement).
</p>

<p>    Un long temps d'exposition est nécessaire lorsqu'on veut faire une
    photo de nuit par exemple.  Une exposition entre 10 et 60 secondes
    permet de capturer un défilé  de lumière (bande jaune ou rouge sur
    une route par exemple), ou de capturer un beau ciel par nuit noire
    étoilée.
</p>

<p>    Contrairement à ce qu'on  peut penser, pour photographier la lune,
    il faut un  temps d'exposition assez court (de  l'ordre de 1/30s),
    sinon on obtient une (plus  ou moins grosse) tâche lumineuse toute
    blanche. On peut choisir de  fermer aussi, mais la Terre ainsi que
    la Lune bougent  beaucoup plus vite qu'on ne  le croit et quelques
    secondes suffisent pour avoir une mini traînée laide sur la photo.
</p>
  </li>
  <li>
    <strong>Macro</strong>

<p>    Parfois on veut faire des  photos de très petits objets (une fleur
    ou un insecte  par exemple).  Pour cela, on  s'approche de l'objet
    pour l'avoir en pleine photo.  Mais si on s'approche trop, l'objet
    est flou.
</p>

<p>    Certains appareils ont été  conçus pour pouvoir prendre des photos
    très près des objets (par exemple 1cm).
</p>

<p>    Il existe aussi  des kits à monter sur  les objectifs pour pouvoir
    prendre des  macros (il s'agit en  fait d'une loupe  de très bonne
    qualité avec de quoi la placer devant l'objectif de base).
</p>
  </li>
  <li>
    <strong>Viseur et écran</strong>

<p>    Les viseurs (où on colle  l'oeil droit) regardent souvent un peu à
    côté de là où regarde l'objectif.  En fait il n'y a que les reflex
    qui ne sont pas ainsi.  Dans un appareil reflex, le viseur regarde
    l'image qui va être prise (entre 95  et 99% souvent car il y a des
    morceaux  sur les  côtés qui  sont  un peu  coupés), puisque  pour
    prendre l'image, il y a  un basculement mécanique d'un miroir pour
    passer de l'oeil au capteur pendant le temps de la pause.
</p>

<p>    L'avantage d'un  écran est que  l'image de l'écran  est exactement
    l'image   qu'on   va  capturer   (il   n'y   a   pas  de   morceau
    coupé). L'inconvénient est qu'en  général, le fait d'avoir l'image
    sur écran  augmente le temps entre  le moment où on  appuie sur le
    bouton et le moment où la photo est prise (c'est de moins en moins
    vrai grâce aux  progrès technologiques).  L'autre inconvénient est
    lorsqu'on a besoin d'un maximum de  contrôle et de recul à la fois
    puisqu'on  ne peut  pas gagner  de  l'espace en  collant l'oeil  à
    l'écran alors qu'on  le colle au viseur; cela  arrive parfois dans
    des espaces confinés en intérieur.
</p>
  </li>
  <li>
    <strong>ISO</strong>

<p>    En général,  plus la valeur est grande,  et plus il y  a de bruit.
    On monte  difficilement jusqu'à ISO6400,  qui permet de  faire des
    photos en conditions de faible luminosité.
</p>
    
<p>    Certains capteurs  montent très haut  en sensibilité (ISO  1600 et
    au-delà), et sont  très mauvais et donc restituent  une image très
    bruitée. D'autres capteurs montent  très haut et rendent une image
    peu bruitée et sont plus rares bien sûr.
</p>

<p>    Une    faible   valeur    permet   d'avoir    une    plus   grande
    netteté. Idéalement, on reste à ISO 100 pour avoir moins de bruit.
    Certains   capteurs   sont   très   bons  à   des   valeurs   plus
    grandes. D'autres sont capables de descendre à ISO 60 ou ISO 80 et
    c'est  tant  mieux  car  cela  permet un  piqué  encore  plus  net
    lorsqu'on a de bonnes conditions lumineuses.
</p>

  </li>
  <li>
    <strong>Exposition</strong>

<p>    La  plupart   des  compacts  permettent   des  modes  d'exposition
    spécialisés. Par exemple, on veut prendre des photos de nuit et on
    indique  à  l'appareil  de  prendre  des  photos  avec  des  temps
    d'expositions plus longs.
</p>

  </li>
  <li>
    <strong>Balance des blancs</strong>

<p>    Lorsque la balance des blancs est mal détectée automatiquement, on
    peut  la choisir  manuellement.  Cela  consiste à  choisir comment
    modifier  la répartition  des  couleurs  de manière  à  ce que  le
    résultat semble au final naturel.
</p>

<p>    Le fait est  qu'on regarde rarement une photo  dans les conditions
    de  lumière dans  lesquelles elle  a été  prise. De  ce  fait, les
    couleurs  peuvent  sembler  virer  au  bleu ou  au  jaune  un  peu
    orangé. En effet, en intérieur, on utilise la lumière artificielle
    qui est un peu jaune alors  que la lumière en extérieur est plutôt
    bleue. 
</p>

<p>    L'oeil sait  s'adapter rapidement et  automatiquement à l'ambiance
    lumineuse  alors  qu'un capteur  ne  voit  aucune différence.   La
    balance des blancs permet de corriger ce facteur.
</p>

  </li>
</ul>

<h3>Alors, numérique ou argentique?</h3>

<p>Il est  difficile d'affirmer que le numérique  a surpassé l'argentique
sans mentir ou  sans se tromper. Le top du numérique  n'est pas au top
de l'argentique. On n'a  pas encore les capteurs numériques équivalent
en résolution aux  pellicules argentiques. Et on n'a  pas la dynamique
de couleurs  des pellicules argentiques. Le  numérique limite d'emblée
le nombre de couleurs possibles  pour les photos. Le JPEG actuellement
très  utilisé  permet 256x256x256  =  16777216  (environ 16  millions)
couleurs  car  il  fait   l'échantillonnage  sur  8bits  (256  valeurs
possibles)  avec trois canaux  de couleurs  (rouge, vert,  bleu).  Les
appareils  haut de  gamme  permettent d'enregistrer  dans des  formats
permettant  un échantillonnage  plus précis.   Par exemple,  le Pentax
K20D - sorti en ce début  d'année 2008 - permet un échantillonnage sur
14  bits ce qui  permet 16384x16384x16384  = 4398046511104  (environ 4
mille  milliards)  couleurs   possibles.   Son  prédécesseur  le  K10D
échantillonne sur  12 bits, ce  qui fait 4096x4096x4096  = 68719476736
(environ 68 milliards)  couleurs. À quoi ça sert? Ça  sert à tous ceux
qui  font  du  traitement  de  photos  sur  ordinateur  car  conserver
davantage d'informations sur les  couleurs des images permet davantage
de  manipulations des  couleurs  en post-traitement.   Cela est  assez
rarement utile pour les novices  et amateurs car en général l'appareil
photo choisit  les bons paramètres. D'un  autre côté, il n'y  a pas si
longtemps, les écrans  d'ordinateurs n'étaient capables d'afficher que
256 couleurs différentes. On  peut alors imaginer que ces informations
numériques  sur  les  couleurs  deviendront essentiels  dans  quelques
années quand le JPEG sera devenu obsolète.
</p>

<p>J'espère que le JPEG sera rapidement remplacé, de même pour le MP3.
Il existe des formats bien meilleurs que le JPEG et que le MP3.
De même pour les cartes mémoires, j'espère qu'elles seront un jour
dans un autre format que le FAT/FAT32. FAT a été conçu pour des
disquettes de 160kB, et FAT32 est apparu au milieu des années 90.
J'espère qu'on arrêtera bientôt d'utiliser des technologies obsolètes.
</p>

</div>
<div>
2008-04-06 </div>
]]></description>
</item>
<item>
<guid>http://philippewang.info/blog/2008-03-09-17.00.htm</guid>
<title>Recette illustrée et commentée des Nems (pâtés impériaux)
</title>
<link>http://philippewang.info/blog/index.htm</link>
<pubDate> Sun, 09 Mar 2008 17:31:34 +0100 
</pubDate>
<description><![CDATA[
<!-- extra top links-->
<!-- body-content -->
<div>
  
  <p>J'ai enfin (à peu près) fini de rédiger la <a href="http://philippewang.info/cuisine.nem.pate_imperial.xml">recette des nems (pâtés impériaux)</a>&nbsp;!</p>

  <p>
    Le but est de donner une recette avec quelques commentaires et
    quelques photos afin de pouvoir s'y retrouver plus facilement
    qu'avec une recette qui ne contient que des mots. J'espère que
    cette recette servira à beaucoup de monde, et qu'elle enlèvera de
    nombreuses réticences, en particulier celles dues au fait que les
    ingrédients asiatiques ne sont pas toujours courants dans l'art
    culinaire occidental, et que les reconnaître est parfois très difficile.
  </p>

  <p>Bon Appétit! ;-)</p>

</div>
<div>
2008-03-09 </div>
]]></description>
</item>
<item>
<guid>http://philippewang.info/blog/2008-02-28-17.00.htm</guid>
<title>PGF/TikZ version 2.00
</title>
<link>http://philippewang.info/blog/index.htm</link>
<pubDate> Thu, 28 Feb 2008 17:29:47 +0100 
</pubDate>
<description><![CDATA[
<!-- extra top links-->
<!-- body-content -->
<div>
Un super manuel pour la version 2.00 de <a href="http://www.ctan.org/tex-archive/graphics/pgf/">PGF/Ti<em>k</em>Z</a> !

Il n'y a qu'à voir la première page de couverture :-)

<p>Télécharger le manuel (PDF, 560 pages, 3.6MB) chez <a href="http://www.ctan.org/">CTAN</a> :
 <a href="http://www.ctan.org/tex-archive/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf">http://www.ctan.org/tex-archive/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf</a>.
</p>
<p><a href="http://philippewang.info/pgfmanual.2.00.pdf">Un miroir local pour le manuel</a>.</p>

<p>
<a href="http://sourceforge.net/projects/pgf/">Le projet chez sourceforge.net</a>.
</p>


</div>
<div>
2008-02-28 </div>
]]></description>
</item>
<item>
<guid>http://philippewang.info/blog/2008-02-26-22.00.htm</guid>
<title>Le MacBook Pro adopte le multitouch et un disque dur décent !
</title>
<link>http://philippewang.info/blog/index.htm</link>
<pubDate> Tue, 26 Feb 2008 22:22:01 +0100 
</pubDate>
<description><![CDATA[
<!-- extra top links-->
<!-- body-content -->
<div>
<p>Apple produit désormais les MacBook Pro (MBP) avec un minimum de 200GB
pour la capacité du disque dur. Ça s'est un peu fait attendre quand
même.  La mémoire (RAM) est en standard à minimum 2GB avec un maximum
de 4GB. Il y a un an, la RAM était limitée à 3GB et le standard
minimum était de 1GB, avec une option à 3GB très très chère (les
barrettes de 2GB So_DIMM 667MHz coûtaient entre 400 et 600 dollars au
moins, quand toutefois on pouvait en trouver). Apple ne propose pas de
disque dur de 320GB, ce qui me paraît un peu surprenant (probablement
dû à un contrat commercial, voire à une technique commerciale bizarre,
ou encore à cause de la consommation électrique entraînée, ou bien
encore à cause de la pénurie apparente des disques durs 2,5 pouces
en 320GB qui sont quand même relativement récents).
</p>

<p>
Ah et puis ils ont maintenant le multitouch ! Je me demandais quand ça
allait bien pouvoir débarquer sur les MacBook Pro. Je me demande s'il
y a des modifications matérielles en conséquences au multitouch. Si
non, il y aura tôt ou tard un hacker (voire Apple même) qui permettra
le multitouch sur les systèmes antérieurs.
</p>

<p>Côté MacBook, la RAM est maintenant limitée à 4GB (et non plus les
ridicules 2GB) avec un disque dur de capacité au moins 120GB.
</p>

<p>Les processeurs (CPU) sont encore plus puissants. Avec les prix
qu'ils pratiquent, ils doivent être au top côté CPU, probablement,
puisqu'Apple aime bien "jurer" par la puissance CPU !
</p>

<p>
Peut-être que je prendrai un Mac Mini ou un iMac s'ils annoncent une
nouvelle gamme au bon moment. Les gammes actuelles sont assez moyennes
quand même au niveau qualité/puissance/prix.
</p>

<p>
Et enfin, vivement les nouvelles versions d'iPhone (iPhone2), et de
MacBook Air (MBA2)...
</p>

</div>
<div>
2008-02-26 </div>
]]></description>
</item>
</channel></rss>
