Archive for Brève

[: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]Spip, Drupal, KSup[:]

[:fr]

  • Au début des années 2000, mon UFR mets en place un site web SPIP pour se présenter …
  • vers 2010, changement importante de version de SPIP, mais à peine mis en place à l’UFR, on parle de Drupal (idem au labo, Drupal était à la mode ? Spip ?)
  • 2014, de SPIP à Drupal à l’UFR (après moult discussions pour savoir où, comment, qui, etc.). Au labo aussi, par contre pour les pages perso, et les pages d’équipe ou de projet c’est WordPress qui est choisi (tant mieux, je préfère)
  • 2016, le site Drupal de l’UFR est à peine sec que l’on parle déjà de le remplacer par un site sous KSUP, et ce n’est pas à cause de Drupal …

[:]

[: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