#701 Le 10/05/2012, à 13:29
- Rolinh
Re : /* Topic des codeurs [7] */
Je trouve également l'idée saugrenue
Sinon, quelqu'un aurait une suggestion permettant de dessiner des barres de graphes en couleur en TeX ? C'est pour l'export vers TeX de dfc.
PGF?
Hors ligne
#702 Le 10/05/2012, à 19:49
Hors ligne
#703 Le 10/05/2012, à 21:50
- Steap
Re : /* Topic des codeurs [7] */
Sinon, quelqu'un aurait une suggestion permettant de dessiner des barres de graphes en couleur en TeX ? C'est pour l'export vers TeX de dfc.
PGF?
J'ai regardé pstricks rapidement, mais comme son nom l'indique, ça ne marche que pour du Postscript.
Bon sinon, quelques idées vite fait (la flemme de créer un compte sur GW-computing) :
* Virer les "/* NOTREACHED */". C'est cool quand ça permet de dire "regarde bien, on a l'impression qu'on peut arriver ici, mais en fait non", mais là, je trouve qu'y en a __trop__ :
$ git grep -c "NOTREACHED"
src/csv.c:3
src/dfc.c:34
src/dotfile.c:45
src/list.c:5
src/text.c:3
src/util.c:46
On a x cas de :
return ...;
/* NOTREACHED */
qui ne servent à rien, contrairement à (par exemple) :
usage(EXIT_FAILURE);
/* NOTREACHED */
* Foutre les backends dans un dossier à part, comme src/output, ou src/backends.
* Rendre statiques toutes les fonctions des backends. Deux possibilités ensuite :
1) Garder publique uniquement la fonction d'initialisation de la struct Display.
2) Initialiser la struct Display dans le .c et la rendre visible dans le reste du code.
Dans les deux cas, ça devrait permettre de se débarasser d'un gros paquets de headers pas forcément très utiles.
GNU Guix, un gestionnaire de paquets fonctionnel.
Hors ligne
#704 Le 10/05/2012, à 21:52
- Pylades
Re : /* Topic des codeurs [7] */
Dernière modification par Πυλάδης (Le 10/05/2012, à 21:52)
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#705 Le 10/05/2012, à 22:55
- Elzen
Re : /* Topic des codeurs [7] */
Tiens, une fois n'est pas coûtume, j'demande de l'aide en Java
Pour mes simulations, j'utilise actuellement la classe Random pour générer des jeux de requêtes à tester. Sauf que ça fait des générations supposées uniformes, et que pour que mon truc ressemble à peu près à la réalité, il me faudrait plutôt une certaine répétition.
Vous sauriez s'il existe, en Java de base, un générateur pseudo-aléatoire qui suivrait une loi de Poisson, ou un truc du genre (j'crois que c'est ça le nom, j'n'ai pas refait de stats depuis un sacré bail) ? Sinon, c'est simple à bricoler depuis un générateur uniforme ? Sinon, vous auriez un jar pas trop lourd à me conseiller ?
'fin voilà, quoi, les pros du pseudo-aléatoire, j'ai besoin de vous
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#706 Le 11/05/2012, à 01:25
- grim7reaper
Re : /* Topic des codeurs [7] */
@tshirtman :
@ArkSeth : ça peut se bricoler soit même (merci la méthode de la transformée inverse, c’est marrant je l’ai évoqué récemment sur le blog de tshirtman ^^). Après est-ce équivalent à un générateur qui suit une loi de Poisson de base ou est-ce que ça pause des problèmes dans certains cas (et sii oui, dans ton cas précis ?), je ne sais pas trop. Je laisse Le Rouge nous éclairer sur ce point
Genre l’algo naïf pour une loi de Poisson à partir d’une loi uniforme c’est
public static int getPoisson(double lambda) {
double L = Math.exp(-lambda);
double p = 1.0;
int k = 0;
do {
k++;
p *= Math.random();
} while (p > L);
return k - 1;
}
Mais bon c’est un peu tout pourri, la complexité est à vomir. Il y a de meilleurs algo’, je te laisse chercher (je me demande même si Knuth n’en donne pas dans TAOCP).
Sinon, de base dans Java tu as uniforme et gaussien, pour le reste tu peux regarder Commons Math d’Apache (je ne sais pas si c’est gros ou pas…), et plus particulièrement la classe RandomDataImpl
Dernière modification par grim7reaper (Le 11/05/2012, à 10:54)
Hors ligne
#707 Le 11/05/2012, à 07:56
- Rolinh
Re : /* Topic des codeurs [7] */
@Steap:
* Bah j'aime bien les NOTREACHED moi C'est vrai qu'avec une bonne coloration syntaxique, les return et goto (bien que je ne crois pas qu'il y en ait dans dfc) devraient suffisamment être mis en évidence. M'enfin, c'est un détail visuel pour développeurs ça.
* Il n'y a pas non plus 50 fichiers source. M'enfin, si on part sur l'idée du point suivant, alors oui, cela a du sens de les mettre dans un sous-dossier commun.
* Oui, j'ai également pensé à quelque chose du genre. Cependant, avant de penser aux optimisations de ce genre (et il y en a à faire), j'aimerais finir d'implémenter les dernières features pour la version 3.0.0. Une fois que cela sera fait, je ferais une revue générale du code afin d'optimiser tout ce que je pense qui pourrait l'être (les fonctions *_disp_at, façon dont sont calculées les valeurs, etc.).
Hors ligne
#708 Le 11/05/2012, à 10:28
- Elzen
Re : /* Topic des codeurs [7] */
@grim7reaper : majuscule
Merci, sinon ^^ En attendant une réaction du Rouge, j'vais essayer de voir avec ton bout de code ce que ça donne…
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#709 Le 11/05/2012, à 10:57
- grim7reaper
Hors ligne
#710 Le 11/05/2012, à 13:48
- Dr Le Rouge
Re : /* Topic des codeurs [7] */
Pour mes simulations, j'utilise actuellement la classe Random pour générer des jeux de requêtes à tester. Sauf que ça fait des générations supposées uniformes, et que pour que mon truc ressemble à peu près à la réalité, il me faudrait plutôt une certaine répétition.
Qu'est-ce que tu entends par « une certaine répétition » ?
(j'crois que c'est [Poisson] le nom, j'n'ai pas refait de stats depuis un sacré bail)
Une loi de Poisson te sert à modéliser le nombre d'évènements survenant dans un laps de temps donné, les dits événements étant indépendants (exemple typique : nombre de personnes arrivant pour faire la queue en 10 min). Je sais pas si c'est ce qu'il te faut (p'tête bin qu'oui, p'tête bin qu'non ).
Sinon, c'est simple à bricoler depuis un générateur uniforme ?
Les générateurs pseudo-aléatoires que tu as par défaut sont pratiquement toujours des générateurs uniformes : ils te donnent un nombre choisi uniformément dans un certain intervalle.
edit : « à générer depuis » >_<" : j'ai rien dit.
(j'aime pas les probas )
Dernière modification par Dr Le Rouge (Le 11/05/2012, à 13:51)
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#711 Le 11/05/2012, à 14:27
- Elzen
Re : /* Topic des codeurs [7] */
Bah la loi de Poisson a vaguement l'air de coller, oui ^^
En gros, j'veux simuler un système avec d'un côté des sources qui vont publier des données, et de l'autre, des utilisateurs qui vont lancer des requêtes pour les écouter.
Genre comme une série de blogs, par exemple, chaque blog publie, à intervalles plus ou moins réguliers, un article qui porte différents flags, et chaque utilisateur va écouter ce qui se passe (machin s'intéresse aux flags A et B du blog de toto et au flag C du blog de titi ; truc s'intéresse aux flags C et A du blog de toto et aux flags D et E du blog de tata ; etc).
Pour que ça représente un minimum la réalité, il faudrait qu'il y ait des requêtes plus populaires que d'autres (genre la moitié des utilisateurs s'intéressent au blog de maître Eolas, et il n'y a que trois couche-tards et demi qui s'intéressent à celui d'ArkSeth, ce genre de choses), et aussi qu'il y ait des flags plus populaires que d'autres pour chaque blog.
'fin que ça ressemble à un réseau plus ou moins normal, quoi.
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#712 Le 11/05/2012, à 22:31
- Pylades
Re : /* Topic des codeurs [7] */
Putain, __bool__ s’appelle __nonzero__ dans Python 2 ! ><"
Fait chier.
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#713 Le 13/05/2012, à 03:52
- Steap
Re : /* Topic des codeurs [7] */
Aux utilisateurs de dfc :
- on aurait besoin d'un test de l'option -o sur Mac OS X;
- le système de build a été modifié afin de détecter automagiquement libintl, ce qui devrait régler quelques problèmes sur FreeBSD.
GNU Guix, un gestionnaire de paquets fonctionnel.
Hors ligne
#714 Le 13/05/2012, à 11:50
- Rolinh
Re : /* Topic des codeurs [7] */
@steap: pas sûr que l'on trouvera un utilisateur de Mac OS ici...
Bon, moi je m'arrache un peu les cheveux avec df(1). J'ai essayé, hier soir, de
m'attaquer au problème des valeurs non-identiques entre dfc(1) et df(1) mais je
crois que c'est peine perdue (ça a aboutit à ce commit...).
Enfin bon, au niveau des bytes, Ko, etc. ça joue mais pour df(1), 13666108K font
14G alors que pour moi c'est clairement 13G (arrondi). Y aurait-il un bug dans
df(1)?
Exemple:
[robin@thor ~] % dfc -bd -u k;df;dfc -bd;df -h
FILESYSTEM %USED USED AVAILABLE TOTAL MOUNTED ON
rootfs 53% 14100732K 13673624K 29239960K /
/dev 0% 0K 3974136K 3974136K /dev
run 0% 316K 3976808K 3977124K /run
/dev/sdc1 53% 14100732K 13673624K 29239960K /
shm 0% 5012K 3972112K 3977124K /dev/shm
tmpfs 0% 4K 6291452K 6291456K /tmp
/dev/sda7 16% 10096K 82438K 97654K /boot
/dev/sda3 67% 222579968K 120688144K 361356044K /home
/dev/sda5 43% 5647436K 7525916K 13173352K /var
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 29239960 14100732 13673624 51% /
/dev 3974136 0 3974136 0% /dev
run 3977124 316 3976808 1% /run
/dev/sdc1 29239960 14100732 13673624 51% /
shm 3977124 5012 3972112 1% /dev/shm
tmpfs 6291456 4 6291452 1% /tmp
/dev/sda7 97654 10096 82438 11% /boot
/dev/sda3 361356044 222579968 120688144 65% /home
/dev/sda5 13173352 5647436 7525916 43% /var
FILESYSTEM %USED USED AVAILABLE TOTAL MOUNTED ON
rootfs 53% 13.4G 13.0G 27.9G /
/dev 0% 0B 3.8G 3.8G /dev
run 0% 316.0K 3.8G 3.8G /run
/dev/sdc1 53% 13.4G 13.0G 27.9G /
shm 0% 4.9M 3.8G 3.8G /dev/shm
tmpfs 0% 4.0K 6.0G 6.0G /tmp
/dev/sda7 16% 9.9M 80.5M 95.4M /boot
/dev/sda3 67% 212.3G 115.1G 344.6G /home
/dev/sda5 43% 5.4G 7.2G 12.6G /var
Filesystem Size Used Avail Use% Mounted on
rootfs 28G 14G 14G 51% /
/dev 3.8G 0 3.8G 0% /dev
run 3.8G 316K 3.8G 1% /run
/dev/sdc1 28G 14G 14G 51% /
shm 3.8G 4.9M 3.8G 1% /dev/shm
tmpfs 6.0G 4.0K 6.0G 1% /tmp
/dev/sda7 96M 9.9M 81M 11% /boot
/dev/sda3 345G 213G 116G 65% /home
/dev/sda5 13G 5.4G 7.2G 43% /var
Et je n'arrive pas à comprendre comment les % sont calculés...
Hors ligne
#715 Le 13/05/2012, à 13:11
- sweetly
Re : /* Topic des codeurs [7] */
@steap: pas sûr que l'on trouvera un utilisateur de Mac OS ici...
Si, si J'ai cloné le dépôt, je teste l'option cet après-midi dès que j'ai 5 minutes.
Hors ligne
#716 Le 13/05/2012, à 13:20
- Rolinh
Re : /* Topic des codeurs [7] */
Cool
Par contre, j'ai essayé de compiler sur le Mac d'une amie jeudi et je me suis un peu arraché les cheveux (il faut installer les "dev tools" ou quelque chose de similaire afin de pouvoir compiler ainsi que cmake).
Je n'ai malheureusement pas eu le temps de finir mon test. Donc je ne garantis rien pour le moment.
J'ai remarqué que le module cpack de cmake permet de générer un dmg. Si c'est simple et que ça marche, alors je distribuerais dfc sous forme de dmg pour Mac OS, ce qui sera bien plus agréable pour l'utilisateur final.
Hors ligne
#717 Le 13/05/2012, à 16:16
- sweetly
Re : /* Topic des codeurs [7] */
Cool
Par contre, j'ai essayé de compiler sur le Mac d'une amie jeudi et je me suis un peu arraché les cheveux (il faut installer les "dev tools" ou quelque chose de similaire afin de pouvoir compiler ainsi que cmake).
Je n'ai malheureusement pas eu le temps de finir mon test. Donc je ne garantis rien pour le moment.
J'ai remarqué que le module cpack de cmake permet de générer un dmg. Si c'est simple et que ça marche, alors je distribuerais dfc sous forme de dmg pour Mac OS, ce qui sera bien plus agréable pour l'utilisateur final.
Il faut installer Xcode, l'environnement de développement d'apple qui vient avec tous les utilitaires de dev UNIX (make, les compilos gnu, libtool, etc). Tu peux faire autremnt, mais c'est effectivement le plus simple. Cmake, y'a un dmg.
Sinon, je viens de tenter la compilation :
$ make
Scanning dependencies of target dfc
[ 12%] Building C object CMakeFiles/dfc.dir/src/csv.c.o
[ 25%] Building C object CMakeFiles/dfc.dir/src/dotfile.c.o
[ 37%] Building C object CMakeFiles/dfc.dir/src/dfc.c.o
In file included from /Users/pa/Downloads/dfc/dfc/src/text.h:39:0,
from /Users/pa/Downloads/dfc/dfc/src/dfc.h:39,
from /Users/pa/Downloads/dfc/dfc/src/dfc.c:70:
/Users/pa/Downloads/dfc/dfc/src/util.h:54:7: erreur: conflicting types for ‘getdate’
In file included from /usr/include/sys/time.h:198:0,
from /usr/include/sys/attr.h:43,
from /usr/include/sys/mount.h:76,
from /Users/pa/Downloads/dfc/dfc/src/dfc.c:67:
/usr/include/time.h:127:12: note: previous declaration of ‘getdate’ was here
/Users/pa/Downloads/dfc/dfc/src/dfc.c: In function ‘fetch_info’:
/Users/pa/Downloads/dfc/dfc/src/dfc.c:570:19: attention : assignment makes pointer from integer without a cast [enabled by default]
/Users/pa/Downloads/dfc/dfc/src/dfc.c: Hors de toute fonction :
/Users/pa/Downloads/dfc/dfc/src/dfc.c:790:1: erreur: conflicting types for ‘statfs_flags_to_str’
/Users/pa/Downloads/dfc/dfc/src/dfc.c:570:21: note: previous implicit declaration of ‘statfs_flags_to_str’ was here
/Users/pa/Downloads/dfc/dfc/src/dfc.c: In function ‘statfs_flags_to_str’:
/Users/pa/Downloads/dfc/dfc/src/dfc.c:901:14: erreur: ‘DEFWRITE’ undeclared (first use in this function)
/Users/pa/Downloads/dfc/dfc/src/dfc.c:901:14: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [CMakeFiles/dfc.dir/src/dfc.c.o] Error 1
make[1]: *** [CMakeFiles/dfc.dir/all] Error 2
make: *** [all] Error 2
Hors ligne
#718 Le 13/05/2012, à 16:40
- Rolinh
Re : /* Topic des codeurs [7] */
Merci
Celui-là est carrément bizarre...
/Users/pa/Downloads/dfc/dfc/src/util.h:54:7: erreur: conflicting types for ‘getdate’
Ah bah en fait, ça s'explique: c'est une fonction système chez Apple .
Bon, faut que je lui trouve un autre petit nom à cette fonction alors.
Pour celle-ci, il manquait un check pour apple dans le fichier header. Ça devrait être corrigé maintenant.
/Users/pa/Downloads/dfc/dfc/src/dfc.c:570:21: note: previous implicit declaration of ‘statfs_flags_to_str’ was here
Pour le DEFWRITE, je m'attendais à ce que des problèmes surviennent ici. Je vais regarder ça et je te tiens au courant.
EDIT:
simple typo pour le DEFWRITE. Les erreurs relevées ici devraient être corrigées. Tu pourrais re-puller et refaire un essai?
(un peu laborieux, je sais, mais ne possédant pas de Mac...)
Dernière modification par Rolinh (Le 13/05/2012, à 16:49)
Hors ligne
#719 Le 13/05/2012, à 17:25
- sweetly
Re : /* Topic des codeurs [7] */
Merci
Celui-là est carrément bizarre...
/Users/pa/Downloads/dfc/dfc/src/util.h:54:7: erreur: conflicting types for ‘getdate’
Ah bah en fait, ça s'explique: c'est une fonction système chez Apple
.
Bon, faut que je lui trouve un autre petit nom à cette fonction alors.Pour celle-ci, il manquait un check pour apple dans le fichier header. Ça devrait être corrigé maintenant.
/Users/pa/Downloads/dfc/dfc/src/dfc.c:570:21: note: previous implicit declaration of ‘statfs_flags_to_str’ was here
Pour le DEFWRITE, je m'attendais à ce que des problèmes surviennent ici. Je vais regarder ça et je te tiens au courant.
EDIT:
simple typo pour le DEFWRITE. Les erreurs relevées ici devraient être corrigées. Tu pourrais re-puller et refaire un essai?
(un peu laborieux, je sais, mais ne possédant pas de Mac...)
Ayé, ça compile bien. Un petit dfc -o :
$ ./dfc -o
FILESYSTEM (=) USED FREE (-) %USED AVAILABLE TOTAL MOUNTED ON MOUNT OPTIONS
/dev/disk0s2 [========------------] 38% 288.8G 465.0G / rw,multilabel,dovolfslocalrootfsjournaled
devfs [====================] 100% 0B 181.5K /dev rw,multilabellocaldontbrowse
+1Mshl71t8Xpg-2.2d000006 [=========-----------] 40% 129.8G 216.7G /Volumes/Disque dur rw,nosuid,multilabel,dovolfsnodev
/dev/disk1s2 [================----] 75% 11.0M 44.4M +.8.8-Darwin64-universal ro,nosuid,multilabel,dovolfsunknownpermissionslocalnodev
J'ai aussi des couleurs.
Hors ligne
#720 Le 13/05/2012, à 17:29
- Rolinh
Re : /* Topic des codeurs [7] */
Nickel
Ah, il manque juste quelques virgules.
Merci à toi et content de savoir que ça compile bien sous Mac OS.
Hors ligne
#721 Le 14/05/2012, à 01:22
- Steap
Re : /* Topic des codeurs [7] */
Les étourderies dans le code pour Mac OS X viennent sans doute de ça :
Date: Sat May 12 03:07:11 2012 +0200
@Rolinh: on trouve des Mac Users partout
@sweetly: merci
GNU Guix, un gestionnaire de paquets fonctionnel.
Hors ligne
#722 Le 14/05/2012, à 08:45
- sweetly
Re : /* Topic des codeurs [7] */
Un petite question : je cherche à faire un programme, portable, en python. Ok. Pour ce programme, je voudrais afficher, en plein écran, des mots sur fond uni (si possible en pouvant paramétrer la fonte utilisée, sa taille, etc). Comment faire ça le plus simplement possible ?
J'ai essayé de passer par Qt, mais ça me paraît utiliser un marteau pour écraser une mouche, d'autant plus que faire ça avec n'est pas simple (enfin, je n'ai pas trouvé la façon simple de la faire).
Une idée, ou une bibliothèque qui pourrait répondre simplement à ce besoin ?
Hors ligne
#723 Le 14/05/2012, à 08:52
- Rolinh
Re : /* Topic des codeurs [7] */
@sweetly: faut invoquer tshirtman --> c'est lui le pythonman de ce topic
Sinon, je pense que le fait de savoir le but de ton programme pourrait aider à donner une réponse adaptée.
Hors ligne
#724 Le 14/05/2012, à 08:56
- sweetly
Re : /* Topic des codeurs [7] */
@sweetly: faut invoquer tshirtman --> c'est lui le pythonman de ce topic
Sinon, je pense que le fait de savoir le but de ton programme pourrait aider à donner une réponse adaptée.
En gros, tu as une liste de mots stockées quelque part (fichier txt, par exemple). Le prog doit afficher successivement et aléatoirement des mots piochés dans cette liste en plein écran sur fond uni. C'est tout (tu dois pouvoir paramétrer la vitesse d'affichage de chaque mot, la taille de la police, pouvoir gérer plusieurs listes, etc, mais ça, c'est ok). Bref, c'est tout simple, c'est juste l'aspect GUI qui m'emmerde (enfin, juste l'affichage comme je le souhaite et qui est une contrainte forte, pas question de le mettre en fenêtré), vu que j'y connais pas grand chose. C'est pour l'orthophonie.
Hors ligne
#725 Le 14/05/2012, à 09:05
- Pylades
Re : /* Topic des codeurs [7] */
from PySFML import sf
win = sf.RenderWindow(sf.VideoMode(480, 480), 'plop')
text = sf.String('plouf')
win.Clear()
win.Draw(text)
win.Display()
That’s all you need, bro!
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne