#51 Le 18/11/2012, à 23:13
- Elzen
Re : /* Topic des codeurs [8] */
non, tu es atteint d'un syndrome de l'acronyme, qu'il faut absolument combattre je m'y oppose.
Plaît-il ?
(Sinon, acronyme ou pas, perso, j'm'en fous, c'est juste que c'est un peu la seule idée qui ait été proposée, alors que plusieurs gens étaient d'accord, au début, pour chercher un vrai nom)
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
#52 Le 18/11/2012, à 23:14
- nathéo
Re : /* Topic des codeurs [8] */
Bah c'est ce que je veux en fait, enfin je stocke le résultat dans une variable puis je la passe en argument dans une fonction. Mais ça me renvoie une erreur quand j'essaie
./101vecteurs.rb: line 3: syntax error near unexpected token `ARGV[0]'
Dernière modification par nathéo (Le 18/11/2012, à 23:22)
C'est rarement par le sarcasme qu'on élève son âme.
Le jus de la vigne clarifie l'esprit et l'entendement.
De quoi souffres-tu ? De l'irréel intact dans le réel dévasté ?
La liberté n'est qu'un vain fantôme, quand une classe d'hommes peut affamer l'autre impunément. timezone[America/Bogota]
Hors ligne
#53 Le 18/11/2012, à 23:21
- The Uploader
Re : /* Topic des codeurs [8] */
tshirtman a écrit :non, tu es atteint d'un syndrome de l'acronyme, qu'il faut absolument combattre je m'y oppose.
Plaît-il ?
(Sinon, acronyme ou pas, perso, j'm'en fous, c'est juste que c'est un peu la seule idée qui ait été proposée, alors que plusieurs gens étaient d'accord, au début, pour chercher un vrai nom)
Bah on peut toujours renommer le fil si on se décide.
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#54 Le 18/11/2012, à 23:47
- :!pakman
Re : /* Topic des codeurs [8] */
@Shanx : perturbant ton coding style Java en C
Je me suis fait reprendre par un prof en cours de Java, je faisait l'inverse : du coding style C en Java.
Il a eu beau me dire "c'est pas du C que tu écris, c'est du Java", rien n'y fait, j'ai bien essayé, mais le coup de la { sur la même ligne, je trouve ça trop étrange ^^
...
Hors ligne
#55 Le 19/11/2012, à 00:41
- Pylades
Re : /* Topic des codeurs [8] */
Boarf, pour ma part les deux me vont.
Sinon, Shanx, j’ai regardé ton code, dans le bus, et si tu as une segfault, c’est que tu appelles fgets avec un buffer (mot) qui n’est en fait qu’un pointeur non initialisé (ligne 128, environ). Du coup, il proteste énergiquement, normal.
“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
#56 Le 19/11/2012, à 23:02
- tshirtman
Re : /* Topic des codeurs [8] */
Tiens, à nouveau un article sur Kivy sur le planet Archlinux. Intéressant.
Yep, mais je me demande s'il a pas envoyé l'article à la presse un peu vite, il manque au moins un mot au début, et la phrase finale semble incomplète… j'attendais de le croiser sur irc pour lui dire, mais je l'ai pas encore vu . Sinon, c'est vrai que c'est bien d'expliciter un peu cet exemple, j'avais fais l'exemple justement par ce que la doc était pas très claire ^^.
tshirtman a écrit :non, tu es atteint d'un syndrome de l'acronyme, qu'il faut absolument combattre je m'y oppose.
Plaît-il ?
Non
(Sinon, acronyme ou pas, perso, j'm'en fous, c'est juste que c'est un peu la seule idée qui ait été proposée, alors que plusieurs gens étaient d'accord, au début, pour chercher un vrai nom)
Perso je pensais qu'on avait déjà renommé, vu qu'avant c'était des codeurs couche tard , et le nom actuel me va, faire un acronyme incompréhensible (et qu'on va devoir écrire en entier à chaque fois, et qui est long du coup), sans apporter un sens particulièrement éclairant, ou rigolo, je trouve ça un peu dommage.
Dernière modification par tshirtman (Le 19/11/2012, à 23:05)
Hors ligne
#57 Le 19/11/2012, à 23:46
- Elzen
Re : /* Topic des codeurs [8] */
Alors, tu refuses d'expliquer ce que tu entends par « syndrome de l'acronyme », mais par contre, quand je signale explicitement que acronyme ou pas, j'm'en fous, celui-là était une proposition parmi d'autres qu'on n'avait pas encore faites, tu réponds en considérant que ça va nécessairement être un acronyme. Hum.
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
#58 Le 20/11/2012, à 01:02
- tshirtman
Re : /* Topic des codeurs [8] */
Ah, non, je remarque juste que t'as une certaine tendance à vouloir mettre des acronymes un peu partout, je dis pas que tu l'impose hein, mais c'est un reflex que tu as (à mes yeux). Personnellement, je préfère en user avec parcimonie, c'est tout.
(le "non" c'était une réponse à "plait-il" pris au sens littéral, → "non ça plait pas", juste une boutade )
Dernière modification par tshirtman (Le 20/11/2012, à 01:03)
Hors ligne
#59 Le 20/11/2012, à 01:42
- Elzen
Re : /* Topic des codeurs [8] */
J'n'ai pas l'impression d'en utiliser tant que ça
Et perso, j'préférerais un vrai nom qui en jette et qui ne soit pas acronymique, mais j'n'ai rien à proposer pour le moment.
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
#60 Le 20/11/2012, à 07:49
- Rolinh
Re : /* Topic des codeurs [8] */
(...) et le nom actuel me va, faire un acronyme incompréhensible (et qu'on va devoir écrire en entier à chaque fois, et qui est long du coup), sans apporter un sens particulièrement éclairant, ou rigolo, je trouve ça un peu dommage.
+101010
Topic des codeurs, c'est clair nan? Tout le monde comprend le sujet au moins.
Sinon, d'une manière générale, je pense que le syndrome des acronymes touche particulièrement les français.
En tant qu'étranger, on n'y comprend rien ne serait-ce que dans les systèmes de formations par exemple.
Hors ligne
#61 Le 20/11/2012, à 08:58
- Mindiell
Re : /* Topic des codeurs [8] */
Quid de "Topic des programmateurs" ?
Quoi ? Comment ? Eh ! Mais arretez de me balancer des cailloux ! Qu'est-ce que j'ai dit de mal ?
Hors ligne
#62 Le 20/11/2012, à 19:35
- afilmore
Re : /* Topic des codeurs [8] */
Quid de "Topic des programmateurs" ?
Le topic des codeurs déconneurs ?
Hors ligne
#63 Le 21/11/2012, à 13:47
- Pylades
Re : /* Topic des codeurs [8] */
Shanx, en fait ton code c’est un bazar pas possible, j’ai du mal à comprendre ce que tu veux faire.
Du coup, je n’ai pas vraiment eu le temps de voir ça bien comme il faut, mais j’ai changé des trucs et fait des remarques : http://paste.tdct.org/index.php?9m.
“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
#64 Le 24/11/2012, à 01:25
- HP
Re : /* Topic des codeurs [8] */
# rake-client sloccount
Totals grouped by language (dominant language first):
ruby: 3609 (100.00%)
Total Physical Source Lines of Code (SLOC) = 3,609
Development Effort Estimate, Person-Years (Person-Months) = 0.77 (9.24)
Schedule Estimate, Years (Months) = 0.48 (5.82)
Estimated Average Number of Developers (Effort/Schedule) = 1.59
Total Estimated Cost to Develop = $ 103,968
Please credit this data as "generated using David A. Wheeler's 'SLOCCount'."
# rake-client gitstats
Age 399 days, 99 active days (24.81%)
Authors 1 (average 645.0 commits per author)
Generated 2012-11-24 01:23:44 (in 0 seconds)
Generator GitStats (version 2011.11.08)
Report Period 2011-10-23 01:32:29 to 2012-11-24 01:12:39
Total Commits 645 (average 6.5 commits per active day, 1.6 per all days)
Total Files 455
Total Lines of Code 12780 (23510 added, 10730 removed)
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#65 Le 24/11/2012, à 20:03
- Elzen
Re : /* Topic des codeurs [8] */
Ç'pas du code, mais j'essaye de m'occuper de la nouvelle conf de mon serveur, et j'suis un peu paumé question authentification.
Ce que je voudrais, c'est que mes serveurs web (lighttpd) et mail (postfix/dovecot) utilisent les comptes/mdp système. Apparemment, pour ça, je serais censé utiliser LDAP, sauf que je n'connais pas grand chose à la bête, et que je ne trouve pas comment je serais censé dire à l'annuaire de se brancher sur les comptes systèmes.
En plus, pour l'instant, je suis, planqué derrière une box qui ne redirige que les ports que je lui ai demandé, mais quand je serai passé en IPv6 et que l'extérieur causera directement à ma machine sans passer par la box, je suppose qu'il va aussi falloir que je fasse en sorte que l'annuaire ne réponde qu'aux sollicitations qui viennent de localhost, et je n'sais pas comment faire ça non plus.
Si par hasard quelqu'un était coutumier de ce genre de trucs et/ou avait de la bonne doc sous la main, ça m'intéresserait.
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
#66 Le 24/11/2012, à 21:53
- Dr Le Rouge
Re : /* Topic des codeurs [8] */
Je ne pense pas que tu puisses configurer le LDAP pour qu'il utilise les comptes systèmes. Par contre, tu peux t'arranger pour que les comptes systèmes soient stockés dans le LDAP. De mémoire, pour que l'OS cherche dans le LDAP si un utilisateur peut se logger, il faut bidouiller le fichier /etc/nsswitch.conf (mais je ne sais plus comment ^^).
Un LDAP c'est juste une BDD avec une structure particulière.
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
#67 Le 24/11/2012, à 23:37
- Elzen
Re : /* Topic des codeurs [8] */
Mince, j'n'ai pas dû tout comprendre, alors…
Mais il n'existe pas de solutions pour que ces trucs-là (serveurs web/mail/jabber/etc.) utilisent simplement les vrais comptes/mdp du système, alors ?
(J'veux dire, de solutions autre que changer la façon dont le système traite ses comptes. Ça me paraît sacrément moche, quand même…)
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
#68 Le 25/11/2012, à 08:46
- Mindiell
Re : /* Topic des codeurs [8] */
Bah, perso mon postfix utilise de base mes comptes systèmes moi... Tu veux faire quoi de plus ?
Hors ligne
#70 Le 27/11/2012, à 20:18
- The Uploader
Re : /* Topic des codeurs [8] */
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#71 Le 27/11/2012, à 21:02
- Shanx
Re : /* Topic des codeurs [8] */
Avec le concours de Pylade, j’ai enfin terminé mon pendu, qui a été l’occasion pour moi d’apprendre plein de trucs… (Et Pylade a appris qu’on ne voyait rien en cours ).
Du coup, voilà mon code. Si vous avez des idées d’amélioration (pas forcément directement sur le code, des trucs d’ordre plus généraux pour m’apprendre à bien programmer), je suis preneur.
/**** PENDU ****/
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <ctype.h>
#define TAILLE_MAX 50
#define POTENCE1 "\n" \
"\n" \
"\n" \
"\n" \
"\n" \
"\n" \
"\n" \
"\n" \
"\n" \
"#####################\n"
#define POTENCE2 " |\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
"#####################\n"
#define POTENCE3 " |\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" /|\\\n" \
" / | \\\n" \
"#####################\n"
#define POTENCE4 " _____________\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" /|\\\n" \
" / | \\\n" \
"#####################\n"
#define POTENCE5 " _____________\n" \
" | /\n" \
" |/\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" /|\\\n" \
" / | \\\n" \
"#####################\n"
#define POTENCE6 " _____________\n" \
" | / |\n" \
" |/ |\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" /|\\\n" \
" / | \\\n" \
"#####################\n"
#define POTENCE7 " _____________\n" \
" | / |\n" \
" |/ |\n" \
" | (_)\n" \
" |\n" \
" |\n" \
" |\n" \
" |\n" \
" /|\\\n" \
" / | \\\n" \
"#####################\n"
#define POTENCE8 " _____________\n" \
" | / |\n" \
" |/ |\n" \
" | (_)\n" \
" | |\n" \
" | |\n" \
" | |\n" \
" |\n" \
" /|\\\n" \
" / | \\\n" \
"#####################\n"
#define POTENCE9 " _____________\n" \
" | / |\n" \
" |/ |\n" \
" | (_)\n" \
" | |\n" \
" | |\n" \
" | |\n" \
" | / \\\n" \
" /|\\ / \\\n" \
" / | \\\n" \
"#####################\n"
#define POTENCE10 " _____________\n" \
" | / |\n" \
" |/ |\n" \
" | (_)\n" \
" | |\n" \
" | /|\\\n" \
" | |\n" \
" | / \\\n" \
" /|\\ / \\\n" \
" / | \\\n" \
"#####################\n"
void choixMot(const char *chemin, char* mot);
char choix_lettre(void);
int lettre_dans_mot(const char* mot, char lettre, char* t);
void affichage(int j);
void victoire(const char* mot);
int main(int argc, char *argv[])
{
int i;
int j=0; /* Compteur de coups faux */
int j1;
int k; /* compteur qui s'incrémente si la lettre proposée est dans le mot */
char mot[TAILLE_MAX];
choixMot(argv[1], mot);
int longueurMot = strlen(mot);
char t[TAILLE_MAX]; /* tableau des lettres à deviner */
char lettre;
char lettresTestees[26];
for(i=0 ; i < longueurMot ; i++)
{
t[i] = '_';
}
t[i] = '\0';
/*printf("Le mot choisi est %s\n", mot);*/
while (j< 10)
{
k=0;
j1 = 0;
puts("Le mot à deviner est : ");
for(i=0 ; i < longueurMot ; i++)
{
printf("%c ", t[i]);
}
/* Affichage des lettres déjà testées */
if (j!=0)
{
puts("\n");
puts("Les lettres déjà testées sont : ");
for(i=0 ; i <j ; i++)
{
printf("%c ", lettresTestees[i]);
}
}
puts("\n");
lettre=choix_lettre();
puts("\n");
lettre_dans_mot(mot, lettre, t);
if(lettre_dans_mot(mot, lettre, t) == 0)
{
puts("Dommage !\n");
for(i=0 ; i <= j ; i++)
{
if (lettre == lettresTestees[i])
{
puts("C'est con, cette lettre avait déjà été testée...");
break;
}
else if(i==j)
{
j1 = 1; /* On incrémente le compteur de coups faux */
}
}
lettresTestees[j]=lettre;
j = j + j1;
}
affichage(j);
/* a-t-on le mot en entier ? */
if (!strcmp(mot, t))
{
victoire(mot);
}
}
puts("Sale mauvais !");
printf("Le mot à trouver était : %s.\n", mot);
puts("\n");
return 0;
}
void choixMot(const char *chemin, char* mot)
{
FILE* fichier = NULL;
fichier = fopen(chemin, "r");
if (fichier == NULL)
{
fprintf(stderr, "Impossible d'ouvrir le fichier\n");
exit(1);
}
char caractereLu;
int numMotChoisi, nombreMots;
nombreMots = 0;
/* On compte le nombre de mots dans le fichier */
while((caractereLu=fgetc(fichier)) != EOF)
{
if (caractereLu == '\n'){
nombreMots++;
}
}
srand(time(NULL));
numMotChoisi = (rand() % nombreMots);
/* On prend le mot choisi */
rewind(fichier);
while (numMotChoisi > 0)
{
caractereLu = fgetc(fichier);
if (caractereLu == '\n')
numMotChoisi--;
}
fgets(mot, TAILLE_MAX, fichier);
fclose(fichier);
mot[strlen(mot) - 1] = '\0';
}
char choix_lettre(void)
{
char buf[3];
char chr = '\0';
while (!chr)
{
fputs("Entre une lettre: ", stdout);
if (!fgets(buf, 3, stdin))
{
fputs("stdin lost, exiting.\n", stderr);
exit(1);
}
if (buf[1] != '\n')
{
if (buf[0] != '\n')
while (getchar() != '\n');
puts("Une seule lettre. ><\n");
chr = '\0';
}
else
{
chr = tolower(buf[0]);
if (!islower(chr))
{
puts("Un caractère alphabetique, c'est mieux.\n");
chr = '\0';
}
}
}
return chr;
}
/* Si la lettre est présente dans le mot */
int lettre_dans_mot(const char* mot, char lettre, char* t)
{
int found = 0;
int i=0;
for (i=0 ; i <= strlen(mot) ; i++ )
{
if(lettre == mot[i])
{
found = 1;
t[i]=lettre;
}
}
return found;
}
void affichage(int j)
{
printf("Tu en es à %d coups faux.\n", j);
switch (j)
{
case 1:
puts(POTENCE1);
break;
case 2:
puts(POTENCE2);
break;
case 3:
puts(POTENCE3);
break;
case 4:
puts(POTENCE4);
break;
case 5:
puts(POTENCE5);
break;
case 6:
puts(POTENCE6);
break;
case 7:
puts(POTENCE7);
break;
case 8:
puts(POTENCE8);
break;
case 9:
puts(POTENCE9);
break;
case 10:
puts(POTENCE10);
break;
}
}
void victoire(const char* mot)
{
int i;
puts("Bravo !");
printf("Le mot à trouver était : %s.\n", mot);
puts("\n");
exit(0);
}
Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied
Hors ligne
#72 Le 27/11/2012, à 21:48
- Pylades
Re : /* Topic des codeurs [8] */
Mettre les directives préprocesseur dans un header (voire les dessins dans un header à part) ; supprimer les puts("\n"); qui traînent.
On abaisse la taille maximum du mot à 32 caractères, coder les lettres trouvées sur les bits d’un unsigned long (qui fait au minimum 32 bits).
Dernière modification par Πυλάδης (Le 27/11/2012, à 21:54)
“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
#73 Le 27/11/2012, à 22:10
- grim7reaper
Re : /* Topic des codeurs [8] */
@Shanx :
Variable i inutilisé dans la fonction victoire.
Quand tu lis le fichier, essai de lire par bloc (de taille TAILLE_MAX par exemple) au lieu de caractère par caractère.
Code en anglais.
Remplace :
for(i=0 ; i < longueurMot ; i++)
{
t[i] = '_';
}
t[i] = '\0';
Par :
memset(t, '_', longueurMot);
t[longueurMot - 1] = '\0';
Tu peux sûrement remplacer la boucle dans lettre_dans_mot par un appel à strchr.
Dans affichage, vire le switch moche et fait un tableau de potence. T’aurais juste à faire :
puts(potences[j-1]);
Y’a des exit un peu partout (on sent l’influence de Πυλάδης), c’est moche.
On abaisse la taille maximum du mot à 32 caractères, coder les lettres trouvées sur les bits d’un unsigned long (qui fait au minimum 32 bits).
Optimisation inutile : complication du code pour un gain de performance quasi-nul (voire négatif) et une économie de mémoire risible. Par contre, perte de souplesse assurée.
En gros, c’est pas justifié.
Sinon sur Rosalind je viens de passer niveau 4 \o/ (et de leur remonter un bug…)
Hors ligne
#74 Le 27/11/2012, à 22:33
- Mindiell
Re : /* Topic des codeurs [8] */
@Shanx : Fait un programme serveur pour qu'on puisse jouer par telnet
@grim7reaper: J'ai rien compris, c'est quoi exactement Rosalind ?
Hors ligne
#75 Le 27/11/2012, à 22:33
- Pylades
Re : /* Topic des codeurs [8] */
Ouais, c’est vrai que ça fait pas une grosse économie…
Et ouais, bonne idée pour le tableau de potences, le pire c’est que je me demandais comment se passer du switch. ><" J’ai bien rouillé…
Les exit il y en a deux sur trois à cause de moi, je sais que ce n’est pas terrible, mais c’était la solution de facilité par rapport au code de base.
Sinon, quand j’ai écrit :
while (getchar() != '\n');
j’ai un peu dit une connerie, faut vérifier que le caractère n’est pas EOF, aussi.
Sinon, tu mets les accolades ouvrantes sur une ligne séparée, maintenant ?
Dernière modification par Πυλάδης (Le 27/11/2012, à 22:34)
“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