Discussion:
Logiciel Parler chinois à adapter
(trop ancien pour répondre)
JV Gruat
2007-12-10 00:55:23 UTC
Permalink
Bonjour/soir ...

Comme je suppose pas mal de monde, j'ai reçu récemment un courriel
m'informant de nouveautés sur
http://parlezchinois.free.fr/exercice_hsk.html . Ce qui m'a amené à
m'intéresser aux exercices Hanziquiz que l'on peut en principe modifier
à sa guise avec les entrées qui vous conviennent - voir
http://parlezchinois.free.fr/exercice_hsk.html .

J'ai une liste de quelque 400 expressions, en augmentation régulière,
pour laquelle je pensais m'appuyer sur Hanziquiz. Seulement voilà, j'ai
l'impression que la liste maximum que le script peut absorber est de 250
mots, plus ou moins. Après, cela bloque complètement.

Y aurait-il quelqu'un ayant la gentillesse de m'expliquer pourquoi, et
le cas échéant ce qu'il faut faire pour débloquer la situation ?

Merci d'avance ! Le Quiz d'origine figure sur
http://www.jvgruat.com/Chine/lecons/hanziquiz-0.3.1/hanziquiz.html avec
un petit mais central hanzicards.js, et le qui marche pas sur
http://www.jvgruat.com/Chine/lecons/hanziquiz-0.3.1/hanzicrds.js ...

JVG
Julien ÉLIE
2007-12-10 12:41:40 UTC
Permalink
Bonjour Jean-Victor,
Post by JV Gruat
J'ai une liste de quelque 400 expressions, en augmentation régulière,
pour laquelle je pensais m'appuyer sur Hanziquiz. Seulement voilà, j'ai
l'impression que la liste maximum que le script peut absorber est de 250
mots, plus ou moins. Après, cela bloque complètement.
Y aurait-il quelqu'un ayant la gentillesse de m'expliquer pourquoi, et
le cas échéant ce qu'il faut faire pour débloquer la situation ?
Déjà, dans <http://www.jvgruat.com/Chine/lecons/hanziquiz-0.3.1/hanzicrds.js>,
il faut corriger les guillemets superflus de la ligne :

new Array( "相当", "相當", "xiāngdāng", ""équivalent à; considérable""),

Mais ce n'est pas la source du problème.


J'ai rapidement regardé le JavaScript utilisé. Tout est extrêmement
rapide (avec vos 378 expressions actuelles) *sauf* dans une ligne,
qui se situe dans add_to_recent_answers() :

function add_to_recent_answers(answer, deck_idx)
{
Recent_answers.deck[deck_idx][Recent_answers.insert_point[deck_idx]] =
answer;
// Recent_answers.insert_point[deck_idx]++;
if (Recent_answers.insert_point[deck_idx] >=
Recent_answers.max_length[deck_idx]) {
Recent_answers.insert_point[deck_idx] = 0;
}
}

Si la ligne "Recent_answers.insert_point[deck_idx]++;" est commentée,
le script s'exécute très rapidement.

C'est quand même très bizarre et j'en suis étonné (car c'est une simple
incrémentation ; je présume que le coût est d'aller chercher quoi
incrémenter en mémoire).

Voilà à quoi sert Recent_answers.insert_point :

var Recent_answers = new Object(); // Store correct answers here while
// constructing the questions to avoid presenting them as choices in
// subsequent questions. Structure:
// Recent_answers.deck : Array containing an array of recent answers
// for each deck (indexed by Deck array index)
// Recent_answers.max_length : Array containing the max number of
// recent answers to store for each deck
// Recent_answers.insert_point : Array containing, for each deck i,
// the index of Recent_answers.deck[i] to
// which the next answer should be written.


Si vous pensez pouvoir vous en passer, alors n'hésitez pas.

Sinon, une autre possibilité est que, au lieu de prendre votre Deck
tout entier, vous ne preniez que 100 éléments au hasard dans ses 378 actuels.
Je ne suis pas expert en JavaScript pour vous coder ça à vue mais je pense
que c'est faisable plutôt facilement (prendre 100 entiers au hasard entre
0 et 377 puis former un nouveau tableau Deck à partir de l'union des Deck[i]).

Ou plus simple avec tableau.slice(debut, fin) mais cela prend (fin-debut+1)
éléments consécutifs. Et dans ce cas, il faut mélanger le Deck avant et ainsi
prendre son slice(0,99) !
Et pour mélanger, je vous laisse chercher "shuffle array" sur Google :

http://www.javascriptkit.com/javatutors/arraysort.shtml (en bas de la page)
http://snippets.dzone.com/posts/show/849


Voilà, j'espère que vous vous en sortirez.

Je vous souhaite une bonne journée,
--
Julien ÉLIE

« -- Ce serait une joyeuse idée de faire une tempête dans nos cerveaux, n'est-il pas ?
-- Il veut parler d'une réunion de dravail ! » (Astérix)
JV Gruat
2007-12-10 17:15:14 UTC
Permalink
Le soussigné a cru pouvoir répondre à Julien ÉLIE
<***@nom-de-mon-site.com.invalid> qui, au cours de:
fjjc6h$gk5$***@news.trigofacile.com, a fait part de ce qui suit:
| Déjà, dans
| <http://www.jvgruat.com/Chine/lecons/hanziquiz/hanzicrds.js>,
| il faut corriger les guillemets superflus de la ligne :
|
| new Array( "相当", "相當", "xiāngdāng", ""équivalent à;
| considérable""),
|
Merci plus que beaucoup ! Dire que tout venait de ce ridicule hoquet ...

Ensuite, effectivement, il faut diviser la palanquée de données en
tranches disons plus digestes avec des fins de deck à intervalles plus
ou moins réguliers. Si cela intéresse quelqu'un, j'ai laissé en ligne à
partir de http://www.jvgruat.com/Chine/lecons/hanziquiz/

Juste un doute sur le compteur de temps ...

Amitiés sincères et remerciantes,
--
Jean-Victor Gruat
http://jvgruat.free.fr/Chine/
http://www.jvgruat.com/Nomic/
Julien ÉLIE
2007-12-10 19:18:45 UTC
Permalink
Le quatrième jour avant les Ides de décembre, en réponse
Post by JV Gruat
Ensuite, effectivement, il faut diviser la palanquée de données en
tranches disons plus digestes avec des fins de deck à intervalles plus
ou moins réguliers. Si cela intéresse quelqu'un, j'ai laissé en ligne à
partir de http://www.jvgruat.com/Chine/lecons/hanziquiz/
C'est effectivement une autre solution plus rapide que vous avez réalisée
pour tronçonner le grand tableau. Ça marche très bien ainsi.
Post by JV Gruat
Juste un doute sur le compteur de temps ...
C'est-à-dire ?
J'ai laissé tourner quelque temps et je ne vois rien d'anormal : les
secondes semblent s'écouler correctement.

Bonne soirée,
--
Julien ÉLIE

« -- C'est un drôle de nom, HCL.
-- C'est son immatriculation d'espion. Son vrai nom,
c'est Acidcloridrix... » (Astérix)
Patrice ÉLIE
2007-12-11 11:20:56 UTC
Permalink
Post by Julien ÉLIE
Le quatrième jour avant les Ides de décembre, en réponse
Tu aurais, filius, pu également dire: pour le 10 décembre: "deuxième jour du
11ème mois".
Ce mois contenant le solstice d'hiver, est, on le sait le 2ème mois de
l'hiver chinois.
La nouvelle lune du 8 janvier débutera le dernier mois de l'hiver et de
l'année, en l'attente du jour de l'an avec la nouvelle lune du 7 février...
Le retour du printemps.
Que cette année aura passé vite !

Le 13 décembre, sainte Lucie. Pour ceux qui ne le sauraient pas: "À la
sainte Luce les jours rallongent d'un saut de puce; à Noël d'un saut de
perdrix; à l'Épiphanie fou qui ne le voit". (proverbe catalan)

Bien entendu, à partir du 13 les jours allongent le soir certes un peu mais
perdent davantage de soleil le matin. Logique puisque le jour diminue.
Le 22 le jour gagnera autant le soir qu'il perdra le matin. Jour le plus
court.
Après le 22 et jusqu'au 4 janvier on continuera à perdre du soleil le matin
mais on en gagnera davantage le soir. Logique puisque le jour allonge.
Enfin, à partir du 4 janvier on gagnera du jour à la fois le matin et le
soir. Vive la lumière, vive la vie.

Je vous souhaite à tous 1000 printemps.
--
Patrice ÉLIE
JV Gruat
2007-12-14 02:35:12 UTC
Permalink
Le soussigné a cru pouvoir répondre à Julien ÉLIE
< ***@nom-de-mon-site.com.invalid > qui, au cours de:
fjk3ev$61n$***@news.trigofacile.com , a fait part de ce qui suit:

| C'est-à-dire ?
| J'ai laissé tourner quelque temps et je ne vois rien d'anormal : les
| secondes semblent s'écouler correctement.
|
Effectivement, je viens de faire du montre en main, et ma lenteur à
répondre correspond à ce que dit la machine. C'est fou ce que le temps
passe vite ! Une moyenne de 8 secondes par question, je trouve cela
particulièrement lent. Il faut encore que je m'entraîne !

Merci de vous être penché sur la clepsydre ...

JVG

Patrice ÉLIE
2007-12-11 11:41:02 UTC
Permalink
Post by Julien ÉLIE
Bonjour Jean-Victor,
Post by Julien ÉLIE
Post by Julien ÉLIE
function add_to_recent_answers(answer, deck_idx)
{
Recent_answers.deck[deck_idx][Recent_answers.insert_point[deck_idx]] =
answer;
// Recent_answers.insert_point[deck_idx]++;
if (Recent_answers.insert_point[deck_idx] >=
Recent_answers.max_length[deck_idx]) {
Recent_answers.insert_point[deck_idx] = 0;
}
Post by Julien ÉLIE
var Recent_answers = new Object(); // Store correct answers here while
// constructing the questions to avoid presenting them as choices in
// Recent_answers.deck : Array containing an array of recent answers
// for each deck (indexed by Deck array index)
// Recent_answers.max_length : Array containing the max number of
// recent answers to store for each deck
// Recent_answers.insert_point : Array containing, for each deck i,
// the index of Recent_answers.deck[i] to
// which the next answer should be written.
Le language de programmation informatique (qui est pour moi inconnu) ne
deviendra-t-il pas une langue pour machine ?
--
Patrice ÉLIE
Julien ÉLIE
2007-12-11 12:05:43 UTC
Permalink
Le troisième jour avant les Ides de décembre,
Le language de programmation informatique (qui est pour moi inconnu) ne deviendra-t-il pas une langue pour machine ?
La langue de la machine est actuellement des bits : des 0 et des 1.

Un langage de programmation est un code de communication (les
exemples du message précédent étaient du JavaScript, mais il
existe moult autres langages comme le C, le Pascal, le Java,
le C#, etc.) qui permet à un humain de dialoguer avec une
machine.
Chaque langage de programmation a sa propre syntaxe qui
permet d'écrire les instructions que l'on souhaite donner
à l'ordinateur. L'humain fait donc totalement abstraction
de comment l'ordinateur gère cela en interne (cela dépend
en effet du système d'exploitation, de l'architecture,
du processeur, etc.). Au final, le langage de programmation
est transformé en des 0 et des 1 qui, eux, sont traitables
notamment par les transistors du processeur.

Les disques durs aussi stockent l'information sous forme
de bits (il n'y a nulle part des « a » ou des « 氣 » sur
un disque dur ou même en mémoire, mais seulement des 0 et des 1).
--
Julien ÉLIE

« C'est la première fois que je vois traiter une affaire
avec autant de punch ! » (Astérix)
Patrice ÉLIE
2007-12-11 17:40:38 UTC
Permalink
Post by Julien ÉLIE
Le troisième jour avant les Ides de décembre,
Post by Patrice ÉLIE
Le language de programmation informatique (qui est pour moi inconnu) ne
deviendra-t-il pas une langue pour machine ?
La langue de la machine est actuellement des bits : des 0 et des 1.
Au final, le langage de programmation
est transformé en des 0 et des 1 qui, eux, sont traitables
notamment par les transistors du processeur.
Les disques durs aussi stockent l'information sous forme
de bits (il n'y a nulle part des « a » ou des « 氣 » sur
un disque dur ou même en mémoire, mais seulement des 0 et des 1).
L'homme agit-il vraiment différemment ?

Quand le tympan de l'oreille reçoit une vibration de l'air après émission
dans l'entourage d'un son "qi 氣" par exemple, cette vibration est amplifiée
par les osselets (marteau, enclume, os lenticulaire et étrier) qui a leur
tour font vibrer une petite membrane de la fenêtre ovale. Derrière cette
membrane stagne un liquide dans la cochlée ou limaçon.

Ainsi les mouvements de l'étrier mis en branle par notre "氣" sont transmis
à la cochlée au travers de la fenêtre ovale.

Le limaçon enroulé comme un escargot dans sa coquille est un organe creux
rempli d'un liquide (endolymphe). Il est tapissé de cellules ciliées,
cellules sensorielles prolongées de structures filamenteuses, les
stéréocils. Nos cellules ciliées et les membranes qui leur sont adjointes
constituent l'organe de Corti. Capteur des sons (vibrations).

Donc les stéréocils qui baignent dans leur liquide sont mis en mouvements
par les vibrations transmises au travers de l'oreille externe puis moyenne.
Nos cellules sensorielles transmettent directement leurs informations dans
un centre du cerveau car elles possédent d'un coté des cils vibratoires et
de l'autre un filet nerveux transmetteur.

Tout est organisé, chaque cellule cochléaire répond préférentiellement à
une certaine fréquence, pour permettre au cerveau de différencier la hauteur
des sons. Les cellules les plus proches de la base de la cochlée captent
préférentiellement les sons aigus et inversement les cellules du fond de la
cochlée captent les sons graves (basses fréquences).
La différence de vitesse d'arrivée du son au cerveau entre l'oreille droite
et la gauche lui permettra de déterminer l'origine spaciale du son...

Mais revenons à nos cellules ciliées : on a compris qu'elle transforment une
vibration de leurs cils en "signal nerveux" par le nerf auditif, véritable
transduction mécanoélectrique. Mais ces nerfs aussi répondent à des codes
sortes de bits : des 0 et des 1, remplacés par des simples échanges ioniques
sodium/potassium le long de la paroi des nerfs.

Le cerveau dans sa partie basse, reçoit les signaux qui arrivent du nerf
auditif: un signal brut "qi avec sa tonalité". Vite fait, ce centre nerveux
par d'autres nerfs qui transmettent le son "codé", envoie ce son à un centre
cérébral plus élaboré qui lui va enfin l'interpréter en lui donnant grace à
l'apprentissage sa véritable signification: "l'énergie".

Un centre encore plus haut, du cortex cérébral va décider de la suite à
donner à ce concept enfin entendu et compris. Et à quelle vitesse !

Il faut reconnaitre que notre organisme, quand il marche bien est une
merveille de technicité.
--
Patrice ÉLIE
Continuer la lecture sur narkive:
Loading...