Accessility: Billets , Photos , Afer , Sections et Articles , Recherche (ALT + R)

Yan Morin, ing. jr, in my head

Métier: Programmeur Analyste, Enseignant, Consultant, Ingénieur junior.

Qualificatif: Lacto végétarien, anti-consommateur, célibataire.

Lieu d'action: Mont-Laurier

Disponibilité: en contrat depuis le 18 mars 2008...

Entreprise: ProgYSM

Billets

Nouvelles de mi-mai 2008

2008-05-15 01:19:31:
J'ai diminué quelque peu mes heures de travail ces temps-ci et ça m'a permis de régler quelques dossier en suspens et de répondre à des courriels. Il me reste encore pas mal de travail à faire pour satisfaire un pseudo-ordre des choses mais je trouve que ça avance. Je crois que je vais être plus productif après ce petit rangement dans mes idées et mes documents. L'important, c'est de viser le zen...

Je suis donc vraiment désolé de ne pas être capable de me convaincre d'en faire plus. (on dirait une lamentation de Piro)

Commenter

Section: Quoi de neuf

Encore une histoire d'encodage - twitter

2008-05-03 11:11:43:
Vincent se demandait hier pourquoi il avait écrit 138 caractères dans son espace twitter et que l'application twitter lui avait dit qu'il avait plus de 140 caractères après son "post". L'informatique, c'est une question de chiffres, de 0 et de 1, de conventions, de manque de visions des besoins et de paresses.

Explication: un caractère est représenté par un graphique qui est associé à un nombre. Il existe différentes tables qui associe les lettres à différent nombre. Par exemple, la lettre "A" majuscule est associé au nombre décimal "65" selon la table ASCII. Lors de la programmation des premières tables de caractères, l'anglais était utilisé et il existait 128 caractères. Les programmeurs, des anglophones, ont spécifié qu'un caractère, un "char / character" était représenté par 8 bits, un octet. Aux 128 caractères de base, on pouvait ajouter 128 caractères supplémentaires dans une table étendue. On a eu une multitude de tables étendues qui spécifiait des caractères supplémentaires sur 8 bits / 1 octets. On pouvait spécifier des lignes, des symboles, des accents, des pictogrammes.

Lors de la conception des bases de données relationnelles, les programmeurs, encore une fois, ont décidé d'utiliser les "char"s comme unité de mesure pour les champs de type "chaîne de caractères". Une chaîne de caractères est un bout de phrase, de texte. Ils ont encore spécifié qu'un "char" équivalait à 1 octet, 8 bits. Lorsque les tables avaient seulement 256 symboles, un "char" était encodé en 1 octet/8 bits.

Les développeurs de langages de programmation ont développé des fonctions pour calculer la longueur des chaînes de caractères. Or, ils ont développés des fonctions qui calculent le nombre d'octets des chaînes de caractères et non le nombre de caractères.

Un jour, des développeurs ont voulu réunir et unifier toutes les tables de caractères. Au lieu d'avoir ASCII, ISO-8859-1, windows-1252, ISO-8859-15, etc, ils voulaient avoir une seule table. Une table qui associe 1 caractère à 1 nombre. Or, ils y avaient tellement de caractères différents (penser seulement au pictogrammes des Chinois) qu'un octet (256 possibilités) ne pouvait être suffisant. Ils ont développés, en autre, une table qui se nomme UTF-8 (Universal character set Transformation Format 8 bits). Cette table a une particularité, les caractères sont représentés par des nombres à taille variable. Les 128 premiers caractères sont encodé sur 8 bits, ensuite 2048 sur 16 bits, 65536 sur 24 bits et 2091752 sur 32 bits. Or c'est là que les fonctions des programmeurs ne retourne plus des résultats cohérents. Les fonctions qui étaient sensées retourner le nombre de caractères, retourne en fait le nombre d'octets utilisés par l'encodage. Anciennement, tout était 1 caractère = 1 octet. Avec UTF-8, c'est variable, 1 caractère = 1, 2, 3 ou 4 octets.

En PHP5 par exemple, un langage qui utilise beaucoup les noms de fonction du langage C, la fonction strlen() retourne le nombre d'octets encodés et non le nombre de caractères. PHP5 possède une fonction mb_strlen() qui compte le nombre de caractères. Si un "é" est encodé en 2 octets en PHP5, alors strlen() retourne 2 et mb_strlen() retourne 1. Le PHP5 a été codé en utilisant l'encodage US-ASCII par défaut. Les fonctions multi-bytes (mb_) ont été ajouté par la suite.

Pour le Javascript, il a été développé avec l'Unicode en tête. Par défaut, les chaînes de caractères sont en Unicode et la propriété "length" retourne le nombre de caractères, pas le nombre d'octets encodé.

Bien que les nouvelles bases de données supportent les encodages à taille variable, généralement les types de base utilisent toujours le concept de 1 char = 1 octet. Donc, si un administrateur de base de données spécifie une taille de champ à 140 chars, le champ est limité à 140 octets et non pas 140 caractères.

Une des forces de l'informatique est de développer des technologies distinctes qui répondent à des besoins spécifiques. Une des faiblesses de l'informatique est l'interopérabilité des technologies distinctes (faire parler plusieurs technologies ensemble). Un site Web qui effectue des transactions utilisent plusieurs technologies (par exemple): HTTP, URI, HTML, Javascript, PHP, système de fichiers du serveur, SQL, base de données.

Unicode
Technologie Par défaut Supporte aussi
HTTPUS-ASCII
URI/DNSUS-ASCII
HTMLISO-8859-1UTF-8, ...
Javascript
PHPUS-ASCIIFonctions spécifiques aux encodages
SQLUS-ASCIIAutre encodage...

Dans le cas de Twitter, le compteur leur page est en Javascript (Unicode) et compte le nombre de caractères et non pas le nombre d'octets utilisés. Lors de la vérification sur leur serveur, ils utilisent une fonction qui compte le nombre d'octets. Puisqu'on peut quand même afficher des chaînes de 280 octets, je dirais que leur base de données supporte plus de 140 octets et qu'ils n'utilisent pas la bonne fonction de calcul sur leur serveur.

Commenter

Section: Normes et standards

Seul

2008-05-01 22:31:09:
Je me sens seul devant mon clavier ce soir. J'ai pas le goût de lire ou écrire. Je vais me coucher. Déjà le 1er mai. 5 mois après mon départ de Montréal.

Commenter

Section: Quoi de neuf

Structure de mes journées

2008-04-29 23:02:14:
Me lever, déjeuner, travailler, dîner, travailler, m'occuper de mes nièces, souper, m'occuper encore de mes nièces, essayer de me relaxer, discuter avec ma soeur et mon beau-frère, jouer un peu de guitare, regarder un peu les nouvelles d'informatiques, me coucher.

Je crois qu'il n'y a pas d'activités ou je peux couper présentement... Mais c'est quand même mieux que ma vie à Montréal, je crois, qui se résumait à: se lever, déjeuner, préparer dîner, transport (métro/marche), travailler, dîner, travailler, transport (métro/marche), souper, regarder les nouvelles d'informatiques, travailler, me coucher.

Bon, maintenant, qu'est-ce que j'aimerais vraiment faire? J'aimerais être capable de travailler au moins 8 heures. Prendre une marche d'au moins 30 minutes. Faire une activité sportive au moins 2 fois par semaines. Développer mon site Web au moins 30 minutes par jour. Étudier une matière au moins 30 minutes (langue, biologie, politique, géographie, physique, mathématique, ...). Classer mes affaires au moins 30 minutes. Est-ce que c'est possible. Je ne le sais pas, mais il faut que je me lève plus tôt, ça c'est sûr. Noter que je n'ai même pas le temps de rencontrer des gens parmi tout ça... (à part pour l'activité sportive et peut-être la marche).

Donc, je me lève tôt demain... Vraiment?

Commenter

Section: Quoi de neuf

Type de personnes

2008-04-23 22:40:18:
C'est très drôle de rencontrer des personnes et de reconnaître un type (style, genre) de personnes. Surtout avoir des courriels d'une personne qui a le même "genre" qu'au moins moins 2 ou 3 de ses connaissances. Le monde est très petit. On aime lorsqu'il est petit, c'est plus simple à gérer. Les gens semblables se croisent et se reconnaissent. Toujours la même danse des contacts.

Toutefois, il ne faut pas préjugé car malgré tout ce qu'on peut laisser paraître, on n'est jamais réellement à notre image. Le paraître, c'est de la frime. Ce qu'on exprime, ce n'est pas réellement ce qu'on veut à moins d'être un véritable sage qui a assez longtemps apprivoisé son "moi" intérieur. Il ne faut pas croire non plus que personne est sage. Rien de plus frustrant que de s'exprimer véritablement sur un sujet et de ne pas être compris parce que l'autre estime qu'on ne dit pas ce qu'on pense. C'est ce faire dire "tu frimes encore, tu ne te connais pas". En d'autres mots, certaines personnes sont vraiment honnêtes lorsqu'elle s'exprime sur certains sujets. Oui ça existe. Mais peut-être pas pour tous les sujets.

Finalement, ça me fait rire. Je suis là, fatigué, en attente sur ma chaise. J'essaie de trouver quelques choses à faire. Je sais que mon esprit ne peut plus innover aujourd'hui - il ne fonctionne plus pour la création et pour trouver des solutions. Il a seulement besoin de repos. Et demain, je n'aurai plus cet état d'esprit du soir qui me fait philosopher ou dire des niaiseries. C'est quand même merveilleux des idées et la fatigue.

Commenter

Section: Quoi de neuf

2008-04-23 22:08:35:
Don't ask what your $var can do for you but what you can do for your $var.

Commenter

Section: Pensées du jour

Site en rénovation

2008-04-19 02:49:23:
Le site est en rénovation...

Commenter

Section: Quoi de neuf

Faux diagnostic, enfin je l'espère

2008-04-11 08:13:48:
Je pensais que j'étais déprimé hier et avant-hier parce que je n'étais plus capable de travailler ni de me concentrer. Mais en fait, depuis hier ce soir, j'ai mal à la gorge, elle brûle, alors ça doit être une grippe. Présentement mon nez est bloqué et les autres symptômes devront apparaître bientôt.

Commenter

Section: Quoi de neuf

Suivante ⇒

Photos

Y : le réveil du dimanche

2007-02-18 12:50:58:
le réveil du dimanche : choix entre ordi et la vie

Commenter

Afer afer

Faire le backup, Transférer yansanmo.iquebec.com sur mont-laurier.no-ip.org, Angliciser libafer.php et placer dans un répertoire, Ajouter parser d'adresse à contact/, avoir une pensée claire

Fait aujourd'hui


Site

Top Blogues

Standard | JCB | Vert | à la Robin | à la Sylvain | icez | Sans CSS