Ah, l’auto-initiation au langage C ;)

J’ai toujours été curieux de comprendre les rudiments du langage C. Bien que le site du Zéro propose un cours intéressant, il n’est pas assez « linuxisé » pour moi. En faisant quelque recherches, je suis tombé sur ce site qui propose un cours pour débutant en C.

Voici donc un programme que j’ai rédigé en C avec gedit pour un truc basique : l’application du théorème de pythagore. Il est tout sauf prémuni contre les mauvaises saisies. Je débute en C, et cela doit faire 3 heures que je le pratique, bien qu’ayant quelques notions de programmation grâce à Python.

C’est du brut de décoffrage, z’êtes prévenu. Pour les pros du C, merci de ne pas m’envoyer des missives enflammées. Je voudrais avoir des rudiments de C, cela peut toujours servir 😉

/* Programme 12 du cours de C pour Linux.

Calcul de l’hypothénuse. Pythagore.

Il faudra insérer les fonctions maths de C => #include
et donc rajouter à la ligne de compilation -lm

D’après le chapitre 4 du cours de C pour linux :

http://lesouriciergris.free.fr/linux_cours_c.html

Bouh, que je suis nul en C 😉

*/

// On commence par les includes
// racine carrée => sqrt()
// Pythagore => racine carrée de a²+b²

# include <stdio.h>
# include <math.h> // prise de tête !!!! 🙂

int main () // Boucle principale
{
// Il faut deux valeurs entière, les deux cotés a & b
// et une valeur float nommée hypo qui sera sqrt(a²+b²)

// Valeurs entières a & b, initialisée par défaut à 0.
int a,b = 0; // les deux cotés

float hypo; // hypothénuse, float pour le calcul de la racine.

// On affiche le but du programme :

// Saisie du coté a puis du coté b, deux entiers.

printf (« Valeur de a : « );
scanf (« %d », &a); // scanf va prendre en compte la saisie du clavier
// %d => nombre entier, &a => variable a.
// et de même pour b.

printf (« Valeur de b : « );
scanf (« %d », &b);

// calcul de l’hypothénuse.

a = a*a; // a² please.
b = b*b; // b² please.
hypo = sqrt(a+b); // racine de la somme des deux cotés au carré.

printf (« L’hypothénuse a donc une valeur de %.3f :\n »,hypo);
// 3 chiffres après la virgule.

return(0); // On quitte proprement, voyons.
}

Je sais, ce code est moche, lourd, mal optimisé, mais je débute en C… Et j’avoue être content d’avoir réussi sans regarder la solution 😉

NB : les indentations n’ont pas été conservées.

Cela se compile sans problème avec mon gcc 4.2 sous Linux. Des retours de la compilation de ce code sous d’autres compilateurs ?

Lequel est le plus rapide pour Javascript ? Webkit, Opera ou Gecko ?

Pour le savoir, il faut utiliser deux tests complémentaires : le test du site CelticKane et le test « SunSpider« .

Les versions testées sont :

  • une compilation nocturne de Shiretoko pré-alpha2 de ce 13 août matin => Build identifier: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1a2pre) Gecko/20080813050659 Minefield/3.1a2pre
  • Une préversion d’Opera 9.52, cf ce billet du blog des développeurs d’Opera.
  • Webkit révision 35706, compilée ce matin, pour contourner le bogue 20370 qui rendait impossible la compilation de la version gtk.

Continuer la lecture de « Lequel est le plus rapide pour Javascript ? Webkit, Opera ou Gecko ? »

Vrac’ons librement et rapidement ;)

Un « en vrac » rapide consacré au logiciel libre :

  • Sortie de la version alpha2 de Shredder : pas mal de nouveautés dont une meilleure intégration dans MacOS-X, support IMAP amélioré, filtre antispam amélioré. Pour une liste des bogues corrigés, il suffit d’aller sur le Rumbling Edge.
  • Firefox 3.0.2 et 2.0.0.17 sont prévus pour les environs du 3 septembre, dixit le Firefox Extension Guru’s Blog.
  • OpenArena basé sur le code source de Quake 3 Arena est en version 0.80. Et cerise sur le gateau, un exécutable AMD64 pour linux existe 😉
  • La 3ième RC du noyau linux 2.6.27 vient de sortir. Et selon Linus, le pilote ath9k a été rajouté dans le code du noyau. Dommage que cela ne concerne pas mon circuit wifi atheros 5007eg 🙁
  • WordPress 2.6.1 béta2 est disponible. Pour tout dire, n’ayant vu aucun bug dans la version 2.6.0, je ne sais pas si je n’attendrais pas la version 2.7.0 avant une nouvelle migration du logiciel.

ZenWalk 5.2 « Gnome Edition » : un petit tour du « propriétaire »

La ZenWalk est dérivé de la distribution slackware, tout en incluant des paquets assez récent. Bien qu’utilisant principalement l’environnement Xfce, une version utilisant l’environnement gnome est disponible. Du moins, en version béta 😉

Ayant téléchargé l’image ISO, j’ai créé une machine virtuelle et comme la distribution est assez légère, je ne lui ai donné que 16GiO de disque. Et avec une mémoire vive de 768 Mo, j’ai donc utilisé la ligne de commande suivante :


fred@fred-laptop:~/download$ qemu-img create -f raw zenw.img 16GFormatting 'zenw.img', fmt=raw, size=16777216 kB
fred@fred-laptop:~/download$ kvm -m 768 -hda zenw.img -k fr -localtime -soundhw all -cdrom zenwalk-gnome-5.2beta.iso -boot d &

L’installation se fait en mode semi-graphique, dans un anglais assez simple, et le tout est assez automatisé. J’ai pu noté que le formatage des partitions d’installation (une / et une /home) utilise le format xfs au lieu du classique ext3fs.

Après l’installation des paquets, l’ajout de l’utilisateur et le support du circuit son sont effectués au premier redémarrage. Ensuite, on arrive sur un écran de connexion tout ce qu’il y a de plus classique.

écran de connexion de la Zenwalk 5.2 gnome edition

Continuer la lecture de « ZenWalk 5.2 « Gnome Edition » : un petit tour du « propriétaire » »

Le hold up planétaire : 10 ans après – suite et fin

Voici donc la dernière partie des articles consacrés au « Hold-up planétaire », avec 10 années de recul. Texte qui n’a pas trop mal vieilli dans l’ensemble.

Commençons avec un certain Microsoft Windows NT4… Et sur les différences entre la version Serveur et client de base…

Page 78 :

« […]Pour comprendre à quel point la notion de prix est artificielle dans le monde Microsoft, il n’y a pas mieux que le cas d’école du système d’exploitation WindowsNT. La firme commercialise deux versions de WindowsNT : l’une, NT Workstation, pour les stations de travail (c’est-à-dire la machine client, qui reçoit l’information) vendue environ 2 000 francs. L’autre, NT Server, pour les serveurs (la machine qui diffuse l’information), vendue 6 000 francs. Cette dernière contient en outre une série de logiciels supplémentaires pour serveurs comme Internet Information Server, que Microsoft proclame être « gratuits ».
Or, que constate-t-on quand on regarde ce que contiennent vraiment les CD-Rom ? Si on enlève tout ce qui est artificiellement « gratuit », les deux programmes ont exactement les mêmes lignes de code… à quelques bits près. Il s’agit d’une entrée dans la base des registres qui contient « Workstation » ou « Server », plus un autre petit bit, bien caché, pour compliquer la tâche aux petits malins qui souhaiteraient épargner les quelque 4 000 francs de différence de prix.
Conclusion : si Microsoft dit vrai, c’est-à-dire que tous les logiciels compris dans NT Server (IIS, etc.) sont gratuits, alors ces deux petites clefs occupant quelques bits, sont facturées… 4 000 francs. Difficile, alors, de se débarrasser de la très désagréable sensation d’avoir été non seulement bernés, mais aussi arnaqués.[…] »

Affaire qui fit grand bruit à l’époque… Et certains utilisateurs ont préféré acheter la version serveur de Windows Vista pour en faire une utilisation « bureau »

Continuer la lecture de « Le hold up planétaire : 10 ans après – suite et fin »