Archive for Architecture des ordinateurs

[:fr]Un milliard ?!?[:]

[:fr]ErlangSur nos machines, est-il possible de compter jusqu’à 1 000 000 000 (un milliard) en moins d’une seconde ?

 

(1) Pour être sûr d’y arriver, il est préférable de se lancer avec un langage de bas niveau (C ou même assembleur) …

 

(2) Avec nos processeurs multicoeur il est préférable de se lancer avec un langage qui permet de faire du parallélisme (facilement) : Erlang par exemple ?

 

Résultats …

(1) ok, c’était facile et prévisible … (?)

(2) hum, pas si simple … et puis avec des une suprise : pour aller plus vite, il ne faut pas répartir le calcul sur 2 (resp. 4) processus légers si le processeur raconte qu’il est dual (ou resp. quad), mais plutôt sur une dizaine de processus légers (ou plus, … [mais pas trop, si on demande la partage du calcul sur plus d’un million de processus léger, à la fin, la gestion de ces processus demande plus de temps que le calcul lui-même !!!]) (?)[:]

[:fr]Il n’y a pas d’age …[:]

[:fr]

Il n'y a pas d'age pour apprendre ... : 

  SQL fait de la comparaison de chaine case-insensitive 
avec les configurations habituelles (en tout cas avec les miennes !) 

  select * from xxx where name="UnNom" 

donnera les mêmes résultats que 

  select * from xxx where name="unnom" 

Cela peut être utile, mais parfois très génant ... 

Faire du case-insensitive à partir de case-sensitive, 
c'est facile (lower(...)), 
mais l'inverse ? 

La réponse : une évaluation binaire (à explorer) !!!

[:]

[:fr]1+1?[:]

[:fr]En ce début d’année, les informaticiens sont moqueurs, ils ressortent de vieilles blagues. Mais comme cela parle de représentation de l’information, cela vaut la peine de le noter pour ne pas l’oublier.

Question : vous savez pourquoi les informaticiens confondent Noël et Halloween ?
Réponse : c’est évident, c’est parce que 25 Dec = 31 Oct !

 

Affirmation : Il n’y a que 10 types de gens sur la terre, ceux qui comprennent le binaire et les autres. (variante : il n’y a que 11 types de gens sur la terre, ceux qui comprennent les codes de Gray et les autres).

 

Une dernière, combien faut-il d’informaticiens pour changer une ampoule ? Réponse : 10, un pour tenir la chaise, un pour changer l’ampoule.

 

 

 [:]

[:fr]Aiii ![:]

[:fr]

C’est pas pour dénoncer les copains, mais sur la TI-82 stats.fr, ils utilisent un algorithmes pour calculer les puissances de i qui n’est pas tout à fait au point. En principe, comme i2 = -1, on devrait avoir i3 = -i, i4=1 et on recommence i5=i, i6=-1, i7=-i, i8=1, c’est cyclique …

Malheureusement, on a plutôt :

  • i2 = -1 (jusqu’ici tout va bien),
  • i3 = -i (jusqu’ici tout va bien),
  • i4=1 (jusqu’ici tout va bien),
  • i5=i (jusqu’ici tout va bien),
  • i6=-1 (jusqu’ici tout va bien),
  • i7=-3 10-13-i (Aiii ! ce devrait être juste -i, un imaginaire pur) ,
  • i8=1-2 10-13i (Aiii ! ce devrait être juste 1, un réel pur),
  • et ainsi de suite (sauf par chance un calcul, de temps en temps qui tombe juste, ex. : i10=-1) …

(maudit calcul scientifique ! il semble qu’il y ait eut le même problème autrefois avec matLab ou sciLab (?))

 

rem. avec les puissances de (1+i), cela donne le même genre de résultat, ex. : (1+i)14=-3.84 10-11-128i (au lieu de -128i seulement)

[:]

Caractères spéciauxSpecial chars

Pour une application web, il faut s’attendre à ce qu’une chaine de caractères issue d’un input, d’un prompt ou d’une textarea passent par du javascript, une url, php, du sql, du json et revienne en html, css, svg, en alert via le mail ou dans un eval ou une expression régulière.

Dans l’ordre alphabétique :

  • alert
  • css
  • eval
  • expression régulière
  • html
  • input
  • javascript
  • json
  • mail
  • php
  • prompt
  • sql
  • svg
  • textarea
  • url

Où l’on trouve des langages de programmation, des formats de données, des fonctions et des formats de communication.

Il ne faut pas espérer qu’une chaine de caractères puisse traverser tout cela sans soucis. Et malheureusement, les embuches dépendent de l’étape.

Les caractères gênants peuvent être (selon l’étape) :

  • les lettres accentuées ou comportant de petits ajouts : à, é, ê, ç, ñ, …
  • les caractères délimitant : « , ‘, <, >, [, ], …
  • les caractères d’échappement : \, &, …
  • les caractères spéciaux : $, _, ?, =, …

Pour constater l’étendue du problème, regarder ce qui est dit, juste pour certains langage de programmation : http://rosettacode.org/wiki/Special_characters