Donc je bosse dans un collège, et la saison des subvention permet
d'acheter des poste. Et ceux de PS étant intéressant niveau prix/config,
ce sont ceux qu'on a acheté.
Résultat : Le Mandrake linux Discovery annoncé est en fait un Linpus
Linux, distribution basée Mdk, sur laquelle je n'ai pas réussit à faire
un chti urpmi, ni même à trouver un outil graphique pour maj.
Bref, moi qui espérait un peu là-dessus pour convaincre de faire migrer
la salle info sous linux, pas de pot avec cette config à 2 sous...
Ouais, je sais, on en a pour son argent. Mais quand même...
La fin de l'aventure, totalement HS ici, mais bon, c'est que j'ai tout
viré pour refoutre win98 dessus (et ouais, je sais :-(). Ai pour ça
utilisé une knoppix, et QTParted, en 2 fois (obligation de redémarrer au
milieu), pour pouvoir supprimer les partitions et préparer/formater en
fat32. Et le fin du fin, aucun pilote fourni. Heureusement qu'il y a un
site.
En bref, le prix, 350 l'UC pour 80Go, Celeron D et 512 Mo Ram se justifie.
Le Thu, 12 May 2005 13:13:15 +0200, Jean-Francois BILLAUD a écrit :
C'est comme ça qu"on fait des heures supplémentaires non payées, ça casse le métier.
Par exemple travailler le lundi de Pentecôte à l'oeil?
-- Ne pas savoir de quoi on parle est un avantage dont il ne faut pas abuser. R.Debray
Emmanuel Florac
Le Thu, 12 May 2005 16:41:55 +0000, Michel Talon a écrit :
Trouves des choses qui soient radicalement plus simples pour le graphisme, je ne suis pas sûr que ça existe.
Le Basic de l'Apple II, avec le code en bas de l'écran, et le résultat de ce que tu tapes au-dessus, je crois qu'on a jamais fait mieux. Il faut apprendre la programmation aux gamins avec des Apple II, voilà ce que j'en pense :)
-- L'esprit qu'on veut avoir gâte celui qu'on a. Jean-Baptiste Louis Grisset.
Le Thu, 12 May 2005 16:41:55 +0000, Michel Talon a écrit :
Trouves des choses qui soient radicalement plus simples pour le graphisme,
je ne suis pas sûr que ça existe.
Le Basic de l'Apple II, avec le code en bas de l'écran, et le résultat
de ce que tu tapes au-dessus, je crois qu'on a jamais fait mieux. Il faut
apprendre la programmation aux gamins avec des Apple II, voilà ce que
j'en pense :)
--
L'esprit qu'on veut avoir gâte celui qu'on a.
Jean-Baptiste Louis Grisset.
Le Thu, 12 May 2005 16:41:55 +0000, Michel Talon a écrit :
Trouves des choses qui soient radicalement plus simples pour le graphisme, je ne suis pas sûr que ça existe.
Le Basic de l'Apple II, avec le code en bas de l'écran, et le résultat de ce que tu tapes au-dessus, je crois qu'on a jamais fait mieux. Il faut apprendre la programmation aux gamins avec des Apple II, voilà ce que j'en pense :)
-- L'esprit qu'on veut avoir gâte celui qu'on a. Jean-Baptiste Louis Grisset.
Emmanuel Florac
Le Fri, 13 May 2005 10:27:33 +0200, remy a écrit :
le reste le nom de la fct dit tout objectif l'obj est une intro a l'evenementiel via les exceptions
Java c'est verbeux, c'est imcompréhensible, putain dès la ligne 10 j'en ai déjà marre de lire ce code! Aaargh, je déteste Java...
-- In girum imus nocte ecce et consumimur igni
Le Fri, 13 May 2005 10:27:33 +0200, remy a écrit :
le reste le nom de la fct dit tout
objectif l'obj est une intro a l'evenementiel via les exceptions
Java c'est verbeux, c'est imcompréhensible, putain dès la ligne 10 j'en
ai déjà marre de lire ce code! Aaargh, je déteste Java...
Le Fri, 13 May 2005 23:11:32 +0000, Irvin Probst a écrit :
Et vive le droit de greve.
Pareil.
-- Si ça a l'air facile, c'est difficile. Si ça a l'air difficile, c'est carrément impossible. Si ça a l'air impossible, c'est un compilateur Ada. Théorème de Stockmayer.
Le Fri, 13 May 2005 23:11:32 +0000, Irvin Probst a écrit :
Et vive le droit de greve.
Pareil.
--
Si ça a l'air facile, c'est difficile. Si ça a l'air difficile, c'est
carrément impossible. Si ça a l'air impossible, c'est un compilateur
Ada.
Théorème de Stockmayer.
Le Fri, 13 May 2005 23:11:32 +0000, Irvin Probst a écrit :
Et vive le droit de greve.
Pareil.
-- Si ça a l'air facile, c'est difficile. Si ça a l'air difficile, c'est carrément impossible. Si ça a l'air impossible, c'est un compilateur Ada. Théorème de Stockmayer.
Michel Billaud
Eric Jacoboni writes:
In article , Michel Billaud wrote:
Désole mais tout ça c'est du pareil au même. On peut même comparer avec une version Hope (la même version débile non optimisée)
Moi, je dirai qu'on s'en branle un peu.
Tout à fait. Mon point était que, syntaxiquement, l'un n'était pas franchement plus mieux que l'autre. (Et qu'accessoirement l'exemple était mal choisi !)
De toutes façons, si besoin en était, je choisirai plutôt Fibonnacci que les concaténations comme exemple de ce qu'il ne faut pas faire en récursivité : ça me semble plus immédiat à faire comprendre.
Dans la catégorie exemple simple, et sans le risque de les traumatiser avec les considérations sur fibonnacci, tu as l'exemple du renversement d'une liste
inv ( [] ) = [] inv ( p::r ) = inv ( r ) ++ [p]
qui est tout {b,c}onnement quadratique.
Alors qu'avec un effort de programmation, le coup du paramêtre tampon, on pose invconc(a,b) = inv(a) ++ b, et on déduit
inv ( l ) = invconv(l, [])
invconc( [] , l) = l invconc( p::r , l ) = invconc( r, p::l)
et bingo, c'est linéaire.
MB -- Michel BILLAUD LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792 351, cours de la Libération http://www.labri.fr/~billaud 33405 Talence (FRANCE)
Eric Jacoboni <jaco@neottia.net> writes:
In article <7zsm0r6rfx.fsf@serveur5.labri.fr>,
Michel Billaud <billaud@labri.u-bordeaux.fr> wrote:
Désole mais tout ça c'est du pareil au même. On peut même comparer
avec une version Hope (la même version débile non optimisée)
Moi, je dirai qu'on s'en branle un peu.
Tout à fait. Mon point était que, syntaxiquement, l'un n'était pas
franchement plus mieux que l'autre. (Et qu'accessoirement l'exemple
était mal choisi !)
De toutes façons, si besoin en était, je choisirai plutôt Fibonnacci que
les concaténations comme exemple de ce qu'il ne faut pas faire en
récursivité : ça me semble plus immédiat à faire comprendre.
Dans la catégorie exemple simple, et sans le risque de les traumatiser
avec les considérations sur fibonnacci, tu as l'exemple du
renversement d'une liste
inv ( [] ) = []
inv ( p::r ) = inv ( r ) ++ [p]
qui est tout {b,c}onnement quadratique.
Alors qu'avec un effort de programmation, le coup du paramêtre tampon,
on pose
invconc(a,b) = inv(a) ++ b,
et on déduit
inv ( l ) = invconv(l, [])
invconc( [] , l) = l
invconc( p::r , l ) = invconc( r, p::l)
et bingo, c'est linéaire.
MB
--
Michel BILLAUD billaud@labri.fr
LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792
351, cours de la Libération http://www.labri.fr/~billaud
33405 Talence (FRANCE)
Désole mais tout ça c'est du pareil au même. On peut même comparer avec une version Hope (la même version débile non optimisée)
Moi, je dirai qu'on s'en branle un peu.
Tout à fait. Mon point était que, syntaxiquement, l'un n'était pas franchement plus mieux que l'autre. (Et qu'accessoirement l'exemple était mal choisi !)
De toutes façons, si besoin en était, je choisirai plutôt Fibonnacci que les concaténations comme exemple de ce qu'il ne faut pas faire en récursivité : ça me semble plus immédiat à faire comprendre.
Dans la catégorie exemple simple, et sans le risque de les traumatiser avec les considérations sur fibonnacci, tu as l'exemple du renversement d'une liste
inv ( [] ) = [] inv ( p::r ) = inv ( r ) ++ [p]
qui est tout {b,c}onnement quadratique.
Alors qu'avec un effort de programmation, le coup du paramêtre tampon, on pose invconc(a,b) = inv(a) ++ b, et on déduit
inv ( l ) = invconv(l, [])
invconc( [] , l) = l invconc( p::r , l ) = invconc( r, p::l)
et bingo, c'est linéaire.
MB -- Michel BILLAUD LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792 351, cours de la Libération http://www.labri.fr/~billaud 33405 Talence (FRANCE)
Michel Billaud
Richard Delorme writes:
Ce que je reprochais à OCaml était surtout l'utilisation de "symboles abscons". le détail de l'algo je m'en fichais ici.
Ouais enfin [ ] pour définir un ensemble, c'est pas top. Un minimum de cohérence avec les notations habituelles aurait été { x | p(x) }
Ça j'arrive à le concevoir. Les [] servent à définir des listes et non des ensembles. Programmer, ce n'est pas nécessairement faire des mathématiques,
C'est pas Dijkstra qui disait que la programmation était une des branches les plus difficiles des mathématiques appliquées ?
A part montrer que Hope est plus verbeux et moins lisible que Haskell, je ne vois pas l'intérêt de cet exemple.
Juste que c'est pareil, à trois virgules près, donc que les différences de syntaxe on s'en tamponne grave.
Cela dit, un chronométrage de la version python me fait sérieusement douté de sa complexité quadratique.
[...]
Que le quicksort soit de complexité quadratique dans le pire des cas n'est pas lié à la concaténation.
Non. La concaténation foireuse augmente le temps de calcul (qui a déja pris des coups dans les plumes par deux balayages de la liste), pas la complexité.
J'avoue ne pas comprendre le problème.
Que quand quelqu'un me dit que le chronométrage n'a pas l'air quadratique, je doute un peu qu'il ait vraiment testé sérieusement sur un paquet d'exemples aléatoires bien choisis !
MB
-- Michel BILLAUD LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792 351, cours de la Libération http://www.labri.fr/~billaud 33405 Talence (FRANCE)
Richard Delorme <abulmo@nospam.fr> writes:
Ce que je reprochais à OCaml était surtout l'utilisation de "symboles
abscons". le détail de l'algo je m'en fichais ici.
Ouais enfin [ ] pour définir un ensemble, c'est pas top. Un minimum de
cohérence avec les notations habituelles aurait été { x | p(x) }
Ça j'arrive à le concevoir. Les [] servent à définir des listes et non
des ensembles. Programmer, ce n'est pas nécessairement faire des
mathématiques,
C'est pas Dijkstra qui disait que la programmation était une des branches
les plus difficiles des mathématiques appliquées ?
A part montrer que Hope est plus verbeux et moins lisible que Haskell,
je ne vois pas l'intérêt de cet exemple.
Juste que c'est pareil, à trois virgules près, donc que les
différences de syntaxe on s'en tamponne grave.
Cela dit, un chronométrage de la version python me fait sérieusement
douté de sa complexité quadratique.
[...]
Que le quicksort soit de complexité quadratique dans le pire des cas
n'est pas lié à la concaténation.
Non. La concaténation foireuse augmente le temps de calcul (qui a déja
pris des coups dans les plumes par deux balayages de la liste), pas la
complexité.
J'avoue ne pas comprendre le problème.
Que quand quelqu'un me dit que le chronométrage n'a pas l'air
quadratique, je doute un peu qu'il ait vraiment testé sérieusement sur
un paquet d'exemples aléatoires bien choisis !
MB
--
Michel BILLAUD billaud@labri.fr
LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792
351, cours de la Libération http://www.labri.fr/~billaud
33405 Talence (FRANCE)
Ce que je reprochais à OCaml était surtout l'utilisation de "symboles abscons". le détail de l'algo je m'en fichais ici.
Ouais enfin [ ] pour définir un ensemble, c'est pas top. Un minimum de cohérence avec les notations habituelles aurait été { x | p(x) }
Ça j'arrive à le concevoir. Les [] servent à définir des listes et non des ensembles. Programmer, ce n'est pas nécessairement faire des mathématiques,
C'est pas Dijkstra qui disait que la programmation était une des branches les plus difficiles des mathématiques appliquées ?
A part montrer que Hope est plus verbeux et moins lisible que Haskell, je ne vois pas l'intérêt de cet exemple.
Juste que c'est pareil, à trois virgules près, donc que les différences de syntaxe on s'en tamponne grave.
Cela dit, un chronométrage de la version python me fait sérieusement douté de sa complexité quadratique.
[...]
Que le quicksort soit de complexité quadratique dans le pire des cas n'est pas lié à la concaténation.
Non. La concaténation foireuse augmente le temps de calcul (qui a déja pris des coups dans les plumes par deux balayages de la liste), pas la complexité.
J'avoue ne pas comprendre le problème.
Que quand quelqu'un me dit que le chronométrage n'a pas l'air quadratique, je doute un peu qu'il ait vraiment testé sérieusement sur un paquet d'exemples aléatoires bien choisis !
MB
-- Michel BILLAUD LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792 351, cours de la Libération http://www.labri.fr/~billaud 33405 Talence (FRANCE)
Eric Jacoboni
In article , Michel Billaud wrote:
Dans la catégorie exemple simple, et sans le risque de les traumatiser avec les considérations sur fibonnacci, tu as l'exemple du renversement d'une liste
Alors qu'avec un effort de programmation, le coup du paramêtre tampon,
Oué, j'ai découvert aussi les CPS, récemment... c'est moins clair que les tampons, mébon.
Mais je profite de l'occasion pour poser un problème parfaitement hors-charte (je laisse le soin du FU2...) : si une implémentation de liste est un peu futée et maintient deux pointeurs, l'un vers la tête, l'autre vers sa queue, la concaténation n'est plus linéaire mais en temps constant, n'est-il pas ?
-- Jaco
In article <7zy8aixbyl.fsf@serveur5.labri.fr>,
Michel Billaud <billaud@labri.u-bordeaux.fr> wrote:
Dans la catégorie exemple simple, et sans le risque de les traumatiser
avec les considérations sur fibonnacci, tu as l'exemple du
renversement d'une liste
Alors qu'avec un effort de programmation, le coup du paramêtre tampon,
Oué, j'ai découvert aussi les CPS, récemment... c'est moins clair que
les tampons, mébon.
Mais je profite de l'occasion pour poser un problème parfaitement
hors-charte (je laisse le soin du FU2...) : si une implémentation de
liste est un peu futée et maintient deux pointeurs, l'un vers la tête,
l'autre vers sa queue, la concaténation n'est plus linéaire mais en
temps constant, n'est-il pas ?
Dans la catégorie exemple simple, et sans le risque de les traumatiser avec les considérations sur fibonnacci, tu as l'exemple du renversement d'une liste
Alors qu'avec un effort de programmation, le coup du paramêtre tampon,
Oué, j'ai découvert aussi les CPS, récemment... c'est moins clair que les tampons, mébon.
Mais je profite de l'occasion pour poser un problème parfaitement hors-charte (je laisse le soin du FU2...) : si une implémentation de liste est un peu futée et maintient deux pointeurs, l'un vers la tête, l'autre vers sa queue, la concaténation n'est plus linéaire mais en temps constant, n'est-il pas ?
-- Jaco
Michel Billaud
Eric Jacoboni writes:
Alors qu'avec un effort de programmation, le coup du paramêtre tampon,
Oué, j'ai découvert aussi les CPS, récemment... c'est moins clair que les tampons, mébon.
C'est plus général. On peut pas tout avoir d'un coup, l'intuitif et l'abstraction....
Mais je profite de l'occasion pour poser un problème parfaitement hors-charte (je laisse le soin du FU2...) : si une implémentation de liste est un peu futée et maintient deux pointeurs, l'un vers la tête, l'autre vers sa queue, la concaténation n'est plus linéaire mais en temps constant, n'est-il pas ?
La concaténation sur place, elle est, oui. Sinon faut compter le temps de faire la copie.
PS: Incidemment, rien que pour faire bisquer l'autre qui a lancé une fatwah sur PHP (et Java), j'ai découvert qu'en PHP l'opération $x .= $y (1) se fait en temps constant par rapport à la taille de la partie gauche (2). Trop cool.
MB
(1) dont j'use et abuse dans le genre $page = "<html> <head><title>Hello</title></head>"; $page .= "<body>"; foreach( $machins as $m) $page .= $m -> html_code(); ....
(2) test avec $chaine = ""; for ($k = 0; $k < $max, $k ++) $chaine .= "truc $k";
-- Michel BILLAUD LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792 351, cours de la Libération http://www.labri.fr/~billaud 33405 Talence (FRANCE)
Eric Jacoboni <jaco@neottia.net> writes:
Alors qu'avec un effort de programmation, le coup du paramêtre tampon,
Oué, j'ai découvert aussi les CPS, récemment... c'est moins clair que
les tampons, mébon.
C'est plus général. On peut pas tout avoir d'un coup, l'intuitif et
l'abstraction....
Mais je profite de l'occasion pour poser un problème parfaitement
hors-charte (je laisse le soin du FU2...) : si une implémentation de
liste est un peu futée et maintient deux pointeurs, l'un vers la tête,
l'autre vers sa queue, la concaténation n'est plus linéaire mais en
temps constant, n'est-il pas ?
La concaténation sur place, elle est, oui. Sinon faut compter le temps
de faire la copie.
PS:
Incidemment, rien que pour faire bisquer l'autre qui a lancé une
fatwah sur PHP (et Java), j'ai découvert qu'en PHP l'opération
$x .= $y (1) se fait en temps constant par rapport à la taille de la
partie gauche (2). Trop cool.
MB
(1) dont j'use et abuse dans le genre
$page = "<html> <head><title>Hello</title></head>";
$page .= "<body>";
foreach( $machins as $m)
$page .= $m -> html_code();
....
(2) test avec
$chaine = "";
for ($k = 0; $k < $max, $k ++)
$chaine .= "truc $k";
--
Michel BILLAUD billaud@labri.fr LABRI-Université Bordeaux I tel 05
4000 6922 / 05 5684 5792 351, cours de la Libération
http://www.labri.fr/~billaud 33405 Talence (FRANCE)
Alors qu'avec un effort de programmation, le coup du paramêtre tampon,
Oué, j'ai découvert aussi les CPS, récemment... c'est moins clair que les tampons, mébon.
C'est plus général. On peut pas tout avoir d'un coup, l'intuitif et l'abstraction....
Mais je profite de l'occasion pour poser un problème parfaitement hors-charte (je laisse le soin du FU2...) : si une implémentation de liste est un peu futée et maintient deux pointeurs, l'un vers la tête, l'autre vers sa queue, la concaténation n'est plus linéaire mais en temps constant, n'est-il pas ?
La concaténation sur place, elle est, oui. Sinon faut compter le temps de faire la copie.
PS: Incidemment, rien que pour faire bisquer l'autre qui a lancé une fatwah sur PHP (et Java), j'ai découvert qu'en PHP l'opération $x .= $y (1) se fait en temps constant par rapport à la taille de la partie gauche (2). Trop cool.
MB
(1) dont j'use et abuse dans le genre $page = "<html> <head><title>Hello</title></head>"; $page .= "<body>"; foreach( $machins as $m) $page .= $m -> html_code(); ....
(2) test avec $chaine = ""; for ($k = 0; $k < $max, $k ++) $chaine .= "truc $k";
-- Michel BILLAUD LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792 351, cours de la Libération http://www.labri.fr/~billaud 33405 Talence (FRANCE)