Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#701 Le 10/05/2012, à 14:29

Rolinh

Re : /* Topic des codeurs [7] */

Je trouve également l'idée saugrenue hmm

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

#703 Le 10/05/2012, à 22:50

Steap

Re : /* Topic des codeurs [7] */

Rolinh a écrit :

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, à 22:52

Pylades

Re : /* Topic des codeurs [7] */

big_smile

Dernière modification par Πυλάδης (Le 10/05/2012, à 22: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, à 23:55

Elzen

Re : /* Topic des codeurs [7] */

Tiens, une fois n'est pas coûtume, j'demande de l'aide en Java yikes

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 big_smile

Hors ligne

#706 Le 11/05/2012, à 02:25

grim7reaper

Re : /* Topic des codeurs [7] */

@tshirtman : lol

@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 wink

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, à 11:54)

Hors ligne

#707 Le 11/05/2012, à 08:56

Rolinh

Re : /* Topic des codeurs [7] */

@Steap:

* Bah j'aime bien les NOTREACHED moi tongue 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, à 11:28

Elzen

Re : /* Topic des codeurs [7] */

@grim7reaper : majuscule tongue

Merci, sinon ^^ En attendant une réaction du Rouge, j'vais essayer de voir avec ton bout de code ce que ça donne…

Hors ligne

#709 Le 11/05/2012, à 11:57

grim7reaper

Re : /* Topic des codeurs [7] */

Corrigé, désolé je venais de me lever tongue

Hors ligne

#710 Le 11/05/2012, à 14:48

Dr Le Rouge

Re : /* Topic des codeurs [7] */

ArkSeth a écrit :

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 tongue).

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 mad)

Dernière modification par Dr Le Rouge (Le 11/05/2012, à 14: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, à 15: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.

Hors ligne

#712 Le 11/05/2012, à 23: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, à 04: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, à 12:50

Rolinh

Re : /* Topic des codeurs [7] */

@steap: pas sûr que l'on trouvera un utilisateur de Mac OS ici... tongue

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, à 14:11

sweetly

Re : /* Topic des codeurs [7] */

Rolinh a écrit :

@steap: pas sûr que l'on trouvera un utilisateur de Mac OS ici... tongue

Si, si smile 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, à 14:20

Rolinh

Re : /* Topic des codeurs [7] */

Cool smile
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. tongue
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, à 17:16

sweetly

Re : /* Topic des codeurs [7] */

Rolinh a écrit :

Cool smile
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. tongue
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, à 17:40

Rolinh

Re : /* Topic des codeurs [7] */

Merci smile

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 tongue.
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. wink

EDIT:
simple typo pour le DEFWRITE. Les erreurs relevées ici devraient être corrigées. Tu pourrais re-puller et refaire un essai? smile
(un peu laborieux, je sais, mais ne possédant pas de Mac...)

Dernière modification par Rolinh (Le 13/05/2012, à 17:49)

Hors ligne

#719 Le 13/05/2012, à 18:25

sweetly

Re : /* Topic des codeurs [7] */

Rolinh a écrit :

Merci smile

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 tongue.
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. wink

EDIT:
simple typo pour le DEFWRITE. Les erreurs relevées ici devraient être corrigées. Tu pourrais re-puller et refaire un essai? smile
(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, à 18:29

Rolinh

Re : /* Topic des codeurs [7] */

Nickel smile
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, à 02: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 hmm

@sweetly: merci smile


GNU Guix, un gestionnaire de paquets fonctionnel.

Hors ligne

#722 Le 14/05/2012, à 09: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, à 09:52

Rolinh

Re : /* Topic des codeurs [7] */

@sweetly: faut invoquer tshirtman --> c'est lui le pythonman de ce topic tongue
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, à 09:56

sweetly

Re : /* Topic des codeurs [7] */

Rolinh a écrit :

@sweetly: faut invoquer tshirtman --> c'est lui le pythonman de ce topic tongue
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, à 10: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